We have been working the last 4 Weekends on a cool side project – we built a DIY Super Nintendo development hardware. As a SNES Programmer or SNES Nerd you always want to run your code on the orignal hardware. But this is only possible using old backup stations from the 90ies like the Super Wild Card or Game Doctor. But all these tools lack cool features like SD Card support, USB connection or real time debugging. I own an old Super Wild Card and its a pain in the ass. I can’t get the parallel port connection working and so i have to use the builtin floppy drive 🙂 There are newer projects around, but either not working or not really cool.
So we decided to build our own hardware. Today we got our proof of concept working. Its based on a STK500 setup using a ATmega16 (Ja.. I fried the ATmega32 while setting the fuses..). Attached is a SD Card and a home cooked memory bus driver for one 512k SRAM Chip. Both the ATmega and the SNES memorybus are connected to this SRAM via busdrivers. The ATmega does the housekeeping and manages the access to the RAM. To save IOpins on the ATmega side, we use shiftregisters and counter to set the adress. On the SNES side its connected to a Snes Multi Cartridge Adapter. One slot holds an orginal game, so we can use the lockout chip from there and solder the data and address from the other slot to our memory interface.
Now we are able to upload a 2Mbit SNES rom. A mario sprite on flashing background. We load this rom image from the SD Card and write it to the attached SRAM. When this is done we switch the busdriver and connect it to the SNES memory bus. Today we got the demo working. See the video and pics.
We did like 3 other proof of conecpts before to get this working.
- Interface external SRAM with an ATmega8
- Access SD Card with an ATmega8
- Dump an orginal SNES Cartridge with an FTDI based solution
- Put all this together on the STK 500
[flash]http://www.vimeo.com/4011976[/flash] Watch the Video on vimeo to get HD and see the console output
Right now we are planing the features for version 0.1. Its mainly to get a good hardware design the cool software features are planed for version 0.2
- ATmega 644
- 4mb SRAM
- Address Counter
- Address SREG
- LO/HI Rom support
- Lockout Chip
- Save game SRAM
- SD Card Support
- Software USB
- USB Upload Client
- Software Mode Switch
- Remote Reset
The Project is hosted at Assembla.com
And the poc code is here and here