briankendall/devreorder

How to specify order for same-named controllers?

ylluminate opened this issue · 9 comments

How can we get unique names for controllers when they are the same controllers? For example, I have 2 Mayflash Arcade Stick controllers and 2 F300 versions as well:

controllers

I have to believe there's a logging mechanism that will give us some degree of uniqueness from the enumerator, but I'm really at a loss as to where to go for this. It'd be great if there were a way to change the names manually (I'd always hoped MS would implement a naming mechanism for controller devices that would also indicate order or something to that effect, but... here we are).

From my (admittedly incomplete) understand of this, I think it may be possible to identify devices based on where they're plugged in. Not sure about wireless devices, though. And maybe there's a better method -- I'm open to suggestions.

Overall that sounds like a useful feature to add at some point, and I'm curious how many other people would find it useful to be able to reorder and/or rename controllers of the same type?

The wireless devices are actually just keyboards and so they're not too important. Primarily important are the 4 joysticks and perhaps any others that I may or may not plug in.

My big problem is that I need to be ready for a co-op couch game night I've promised my kids in the next couple days and so I'm pulling out my hair trying to get control of the joysticks as some games keep losing track of things and then flipping around and losing control settings. I'm sure you feel this pain from what you've explained as your impetus in making this little gem.

I can definitely help test this out and maybe even do a little development myself if you can point my horse north here. I don't have much time and so this is a high priority, as crazy as that sounds. :D

Can you elaborate more on what you're trying to do and what specifically is going wrong? I'm curious how the controllers keep losing their bindings if you use devreorder to put them in a specific order. In theory all the controllers of the same type should be grouped together, so if their order changes, the controller bindings should still at least apply to the right type of controller.

I have this same questions too.
I have an IPAC controller which give me 2 joypads. Both joypads show up as "I-PAC 2" in the USB Game Controllers panel.
They do have different IDs when looking them up in Device Manager:

Device HID\VID_D209&PID_0420&MI_02&Col01\7&1c2fc29&0&0000
Device HID\VID_D209&PID_0420&MI_03\7&18cf9d3&0&0000

But there isnt a way of telling Devreorder how to distinguish between the 2 in the .ini file

Okay everybody, I have made a new release 1.0.2. It allows specifying controllers by their instance GUID — basically a long hex number that Windows assigns once to each controller — that should hopefully allow reordering individual controllers even when they have the same name.

In theory, the GUID should remain the same for each individual controller, meaning if you plug a controller into different USB ports, it should still have the same GUID. However, Windows does so many things wrong with identifying DirectInput devices that I'm skeptical to believe this will work properly.

I've updated the main read me file to include instructions on how to get the GUID for each device, though the short version is just use the DeviceLister.exe program that's included in the 1.0.2 release.

Please give it a try and report back! I'm not going to close this issue until at least a few people report that it's working for them.

Also, I'll admit this solution is a bit obtuse and not at all ideal. But hopefully it works well enough. And what would be great would be a nice little GUI that lets you reorder controllers by dragging and dropping them. I can't promise I'll make that with all the other projects I've involved with, but it's definitely on my mind.

Awesome! Thanks Brian. Testing now, will post back soon.

Is the new feature in 1.0.2 working for people? I'm wondering if I can close this issue now.

edit: Going to close it. If anyone still has this problem then please feel free to open a new issue for it!

Absolutely brilliant Brian!
Thank you so much for this feature!!!