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.
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.
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.
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:
- The majority of the encoders listed below will work adequately for gaming usage, but the two companies above have tailored their products toward the arcade controls specialty. However, if you find a deal on a used Hagstrom or MK64 or Lupine (or other) encoder, it may be worth getting if it has the features you need. However, I wouldn't go out of my way to specifically look for a deal on these, unless they happen to have some feature that the other encoders don't offer and that you can't live without.
- For a classics cabinet with a limited number of inputs, if cost is a major factor, and you are comfortable with soldering, and you only plan to use the encoder with MAME or another assignable input emulator, then a keyboard or gamepad hack MIGHT be suitable, but see the Emerging Trends section below before you decide on that route.
- There are some very limited situations where the TOKN16 encoder makes sense - i.e. basically if you can get one for the E-bay price (currently (12Jul05) about $10.50, at anything over that, the KeyWiz Eco2 at less than $25 is a better deal), and you don't like (or trust yourself) with soldering, and you want to use the encoder with an emulator (or games) that require very few inputs (otherwise a keyboard hack is a better deal b/c you have more functional inputs) and that same emulator is non-configurable (where the TOKN16 has an advantage over the keyboard hack b/c you can program any outputs you want) and you only have one such program to use it with (otherwise the KeyWiz Eco2 is a better deal b/c of programmability through software). Even with these limitations, the encoder still requires diodes or creative workarounds to avoid ghosting. See my review of the TOKN16 for details.
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.
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.
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).
- Price - Everyone likes to save some money when we can and in the case of a $100-$200 desktop controller, a $20 difference in encoder price is as much as 1/5 of the total cost. However, most of my readers will be making custom arcade cabinets. Compared to the cost of the total project, $20 is minuscule.
- Programmability - Given the price difference, it would be hard to recommend a non-programmable encoder, but I found that 99% of the time I play MAME and there is usually no reason to reprogram the encoder for MAME. So while it's a useful feature, it's one that I (and probably most users rarely use).
- Software Delays - I do reprogram my encoder for PC games. I am one of those people that delete the intro mpeg's to software and the Windows splash screen to make it load faster, so I thought delays waiting for the alternate codeset to be loaded would really bother me. It doesn't. And the KeyWiz software is supposed to be slower than the I-PAC software, so it would not bother me at all. (I run Win98 though, and it's supposed to be slower under XP, so I can't say whether that would bother me or not.
- Default codeset - See above. Basically, I think I make too much of a big deal out of this and most people totally ignore it. While I don't like the default codeset on the I-PAC VE, it's only one repeated key, you still have 31 others you can use. I doubt it would bother me that much in reality, it just bugs me that it is poorly laid out for no apparent good reason. OTOH, the default KeyWiz codeset is just about perfect unless you are one of those people that insist on re-programming MAME away from Ctrl and Alt keys, and I'm not.
- EEPROM - The KeyWiz is SDRAM based, and I rarely reprogram it, much less have a problem with it losing a custom setting. This is one of those things where if you don't like the default codeset (and try to hot-swap encoders) you don't want SDRAM, but otherwise, it's not a big deal.
- Macros - I like that the new I-PAC software allows you to assign key combos (particularly Alt-F4 to exit) to an input. That said, I rarely re-program my encoder at all. If I were going to do so, there are usually either wrappers, modified versions of the program, or background programs such as AutoHotKey or UltraKeyboard, that could accomplish the same thing for me.
- LED's - MAME flashes the keyboard LED's on coin start for a handful of games. I used to think this was really cool and something I would not want my control panel to be without. But it's only about 12 games out of the 500 or so that I like to play, and not any of my favorites at that. (I know BuddaBing and AdvanceMAME will allow you to have the LED's work on all games eventually). In the mean time, having used a panel with LED support, the majority of the time, the LED's are lit when they shouldn't be (in a front-end, for example) or not used in the current game. I still think it's a neat feature, but nowhere near as important as more inputs or fast accurate key response when choosing an encoder.
- USB vs. PS/2 - Not nearly the issue everyone makes of it, IMHO. My hot-swapped desktop CP is an ideal candidate for USB, but my encoder is PS/2 and I routinely hot-swap it. Regarding performance, I can't bring myself to believe that USB has a NOTICEABLE performance lag compared to PS/2, regardless of what the theory says.
- Keyboard pass-thru - Unless you are running DOS, it shouldn't matter whether your encoder is PS/2 and you use a USB keyboard, your encoder is USB and you use a PS/2 keyboard, or if you unplug the PS/2 encoder and plug the keyboard in to replace it. Even if you are running DOS, you should only need to use a keyboard when you are updating to the latest MAME version, and even then, there are ways to minimize the need for a keyboard. On my CP, I covered over the keyboard pass-thru connector and have never missed it.
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).
- Raw number of inputs - The KeyWiz has 32 inputs and 24 shifted inputs. This should be more than enough for MAME. But I found that for PC games, I need every bit of the 32 basic inputs, and about 12 of the shift functions. The extra inputs were more useful than I would have thought.
- Shift Keys - I used to think these were a waste of time, b/c who wants to try to remember some weird combination when you want to do something. I've found F3 (Reset, Shazaaam!-P2B3 on the KeyWiz) extremely useful, but wouldn't want a button for it permanently on my CP. Nice feature.
- Screw Terminals - I've only had to swap wire locations a couple of times, but I found the screw terminals VERY handy for this. Whether there worth the extra money is a personal decision, but they are much more convenient if the extra cost isn't a factor.
- Auto Codeset Swapping - This is a KeyWiz feature which could be useful if you use MAME and one other non-assignable program. I didn't like it at all, and still don't use it, but I could see it being useful for some users, and it has never caused me any problems.
- Terminal Labeling - Okay, I have a hard time with this one. To my way of thinking, I could care less what the PCB says and would just as soon have it show symbols by each terminal and then wire up my controls however I thought best. However, I have heard several BYOAC members purchasing the I-PAC encoders b/c the inputs labeling seemed easier to understand, so I guess it makes a difference to some people.
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:
- Death of the Keyboard/Gamepad Hack: Hacks like this used to be an affordable alternative to buying a keyboard encoder. If you are using MAME, most well-designed keyboard hacks can support a two-player street fighter layout as detailed on my page here. However, while the cost of the keyboard itself is often free, you still need about 4 hours of your time to map out the matrix, plan out the controls, and solder the wiring onto the processor card, only to end up with a very limited, non-programmable interface. If you have the skills to successfully solder a keyboard hack, you now can buy the KeyWiz Eco2, GP-Wiz, or GP-Wiz49 Eco, and get 98% of the functionality of a standard encoder for under $20. If you don't have the skills to solder, you can get the no-solder version of the above controllers for $23.
- Don't buy more encoder than you need: Mega-Encoders such as the I-PAC/4 and the MK64 used to be the hot item for building an arcade cabinet. They still have a place, for example, if you know for sure that you want to build a Frankenpanel™ and want to be sure you have enough inputs. I was considering one for my multiple arcade panel set-up, but decided that this would take a long time to build and figured out how to combine inputs and make a 32-input encoder work for my four player set-up (which I have yet to build). However, DaveB introduced the AKI, analog interface and gamepad encoder, GroovyGameGear followed with the more-affordable GP-Wiz gamepad encoder, and Ultimarc followed with the A-PAC analog interface and gamepad encoder. For a number of reasons, these products are advantageous as an add-on encoder for multiple panels, if not as a primary encoder. (For example, you can connect multiple gamepad encoders and they will "shift" from Player 1 to Player 2 to Player 3 automatically, which you cannot do with a keyboard encoder.) Also, because of aggressive pricing, it is very feasible to buy one 28-32 input encoder now and then add one (or more) of these encoders later when/if you decide to expand your system.
- The growing popularity of the 49-way joystick: 49-way joysticks have been around for a long time, but they were always something of an anachronism. There were only a few arcade games that used them (Sinistar, Blaster, Arch Rivals, and PigSkin 621 A.D.). Mame Analog Plus would allow direct connection of them through an encoder for these games, but that was about it. Then DaveB introduced the SJC which allowed them to be seen by the computer as an analog joystick. However, the sticks really gained popularity after GroovyGameGear introduced the GP-Wiz49 interface, and with good reason. The interface utilizes Digital Restrictor Selection (DRS)™ which makes the stick appear to the computer as either a true 49-way stick, 8-way joystick, 4-way joystick, rotated 4-way joystick, 2-way vertical joystick, or 2-way horizontal joystick. Now you have a stick still in production with a throw and feel similar to a Happ Super, with a centering grommet like the old Wico leaf joysticks (and soon a ball-top handle like one), with no clicking microswitches, which can play all the joystick games in MAME (except the true analog ones) flawlessly, and which can even be set to the correct mode of operation automatically by commands issued from a front-end. In addition, the interface supports 23 standard and five shifted buttons per joystick, making additional encoders largely unnecessary.
- New options for connecting analog controls: As previously mentioned, both DaveB introduced the AKI and Ultimarc introduced the A-PAC for connecting analog controls to the PC. This is a huge improvement over the previous method, which was either hacking a Microsoft Sidewinder Dual Strike gamepad, or modifying the controls to use 100K pots and connecting them to the gameport. However, these products lack the impact of the other products above, due to the relatively small number of games that require true analog controls, and the long throw of most analog joysticks, which makes them unsuitable for digital joystick games.
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.
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).
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:
- 16 inputs for 4 joysticks.
- 14 inputs for Player 1 and 2 Buttons (7 each)
- 8 inputs for Player 3 and 4 buttons (4 each)
- 2 inputs for Escape and Pause
- 4 Coin Inputs
- 4 Start Inputs
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):
- 24 inputs for 6 joysticks.
- 16 inputs for Player 1 and 2 Buttons (6 Action buttons each in a HotRod style layout, with one button repeated for Neo-Geo games, buttons 7 and 8 for joystick rotation).
- 8 inputs for Player 3 and 4 buttons (4 each)
- 6 inputs for Player 5 and 6 buttons (3 each)
- 2 inputs for Escape and Pause
- 6 Coin Inputs
- 6 Start Inputs
This results in the following categories, as shown in the Comparison Table section:
- Street Fighter - This is the standard, 2-player setup, as shown on the HotRod, X-Arcade, OzStick, etc. It requires two joysticks and 6 buttons each, so 20 inputs, or 22 with coin inputs.
- Ikari/Street Fighter - This is the same setup as above but with additional inputs for mechanical rotary joysticks. This requires 24 inputs, or 26 with coin inputs. Note that it would be possible to achieve the same functionality with no additional inputs by using optical rotaries, or by mapping the rotation inputs in parallel to buttons 5 and 6 and using switches to allow/prevent the rotation inputs from registering. (AFAIK, there are no rotary joystick games with more than 3 buttons each, most only have two buttons.)
- Tank Games - Basically, this is a set-up to support Sarge and Vindicators (two 2-way (vertical) two thumb buttons, two trigger buttons, and one action button per player), Assault (two 4-way joysticks and two buttons), and a handful of games requiring four 4-way trigger and thumb button joysticks. These require 26 inputs, or 28 with coin inputs.
- Three-player, 3-button games - These require 21 inputs, or 24 with coin inputs.
- Four-player, 2-button games - These require 24 inputs, or 28 with coin inputs.
- Four-player, 3-button games - These require 28 inputs, or 32 with coin inputs.
- Four-player, 4-button games, these require 32 inputs, or 36 with coin inputs. (And remember, we are only talking about three games (unless Tekken gets emulated).
- Five player, 2-button games, these would be six player 2-button games with one player missing. This requires 30 inputs or 35 with coin inputs. (only two games).
- Five player, 3-button games, again these would be six-player 3-button games with one player missing. This requires 35 inputs or 40 with coin inputs. (only one game).
- The next jump is six-player 2-button games - 36 inputs or 42 with coin inputs. (and again, only two games).
- The final emulation level is six-player 3-button games - 42 inputs or 48 with coin inputs. (and there's only one of these).
- Beyond this, for console emulation, 4-player games, we generally need 6 buttons per player plus Start and Select, or 48-inputs. (However, most console games are designed for and would play better on a USB gamepad than on true arcade controls, so I don't recommend using an encoder for these.)
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.
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) |
(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:
- Applications - This encoder should only be considered for applications which a) require a low-cost encoder solution. b) require an encoder with more than 32 inputs but less than 61 inputs (Mechanical Rotary joysticks using MAME Analog Plus or 4-Player cabs with no shared buttons) and c) do not require a programmable encoder (MAME or modern emulators, but no older emulators or PC games).
- Individuals - This encoder should only be considered by individuals for which budget considerations are a primary concern and who like the challenge of not using a mainstream approach, and for which either a) they can live with one or two banks of inputs possibly not working (essentially a 52 or 44-input encoder), or b) they own a soldering iron, a multi-meter, and the requisite skill set to trace printed circuit board wiring and repair if required. (And if b) applies, they probably could afford a less-troublesome encoder.)
(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.)
This section will give an overview of the device types and the Specific Considerations section will deal with individual items related to arcade interfaces.
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.
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