Friday, April 24, 2015

4 Way Joystick Upgrade

Old games made for machines with 4 way joysticks (PAC-MAN, Frogger, Burger Time) just do not work well with 8 way joysticks.  For example, if you're going diagonal up and to the right, the game doesn't know if you mean up or right.  This is actually a physical problem.  Maybe someone has figured out a software patch to guess based on the first position you hit on an 8 way joystick, but I haven't seen it.  I simply added two inexpensive 4 ways (the red and blue knobs) wired up to the same controls as the P1 and P2 8 way joysticks.  PAC-MAN hasn't played this good since the original!



Sunday, November 16, 2014

How to Turn a Bass Guitar Case into a Multiple Arcade Machine Emulator

Background

I always wanted to build a MAME machine to play all the classic arcade games of the past, but I didn't want to construct a giant cabinet with a cathode ray TV and take up space in our house that we don't have.  I started thinking about what would make a good home for all the arcade controls that I could put away in a closet when I wasn't playing games.  What I landed on is a bass guitar case I found on craigslist for $40.  It was a tight fit, but a I managed to get everything in it, including an old Dell D630 laptop to run the MAME UI.  

I simply connect a power cable to an outlet and HDMI cable to an HDTV and go.  I got a keyboard stand to put it on so we can play standing up or maybe in front of the couch.  The best part about it is it's completely portable!  Arcade fun in an easy to carry box.



Guitar Case

The guitar case came with a nice velvet lining for a guitar, which I immediately tore out.  No need for that with electronics, and I needed as much space as possible.



I scraped off the glue that was holding the lining and cleaned up the wood.


The case's wood was pretty thin for arcade controls, and I was concerned with how it might flex when playing so I decided to glue in a piece of 1/2" thick MDF that I cut to fit.  I also cut a hole for a trackball using a layout I worked up for all the controls.  More on that later.



I finished off the MDF insert with some hot glue in the corners and around the edges.



I put some drywall sealant on the wood to cover up some of the glue that didn't scrape off very well and reduce splintering.




I worked up this layout and had it printed at a local print shop at scale, roughly 2' x 4'.  I incorporated the button and joystick positioning found on slagcoin.com, which was essential to getting the spacing right.


I could have just put the print out on top and marked the drill spots, but I decided to work from the inside out so I flipped over the print out and marked the underside of the case top.




I used an automatic punch to set the drill points.


I then marked each point with a marker, including some notes on the MDF to make sure I didn't drill the wrong sized hole by mistake.


Arcade Controls

I was pleased with how this looked even with just the holes drilled.  Time to start adding buttons!  I purchased this set of 4 player controls from gameroomguys.com.  




I got a few extra Happ buttons and this cool arcade trackball and metal cover plate on ebay.  How could I resist for the price?  I mean it glows green and changes to red when you click a button!



Most of the buttons and trackball in!



Joysticks in!


More Case Modifications

I started to realize that the 1/2" MDF was pretty heavy and a bit much on the thin edges of the case.  I added some scrap aluminum angle pieces and joined it with an aluminum bar where I was seeing some stress on the case near the handle when I picked it up.  This added the stability needed to the case and makes it feel nice and solid.


I cut holes and added two 40mm computer fans with some nice plastic covers.


I also added a power outlet and switch on the side with an extra button for use during shutdown.  I mapped the button to Ctl-Alt-Del to help exit Windows.



I then added an HDMI port.


Wiring

Absolutely the best deal I found building this is this pack of JAMMA arcade wires on ebay.   I pulled all the wires out of the black JAMMA harness as I wasn't going to use that, but the color coding and combination of wiring was perfect for the 4 player controls.



I connected all the wiring to an I-PAC 4.  I couldn't be happier with this product.  This product, along with all the MAME software made me appreciate how much work was done by the guys that were geeking out on arcade emulation long before I started on this project.  This project was EASY compared to what was done in the olden days of MAME. 



I soldered the tip of stranded wires before I tried to screw them into the I-PAC, and this made for a much cleaner install.

Finishing

I tried out the spacing and depth of the controls and laptop/component positioning before I got started on this project, but I must admit I probably got a little lucky everything to make this work was a tight fit!  It's very doable though as the case I used is pretty slim compared to most guitar cases.

On the right, is a Dell D630 laptop with screen removed and on the left is the I-PAC4 in a plastic electronics box. 


On the left is also a DC to 2A 12V DC power converter, and a 12V to 5V DC step down adapter.  The 4 red LED backlit buttons I have at the front of the case to trigger coin entry came with 12V LEDs and computer fans I used also need 12V.  The square buttons I used for non-game controls, such as exit, pause, save/load, and save/load position used 5V, as well as the powered USB hub.


Being a bit of a perfectionist I wanted to make sure I could do everything without opening the case.  This meant somehow turning on the laptop without opening the case.  I used a trick to make this happen by hooking an Arduino Pro Mini to an Ethernet shield to send the Wake On Lan magic packet to the laptop when I power on everything else.   This sounds like an expensive fix, but the cost of Arduino bits and pieces has dropped to dollars with parts coming from China.  This whole setup was probably about $8.  And many thanks to the guy who wrote this Arduino Ethernet library to send UPD packets on the cheap ENC28J60 Ethernet chips.



I eyed these arcade light guns when building this, but thought they were pretty expensive to start with, but maybe someday!  To add other other controllers I pulled apart a USB hub and attached it to the side of the case.


I used a little black caulk on the outside to clean up the edges.


In goes the laptop.  This one I got from an office surplus sale.  It's not worth much, and old by most standard but plenty good enough to run MAME games.  I connected a VGA to HDMI adaptor to the laptop's VGA port as that's all it had for video out.  The adaptor also connected to the headphone jack to send audio over HDMI.  I also connected the I-PAC4, USB hub, and trackball to the laptop's USB ports.



There is probably a better way to do this, but the cheap arcade trackball I purchased was PS/2, and my laptop only had USB ports, so I needed a conversion from PS/2 to USB.  Some devices allow you to connect a PS/2 to USB converter, but not this trackball, at least for the standard mouse Windows drivers I was using.  I found an old IOGEAR cable in a box of old wires I had at home, originally designed to allow one keyboard and mouse control two computers, that would allow my PS/2 trackball to be converted to USB.


All done!  This was one of the most fun projects I ever did.  All in I don't think I spent much more than $200.  It helped that I had some old bits at home to finish this project off, but I think one could safely build this for under $300 buying all the cheap parts on ebay and other online arcade gaming sites.  I'm very happy with the result.  It's really fun to pull this out and play some of the old great games with friends.  It feels like going back in time firing up these old games, and they are still as much fun as I remembered.