Ubuntu MAME Arcade Project – Part 2, The Controls

tankstick completed

Once of the most important parts of an arcade machine is the control surface.  There are as many options for building a controller as there are variations of snowflake.  For my build I decided to take the easy way out, and while the result is still good I regret not building my own from scratch now.  Nevertheless, behold my modified Tankstick control from X-Gaming.

The X-Arcade controllers are well built, well reviewed, and even compatible with home gaming consoles with the appropriate adapters.  Yes, you can hook it up to your Playstation.


Here is the X-Arcade Tankstick ($199) set up in my test bed.  I have it plugged into an Ubuntu media center and studio machine I built.  This is where I performed the initial setup of MAME, figured out how everything fit together, and determined the initial requirements for the project.

This device is on sale a lot.  Usually $30 or so.  They also frequently throw in free shipping and include a licensed copy of Maximus arcade which definitely influenced my decision to purchase it.  Maximus is a MAME application for Windows and I decided early on that if this became too much of a hassle or I just couldn’t get it working I would just run Windows 7 to be done with it.  Thankfully it was needed but I still have a license in case I build a less complicated machine to sell later.

You may have noticed some differences between to first picture and the second.  Lets get into that.  First, I decided on this model of control surface because it has a trackball.  While bowling games are fun and all, I am old enough to remember trackball mice on my PC growing up and haw difficult they made playing Wing Commander.  This trackball is a PS2/USB mouse and since we are essentially just building a really expensive computer case, it obviously needed a mouse.  The problem with having a mouse with no buttons is that it doesn’t do much.  Enter the first serious warranty voiding modification.


I visited my new friends at Twistedquarter.com and picked up what in my opinion was an elegant solution to provide a 3 button mouse.  Before drilling or taking anything apart I tried any destructive mouse button mashing technique i could think of while playing a game and determined that it doesnt matter if you hit the mouse buttons while a ROM is running, so if you accidentally hit these during gameplay it doesn’t matter.  This was good news because the while the surface of the Tankstick is very large and appears to have a fair amount of real estate available, the inside of the unit is a different story.

tank site selected

Working around the massive trackball assembly I decided the if playing alone, pretty much everyone likes to be player 1, and most people are right handed, so I decided on some open space below and to the left of the trackball when it is right side up.  Here you see where I have marked off some other additions as well.  During gameplay you have to hit the escape key to exit a game and return to the catalog menu to select another one.  It would also be nice to have an enter key for starting games.  I added these to the top Left corner of the controller using reb and blue buttons respectively.  Twisted Quarter sells additional buttons with the much needed microswitches in different colors for $1.79 each.

tank drilling

Once everything is marked out it’s time to make holes.  The standard button hole size is     1 1/8″.  I picked up a set of paddle bits for my drill for around $15 that included one.  As you can see the Tankstick is made from pressed fiber board which kicks up a huge amount of fine dust when you cut it.  Be sure to keep it from getting into your trackball.  I used a piece of duct tape to seal the holes before cutting.  Be sure to vacuum the case out after cutting and I recommend blowing it clean with an air nozzle if you have air nozzle technology at hand.

button tools

before you drill ensure that there is enough clearance between surfaces for not only the button you are installing, but also for the plastic nut that holds it in place as well as the microswitch and connectors or you may end up with a hole that you cant use or plug.


Here is where I encountered a small problem.  Because it is mostly a one-off the triple button piece has a shorter shaft than a standard button.  After drilling the hole I discovered that the nut that comes with it couldn’t grab the threads on the shaft because the fiber board is too thick.  Fortunately just as fiber board has its problems, it also has some advantages.  I was able to cut halfway through the fiber board with a hole saw and then pry the bottom half loose with a screwdriver to attach the nut to the shaft.


By this point you may be asking yourself how you could possibly work around all those mysterious wires.  The answer is fairly simple.  Don’t.

Each control surface like this one has what is known as an HID or Human Interface Device controller.  This is what terminates in a keyboard cable or USB plug.  The manufacturers of this device use a HID controller that is just about perfect for their needs and doesn’t do anything extra to save cost.  Instead of attempting to mess with the existing controller and risk breaking it, messing up the programming, or making it impossible for them to help you get it working again, I just added another HID controller for my additional features.



Ultimarc (UK) sells the UHID Nano interface controller.  It is fully programmable and allows you to connect 7 buttons to the computer and assign keyboard keys or macros.  While it is pretty awesome, the configuration utility only works with Windows.  If you are bored and feel like contributing, head over to Github and help Katie work on the Linux version so I dont have to borrow a computer to make changes.


The wiring is very basic for the buttons.  It looks like a lot but there are only 2 connections per microswitch.  Positive, and ground.  A single ground wire attaches to the UHID and you daisy chain it to every button.  Next you attach the positive wire for each of the 7 interfaces to the corresponding pin on the UHID, plug the USB cable into a laptop, and select the keystrokes/actions for each pin.  Make sure you save the config or it wont set your actions to the pins.


At this point you have a USB cable that needs to get out to the outside world so you can plug it into your computer.  Simply drill a 1/2″ hole in the rear panel of the Tankstick for your USB cable and fill it with our favorite adhesive, polyurethane caulking to make sure that pulling on the USB cable doesn’t damage your precious internal wiring.

coin wires

You may have noticed the two white buttons on either side of this controller.  The one closest to the player is the 1P or 2P coin button depending on what side you are on.  The one farther away serves as the tilt button.  I decided that I would be adding a coin door and coin mech to this project which will require additional wiring to the base of the cabinet.  Because the coin buttons are already installed and the controller for the Tankstick is already configured for this function I spliced the positive and negative wires to the coin buttons and ran them out the hole I drilled for the USB cable to attach later.


During previous “play testing” I noticed that the Tankstick had a set of NEO-GEO style buttons on it that are actually mapped to NEO-GEO ROMs, but they were all black instead of colored ones.  Twisted Quarter to the rescue again.  I also added one of the Black buttons that I swapped out for colors as a pause button (top right.)  Not all ROMs support pausing, but its nice to have when the phone rings or something comes up that since you built an arcade machine you aren’t really that interested in any more like work, school, or your kids.

tankstick completed

Once this was all completed, I closed the case back up and verified all my shiny new buttons worked.  It looks much better, is far more functional, and doesn’t require you to pick up and put down a keyboard now.

One Comment:

  1. Remember to mount wheels under your arcade cabinet. It is almost impossible to move around a cabinet without wheels. Also makes the cabinet higher and thats good, because most people makes their first cabinet too low.

Leave a Reply