Dualshock controllers on 4.4 with 3B+
-
I have tried the above for my Offical Dualshock 3 and I still can't configure the input. It seems when I get to the "Right trigger" part it jumps forward and sets as not defined. Interestingly, when running cat /proc/bus/input/device, the Motion Sensors entry is still appearing. Any ideas?
-
I have only tested this myself using Dualshock 4 controllers connected via Sony dongles.
I think from the reports by other users here we can assume that it also works for Dualshock 4 connected via internal Bluetooth module.
Dualshock 4 report as
"Wireless Controller Motion Sensors"Dualshock 3 should report as
"Sony PLAYSTATION(R)3 Controller Motion Sensors"Since both these strings end with the words "Motion Sensors" my rule, which matches any string ending in "Motion Sensors" should work the same for DS3 and DS4.
Maybe you can check your string by connecting your DS3 controllers and entering the command
cat /proc/bus/input/devices
?Maybe someone else can test it with DS3 controllers to see if it is only you?
-
@rsn8887 Ok so I have done the following:
pi@retropie:~ $ sudo nano /etc/udev/rules.d/51-disable-DS3-and-DS4-motion-controls.rules File: /etc/udev/rules.d/51-disable-DS3-and-DS4-motion-controls.rules #disable DS3/DS4 motion controls SUBSYSTEM=="input", ATTRS{name}=="*Motion Sensors", RUN+="/bin/rm %E{DEVNAME}"
This is the result from cat /proc/bus/input/devices:
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/input1 U: Uniq=00:1e:3d:6b:42:c0 H: Handlers=event0 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/input0 U: Uniq=00:1e:3d:6b:42:c0 H: Handlers=js0 event1 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
It may be a silly question, but would it make any difference that I'm running 4.4 on a 3b and not 3b+? Bluetooth hardware is the same, right?
-
I can see you forgot the ‘, ENV{ID_INPUT_JOYSTICK}=""’
at the end in your rules file. Maybe that’s the problem.
-
@rsn8887 Sorry, copy and paste fail in my reply - I can confirm I am using the full statement of SUBSYSTEM=="input", ATTRS{name}=="*Motion Sensors", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}="". Tried another controller in case it was an issue with that, but still the same result where it will not read the inputs properly on the Configure Input 'wizard'. Other (none DS3) controllers work fine. Anything else I can do to try and diagnose?
-
I have been doing some investigating and it would appear that my Left and Right Triggers (L2/R2) are reading as analog presses. I know the triggers are pressure sensitive but I thought these were interpreted as digital for the purpose of Retropie? It would explain why the key press does not register correctly during the setup.
jtest /dev/input/js0 results:
Axes: 0: 0 1: 0 2:-32767 3: 0 4: 0 5: 32767 Buttons: 0:off 1:off 2:off 3:off 4:off 5:off 6:off 7:on 8:off 9:off 10:off 11:off 12:off 13:off 14:off 15:off 16:offAxes 2 and 5, as well as Buttons 6 and 7 represent L2 and R2, with the count going from -32767 to +32767 when the trigger is pressed.
Admittedly, I have never used the jtest command in my working 4.3 build, is that normal or should the triggers only read as Buttons?
Edit: I have remapped the buttons manually and all seems fine and works as expected, just seems odd that the Configure Input wizard wouldn't work properly.
-
Even with the patch above that worked for some I’m still having issues with N64 (Mario Kart) not seeing the second DualShock as controller #2?
Does anybody have any other ideas?
Thanks,
Jon -
When you are still having troubles playing with 2 or more players in MarioKart64 and you already applied the above mentioned patch, then you probably should edit your mupen64plus.cfg because there the Motion Controllers are still listed as empty name controllers.
This has done the trick for me:
- ssh into your RetroPie
- enter
sudo nano /opt/retropie/configs/n64/mupen64plus.cfg
- scroll to the section with [Input-SDL-Control1]
- check for the entry
# SDL joystick name (or Keyboard) name = "Wireless Controller"
- if the name is "Wireless Controller", go to the next section
- if the name is empty like this
name =""
delete the whole section beginning with [Input-SDL-Control1] until the next section starts
- check each following section beginning with [Input-SDL-Control and delete the whole section it if the name attribute ist empty
- with all the empty-name sections removed, number each remaining section correctly beginning with [Input-SDL-Control1], then [Input-SDL-Control2] and so on.
- save with Ctrl+O
- exit with Ctrl+X
- reboot and enjoy multiplayer MarioKart64
-
Hi
I know this is quite an old thread but I have come across this problem and can’t seem to disable the motion sensors for my PS4 controllers. I have created the file as described but when I run the cat /proc/bus/input/devices they still show up. Am I missing something ?
Thanks
-
@chrisjpark There is a workaround for disabling in this topic.
-
@mitu yes. I have done this. However the motion sensors still show when I run the cat command.
-
@chrisjpark So, what's the actual problem you have ? The
cat
command doesn't run games, so if you maybe explain what your exact problem it might help to find a solution. -
@mitu the problem is that when the DS4 controller is connected it does not recognise the other controllers for player 2 within games. However is have just done some more testing and the problem appears to be fixed. However the cat command still shows the motion sensors as being active. Maybe that is normal behaviour though and I am just misunderstanding.
-
Thanks for this! It worked great after using SSH and creating the rule in Retropie. I did have to reconfigure the controller layout after reboot.
-
Hey guys, first: i'm new to the world of retropie, so please be patient:)
I followed the instructions above, but it didnt fixed the problem of the motion sensors.
I looked for the rule, whether it is saved or not.pi@retropieTU:~ $ sudo cat /etc/udev/rules.d/51-disable-DS3-and-DS4-motion-controls.rules
cat: /etc/udev/rules.d/51-disable-DS3-and-DS4-motion-controls.rules: No such file or directorySo i am wondering why the rule isn't saved. i pressed strg+x, pressed y, then strg+c, strg+x, n
Is the rule saved this way?
Is there any other way to reboot instead? -
@th0mi Did you get any error while trying to save the file ? Remember you'll need to run the editor as
root
, so start it withsudo nano /etc/udev/rules.d/51-disable-DS3-and-DS4-motion-controls.rules
then enter the text and afterwards save it.
-
There wasn't any error. Can't remember the right wording yet, there was something like "File saved at/as..."
I started it with sudo, is there something to else to consider that i run the editor as root?
I am gonna make a screenshot of if in a few minutes. -
-
The path looks ok - you can check if the file was created with the command
ls -l /etc/udev/rules.d/51-disable-DS3-and-DS4-motion-controls.rules
Do you have an original Sony DS3/DS4 or something else ? The configuration is specifically for those controllers.
-
I did everything on this post, but my raspberry still recognizes the motion sensor as a device.
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.