diff --git a/CONTROLLERS.md b/CONTROLLERS.md index d3abba5..9930c08 100644 --- a/CONTROLLERS.md +++ b/CONTROLLERS.md @@ -8,15 +8,16 @@ Every controller below has a committed `openmicro doctor` report. CI replays cap -| Controller | Reports as | VID:PID | Connection | Driver | Buttons passed | Output | Status | -| ----------------------------------------- | ------------------------------- | --------- | ---------- | --------- | -------------- | ------------- | ------- | -| GameSir Cyclone 2 (DS4 mode) | DUALSHOCK 4 Wireless Controller | 054c:05c4 | bluetooth | ds4 | 17/17 | none | ✅ full | -| GameSir G7 Pro | GameSir-G7 Pro | 3537:1022 | bluetooth | gamesir | 17/17 | none | ✅ full | -| Microsoft Xbox Elite Series 2 | Controller | 045e:0b00 | usb | xbox | 17/17 | none | ✅ full | -| Microsoft Xbox Elite Series 2 (Bluetooth) | Xbox Wireless Controller | 045e:0b13 | bluetooth | xbox | 17/17 | none | ✅ full | -| Microsoft Xbox One S Controller | Controller | 045e:02ea | usb | xbox | 17/17 | none | ✅ full | -| Microsoft Xbox One S Controller | Xbox Wireless Controller | 045e:0b20 | bluetooth | xbox | 17/17 | none | ✅ full | -| Sony DualSense | DualSense Wireless Controller | 054c:0ce6 | usb | dualsense | 17/17 | lightbar+LEDs | ✅ full | +| Controller | Reports as | VID:PID | Connection | Driver | Buttons passed | Output | Status | +| ----------------------------------------- | ------------------------------- | --------- | ---------- | --------- | -------------- | ------------- | --------------- | +| GameSir Cyclone 2 (DS4 mode) | DUALSHOCK 4 Wireless Controller | 054c:05c4 | bluetooth | ds4 | 17/17 | none | ✅ full | +| GameSir G7 Pro | GameSir-G7 Pro | 3537:1022 | bluetooth | gamesir | 17/17 | none | ✅ full | +| Microsoft Xbox Elite Series 2 | Controller | 045e:0b00 | usb | xbox | 17/17 | none | ✅ full | +| Microsoft Xbox Elite Series 2 (Bluetooth) | Xbox Wireless Controller | 045e:0b13 | bluetooth | xbox | 17/17 | none | ✅ full | +| Microsoft Xbox One S Controller | Controller | 045e:02ea | usb | xbox | 17/17 | none | ✅ full | +| Microsoft Xbox One S Controller | Xbox Wireless Controller | 045e:0b20 | bluetooth | xbox | 17/17 | none | ✅ full | +| Sony DualSense | DualSense Wireless Controller | 054c:0ce6 | usb | dualsense | 17/17 | lightbar+LEDs | ✅ full | +| Stadia Controller rev. A | Stadia Controller rev. A | 18d1:9400 | usb | none | — | none | 🔴 capture-only | diff --git a/test/fixtures/controllers/18d1-9400-usb.json b/test/fixtures/controllers/18d1-9400-usb.json new file mode 100644 index 0000000..1bb6e0c --- /dev/null +++ b/test/fixtures/controllers/18d1-9400-usb.json @@ -0,0 +1,137 @@ +{ + "schemaVersion": 1, + "openmicroVersion": "1.4.2", + "platform": "darwin", + "osVersion": "Darwin Kernel Version 25.5.0: Mon Apr 27 20:38:56 PDT 2026; root:xnu-12377.121.6~2/RELEASE_ARM64_T6000", + "controller": { + "vid": "0x18d1", + "pid": "0x9400", + "product": "Stadia Controller rev. A", + "transport": "usb", + "driver": "none" + }, + "results": { + "south": { + "status": "capture", + "capture": { + "idle": "", + "pressed": "0308004080808080000000" + } + }, + "east": { + "status": "capture", + "capture": { + "idle": "0308000080808080000000", + "pressed": "0308002080808080000000" + } + }, + "west": { + "status": "capture", + "capture": { + "idle": "0308000080808080000000", + "pressed": "0308001080808080003c00" + } + }, + "north": { + "status": "capture", + "capture": { + "idle": "0308000080808080002600", + "pressed": "0308000880808080000000" + } + }, + "dpad_up": { + "status": "capture", + "capture": { + "idle": "0308000080808080000000", + "pressed": "0300000080808080000000" + } + }, + "dpad_down": { + "status": "capture", + "capture": { + "idle": "0308000080808080000000", + "pressed": "0304000080808080000000" + } + }, + "dpad_left": { + "status": "capture", + "capture": { + "idle": "0308000080808080000000", + "pressed": "0306000080808080000000" + } + }, + "dpad_right": { + "status": "capture", + "capture": { + "idle": "0308000080808080000000", + "pressed": "0302000080808080000000" + } + }, + "l1": { + "status": "capture", + "capture": { + "idle": "0308000080808080000000", + "pressed": "0308000480808080000000" + } + }, + "r1": { + "status": "capture", + "capture": { + "idle": "0308000080808080000000", + "pressed": "0308000280808080000000" + } + }, + "l2": { + "status": "capture", + "capture": { + "idle": "0308000080808080000000", + "pressed": "0308040080808080ff0000" + } + }, + "r2": { + "status": "capture", + "capture": { + "idle": "0308000080808080000000", + "pressed": "030808008080808000ff00" + } + }, + "l3": { + "status": "capture", + "capture": { + "idle": "0308000080808080000000", + "pressed": "0308000180808080000000" + } + }, + "r3": { + "status": "capture", + "capture": { + "idle": "0308000080808080000000", + "pressed": "0308800080808080000000" + } + }, + "menu": { + "status": "capture", + "capture": { + "idle": "0308000080808080000000", + "pressed": "0308200080808080000000" + } + }, + "view": { + "status": "capture", + "capture": { + "idle": "0308000080808080000000", + "pressed": "0308010080808080000000" + } + }, + "touchpad": { + "status": "capture", + "capture": { + "idle": "0308000080808080000000", + "pressed": "0308100080808080000000" + } + } + }, + "axes": {}, + "output": "unsupported", + "timestamp": "2026-08-12T17:42:17.239Z" +}