Gamepad not giving back correct data when connected while app is running
- Dominant language
- Rust
- Stars
- 48.2k
- Forks
- 4.8k
- Avg merge
- 3d 16h
- Merged PRs (30d)
- 171
Description
## Bevy version
commit #13817
## Relevant system information
- Windows 10 PC
- 8BitDo Ultimate Controller (bluetooth)
## What you did
I started the gamepad_input example, and connected my gamepad.
## What went wrong
Instead of getting one gamepad connection event, three events are logged: "connected", "disconnected", and "connected" again.
After this the left stick will start logging, even when it is not being moved. The values of the stick are always either -1, or 1, depending on the direction it is moved in. No analog values are logged.
This behaviour does not happen when the gamepad is connected before the example is started. In that case everything works as expected.
## Additional information
This behaviour happens no matter if the gamepad is connected via usb or bluetooth.
It does not happen with my other (older 8bitdo) controller.
I tested my controller with GilRs, and it seemed to be working fine with the xinput feature enabled. Without this feature, I did see the 3 connection events, but did not see any further events.
Contributor guide
Research direction
Start with the gamepad_input example and the connection and axis events it logs, then compare the behavior with GilRs using its xinput feature on Windows. Reproduce the USB and Bluetooth cases with the 8BitDo Ultimate Controller; done means one connection event and stable analog stick values when the controller is connected while the app is running.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- game-dev
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100