Arcade Interfaces

ARCADE INTERFACES

NEWS: This page was developed at 1152x864 resolution, looks best at something higher, and will be hard to read at less than 1024x768 :-(((  Also, the new Frames Page makes it easier to find info, but disables printing the page. Use this link to drop out of the frames [for low-res or printing (reduce print margins if required), printing is possible at 640x480], and this link to return.

28 Oct 05 - Minor update to the USB_Vs._PS2_Mode section to highlight the differences in hot-swapping PS/2 devices under Win98 and WinXP.

1 Aug 05 - Added a Frames Page for easier Navigation. The page also uses an external CSS so it looks a little more professional. Thanks to KillerClown for inspiration for the Navigation Pane design. Revised to add Daveb's SJC, Druin's Rotary Interface, the GroovyGameGear GP-Wiz, GP-Wiz49, KeyWiz Eco2 (replaces the Eco), HotRod Encoder, LPT Switch, KeyDog, Microsoft Dual Strike Gamepad Hack, Ultimarc A-PAC, TOKN KB16, and TOKN KB32 encoders. Revised page to include Optical and Rotary Interfaces. Corrected information on the I-PAC VE LED's and default codeset. Added new sections SHORT SUMMARY, EMERGING TRENDS, ANTI-BIAS STATEMENT and HEAD-TO-HEAD. Added new topics on Gamepad encoders vs. Keyboard encoders, Gamepad Encoder Useful Software, Analog Controllers, 49-Way Joystick Controllers, additional comments to In Perspective, SDRAM sections, Additional I-PAC LED considerations, Terminal block connections vs. Pin Headers, USB Device ID's, and a cool (I think) epilogue. Added trademark to first reference to MAME. To many other changes to list, read the entire page and get back to me in a couple of weeks ;-)).

15 Oct 04 - Wow, less than a year has gone by and the scene has changed significantly. This revision to the page adds 3Tronics MAMI 30 (and updates all 3Tronics products to show terminal strips only), Daveb's AKI, GroovyGameGear's KeyWiz Max 1.5, Lupine System's 64-Key Encoder, 3DTronics MAMI30, Ultimarc's J-PAC, Mini-PAC, and I-PAC VE, X-Arcade's encoder (available again) and shows the KeyWiz Std and Max and the MK64 as discontinued. I also fairly extensively cover the new WINIPAC IPD software.

?? Aug?? 03 - Initial Release.

DEFINITION

New visitors may not understand what this page is about. Many of us spent our quarters and even more of our mis-spent youth in arcades and bowling alleys playing classic arcade games like Pac-Man, Frogger, Asteroids, BattleZone, Centipede, Defender, Tempest, TRON, and others. Now many of these games can be played on home PC's thanks to the magic of emulation (MAME™). The emulation programs typically use the keyboard, gamepad, PC Joystick, or mouse to simulate the controls used by the game. But this can't compare to the actual feeling of the original joysticks, buttons, and trackballs. So an interface is required to connect the arcade controls to the PC. The initial versions of this page covered keyboard encoders. A keyboard encoder is basically a circuit board which can accept a switch (joystick or button) and generates a keypress on the PC when the switch is pressed. In simplest terms, they are the physical equivalent of a keyboard hack, but many of them can do a lot more than just that. Since the initial release, the page has been expanded to also include gamepad encoders, analog, optical, 49-way joystick, and mechanical rotary joystick interfaces.

INTRODUCTION

This page sprang out of my attempts to decide on a keyboard encoder for my arcade control panels. Along the way, I picked up some rarely mentioned information and thought it would be helpful to share that info with others (and it pretty much mushroomed from there). The purpose of this page is to show the advantages and limitations of each interface. You may not want to cut IDE cables to wire up your arcade controller, or it may be geographically (shipping charges) cheaper to buy a KeyWiz than an I-PAC, or vice-versa, which is why all the different versions will be included. Constructive comments on this page should be sent here.

NOTE:  This page is highly geared toward using an encoder/interface for arcade emulation, such as running MAME in an arcade cabinet. Many PC games and console games used 6 or 8 buttons per player and multiple players, so if you play these games, you will need an encoder with a suitable number of inputs.

Also, this page is not designed to pick out the "Best" encoder/interface, nor is it really set up as as a review of various interfaces. It is set up more as a tutorial to take you step-by-step through the process of determining what you need and choosing the interface that's right for you. Along the way, you will gain lots of (hopefully) useful information.

BTW, if you are already familiar with interfaces and arcade controls (or really impatient), you might want to skip to the The Players section, where I have a chart comparing features of the various products (I have tried to revise this so that most of the pertinent info is repeated in this section), or the Comparison Table section, where I list what games each encoder is capable of handling, and maybe the Key Assignments page, where I give sample configs for each encoder, then read the Conclusion section. (Don't forget to come back and read the rest of the useful info I included when you finish, though.)

If you're familiar with the various interfaces, you might want to check out the Head-To-Head section, as you probably have not seem them discussed in this way before.

SHORT SUMMARY

This page attempts to provide detailed and factual information about all the available options for hooking up arcade joysticks, spinners, trackballs, analog joysticks, rotary joysticks, and buttons to a PC. However, the volume of information presented can be a little overwhelming. If you want a cut-to-the chase summary, here it is:  Despite the multitude of options available, for keyboard/gamepad encoders (buttons/joysticks), you really shouldn't be looking anywhere except the products supplied by www.groovygamegear.com or www.ultimarc.com. (See the rest of the page if you need to decide between the two companies). There are only three (really two) exceptions to this basic rule:

Generally, the decision of an keyboard/gamepad encoder will come down to the following steps: Determine the type of arcade controls you wish to connect and the total number of inputs required. Determine whether it is acceptable/desirable to share inputs for certain games (i.e. P2 B5 for the SF games can be P3B2 for 4-player games), primarily as a cost-savings. Determine which encoders support this number of inputs and determine whether there are certain features which make one encoder preferable to another. Make your purchase.

ANTI-BIAS STATEMENT

The previous version of this page was accused by some of being biased towards the GroovyGameGear line of products, and this revision will do little to change that impression. However, I again wish to point out that I strive to present accurate information about all the products listed. I make no money off of this page and have nothing to gain by unfairly presenting one interface over another. Nor do I have a personal interest in seeing you choose one interface over another, beyond seeing that you pay the least amount of money for an interface that meets your needs.

However, unlike certain other sites, I have come to the conclusion that it is impossible to write an objective and a helpful and informative page. One or the other is achievable, but not both. For example, I could eliminate everything from this page except the comparison table (without footnotes)  The page would then be totally objective (except arguably the order that interfaces appeared in the table). But the new reader would end up saying "Okay, this encoder uses SDRAM and this one uses EEPROM, but what's that mean?"  (And the more important but less often asked "Which one should I use for my particular set-up?")  Once you try to answer that question, personal bias in bound to creep in!

And while we're on the subject, there is a distinction to be made between facts, opinions, and balanced opinions (As opposed to lies, d*mn lies, and statistics). For example:

FACT:  EEPROM is a form of non-volatile (permanent until changed) memory as opposed to SDRAM or volatile memory (erased on power-down). (Doesn't tell you much). Note that facts aren't always accurate. The previous revision of this page had inaccurate info on the I-PAC VE codeset. But it was not an opinion.

OPINION:  You should never buy an encoder which uses SDRAM, EEPROM is much better.

BALANCED OPINION:  While EEPROM is preferable (all things being equal), it only comes into play if you don't want to use the default codeset, and even then, you can load a different codeset from a batch file at startup, so the main advantage for it is in the case of hot-swapping controllers.

My opinions are of course biased toward my usage, meaning I lean toward swappable desktop controllers, low price, high performance, high numbers of inputs, and high flexibility. Other users may place higher priority on keyboard pass-thru's, LED's, or even PCB input labeling. And that's fine, the important thing is to weigh my opinions out against how you will actually use the encoder.

To the interface manufacturers, I challenge you to "Show me the stuff!!!" I.e., if you come out with a reliable, high-performance, 36 or more-input, programmable (through software) encoder without soldering required for under $20, (and don't appear to be a flash-in-the-pan operation), I will be all over it with support and recommendations; but that's pretty much what it will take at this point in time.

COMING CLEAN (A PERSONAL SUMMARY)

Expanding on my anti-bias statement, I feel it only fair to disclose that since Jan 05, I have had the privilege of using a beta (prototype) KeyWiz encoder in my personal desktop control panel. Also, since 8Jun05, I have had access to a TOKN KB16 encoder which I used for testing and evaluation. Apart from these two items, I have no physical experience with any of these products. I am an active member of BYOAC and follow the user comments there, and I do ask for clarification from the hardware vendors on the items I am covering.

In the past, I had turned down offers of hardware, because I didn't want the review to come off as biased, but I decided I would rather have accurate controls in MAME <snicker>. I still feel that I do a good job of presenting the alternatives. Consider this a double-edged sword. While I am more aware of the advantages of the KeyWiz or TOKN KB16 than I would be with say, an I-PAC/2, I will also be more aware of its shortcomings. What it really means is I am more intimately aware of what these encoders can and cannot do, so if I read a post on BYOAC about some failure of the KeyWiz or TOKN KB16, I can test on my encoder and disprove or verify the condition. If I read a post on BYOAC about problems with an I-PAC, I have to refer to the documentation, and then assume that the reported problem really exists. And as my experience with the TOKN KB16 demonstrates, there may be a lot of issues with some of the encoders that are incorrectly or not reflected in the documentation or published reports, so you are missing out on that information. If you feel that my information is unfair, you are free to try your luck with other review sites.

Also, it bears repeating that I have a prototype version of the KeyWiz, so any features or flaws that I report may or may not be present in production boards. I only know of one instance where this might be a possibility (an intermittent problem that has lately not been present), but it needs to be considered.

So should you run out and buy a KeyWiz for your panel without reading the rest of this page?  (After all, Tiger-Heli considered all of these for us, and that's what he chose!)  Well, I don't think you would be disappointed if you did. I also don't think you would be disappointed if you just ran out and bought an I-PAC/2, I-PAC VE, I-PAC/4 or a Mini-Pac, A-PAC, GP-Wiz, or GP-Wiz49 or found an MK64 somewhere. These are all excellent choices. I do think you would be doing yourself a dis-service in not picking the encoder with the closest match of features to your specific requirements.

I still like the KeyWiz, but there are other options that I might consider if I were doing it again. Keep in mind, at the time I purchased it, I was looking at eventually relocating the encoder to a project box to enable four-player support. The KeyWiz is the most economical option for true four-player support, but I don't plan to use it this way. I like having the 32 inputs over the 28 of the I-PAC/2, although I only REALLY need them for PC gaming, and I only occasionally use that.  In theory, I would prefer a USB controller (like the I-PAC VE) since I do hot-swap controls, but the KeyWiz hasn't given me any problems with this. OTOH, the default codeset on the KeyWiz is about perfect, while the I-PAC VE has some repeated keys so EEPROM for re-programming would be nice to have if I were choosing the I-PAC VE (but it uses SDRAM like the KeyWiz also). The GP-Wiz would also be a viable option, but it wasn't available when I was designing my CP, and even now would require an external JoyToKey type program for PC games, which would be slightly inconvenient. The point I am trying to make is that for any situation there is probably no solution that does exactly what you require, and you have to pick the unit that comes closest to what you want.

LESSONS LEARNED

One thing to keep in mind as you read this review is that my opinions are largely based on speculation, and one thing I have realized is that once I started actually using an encoder, some of my pre-conceived notions were inaccurate. (And this will vary depending on the type of project your are building). I thought it might be helpful to share some lessons learned before we get into the full-blown comparison.

A key point to make before we go on is that some of these items are inter-related. Take Default Codeset and EEPROM - The I-PAC/4 has a poor default codeset (many repeated outputs), but is programmable and uses EEPROM, so you simply re-program it once and the problem goes away. OTOH, the I-PAC VE has a repeated output with SDRAM, meaning you must re-program the unit every time it is powered up (especially bad for a desktop controller), so it makes much more of a difference.

First off, in no particular order, these are some things that I consider possibly over-rated (I put too much positive emphasis on them, or they ended up not being that important to me).

And these are things that I consider possibly under-rated (I don't put enough positive emphasis on them, or too much negative emphasis on them).

EMERGING TRENDS

Since I have been researching arcade interfaces for several years now, I thought it would be worthwhile to look at some emerging trends since my previous update.  I see four main trends and GroovyGameGear is directly responsible for more than half of them:

DE-BUNKING SOME MYTHS

This is basically a place to counter some misconceptions about the Ultimarc and GroovyGameGear products.  These products tend to induce as much controversy on BYOAC as a good Intel vs. AMD fanboy debate on the computer tech forums, so this is an interesting section to write (I need to get a life, I know).   And again, these are my opinions and highly subjective.

First some history of product introductions, as best I remember it went like this: I-PAC/2, I-PAC/4, KeyWiz, Mini-PAC, KeyWiz ECO, I-PAC VE, GP-Wiz and GP-Wiz Eco, GP-Wiz49 and GP-Wiz49 Eco, A-PAC.

Myth 1 - The original KeyWiz is basically a stripped-down, less expensive I-PAC/2. (Attributed to Howard Casto).  From a "bells and whistles" standpoint, I agree.  The KeyWiz does not offer the USB option, LED support, non-Microsoft OS software support, EEPROM, or an active keyboard pass-thru.  The I-PAC does not offer the alternate codeset swapping feature.   From a performance and capability standpoint, the additional four inputs and the ease of adding stealth-shifted inputs make the KeyWiz levels above the I-PAC/2, very competitive with the I-PAC VE, and almost competitive with the I-PAC/4.

Myth 2 - The I-PAC VE is the bargain component of the I-PAC Line.  (Attributed to KevSteele and SirPoonga).  From a price standpoint, the three lowest priced Ultimarc encoders are (lowest to highest priced):  Mini-PAC, I-PAC VE, I-PAC/2.  From a features standpoint they are IMHO (lowest to highest): I-PAC/2, I-PAC VE, Mini-PAC.  (Personal opinion, tie on the last two, but I rate the trackball interface on the Mini-PAC and EEPROM ahead of the four additional inputs on the I-PAC VE).  It seems pretty obvious to me that the I-PAC VE was introduced as a direct response and competitor to the KeyWiz Max.  It is priced identically to the KeyWiz Max when you figure in free shipping and the cost of the non-included USB A-B cable.  It has the same number of inputs.  It uses the same screw terminal connection method.  It is the only Ultimarc product to use SDRAM, etc.

Myth 3 - The stripped down I-PAC is competing with the top of the line KeyWiz.  (Attributed to SirPoonga).  This comes from users not understanding Myth 2.  The I-PAC VE is competing with the KeyWiz Max.   IMHO, the additional four inputs outweigh the loss of a PS/2 interface and EEPROM, making the VE a more capable encoder than the I-PAC/2.  It bears noting here that the GroovyGameGear Eco line gives up little compared to their MAX counterparts, other than screw terminals and a switchable pass-thru, for a huge cost savings.  Ultimarc doesn't really have a product to compete with the Eco line, but the Mini-PAC comes close, depending on whether you want 4-player capability or a trackball interface.

Myth 4 - The A-PAC is a direct competitor to the GP-Wiz.  Actually, other than price point, the fact that both encoders support 32 inputs, identify themselves as gamepads, and are USB, the units have little in common.  The A-PAC is actually a much closer competitor to DaveB's AKI.  While it can do most of the same things as the GP-Wiz, economically, it makes more sense to buy the GP-Wiz Eco, unless you plan to add analog controls at a later date.

REALITY CHECK

This is a look at the number of buttons used by arcade games, so you can avoid buying an encoder that supports more inputs than necessary.

For 2-player games, many of the classics used only one button per player (Galaga, Gyruss, Time Pilot, Galaxian, Space Invaders, Mario Bros.).  Even more used two buttons per player (Sky Shark, Twin Cobra, Tiger-Heli, (most vertical shooters), and for that matter, Rolling Thunder, and a lot of the horizontal scrollers, etc.)  Three button games were somewhat rarer (Double Dragon, Gun.Smoke, Missile Command, Blasteroids).  However, there were a fair number of 4-player 3-button games, and you could play any of these with only two people.  There were a few four button games (Defender, Armor Attack, Rip-Off, Star Castle, and some of the Neo-Geo series of games, etc.)  Of these, only Armor Attack and the Neo-Geo's were two player simultaneous.  There were a few 5-button games, notably Asteroids, Asteroids Deluxe, Star Gate and Space Duel, and the early Mortal Kombat series.  Of these, only MK and Space Duel were two player simultaneous.  Finally, I think only the Street Fighter and Capcom Fighter style games were six-button simultaneous, but it is a good idea to support these games if there is any chance you (or your friends) might be playing them.

For 3-player games, there are many 3-player 3-button games.  There are no 3-player 4-button games; however, you might want to play the 4-player 4-button games with only three players.  There is only one 3-player 5-button game "Guardians of the Hood" in MAME as a test driver, and only one 3-player 6-button game - "Powerpuff Girls", Status unknown.

For 4-player games, there were many 4-Player 2-button or 4-Player 3-button games. There are three 4-player 4-button games - Dungeons & Dragons - Shadow Over Mystera, Dungeons & Dragons - Tower of Doom, and NBA Jam Extreme.  There are no 4-player games with more than 4-buttons.  Super Street Fighter 2 - Tournament Edition is 4-player but 2 players play at any time and alternate.  War: Final Assault is 4-player with 6 buttons and a trigger stick with thumb button (8 buttons) but the game had 4 cabinets networked together, so it should be considered single player when selecting an encoder.

There are no 5-player games; however, I have included them in the chart below, because you might want to play a 6-player game with only 5-players present.

There is one 6-player 2-button game - Hard Dunk (emulated by Modeler), two 6-player 3-button games - X-men and JSR Arcade - Second Chapter and one 6-player 6-button game, Clue (although I think that one may be bogus).

In addition, while these games expect discrete coin inputs, in most cases the Px Start buttons, etc., while present on the CP, are actually mapped in parallel to the P1B1 buttons, so these can be eliminated when planning a CP.  (See this page for details).

IN PERSPECTIVE

The first thing this clearly means is that the P3SW5 through P3SW8 and P4SW5 through P4SW8 inputs on the I-PAC/4 are meaningless for arcade emulation as defined (they are still useful to have as extra inputs - i.e. for admin functions, for console emulation; but they won't be used the way they are named).

The next thing is that we can play 99% of all MAME games with 4-players and 3-buttons each support.  So, we need 28-inputs total, plus 4-coin buttons, or 32 inputs total.

The standard 4-player 4-button panel with a SF/NeoGeo layout (7 buttons) for player 1 and 2, can be easily handled with 48 inputs, either by the 56 input I-PAC/4 or 64 inputs with two GP-Wiz's as follows:

OTOH, if we want to be able to play ALL emulated arcade games, with no overlap, and no compromises, the magic number of inputs is 68 as follows (this is based on using Druin's Rotary Interface for mechanical rotary joysticks):

This results in the following categories, as shown in the Comparison Table section:

There are also some PC games that require 8 buttons per player.  I don't specifically cover these, but if you want to enable them with your encoder, ensure that you have enough inputs.

THE PLAYERS

At this point, we're ready to examine our options.  The encoders have been listed by increasing number of inputs, which is a fair measure of functionality.  However, an encoder with more inputs than you need, is not cost-effective.  The Hagstrom, MAMI, and some other units are included for completeness, but, IMHO, their limited features do not justify their cost compared to the other encoders.  (Yellow text indicates discontinued and no longer available items.)


Interface Price (Note 1) Inputs
(Notes 2 and 3)
Shifted Inputs
(Note 4)
Programming
(Note 5)
USB-PS/2-Other
(Note 6)
Console Support
(Note 7)
Connection Methods
(Note 8)
Keyboard Pass-thru
(Note 9)
LED Support
(Note 10)
GAMEPAD ENCODERS (BUTTONS ONLY) (Note 11)
Gamepad Hack
(Note 11.1)
$5 (USB)
$20+adapters (Playstation)
14 (max)
Usually Matrix Buttons
None No, (occasionally limited)
(Note 11.2)
USB, Gameport Yes, for Playstation Pad Hacks Individual Bare Wires or Solder Points N/A No
GP-WIZ
GP-WIZ Max (Note 11.3)
$20, solder Terminals
$23, IDE Header
$35, Max
32 Direct Buttons
(Note 11.4)
None No (Note 11.2) USB No Solder or IDE header (Std)
Terminal Strips (Max)
No, Not needed. No
LPT Switch
(Note 11.5)
$10 (Note 11.6) 60 Matrix Buttons
(Note 11.7)
None Yes (Note 11.8) LPT Port
(Note 11.9)
No Your choice No, Not needed. No
Interface Price (Note 1) Inputs
(Notes 2 and 3)
Shifted Inputs
(Note 4)
Programming
(Note 5)
USB-PS/2-Other
(Note 6)
Console Support
(Note 7)
Connection Methods
(Note 8)
Keyboard Pass-thru
(Note 9)
LED Support
(Note 10)
GAMEPAD ENCODERS (ANALOG CONTROLS AND BUTTONS) (Notes 11 and 11.10)
Microsoft Sidewinder Dual Strike Gamepad Hack (Note 11.11) $5 to $15
(Note 11.12)
2 Axes and
13 Matrix Buttons
(Note 11.13)
6 (Note 11.14) Yes (6 buttons) (Notes 11.2 and 11.15) USB No Solder N/A No
AKI - Analog Kontrol Interface
(Note 11.16)
$33 5 Axes and
14 Direct Buttons (Note 12)
None No (Note 11.2) USB No Terminal Strips No, Not needed. No
A-PAC
(Note 12.1)
$39 Configurable Between
4 Axes and 24 Direct Buttons to 0 Axes and
32 Direct Buttons
(Note 12.2)
30 (Note 12.3) No (Note 11.2) USB No Terminal Strips No, Not needed. No
Interface Price (Note 1) Inputs
(Notes 2 and 3)
Shifted Inputs
(Note 4)
Programming
(Note 5)
USB-PS/2-Other
(Note 6)
Console Support
(Note 7)
Connection Methods
(Note 8)
Keyboard Pass-thru
(Note 9)
LED Support
(Note 10)
GAMEPAD ENCODERS (49-WAY JOYSTICKS AND BUTTONS) (Notes 11 and 12.4)
SJC - Simple 49-Way Joystick Controller
(Note 12.5)
$33 1 49-Way Joystick and
10 Direct Buttons
(Note 12.6)
None No (Note 11.2) USB No Terminal Strips No, Not needed. No
GP-WIZ49 Eco
GP-WIZ49 Max
(Note 12.7)
$20 Eco, solder Terminals
$23 Eco, IDE Header
$35, Standard
1 49-Way Joystick and
23 Direct Buttons
(Note 12.8)
5 (Note 12.9) Yes (Note 11.2
and 12.10)
USB No Solder or IDE header (ECO)
Terminal Strips (Std)
No, Not needed. No
Interface Price (Note 1) Inputs
(Notes 2 and 3)
Shifted Inputs
(Note 4)
Programming
(Note 5)
USB-PS/2-Other
(Note 6)
Console Support
(Note 7)
Connection Methods
(Note 8)
Keyboard Pass-thru
(Note 9)
LED Support
(Note 10)
KEYBOARD ENCODERS (Note 11)
TOKN KB16
(Note 12.11)
$28
(Note 12.12)
16 Matrix Buttons
(Note 12.13)
None Yes
(Note 12.14)
PS/2 No IDE Header Yes No
Keyboard Hack Free ;-), + solder and wire. 16-18 Useable Matrix Buttons (max), 107 Total Buttons
(Note 13)
None No PS/2 (Note 14) No Individual Bare Wires No Yes
Hagstrom KE18 $45 18 Direct or 81Matrix (9x9) Buttons (Note 15 and 15.1) None No PS/2 No IDE Header Yes No
Interface Price (Note 1) Inputs
(Notes 2 and 3)
Shifted Inputs
(Note 4)
Programming
(Note 5)
USB-PS/2-Other
(Note 6)
Console Support
(Note 7)
Connection Methods
(Note 8)
Keyboard Pass-thru
(Note 9)
LED Support
(Note 10)
KeyDog
(Note 15.2)
$80 (PS/2)
$80 (USB)
24 Direct or 14x8 (104 Useable) Matrix
(Note 15.3)
None Yes (Note 15.4) PS/2 or USB, depending on version No IDE Header Yes No
Hagstrom LP24 $80 24 Direct or
23x1 Matrix or Up to a 12x12 Matrix in Any Combination Buttons
(Note 15 and 15.5)
None Yes (Note 16) PS/2 No IDE Header Yes No
Hagstrom KE24 $100 Same as LP24 None Yes (Note 16) PS/2 No IDE Header Yes No
MAMI 24 $45 24 Direct Buttons None No (Note 17) PS/2 or DIN5 No Terminal Strips Yes No
ButtonBox Approx. $30
(Note 18)
27 Direct or Up to 128 (101 Useable) Matrix (Up to 8x16 Matrix) Buttons
(Note 19)
None Yes, EEPROM (Note 20) PS/2 No Your choice. Yes Yes (Note 21)
Interface Price (Note 1) Inputs
(Notes 2 and 3)
Shifted Inputs
(Note 4)
Programming
(Note 5)
USB-PS/2-Other
(Note 6)
Console Support
(Note 7)
Connection Methods
(Note 8)
Keyboard Pass-thru
(Note 9)
LED Support
(Note 10)
I-PAC/2 $39 (Standard)
$43 (USB)
28 Direct Buttons (Note 22) 27 Yes, EEPROM (Note 23) PS/2 or USB (Note 6and 23.1) No Terminal Strips Yes (Note 24) Yes (Note 25)
J-PAC (Note 26) $57 (Standard)
$61 (USB)
28 Direct Buttons (Note 22) 27 Yes, EEPROM (Note 23) PS/2 or USB (Note 6 and 23.1) No JAMMA Edge Connector and Terminal Strips Yes (Note 24) Yes (Note 25)
Mini-PAC or here (Note 27) $29 (Board Only)
$46 (With Harness)
$49 (With Harness and USB cable)
$69 (With wiring and trackball harness)
28 Direct + Trackball and Spinner
(Note 22)
27 Yes, EEPROM (Note 23) PS/2 or USB (Note 6 and 23.1) No IDE Header Yes (Note 24) Yes (Note 25)
X-Arcade PCB $60 (Note 28) 28 Direct? Buttons
(Note 29)
None 3 alternate code sets, EEPROM? (Note 30) PS/2 or USB (Note 30.1) Yes Pin Headers with a Wire Harness that you would cut. Yes No
MAMI 30 $50 30 Direct Buttons None No (Note 17) USB No Terminal Strips No, Not needed. No
HotRod Encoder (Note 30.2) N/A (Note 30.3) 32 Matrix Buttons
(Note 30.4)
None No PS/2 No Existing Hardwires Yes No
TOKN KB32
(Note 30.5)
??? (Note 30.6) 32 Matrix Buttons
(Note 30.7)
None Yes
(Note 12.14)
PS/2 No IDE Header Yes No
Interface Price (Note 1) Inputs
(Notes 2 and 3)
Shifted Inputs
(Note 4)
Programming
(Note 5)
USB-PS/2-Other
(Note 6)
Console Support
(Note 7)
Connection Methods
(Note 8)
Keyboard Pass-thru
(Note 9)
LED Support
(Note 10)
KeyWiz ECO
KeyWiz STD KeyWiz MAX

KeyWiz ECO 2
KeyWiz MAX 1.5
$27 (Eco, discontinued 17Nov04)
$34 (Std, discontinued 25Nov03)
$37 (Max, discontinued 25Nov03)

$20 ECO 2, solder terminals
$23 ECO 2, IDE header
$35 (Max1.5)
32 Direct Buttons (Note 31) 24 (Note 32) Yes, SDRAM (Note 33) PS/2 No Solder (ECO)
Solder or IDE header (ECO 2)
Terminal Strips (Std, Max and Max 1.5)
Not a traditional one (Note 34) No
I-PAC VE $35 (Note 35) 32 Direct Buttons
(Note 36)
28 (Note 37) Yes, SDRAM (Note 23) USB No Terminal Strips No, Not needed Yes (Note 25)
Hagstrom KE-USB36
(Note 37.1)
$80 36 Direct Buttons + Trackball None Yes (Note 16) USB No IDE Header No, Not needed Yes (Note 38)
MAMI 48 $70 48 Direct Buttons None No (Note 17) PS/2 or DIN5 No Terminal Strips Yes No
Interface Price (Note 1) Inputs
(Notes 2 and 3)
Shifted Inputs
(Note 4)
Programming
(Note 5)
USB-PS/2-Other
(Note 6)
Console Support
(Note 7)
Connection Methods
(Note 8)
Keyboard Pass-thru
(Note 9)
LED Support
(Note 10)
I-PAC/4
(Note 38.1)
$65 (Standard)
$69 (USB)
56 Direct Buttons
(Note 39)
2 Sets of 27 Each Yes, EEPROM (Note 23) PS/2 or USB (Note 6 and 23.1) No Terminal Strips Yes (Note 24) Yes (Note 25)
Lupine Systems 64-Input Encoder (Note 40) $35 60 Direct Buttons
(64 With 4 Duplicates)
None No DIN5 No IDE Header (groups of 8) No No
MK64 (Discontinued)
(Note 41)
$63 64 Direct Buttons, or 52 Direct Buttons Plus Mechanical Rotary Joystick Support.
(Note 42)
7 (Note 43) Yes, EEPROM (Note 44) PS/2 No IDE Header Yes Yes (Note 45)
Hagstrom KE-72
KE-72T
$120 (KE-72)
$140 (KE-72T)
72 Direct Buttons, KE-72T Also Includes a Trackball to PS/2 Mouse Port Interface None Yes, EEPROM
(Note 46)
PS/2 No IDE Header Yes Yes (Note 47)
Interface Price (Note 1) Inputs
(Notes 2 and 3)
Shifted Inputs
(Note 4)
Programming
(Note 5)
USB-PS/2-Other
(Note 6)
Console Support
(Note 7)
Connection Methods
(Note 8)
Keyboard Pass-thru
(Note 9)
LED Support
(Note 10)
OPTICAL INTERFACES (Note 48)
DIY Mouse Hack (Note 49) Free ;-), + solder and wire. 3 Matrix? Buttons
(Note 50)
None No Any (Note 51) No Soldering No, Not needed No
OSCAR USB Mouse Interface (Note 52) $9.00 (0 buttons)
$12.50 (2 buttons)
2 Matrix? Buttons
(Note 53)
None No USB (Note 53.1) No Supplied Wiring Harness, Headers No, Not needed No
Happ Trackball Interface (Note 54) $44 (Small T-ball)
$52 (4.5-inch) (Note 54.1)
3 Matrix? Buttons None No USB or PS/2 No Supplied Wiring Harness No, Not needed No
Interface Price (Note 1) Inputs
(Notes 2 and 3)
Shifted Inputs
(Note 4)
Programming
(Note 5)
USB-PS/2-Other
(Note 6)
Console Support
(Note 7)
Connection Methods
(Note 8)
Keyboard Pass-thru
(Note 9)
LED Support
(Note 10)
Hagstrom KE-USB36
(Note 37.1)
$80 36 Direct Buttons + Trackball None Yes (Note 16) USB No IDE Header No, Not needed Yes (Note 38)
Hagstrom
KE-72T
$140 72 Direct + Trackball to PS/2 Mouse Port Interface None Yes, EEPROM
(Note 46)
PS/2 No IDE Header Yes Yes (Note 47)
Mini-PAC or here (Note 27) $29 (Board Only)
$46 (With Harness)
$49 (With Harness and USB cable)
$69 (With wiring and trackball harness)
28 Direct + Trackball and Spinner (Note 22) 27 Yes, EEPROM (Note 23) PS/2 or USB (Note 6) No IDE Header Yes (Note 24) Yes (Note 25)
Opti-Pac $39 (Serial)
$43 (USB)
4 Direct Buttons and 2 Trackballs plus 4 Spinners (Note 55) None No USB or Serial (Note 56) No Terminal Strips No, Not Needed No
Interface Price (Note 1) Inputs
(Notes 2 and 3)
Shifted Inputs
(Note 4)
Programming
(Note 5)
USB-PS/2-Other
(Note 6)
Console Support
(Note 7)
Connection Methods
(Note 8)
Keyboard Pass-thru
(Note 9)
LED Support
(Note 10)
ROTARY JOYSTICK INTERFACES (Note 57)
Direct Connection
(Note 58)
??? (Note 59) Requires 12 Inputs per Joystick (Plus Directionals) N/A N/A Same as Encoder N/A Same as Encoder Same as Encoder Same as Encoder
Rdagger's Rotary Interface
(Note 60)
$10 (Note 61) Requires 2 inputs per Joystick (Plus Directionals)
Controls two joysticks
N/A N/A Same as Encoder N/A Your choice. Same as Encoder Same as Encoder
Druin's Rotary Interface
(Note 60)
$25 Requires 2 inputs per Joystick (Plus Directionals)
Controls two joysticks
N/A N/A Same as Encoder N/A Input - Pin header
Power and Output - Terminal Strips
Same as Encoder Same as Encoder
MK64 (Discontinued)
(Note 41)
$63 64 Direct Buttons, or 52 Direct Buttons Plus Mechanical Rotary Joystick Support.
(Note 42)
7 (Note 43) Yes, EEPROM (Note 44) PS/2 No IDE Header Yes Yes (Note 45)
Interface Price (Note 1) Inputs
(Notes 2 and 3)
Shifted Inputs
(Note 4)
Programming
(Note 5)
USB-PS/2-Other
(Note 6)
Console Support
(Note 7)
Connection Methods
(Note 8)
Keyboard Pass-thru
(Note 9)
LED Support
(Note 10)

NOTES:

(1)  All prices are in U.S. dollars and should be accurate as of 26Apr05, unless stated otherwise.  I decided not to include shipping costs, but these could play a significant factor and should be considered before making a purchase decision.
(2)  Do NOT merely use the number of inputs to determine what applications an encoder is capable of.  Things such as Shift Key support and other shortcuts play a significant factor in their capabilities, and are accounted for in the Comparison Table section of this page.  Note how much better the keyboard hack does than the KE18.
(3)  See this section for a discussion of Direct Mode vs. Matrix Mode.
(4)  See this section for a brief overview of Shift Keys and this page for a detailed discussion of Shift Keys and their usage.  Also note that if your encoder does not support Shift Keys, a similar effect can be obtained in MAME as mentioned in the General Considerations section of the linked page.
(5)  See the Programmability and SDRAM vs. EEPROM and Software sections for more information.  This section is complicated by what is meant by programmability.  For example, some encoders can be programmed from a batch file.   Some retain custom codesets after power-down, etc.  For purposes of this column, Yes means that there exists some way (outside of keyboard re-mapping software or Joytokey, etc), to change the default settings of the interface); however, I will try to add additional footnotes as applicable.
(6)  See this section for a discussion of USB vs. PS/2 (Keyboard encoders only).
(7)  This refers to the ability to use the encoder with an actual PlayStation, Nintendo, X-Box, or Dreamcast, not to support console emulation.
(8)  Generally screw terminal strips are the most convenient (IMHO).  However you can always go from an IDE header or even bare wires to a Terminal block and get basically the same effect for additional cost.  See this section for more details.
(9)  See the Keyboard Pass-Through Alternatives section for other solutions if your encoder does not include a pass-through.
(10)  MAME flashes the Num Lock and Caps Lock LED's to simulate Coin inputs on certain Atari and Pac-Man games.  The Scroll Lock LED is also used in some games, but it does not have a consistent function and I don't recommend using it on a control panel.  If your encoder lacks LED support, you could gut a USB keyboard and use the LED lights from it on your panel.  None of the encoders have the power to directly drive High-Intensity LED's which many people like to use to illuminate buttons, etc.  However, OSCAR  has a driver board schematic, which will allow the encoders to work with these LED's.  Also, RandyT (KeyWiz designer) is working on an add-in card which will provide universal LED support and increased functionality and work with any encoder.
(11)  See this section for a comparison of gamepad and keyboard encoders.
(11.1)  See this section for gamepad hack info.
(11.2)  Programs such as Joytokey and RBJoy can be used with gamepads to send keycodes, making them basically programmable.  See the Gamepad Encoder Useful Software section for more details.
(11.3)  The GP-Wiz is a 32-input gamepad encoder.  As mentioned in the Gamepad Encoder vs. Keyboard Encoders section, it could principally be used as a stand-alone encoder, or an add-on encoder for additional panels/inputs in conjunction with an existing keyboard encoder.   Yet another use would be as a way to directly interface SNK LS-30 or Happ Mechanical Rotary Joysticks directly to MAME Analog Plus as an alternative to using Druin's Rotary Interface.
(11.4)  Inputs register as Joystick 1 Directionals and Buttons 1-28; however, buttons could be used for the digital inputs, or digital joysticks for the button inputs.  Note that many PC Programs as well as ZSNES only recognize the first 16 gamepad buttons, so you have to use software to send keycodes instead of button presses to use these inputs with these programs.  MAME is not affected.
(11.5)  This is the cheapest and kit-wise easiest (but maybe not the best) way to add 60 non-ghosting inputs to your PC.  The interface consists entirely of an LPT (DB25) connector, about 5 resistors, and about 60 diodes.  There is no integrated circuit or even transistors involved.  In fact, the circuit could be built without soldering, although this would add significantly to the cost.  Two versions of the circuit exist, a 40-input version, and a 60-input version.  In theory, the circuit could be expanded to support 108 or 156 inputs, although the software currently (5May05) doesn't support more than 60.  OTOH, the device is matrix-based, so it is more complicated to wire up than a direct-mode encoder.  For more information, refer to this BYOAC thread, Trimoor's page (local mirror) or the Fokker50 page (local mirror)
(11.6)  Completed versions are not directly available.  Price is estimated from the components required.
(11.7)  For the 60-input version, inputs are reported as Joystick 1 Buttons 1-30 and Joystick 2 Buttons 1-30.  Note that many PC Programs as well as ZSNES only recognize the first 16 gamepad buttons, so you have to use software to send keycodes instead of button presses to use these inputs with these programs.  MAME is not affected.
(11.8)  The interface can be re-programmed to different keyboard keys, however, the software seems to run through the control panel applet, so there is no way to save or load custom codesets.  PPJoy seems to be the most popular software and the only current one to support 60 inputs.  The Fokker 50 software only supports 40 inputs but does support macros and combinations.  The software is also open-source so it is possible that more capable applications will be developed.
(11.9)  The device connects to the LPT port, so no keyboard pass-thru is required.   The LPT port is rarely used on an arcade machine, and additional ports can be added through PCI cards, if required.  The port is much more common than gameports are; however, as more and more printers and scanners convert to USB, I am not sure how far into the future the LPT printer port will remain supported.
(11.10)  See this section for a discussion of analog controls and interfaces, including special considerations for gas/brake pedals.  Note that under Windows '98 you must connect at least one button to each joystick interface in order to calibrate it (not required for XP).
(11.11)  The Microsoft Sidewinder Dual Strike Joystick is included because it was one of the earliest and cheapest ways to connect an arcade analog control to the PC.  The device is popular b/c it was designed using 20K pots that only turned 1/4 of their normal travel, so it works perfectly with standard arcade controls which typically used 5K pots.  See this page (local mirror) for a short review of the stock joystick, this page for a more in-depth review, here for a graphic stolen from the second review showing the button locations, here (local mirror) for 1Up's Dual Strike hack, here (local mirror) for Rdagger's Dual Strike hack, here (local mirror) for a BYOAC thread by Fitzy showing how to hook up the buttons to the PCB.  And here (local mirror) (b/c pictures are worth 1000 words) for the same info in photos from UncleT.
(11.12)  The Dual Strike is discontinued; however, the units often show up on E-bay.  For pricing, it is often advisable to purchase a broken one, as the parts that are likely to break will be removed by the hack anyway.
(11.13)  The Sidewinder Dual Strike supports two joystick axes and the following buttons:  D-pad (4 buttons), A-Button, B-Button, C-Button, D-Button, X-Button, Y-Button, Shift Button, Left Trigger, and Right Trigger.
(11.14)  The six-face inputs (A, B, C, D, X, and Y) can be shifted to perform a dual function.
(11.15)  The driver software has an option to select between mouse, joystick, and keyboard functions, and also to select six keys (the six above?) to keyboard inputs.
(11.16)  The AKI supports five analog axes and 14 buttons.   The unit will auto-detect between 5K and 100K pots; however, unused analog axes must be tied to ground.
(12)  Axes register as Joystick 1 Axis X, Y, and Z and Joystick 2, Axis X and Y, and Button Inputs register as Joystick 1 Buttons 1-7 and Joystick 2 Buttons 1-7.
(12.1)  The A-PAC can basically be considered a cross between the AKI and the GP-Wiz encoders.  Various values of potentiometers can be supported through the use of the appropriate capacitor.  The encoder appears to the computer as two gamepads.  Depending on application, the unit stacks up well to the AKI b/c of the greater number of digital inputs as opposed to one less analog axis, but lacks the ability to auto-detect values of potentiometers, and also requires both potentiometers on a "side" (Joystick 1 X- and Y-axis) to have the same value.   IMHO, the unit stacks up well against the standard GP-Wiz due to the availability of analog connections, the availability of shifted inputs, and the convenience of being seen by the computer as two gamepads.  Against the GP-Wiz Eco versions, you have to weigh the likelihood that you will utilize the extra capabilities against the additional cost of the encoder.
(12.2)  The A-PAC supports up to 4-analog axes and 24-buttons, or full digital control and 32 buttons or a combination (32 digital inputs, or 1 analog axis and 30 inputs, or 2 analog axes and 28 inputs, or 3 analog axes and 26 inputs, or 4 analog axes and 24 inputs).  Inputs are seen as Joystick 1 directionals and Buttons 1-12 and Joystick 2 directionals and Buttons 1-12.  Only 15 inputs per Joystick (30 per interface) can be used for "Action" (non-administrative) buttons if shift functions are used (otherwise, you'll always be accidentally activating the shift function.)  Also, the D (Detect) input on each side disables the axis inputs so really shouldn't be used for action functions (but could be used for administrative functions).
(12.3)  The C terminal (Seen as Button 11 by the OS) can be used to shift the button inputs as follows:  The directionals (R, L, U, D) send shifted Buttons 13-16, respectively.  Buttons 1-12 send shifted Buttons 17-28, respectively.   NOTE: Button 27 (shifted Button 11 - Terminal C - Shift Key) is not generated, but does show up in the Windows Game Controllers window.
(12.4)  See this section for a discussion of 49-way Joystick Controllers.  NOTE: For both interfaces, the controller is setup for installation with the joystick interface board facing left (when viewed from the top).  This results in a horizontal orientation for the joystick.   However, it is probably possible to remove, rotate, and re-install the interface board to allow a vertical orientation (still with the interface to the left).  It also might (untested) be possible to mount the interface board to the top or bottom of the joystick and swap the axis leads to the interface.
(12.5)  The SJC supports a single 49-way Joystick and 10 Buttons.   The interface auto-detects between Happ or Williams sticks.  Linear or progressive scaling is supported and selectable in hardware by connecting a terminal to ground.
(12.6)  Inputs register as Joystick 1 Buttons 1-10.
(12.7)  The GP-Wiz49 and GP-Wiz49 Eco allow the connection of a single 49-way joystick and 23 buttons (or other digital inputs).  Digital Restrictor Selection™ allows the joystick to appear to the computer as either a 49-way analog stick, 49-way progressive, 8-way, 4-way, rotated 4-way, 2-way vertical, 2-way horizontal, or 16-way stick.  Happ or Williams sticks can be auto-detected, and selection can be over-ridden through software.  Modes can be selected either manually (using a button combination), manually using a rotary switch, or through software, either interactively, or remotely through command-line arguments.
(12.8)  Inputs register as Joystick 1 Buttons 1-23.  If the rotary switch option is utilized, the first 8 buttons are used for mode switching and the remaining buttons are renumbered as Joystick 1 Buttons 1 through 15.   Note that many PC Programs as well as ZSNES only recognize the first 16 gamepad buttons, so you have to use software to send keycodes instead of button presses to use these inputs with these programs.  MAME is not affected.  Also, since one GP-Wiz49 is required per 49-way joystick, this is much less likely to be a problem, unless you were using a digital joystick for Player 2, for example.
(12.9)  Shifted buttons are disabled when the rotary switch option is utilized, otherwise, Buttons 9 through 13 are shiftable (through the mode input) and seen as Buttons 24-28, respectively.
(12.10)  Software for selecting the various DRS™ modes is available at http://www.groovygamegear.com/GPWIZ49.zip.
(12.11)  The TOKN KB16 Encoder is difficult to recommend.  At it's full retail price, it is more expensive than the solderless version of the KeyWiz Eco2, offers half the number of standard inputs (and at most 2/3 of these can be used without ghosting unless diodes are employed), no shifted inputs, the same IDE header connection method, but requires twice as many wires per switch due to the lack of a common ground connection, and cannot load a saved config file nor be programmed interactively without an attached keyboard.  The "advantages" of the device are the use of EEPROM to allow memory retention of an alternate saved codeset and an active keyboard pass-thru which allows daisy-chaining of multiple encoders.  YOU do the math!  Even at the introductory price ($10.50), the device barely fares better (arguably) than a standard keyboard hack.  The introductory price is higher than the cost of a keyboard hack, and the encoder has 16 total inputs ("effective" 12 inputs for a two-joystick solution without diodes), compared to an "effective" 20 active inputs (for a two-joystick panel) and an unlimited (104, 107) number of total inputs which could be used for admin functions for the keyboard hack.  The advantages over a keyboard hack are the lack of soldering, the ability to program any keystroke to each input, and the presence of the active pass-thru.  Basically the functionality of the device is limited to a small controller for a classics-only cab or CP.  My detailed review of the encoder is available here.  Current (8Jul05) documentation of the device is available from www.tokn.net and mirrored here, here, here, and here.  As of 8Jul05, BYOAC threads on the device are here, here, here, and here.
(12.12)  The TOKN KB16 is currently (26Apr05) readily available on E-bay for around $10.50, but I am not sure how long this price will be available.   Units shipping after ??Jul05 now include a package of diodes at no additional cost.
(12.13)  The TOKN KB16 basically uses an 8x2 matrix and exhibits ghosting unless inputs are carefully chosen or diodes are used.
(12.14)  The TOKN KB16 and TOKN KB32 are programmable through an attached keyboard.  No software is required and alternate codesets are retained in memory; however, there is also no way to save multiple codesets or load a different pre-configured codeset.
(13)  Keyboards generally use a 16x7 or 16x8 matrix.  This means you have 16 non-ghosting inputs and since Up and Down and Right and Left will never be pressed simultaneously, you can allow these inputs to ghost so you can support 2 joysticks and 6 buttons per player or 4 joysticks and 2 buttons per player.  The firmware in modern keyboard chips prevents using diodes to gain more action inputs, but any of the remaining inputs can be used for non-action functions like Coin, Start, Tab, Esc, etc.  Also, some PS/2 keyboards limit the number of inputs to 8 and are not useable for arcade emulation.
(14)  USB keyboards are limited to six simultaneous inputs (plus modifiers such as Ctrl, Alt, and Shift) and are not suitable for arcade usage.
(15)  I believe this encoder will exhibit ghosting in matrix mode, but this can possibly be overcome through the use of diodes.
(15.1)  A jumper is used to select between direct and matrix mode.
(15.2)  The KeyDog is mainly included for completeness.  A unique feature of this encoder is the "WatchDog Timer" which can reset your computer in the event of a lock-up.  The watchdog feature can be set to reset the computer after a settable time from 10ms to over 10 minutes.  I am not sure how the unit senses lockups.  KeyDog Tech Support said it was "dependent on seeing an LED state change at a regular interval" but I am not sure whether they meant the keyboard LED's or an internal LED on the KeyDog.  I am a little leery that the device might re-boot your cabinet in the middle of a furious trackball game, but have no way to confirm this.  The specification sheet on the KeyDog is available on their website and mirrored here.
(15.3)  The KeyDog can be operated as a 24-input direct mode encoder, or a 104-input Matrix mode encoder.  Selection of direct or matrix mode is made through software.  In direct mode, the unit can be either common Ground or common +5V.  For operation similar to the KeyWiz or I-PAC, you would select common Ground by placing a Jumper on Pins 1and 2 of header J10.  The matrix mode uses a 14x8 matrix with 8 keys unassigned for 104 available keys.  Diodes or careful key selection must be made to avoid ghosting.  The encoder can actually support a 16x8 matrix on request at additional charge or custom matrix key assignments for quantity orders.  The default matrix assignments are included in the specification sheet above.
(15.4)  The KeyDog is programmable.  Custom key assignments as well as the configuration or enabling/disabling of the watchdog timer, can be selected and loaded from a batch file.  The direct mode key assignments can be changed but the matrix-mode key assignments are fixed and not programmable.
(15.5) Software is used to select between direct and matrix mode and to set key assignments.
(16)  Key assignments can be changed through software, but I don't know if alternate configurations can be loaded on-the-fly (through a batch file, for instance).
(17)  Encoder can be ordered with custom codeset instead of the default, but I don't know about cost.
(18)  The ButtonBox is not available for purchase.  All plans, parts lists, and schematics are available on their website.
(19)  Diodes are used in Matrix Mode to prevent ghosting.  All inputs are programmable, but only the standard 101 Keyboard keys can be assigned.
(20)  The ButtonBox is programmable.  Custom codesets can be loaded from a batch file, but the software for this only works in Windows 95, 98, or ME (not NT, 2000, or XP).
(21)  See the ButtonBox LED Considerations and ButtonBox LED Wiring sections for details.
(22)  See here for the Ultimarc default codeset.  Only 27 inputs can be used for "Action" (non-administrative) buttons if shift functions are used (otherwise, you'll always be accidentally activating the shift function.)
(23)  Very easy to program, Simple to understand software, Config files can be loaded from the encoder software or from batch files.  Latest software (WINIPAC IPD) claims less than one second load time and supports macro assignments (useful for programs that need Alt-F4 to exit).  See this section for a chart of software compatibility with the various Ultimarc encoders.
(23.1)  The Ultimarc Encoders have the following limitations when used in USB mode:  Simultaneous limit of 14, 16, or 22 keys plus multipliers.   Key-Repeat is enabled on all keys.  In PS/2 mode, key repeat is only enabled on the Up and Down arrow keys.
(24)  The keyboard pass-thru was disabled in USB mode, but this might have changed recently.
(25)  See the I-PAC LED Considerations and I-PAC LED Wiring sections for details.
(26)  The J-PAC is basically an I-PAC/2 which is optimized for connection to a JAMMA (Japanese Amusement Machine Manufacturers Association) arcade cabinet.  The board uses a JAMMA edge connector for input connections and includes a video amplifier.   The board uses a JAMMA Edge connector for the joysticks and Buttons 1-4 and screw terminals for buttons 4-6.  (Button 4 can be wired either way.)
(27)  The Mini-PAC is basically an I-PAC/2 with an IDE header combined with 1/2 of an Opti-PAC.  The board includes controls for a trackball and spinner, but these only work in USB mode.  The bare board contains all the basic functionality and is a better value if you can make your own harnesses.  See http://www.ultimarc.com/mp_inst.html for wiring instructions.
(28)  Now available again.  Otherwise, you would have to hack an X-Arcade Controller to use the encoder.
(29)  From what I have read, I think this device is active Lo, that is, each button goes to a common terminal, but that terminal is at +5V, rather than GND.  This means that you cannot easily hook up P360 joysticks to an X-Arcade.   The main advantage of the X-Arcade encoder is the ability to buy adapters to use the encoder with other console systems.
(30)  A 4-position switch allows programming and switching between the default and three custom codesets.  There is no way to load an alternate codeset from software.
(30.1)  The USB adapter is now included with the kit.
(30.2)  The HotRod encoder is included for reference and completeness only.  The fact that the encoder uses the Numpad keys for Joystick 1 rather than the direction arrows could indicate buffer and performance problems with the encoder, or it could be for compatibility with very old DOS programs.  The unit is not compatible with some motherboards.  Documentation of the pin-out for connecting controls is available here (local mirror).
(30.3)  The encoder is not commercially available.  The information listed here is either for someone who has purchased a HotRod controller and wants additional information about the encoder, or occasionally, the encoder itself will be available on E-bay presumably either by someone who broke their HotRod Controller, or someone who upgraded their unit to a different encoder.
(30.4)  The HotRod Controller only uses 28 inputs, but the encoder actually supports 32 inputs.
(30.5)  The TOKN KB32 Encoder is a revision of the KB16 with double the number of inputs.  Currently (17May05) it is only available on E-bay, and no information is available on the TOKN website.  If no one bids on one (roughly $10) it's not a bad solution if you don't require easy programmability.  At anything approaching the price of the solderless KeyWiz Eco 2 ($23) it suffers from most of the same drawbacks as it's smaller sibling (KB16): no shifted inputs, the same IDE header connection method, but requires twice as many wires per switch due to the lack of a common ground connection (and also requires two IDE cables as the headers on the board are split), and cannot load a saved config file nor be programmed interactively without an attached keyboard.  The "advantages" of the device are the use of EEPROM to allow memory retention of an alternate saved codeset and an active keyboard pass-thru which allows daisy-chaining of multiple encoders.  A copy of the E-bay advertisement from 17May05 is mirrored here.  My speculative page on how to maximize the encoder's potential is here, and a BYOAC thread on the encoder is here.
(30.6)  The TOKN KB32 is currently (17May05) readily available on E-bay for around $10.50 (but most auctions seem to close around $30-$35 or more), but I am not sure how long this price will be available.  I think units sent after ??Jul05 are including diodes at no charge.
(30.7)  AFAICT (not confirmed), the TOKN KB32 basically uses dual 8x2 matrices.  This theoretically has has a technical advantage over either a 16x2 or an 8x4 matrix, b/c while ghosting will occur without diodes, it will not cross-over from one matrix to the other, so you can gain some advantages by grouping high-risk and low-risk ghosting admin inputs together.
(31)  See here for the KeyWiz default codeset.  See here for the KeyWiz Eco 2 default codeset and wiring instructions.  The Shazaaam! button is independent, so all inputs may be used as "action" buttons.   NOTE: KeyWiz encoders produced prior to approx 31Mar04 have "3" as the default output for input K, rather than "P", all other outputs are identical.  NOTE 2:  While all inputs are useable, unpredicted behavior may occur if opposite joystick directionals are pressed simultaneously.  (Of course this can't occur if a joystick is connected to these inputs!)  If buttons are going to be connected to these inputs, it is recommended that they be assigned to admin or other functions that will not be used simultaneously.
(32)  The joystick directionals cannot be shifted and don't register when the Shazaaam! key is depressed.
(33)  IMHO, easiest to use software of any of the encoders tested.  Custom codesets can be loaded and applications launched from the encoder software or from a batchfile. In addition, the default (MAME-compatible) and one additional custom codeset can be retained in memory, holding the Shazaaam! key and moving the P1 Joystick Right loads the custom code set and Left loads the default codeset.   The KeyWiz software is available at http://www.groovygamegear.com/kw.zip.   A "stealth" version of the software (no splash screen when programming) is available at http://www.groovygamegear.com/KWstealth.zip.
(34)  The KeyWiz MAX includes a keyboard pass-thru and the keyboard or the KeyWiz is selected as the active device by moving a switch.  On the KeyWiz Max 1.5, this switch is re-positioned on the rear of the panel for easy accessibility.  The KeyWiz Eco and Eco 2 do not include a pass-thru.
(35)  Requires a standard USB A-B cable, not included.   Includes free air mail shipping.
(36)  See here for the Ultimarc default codeset.  Added inputs A and B use the same defaults as other Ultimarc I-PAC series boards' inputs for SW7 and SW8.  Added inputs C and D use the following defaults: 1C-Apostrophe, 1D-X (same as 1SW6 (???) >:-((, 2C-5, 2D-Enter.  (Thanks jcroach from BYOAC).  Only 31 inputs can be used for "Action" (non-administrative) buttons if shift functions are used (otherwise, you'll always be accidentally activating the shift function.)  Note that since this encoder uses SDRAM, and since inputs 1D and 1SW6 are identical in the default codeset, you only have 31 inputs available if you use the encoder without reprogramming it at startup.
(37)  The new C and D inputs (four inputs) cannot be assigned a shifted input; however, they can be assigned as shift keys.
(37.1)  The KE-USB36 is similar to the I-PAC Mini-PAC in that it is a keyboard encoder with included trackball interface.
(38)  See the KE-USB36 LED Considerations and Wiring section for details.
(38.1)  The I-PAC/4 is basically the equivalent to two I-PAC/2's daisy chained together on the same circuit board, with the exception that you can program both sides of the board without unplugging one of them.
(39)  See here for the Ultimarc default codeset.  Only 54 inputs can be used for "Action" (non-administrative) buttons if both shift functions are used (otherwise, you'll always be accidentally activating the shift function.)
(40)  This encoder was NOS (New Old Stock) from a batch made in 1995.   Approximately 60 were available on E-bay as of 16Aug04. None were available when I checked on 17May05. See here for a copy of the 16Aug04 product listing on E-bay, here for an edited BYOAC thread with an E-mail from the seller, here for an edited BYOAC mini-review of the encoder, including default codeset, and here for an updated BYOAC thread on the encoder.   My personal opinion on this is as follows:  The encoder does what it claims; however, keep in mind that you are buying a product that is no longer manufactured and apparently has been catching dust in a warehouse for approximately ten years, so might need some repair work.  My comments are then similar to what I quote RandyT as saying in the intro to my Keyboard Hacks page, i.e. only recommended for penny-pinchers or personal conquest.  In summary, I would only recommend this for the following types of projects:

(41)  The MK64 was discontinued on 23Feb04.  I have a mirror of the website available here for preservation in case the main site gets removed.  Note that the six new features on the site (F7 key support, three programmable key map banks (0, 1, 2), Typematic function support, Startup settings, Macro scripts, and dual rotary joystick support) were added on boards produced after 4May03 and were not included on previous MK64 Boards.  There also previously was a 40-input version called the MK40, but it was discontinued before the initial release of this comparison (Aug03)
(42)  See here and here for the MK64 (discontinued) default codeset.  NOTE: I believe the MK64 shipped unprogrammed and you had to select or modify one of these files and load the desired set. Support for two mechanical rotary joysticks requires 6 rotation inputs each, leaving 52 remaining available.
(43)  Input 00 serves as the shift key, and inputs 01 through 07 can be shifted.   Remaining keys are not affected when shift is depressed.  Shift function can be disabled as well.
(44)  Programming is functional and alternate codesets can be loaded from batch files; however, there is no Graphical User Interface programming software.  The most useful parts of the software consist of creating a keymap file in Notepad or Wordpad, and then using a command line program to load the keymap into the MK64, either from the command prompt, or from a batch file.  It's cumbersome, but it works, though.
(45)  See the MK64 LED Considerations and Wiring section for details.
(46)  Programming seems very similar to the MK64.
(47)  See the Hagstrom KE-72 (KE-72T) LED Considerations and Wiring section for details.
(48)  See the Optical Interfaces section for more details.
(49)  This can be done one of two ways.  The simplest method involves just mounting the mouse so that the new encoder wheel passes through the existing mouse optics.  This is shown in the Twisty-Grip spinner design here.  A variation of this is to use a belt to transfer motion of the arcade control to the mouse as done by the Rotary T-Stik Plus Willy Wonka edition.  The other preferred but more difficult method involves removing the mouse optics and soldering the arcade controller's optics in their place.   This does not modify the operation of the arcade controller (but the mouse is pretty much history as a mouse afterwards).  For this method, OSCAR recommends in this thread using Kensington or Belkin Mice and avoiding Logitech or Microsoft mice and provides details on how he makes his mouse hacks in this thread.  Other example pages are provided by Nathan Strum (Cheeptech)MinWah, LuSiD, Massive Mame, WilcoxOnline, and BobA.  Thanks to all the "pioneers" for documenting their efforts for us.
(50)  Typically up to three buttons are available.  (Actually 4-button mice are supported by MAME and are available).
(51)  The hacked mouse will use the same connection method as the unmodified version.
(52)  The OSCAR USB Mouse Interface (pre-hacked USB mouse) will work for a single dual axis device (trackball), and an additional spinner can be connected using a DPDT switch as shown here.   Note that you can't connect both a spinner and trackball without the switch (even if you didn't mind them both being active).
(53)  The Interface is made from a 3-button mouse, but the center button is usually used for the trackball ground.  On request, the interface can be supplied with all three buttons available, but I'm not sure about additional charges for this option.
(53.1)  Wakerlet from BYOAC recently posted that he has successfully used a standard USB-to-PS/2 mouse adapter with OSCAR's USB Mouse Interface.
(54)  Included for completeness, not recommended b/c of price.
(54.1)  Currently (19Jul05), there is an E-bay seller named collectorofneon selling the (presumably older) serial-PS/2 Happ trackball interface (P/N 56-1000-00 ??) along with 3 buttons and an extension cable with a "Buy-It-Now" price of $15, and $4 US shipping, but I have no idea how long this offer will be available.
(55)  The Opti-Pac has four sets of terminals: Player 1 Trackball, Player 1 Rotary, Player 2 Trackball, and Player 2 Rotary.  Each of these "sets" can support up to a 2-axis device (one trackball or two spinners).   When connected, the Opti-Pac will Auto-switch between the Trackball and Rotary inputs for each player, i.e., when one device is moved the corresponding device for the same player is disabled for a set period of time.  This is useful if you plan to have multiple optical devices connected.  You can achieve a similar result using MAME Analog Plus, but you have to configure every game manually.
(56)  The optical devices are connected as either two serial mice, or two USB mice over a single USB connection.  Mixing of USB/serial interfaces is not supported.
(57)  See the Rotary Joystick Interfaces section for more details.
(58)  Direct Connection requires 12 additional encoder inputs per stick, MAME Analog Plus Version 0.77.1 or later (or equivalent NoNameMAME version), only works on actual rotary joystick games (not optical rotary games or spinner games) and currently 9 Jul 05 only works on about half of these.
(59)  Additional cost for direct connection depends on the choice of keyboard encoder.  If you have dual 49-way sticks with Fl0yd's rotary adapter and dual GP-Wiz49 encoders, you probably have enough spare inputs to implement this.  You also probably would have plenty of inputs by sharing Player 3 and 4 inputs on an I-PAC/4 or MK64.  Otherwise, your most reasonable option is to add a GP-Wiz32 Eco for the rotary inputs.
(60)  Both Rdagger's and Druin's Rotary Interfaces convert the rotary of the joysticks into button presses for incremental rotation right and left.   These outputs are then sent to the keyboard encoder as two switch closures and then sent as keyboard presses to the PC.  It is recommended (but not required) that you use the MC-Escher source files (released for MAME 0.59 and incorporated in MAME Analog Plus in 0.71.2, improved through 0.74.1 and included in later builds).  Some adjustment to the analog sensitivity settings may also be required.  Both interfaces also require an external +5V source supply, either from the encoder or the PC power supply.  They also can only be used with direct-mode, not matrix-mode encoders.   A local mirror of Rdagger's page is available here.
(61)  Price is from Rdagger's site and is for the pieces/parts to build your own interface.  Completed assemblies are not readily available.  (An Interface Cable is required to program the chips and I'm still not sure how to do it.)

GENERAL CONSIDERATIONS

This section will give an overview of the device types and the Specific Considerations section will deal with individual items related to arcade interfaces.

Gamepad Encoders

While gamepad and joystick hacks have been around for a long time, true dedicated gamepad encoders are a fairly recent (??Apr05) development.  Basically, the concept is similar to the keyboard hack, except that the encoders are seen by the PC as gamepads.   This means that multiple devices can be plugged in without conflicts, and while some of the devices incorporate shift functions, there is really little reason to make the devices programmable.

Gamepad Encoder vs. Keyboard Encoder

Because of features/price, this section is aimed primarily at the GP-Wiz series of encoders; however, the general principles should apply to any gamepad encoder.

Performance Considerations:  There has been lots of debate on the performance advantages of PS/2 over USB for keyboard encoders.   Thankfully the same is not the case with gamepad encoders.  The USB specification is geared toward gaming devices, and I have been informally told by a developer of these devices that the performance is at least the equal, if not slightly better, than their PS/2 keyboard encoders, plus the convenience of specification-supported hot-swappability.

Feature Considerations:  There are three ways that these can typically be used - as a primary encoder, as multiple encoders with swappable panels, and as a controller for add-on panels in addition to a keyboard encoder.   I will look at all the options below:

Primary Encoder:  There are two concerns with using a gamepad encoder as a primary encoder - the type of software you run, and if you want to have a "Plug and Play" type controller.  Regarding software, MAME will recognize all gamepad encoders, so you don't have any problems using it.  You will have to re-configure the start and coin inputs, the admin functions, and (in the case of the GP-Wiz) the Player 2 controls to use gamepad inputs, but this is a simple one-time setting change.  Most emulators will support gamepads directly.  Many PC games will only support keyboard input, but there are programs to "translate" the gamepad buttons into keypresses.  Using this software is no more difficult than programming your encoder to a different codeset, which you would have to do with a keyboard encoder for these games anyways.  About the only disadvantage would be if you were taking a CP to a friend's computer, where a keyboard encoder with the default MAME set would work "out of the box", but a gamepad encoder based system would need to be configured initially.

UPDATE:  Thurman from BYOAC recently posted that both ZSNES and Gene Rally only recognize the first 16 gamepad buttons for each gamepad.   This creates some challenges for the GP-Wiz line of encoders.  Ironically, the easiest and most practical solution is to use either of the software programs below to simulate keyboard inputs to be sent from your gamepad encoder to your console emulator that originally used gamepads.  Go figure!!!

Multiple Encoders:  This is an area where these products really shine due to the ability of the controls to "shift downward".   For example, let's say I have a Street Fighter Style desktop controller, and an Ikari Style desktop controller.  I want to be able to use either panel for any one or two player games, and I want to be able to use both together for 4-player games.   There is no way to do this with multiple PS/2 encoders, b/c you can't connect them both to the computer at the same time.  With multiple USB keyboard encoders, you would have to reprogram the second keyboard encoder to send Player 3 and 4 outputs when you are playing a 4-player game.  With a large keyboard encoder, it could be done using DB25 ports between the encoders and the panels, but the wiring gets VERY complicated.  With gamepad encoders, it becomes mind-numbingly simple:  Plug the panel in.  If no other panel is present, it becomes gamepad one.  If another panel is installed, it becomes gamepad two, etc.

Add-On Panels:  Another useful area for these encoders is in addition to a keyboard encoder panel for additional controls.  The advantage is similar to above.  Let's say you have a PS/2 keyboard encoder installed, but you want to add a secondary panel with more inputs.  You could use one or more USB keyboard encoders, but you would have to program them away from the default configuration so they did not conflict with your PS/2 keyboard encoder.  With a gamepad encoder, this is not required because you can use keyboards and gamepads at the same time, so there are no conflicts.

Gamepad Encoder Useful Software

Either Joytokey or RBJoy can be used with a gamepad encoder to send keycodes rather than gamepad button presses.  I have not used either program.   Joytokey has been around longer, but RandyT says that RBJoy is more capable.

JoyToKey is available here.  A local mirror but possibly not the latest version is available here.

RBJoy is available here.  Setup instructions are available here, or included in the local mirror of the file (possibly not latest version) here.

USB Device ID's

NOTE:  The information below should be accurate for a Windows system.  I am not sure if Linux suffers the same problems, or even if the USB Device ID is used by Linux.  Contact me if you know and I will update this section.

What are these and what should you know about them?

The USB Device ID is how Windows identifies a peripheral device.  Refer to this linked and the following question on this page for a detailed description of how MAME handles devices with the same device driver.  (The reference page deals with mice and duplicate drivers in MAME Analog Plus, but gamepads are handled the same way and regular MAME (and Analog Plus) now supports up to eight devices.  Also, for purposes of this discussion, devices with the same USB Device ID will act the same to MAME as devices with the same driver, and devices with differing USB Device ID's will be seen as devices with different drivers.)

In commercial arcade controls, I believe DaveB's AKI was the first device that could be ordered with specified USB Device ID's, and the option has since been added to the SJC, the GP-WIZ, the GP-WIZ49, and on-request to the A-PAC.  BTW, it is important to mention that the device ID is not changeable, once it is determined it is permanent.  (I think the manufacturer COULD reflash the microprocessor to change the device ID, but you would have to contact them on an individual basis to confirm this.)

So should my devices have different device ID's or not?   The short answer is "If you are not sure - you are safer having different ID's".  The long answer is below:

Arcade Cabs with permanent control panels - The biggest problem with having two devices with the same device ID is that if you leave the devices plugged in and restart Windows, they may swap locations.  For example, let's say you have a two-player cabinet with 49-way joysticks and two GP-Wiz49 interfaces with the same device ID's.  You set the left stick up as Joy1 and the right