For anyone desiring to build their own MAME compatible arcade cabinet, properly connecting the joysticks and pushbuttons to your dedicated MAME PC can be an exercise in doing the impossible. While joystick and pushbutton to keyboard encoders exist to simplify much of that effort, the Ultimarc I-PAC 2-Player PC interface has proven itself amongst many in the MAME community as one of the best currently available.
The I-PAC, or Interface for Pc to Arcade Controls facilitates the connection between arcade controls to a PS/2 and USB port on a computer.
MAME Emulator Compatibility, Programmable Inputs, Helpful MAME Code Table
The I-PAC's robust feature set includes default controls specifically designed for MAME - one of the most popular arcade emulators currently available. Additionally, many other emulator solutions are compatible. The I-PAC assigns shift function buttons, which often minimize the necessity of a keyboard to simply configuring the emulator and loading titles.
I-PAC-2 features 32 fully programmable inputs - enough for a 2 player configuration. These inputs are designated as 2 joysticks, 8 buttons per player, coin 1, coin 2, start 1, start 2, and MAME control keys. A special input is assigned as a shift ket for access to alternate code sets.
Most notable is the IPAC's ability to save those programmed inputs into its memory even when the unit is powered down. Not all keyboard encoders have this ability.
The MAME control keys are by default assigned to the "A" and "B" inputs. To understand the default button to keyboard encoding structure, Ultimarc provides a helpful code table on their website (opens new window).
Use WinIPAC Panel Designer Software
The WinIPAC software provides a graphical interface to assist you in programming your IPAC. You can position the button and joystick interface to match your unique 2 or 4-player layout, assign colors to button inputs for easy identification, and assign new keys for the buttons if you are using a different emulator.
To ease installation, plus help you make the most of your I-PAC, Ultimarc provides helpful documentation on their website (links open a new window):
Key Codes | Programming | I-Pac F.A.Q
- Fully programmable key code set that is stored after power-off.
- Controls can be assigned to any keycode, plus mouse buttons, power, sleep or wake.
- Optional pre-assembled LED harness with 3 panel mounting LEDs which emulate the keyboard Caps/Num/Scroll
- All joystick/button connections easily made via screw tag strip. Connections marked on the board.
- Chunky 5mm screw connectors.
- All button inputs referenced to ground - no need to re-wire separate grounds to each button.
- Lead plugs into keyboard socket on PC or USB port.
- Can be programmed using special utilities (for DOS, Windows, Linux, MAC) or without special software, using an interactive method.
- Using host software, an unlimited number of keycode configurations can be stored and downloaded on-the-fly. Retained on power off.
- No separate power needed.
- Does not use a matrix - no ghost keys.
- Does not use a scanning method which causes a variable delay. Each input has it's own dedicated connection into the on-board CPU .
- Fast running interrupt-driven software gives much better response than a standard keyboard controller.
- Key debounce uses a state method for each key. No delays between keys depressed at the same time. (essential for fighting games).
- 2 operation modes. Either uses standard MAME keys or you can program your own character set.
- Shift functions. Holding "Start1" and pressing other buttons sends a range of codes for MAME functions such as "escape", "Coin 1", "tab", "enter". This means no extra buttons are needed on the cabinet. In programmable mode any input can be the shift key and all keys can be programmed with a shifted code.
- Special note for Windows MAME users! Shift key functions mean you can select and start games from the
- Windows interface without using the keyboard or mouse.
- Connector for ordinary keyboard which can be used together with the controls if required. No switch-over delays mean you could even play a game using the control panel and keyboard at the same time.
- Supports selective up/down key repeat in PS/2 mode (all keys repeat in USB mode) to give easy scrolling through lists with minimal CPU overhead and interface "clutter".
- No special drivers needed. USB drivers are generic Windows. On many motherboards USB will work in DOS.
- Fully compatible with all Apple Macs which have USB ports.
- Supports the Apple Mac "command" key and the Windows "GUI" keys.
- I-PAC4 and I-PAC2 boards and J-PAC can be paired in any combination to increase the total number of inputs.
- Keycode programming is integrated directly into many popular front ends for seamless launch of emulator or other applications which require different codesets.
(Feature list provided by Ultimarc)
- Supports USB keyboard interface.
- Up to 32 inputs each with it's own dedicated microprocessor pin.
- No interaction or delays, vital for multi-button games such as fighting games.
- Emulates a USB keyboard and yet breaks through the USB simultaneously-pressed-switch limit of 6 switches (plus ctrl,alt,shift) which afflicts all USB keyboard devices. With inbuilt full native USB support, it does not rely on an add-on adaptor.
- Fully multi-processed interrupt-driven pass-through connector so that an attached keyboard (or a second encoder) is handled in PS/2 mode with full byte interleaving rather than being switched on/off.
- Can be programmed either with or without host software.
- Posesses a shift function which allows any input to be assigned to a shifted secondary keycode. The shift button can have its own function , a dedicated extra control panel button is not necessary.
- Self-test LED; display assists with confirming installation and detecting connection issues
- Supports Volume up/down, MOUSE left/right buttons, power, sleep and wake functions.
- Retains it's programming after power off, a unique feature that is not present in all keyboard encoders.
(Benefits list provided by Ultimarc)
- The I-PAC uses a high-performance microcontroller chip. No matrix or diodes are used hence absolutely no ghosting, blocking or delays.
- De-bounce. This uses a state counter method. Each input has it's own counter. This means simultaneous keypresses are never locked out.
- Key code Flash ROM storage. Retains custom settings after power off/on (excluding I-PAC VE)
- Dual Interface. Auto-detects which type of connection is being used and switches accordingly between USB and PS/2 (PC keyboard interface).
- Full Speed USB 2.0 compatible.
- Keyboard pass-through driver consists of a bit level and byte level state machine. Driven by interrupts so no wasted CPU power when not being used.
- Shift key logic including protection against stuck keys.
(Technical list provided by Ultimarc)