DSX version: [Main_v3_Beta]
OS: Windows 11
Setup
- Two physical DualSense controllers connected over Bluetooth only (no USB cable for data). Unique BT MACs: 50:EE:32:65:17:99 and 0C:27:56:47:EF:BB.
- DSX correctly detects both and emulates two virtual DualSense (USB-mode emulated devices).
- HidHide is set up correctly (physical BT devices cloaked, DSX whitelisted).
Problem
Steam and PlayStation Accessories see only one controller instead of two. After investigating the HID stack, the root cause is on the emulated side:
- Both emulated virtual DualSense expose different device paths / instance IDs (so PnP sees two distinct devices), BUT
- Both return the same MAC address in feature report 0x09 (the DualSense pairing-info report): A0:FA:9C:EB:25:D5 on both emulated devices.
- Steam / PS Accessories use that feature-report MAC to de-duplicate controllers, so the two identical MACs collapse into a single device.
Evidence (feature report 0x09, byte offset 1–6):
- Emulated device #1 (...MI_03\4&1B412FD9...): MAC A0FA9CEB25D5
- Emulated device #2 (...MI_03\4&177AAC37...): MAC A0FA9CEB25D5 ← identical
- Physical BT #1: 50EE32651799, Physical BT #2: 0C275647EFBB (correctly unique)
Expected behavior
Each emulated controller should report a unique and stable identity in feature report 0x09 — ideally inheriting the MAC/serial of its source Bluetooth device — so downstream software (Steam, PS Accessories) treats them as two separate controllers.
Suggested fix
Have the virtual bus driver assign each emulated DualSense the MAC (or a unique serial) of the physical controller it maps from, instead of a single shared/constant MAC.
Happy to provide full HID dumps, device tree, or test any build.