Ok, I know I'm a new poster, but I did want to say somthing.
What Microsoft did in the Sidewinder X4, is new for *keyboards* themselves, but part of the technology has actually been around for some years. Basically, what microsoft did was use something called an 'endpoint interrupt', which would allow more than 6 button inputs to be passed simultaneously through USB (usually USB is limited to 6 keys, or 6+2 modifiers (or maybe it's 4+2, as per NKRO). The old PS/2 port could accept any combination AND number of keystrokes; it was up to the hardware to actually send it. With the sidewinder X4, two "endpoint interrupts" are installed, which are visible to the user as two "sidewinder X4's".
Now, the sidewinder X4 itself is capable of sending, I think, 24 (or 28?) simultaneous keystrokes. The problem is, you get issues when you get past 12.
Andy Warne, who used endpoint interrupts for the I-pac keyboard encoders (for joystick-keyboard encoders for arcade video game controllers), found a bug (with me testing results for him) with the microsoft USB keyboard driver. Basically, an issue occurs that causes "ghost" and "previously pressed" keys to start appearing or refusing to activate, once you get past 12 keypresses. The I-pac2 FS32 had the same problem in early firmware, even though i twas supposed to send up to 24 simultaneously, but Andy was able to extend the number of flawless keypresses sent, from 12 to 18 (pretty sure it was either 18 or 19), by doing a workaround for the MS Keyboard driver, that involved increasing some sort of packet size. But the sidewinder has similar issue as the original FS32, so you can't do more than 12 simultaneous presses without issues, even though the keyboard is advertised as being able to do much more. But I don't think there is anyone who would need more than 12 presses from a keyboard, anyway. Now a two player joystick controller is a different story
