While working recently on assessing VPs newer (PhysMODv5) physics - mainly the flippers - I came across something that may improve more than just input lag for key flipper shots / tricks but affect the overall interaction throughout the game with flippers that may end up representing more realistically the analog / "real" world of pinball.
I was having trouble getting the new "Coil Ramp Up" to have much effect with quick presses with any lower setting, which seemed important to keep some other shots from being too adversely affected. It couldn't seem to be triggered and released quick enough so I resumed some previous research on some USB limitations that would affect keyboard / mouse responses.
Windows Operating Systems lock the USB polling rate to 125 Hz yielding at maximum increments of 8 ms for key press and release events (unless a custom driver has been written for the device as with some gaming mice / keyboards). This results in less "resolution", if you will, in how one's flipper inputs could influence the pinball / game in VP. There is a method for Windows XP, Vista, and 7 (seemingly not yet working for 8.x) that allows one to increase the rates beyond 125 and up to 1000 Hz. It depends ultimately on your USB device though as well and out of 3 keyboards I tested only 1 would operate at the 1000 / 1ms rate but 2 out of the 3 mice I tried were capable. On my X-Arcade Tankstick that I use for my mini cab, unfortunately the keyboard controller / buttons weren't improvable but the mouse buttons were. With some switching and modifying some key reassignments from autohotkey (previously to use the mouse buttons as Magna Saves) I was able to use the mouse input with the greater sampling points and achieve some more subtle / varied flipper interaction.
I used the software available from the following link / instructions for the initial Windows USB driver modifications and polling rate settings. Please use at your own risk and I'm writing this / posting this topic just as an FYI for those of you who may not have known about this aspect or thought about it's impact in virtual pinball (i.e. I myself can not take on a long support topic for assisting with cases where it does not work or cause any adverse effects - sorry if that sounds bad but I want to be clear before anyone starts down the path).
http://www.overclock...1000hz-or-lower
The steps are reasonably simpler / easier for Windows XP, Vista, and 7 32-bit (but also for XP 64-bit) then they are for Vista / Windows 64-bit. A second piece of software was used as well to gauge the results for the overclocking attempts and would clearly depict in ms the time a key was depressed for (if it was only showing as factors of 8 ms, then no improvement on the 125 Hz had been achieved for that device or there may have been a mistake in the process).
http://www.passmark....cts/keytest.htm
Here is a screen shot of one component (setup.exe) of the first link / downloads provided from that link and it is the configuration screen after the .inf file has been manually installed:
USB Overclock Capture 1.PNG 24.85KB 27 downloads
(NOTE: the checkbox for "Mouses only" is cleared so that I can see my keyboard devices; Also, as per the instructions on the first link, you have to make sure you do set "filter" to the device you want to install the patch for and alter the sampling rate - the mouse in the case of the screen shot)
The "KeyboardTest" program is useful before even attempting to alter the USB polling rate as it can tell you the lowest times / highest speeds for your keyboard, mouse, or other USB input device (would have to at least be emulating key or mouse button presses) for a press and release. If you can get 16 ms that can be good for the new "Coil Ramp Up" setting to be set at reasonable levels and trigger a nice flipper tap pass, however, anything that is still using 8 ms as a factor will not help with the general variation one could achieve between initial presses / flipper hits as well as time a key is depressed for (on then off). The KeyboardTest program needs to be installed (not stand alone) and is only for a 30 day trial so might be best to try out on a spare / development PC first but ultimately would need to be installed on one's cabinet / dedicated VP system to confirm whether any USB tweaks and / or devices are actually registering with greater speed / polling intervals.
Here is a screen shot of the keytest program showing attempts for quick key presses (taps) from a keyboard:
USB Overclock Capture 2.PNG 429.16KB 25 downloads
(NOTE: the field "Depress time" indicates 16 ms which was as quick / low as I could get a quick hit of my left shift key to register and release)
After modifying the USB driver, I found that with a Dell keyboard I was not able to reduce the detection below 16 or 24 but could achieve points that were no longer just factors of 8 (i.e. 35, 43, 27, etc.) which in turn would translate to VP getting inputs that would fall outside of being forced into 125 Hz / 8 ms intervals and yield more variation in flipper interaction in the game. On my X-Arcade tankstick modifying and using the mouse buttons for flippers I could get presses as low as 5 ms and variations from every number between that and up.
Here is a screen shot of a Dell mouse I was also able to overclock:
USB Overclock Capture 3.PNG 430.63KB 28 downloads
(NOTE: the "Depress time" is 35 ms and well between the 8 ms factor values of 32 and 40)
The recent post / video I made regarding the Firewpower BMPR / PhysMODv5 Hybrid Flipper Tricks was made while I had my modified X-Arcade Tankstick in use on my development / video capturing system (http://www.vpforums....=+bmpr +flipper). However, my unmodified "regular" keyboard encoder buttons from the same device were able to do some of the more demanding tricks as well, mainly the flipper tap passes al beit a bit more time sensitive and demanding - but still makeable. When I measured the key press times for these regular Tankstick buttons I could get as low as 16 ms.
One other important thing to note is that it's going to not just be your USB device / encoder / IPAC timing as your physical switches are going to play a role with this type / level of timing detail. I have physically modified my Tankstick mouse and 3 / 4 (flipper) buttons with actual leaf switches to achieve better interaction / timing / feel. Regular switches like the micro / cherry ones will have a somewhat more delayed timing for a press / release combo and at least the quick taps will be tougher to achieve.
This USB polling interval overclock should not only affect the latest PhysMOD versions of VP that have the new decoupled physics engine running also at 1000 Hz (a convenient coincidence for USB devices capable of 1000 Hz overclocking) but from my understanding with the current VP9x versions the physics loops were directly tied to the FPS (something that posed problems when FPS got too low) and as such as long as a table is achieving 500-1000 FPS with VP99 / VP9x, then these USB implications will also potentially yield improvements for flipper interaction in all current VP versions.
I hope this has been relayed / explained well enough to prove useful for some and better improve the virtual pinball experience.