You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The 8BitDo Ultimate 2 Wireless Controller is a popular third-party gamepad that supports both 2.4GHz USB Dongle and direct Bluetooth wireless connectivity.
On macOS (and other platforms), when connected in D-Input / Wireless mode (Vendor ID: 0x2DC8, Product ID: 0x6012), Unity's New Input System (com.unity.inputsystem) treats the device as an unconfigured generic InputDevice rather than instantiating a Gamepad instance.
Because games relying on Gamepad.current or Gamepad.all (such as Valheim) strictly query devices typed as Gamepad, this controller is completely unrecognized in-game unless users switch to Nintendo Switch mode (which sacrifices analog triggers and turns them into digital buttons).
Device Information
Manufacturer: 8BitDo
Product Name: 8BitDo Ultimate 2 Wireless
Vendor ID: 0x2DC8 (11720)
Product ID: 0x6012 (24594)
Interface: HID (USB 2.4GHz adapter and macOS Bluetooth HID)
We have confirmed this layout works with 100% fidelity, zero latency, and full analog trigger sensitivity in Unity runtime.
Adding this built-in layout to com.unity.inputsystem will allow all Unity games on macOS (and other desktop platforms) to support this controller natively without requiring custom mods or workarounds.
Since com.unity.inputsystem requires a proper HID descriptor match to instantiate the Gamepad class, we should implement a custom InputDeviceMatcher using the provided 0x2DC8 and 0x6012 identifiers to force the HID parser to interpret the 34-byte report correctly. Does the current HID report map the analog triggers to specific bytes in the remaining 30 bytes of the report, or are those intended for auxiliary button states?
Activity
agatasalathiel commentedon Oct 5, 2026
Since
com.unity.inputsystemrequires a proper HID descriptor match to instantiate theGamepadclass, we should implement a customInputDeviceMatcherusing the provided0x2DC8and0x6012identifiers to force the HID parser to interpret the 34-byte report correctly. Does the current HID report map the analog triggers to specific bytes in the remaining 30 bytes of the report, or are those intended for auxiliary button states?