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

    Gamepads Not Recognized after updating Retropie

    Scheduled Pinned Locked Moved Help and Support
    gamepad issuegamepad driverretropie update
    17 Posts 3 Posters 3.3k 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 @jdriscol
      last edited by

      Seems similar to https://github.com/paroj/xpad/issues/119. The clone mimics a Xbox360 controller, but expects some initialization sequence when the connection begins, which is not sent by the driver. Steamlink may send that sequence when starting, that's why the controller starts working when using it.

      What you may try:

      • uninstall the xpad driver completely.
      • make sure RetroPie-Setup script is updated also - if you've run just a package update, that may not have happened.
      • reboot
      • install the xpad driver again. See if the issue persist.

      If the issue still exists, then try the workaround from
      https://gist.github.com/dnmodder/de2df973323b7c6acf45f40dc66e8db3 by running a python script to force initialization. See if that fixes the initialization issue.

      J 1 Reply Last reply Reply Quote 0
      • J
        jdriscol @mitu
        last edited by

        @mitu

        Thank you for the advice. I attempted to remove the xpad driver as you described and reinstall it after a reboot. It didn't seem to do anything. The gamepad is still not being picked up by ES. To be clear, I uninstalled/reinstalled the driver through the RetroPie Setup menu. Is that what you mean by uninstalling the driver completely?

        Before I give the Python script a shot, do I need to run that from a particular folder or anything?

        Thanks for the help.

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

          @jdriscol said in Gamepads Not Recognized after updating Retropie:

          To be clear, I uninstalled/reinstalled the driver through the RetroPie Setup menu. Is that what you mean by uninstalling the driver completely?

          Yes.

          Before I give the Python script a shot, do I need to run that from a particular folder or anything?

          No, any folder would be fine. Just save it to a $HOME/scripts folder and run it from the command line to test it first. If it works, modify /opt/retropie/configs/all/autostart.sh and add a line calling the script, just before the line that starts with emulationstation.

          J 1 Reply Last reply Reply Quote 0
          • J
            jdriscol @mitu
            last edited by jdriscol

            @mitu
            Ok, so after spinning my wheels a bit trying to get that python script to run (I'm a bit out of my depth, but trying to learn), it seemed like I got it to execute with no errors. At this point, should the gamepads be working, or not until I add it to the autostart.sh script? I haven't added the line to autostart.sh yet, but I'm still not getting any response from the gamepads.

            Also, when I call the python script from this shell file, I assume it will be:

            sudo python3 /home/pi/Scripts/fixcontroller.py
            

            Do I have that right?

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

              @jdriscol said in Gamepads Not Recognized after updating Retropie:

              Also, when I call the python script from this shell file, I assume it will be: [..]

              Yes, that's correct.

              Just running the script should have enabled the controllers (even without adding it to autorun.sh). If that hasn't solved the controller initialization issue, then your problem is a different one.

              I wonder what SteamLink does that xpad doesn't.

              J 1 Reply Last reply Reply Quote 0
              • J
                jdriscol @mitu
                last edited by jdriscol

                @mitu
                I ended up putting a new image on the Pi and still no luck, initially. Eventually, I changed the mode on the gamepad (which I thought I had tried previously), and now it seems to work. In short, RetroPie only seems to recognize my gamepad in DirectInput mode instead of XInput since some update (unknown) of RetroPie. (Previously my gamepad worked in XInput mode no problem.) This is pretty annoying because it means I lose the rumble functionality in my games, plus it swaps out the left d-pad with the left stick.

                Any ideas on how to resolve this specific issue?

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

                  @jdriscol said in Gamepads Not Recognized after updating Retropie:

                  Any ideas on how to resolve this specific issue?

                  Assuming it's an xpad change that triggers this problem, you can try and install an older version. Do you known which version of RetroPie you had installed before the update - that would help narrow down the xpad version which didn't have the problem.

                  J 1 Reply Last reply Reply Quote 0
                  • J
                    jdriscol @mitu
                    last edited by

                    @mitu
                    I'm pretty sure my previous build was 4.7.1. I just went back and reviewed the thread in my initial post and realized that after updating the xpad shell file

                    rp_module_repo="git https://github.com/paroj/xpad.git master 389e258"
                    

                    I never went back to update the driver. I attempted that, but got the following error log:

                    Log started at: Sun  5 Feb 13:02:39 PST 2023
                    
                    RetroPie-Setup version: 4.8.2 (b956140c)
                    System: rpi3 (armv7l) - Raspbian GNU/Linux 10 (buster) - Linux retropie 5.10.103-v7+ #1529 SMP Tue Mar 8 12:21:37 GMT 2022 armv7l GNU/Linux
                    Update is available - updating ...
                    
                    = = = = = = = = = = = = = = = = = = = = =
                    Installing dependencies for 'xpad' : Updated Xpad Linux Kernel driver
                    = = = = = = = = = = = = = = = = = = = = =
                    
                    /home/pi/RetroPie-Setup/tmp/build/xpad /home/pi
                    
                    = = = = = = = = = = = = = = = = = = = = =
                    Getting sources for 'xpad' : Updated Xpad Linux Kernel driver
                    = = = = = = = = = = = = = = = = = = = = =
                    
                    git clone --recursive --branch master "https://github.com/paroj/xpad.git" "/opt/retropie/supplementary/xpad"
                    Cloning into '/opt/retropie/supplementary/xpad'...
                    Winding back https://github.com/paroj/xpad.git->master to commit: #389e258
                    fatal: '389e258' is not a commit and a branch '389e258' cannot be created from it
                    HEAD is now in branch 'master' at commit '1bdf0926376e9a256d32619122e755923de1dd0a'
                    patching file xpad.c
                    Hunk #1 succeeded at 78 with fuzz 2 (offset -8 lines).
                    Hunk #2 succeeded at 2255 (offset 471 lines).
                    Successfully applied patch: /home/pi/RetroPie-Setup/scriptmodules/supplementary/xpad/01_enable_leds_and_trigmapping.diff
                    patching file dkms.conf
                    Successfully applied patch: /home/pi/RetroPie-Setup/scriptmodules/supplementary/xpad/02_dkms_updates_folder.diff
                    Error running 'git -C /opt/retropie/supplementary/xpad checkout -f 389e258 -b 389e258' - returned 128
                    /home/pi
                    
                    Log ended at: Sun  5 Feb 13:02:41 PST 2023
                    Total running time: 0 hours, 0 mins, 2 secs
                    

                    Am I missing a step here?

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

                      @jdriscol said in Gamepads Not Recognized after updating Retropie:

                      Am I missing a step here?

                      Revert your changes to the script, cleanup the source folder (from the RetroPie-Setup xpad package's menu) and then you can reinstall.

                      J 1 Reply Last reply Reply Quote 0
                      • J
                        jdriscol @mitu
                        last edited by jdriscol

                        @mitu
                        I'm not clear on the next steps. Are you saying to get rid of the "389e258" portion of the xpad shell file and just re-install the driver? I've tried that already and still the same result as I had at the beginning of all this.

                        BuZzB 1 Reply Last reply Reply Quote 0
                        • BuZzB
                          BuZz administrators @jdriscol
                          last edited by

                          @jdriscol did you update the RetroPie-Setup script?

                          To help us help you - please make sure you read the sticky topics before posting - https://retropie.org.uk/forum/topic/3/read-this-first

                          J 1 Reply Last reply Reply Quote 0
                          • J
                            jdriscol @BuZz
                            last edited by

                            @BuZz
                            I have been running with the latest version of the retropie setup script, v4.8.2. During this time, I tried uninstall and reinstalling the xpad driver. I continue to have the issue where the gamepad is not recognized at all when I have it in Xinput mode (though it had previously worked in this mode for years), and it only works in DirectInput mode. This is problematic because it forces a swapped directional hat/left joystick on the player 2 port when the controllers are in DirectInput mode.

                            I did attempt at switching controller modes midgame in a ROM just to see what happens, and I got this screenshot. This shows that ES just can't seem to pick up my gamepad anymore in Xinput mode and not sure how to fix that.

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

                              This seems like an xpad regression w.r.t. your controller. The driver is installed from the upstream xpad repository, so there's not much we can do in RetroPie to fix it.

                              Just to confirm that the version shipped with 4.7.1 still works with your gamepad, you can install an older version from that time (Nov 2020).

                              • make sure you're on the latest RetroPie-Setup release
                              • uninstall the xpad driver from RetroPie-Setup
                              • backup the xpad.sh file from $HOME/RetroPie-Setup/scriptmodules/supplementary and modif it as described here, but use the commit before 4.7.1 was released instead:
                                rp_module_repo="git https://github.com/paroj/xpad.git master dc34631eed83aa9cffaa"
                                
                              • install again the xpad driver and reboot, then try to see if the gamepad works again.
                              J 1 Reply Last reply Reply Quote 0
                              • J
                                jdriscol @mitu
                                last edited by

                                @mitu
                                Yeah, still no luck. So strange, as I had been able to use my gamepads in Xinput mode for at least a couple years from maybe 2019 onward till I updated my whole RetroPie OS and packages just a couple weeks ago. However, in going through the comments in github for xpad, it does seem like others are having issues with connecting their wired controllers through Xinput mode. Either way, thanks for your help up to this point and I'll keep digging around.

                                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.