You can now transform your Raspberry Pi into an all-in-one retro gaming console! Thanks to the RetroPie project you can play a multitude of old console games, such a SNES, NES, SEGA Mega Drive, Atari and many more on your Raspberry Pi.
At ModMyPi we've put together a Retro Gaming Kit, which will get your up an running in no time! If you've purchased our Retro Gaming Kit, we recommend you fully follow our tutorial for basic setup. For further setup, please refer to the RetroPie Wiki and RetroPie Forums, or ask our engineers on the ModMyPi Forums.
Our Raspberry Pi Retro Gaming Kit comes complete with the following items:
- Raspberry Pi 3 Model B
- Raspberry Pi Case
- Power Supply
- Video Cable
- RJ45 Cable
- Micro SD Card
- Micro SD Card Reader
- USB Gamepad Controllers
- Heat Sink Kit
- USB Keyboard (Optional)
You will also need:
- A Windows/Mac/Linux computer to transfer your ROMs
In order to play retro-video games you need a game ROM and an emulator to play it on. An emulator is an application that mimics a specific console (such as a SNES) and allows you play a ROM for that console. A ROM is simply a digital copy of game. RetroPie already has many emulators installed on it but in order to play the games you'll have to find and the download specific ROMs yourself. There’s quite a bit of setup, so please follow the guide below carefully!
Step 1. Image RetroPie to an SD card
Due to licensing restrictions, we are not allowed to sell RetroPie pre-installed on an SD card.
Therefore, you'll need to download and write the RetroPie image to an SD card. You can download the RetroPie image from here . The file is about 1GB so this may take a while!
Once this has downloaded, you'll be rewarded with a file named "retropie-vX.X.X-rpi2_rpi3.img.gz" or similar. You need to extract the files before you can write the image to your SD card. You can use any of the usual unzippers for this task, we'll be using WinRAR.
This will leave you with a .IMG file e.g. "retropie-vX.X.X-rpi2_rpi3.img". This is the file that needs to be burned onto our SD card.
We now need to flash the image onto a blank SD card. Use the SD to USB card reader to insert your SD card into your PC.
Before proceeding, please ensure that your SD, or Micro SD card is completely formatted, and that any information you want or need has been removed from that card. Most card can be formatted easilly using the SD card associations card formatter here. The image burning process will completely erase the card so please back-up any information that's currently stored on the card if it's required.
All of our SD cards come pre-loaded with NOOBs OS, so please ensure that your SD card is formatted before writing the software!
Now that you have a nice clean SD card, we're now ready to copy your operating system image over!
There's one more piece of software we need to burn our image - Win32 Disk Imager. If you're on a MAC, please use ApplePi Baker, or a Linux machine, use Unetbootin. They are all very simple, so please download, install and open your chosen software:
Browse to the RetroPie image file, and select the SD card as the "device".
BEFORE YOU HIT WRITE - Please make sure that you have selected the correct device. Win32 will pick up any removable media including SSD's. The last thing you want to do is overwrite your computer's hard drive!
When you're happy that you have the correct image, and correct device, hit write.
You'll get a warning message to confirm that you're happy to proceed. Hit yes, and the image will burn to your card.
That's it! Once the process is complete your new operating system image is ready to use.
- Your SD card might be renamed to something like "BOOT", which is normal.
- When viewing the card on a Windows machine, it's normal that the card will appear to have less memory than it should e.g. 50mb instead of 8GB. This is because the Raspberry Pi images are Linux format, which is unviewable in Windows. If you need to format the card for use in Windows again, simply use the SD card formatter.
Step 2. Plug it all in!
Next, we need to do some initial set up on our Pi:
- First step is to attach your heat sinks to your Raspberry Pi by following this guide. This is not 100% required, but you will likely need to overclock your Raspberry Pi to get the most out of some games. So we recommend it in order to keep your Pi nice and cool.
- Put your Pi in its case.
- Place your newly images micro SD card into the Pi's micro SD card slot
- Plug your HDMI (or other chosen video cable) into your Pi and TV or Monitor.
- Plug the Raspberry Pi Gamepad controller into the Pi's USB sockets
- Plug your keyboard into another of the USB sockets
- Plug the included RJ45 cable into your Pi and into your router (make sure you have an internet connection, you can also use a WiFi dongle)
- Plug your power supply into the Raspberry Pi and wall socket.
Step 3. Emulation Station Control Configuration
Now, switch on your TV, and switch on your Pi, and you should be greeted by the RetroPie splash screen followed by the initial configuration screen for Emulation Station. This is the graphical front end installed by RetroPie, and is designed to allow you to use your Pi as if it were a retro console - with only a controller, not requiring a keyboard.
This is the point at which you map your controller keys! Please note. This maps the keys for the RetroPie emulator selection only, most emulators will require you to map the controller again, which we'll cover later.
Just tap the correct button or direction when it asks for it. When it asks for the analogue inputs, skip them as they’re not really needed for RetroPie. You can skip keys by holding the A button. When finished, you can navigate using the D-pad.
////////////////////////////// Note //////////////////////////////
If you want to change your mapping, you can access the configuration screen again by pressing - Start >> Configure Input.
If you ever absolutely mess up the configuration and can't get around it, you can remove the .cfg file and set the system up again. To do this go back to your terminal by pressing F4 from Emulation Station. From here type the following command:
sudo rm es_input.cfg
Now reload the emulationstation again by typing the following command:
You will now be prompted to configure the navigation controls like before.
////////////////////////////// Note //////////////////////////////
So that’s the initial set-up done.
Once complete, you’ll be greeted by the RetroPie emulator selection screen!
Step 4. Raspberry Pi Configuration
Before we start to use RetroPie & Emulation Station, we need to change some settings on our Raspberry Pi to ensure it runs smoothly.
Select RetroPie from the main menu, then navigate to raspi-config
The configuration-menu should look like this:
The first thing we need to do is expand the root file system by selecting the first option 'Expand Filesystem'. This should take a few seconds to complete. Don't reboot yet!
Note: You can ignore the rest of this step if you are using a Raspberry Pi 3 Model B - Just reboot now.
Go back the main raspi-config menu, next we will adjust the memory split to change the amount of memory made available to the GPU.
There's quite a lot of experimentation required here depending on what emulator you're using, but the minimum we recommend that you dedicate to your GPU is 256MB. The Pi 2 has 1GB to play with, so if a game isn't running right, try upping it to 512 and see if that helps smooth it out.
From the menu select the 'Advanced options' tab.
Next select then the 'Memory split' option.
Edit the memory split as required by typing the number e.g. 256, 384, 512 etc. and press OK.
You'll then be taken back to to the main menu.
Next, we're going to overclock our Raspberry Pi. So navigate down to option 7 - Overclock
Again, depending on what emulator you're using you can experiment with this setting. If you're getting lots of crashes, try reducing the overclock, if you're getting stuttering in game try increasing the overclock or upping the memory split above.
For the moment, we'll switch it to the Pi2 standard configuration.
Phew! Now select OK, and Finish on the main screen. Select reboot when the configuration exits, or alternatively reboot your raspberry pi using the command:
On boot this time Emulation Station will load.
Step 5. Installing the Emulators
RetroPie no longer comes with any emulators installed, however does offer some emulators to be manually installed.
Start by selecting RetroPie from the main menu.
You need an internet connection, so if you dont have a wired connection, setup your WiFi from this menu.
Then select RetroPie Setup
You'll be prompted with a message, press your "B" button to select OK.
Navigate to manage packages (use the right D-PAD to go down the list)
Select OK by pressing your "Y" button.
Select manage optional packages.
Select install/update all optional packages from binary
Now sit back and make yourself a cup of tea. This will take a long time!
Once it has finished doing its thing select back, then back again, then reboot.
Once you have rebooted, your main menu should now have a bunch of emulators to choose from.
Reward yourself with a bit of DOOM!
Select Ports and the select DOOM.
Step 6. Downloading and Copying ROMs
OK, so we've configured our RetroPie controls and overclocked our Pi, what else is there?!
You’ll probably notice that some emulators appear to be missing – where’s the SNES emulator for example? It’s missing because we have no ROMs, the digital copies of old game cartridges. RetroPie only loads the emulator when it detects ROMs in that emulators folder. There’s a huge number of Copyrights laws regarding the usage of ROMs, and as a result we cannot share their locations. Google is your friend! Wherever you get you ROMs from just be sure to scan them with anti-virus tools before use.
Once you’ve located the ROMs of your childhood, we need to move them across from your computer to your RetroPie SD card. There’s a few different ways to do it, but one of the easiest is to copy the files across via SSH. That’s why we need your Pi plugged into your router!
One of the easiest ways to move files across from your Windows PC to your Pi is via a program called WinSCP. If you don't have it, you need it in your life!
You can download the program from here. So go ahead and download and install the latest installation package:
Make sure that your computer and raspberry pi are both connected to the same network via a LAN cable or a wireless adapter.
In order to connect to your raspberry Pi using WinSCP you’ll need to know your Pi's IP address. There's two ways to get this.
The first is to return to terminal (by pressing F4 on your keyboard in Emulation Station) and using the following command:
Write down the number after 'inet addr:'. It will look something like '192.168.1.80'
Alternatively from within RetroPie GUI, use the command SHOW IP ADDRESS, and write down the "inet adr" when it appears.
Now we know our Pi's IP, we can connect to it using WinSCP!
So, open WinSCP on your computer.
For this session select the following options:
- File protocol: SCP
- Host name: The IP address of your Pi (that you just wrote down) e.g. 192.168.0.103
- Port number: 22 (this should be default)
- Username: pi (this is the Raspberry Pi's default login username)
- Password: raspberry (this is the Raspberry Pi's default login password)
Click 'Login' and it should open a window like this:
You can navigate through the files on your computer on the left-hand and the files on your raspberry Pi on the right.
On the right-hand side open the folder "RetroPie" then the folder "roms".
This reveals a list of all the emulators currently available on the emulation station platform! Cool, right :)
In order to copy a ROM from your PC to your Pi simply drag and drop it from it's location on your computer to it's corresponding ROM folder on the Raspberry Pi, e.g if its a SNES game copy it to the SNES folder. Before copying over a ROM make sure it's already been extracted on your computer first otherwise the emulator won't recognise it. Some emulators however, such as MAME, require the ROM to remain zipped in order for them to work.
After this you''ll be ready to start gaming! Now simply reboot your Pi, and you'll be able to play the ROM's you've just copy over.
You can navigate through the different emulators in the Emulation Station by scrolling left and right. Please note, that an emulator will not 'appear' until you've copied a ROM for that specific emulator over to the Pi.
That's basically it! There's some optional steps below which are worth a read through as they go through adding box art and descriptions, in addition to setting up controllers within emulators.
Optional – Box Art and Descriptions for your ROMS
It's possible to download and install box art and game descriptions for all the ROM's you have. Whilst this isn't at all necessary it is a cool little addition to make your RetroPie Emulation Station look a little better.
In order to do this you'll need to be connected to the internet. Make sure you have a keyboard plugged in and go to the terminal (by pressing F4 from Emulation Station). First we need to download the es-scraper tool which will find, download and install the box art for our ROMS. Type the following commands to get the es-scraper tool:
git clone http://github.com/elpendor/ES-scraper
Now that the es-scraper is installed we can go to the retro-pie setup menu to use it. Type the following:
This will bring you a menu like the one below:
From here select the thrird tab 'Setup'
In order for the es-scraper to work we need to disable 'Start Emulation Station on boot', which is the 4th tab down.
Select 'Original boot behaviour' and you should then be taken back to the 'Setup' menu. From here select the 12th tab on the menu 'Run ES-Scraper'.
Select the first option '(Re-)scape of the ROMs directory'. The es-scarper will now look for the box-art and game decription for all your ROMs and install them into your RetroPie.
If you add any more games at a later date just run this again to download the box art for your new games.
When it's finished it will bring you back to the RetroPie setup menu. Enable 'Start Emulation Station on boot' again and then exit the menu by selecting Cancel (using the tab button on your keyboard). Once back at the terminal reboot your raspberry pi using the command
Now when the Emulation Station loads box art and game description for your ROMs will be displayed.
Optional – Setting up Controllers
The guide above only configures our controllers to navigate the Emulation Station menu and not the controls for playing games in the emulators themselves. Emulation Station does port the controls over on some emulators, but it's not a sure thing. It is likely that you'll need to configure your controller for use on each specific emulator to get the correct mapping.
For this set-up I used a USB style controller. From the emulationstation press F4 to go back to the terminal. From here enter the following commands to configure your controller specifically for each emulator:
./retroarch-joyconfig >> ~/RetroPie/configs/all/retroarch.cfg
This will start the configuration process:
Follow the prompts on screen to map the buttons of your controller. Towards the end you will be asked to enter controls for buttons that your controller may not have e.g L2 and R2 buttons and analogue sticks. If you don't have these buttons, just press any button for these then we'll edit them out later.
Now we will cover how to set-up a second controller as well as editing out those extra buttons.
Note. This configuration for a second controller will only work if the second controller is is identical to the first one that you've already configured.
Go back to the terminal (if you're not there already) by pressing F4 from the emulationstation.
From here type the following command to go load the GUI:
You'll be presented with a Windows style desktop. Go to the LXDE menu in the bottom left corner then navigate to accessories, then file manager.
Navigate to the folder RetroPie/configs/all. From here open the file retroarch.cfg.
If you scroll to the bottom of the file you'll find the controller mappings for the first controller that you just configured on the previous step.
Now we can delete the lines that map the controls for buttons we don't have. If you mapped all the extra controls to a single button like I did earlier then the inputs for these will all have the same number. Delete the lines of code that are highlighted above.
This will delete the mapping for buttons L2, L3, L2 and L3 and the analogue stick configurations since I don't have these buttons on my controller.
Once you've deleted these lines copy and paste the remaining lines (that map the buttons we will use) to the bottom of the sheet. You should now have 2 identical blocks of code. We're now going to edit the second block so that it maps the controls for a second controller.
We need to change the joypad index to define a second controller so change the top line of the second block of code from:
input_player1_joypad_index = "0"
input_player2_joypad_index = "1"
For the remaining lines, of the second block of code, wherever you see player1 replace it with player2. Once you've done this your code should look like this:
That's the second controller set-up complete.
You could also repeat this method to add multiple controllers. Simply create another copy of the code and replace the names with player3 and change the joy pad index to "2"
When your running a ROM in order to save and exit the game you have to hit ESC on your keyboard. If we want to be able to do this without using a keyboard we'll have have to add some more code so we're able to do so using our controller.
Since we've already mapped all our buttons we'll have to set a hotkey that must be held down to use (such as select) and then an exit key (such as start), which will now only work if the hot key button is held down. Add the following line at the bottom of the file to set a hotkey:
input_enable_hotkey_btn = ''8''
Here I set the hotkey to select, which is my button number 8. Replace this with the number that corresponds to the select button on your controller (you can find this out by looking at the code for the controller mappings we just configured). Next add the following line:
input_exit_emulator_btn = ''9''
Again replace the number with the one that corresponds to the start button on your controller.
Adding this means you can now exit and save your games by pressing the start button whilst also holding down select.
Now you've done this save the file and exit.
Note. We configured the controls for all the emulators by editing the retroarch.cfg file in the folder RetroPie/configs/all. It is also possible to configure the controls for individual emulators. This can be done by opening the config folder for a specific emulator and editing the retroarch.cfg found there. Any controller mappings placed here will override the configurations written in the configs/all file.
Trouble Setting Up?
If your having problems setting up your RetroPie there are plenty of online resources available which provide troubleshooting tips and more advanced set-up information regarding the RetroPie:
PetRockBlock - The official page for the RetroPie project