All of
these programming methods can be used to re-assign key-codes generated by the
I-PAC / J-PAC. Codes are stored in EEPROM and kept after power-off. Note that
you don't need to program the board at all if you don't want to, just leave it
with the factory MAME settings".
Click here to download any
of these programs
Click below for preferred programming method:
While we're on the subject of programming, it's useful to
understand exactly how the I-PAC shift functions work. here's some info:
How the I-PAC shift button works:
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 dont press any other button the
"Start 1" code is sent when you RELEASE the "Start 1" button. So you dont
get any unwanted key codes.
The I-PAC4 has two shift buttons. The
codes on the I-PAC4 are divided into two pages. Each of the two
pages has it's own shift button which only acts on controls in it's own page.