Atari 2600 SRAM Cartridge

In the past month I’ve worked on a little project I came up with in December: I wanted to build a game-cartridge for the Atari 2600 which is based on a SRAM and where the ROM-data is read from a SD-card.

Directory listing of the SD card
Loading screen
A running game


Stuff that is working:

  • Browsing the SD-card by four buttons and selecting a ROM image on a 1.8″ SainSmart LCD.
  • Running the image after loading.
  • Updating the Arduino-software by removing the Arduino-board and plugging it into a FTDI adapter.


Stuff that is not working:

  • No bankswitching, this means no images >4KiB.
  • The LCD backlight is flickers when loading stuff from the SD-card. As this only happens when plugged into the Atari I think it’s a power issue.
  • Random crashes from time to time. I assume a not-so-good soldering spot and/or mechanical instabilities because of the form factor. icon_smile.gif
  • Does not work on an unmodified Atari 2600. That’s because I did not find a way to reset the Atari CPU from the module slot and the data and address-lines are not usable during upload. I did a small mod which enables me to reset the Atari JR by switching it to TV-channel 3 and back to channel 2 again.


How does it work:

  • The Arduino uses SPI for the SD-card and the display.
  • The address and data lines are separated from the Atari with three 74LS244.
  • The ROM data is uploaded by using a MCP23017 I2C IO-expander and some of the IO-lines from the Arduino.
  • After upload and validation of the SRAM contents the data and address lines are reconnected and the lines from MCP and Arduino enter tristate.
  • A 47LS00 NAND handles the R/W, CE and other control lines of the 6264 SRAM


But WHY?

I have no idea! I just had the idea back in December and all the parts already laying around…

I won’t use it to play games as I own a proper number of modules and I’m certainly to lazy to learn stuff like batari basic


Take a look at the schematic if you like:

The backside with the buttons
Copper detail
An early development stage (backside)
An early development stage (frontside)
Research: what happens on the data/address lines of the Atari with a real module
Research: what happens on the data/address lines of my SRAM when uploading a ROM file