Workaround for #16217: ifdef Android and clamp it to min 0.1 instead of 0 for "Bind Hold"
Nobody has claimed this yet.
- Dominant language
- C
- Stars
- 14.1k
- Forks
- 2.2k
- Avg merge
- 7h 35m
- Merged PRs (30d)
- 51
Description
This is a workaround for https://github.com/libretro/RetroArch/issues/16217 -- please read that issue before you participate.
Problem
Currently, on the Android port of RetroArch, the "Bind Hold" setting (Settings -> Input) exhibits problematic behavior:
- A value of "0" does not respect the "Bind Timeout," leading to unresponsive input remapping.
- A value of "1" (second) serves as a workaround but introduces significant delays during the remapping process. Remapping multiple buttons (e.g., 24 buttons on a modern controller) can take an excessively long time (e.g., 24 seconds).
Proposed Solution
For the Android port specifically, modify the behavior of the "Bind Hold" setting when set to "0". Instead of the current behavior, use a value of "0.1" seconds (or a similarly small value).
Rationale
This change aims to significantly reduce the input remapping time when using the "Bind Hold" workaround. By decreasing the hold time to a fraction of a second, users can remap their controllers much faster. This will improve the user experience, especially for users with controllers requiring extensive remapping.
Additional Notes
- The proposed value of "0.1" seconds is a suggestion and may require further evaluation to determine the optimal balance between responsiveness and accuracy. Testing with slightly higher values might be necessary.
- This change should be limited to the Android port to avoid unintended consequences on other platforms.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Read linked issue #16217 first, then trace the Android port's Settings → Input handling for the "Bind Hold" value. Reproduce the zero-value timeout and compare remapping with 0.1 seconds; done means the Android workaround reduces remapping delays without changing other platforms.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- android, c
- Domain
- mobile
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100