Fix For Windows Input Device Enumeration?

Even in the latest versions of Windows 10, the order in which Windows enumerates game controllers can be highly variable. Reboots and device swapping can sometimes, but not always, cause the order to change, even after weeks of being stable. I have multiple USB adapters that I like to swap, and others (such as a Dolphin Bar), which that I want to keep plugged in at all times. The volatility of the enumeration in this situation makes it impossible to confidently assign the joypad_index values in RetroArch. Yes, I can play with external scripts the enable/disable USB devices or dynamically write a appended config file with the correct index files, but it would be ideal if RetroArch could handle this natively.

I wanted to call out the fact that MAME recently added functionality that addressed this particular issue. It allows for assigning a Device Name or VID/PID value to a specific emulated input. This makes it much easier to configure the emulator in a predictable manner.

The functionality is described at:

The corresponding commits can be found at:

I recognize that MAME and RetroArch are different animals, but I was wondering if based on the above example, it might be possible to introduce something similar into RetroArch?

Thank you for your consideration.

1 Like

Unfortunately, I’m not having any luck w/ DevReorder. I’m using Windows 10 Pro, 64bit and followed the instructions for both single game and entire system with no effect.

Is there anyone who has successfully used this w/ Win10? If so, can you confirm which installation method you used, and any RA config changes required to enable the functionality (i.e. was a different driver needed?)

Just to close out on my issue, it was related to trailing spaces in the names of my devices. There were some recent DevReorder commits that addressed the issue, and a new release was posted on GitHub. I now have DevReorder working correctly - both within the RetroArch folder, as well as with the global config.

Just follow the install directions on GitHub and you are good to go.

2 Likes