4 Player Portable Arcade Machine
by purpletheory in Circuits > Electronics
29615 Views, 623 Favorites, 0 Comments
4 Player Portable Arcade Machine
I grew up playing video games and especially loved the Bomberman series. In my opinion, it is among the best multiplayer games ever made. I thought it would be fun to make a portable 4 player Bomberman themed arcade cabinet, that would be compact and light enough to carry to parties and barbecues. This was a fun project to build, albeit involving a fair amount steps, none of which are overly difficult and only require a modest selection of hand tools.
Materials and Tools
Materials:
1/2” Plywood
3/4” MDF
ABS laminate sheet
Large road case corners (8)
Rubber feet (4)
Recessed handles (2)
Recessed latches (4)
1/2” Aluminum C-Channel (or tongue and groove)
1” Aluminum Angle
Steel brackets (3 large, 2 small)
Corner brackets (4)
Contact cement
Painters tape
Rivets
Sanding Block
Black spray paint
1/4” Plexiglass
LCD Screen (with built-in speakers)
Mini ITX computer (or other all-in-one mini PC) + Mounting hardware
Metal cabinet handles (2)
Arcade joysticks (4)
Controls interface board(s)
Player start pushbuttons (4)
Yellow pushbuttons (12)
Illuminated red pushbuttons (4)
Skull & Crossbones pushbutton inserts (4)
Fighter pilot switches (4)
Momentary on-off-on toggle switches (4)
Wire
Screws
Insulated connectors
Momentary key switch
AC Jack
Junction box
Electrical tape / heat shrink tubing
Wood glue
Double sided tape
Foam Tape
220 ohm resistor (1/4w)
Optional Materials:
Printer
Surge protector
External USB Jack
Compact Flash HDD adaptor
Cable ties
Metal “Radioactive” sign
Cable Ties
Sourcing besides local hardware stores, this is where I purchased most of the harder to find materials:
Box Hardware: http://www.reliablehardware.com
Arcade Parts: http://www.groovygamegear.com
Fighter pilot switches: https://www.radioshack.com/products/safety-switch...
Tools:
Jig Saw
Drill + Assorted Bits
Hand riveter
Jewelers saw or hacksaw
Router + straight bit, flush trim bit
Screw driver
Ruler or tape measure
Scissors
Wire cutter / crimper
Soldering Iron
Optional Tools:
Clamps
Utility Knife
“J” Roller
Software:
Windows XP
Maximus Arcade (or preferred frontend)
SNES Emulator
ROMs
Project Planning / Box Design
I wanted the cabinet to have a “bomb squad” aesthetic to follow the Bomberman theme and originally had planned on buying a road/flight case and fitting the project inside, but was unable to find one that was a suitable size or one in my price range, so I decided to make one.
I chose 1/2” plywood held together with aluminum hardware to keep the box as light and strong as possible. Before committing to a size, it’s a good idea to have gathered most of the hardware so that you can lay everything out and make sure the box is big enough to house all of the components. It’s also important to not make it too large and difficult to transport, nor too small and uncomfortable to play.
When choosing a monitor, there are several factors to consider; It’s important to make sure that the monitor, once turned on, will come back on after being unplugged and plugged back in, as the power button will likely be inaccessible once the cabinet is assembled. It’s also important to make sure that the monitor has a decent viewing angle from all sides, as it will be mounted flat on it’s back and viewed from each side. Form factor is important to consider, so it won’t be too deep or difficult to mount. Lastly, I would recommend a monitor with built-in speakers. Alternatively, you could mount speakers inside the box, but this is an added step/expense.
I’ve included a diagram with the measurements of my box that you can use as a basic template and make adjustments accordingly to your particular hardware on hand.
Box Construction
I marked the dimensions of the box on the plywood and cut everything out with a jigsaw. Don’t worry too much if everything is perfect, as most everything will be covered up with hardware. Once it was all cut out, I used wood glue and clamps to put it all together. After the glue dries, I used a sanding block to make all of the edges as flush as possible.
Next, the laminate can be applied. Alternatively, you could paint the box, but I prefer the look and durability of laminate. To cut the laminate, score it with a utility knife and snap it on the score. I would recommend cutting the pieces a little larger than each surface, to leave a little margin for error when aligning the laminate to the wood. Apply contact cement to a box surface and to the backside of the laminate. Let the cement dry and apply the laminate sheet to the box, trying to avoid any bubbles. Having a “J” roller handy makes this much easier. Then, use a flush trim bit in a router to trim the excess laminate. Rinse, repeat.
After the box is done, mask and paint the inside of lid and anything that might be visible on the lower half once everything is assembled.
Control Panel Construction
For the control panel I used 3/4” MDF, as I wanted to have some extra strength to hold the monitor and extra thickness to be able to use heavy duty screws to secure the monitor brackets. I made a rough cut for the control panel with the jigsaw and then cleaned up the edges by clamping the straight edge of a scrap board to the panel as a guide for the router with the flush trim bit. I used this same method for the monitor window.
To drill the holes for the buttons, I used a 1 1/8” boring bit and smaller bits for the rest of the switches, etc. I test fitted everything and routed out the underside of the control panel for the small switches to be able to be screwed on from the top and also for the outside dimensions of the monitor for a snug fit. I also routed out where the monitor will sit and where the recessed latches will be.
After this is accomplished, make sure that the control panel fits in the box, don’t forget to account for the thickness of the C-channel that will around the lip of the box.
Then apply laminate using the same method as previously done with the box, drill a pilot inside each button and opening large enough for the flush trim router bit and trim all the excess laminate.
Next, secure the plexiglass sheet to the top of the control panel with double sided tape or clamps. Basically, the finished panel is used as a template with the trim router bit. The tricky part here is drilling the pilot holes for the buttons without cracking the plexiglass. If you have access to a plunge router, this is very easy with a standard straight bit. If you’re like me and don’t have one, I would recommend trying a stepped bit. I got one from Harbor Freight for a few bucks and have had good luck with it. Don’t forget to drill some little holes for the speakers in the plexi!
Here is the template that I made for my control panel if you would like to use it. It's 4 up on a standard 11"x17" sheet (make sure you print it at 100%).
Download Template
Graphics
I wanted the graphics to match the Bomberman theme and designed them to resemble the controls of an atomic device. I also wanted to incorporate operation instructions into the design. I’ve included my design if you would like to use it for your build, I would just ask that you…
PLEASE ONLY USE FOR NON-COMMERCIAL PURPOSES, THANKS!
Download Overlays
I printed everything out on regular printer paper, cut it out with scissors, then secured it to the MDF control panel with double sided tape. Place the plexiglass on top and you’re ready to install the hardware.
Hardware Installation
Time to install the hardware. First I started with the recessed latches and handles, drilling holes into the wood and securing them with rivets. Next, measure inside lip of the box and mark the C-channel with a marker. You can either miter the corners with a hacksaw or do like I did and cut a 90 degree angle, leaving one side in tact and bending the pieces into a rectangle to fit the lip of the box. (Please see the photo of this above, hopefully it will make sense) I used small screws to secure C-channel.
Next, I cut the aluminum angle to fit all of the edges, not worrying about the corners too much, as they will be covered up by the metal cabinet corners. I used painters tape to hold these in place while I drilled then secured the aluminum angle with rivets.
Attach the metal corners the same way. And finally, attach the corner brackets on the inside of the box that will support the control panel and you’re done! (and most likely extremely sore, riveting is hard work!)
Monitor & Controllers Installation
First, I installed the monitor held in place with a few brackets I found at the hardware store with some heavy duty screws and foam tape on the inside to ensure a tight fit and hopefully absorb any shock while transporting the cabinet. Next, screw in all of the pushbuttons, switches and joysticks. I tried to orient all of the terminals in the same direction on the buttons to make wiring a little easier later. I also put a couple of metal cabinet handles on top in order to be able to remove the control panel later if I need to. I tried to position them in places where they wouldn't interfere or be uncomfortable while playing. It's really starting to look legit at this point!
Arcade Controller Concepts
I would like to briefly talk about basic concepts of how a PC masquerading as an arcade machine works and how it is wired up. I apologize, if this is extremely basic info, I just want to explain a few things in the way that I wish someone had explained to me long ago while researching all this stuff. I’m a visual learner, so I have made a simple diagram to illustrate the basic wiring as well.
This arcade machine is basically a computer running Windows XP. When the computer boots up, it automatically runs a frontend program, which is a visual interface that organizes all of your emulators and games in one place, as well as disguising Windows.
Connected to the computer is a control interface, witch is essentially the circuit board of keyboard, but without all of the physical keys. Each of the buttons and joysticks consist of momentary SPST switches that are individually wired terminals on the control interface. When a button is pushed, it sends a key stroke to the computer. When you set up the emulator and frontend, you assign that keystroke to the action desired when the button is pressed. Simple!
Wiring
Wiring can potentially get a little messy, so I would recommend taking your time and trying to trying to keep organized. It’s also helpful to have different colors of wire, so you can easily see what’s connected to what at a glance. Start by wiring all of the negative terminals together in a daisy chain on all of the pushbuttons and joysticks and connect to the ground terminal on the control interface board. Then run a wire from each button to an open terminal on the control interface board. The control interface that I purchased has a special function, which is essentially the “shift” key, so when it’s pressed down, all of the keys change and can be assigned separate functions in the emulator/frontend. I connected that key to the fighter pilot switches, to be used for admin functions (exiting to windows, shutting down the machine, etc.) I wired the key switch to the power terminal on the motherboard, so that it powers up when the key is turned in the lock. The control interface is connected to the usb or keyboard port on your PC. The computer that I used was a low power consumption motherboard/processor combo, powered with a laptop battery. I was a little concerned about a standard HDD getting too hot in a non-vented box, so I ended up using an Compact Flash card as a hard drive. Less moving pieces too. Both the computer and the monitor are plugged into a small surge protector, which is plugged into a junction box and wired to the AC jack.
The 4 illuminated red buttons also have to be powered in order to drive the LEDs inside. I had an extra PC fan connection on the power supply that I modified to power the LEDs in an array with a 220 ohm resistor. I have drawn out in a diagram above. You could alternately use one of the other PSU connectors, just make sure it's 12v.
Optional: I was worried about maintenance on the computer, getting to the computer by having to take the control panel off every time would be a huge hassle. So I got a USB jack and attached it to one of the recessed handles. I made the rectangular holes by drilling and shaping with a small file.
Software
The operating system that I am using is Windows XP, the reason being is that I’m familiar with it, it runs the programs well and is easy to tweak in order hide the operating system for a seamless arcade experience. The emulator that I use is “ZSNES,” which has been around forever and is still great. As for the game ROMs, I can’t help find those, but if you’ve made it this far, I’m sure you can figure it out! The frontend that I used and really like is called Maximus Arcade. It costs a little bit, but is worth it to me. There are a bunch of free frontends out there that are definitely worth checking out, but I like how slick and easy to setup Maximus is.
Setting up the emulator is pretty straight forward: run it, go through the controls setup, clicking each button on the control panel with the corresponding control. Easy!
Maximus Arcade is very intuitive as well: run it, you indicate which systems to emulate, point to where your emulators are, and where your games are. Then, set up the frontend controls; button combinations to exit games, control volume, exit frontend, shut down PC, etc. Another cool feature of Maximus is that you can set it up to have to press buttons down for a certain amount of time, so that you don’t accidentally shut the machine down in the middle of playing, etc.
Once the frontend is all set up, we need to configure windows to run the frontend on startup. The easiest method is to add the frontend to the startup items in Windows. Right click the frontend executable and select “Create Shortcut.” Then, place the new shortcut file in the “startup” folder. This should be located in:
Documents and Settings\
At this point you are basically done and have a fully functioning totally wicked awesome cool arcade machine! In the next section I will discuss some optional tweaks to customize and disguise Windows completely.
Optional Tweaks
DISCLAIMER: Some of these tweaks involve editing the registry, which could potentially ruin your install of Windows if done improperly. Please only attempt these changes if you feel comfortable and have experience messing with the OS! I won’t be held responsible if something goes wrong! That being said, proceed if you dare!!
For an even more authentic arcade experience you can do some extra tweaks to hide every aspect of Windows. Here is how I set up my machine, I learned all of these techniques from the fine folks at arcadecontrols.com and would recommend checking the site out. There are tons of other modifications on the site and even information about programs that automate the process.
Custom BIOS Splash Screen:
This replaces the splash screen that you first see when booting up your computer, I made one to go along with our atomic device theme.
- Go to My Computer >Properties >Advanced >Startup and Recovery >Settings.
- Select “Edit startup options file”.
- Add “ /bootlogo /noguiboot” to your default operating system (there must be a space between each switch) and add a 16-color 640 x 480 pixel BMP file called "boot.bmp” to your Windows directory.
Here’s the splash screen that I created if you would like to use it for your project, PLEASE ONLY USE FOR NON-COMMERCIAL PURPOSES, THANKS!
Download Splash Screen
Replace Windows XP Shell with Frontend:
This method is much more seamless than just adding shortcut to the “startup” folder. It uses your frontend as the operating system interface instead of Windows Explorer.
- Open regedit (start menu > run > type “regedit”)
- Go to: HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Winlogon
- Make a new string value (Edit > New > String Value) named “shell”
- Set the value to the path of your frontend (ie. C:\Maximus\maximus arcade.exe)
- Reboot.
- Next, from within Maximus there is an option to run a program after you quit out of Maximus, so you can have it run Windows Explorer on exit. It is important to set this up so you can exit to Windows if you need to at some point. In Maximus’ “config” screen, go to “options”, then to “Exit” tab. Check the “Run Application on Exit” box. Then enter: C:\Windows\Explorer.exe
- Then assign a key to the function.
Hiding Windows welcome screen:
This is the screen where you log on to Windows, you can turn it off by going to:
- Control Panels >User Accounts >Change the way users logon or off. Deselect the “Use Welcome Screen” checkbox.
- Now, to change the blue login background to black, use regedit and navigate to: HKEY_USERS\DEFAULT\Control Panel\Colors\Background
- The RGB code for black is: 0 0 0
If this causes the “classic” login screen to appear, you can automate the login:
- Click start >run >type: control userpasswords2
- Highlight the user you want to log into automatically, then deselect the Users must enter a username and password... checkbox.
- Click Apply and you'll be asked to verify the username and password to log in automatically
- Click OK again and also the next time you reboot.
Getting rid of “Loading Settings” dialog:
This is the dialog that pops up when logging into windows that says “Loading Settings.”
- Go to Start Menu > Run > regedit
- Navigate to entry: HKEY_LOCAL_MACHINE > Software > Microsoft > Windows > CurrentVersion > Policies > System
- If there is an entry for "DisableStatusMessages" set it to: 1
- If there is no entry, right-mouse click the "System" word, and select New DWORD value, and enter "DisableStatusMessages", right-mouse to edit the value of it, and enter: 1
Conclusion
Done! Thank you very much for reading, I hope you will give this project a try. It always gets a ton of attention at parties and gatherings, etc. One caveat; it gets way too much attention if you try to carry it through airport security!