Difference between revisions of "Keyboard Hacks"
m (10 revisions)
Latest revision as of 09:23, 5 December 2013
A keyboard hack refers to taking apart a standard computer keyboard and using its circuit board (aka encoder) to interface arcade controls to your computer. Keyboard hacks must be planned carefully and are prone to ghosting and blocking issues. Diodes can mitigate ghosting issues, but will do nothing to prevent blocking issues. However, by carefully choosing inputs, you can avoid both problems without the use of diodes, although you will usually be limited to only enough inputs for a SF style panel (2 joysticks and 6 buttons per player). Keyboard hacks can be sometimes be cheaper than purchasing a commercial keyboard encoder. The overhead and difficulty of hacking a keyboard and the availability of very low cost commercial keyboard encoders make hacking a keyboard of limited value. Also, due to issues with the USB keyboard specification, USB keyboards are not suitable for hacking, and due to inability to freely select the keys to be utilized, keyboard hacks are only really useful for emulators that allow key remapping, or small single-player panels. See the BYOAC keyboard hack section for more information or Tiger-Heli's detailed write-up.
Image used courtesy of Project Arcade. Diode orientation may need to be reversed - Trial and error.
Basically, ghosting is a problem with scanning matrix keyboard encoders, where pressing three simultaneous keys that from a rectangle in the (row and column) matrix causes an unintended fourth (ghost) key to register.
This is a more commonly mentioned, but less troublesome problem than blocking. Also, ghosting can often be overcome through the use of diodes, while blocking cannot.
To avoid the problems of ghosting, most newer (1993 and up) keyboards employ a technique called Blocking. Blocking is a firmware method where the keyboard prevents a third input from registering if it forms a rectangle on the matrix and could potentially create a ghost input.
This is good for typing, but bad for arcade controls. Unlike ghosting, blocking CANNOT be overcome by the use of diodes. Also, blocking is more troublesome than ghosting, because while ghosting creates an unintended input (which may or may not affect your game); blocking prevents an intended input from registering, which almost certainly WILL affect your game.
The good news is that blocking can be avoided by carefully choosing the inputs to use on your keyboard hack.
See Tiger-Heli's Detailed write-up for a more complete explanation.