These settings are all just byte values, so we only have values from 0-255. I don't want to make a huge change like using 16/32 bit or floating point values. Then I would have to add things like direct keyboard entry of the value. Using the arrows would take to long to change value at those sizes. And I have no ambition to add direct entry of the values.
So what we have is this:
Digital Speed = is the number of inc/decrements per frame/v-blank. Currently integer values 1-255.
Sensitivity = a scaling factor applied to the Digital Speed in %. So a Sensitivity value of 100 is 100/100 for a scaling factor of 1. 25 is 25/100, etc.
I really don't think the rest of the Team would appreciate me making those values more complicated by using thresholds that scaled it at different rates, or making it logarithmic or something, sorry.
What I propose is to just scale the current Digital Speed by 10%, making values of 0.1 to 25.5. Then if you increase the sensitivity to 255%, you would have a maximum delta of 65.025 per frame.
Now if we use Arkanoid as an example. It has a frame rate of 60Hz. So if you held the button down for 1 second, the paddle would move 60*65.025= 3901.5 steps. Or to put it another way, the paddle would move from 1 side of the screen to the other in less then a 1/10th of a second. The current MAME does it in just 1 frame at the highest settings.
So by just prescaling the Digital Speed by 10 like I propose, it helps games that need a slow speed of rotation (lower resolution) to more easily get a rate you like, well still allowing the higher resolution game controls to work.
Also I think you got confused that I was changing the sensitivity to also be factored by 10. I'm only changing the Digital Speed. The whole reason for doing this is because, like you say, the low end of the scale is completed skewed. Changing from 1 to 2 is a huge step. So this will help smooth out the low end. My other goal is to just make the Analog Controls easier to use and understand.
BTW, I will be throwing a couple of other ideas past you, once I get this done and the Rotary drivers we discussed fixed.
Hint - Are most stick shifts just a 1 of x type control? Could they not just use the same inc/dec type concept, with a Digital Speed = 0, to change through the gears? DON'T anyone get there hopes up on this idea. Even if I implement the concept, I am not going though each game and changing the driver. I would just implement the interface.
D.
P.S. Typing all this took way longer then just adding the /10.
