Project

General

Profile

Actions

Emulator Issues #13531

closed

No DualShock 3 (DS3) gyroscope input (PS3 sixaxis motion)

Added by mstoper 3 months ago. Updated 3 months ago.

Status:
Won't fix
Priority:
Normal
Assignee:
-
% Done:

0%

Operating system:
N/A
Issue type:
Bug
Milestone:
Regression:
No
Relates to usability:
No
Relates to performance:
No
Easy:
No
Relates to maintainability:
No
Regression start:
Fixed in:

Description

What's the problem? Describe what went wrong.

Dolphin doesn't recognize the PlayStation 3 DualShock 3 controller's gyroscope (it recognizes the accelerometer fine) (macOS and Batocera.linux)

What steps will reproduce the problem?

Connect a PS3 DS3 controller to Dolphin (I'm using Batocera.linux 39 and macOS 11), only accelerometer data is passed as a motion input

on macOS 11, I only see one controller input SDL/0/PS3 Controller which contains all the regular buttons and the axes for the analog sticks, pressure-sensitive buttons, and the accelerometer (no gyroscope)

on Batocera.linux, I see 2 controllers connected, one evdev/0/Sony PLAYSTATION(R)3 Controller Motion Sensors for the for the 6 accelerometer axes (+/- X,Y,Z) - no gyro axes - and one evdev/0/Sony PLAYSTATION(R)3 Controller for the regular buttons, analog sticks, and pressure sensitive triggers (another Linux issue - only the 2 pressure-sensitive triggers (L2 and R2) and no other pressure-sensitive buttons are recognized)

Is the issue present in the latest development version? For future reference, please also write down the version number of the latest development version.

I haven't tried the latest development version, but I have the latest version of Batocera
latest development version of Dolphin for reference (I haven't tried this one): 5.0-21453

Is the issue present in the latest stable version?

I would imagine so

What are your PC specifications? (CPU, GPU, Operating System, more)

Intel MacBook with macOS 11, and dual-booting into Batocera.linux v39

on macOS 11 I'm using Dolphin 5.0-21088 with a USB wired controller (Bluetooth connected DS3 in Dolphin gives me only regular button and analog stick inputs, but no vibration/rumble, no pressure-sensitive buttons, and no motion inputs whatsoever - and it won't even show up in RPCS3)

and on Batocera 39 (Linux) they use Dolphin 5.0-20840 according to their changelog - I tried here with both USB wired and Bluetooth connections as they seem to work the same on Linux, and Dolphin and RPCS3 respond the same to both

official Sony DS3 controller (I've tried with 2 of them)

Is there anything else that can help developers narrow down the issue? (e.g. logs, screenshots,
configuration files, savefiles, savestates)

The gyroscope seems to work fine on RPCS3 on Batocera, they have a help page explaining how to enable DS3 support on Linux:
https://wiki.rpcs3.net/index.php?title=Help:Controller_Configuration#On_Linux

The DualShock 3 on Linux works with HIDAPI, allowing for the controller to work through USB as well as Bluetooth. To use the DualShock 3 Backend, users need to create a file called /etc/udev/rules.d/99-ds3-controllers.rules (you will need root permissions to create this file), and fill it with the following:

# DualShock 3 over USB
KERNEL=="hidraw", ATTRS{idVendor}=="054c", ATTRS{idProduct}=="0268", MODE="0666"

# DualShock 3 over Bluetooth
KERNEL=="hidraw*", KERNELS=="*054C:0268*", MODE="0666"

I checked the Batocera install and there are no saved DS3 rules in /etc/udev/rules.d/ (the DS3 gyroscope just works with no extra configuration in RPCS3 - you just have to choose their DS3 handler and not SDL or evdev, the gyro yaw axis is shown as "G" under the Configure Motion Controls panel - it's possible to test just yaw by placing the controller on a flat surface and rotating it left and right)

On macOS 11, RPCS3 doesn't seem to work well with any DS3 motion inputs (it's super janky)

I also found this Dolphin bug tracker post for Linux referencing these inputs for the DualSense (PS5 controller), which I guess is also how the DS3 should work, but I only see the Accel and not the Gyro inputs for my DS3

IMUAccelerometer/Up = `evdev/0/Wireless Controller Motion Sensors:Accel Y+`
IMUAccelerometer/Down = `evdev/0/Wireless Controller Motion Sensors:Accel Y-`
IMUAccelerometer/Left = `evdev/0/Wireless Controller Motion Sensors:Accel X-`
IMUAccelerometer/Right = `evdev/0/Wireless Controller Motion Sensors:Accel X+`
IMUAccelerometer/Forward = `evdev/0/Wireless Controller Motion Sensors:Accel Z+`
IMUAccelerometer/Backward = `evdev/0/Wireless Controller Motion Sensors:Accel Z-`
IMUGyroscope/Pitch Up = `evdev/0/Wireless Controller Motion Sensors:Gyro X+`
IMUGyroscope/Pitch Down = `evdev/0/Wireless Controller Motion Sensors:Gyro X-`
IMUGyroscope/Roll Left = `evdev/0/Wireless Controller Motion Sensors:Gyro Z+`
IMUGyroscope/Roll Right = `evdev/0/Wireless Controller Motion Sensors:Gyro Z-`
IMUGyroscope/Yaw Left = `evdev/0/Wireless Controller Motion Sensors:Gyro Y+`
IMUGyroscope/Yaw Right = `evdev/0/Wireless Controller Motion Sensors:Gyro Y-`

thanks for looking into this, I'm not even sure if the Linux issue is just due to Batocera or Dolphin, but evdev seems to not show gyro inputs on Batocera for RPCS3 either, while their DS3 handler works fine

note: to access the filesystem on Batocera press F1, the Dolphin app in is Applications along with RPCS3

Actions

Also available in: Atom PDF