Here you'll get into some of the finer
technical details and explanations. Got some technical expertise
you want to share? Please let me
know!
Definitions | |
Emulator & Game Support | |
Joysticks | |
Keyboard Ghosting | |
Monitors | |
Step-by-step Guides | |
Tutorials |
Definitions | |
Joystick | |
Keyboard Ghosting | |
Monitors | |
Step-By-Step Guides | |
|
|
Tutorials | |
|
|
|
|
|
|
|
If you use each one as a separate keystroke, you have no ghosting problem, of course, but are limited to 24 keystrokes then. Depending on your needs, this may work perfectly.
If you choose to use a matrix, you can use any combination up to 12 x 12, but also something like 2 x 22 if you chose. To avoid the ghosting problem, all you'll need to do is figure out which keystrokes you're going to want to generate, and then arrange them on the encoder so that they don't overlap. If for instance hitting 3 buttons on your matrix gives you the ghost of a fourth matrix combination, make sure that fourth matrix combination is assigned a useless keystroke that has no affect on your application(s).
If you end up with conflicting needs for different applications where you'll have ghost problems in one but not another, you can just have a different matrix for each application since the KE24 is software programmable.
--- Note - I haven't actually *done* this so I have no clue as to the veracity of what I'm saying, but this is how I understand it. Keyboard encoder from Hagstrom Electronics.
Good point, it seems like if you are smart about how you program your matrix, you can get around the ghosting problem, but that still leaves the key masking. Whenever you have three corners of a rectangle signalled on your matrix, key masking occurs.
For example, take the non-programmable Hagstrom encoder. Column 1 (C1) has the letters A-I, C2 has J-R, and so on. If I generate the A (C1R1), B (C1R2), and J (C2R1) simultaneously, the encoder "sees" C1, C2, R1, and R2 all close. This generates a ghost K (C2R2). Hopefully MAME (or whatever) will ignore this. Now, let's release the A. R1 and C1 are still closed, though, because B and J are still pressed. The encoder has no way to know that we released the A, because R1 and C1 are still closed. Your fire button (or whatever) gets "stuck" until you let go of thrust (or whatever).
Clearly, you can design your matrix around this - we don't care if we get masking on player 1/player 2/coin insert, for example, because we don't press those during play. And if we use the programmable encoder, we can change the setups for each game. (Stargate has a bunch of buttons but only has one joystick, so we can steal inputs from the second stick)
Warning - this involves getting into the electronics of the monitor, where 30,000 volts or so live. If you have any doubts, don't do this. Shock, injury or death can result.