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

    Xbox One (S) / Xbox 360 controller issues

    Scheduled Pinned Locked Moved Help and Support
    xbox controllerjstestaxis
    8 Posts 3 Posters 3.1k 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.
    • ShadowronS
      Shadowron
      last edited by Shadowron

      Pi Model or other hardware: 3B and 3B+
      Power Supply used: Both original
      RetroPie Version Used: 4.4
      Built From: Premade beta upgraded to 4.4
      USB Devices connected: Mentioned controllers
      Controller used: Xbox One (S) / Xbox 360 controller
      Error messages received: None, so far
      Log found in /dev/shm/runcommand.log (if relevant): -
      Guide used: -
      File: -
      Emulator: All
      Attachment of config files: -
      How to replicate the problem: Just connect a Xbox controller and start using it.

      As mentioned before here and here, the (wired) Xbox controllers run into some issues. When booting the system with a Xbox controller connected everything seems fine, ES works as it should, but as soon you start an libretro based core the controller stops working. None of the buttons seems to respond correctly.

      I tested this on two seperate systems my own 3B (Xbox 360) and a friends 3B+ (Xbox One S, two different controllers), all gave the EXACT same behavior. In both cases this started when updating the beta images from the forums to the official 4.4.

      First thing i tried to do is remove all the controller configs and add them back again. Everything goes without a problem until you need to set the trigger buttons. The left trigger is detected (within ES and jstest) as Axis 2 and the right trigger is detected as Axis 5. As shown in the unclear video (at the bottom of this post) of jstest, Axis 2 and 5 both got a negative value of -32k. As you come to the step for configuring the left trigger, you press the left trigger, the value increases so Axis 2- is set for left trigger and within a blink Axis 2+ is set for the right trigger. All the other buttons seem to work fine.

      I hope it is clear that the trigger buttons don't suppose to be seen as an Axis (edit: in fact they are). Im also quite sure this wasn't the case before updating to the official 4.4.

      1 Reply Last reply Reply Quote 0
      • ShadowronS
        Shadowron
        last edited by Shadowron

        I found a sd-card that had 4.3.11 on it. This shows left trigger is button 6 and right trigger as button 7.
        Edit: Also tested 4.3.16 (this one is Strech for sure), also no problems here.
        Edit2: Updated the 4.3.16 to 4.4 without installing updates to OS and kernel and the buttons still work. So it's not directly RetroPie causing this.

        1 Reply Last reply Reply Quote 0
        • ShadowronS
          Shadowron
          last edited by Shadowron

          Managed to "fix" this. The xpad driver needs to be updated. With newest OS/kernel patches, some, if not all Xbox controllers need triggers to be mapped to the buttons.

          Example: https://github.com/ShadowRon/xpad/commit/f2814bf96db2b1f7f829e80dc334c88735adee98

          1 Reply Last reply Reply Quote 0
          • ShadowronS
            Shadowron
            last edited by Shadowron

            Edit: Don't use this!!

            If you are really i need for this fix (and don't know how to apply it) for your controller, here is quick how to. This only fixes Xbox 360, One and One S controllers as i can't test the other controllers like Elitepad. Everything you do is at your own risk!!

            Go /home/pi/RetroPie-Setup/scriptmodules/supplementary/
            Edit xpad.sh
            Go to line 28
            Replace this
            gitPullOrClone "$md_inst" https://github.com/paroj/xpad.git
            With this
            [removed for now]
            Open "RetroPie Setup" in ES
            Go to "manage packages" -> "driver" -> "xpad" -> "update from source"
            Wait until complete
            Go back to ES
            Enter "Configure input"
            You know the drill from here.

            Now your controller will register the triggers correctly and also will work with all libretro cores again.

            If you don't want to do above steps, you will need to wait until paroj fixes this or when i figure out to make a decent PR on Github.

            1 Reply Last reply Reply Quote 0
            • cianC
              cian
              last edited by

              @Shadowron will core controller remaps need to be manually patched after updating this driver?

              ShadowronS 1 Reply Last reply Reply Quote 0
              • ShadowronS
                Shadowron @cian
                last edited by Shadowron

                @cian Well to be honest, don't apply this patch. Yesterday i booted up the pi again and the controls were all messed up again. Couldn't use select or start, tried te reconfigure and again got the problem with Axis 2 and 5. Two days ago everything was fine, even played serveral games with the same controller. Even tested with jstest and all buttons were mapped fine.

                Tried to fix this, but it's starting to freaking me out as i really don't know why it worked and a reboot later it doesn't.

                cianC 1 Reply Last reply Reply Quote 0
                • cianC
                  cian @Shadowron
                  last edited by

                  @shadowron ah no bother, thanks.

                  1 Reply Last reply Reply Quote 0
                  • A
                    avengerfishing
                    last edited by

                    im having the same issues, retropie 4.4 installed, 360 controllers working perfectly, then update and bam, broken. all advice says: don't update. so ill roll back to new, and wont update, not updating bothers me a bit, that feeling that newer is always better is hard to break sometimes

                    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.