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

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