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.

7
Directory listing of the SD card
8
Loading screen
9
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:

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