• 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

Dualshock controllers on 4.4 with 3B+

Scheduled Pinned Locked Moved Help and Support
controllerdualshock3b+4.4
61 Posts 20 Posters 24.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.
  • D
    Dunlapjc
    last edited by 4 May 2018, 14:31

    Hi group,
    I'm having a problem with 4.4 on a 3b+ when it comes to configuring my second dual shock controller.

    I took the opportunity to build a new clean retropie 4.4 build with a new 3b+ pie. I previously had a rock-solid setup with 4.3 and my two dual shock controllers working perfectly in all systems including N64.

    On the new unit, the dualshock controllers both pair fine. Player 1 works in every game/system perfectly. Something is off with player 2. No other controllers installed, but N64 thinks the second dual shock is player 3, not two. In addition, hotkeys to back out won't work. The new pie build also thinks there are 4 controllers and not two (2 appear to be some sort of motion control from the dual shocks I had never seen before).

    So something is off when I pair/use my second dualshock controller. Oddly, this controller 2/3 issue doesn't appear to effect NES as Mario brothers uses the second dualshock for player 2 without issue.

    Does anybody have any thoughts on the topic? These issues seem to all be new with 4.4 or the pie 3b+.

    Thanks,
    Jonathan

    D 1 Reply Last reply 4 May 2018, 18:51 Reply Quote 0
    • H
      hooperre
      last edited by 4 May 2018, 15:13

      They have changed the Dualshock drivers going from 4.3 to 4.4. DS3 and DS4 now have the same inputs, so it's likely not just you.

      4B ~ RPi PSU 5.1V / 3.0A ~ 32GB SanDisk microSD ~ 128GB USB

      1 Reply Last reply Reply Quote 0
      • D
        dudleydes @Dunlapjc
        last edited by 4 May 2018, 18:51

        @dunlapjc The Retropie 4.4 image is based on Linux kernel 4.14 which has introduced two major changes for PlayStation controllers. The first is the change in button numbers as described in the link by provided by @hooperre.

        The second is that Linux now sees the pad and the accelerometer as two separate controllers. You can see this by running the command cat /proc/bus/input/devices. For my PS3 controller, this is the output:

        pi@retropie:~ $ cat /proc/bus/input/devices
        I: Bus=0003 Vendor=054c Product=0268 Version=8111
        N: Name="Sony PLAYSTATION(R)3 Controller Motion Sensors"
        P: Phys=usb-3f980000.usb-1.2/input0
        S: Sysfs=/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/0003:054C:0268.0001/input/input3
        U: Uniq=00:1e:3d:5d:1e:24
        H: Handlers=event2 
        B: PROP=40
        B: EV=9
        B: ABS=7
        
        I: Bus=0003 Vendor=054c Product=0268 Version=8111
        N: Name="Sony PLAYSTATION(R)3 Controller"
        P: Phys=usb-3f980000.usb-1.2/input0
        S: Sysfs=/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/0003:054C:0268.0001/input/input2
        U: Uniq=00:1e:3d:5d:1e:24
        H: Handlers=event3 js0 
        B: PROP=0
        B: EV=20001b
        B: KEY=f 0 0 0 0 0 0 0 7fdb0000 0 0 0 0 0 0 0 0 0
        B: ABS=3f
        B: MSC=10
        B: FF=1 7030000 0 0
        

        If you take a look at the lines starting Handlers=, you will see that only the controller has been assigned a js number. In my case, the PS3 controller is recognised as one controller and everything works fine.

        I suggest running cat /proc/bus/input/devices to see if the motion sensors on your controllers have been assigned a js number. If they are, then your Pi is recognising the motion sensors as a joystick and this may explain the behaviour you are observing.

        As a solution I would normally suggest using the joystick selection tool but I understand that recent changes in RetroArch means that it no longer works. More info can be found in the thread: https://retropie.org.uk/forum/topic/17276/usb-ports-no-longer-determine-player-number-retroarch-1-7-1

        I don't have a solution, I'm afraid. Hopefully, somebody more familiar how the kernel works may be able to shed more light.

        Please also be aware there are changes planned in the RetroArch mapping system so that remap files from 4.3 will no longer work. More info: https://retropie.org.uk/forum/topic/17228/coming-soon-to-retroarch-new-input-mapping-system-old-remap-files-don-t-work

        It doesn't look like much fun for us PlayStation controller users for the next month or two.

        D 1 Reply Last reply 4 May 2018, 20:24 Reply Quote 3
        • D
          Dunlapjc @dudleydes
          last edited by 4 May 2018, 20:24

          @dudleydes Thanks both for the insight and information. I'm also wondering if I have two different revisions of the controllers, but when I remap the buttons, I end up with both units being remapped. One right and one wrong. That's just a theory, I'll have to test it.

          Yeah, I learned the hard way last night that the joystick selection tool wasn't doing anything at all.

          Thanks, I really do appreciate the insight!

          1 Reply Last reply Reply Quote 0
          • A
            arturochu
            last edited by 13 May 2018, 17:33

            Same problem here, i have 4 dualshock controller and n64 reads 4 players on 2 controllers, 2 players being the motiom sensors; how can i disble motion sensors? Or any other solution?

            1 Reply Last reply Reply Quote 0
            • D
              darkblaster77
              last edited by 6 Jun 2018, 16:54

              Having the same issues too.
              Any solutions to this?

              1 Reply Last reply Reply Quote 0
              • R
                rsn8887
                last edited by 6 Jun 2018, 22:51

                Just a note that this problem seems to also happen when using the Sony DS4 Bluetooth dongles. I am using two of those dongles to pair my two DS4 controllers. In previous versions of RetroPie, Emulationstation only detected 2 controllers, as expected. Now, in RetroPie 4.4, it says 4 controllers detected.

                It would be nice if Emulationstation could tell me the names of all the controllers it detected, instead of just a cryptic total number.

                I have some additional issues with the controller mapping procedure:

                • I cannot seem to cancel if I press the wrong button. How do I cancel out of the controller mapping screen without a keyboard?
                • What am I supposed to press to select 'OK' at the end? I always manically press different buttons, and then, twenty seconds later, the screen goes away by itself. Is there just a really long delay at the end of this mapping screen?
                • A, B, X, Y are meaningless, there should be an icon showing which button is the one on the bottom, top, left and right. E.g. A is the button on the right (circle), B on the bottom (cross), X on the top (triangle) and Y on the left (square). Currently this information is not displayed at all.
                P D 2 Replies Last reply 7 Jun 2018, 12:22 Reply Quote 0
                • P
                  pjft @rsn8887
                  last edited by 7 Jun 2018, 12:22

                  @rsn8887 When you finish selecting all buttons and the "OK" button is selected, you can move up and re-enter any buttons you mis-assigned. I think that if you also press "A" or "B" (can't remember) after they've been set, you may then move up and down to re-assign specific buttons.

                  Yes, there is a bit of a delay after pressing OK. It's configuring all the supported emulators, etc.

                  1 Reply Last reply Reply Quote 1
                  • D
                    dankcushions Global Moderator @rsn8887
                    last edited by 8 Jun 2018, 14:35

                    @rsn8887 said in Dualshock controllers on 4.4 with 3B+:

                    A, B, X, Y are meaningless, there should be an icon showing which button is the one on the bottom, top, left and right. E.g. A is the button on the right (circle), B on the bottom (cross), X on the top (triangle) and Y on the left (square). Currently this information is not displayed at all.

                    agreed. issue related to this:
                    https://github.com/RetroPie/EmulationStation/pull/446
                    and also
                    https://github.com/RetroPie/EmulationStation/issues/442

                    1 Reply Last reply Reply Quote 1
                    • R
                      rsn8887
                      last edited by rsn8887 9 Jun 2018, 15:51

                      I have to revise my earlier statement regarding the official Sony DS4 USB dongles I am using. After updating from binaries and rebooting, it behaves correctly now. Only two controllers are detected not 4. I am not sure if it was the update or just the reboot that fixed it.

                      EDIT: See my answer below. It is not fixed. I just forgot I unplugged my second controller dongle.

                      M 1 Reply Last reply 9 Jun 2018, 15:55 Reply Quote 0
                      • M
                        mitu Global Moderator @rsn8887
                        last edited by 9 Jun 2018, 15:55

                        @rsn8887 Did you update also the kernel and the OS packages ?

                        1 Reply Last reply Reply Quote 0
                        • R
                          rsn8887
                          last edited by 9 Jun 2018, 16:10

                          I don’t know. I selected the update option in the Retropie setup menu, then it asked me if I want to update from binary or source. I selected binary. I am not sure if that did a kernel or OS update?

                          Is there a special, separate, option to update kernel and OS

                          M 1 Reply Last reply 9 Jun 2018, 16:17 Reply Quote 0
                          • M
                            mitu Global Moderator @rsn8887
                            last edited by 9 Jun 2018, 16:17

                            @rsn8887 said in Dualshock controllers on 4.4 with 3B+:

                            Is there a special, separate, option to update kernel and OS

                            When you choose to - globally - update, there's a prompt if you Want to upgrade the underlying OS packages and the kernel. But that doesn't happen when you upgrade just one package - or the RetroPie script itself.

                            R 1 Reply Last reply 9 Jun 2018, 16:37 Reply Quote 0
                            • R
                              rsn8887 @mitu
                              last edited by rsn8887 6 Sept 2018, 17:38 9 Jun 2018, 16:37

                              @mitu I am pretty sure I selected yes there but I don’t remember that question coming up. I did not just update one single package that is for sure.

                              What do you mean by -globally update? I selected some option like “update all packages” I didn’t see a global update option in the Retropie setup menu.

                              M 1 Reply Last reply 9 Jun 2018, 16:50 Reply Quote 0
                              • M
                                mitu Global Moderator @rsn8887
                                last edited by mitu 6 Sept 2018, 17:52 9 Jun 2018, 16:50

                                @rsn8887 When I say global update, I'm referring to the Update option in the global script menu.

                                Global update

                                When you select it, the RetroPie setup script is updated first, some post-update hooks are executed, then - before the packages are updated - there is a prompt to update the OS

                                OS Update

                                Regardless of your choice in this setup, all installed packages are subsequently updated (from binary).

                                1 Reply Last reply Reply Quote 0
                                • R
                                  rsn8887
                                  last edited by 9 Jun 2018, 19:36

                                  Yes I chose that option, I must have pressed yes to the kernel question, but don't remember doing it.

                                  1 Reply Last reply Reply Quote 0
                                  • R
                                    rsn8887
                                    last edited by rsn8887 6 Oct 2018, 02:32 10 Jun 2018, 00:28

                                    Nevermind I had accidentally removed the second dongle.

                                    So it is still completely broken both using internal Bluetooth, external BT dongle or official Sony DS4 dongle. The problem is that a single DS4 controller shows up as two controllers, and one of those detected controllers reacts only to motion controls, e.g. tilting the controller.

                                    And yes it is still broken both for the Sony DS4 dongle, as well as when using the regular Bluetooth pairing.

                                    Even worse: some emulators such as AdvanceMAME react to BOTH joy1 (tilt/motion controls) and joy2 (regular buttons etc) when trying to map controls inside the emulator, and there’s no way to turn that off that I know off.

                                    1 Reply Last reply Reply Quote 1
                                    • A
                                      arturochu
                                      last edited by 16 Jun 2018, 00:14

                                      any fix on this?

                                      1 Reply Last reply Reply Quote 0
                                      • R
                                        rsn8887
                                        last edited by rsn8887 18 Jun 2018, 18:27

                                        I wonder if a rule along the lines of the ones here
                                        https://github.com/denilsonsa/udev-joystick-blacklist

                                        could be used to disable the erroneous additional controllers that are linked to motion controls?

                                        Maybe adding a file named /etc/udev/rules.d/51-these-are-not-joysticks-rm.ruleswith the content

                                        SUBSYSTEM=="input", ATTRS{idVendor}=="054c", ATTRS{idProduct}=="0268", NAME=="Sony PLAYSTATION(R)3 Controller Motion Sensors", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
                                        
                                        SUBSYSTEM=="input", ATTRS{idVendor}=="054c", ATTRS{idProduct}=="0268", NAME=="Sony PLAYSTATION(R)3 Controller Motion Sensors", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}=""
                                        

                                        Would help for DS3, and maybe adding two similar lines for DS4, with the correct names and ids might fix this problem. I don't know the names and ids for DS4 at the moment.

                                        M 1 Reply Last reply 18 Jun 2018, 18:48 Reply Quote 0
                                        • M
                                          mitu Global Moderator @rsn8887
                                          last edited by 18 Jun 2018, 18:48

                                          @rsn8887 I don't think they're not erroneus, the choice was deliberate to make them like this. The onus lies in the input processing libraries - like SDL - to make use of them.

                                          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.

                                            [[user:consent.lead]]
                                            [[user:consent.not_received]]