Oct 8, 2012

RasPiSNES

Recently I've bought a Raspbery Pi to make some little XBMC (a software media center), but after fiddling with it for a week, ideas started to appear.
As some of my hobbies include eletronics and old video-games (notably Super Nintendo), the project that come after was very appealing to me... to make an emulated SNES running on Pi, inside an old SNES case.
Some premises were:

  1. To use as many original components as possible;
  2. Original and unmodified controllers (using gamecon_gpio_rpi driver) ;
  3. Improve original console with save/pause functions;
  4. Use the console buttons in the same way as intended (Power, Eject, Reset) and
  5. Keep RasPi ports accessible.
 To solve #1, MercadoLivre to the rescue (an eBay member in Brazil), find and buy one non-working SNES.
 The item #2 was already explained. Thanks a lot to the author!
 The buttons in #3 and #4 needed a driver, but with Raspberry Pi the pins already have so many API´s to use that I could not resist to just "Keep It Simple" and have adapted an existing python script to fill my needs. Here you can get a copy of the used script.
 At last, but the majority of work done here, #5 was comprised by the RasPi port extensions on the case, pictured below.

Besides Super Nintendo, the RasPiSNES is able to emulate Atari 2600, Nintendo, Sega Master System, Genesys (Sega MegaDrive) and some others with the EmulationStation frontend, thanks to RetroPie script.

 Here are some photos of the RasPiSNES, somewhat ugly inside, but very functional.


 From left to right (Up row):  2xUSB, Control Buttons (Save, Load, Slot-, Slot+, Pause)
(Down Row): Audio out, LAN, HDMI, Power and Composite out.

On the right is the SD Card

Emulator screens: Atari 2600

 Emulator screens: Super Nintendo

 Emulator screens: A good old game!

Inside View, some wires and an auxiliary board to connect the inputs

 Top View, with rewired power, and Eject/Reset connecting to GPIO on RPi

Update: On the second part, we get into the schematics of this project.

7 comments:

  1. Hi, it's great!

    I have a question,are Snes roms playing at original fullspeed?

    ReplyDelete
  2. All roms that I have tried until now on the SNES emulator ran at what seems the original speed.

    ReplyDelete
  3. ok!

    Havo you overclocked your Pi? changed any retroarch settings? what about the sound quality?

    ReplyDelete
  4. It is running at 800MHz (modest overclock option in raspi-config). In retroarch, the only changed config is the load savegame key, from f4 to f3, so it does not quit emulationstation.
    Most games run perfect, and when don´t, sound quality with hdmi is better than analog audio output, but a few games have audio issues, like intermittent output. I hope that these audio issues will be solved soon in newer retroarch versions.

    ReplyDelete
  5. Hey, awesome job :)

    Im looking to do something very similar with my SNES (EU version)

    Some of your pictures seem to have broken links, I'm really interested to know in detail what you have done to rewire the power?

    ReplyDelete
    Replies
    1. Thanks for the broken link reports. The second post: RasPiSNES - Design have the connections, including schematics for power. Feel free to add me on gtalk so I can help you better, and then bring more information here.

      Delete

Share your thoughts about this workpiece