Skip to content

Bind Timeout regression bug for Android #16217

@davidhedlund

Description

@davidhedlund

RetroArch for Android version 1.16.0 respects the default Settings -> Input -> Bind Timeout: 3 for all buttons, but RetroArch 1.17.0 does not do this

Analog button issue

  • Go to: Settings -> Input -> RetroPad Binds -> Port 1 Controls
  • Use a gamepad controller and press the face button that will activate "Set All Controls"
  • All buttons are requested to be remapped, except R2. Analog L2 is pressed, it functions as a double click.

Evaluated in Android 13 with a Sony DualSense controller.

Screen touch activation issues

Description

Affects entries in:

  • Settings -> Input -> RetroPad Binds -> Port * Controls
  • Settings -> Input -> Hotkeys

If you touch a menu entry to activate button remapping. This does not happen if you press the controller button to activate it.

  • 1.16.0: 3 seconds
  • 1.17.0: 0.2~ second -- you will barely see it, so there's a risk that you don't remap it

There's a risk that people will upload incomplete autoconfig files to https://github.com/libretro/retroarch-joypad-autoconfig

"Set All Controls"

"Set All Controls" -> "D-Pad Up" (the first button that pop-ups):

  • 1.16.0: 3 seconds

1.17.0:

  • D-PAD up appears for 0.2~ second (it's very difficult to detect it)! More importantly, the "Set All Controls" process it not cancelled when the D-pad Up is not pressed.

If you press D-Pad Up during "Set All Controls", then these buttons are not requested automatically:

  • "B Button (Down)" is not requested later.

These buttons are sometimes never requested to be remapped (not even for a blink of an eye) regardless if you pressed D-Pad Up earlier or not:

  • L3, and R3
  • Right thumb stick Up

D-PAD Up issue

Platform Input Method to press "OK" to set Set All Controls Settings -> Input -> Bind Timeout: 3 prompts for D-Pad Up Notes
RetroArch Android Touch Screen No
RetroArch Android Gamepad button (fallback profile) Yes
RetroArch Android Gamepad touch screen activation button (fallback profile) Yes
RetroArch Android Bluetooth Mouse N/A Mouse activation doesn't work
RetroArch Desktop (GNU/Linux) Touch Screen Unknown Not tested. Does quick tap source code exist in other releases than Android? If so, then someone with a touch screen could help us.
RetroArch Desktop (GNU/Linux) Gamepad button (fallback profile) Yes
RetroArch Android (GNU/Linux) Gamepad touch screen activation button (fallback profile) Yes
RetroArch Desktop (GNU/Linux) Bluetooth Mouse Yes

Solution

Ideal workaround

This issue should be re-opened.

Current workaround

This issue was temporarily resolved by changing input_bind_hold = "0" to input_bind_hold = "1"

From #17704

Due to touchscreen quick tap function, binding runs into problems with the default setting of bind_hold = 0 that works well on other platforms. Using a nonzero value avoids that problem.

Some investigation notes are in the (now closed) #17157 .

Implementing #17644 would be more complex - bind_hold is currently an uint, so it can't be assigned a value of 0.1 as-is, and changing the type of existing config keys is a no-no, so it would need to be stored under a new name with some additional logic. Extra logic for the value 0 in case of Android is again doable, but would complicate the code more, and it needs more testing than what I am prepared for currently.

Merged to RetroArch 1.21.0

Version/Commit

You can find this information under Information/System Information

Affected RetroArch versions:

Environment information

  • OS: I could reproduce this issue in both Android 10, and Android 13.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions