Skip to content
A reverse engineered, complete, and fully documented assembly language source code of STAR RAIDERS
Branch: master
Clone or download
Latest commit 69205ac Oct 27, 2017

Reverse Engineered And Fully Documented STAR RAIDERS Source Code

STAR RAIDERS is a seminal computer game, published by Atari Inc. in 1979 as one of the first titles for the original Atari 8-bit Home Computer System (Atari 400 and 800).

During the last years, as a hobby afterhours project, I reverse engineered a complete, extensively documented assembly language source code of STAR RAIDERS. I reverse engineered the source code directly from the binary file of the ROM cartridge, finishing it in September 2015.

This repo contains both the reverse enginered assembly source code input (StarRaiders.source.asm.txt) and output (StarRaiders.source.txt).

You may find this useful if you are curious about the internals of STAR RAIDERS or if you are planning to make your own, modified version.

After very positive reader feedback on the initial release of my reverse engineered source code I reviewed it again, resulting in a minor update.

Enjoy -- Lorenz

PS: I was absolutely thrilled to learn that in October 2015 scans of the original STAR RAIDERS source code re-surfaced.

To my delight, inspection of the original source code confirmed the findings of my reverse engineered version and caused only a few trivial corrections.

Even more, the documentation of my reverse engineered version adds a substantial amount of information - from overall theory of operation down to some tricky details - to the understanding of the often sparsely commented original (quite expected for source code never meant for publication). So, if you are interested in learning how STAR RAIDERS works, my reverse engineered source code could be of help to you.

Genome Sequence

The picture below shows the "genome sequence" of the reverse engineered STAR RAIDERS 8 KB ROM (which I prepared for a publication). I stacked the 8192 bytes vertically, with each byte represented by a tiny, solid horizontal line of 8 pixels. Then, I split the stack into strips of 192 bytes, arranged side-by-side. The segments of the stack are color-coded:

  • Code (main game loop and subroutines) is in alternating shades of blue.
  • Data (lookup tables, texts, etc.) is in alternating shades of green.
  • Bitmap data (Player-Missile shapes and character set) is in alternating shades of purple and the solid line of a byte is replaced by its actual bit pattern.

References to This Project

You can’t perform that action at this time.