A "small" utility tool that I came up with to solve a couple problems.
Sup, r/Controller!
Just a few days ago, I picked up an 8BitDo Ultimate 2C.
While wandering through the internet to learn about everything it could do, I found this post mentioning that the Ultimate 2 series supports both XInput and DInput modes. I obviously had to take a look.
That's when I noticed something weird:
- XInput: Analog triggers work perfectly, but the extra L4/R4 buttons aren't exposed to Windows, so you can't remap them outside the controller's built-in hardware remapping.
- DInput: L4/R4 are exposed as independent buttons, but the triggers suddenly become digital.
At first I assumed the controller firmware was simply filtering and throwing away the analog trigger values before sending them to the PC.
Turns out... it isn't.
After spending a good chunk of my day reverse engineering the HID reports, I found that the controller does send the analog trigger data in DInput mode. The values are sitting right there in the USB reports. The real problem is that the HID descriptor doesn't correctly describe those reports, so Windows and pretty much every game or input library ends up interpreting the triggers as digital buttons instead.
Like any completely reasonable person, I decided to build a tool that bypasses that broken descriptor instead of accepting reality.
The project eventually snowballed into something much bigger than "fix the triggers."
It now has the following features:
- Restores proper analog trigger support in DInput mode.
- Lets you remap any controller button, including rear paddles (supposing the firmware exposes them), to keyboard and mouse actions.
- Interactive calibration and profiling for generic HID controllers.
- Live testing utilities.
- GUI configuration.
- Hot reloading of mappings.
- Virtual Xbox 360 controller output through ViGEm.
- Should do all of the above for gamepads other than the Ultimate 2C. Usefulness may vary depending on if your controller already has a dedicated remapping software.
- ...and a bunch of other features that only exist because I forgot why feature-creep is considered an issue.
If you've got an Ultimate 2C or another controller suffering from similar DInput descriptor nonsense, consider this tool as your source-available Ultimate Software™ alternative. Either way, it's worth taking a look!
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 having to choose between analog triggers and remappable rear buttons just because of a broken HID descriptor.
Posted Jul 15, 2026, 9:56 PM UTC