Multiple Controller Setups with Different Mapping

Hi,

I am having trouble setting up multiple controllers in Retroarch.

I currently have 2x 8Bitdo Pro2 controller and a generic USB controller that is listing as a SEGA controller.

I have mapped the controller buttons in Retroarch giving each controller a different port. The Sega controller does not use the default mapping, 8Bitdo does, so I mapped the SEGA one manually in Retroarch bindings as port 2.

When I open a core like SNES9X and go to the controller setting everything works perfectly and all buttons are assigned correctly provided all controllers are connected.

The issue arises if one of the controllers is turned off and the USB generic SEGA controller automatically becomes a fallback controller and changes ports to port 1 for instance. It then loses its assigned mapping in both the core and Retroach because it is not the port it was mapped for.

Essentially all buttons change their mapping when it changes port. Is there a way to prevent this loss of recognition of the original mapping for that controller?

I want to plug any random controller in and have it remember the correct mapping I have assigned. It will be helpful for multiplayer gaming.

What do people do when they have multiple systems/cores like SNES, N64, Saturn, etc., with different controllers to suit each console? The 8Bitdo Pro2 isn’t the best controller for each core.

Any help would be greatly appreciated!

If your controllers are all uniquely identified and autoconfigured, you can sort remaps to only apply to that specific controller, thanks to this recent feature addition: https://github.com/libretro/RetroArch/pull/16747

Thanks for the reply hunterk.

I’ve played with the setting and still seem to be having some issues whenever the second controller becomes port 1. For example, I turn off the 8Bitdo Pro 2 and the USB Sega Controller gets bumped from port 2 to port 1.

In port 2 the mapping was okay, but when it is in port 1 the buttons get swapped around. For example, I think the start button becomes a shoulder button etc.

I have tried going into RetroPad Binds and doing a setup in each port for the USB Sega Controller and saving it, but that just seems to mess with the 8Bitdo settings when it gets turned back on. Essentially I have to remap it back to defaults for Port 1 and input all the buttons again.

In the Retroarch settings menu I have turned on the following: Autoconfig (for plug and play style) Remap Controls for This Core Sort Remaps By Gamepad

Under each port, I have No Reservation for each of the controllers.

I’m not sure what I’m doing wrong, any advice would be much appreciated.

are the controllers all uniquely identified? or does it think they’re all the same model?

Try reserving only the Sega controller, to the port you want, leave everything else on default values. Enable reservation. See if it helps.

The controllers are all uniquely identified. The 8BitDo Pro2 controllers are listed as (XBox 360 for Windows) (1) and (2). The Generic USB controller is listed as Retro-Bit Genesis/Saturn 8 Button Arcade Pad, even though it looks like a Super Nintendo controller.

For example, the A and B buttons will give a different number when mapping to what the 8BitDo controllers say.

I have tried reserving the USB controller to port 1, but if I remove it from the USB port and only run the 8Bitdo controller its mapping does not work because it’s mapping was different to the map in port 1.

I have a new controller coming which is a 8Bitdo M30 Bluetooth for the Sega systems. I’m wondering if 8Bitdo controllers will behave better or differently than a generic eBay USB controller. (Not sure why a SNES style controller thinks it’s a Genesis controller anyway…)

Any thoughts on what might be happening or a setting that needs to be adjusted/turned on?

The other interesting thing I just noticed is that if I map the 8Bitdo Pro2 controllers to ports 1 and 2 (I didn’t reserve them) and then I map the USB controller to Port 3 (also not reserved) and then enter the SNES9x core, I can go to the controller settings and list port 3 (USB controller) to play as port 1. When I do this the controls are fine. The same thing happens if I ask port 3 to play as port 2. The only way this seems to work though is if all 3 controllers are connected at the same time. If I disconnect one of the 8Bitdo controllers, then the USB controller moves up a port in the Retroarch settings and my controls are not mapped correctly.