VecFever documentation
Battlezone
Atari, 1980
Battlezone is still a black and white vector game like the only marginally older Asteroids Deluxe and uses a similar cpu design setup for the game code. It does use several new hardware features, though, and is not just an iterative step forward from the previous Atari vector pcbs: a ‘math box’ is used for the 3D calculations, more sounds use the Atari ‘Pokey’ sound chip but most importantly the vector hardware design switched from the previous digital design to an analog vector generator. This AVG was not only a technical step for Atari back then. But from a ‘porting it to a Vectrex’ perspective was really nice since it meant that from now on the Atari vector hardware is technically similar to the Vectrex, which also uses analog vector hardware. In principle that should stabilize the video output quite a bit without manual intervention – and it did.
However, on the Vectrex the original output (Game Mode: Arcade) still shows several stability problems, both positional since e.g. the score digits are not drawn in one string but rather split up and drawn at different times of the frame. And ‘pumping’ issues since the game uses blinking text, esp. at corners, something the Vectrex really does not like. The positional problems were also visible for the ‘breaking glass’ player death animation, which was drawn sub-optimally too, and even the radar overview needed some handholding.
So besides figuring out the visual objects per frame and optimizing on a per frame basis – which fixes positional problems and allows for different screen orientations – the pumping issues are multi-frame problems where things have to be added in other streams to stabilize the picture. This is done not infrequently in the arcade game ports – Atari uses blinking texts almost everywhere, even in Asteroids. Battlezone simply is the best example where you can immediately see this behavior when using the ‘Arcade’ game mode displayed on a Vectrex so I wanted to mention this here specifically.
The ‘Stramash Zone’ game mode changes the Battlezone output to use the excellent overlay of Jim Watts’ (clockwork robot) game: the target overlay and the scores’ are gone and the clipping plane and general 3D output size adapted for the overlay.
Later update: I’ve played an upright Battlezone lately and its vector output is indeed more stable than a Vectrex. But… not perfect: the ‘pumping’ arcade output issues on the Vectrex are also visible playing an actual upright cabinet, so just more stable but visible there, too. And by mostly just reordering the drawing pipeline it became more stable on the Vectrex than an Atari cabinet using original roms.
Input
With two joysticks the original Battlezone setup is used: two (digital) joysticks up/down for the left/right tank tracks. Otherwise one digital joystick is used and the info. mapped onto the two tracks of the tank.
Options
- Game Mode: Arcade / Stramash Zone / Vectrex / Vectrex, Faster Speed
- Input: Digital Joystick / 2 Joysticks / 2 Joystick, Swapped
- Language: English / French / German / Spanish
- Missile: 5000 / 10000 / 20000 / 30000
- Reset Highscores
- Tanks: 2 / 3 / 4 / 5
- Game Info: ” Welcome to Battlezone, the arcade game by Atari. This game was groundbreaking due to the real-time generation of 3D objects by the aptly named ‘mathbox’ by Atari. The 6502 plus this coprocessor manage to generate a new command stream for a frame roughly every third actually displayed frame – and the framerate of Battlezone is also just 41Hz. So the game tries to run at around 13Hz, just barely enough for a smooth experience. Not a problem since you maneuver a very slow tank anyways. Since the game like Lunar Lander is too slow for my liking I have added two game modes again: either the original graphics output (with all gfx optimizations but output just like the original game does) or a Vectrex version which runs at 50Hz and also reorders or marginally changes the drawing to stabilize the picture. And in this Vectrex mode I have decided not to output every 4th or 5th frame twice to get the original game speed but allowed it to run faster.. “
Localization
//NAME="BZONE"
//
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, 0}
};
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, le jeu d'arcade d'Atari. Ce jeu a été révolutionnaire grâce à la génération en temps réel d'objets 3D par la bien nommée 'mathbox' d'Atari. Le processeur 6502 et ce coprocesseur parviennent à générer un nouveau flux de données pour une image sur trois environ - et la fréquence d'images de Battlezone n'est également que de 41 Hz. Le jeu essaie donc de fonctionner à environ 13 Hz, juste assez pour une expérience fluide. Il n'y a pas de problème dans la mesure où l'on manœuvre un char très lent de toutes façons. Comme le jeu à l'instar de Lunar Lander est trop lent à mon goût, j'ai à nouveau ajouté deux modes de jeu: l'un correspond à la sortie graphique d'origine (incluant toutes les optimisations gfx mais en conservant en sortie le jeu original), l'autre correspond à une version Vectrex qui fonctionne à 50 Hz en réorganisant ou modifiant légèrement les graphismes pour stabiliser l'image. Dans ce mode Vectrex, j'ai décidé de ne pas générer une nouvelle image deux fois toutes les 4 ou 5 images pour obtenir la vitesse du jeu d'origine, mais bien pour aller plus vite .. "}
};
ENGLISH[] = {
{ 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, the arcade game by Atari. This game was groundbreaking due to the real-time generation of 3D objects by the aptly named 'mathbox' by Atari. The 6502 plus this coprocessor manage to generate a new command stream for a frame roughly every third actually displayed frame - and the framerate of Battlezone is also just 41Hz. So the game tries to run at around 13Hz, just barely enough for a smooth experience. Not a problem since you maneuver a very slow tank anyways. Since the game like Lunar Lander is too slow for my liking I have added two game modes again: either the original graphics output (with all gfx optimizations but output just like the original game does) or a Vectrex version which runs at 50Hz and also reorders or marginally changes the drawing to stabilize the picture. And in this Vectrex mode I have decided not to output every 4th or 5th frame twice to get the original game speed but allowed it to run faster.. "}
};