Hello fellow Instructablites! I'd like to show you a design and build project to make an arcade cabinet. If you are old enough (like me) you may remember spending too much cash on these machines while have a drink in the local pub! Space invaders? Pacman? Galaxian? they are all playable on this machine which, while it is retro styled, it's internal workings are very much up-to-date.
Most of the build time is taken up with building the cabinet itself. You will need reasonable skills to achieve a good result but you could opt for a simpler approach or cut some corners and still have a lot of fun. Also, you may need to buy a few specialist bits for your router or drill. (See the step about tools for more specific information)
I got the inspiration for this style of cabinet from a YouTube video I watch by the "Lumberjackass". He created a series of 4 videos which takes you through his build but there is no specific information on sizes and sources of parts. This Instructable fills in all the information you will need to complete a build including background information and tips. Also, please note, the "Lumberjackass" build is based on a PC whereas this is based on a Raspberry Pi and a software distribution called RetroPie (see next step). However, look at his great videos (set of 4) starting with this one...
I would rate the electronics and wiring of the joysticks and buttons as easy. The recovery of the LCD from the monitor housing is fairly straight forward but you need some strong fingers to prize the bezel away from the monitor body.
Overall, I'd rate this project as "doable" by most DIYers but it took me a few weeks to complete and the odd difficult moment. This instructable is written and documented to be a 1 stop shop for ALL the information you will need to complete the build - no further searching or hidden details need to be worked out!
RetroPie is a program which sits on top of the Operating System (OS) on a Raspberry Pie and turns it into a retro gaming machine which can emulate all sorts of old hardware. Anyway, rather than rewriting a whole section on what RetroPie is I'll just link you direct to the sites webpage!
Apart from the usual workshop tools that can be found in most sheds and garages the following tools will be required.
1) Router - you will also need a "Top following" and "Bottom following" bits if you use the principle of template making and following that I have used. You will also need a slot cutter if you want to finish off the project with "T" moulding.
2) Drill - you will need a 35mm "Forstner" bit for the hinges.
I'll try and repeat what materials were used during each step but I add this step as a round up of all items you will need to complete this build along with local links (for Sydney, Australia). I've done it in the form of a spreadsheet so you can use it to order the parts you need and mark them off as necessary, alternatively if you do not have excel there is a PDF copy.
What type of joystick should you use and how many buttons do I need?
Check out this page for a full run down on joysticks and buttons.
Also this is a really valuable resource for joystick/button layouts and mounting:
I choose a high quality joystick from one of the original manufacturers (Sanwa), I got them from here.
...and the push buttons from here
NB: while like the actions of the buttons (non clicking) I found it less than ideal fitting the wiring harness crimps to the tiny tabs on these buttons. Not a deal breaker but it is a bit of a pain
The project utilizes a 17" monitor in the vertical or portrait layout. Hopefully you can get hold of a old unused/unloved monitor for free. Mine was a Dell which had the added benefit of USB outputs and a 12V output which was designed for a dedicated sound bar. I used the USB socket(s) to power the Raspberry Pi and the 12V to power the small 3w amplifier and string of blue LED's.
To remove the LCD panel from its housing the plastic bezel needs to be prized away from the back. This takes strong fingers and some patience. Start in the centre of the bezel where it flexes the most then work towards the corners. You may be surprised at how simple the construction of these monitors are once you are inside!
It is 30 yeqrs since I did any CAD work. Yes, CAD was in its infancy in 1985 but I did quite a lot of advanced (for the time) 3d wire frame modelling which was on a shiny new mainframe computer in its own A/C room.....we even had a pen plotter - woohoo! Anyway, I decided to try my hand again and have created a set of drawings which I hope you find useful. I'll put them here as an assembly (DXF format) and as PDF's (zipped into 2 files) that you can just print out. I detailed the model only to ensure the parts fitted together and I did not detail some smaller features such as the screw fixing holes, I just worked those out as I went along.
NB: The Glass top is also not modelled.
Here is a PDF showing the rough cutting layout to get the major pieces out of one 2400mm x 1200mm sheet. I couldn't get a full sheet home in my car so I asked the vendor to split into 3 individual pieces.
All the major parts can now be cut out of the one piece of white melamine MDF.
1) Top x 1
2) LH & RH Sides x 1 each identical
3) Front and Rear x 1 each identical, NB: note the angled top/bottom edges for this part!
4) Base x 1 only
5) Control Box End Panels x 4 identical (not shown on cutting layout as they are relatively small)
6) Control Box top panels x 2 identical
Whilst the duplicate parts are identical at this stage it is good to mark them up in pencil, inner/outer, LH, RH etc as when you do further drilling and processing of these panels they will become unique!
To create a good fit and symmetry is is wise (and quicker in the long run) to create templates. The template material I suggest is 6mm MDF
I created the following templates:
1) A template for the top, actually one side which was flipped over to create the other edge
2) A side template. NB: I reused this piece of MDF later for the LCD monitor cut-out
3) A template for the 4 control box end panels.
All the parts were cut out from 1 sheet of 9mm MDF
Control box end pieces
Control box front and back x 4
Control box bases x 2
Sorry, I seemed to have lost my accompanying photos of this step!
Using the control panel rear panel I marked out then drilled 9mm holes ready for the metal threaded inserts.
Before drilling the through hole I created a counter-bore for the head of the metal insert to sit flush. If you don't do this the melamine will probably crack as you tighten the insert into position.
Just to make sure the insert does not unscrew I used a small amount of 2 part Araldite to permanently fix them in position.
NB: The insert is 2mm thinker than the melamine material. I choose them this length as I wanted to ensure the control box never comes away from the body of the cabinet. More details later in the instructable.
I then temporarily bolted the rear panel to the melamine and used a the same 35mm hole saw used to cut the hole in the rear panel to create a similar hole in the melamine. This ensures the holes are nice and concentric!
Ok, lets leave the main cabinet parts to one side and concentrate on the control boxes.
Pre-assemble the 4 inner end panels for the 2 control boxes.
I glued and screwed some 18mm square DAR (Dressed All Round) along the top and bottom edge of each end panel, these will allow the base and top to be fixed in position during a later step.
Similar to the previous step I glued and screwed another length of 18mm Sq DAR to the front and rear control box panels. Again this DAR will support the top of the control box fitted much later in the project. The Length of the DAR is shorter than the MDF as the inner end panels need to fit 'inbound'.
The 2 sides, front and back are glued and screwed together. You can also test fit the base but DO NOT glue this in position as this is your access panel for the joystick and button wiring. You may want to 'feather' the edges so it slips in and out easily.
With the box assembled it is now easy to rout a radius on the control front lower edge - just in case your knees bump into the box!
On a flat surface, clamp both sides of the side panel to the control box and spot drill where the screw will fit NB: DO NOT DRILL ALL THE WAY THROUGH!
Using a wood filler or similar material, fill in the screw heads on the front of the control box.
To provide a bit of contrast the control box front and base are spray painted black. (3 coats)
Now, lets leave the control boxes and go back to do some work on the main carcass of the cabinet.
Cut 4 braces to exactly the same length - they must be all the same or the length or the unit will not be square and you will not fit the front and rear panels in properly. Also to leave a small gap the length of these braces should be very slightly longer than the width of the front/rear panel - but only by 1/2mm!
The front and rear panels are attached to the 4 braces. I pre-drilled the braces in 2 locations then attached the sides using metal threaded inserts similar to the ones used to hold the control panels in position. Again I used a small amount of 2 part Araldite to ensure the inserts don't come loose over time.
I also used some "mudguard" washes to spread the load of the M6 bolts
The base was fitted using 4 x 8G x 40mm wood screws (into the bottom braces).
Note: I fitted another brace later in the build (at the bottom of the cabinet between the 2 lower braces - this was attached with another 2off 8G x 40mm screws (to base) and 4off 8G x 60 screws from the lateral braces into the cross base. (remove front/rear panel for access).
To allow quick and easy access to the inside of the cabinet the top is hinged. I used 3 hinges which are initially fitted to the end panel by creating 3 flat bottomed holes made with a 35mm "Forstner" bit. This step should probably have been done earlier as its best to drill the flat bottomed holes on the bench. However, its just a 2 minute job to remove the side panel so no great problem! The dimensions for the hinge fitting are printed on the pack of hinges.
After the hinges are fitted to the side panel the cabinet top can be marked up and pilot holes pre-drilled. The top can then be 'offered up' and the hinges can be screwed in place.
Note: You may need another pair of hands with this as it is hard to hold the top AND screw in the hinge fixings at the same time!
This step is a bit tricky so take your time.
The top needs to be routed out to accommodate the LCD screen. To do this you need to rout from the upper surface AND from the lower surface, this will allow the screen to be close to the top of the melamine and not seem 'buried' deep beneath the surface of the cabinet.
The top routing needs to be neat so I created a template first. The routing from the underneath can be less accurate - I did it free hand. Well, partially free hand, I still used a straight edge to run the router along.
After routing the upper and lower cut the LCD can be fitted in position using 2 lengths of 50mm x 19mm dressed pine. I routed an undercut to accommodate the LCD screen metal surrounds. 2 x M6 bolts were used on each side with the 13mm blind metal inserts used to hold the side panels in position.
NB: The M6 x50 bolts needed cutting back as they are too long to fit in the blind holes
I bought some cheap speakers that are self contained as they are designed as 'in ceiling' speakers. I'll link them in here but have to say the quality of the sound is OK for an 80's retro arcade cabinet but you won't want t listen to music too long - they lack any depth. What can I expect at this price!
If the above link goes dead the speakers are SA150 from Studio Acoustics.
Again using the router I cut the speaker holes using a technique utilizing a pivot pin embedded into a plastic plate fitted to the base of the router. You can buy professional hole cutters based on this principle but they tend to be pricey and dedicated to certain routers.
These feet are zinc die cast and have a retro rocket 50's look to them. I got then from this vendor in china and had to wait 3 weeks for delivery but if you order then when you start the project they should turn up just it time as they did for me!
The "T" moulding provides a great finishing touch to the cabinet. It also lends an authentic feel and a soft edge to be bumped . To enable the moulding to stay in position it needs a 1.6mm (1/16") slotting cutter. The trick is setting up the cutter to exactly half way across the section of MDF. Use a test piece before cutting the real thing!
T moulding is fitted to:
1) the cabinet top (all the way around)
2) the end panels
3) the base panel
4) The control panel
b) End panels
I cut all the slots at the same time (but quite late in the build) - however it can be done much earlier if you want.
Here is where I got the moulding:
To minimize the wiring lengths and also make the controls easily accessible I added a platform for the Raspberry Pi to be mounted on. It was a scrap piece of plywood left over from a previous project. The size is approx
For a full rundown on joystick button locations see the amazing detail on this website:
...and choose your own preferred layout . I chose a layout with 1 joystick and 3 buttons. This is more than enough for most early games from the 1980's/90's, particularly when you consider this vertical screen layout. The joystick is mounted to the top in a recess 6mm deep. This leaves 12mm for the 8 screws used to hold the joystick in position. The buttons are mounted in 28mm holes, I counter-bored the holes with the 35mm Forstner bit but this wasn't necessary as the buttons have a really long thread on them and I think I'd skip this detail on a future build.
Note: The drawing calls for a 36mm counterbore as the plastic nuts on the buttons are 35mm in diameter - however I found the 35mm Forstner bit worked fine.
Roughly cut a length of "T" moulding to fit. 1st press the moulding into the groove then hammer home with a rubber mallet. Trim excess with a sharp knife.
To ensure the control boxes are going to stay put I used 4 large "mudguard" washers under the M6 bolts (and an additional 4 under a M6 nut on the inside of the cabinet). These will help spread the load of the frenetic joystick and button pushing for years to come!
I purchased the washers at Bunnings but couldn't find the link so here it is from another vendor:
I used all 8 slots/holes in the joystick to keep it in place (6g x15mm wood screws) . The buttons are simply held in place with a large plastic nut.
Using the pre-assembled (purchased) wiring harness link up the joystick micro switches and buttons. A common black return wire daisy chains all the individual micro switches together. Then individually coloured wired are used for the other terminal.
Screw the top of the control box back in place.
2 screws (8g x25mm) each side were used to hold the outer to the inner control box side.
I choose to use a "ControlBlock" to interface between my joystick and button wiring and the Raspberry Pi.
The ControlBlock PCB simply plugs into the Raspberry Pi and is the same form factor. The wiring from the joystick and buttons can now be terminated directly into this PCB using the green terminal blocks. This PCB also has an on/off function into which I wired a switch (see later step).
Also, I added a 3mm Blue LED which indicates the Raspberry Pi status (on/off/booting).
The arcade machines of the 1980's had very basic audio sounds so I'm not trying to produce a Hi Fi sound with this machine!
I used a tiny (and very cheap) amplifier which can produce 3w of power. I first tested the setup outside the plastic box to ensure it worked without getting hot (which it doesn't). The amplifier is powered from a 12V to 5V DC-DC converter. The sound is adequate to fill the room and has to be turned down quite a lot for normal use.
To enable the user to adjust the volume of the speakers I added a potentiometer to the right hand side of the player 1 control box. The type of potentiometer I used is made to really be fitted to a metal /plastic box with a wall thickness of say 2mm. This means the 18mm MDF needs to be carefully counter-bored to enable the potentiometer to fit. After fitting the shaft was shortened with a Dremel so the volume knob was ~1mm from the surface of the melamine when fully seated.
An on off Button was added to the underside of the base of the cabinet (essentially hidden). This button is of the on/off type (not a momentry type). The button is wired into the ControlBlock PCB on top of the Raspberry Pi. Although the button is an on/off type it works through the ControlBlock to do a software shutdown and so it takes about 20seconds for the Pi to actually go off.
I also added a small 3mm LED to show the status of the Raspberry Pi
Here you can see the 3 pegs used to hold down the top. This step could be left out but I thought it necessary for moving and transporting the unit.
I drilled the required 5mm holes and then glued and screwed the pegs in. I then marked out the locations for the other end of the fixings and drilled out the 8mm hole and 14mm cross hole. The end result is not as neat as I might have hoped but with it being under the top is is hardly visible.
It is entirely optional as to whether you decorate your cabinet with artwork. Some people prefer the authentic look with artwork dedicated to one game or theme. In my case I chose artwork with a space theme. The top is a real photograph of the Australian night sky and the artwork on the sides is fictional but still with a space theme.
It took me a while to find what I wanted (too much choice out there perhaps). In the end I picked 3 files from Shutterstock. The images and associated ID numbers are shown in the photographs.
I had my art printed (in Sydney, Australia) by Ella at Elytrart.com
The gloss images are printed on a self adhesive backing and have been laminated.
Turn the unit on its side so that you are working on a flat surface.
Peel back a small portion of the self adhesive backing and stick the print to the melamine. It's important to get it square as no further angle adjustments will be possible.
Slowly peel off the backing while ensure the print has no rucks or bubbles by smoothing down as you go. I used a small piece of plastic wrapped in a soft cloth.
Trim the excess. I used a sharp model knife and ran it down the "T" moulding groove. The radius ends need to be done with scissors and to stop the print bunching small triangle cut-outs were made in the print.
Now you can finish off the sides with the "T" moulding. Attach the moulding starting at the top and working around a few cm at a time, always ensuring the print is well folded over the edge and trapped by the moulding as you go. This is a bit trick as the print does not stick to the exposed MDF very well and will only stay in position for a few seconds. Be patient we are nearly finished!
Using the same technique used to apply the side prints, the top print can now be fitted. I ended up removing the LCD monitor to finish off the print fitting (and you could do this now), but if you leave it in you would want to put a piece of paper over the screen to stop the print sticking to it.
Once the print is on the "T" moulding can be done. I put the join in the centre of one of the ends.
Complete the top print by removing the cut-out for the LCD monitor.
1)Temporarily remove LCD monitor
2) Make a 45Deg x 30mm in each corner of the LCD cut-out. Then cut the centre out to leave 4 flaps.
3) Fold over each flap and trim excess as necessary.
4) Replace LCD monitor - this will trap the print to stop it coming away in the future.
The final constructional element is the top glass. If you are old enough to remember pub's in the 80's this is where your pint of beer sat as you played the game! Any spillages won't go down through the monitor etc.
The top glass needs to fit the top itself quite accurately for a good effect and so providing a template to the glazier should ensure this happens.
NB: The top glass does NOT have a cut-back over the control boxes. This would be possible but it would make the glaziers job pretty hard and much more expensive.
I placed a protective piece of paper (in fact the backing paper for the print attached in the last step), over the print. I then roughly cut out some 6mm MDF and clamped it to the top. The routing was carried out in 2 steps:
1) Rout the radius corners and ends first with a bottom following bit touching the "T" moulding.
2) Using a straight edge (length of MDF) between the already routed ends I used a top following cutter to finish off each side.
Off to the glazier.......
Now everything is wired in and connected to power we can set-up the Raspberry Pie computer for the 1st time.
I recommend using a minimum 8GB class 10 SD card for this - only go bigger if you intend to load up 100's of different games.
NB:These instructions are for setting up via a windows based computer, if your an Apple aficionado to the RetroPie wiki and follow the device specific instructions there:
1) Download SD format from here:
Once you have loaded this program on your computer, run the software and format your SD card with "Fat32" Ensure you pick the correct drive to format! Call the SD card "RetroPie"
2) Download Disc imager32 from here:
Extract (unzip) the program to your C: drive.
3) Download the latest image of RetroPie from here:
Make sure you download the correct version for your Raspberry Pi hardware! If you are unsure as to the version of Raspberry Pi you have then look at this page....
4) Open up Win32DiskImager and select the SD card as the card to write to. Then using the drop down, browse to the image downloaded in step 3 and write the image to the card. Go for a coffee as this will take a few minutes!
5) "Eject" the card for your computer by right clicking the drive in windows explorer (safer than just pulling it out). The SD card can now be removed and placed in the Raspberry Pi.
Here is a great video showing the installation and configuration of RetroPie - its for an earlier version but it should guide you ok and I recommend you follow it However, but be aware some features have changed for the version I used here (4.0.2 Sept 2016)
Here is a video showing the new4.0 features:
NB: the screen will default to the normal landscape mode, I'll show you in the next step how to fix this:
So, if you have followed all the instructions in the video then you will be well on the way to finishing.
Now we need to do some specific configuration settings particular installation. The 1st this is to turn the screen around 90Degrees to use it in the portrait format.
We need to modify the way the Raspberry Pi boots and we do this by typing the following command into a terminal window. (F4 will drop you out of emulation station and back to the terminal window)
sudo nano /boot/config.txt
Then we want to add the following line to the end of the file:
if this doesn't rotate the display the right way (and this is going to depend on how you mounted the monitor) hen try the numbers 2 or 3 (0 should be normal mode so to speak).
You will need to reboot for this to take affect,
sudo reboot now
Once the Pi has rebooted you need to follow the instructions in section 8 on the page (scroll well down) to load up and compile the driver for the ControlBlock PCB
Your ControlBlock should now be up and running and recognised in the Emulation Station as 2 new "Gamepads"
Now we just need to get the games going.....
....What are ROM files? Hmmmmm well in short they are the 'game' files. I can't give direct links here due to commercial rules but I'll suggest how you might search the Internet for files for your favourite game. I found this the most frustrating part of the project and I wasted some hours in research. For that reason I"m going to endeavour to tell you a quick route to get your system up and running ASAP. From there you may gain confidence and start your own searches to find suitable files.
I set my RetroPie up with the intention of using one emulator. This narrows the criteria for searching for the right ROM files. the Emulator I chose was "Ir.mame2003". this version of MAME using a particular version of ROM set, namely 0.78.
For this reason I suggest you try your luck and search for "full romset mame 0.78"
These full romset's contain hundreds of games and are consequently very large (several GB). Either the whole file can be 'torrented' or maybe split into several zip files. It took me a day to download a full set so "patience is a virtue" You can search for individual game files but in the end I found it most productive to get a full romset and then pick out which games I wanted one by one.
To load a particular ROM you complete the following steps.
1) Format a USB key, eject it and plug it into your Raspberry Pi. The LED on the key will flash then after a minute or so will either go out or be on all the time. The USB key can then be removed from the Raspberry Pi and plugged back into your computer. This steps only needs to be done once and RetroPie should have created a series of rom folders on the USB drive.
2) Copy the zip file for your chosen game from the romset onto the USB drive. Put the file in the sub folder for the emulator you want to use. In my case I put the files in the "Arcade" folder
3) Eject the USB key from your computer and place it back in the Raspberry Pi. The files will now be automatically copied from the USB key onto the Raspberry Pi and will appear in Emulation Station next time you reboot (or restart Emulation Station).
4) To restart Emulation station you can hit the "System" key and choose the option to "Restart Emulation Station"
Wow, this has been a long and detailed instructable - I need to play more games!
Comments and suggestions welcomed.