Summary
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)
- Report ID:
0x01 (34 bytes input report)
Verified HID Input Report Layout (Report ID 1 - 34 bytes)
We have reverse-engineered, tested, and verified the exact packet layout:
- Offset 0: Report ID (
0x01)
- Offset 1: D-Pad Hat Switch (0=Up, 1=UpRight, 2=Right, 3=DownRight, 4=Down, 5=DownLeft, 6=Left, 7=UpLeft, 15=Neutral)
- Offset 2: Left Stick X (
0..255, center 128)
- Offset 3: Left Stick Y (
0..255, center 128, inverted)
- Offset 4: Right Stick X (
0..255, center 128)
- Offset 5: Right Stick Y (
0..255, center 128, inverted)
- Offset 6: Face buttons & Bumpers (bitmask):
- Bit 0: South (A)
- Bit 1: East (B)
- Bit 3: West (X)
- Bit 4: North (Y)
- Bit 6: Left Shoulder (LB)
- Bit 7: Right Shoulder (RB)
- Offset 7: System & Thumbstick Clicks (bitmask):
- Bit 2: Select / Back
- Bit 3: Start
- Bit 4: Home / Guide
- Bit 5: Left Stick Click (L3)
- Bit 6: Right Stick Click (R3)
- Offset 8: Left Trigger Analog (
0..255, continuous continuous travel)
- Offset 9: Right Trigger Analog (
0..255, continuous continuous travel)
- Offset 10: Back Paddles:
- Bit 0: Paddle M1 (Grip)
- Bit 1: Paddle M2 (Grip)
Proposed Implementation
Adding a layout definition such as:
InputSystem.RegisterLayout<EightBitDoUltimate2Gamepad>(
"8BitDoUltimate2Wireless",
matches: new InputDeviceMatcher()
.WithInterface("HID")
.WithCapability("vendorId", 0x2dc8)
.WithCapability("productId", 0x6012)
);
InputSystem.RegisterLayoutMatcher(
"8BitDoUltimate2Wireless",
new InputDeviceMatcher()
.WithProduct("8BitDo Ultimate 2 Wireless")
);
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.
Summary
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 genericInputDevicerather than instantiating aGamepadinstance.Because games relying on
Gamepad.currentorGamepad.all(such as Valheim) strictly query devices typed asGamepad, 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
0x2DC8(11720)0x6012(24594)0x01(34 bytes input report)Verified HID Input Report Layout (Report ID 1 - 34 bytes)
We have reverse-engineered, tested, and verified the exact packet layout:
0x01)0..255, center128)0..255, center128, inverted)0..255, center128)0..255, center128, inverted)0..255, continuous continuous travel)0..255, continuous continuous travel)Proposed Implementation
Adding a layout definition such as:
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.inputsystemwill allow all Unity games on macOS (and other desktop platforms) to support this controller natively without requiring custom mods or workarounds.