That was interesting, thank you. Sometimes I could do it 7-8 times out of 10, and sometimes only 2-3 times out of ten. Then I went back to MAME, did some more testing and found out it makes quite a difference what keys are used and where are they located from each other. So, I had to think of some more precise test as having to use two hands introduced a lot of human error.
This new test requires input keys can be redefined, so we can choose two keys that are next to each other, like Q+W or DOWN+RIGHT arrows keys. Here are some new interesting discoveries:
* when I assign keys for 'right' and 'jump' to Q and W,
then I can do it 9-10 times out of 10
* when I assign keys for 'right' and 'jump' to RIGHT and DOWN arrow keys,
then I can do it only 1-2 times out of 10
Now, I can see only one explanation for this to be so, and that is because the PS/2 packets for arrow keys are actually made of two scan codes, where most of the other keys are described with only one scan code.
And, since this happens equally with USB and PS/2 keyboards of mine, then I conclude USB keyboard protocol is indeed only an outer layer around good old (legacy) keyboard buffer.
However, what is confusing about it, is that it turns out even PS/2 actually has quite a problem of delivering even only four scan codes per frame @ 60fps, while USB keyboard surprisingly can actually deliver 2 keys per frame without a problem, every time just like PS/2, even though with 125Hz polling rate it should not be able to do it so easily.
|I'm at work now so I'll have to wait to do keyboard tests. If you tell me exactly what you want me to run I'll do that when I get home. I use the 55g Topre Realforce that's on elitekeyboards, I don't believe it does anything unusual with packets. It does support NKRO (if plugged into ps/2 with adapter) if that makes any difference.
That would be most welcome.
A.) * Passmark keyboard testhttp://www.passmark.com/products/keytest.htm
1. Press [Q+W+E+R] in the same time, or try banging on the keyboard as fast as you can.
2. In any case see what is the minimum number you can get for "lag time", the time between key presses.
B.) * USB sniffer diagnostic software, free to try:http://www.topshareware.com/USBTrace-transfer-42419.htm
1. Start session
2. Press THREE buttons in the same time [Q+W+E]
...hold ~2 seconds
3. Release all three buttons in the same time
...wait ~5 seconds
4. Press FOUR buttons in the same time [Q+W+E+R]
...hold ~2 seconds
5. Release all four buttons in the same time
6. Take a screen capture you can upload here
* Maybe also apply filters, so to only show "IN" packets with "DATA".
...hopefully you will have fun doing it too Edited by dan_k - 10/7/10 at 11:17pm