With all the craze with "retro" consoles coming back and being so popular I wanted to see if I could build one myself using a Raspberry Pi. After doing a little research I landed on the RetroPie's website (https://retropie.org.uk/) and knew that I wanted a RetroPie console. With about 50 different consoles (including MAME and all the classics) and thousands of games at your finger tips, this will be the smallest, cheapest, and most portable gaming console you'll own with your friends begging you to bring it wherever you go.
This build isn't too difficult and can be done by most beginners, it was my first Raspberry Pi project I tackled. I'm not the greatest when it comes to coding so working with a Pi and RetroPie was a little daunting at first but once you get the hang of it you'll master it in now time at all (please note coding is not required for this project). That being said you will need some supplies before we can start this project, unless you have a Pi laying around. After purchasing supplies and finding some laying around the house it cost me about $25 [thank you Micro Center for the $5 Zero Pi W :)] to make this console, little cheaper than the $80 retro console with only 30 or so games on it.
*Please note 3D printing is part of this instructable but is not required to complete the project*
Step 1: Pick Your Pi
One of the biggest challenges of this build is picking your Pi! You can go with the Pi 3 Model B+, comes with built in WiFi, ethernet input, and 1GB of RAM (I know this doesn't sound like a lot but it is more than enough for this or any project!) for around $35 a board. Or we can go the cheaper route and pick up a Pi Zero W, with built in WiFi (Zero 1.3 without WiFi but we will be needing a WiFi enabled board for this build) and 512MB of RAM. Both boards have an HMDI or micro HDMI output with the latter being the Zero W. (Shown is the Raspberry Pi Zero W with a quarter for scale, sorry peeps I didn't have a banana at the time!)
For this project we will be using the Pi Zero W since it has WiFi built-in and more than enough RAM to play a few of my favorite consoles. Please note if you're going to go with the Zero W you might have issues playing any newer ROMs (anything newer than SNES).
Step 2: Buy Your Supplies
You will be needing the following supplies for your project; I tend to either go with Amazon, Micro Center, or Adafruit. I will link out to Amazon so you can everything besides the Pi Zero W. Supplies are as follows:
- Keyboard and mouse: the iPazzPort Wireless Keyboard Mouse Combo (I went with the combo to make it more portable), goo.gl/cE9f1v ($14).
- MicroSD Card, at least an 8 GB card: Kingston Canvas 16 GB MicroSD Card, goo.gl/e7z2Jz ($6).
- HMDI to micro HDMI Cable: goo.gl/n2Ti14 ($6).
- USB input to micro USB output, for keyboard or controller: goo.gl/UF28f3 ($4.85).
- Micro USB charging cable and block (5V): I had one laying around but if not snag this guy- goo.gl/ERVmFB ($7).
- Raspberry Pi Zero W from Adafruit: goo.gl/A6GLbb ($10). (shown is a Pi Zero W with headers, that's all I had on hand at the start of this project).
You can always bite the bullet and buy CanaKit's Raspberry Pi Zero W kit, it comes with everything above minus the keyboard mouse combo but includes a few cases and a heat sink. Here is the link: goo.gl/jKakB3 ($33).
Side note, Adafruit and Micro Center are great sites to buy supplies for any future Raspberry Pi or electronic projects. Also Micro Center tends to have the Raspberry Pi W on sale for ~$5 every so often, sorry but that is in store only.
*Please note the above prices were current pricing at the time this instructable was written*
Step 3: Print That Case!
When it comes to 3D modeling and using CAD programs I'm still a noob so I borrowed a 3D Raspberry Pi Zero case from Thingiverse. For those who don't know Thingiverse is an amazing repository of 3D models that community members design and upload. Again the below design is not mine, the creator Haunt Freaks (https://www.thingiverse.com/HauntFreaks/about) has some of the best cases/projects for the Raspberry Pi Zero on the site! (check out their other projects and don't forget to post your print of theirs)
I wanted to print something that would be small, lightweight, and of course portable. After sifting through countless designs I came upon this guy: https://www.thingiverse.com/thing:2197417 or 'Pi Zero keychain case.'
"pi Zero Keychain Case features:
- designboard is secured between the two halves
- all ports accessible
- eazy micro-SD insertion and retrieval...
- top with Raspberry pi logo (and one without)"
This print took about an hour; I printed 2 sets in different colors (silver and gold) to have some fun with it but you can print it in one color if you want!
If you do end up printing it please note that you might have to "finish" it, by either sanding out the rough areas or applying an epoxy coating (most people use: goo.gl/iEZHwc).
For those who dont have a 3D printer you can either go with purchased case or still get a 3D printed case by using services like 3DHubs (https://www.3dhubs.com/). These services are great but sometimes they can be expensive depending on the number of prints and the materials. I checked into having this case printed and it cost about $5 (without shipping).
Step 4: RetroPie Install
First things first, head over to RetroPie's website: https://retropie.org.uk/. From here you can check out what they have to offer but we will head right to the Download page: https://retropie.org.uk/download/. If you're using the Pi Zero W for this build please download the Raspberry Pi 0/1 version, if you went with the Pi 3 Model B+ you can download Raspberry Pi 2/3 version.
Once you have started that download make sure you have the following 2 software:
- 7-Zip, to extract the file from .gz file to a .img file format. 7-Zip: https://www.7-zip.org/
- Imager, I used Win32 Disk Imager on PC:
- for PC users- https://sourceforge.net/projects/win32diskimager/.
- for Apple users- https://etcher.io/.
- for Linux users- https://etcher.io/.
Once you have downloaded all 3 software we will image the RetroPie software onto our MicroSD card.
- Extract the RetroPie folder:
- Right click on the folder > 7-zip > Extract files… (extract to desktop).
- Using Win32 Disk Imager, click the folder icon > RetroPie .img file > Write. This should take anywhere from a few minutes to 10-15 minutes depending on your MicroSD card.
- Once you have done the above your MicroSD card should read “boot” as the name of the card; please make sure to eject your MicroSD card as to not corrupt it.
Step 5: Configure Your Pi
Next we will configure our “controller,” to start insert your microsd card and then we will connect/power up the Zero W and our keyboard (later you can use almost any Bluetooth or wireless controllers).
- Hold any button down for a few seconds.
- Start configuring:
- The d-pad we will use the arrow keys.
- ‘Start’ = enter key.
- ‘Select’ = space bar.
- ‘A’ = A key.
- ‘B’ = S key.
- ‘X’ = Q key.
- ‘Y’ = W key.
- These are the only keys you will have to configure for now, hold the enter button or ‘Start’ key to skip the other keys.
- Lastly skip the “hotkey” and once you get to the “ok” button hit enter, next it will ask you if you would like input the “hotkey” as the select button- tap yes. This will allow you to save and exit games later on without any issues. *Do not input any other button or key for the hotkey selection.*
Once you have configured your controller the EmulationStation will appear, later once we add games you will see it populated with which ROMs and games.
Step 6: WiFi and SSH Connection
The next step is to set up your WiFi and then activate the
SSH so that we can upload some games!
Before we can connect to our WiFi we need to set the “location” so that we’re able to connect. From the main menu follow the below steps:
- Raspi-Config > Network Options > WiFi > Location (select your country).
- Next exit to the EmulationStation and go to the menu. At the bottom you will see “WiFi” click on that and once you have found your WiFi connect to it (this is where the keyboard comes in handy).
- Side note once you have connected to your WiFi take note of your IP address, we’ll need this to access the SSH later.
Now that we have the WiFi set up we can activate the SSH or secure shell to remotely control your Pi and allows you to upload any files via the network.
- Raspi-Config > Interfacing Options > SSH > Enable.
We will need to download one last software to access our Pi over the SSH, we’ll use PuTTY for this (https://www.putty.org/). Once you have the program downloaded you can run it, in the “Host Name (or IP Address)” text box enter your IP address you noted before. You will be asked to log in using the default username (pi) and password (raspberry).
After you have launched Putty and are in “session” you will see a terminal screen appear with the RetroPie logo and Pi information (memory used and available, etc.). Once this appears you should be able to access the ‘Network’ folder on your computer, it will be named //RetroPie.
Step 7: Upload Some GAMES!!
Congrats you’re almost there, once you have successfully connected to the Pi over your network you will be wanting to download some ROM sets! Due to licensing/copyright laws you should not download these games *cough**cough* but if you were to do so check out www.emu (no space) paradise (dot) me. Take a look at their ROM sets, it is a lot easier to download and dump a whole set instead of one game at a time. Once you downloaded all of your games or sets, follow the below steps:
- Network > RetroPie (or Host Name you inputted) > ROMS
- Click and drag game(s) to their appropriate ROM emulator folder.
- Once everything is downloaded it's time to do a reboot of your Pi either in either two ways:
- On your computer: in PUTTY terminal type "sudo reboot." Once you do so your "session" will end but you should be all set at this point.
- On your PI: Enter key > Quit > Restart System.
Step 8: Enjoy Gaming!
After the reboot you will see your different console and games appear, please note that if you did not upload a game to a ROM folder the emulator will not appear.
Now it's time to kick back and play some great old school games :)!