Fix Phantom Input From Disabling an Input Device
Nobody has claimed this yet.
- Dominant language
- C
- Stars
- 14.1k
- Forks
- 2.2k
- Avg merge
- 7h 35m
- Merged PRs (30d)
- 51
Description
Description
When a controller is plugged in and the user changes the player 1 device index to 'Disabled', the screen will constantly scroll upwards, accelerating as though the user is holding the up direction, until Retroarch is restarted and the device index is changed either through the menu or a config file edit.
It is very easy to inadvertantly disable an input device while cycling through the device options, leading to this issue.
Expected behavior
When an input device used to control is disabled then it should be disabled, and all input "gathered" from it should be ignored.
Actual behavior
When an input device used to control is disabled, it seems to hold onto a phantom input, scrolling the selection upwards, rendering the program near-unusable until a restart.
Steps to reproduce the bug
- Plug in a controller
- Navigate to Player 1 controls
- Change the device index to 'Disabled'
Bisect Results
This occurs as far back as stable 1.7.5, but with one nuance: changing the device index from the default, 'Xinput Controller', to the unconfigured 'Hori Mini Wired Gamepad' results in the same permenant scrolling upwards, and setting it to 'Disabled' removes the phantom input.
Version/Commit
- RetroArch: 1.8.9
Environment information
- OS: Windows 10, latest mandatory updates as July 28, 2020.
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
Reproduce the issue with a controller by changing the Player 1 device index to Disabled, then trace RetroArch's input handling for disabled devices. Done means input gathered from the disabled device is ignored, selection no longer scrolls upward, and no restart is needed.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c
- Domain
- frontend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100