Tobias Pfaff

Researcher. Game programmer. Stingray enthusiast.

SNES Multigame Flasher

When I wrote my SNES game, I needed to get the game into cartridge form. What I did first was to write the game binary onto an EPROM (using a normal EPROM writer). Then I opened a game cartridge, unsoldered the chip and replaced it with my EPROM. The SNES rom-chips have a slightly different pin assignment than the bread-and-butter EPROM you can buy, so some minor modifications to the cartridge board are needed. Actually, I did this twice, since I had an error in my rom binary (Normally, you would solder a socket on the board, but that won’t fit in the cartridge case, and I wanted the changes to be invisible) Anyway, after that project, I thought it would be nice to have a “flashable” cartridge, which you can just connect to the PC to upload a different binary. That’s was this project is about.

The picture on the left is the finished “flashable” cartridge module. The card that sticks inside the cartridge is a PCMCIA linear flash card. The picture in the middle shows the confusing wiring inside the cartridge. I soldered an chip connector cable in the place of the EPROM . On the right is a picture of my “programmer”. the cartridges go into the black slot in the middle. It connects to a PC by parallel port

The flashable multigame cartridge

4M (or bigger) of linear addressable flash memory is hard to get in non-SMD (which is hard to solder), but I found an 4M and an 8M flash card in PCMCIA-format, and liked that idea. So I integrated a PCMCIA tray (comes even with eject button :). The dip switches on the right are to switch between 2 or 4 small games on a big flash card and to set the addressing format (there is an interleaved and a continuos format, depending on the game). The big switch on top is to select read/write. The cartridge doesn’t feature a SRAM, however, which limits the games it can run (I originally wanted to add one, but didn’t find the time in the end)

The programmer

The programmer connects the cartridges 8bit data bus over a buffer to the parallel port. You can read out cartridge ROM oder SRAM (for the savegame data), and, if my “flashable” multigame-cartridge is inserted, you can program its flash card. Since the parallel port only has 8 data + control and status lines, the address is set by a 24bit counter chip on the programmer. To avoid more logic for expanding data lines to the PC, read/write and addressing mode is just selected manually by the onboard switches.

This post has been moved here from my old blog