Mapping multiple controllers as User 1

So, I have 3 different controllers. One is a dinput snes clone, one is a xinput snes clone and the other is a xbox 360 joystick clone. I want to be able to plug and play with all of them individually but when I bind all to any of them, Retroarch doesn’t remember them individually and just applies the last bind all map set.

Is the a way to save different bind all maps for individual controllers that Retroarch remebers when I plug them in?

Im using Windows 8 on my PC and Android in my tablet.

Thanks

1 Like

Yes. That’s what the autoconfig profiles are for.

Go to settings > input > user 1 binds. Hit ‘default all’ then ‘bind all’. Map your inputs. Hit ‘save autoconfig profile’, then hit ‘default all’ again. Exit RetroArch and then reopen it. It should now recognize your controller and re-apply your binds.

If so, rinse and repeat for the other pads.

You can submit those autoconfig profiles to the autoconfig repo at https://github.com/libretro/retroarch-joypad-autoconfig and we’ll include them in future releases (and via the online updater’s ‘update autoconfigs’ option).

Thank you.

So, what I was doing was hitting Bind All, setting my primary controller, then hitting Default All then Save Autoconfig. It kinda worked with minor problems (Start and Select buttons were swapped and different on 2 controllers etc).

So, do I need to add the step of Default All at the start and the end of the process for each controller I’m adding? Or do I do it only for the main controller?

Hi Bamse,

Did you fix the issue? I am having the same problem, I need to duplicate 2 controllers to use User 1 but I could not do it following the instructions above.

Thanks! Martin

No, never managed to have 2 different controllers mapped individually to user 1.just remap when I need to swap

I am not sure if this is what you need to do, but here is what I did.

I have an multi-arcade machine with 4 joysticks:

  • 2 normal d-pad and 6 buttons each
  • 2 xbox-like USB joysticks (I will try the same with wifi controllers shortly but I assume that will work too).

I use the xbox joysticks to play games from new consoles that need several buttons (SNES and so). For the rest (NES, Atari and other old consoles) I use the normal arcade controllers.

So what I wanted to do was to have 2 joysticks groups:

  • d-pad 1 and xbox joystick 1 for user 1
  • d-pad 2 and xbox joystick 2 for user 2

I tried several ways and the one worked was thru joytokey.

I just set the user 2 keys on RetroArch manually (which are not configured by default, just for user 1) and then with joytokey set up the 4 joysticks in 2 groups. Even after reboots, the conf is still there and work perfectly.

The only issue is when I change the USB port for a joystick, it lost the order I wanted, but keeping them in a fixed USB port, all goes well.

Hope this helps.

Martin

Did you fix the issue? I am having the same problem, I need to duplicate 2 controllers to use User 1 but I could not do it following the instructions above.

Can someone confirm this definitely isn’t possible? I only single-play and would like to have multiple controllers plugged in at once all defaulting to port 1.

I thought I could do this in a clean way using core overrides to switch port 1 to the correct controller upon loading each core, but core overrides do not save information from the global input config menu, unfortunately.

I don’t know of any easy way to do it completely within RetroArch, but you can use something like joy2key or antimicro to make all of your controllers send the same keyboard events and then map those keyboard events to the retropad buttons.

Is it possible that in a future version of RA the controller index could be changed by core/content/game overrides? That and an option to allow all ports to navigate the RA menu would make for seamless transitions between different platforms relying on different controllers using the same virtual port. For example, if my DS4 is my default port 1 controller in global, this would allow me to launch RA with the DS4 out of reach, navigate the menu with my secondary controller (e.g. a Saturn pad), and then load the core with the associated override to switch port 1’s controller index over to the Saturn controller. I could then load a game and my Saturn controller would be port 1 without my ever having visited the input menu.

This would perhaps address the final controller complaints people still have about RA…

I’m trying to do something similar I have a bartop 2 6 button joysticks that I want to use for arcade, NES and wired 8 bitdo I want to use for everything else but I’m having trouble setting it up, I thought I would be able to assign input 1 differently for each core but that doesn’t seem to be the case.

Apologies for bumping an old thread but I’m having the same issue and nothing I try seems to resolve it. I want to alternate between 2 controllers for player one depending on the core/game. No matter what I do though, player 1 always has the same mapping regardless of the selected device id so I can only use one controller. If I try to remap for a second controller, it just overwrites the current mappings. The only workaround I’ve found is to set each controller as a separate player and then switch p2 as core input 1 and vice versa. This isn’t great though as hotkeys don’t seem to work for P2.

Yes, this is how I would recommend doing it, but you’re correct that hotkeys won’t carry over.

1 Like

Hey guys, first message on the Forum here, so a big thanks to the LibRetro team for all the amazing work achieved for us RetroFreaks!

I am also having this issue, I have been using RA with a DualSense controller through DS4Windows for a year and it’s been working perfectly so far (as X360 Wired Controller). I just got myself an 8BitDo Arcade Stick and the problems have started.

Here was my idea on how I would use both controllers.

-DualSense for most games (Single Player)

-Arcade Stick for many older games and for my MAME collection as an alternative to the DualSense (Single Player)

-Use the fact that I have now 2 controllers to play 2 Player games alternating between Player1 and Player2 randomly if one or the other wants to switch.

I don’t think it should be a complex setup, but now:

-DualSense is recognised as X360 for Windows and the input button layout has changed in the UI, anyways that’s ok.

-Arcade Stick is recognised as Bluetooth Compliant XInput device (default mapping puts Start and Select on same button so I created a custom profile)

I figured out I can switch between profiles in the Quick Menu when loading a Game but I need to have both controllers on to do that, is this the way to go?

Is there anyway to get this automatically for example when only Arcade Stick is on that it will work with its saved profile on port 1? The weirdest thing is that I see the popup saying it is set on port 1 and even the correct profile is loaded when I turn RA on, but no inputs are working at all, I need to turn on the DualSense for it to start working.

RA: 1.10.3

From what I understand (someone correct me if I’m wrong) but if you start RA with the controllers registered in a different order, the mappings will be wrong as X mappings stay in port 1 and Y mappings stay in port 2. So port 1 may be the pad but it now has the mappings of the stick. I have the same problem so I need to ensure my 2 controllers are in the same order when starting RA.

Mate, what are the odds, I just restarted using RA after a few weeks of only playing the PS5 and decided to get this fixed.

Not sure if it’s the whole combination of the below or just some specific actions that solved it.

  • I disabled input/autoconfig.

  • For some reason my keyboard would be detected as the same device as the DualSense (via ds4windows) calling it x360 controller for both with the same index so I disabled every button mapped and only mapped the controller buttons without the keyboard buttons as secondary on port 1. And also manually remapped the buttons of the arcade stick on port 2. (It still has this weird name but that’s ok). I saved both controller profiles, not sure what that actually does.

  • I enabled the option in ds4windows to disconnect the controller from Bluetooth when stopping it because even it seemed totally off (no lights whatsoever and hitting the PS button would do nothing), it was still connected to Windows and detected as a 3rd device index called “wireless controller”.

  • after that, boom! everything works as expected, if both devices are on when starting RA, DualSense will take player 1 and Arcade Stick player 2. You can switch that in-game with the “controls” options in the quick menu. When only having the Arcade Stick connected it takes player 1 on its own without having to change anything!

Now we need to get the option to save game/core remaps per controller :wink:

Hope this helps you.

A post was split to a new topic: MAME-libretro question

Thank you I just figured out how to create a topic. I have just posted it. Thanks again for the help.