My 2nd arcade machine

The idea

I think it gives the cab a bit of an industrial look I'd discussed building arcade machines with a few people recently and as well as instiling the bug into them I also got to thinking how I could improve my machine. The kids still use the existing machine but it's starting to show some damage and it could do with some new ideas. I quite like the dimensions of the existing machine but thought I could make it stronger and flashier etc if I started again and added :

  • stronged construction to cope with my kids friends
  • use car paint and curved corners for long term finish
  • an acrylic top to give it a professional look and make it beer proof (for my mates)
  • Light up the buttons for a real arcade effect
  • Install a huge slow turning fan in the front front for the look
  • Have an on/off switch and volume knob on the front
  • Have games autostart when turn on and make it start up quicker
  • Add a jukebox and fill the machine with 80s hits
  • Make the control buttons easier to use
  • Add more games - of course. I recently found a game called Bomb Jack that my next door neighbour at college used to play all time, at least until he got put away for murder! It turned out to be quite a good game.
  • If I put the ROM and SNAP dir on a USB stick then I should be able to just pull it out and add more games without having to go to the OS etc.

Not one but two arcade machines

Button components I'm building two machines this time, both similar to my old machine. I'm going to split the work with a friend of mine - I'll do all the computer stuff and wiring and he'll do the wood work and painting etc. The two machines will look very similar but my one will have all the additions above.

A confused PC

A close up of the I-PAC keyboard controller My old PC started life as a windows 98 machine, I tried to install XP on it but it ran like a dog so after putting up with this for a week or two I converted the machine to a Linux box. It worked quite well and the interface wasn't bad but I do all my dev work on external servers so I had little need for a Linux machine at home. Eventually the machine got forgotten until I decided to turn it into an arcade machine - I loaded up XP first of all and then remembered why I went to Linux - so I've now changed it back to windows 98.

Front ends

The front end on Diccons machine will be powermame as it's easier to set up. While I'm going to need something different to run the jukebox and lighting on my version. I tried using Mala and it seemed to have all the neccessary features but I found it difficult to set up and then had problems installing on a windows 98 system. I'm now looking at using AtomicFE which seems to work well but I still have a few issues:
  • Can't get jukebox to just add song to play list as it just starts playing a song the moment it's selected.
  • Can't get game autoplay to start - it always goes to the inital menu where I select arcade and then have to pick game.
  • Seems to require using a return key to confirm you want to quit a game. This would mean adding an extra button or getting the user to remember another wierd key sequence.
  • Haven't tried running on windows 98 yet.
  • Game history information would be nice to see.
  • A few games don't play and I expect I need some unknown BIOS ROM.
I have found that when playing and learning using any of these front ends that it's very easy to upset everything by putting the wrong items into the wrong fields during the set up. What normally happens is you get everything nearlly right and then get stuck trying to add some feature - you try doing all sorts of things in desperation and then suddenly the whole front end just goes wierd on you.

The stages to go through

To build an arcade machine you need to go through a number of clearly defined stages:
  • First you have to download MAME, a front end and a bunch of ROMs and just check that you still like playing these games.
  • Decide if you have you enough space for one and remember that your spouse may not share the same ideal of having a full size arcade machine in the front lounge as you do.
  • Find out what games you're most interested in then decide what controls you'll need. Buttons are easy, joysticks a bit more difficult and then there is everything else. Plan your control panel (CP) layout and make sure it works for the games you want. Obviously no one panel will be perfect for everything but it's fine to comprimise.
  • Spend some money and order the controls - probably around 100 pounds. You'll want something like an I-PAC to change those button presses into keyboard characters that can be sent to the PC.
  • You might want to use an old unwanted PC rather than a new one. You'll need a screen and set of speakers - 2.1 with wired remote are probably best.
  • Play each game and make sure it works - press F12 while playing to put a picture (snap) into the picture directory.
  • Now the fun begins - Wire up a test rig for your CP and check things work as you expected.
  • When you're happy it's time to start putting all the bits into a box. I prefer cocktail cabinets as they take up less space but you could build almost anything really.
  • When the cabinet is ready just put all the bits into the box and off you go. I prefer putting each part into the box one at a time and then testing that the front end still works. It takes longer but at least you know what's gone wrong. It may be necessary to pull the PC apart to fit everything into the box - I personally like to see circuit boards when I open the box up. I'm hoping with the new design I'll see the circuit boards through the front fan.
  • Invite all your mates over for a 1980's party

Working with mates

Control panel It took me about 2 weeks to get the first PC up and running with all the right software - it will take you far less time if you don't have a wife and kids. I finally asked my mate to knock up a test rig so I can try out all the buttons etc. It's really just a bit of wood with holes in for me to attach the buttons to. It took a week of pestering him (he's married with kids too) when it finally turns up. It turned out the holes were too large and the buttons dropped through, 3 of the holes were missing and the wood was cracked in the middle. I'm hoping these are just teething troubles but it's not a good sign :(. He did put legs on the stand though so I can actually use it properly as a CP.

The controls

To make the arcade machine appear just like an arcade machine rather than a home PC that happens to be running a MAME emulater we get put the PC in a fancy box and replace the key board and mouse with buttons and joysticks. The controls obviously have to work the games you want to play but they also have to be able to control the front end and perhaps the jukebox. It's well worth having a good think at this stage.

You do have a lot of advantages with something like an I-PAC controller as you can get a certain button to act as a shift key and a button so this means the other buttons can double up for other functions. Each button consists of a the plastic button, a spring, a microswitch, a ground wire and a live wire. In reality all the ground wires are daisy chained together and the other wire allways leads to the microcontroller.

A bit of spring cleaning on your PC

The underside with the microcontroller but still without the lighting controls You usually use an old PC in an arcade machine so it's a good idea to get rid of all the unused programs that are sitting on the machine. Remove any virus checkers. Clear the desktop otherwise you'll get some pop up window asking you if you'd like to remove program X - this will always happen when you're showing off your system to someone for the first time. Get rid of the screen saver - it's an arcade machine now. Change the desktop to one of the game images so it at least looks correct during boot up. Remove all system sounds - we don't want the starting windows sound while our arcade machine is starting.

Finally when you're confident that the system is ready then you can consider booting up using the front end rather than windows. It may well be worth backing up your system before doing this. In windows 98 there is a file called C:\windows\system.ini and get the shell variable to point at the full path name of your front end program. Remember to cross your fingers.


The underside of one joystick and a couple of buttons The atomicFE front end has an easy to use jukebox but I haven't yet worked out how to add tracks to the playlist rather than just immediately playing whatever track has been selected (found out it's the fire button to select a bunch of track and the the play button to play). It is easy to switch back and forth between the jukebox and the arcade machine so I'm quite happy.

In Mala it looked like there was a way to jump to an external program so I could download a dedicated jukebox. I found a great looking one that did everything but I just couldn't get Mala to easily switch to it. I wanted to just press a key and end up in the jukebox - then later press the key again and go back to the arcade.

Those blinking lights

My machine will have buttons that light up to show you which controls to use for each game. The buttons will also go through an "attract mode" which means they just go a little wild when nobody is playing with the machine.

I ordered all my bits at the same time but the LEDwiz from the states took 3 weeks to arrive. I also forgot to order the LED lights from ultrimarc and found I had to complete another order and pay another 8 pounds postage for just a few LEDs (even though I spent over 200 pounds on my first order) - Ouch! I finally got a note from the postman to say they'd arrived (and that I had 12 pounds customs duty to pay) - I went down to the post office to find they'd gone on strike for the week! Something tells me the lights are going to be a pain.

I now have to work out how to use them .....

Planning the box

A close up of a joystick showing whats above and below the surface I'm planning on putting everything into a 2 foot cubed box (same size as my last one). I like the idea of using the 19" LCD monitor my son has on his PC but may have an issue nicking it off him. I'm also not sure about the view angle on LCDs so I'll have to test this. As an LCD is lighter and smaller it should make it easier to arrange the inards of the cabinet.

The new box will be 4 sided with a door at the back so it will need some ventilation to keep things cool. I'm planning on putting a huge 250mm fan on the front that will be lit by blue LEDs. I have a few problems sourcing these fans and I'll also want to slow the fan right down for better effect. Hopefully I'll be able to control the LEDs on the fan using the LEDwiz unit and then light the main circuit board with a red LED right behind the fan so it looks ultra techno! The CP will be more difficult as not only will it have to do the normal controls, it will also light them using yet another micro controller and then link to the fan LEDs and the motherboard LED.

I'll put some holes in the sides near the top/front to make it easy to man handle and put wheels at back rather than legs. The holes will also help with the ventiolation and let the sound out from the 2.1 speakers. The speaker volume control will then be taken apart and wired into the front of the unit allong with an on/off switch.

The acrylic being bought is thinner than I'd hoped so I'll probably fix my CP into wood but with the acrylic on top. I'll then bolt the hole thing into the frame from ontop which might look quite industrial. I'm also considering having a small gap under the wood separating it from the box and then lighting that are with neon - this may be OTT though.

Wood work 101

Making holes in the wood for the dowling - this method works if your wood is square I'm not good at woodwork and my wifes father, who's a carpenter, laughs at all my attempts but here's my advice ... You need a strong cabinet otherwise when you're on that last screen and the little green bastards are comming at you from all angles you'll find the whole thing might collapse. You can build the strength into your cabinet through the boards and how you join them or you can do it the old fashioned way and build it with a strong frame encased in strong boards.

The wooden dowling keeps the bits of wood firmly in place My father in law suggested all sorts of technical joints but I ended up just butting the wood together and using a bit of doweling to fix the things in place (and a lot of glue). If you can do mortice and tenon joints then I'm sure they'd be better.

Trying to make the frame straight I used a picture framing tool that grips four corners and pulls them together tightly. You can also just use string and twist a bit of wood round and round to do the same thing. You can also use those funny clamps to make sure the corners are square.

Holding all the wood tightly in place The sides are made from MDF and the guys down at homebase cut them perfectly to size - I guess that saves me having to saw away breathing in all that posioness dust :) I'll still have to cut holes for ventilation etc and then prime the boards so I can paint them properly. I managed to cut the base sheet this evening so it fit's nicely around the frame and there's also a simple hole in the middle to let the main wire out. My initention was to simply staple the board to the frame but it appears that MDF is stronger than my stapler. I also tried putting in a mock up of the LCD screen and it should work well - the LCD screens have simple edges that allow you to fix them solidly in place and, because the arcade is at table height, you are actually looking down onto the screen which means I don't have to mount the screen at a crazy angle. This in turn means I have more space for the CP. The CP won't be made out of MDF as I don't think I can fix the joysticks to it properly so I'll use plywood and then place the acrylic over that.

Wood work - next steps

The first panel to go in was the base I put a base plate into the unit so it would hold things square and allow me to easily mount all the internal stuff. I put a hole in the middle as I thought it would look better having a power lead comming from here rather than the back - it's more adaptable anyway. The corners of the plate needed cutting so it would fit inside and then I just nailed the board onto the frame.

This is fine for a 19" monitor I was quite lucky to find some 5mm ply in the garage so I cut it to size, measure the monitor and cut a viewing area. The top piece is in two parts - the CP and the rest which should make it easier to wire and test the CP. The LCD monitor is quite easy to mount and, because the playing position means you look down on the screen, it means I don't have to mount the screen at an angle. I just simply put in some internal bracing and will simply lay the screen on top of this with a few small blocks to stop it from sliding.

I'll have two sides like this joined by 4 bits of wood to make the cube I better note down a few things I've learnt :

  • Use doweling all the butted joints
  • If you're drilling the button holes then clamp the CP to another piece of wood before drilling so the wood doesn't split on the underside and also use pilot holes before drilling the main holes.
  • Remember to file all the edges, even if they're not going to be seen, as it saves you getting splinters later.
  • Over cut the sides by 1mm and later file down as this saves you having gaps around the place.

Simple support for screenI managed to creep into my sons study and steal his monitor - I'm hoping he won't notice I've swapped the 19" for a 15" but heh - we all to make sacrifices! The LCD has a larger screen but is far easier to mount than a CRT - it weighs nothing as well which saves having to build heavy internal bracing.

The LCD takes up far less space than the CRT The only issue now is how to fill all that internal space - should I put in some huge speakers to really make those old games come to life or will the wife just put her foot down (I suspect she would). I have put in a little extra bracing around the corners of the frame just to make things stronger while I'm continually lifting the thing between my loft for wiring and my garage for sawing

The LCD takes up far less space than the CRTAn unusual side effect of having a larger screen is that there is now less space to mount all the CP hardware. I also have 2 microcontrollers (the I-PAC and the LEDwizz) to attach. I'm not keen on separating all the wiring stuff as I want it all to come out in one piece when I remove the CP - obviously it will be attached via the keyboard cable and the USB for the lighting unit but I don't want the microcontrollers attached to the frame etc. I still haven't wired up the CP yet - I'm not sure how to attach the joysticks firmly to the 5mm plywood and I'll also have to work out how to channel the wiring neetly around the CP so it doesn't resemble a rats nest.

It's looking more like an arcade machine now It tuns out that the 5mm ply for the CP is too thin to reliably attach the joysticks. The buttons clamp around the ply and will litteraly fix to allmost anything but the joysticks need to be attached from one side and there isn't enough grip to hold them. I briefly thought about using bolts, going completely through the ply, but they would interfer with the sheet of acrylic that's planned to lay on top. I now figure I'll have to buy some 10mm ply and try that - it will be easier to fix to though it will be harder to cut.

The new CP in MDF In the end I bought some 1cm thick MDF and used that - it seems to work fine. I'm not sure about the effects of dust of cutting up MDF but if I go down with some strange diseas with a 3 letter acronym then I'll add a post script. I've also wired up the CP and it works fine (it's not too difficult as long as you do it bit at a time) though I've noticed I need a 2 player button to fully use the AtomicFE FE but I'll just use the shift key to get it.

Some people can make the wiring look orderly but I think that hides the effort involved I also managed to get the LEDs delivered (did I mention the 8 pounds delivery fee!!!!). I even managed to coax my 10 year old into cutting and stripping the wirring to fit - I think he quite enjoyed doing it and he may even forgive me for taking his 19" monitor. Must admit I love the lit up buttons - I was going to just have only the buttons for each game light up but it looks so much better when they're all on. I have also written a few animation sequences for the FE but I'm having issues geting it to understand when to run them and when to either turn them all on or all off.

I like lit buttons!!! I still can't find an easy to get 250mm case fan so I'll either have to buy an expensive case and just rip it out or give up and go for a 120mm fan. I also need to get some speakers and the inteliplug but I'm also thinking of just ripping them out of the old machine. I also need to work out whether I can turn the PC off using the button on the front - if I do it at the moment I just end up getting a disk check on boot up. The angle of the LCD provides an ok(ish) view if I sit but you really need to be standing up and looking down to get the full effect - perhaps I should of tested this a bit better - oddly the view angle is marginally better from the top rather than the bottom and best from the sides.

What's left to do

You can even play with the power out - errr? Things have been going reasonably well. The speakers arrived a few days back so I had great fun putting them inside and doing a bunch of testing of the games I've currently got loaded - particularly VS Battle City and 1941 but I must get round to actually finishing the project off rather than just playing on it. A few games are causing problems with missing ROMs etc and my son kindly tested every game on the machine and wrote down all the issues.

I've finally found a source for a big case fan to go on the front. It's 200mm rather than 250mm but available through amazon uk rather than various small outfits in the states. When it arrives I'll need to cut a big hole in the front which I'm not looking forward to making. After that I'll have no excuse not to prime and paint everything. The only small issue is the British postal service which don't seem to be delivering anything at the moment.

I still have to work out how to get the on button on the PC to also turn the PC off - then I'll just wire it to a big button on the front above the fan. I'll also need to take the new speakers apart and replace the volume control with another big dial on the front of the box. As I'm now putting a fan on the front then this means I'll need to dissassemble the PC and place the board in front of the fan while lighting it up with super bright LEDs - this is just to make the whole thing look good.

I've pretty much accepted that my mate isn't going to be able to cut the acrylic to match the holes so I'll just place the acrylic over the majority of the surface but leave the controls bare which I think will be ok. I also need to order an inteliplug and get some primer and paint to cover the MDF.

Current tasks are

  • Get an inteliplug so the whole unit will power down properly when the computer turns off - ie no speakers humming etc.
  • Get the computer on/off switch working - I think it needs some tweaks somewhere (XP, BIOS, motherboard?) to get it to turn off.
  • Fix the screen in position so it can't move then cover the sides in black masking tape so it can't be seen.
  • More music - I actually quite like listening to the 80's music but I'm not sure how the sound will be affected when it all gets completely boxed in?
  • Cut holes in sides for fan, ventilation and handling, mouse
  • Fit fan to the box - I'd hoped to have a cover plate and bolt it to the front but that seems impossible so it looks like I'll just glue it. I was thinking of slowing the fan right down using a resistor but I might look at that later. The other odd thing about the fan is it sucks air out the box rather than blows it in which I just find strange - I suppose at least it will stop accidents with cloathing being sucked into the fan - I'm not sure whether it will stop small kids from trying to see what happens when they poke their fingers into the thing but at least they'll only do it once.
  • I was also going to have a volume knob on the front but I think it will be easier to use the existing remote on the speakers and just fix it in place on the inside so it can be adjusted through the vent holes.
  • Light up the circuit boards (the motherboard) so it can be seen through the fan.
  • Prime and paint everything - I liked the blue sides and black top and legs of my first cab so I'll stick with that.
  • While the buttons are off - I'll try and tie the wiring up a little better and refit the joysticks so the lever that turns then from 4 way to 8 way can be reached through the vent holes.
  • Cut the acrlic, bevel it and put in fixing holes.
  • Hold a 1980's party with the two arcade machines in action?

A bit further by making holes everywhere

Making holes I finally cut the hole for the fan - I just used the big 28mm drill bit to give me access with the jigsaw and it was quite easy after that. I couldn't fix the fan to the front using bolts or screws as the design is a little bit odd but it was quite easy to simply glue to the back of the MDF. I will need to adjust the fan speed using different types of resistors to see what works but it's far too fast at the moment. I'm also going to put a dim red bulb inside the box to make the insides glow - I tried an LED light but this had no effect what so ever unless the room was dark. I now realise I'm going to have to make a hole at the back to store the mouse for emergancies. I've already put some holes in the side which coincide with the internal frame and allow:
  • people to easily lift the box around
  • any hot air to escape
  • easy access to the volume control
  • easy access to the joysticks to switch them from 4-way to 8-way motion

Making it look a bit better

All painted in metalic copper, black top and the fan giving it a hungry look Perhaps shouldn't of glued fan to the sides as I think I could of made the hole a bit more circular. I'm also now planning on spray painting the whole thing so it's going to be more difficult with the fan in place. I bought some primer for the MDF which cost 10 GBP! and even then they weren't sure that would be enough. While there I saw some metalic copper spray paint and thought - what the hell.

I also found the super bright LED I wired up to the 5 volt line on the motherboard doesn't exactly make the inards of the thing shine through the fan. I'm now using a 240v 1w multi LED bulb in red and this is easier to wire in and produces a much better affect. It would also be nice if I could slow the fan down but it looks more difficult than just wiring in a resistor so I may give up and just let it spin.

Almost done now!

Things I could improve

Things I still want to do
  • measure and get acrylic (beveled and drilled)
  • extra screws in top sides and front
  • spray legs black
  • spray vent + top front copper
  • extra music
  • slow fan
  • move volume to back
  • clear wiring around js switches
  • put js 4-8 in manual
  • alter windows boot up image to invaders image
  • Use cross head screws everywhere
  • voice clip on start up game
Things I'd like to do but can't
  • Back board internally to fix speakers on etc
  • single piece CP
  • Use dowel joints on every joint
  • Measure twice cut once
  • screen better at a slight angle rather than flat
  • better for me if an inch taller but then wouldn't fit under work bench
  • auto start on game when turn on

Acronyms etc

CP Control Panel (buttons and joysticks etc)
Cab Just short for cabinet - the box your arcade machine sits in, it could be a traditional upright or a table sized cocktail cabinet
CPU Central Processing Unit - the bit that does the thinking in your PC and it can get quite hot so remember to ventilate your box.
FE Front End (powermame, mala etc)
I-PAC This Reads all the buttons etc and sends back keyboard characters to your PC - pushing a button might cause a space character to be sent to the screen.
LCD Liquid Crystal Display - your probably looking at one now
LED Light Emitting Diodes - a small bright light
MAME Multiple Arcade Machine Emulator - this is a program that reads your ROMS and prentends to be the original arcade box allowing you to run the ROMs on your PC.
MDF Medium Density Fibreboard
PC Your computer
ROM Read Only Memory - in this case it's the original program that was held in the arcade machine but is now run by the emulator.
SNAP Snapshots of the games in action and are used by the FE to show what game is currently highlighted.
USBUniversal serial bus

list links