TASEmulators / TASEmulators/BizHawk

Xbox controller inputs not registering beyond triggers

Open
#4,647 5 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

App: EmuHawk Repro: Affects 2.11.1 dev Repro: Fixed/added in upstream stable Repro: Regression from 2.9.1
Dominant language
C#
Stars
2.8k
Forks
468
PR merge metrics
No merged PRs in 30d

Description

Summary

Xbox controller fails to register most inputs. It only registers left and right triggers. Controller works fine in other emulators.

Repro
  1. Load Bizhawk 2.10-rc1 or newer
  2. Load a game
  3. Attempt to update the controller config. None of the buttons will register but the triggers do.
Output

No errors are generated for this issue. Nothing in the log appears when non-registering buttons are pressed.

Host env.
  • BizHawk 2.11; Windows 11; AMD 7900 GRE; Xbox One S official controller (via USB and Bluetooth) -- Broken
  • BizHawk 2.11; CachyOS (Arch); Intel Iris Xe iGPU; Xbox One S official controller (via USB) -- Working
  • BizHawk 2.11; Windows 11; AMD 7900 GRE; PS4 official controller (via USB) -- Working
  • BizHawk 2.9.1 Windows 11; AMD 7900 GRE; Xbox One S official controller (via USB) -- Working
  • BizHawk 2.10-rc1; Windows 11; AMD 7900 GRE; Xbox One S official controller (via USB) -- Broken

Tested release builds 2.11, 2.10, 2.9.1, 2.9, 2.10-rc1

Additional testing

Last working stable build 2.9.1 and breaks with 2.10-rc1. Narrowed down break somewhere between commits ab1c05023fe077b8bdffdec38d932ff512863846 (May 4 2024) and b0fee2bbbb8a8ad163d89cb742062fc4c4961076 (May 7 2024) where DirectInput was removed and it was switched to use SDL2 only. What's weird is that SDL2 actually worked fine in prior builds when switched to it in the dev builds I setup.

The latest dev (commit 3de12415cdc54c979576be1bf4321fa37666351e) is still broken for me.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Compare the changes between commits ab1c05023fe077b8bdffdec38d932ff512863846 and b0fee2bbbb8a8ad163d89cb742062fc4c4961076, focusing on the DirectInput removal and SDL2-only controller path. Reproduce the Xbox One S behavior on Windows 11 across the listed builds, then confirm that controller configuration registers buttons as well as triggers without regressing the working PS4 and Linux cases.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
desktop
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.