Here at Capital Mac Service, we like to experiment with many pet projects, including this latest project which took an old iMac LCD display and turned it into a retro arcade gaming tabletop machine. The project is powered by a Raspberry Pi computer and a special circuit board that turns a bare LCD into a working LCD display. Here, we are going to give you a rough overview of how to build a fun project like this to bring back that classic arcade gaming to your tabletop!
First things first.
In order to pull off a gaming machine like this, you are going to need a bunch of parts and pieces, including some of these below–feel free to substitute your favorite parts for others–this is just what we ended up using:
- Wood for the cabinet (approximately $40-60 depending on your style)
- Wiring for the buttons and joystick (approximately $20)
- LCD panel from non-working computer (free if you have a broken iMac laying around, or, about $40-60 depending on what they are going for on eBay)
- LCD panel wiring kit (approximately $30-40 on eBay)
- USB self-charging speaker (approximately $10-15)
- Arcade joystick (approximately $15-20)
- Raspberry Pi 2 Computer Board kit which includes HDMI cable, 8GB SD Card, power supply and other accessories (approximately $35-40)
- Internal power strip (approximately $10)
- 12 volt power supply for LCD panel wiring kit (approximately $10)
- 4 Arcade Buttons (approximately $10)
Putting the Retro Arcade Gaming Machine together
First, we concentrated on getting the LCD panel to work after we installed the LCD panel wiring kit. See our video here. Once that step was completed, we hot-glued the circuit boards to the back of the display so they would stay put. Make sure you cover the back of the display in electrical tape so your circuit boards don’t come in contact with the metal back of the LCD–this will short the boards out.
Once we had the display working perfectly and the boards were glued in place, we started to build a wooden frame around the panel. This step is totally up to you–we just fit the wood tightly to the LCD and left enough room in the back for all the electronics and power strip. We added a slight pitch to the frame so it would be easier to look at when sitting on the table. As you can see in the photo, we spray painted the cabinet textured black and drilled some holes for the buttons and joystick. We have since added 2 more buttons on the front of the cabinet, for “Start” and “Select.” The buttons on the top are “A” and “B,” Since we are primarily using this arcade machine to play Nintendo Entertainment System games (NES).
Once the cabinet was built and the LCD was mounted in there tightly, we can now proceed with the rest of the build. When complete, the build will look somewhat like the photo to the left. You can see the power strip, speaker, Raspberry Pi board, LCD panel board and the wiring to make it all work together.
The next step we took was to wire up the joystick and buttons to the Raspberry Pi computer (RPI). We also connected the HDMI cable from the RPI into the LCD display board’s HDMI port. We plugged the speaker into the LCD display audio port as well to pass sound into the speaker. The 3 power plugs you see in the photo are for the speaker, the RPI board and the LCD board. By then, we hot-glued the RPI (and all the other main boards and power strip) to the back of the LCD panel, leaving room to get to the ports as seen in the photo. We drilled a small hole in the bottom of the cabinet to let the wires pass through, which are all connected to the buttons and joystick. In order to wire up the joystick and buttons, we decided to use the excellent “Recalbox” software, which turns your RPI into a retro gaming machine with a simple download. We originally had “RetroPie” software running on the gaming machine, however, we could not get it to see the buttons and joystick inside the games. Recalbox saw the joystick and buttons immediately with no configuration needed whatsoever. Using this excellent guide, we wired our 1-player buttons and joystick to the GPIO pins on the RPI and that was it. Our only problem was that we didn’t have the “Select” button wired up correctly (our fault) and we couldn’t escape out of the games by holding down “Start” and “Select.” Once this was fixed, those 2 buttons allow us to escape out of any game, taking you back to the main menu.
Once the RPI was wired up to the arcade controls, we booted it for the first time and it downloaded some extra parts and pieces and then proceeded to take us to the main Emulationstation menu, where you can choose games and which emulators you want to use. We’ve only had luck with the NES emulator as of yet; we are still working out issues in the MAME emulator with buttons and joystick issues.
At this point, everything was pretty much working perfectly. We proceeded to add the ROMs (which are the games) into the proper folder in the RPI, which appeared on the network on an adjacent Macintosh. The RPI appeared on the network because we had an ethernet wire hooked to the RPI. This step may be able to happen with a wifi adapter, but, we haven’t tried that yet. We simply copied the ROM files to the NES folder and then went to to the Menu, then Games Settings then Update Games Lists. From there, it was simply a matter of playing our favorite games with full arcade controls and sound.
A huge bonus was the fact that Recalbox has a built in media center–which allows you to watch movies, play music and show your photo library over the network. In our case, it actually reads the Plex media server we have installed in the house and displays all that content, as seen in the photo to the left. Here, we are watching “The Big Lebowski” right on the arcade box!
This particular project was not the easiest project by a longshot. There were a few setbacks with the RetroPie software, however, we recovered in the end and things seem to be working perfectly. This is a great first project to try if you have been wanting to get into a Raspberry Pi computer. With some hard work, you can have your own Retro Arcade Gaming Machine as well!
Check out some of the resources we used here: