Ultimarc and Mame Default Keyboard Mapping Pins

by Eric R. Krystof

Last Updated on July 11, 2020.

This table serves two purposes, defining the logical pin out of Ultimarc boards and what MAME default key they map to. This can especially help with mapping your wiring when you’re not mapping everything exactly into the Ultimarc encoder as defined by default. (I didn’t in the case of my pedestal because I wanted some dedicated admin buttons, as well as using two encoder boards, so one board controls player 1 and 3, and the other board controls players 2 and 4. With the standard Ultimarc logical layout defining pins for players 1 and 2, this table can help in customization.

The ‘Shifted’ defaults are optional and can be customized as well. They’re useful for when you are limited in buttons but want to use button/joystick combinations to execute a specific key. For example, the default below shows ‘START 1’ as the ‘shifter’ button. The shifter button, when held down and combined with a different button, simulates a third key being pressed.

Pressing it alone starts a one player game. Pressing it and PLAYER 1 SW 1 (Usually your primary fire button) at the same time acts as COIN 1, which maps to the MAME default of key-press 5. So you don’t need a dedicated COIN 1 button, you just hit your START 1 button, hold it down, press the PLAYER 1 SW 1 button (primary fire button), and the IPAC will simulate the key-press 5, which inserts a new coin for player one.

It’s entirely optional, but can be very useful depending on how you’ve designed your controls.

You can always check the latest MAME source on Github for the defaults across the entire control set here:


Quick note on Players 3 and 4, button #4 (3 SW 4 and 4 SW 4, respectively) – MAME, by default, doesn’t have a button assigned. This is probably a default set by Andy at Ultimarc.


5/26/2016 – While setting up LEDBlinky I noticed that some controls weren’t up to date with MAME defaults per se. Not sure if those were from older versions of MAME or not, but they’re now up to date as of 0.174. I think in general, I use the MAME defaults, and the Ultimarc default if no MAME default is defined (like P2 buttons 5+, P3 Button 4, and P4 Button 4)

Another consideration..

5/28/2016 – I’ve decided, by default, to not let controls overlap. Since P3 keyboard movement uses the same keys as we chose for P2 buttons 5-8, I discovered some issues with LEDBlinky lighting up the P3 joystick when P2 Buttons 5-8 were active for a game. More of an annoyance than anything else, I decided to create my own mapping for Joystick 3 to use keypad 1,3,7,9, and see how well that works. Since I’m going beyond the default there, I also updated my personal cntlr file for MAME to include this mapping.

Ultimarc LogicalMAME 0.174+ DefaultUltimarc DefaultUltimarc Default (Shifted)Personal


Minipac Pin
1 A23
1 DOWND arrowD arrowP (pause)19
1 LEFTL arrowL arrowEnter20
1 RIGHTR arrowR arrowTab (Menu)40
1 SW 1L-ctrlL-ctrl5 (Coin 1)38
1 SW 2L-altL-alt18
1 SW 3spacespace37
1 SW 4L-shiftL-shift17
1 SW 535
1 SW 615
1 SW 734
1 SW 814
1 UPU arrowU arrow~ Slider Options39
2 DOWN09
2 LEFT10
2 SW 128
2 SW 208
2 SW 327
2 SW 407
2 SW 525
2 SW 605
2 SW 724
2 SW 804
2 UP29
2 ATAB22
3 DOWNKeypad 1
3 LEFTKeypad 7
3 RIGHTKeypad 3
3 SW 1R-ctrlR-ctrl
3 SW 2R-shiftR-shift
3 SW 4
3 SW 5
3 SW 6
3 SW 7
3 SW 8
3 UPKeypad 9
4 DOWNKeypad 2
4 LEFTKeypad 4
4 RIGHTKeypad 6
4 SW 1Keypad 0
4 SW 2Keypad Del
4 SW 3Keypad Enter
4 SW 4
4 SW 5
4 SW 6
4 SW 7
4 SW 8
4 UPKeypad 8
COIN 132
COIN 212
5 1 vote
Article Rating
Notify of

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Inline Feedbacks
View all comments

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More

Would love your thoughts, please comment.x