How to Build an All-In-One Retro Game Console for $35, the Easy Way

Since its release, the $35 Raspberry Pi mini-computer has been hailed as the perfect all-in-one retro game console. Now, it's easier to do than ever, and it doesn't take any advanced Linux knowledge. Here's how to make your own retro game console in about 30 minutes.

Update
: We've updated this guide to reflect the changes in the newest version of RetroPie. This includes entirely new sections for setting up your card, system, and controllers. Thankfully, the whole process is a bit easier now!

We've walked you through all sorts of
DIY projects for the Raspberry Pi
, but this one might be the simplest. You'll have your retro game console-complete with old-school controllers-up and running within 30 minutes. All you need to do is install the operating system on an SD card and do some simple file sharing from your PC.

Before we get started, let's go over some basics. Emulating old-school video games requires two things: game ROMs and an emulator to play them. A ROM is a copy of a game that exists on your device. An emulator is an application that can play that ROM. The rule of ethics is that you should have a physical copy of a game if you have a ROM (or you
can create your own
from your old cartridges). We'll leave it to you to come up with the ROMs on your own. With that, let's get the Raspberry Pi set up.

What You'll Get

Your Raspberry Pi will boot automatically into
EmulationStation
. This is a program running off a custom SD card called RetroPie that allows you to use a controller to select an emulator and a game without ever touching a keyboard or mouse. After everything's set up, you'll be able to navigate and do everything you need to do on the Raspberry Pi from a controller.

What systems can you emulate? A lot of them:

Amiga (UAE4All)

Apple II (LinApple)

Apple Macintosh (Basilisk II)

Armstrad CPC (CPC4RPi)

Arcade (PiFBA, Mame4All-RPi)

Atari 800

Atari 2600 (RetroArch)

Atari ST/STE/TT/Falcon

C64 (VICE)

CaveStory (NXEngine)

Doom (RetroArch)

Duke Nukem 3D

Final Burn Alpha (RetroArch)

Game Boy Advance (gpSP)

Game Boy Color (RetroArch)

Game Gear (Osmose)

Intellivision (RetroArch)

MAME (RetroArch)

MAME (AdvMAME)

NeoGeo (GnGeo)

NeoGeo (Genesis-GX, RetroArch)

Sega Master System (Osmose)

Sega Megadrive/Genesis (DGEN, Picodrive)

Sega Mega-CD (Picodrive)

Sega 32X (Picodrive)

Nintendo Entertainment System (RetroArch)

N64 (Mupen64Plus-RPi)

PC Engine / Turbo Grafx 16 (RetroArch)

Playstation 1 (RetroArch)

ScummVM

Super Nintendo Entertainment System (RetroArch, PiSNES, SNES-Rpi)

Sinclair ZX Spectrum (Fuse)

PC / x86 (rpix86)

Z Machine emulator (Frotz)

Some of the more advanced emulators like the Playstation 1 and Neo Geo don't work as well, but for the most part the older systems work great.

As far as the initial setup, that's all you need to do. In fact, if you plan on using a keyboard and mouse instead of a controller you're basically done and can skip to step four to transfer over your ROM files.

If you'd prefer to manually install the emulators, you can do that as well.
The RetroPie Github page
has a guide for doing it, but be warned: the manual process takes around six to nine hours to download and install everything. The benefit is that you get the newest versions of emulators and you can select what gets installed. For our purposes though, the above method works great and is incredibly simple.

Step Tw Boot Your Raspberry Pi and Set Up EmulationStation

Next up we'll boot up your Raspberry Pi. Plug in one of your controllers and your keyboard to the Raspberry Pi. Insert the SD card you just burned, and turn the Raspberry Pi on. Once it finishes booting into Emulation Station, Type F4 on your keyboard to exit to the command line. Then, follow these steps to get the SD card in order:

Type in
sudo raspi-config
to enter the configuration menu

Tap "Enter" on the first option to "Expand Filesystem" and wait for it run

Go to the Internationalisation Options and enter your location, keyboard, and timezone

Head to "Advanced Options" and enable SSH access if you want to transfer ROMs wirelessly

In "Advanced Options" Select "Memory Split" and change the number to either "192" or "128"

Select "Finish" and wait for the Pi to reboot

After it reboots, follow the onscreen prompts with your controller to set it up (up, down, left, right, etc). When you're finished, you can navigate through EmulationStation with just your controller. These controls will not work with the emulators-that takes an extra step we'll get to in the next section. After you confirm your controller works, pull up the menu (you picked the button for this during the prompts, mine is the Start button), and exit EmulationStation to go to the command line.

Step Three: Configure Your Controllers for the Emulators

The newest version of RetroPie makes it very easy to setup your controller and only takes a few minutes to do. With your controller and keyboard still plugged in, type this into command line:

cd RetroPie-Setup sudo ./retropie_setup.sh

This loads the RetroPie setup screen, where we can set up our controller. Head to the third option "Setup," select "Register RetroArch Controller," and follow the on-screen directions to set up your button inputs. If your controller doesn't have the buttons it's asking for, wait a couple of seconds for the prompt to continue. When you're done back out and select "Perform Reboot."

That's it, your controllers are all set up and ready to go.

Step Four (Optional): Transfer Your Roms from Your Primary Computer

For this step, we're going to assume you already have a bunch of ROMs on your primary computer. However, if you have them on your Raspberry Pi you can just move them over to the correct folders and you're all set.

Make sure your Raspberry Pi is on, and connected to your router.

Now head over to your primary computer and connect to your Raspberry Pi with Cyberduck again.

Navigate to RetroPie > roms.

Copy over any ROMs on your computer to the corresponding system folder and you're done.

From here on out, you'll be able to easily copy ROMs to the Raspberry Pi remotely through this method, so don't worry if you want to add more down the line. Once the file transfer is done, go ahead and reboot the Raspberry Pi with your controllers connected and everything should be good to go.

Further Resources

Once you finish the above, your Raspberry Pi should boot directly into the EmulationStation every time you start it, and you'll able to control the whole thing with your attached controllers-no keyboard or mouse required. That said, if you're having problems, resources are available to you. Here are a few places to seek out help:

PetRockBlock
: The official page for the RetroPie Project. Includes lots of guides, tips, and a forum for troubleshooting.

Super Nintendo Pi
: This is a full guide for a manual install, and includes lots of tips on setting up controllers, as well as skinning EmulationStation to make it look a little better.

The Raspberry Pi forums
: Lots of people are sharing their tips for getting emulators working better, as well as different controller setups, and more in the official Raspberry Pi forums.

RetroZone
: RetroZone is a collection of a various old-school controllers that can help you find the USB controller for the console you want.