The Raspberry Pi is one of the most fun mini computers for anyone to use with a low bar of entry. And one of the most popular things to make with them is a retro arcade machine. In this diy, we will be making a retro system using a pi and an image called RetroPi.
Now this is not done yet, but I want to help people out now and will be updating over time until it is done.
But the programming part is ready to go.
Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.
Step 1: What You Will Need for All for the Basic
This is the brain for the whole project and we will be using the raspberry Pi 2 model B.
- Raspberry Pi 2
- A case for the Pi (well vented)
- at least a 16GB micro sd card (but the higher you go, the more space you have for games
- Heat sinks a.k.a the over clocking kit
- usb on the go charger (like one you used for a cellphone or bluetooth speakers. please use one that is compatible with you pi)
- HDMI cable
- A Pi compatible WiFi dongle
- Bluetooth dongle
(Now to save money on this part, you can buy a starter kit from ebay or amazon. This just makes life easier)
- A usb keyboard and mouse (a wireless, all in one USB one is best and saves ports)
- A SD card USB adapter ( best to find one that can also work with just micro as well)
- a usb controller ( you can use a 360 controller or any compatibal one)
- 16GB USB Flashdrive
- a screw driver
Step 2: Arcade Build Parts
What you need for all styles
- 8 arcade buttons ( Go with a 30mm buttons, Seimitsu PS14 KN Screw Button is the best and you can customize them)
- 1 24mm arcade button
- Joystick 8 way (Use a Sanwa if you want the best results. They are recomended for fightsticks too.)
- Premium Female/Female Jumper Wires - 40 x 12" (300mm) you may want to get Male/Female ones just in case
- powered usb hub of your choice
- insulated wire
Tools (may vary depening on your housing)
- wire cutter and strippers
- jig saw, drill, whatever you need to cut a hole and piece
- 30mm drill bit
- 24mm drill bit
- measuring tape
- nail gun (use small nails)
- liquid nail (not silicone base)
- electric sander
- soldering kit
- a metric circle stencil
Plug in Play Parts
These are part you will need for just a plug and play setup. The only parts that will be housed are the pi and wires and usb powered hub
- Panel Mount USB Cable - B Female to Micro-B Male
- Panel mount HDMI Cable - 40 cm
- Panel Mount Ethernet Extension Cable
- Panel Mount USB Cable - A Male to A Female
anything will work, just needs to be big enough to house the parts.
- USB Powered Speakers or any kind you want
- A monitor of small hdtv of your choice, just don't go overboard. this is for one player
- small power strip (must be able to plug in the display, pi's power supply, and the usb hub power supply
- Panel Mount Ethernet Extension Cable
- Panel Mount USB Cable - A Male to A Female
- 1/2-3/4 in thick finished particle board (you can find it at lowes, it would be like the stuff used for making a counter top)
- Bon-dough (I may have misspelled it, it's car body repair putty.)
Step 3: Getting Started
- after you download all the files you need and installed them. Plug in you SD card you want to use and run SD Formatter.
- It should find your card, when it does head for the Options Button and in there click on the drop
down menu for FORMAT TYPE and pick FULL (OverWrite) and FORMAT SIZE ADJUSTMENT pick ON.
In Volume Label type in boot
Hit format and leave it alone until it is done. This may take a bit
depending on the size of the card. Once done, exit the program and open Win32DiskImage
The card should be found off the bat and now we are going to write in the image.
Click on the folder and find the retropie Disk image where ever you unzipped it. Pick it and hit Write. This will take a bit so just leave it alone until it is done.
When finished, pop the bad boy into your pi.
Note: if your are in the gui and you want to head back to the main program type in: emulationstation
confing the pi
- let the menu boot up to the input screen and then enter in all the commands
- once in the emulator hold alt and hit F4 let the thing run until you can enter a command
- type in: sudo raspi-config and hit enter
- in the menu got to option 1 and hit Enter and let it run. Once done hit enter.
- now go to option 4 and hit Enter
- hit option 1
- wait for the next menu and then scroll down to en_GB.UTF-8 UTF-8 hit space. Scroll up to en_CA.UTF-8 UTF-8 hit space and then enter
- select en_CA.UTF-8 and then enter and wait.
- next head back into 4, hit 2. and wait
- pick your country, state hit enter.
- back to 4, hit 3. and wait
- hit enter, then scroll to other hit enter. now pick your language and or county. hit enter and scroll to the top and hit enter again.
- enter on The default for the keyboard layout, enter on No Compose key. Then no.
- go to 7, enter, enter, then pick medium or high. enter end then another enter at the next menu.
- tap the right arrow key and hit
- Reboot now.
- let it run its course and head back to the gui (alt F4)
- hold Shift then 2, if you get @ your good.
- At the Gui (alt F4) type in: startx and hit Enter
- once that is done you should get a desk top. click on the icon were the home would be.
- under Internet right click on NetSurf Web Browser and hit Add to desktop, same for wpa_gui
- open wpa_gui and click on scan, a window will show and you need to pick on your wifi by double clicking on it.
- another window should show up and if you need a pass would for your wifi enter it and click Add. ( now if you need a Mac Number I will show you how to do that in a bit).
- if Satus says complete close it out and open NetSurf and go to a site like Google. If you can your set.
- click on on the home again and log out.
- your now back in to gui, type in: cd RetroPie-Setup and then hit enter
- type in: sudo ./retropie_setup.sh
- a menu will apear and go to
UPDATE RetroPie Binaries
, hit enter and wait untill a new menu show and hit enter then hit alt F4 to quit out of it and then go back in like before.
- Next is
UPDATE RetroPie Setup script
. This will take a bit but once it is done you will be back at that screen again. Scroll all the way down to Preform REBOOT And hit enter once more.
Sending roms via IP
- head back to the gui (alt F4) and wait. You should see a Mario Mushroom and in red text you should find your IP address. If you can't turn off the pi and head back into the gui or type in: ifconfig but you will need to do this comand to find you MAC address (NOTE: if you have to reinstall the image or switch out cards the mac and ip addresses may be different from the original one)
- you should have a mess of text show up. eth0 is your ethernet and wlan0 is your wifi. Each one has a HWaddr with a line of code to it, that is your MAC for each one. Write them down and save them.
- Now head to your PC and open a window, not the net and type in \\(your ip address)
- a folder should show up that says ROMS, open it and now you can take your roms and send them in but leave them as zips. Also send in the bios file for the gba in too but unzip it and the retroarch.cfg file as well
setting the video output
- on your pc plug in you sd card and open it.
- install Notpad++ and open the config file with it.
- on line 21; uncomment it
- on line 24; uncomment it and change the 1 to 2
- on line 25; uncomment it and change the 1 to 16
- on line 29; uncomment it and change the 1 to 2
By changing the number for line 29 will allow
audio to come out of the HDMI port. 1 is no audio (CEA), 2 is audio (DMT).
Doing this will have the hdmi port work with a HDMI to VGA adaptor and keep the display set to 1204x768 60 hz.
If you want to change the resolution to match
up with the recommended resolution of your monitor, change the number in line 25 to the number of the resolution you want. Here is a list of all the modes to pick from for hdmi_group=2. But before you do, check the resultion of your monitor first
hdmi_mode=1 640x350 85 Hz
hdmi_mode=2 640x400 85 Hz
hdmi_mode=3 720x400 85 Hz
hdmi_mode=4 640x480 60 Hz
hdmi_mode=5 640x480 72 Hz
hdmi_mode=6 640x480 75 Hz
hdmi_mode=7 640x480 85 Hz
hdmi_mode=8 800x600 56 Hz
hdmi_mode=9 800x600 60 Hz
hdmi_mode=10 800x600 72 Hz
hdmi_mode=11 800x600 75 Hz
hdmi_mode=12 800x600 85 Hz
hdmi_mode=13 800x600 120 Hz
hdmi_mode=14 848x480 60 Hz
hdmi_mode=15 1024x768 43 Hz DO NOT USE
hdmi_mode=16 1024x768 60 Hz
hdmi_mode=17 1024x768 70 Hz
hdmi_mode=18 1024x768 75 Hz
hdmi_mode=19 1024x768 85 Hz
hdmi_mode=20 1024x768 120 Hz
hdmi_mode=21 1152x864 75 Hz
hdmi_mode=22 1280x768 Reduced blanking
hdmi_mode=23 1280x768 60 Hz
hdmi_mode=24 1280x768 75 Hz
hdmi_mode=25 1280x768 85 Hz
hdmi_mode=26 1280x768 120 Hz Reduced blanking
hdmi_mode=27 1280x800 Reduced blanking
hdmi_mode=28 1280x800 60 Hz
hdmi_mode=29 1280x800 75 Hz
hdmi_mode=30 1280x800 85 Hz
hdmi_mode=31 1280x800 120 Hz Reduced blanking
hdmi_mode=32 1280x960 60 Hz
hdmi_mode=33 1280x960 85 Hz
hdmi_mode=34 1280x960 120 Hz Reduced blanking
hdmi_mode=35 1280x1024 60 Hz
hdmi_mode=36 1280x1024 75 Hz
hdmi_mode=37 1280x1024 85 Hz
hdmi_mode=38 1280x1024 120 Hz Reduced blanking
hdmi_mode=39 1360x768 60 Hz
hdmi_mode=40 1360x768 120 Hz Reduced blanking
hdmi_mode=41 1400x1050 Reduced blanking
hdmi_mode=42 1400x1050 60 Hz
hdmi_mode=43 1400x1050 75 Hz
hdmi_mode=44 1400x1050 85 Hz
hdmi_mode=45 1400x1050 120 Hz Reduced blanking
hdmi_mode=46 1440x900 Reduced blanking
hdmi_mode=47 1440x900 60 Hz
hdmi_mode=48 1440x900 75 Hz
hdmi_mode=49 1440x900 85 Hz
hdmi_mode=50 1440x900 120 Hz Reduced blanking
hdmi_mode=51 1600x1200 60 Hz
hdmi_mode=52 1600x1200 65 Hz
hdmi_mode=53 1600x1200 70 Hz
hdmi_mode=54 1600x1200 75 Hz
hdmi_mode=55 1600x1200 85 Hz
hdmi_mode=56 1600x1200 120 Hz Reduced blanking
hdmi_mode=57 1680x1050 Reduced blanking
hdmi_mode=58 1680x1050 60 Hz
hdmi_mode=59 1680x1050 75 Hz
hdmi_mode=60 1680x1050 85 Hz
hdmi_mode=61 1680x1050 120 Hz Reduced blanking
hdmi_mode=62 1792x1344 60 Hz
hdmi_mode=63 1792x1344 75 Hz
hdmi_mode=64 1792x1344 120 Hz Reduced blanking
hdmi_mode=65 1856x1392 60 Hz
hdmi_mode=66 1856x1392 75 Hz
hdmi_mode=67 1856x1392 120 Hz Reduced blanking
hdmi_mode=68 1920x1200 Reduced blanking
hdmi_mode=69 1920x1200 60 Hz
hdmi_mode=70 1920x1200 75 Hz
hdmi_mode=71 1920x1200 85 Hz
hdmi_mode=72 1920x1200 120 Hz Reduced blanking
hdmi_mode=73 1920x1440 60 Hz
hdmi_mode=74 1920x1440 75 Hz
hdmi_mode=75 1920x1440 120 Hz Reduced blanking
hdmi_mode=76 2560x1600 Reduced blanking
hdmi_mode=77 2560x1600 60 Hz
hdmi_mode=78 2560x1600 75 Hz
hdmi_mode=79 2560x1600 85 Hz
hdmi_mode=80 2560x1600 120 Hz Reduced blanking
hdmi_mode=81 1366x768 60 Hz
hdmi_mode=82 1080p 60 Hz
hdmi_mode=83 1600x900 Reduced blanking
hdmi_mode=84 2048x1152 Reduced blanking
hdmi_mode=85 720p 60 Hz
hdmi_mode=86 1366x768 Reduced blanking
Step 4: Editing the Data
- go to the desktop on the pi like before by typeing in: sudostartx the gui
- open the folder tab and head for /etc/emulationstation
- open make a copy of es_systems.cfg and place the copy on the desktop and open the original in Leafpad by right clicking the file and selecting the program
- here is the list of all the system, use the arrow keys and head to gameboy, gameboycolor, GBA, nes, all sega systems, and snes and in line type in: .zip .ZIP if they are not in there. (you can also change the arrangement of the systems to how you want them to show up just by copying and moving the code for the system. But becareful, if the code has even a slight error, it wont run the system)
- save the file and copy it in the roms in /home/pi/Retropie to save on to your desktop for later use
- turn off the pi and back on and you are set to go play
Step 5: Adding in Roms and Bios
- on your pc go to the folders and type in the ip address with // before it in the address bar
- a folder called rom should pop up. open it and drag and drop the roms and Bios into the correct systems. (This may take some time depending on the power of the WiFi and if people are using it. If stops working, just shutdown your pi for a bit and start up again from where you left off.)
- Once you are done moving the files, head to your pi and go to the Desktop on it. to move the bios to the right place you need to. head open roms folder you placed it in, /home/pi/RetroPie/roms
- now go to /opt/retropie/emulators/gpsp/raspberrypi and place the gba_bios.bin in it
- close out and restart system
Now if you are downloading Sega genesis roms. You may need to change the Extension of the file. I found that the ones I downloaded are md they need to be smd. I unzipped all the roms using 7Zip and then took all the games in to one folder. Download Bulk Extension Changer and ran the program. You then select the folder the folder all the roms are in and head the the second part. Click add and in Extension type in the rom's current extension (it is the file type) and in the Replacement section type in the new extension. then click Go! and your done.
I have had a crash happen to me where the pi fails to start up the system due to a system error.
If you get a line of code that says
Give root password for maintenance
(or type Control-D to continue):
type in raspberry and hit Enter
When you can type again, type infsck /dev/sda1 hit Enter, then type in reboot and hit Enter again. This should fix the problem. If you ever need to enter in a user name and password, the default is always pi for the user, raspberry for the password. This crash may be caused by a number of things. I think it would be most likely due to the number of roms you have loaded, not shutting down correctly, or over clocking the system.
Step 6: Setting Up the Controls
- pick a game you what to play and let it start up.
- hit F1 to bring up the retroarch system.
- go to settings and go to input options
- go to all the inputs you need edit and input the commands (for the escape wait for step 9)
- head back to the main menu for the retroarch and save new config. it may be a different name so we will need to change that.
- quit retroarch and the game and make your way to the desktop again.
- go to the folder tab and head to /opt/retropie/configs/all
- in there should be the retroarch file and your new one. open the new one you made. Here you can edit the controls and what controller acts as what player. Player 1 controller is called 0 and goes up to 3 so if you are using the GPIO pins, you can have the player 2 controls be for the usb controller.
- now if you want the controller to have an escape button, just find the escape line and for the joypad type in 8 (this is normally the home button)
- save the changes you made and close the file. Remove the original retroarch file and rename your new one retroach.
- you are now done so you can close out from the desktop and head back to the emulationstation.
- Now for the GBA emulator you will need to do some more work. Start up a GBA game and then hit F10
- In the setting, head for the joypad controls. here you can edit the inputs for a usb controller, but for some reason you cant use the d pad nor setup an escape button.
- once your done, restart the game again and test your setup.
- if all is right, your pi is ready to go.
Step 7: Plug N Play Build
Okay this is if you guys wanted the cheapest build and the smallest too. If you just bought a housing at say Hobby Lobby we can start, but if you want to build the housing. You can use the design I have posted here (not yet made), just use a thin and strong wood.
- Take your stencil and draw out the locations of the holes you will be drilling. You need six 30mm holes for the buttons, 2 30mm for the start and finish, 1 hole for the joystick that is smaller then the cover for the stick also the 4 holes for the nuts and bolts that will hold the joystick in place, and 1 24mm for the exit button.
- take the piece that will be your controls and drill out the holes using the correct bits. I recommend finding the middle and then drilling a pilot hole first.
- now take the other part of the housing and mark out and cut out the holes for the ports. (the power, video, usb ports)
- once you are done, take your housing and sand it down to paint it if you want.
- take the control board and install all the buttons and the stick. Make sure you label the buttons so you know what button does what.
- take your wire, clips, and one of the gpio wires and start making a chain that will act as the ground for all the buttons. You will need to cut and strip the male end of the gpio wire and a piece of the other wire, don't cut the wire yet from the spool.
- twist the wires and stick it in the clip and crimp it shut to the wires will not fall out. Place the clip on the first button and then start making the chain by measuring, cutting, stripping, twisting, and crimping the wire from the spool until you get to the last button.
- now take the rest of the gpio wires and cut, strip, and crimp the male end with the clip, you should have now nine wires but don't split the wires if you can but you may need to.
- plug in the gpio wires to the correct pins on the pi and the correct buttons on the control board.
- install the port wires (usb, power, hdmi) to the housing and mount the pi in place. After that you should conect other wires to the correct ports to the pi. usb to the usb, power to power, hdmi to hdmi.
- now you plug and play should be already to go. Have fun.