This guide will walk you through the installation and configuration of RetroPie (a Linux distribution with Emulation Station pre-configured) and where to source some legal retro game console ROMS.
RetroPie is a ready-to-use Linux OS for your Raspberry Pi, which has everything already configured and ready to emulate NES, SNES, GameBoy, Nintendo 64, Playstation, Sega, and many other game consoles.
The installation and configuration steps are super easy. I’ve documented them below with screenshots and notes. Once RetroPie is up and running, I’ll install a free (and legal) NES ROM to test.
Installing RetroPie on a Raspberry Pi
The first step to getting RetroPie set up is to download it.
Balena Etcher is the best tool for writing Disk images to USB sticks and SD cards for use in a Raspberry Pi. Flash the downloaded RetroPie image to your Raspberry Pi’s SD card and make a cup of coffee – it may take a few minutes.When the image has been successfully written, you can remove the device – it’s ready to go.
Insert the SD card back into your Raspberry Pi and wait a few minutes (again) for the file system to resize.
RetroPie is based on Linux, so you’ll see the usual boot information as it starts up.
Configuring RetroPie
The RetroPie splash screen will appear while things finish loading up.
Now to configure game controllers.
I’m using a USB Nintendo Switch controller, which I picked up online for about $10. Most wired USB X-Box One or Nintendo Switch controllers should be compatible with RetroPie.
Once your controller is plugged in, RetroPie will detect it. Next, hold down any button on the controller to trigger the controller configuration process.
Press buttons on the controller to assign them to the button RetroPie will be emulating for your consoles. Watch out here – if you press the wrong button on your controller, there’s no way to go back and correct it other than rebooting the console. It’s a bit frustrating.
…There are a lot of buttons to configure…
The ‘HotKey Enable’ button is a bit ambiguous – I usually just assign it to the SELECT button equivalent, so it’s out of the way.
Adding ROMS to RetroPie
The controller’s configured, so we can take a look around RetroPie. Unfortunately, there’s not much to see other than this configuration screen as no games have been added yet. The ‘Show IP’ Option is useful if you want to load ROMS onto your Pi via a network.
I’ll be loading them from a USB stick. The File Manager is the easiest way to do this. Be warned – you’ll want to use a USB keyboard to navigate here.
I’ll need a game to load into RetroPie. itch.io is an online community for indie game developers. Some are generous enough to make their games free, and some are still making games for retro consoles – perfect! I’ve chosen the oddly named ‘Legend of Weed and Stiff.’
Copying the downloaded ROM to RetroPie. On the left side, I’ve navigated to my USB stick in the /media/ folder. On the right side, I’ve navigated to /home/pi/RetroPie/ROMs/ and then to the folder for the game console the ROM is for – in this case, NES.
Pressing the F5 key brings up the file copy dialog. It’s all pretty self-explanatory from there.
When the file has been copied successfully, you’ll see it in both folders. Multiple files can be selected for copying; it’s a quick way to copy your entire homebrew ROM collection from a USB stick rather than mucking about with network configuration.
RetroPie scans for new ROMs each time it starts. Exit the file manager and press the START button to bring up the main menu.
Select the ‘Quit’ option and then ‘Restart EmulationStation.’
Once your Pi has rebooted, the menu item for the console you have copied ROMs for sill appear in the RetroPie menu.
Selecting the game console from the menu will bring up the list of games available for that console.
The emulation will launch and…
Success! NES emulation is up and running.
Everything is working as it should be! RetroPie is a quick and easy way to get an emulation box up and running with support for a huge number of retro consoles.
Game ROMs for many retro consoles can be found from many homebrew developers online.
If you’re feeling especially adventurous, You can also develop your own games. GB Studio is a neat game development tool that lets you make your own classic GameBoy games with a simple interface – it’s worth checking out!
I'm Brad, and I'm nearing 20 years of experience with Linux. I've worked in just about every IT role there is before taking the leap into software development. Currently, I'm building desktop and web-based solutions with NodeJS and PHP hosted on Linux infrastructure. Visit my blog or find me on Twitter to see what I'm up to.
We use cookies on our website to give you the most relevant experience by remembering your preferences and repeat visits. By clicking “Accept”, you consent to the use of ALL the cookies.
This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.