Turning a Raspberry Pi into an SNES

Back at the turn of the century, shoving MiniITX motherboards into just about everything was all the rage with the technologist crowd. [waterbury] had the idea of making a computer out of an SNES, but with the added ability of reading SNES cartridges. This idea had been floating around in [waterbury]’s head for years now, and with a Raspberry Pi he can finally make his project a reality.

After desoldering a cartridge connector from an original SNES, [waterbury] plugged it in to a piece of perf board and started to figure out how to actually read the cartridge. An SNES cartridge need 16 address pins, 8 data pins, 8 bank control pins and 4 other control pins to be read; a total of 36 pins that [waterbury] accessed with the help of a neat I/O expander and a whole bunch of level converters.

[waterbury] accessed these data, address, and control lines via the Raspberry Pi’s I2C interface, a non-trivial task that took 70 minutes to read Donkey Kong Country before he found a way to speed up the Raspi by a factor of two. You can check out [waterbury]’s complete project – able to read cartridges and play roms with EmulationStation after the break. Also, the code for the cart reader is available on [waterbury]’s git
.

Interesting. Sucks that it takes so long to read the cart, but it’s good as an educational project on dumping the carts from scratch.
The faster (and probably more expensive) method would have been to get a Retrode and plug it into the USB port on the Raspi. Provides access to the cart ROM (and SRAM!) as standard .smc/srm files via an emulated USB Mass Storage device – and yes, the srm file is writable. Also provides controller interfaces for original SNES controllers via standard HID gamepad profile.

I do love how you fit it all in the original case. Sleeper emubox!
This is easily the best project I’ve seen for a SNESpi box, especially making use of the power/reset switches.
Also, kudos for keeping one of those Commodore CRTs around, fantastic little displays.

Thanks! It doesn’t play Super FX games very well, unfortunately. The old build of SNES9X that runs fairly decently doesn’t support FX games, and RetroArch/PocketSNES is rather slow even with standard games. It’s just the state of SNES emulation on the Pi at the moment, which is a shame. I’m hoping the platform is capable of faster emulation with optimizations.