SAMPLE ENCODER KEY ASSIGNMENTS
15 Oct 04 - After much consideration, I
have decided not to revise this page as part of the general update to my encoder section.
(I did update the introduction). I think the original issue has merit, but
adding sections for the new encoders would not be worth the time involved. Here is
what is missing:
MAMI30 - (IMHO, this encoder does not offer
the value (price-wise) of either the I-PAC VE or the KeyWiz) This encoder would be
similar to an X-Arcade PCB with two additional inputs in terms of number of games
supported. Note that the encoder is not programmable and does not support shift
functions.
I-PAC VE - Basically, you have the same
number of inputs as a KeyWiz and the same limitations as the other I-PAC encoders.
Of note is that 4-player 4-button games cannot be supported because of the way the shift
function is implemented. Otherwise, key assignments would be a mixture of what I
recommend for the KeyWiz with the I-PAC/2 recommendations to avoid flashing LED's.
Lupine Systems 64-input Encoder - Despite
the name, this is a 60-input encoder (four inputs are duplicated). Frankly, if you
need a chart to tell you how to combine inputs with a 60-input encoder, you have too many
inputs.
INTRODUCTION
This page has three purposes:
Generally, each encoder will have up to three (or more) sample key assignments - a universal assignment (with Start buttons) which should work for all programs, a MAME specific assignment (without Start buttons), and a maximum assignment (with things like shifted coin inputs).
The goal here is not to specify a key assignment that you HAVE to use, but rather to provide suggestions for key assignments that will work well for the majority of encoder users.
NOTE: I also want to point out that the goal of this page is to point out INPUTS that may be combined to get the maximum utility out of your encoder. For example, 2B5, 3B3, 4Left, can all be assigned to the same button for a 4-player, 2-button mode encoder setup. Key points are that I am not telling you what KEY the encoder should send for 2B5, nor which button on your CP should share these inputs, nor (in most cases) which terminal on the encoder should be used for this button (except in specialized cases or to avoid confusion).
CONSIDERATIONS
Also, I have not included extra Shift inputs, because of the possibility of these being activated accidentally. As always, I still recommend that unused shiftable keys be assigned the same value whether shifted or unshifted, to prevent unexpected results.
I will sometimes specify encoder terminal numbers as these can make a difference on encoder function (flashing LED's on the I-PAC and ButtonBox, for example).
NOTE: I am only specifying input types. I am not going to say P4B1 should be "U" or whatever. And feel free to make any changes to the layouts for your particular preferences.
MECHANICAL ROTARY JOYSTICKS - (Optical rotary joysticks don't require any more inputs than a standard joystick). These are either Happ mechanical rotaries or SNK LS-30 (Ikari original) joysticks using Druin's rotary interface. These require two inputs (CW and CCW) per joystick. Originally I planned to include support for these but it would have gotten too complicated, with all the different choices for connection options. I did account for them on the MK64 encoder which supports these joysticks without a separate interface board, and I make the following general suggestions here:
HYBRID MODE - I will use the I-PAC/2 as an example. The I-PAC/2 has four inputs for Start and/or Coin. Typically I refer to Universal Mode as having both inputs (START1, START2,COIN1,COIN2) and MAME Mode as not using Start Inputs (Coin1, Coin2, Coin3, Coin4) as shown here. However, it is possible to combine these into a hybrid mode with two inputs doing double duty as: (Coin1, Coin2, Start1/Coin3, Start2/Coin4). This gives you the flexibility that your encoder can be used with either games, but it is awkward because if you play a 4-player game normally with this method, you will be inserting coins for Player 3 when you press Start1. For this reason, I have not included it in the examples.
Finally, you might want to compare all the examples. I have tried to be pretty comprehensive, but I might have a shortcut for one encoder that you want to use for your encoder.
QUICK LINKS
Click any of the following links to jump to the appropriate section: Gamepad Hack, AKI Analog Kontrol Interface, Keyboard Hack, Hagstrom KE18, Hagstrom LP24/KE24, MAMI 24, ButtonBox, I-PAC/2, X-Arcade PCB, KeyWiz, Hagstrom KE-USB36, MAMI 48, I-PAC/4 (52-Input), I-PAC/4 (56-Input), MK64, Hagstrom KE-72, KE-72T.
GAMEPAD HACK/AKI Analog Kontrol Interface
Basically, there aren't many options here. It is assumed that you will use multiple gamepad hacks, with one gamepad hack per player. Each pad would then have P1Up, P1Down, P1Left, P1Right, P1 Buttons 1 through 6, Coin, Start, Pause, and Escape. The controls will automatically shift to Joystick 2 controls if a second one is connected.
General
For this example, I stole my DR-104Key matrix from the keyboard hacks page, re-worked it to support 4-player 2-button games and 3-player 3-button games, and included it below. Hopefully this will ease some confusion. A few things to note:
I have stated before that most keyboards use a 16x8 matrix. Some will use less like a 15x9 or 14x10, but these should be avoided. As you can see below, the DR-104Key uses an 18x8 Key menu, but two of the rows only have the Windows Keys so they can't be used and we end up with a 16x8 matrix, as predicted.
UPDATE: I just realized that later versions of MAME recognize the Windows keys, so you could gain an additional two non-blocking keys by using rows 17 and 18. However, I don't recommend this, as older MAME versions and most other programs will not support this. Also, you can't just use the Windows Key in MAME because if you just set the FIRE button to L WIN (for example), MAME will fire a shot and freeze as the Start menu pops up, fire a shot and continue as the Start menu disappears, fire a shot and freeze . . . etc. You can avoid this by installing either WinKey Killer 1.7 (homepage/download) or LogoLess. Here is a comparison of the two programs (either one of which I can recommend):
Digital Research DR-104Key Example Keyboard Matrix
Looking at component side of circuit card, terminals 1-26, 1 is on same side as PC cable connector, moving left to right across the bottom edge of the keyboard encoder circuit card. Enter is normally a reserved yellow key, but it was a logical choice for the P4 Joystick.
Maintenance |
P1 Joystick |
P1 Button |
P2 Joystick |
P2 Button |
P3 Joystick |
P3 Button |
Unusable | ||
P4 Joystick | P4 Button | ||||||||
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
||
1 |
E |
F3 |
D |
F4 |
C |
F2 |
3 |
1 |
|
2 |
W |
Caps Lock |
S |
X |
F1 |
2 |
2 |
||
3 |
Q |
Tab |
A |
Esc |
Z |
Tilde |
1 |
3 |
|
4 |
Break |
R Ctrl |
L Ctrl |
F5 |
4 |
||||
5 |
R |
T |
F |
G |
V |
B |
5 |
4 |
5 |
6 |
U |
Y |
J |
H |
M |
N |
6 |
7 |
6 |
7 |
I |
] |
K |
F6 |
Comma |
= |
8 |
7 |
|
8 |
O |
F7 |
L |
Period |
Win Menu |
F8 |
9 |
8 |
|
9 |
P |
[ |
Semicolon |
Apostrophe |
/ |
- |
0 |
9 |
|
10 |
Scroll Lock |
L Alt |
R Alt |
Print Screen |
10 |
||||
11 |
Backspace |
\ |
F11 |
Enter |
F12 |
F9 |
F10 |
11 |
|
12 |
KP 7 |
KP 4 |
KP 1 |
Space |
Num Lock |
Down |
Delete |
12 |
|
13 |
KP 8 |
KP 5 |
KP 2 |
KP 0 |
KP / |
Right |
Insert |
13 |
|
14 |
KP 9 |
KP 6 |
KP 3 |
KP Period |
KP * |
KP - |
Page Up |
Page Down |
14 |
15 |
KP + |
KP Enter |
Up |
Left |
Home |
End |
15 |
||
16 |
L Shift |
R Shift |
16 |
||||||
17 |
L Win |
17 |
|||||||
18 |
R Win |
18 |
|||||||
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
P1 Up - KP 8 | P2 Up - C | P3 Up - W | P4 Up - Backspace |
P1 Down - KP 2 | P2 Down - D | P3 Down - S | P4 Down - Enter |
P1 Left - KP 3 | P2 Left - F | P3 Left - A | P4 Left - [ |
P1 Right - KP 6 | P2 Right - G | P3 Right - Q | P4 Right - 0 |
P1 B1 - L Ctrl | P2 B1 - KP + | P3 B1 - R Shift | P4 B1 - KP 1 |
P1 B2 - L Alt | P2 B2 - M | P3 B2 - Period | P4 B2 - I |
P1 B3 - Space | P2 B3 - ] | P3 B3 - - | |
P1 B4 - L Shift | P2 B4 - L | ||
P1 B5 - Z | P2 B5 - / | ||
P1 B6 - X | P2 B6 - \ |
Ghosting and Blocking Explanation and Concerns
Okay, let's look at Rows 6 and 14 above. Let's say I press the M key (which is an input) and the J key (which we have not assigned as an input since it is in the same row as M). Now I press the KP_3 key, which is in the same column (column 21) as J. The keyboard should produce a ghost character of KP_*. It will work the other way too, press J, M, and then KP_* and you get a ghost KP_3. And in other rows as well: M, J, and F (row 5) generates a ghost V.
Now, if you are really sharp and up on this, you may be saying "So what? I get a ghost KP_* input that I don't want, but if my emulator doesn't use the KP_* key, no harm, no foul, correct?" You would be right except for two things:
Key Masking - This is difficult to explain, Dave Dribin covers it, but basically, in addition to having unwanted keys show up, you also have undetected key releases, resulting in apparent stuck keys, and
Key Blocking - Most keyboards made since 1989 do not exhibit ghost keys at all. Instead firmware in the microcontroller recognizes the conditions where ghosting could occur and blocks the key from registering. In this case, if we press J, M, and KP_3 we not only don't get a ghost KP_*, we don't even get the real KP_3. In fact, any key in columns 21 and 23 will not register with J and M depressed. This is the actual behavior of the DR-104KEY and is bad for arcade controls, except that we can avoid it by keeping only one input in each row.
There is not much you can do with this encoder in direct mode:
Universal Mode - The setup below will allow you to play 1-Player 6 button games, or 2-player 2-button games with Pause and Escape (2 line entries indicate an input is used for both functions) Pause and Escape could be replaced by P1B3 and P2B3 to support 2-player 3-button games:
1Up | 1Down | 1Right | 1Left | 1B1 | 1B2 | 1B3 2Up |
1B4 2Down |
1B5 2Left |
1B6 2Right |
2B1 | 2B2 | Start 1 | Start 2 | Coin1 | Coin2 | Pause | Escape |
Mame Mode - Since this is for MAME only, we can map Pause and Esc to the P1 Directionals, and eliminate the Start Buttons, so 2-player 4-button games are supported.
1Up | 1Down | 1Right | 1Left | 1B1 | 1B2 | 1B3 | 1B4 | 1B5 2B3 |
1B6 2B4 |
2B1 | 2B2 | 2Up | 2Down | 2Left | 2Right | Coin1 | Coin2 |
These encoders can be operated in a 23x1, 22x2, 21x3 up to a 12x12 matrix. They will exhibit ghosting unless diodes are used. I will cover the 23x1 Direct Mode and 22x2 Matrix mode without diodes. If you don't mind using diodes, the 21x3 or 20x4 matrix modes provide more than enough inputs.
23x1 Universal Mode - This supports the standard Street Fighter Layout. Pause and Escape are not included. A second coin slot is not included, but you could use P2B6 for Coin 2, if any games required this (and weren't 6-button games). I wouldn't hardwire this to the P2B6 input as it will cause problems in games that actually use Player 2 Button 6.
1Up | 1Down | 1Right | 1Left | 1B1 | 1B2 | 1B3 | 1B4 | 1B5 | 1B6 | 2Up | 2Down | 2Left | 2Right | 2B1 | 2B2 | 2B3 | 2B4 | 2B5 | 2B6 | Start1 | Start2 | Coin1 |
23x1 MAME Mode - Actually, there generally is not much to gain from the MAME shortcuts. We can map Pause and Esc to the P1 Directionals, and eliminate the Start Buttons, giving us two more inputs, but all this really allows us to do is add support for 3 player, 2-button games, as follows:
1Up | 1Down | 1Right | 1Left | 1B1 | 1B2 | 1B3 | 1B4 3Up |
1B5 3Down |
1B6 3Right |
2Up | 2Down | 2Left | 2Right | 2B1 | 2B2 | 2B3 | 2B4 3Left |
2B5 3B1 |
2B6 3B2 |
Coin1 | Coin2 | Coin3 |
22x2 Universal Mode - Actually, I didn't come up with this myself, LuSiD from BYOAC recommended this back before the I-PAC was developed. Since the UP and Down inputs can't be simultaneously depressed, there are no ghosting worries. The unused 2nd-row inputs could be used for TAB and other admin functions (with ghosting). The design supports 2-player 6-button games. 3-player games could be supported but are better done in the example below.
1Up | 1Right | 1B1 | 1B2 | 1B3 | 1B4 | 1B5 | 1B6 | 2Up | 2Left | 2B1 | 2B2 | 2B3 | 2B4 | 2B5 | 2B6 | Start1 | Start2 | Coin1 | Coin2 | Pause | Escape |
1Down | 1Left | 2Down | 2Right |
22x2 Aggressive Mode - This design supports 3-player 4-button games, 4-player 3-button games, or 5-player 2-button games. This is not a MAME only shortcut, the setup should work with any emulator. Pause and Escape are discrete inputs, so no ghosting there. If diodes are not used, you will have Start and Coin ghost inputs (example, if P4B3, 5Right, and P3B2 are all depressed, a ghost Coin 3 input will be generated). (NOTE: Ghost inputs have been minimized by allowing Start and Coin buttons to ghost with the same player action buttons. It would have also been preferable to use possible ghosting inputs on higher numbered inputs only (so 6-button games might be affected, but 2-button games would not); however, I ended up using all the inputs ;-).)
1Up | 1Left | 1B1 | 1B2 | 1B3 5B1 |
1B4 3B3 5Up |
1B5 3Up |
1B6 3Left |
2Up | 2Left | 2B1 | 2B2 | 2B3 5B2 |
2B4 4B3 5Left |
2B5 3B4 4Up |
2B6 4Left |
3B1 | 3B2 | 4B1 | 4B2 | Pause | Escape |
1Down | 1Right | Coin1 | Start1 | Start5 | 5Down | 3Down | 3Right | 2Down | 2Right | Coin2 | Start2 | Coin5 | 5Right | 4Down | 4Right | Start3 | Coin3 | Start4 | Coin4 |
Universal Mode - This supports the standard Street Fighter Layout. Pause and Escape are not included.
1Up | 1Down | 1Right | 1Left | 1B1 | 1B2 | 1B3 | 1B4 | 1B5 | 1B6 | 2Up | 2Down | 2Left | 2Right | 2B1 | 2B2 | 2B3 | 2B4 | 2B5 | 2B6 | Start1 | Start2 | Coin1 | Coin2 |
MAME Mode - By mapping Pause and Esc to the P1 Directionals, and eliminating the Start Buttons, we add support for 3 player, 3-button games, as follows:
1Up | 1Down | 1Right | 1Left | 1B1 | 1B2 | 1B3 | 1B4 3Up |
1B5 3Down |
1B6 3Right |
2Up | 2Down | 2Left | 2Right | 2B1 | 2B2 | 2B3 | 2B4 3Left |
2B5 3B2 |
2B6 3B3 |
3B1 | Coin1 | Coin2 | Coin3 |
The direct mode ButtonBox doesn't gain us anything over the MAMI 24, except that we can add Pause and Escape buttons.
Universal Mode - This supports the standard Street Fighter Layout. To minimize unwanted LED flashing, I recommend setting the Start1 button to Input B25 (NumLock LED), the Start2 button to Input B26 (Caps Lock LED), and leaving Input B27 Open (Scroll Lock LED).
1Up | 1Down | 1Right | 1Left | 1B1 | 1B2 | 1B3 | 1B4 | 1B5 | 1B6 | 2Up | 2Down | 2Left | 2Right | 2B1 | 2B2 | 2B3 | 2B4 | 2B5 | 2B6 | Start1 | Start2 | Coin1 | Coin2 | Pause | Escape | Open |
MAME Mode - By eliminating the Start Buttons, we add support for 3-player, 3-button games, as follows: (Again, to minimize unwanted LED flashing, I recommend setting the the Start1 button to Input B25 (NumLock LED), the Start2 button to Input B26 (Caps Lock LED), and leaving Input B27 Open (Scroll Lock LED).
1Up | 1Down | 1Right | 1Left | 1B1 | 1B2 | 1B3 | 1B4 3Up |
1B5 3Down |
1B6 3Right |
2Up | 2Down | 2Left | 2Right | 2B1 | 2B2 | 2B3 | 2B4 3Left |
2B5 3B2 |
2B6 3B3 |
3B1 | Coin1 | Coin2 | Coin3 | Pause | Escape | Open |
I-PAC/2, J-PAC, Mini-PAC, X-ARCADE PCB
Since these share the same number of inputs, they are connected in virtually the same way. Of course, the X-Arcade PCB does not have these terminal numbers and does not need to worry about flashing LED's. Also the I-PAC/2 can use Shift functions for Pause and Escape, which the X-Arcade cannot. As always, I recommend that non-shifted inputs be programmed to send the same value when unshifted and shifted to avoid unexpected results in the case of an accidental shifted button press.
Universal Mode - This is the standard Street Fighter set-up with Pause and Escape added. It is almost too simplistic to show, except that I wanted to show how to place the inputs to avoid flashing the LED's except on Escape.
Terminal | Input | Terminal | Input | Terminal | Input | Terminal | Input |
Start1 | Start1 | 1 Right | 1Right | 1 BT7 (NumLock) | Open | 2 BT2 | 2B2 |
Start2 | Start2 | 1 BT1 | 1B1 | 1 BT8 (CapsLock) | Open | 2 BT3 | 2B3 |
Coin1 | Coin1 | 1 BT2 | 1B2 | 2 Up | 2Up | 2 BT4 | 2B4 |
Coin2 | Coin2 | 1 BT3 | 1B3 | 2 Down | 2Down | 2 BT5 | 2B5 |
1 Up | 1Up | 1 BT4 | 1B4 | 2 Left | 2Left | 2 BT6 | 2B6 |
1 Down | 1Down | 1 BT5 | 1B5 | 2 Right | 2Right | 2 BT7 (ScrLock) | Escape |
1 Left | 1Left | 1 BT6 | 1B6 | 2 BT1 | 2B1 | 2 BT8 | Pause |
MAME Mode - This mode supports 3-Player 4-button games and 4-player 2-button games. Start Buttons, Pause and Escape are not available, but for the I-PAC/2, they can be accessed through its Shift Function. After much thought, I came up with what I consider a simple and elegant solution for the flashing LED's problem. The way the LED's worked on an actual arcade game was that they would flash above (or inside, Atari Volcano buttons) the appropriate START button when enough credits had been entered to start a game. Most people mount the LED's above the P1 and P2 Start buttons. So by mapping the LED drivers to these buttons, for example, the NUMLOCK LED will flash when P1 Start is depressed, but for a game which uses the LED's it will already be flashing anyway. The way I set this up, the SCRLOCK LED will flash when Coin 2 is pressed, but you may not be using a Coin 2 slot or a SCRLOCK LED, and in any case, this is about the least obtrusive location.
UPDATE: I remembered later that this setup does not have Start Inputs, but mapping the LED drivers to the Coin inputs is almost as good.
Terminal | Input | Terminal | Input | Terminal | Input | Terminal | Input |
Start1 | 3Up | 1 Right | 1Right | 1 BT7 (NumLock) | Coin1 | 2 BT2 | 2B2 |
Start2 | 3Down | 1 BT1 | 1B1 | 1 BT8 (CapsLock) | Coin2 | 2 BT3 | 2B3, 4Up |
Coin1 | Coin3 | 1 BT2 | 1B2 | 2 Up | 2Up | 2 BT4 | 2B4, 4Down |
Coin2 | 3Right | 1 BT3 | 1B3, 4B1 | 2 Down | 2Down | 2 BT5 | 2B5, 3B3, 4Left |
1 Up | 1Up | 1 BT4 | 1B4, 4B2 | 2 Left | 2Left | 2 BT6 | 2B6, 3B4, 4Right |
1 Down | 1Down | 1 BT5 | 1B5, 3B1 | 2 Right | 2Right | 2 BT7 (ScrLock) | Coin4 |
1 Left | 1Left | 1 BT6 | 1B6, 3B2 | 2 BT1 | 2B1 | 2 BT8 | 3Left |
KEYWIZ (KeyWiz ECO, KeyWiz STD, KeyWiz MAX, KeyWiz MAX 1.5)
The KeyWiz is handled slightly differently because of it's unique shift key function. By using shifted keys in Stealth mode, it is possible to have a single button activate a shifted input rather than a standard input. Because of this, several shift keys can be utilized without having to remember a bunch of different key combinations. (See this page for a discussion of shift keys and the KeyWiz Stealth Mode). And the shifted keys are recognized by any program. So instead of eliminating Start keys to make room for more inputs in a configuration that only works in MAME, the KeyWiz allows the Start Keys to be assigned as shifted inputs in any program, with a few conflicts, as described below.
Special Considerations - The KeyWiz firmware prevents P1 Up and P1 Down from registering at the same time. Also, none of the directionals can be programmed to send a shifted input. The P1 Left and P1 Right inputs by default switch between the standard and custom codesets, but that can be disabled (if desired) as shown here. However, because of all of the above reasons, I highly recommend that the Joystick Directionals not be mapped to other inputs. Also, as always, I recommend that non-shifted inputs be programmed to send the same value when unshifted and shifted to avoid unexpected results in the case of an accidental shifted button press.
4-Player 2-Button Mode - This mode supports 4-player 2-button games and 3-player 4-button games. Basically, this is the same configuration as the I-PAC/2 in MAME mode above, except that it includes all Coin and Start buttons, as well as shifted Pause and Escape inputs, so it works with all programs. Pause and Escape are stealth-shifted Start 4 and Coin 4, but since nothing else is shifted, the only possible problem is in a 4-player game, if someone pauses the game at the same time the P4Start button is pressed, the game ends. HINT: If you kick in a bunch of Player 4 credits before starting a 4-player game, there should never be a reason to add another Coin 4 input, and little chance of accidentally ending the game:-).Terminal | Input | Shifted Input | Terminal | Input | Shifted Input | Terminal | Input | Shifted Input |
U (P1) | 1Up | N/A | 4 | 1B4, 4B2 | G | 3Right | ||
D (P1) | 1Down | N/A | 5 | 1B5, 3B1 | H | 3Left | ||
L (P1) | 1Left | Default Codeset | 6 | 1B6, 3B2 | I | Start1 | ||
R (P1) | 1Right | Custom Codeset | 7 | 3Up | J | Start2 | ||
U (P2) | 2Up | N/A | 8 | 3Down | K | Start3 | ||
D (P2) | 2Down | N/A | A | 2B1 | L | Coin1 | ||
L (P2) | 2Left | N/A | B | 2B2 | M | Coin2 | ||
R (P2) | 2Right | N/A | C | 2B3, 4Up | N | Start4 | Pause | |
1 | 1B1 | D | 2B4, 4Down | O | Coin3 | |||
2 | 1B2 | E | 2B5, 3B3, 4Left | P | Coin4 | Escape | ||
3 | 1B3, 4B1 | F | 2B6, 3B4, 4Right |
4-Player 3-Button Mode - This adds support for 4-player 3-button games, while still supporting 3-Player 4-button games. This is probably the best trade-off for the KeyWiz as it supports 99% of MAME games. This setup has Coin 1, Coin 2 and Pause and Escape as primary Inputs, with stealth-shifted inputs for Coin 3, Coin 4 and Start 1-4. The only real conflicts are you could end up with extra credits accidentally. For example, if any player presses a start button or Player 3 or 4 press a coin button, and Player3 Button 3 is depressed, a Player 3 credit will occur instead of the desired action button, etc. This should happen infrequently, and therefore is not a major concern.
Terminal | Input | Shifted Input | Terminal | Input | Shifted Input | Terminal | Input | Shifted Input |
U (P1) | 1Up | N/A | 4 | 1B4, 4B2 | Start4 | G | 3Right | |
D (P1) | 1Down | N/A | 5 | 1B5, 4Up | H | 3Left | ||
L (P1) | 1Left | Default Codeset | 6 | 1B6, 4Down | I | 3B1 | ||
R (P1) | 1Right | Custom Codeset | 7 | 3Up | J | 3B2 | Start 3 | |
U (P2) | 2Up | N/A | 8 | 3Down | K | 3B3 | Coin 3 | |
D (P2) | 2Down | N/A | A | 2B1 | L | Coin1 | ||
L (P2) | 2Left | N/A | B | 2B2 | M | Coin2 | ||
R (P2) | 2Right | N/A | C | 2B3 | N | 3B4, 4B1 | ||
1 | 1B1 | D | 2B4, 4B3 | Coin4 | O | Pause | Start1 | |
2 | 1B2 | E | 2B5, 4Left | P | Escape | Start 2 | ||
3 | 1B3 | F | 2B6, 4Right |
5-Player 2-Button Mode - Here we add support for 5-Player 2-button games in addition to those supported above. We still keep Pause and Escape as primary Inputs, with stealth-shifted inputs for Coin 1-5 and Start 1-5. Again, the only real conflicts are you could end up with extra credits accidentally, as mentioned above.
Terminal | Input | Shifted Input | Terminal | Input | Shifted Input | Terminal | Input | Shifted Input |
U (P1) | 1Up | N/A | 4 | 1B4, 4B2 | Start4 | G | 3Right | |
D (P1) | 1Down | N/A | 5 | 1B5, 4Up | H | 3Left | ||
L (P1) | 1Left | Default Codeset | 6 | 1B6, 4Down | Start1 | I | 3B1 | |
R (P1) | 1Right | Custom Codeset | 7 | 3Up | J | 3B2 | Start 3 | |
U (P2) | 2Up | N/A | 8 | 3Down | K | 3B3, 5Right | Coin 3 | |
D (P2) | 2Down | N/A | A | 2B1 | L | 5B1 | Start5 | |
L (P2) | 2Left | N/A | B | 2B2 | M | 5B2 | Coin5 | |
R (P2) | 2Right | N/A | C | 2B3, 5Down | N | 3B4, 4B1 | ||
1 | 1B1 | D | 2B4, 4B3, 5Left | Coin4 | O | Pause | Coin1 | |
2 | 1B2 | E | 2B5, 4Left | P | Escape | Coin2 | ||
3 | 1B3, 5Up | F | 2B6, 4Right | Start2 |
4-Player 4-Button Mode - This is the most aggressive KeyWiz set-up and supports 4-Player 4-Button games, as well as the other setups shown above. This requires all Coin and Start Inputs and Pause and Escape to be stealth-shifted. This is bad as Pause and Escape could be accidentally activated, ending a game. However, Pause and Escape are shifted P3B4 and P4B4 inputs, so only a problem for 4-player 4-button games (or accidental presses). A workaround is to create a custom codeset identical to the one below, but without Pause and Escape as shifted inputs for Players 3 and 4 Buttons 4, and load this from a batch file before starting a 4-Player 4-Button games. Then (in MAME, at least), you could define an unlikely key combination to use to Exit or Pause the game.
Terminal | Input | Shifted Input | Terminal | Input | Shifted Input | Terminal | Input | Shifted Input |
U (P1) | 1Up | N/A | 4 | 1B4 | Coin1 | G | 3Right | |
D (P1) | 1Down | N/A | 5 | 1B5, 4Up | H | 3Left | ||
L (P1) | 1Left | Default Codeset | 6 | 1B6, 4Down | Start1 | I | 3B1 | |
R (P1) | 1Right | Custom Codeset | 7 | 3Up | J | 3B2 | Start3 | |
U (P2) | 2Up | N/A | 8 | 3Down | K | 3B3, 5Right | Coin3 | |
D (P2) | 2Down | N/A | A | 2B1 | L | 5B1, 4B2 | Start5 | |
L (P2) | 2Left | N/A | B | 2B2 | M | 5B2, 4B3 | Coin5 | |
R (P2) | 2Right | N/A | C | 2B3, 5Down | N | 4B1 | Coin4 | |
1 | 1B1 | D | 2B4, 5Left | Coin2 | O | 3B4 | Pause | |
2 | 1B2 | E | 2B5, 4Left | Start4 | P | 4B4 | Escape | |
3 | 1B3, 5Up | F | 2B6, 4Right | Start2 |
The Hagstrom KE-USB36 charts will bear much similarity to the KeyWiz charts above. Despite having four additional inputs, the lack of shifted inputs makes this encoder almost (but not quite) as useful as the KeyWiz.
4-Player 2-Button Universal Mode - This mode supports 4-player, 2-button games and 3-player 4-button games with all coin and Start inputs, plus Pause and Escape.
Terminal | Input | Terminal | Input | Terminal | Input | Terminal | Input |
1 | 1Up | 10 | 1B6, 4Down | 19 | 2B5, 3B3, 4Left | 28 | Escape |
2 | 1Down | 11 | 2Up | 20 | 2B6, 3B4, 4Right | 29 | Start1 |
3 | 1Left | 12 | 2Down | 21 | 3Up | 30 | Start2 |
4 | 1Right | 13 | 2Left | 22 | 3Down | 30 | Start3 |
5 | 1B1 | 14 | 2Right | 23 | 3Left | 32 | Start4 |
6 | 1B2 | 15 | 2B1 | 24 | 3Right | 33 | Coin1 |
7 | 1B3 | 16 | 2B2 | 25 | 3B1 | 34 | Coin2 |
8 | 1B4, 4B1 | 17 | 2B3 | 26 | 3B2 | 35 | Coin3 |
9 | 1B5, 4Up | 18 | 2B4, 4B2 | 27 | Pause | 36 | Coin4 |
4-Player 3-Button, MAME Mode - This mode supports 4-player, 3-button games and 3-player 4-button games. There are two different configurations depending on two of the inputs. The blue inputs allow all coin and start inputs, but no Pause or Escape inputs. For MAME only, it might be possible to map these inputs to the Joystick directionals, as shown here. The red inputs allow Start Inputs for Player 1 and 2, all coin inputs, and Pause and Escape inputs. This is useable for all emulators for 2-player games. For 3 and 4-player games, in MAME, it is possible to use this configuration and eliminate the Start Inputs as shown here.
Terminal | Input | Terminal | Input | Terminal | Input | Terminal | Input |
1 | 1Up | 10 | 1B6, 4Down | 19 | 2B5, 4Left | 28 | 3B4, 4B1 |
2 | 1Down | 11 | 2Up | 20 | 2B6, 4Right | 29 | Start1 |
3 | 1Left | 12 | 2Down | 21 | 3Up | 30 | Start2 |
4 | 1Right | 13 | 2Left | 22 | 3Down | 30 | Start3 or Pause |
5 | 1B1 | 14 | 2Right | 23 | 3Left | 32 | Start4 or Escape |
6 | 1B2 | 15 | 2B1 | 24 | 3Right | 33 | Coin1 |
7 | 1B3 | 16 | 2B2 | 25 | 3B1 | 34 | Coin2 |
8 | 1B4, 4B2 | 17 | 2B3 | 26 | 3B2 | 35 | Coin3 |
9 | 1B5, 4Up | 18 | 2B4, 4B3 | 27 | 3B3 | 36 | Coin4 |
5-Player 2-Button, MAME Mode - This mode adds support for 5-player, 2-button games. Escape is available, but Pause is not and Start buttons are not, so you must use the workarounds described here. (It may be possible to wire a button to the directionals for Pause as shown here.)
Terminal | Input | Terminal | Input | Terminal | Input | Terminal | Input |
1 | 1Up | 10 | 1B6, 4Down | 19 | 2B5, 4Left | 28 | 3B4, 4B1 |
2 | 1Down | 11 | 2Up | 20 | 2B6, 4Right | 29 | 5B1 |
3 | 1Left | 12 | 2Down | 21 | 3Up | 30 | 5B2 |
4 | 1Right | 13 | 2Left | 22 | 3Down | 30 | Coin5 |
5 | 1B1 | 14 | 2Right | 23 | 3Left | 32 | Escape |
6 | 1B2 | 15 | 2B1 | 24 | 3Right | 33 | Coin1 |
7 | 1B3, 5Up | 16 | 2B2 | 25 | 3B1 | 34 | Coin2 |
8 | 1B4, 4B2 | 17 | 2B3, 5Down | 26 | 3B2 | 35 | Coin3 |
9 | 1B5, 4Up | 18 | 2B4, 4B3, 5Left | 27 | 3B3, 5Right | 36 | Coin4 |
4-Player 4-Button, MAME Mode - This mode adds support for 4-player, 4-button games. Start buttons are not available, so you must use the workarounds described here. Pause and Escape are not available, but it may be possible to wire buttons to the directionals for these inputs as shown here.
Terminal | Input | Terminal | Input | Terminal | Input | Terminal | Input |
1 | 1Up | 10 | 1B6, 4Down | 19 | 2B5, 4Left | 28 | 3B4 |
2 | 1Down | 11 | 2Up | 20 | 2B6, 4Right | 29 | 5B1 |
3 | 1Left | 12 | 2Down | 21 | 3Up | 30 | 5B2 |
4 | 1Right | 13 | 2Left | 22 | 3Down | 30 | 4B4, Coin5 |
5 | 1B1 | 14 | 2Right | 23 | 3Left | 32 | 4B1 |
6 | 1B2 | 15 | 2B1 | 24 | 3Right | 33 | Coin1 |
7 | 1B3, 5Up | 16 | 2B2 | 25 | 3B1 | 34 | Coin2 |
8 | 1B4 | 17 | 2B3, 5Down | 26 | 3B2 | 35 | Coin3 |
9 | 1B5, 4Up | 18 | 2B4, 5Left | 27 | 3B3, 5Right | 36 | Coin4 |
5-Player 3-Button Universal Mode - The MAMI 48 will support up to 4-Player 4-Button games with no shared inputs and 5-Player 3-Button games with Pause, Escape, and all Start and Coin inputs.
Terminal | Input | Terminal | Input | Terminal | Input | Terminal | Input |
S1 | 1Right | S13 | 2Right | S25 | 3Right | S37 | 4B1 |
S2 | 1Left | S14 | 2Left | S26 | 3Left | S38 | 4B2 |
S3 | 1Up | S15 | 2Up | S27 | 3Up | S39 | 4B3 |
S4 | 1Down | S16 | 2Down | S28 | 3Down | S40 | 4B4 |
S5 | 1B1 | S17 | 2B1 | S29 | 3B1 | S41 | Coin1 |
S6 | 1B2 | S18 | 2B2 | S30 | 3B2 | S42 | Coin2 |
S7 | 1B3 | S19 | 2B3 | S31 | 3B3 | S43 | Coin3 |
S8 | 1B4, 5B1 | S20 | 2B4, 5B2 | S32 | 3B4, 5B3 | S44 | Coin4 |
S9 | 1B5, 5Up | S21 | 2B5, 5Left | S33 | 4Right | S45 | Start1 |
S10 | 1B6, 5Down | S22 | 2B6, 5Right | S34 | 4Left | S46 | Start2 |
S11 | Pause | S23 | Coin 5 | S35 | 4Up | S47 | Start3 |
S12 | Escape | S24 | Start 5 | S36 | 4Down | S48 | Start4 |
6-Player 2-Button MAME Mode - Adding support for 6-player 2-button games presents two options similar to what we found with the KE-USB36. The blue inputs allow all coin inputs and Start Inputs but no Pause or Escape inputs. For MAME, it might be possible to map these inputs to the Joystick directionals, as shown here. The red inputs allow Start Inputs for Players 1 through 4, all coin inputs, and Pause and Escape inputs. This is useable for all emulators for 4-player games. For 5 and 6-player games, in MAME, it is possible to use this configuration and eliminate the Start Inputs as shown here.
Terminal | Input | Terminal | Input | Terminal | Input | Terminal | Input |
S1 | 1Right | S13 | 2Right | S25 | 3Right | S37 | 4B1 |
S2 | 1Left | S14 | 2Left | S26 | 3Left | S38 | 4B2 |
S3 | 1Up | S15 | 2Up | S27 | 3Up | S39 | 4B3, 6Right |
S4 | 1Down | S16 | 2Down | S28 | 3Down | S40 | 4B4, 6B2 |
S5 | 1B1 | S17 | 2B1 | S29 | 3B1 | S41 | Coin1 |
S6 | 1B2 | S18 | 2B2 | S30 | 3B2 | S42 | Coin2 |
S7 | 1B3, 6Up | S19 | 2B3, 6Down | S31 | 3B3, 6Left | S43 | Coin3 |
S8 | 1B4, 5B1 | S20 | 2B4, 5B2 | S32 | 3B4, 5B3, 6B1 | S44 | Coin4 |
S9 | 1B5, 5Up | S21 | 2B5, 5Left | S33 | 4Right | S45 | Start1 |
S10 | 1B6, 5Down | S22 | 2B6, 5Right | S34 | 4Left | S46 | Start2 |
S11 | Pause or Start5 | S23 | Coin5 | S35 | 4Up | S47 | Start3 |
S12 | Escape or Start6 | S24 | Coin6 | S36 | 4Down | S48 | Start4 |
6-Player 3-Button MAME Mode - Adding support for 6-player 3-button games the MAMI 48 supports all coin inputs, but no Start buttons, nor Pause and Escape. For MAME only, it might be possible to map the Pause and Escape inputs to the Joystick directionals, as shown here. It will also be necessary to eliminate the Start Inputs, as shown here.
Terminal | Input | Terminal | Input | Terminal | Input | Terminal | Input |
S1 | 1Right | S13 | 2Right | S25 | 3Right | S37 | 4B1 |
S2 | 1Left | S14 | 2Left | S26 | 3Left | S38 | 4B2 |
S3 | 1Up | S15 | 2Up | S27 | 3Up | S39 | 4B3 |
S4 | 1Down | S16 | 2Down | S28 | 3Down | S40 | 4B4, 6B3 |
S5 | 1B1 | S17 | 2B1 | S29 | 3B1 | S41 | Coin1 |
S6 | 1B2 | S18 | 2B2 | S30 | 3B2 | S42 | Coin2 |
S7 | 1B3 | S19 | 2B3 | S31 | 3B3 | S43 | Coin3 |
S8 | 1B4, 5B1 | S20 | 2B4, 5B2 | S32 | 3B4, 5B3 | S44 | Coin4 |
S9 | 1B5, 6Up | S21 | 2B5, 6Left | S33 | 4Right | S45 | Coin5 |
S10 | 1B6, 6Down | S22 | 2B6, 6Right | S34 | 4Left | S46 | Coin6 |
S11 | 5Up | S23 | 5Left | S35 | 4Up | S47 | 6B1 |
S12 | 5Down | S24 | 5Right | S36 | 4Down | S48 | 6B2 |
I decided to do some 52-Input charts for the I-PAC in case users wanted to incorporate Druin's rotary interface with this encoder. This leaves four inputs available for the interface. These charts would also work for the MK64 with mechanical rotary joysticks connected. As explained in the I-PAC/2 Section, I have chosen the inputs to minimize flashing of the LED's.
5-Player 3-Button Universal Mode - This mode supports 5-Player 2-button and 4-Player 4-button games with no shared inputs other than P5 Coin and Start. All Coin and Start Buttons are supported, as are Pause and Escape.
Terminal | Input | Terminal | Input | Terminal | Input | Terminal | Input |
Start1 | 5Up | 1 BT7 (NumLock) | Start1 | Start3 | Start3 | 3 BT7 | 5B1 |
Start2 | 5Down | 1 BT8 (CapsLock) | Start2 | Start4 | Start4 | 3 BT8 | 5B2 |
Coin1 | Coin1 | 2 Up | 2Up | Coin3 | Coin3 | 4 Up | 4Up |
Coin2 | Coin2 | 2 Down | 2Down | Coin4 | Coin4 | 4 Down | 4Down |
1 Up | 1Up | 2 Left | 2Left | 3 Up | 3Up | 4 Left | 4Left |
1 Down | 1Down | 2 Right | 2Right | 3 Down | 3Down | 4 Right | 4Right |
1 Left | 1Left | 2 BT1 | 2B1 | 3 Left | 3Left | 4 BT1 | 4B1 |
1 Right | 1Right | 2 BT2 | 2B2 | 3 Right | 3Right | 4 BT2 | 4B2 |
1 BT1 | 1B1 | 2 BT3 | 2B3 | 3 BT1 | 3B1 | 4 BT3 | 4B3 |
1 BT2 | 1B2 | 2 BT4 | 2B4 | 3 BT2 | 3B2 | 4 BT4 | 4B4, Coin5 |
1 BT3 | 1B3 | 2 BT5 | 2B5 | 3 BT3 | 3B3 | 4 BT5 | Open |
1 BT4 | 1B4 | 2 BT6 | 2B6, Start5 | 3 BT4 | 3B4, 5B3 | 4 BT6 | Open |
1 BT5 | 1B5 | 2 BT7 (ScrLock) | Pause | 3 BT5 | 5Left | 4 BT7 | Open |
1 BT6 | 1B6 | 2BT8 | Escape | 3 BT6 | 5Right | 4 BT8 | Open |
6-Player 3-Button MAME Mode - Adding support for 6-player 3-button games presents two options similar to what we found with the KE-USB36. The blue inputs allow all coin inputs and Start Inputs for Players 1 through 4, but no Pause or Escape inputs. The I-PAC's shift function can be used for Pause and Escape, or for MAME only, it might be possible to map these inputs to the Joystick directionals, as shown here. The red inputs allow Start Inputs for Players 1 and 2, all coin inputs, and Pause and Escape inputs. This is useable for all emulators for 2-player games. For 3 though 6-player games, in MAME, it is possible to use this configuration and eliminate the Start Inputs as shown here.
Terminal | Input | Terminal | Input | Terminal | Input | Terminal | Input |
Start1 | 5Up | 1 BT7 (NumLock) | Start1 | Start3 | Start3 or Pause | 3 BT7 | 5B1 |
Start2 | 5Down | 1 BT8 (CapsLock) | Start2 | Start4 | Start4 or Escape | 3 BT8 | 5B2 |
Coin1 | Coin1 | 2 Up | 2Up | Coin3 | Coin3 | 4 Up | 4Up |
Coin2 | Coin2 | 2 Down | 2Down | Coin4 | Coin4 | 4 Down | 4Down |
1 Up | 1Up | 2 Left | 2Left | 3 Up | 3Up | 4 Left | 4Left |
1 Down | 1Down | 2 Right | 2Right | 3 Down | 3Down | 4 Right | 4Right |
1 Left | 1Left | 2 BT1 | 2B1 | 3 Left | 3Left | 4 BT1 | 4B1 |
1 Right | 1Right | 2 BT2 | 2B2 | 3 Right | 3Right | 4 BT2 | 4B2 |
1 BT1 | 1B1 | 2 BT3 | 2B3 | 3 BT1 | 3B1 | 4 BT3 | 4B3 |
1 BT2 | 1B2 | 2 BT4 | 2B4, 6B1 | 3 BT2 | 3B2 | 4 BT4 | 4B4, 6B3 |
1 BT3 | 1B3 | 2 BT5 | 2B5, 6Left | 3 BT3 | 3B3 | 4 BT5 | Open |
1 BT4 | 1B4, 5B3 | 2 BT6 | 2B6, 6Right | 3 BT4 | 3B4, 6B2 | 4 BT6 | Open |
1 BT5 | 1B5, 6Up | 2 BT7 (ScrLock) | Coin6 | 3 BT5 | 5Left | 4 BT7 | Open |
1 BT6 | 1B6, 6Down | 2BT8 | Coin5 | 3 BT6 | 5Right | 4 BT8 | Open |
6-Player 3-Button Universal Mode - This supports up to 5-Player 3-button games with no shared inputs and 6-Player 3-button games with all Coin, Start, Pause, and Escape Inputs. As explained in the I-PAC/2 Section, I have chosen the inputs to minimize flashing of the LED's.
Terminal | Input | Terminal | Input | Terminal | Input | Terminal | Input |
Start1 | 5Up | 1 BT7 (NumLock) | Start1 | Start3 | Start3 | 3 BT7 | 5B1 |
Start2 | 5Down | 1 BT8 (CapsLock) | Start2 | Start4 | Start4 | 3 BT8 | 5B2 |
Coin1 | Coin1 | 2 Up | 2Up | Coin3 | Coin3 | 4 Up | 4Up |
Coin2 | Coin2 | 2 Down | 2Down | Coin4 | Coin4 | 4 Down | 4Down |
1 Up | 1Up | 2 Left | 2Left | 3 Up | 3Up | 4 Left | 4Left |
1 Down | 1Down | 2 Right | 2Right | 3 Down | 3Down | 4 Right | 4Right |
1 Left | 1Left | 2 BT1 | 2B1 | 3 Left | 3Left | 4 BT1 | 4B1 |
1 Right | 1Right | 2 BT2 | 2B2 | 3 Right | 3Right | 4 BT2 | 4B2 |
1 BT1 | 1B1 | 2 BT3 | 2B3 | 3 BT1 | 3B1 | 4 BT3 | 4B3 |
1 BT2 | 1B2 | 2 BT4 | 2B4, 6B2 | 3 BT2 | 3B2 | 4 BT4 | 4B4, Start6 |
1 BT3 | 1B3 | 2 BT5 | 2B5, 6Left | 3 BT3 | 3B3 | 4 BT5 | 5B3 |
1 BT4 | 1B4, 6B1 | 2 BT6 | 2B6, 6Right | 3 BT4 | 3B4, 6B3 | 4 BT6 | Start5 |
1 BT5 | 1B5, 6Up | 2 BT7 (ScrLock) | Pause | 3 BT5 | 5Left | 4 BT7 | Coin5 |
1 BT6 | 1B6, 6Down | 2BT8 | Escape | 3 BT6 | 5Right | 4 BT8 | Coin6 |
6-Player 3-Button Universal Mode - This supports 6-Player 3-button games no shared inputs and with all Coin, Start, Pause, and Escape Inputs. The input order is arbitrary, except that Input 00 serves as the Shift Key and only Inputs 01 to 07 can be shifted. NOTE: For a key mapping to use with the MK64 and mechanical rotary joysticks (using the built-in support), see the I-PAC/2 (52-input) section.
Terminal | Input | Terminal | Input | Terminal | Input | Terminal | Input |
Input 00 | Start1 | Input 16 | 2B1 | Input 32 | 4Left | Input 48 | 6Right |
Input 01 | Start2 | Input 17 | 2B2 | Input 33 | 4Right | Input 49 | 6B1 |
Input 02 | 1B1 | Input 18 | 2B3 | Input 34 | 4B1 | Input 50 | 6B2 |
Input 03 | 1B2 | Input 19 | 2B4 | Input 35 | 4B2 | Input 51 | 6B3 |
Input 04 | 1B3 | Input 20 | 2B5 | Input 36 | 4B3 | Input 52 | Start3 |
Input 05 | 1B4 | Input 21 | 2B6 | Input 37 | 4B4 | Input 53 | Start4 |
Input 06 | 1B5 | Input 22 | 3Up | Input 38 | 5Up | Input 54 | Start5 |
Input 07 | 1B6 | Input 23 | 3Down | Input 39 | 5Down | Input 55 | Start6 |
Input 08 | 1Up | Input 24 | 3Left | Input 40 | 5Left | Input 56 | Coin1 |
Input 09 | 1Down | Input 25 | 3Right | Input 41 | 5Right | Input 57 | Coin2 |
Input 10 | 1Left | Input 26 | 3B1 | Input 42 | 5B1 | Input 58 | Coin3 |
Input 11 | 1Right | Input 27 | 3B2 | Input 43 | 5B2 | Input 59 | Coin4 |
Input 12 | 2Up | Input 28 | 3B3 | Input 44 | 5B3 | Input 60 | Coin5 |
Input 13 | 2Down | Input 29 | 3B4 | Input 45 | 6Up | Input 61 | Coin6 |
Input 14 | 2Left | Input 30 | 4Up | Input 46 | 6Down | Input 62 | Pause |
Input 15 | 2Right | Input 31 | 4Down | Input 47 | 6Left | Input 63 | Escape |
For these and any other encoders with more inputs, see the MK64 chart, and you will have leftover inputs for TAB, F11, etc.