Space Raid: isometric game for Atari VCS/2600

Many years ago, Sega had a great success with an all-new game: Zaxxon, that represented a 3D perspective using an isometric view, now largely forgotten.
Like with most succesful arcade game of eighties it got adapted to several home consoles, like Atari VCS, Colecovision and MSX
Zaxxon arcade screenshot
Zaxxon arcade screenshot
Unfortunately the Atari VCS or 2600 is very limited in its graphics display and the programmers did a conversion barely resembling the original. In particular the isometric perspective was changed to front view.
Zaxxon for Atari VCS screenshot
Zaxxon for Atari VCS/2600
For years many people has asked the Question (with big Q), was the conversion all what the console could do? or simply programmers went out with the first thing they could develop? (check Zaxxon thread at Atariage or Zaxxon article at Ataritimes)
Myself I asked same question and seeing that nobody was doing anything, I took matter into my hands :) and I started coding Space Raid

Coding 6502

The Atari VCS console is based around a 6507 processor, it's the same as a 6502 processor but with an address bus limited to 13 bits and no interruption lines. So game cartridges are limited to 4K ROM or using a mapper for bigger ROM, I decided to stick to the 4K ROM limit. Also there are only 128 bytes of RAM.
Having myself some experience with 6502 processor I choosed the DASM assembler, but I was in the dark about the Atari peripheral chips like TIA 6526 and PIA 6532, fortunately I found widely available information like the Stella documents (code name of TIA 6526) and the Nocash 2k6 specifications.
The video chip is very primitive for today standards, it generates by itself one line of video but everything else must be done by the software!
The software must write registers for each one of the 262 scanlines (NTSC frequency) or 312 scanlines (PAL frequency), besides there are only available seven graphical elements: background color, playfield (20 bits scaled), two players (8 bits graphics each one), two missiles (one pixel) and one ball (one pixel).
Besides the processor only has 76 clock cycles to calculate each scan line and stay in sync. The programmer must count cycles for each instruction and be sure he doesn't exceed the limit.
Obviously a space game like this needs more than two sprites, so I had to code a visualization kernel able to show various sprites using the two players. The trick here is that no more than two sprites can be in one line at same time.
The architecture makes the programmer to think completely different when developing a game: visualization IS the core, its limitations shape the game that is built around it. For 200 visual lines the processor is fully busy doing visualization and along the other 62 lines is when we've time for doing the game logic. A little error in synchronization and the screen in real hardware starts rolling up.
Space Raid for Atari VCS screenshot
Space Raid screenshot, inside fortress. Note how four sprites
are generated using only the two "players" :)
Coding started in September 24, 2013, same day I've done the drawings for all elements. First thing was the player spaceship moving around the screen, the result was so good that it convinced me I was in the right path.
Could exist three enemy planes in screen? I made tests and it was possible, the isometric view made possible to put sprites while not exceeding more than two inline :), the hardest part was to switch graphics in the kernel (remember: only 76 cycles per line! barely 38 processor instructions)
With the visualization core fully operative, I started coding fortress scrolling, an optimized representation for levels, enemy waves, enemy shooting, Game Over screen, player bullet, score for destroying enemies, force fields, boss, tracking missile and silo missiles.
I even took some hours of night to polish the sound effects until I got the best ones using the two available channels of sound.
I was so happy that I published that incomplete version in Atariage for everyone to enjoy, you can follow progress in the original Atariage thread for Space Raid and the good receipt it got.
Afterwards I made the enemy shots and crashing elements to destroy player, difficulty setting, plus lots of enhancements and corrections. Even PAL and PAL60 version :).
In every pass of development I had to reoptimize my routines to save precious bytes and do further enhancements. Main development was finished in October 6, 2013.
At the end I'm pretty satisfied that my very small 4K game resulted in a much better game than the eighties one that besides misused 8K ROM.
And finally after all these years I believe I've settled the matter: yes, Zaxxon for Atari could have been done better.
Afterwards I've continued with development with an 8K version that includes lots of enhancements ;)
Collectorvision got interested in publishing Space Raid for Atari and Intellivision and these physical copies are now sold out.

Intellivision version

Coleco also published a translated version for Intellivision that has same weird first-person perspective.
So it was almost natural for me to try getting Space Raid ported to Intellivision, I had to learn a new processor, namely the CP1610, a new assembler and a new video processor. It took me some months to get started.
At the end when the game started working then I announced it in the Atariage forums :)
The game is sold out.
Space Raid for Intellivision demo
Space Raid running in Intellivision emulation.
Scaled animation courtesy of GroovyBee

Downloads

You can download here the game to play with an Atari emulator like Z26 or Stella, or over a real Atari if you use a Harmony cartridge.
Here is a video of an older version of the game in action done by Kiwi from Atariage forums:

Curious facts

There are other Atari games called Space Raid, these are bootlegs of the original game Megamania.
I've licensed Space Raid for inclusion in Atari Flashback 9 Gold, Legends Flashback Blast and Atari Flashback Portable (80 games).

Related links

Zaxxon is a registered trademark of Sega.
Last modified: Dec/03/2018