N64 USB Controller Mapping - RecalBox 18.02.09



  • Like a lot of you, I've found mapping N64 controllers to be quite frustrating. I may have found a solution; well, it has worked for me at least. I am running RecalBox 18.02.09 on an ODROID XU4. I am accessing recalbox via SSH through my Mac. I am using standard usb N64 controllers.

    Several posts suggested that the file system is read only, so you first have to make it writable. To do this you must first access the recalbox command line. I did this by accessing it through 'Terminal' on my Mac. To do this, open 'Terminal' and enter the command:

    ssh root@your_recalbox_ip

    Find your recalbox IP by pressing 'Start' on your recalbox and scrolling down to 'Network Settings'

    The password is: recalboxroot

    Then enter this command to make the file system 'writable':

    mount -o remount,rw /

    In all honesty, I do not know if the preceding process was necessary to make the files writable, but I read on a few forum posts and figured it was for the best to do so.

    If you have not yet, plug in all of your N64 USB controllers so they register in the config files. I have 4 N64 controllers attached to my ODROID XU4. Restart your system.

    Next step is to open 'RECALBOX' under shared devices in Finder. (If you are using Windows there are a couple of options for using SSH, google it).

    Navigate to /recalbox/share/system/configs/mupen64/

    Open mupenplusn64.cfg in 'TextEdit'

    Scroll down to [Input-SDL-Control#]
    (# indicates the controller number, in my case I have 4-N64 controllers attached, so I have an entry for Input-SDL-Control1, Input-SDL-Control2, Input-SDL-Control3, & Input-SDL-Control4)

    For each controller you will want to edit the following:

    1. The default controller configuration mode is 2, which is automatic. Change the controller configuration mode to 0.

    It should read:

    Controller configuration mode: 0=Fully Manual, 1=Auto with named SDL Device, 2=Fully automatic
    mode = 0

    1. Change the Digital button configuration mappings to the following:

    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(7)"
    B Button = "button(8)"
    A Button = "button(6)"
    C Button R = "button(1)"
    C Button L = "button(3)"
    C Button D = "button(2)"
    C Button U = "button(0)"
    R Trig = """button(5)”"
    L Trig = "button(4)"
    Mempak switch = ""
    Rumblepak switch = ""
    Analog axis configuration mappings
    X Axis = "axis(0-,0+)"
    Y Axis = "axis(1-,1+)"

    I am using DragonRise Inc. Generic USB Joysticks.

    This is what my configuration shows:

    [Input-SDL-Control1]

    Mupen64Plus SDL Input Plugin config parameter version number. Please don't change this version number.
    version = 2
    Controller configuration mode: 0=Fully Manual, 1=Auto with named SDL Device, 2=Fully automatic
    mode = 0
    Specifies which joystick is bound to this controller: -1=No joystick, 0 or more= SDL Joystick number
    device = 0
    SDL joystick name (or Keyboard)
    name = "DragonRise Inc. Generic USB Joystick "
    Specifies whether this controller is 'plugged in' to the simulated N64
    plugged = True
    Specifies which type of expansion pak is in the controller: 1=None, 2=Mem pak, 5=Rumble pak
    plugin = 2
    If True, then mouse buttons may be used with this controller
    mouse = False
    Scaling factor for mouse movements. For X, Y axes.
    MouseSensitivity = "2.00,2.00"
    The minimum absolute value of the SDL analog joystick axis to move the N64 controller axis value from 0. For X, Y axes.
    AnalogDeadzone = "4096,4096"
    An absolute value of the SDL joystick axis >= AnalogPeak will saturate the N64 controller axis value (at 80). For X, Y axes. For each axis, this must be greater than the corresponding AnalogDeadzone value
    AnalogPeak = "32768,32768"
    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(7)"
    B Button = "button(8)"
    A Button = "button(6)"
    C Button R = "button(1)"
    C Button L = "button(3)"
    C Button D = "button(2)"
    C Button U = "button(0)"
    R Trig = """button(5)”"
    L Trig = "button(4)"
    Mempak switch = ""
    Rumblepak switch = ""
    Analog axis configuration mappings
    X Axis = "axis(0-,0+)"
    Y Axis = "axis(1-,1+)"



Want to support us ?

Join us on :

699
Online

25487
Users

13351
Topics

101181
Posts

Looks like your connection to Recalbox Forum was lost, please wait while we try to reconnect.