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


18 thoughts on “Turning A Raspberry Pi Into An SNES

    1. I go into that in the blog. It came down to the complexity of running bus wire on a perf board. If I ever redo this on an etched PCB I could wire things ALOT better.

    1. No. It rips all of your carts, saves them, then allows you to play them through emulation. Read the guys blog. Very good read with lots of info. Awesome hack! Kudos to waterbury!

    2. I know this article was long but keep trying and eventually you’ll learn how to read a complete article.

      Reading the carts is the hard part. After you’ve read the cart you can play the game using one of many different emulators.

  1. 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.

    But then, when the work’s already done, where’s the fun in that?

    1. I love the Retrode, and the history of it, but it was cost prohibitive for this project, I’d have to modify it to fit in a stock SNES case, and you’re right. It takes all the fun out of it. ;)

      1. 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.

    1. 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.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.