| Main > Software Forum |
| Rotary Controls/ Druin's Interface |
| << < (3/5) > >> |
| Derrick Renaud:
I think I'm also going to change the Digital speed to be /10 or so, for people that use that method. Currently the digital speed * sensitivity is how much it is incremented each frame. If I make the digital speed go in .1 increments, it might be easier to set for low speed devices (Ikari) and still work fine for higher speed (Arkanoid.) D. |
| u_rebelscum:
--- Quote from: Derrick Renaud on December 06, 2006, 06:40:49 pm ---I think I'm also going to change the Digital speed to be /10 or so, for people that use that method. Currently the digital speed * sensitivity is how much it is incremented each frame. If I make the digital speed go in .1 increments, it might be easier to set for low speed devices (Ikari) and still work fine for higher speed (Arkanoid.) D. --- End quote --- I like the that, too. I don't have a suggestion on how, but as an observation... Changing from keydelta of 1 to 2 is a 100% increase, but from 25 to 26 is only by ~4%. A sensitivity change of 1% to 2% is also double, but from 101% to 102% is <1% and not very noticable, and from 200% to 250% is only 25%. It makes sense to be able to have 1/10ths from 0.0 to about 15.0, but once over that it's an impedance in the UI. And it would be nice to adjust sensitivity above 256% (but not necessarily by ones) while adjusting by 1/10ths under, say, 15% whould be nice too. I guess I'm asking you if you could try to change both the sensitivity and deltas to use 1/10th below 15, and to go above 256, and to be able to have larger jumps in the higher numbers in the UI. The UI doesn't have to reflect the possible valid inputs (example: maybe you hand edit the sensitivity to 257.5 in the cfg file, but if you used the UI it would jump from 255 to 260). Again, not sure how to do it, so ignore if you want. ;) Thanks, Derrick! |
| Derrick Renaud:
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. ;) |
| Derrick Renaud:
/10 does not seem to add significant advantage. So I'm gonna skip that idea. |
| u_rebelscum:
--- Quote from: Derrick Renaud on December 07, 2006, 06:23:43 pm ---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. ... 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. ... 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. --- End quote --- -edit- you posted while I was writing, but I'll leave this in: I like the factor by 10 for the low end, but (if you use analog inputs) 2.55x is sometimes not high enough; it seems some games might need 1.5%, others around 475% depending which spinner you need. (But as you point out, 255% * the keydelta is enough for digital inputs.) I didn't think it through, but I guess I was hoping you could fix two stones with one bird ;D by changing both delta and sensitivity to be sub unit on the low end but larger number on the high. Something like 16 bit int values (factored by 10) with the UI changing the steps the UI can edit to scale depending on the value, not some complicated scaling scheme from an 8 bit var to a logarithmic-like delta/sensitivity value. IE: up to 16 bit vars (for 0 to 10000 values, aka 0.1 to 1000.0%) + a UI change (just so you don't have to go by tenths on the high values even though those number are valid) + the factor by 10. And that delta and sensitivity would be handled the same in the UI. But as you say, this is not an easy change like factoring by ten. :) Me coding a UI change: shutter. Never mind. edit: Especially since you're not doing the factor by ten. ;D --- Quote ---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. --- End quote --- Anything but fast balls. ;) As for stick shifts, oh boy. There were many original setups; how they're currently emulated is another issue. OTTOMH: Hi-low with one switch at hi (or low). Hi-low with two switches (sort of like a 2-way joystick, but it's either high or low). Up-Down shift with two switches default in center (much like a 2-way joystick). <-- This one would fit naturally with the zero delta speed. 1-4 shift with four switches (much like a 4-way joystick). 1-4 shift with two analog POTs (sort of like a "4-way analog" stick) that the ROM translated to gear numbers. I'll have to look into the numbers. Changing the drivers to match whatever you do is something within my ball park, I think. |
| Navigation |
| Message Index |
| Next page |
| Previous page |