(2017-05-30, 17:07)MrTarantula Wrote: Yes, it would be annoying if holding a button had an effect in-game. If I want to pause the game I will tap pause, then long-press to bring up the menu.
OK, but overloading a button (short press in-game, long press GUI action) is complicated. For example, you don't know it's a short press until the button is released before the long press timeout. So any overloaded button press will necessarily be delayed.
And there's another problem. Let's say the button has a 1000ms timeout, and you hold it for 500ms and then release.
Now, at 500ms, the button press is sent half a second late. But the button was already released. Because the game's sample rate isn't infinitesimal, the press will be missed. So to fix that, you have to emulate a press long enough for the game to detect it. But how long is long enough? If the button was held for 100ms, do you emulate a button press from 100ms to 200ms? If the button was held for 900ms, do you emulate a 900ms-long button press until 1800ms after the initial press?
So that's the challenge: if the button is held for less than 1000ms, when do we send a button press to the game? When do we send a release? What if the button is repressed before the release is sent?
(2017-05-30, 17:07)MrTarantula Wrote: None that I am aware of. I can't think of any console that would understand a long press of a face button. The only conflict I can think of is if there are any cores that register a long press as multiple quick presses, like a keyboard repeating characters. I imagine that libretro handles all input uniformly, so this might not be a real concern. You probably know the answer to that.
libretro handles all input uniformly, so this probably isn't a concern.
(2017-05-30, 17:07)MrTarantula Wrote: So if I'm understanding it correctly right now, there is currently no overload? It's one or the other? I don't think there is a need for multiple overloads (different actions for 1000ms, 2000ms, etc.) but having a single overload would be ideal, so that pressing start pauses but a long press still pulls up the OSD. If, however, it is trivial to add functionality for multiple overloads, I won't say no to more features!
Yes, a single overload would be much easier. My mind automatically went to the most generic, complex solution possible. Thanks for grounding me