The handoff doc was the starting point for this session's controller
work — a list of open questions about getting a Joy-Con working on the
Samsung Fold 6 via the 8BitDo adapter. Those questions have been
answered (the working path is PS-Classic mode) and the adapter approach
is being replaced entirely by a DIY ESP32 bridge. Move the doc into
docs/ so it's not sitting at the repo root, rename it to reflect that
it's archaeology rather than an active handoff, and add a banner at
the top pointing at joycon-esp32-bridge.md for the current plan.
Path A (fully wireless: BT Classic host + BLE HID peripheral) is the
chosen architecture. Bridge will be self-powered off a LiPo in a
3D-printed case and sit next to the phone — no cables to the phone at
all. Hardware picked: ESP32-WROOM-32 USB-C dev board (original ESP32
silicon, has BT Classic, CP2102 onboard). Path B (USB-CDC serial) kept
in the doc as a fallback if dual-mode BT coexistence proves painful
during bring-up.
GameScreen: add FLAG_KEEP_SCREEN_ON while a game is active. Keeps the
system out of the deeper sleep states that aggravate OTG selective-suspend
on Samsung, where the 8BitDo adapter otherwise drops every 60-120 seconds.
Cleared on dispose so other screens are unaffected.
docs: drop a design sketch for a DIY Joy-Con bridge built on an original
ESP32 or Raspberry Pi Pico W. Covers the two architectures (fully
wireless via BT Classic host + BLE peripheral, or wired hybrid via
BT Classic host + USB-CDC serial), the Joy-Con init subcommand
requirement, a proposed wire protocol for the serial path, and the
changes we'd make app-side to consume it. Also captures the dongle
rabbit hole we went through so future-us doesn't repeat the same
experiments.
Notes that Bluepad32 already implements BT Classic HID host with
first-class Joy-Con support on original ESP32 and Pico W, which
shrinks the firmware side considerably. Also warns explicitly against
ESP32-S3 for this project — despite being the obvious "newer, better"
ESP32, it is BLE-only and cannot pair with Joy-Cons (BR/EDR-only).