Open davidhedlund opened 1 month ago
The linuxraw driver uses an interface that does not provide product and vendor IDs, just a name - see JSIOCGNAME. I am not sure where the existing linuxraw autoconfig values came from, but since driver always sets these as 0, those extra identifiers can not help in matching the correct profile. On the other hand, they do not cause problem either.
The linuxraw driver uses an interface that does not provide product and vendor IDs, just a name - see JSIOCGNAME. I am not sure where the existing linuxraw autoconfig values came from, but since driver always sets these as 0, those extra identifiers can not help in matching the correct profile. On the other hand, they do not cause problem either.
Thank you very much for this useful information.
I added this to controller-autoconfiguration.md :
It's important to note an exception involving the linuxraw driver. This driver uses an interface that does not provide Vendor ID (VID) and Product ID (PID) information. Instead, it only supplies a device name, which can be accessed using the
JSIOCGNAME
ioctl command from the Linux kernel. As a result, matching for controllers using the linuxraw driver relies more heavily on the device name rather than the usual vid:pid identifiers.
I change the title of this issue and updated the top post. Please re-read it from scratch.
I was wondering why my DS3 controller does not behave like that - and it turns out that Linux kernel explicitly blacklists a few specific motion sensors: https://github.com/torvalds/linux/blob/a5dbd76a89423eca9f8de338350f2666aacfb432/drivers/input/joydev.c#L777 This includes DS3, DS4, Switch Pro controller, but not DS5. Hmm. In any case, I guess an alternative could be to add a simple blacklist also to RetroArch, where DS5 motion sensors are disabled from the linuxraw driver. Not very flexible, but may be still worth the effort.
Expected behavior
Image manipulated screenshots. Each option below is represented for both the Appimage, and the Flatpak package.
This may prevent users from mistakenly thinking their autoconfig files are broken. For instance, Linuxraw does not generate input_product_id and input_vendor_id in the autoconfig file, which may mislead users into believing this is a bug and that these variables should be added (see "(0/0)" on the screenshots), as I previously did. This has lead to incorrectly uploaded to https://github.com/libretro/retroarch-joypad-autoconfig -- even if these variables does not cause any harm, they should simply not be there.
Option 1
Add a note stating "Linuxraw does not support motion sensors"
Option 2
Remove the "[Controller] Motion Sensors (0/0) not configured" error message.
Actual behavior
Appimage 1.19.1
Flatpak 1.19.1
Steps to Reproduce
Issue reproduced with a Sony DualSense controller.
For Flatpak first set Settings -> Directories -> Controller Profiles to ~/.var/app/org.libretro.RetroArch/config/, otherwise you will not be able to Save Controller Profile later.
Version/Commit
You can find this information under Information/System Information