Author Topic: Keyboard Software?  (Read 2571 times)

0 Members and 1 Guest are viewing this topic.

Offline 443330

  • Thread Starter
  • Posts: 106
Keyboard Software?
« on: Tue, 17 January 2012, 03:07:56 »
Hi all,
I have a few questions regarding keyboard software and if they can actually improve performance/responsiveness?
These questions came about reading a review of a gaming mechanical keyboard (don't worry I wouldn't dare buy one) the reviewer states that this keyboard has a feature which changes the speed of key presses being registered. Here is a quote from the manufacturer of this keyboard.

Quote from Zowie:
The primary feature of the ZOWIE CELERITAS is the newly developed ZOWIE RTR™ (Real Time Response) technology which allows the user to define the repeat-response of their presses to be 1x, 2x, 4x or 8x of the normal repeat-response for a keyboard when using the PS/2 connector. RTR™ allows gamers to gain a higher responsiveness from their keys and thereby increase the pace of movement in FPS and Racing games or possibly even increase the APM in RTS. How fast do you like it to be? We give you the possibility so you can define your most comfortable repeat-response.

He also claims the average lag time for key presses registering is lower due to the fact of this feature and the use of a PS2 connection instead of USB.

Now I am not sure if I read it here on the Wiki's or on another site about mice but I have been told that the PS2 connection does not yield any benefits over a USB Port overclocked at 500hz.

So my questions are:
1. Is it possible to tweak through software the way the KB interacts with the computer to yield lower input lag/improve responsiveness?
2. Is it possible the feature on this keyboard can reduce input lag or improve responsiveness?
3. Would there be any benefit from me switching to a PS2 adapter compared to my 500hz overclocked USB port?

Here are the two pages of interest
Special feature: http://www.cybergamer.org/article/2356/page-4/Zowie-Celeritas-Review-Word-from-manufacturer/
Input lag graph: http://www.cybergamer.org/article/2356/page-6/Zowie-Celeritas-Review-Word-from-manufacturer/

I am sure I had more questions but I can't remember them at this stage.

Looking forward to the responses.

EDIT:
I found these entries in the registry
KeyboardDelay = 0
KeyboardSpeed = 31
It appears these are linked to the keyboard settings in the Control panel, I wonder what would happen if I increased the keyboard speed?

I also found two pages explaining a technique
http://www.pctools.com/guides/registry/detail/1156/
http://www.palmtoppaper.com/ptphtml/28/pt28003c.htm

I am having trouble understanding exactly what this tweak does  KeyBoostTime=.005 anyone have a explanation?
« Last Edit: Tue, 17 January 2012, 03:43:34 by 443330 »

Offline Soarer

  • * Elevated Elder
  • Posts: 1918
  • Location: UK
Keyboard Software?
« Reply #1 on: Tue, 17 January 2012, 04:01:50 »
All they seem to be talking about is changing the rate that keys repeat, which isn't going to make one iota of difference in most games (since they tend to ignore repeats and track key state (down/up) only). Marketing bull.

1. On Windows, only by the USB overclock, or by using full speed instead of low speed USB (hardware), so that's a no. Other OS might respect the polling rate indicated by the keyboard/mouse, so that would be a yes in that case.

2. No. Note that they say average lag (presumably including repeated 'make' events). Repeats count for nothing with pretty much all games.

3. Possibly, but the improvement would probably not be noticable to a human.

Registry settings are just for repeating keys also, and again, no use for games usually.

Offline 443330

  • Thread Starter
  • Posts: 106
Keyboard Software?
« Reply #2 on: Tue, 17 January 2012, 04:05:14 »
Thanks for your reply, I guess what I am getting at is trying to achieve the lowest input lag possible. What I mean by this is I want the shortest delay between pressing a key and that key press being registered in game.

Also I am curious how their (Real Time Response) technology actually works, is it from the keyboard it self? or drivers/software?

Another thing I am confused about is the delay on this graph
http://shrani.si/f/3O/dQ/1Ya3qWwh/lagtime.jpg
How is the delay so high when a USB port at the standard hertz of 125 has a delay of 8ms?
« Last Edit: Tue, 17 January 2012, 04:13:32 by 443330 »

Offline Soarer

  • * Elevated Elder
  • Posts: 1918
  • Location: UK
Keyboard Software?
« Reply #3 on: Tue, 17 January 2012, 04:15:02 »
Yep, I realise what you want... but this RTR crap won't help you :-)

With a PS2 keyboard, those values in the registry get sent to the keyboard. Way back in the day, IBM defined the timings that each value corresponded to. All Zowie have done is use different timings for each value.

edit: I can't even tell what they measured in that graph... but if (as I suspect) it includes timings of repeated keys, then it's garbage.
« Last Edit: Tue, 17 January 2012, 04:29:30 by Soarer »

Offline 443330

  • Thread Starter
  • Posts: 106
Keyboard Software?
« Reply #4 on: Tue, 17 January 2012, 04:21:10 »
Yea, I don't really fall for their marketing which is why I am asking you guys. But I am curious as to how they have lowered their input lag?

Offline Soarer

  • * Elevated Elder
  • Posts: 1918
  • Location: UK
Keyboard Software?
« Reply #5 on: Tue, 17 January 2012, 04:32:34 »
I don't believe they have at all. They keep saying 'average', and talk about repeat rates a lot. I don't see anything that would reduce the time from when you actually press a key to it being registered, which is the important lag.

edit: that 'review' is so uncritical, I'm reading it as if it was simply more marketing material from Zowie!
« Last Edit: Tue, 17 January 2012, 04:37:46 by Soarer »

Offline 443330

  • Thread Starter
  • Posts: 106
Keyboard Software?
« Reply #6 on: Tue, 17 January 2012, 04:39:29 »
Yea, exactly what I thought. In my mind there are only 3 or 4 variables, the actual switch, the polling rate of the port, the delay until windows registers the key press, and finally the game registering what windows has told it.

So would it be possible to prioritize windows to deal with the incoming keypress earlier? or tweak the game somehow?

Also have you ever heard of raw input? I use a tweak to enable raw input for my mouse but I am wondering if it does the same for the keyboard?

Offline Soarer

  • * Elevated Elder
  • Posts: 1918
  • Location: UK
Keyboard Software?
« Reply #7 on: Tue, 17 January 2012, 04:56:47 »
Actually, you've missed one which turns out to be highly variable - the rate at which the keyboard scans the keys and executes its debounce logic. In other words, the delay between pressing the switch and the keyboard being ready to send it.

The lowest lag can be had by using full speed USB, a custom controller, and either hand selecting the least bouncing Cherry switches or modifying a capacitive keyboard (HHKB or Realforce). Or maybe using my crazy anti-bounce code idea, which I still haven't tried yet. How far are you willing to go?!

Lag and debounce were discussed quite a bit in the Keyboard scan rates wiki.

Windows tweaks, I don't know. If it hasn't been found by now and in common use, then it probably isn't there :-)
« Last Edit: Tue, 17 January 2012, 06:01:21 by Soarer »

Offline 443330

  • Thread Starter
  • Posts: 106
Keyboard Software?
« Reply #8 on: Tue, 17 January 2012, 04:58:28 »
Ahh, that's what I have been looking for. Cheers.

Offline Tony

  • Posts: 1189
Keyboard Software?
« Reply #9 on: Tue, 17 January 2012, 05:26:45 »
Best key spamming are about 240wpm = 20 presses per second = 50ms per key.

CPU speed is much faster. Most of the time the CPU is waiting for the keypress from user.
Keyboard: Filco MJ1 104 brown, Filco MJ2 87 brown, Compaq MX11800, Noppoo Choc Brown/Blue/Red, IBM Model M 1996, CMStorm Quickfire Rapid Black
Layout: Colemak experience, speed of 67wpm

Offline 443330

  • Thread Starter
  • Posts: 106
Keyboard Software?
« Reply #10 on: Fri, 20 January 2012, 21:14:19 »
Hey Soarer, What would be the easiest method on a KBC Poker to reduce input lag, and also reduce the buffer between double taps of a key?
From what I can gather, these two lags are the only important ones when it comes to FPS games right?

Offline Soarer

  • * Elevated Elder
  • Posts: 1918
  • Location: UK
Keyboard Software?
« Reply #11 on: Sat, 21 January 2012, 06:40:04 »
Drink more coffee :-)

There is no easy method AFAIK. Even if you overclock the USB, there's no guarantee a keyboard's firmware will keep up with it.

Replacing its controller with a custom one would make sure the USB polling is 1000Hz and that the firmware knows it can push events out that fast. Also, one could experiment with debounce methods.

A double-tap is just two keypresses, so there's no extra lag as such. Roughly, the time between the events reaching the game will be the same as the time between the two presses. I say roughly, because the lag will vary. If you have a lag that varies between 20 and 30mS, then the events will have the same gap as the presses give or take up to 10mS. A custom controller could reduce that variance to +/- 1mS. A more consistent lag (for any press, not just double-taps) would play better, even if the average lag isn't reduced much.

Offline 443330

  • Thread Starter
  • Posts: 106
Keyboard Software?
« Reply #12 on: Sat, 21 January 2012, 16:34:40 »
Thanks for the response, So I guess what you are almost saying is there's not much point in modding the keyboard for the gain in performance. It is still nice to know such techniques exist :P

Offline Soarer

  • * Elevated Elder
  • Posts: 1918
  • Location: UK
Keyboard Software?
« Reply #13 on: Sat, 21 January 2012, 20:32:35 »
Quote from: 443330;495786
Thanks for the response, So I guess what you are almost saying is there's not much point in modding the keyboard for the gain in performance. It is still nice to know such techniques exist :P

Well... there is a point, but even if you found some firmware, would you want to solder in a new controller etc etc to reduce lag to, say, 10mS? If you wanted to customise that firmware, would you have to learn how to do that first? Only you can say if it's worth it for you!

I'd like to find time to write a real gamer-optimised firmware, but there's quite a few things ahead of that in my project queue :-)