Atari 2600 programming

Here is my hobbyist programming work for the Atari 2600 video game console system.

This work owes many thanks to the helpful and knowledgeable folks on the Stella mailing list.

To play an Atari 2600 game, you'll need an emulator of course. I like Z26 for Windows. There is also Stella for many platforms.


My major Atari 2600 project is a game called INV+, a clone of Space Invaders.

inv-plus.png - 1kb

Click the image or this link to download the binary and 6502 assembler source code. To play the binary, use an Atari 2600 emulator.

You can buy INV+ in cartridge format to play on a real Atari console at the wonderful AtariAge store.

Inv3 demo

Yeah, I know the invaders above look pretty blocky. Within the Atari video hardware, they are not sprites. They're drawn using the system's low-resolution background graphics, objects intended to draw the environmental maze in games like Combat and Pac-man. So I came up with this demo showing that 11 x 5 arcade-accurate invaders are indeed possible on the 2600.

inv3.png - 2kb

Fifty-five actual sprites on the screen? (That screenshot is showing that the kernel has the ability to turn on and off individual invaders.) That's unheard of on the Atari 2600. My trick was self-modifying code: the invaders are drawn by copying code into RAM and replacing sprite write instructions with no-ops for any missing invader.

I never developed this into a full game, but it's interesting as a tech demo. Download the binary and 6502 assembler source.


Here's another tech demo showing how the Atari 2600 (a system whose technology predated the NES by eight years) could come pretty close to generating NES level graphics like in The Legend of Zelda.

zdemo.png - 3kb

Download the binary and 6502 assembler source.

River Rampage

Finally, here's a tech demo showing how much visual firepower the Atari 2600 can really put out. It's a supercharged takeoff/clone of the well-known game River Raid.

rrampage.png - 3kb

This one looks MUCH better in motion, so I highly recommend grabbing the download and seeing it for yourself in an emulator.