Skip to main content

Digital Trends may earn a commission when you buy through links on our site. Why trust us?

Here’s how to build the ultimate retro gaming machine with Raspberry Pi or Pi 2

Raspberry Pi 2 mini PC
Bill Roberson/Digital Trends
Updated 3/20/2015: We’ve confirmed this information also applies to the Raspberry Pi 2, which is quicker than its predecessor, and have changed the guide to reflect this. 

We all have that special place in our hearts for those awesome games of yesteryear on consoles like the NES, SNES and Atari 2600. But it isn’t feasible to keep three of these older consoles all attached to a single TV. Instead, here’s a way to put all your favorite classic games in a single device that’s smaller than a deck of cards. Using the Raspberry Pi 2 or Raspberry Pi B+ and a special piece of software called RetroPie, here’s how you too can build the ultimate retro gaming machine, compatible with thousands of classic games.

Related: A $35 computer can run Windows 10? Latest Raspberry Pi is a powerhouse

Difficulty: Moderate

Having some experience with Linux and command-line interfaces will make this far easier, but anyone following our guide should be able to get this up and running without any trouble. There’s also a huge community of Raspberry Pi and RetroPie users who are often happy to answer your questions, as well as plenty of information online about RetroPie, the software we use.

Note: When we tell you what commands to enter, they’ll be shown in quotation marks, “like this.” Be sure to enter or follow everything in between those quotation marks for accuracy.

Raspberry Pi 2 mini PC
Bill Roberson/Digital Trends

What you’ll need

Here’s everything you’ll need to get started with this guide:

Raspberry Pi 2 ($35)
We’ve tested this guide with a Raspberry Pi 2 and Raspberry Pi B+, but recommend the Pi 2 since it performs better.

6.5 ft Micro-USB 10W power supply ($9)
You can use any micro-USB cable, but it’s best to use one with the maximum power output.

Raspberry Pi B+ Case ($11)

32 GB SanDisk Micro SDHC Card ($17)

6.5 ft HDMI Cable ($6)

USB miniature Wi-Fi adapter ($8)
Instead of going wireless, you can also use Raspberry Pi’s built-in Ethernet port

2 to 4 USB SNES controllers ($20 – $40)
Instead of SNES controllers, you can also use a USB PlayStation controller too.

USB Keyboard ($11)

Total Cost: $122 – $156

Getting Started

This guide has been successfully tested with both the new Raspberry Pi 2 and Raspberry Pi B+. We recommend the Raspberry Pi 2 as it has six times the processing power of the B+ version and can emulate more demanding games, such as those for PlayStation and the Nintendo 64.

The most important software we’ll be using for this is RetroPie, an emulation kit that lets you run all sorts of classic games on a Raspberry Pi. If you’re using a Raspberry Pi, RetroPie comes as an image file you can write to your memory card, just like you’d burn an ISO to a CD.

We’ll also need some free software for your PC or Mac. You’ll need a way to burn images, as well as a SFTP program, which will let you transfer files to your Raspberry Pi.

For the PC, the two programs you’ll need are Win32 Disk Imager and CyberDuck.

For the Mac, you’ll want to download Apple-Pi Baker and CyberDuck. We’ll explain how to use this software later.

Installing RetroPie

To get started, you’ll want to download the RetroPie image provided by the PetRockBlog team. Make sure you pick the right version designed for your Raspberry Pi! Once downloaded, unpack it until you get the .img file you need. This file should be placed in a folder or desktop that you can easily access. Insert your memory card into your computer (you might need a USB card reader, depending on your computer) and follow the instructions below, depending on your operating system:

PC:

  1. Go to Windows Explorer and right click your micro SD’s drive letter. Ensure it’s formatted to FAT32 by selecting “Properties” and checking the file system type.
  2. If it’s not FAT32, right click the micro SD’s drive letter and click “Format.” Select “FAT32” For the File System type and click “Start.” This will erase everything on the drive!
  3. Launch Win32 Disk Imager. Click the folder icon on the right and select the .img file of RetroPie you unpacked earlier. You might need 7-Zip to unpack the .img.gz file.
  4. Under “Device” select the drive letter of your micro SD card. Make absolutely sure this is correct or you will format the wrong drive!
  5. Click “Write” and let Win32 Disk Imager do its magic. This will replace everything on the micro SD card with a Retropie image.
  6. If any errors occur or the disk imaging does not complete, reboot your computer and try again.

Mac:

  1. Launch Apple-Pi Baker. Make sure you’ve selected your micro SD card under “Pi-Crust.”
  2. Click “Prepare for Noobs” to format your drive to FAT32. This will erase everything on the drive!
  3. Under “Pi-Ingredients,” click the “…” button and select the .img file you unpacked of RetroPie.
  4. Click “Restore Backup” to begin the writing process. Make absolutely sure you’ve selected the correct micro SD card!
  5. If any errors occur or the disk imaging does not complete, reboot your computer and try again.

Once completed, the memory card may appear to have a different, much smaller size on your computer. Don’t worry! Since this memory card is formatted for Linux, it won’t appear normal in other operating systems. You’re actually all set to start configuring your RetroPie installation from the Raspberry Pi itself.

Next Page: Setting up your RetroPie Installation

Setting up your RetroPie

Now that you’ve installed RetroPie onto your microSD card, it’s time to boot up your Raspberry Pi with it. Go ahead and place your memory card into the Raspberry Pi and plug everything in except your two controllers. Once it has power, the Raspberry Pi will automatically boot up, and if everything works it should reveal the RetroPie splash screen, followed by the EmulationStation home screen.

EmulationStation is the graphical interface for everything that goes on under the hood. RetroPie is actually a version of Debian Linux designed specifically for Raspberry Pis that will run game emulators. In order to get everything properly configured, we’ll need to go into the back-end, which requires us to close EmulationStation.

Press “F4” on your keyboard to enter the command line interface. If you’ve run Linux from a command line or a terminal, this screen will look familiar, featuring a black background and screen full of text.

From there, type “sudo raspi-config” and press enter. The Raspbian configuration menu will appear, which has a blue background and a gray menu in the center.

You can use your arrow keys and Enter to navigate. Select “Expand Filesystem” and press Enter through the prompts to expand your memory card’s filesystem, which will ensure you use all possible space on your card for storage. It may ask you to reboot, and you should select “No.” We can do that later.

The only other thing you need to do is designate a new user password. Scroll down and press Enter over the “Change User Password” option. Enter whatever password you want your user to have. It already has the username “Pi” and having a custom password will ensure others cannot gain unauthorized access to your Raspberry Pi. If you don’t do this, it will have the default password of “raspberry.”

We’re finished in this configuration page. You can now just scroll to the bottom, select “Finish” and press Enter. If it asks you to reboot, say no. We still need to configure your Internet access.

Configuring the Internet

We’re not done yet — but we’re getting there. If you want to get your Raspberry Pi on the Internet quick and easy, simply plug in an Ethernet cable. If you want to use the Wi-Fi adapter we suggested, it takes a few steps but is worth the effort.

First, we need to open a text editor in the command-line interface. We can do this by typing the command “sudo nano /etc/network/interfaces/” which will make a page appear.

We want to make the page look like the text below, just not in italics:

auto lo

iface lo inet loopback
iface eth0 inet dhcp

allow-hotplug wlan0
auto wlan0

iface wlan0 inet dhcp
wpa-ssid “ssid”
wpa-psk “password”

You’ll want to replace “ssid” with whatever you access point is called with the quotation marks around it. The same goes for the password to your access point. This works for most wireless networks that use WPA-PSK passwords. When you’re finished, press Ctrl+X, and then the letter “y” on your keyboard. This will close and save the changes you made.

Note: For help on getting Wi-Fi to work with different types of passwords, this page can offer a wealth of information. It might be challenging though if you’re new to Linux.

Once we’re ready to test if everything works, type “sudo reboot” and press Enter to reboot your Raspberry Pi. If the Internet connection is working, once you press “F4” after booting you should see a message appear with the current IP address of your Raspberry Pi.

If for some reason you can’t see it, type “ifconfig” and press Enter. You should see a few network adapters come up, and one of them will have the 192.168.xxx address you need to connect to your Raspberry Pi.

Next, we’ll want to let our Raspberry Pi update its software. You can do this by typing the following to commands. Each may take some time, so be patient!

“sudo apt-get update”
“sudo apt-get upgrade”

The first command updates the Raspberry Pi with information on currently available updates, and the second will put those updates in place. When your finished, reboot your device again with the following command:

“sudo reboot”

Configuring your controllers

The last thing you’ll want to do is configure your controllers. To do this, we need to register our controller of choice with the emulation system. The YouTube user “Floob” also created a great guide you can follow to help make this part of the process easier.

RetroPie: Configure USB Controller

Whether you picked our recommended SNES controllers or another USB controller of your choice, plug one into the Raspberry Pi (even if you own more than one) and enter the command-line interface by pressing “F4” after booting.

Next, type the following two commands:

“cd /home/pi/RetroPie-Setup”
“sudo ./retropie_setup.sh”

You’ll be brought to a menu much like the one we saw for configuring the Raspberry Pi. You’ll need to first select option “1. Binaries based installation” and press Enter. This will take a few minutes, so sit tight.

Once the setup is finished, scroll down to option “3. SETUP” and press Enter. You’ll then want to scroll down to “322. Register RetroArch Controller” and press Enter.

Get your controller ready! After you press Enter once more, the system is going to ask you to press each key related to your controller. If you’re using an SNES controller, it will eventually start suggesting keys you don’t have. Don’t worry! Just wait and it won’t register any keys you don’t have. At the end just press Enter to exit the menu. You should also take note of what the script called the .cfg file — for us it was “USBGamepad.cfg” but it might be different for you.

We’re almost finished. You just need to add a reset button. If you’re using a controller while playing, a great way to exit the game and head back to the main menu is to press SELECT and START together on your controller. This doesn’t work by default though. To make it work, you need to do the following:

  1. type “sudo nano /opt/retropie/emulators/RetroArch/configs/USBGamepad.cfg”
  2. You should now see a list of gamepad inputs. Take note of the numbers for Select and Start
  3. Add the following two lines to the end of your screen.
    “input_enable_hotkey_btn = “X” ” where “X” equals your Select button number.
    “input_exit_emulator_btn = “Y” ” where “Y” equals your Start button number.
  4. Press Ctrl+X and “y” on your keyboard to close and save the changes.
  5. Type “sudo reboot” and press Enter to reboot.

Note: The reset button should work on most emulators, but if it doesn’t work for some reason you’ll need to press “Esc” on a keyboard.

Once you’re finished, it’s finally time to add some games.

Next Page: Adding games and final tips

Acquiring and adding games

It’s finally time to add games to your Raspberry Pi.  Unfortunately, we can’t share with you where to download these ROM files for legal reasons, but a quick Google search should offer plentiful places to choose from. Remember, you shouldn’t download any games that you don’t already own! Find a way to acquire the games before downloading their ROM versions. If the console you want to play requires a BIOS file, you must also own the physical console to use its BIOS files.

You’ll also want to make sure the games are in the correct file extensions needed to run. For example, Nintendo ROM files are compatible with RetroPie in the .nes format, while SNES ROM files need the .sfc format. PlayStation games need to be converted into .bin image files. You may need to experiment with different game versions to ensure compatibility with RetroPie.

To get the games on your RetroPie, take note of that IP address you recorded of your Raspberry Pi. You’ll also need to be on the same wireless or home network as your device. Load up CyberDuck for either Mac or PC and do the following:

  1. Click “Open connection” on the top left.
  2. On the new window, select “SFTP” from the drop-down on top.
  3. For “Server,” enter the IP address of your Raspberry Pi. It should begin with 192.168.xxx
  4. For “Username,” enter “pi” (remember that the username is case sensitive!)
  5. For “Password,” enter the password you setup earlier in the configuration settings.
  6. Set your connection to Port 22 if it isn’t set there already.
  7. Press “Connect.”

You will probably get a message asking you to verify the “RSA Fingerprint” – this is just a normal security message. Agree to the message and you should then connect to your Raspberry Pi.

Normally you’ll be sent to the /home/pi folder. You want to get to the folder with all your ROMS, which is “/home/pi/RetroPie/roms.” Place your ROMs into each folder that corresponds to the name of the compatible console. Once your ROM files are all placed, the only thing left to do is to go and test it out!

Final tips

Raspberry Pi 2 mini PC
Bill Roberson/Digital Trends

Once everything is in place and all your controllers are plugged in, go ahead and boot up your Raspberry Pi again, and this time stay in the EmulationStation graphical interface. You won’t need to leave this interface ever again unless something goes wrong and you need to troubleshoot. EmulationStation should detect your controllers, and pressing either one should let you configure it for the UI. This is a separate configuration from what we did earlier, and just to navigate around the UI. Once that’s finished, go ahead and test your games to see if they work.

That should do it! It took a few steps and some elbow grease, but this is how you can turn a simple computer the size of a credit card into the ultimate retro gaming machine. It even works with multiple controllers, so you can play with up to four friends at once in certain games.

To learn more about RetroPie and all it can do, check out its website. Let us know in the comments if you have any suggestions or questions about this guide! Good luck and happy gaming!

Joshua Sherman
Former Digital Trends Contributor
Joshua Sherman is a contributor for Digital Trends who writes about all things mobile from Apple to Zynga. Josh pulls his…
A dangerous new jailbreak for AI chatbots was just discovered
the side of a Microsoft building

Microsoft has released more details about a troubling new generative AI jailbreak technique it has discovered, called "Skeleton Key." Using this prompt injection method, malicious users can effectively bypass a chatbot's safety guardrails, the security features that keeps ChatGPT from going full Taye.

Skeleton Key is an example of a prompt injection or prompt engineering attack. It's a multi-turn strategy designed to essentially convince an AI model to ignore its ingrained safety guardrails, "[causing] the system to violate its operators’ policies, make decisions unduly influenced by a user, or execute malicious instructions," Mark Russinovich, CTO of Microsoft Azure, wrote in the announcement.

Read more