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.7k 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.
    • MisterMintsM
      MisterMints @mitu
      last edited by MisterMints

      @mitu said in Controller config - no longer working:

      @MisterMints said in Controller config - no longer working:

      What can I do to reset all controller configs?

      Use the RetroPie script and select the Emulationstation package, then you'll have a 'reset controller' option - https://retropie.org.uk/docs/EmulationStation/#controller-configs.

      For the controller problems

      • you probably didn't map the Hotkey for the SNES controllers, that's why any Select+ <key> combinations (exit, save state, load state, open RGUI) don't work. Re-map their input, then skip the Hotkey selection and you'll be asked if you want to use Select as hotkey - choose yes.
      • the DS4 (and DS3) are detected as 2 controllers in the new Raspbian Stretch - a normal controller and a set of motion sensors. See this topic for an explanation and a fix there.

      Thanks @mitu

      I had left the HotKeyundefined, and then pressed Yes to the prompt to go with the default setting, but for whatever reason that didn't work. I will give clearing the complete config a go and start again.

      Just a note on the Mega Drive pad - the Pi is registering that as an Xbox 360 pad and I'm not sure whether that will make any difference to the way it behaves, or the way Retropie deals with it. Anything I should change on this, or any reason to?

      You'll have to excuse my ignorance regarding the DS4s - what am I looking at on the links you provided, and what am I supposed to do? I have very little experience in Linux and using the command prompts, so an idiot's step by step guide would be appreciated!

      Thanks

      mituM 1 Reply Last reply Reply Quote 0
      • mituM
        mitu Global Moderator @MisterMints
        last edited by mitu

        @MisterMints said in Controller config - no longer working:

        Just a note on the Mega Drive pad - the Pi is registering that as an Xbox 360 pad and I'm not sure whether that will make any difference to the way it behaves, or the way Retropie deals with it. Anything I should change on this, or any reason to?

        It's registering as an Xbox 360 pad because that's what the device reports - probably just to be compatible with Windows/XBox. I wouldn't worry too much, as long as it's detected and configured properly.

        You'll have to excuse my ignorance regarding the DS4s - what am I looking at on the links you provided, and what am I supposed to do? I have very little experience in Linux and using the command prompts, so an idiot's step by step guide would be appreciated!

        The post I mentioned shows you which file you have to create from the command line (after you exit Emulationstation) and the contents. So exit ES and execute

        sudo nano /etc/udev/rules.d/51-disable-DS3-and-DS4-motion-controls.rules
        

        this will open the text editor and you can insert the lines below

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

        after that save the file (Ctrl+O), then exit the editor (Ctrl+X) and reboot your system (sudo reboot).

        MisterMintsM 1 Reply Last reply Reply Quote 1
        • MisterMintsM
          MisterMints @mitu
          last edited by

          @mitu said in Controller config - no longer working:

          @MisterMints said in Controller config - no longer working:

          Just a note on the Mega Drive pad - the Pi is registering that as an Xbox 360 pad and I'm not sure whether that will make any difference to the way it behaves, or the way Retropie deals with it. Anything I should change on this, or any reason to?

          It's registering as an Xbox 360 pad because that's what the device reports - probably just to be compatible with Windows/XBox. I wouldn't worry too much, as long as it's detected and configured properly.

          You'll have to excuse my ignorance regarding the DS4s - what am I looking at on the links you provided, and what am I supposed to do? I have very little experience in Linux and using the command prompts, so an idiot's step by step guide would be appreciated!

          The post I mentioned shows you which file you have to create from the command line (after you exit Emulationstation) and the contents. So exit ES and execute

          sudo nano /etc/udev/rules.d/51-disable-DS3-and-DS4-motion-controls.rules
          

          this will open the text editor and you can insert the lines below

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

          after that save the file (Ctrl+O), then exit the editor (Ctrl+X) and reboot your system (sudo reboot).

          Thanks @mitu

          Does it matter where I stick that SUBSYSTEMline in the file? Or just write it anywhere?

          Thanks

          mituM 1 Reply Last reply Reply Quote 0
          • mituM
            mitu Global Moderator @MisterMints
            last edited by

            @MisterMints said in Controller config - no longer working:

            Does it matter where I stick that SUBSYSTEMline in the file? Or just write it anywhere?

            I don't understand. Since this is a new file, there isn't anything there, just add everything on one line, exactly as it appears.

            MisterMintsM 1 Reply Last reply Reply Quote 0
            • MisterMintsM
              MisterMints @mitu
              last edited by

              @mitu said in Controller config - no longer working:

              @MisterMints said in Controller config - no longer working:

              Does it matter where I stick that SUBSYSTEMline in the file? Or just write it anywhere?

              I don't understand. Since this is a new file, there isn't anything there, just add everything on one line, exactly as it appears.

              Sorry, misunderstanding on my part - because you said "insert the lines below" I thought that meant the file already existed and I had to insert that line. Rather it creating a new file and then just typing that in.

              Anyway, done now, but it hasn't changed anything.

              Mario Kart 64 - player 2 still can't control anything so can't select a character and the Hotkey combinations don't do anything (other than Select + Start exiting the game). I have just remapped the DS4s and absolutely made sure not to define a Hotkey and select Yes to the system prompt to enable default set up.

              mituM 1 Reply Last reply Reply Quote 0
              • mituM
                mitu Global Moderator @MisterMints
                last edited by mitu

                @MisterMints What emulator are you using ? I think Mupen64plus (the default N64 emulator) might need some adjustments to the input configuration when using multiple controllers.

                MisterMintsM 1 Reply Last reply Reply Quote 0
                • MisterMintsM
                  MisterMints @mitu
                  last edited by MisterMints

                  @mitu said in Controller config - no longer working:

                  @MisterMints What emulator are you using ? I think Mupen64plus (the default N64 emulator) might need some adjustments to the input configuration when using multiple controllers.

                  mupen64plus-gles2n64

                  Its the only one I could get to work consistently without too much stutter, messed up graphics or crashes on the N64 games I tend to play. Super Mario 64 for example is just unplayable on anything else.

                  What adjustments would I need to make @mitu ?

                  MisterMintsM 1 Reply Last reply Reply Quote 0
                  • MisterMintsM
                    MisterMints @MisterMints
                    last edited by

                    I've found this thread on Reddit which suggests I need to amend the start and select buttons in the config file.

                    Mine currently read as:

                    input_start_btn = "9"
                    input_exit_emulator_btn = "9"
                    

                    but the Reddit thread suggests these should be two different numbers. I'm not really sure what to do with this information, or what to try next to get this all working like it used to.

                    mituM 1 Reply Last reply Reply Quote 0
                    • mituM
                      mitu Global Moderator @MisterMints
                      last edited by

                      @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.

                      MisterMintsM 1 Reply Last reply Reply Quote 0
                      • MisterMintsM
                        MisterMints @mitu
                        last edited by

                        @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+)"
                        
                        MisterMintsM 1 Reply Last reply Reply Quote 0
                        • MisterMintsM
                          MisterMints @MisterMints
                          last edited by

                          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
                          • mituM
                            mitu Global Moderator
                            last edited by

                            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 ?

                            MisterMintsM 1 Reply Last reply Reply Quote 0
                            • MisterMintsM
                              MisterMints @mitu
                              last edited by MisterMints

                              @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
                              • mituM
                                mitu Global Moderator
                                last edited by

                                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.

                                MisterMintsM 2 Replies Last reply Reply Quote 0
                                • MisterMintsM
                                  MisterMints @mitu
                                  last edited by

                                  @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
                                  • MisterMintsM
                                    MisterMints @mitu
                                    last edited by

                                    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

                                    mituM 1 Reply Last reply Reply Quote 0
                                    • mituM
                                      mitu Global Moderator @MisterMints
                                      last edited by

                                      @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 ?

                                      MisterMintsM 1 Reply Last reply Reply Quote 0
                                      • MisterMintsM
                                        MisterMints @mitu
                                        last edited by MisterMints

                                        @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

                                        MisterMintsM 1 Reply Last reply Reply Quote 0
                                        • MisterMintsM
                                          MisterMints @MisterMints
                                          last edited by

                                          @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?

                                          mituM 1 Reply Last reply Reply Quote 0
                                          • mituM
                                            mitu Global Moderator @MisterMints
                                            last edited by

                                            @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.

                                            MisterMintsM 1 Reply Last reply Reply Quote 1
                                            • First post
                                              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.