VecFever documentation

< All Topics

Battlezone Plus

Hack by Clay Cowgill, 2000

A ‘faster, harder, more challenging’ hack for the Battlezone romset which Clay Cowgill released back in 2000. Since this is not a simple romset swap for Battlezone cabinets but needs a small helper pcb – which was not explained how to build in the relevant text file nor how it works in principle – so far I know of noone who successfully tried this out in a Battlezone cabinet (apart from the author and friends of his, of course…).

So to remedy this and to understand what is going on and where and how changes were made I disassembled the code real quick and there are numerous but very specific changes made, most notably hardware-wise: the addition of bank switching via the A15 line since the additional code did not fit into the original romsets. It is also apparent that this hack can actually be controlled by another thing running in that other bank, that bank here is in the ‘036408.01.bin’ chip and there is the additional ‘faster’ code in there but no menu and instead a default setup in its reset routine which jumps over to the rest of the hacked battlezone romset in the normal adr. range (where the last bit of 6502 memory is never cleared by its reset to retain these options).

Adding bank-switching to the early Atari vector games to add whatever you like is actually quite easy since these only use 15 bits of the address bus and ground the last -A15- line on the pcb. So putting a small pcb between the CPU and the rest of the system allows you to easily add more code just using that unused adr. line and as an important bonus: since the reset vector of the 6502 is in this added adr. range you gain control of the entire cabinet right away, without having to do some other shenanigans. Battlezone Plus uses this sparingly, the goal was to keep the original game as untouched as possible and only fiddling with the mechanics mentioned in Clay’s text file – the movement (faster forwards and rotating), shooting (more shots) and enemy behavior. Plus the new hyperspace which is just plain weird in Battlezone to me.

Anyways, now I hope I have added enough more info. to this that if someone wants to try this out on a Battlezone one fine day it’ll be clear what to build. And you can see what to expect beforehand playing it on the Vectrex now.

Subject: VECTOR: Stupid Battlezone tricks...
Date: Mon, 09 Oct 2000 13:53:53 PDT
From: "Clay Cowgill" <>

Hey everyone,

Since I've been monkeying around getting a Battlezone upright working (which
has finally been running for a few days now without incident, BTW) I ended
up dinking around with the code too.

(Actually, I decided that this was a perfect time to finish the BZ
high-score-saver board instead of the three-dozen other projects I'm working
on.  I'm easily distr-- hey, look! this CD is really *sparkly*... Uhhhh...
Now what did you want? ;-)

The high-score-saver is also kind-of a mini-multigame platform, so I thought
it would be cool to add some little bells and whistles.  I converted all the
dip-switch settings to load from backup-ram, so those are now "settable"
from an on-screen menu.  (Yeah, BFD, I know...)  You can also set it to boot
to either Battlezone, the menu or...

Battlezone Plus!  (Or FHMC Battlezone, or some other name I haven't decided

To make a long story short, without having to re-write *too* much code, I
made a faster/meaner version of Battlezone.  Your tank turns faster (about
half again as fast while turning or almost twice as fast in "rotate" mode),
you can shoot twice as fast (initially), you can go forwards about three
times as fast (but reverse at the same "old" speed).  Enemy tanks shoot at
the "normal" rate initially (you get two shots to their one though) but as
your score goes up, the shells get *faster*, so the enemy tanks can really
cook 'em off at you (and vice-versa).

Any suggestions for other stuff I should look into?  I really don't want to
get too far into the game "engine" (I don't want to make it too big of a
project), but there might be something relatively easy to do that makes it
interesting.  The changes I made are configurable from the backup-sram so
the menu system can actually modify the details (like speed of turns, rate
of fire, ratio of player to enemy fire rate, etc).

A couple things I might be able to do would be:

1) A limited number of "super-shells".  Basically you'd have to reach down
and hold the start button, then press fire-- but, your shell would travel at
death-ray like speed. ;-)  Interesting compromise from having to let go of
the steering for a bit...


2) Hyperspace.  Maybe just get three per game?  Pressing start teleports you
to a new random location.  I don't know how hard it'd be to work around
playfield objects, or what some game elements (like the Missile) would do.
Could be bad.


3) Warp.  Pressing start slows enemy shots (and maybe tanks/missiles) to
like 1/4 speed for a couple seconds?

Anyway, suggestions welcome.  The hardware right now is a no-solder
install-- remove CPU, plug in daughtercard, plug in CPU to daughtercard.
You can remove the program EPROMs and program SRAMs if you want to save some
power.  It'll probably fix a lot of reliability problems too as an added
bonus.  If I end up adding Battlezone+ as another bank of memory it will
probably require one wire down to the main board (to pick up the 6MHz
clock).  I might be able to put in BZ+ just as patches since I opened up a
lot more memory, but I want to be sure not to mess with how the "real" BZ
plays in the process.



----------	--------	----	--------	----
036408.01.bin	?		2716			
036409.01.bin	N1		2716			
036410.01.bin	L/M1		2716			original
036411.01.bin	K1		2716			original
036412.01.bin	J1		2716			
036413.01.bin	F/H1		2716			original
036414.01.bin	E1		2716			
036421.01.bin	A3		2716			original
036422.01.bin	B/C3		2716			


Same as with the regular Battlezone a ‘2 Joysticks’ input uses two (digital) joysticks up/down values for the left/right tank tracks. Otherwise one digital joystick is used and the info. mapped onto the two tracks.

buttons 3: are ‘hyperspace’ and 4: fires a shell


  • Game Mode: Arcade / Stramash Zone / Vectrex / Vectrex, Faster Speed
  • Input: Digital Joystick / 2 Joysticks / 2 Joysticks, Swapped
  • Language: English / French / German / Spanish
  • Missile: 5000 / 10000 / 20000 / 30000
  • Reset Highscores
  • Tanks: 2 / 3 / 4 / 5
  • Game Info



GERMAN[] = {
    { 0, 0, "Panzer"},
    { 0, 0, "Vectrex, schnellere Geschwindigkeit"},
    { 0, 0, 0},
    { 0, 0, 0},
    { 0, 0, 0},
    { 0, 0, "Rakete"},
    { 0, 0, "Rakete erscheint bei"},
    { 0, 0, "                           Willkommen zu Battlezone Plus, einem romset-hack von Battlezone von Clay Cowgill. Seine Änderungen waren dazu gedacht, das Spiel schneller zu gestalten und dafür wurden die Panzerbewegungen und einige Objektbewegungen beschleunigt. Zudem kann man schneller neu schiessen - der alte Schuss wird dann weggenommen, wie bei einigen Segavektorspielen der Zeit. Ausserdem ein Asteroids-artiges 'Hyperspace', um wegzuhüpfen. In der Textdatei werden auch Änderungen an der Gegner-KI erwähnt aber im wesentlichen wurde dies portiert, um es zu dokumentieren: er brauchte extra-code, der nicht in das normale romset mehr passte, und hat die A15-Addressleitung genutzt als bank-switch zwischen zwei 2K rom-chips am Ende des Addressraums (Battlezone -wie Asteroids- nutzt nur 15 bit des Adressbusses). Also kein einfaches ROM-Auswechseln sondern es braucht eine kleine (wenn auch sehr einfache) Platine, die dies bewerkstelligt.                                                      "}

FRENCH[] = {
    { 0, 0, "Chars"},
    { 0, 0, "Vectrex, Vitesse + Rapide"},
    { 0, 0, 0},
    { 0, 0, 0},
    { 0, 0, 0},
    { 0, 0, 0},
    { 0, 0, "Missile: Apparaît à"},
    { 0, 0, "                           Bienvenue dans Battlezone Plus, une version 'hackée' de Battlezone, réalisée par Clay Cowgill. Ses modifications avaient pour but de rendre le niveau de jeu plus relevé (il a précisé qu'il pensait l'appeler 'FHMC Battlezone' (pour: 'f'aster, 'h'arder, 'm'ore 'c'hallenging, c'est à dire 'plus rapide', ' plus dur', ' plus exigeant'), c’est pourquoi on peut constater une accélération des mouvements des chars et de certains objets. Par ailleurs, il est désormais possible de refaire feu plus rapidement, le premier tir disparaissant prématurément de l'écran, comme on peut l'observer dans certains jeux vectoriels produits par Sega. Il est également possible de bénéficier d'un 'hyperespace' semblable à celui d'Asteroids, pour y faire un saut... Le fichier texte mentionne aussi des changements de comportement des ennemis, mais cela a principalement été transcrit dans la VecFever à des fins de documentation: en effet Clay Cowgill avait besoin d'ajouter du code dans une autre puce rom, et pour pouvoir y accéder, il a utilisé la ligne d'adresse A15 comme un commutateur de banque (Battlezone -ainsi qu’Asteroids- n'utilise que 15 bits pour le bus d’adresse). Il ne s’agit en réalité pas d’un simple commutateur de ROM, car il faut aussi un petit circuit imprimé, même si ce dernier est des plus simples...                                                      "}

    { 0, 0, "Tanks"},
    { 0, 0, "Vectrex, Faster Speed"},
    { 0, 0, "Vectrex"},
    { 0, 0, "Stramash Zone"},
    { 0, 0, "Arcade"},
    { 0, 0, "Missile"},
    { 0, 0, "Missile Appears At"},
    { 0, 0, "                           Welcome to Battlezone Plus, a romset hack of the Battlezone romset by Clay Cowgill. His changes were meant to make the game more frantic - he mentions thinking about calling it 'FHMC Battlezone' ('f'aster, 'h'arder, 'm'ore 'c'hallenging) - and increased the movement of the player and some objects. Also being able to shoot more, taking away the former shot, and having an Asteroids-like 'hyperspace', to hyperjump away. There are also some behavior changes mentioned in the text file but this has mainly been translated to the VecFever for documentation's sake: he needed to add code in another rom chip and to be able to access it he used the A15 adr. line as a bank switch (Battlezone like Asteroids uses only 15 bits for the adr. bus). So not a simple ROM switch but needs a small pcb - a really simple one.                                                      "}
Table of Contents