Update on the post about the tool I made.
Sup, r/Controller!
A little while back, I posted about building a tool to fix the analog triggers on the 8BitDo Ultimate 2C in DInput mode by working around its broken HID descriptor. A tool which became universal due to feature-creep shortly after.
After getting both analog triggers and the L4/R4 buttons working at the same time, the next obvious target was implementing rumble. I thought "Well, it probably isn't that hard is it? Just use Wireshark to intercept some packets and we're gucci.". Boy, was I wrong.
I spent the next couple of days going down a massive USB reverse-engineering rabbit hole. I captured raw XInput rumble packets with Wireshark/USBPcap, wrote innumerous scripts to brute-force user-space output reports, injected raw payloads straight into endpoints via WinUSB, and even intercepted the official 8BitDo (firmware updater) software, hoping to find some magic vendor-specific packet.
The result? A big, steamy hot pile of absolutely nothing.
The controller's microcontroller receives DInput output reports without throwing errors, but some kind of internal logic ignores them unless the device is set to XInput mode. It is a strict device-side firmware wall. And 8BitDo is probably not the only vendor which implements this lock.
That wall meant host-side DInput rumble was a no-go. But that didn't stop my stubborness.
So, I decided to outright add full native XInput support to UR-XD. And to bypass the fact that XInput firmware hides the physical extra buttons from Windows, I did the expected thing any reasonable developer does: outright copied SteamInput's idea of the "cleared by parent" feature and added Hardware Chords (with input suppression).
Now you can bind hardware-level chords (like LB + Start or custom button combos, anything you can physically map honestly) to act as virtual extra buttons, giving you full remapping flexibility without losing native XInput rumble.
And with that, UR-XD v2.2 is officially live. Now you can finally take your budget controller with no official software and tinker with it to your heart's content.
GitHub: https://github.com/jesga06/UR-XD
Feature list: https://github.com/jesga06/UR-XD/blob/main/FEATURELIST.md
^(Hopefully this saves someone else from spending days brute-forcing USB endpoints only to realize the controller firmware was giving them the silent treatment the whole time.)
Posted Jul 23, 2026, 5:03 AM UTC