Main > Main Forum
Ultimarc rotary encoder issues
Derrick Renaud:
Don't really know why it would be missing keypresses. MAME just reads the DX input. But I have have not really looked too far into the keyboard code. All my changes have been in the "analog" code.
I'll take a peek to see if there are any buffering issues during my next look through the input code. Can't promise anything because I have no way to test it. I have some more sound effects to complete before I look at the input code again though.
It does sound quite possible that MAME only checks the last state of a key when it polls it. The inc/dec button code was added at a latter state to the input system, and no one probably envisioned keypresses faster then 1 frame being anything but keyboard bounce.
So for now the best way is probably to slow down the interface. You would never be able to turn a real ikari control 60 clicks per second anyways during real game play. You would be hard pressed to do 30.
D.
Rip:
--- Quote from: Derrick Renaud on April 08, 2007, 12:23:51 pm ---Don't really know why it would be missing keypresses. MAME just reads the DX input. But I have have not really looked too far into the keyboard code. All my changes have been in the "analog" code.
I'll take a peek to see if there are any buffering issues during my next look through the input code. Can't promise anything because I have no way to test it. I have some more sound effects to complete before I look at the input code again though.
It does sound quite possible that MAME only checks the last state of a key when it polls it. The inc/dec button code was added at a latter state to the input system, and no one probably envisioned keypresses faster then 1 frame being anything but keyboard bounce.
So for now the best way is probably to slow down the interface. You would never be able to turn a real ikari control 60 clicks per second anyways during real game play. You would be hard pressed to do 30.
D.
--- End quote ---
Thanks. Andy at Ultimarc has agreed to provide me with chips which generate longer keypresses. I'll update the status when I receive them, likely by next weekend.
Tiger-Heli:
--- Quote from: Derrick Renaud on April 06, 2007, 12:41:22 pm ---There are all sorts of features I want to add to MAME. If anyone wants to pay my yearly wage so I can quit my job and solely work on MAME, then these features will get added quicker.
--- End quote ---
It would likely be cost-effective for BYOAC to take up a collection to do so!
u_rebelscum:
--- Quote from: Derrick Renaud on April 08, 2007, 12:23:51 pm ---It does sound quite possible that MAME only checks the last state of a key when it polls it. The inc/dec button code was added at a latter state to the input system, and no one probably envisioned keypresses faster then 1 frame being anything but keyboard bounce.
--- End quote ---
Yup, mame only looks at the current state (no buffering) with directInput. If a button is pressed and released between mame polls, mame doesn't see it. Makes sense with digital inputs.
Rip:
Andy's fantastic customer service has come through again. He sent me 3 chips with ~16ms, ~24ms, and ~32ms keypresses. The 16ms still missed the odd click, 24ms caught them all as did 32ms. From this it seems 24ms is the right number and clicks will be caught in all situations.
I have tested it in Ikari Warriors (has the new directional input device) and it works flawlessly. Also tried it in Caliber 50, with the older style dial input, and it works like a champ.
Thanks Andy!
John