Compare commits

...

3 Commits

Author SHA1 Message Date
Max Gautier a8b972fa30
Merge b9758d7af4 into 66eae05e75 2024-09-19 01:06:25 +02:00
capriots 66eae05e75 cellAtracXdec: fix FFmpeg warning 2024-09-18 07:57:10 +02:00
Max Gautier b9758d7af4
Include udev/devd rules in Linux/FreeBSD install
This allows RPCS3 to communicate with Dualshock 3,4 and DualSense
controller out of the box on Linux distributions and FreeBSD, without
the need for manual actions.
2024-08-27 14:24:40 +02:00
4 changed files with 85 additions and 0 deletions

View File

@ -179,3 +179,12 @@ if(UNIX AND NOT APPLE)
install(DIRECTORY ../bin/test
DESTINATION ${CMAKE_INSTALL_DATADIR}/rpcs3)
endif()
# Udev rules, per platform
if(CMAKE_SYSTEM_NAME MATCHES "Linux")
install(FILES udev.rules
DESTINATION ${CMAKE_INSTALL_LIBDIR}/udev/rules.d/ RENAME 99-rpcs3.rules)
elseif(CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
install(FILES devd.conf
DESTINATION ${CMAKE_INSTALL_SYSCONFDIR}/devd/ RENAME rpcs3.conf)
endif()

View File

@ -121,6 +121,7 @@ void AtracXdecDecoder::alloc_avcodec()
// Allows FFmpeg to output directly into guest memory
ctx->opaque = this;
ctx->thread_type = FF_THREAD_SLICE; // Silences a warning by FFmpeg about requesting frame threading with a custom get_buffer2(). Default is FF_THREAD_FRAME & FF_THREAD_SLICE
ctx->get_buffer2 = [](AVCodecContext* s, AVFrame* frame, int /*flags*/) -> int
{
for (s32 i = 0; i < frame->ch_layout.nb_channels; i++)

49
rpcs3/devd.conf Normal file
View File

@ -0,0 +1,49 @@
# DualShock 3
notify 100 {
match "system" "USB";
match "subsystem" "INTERFACE";
match "type" "ATTACH";
match "vendor" "0x054c";
match "product" "0x0268";
action "chmod 0666 /dev/$cdev";
};
# DualShock 4
notify 100 {
match "system" "USB";
match "subsystem" "INTERFACE";
match "type" "ATTACH";
match "vendor" "0x054c";
match "product" "0x05c4";
action "chmod 0666 /dev/$cdev";
};
# DualShock 4 Wireless Adapter
notify 100 {
match "system" "USB";
match "subsystem" "INTERFACE";
match "type" "ATTACH";
match "vendor" "0x054c";
match "product" "0x0ba0";
action "chmod 0666 /dev/$cdev";
};
# DualShock 4 Slim
notify 100 {
match "system" "USB";
match "subsystem" "INTERFACE";
match "type" "ATTACH";
match "vendor" "0x054c";
match "product" "0x09cc";
action "chmod 0666 /dev/$cdev";
};
# DualSense
notify 100 {
match "system" "USB";
match "subsystem" "INTERFACE";
match "type" "ATTACH";
match "vendor" "0x054c";
match "product" "0x0ce6";
action "chmod 0666 /dev/$cdev";
};

26
rpcs3/udev.rules Normal file
View File

@ -0,0 +1,26 @@
# 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"
# 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"
# PS5 DualSense controller over USB hidraw
KERNEL=="hidraw*", ATTRS{idVendor}=="054c", ATTRS{idProduct}=="0ce6", MODE="0666", TAG+="uaccess"
# PS5 DualSense controller over bluetooth hidraw
KERNEL=="hidraw*", KERNELS=="*054C:0CE6*", MODE="0666", TAG+="uaccess"