Distinguish controllers and their mappings. How is it done?

I am using the GP2040-CE project on several raspberry picos to build custom controllers to use with retroarch.

The problem is, they all appear as the same device to RA, having the same idVendor and idProduct, and Serial Number.

So to RetroArch they are all the same and they share the same configuration, which is not what I want.

Would changing the serial number on each device be enough for RA to distinguish each of them and save (and of course reimport automatically at plug-in) customizations individually?

Many thanks,

No, they use vid/pid and device name, though, so if you can change the name it reports, that should help.

Too bad, OK. Thanks.

Same issue here. Any idea on how to change the reported device name? I’ve been searching for a few hours but no luck. I managed to add a FriendlyName to each of my gamepads but RetroArch ignores that.

I got myself new USB gamepads but they’re sharing the same config, while their physical layout is different (NES & SNES; my PC treats NES B and SNES X as the same input, which leads to problems when switching between NES and SNES games.)

Is there any workaround for that? As it stands I’m having to remap my controllers every time I change between them. And I also have a 6 button Genesis controller on the way.

1 Like

ah, yeah, i saw your question on Discord but didn’t get a chance to respond.

If the devices have the same vid/pid and the same device name, there’s unfortunately nothing we can do to differentiate them. Vendors aren’t supposed to do this sort of thing for exactly this reason.

2 Likes

Dang, that’s a bummer. I managed to do a workaround by setting each gamepad to Retropad ports 7 and 8, and then re-routing these to port 1 of their respective cores with core overrides. It’s the most ideal solution I could come up with so far.

1 Like

You should use something like x360ce or rewasd to remap buttons as needed emulating all devices as Xbox 360 pads for example. It allows to also have consistent hotkeys button assignment. I have many controllers and had the same issue, it also allows to use other emulators and frontends (like Bigbox) with consistent buttons.

1 Like

The good news is that I can fake the IDs when I build the firmware for each of my controllers, so that they can pretend to be all different.

The bad one is that I have no idea which IDs to pick. I found this list: http://www.linux-usb.org/usb.ids

but of course nowhere it is mentioned which of those are xinput controllers. If you guys might have any hints that would be much appreciated.

I’ll try this out. I wanted to avoid downloading external softwares but it does seem much more practical.

1 Like