Please do not post a support request without first reading and following the advice in

Controller (auto?) config question

  • Raspberry pi 3 model b
    IPAC 4
    Occasional usb controller
    Updated RetroPie software
    Using lr-mame2003 and lr-fbalpha

    This is probably a really dumb question, but I had my iPac controls all perfectly configured in opt/retropie/configs/all/retroarch.cfg (I had player 1 and 2 control info sorted and at the top, etc). I then added a usb controller - and while it didn’t remap the keystroke designations, it added a ton of other commands to my config folder that weren't there before (players 5-16, light gun references, changed the sorting, etc). Is this normal? Was it a result of some auto config setting that I can disable if I reinstall backup folder and add usb in future?


  • Global Moderator

    @DetroitKp Did you use 'Save Configuration' or did you enable 'Save Config on Exit' in RetroArch ? That's how you usually end up with a cluttered retroarch.cfg (which is not the controller auto-configuration location).

  • @mitu My ipac modifications were manually configured on my computer. Config_save_on_exit is set to false. When I plug in usb controller for first time it messes up my folder and adds a bunch of crap. Certain keystrokes designations also will not work when usb controller is plugged (p for pause and exit/escape key). If I unplug usb controller and restart ES, the keyboard controls work again.

  • Global Moderator

    @DetroitKp said in Controller (auto?) config question:

    When I plug in usb controller for first time it messes up my folder and adds a bunch of crap

    What exactly does it add ? Just plugging in the controller doesn't create any file or modify any file.

    If I unplug usb controller and restart ES, the keyboard controls work again.

    It's probably because the controller takes over as P1, so the keyboard doesn't function as P1 anymore. If you want the controller to be P3, then you need to configure it.

  • Here is pre-usb config:

    After I plug in usb:

    After I plug in usb, my dedicated escape, pause, and tab buttons no longer work. Usb controller must be taking over player 1 and enabling the hotkey?

    Do I need to modify these?

    input_player1_joypad_index = 0

    input_player2_joypad_index = 1

    input_player3_joypad_index = 2

    input_player4_joypad_index = 3

    Note, I generally don't mess with RetroArch GUI at all. Do I need to bind controllers, etc? I figured I could do everything manually in the retropie/configs/all/retroarch.cfg.


  • @mitu I changed this from true to false. Maybe this will let me configure a controller and add the preferences manually.
    input_autodetect_enable = “false”

  • Global Moderator

    @DetroitKp The 2nd config you posted (corresponding to the USB controller being plugged in) is a full RA config, that is produced when you save the config from the GUI (or enable saving on exit).
    Are you sure it's the same file you're posting ? I don't think there's any mechanism in RetroPie to switch those files depending on the controllers used. Maybe the 1st file is the one from /opt/retropie/configs/all and the 2nd one from the /opt/retropie/configs/arcade ?

    When you configure a controller, Emulationstation will create a controller configuration file in /opt/retropie/configs/all/retroarch-joypads with the button mappings, and that's all.

    Your configuration steps are fine, and to choose what player the controller gets assigned, you indeed have to set input_playerX_joypad_index. So 1st controller would have the index 0, assigning it to P3 would be

    input_player3_joypad_index = 0


    You can leave input_autodetect_enable to true , otherwise the auto-config mapping for the controller would not be loaded.

    I would check where the 2nd file is coming from and if it's from the /opt/retropie/configs/arcade folder, you should reset it to default:

    # Settings made here will only override settings in the global retroarch.cfg if placed above the #include line
    input_remapping_directory = "/opt/retropie/configs/arcade/"
    #include "/opt/retropie/configs/all/retroarch.cfg"

Log in to reply

Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.

Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.