An 8BitDo Switch controller adventure
11 hours ago
- The author bought an 8BitDo Ultimate 2C BT controller for gyro Splatoon on PC, leading to firmware research and hardware modding.
- They found the $30 8BitDo costs much less than the $80 Switch Pro Controller, but note official rumble and build quality can be better.
- Controller support varies by OS: Windows has patchy support and depends on app/Dolphin versions; Linux has better support but gyro needs raw HID access via udev rules; macOS tests in browsers were partial.
- Setting up gyro in Cemu required switching input backends, tweaking udev rules, and resetting keybinds.
- The analog sticks overshoot slightly at corners and cannot be calibrated on this controller; no calibration combo exists.
- On Android, the input stack assumes Xbox layout and remapping A/B only became possible in Android 17, with a homebrew hack for Switch Android.
- On Switch, Pro Controller Wired Communication must be enabled for USB; third-party controller button remapping needs the MissionControl homebrew sysmodule.
- The author debugged a bug in Ultrahand Overlay causing extra button presses, eventually tracing it to hidInitializeVibrationDevices triggering the Switch to send command 0x01 for rumble toggling.
- USB packet captures showed the 8BitDo replies with report 0x21 that omits button state, causing the perceived extra A/B presses when entering/exiting overlays.
- The bug was reported to 8BitDo but not acknowledged; the controller still double-clicks in Ultrahand menus.
- The author captured USB traffic with a Raspberry Pi Pico sniffer and used a custom Python/Textual TUI plus Wireshark/pyshark to parse protocol packets.
- Parsing was complicated because pyshark needed Python 3.11, scapy doesn't handle USBLL, and 12-bit packed stick positions required understanding bit-extraction logic.
- After months, analog sticks jammed; fixing involved desoldering the stickboxes, cleaning/regreasing, and dealing with plastic tabs/metal clamping issues.
- Grease choice matters: red lithium grease worked well, while silicone grease caused binding; over-greasing also caused sticking.
- The author notes the GC/Wii stickbox design was more serviceable and robust than modern Xbox-style sticks.