Skip to content
A script to let the user choose the controllers for RetroArch players 1-4
Branch: master
Clone or download
meleu Merge pull request #33 from cmitu/master
Quote dirname arguments - fixes the menu script creation
Latest commit 8863d0f Mar 29, 2019


A script to let the user choose the controllers to use for RetroArch players 1-4. It shows several user-friendly dialog boxes to perform this task. You can set the global and/or the system specific configuration.

The joystick selection has two methods of work:

  1. The traditional joystick selection by its index number
  2. The new joystick selection by name method

The advantage of the selection by name method is that there is no need to care about the joystick connection order. You can configure your "Generic USB SNES gamepad" to be the player1 no matter what USB port you use. Or, better yet, configure your "Fancy Bluetooth joypad" to be the player1 no matter what was the order it was paired or how many USB joysticks are connected.

It was made for use with RetroPie only.


[30-June-2017] The installation procedure has changed (again)!

Some people were having issues with the previous installation procedure, then I changed it to simplify things.

  1. If you're on EmulationStation, press F4 to go to the Command Line Interface.

  2. Download the script, and launch it:

curl -o
  1. The script will automatically download the joystick-selection scriptmodule and install everything you need. After installation you can safely delete the file:
  1. After that you are ready to use it via RetroPie menu in emulationstation:


After installing, you can update it through RetroPie-Setup.

To update the joystick-selection tool, go to RetroPie-Setup and:

Manage packages >> Manage experimental packages >> joystick-selection >> Update from source


If you would like to buy me a beer and say thanks, click the button below.



Main menu:


Global configuration (with no configs):


Joystick selection screen:


Global configuration (by index method, all 4 joysticks are set):


Global configuration (by name method, all 4 joysticks are set):


Systems menu (I have just a few of them installed):


System specific (by index method, some joysticks are set):


System specific (by name method, some joysticks are set):


Known Issues

  • If you are using joysticks with equal names, then, yes, the connection order matters.
  • [This issue doesn't happen if you use the joystick selection by name method] If the joystick list order changes (adding/removing devices), your configuration changes too. So you have to run again.
  • [This is RetroArch issue. It doesn't happen because of the joystick selection tool] Due to the dynamic nature of bluetooth connections, if you configure a bluetooth joystick as Player 1, and somehow lose the connection during a game, if you don't have a keyboard plugged in it'll be annoying to exit RetroArch (connect to RetroPie via ssh and kill RetroArch process. If your raspi isn't on the LAN, :( I think you'll have to unplug your power supply.).
You can’t perform that action at this time.