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

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.

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 screenshot, inside fortress. Note how four spritesare 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)

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 ;)

Recently Collectorvision
got interested in publishing Space Raid in a very limited batch for both Atari
and Intellivision. Still there remains some copies of the
Atari batch.
The Intellivision version is sold out, Good Deal Games carries the
final copies.

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 :)