Never tickle a sleeping dragon.

Friday, July 10, 2009


Bizarre Keyboard Processing

Imagine you're navigating a game by keyboard -- specifically with the WASD keys, a common combination for movement.

You're holding down two keys in the same row -- say, A and S (A moves west, S moves south, so A-S would move diagonally to the southwest). You then press 2 with the other hand, to activate some ability on your toolbar.

And nothing happens.

I was testing this with Spy++ on Windows, and found something bizarre.

In general, if you're holding down two keys in the same row, certain other keys aren't sent to the application.

Let's refer to each column of keys as the number on top of that column (so Column 1 is 1QAZ, Column 2 is 2WSX, etc.).

Now let's say you're holding down the A and S keys. In Spy++, you can see you've pressed A, you've pressed S, and S is repeating (as the second key pressed). Any other key you press in Columns 1 or 2 will not be processed.

Similarly, if you hold down Z and C, no other keys in Columns 1 or 3 will be processed.

But then it gets even more bizarre. Let's say you're holding down B and N. According to Spy++, no key in Columns 3, 4 or 5 will be processed. In Column 6, the 6 and H keys will be recognized, while the Y key is ignored.

The only thing I can think of is keyboard wiring.

Anyone have any thoughts as to why this is happening?