Hello! My name is Ethan and I am here to show you how to build your very own arcade emulator. It’s a lot simpler than it sounds, but there are some good things to know.
So lets start with some definitions:
If you don’t know what an arcade game is I can’t help you.
‘Cabinet’ in the arcade world refers to what is pictured above. That big machine you walk up to and put quarters into at an arcade, specifically the wood shell that everything is mounted on. Not a shelving unit with doors. See this.
The console is the main area of interaction with the player on an arcade machine. It’s where all of the buttons and joysticks are.
An emulator is a computer software program that pretends to be a piece of computer hardware. What this means is that an emulator program will make your computer act like another (usually older) computer, such as an arcade machine, or the Nintendo NES. See this.
ROM stands for Read Only Memory. For our use it is the ROM image: a file version of a video game. Most older games were on cartridges or disks (like Gameboy cartridges). A ROM is just the data from one of those as a file. They only work with the system they are supposed to work with (NES games work only on NES). See this.
A BIOS is kind of like the skeleton of a computer. It lets everything else run on it. For us, the BIOS is kid of like a ROM, except instead of the file version of a game it is the file version of a console. See here.
The Raspberry Pi (or just pi) is a tiny iPod sized computer. They are wonderful little things, inexpensive but with just enough power to run older games smoothly. See this.
Now that you have some new terms to play with you’re ready to figure out what you want. What do you want? Pretty much anything is possible if you
believe in yourself have enough money. To give you some ideas, here are some basic options, from cheap to less cheap:
This project could just be the little computer that runs everything. It already has an HDMI in it and USB ports, the only other thing you would need is a USB controller, like this, an HDMI cable (assuming you have a TV that supports this), and a power cord for the Pi. And a case for the Pi. Simple, and will cost you between $40-$60.
This was my choice. It’s just a pi, plus two awesome wood box controllers awash with clicky buttons and analog joystick controllers. I built mine for around $110.
If you have racks of stacks and an indomitable love for nostalgia then this would be the route for you. Making a full stand up cabinet. For this option you could build the cabinet yourself or get one prefabbed, they sell them at many stores online. This is closer to the $300-$900 range, depending on the features you want. This would also be the setup I am least prepared to walk you through making.
Did that help? Do you know what you want? No? Fine then. We can start with the brains of the machine and go up from there.
The hardware we will be working with is the afore mentioned Raspberry Pi. They’re tiny, cheap, but with decent power. They also have a large and avid fan base, so any problems you have with one will likely be already solved on one of the forums.
Now note, when you order a Pi what you get is a Pi. Literally nothing else. Just a raw little motherboard. You will probably also want a case, and you will need a power supply (this lets it turn on), and a micro SD card (this holds all of your games), and an HDMI cord (this makes it go on the TV).
Here is a basic parts list. This is pretty much all you need for the ‘just a pi’ plan.
$40 - Raspberry Pi 2 B
$7 - Pi Case
$8 - Pi Power supply
$6 - HDMI Cable
You can also buy all these items in a kit, like these.
Now these are the recommended parts (according to me). They are the parts I used, so they should work. This will run pretty much anything 8-bit that you throw at it, apparently even up to Playstation 1 games (I’ve yet to test this myself).
If you want to go cheaper you could get a Raspberry Pi B (not 2) which is about $10 cheaper, and if you want more power upgrade to the Raspberry Pi 3 (which I believe is cheaper than the 2 at time of writing =S).
The only other thing you need is a controller. Essentially anything that generates an input over USB works. You can use a keyboard. You can buy a cool retro looking controller. You could probably even use a midi keyboard. Just be sure to get two so you can play with friends.
Now that you have your stuff and your tiny apartment is littered with equally tiny Amazon boxes, we can start getting it to work.
Now, RetroPie has written up a very comprehensive wiki article on how to install their software into your Pi. It even includes a video on how to do it. They explain it way better than I ever could, so click that link like two sentences ago.
BUT WAIT DON’T CLICK IT YET! JK you can click it. Just don’t install any ROMS yet, that will be handled next. Just make sure that RetroPie is successfully installed and working. Actually boot it up (i.e. plug in the pi, it has no on switch) and make sure you can see Retropie on your screen.
Now many of you think you know how ROMs work. You have a Gameboy emulator on your phone. So did I. Turns out it’s more complicated than that, especially for arcade games.
Remember, the BIOS is what required for a certain console to run. If you have the Gameboy Advance BIOS and emulator, you can run any Gameboy Advance ROM, because all Gameboy Advance games run on the same hardware.
Arcade cabinets, though, almost always have different hardware. Most cabinets are different, and some ROMs require no BIOS, some need a general BIOS (like many Capcom Games), and some need a specific BIOS.
To add to this, most arcade ROMs only work with a certain emulator. They will not work with all emulators.
Getting this to work took days of pain and suffering for me. Worry not, I’m here to help you through this.
I use (and you should too) the FinalBurn Alpha emulator (abbv. as FBA). It comes with RetroPie, so you already have it. It runs everything I’ve thrown at it. I get all of my arcade ROMs for FBA from a website called Gametronik. It will be the first result if you type that phrase into google.
Yes, it’s in French. It’s also the best site I’ve found, and every game I’ve gotten from it works. Google translate is your friend.
At this point I think it will be easiest for me to walk you through getting just one ROM for FBA, then you can figure out how to get the rest of the ones you want.
Get yourself a USB stick. You have one somewhere. Check the junk drawer.
Now delete all of the files off of it (make sure it is FAT32 format) and make just one folder. Name this folder ‘retropie’. All lower case.
Turn on your Raspberry pie, wait for it to boot, then stick the thumb drive into one of the USB ports. Wait for the little light to finish blinking, then pull it out again.
When you plug it back into your computer you will see that Pi has made some new folders for you. If you go to /home/pi/RetroPie/roms and you will see a bunch of folders. Each of these folders is for a different emulator. There are a lot. Go to the folder called ‘fba’.
FBA keeps it’s BIOS and ROMs in the same folder. This folder is the one you are in now. Lets start with the BIOS. Go to the Gametronik website. On the right hand navigation pane under ‘emulators’ click Final Burn Alpha, then Arcade. Scroll down until you see the subheading “BIOS” (It’s the same in French). Download all of them and copy them to the ‘fba’ folder. Leave them zipped.
Now you are ready to get some ROMs. On that same webpage there are some letters near the top. Clicking on one of those will give you a multi-page list of arcade games that start with that letter. Go nuts.
Now wait don’t download any yet. Yes I know what I said, forget that. This is really important. On the download page for a game there will be a bunch of different versions, usually for different languages or regions. Under most of them will be the phrase fichier something.zip requis. This means that the .zip file mentioned is required for the game to play. This is because most arcade games that have different languages are built off of the original game file.
The file you need is always the first one on the page. Once you have that one then you can get the other versions or languages of the game. Now go nuts.
One you have your ROMs put them in the same folder as the BIOS, the one called fba.
Now you need to take that USB stick, turn on your Pi, wait for it to boot, then plug the USB stick in. Wait for it to stop blinking (this will take a little longer) then take out the USB stick. Reboot your Pi and your new games should be found when you select this logo:
If they don’t show up, then something has gone terribly wrong. I would try it again, making sure you put them in the right folder, and that they are still .zip files.
If they show up and don’t start, you may have the wrong ROM (remember to get the first one on the list) or you don’t have the right BIOS. For Capcom games like street fighter you might need two BIOS’ called CP1 and CP2 (found via google). If that doesn’t work either search Google or ask a question on the FBA forum.
For all other systems, like GBA, NES, or N64, it’s a little more straight forward. Each system has it’s own page. Each page will tell you what you need, and where to put your ROMs and BIOS’. Most will not need you to download a BIOS, and ROMs and BIOS files are easily found via a quick google search.
Hopefully! If you get games to run and turn on you can give yourself a pat on the back. You’re kinda done.
Ok so sometimes you have to change the buttons. Fortunately you can set what buttons do what per emulator, or even per game. See these instructions. ‘Core input re-mapping’ is (IMHO) the best method, it can be found about halfway down the page.
Now, if everything is good, we can move to the next part (if you want).
If your like me Street Fighter is not very fun on a keyboard or controller. You (I) want the satisfying feeling of slapping some clicky buttons. Since this is the case the next step is building a console.
There are limitless ways to lay out your controls, and what controls you want to include. How many buttons? How many players? Joysticks? Spinny balls? Those things that rotate? You can get and use them all. I went with two instances of the classic street fighter layout: one joystick and six buttons per player plus smaller select start buttons, like this:
You can play 90% of games with this, so we will move forward in the tutorial with this design.
You will need 12 buttons (6 per player), two joysticks, and two controller boards (don’t worry, no soldering), and something to mount them on. This could be a cardboard box, or wood boxes, or even a coffee table if you want to impress your guests. Basically any material you can make 28mm (1 1/8 in) holes in and is no more than 13mm (1/2in) thick. Get creative.
2 x $10 - Roundhouse Arcade stick
Now these are just the ones I bought. There are myriads of buttons and joysticks with myriads of different styles and options and levels of quality. Do some research. Figure out what you want.
Next would be designing the console. When figuring out what you’re doing, don’t forget to make sure that the wires will reach, and that the joystick and buttons have clearance. I used a spade bit to drill the holes, you can do whatever you wish.
Since this is such a custom project, it’s hard to layout a step by step tutorial for building where you put the buttons. For my project I went to Home depot and bought some cheap plywood, 1/2 inch. I made my boxes 13 x 7 x 3 1/2 inches each. I made 28mm holes for the buttons and joysticks (they mount from the bottom).
If you are no good at crafting things out of wood, get some laser cut acrylic. It’s a little more expensive, but all you need to do is submit a vector drawing and they’ll cut it out for you here. Plus it looks really cool.
This is way simpler then it seems. Your controller board should come with some wires. One end will plug into the board, the other will clip on to the switches.
If you are using the boards I recommended, then wire your buttons to the side that has the long line of spots, and the joystick to the four on the other side.
Doesn’t matter too much what order the buttons are in, you will sort that out in RetroPie. The Joystick does have to be the same though. Up goes to up, down to down (see diagram above). Actually look at which switches are clicking when you move the stick.
After that just connect the USB cable and your done. Try it out on the Pi to configure the buttons (Pi should ask you about it if you start it up with the controller plugged in for the first time, if not see here) and make sure it works.
There you go! You did it! You mad DIYer!
If you have any questions or criticisms about the tutorial or your own setup, please leave a comment. I’d be happy to help.