I Programmed My First Cartridge!

After about 2 months of collecting supplies, programming, and putting it all together, I finally got my first cartridge running on an Atari 2600! The game I put on there is Spider Web which I have been working on off and on for a few months. It is written in 6502 assembly and tested using the Stella emulator. It was so fulfilling to see this code that could theoretically work, actually work on real hardware!

An Unexpected Problem

Once I got my custom built Eeprom programmer to operate consistently and wrote my program to the chip, I threw my chip into a socket on one of my Pixels Past cartridge boards. To my dismay, it was causing the 2600 to display random colors on boot up and eventually go completely black after a few attempts.

I had initially thought that the 27C16 (EPROM) and the 28C16 (EEPROM) were pin-compatible, but after some closer inspection, it turns out that the Write Enable pin is in the same position as A11 (used on 4k chips). When the Atari starts up, its probably setting this pin LOW because it’s beginning the program from the 0x0000 address. Unfortunately, the Write Enable pin is active on LOW, probably causing the Atari to gradually overwrite the bits as it is attempting to run the program. I could confirm this afterwards by reading the ROM image from the chip on my programmer and seeing that many of the bytes had changed to 0x00 or 0xFF.

The Fix

In order to fix this issue, I had to cut the A11 trace to the cartridge slot and add a short jumper to go from WE to VCC (pin 21 to pin 24) on the cartridge PCB. It’s a fairly easy modification, but I wish I had known this before ordering the PCBs to be manufactured.

After rewriting the program to the chip and reinserting it into the cartridge pcb, I had reached success! The game booted up immediately and played exactly like it did in the emulator. I’m pretty stoked about this, and this success is just in time for the Pensacola Mini Maker Faire where I will be showing this project off.

Speaking of, I need to start working on the modifications needed to get 28C256 chips working on my programmer if I want to produce a couple of NES cartridges…