libretro / RetroArch

Cross-platform, sophisticated frontend for the libretro API. Licensed GPLv3.
http://www.libretro.com
GNU General Public License v3.0
10.43k stars 1.84k forks source link

[Android] Hotkey 'Pause' works without hotkey and needs to be held down #9998

Open ghost opened 4 years ago

ghost commented 4 years ago

Description

In the Hotkey Binds section, when setting a 'Pause Toggle' button, in game you need to hold down the pause button which kinda defeats the point ! :smile: (and it works without the hotkey).

Expected behavior

Hold the hotkey and press the 'Pause' button. The game pauses. Press the Hotkey+Pause again and the game un-pauses.

Actual behavior

You have to hold the 'Pause' button down. Even though a hotkey is set, the 'Pause' button works regardless.

Steps to reproduce the bug

  1. Set a Hotkey to Gamepad.
  2. Set a 'Toggle Pause' button to Gamepad.
  3. Try to toggle Pause using the hotkey. (The Pause button needs to be held and doesn't need the Hotkey).

Version/Commit

Environment information

ghost commented 4 years ago

This also happens to me. 'Frame Advance' works with the hotkey but Pause doesn't and needs to be held.

nakdeyes commented 2 years ago

This issue is happening for me as well. At least happy to hear it is only the 'Pause' functionality

guschen802 commented 1 year ago

Just happened to me on my nightly build for Android downloaded yesterday. 64Bits

Device is Ayn Odin Lite

Dav-C commented 1 year ago

Still a bug, still happening.

amphyvi commented 11 months ago

I'm having an adjacent issue - Menu Toggle works with or without use of the Hotkey Enable button

cplr commented 3 months ago

This still occurs, and prevents the workflow of determining the necessary frames for run-ahead or pre-emptive frames.

cplr commented 3 months ago

I just tested Pause and Frame Advance control using a touch input overlay and it works fine there, which means this issue seems to be on the physical input side of things, and not in the actual pause functionality.

ToyKeeper commented 2 months ago

It seems this has been broken for at least 4 years now. When using a controller in Android, the "pause" hotkey is unusable no matter what button it's mapped to. Holding that button (with or without the hotkey) temporarily stops the game but does not display a "||" notification icon for pause, and emulation resumes as soon as the button is released. Any other function the button may have had gets completely disabled.

The frame advance hotkey works correctly, but as soon as it's activated, the game actually pauses (with the "|>" notification widget showing), and there is no way to unpause to resume normal gameplay. Pressing it repeatedly allows going forward one frame at a time, but it otherwise remains paused. The pause hotkey does not unpause the game.

Although holding the pause hotkey does temporarily stop emulation, I suspect it may not actually be activating the normal "pause" function at all. It seems like it may be doing something else entirely, with the temporary stop as merely a side effect. If it was actually hitting the normal code for "pause", it should be able to unpause. But that's not happening.

Anyway, for someone like me who pauses, rewinds, and frame-advances a lot to get screenshots of exactly the right frame, this bug makes that sort of activity impossible. I normally pause a lot... but on Android I can't pause at all.

mephitrpg commented 2 months ago

Just experienced the same problem.

landfillbaby commented 1 month ago

https://github.com/libretro/RetroArch/issues/14200#issuecomment-2446250570