• Recent
  • Tags
  • Popular
  • Home
  • Docs
  • Register
  • Login
RetroPie forum home
  • Recent
  • Tags
  • Popular
  • Home
  • Docs
  • Register
  • Login
Please do not post a support request without first reading and following the advice in https://retropie.org.uk/forum/topic/3/read-this-first

Controller config - no longer working

Scheduled Pinned Locked Moved Help and Support
controll config
24 Posts 2 Posters 3.5k Views
Loading More Posts
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • M
    MisterMints @mitu
    last edited by 4 Dec 2018, 19:10

    @mitu said in Controller config - no longer working:

    @MisterMints The format of the button configuration for Mupen64plus is described in the docs - check if the generated configuration file has settings for both your controllers.

    @mitu I assume that Wireless Controller is the one I should be looking for (since the DS4s are wireless and that's what shows up when trying to configure them through the GUI).

    This is what shows up in the config file at /opt/retropie/configs/n64/mupen64plus.cfg:

    [Input-SDL-Control2]
    
    # 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 = 1
    # SDL joystick name (or Keyboard)
    name = "Wireless Controller"
    # 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, 4=Transfer 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(6)"
    B Button = "button(3)"
    A Button = "button(0)"
    C Button R = "axis(3+)"
    C Button L = "axis(3-)"
    C Button D = "button(1) axis(4+)"
    C Button U = "button(2) axis(4-)"
    R Trig = "button(5)"
    L Trig = "button(4)"
    Mempak switch = "button(11)"
    Rumblepak switch = "button(12)"
    # Analog axis configuration mappings
    X Axis = "axis(0-,0+)"
    Y Axis = "axis(1-,1+)"
    
    
    [Input-SDL-Control3]
    
    # 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 = 2
    # SDL joystick name (or Keyboard)
    name = "Wireless Controller"
    # 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, 4=Transfer 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(6)"
    B Button = "button(3)"
    A Button = "button(0)"
    C Button R = "axis(3+)"
    C Button L = "axis(3-)"
    C Button D = "button(1) axis(4+)"
    C Button U = "button(2) axis(4-)"
    R Trig = "button(5)"
    L Trig = "button(4)"
    Mempak switch = "button(11)"
    Rumblepak switch = "button(12)"
    # Analog axis configuration mappings
    X Axis = "axis(0-,0+)"
    Y Axis = "axis(1-,1+)"
    
    
    [Input-SDL-Control4]
    
    # 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 = 3
    # SDL joystick name (or Keyboard)
    name = "Wireless Controller Motion Sensors"
    # 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, 4=Transfer 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(6)"
    B Button = "button(3)"
    A Button = "button(0)"
    C Button R = "axis(3+)"
    C Button L = "axis(3-)"
    C Button D = "button(1) axis(4+)"
    C Button U = "button(2) axis(4-)"
    R Trig = "button(5)"
    L Trig = "button(4)"
    Mempak switch = "button(11)"
    Rumblepak switch = "button(12)"
    # Analog axis configuration mappings
    X Axis = "axis(0-,0+)"
    Y Axis = "axis(1-,1+)"
    
    M 1 Reply Last reply 4 Dec 2018, 20:59 Reply Quote 0
    • M
      MisterMints @MisterMints
      last edited by 4 Dec 2018, 20:59

      One other thing to mention...

      The "press A to configure" option while the game starts doesn't work on the N64 with DS4 either.

      I'm out of my depth here @mitu. I don't understand what I should be checking for and editing with that N64 document page and config files

      1 Reply Last reply Reply Quote 0
      • M
        mitu Global Moderator
        last edited by 5 Dec 2018, 15:40

        It looks like the settings for ignoring the 'Motion Sensors' did not work. I'll test it myself with a DS4.
        In your configuration file, there's a missing entry for the 1st controller ([Input-SDL-Control1]), you either didn't paste it or it's not present. When you're trying out the 2nd player in Mupen64plus, do you also have the other controllers (SNES Innext) plugged in ? Did you try with just the BT controllers connected to see if the 2nd player appears ?

        M 1 Reply Last reply 5 Dec 2018, 16:47 Reply Quote 0
        • M
          MisterMints @mitu
          last edited by MisterMints 12 May 2018, 16:50 5 Dec 2018, 16:47

          @mitu said in Controller config - no longer working:

          It looks like the settings for ignoring the 'Motion Sensors' did not work. I'll test it myself with a DS4.
          In your configuration file, there's a missing entry for the 1st controller ([Input-SDL-Control1]), you either didn't paste it or it's not present.

          [Input-SDL-Control1] is in the mupen64plus.cfg file, I must have just not copied it across.

          When you're trying out the 2nd player in Mupen64plus, do you also have the other controllers (SNES Innext) plugged in ? Did you try with just the BT controllers connected to see if the 2nd player appears ?

          I have done it with the USB controls connected and unconnected. No difference.

          1 Reply Last reply Reply Quote 0
          • M
            mitu Global Moderator
            last edited by 5 Dec 2018, 18:02

            OK, so I connected a DS4 and - as expected - the systems sees both the Motion Sensors and the Wireless Controller as gamepads. After adding the .rules file and rebooting, the Motion Sensors are gone and they don't appear as an extra gamepad/joystick. When you configure your DS4 in Emulationstation, how many gamepads it reports as detected ? Before the .rules file was added, mine reported 2, after it reported only 1.

            Take a look at the N64 .cfg file you pasted and pay attention in each of the [Input-SDL-ControlX] sections, to the device = <X> line. Each section assigns a player to gamepad. The device = <X> instructs the emulator to look for the device numbered <X> (numbering starts from 0).
            In your file, I see that Wireless Controller Motion Sensors appears in the list, but it shouldn't, since it's not a real gamepad, so the configuration file has been generated when the motion sensors where available.
            I'd suggest to rename this .cfg file, then re-install the Mupen64-plus emulator (so the cfg file gets generated again) and then re-configure your DS4 controller. Check the file and see if the controller is correctly registered - i.e. without the Motion Sensors - and how many controllers are registered - i.e. how many [Input-SDL-ControlX] sections are saved.

            Try a N64 game and see if both controllers work. Unfortunately I don't have 2 DS4, just one, so I can't test it myself.

            M 2 Replies Last reply 5 Dec 2018, 18:58 Reply Quote 0
            • M
              MisterMints @mitu
              last edited by 5 Dec 2018, 18:58

              @mitu said in Controller config - no longer working:

              OK, so I connected a DS4 and - as expected - the systems sees both the Motion Sensors and the Wireless Controller as gamepads. After adding the .rules file and rebooting, the Motion Sensors are gone and they don't appear as an extra gamepad/joystick. When you configure your DS4 in Emulationstation, how many gamepads it reports as detected ? Before the .rules file was added, mine reported 2, after it reported only 1.

              Take a look at the N64 .cfg file you pasted and pay attention in each of the [Input-SDL-ControlX] sections, to the device = <X> line. Each section assigns a player to gamepad. The device = <X> instructs the emulator to look for the device numbered <X> (numbering starts from 0).
              In your file, I see that Wireless Controller Motion Sensors appears in the list, but it shouldn't, since it's not a real gamepad, so the configuration file has been generated when the motion sensors where available.
              I'd suggest to rename this .cfg file, then re-install the Mupen64-plus emulator (so the cfg file gets generated again) and then re-configure your DS4 controller. Check the file and see if the controller is correctly registered - i.e. without the Motion Sensors - and how many controllers are registered - i.e. how many [Input-SDL-ControlX] sections are saved.

              Try a N64 game and see if both controllers work. Unfortunately I don't have 2 DS4, just one, so I can't test it myself.

              I have a theory then....

              I'm sure when I configured the first DS4 it said there were 3 pads connected. 1 being the SNES I used to navigate the menus and the other being my MegaPi case.

              I may need to clear all the config files and reinstall the emulator as you've said, but take the Pi out of the case (or at least disconnect the USBs) and start again.

              Will try later and report back

              1 Reply Last reply Reply Quote 0
              • M
                MisterMints @mitu
                last edited by 6 Dec 2018, 18:02

                Hi @mitu

                I think its (almost) solved now!! Thank you for help!

                I disconnected everything, except my keyboard, uninstalled mupen64, disconnected and deleted all Bluetooth devices and controller configs and then started again.

                I though I should also redo the ignore DS3/DS4 rule, so followed the steps to complete that, and this is where I noticed a (probable) major flaw. My file contained the following:

                SUBSYSTEM=="input", ATTRS{name}=="*Motion Sensors", RUN+=="/bin/rm %E{DEVNAME}"
                

                When it actually should've contained this:

                SUBSYSTEM=="input", ATTRS{name}=="*Motion Sensors", RUN+="/bin/rm %E{DEVNAME}"
                

                Notice the extra = after RUN+? Looks like that could be what made it not work.

                Anyway, removed the extra = and saved the file, rebooted and remapped my DS4s, configured them and fired up Mario Kart 64 and it worked.

                Couple of issues remain though! mupen64 still does not respond to any HotKey+ combinations other than Select+Start but I can probably live with that.

                When I start the system up it now always complains that no gamepad is connected and asks me to configure one. As soon as I turn a DS4 on and tap a button this goes away, but it is slightly irritating when it just used to sit at the main menu until I connected something.

                All inconveniences rather than show stoppers, but if there is any way to prevent the config dialog opening each start up then I'm happy to hear all about it!

                Thanks again

                M 1 Reply Last reply 6 Dec 2018, 18:10 Reply Quote 0
                • M
                  mitu Global Moderator @MisterMints
                  last edited by 6 Dec 2018, 18:10

                  @MisterMints said in Controller config - no longer working:

                  When I start the system up it now always complains that no gamepad is connected and asks me to configure one. As soon as I turn a DS4 on and tap a button this goes away, but it is slightly irritating when it just used to sit at the main menu until I connected something.

                  That's the default behavior. I remember seeing somewhere a workaround - configuring a keyboard as a gamepad in the system once, then when ES boots it doesn't ask for a controller to be selected.

                  Glad you got it working out. You can probably make Start + Select working again - how are you 'skipping' the Hotkey selection in the input configuration dialog ? Are you using the D-pad to skip over, or long-press another button ?

                  M 1 Reply Last reply 6 Dec 2018, 18:50 Reply Quote 0
                  • M
                    MisterMints @mitu
                    last edited by MisterMints 12 Jun 2018, 18:53 6 Dec 2018, 18:50

                    @mitu said in Controller config - no longer working:

                    @MisterMints said in Controller config - no longer working:

                    When I start the system up it now always complains that no gamepad is connected and asks me to configure one. As soon as I turn a DS4 on and tap a button this goes away, but it is slightly irritating when it just used to sit at the main menu until I connected something.

                    That's the default behavior. I remember seeing somewhere a workaround - configuring a keyboard as a gamepad in the system once, then when ES boots it doesn't ask for a controller to be selected.

                    Glad you got it working out. You can probably make Start + Select working again - how are you 'skipping' the Hotkey selection in the input configuration dialog ? Are you using the D-pad to skip over, or long-press another button ?

                    @mitu Long pressing down on the D-pad, it then says not defined, I hit OK, then a pop up comes up about No Hotkey enabled - set up the default (or whatever the wording is) and I hit Yes/OK again

                    M 1 Reply Last reply 7 Dec 2018, 10:06 Reply Quote 0
                    • M
                      MisterMints @MisterMints
                      last edited by 7 Dec 2018, 10:06

                      @mitu Is it expected that the DS3/DS4 rules file would disable the analogue sticks in PS1 games?

                      Admittedly I've been focusing on getting the 2 controllers working with N64, but I'm almost certain that Tony Hawk's 2 and Spyro were previously playable with the left joystick, but now only respond to the D-pad.

                      Is there a way to re-enable the joysticks on PS1 games?

                      M 1 Reply Last reply 7 Dec 2018, 10:09 Reply Quote 0
                      • M
                        mitu Global Moderator @MisterMints
                        last edited by 7 Dec 2018, 10:09

                        @MisterMints said in Controller config - no longer working:

                        Is it expected that the DS3/DS4 rules file would disable the analogue sticks in PS1 games?

                        No. Check if you have enabled the analog controls in the libretro core options as explained here.

                        M 1 Reply Last reply 7 Dec 2018, 10:39 Reply Quote 1
                        • M
                          MisterMints @mitu
                          last edited by 7 Dec 2018, 10:39

                          @mitu said in Controller config - no longer working:

                          @MisterMints said in Controller config - no longer working:

                          Is it expected that the DS3/DS4 rules file would disable the analogue sticks in PS1 games?

                          No. Check if you have enabled the analog controls in the libretro core options as explained here.

                          Got it. Cheers.

                          1 Reply Last reply Reply Quote 0
                          • M
                            MisterMints
                            last edited by MisterMints 12 Nov 2018, 10:46 9 Dec 2018, 18:06

                            ~~Just when I thought my issues were fixed....!!

                            Trying to set up version 2 of this Raspberry Pi - everything is the same as the one discussed above, image from v1 copied and then written to a second SD card and inserted into a second Pi 3B+

                            As I start it up I'm getting the usual "no gamepad detected" which is fine, I'll live with it, but on v2 only, when I try to map a pad (in this case a second Mega Drive replica, and a brand new out of the box second Mega Drive replica) I cannot map any buttons other than Up, Down, Left, Right, Start and Select.

                            When I get to button A, I have no response whatever. I thought it might be a faulty controller, but as I've said, also tried it with a one I know works on the original system and get the same issue.

                            Try rewriting the SD card? Anyway to skip button mapping completely? Something else to try?~~

                            Ignore. Got it working by changing the input mode of the pad from X input to D input

                            1 Reply Last reply Reply Quote 1
                            24 out of 24
                            • First post
                              24/24
                              Last post

                            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.

                              This community forum collects and processes your personal information.
                              consent.not_received