Knowledge for the World

Build your own Raspberry Pi retro gaming rig using RetroPie

For around 50 bucks, you can build your very own vintage gaming rig that will hook up to any HDMI-enabled TV or monitor. This guide will show you everything you need to do to get playing.

For this build, we're going to use RetroPie, an awesome software package that handles all your emulation needs.

Any Pi can run RetroPie, but I recommend using the Raspberry Pi 2 or Raspberry Pi 3 as these will maximize the range of games you can play as these Pis have improved GPU, CPU and ROM capabilities.

Be sure to also check out my Pi Cart build, where I put a Raspberry Pi Zero in an NES cartridge.

In these interests [?]
  • pi
    85 Subscribers Subscribe
  • gaming
    29 Subscribers Subscribe
  • retrogaming
    22 Subscribers Subscribe

Place your Raspberry Pi into its case

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 some games!

If you're using a Raspberry Pi Zero, you can also use an NES cartridge as a case for your RetroPie gaming rig.

Place your Raspberry Pi into its case

Download the RetroPie SD-card image

RetroPie is a software package for the Raspberry Pi that is based on Raspbian, a Linux distribution. It combines a full suite of tools and utilities that will allow you to quickly and easily run ROMs for various vintage gaming platforms. We're going to do our install using an SD card image -- essentially a snapshot of an entire working installation of RetroPie.

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.

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, A, B, A+ and B+
- One for the Raspberry Pi 2 and 3

Select the appropriate image for your Pi.

Download the RetroPie SD-card image

Format your SD card to work with Raspberry Pi

First, you'll need to format the SD card as FAT32. Insert the SD card into your SD card reader. Your SD card will now show up as a mounted drive on your computer.

If you're on Windows, open up Explorer, locate the SD card, right-click it, and select Format from the context menu. Select the FAT32 option and click the Start button.

If you're on a Mac, open Disk Utility by navigating to Applications > Utilities > Disk Utility. Select your SD card in the left pane. For Yosemite and older, navigate to the Erase tab, select MS-DOS (FAT) as the Format, give it a name, and click the Erase button. For El Capitan and newer, simply click the Erase button, Select MS-DOS (FAT) as the Format, give it a name, and click the Erase button.

Format your SD card to work with Raspberry Pi

Install the RetroPie image (using a Mac)

To do this, we'll use a third-party utility called ApplePi-Baker. Download the most recent version and open the application. ApplePi-Baker requires SUDO (admin) access in order to read/write to your SD card. Therefore, you will be prompted to enter your OSX account password.

After opening the application, select your SD card in the left hand column. Then, click the "Restore Backup" button and select the (unzipped) RetroPie SD-Card Image (.IMG file) that you downloaded earlier.

Install the RetroPie image (using a Mac)

Install the RetroPie image (using Windows)

Download and install the Win32DiskImager utility. Follow the instructions here and select the (unzipped) RetroPie SD-Card Image (.IMG file) that you downloaded earlier.


Put the SD card into your Raspberry Pi and connect your peripherals

Safely eject the SD card and slide it into your Raspberry Pi.

Plug in your keyboard, USB game controller, and HDMI cable. 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!

Put the SD card into your Raspberry Pi and connect your peripherals

Connect your Pi to the Internet

You'll need to connect your Pi to the Internet in order to add game ROMs (more on that later) and access additional RetroPie features such as game rating/description scraping.

Note: This step is only required if you want to access these additional features or transfer ROMs over your network. If you have a Pi Zero and don't want to add WiFi, you can also transfer ROMs via USB.

There are a add internet functionality to your Pi:

Ethernet (CAT5) Cable
If you have easy access to your router, you can simply connect your Pi using an Ethernet cable.

Built-in WiFi
Only the Raspberry Pi 3 has built-in WiFi.

USB WiFi dongle
You can find a USB WiFi adapter super cheap on Amazon.

RetroPie WiFi Setup
If using one of the WiFi options above: After connecting all your peripherals and booting up your Pi, select the RetroPie menu icon and then select WIFI.

Connect your Pi to the Internet

Expand your SD card to utilize all usable space

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 either press F4 to exit the RetroPie UI and get back to the shell (i.e. command line), enter the following and press enter:

sudo raspi-config

Or, you can use the Retropie interface to do this. 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 version). You now need to restart your Pi. You may have noticed there's no reset button (unless you've added one).

To safely reboot your Raspberry Pi, use the following Pi reboot command after pressing F4 to return to the shell:

sudo reboot

After your Pi reboots, we want to make sure that all packages are up to date. Press F4 to get back to the shell/command line, and run the following commands:

sudo apt-get update
sudo apt-get upgrade

Reboot your Pi once more.

Expand your SD card to utilize all usable space

Connect to your Pi

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.

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:

ping raspberrypi

If you see a "Request timeout" response when you run the ping raspberrypi command, then the command has failed. Instead, 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 eth0.


Configuring your controller

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 controller at the top of this guide.

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 or by typing F4 on your keyboard and then rebooting your Pi.

Configuring your controller

Finding game ROMs

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 also interprets these ROMs 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.

A legal note:
Most vintage 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. You can find tons of ROMs on any Torrent site, but 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! has a nice list of these free, legal ROMs. We'll use these as examples and you can find more ROMs on your own.

Let's use Gridlee and Super Tank as examples. Download each ROM.

Finding game ROMs

Installing game ROMs

ROMs can be installed via SSH/SFTP (over your network) or via a USB thumb drive. 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, 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.

Installing game ROMs

You're ready to play!

Your Pi will boot into RetroPie automatically. Bask in the glory of simple graphics, bolstered by highly addictive gameplay.

You're ready to play!

Exiting an emulation (game)

To exit a game, press the START and SELECT buttons at the same time. This will bring you back to the RetroPie UI.


Optional: Back up your Raspberry Pi's SD card

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 backing up your Raspberry Pi's SD card in OS X; or, if you're a Windows user, Lifehacker wrote a great guide on backing up your Pi's SD card in Windows.



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.