N64 emulation does not work with any of my controllers

  • Running 4.0.0 beta 6 on rPi 3B.

    I'm trying both a PlayStation 2 controller with a USB adapter and an 8bitdo Pro connected via USB.

    Both of them register the hotkey just fine -- so I'm able to save/load and exit a game.

    However I can't play the game. ๐Ÿ˜ž START does not even work.

    Is this an issue with the beta? Or is there something I am missing?

    I do know that N64 emulation goes through mupen64plus rather than libretro, but when I look at the mupen64plus InputAutoCfg.ini it seems to have all the controllers configured. (Great job, by the way, of adding soooo many controllers to the list! To bad it's not working for me.)

  • Staff
    Global moderator

    It is inherently impossible that you can exit the game, which works with the combination of Hotkey+Start, if your Start button ain't working.

  • @emblemparade you're not looking at the rigt files. The ones we use are stored in /recalbox/share/system/configs/mupen64

  • @paradadf Maybe I wasn't clear: HOTKEY+START works, but START doesn't work in the game. So, something is correct in the config, but something else isn't.

    @Substring Thanks, this is moving me forward. I tried to edit "/recalbox/share/system/configs/mupen64/InputAutoCfg.ini", but it seems that this file gets overwritten be Recalbox. I also see an "Input-SDL-Control1" section in "/recalbox/share/system/configs/mupen64/mupen64plus.cfg", but it says at the top of this file that it is "written by the Mupen64Plus Core library", so I guess I shouldn't be editing.

    So, I'm stuck now:

    1. Is there a way to manually edit the config for mupen64plus?
    2. Why is Recalbox generating a config that isn't working? Is this a bug?

  • Hey everyone, I have found the issue.

    To connect the PS2 controller, I am using a "duo" USB adapter. This adapter allows for two controllers to be connected. Using jstest, I noticed that the first controller is assigned from the right port, and second from the left port. Originally, I connected my controller to the left. Once I switched to the right (and reconfigured via Recalbox) then N64 worked fine. ๐Ÿ™‚

    So, I'm not really sure what is causing this. I am guessing because of how mupen64plus works, it uses the identifier in the ini file (in this case "Twin USB Joystick") to match the controller, and it just matches the first one that it finds with this name. Because there are two, but the first isn't connected, that is what it is using.

    I'm not sure if this bug can be fixed, but I hope so. If not, can I recommend putting something about this in the Recalbox wiki so that if people search they can easily find a solution? Here's some initial content:

    Configure PlayStation DualShock 1 and 2 Controllers

    Most emulators will work automatically.

    However, for N64 there is one issue. If you are connecting your controller using a two-controller-port-to-USB adapter, then one of these ports will be considered "controller 1" and the other "controller 2". In one test, "controller 1" was assigned to the right port on the adapter. N64 emulation will expect you to be using "controller 1". If you are having issues, try connecting your controller to the other port and reconfigure it.

  • Staff
    Global moderator

    @emblemparade You were clear, but to me and my superficial knowledge about this stuff, if the combo HK+START works, START alone must be working properly as well. Something else just doesn't make any sense (again... to me).
    Anyhow, I'll let the gurus help you with that. Good luck!

  • Come to think of it, I still don't have an explanation as to why my 8bitdo isn't working for N64 ...

    It seems that the whole interface between Recalbox and mupen64plus is a bit buggy. I think everything that uses libretro would work the same!

  • @emblemparade the files won't get overwritten if you add n64.configfile=whatever in your recalbox.conf

    the only thing that works so-so witn N64 is the player number assignement as, to tell you the truth, we have no power yet on it. But the autoconfigure works well. Or so I think ๐Ÿ˜„

  • @Substring Is this documented anywhere in the wiki? This is an interesting little corner of Recalbox. ๐Ÿ™‚

    I'm realizing more and more that mupen64plus is the weirdest part of the system. ๐Ÿ™‚

  • @emblemparade i think i edited the wiki 10 days ago about that

  • @Substring Can you point me to the wiki page? I can't find it.

  • Errrr .... I obviously can't ๐Ÿ˜„

  • I got a similar problem guys.

    Im using a XBOX Wireless controller and it is perfectly configured (incluiding xboxdrv). All emulators and games are working fine, but the N64 does not.

    The HOTKEY+Start works to leave the game, but when I use only Start or any key nothing happens, so I cant even start a game.

    I've already change ports and tryed to edit mupen64plus.cfg but it doesn't save the changes.

    When I plug another USB controler it works, so the problem is the Xbox or Wireless adapter .

    Any ideas? @emblemparade @Substring

  • @FAGUDES Try my debugging trick: ssh into your box and run "jstest /dev/input/js?" with the various "joysticks" you see there, and try to see what each joystick is. We can start with that and try to figure out what mupen64 is trying to use...

  • @FAGUDES how lany controllers did you have plugged with your xbox one ?

  • @Substring I'm confused by your answer to me. ๐Ÿ™‚ You edited the wiki 10 days ago but you don't have the link to it? Does that mean you edited it or forgot ...?

  • @Substring I just have one. I plugged a simple usb joystick just for test, but already removed and trying to fix this

    @emblemparade I tried but I'm really noob and I don't know how to continue after this:


    Anyway, maybe my problem is here: When I look at "share\system\configs\mupen64\mupen64plus.cfg" it show my first controller [Input-SDL-Control1] as "GPIO Controller 1" as you can see:

    # 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 = 2
    # 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 = "GPIO Controller 1"
    # 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(7)"
    Z Trig = "button(2)"
    B Button = "button(3)"
    A Button = "button(0)"
    C Button R = "button(1) axis(3+)"
    C Button L = "axis(3-)"
    C Button D = "axis(4+)"
    C Button U = "axis(4-) 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+)"

    My Xbox controller only appears in [Input-SDL-Control3] position as "Xbox Gamepad (user space driver)".

    I already tried to change and swap positions but the file always back to this order. In EmulationStation interface my Xbox is set to "#1 Player" and the other options on "Default".

  • @FAGUDES disable gpio controllers in recalbox.conf and reboot

  • @FAGUDES Sorry, I meant the "?" to represent a number. Press the TAB key instead of "?" and the terminal should show you which options are available to you. It might seem a bit awkward, but this is a great way to see exactly how Recalbox is seeing your controllers!

Log in to reply

Want to support us ?