How to Setup a Retro Gaming console with the $50 Raspberry Pi
For less than $100 you can easily build a game console that can play thousands of old games from those consoles that you loved as a kid. Downloading ROMs is not exactly legal but I look at it like copying a VHS tape back in the day, it’s super easy and there are not really anything anyone can do to stop you. This whole process should take less than 30 minutes.
After following these instructions you’ll have a small box that you can control with a gamepad and attach to your TV with an HDMI cable. Everything is plug and play, no soldering or electrical know-how required. You download the games by Google searching for them and downloading a free ROM. This system will support just about any game on this list of supported emulators. Also with a few extra configurations you can even make it operable by a kid or non-tech person. I found some of the games for the N64 emulator are a little buggy but the older ones like NES, SNES and Genesis are solid.
I used Retro-Pie Image 3.2. If you’re using a newer version things may have changed.
Get the console up and running
Step one is getting the thing hooked up to your TV and playable. You’ll need to buy the hardware, plug it all together and image the SD memory card.
Raspberry Pi 2 – $41.00
Micro SD Card with Adapter – $7.04
USB Game Pad – $29.99
HDMI Cable – $5.49
Power switch – $9.97
Ethernet Cable – $5.49
WiFi USB Adapter – $9.99
I like the Logitech gamepad b/c it’s solid and it has the analog sticks that some of the N64 games use. You can also replace that with retro USB NES or SNES pads if you’d like. Also you’ll probably need access to a USB keyboard and you’ll need a Mac or Windows computer that has an SD memory card slot.
Everything you need (except the games themselves) is going to be pre-installed with an image but it wouldn’t hurt to know the different software components involved.
Raspian – the operating system we’ll be using on the Raspberry Pi, a derivation of Debian Linux
RetroPie – software that makes it very easy to setup/update/configure the ROMs, emulators and gamepads.
Emulation Station – A graphical user interface on top of RetroPie to explore and play the ROMs installed on your system.
Emulators – Software that allows the game to function as if it was actually running in the console it was built for. For SNES the default emulator is lr-snes9x-next but there are many other alternative SNES emulators. RetroPie allows you to set a default emulator per system and per game. Usually the default one is all you need.
ROMs – A file containing the actual game you’ll be playing. This was pulled right from the game cartridge itself. In terms of software the games you play are exactly the same ones you played back in the day.
Image the SD Card
The SD Card will contain the OS and applications needed to play the games. Once you load everything onto the SD card you insert it into the Raspberry Pi and it uses that to boot up and run everything. The easiest way to do that is to put a pre-configured image onto the SD Card. Detailed instructions on how to do that can be found here.
The short version is:
Download some ROMs so we have something to test. You’ll find ROMs by just Googling for the name and the platform. Most of the ROM sites are a terrible user experiences designed to trick you into clicking on an ad but if you’re careful you should be able to download every possible game you’d want to play that’s supported.
Ok let’s put the original Legend of Zelda for NES on the system.
3rd link down leads you to a sionyte called doperoms.com
Scroll down and click the “Download ROM” link.
Scroll down again and under the Amazon ad click the Download link again
A zip file should be downloading to your computer.
Download a few more ROMs for different systems so you have them.
Put hardware together and plug into the TV
Put the Raspberry Pi in the plastic case, plug in ethernet and HDMI, keyboard and gamepad. Remove the micro SD card from the adapter and plug it into the Raspberry Pi.
Jvfyggr r yo g to tytgyyyt gytt ryyr
The Raspberry Pi does not come with a power switch. You’ll be able to shutdown the system in the menu on the screen but there’s no out-of-the-box way to turn it on so that’s what the separate power switch is for. So just plug it into the wall and plug the Raspberry Pi power adapter into it.
Turn the system on and it should boot right into Emulation Station and prompt you to configure your gamepad. Setting the buttons is frustrating and may take a few tries to get right. If you’ve purchased the controller I suggested make sure the little switch underneath the gamepad is in the “X” position.
If you’re using WiFi go to the Retro Pie section and choose the configure WiFi option.
Once the RetroPie is on the network go back to your Mac or PC. If your computer is on the same network as the Raspberry Pi it should appear as a shared drive called “retropie” in Finder. Click on it, then go into the ROM folder and drag/drop the ROM you downloaded into the corresponding folder for the system.
If you are having trouble finding the shared drive, you can use your favorite FTP/SCP program to access it but you’ll have to figure out the console’s IP address.
Using Emulation Station
The EmulationStation software is very user friendly and you can navigate the whole application using a gamepad. A couple tips here when using it:
Hit the start button to access the menu to restart/shutdown the system.
Also when in a game simply press start and select at the same time to exit the game.
Accessing the command line
If you need to access the command line there’s a couple ways you can do it. First way is to simply plug in a USB keyboard into the Raspberry Pi and reboot it. When you are in EmulationStation hit the start button then choose “Exit Emulation Station”. Make sure you hit a key on the keyboard quickly or it will go right back into EmulationStation.
The second way is just to SSH to it from another computer on the network. You’ll need to determine the Raspberry PI’s IP address and the default login is :
Also you may see the command nano being used, this is the text editor that is normally used on the Raspberry Pi.
Setup and tweaking
While Emulation Station is open go to the RetroPie section, here we’re going to fix some things that don’t work in the disk image.
Make sure the disk is partitioned properly – For some reason your Raspberry Pi may not be using the whole amount of space you have on the disk. To fix this boot into EmulationStation normally, choose the RetroPie root menu. then:
Raspberry PI configuration tool RASP-CONFIG > Expand Filesystem
Change the GBA Emulator – The Game Boy Advanced default emulator doesn’t work very well, so we’ll need to change it to a different one. Make sure you have a Gameboy Advance ROM on the system. Go to the GameBoy Advance root menu item, start one of the games and quickly press a key on the gamepad. This will bring up the config for this emulator. Choose “Select default emulator for gba” and set it to lr-gpsp.
If you find a game in any system isn’t working you may have to change the emulator this way. You can choose the default emulator for all games or just the one giving you problems.
Making the console kid-friendly
The default RetroPie setup is difficult for kids because there’s all sorts of configuration menus that kids could get stuck in or unknowingly change settings and mess something up. Here’s a guide to setup the console to prevent that from happening.
Custom Splash Screen
you’re giving or showing this to someone the first thing they are going to see when you fire it up is the RetroPie Splash screen. Let’s change that to something fun or personalized. So you need to create or find an image, any image you want. You can use Photoshop or you can even create a drawing using Google Docs and download it as a .jpg. The image size should be 1920 x 1080. Here’s the one I created for my son using images I found online.
Here’s the link to the actual photoshop file if you’d like to customize it.
Once you have an image for your splash screen put it on the Raspberry Pi. Open the retropie shared folder from your Mac or PC. You’ll see a splashscreen directory on the root. You’ll need to create a directory for your splashscreen file and drop your .png, .jpg or .gif into that directory.
Once you create the directory and put the file in you you’ll need to go into EmulationStation, choose RetroPie and select “CONFIGURE SPLASHSCREEN” then select the 2nd option “Choose own splashscreen”. Hit ok and reboot and you should see your own splash screen when the console is starting.
Showing game box art and descriptions
“Scraping” adds nice cover images and descriptions of each game. So once you have the ROMs loaded activate the scraper, it will confirm which game it is and add it. It makes it a lot easier to browse the games. If the scraping hangs and doesn’t return anything that usually means that you don’t have internet access or the scraping site is down.
From the Emulation Station root screen hit the start button to bring up the menu, then choose “Scraper” > “Scrape Now”, it should find the games you’ve added and prompt you to select which game it is. Now you’ll have a really nice cover art and description shown when selecting the game.
Lose the config menu and extra emulators
Warning: the next steps do require a bit of technical knowhow. Also before disabling configuration menus you should check and make sure all the games you have are working properly in case you need to access these configurations.
At the root menu you’ll see options for SNES, NES, GameBoy Advanced…etc. You’ll only see consoles that have at least one ROM. By default you’ll also see RetroPie config. Choosing this allows you to drill down and change a lot of the RetroPie settings. It’s very helpful if you need to easily change settings, it’s very confusing for a kid. Here’s how you can disable that. Also there’s a bunch of emulators installed that a kid may not want/need. Go ahead and disable them this way as well to avoid confusion.
sudo cp es_systems.cfg es_systems.bak
sudsudo cp es_systems.cfg es_systems.bako nano es_systems.cfg
Easiest way to do this is to turn each unwanted system into a comment.
<command>/opt/retropie/supplementary/runcommand/runcommand.sh 0 _SYS_ amiga %ROM%</command>
sudo reboot and those systems should no longer exist on the menu.
Remove game launch configuration
When each game starts if you hit buttons on the joystick, instead of the game loading you’ll go to a launch configuration menu for that game. This is helpful if you need to change the emulator or options for a specific game but this is REALLY annoying for a kid who’s mashing buttons while the game loads. They will get stuck and may change some settings you aren’t aware of. Let’s disable that.
access the command prompt and backup the config file like this
sudo cp runcommand.sh runcommand.bak
sudo nano runcommand.sh
scroll down to….
echo “Press a key (or joypad button 0) to configure launch options for emulator/port ($emulator). Errors will be log$
IFS= read -s -t 1 -N 1 key </dev/tty
if [[ -n “$key” ]]; then
change it to:
echo “No more game config menu”
Save the file and at the command line do:
It’s good to do this once all the games are setup. If you ever need it again you can just restore the file from the .bak you saved.
You should probably delete the SD Image from your computer and all those ROMs. Also if you’d like you can change the default password for the Raspberry Pi by access the command line and doing this :