The Raspberry Pi ships by itself, without a case. I recommend you buy a case to avoid damaging your Pi. Using a screwdriver, place your Raspberry Pi into its case. Some cases do not require the use of a screwdriver -- however, I prefer cases that use screws to secure the Pi for extra stability.
I've linked to such a case for the Raspberry Pi 3 at the top of this guide -- it also comes with small aluminum heatsinks for the CPU and GPU, as the Pi 3 can get quite hot when emulating certain games. This case also gives you access to your GPIO pins if needed for other projects -- though these pins aren't used for this guide.
If you're using a Raspberry Pi Zero, you can also use an NES cartridge as a case for your RetroPie gaming rig.
RetroPie is a software package for the Raspberry Pi that is based on the Raspbian OS, a Linux distribution. It combines a full suite of tools and utilities that will allow you to quickly and easily run retro game ROMs for various vintage gaming emulators.
We're going to perform our RetroPie setup using an SD card image -- essentially a snapshot of an entire working installation of RetroPie rather than doing a manual RetroPie install.
Because the Raspberry Pi doesn't have an internal hard drive, it uses a microSD card for storage of the entire operating system and all files contained therein.
To set up RetroPie, Download and unzip the latest RetroPie SD-Card Image. There are two versions of the RetroPie SD-Card Image:
- One for the Raspberry Pi Zero, Zero W, A, B, A+ and B+
- One for the Raspberry Pi 2 and Raspberry Pi 3
Select the appropriate image for your Pi.
First, you'll need to format the SD card as FAT. Insert the SD card into your SD card reader. Your SD card will now show up as a mounted drive on your computer.
If your SD card is 32GB or smaller, we'll format it as
MS-DOS (FAT). If your SD card is 64GB or larger, we'll format it as
Formatting on Windows
Open up Explorer, locate the SD card, right-click it, and select Format from the context menu. Select the desired format and click the Start button.
Formatting on Mac
Open Disk Utility by navigating to Applications > Utilities > Disk Utility. Select your SD card in the left pane. Click the Erase button, select the desired format, give it a name, and click the Erase button. For OS X Yosemite and older, you'll need to navigate to the Erase tab first.
To install RetroPie, we'll use a third-party utility called Etcher. Etcher works on both Windows and Mac.
Download and install Etcher, open it, and select your SD card drive and downloaded image to "flash" the image to your SD card.
Safely eject the SD card and slide it into your Raspberry Pi.
Next, connect your USB game controller and connect the HDMI cable to a monitor or TV. Finally, connect the MicroUSB power supply. Always connect the power supply after connecting your other peripherals so that your Pi will detect all of the peripherals properly on boot.
Your Pi will now boot!
I recommend connecting your Pi to the Internet to more easily add game ROMs and access additional features such as game rating and description scraping. Also, connecting the Pi to your network will allow you to access it remotely via SSH to perform remaining configuration without needing a keyboard.
If you have a Raspberry Pi Zero W, Raspberry Pi 3, or newer, you have built-in Wi-Fi!
To connect, simply select the RetroPie menu icon and then select WIFI.
Then, connect to your Pi remotely via SSH by opening Terminal (Mac) or Command Prompt (Windows) and then running:
ssh pi@retropie # default password: raspberry
Note: If you're using an older Pi or one without built-in Wi-Fi, you can still transfer ROMs via USB. But if you still want to add Internet functionality to one of these older Pis, simply connect an Ethernet cable or USB Wi-Fi dongle.
If your SD card is larger than 4GB, you must expand it before your Pi can use the remaining space. To do this, you'll need to launch the Raspberry Pi configuration tool (raspi-config).
You can use the Retropie interface to do this. On the main screen, select the RetroPie menu icon and then select RASPI-CONFIG.
Then, choose either Expand Filesystem or expand_rootfs from the menu (this option will vary based on your Raspberry Pi model). You now need to restart your Pi. You may have noticed there's no reset button (unless you've added one).
We now need to connect to your Raspberry Pi from your computer so that we can copy over game ROMs and easily edit configuration files.
Again, this step is optional as you can also transfer ROMs via USB and accessing your configuration and other additional features isn't strictly required.
There are numerous ways to do this; my favorite method is via SSH/SFTP using an FTP client. As far as free FTP clients go, I recommend FileZilla since it's very well documented and supported and is available for both Mac and Windows.
Download FileZilla from their downloads page and install it. I recommend you uncheck all the "additional components" that FileZilla will ask you to install, such as the Yahoo search page and toolbar crap.
**Note: As of the latest version of Raspbian Jessie, SSH is disabled by default for security purposes; you will need to enable SSH on your Pi before proceeding. Thankfully, this process is super easy and painless.
Use the following credentials to connect to your Pi. The default Pi username and password are pi and raspberry, respectively.
Host: <your pi's IP address> (see below) Username: pi Password: raspberry Port: 22
For security purposes, I highly recommend you change the default Raspberry Pi password to something else. It only takes a minute.
To find your Pi's IP, open Terminal (Mac) or Command Prompt (Windows) and enter the following command to ping your Pi and return its network IP:
or, for older versions of RetroPie, use:
It may take a few tries to get a response. If you see a "Request timeout" response when you run the
ping command, then the command has failed. If you have a USB keyboard handy, you can boot up your Pi, press F4 to get to the shell, and run the following command:
This alternate method will list your Pi's IP immediately after
inet addr: under
You'll now want to configure your USB gamepad to work with your Pi. I recommend the Buffalo Classic USB Gamepad since it's inexpensive, highly compatible with the Pi, and comes in sweet Japanese packaging. You can find an Amazon link to that USB controller at the top of this guide.
You can use any type of USB controller -- including a USB NES controller, though your games are more limited since it has fewer buttons than most newer games use.
To configure your controller to work with the menu system and games, boot up your Pi. Your Pi will automatically launch the RetroPie UI where you will be prompted to configure the controller. If you mess up, don't worry -- you can access this configuration menu again later by pressing Start in the RetroPie UI.
A ROM is an entire port of a particular video game. RetroPie contains a copy of EmulationStation, which both provides the user interface for your new retro gaming rig and interprets these ROM files appropriately. RetroPie comes with a few games preinstalled -- such as Quake, Duke Nukem 3D, and Cave Story. These games are best played using a keyboard, however, since the gamepad doesn't have enough keys to map the controls for some PC-ported games. You can emulate just about any console using the built-in RetroPie emulators.
A Legal Note
Most retro games are owned by a company (yes, even the very old ones!) and are protected by copyright laws. Thus, unfortunately, downloading ROMs for those games constitutes piracy.
While you can find tons of RetroPie ROMs on any Torrent site, keep in mind that you should not download any copyrighted titles.
Luckily, there are some free ROMs out there that we can use for now! MAMEdev.org has a nice list of these free, legal ROMs. We'll use these as examples and you can find more ROMs on your own.
ROMs can be installed via SSH/SFTP (over your network) or by plugging a USB flash drive into your USB port. Additional methods for copying ROMs to RetroPie can be found on the RetroPie Wiki.
I wrote a separate guide on installing RetroPie ROMs using a USB drive. Or, if your Pi is connected to the internet, you can use the instructions below.
Reconnect FileZilla and browse to the following directory:
Unzip each game ROM and upload each game folder into its respective game system folder. For example, if you had a Super Mario Bros 3 ROM, you would upload the game's folder into the "nes" directory.
Gridlee and Super Tank go in the "mame" directory since MAME handles the arcade emulation for most vintage arcade-style games that don't belong to a specific home video game system such as the NES, SNES or Atari.
After you've copied these directories over, restart your Pi.
Your Pi will boot into RetroPie automatically. Bask in the glory of simple graphics, bolstered by highly addictive gameplay. Whether you're playing on your couch or building a RetroPie arcade cabinet or bartop arcade, I hope this guide was helpful to you!
To exit a game, press the START and SELECT buttons at the same time. This will bring you back to the RetroPie UI.
Check out my other guide on saving games in RetroPie to learn how to save and load saved games!
Now that everything is configured and working splendidly, I recommend you back up your Raspberry Pi's SD card image. This way, if you're feeling adventurous and want to attempt some further Retropie customizations, you have a safe restore point.
I've written a short guide on how to back up your Raspberry Pi.
Post in the comments section below and I'll be sure to help you out. Also, stay tuned for more guides on customizing your RetroPie installation.