2-Player Bartop Arcade Machine (Powered by Pi)
The ‘Galactic Starcade’ is a DIY retro bartop arcade cabinet for two players. It is powered by the Raspberry Pi micro-computer and plays multiple types of retro games – primarily NES, SNES, Megadrive and arcade (MAME) games. Using a Pi keeps the cost, weight and complexity to a minimum but the cabinet could also house a more powerful PC-based system to play more modern games.
I’ve always wanted an arcade machine for authentic retro gaming but they take up a lot of space and cost a lot of money. Making a custom bartop cabinet like this one solves both of those problems. It also lets you play potentially thousands of games on a single machine. This project costs under £200 (approx. $320) to make, whereas a prebuilt custom cabinet can set you back four or five times that amount!
This is my first big DIY project and my first Instructable – be nice! Any questions or feedback are more than welcome in the comments. Also I’m entering a couple of competitions here on Instructables so if you like the look of the Galactic Starcade please consider voting for me! 🙂
Step 1: Tools and materials
If you want to follow along at home, here is the basic recipe for the build. Substitutions for similar items are fine – this is just documenting what I personally used. I’ve shown how much I found each item for online, although bear in mind that quite a bit of this stuff was already lying around the house and I didn’t actually go out and pay for. This list should show you the total cost if you were to buy everything.
You will need:
- Raspberry Pi model B – £24 (Amazon)
- Clear case for Pi – £3 (Amazon)
- Heatsink for Pi – £3 (Amazon)
- 32gb class 10 SD card – £12 (Amazon)
- 4-way extension lead – £1 (Amazon)
- Fused switched mains inlet socket – £7 (eBay)
- 19″ LCD TFT monitor with built-in speakers- £25 (eBay)
- HDMI to DVI cable – £2 (Amazon)
- Joysticks + buttons + USB interface – £44 (ultracabs)
- 12mm MDF board 1829 x 607 – £15 (B&Q)
- 9mm MDF board 1829 x 607 – £9 (Wickes)
- 6mm MDF board 1829 x 607 – £7 (Wickes)
- 3m x 15mm coloured t-molding – £6 (arcade world)
- 750ml all-purpose white primer – £9 (screwfix)
- 400ml matte black spray paint – £3 (screwfix)
- 600mm brass piano hinge – £5 (Wickes)
- Plexiglass 500 x 240mm – £3 (screwfix)
- Flexible LED strip kit – £13 (Amazon)
Approximate total spend = £191 ($305)
You will also need the following tools. A lot of these are pretty common but if there’s something you don’t have – borrow it! I personally borrowed a great deal of tools and advice from my housemate, fellow retro gamer and all-round good egg Jonny from 1up Living. He pops up in a few of the photos and generally helped a lot with the build.
You will need:
- USB keyboard and mouse
- Drill with ~28mm, ~12mm, and ~2mm bits
- Table saw
- Wood glue
- Paint roller and small brush
Step 2: Designing the cabinet
I did a lot of research before building this cabinet. Mainly looking at other people’s designs. There are a lot of great instructables already for custom arcade machines – I’ve kept track of my favourites here – but none of them covered exactly what I was after. After taking in a lot of inspiration I decided the main criteria for my design would be:
- classic 80s arcade style
- relatively portable
I designed several iterations of the cabinet using SketchUp, a free and easy-to-learn tool for 3D modelling. I already had a basic shape and style in my head, but the modelling process helped me figure out the angles and dimensions that worked best aesthetically.
Step 3: Designing the controls
I wanted a versatile setup that could handle all the main gaming platforms I was trying to emulate. After some research I settled on a six-button Capcom-style layout with additional Start / Select buttons on the front. This layout is perfect for beat ’em up games and has enough face buttons to adequately represent all the consoles the Pi can emulate.
I knocked up an instructional poster to explain the control schemes for each console, as it can get a bit confusing for new players switching between systems otherwise. This will be framed and hung on the wall as an official reference guide for arcade machine newbies.
In terms of dimensions and button spacing I used a lot of trial and error and prototyping to see what felt right. I feel that the final design is wide enough for two players and with enough wrist support to be comfortable during long gaming sessions – very important!
Step 4: Designing the marquee
The marquee is the backlit title graphic found at the top of all arcade machines. I chose the name ‘Galactic Starcade’ as I felt it evoked the somewhat cheesy feel of classic cabinets while also being (at the time of writing) an entirely unique name. Hence the zero results on google.
I found a great resource for hi-res arcade graphics, Arcade Artwork, and photoshopped some iconic videogame characters into a spacey marquee graphic. The starry background is from the original Space Invaders cabinet and the title style is a kind of homage to classic arcade game logos.
Step 5: Cabinet prototyping
I would highly advise full-scale prototype modelling if you’re designing a cabinet yourself. That said, if you want to work from my designs exactly, feel free to skip this section!
Using some spare cardboard, I taped together a pretty rough mockup of the cabinet design. I had only really designed the arcade machine digitally and wasn’t certain it would look and feel right in the real world.
The full size mockup allowed me to assess the size of the cabinet in context (i.e. on the kitchen counter where it is destined to live) and figure out if I’d left enough space for two people to play side by side. It also helped me figure out the optimal playing/viewing angles for the control panel and screen.
Overall I was very happy with the size and shape of the mockup and only made minimal changes.
Step 6: Control panel prototyping
I ordered a full control panel set from ultracabs which included two Japanese-style (i.e. ball-topped) joysticks and eighteen buttons of various colours. After designing my control panel layout on the computer I drilled a few holes in some scrap wood and set up a standalone controller to test out the setup before committing it to the cabinet. This is a great way to test the ergonomics of the design with some actual factual game time.
I wired up the test controller and played a good few games on it to see how it felt. See later sections on how to wire up and configure the controls. Overall I was pretty pleased but the prototype taught me that the buttons should go a little closer together and that a little more space at the bottom for wrist support was needed. I then fed these realisations back into the final design. Better to tweak now than when its too late!
I left the prototype wired up and used it to play games on my computer to scratch that retro gaming itch while I was working on the rest of the arcade machine. If you made it look nicer the standalone controller could be a full project in its own right!
Step 7: Cutting the panels pt.1
Let’s get dusty! Armed with a dimensioned print out of the design (IKEA style because, well, why not?) we took to the shed to cut out the MDF panels. Big shout out again to 1up Living who helped a lot with the next few stages of the operation.
First up we cut some 12mm MDF into 500mm wide panels on the table saw. Once one edge of each was squared on the mitre saw, we simply worked through the panels (base, rear, monitor face, control panel, little strip on the front, and marquee), setting the fence and blade angle on the table saw for each cut.
For the screen cut out, we carefully measured the screen and cut a hole in the panel using the jigsaw. The screen was then laid in place and chunky bits of wood were glued and screwed up against the edges to provide a tight fit. That’s the prep work done – more detail on the monitor mounting later.
Step 8: Cutting the panels pt.2
For the sides we taped a printed template onto a bit of 9mm MDF and cut through it with a stanley knife to mark the shape. This was cut out using a jigsaw, and given a little love with some sandpaper to round off the edges and suchlike. Its important none of the corners are too sharp to ensure the T-molding will fit properly later. The other side was cut from this using a template bit in the router so we knew they would be identical.
The side panels are thicker than the rest of the cabinet at 15mm, with a 3mm channel running along the edges the whole way around the perimeter. The channel needs to be completely central and will house the plastic trim (T-molding) later on. The side panels are a bit chunkier than the rest of the cabinet because they also act as legs and will be supporting the weight of the whole machine. Also T-molding just so happens to come in 15mm but not 12mm.
There are a couple of ways to achieve this but with the tools at our disposal we found the simplest way was to form the 15mm panels using two pieces of thinner wood (9mm and 6mm) sandwiched together. The 9mm piece was cut and sanded exactly to size as explained above. The 6mm piece was cut out very roughly with a few cm of bleed all the way around and then cut accurately using the router’s template bit again to ensure it would fit its other half exactly.
We then set the router to a depth of 3mm and cut a rebate all the way around the edge of the 9mm panel, making sure to cut into the inside edge rather than the face edge. Once happy with that we got some heavy duty wood glue on the go and sandwiched the 9mm and 6mm pieces together, ensuring the rebate was in the middle to form the 3mm channel. The two sides were held together overnight with as many clamps as we could lay our hands on.
Rinse and repeat for the other half and you’ve got two side panels ready to go!
Step 9: Assembling the cabinet
Time to put all these panels together into something vaguely resembling an arcade machine! This stage uses a lot of wood glue, clamps and caution.
The first step is to knock up some little batons to act as internal bracing for the rest of the panels. These won’t be seen in the final piece so can be made of any scrap wood. My batons were cut from lengths of 20x20mm wood that was lying around. Drill a few countersunk holes in all of the batons to make it easier to screw them into the cabinet panels from the inside – it can get pretty fiddly otherwise, and possibly split the wood. These will be screwed and glued to the panels along each edge that was joining the side panels.
We printed out a full scale sectional diagram of the cabinet and used it to trace all the important points on the side panel in pencil. Then by laying the panel flat on the floor the other pieces can be placed on top of the drawing. Once we were sure everything fitted together and the angles were right, each piece was glued carefully in place, getting a clamp on there wherever possible.
This was then turned over and placed on top of the other side, lined up with marks from the same template, and glued and screwed in place. It takes a pretty small screwdriver to get to some of the screws around the control panel and it gets a bit fiddly, but it leaves the outside with no visible screws so I think it’s worth the effort.
For more detail: 2-Player Bartop Arcade Machine (Powered by Pi)