Matt Hills 2154f7fd3c Merge feature/joycon: USB gamepad support + stability fixes
Adds USB host-mode game controller support, focused on the NES Joy-Con
via the 8BitDo USB Wireless Adapter 2 in PS-Classic mode, the only
adapter mode the Samsung Fold 6 kernel will bind as a real gamepad.
Includes a Test Controller screen under Settings with live button/axis
indicators, a USB device enumeration view, and a scrolling raw event
log for debugging.

Also ships a batch of stability fixes discovered during controller
bring-up: white-screen-on-USB-detach (missing configChanges for
keyboard/navigation tore down MainActivity when the gamepad
disappeared), OOM during in-game input delivery (cover-art bitmaps
decoding at full resolution), and a FLAG_KEEP_SCREEN_ON on GameScreen
to keep the system out of the deeper sleep states that aggravate OTG
selective-suspend.

Captures a design direction for replacing the 8BitDo adapter
entirely with a DIY ESP32-WROOM-32 Joy-Con bridge that re-advertises
as a BLE HID gamepad. Not implemented yet — docs only.
2026-04-11 19:49:21 -04:00
Description
No description provided
3.2 MiB
Languages
Kotlin 83.9%
C++ 13.1%
C 2.8%
CMake 0.2%