Forum Replies Created

Viewing 1 post (of 1 total)
  • Author
    Posts
  • digdug2029
    Participant

    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.

Viewing 1 post (of 1 total)