VecFever documentation

< All Topics
Print

Asteroids

Atari, 1979

Asteroids is the most important vector game ever developed, period. To me the best arcade game of the 1970s, maybe even of the entire golden age of arcade games. Definitely in the top 10 golden age arcade games list of most people out there. I could go on for ages – it is even a clear offspring of the very first cpu-based computer game, Spacewar!, it is perfectly suited for vector hardware, it is not an easy game but not too hard, the usage of extreme brightness for the shots looking like a plasma fireball is fantastic (something no raster display can match even today), the monochrome vector display output super sharp and for a space themed game felt just right in the 1970s – the lunar lander video from NASA of the 1970s was in black & white after all, too, and prominent in my mind back then, Atari even developed a Lunar Lander game in the very same cabinet and only stopped building it because Asteroids turned out immediately to be such a huge success, the very first Asteroids even had Lunar Lander sidearts, the…

I better stop myself, I am not kidding when I say I could go on for ages. So let’s just say I can sing the praise of Asteroids with the best of them and this is my #1 game – it also influenced a lot of other games and started an Atari ‘Asteroids’ series: the vector games Asteroids Deluxe and Space Duel (both very nice) and a raster game, Blasteroids.

So if you never played it: do play it !

In a very real sense I have come to realize that my Vectrex hobby – I have seen my first Vectrex in the summer of 2015 – is due to Asteroids. Immediately after playing that Vectrex I had bought two for myself and started figuring out how to program it and at the same time developed the very first vf since I could get no multicart. anywhere. It took me a while, though, to see that I started what I’d term my very own version of a cargo cult: on a subconscious level I was trying to convert a Vectrex into ‘the real’ thing of my childhood: Atari Asteroids. So by using a Vectrex and becoming ever more proficient at throwing technical incantations at it it just might suddenly become an Asteroids.

And in a way it did – not only did I program a 6809 version of Asteroids (Rocks ‘n’ Saucers) but eventually got the original Asteroids code to run and output on the Vectrex. My personal highlight was that I got proficient enough using this version to get the maximum score – 99990 – and then when visiting a local collector with the real thing was able to also get 99990 on there, too. And Asteroids on the Vectrex felt just like playing on the upright 🙂

This was enough to satisfy my Asteroids yearning for quite a while but lately I’ve bought and restored Asteroids cabinets since I not only want to simply own and play them but also look at them as a ‘large Vectrex’ in a way, too. Thank you, Chris Parsons, for notifying me of the dead but complete cabaret nearby (now fixed & restored) !

Speed Hacks

One downside of Asteroids for operators was that some people after a while could marathon the game – play forever – tying up the cabinet and not earning anything anymore for them. Atari developed increasingly harder romsets to combat this problem – revision two and four (three never surfaced so far) – but they only changed the behavior of the small UFOs (and fixed the 10th score entry bug of rev.1). This made the ‘lurking’ strategy – where you stay like a bird of prey at the very border where the UFOs pop out of and kill them once they appear repeatedly – much harder. But not other strategies, esp. not the one I use: the ‘flying very fast perpendicularly to the UFO movement vector, ideally half a screen-width away’ one I feel most comfortable with.

Back in the day operators sometimes applied ‘speed hacks’ to the Asteroids pcb to increase the speed of the game and thereby making it harder. This absolutely works: I can play normal Asteroids relatively stress-free once I am in the zone but increasing the speed 20+ % makes it much more challenging for me. Strangely most of these hacks have never been documented but from what I’ve read I know that some overclock the pcb so I’ve added this mechanism as an option. Then I came across my first speed hacked pcb when my Asteroids upright arrived, which used a naughty, quite different method:

You can’t beat snipping off a ttl leg for cost, that’s for sure, to get a speed hacked Asteroids: by doing this the preset was upped from 4 to 6 for the nmi divider (so the nmi is every 10th 3khz cycle, not every 12th). However you starve the Asteroids code of cycles – esp. when a lot is floating around some weirdnesses might happen. This, however, happens very rarely. I saw collision calculation problems – not being killed by an Asteroid or sometimes the ship exploding incorrectly. But very, very rarely .. and the game is much harder since it is so fast which is all that counted for the operator. So to document this behavior I both wanted to explain what was done here.. and.. added this as an option to Asteroids, too.

High Scores

Asteroids uses a high score table with ten entries of three letters and five digits for the scores, well, four digits plus a trailing zero. Which was a new thing back then, actually, and the sequel Asteroids Deluxe was marketed as having ‘six digits’. Which is one reason why I have not expanded the high score table to use and display more digits: to me this is part of Asteroids and I only ever play to get a perfect score – the maximum possible 99990. Which isn’t all that hard but not all that easy, either, so a challenge still. Quite frequently I bungle it and have to roll over the score and do better the 2nd time around. But then Asteroids to me is not a game to play for an ultimate high score – I just love drifting around those asteroid fields and sometimes being harassed, sometimes being on top of my nemesis: the small UFO.

The original Asteroids pcb does not store those scores (I do, though) and on the rev.1 romset a byte of the last table entry was even overwritten accidentally when starting a new game, this bug was fixed in rev.2 – another thing I’ve kept as a historical tidbit.

The real reason why I haven’t expanded the score is that I just do not care for marathon gaming of this extreme nature myself: you can play Asteroids for as long as you stay awake, basically, and have to manage your lives. You cannot gain enough lives to sleep for a while, for example, but enough for short breaks. This gaining enough lives is actually even more precarious because once you get a lot of lives the games slows down a bit – which might be good – but also crashes eventually if you have too many. Not so good when you are struggling on your feet after who knows how many hours of play.

John McAllister played for 58 hours straight to achieve his 41336440 score. And in videos I’ve seen he looked totally out of it at the end, unhealthy to do to the extreme. But, and I’ve learned this only afterwards: he most likely has used a speed hack – as did other marathoners before him – because people looked at the videos and compared scores achieved per hour. And not one of the high scorers documented what they used. Don’t get me wrong – Asteroids at a faster setting is not an easier game, obviously, just if you are fantastically good at it you can get a few more points per hour you can keep yourself awake. But to me this is just not really appealing – but I do applaud McAllister for being that good at the game ! And I applaud Asteroids for being alluring enough decades after it was developed to lure in a player to play for days 🙂

How to Win at Asteroids

Despite the fact that most Atari programmers and engineers are extremely conservative players, they can be handy people for an Asteroids player to know. Following is a list of hints, tips, and company secrets that ought to improve your game.

1. If you want to sound as if you know what you’re doing when you play Asteroids, you can throw around some of the in-house slang that has grown up around the game. At Atari, the little flying saucer is called Mr. Bill; his big brother is Sluggo. Mr. Bill and Sluggo are also known as drones, which is a company word for the “computer-controlled intelligences” in video games. Turns or plays are known as lives. Each new series of asteroids is called a wall or wave. Individual asteroids are referred to as rocks.

2. Sluggo fires at random; Mr. Bill aims. “Mr. Bill knows where you are, and he knows what direction you’re moving in, ” explains programmer Ed Logg. “He takes this information and picks a window bounded a few degrees on each side of you, and then shoots randomly inside of that. For this reason, you should never move straight at him. It makes you bigger relative to him. The farther away you are, the smaller a target you are. “

3. The higher your score is, the more accurate Mr. Bill becomes. When your score reaches 35,000, he narrows down his firing window and increases his chances of hitting you.

4. Although Mr. Bill aims at you, he doesn’t fly at you—at least not on purpose. His movements, like Sluggo’s, are randomly determined within well-defined limits. His horizontal speed is always the same, which means he moves faster when he changes his angle of movement—something he does every second or so.

5. The first wall in an Asteroids game consists of four rocks, the second of six, the third of eight, and all succeeding walls often. (In Asteroids Deluxe the sequence is six, seven, eight, nine.)

6. The position, direction, and speed of the rocks at the beginning of a wall are random within a certain range. Contrary to what many players believe, the rocks do not speed up as the game progresses.

7. Every large rock contains two medium-sized rocks, each of which contains two small rocks. Smaller rocks are positioned at random within larger ones. When a moving rock breaks up, the smaller rocks that constitute it will tend to move in the same direction the larger rock was moving in (“There is conservation of momentum,” Ed Logg says), although pieces will occasionally break off in the opposite direction. It is safer to fire at rocks that are moving away from your spaceship.

8. Your spaceship can fire up to four shells at a time. Once those shells have been fired, you can’t shoot again until one of them either hits something or dies of old age. The lifetime of a shell is somewhat shorter than the time it would take it to travel all the way across the screen.

9. Because your ship’s gun reloads every time one of your bullets hits something, you can sometimes fire in long, satisfying streams if you aim carefully at compact clusters of rocks.

10. If you are moving forward when you fire, your shells travel faster than they do if you are standing still. If you are moving backward, they travel more slowly.

11. Ed Logg’s space, like Albert Einstein’s, is curved: any object that disappears off one side of the screen reappears at the corresponding point on the opposite side. It is thus possible (and often desirable) to destroy objects by firing away from them. (This fact, sadly, is one of the keys to the odious lurking strategy.) In the original Asteroids, Mr. Bill does not take advantage of this wrap around effect, aiming only “into the screen” even when he would have a better chance of hitting you by firing off the side.

12. No rock moves straight up and down or straight across the screen. If the rocks were allowed to do that, it would be possible to have on the screen a rock that you wouldn’t be able to see. As is also true of your television set, the picture on an Asteroids monitor is usually somewhat larger than the screen. This means there is sometimes a fairly wide margin of invisible space around the edges of the visible image. If the rocks could travel parallel to either of the axes, you could have one in the invisible margin and never find it unless you hit it by accident.

13. When you push the Hyper Space button, you have approximately one chance in five of blowing up on reentry, even if you rematerialize in an empty section of the screen. Players who rely heavily on Hyper Space are taking their lives into their hands. The best players use the button only in dire emergencies.

14. If your favorite Asteroids machine one day seems faster than usual, the operator may have installed a modification kit to speed it up. These kits increase the speed of all moving objects on the screen (including your spaceship and its bullets) by close to 50 percent.

15. The maximum number of objects that can appear on the screen at one time is thirty-five: twenty-seven rocks, one drone, two drone bullets, your spaceship, and four of your spaceship’s bullets. With any more objects than that, the computer wouldn’t have time to make the necessary calculations, and the game would visibly slow down. As it is, if you get close to thirty-five objects, you can sometimes do things like destroy big rocks with single shots—one of the most rewarding experiences the game has to offer. â€”D.O.

Romset Revisions

The initial romset revision – rev1 – does not yet have a copyright text but outputs the name of the game instead so is immediately recognizable if you see it in the wild in an arcade cabinet. This text is also only displayed during attract and not during actual gameplay. It has a known but quite unimportant bug: the last letter of the last initial of the high score table is overwritten when starting a new game. And most importantly: the small ufo starts shooting ‘quite late’ when flying into the screen and only shoots into the screen towards the player. Which opens up the possibility for a ‘lurking’ strategy where you can lurk at the border of the screen and shoot it somewhat easily.

The 2nd revision is an entirely, newly compiled version and fixes the high score bug, the standard Atari copyright text is now printed always, also during gameplay, and the small ufo shoots sooner when being spawned. The ‘draw it always’ decision was for legal reasons and burned itself into a lot of Asteroids phosphors out there. Not that problematic: the high score table burned itself into the phosphor, too, more often than not, and is more noticeable. For me this is the best version to play.

The 4th revision (based on labels on the rom chips – a 3rd rev. never surfaced) is not a recompile but a smallish adaptation of rev.2 of the ufo behavior code and is the hardest: here the small ufo shoots not only inside the screen but also across the border which makes it an even more effective, little killer. This is somewhat in-sync with the small ufo behavior in Asteroids Deluxe – but there it also shoots every 4th shot directly at asteroids or the snowflake. And anyways, in Asteroids Deluxe you have a shield which makes dealing with these incoming, precise, immediate shots a fairer affair.

Input

Attract

  • 2: start two player game
  • 4: start one player game

In-game

‘Buttons’ input option

  • 1: turn left
  • 2: turn right
  • 3: thrust
  • 4: fire
  • holding all four buttons: hyperspace
  • joystick y: hyperspace

‘Digital Joystick’ input option

  • joystick left: turn left
  • joystick right: turn right
  • 2: hyperspace
  • 3: thrust
  • 4: fire

‘Analog Joystick’ option

  • Joystick: ship swivels to the direction pointed towards
  • 2: hyperspace
  • 3: thrust
  • 4: fire

Options

  • Input: Buttons / Digital Joystick / Analog Joystick
  • Language: English / French / German / Spanish
  • Lives 3 / 4
  • Reset Highscores
  • Speed: Normal / Slower / Faster / Faster, NMI-Hack
  • Text: Normal / Terse
  • Brightness: Debris / Playfield / Shots / Ship&UFO
  • Game Info: ”                           Welcome to Asteroids, the 1979 Arcade game by Atari.     This is without a doubt in my mind a masterpiece and the best video game of the 1970s, if not of the entire golden age of arcade games. The visuals are simple but mesmerizing, the sounds again simple but fitting (and the deep rumble of the explosions a lot better on a real cabinet compared to what a Vectrex can output so do try to play the real thing if you have got the chance). Just. Perfection.                As you can tell I am a fan and even though I have programmed a Vectrex-native version I just had to also develop an as-perfect-as-possible emulator for the Vectrex to celebrate the 40th anniversary of this groundbreaking game.                Technically Asteroids is also remarkable: it uses a dual CPU setup with some shared RAM and the second CPU – the digital vector generator – draws everything. In a very real sense this Vectrex version is internally the same and the Vectrex does the work of this vector processor whereas the cartridge emulates the 6502 part and generates output handed over in a shared RAM.                Thanks again to Graham Toal for his initial help and especially David Welch for his Asteroids for the iPod. Darryl Hirschler was kind enough to play/compare against an upright Asteroids cabinet and asked for the two player option.                                         “

Localization

//NAME="ASTEROIDS"
//

GERMAN[] = {
    { 0, 0, "Geschwindigkeit"},
    { 0, 0, "Langsamer"},
    { 0, 0, 0},
    { 0, 0, "Schneller"},
    { 0, 0, "Schneller, NMI-Hack"},
    { 0, 0, "Helligkeit"},
    { 0, 0, "Schüsse"},
    { 0, 0, "Spielfeld"},
    { 0, 0, "Schiff/UFO"},
    { 0, 0, "Explosionen"},
    { 0, 0, 0},
    { 0, 0, "Text: Gekürzt"},
    { 0, 0, 0}
};

FRENCH[] = {
    { 0, 0, "Vitesse"},
    { 0, 0, "Plus Lente"},
    { 0, 0, "Normale"},
    { 0, 0, "Plus Rapide"},
    { 0, 0, "Plus Rapide (NMI)"},
    { 0, 0, "Luminosité"},
    { 0, 0, "Tirs"},
    { 0, 0, "Aire de Jeu"},
    { 0, 0, "Vaisseau/OVNI"},
    { 0, 0, "Débris"},
    { 0, 0, "Texte: Normal"},
    { 0, 0, "Texte: Concis"},
    { 0, 0, "                           Bienvenue dans Asteroids, le jeu d'Arcade d'Atari sorti en 1979. C'est sans nul doute selon moi un chef-d'œuvre et le meilleur jeu vidéo des années 1970, sinon de tout l'âge d'or des jeux d'arcade. Les graphismes sont simples mais captivants, les sons, simples eux aussi, sont appropriés (et le grondement des explosions est bien meilleur sur une vraie borne que sur un Vectrex; alors ne manquez pas de jouer au vrai si vous en avez l'occasion). C'est juste la perfection. Comme vous pouvez le constater,  je suis un fan, et même si j'ai programmé une version native au Vectrex, j'ai dû développer un émulateur aussi parfait que possible pour le Vectrex afin de célébrer le 40e anniversaire de ce jeu révolutionnaire. Sur le plan technique, Asteroids est également remarquable : il utilise une configuration à deux processeurs avec partage d'une petite quantité de mémoire vive et le second processeur - le générateur de vecteurs digital - dessine tout. De façon très concrète, cette version sur Vectrex est la même en interne: le Vectrex fait le travail de ce processeur vectoriel tandis que la cartouche émule la partie 6502 et génère une sortie transférée dans une mémoire vive partagée. Merci encore à Graham Toal pour son aide initiale et surtout à David Welch pour son Asteroids destiné à l'iPod. Darryl Hirschler a eu la gentillesse de jouer/comparer les résultats obtenus avec une borne Asteroids verticale et a demandé l'implémentation de l'option 'deux joueurs'. "}
};

ENGLISH[] = {
    { 0, 0, "Speed"},
    { 0, 0, "Slower"},
    { 0, 0, "Normal"},
    { 0, 0, "Faster"},
    { 0, 0, "Faster, NMI-Hack"},
    { 0, 0, "Brightness"},
    { 0, 0, "Shots"},
    { 0, 0, "Playfield"},
    { 0, 0, "Ship/UFO"},
    { 0, 0, "Debris"},
    { 0, 0, "Text: Normal"},
    { 0, 0, "Text: Terse"},
    { 0, 0, "                           Welcome to Asteroids, the 1979 Arcade game by Atari.     This is without a doubt in my mind a masterpiece and the best video game of the 1970s, if not of the entire golden age of arcade games. The visuals are simple but mesmerizing, the sounds again simple but fitting (and the deep rumble of the explosions a lot better on a real cabinet compared to what a Vectrex can output so do try to play the real thing if you have got the chance). Just. Perfection.                As you can tell I am a fan and even though I have programmed a Vectrex-native version I just had to also develop an as-perfect-as-possible emulator for the Vectrex to celebrate the 40th anniversary of this groundbreaking game.                Technically Asteroids is also remarkable: it uses a dual CPU setup with some shared RAM and the second CPU - the digital vector generator - draws everything. In a very real sense this Vectrex version is internally the same and the Vectrex does the work of this vector processor whereas the cartridge emulates the 6502 part and generates output handed over in a shared RAM.                Thanks again to Graham Toal for his initial help and especially David Welch for his Asteroids for the iPod. Darryl Hirschler was kind enough to play/compare against an upright Asteroids cabinet and asked for the two player option.                                         "}
};
Table of Contents