RetroPie Arcade Machine

What is it?

RetroPie is a complete software package that's installed on the Raspberry Pi and allows you to play old video games. The Raspberry Pi is a small "bang for the buck" computer. We are talking about ~$100 once you buy everything you need. In terms of performance, the latest Pi 3.0b model is quad core 64-bit 1.2ghz with 1gb built in RAM. This isn't anything to brag about in terms of a modern day gaming computer, but it is all you really need to play any consoled game from the N64/Playstation 1 era and prior.

What is this page for?

This isn't going to be a click-by-click guide on how to setup and configure the Pi. Guides like this already exist and the last thing we need is another one. This is going to be a common usage walkthrough on what to do, and where to go. Setting up the Pi and getting it to turn on is one thing, but figuring out what to do afterwards is another. Often times there is more than one way to do something scattered out there on the internet. I've tried various methods and I'm going to point you to what works best for me and what I think will work best for 95% of Pi users.

Step 1: Buy the latest Canakit, a USB keyboard, and a wired controller

The Canakit is a Raspberry 3.0b (Currently the latest Pi you can get as of 12/26/2016) with all the basic add-ons you will need. It comes with heat sinks for the GPU and CPU, a case, a 32GB Class 10 MicroSD card, a HDMI cable, and a power cord. Everything is available from amazon for around $75 shipped. If you have Prime you'll have it in two days. In addition to this buy any USB keyboard. Walmart or Amazon should have some for around $10. Also you will want one wired controller to start with. I chose an Xbox 360 controller. Find an OEM controller and not some cheap knockoff.

Step 2: Setup the Pi

It sounds difficult, but it's actually really simple if you follow these steps: https://github.com/retropie/retropie-setup/wiki/First-Installation. There is even a video walkthrough on the page. Once you've completed this process, you should have a working Pi that will boot up to Emulation Station. It will have internet access and you will have a working keyboard and controller.

Step 3: Advanced Configuration

This really isn't too advanced. The Pi comes delivered at a set CPU speed of 1.2ghz. Overclocking is where you push the CPU a little harder. So instead of cycling at 1.2ghz it may be 1.3ghz. Overclocking is considered a fine art. There are Do's and Don'ts, and tradeoffs to consider. If you push it to the max you will need a bigger power supply, better cooling, and it will shorten the processor's life. You can go crazy with editing configuration files, waiting until it causes crashing in applications, then backing it off a little. I'm not recommending doing any of this. What I do recommend though is that you bump it to the next step. Asking for 100mhz more out of a processor that you just installed the Canakit heat sinks on is perfectly safe. I actually have the older Raspberry Pi 2 which is only 900mhz. I've had it overclocked to 1000mhz for 2 years now. If you can go into the Configuration/Tools menu of RetroPie and they provide pre-configured levels of overclocking; bumping it up 1 spot shouldn't hurt anything. The 2 minutes it took you to gain ~10% more CPU will help you especially in more intense emulators like the N64. Here is the latest GitHub page on overclocking your Pi that has more information: https://github.com/retropie/retropie-setup/wiki/Overclocking

Next, you will want to adjust the GPU/CPU memory split. The current Pi comes with 1GB built in RAM that is shared between the CPU and GPU. By default the GPU is only getting 32mb of RAM. I'd give it more, especially if you are going to try to run N64 games. I have mine set to 384mb for the GPU. The Github page on this is located here: https://github.com/retropie/retropie-setup/wiki/Memory-Split

Step 4: Deciding what Game Systems and Roms to use for your Pi

The Pi has taught me that there were a TON of gaming consoles I had never heard of. The RetroPie is capable of emulating older game systems very well. Before you go out and try to find every known rom in existance you should really take a step back and plan out what systems you really want your Pi to host. Here are some guidelines that should help you:

Definitely use Github to customize your list. For instance HERE is the page for the MAME emulator. See how several emulators are listed? Notice how some start with "lr" in the name. Those are liberato. So this is a system I would definitely support. The other key things to take away from this page are the extension and the BIOS. The extension is for the rom files. This is saying that the rom files this emulator uses should have a .zip extension to them. Some platforms support multiple extensions. It's important to know the extension is correct before downloading and copying games to the Pi. Also the BIOS is important. These are special system files. For this MAME emulator if you didn't have NEOGEO.zip copied into the rom folder as all the games, the emulator wouldn't work or some games may not be playable. The Intellivision emulator has several BIOS files that are needed including one for IntelliVoice. So keep this in mind when trying to find Roms. You'll need to find the BIOS files as well.

Step 4: Copy Roms over with WinSCP

You probably noticed that after setting up the Pi you couldn't see any emulators inside of Emulation Station. Emulators will ONLY appear inside Emulation Station when games exist in their corresponding rom folders. Afterall, there is no since in turning on a Super Nintendo if you don't have any games for it. A lot of the online videos will show you using a USB thumb drive to copy roms over. That is just over-complicating things. Instead download WinSCP onto your laptop, launch it, and connect to the Pi. The name of the Pi should be "Retropie" and the login credentials will be pi/raspberry by default. Once connected you can navigate to home\pi\Retropie\roms\ and copy your rom files over via wifi. There will be no guessing games here, and no fumbling with switching thumbsticks back and forth. Plus by having WinSCP setup you can use it later to update and backup config files. In addition to setting up WinSCP I also like to go into my Router and assign a static IP for the Pi. This way it's always the same. Here you can see I've got WinSCP connected to the Pi and sitting in the n64 rom directory. So all I would need to do is drag roms from my PC to this window.

Step 5: Scraping roms

At this point you probably have a bunch of games that are playable on the Pi. However they are not organized very well. It's just a list of filenames and it's not always intuitive what name corresponds to what game. This is where Scraping comes in. Scraping will take a hash of the game (or sometimes filename) and compare it to a few different online game databases. When it finds a match, data related to the game (such as title, ratings, description, even a picture of gameplay or the game box) will be downloaded to the Pi. Now when you select an emulator and see the list of roms available they will be more legible.

I've tried scraping roms 3 different ways.