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.


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 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.


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.