Matt Hills da5f3a912b Add USB controller support with NES Joy-Con via 8BitDo adapter
Wires up ControllerManager to handle the 8BitDo USB Wireless Adapter 2 in
PS-Classic mode (Select+Down 3s), which is the only adapter mode the
Samsung Fold 6 kernel actually binds. Adds a Test Controller screen
(reachable from Settings) showing detected input devices, USB host
enumeration, live pressed-button chips, axis readout, and a scrolling raw
event log for debugging.

Per-device fixups for the adapter's PS-Classic identity (Sony 0x054C/0x0CDA):
treat ABS_X/Y as the dpad (no real analog stick), remap BTN_TL2/TR2 to
Select/Start so the Joy-Con's minus/plus buttons reach cores, and remap
BTN_C to FACE_BOTTOM so the NES Joy-Con's bottom face button works as
NES B / SNES B / PS Cross.

Also includes a manifest USB intent filter and a vendor-spec XInput
claim/reader path retained for future XInput-mode adapters, dpad routing
through dispatchButton so buttonMappingManager applies to dpad input, and
a concurrency fix in cover-art fetching (parallelism 8->2 + per-fetch
try/catch) to stop OOM crashes during launch.
2026-04-11 17:13:17 -04:00
Description
No description provided
3.2 MiB
Languages
Kotlin 83.9%
C++ 13.1%
C 2.8%
CMake 0.2%