about summary refs log tree commit diff
path: root/pkgs/applications/emulators
diff options
context:
space:
mode:
authorChristian Kögler <ck3d@gmx.de>2022-09-08 22:42:40 +0200
committerGitHub <noreply@github.com>2022-09-08 22:42:40 +0200
commitc881fdb0599c93b377e20812405c0e8f698893d4 (patch)
tree189a73fe009a5536c7c47056bbe15083b1acceb2 /pkgs/applications/emulators
parent14913d211da1f813aa7fb91e4f5d59013712d837 (diff)
parentb66cc6ba241416fdaa33b305700eebb39f84bf64 (diff)
Merge pull request #188025 from SuperSamus/rpcs3
rpcs3: add udev rules
Diffstat (limited to 'pkgs/applications/emulators')
-rw-r--r--pkgs/applications/emulators/rpcs3/99-ds3-controllers.rules5
-rw-r--r--pkgs/applications/emulators/rpcs3/99-ds4-controllers.rules14
-rw-r--r--pkgs/applications/emulators/rpcs3/99-dualsense-controllers.rules5
-rw-r--r--pkgs/applications/emulators/rpcs3/default.nix7
4 files changed, 31 insertions, 0 deletions
diff --git a/pkgs/applications/emulators/rpcs3/99-ds3-controllers.rules b/pkgs/applications/emulators/rpcs3/99-ds3-controllers.rules
new file mode 100644
index 0000000000000..a4f32124d970b
--- /dev/null
+++ b/pkgs/applications/emulators/rpcs3/99-ds3-controllers.rules
@@ -0,0 +1,5 @@
+# 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"
diff --git a/pkgs/applications/emulators/rpcs3/99-ds4-controllers.rules b/pkgs/applications/emulators/rpcs3/99-ds4-controllers.rules
new file mode 100644
index 0000000000000..6061debfbff8f
--- /dev/null
+++ b/pkgs/applications/emulators/rpcs3/99-ds4-controllers.rules
@@ -0,0 +1,14 @@
+# DualShock 4 over USB
+KERNEL=="hidraw*", ATTRS{idVendor}=="054c", ATTRS{idProduct}=="05c4", MODE="0666"
+
+# DualShock 4 Wireless Adapter over USB
+KERNEL=="hidraw*", ATTRS{idVendor}=="054c", ATTRS{idProduct}=="0ba0", MODE="0666"
+
+# DualShock 4 Slim over USB
+KERNEL=="hidraw*", ATTRS{idVendor}=="054c", ATTRS{idProduct}=="09cc", MODE="0666"
+
+# DualShock 4 over Bluetooth
+KERNEL=="hidraw*", KERNELS=="*054C:05C4*", MODE="0666"
+
+# DualShock 4 Slim over Bluetooth
+KERNEL=="hidraw*", KERNELS=="*054C:09CC*", MODE="0666"
diff --git a/pkgs/applications/emulators/rpcs3/99-dualsense-controllers.rules b/pkgs/applications/emulators/rpcs3/99-dualsense-controllers.rules
new file mode 100644
index 0000000000000..fb3ed3eec3f5b
--- /dev/null
+++ b/pkgs/applications/emulators/rpcs3/99-dualsense-controllers.rules
@@ -0,0 +1,5 @@
+# PS5 DualSense controller over USB hidraw
+KERNEL=="hidraw*", ATTRS{idVendor}=="054c", ATTRS{idProduct}=="0ce6", MODE="0660", TAG+="uaccess"
+
+# PS5 DualSense controller over bluetooth hidraw
+KERNEL=="hidraw*", KERNELS=="*054C:0CE6*", MODE="0660", TAG+="uaccess"
diff --git a/pkgs/applications/emulators/rpcs3/default.nix b/pkgs/applications/emulators/rpcs3/default.nix
index 46311c3ed45ba..3609b9492da4d 100644
--- a/pkgs/applications/emulators/rpcs3/default.nix
+++ b/pkgs/applications/emulators/rpcs3/default.nix
@@ -70,6 +70,13 @@ gcc11Stdenv.mkDerivation {
     ++ lib.optional alsaSupport alsa-lib
     ++ lib.optional waylandSupport wayland;
 
+  postInstall = ''
+    # Taken from https://wiki.rpcs3.net/index.php?title=Help:Controller_Configuration
+    install -D ${./99-ds3-controllers.rules} $out/etc/udev/rules.d/99-ds3-controllers.rules
+    install -D ${./99-ds4-controllers.rules} $out/etc/udev/rules.d/99-ds4-controllers.rules
+    install -D ${./99-dualsense-controllers.rules} $out/etc/udev/rules.d/99-dualsense-controllers.rules
+  '';
+
   meta = with lib; {
     description = "PS3 emulator/debugger";
     homepage = "https://rpcs3.net/";