Building a Mini SNES Emulator with Raspberry Pi and Retropie

As I'm getting back into gaming I'm finding the urge to play substantially more retro games than I am newer ones. I started gaming on a Sega Genesis and Nintendo 64 back in the day. Sonic and Diddy Kong Racing are literally my earliest memories.

When I realized I wanted to go back and experience the decades of classic gaming I missed out on, I realized I either had to suddenly amass a large collection of systems and games I didn't own (fuck that), or emulate. OpenEmu was killer for getting started on my Macbook, but I wanted a stand-alone system that I could hook up quickly to my TV. Enter one of the greatest inventions in the past decade, the Raspberry Pi.

If you're unfamiliar, Raspberry Pis are one of the most incredible and industry changing products in computing to ever come out. A Raspberry Pi 3 is essentially a $35 computer complete with USB, HDMI, and built-in Wifi. You can use a Raspberry Pi to build seemingly fucking anything.

Raspberry Pi and Retropie

Retropie is the OS that your Raspberry Pi will run on and use to emulate games. Retropie is really just a collection of necessary software, drivers, and emulator cores that work in tandem to give you the emulation experience. Don't be consfused if you find yourself working with RetroArch or EmulationStation, among others. Retropie is not a definitive organization or software for emulation — it's a group effort among many.

How to Assemble

Assembling the Retropie was simple. Check out the required parts list below. Very self explanatory to put together — no soldering or anything like that to get it working. While it can benefit to have some coding/Python knowledge in the grand scheme of Retropie emulating, getting a base system set up is incredibly easy.

What you'll need (see sidebar for links):

  • Raspberry Pi 3 (has on board wifi)
  • Case (I used the TinyTendo SNES w/ fan)
  • 2.5v Power supply
  • MicroSD card (if you plan on playing PSX games and above, get a large one)
  • Controller
  • HDMI cable
  • USB Keyboard (for setting up; Bluetooth/Wifi)

Raspberry Pi and Retropie

That's it. In terms of hardware, it's super straightforward.

Most Pi cases will be self-explanatory or come with instructions how to properly fit the Pi into the case. You may need a small Philips screwdriver on hand. I recommend the SNES TinyTendo case. Looks akin to the SNES Mini Nintendo put out, and it comes with a fan and LED light, along with badass rubber grippers to keep it from moving.

Super Tinytendo

Installing Retropie

Installing Retropie is equally as easy. Your MicroSD card will be the emulator's storage and will stay plugged into your emulator at essentially all times.

First things first though, you'll need to format your MicroSD card to FAT if it's 32gb or below, and ExFAT if 64gb or above. I won't go into detail here as Googling brings up a myriad of options on how to format your card. If you're on a Mac, it can be done with the Disk Utility app. Just be careful you format the correct drive and don't brick your main hard drive.

Once your card is formatted, it's time to download the Retropie image. Now that we have the file downloaded, we are going to mount it onto the SD card so it's ready to boot up. There are a few programs out there to do this, but the easiest and noob friendly is ApplePi Baker. If you're on Windows, then you're on your own.

Apple Pi Baker

If you're not familiar with tech this part could feel a little intimidating but it's super easy — it's fairly similar to burning a CD. Select your freshly formatted SD Card on the left, then you will click on RESTORE BACKUP and select the Retropie image you downloaded (it will be a .IMG extension).

Building the Console

This is where shit gets exciting — t's time to assemble our console. Grab your case, Pi, and any screwdrivers you may need for assembly. It should be self explanatory which way the Pi should be arranged in your case. Screw it in, add any potential add-ons like fans or heatsinks you may want. Under a majority of casual use cases you won't need any heat-redirecting stuff; the Pi runs at easy temps most of the time. Only if you find yourself potentially wanting to overclock or try to push the limits of some more demanding emulators would you want to have one. I opted for yes if I find myself wanting to do so in the future, and Pi size fans and heatsinks are only a few dollars.

Raspberry Pi and Retropie

After your case is nice and secure around your Pi, insert your MicroSD, power supply, and your keyboard. Do you actually need a USB keyboard? Yes, if you plan on connecting to Wifi or Bluetooth at all, which you for sure should be.

Raspberry Pi and Retropie

Working Inside Retropie

Once we've got our system built and are powered up inside Retropie, we'll first navigate to BLUETOOTH to set up our controllers and WiFi. The process should be pretty self-explanatory. If you're asked to map a controller buttons before (and you have a wired controller) you can go ahead and set that up. If not, just plug in your keyboard and get through this view.

Raspberry Pi and Retropie

Most of the settings including Bluetooth and Wifi are pretty easy and self-explanatory to set up. While technically not necessary, having a USB keyboard just makes initial set up a breeze.

8bitdo SF30 Pro

8bitdo controllers get a lot of shit, and from what I hear certain models do have some QC issues. But the SF30 Pro has been nothing short of fucking excellent for me. It works great, connects quickly once I turn it on or start up my Pi — have yet to find an issue with it related to emulation gaming. I don't have a Playstation or Xbox otherwise I would've used one of those to play initially.

8bitdo SF30 Pro

Getting Games On Our Pi

ROMs can be installed two different ways: via downloading them onto a USB and directly plugging it in, or via WiFi and SSH. The latter can be a little more complicated (although extremely easy on a Mac), but is well worth it for brevity. Fuck using a USB stick everytime you want to add/remove a game.

I won't reinvent the wheel, so SSH instructions can be found here, and if you're on a Mac and on the same WiFi as your Pi (you should be anyway at this point), it will appear in Finder as a network device on the left-hand sidebar. Simply click on it and peruse your way into whatever systems you want. Fucking incredibly easy.

SSH into Retropie

Getting a quality ROM can sometimes be tricky. I've had good luck with emuparadise.com and loveroms.com personally. It's fairly easy to find good ROMs of popular games, but if you want some fringe or international games, your options might be more slim. Just look around for reviews and number of downloads, that's usually a good indicator.

Once you have your appropriate ROMs downloaded (make sure you check out which ones your emulator core supports) we're ready to start, or attempt to start, playing.

Raspberry Pi and Retropie

— Be aware, not every system or ROM is going to run smooth under default conditions. For example, tinkering is almost a necessity to get Nintendo64 emulation running correctly. I will be writing auxillary follow-up posts pertaining to getting Nintendo64 emulation working smoothly, among other things.

Benefits and Drawbacks

The Retropie emulator set-up is by no means perfect, and unfortunately it will never be able to match an original cartridge/disc on their intended system. Rhythym games, such as Parappa the Rapper (shouts out Gamecenter CX and Arino for getting me on this) can be tough. It's more than Retropie, though. Bluetooth controllers and TVs can append onto the emulation lag and make things unplayable — depending on the game or type of game you're trying to play.

I built my Retropie to mostly play RPGs I missed out on when I was younger, so input lag doesn't bug me too much. You can definitely tell, even on games like Yoshi's Island you can have trouble timing tough platforming sections. Again, lag can be attributed to many factors, not just what inherently comes with emulation.

RETROPIE LAG FLOW


INPUT | Action on Bluetooth Emulation runs on Pi Potential TV Lag | OUTPUT

A more detailed rundown on why emulators have lag.

Some more obscure systems may require you to mess with BIOS to things working at all. Even trying to run popular Nintendo64 games can be a fucking pain (N64 is notorious for being tough to emulate).

Conclusion + Next Steps

This is just the surface of what Retropie and Raspberry Pi emulation can do. Customization, metadata scraping, overclocking, and shit tons more is all part of the game. Be on the lookout for future posts relating to detailed fine-tuning and configuration, as well as game recommendations. It's not perfect, but having an emulator of this caliber capable of easily being hooked up to a TV get my god damn rocks off. I'be been wanting to play so many older games I missed out on, but have been turned off by strictly playing them on my Mac (although OpenEMU is a great platform, too). Kudos to the people at Retropie for making such an awesome product.