Controllers Support Matrix - drizztdourden08/relic-of-the-past GitHub Wiki
Controller support
Which controllers work on each platform, over which connection, and where features are limited. Input parsing, controller presets, calibration, and haptics are the same everywhere; only how the device is reached differs per platform.
Legend: โ supported ยท โ ๏ธ needs one-time setup ยท โ not available.
Connections per platform
| Connection | Windows | macOS | Linux | Android |
|---|---|---|---|---|
| Raw HID (full feature access) | โ | โ | โ ๏ธ udev rules | โ USB-OTG only |
| Standard gamepad (buttons/axes/rumble) | โ | โ | โ | โ |
On Android, raw HID is available over a wired USB-OTG connection only. Bluetooth controllers come through the standard gamepad layer (buttons, axes, basic rumble).
Features per platform
| Feature | Windows | macOS | Linux | Android (USB-OTG) | Android (Bluetooth) |
|---|---|---|---|---|---|
| Standard input (buttons/axes) | โ | โ | โ | โ | โ |
| Precise raw-HID input | โ | โ | โ ๏ธ udev | โ | โ |
| Output writes (LEDs/config) | โ | โ | โ ๏ธ udev | โ | โ |
| Basic rumble | โ | โ | โ | โ | โ (device-dependent) |
| Advanced HID haptics | โ | โ | โ ๏ธ udev | โ | โ |
| Switch / NSO controller init | โ | โ | โ ๏ธ udev | โ | โ |
| Stick / trigger calibration | โ | โ | โ | โ | โ |
On Linux, the โ ๏ธ features need the controller udev rules from linux-setup.md.
The .deb installs them automatically.
By controller
| Controller | Windows / macOS | Linux | Android (USB-OTG) | Android (Bluetooth) |
|---|---|---|---|---|
| Xbox | โ | โ | โ | โ |
| PlayStation (DS4 / DualSense) | โ | โ | โ | โ standard |
| 8BitDo / generic pads | โ | โ | โ | โ standard |
| Switch Pro Controller | โ | โ | โ | โ standard |
| Switch Pro Controller 2 | โ | โ | โ | โ |
| NSO GameCube | โ | โ | โ | โ |
| Keyboard | โ | โ | โ | โ |
Limitations
- Linux needs the controller udev rules for raw-HID controllers (Nintendo, Sony) and
for the Switch/NSO init. Without them, only standard gamepad input works. The
.debinstalls the rules; AppImage users install them manually (linux-setup.md). - Android Bluetooth delivers only standard gamepad input (buttons, axes, basic rumble). Raw HID, advanced haptics, output writes, and the Switch/NSO init are not available over Bluetooth, because Android gives apps no raw Bluetooth-HID access.
- Switch Pro Controller 2 and NSO GameCube need a vendor init sequence over a raw connection before they send input. On desktop this works over USB and Bluetooth; on Android it works over USB-OTG only. Over Bluetooth they don't work, so use the on-screen touch controls instead.
- iOS is not a supported target yet.