I-PAC 4 has 56 inputs each with it's own dedicated
microprocessor pin. No interaction
or delays, vital for multi-button games such as fighting games.
I-PAC 4 is much more than a keyboard encoder! Pins can be configured as mouse buttons or game controller buttons, plus power and volume control.
Multi-mode operation emulates either keyboard/mouse with 56 available keycodes (more than enough for 4 players), or dual gamepad/mouse or dual Xinput controllers.
I-PAC 4 in key mode breaks through the USB simultaneously-pressed-switch limit of 6 switches (plus ctrl,alt,shift) which afflicts all USB keyboard devices. This is beacuse it has inbuilt full native USB support, and does not rely on an add-on adaptor.
I-PAC 4 has a shift function which allows ANY input to be assigned to a shifted secondary keycode and the shift button can have it's own function too so no need for a dedicated extra control panel button.
I-PAC 4 has a self-test LED which not only gives an instant visible check of your installation but also can indicate which connection (if any) is causing a problem.
I-PAC 4 retains it's programming after power off. Beware! Not all keyboard encoders do this!
The I-PAC (Interface for Pc to Arcade Controls) are a range of boards which allow connection of arcade controls such as buttons and joysticks to a USB port on a PC motherboard or other host system. It was designed around the MAME emulator which supports over 1000 arcade games and can be used with other emulators or any software which requires keyboard or game controller input.
It is designed to be used inside an Arcade Games cabinet with the PC motherboard also mounted inside, but could just as easily be used with simply a control panel without a cabinet.
Special shift function buttons mean that a normal keyboard is only be needed for game loading and configuration, not for gameplay. All key codes can be programmed but you dont have to as you can use the built-in default configuration which has all standard MAME codes for quick and easy installation. Programmed keys codes are stored even after power off.
They are all programmable and are marked as 4 joysticks, 8 buttons each, plus coin1, coin2, start1, start2 and Mame control keys. Any inputs can be assigned as a shift key to access an alternate code set.
Check out the code table here for all default assignments.
When using a U-Trak trackball or SpinTrak spinner with this board, they can be ordered with their own optional USB interfaces. Note the 9-pin header on the I-PAC 4 is for factory use only.
- Fully programmable key code set. Stored even after power off unlike some other interfaces which lose all data when powered off.
- Controls can be assigned to any keycode, game controller button, plus mouse buttons, power, sleep or wake.
- All joystick/button connections easily made via screw tag strip. Connections marked on the board.
- Chunky 5mm screw connectors .
- Self-Test LED gives an instant check of all your wiring. Can indicate which, if any, input has a problem.
- All button inputs referenced to ground - no need to re-wire separate grounds to each button.
- Lead plugs into USB port.
- 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).
- 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.
- No special drivers needed. USB drivers are generic Windows.
- 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.
Technical Info.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)
Full Speed USB 2.0 compatible.
Shift key logic including protection against stuck keys.
|INPUT||NORMAL CODES||CODES WITH SHIFT
(hold 1 player start)
|1 RIGHT||R arrow||Tab|
|1 LEFT||L arrow||Enter|
|1 UP||U arrow||Key Below ESC (Volume, gamma, etc )|
|1 DOWN||D arrow||P (pause)|
|1 SW 1||L-ctrl||5 (Coin A)|
|1 SW 2||L-alt||
|1 SW 3||space||
|1 SW 4||L-shift||
|1 SW 5||Z||
|1 SW 6||X||
|1 SW 7||C||
|1 SW 8||V||
|2 SW 1||A||
|2 SW 2||S||
|2 SW 3||Q||
|2 SW 4||W||
|2 SW 5||I||
|2 SW 6||K||
|2 SW 7||J|
|2 SW 8||L||
|THE FOLLOWING CODES FOR THE I-PAC 4 ONLY|
|3 SW 1||R-CTRL|
|3 SW 2||R-SHIFT|
|3 SW 3||ENTER|
|3 SW 4||O|
|3 SW 5|
|3 SW 6|
|3 SW 7|
|3 SW 8|
|4 SW 1||B|
|4 SW 2||E|
|4 SW 3||H|
|4 SW 4||M|
|4 SW 5|
|4 SW 6|
|4 SW 7|
|4 SW 8|
When the board is first powered on, it contains a pre-loaded code set. This matches the MAME default key codes as the table above indicates. For many users there is no need to do any re-assignment, just power up and play.
You may want to re-program the codes if any of the following apply:
- · You use an emulator or other PC application without a key re-mapper.
- · You don't want people to be able to access the MAME game config menus by using shift buttons (for example game contests etc)
- · You want to
coin insert to a real coin slot
rather than using shift button feature.
You do not need to install any drivers or software from the Ultimarc CD to get the board to operate.
Connect one side of each switch to the screw terminals as indicated on PCB. "Daisy chain" the other side of all switches together and connect to either of the "GND" terminals on PCB. Some micro-switches have 3 connections – only use the ones marked "NO" and "COM". Don't connect anything to the "NC" tag. Below is a diagram showing an example of 3 joystick micro-switches connected to inputs on the I-PAC board.
gauge of wire used is not
critical. Any insulated stranded
wire will do providing it is thick enough to be gripped by the screw
connectors. The wire we supply in our wiring kit is 16 X 0.2 mm.
You can connect more than one switch to one I-PAC input, to perform the same function. For example you might want to have side flipper buttons connected to the same inputs as fire buttons as these are used in different games. This applies to joysticks too. You can connect a 4 and an 8-way stick to the same inputs. (But check our 4-8 way switchable sticks though!)
The I-PAC 2 and I-PAC 4use screw connectors for the controls:
The Mini-PAC and I-PAC UIO use a supplied wiring harness. The harness comes in two sections. There is a "daisy-chain" ground harness and a 32-way switch harness.
The first step is to connect the male end of the black ground harness to the black wire on the main harness. Then connect to every switch. The example below shows 3 connected switches:
Plug one end of cable into the USB connector and other end to motherboard USB connector.
Start windows. Windows will detect the device and automatically load drivers. The drivers for this device are already within Windows. There are no Ultimarc drivers for the I-PAC.
Boot PC and
run a text program such as Notepad.
Observe the LED on the I-PAC should be ON in normal use. If there is a
failure detected during power-up, the LED will flash a number of times
then stay OFF.
Press various player 2 buttons (some of the player 1 buttons are mapped to non-displayable codes such as ALT so best to use player 2). You should see characters displayed, just as if they were typed on the keyboard.
This is done using WinIPAC V2. For full instructions, click the Configuration Utility tab.
I-PAC boards support left/right mouse buttons plus game controller buttons, volume up/down, power, sleep and wake, in addition to keyboard keys. Extensive macro support is available.
Pressing and holding 1player start enables shift mode with access to the following keys (when "MAME" setting is used):
2 player start =Esc – for jumping back to the menu
Joystick left =Enter – for running games in Windows and for MAME game config menu
Joystick right =Tab – for entering MAME config menu
Joystick up =~ - for entering MAME volume/gamma menu
Joystick down =P MAME pause key
fire (button 1)=5
simulating coin insert.
The above shift keys can be changed/turned off as required if the board is programmed.
MAME HINT: to get past "Type OK to continue" prompt, just move joystick left then right.
KEYBOARD: PC should pass BIOS keyboard self-test with or without a normal keyboard connected. The unit is capable of being used in a closed arcade cabinet with no additional keyboard or controls and motherboard booting into an emulation menu. If an auxiliary keyboard is connected it can be used fully and even used during gameplay alongside your control panel.
USB DOS SUPPORT : Most PCs support a USB keyboard in DOS mode so I-PAC in USB mode MAY work in DOS. (USB keyboard support may have to be enabled in the BIOS). HOWEVER: many BIOSes have poor USB support which prevent use for gaming, as the response is too slow. USB is intended for Windows use, either in a "DOS box" or a windows application.
USING TWO I-PACs TOGETHER : Two boards can be used for doubling the number of inputs. Each board can be individually programmed with the required code set, then the two boards can be connected together as above.
WIRING TWO JOYSTICKS TO THE SAME CONNECTION : This is fine, and is often done when using a dedicated 4-way joystick alongside an 8-way. Both joysticks could be wired to the Player 1 inputs. They will both perform the same function of course.
The accelerometer, when enabled in WinIPAC causes up/down/right/left arrow keys to be sent when the unit is nudged.
The firmware and software for this feature is currently available as a
beta version on request.
These pins form a dual-purpose interface. The function is configured in the "config" tab in WinIPAC.
There are 2 modes:
In this mode, an Ultimarc U-Trak
trackball and SpinTrak spinner can be directly plugged into the header
pins. The wire colors are marked.
Expansion Interface Enabled : In this mode, one or two Ultimarc Xbox360/PS3/Xinput converters can be plugged into the header pins. The wire colors are marked.
Remember that the I-PAC emulates a keyboard. So if you bear this in
mind, you can use any program that displays text to test the response
with certain limitations. Notepad or the DOS prompt can be used for
example. You can connect a short piece of wire to GND and use the other
end to touch onto various input connections, and characters should be
typed on the screen. Bear in mind, though, that the default MAME
configuration includes many non-printing keys such as ALT, CTRL and the
arrow keys, so trying the player 2 inputs is best as these are all
But Notepad or DOS cannot tell you whether an input is "stuck" though so is not a complete test. For Windows, the best test is the Passmark keyboard Test which we can recommend downloading. It's a 30-day trial version but hopefully you will have it working by then!
Problem: Player 2 buttons 5 and 6 not working.
This is not an I-PAC problem! By default, MAME does not have these
buttons assigned to any keycodes. Just go into the MAME controls menu
(press tab in a game) and assign them. Button 5 is "I" and Button 6 is "K".
Problem: No shift functions work.
Part of the shift function design means that to avoid "stuck" keys,
shift functions are disabled when any key is pressed. So loss of shift
functions means you have a shorted or stuck switch.
Problem: Erratic behaviour of joystick directions. Shift functions not working. "Stuck" keys.
A very common cause is connection of the inputs to the "NC" contact on the switches instead of "NO". See the "no shift functions work" heading above for more info. This type of problem usually occurs when a large number of switches are incorrectly connected. The self-test LED will indicate this problem by flashing at power-up then staying off.
Problem: In USB mode, the I-PAC was not detected properly once before and now I can't get it out of this state.
You will need to remove it from Windows and let it re-detect. Go into Control Panel, System, Device Manager, Hardware. Open up the USB controller by clicking on the plus sign next to it. Under this heading will be displayed all the USB devices. Right click on all devices one by one except the controller itself and Root Hubs and select"uninstall". Now unplug and re-plug the I-PAC. It should be re-detected.
Problem: In USB mode, it is only detected as "Unknown Device" or "device has a problem".
Under certain conditions, shorted inputs can cause this, or inputs that are held at 5 volts. This may happen either because of a wiring error (see steps for checking this, above) or the I-PAC inputs being connected to something other than an open-circuit switch. If you need to connect non-switch devices please email for advice.
Problem: Keys intermittently sticking in one direction.
This is usually not an I-PAC
problem. If you check the I-PAC
installation using the
PassmarkKeyboard Test you
will probably find that this works fine and you may need to look
elsewhere on your PC installation such as some errant software
consuming PC resources.
Windows 7 and later cache information about all USB devices which is not refreshed when the device is unplugged/reconnected. This can cause issues with devices appearing not to work. This process is always required when firmware is changed from versions which support game controller device, to versions without game controller support or vice-versa.
To reset the device settings, open Device Manager. A quick way to do this is to click the Windows button and in the "search programs" enter:
- Expand the "USB Controllers" entry
- Find the "Composite Device". There may be more than one. There is no harm in applying this to all of them with the exception that a keyboard with integrated trackball might be one of them and this will prevent any further use of the trackball if uninstalled.
- Right click on the Composite Device and "Uninstall" it.
- At the the top select "Action", "Scan for New Hardware". Alternatively, if you have "lost" your USB mouse, just unplug/reconnect it.
When a shift button has been assigned, pressing and holding this button causes the "SHIFTED" code page to be used. The way this works is not the same as defining "key multiple" in an emulator.
To explain this, consider the following example which is part of the
standard I-PAC code set in non-programmable mode (and can of course
also be set up in programmable mode)
For example say "Start 1" is the shift button and "Player 1 Button 1" is "Coin 1" in the shifted codes. Now if you set this as a key multiple in an emulator, you could generate a coin insert by pressing these two buttons together. BUT you would also send the code for the first button you pressed. Imagine you are starting a game and have one coin insert already done and you want to play a 2-player game which needs two coin inserts. You press the key combination again to send another coin. Unfortunately what may happen is that a one-player game will start as you have pressed "start1" as one half of the coin key combination!
How does the I-PAC get around this? When you press the "Start 1" (shift) button nothing happens immediately. The I-PAC waits to see if you are going to press another key at the same time. If you do press the "Player 1 Button 1" the shifted "Coin 1" code is sent. If you don’t press any other button the "Start 1" code is sent when you RELEASE the "Start 1" button. So you don’t get any unwanted key codes.
- Configures each pin of the board as the correct device type, ie keyboard, gamepad, analog, mouse, volume/power.
- Displays a pictorial representation of the board
- Fully real-time interactive. Reads and write board configuration "on the fly"
- Can be run in command-line mode or GUI
- Read/Save configuration to a file
Explanation of "GAMEPAD ENABLED" indicator
This was added because the boards are now shipped with firmware which enables keyboard and mouse support, which is the default for almost all host software. There is alternative firmware available which adds gamepad support, so that all pins can be configured as game controller buttons in addition to keyboard keys or mouse buttons. This is available on our download page if this feature is required.
GENERAL tab (main window)
PIN drop down
This displays the selected pin you are configuring. You can select pins from here or from the main graphic.
You can type text in here which will remind you of which device this pin is
connected to. The test is saved with the configuration (on the PC only)
and is not sent to the board.
Here you configure the selected pin as the required device type and
assign values to it.
You can select one of the radio buttons to define the pin as the following:
- Switch (which includes keyboard key, gamepad button and mouse buttons)
- Trackball/Spinner (includes optical steering wheels etc). This is only relevant to certain pins on the Ultimate I/O board.
NOTE: Trackball/Spinner uses 2 pins per axis. The partner pin will also automatically be assigned. You can select X, Y or Z (wheel) axis.Trackballs use two axes (4 pins).
Only the appropriate pins on the top two smaller connectors on the I-PAC Ultimate I/O can be assigned as trackball and spinner. It is recommended that you assign trackball on the left connector and spinner on the right otherwise you cannot use the special connectors for the U-Trak or Spintrak devices. The connectors for these devices are not unique. They use two or 4 of the total 48 input pins available.
The I-PAC 2 and Mini-PAC also support trackball and spinner but these use dedicated pins.
Detail Configuration Example (Switch)
The switch is connected with one terminal to the required pin and other terminal to GND.
Select the pin by clicking on require pin in the graphic area.
Select "switch" radio button in the function area.
You now can select the control type eg whether keyboard key,
mouse button or gamepad button.
In the primary drop-down all possible keys are available plus macros defined separately (see later). Note that the I-PAC sends key scan codes just like a keyboard. It does not send characters so has no concept of upper/lower case. An upper-case key is a macro consisting of the Shift key plus the required character.
If required, you can select a secondary keycode. This is sent instead of the standard code when the I-PAC shift button is held. (This is by default the Start1 button but can be changed).
There is no need a secondary code unless you wish to use shift feature.
To assign a macro proceed as follows:
- Click on the MACRO tab
- Click NEW In the drop-down box, select the first character of the macro
- Click "Add Entry"
- In the drop-down box, select the second character of the macro
- Click "Add Entry"
- Repeat above 2 steps to add further characters
- Click "Add Macro".
- Return to the main tab. Select the macro in the drop-down when configuring the required pin.
This feature was added following user request. In the "Config" tab, the setting can be changed to 4 values as required. The default is the "standard" setting.
This value affects the rate at which the SAME input can be re-activated. Setting a low value will allow faster repeat of presses of the same button, but may also cause unwanted key repeat caused by switch bounce.
This is a specialized setting and should only be changed following testing with the specific switches being used. It does not affect overall performance because it only affects repeated action of the same input.
The firmware upgrade is a two-stage process.
First, the board is placed in firmware upgrade mode. Also a driver is installed on-the-fly if this is the first time an upgrade has been done on the PC.
Then, a program called UUPLOAD performs the upload of the firmware to the board. This program will not detect the board unless it has been placed into upgrade mode from within WinIPAC.
The following steps need to be followed:
- Run WinIPAC as administrator (right click and select "run as administrator")
- Ensure the board is detected and click "File, Firmware Upgrade".
- OK the prompts. The board should reset and change to "Firmware Upgrade Device" (If you have Device Manager open you will see the new device appear under the USB Controllers entry.
- A program called UUPLOAD.EXE should automatically start. If the process fails you can manually run this program if you have a "Firmware Upgrade Device showing in Device Manager
- Select the firmware file
- Uploading to the board
should take approx 2-3 minutes. After that, the board should reset
again and re-appear as a keyboard, mouse and game controller and be
ready for use.
Note: If the process will not work, you can try manually pre-installing the firmware upgrade driver by downloading the installer from this page which also contains additional information on the process and how to recover from failures.
The units were designed around MAME and normally you would use a front-end menu for selecting games. But of course, as the I-PAC emulates a real keyboard (without all the drawbacks) you can use any PC application which uses keyboard input.
Yes. You can use the fully programmable code sets of I-PAC to customise for any emulator or other application. Several popular front-end menus even have integrated support for downloading I-PAC codesets on-the-fly.
NO. Using the key-code programming is entirely optional. When the board is shipped, all codes are automatically assigned to MAME standard keys. As many people have found, this makes installation very quick and easy.
One method is to hack a keyboard, i.e. connect all the controls to the keyswitches so each button appears as a key. This is pretty unsatisfactory for several reasons: It takes ages to wire up as 2 wires need to be run to each switch.
Most arcade cabs have one side of all switches commoned so you have to re-wire everything.
Key Ghosting: This happens because of the matrix nature of keyboard encoders.
Extra buttons: With this solution, with some emulators you have to have extra buttons on the cabinet for functions such as "escape", "insert coin" etc. Nobody likes drilling extra holes in their nice original arcade cab!
Speed: Keyboard encoders use a scanning method. So each key is checked in sequence for a press or release. I-PAC does not use a matrix or scanning.
Shifted function keys will do various functions ie press "1 player start" and "fire" and you will insert a coin. Press "1 player start" and "2 player start" and you will jump back to the menu. You can also use the MAME game config menus with shift buttons, ie tab and enter are shift joystick right and left. The 1 player start button is always the shift button if you are using the standard MAME codes. In programmable mode you can assign any input to be the shift button and you can program all of the buttons to have shifted codes. The unique feature of the shift function is that it requires no dedicated extra button.
When the board is shipped it contains all standard MAME codes including the shift codes mentioned above. If you only ever use MAME and want a quick and easy install this will probably do for you. But if you need to, you can re-program as required, including "on the fly", and the board will remember your new settings.
You may find you need to change the assignment of keys for other emulators or maybe you don't want to have the shift functions of the MAME code set. The code set can be changed using the WinIPAC utility.
Normally you would install and test the board before getting into programming.
Will it work on a MAC?
Yes the I-PAC will work on a MAC with USB. There is even a Mac version of the programming utility.
Will it work on a Linux host including Raspberry Pi?
Yes the I-PAC will work on a Linux host. There is third-party Linux programming utility support (see Downloads page).
What is the size of the board?
Dimensions shown below. Height is approx 17mm.
Compatible with I-PAC Ultimate I/O, I-PAC 2, I-PAC 4, Mini-PAC, J-PAC. (2015-16 boards only).
Latest firmware files for all 2015-onwards I-PAC, Mini-PAC and J-PAC boards plus all Ultimate I/O boards regardless of date.
NOTE: Attempting to upgrade a pre-2015 board which this firmware will render it inoperable.
1.23 Correct stuck shift on I-PAC 4. Extend Start1 pulse time. Following customer feedback this version reverts the self-test LED function to that of pre-2015 boards. The LED is ON when no error detected.
1.30 Correct false self-test failures (flashing LED at power on).
1.31 Correct various PacLink issues
1.32 Improved performance, reduce debounce timer value.
1.33 Remove scan of unused connections
1.34 Split version of game controller/no game controller support.
1.35 (UIO only) shift key pulse too long when LEDs active.
1.36 Gamepad-enabled firmware now appears as TWO gamepads.
1.37 (UIO only) Lockup during LED animations
1.38 Add variable de-bounce delay, selectable with 4 values in WinIPAC
1.39 Harmonize all versions, no functional changes.
Firmware with/without the Game Controller device.
Versions without game controller (ie with keyboard and mouse support) have the first version digit as "4" eg 1.44.
Versions with game controller (ie with gamepad button, keyboard and mouse support) have the first version digit as "3" eg 1.34.
Starting with version 1.36, gamepad-enabled firmware enables TWO gamepad devices, one for each player.
When changing versions it is necessary after the firmware change to locate the "composite device" under the USB Controllers entry in Device Manager and "Uninstall" this so that Windows can re-detect the new version correctly.
Click here to download all firmware versions with dual gamepad, keyboard, mouse, power/volume support (excl J-PAC)
Click here to download all firmware versions with keyboard, mouse, power/volume support
Thanks to John K. Morris of Evolution Interactive for this software
Click here to download the new version for Intel Macs
Click here to download the older PowerPC version.
Linux software utilities are available. These cover several of our products and are being added-to. Please note we are not able to provide direct support for these utilities: