Going back to the days of ITX computer case mods, I’ve had the desire to place a computer inside of a stock Super Nintendo case. Instead of the project being a simple case mod, I’ve wanted to configure the computer in such a way as to maintain a console playing experience, with the additional benefit of having a full-fledged computer under the hood. With the Raspberry Pi, I finally found a platform suited to the project’s needs.
When I came up with the concept in 2004, I had the desire to make an ITX case mod with some of the following features to make the SNES computer “feel” like a console, in no particular order:
- Have both of the case’s controller ports functional to all standard SNES peripherals, and have them work as they would on a stock console.
- Design the console to have a fully functioning cartridge port to read Game ROMS, and game saves, and to have the ability to write new game saves back to the cartridges.
- Minimize the cosmetic changes to the case, so that viewing the modified SNES next to a stock console would not throw off an untrained eye. Namely, I did not want to have PC ports cut poorly out the sides.
- Keep the hardware as simple, and solid state as possible. (Use the K.I.S.S method)
- Utilize the Power and Reset buttons as one would intend. Namely, don’t require the user to shut down the computer using the display. Have the Power button set up to safely shut down the computer. Also, have the Reset button reset emulation, and re-read the cartridge port.
- Set up an intuitive gaming interface. What is great about classic gaming consoles is you plug in a game, turn it on and play. One should not need to turn on the computer, wait until you boot into Windows, or a command line, and need to use a mouse, or console commands to find an emulator. The machine should turn on, and play a game, or load a front end. The SNES gaming portion should be front and center.
- Attempt to fully emulate the speed, and functionality of the original hardware. Where possible, allow for the improving of the original experience by offering image filtering, the use of save states, and other modern emulation goodies. With the base system being the base gaming experience of the original hardware.
What inspired me to take up the project after so many years with a Raspberry Pi was a Hack-A-Day post I saw where Florian wrote a C-Based Daemon to interface SNES controllers directly to the Pi’s GPIO bus. A spark went off in my head. When I wanted to make an SNES computer prior, all the the ITX boards I wanted to use were PC based, and the best I could use for GPIO was a standard PC parallel port, and it leaves much to be desired…
A couple of other advantages of using a Raspberry Pi is it’s absolutely small size, and minimal power requirements. Not only could I fit it inside of an SNES case, I could theoretically also power it using a stock SNES wall wart. Not to mention it also had analog video and stereo audio. Both are AV sources I could simply wire to a stock SNES AV port.. Also, with the Pi’s HDMI port, the thought was with not too much modification, I could add it to the back, fulfilling my desire to expand the features of the console.
View the video below for a brief demonstration of the completed project.
My code may be found through my repository on GitHub.
For a detailed explanation on EVERYTHING, read the following pages: