How to Create a RetroPie on Raspberry Pi – Graphical Guide

By  on  

RetroPie

Today we get to play amazing games on our super powered game consoles, PCs, VR headsets, and even mobile devices.  While I enjoy playing new games these days, I do long for the retro gaming systems I had when I was a kid: the original Nintendo (NES), Nintendo 64, Sega, and so on.  Games like Mario 64, GoldenEye, Mario Kart 64, and Ocarina of Time were incredible.  They didn't have the graphics but the gameplay was outstanding.

Raspberry Pi

To enjoy these games today I must dust off my original Nintendo 64 (20 years old now!), fight asthma to blow into each cartridge a dozen times, and flip the power button with the hope that the game will start.  I recently decided that the effort to get my original consoles working was too much so I looked toward RetroPie: an amazing piece of software that sits on top of a Raspberry Pi that allows you to play retro gaming console games.

Grabbing a Raspberry Pi sitting around that I hadn't done anything with, I got out of my comfort zone and attempted to create a retro gaming machine with RetroPie.  It was faster and easier than I thought it would be!  Let me show you how you can create your own retro gaming machine so that you can relive those glory days!

Note:  I'm not a Raspberry Pi or Linux expert -- I'm simply walking you through how I created my retro gaming machine.  To keep the tutorial as visual and simple as possible, I've chosen to use GUI apps for flashing and interacting with the SD card, and have not enclosed my Raspberry Pi in a case.  Both the RetroPie and Raspberry Pi sites have excellent install and operational documentation so please visit those if you get hung up (or ask a question in the comments below!).  Lastly, I won't provide or link to ROMs; possessing ROMs for games you don't own may be illegal.  A simple Google or torrent search, however, should find you every game you want.

Hardware

I prefer a wired approach for getting the RetroPie game system up and running; bluetooth and similar technologies introduce complexities and, unless you've done Raspberry Pi work before, those complexities can get in the way.

Easiest: Required Hardware Bundle

If you don't want to order a bunch of separate pieces, and prefer one kit, I recommend the Vilros Raspberry Pi 3 Complete Starter Kit with Clear Case and 32GB SD Card. This kit includes everything you need!

Raspberry Pi Kit

Required Hardware by Pieces

Raspberry Pi gaming
  • Raspberry Pi - I recommend a Raspberry Pi 3 or newer
  • HDMI Cable - Used to connect the Pi to the TV, monitor, or display
  • SD Card - To flash the RetroPie operating system (and games) onto
  • SD Card Reader - To interface with the SD card from your Windows, Linux, or Mac machine
  • USB Controller - You can use any host of controllers that you can connect to the Pi using USB; I've chosen to use a Xbox One controller. I have, however, also ordered a USB Nintendo 64 Controller

Require Power Options

You will need one of the following options for power:

  • USB to Micro USB cable - Used to power the Pi from the TV
  • Micro USB Power Supply - Micro USB power supply to use instead of the USB to Micro USB for display. Some TVs don't provide enough power to the Raspberry Pi via the USB; in that case, this accessory is the next best option.

I've chose to use the Micro USB to USB cord since my TV provides the Raspberry Pi enough power to run properly.

Useful but Not Required

  • Raspberry Pi case - An exposed Pi isn't ideal; I chose the Raspberry Pi NES case:

    Retro Gaming Machine

    Note that you'll need wireless controllers if you want this model. If you don't plan on buying wireless controllers, opt for another case.
  • USB keyboard - To hook up WiFi and change other options on the Pi and RetroPie software

Installing the RetroPie Image on the Raspberry Pi

Follow the following steps:

  1. Plug your SD card and reader into your desktop machine

    Retro Gaming Machine

  2. Download and unzip the RetroPie image
  3. Download and install a Raspberry Pi app for flashing the RetroPie image onto your Raspberry Pi: Win32DiskImager (Windows), ApplePi Baker (Mac), or Etcher (Linux).  I flashed mine on a Mac so I downloaded ApplePi Baker.
  4. Open the app and flash the unzipped RetroPie image to your SD card.  With ApplePi use the "Pi-Ingredients: IMG Recipe" UI to find and load the unzipped RetroPie image (current file name and version are retropie-4.3-rpi2_rpi3.img).  Click "Restore Backup" to start the flashing process.

    RetroPie

Congratulations -- your SD card has been flashed with RetroPie software and is ready to be placed in your Raspberry Pi!

Ready the Raspberry Pi

Before we can fire up the Raspberry Pi and continue setup from the TV/display, let's insert the SD card and connect all the wires to the Raspberry Pi!

  1. Remove the SD card from the reader and place it into its designated spot underneath the Raspberry Pi

    Retro Gaming Machine

  2. Insert the HDMI cord into the HDMI slot
  3. Insert the Micro USB side of the USB to Micro USB cord into the Pi's Micro USB slot
  4. Insert your USB controller into one of the Pi's USB slots
  5. If you have a wireless keyboard, now would be a good time to insert that into one of the Pi's USB slots

    Retro Gaming Machine

Now let's get this thing connected to the display!

TV/Display Setup

With all wires connected to the Pi, it's showtime!

  • Display:  connect the HDMI cord to an open HDMI slot on your TV or other display.
  • Power:  connect the USB side of the USB to Micro USB cord to an open USB slot on your TV or other display.

Retro Gaming Machine

You should now see some command line / shell feedback output as the RetroPie software finishes install:

Retro Gaming Machine

Retro Gaming Machine

Retro Gaming Machine

Controller Configuration

RetroPie will detect the type of controller you're using:

Retro Gaming Machine

You will then be asked to press each relevant button for use in different system types (some system controllers had more buttons and joysticks than others).  Press the buttons as requested to complete controller setup.

Retro Gaming Machine

WiFi Setup and Moving ROMs

The one wireless operation I will perform is sending ROMs from my desktop Mac to the Raspberry Pi via WiFi;  I could use an ethernet cable but that's one wire I don't want to bother with.  Enter into the WiFi setting and follow the instructions to select your WiFi network and enter your password:

Retro Gaming Machine

Retro Gaming Machine

With WiFi configured, now you jump onto your desktop computer and connect to the Pi using SSH, SFTP, or a network mount.  I choose a network mount:

Retro Gaming Machine

Once connected, select the roms volume.  You'll see a listing of directories representing retro gaming consoles.  Once you find and download game ROMS onto your desktop, simply copy each ROM file into the console directory it belongs in:

Retro Gaming Machine

RetroPie

Adding games to a powered on Raspberry Pi requires a restart (remove the USB cord from the TV and plug it right back in).  Each time you start your Raspberry Pi, the RetroPie home screen will show an icon and game count for each system for which you have ROMs for!

Retro Gaming Machine

Retro Gaming Machine

Select any game and you're ready to play!

Retro Gaming Machine

That's It!

Hopefully this process didn't take too long.  Creating a RetroPie retro gaming machine took 15 minutes the first try but only a few minutes each clean try after;  you'll spend more time looking for ROMs!

Kid Retro Gaming

And one of the best parts? Now my kids can enjoy the same games I loved at their age!

A big thank you to Dav Glass for the inspiration.  I was intimidated to attempt creating a RetroPie retro gaming machine but his encouragement was all I needed!

Recent Features

  • By
    How to Create a Twitter Card

    One of my favorite social APIs was the Open Graph API adopted by Facebook.  Adding just a few META tags to each page allowed links to my article to be styled and presented the way I wanted them to, giving me a bit of control...

  • By
    7 Essential JavaScript Functions

    I remember the early days of JavaScript where you needed a simple function for just about everything because the browser vendors implemented features differently, and not just edge features, basic features, like addEventListener and attachEvent.  Times have changed but there are still a few functions each developer should...

Incredible Demos

  • By
    MooTools Zoomer Plugin

    I love to look around the MooTools Forge. As someone that creates lots of plugins, I get a lot of joy out of seeing what other developers are creating and possibly even how I could improve them. One great plugin I've found is...

  • By
    Build a Toggling Announcement Slider Using MooTools 1.2

    A few of my customer have asked for me to create a subtle but dynamic (...I know...) way for them to advertise different specials on their website. Not something that would display on every page, but periodically or only the homepage. Using a trick...

Discussion

  1. Also highly recommended for this setup: A couple arcade-style USB “fight sticks” for MAME games. Some of them have the same sticks & buttons as arcade machines – though even the cheaper ones are pretty nice. Helped run a retro gaming session at Penguicon this past spring and this set up seemed like a hit.

  2. GumBoy

    Regular USB port might not be enough to power up Raspberry Pi during more resources demanding activities (like more advanced MAME games). Raspberry Pi needs 2.5A of power supply while regular USB ports deliver up to 2.0A. Also pulling the power plug out ad-hoc is the easiest way to damage your filesystem and end up with the need to reinstall whole software stack. Exit Emustation and type sudo reboot or sudo shutdown instead.

  3. Likewise profoundly prescribed for this setup: A couple arcade-style USB “battle sticks” for MAME recreations.

  4. Charmander

    I was very interested to read this article, written in simple and understandable language. Everything was laid out at every step. Nice to read such articles. Would definitely recommend https://escortintoronto.info.

  5. It’s really cool and cheap project. I already have PI 3, so I will grab one of those vintage cases for it and do one for myself. Thanks

Wrap your code in <pre class="{language}"></pre> tags, link to a GitHub gist, JSFiddle fiddle, or CodePen pen to embed!