Mapping Controls

This weekend was tasked with mapping the controls from the I-Pac interface to the MAME emulator itself.

The interface used was the Ultimarc I-Pac2

For information and purchase of the Ultimarc I-Pac2 please visit Ultimarc

In a previous post, I connected all of the positive Normally Open terminals of the microswitches in the control panel to the I-Pac and  put all of the negative (common ground/earth) to a distribution block, and then jumped them to the GND terminal on the I-Pac.

The next step was to use the Ultimarc WinIpac software to map each button to the proper function.

These screenshots are for an example only, the real screenshots from the Quasicade will be taken shortly.

To better visualize your button mappings, Winipac allows you to set up a panel view.

When you propagate your panel view with the layout of your own control board, its as simple as double clicking the button on the panel, and pressing the key on your control board to program initial mapping.

Make sure to save your layout, and program the I-pac with your button config.


An observation I had was that a few games required control features I don’t have implemented in my board. I’ll describe my workarounds here.


Arkanoid uses a spinner control to slide the Vaus ship back and forth on the play field.

As my machine does not feature a spinner on the control surface, I mapped the left-right on the joystick to increase and decrease the X/analog values in MAME.

This does not give you the level of refinement that a spinner can. The game is somewhat playable without this, but doesn’t have the same feel.

In the future I intend on building a real spinner from a deceased hard drive and some optical sensors, for the time being, this workaround will do.

Arch Rivals

Arch Rivals uses an analog joystick, this allows for a variable run speed depending on how far the joystick is pressed to a given direction.

To achieve playable controls, I mapped the up/down/left/right of the control stick to the analog X-inc/X-dec and Y-inc/Y-dec values for both players.

This makes the game quite playable, and has a relatively accurate feel.

One other non-standard mapping I performed, is the order of the colors on my control buttons, actually fits the tutorial instructions.

So I mapped my red button to the “red” on the game, etc.

TMNT – Turtles in Time

Teenage Mutant Ninja Turtles: Turtles in Time is one of my all-time favorites. I could have bought 4 of these machines with the amount of coins I pumped into it as a child.

The typical setup for this machine is 4 player simultaneous. 4 separate coin slots would register for each turtle.

The Quasicade is a 2 controller, 2 coinslot machine. So I had to make the painful decision of choosing which turtles were able to play.

I have plans of adding an external USB interface to map to the other two turtles if for some reason 4 people wanted to crowd around this machine and defeat the evil Foot Clan throughout history.

In the meantime, I mapped coin 1 and coin 2 to Leonardo and Michelangelo.

This same format applies in TMNT the arcade game.

The Simpsons

Unfortunately this game met the same fate as TMNT did above. It has amazing co-op moves but we only have space for 2 controllers.

I mapped the Coin doors and controllers to Bart and Homer. Experienced players are encouraged to chime in here as to which two characters are the best balance to play as, if only able to use the two.

Other Notes

I would like to note that MOST games picked up an intuitive control scheme without much work.

The Street Fighter style games worked perfectly, kicks on the bottom, from weak to fierce, and punches on the top.

Most single button games chose button1.

Some games however, made no sense:

The Mortal Kombat series for example used a 5 button pattern in an X shape for a while, before adding the RUN button.

These games had to be painstakingly mapped through trial and error to make them make sense when playing on the Quasicade.