Homepage Forums RetroPie Project New to RetroPie? Start Here! Change controller config for specific system in Retropie 3.2.1

Viewing 3 posts - 1 through 3 (of 3 total)
  • Author
  • #109751

    I just fired up a retropie 3.2.1 build on a Raspberry Pi 2. I was trying to tweak the n64 emulator, so I changed the default emulator to something else (gliden64 I think).

    Since then, the button configuration I globally configured via emulationstation (Xbox Gamepad userspace driver) do not work on the n64 ROMs. This includes the global hotkey to exit games. Also, none of the buttons on my Xbox 360 controller will allow me to go back into the menu to even change the emulator back to something else.

    What do I need to do in order to fix the controller mappings?


    I was able to eventually figure this out on my own. Maybe someone else will find this useful, so I’ll go through everything I went through to figure this out. I’m sure I could have made it easier on myself, but online searches kept pointing me to information that was outdated. Anyways, here you go:

    First off, I previously tried screwing around with /opt/retropie/configs/n64/retroarch.cfg. Thankfully I had a backup and just restored it to the original. Secondly, I hooked up a keyboard and regained the ability to at least choose the n64 default emulator and specific choices for individual ROMs. So from there I found a n64 compatibility list and started selecting emulators from that sheet.

    If I had a game based on lr-mupen64plus (Libretto? I think it’s called sometimes), I started a game with that emulator choice and was able to pull up an on-screen menu via F1 on my keyboard to do a custom mapping for my Xbox 360 controller.

    However, most of the other games I was trying used mupen64plus, and either there is no onscreen menu to do the mapping or I can’t find one. Either way, I had to edit the /opt/retropie/configs/n64/mupen64plus.cfg file to make the specific mappings for my controller work.

    To even know what the mappings were I had to plug in a keyboard, exit emulationstation and run the following command: jstest /dev/input/js0. It brough up text listing axis and buttons for the controller. I pressed every button, one at a time, watched what values changed for 0, and then made a notation. This is what I came up with for my Xbox 360 controller connected wirelessly to a 3rd party USB to wireless adapter (YMMV of course):

    L Analog up:          axis -1
    L Analog down       axis +1
    L Analog left          axis -0
    L Analog right       axis +0
    R Analog up          axis -3
    R Analog down     axis +3
    R Analog left          axis -2
    R Analog right        axis +2
    Digital up               axis -5
    Digital down          axis +5
    Digital left               axis -4
    Digital right             axis +4
    Select    button 8
    Start       button 9
    Xbox button     button 10
    A          button 0
    B          button 1
    X          button 2
    Y          button 3
    L trigger          button 6
    R trigger          button 7
    L shoulder button     button 4
    R shoulder button     button 5

    I then modified the mupen64plus.cfg file and looked for the [Input-SDL-Control1] section to modify the settings for the controller. In that section I HAD TO set mode = 0 (fully manual), otherwise it would just revert my custom mapping. Right under the # Digital button configuration mappings section is where I put in the customizations. Obviously these are my preferences but maybe this will be an example for someone:

    # Digital button configuration mappings
    DPad R = "hat(0 Right)"
    DPad L = "hat(0 Left)"
    DPad D = "hat(0 Down)"
    DPad U = "hat(0 Up)"
    Start = "button(9)"
    Z Trig = "button(5)"
    B Button = "button(1)"
    A Button = "button(0)"
    C Button R = "axis(2+)"
    C Button L = "axis(2-)"
    C Button D = "axis(3+)"
    C Button U = "axis(3-)"
    R Trig = "button(7)"
    L Trig = "button(6)"

    Lastly, it bothered me like crazy that there wasn’t a hotkey for me to exit the mupen64plus emulator from my controller. Since I did the hard work earlier to understand the configuration of every button and stick on my Xbox 360 controller, I just had to pick a single button for the hotkey (I believe that key combinations for mupen64plus are not allowed, but maybe I’m wrong). I decided to use the Xbox button, which for my controller was button 10. From looking online, I had list the joystick number. Since it tested as js0, then it’s joystick 0, or J0 for the parameter, and B10 for “button 10”. I modified the following area to allow the hotkey:
    Joy Mapping Stop = "J0B10"

    Frustrations with the controller on mupen64plus are now over! Hope this helped someone other than myself.


    There are now options for multipress hotkeys with mupen64plus

    An example is in the wiki:


Viewing 3 posts - 1 through 3 (of 3 total)
  • The forum ‘New to RetroPie? Start Here!’ is closed to new topics and replies.