No description
Find a file
2023-12-03 22:29:17 +01:00
References Added a bunch of wireshark captures 2023-11-29 22:44:02 +01:00
.gitignore DualSense initial support 2023-11-29 02:22:18 +01:00
80-playstation.rules udev rule warning 2023-11-30 14:40:48 +01:00
CMakeLists.txt Add libudev 2023-12-03 21:19:39 +01:00
config.cfg.default A newline is nice 2023-11-30 03:15:18 +01:00
dev_iio.c Change anglvel sampling rate to 800Hz and allow gyroscope and accelerometer to be two distinct iio devices 2023-11-26 23:44:39 +01:00
dev_iio.h Improved codebase, compiling with clang 2023-11-20 01:15:07 +01:00
imu_message.h Change anglvel sampling rate to 800Hz and allow gyroscope and accelerometer to be two distinct iio devices 2023-11-26 23:44:39 +01:00
input_dev.c Revert "CPU usage optimization + fixed a non-existing leak (program cannot exit that function)" 2023-12-03 22:29:17 +01:00
input_dev.h threading rework to support rumble 2023-11-25 21:03:32 +01:00
LICENSE.md Added license 2023-11-12 20:10:08 +01:00
logic.c Use DualShock if Asus-MCU is not found 2023-12-03 21:21:48 +01:00
logic.h prepare R5 and L5 logic 2023-11-29 19:08:59 +01:00
main.c threading rework to support rumble 2023-11-25 21:03:32 +01:00
Makefile Add libudev 2023-12-03 21:19:39 +01:00
message.h test IMU output 2023-11-17 23:07:16 +01:00
output_dev.c Revert "CPU usage optimization + fixed a non-existing leak (program cannot exit that function)" 2023-12-03 22:29:17 +01:00
output_dev.h threading rework to support rumble 2023-11-25 21:03:32 +01:00
platform.c scan devices 2023-12-03 21:49:15 +01:00
platform.h scan devices 2023-12-03 21:49:15 +01:00
queue.c Problem was the initial effect setup 2023-11-26 03:49:02 +01:00
queue.h Improved codebase, compiling with clang 2023-11-20 01:15:07 +01:00
README.md udev rule warning 2023-11-30 14:40:48 +01:00
rogue_enemy.h Improved codebase, compiling with clang 2023-11-20 01:15:07 +01:00
rogue_enemy.rule Switched PRODUCT_ID back to 323 2023-11-12 23:05:31 +01:00
settings.c Default configuration + initial work on nintendo layout 2023-11-28 21:46:05 +01:00
settings.h Default configuration + initial work on nintendo layout 2023-11-28 21:46:05 +01:00
virt_ds4.c function comment 2023-11-27 01:53:08 +01:00
virt_ds4.h Reading a configuration file 2023-11-26 21:09:54 +01:00
virt_ds5.c fix(ds5): use 4096.0f as SPEC_DELTA_TIME 2023-12-03 02:56:24 -07:00
virt_ds5.h DualSense initial support 2023-11-29 02:22:18 +01:00

ROGueENEMY

Collects ROG Ally input events to a single (active) virtual controller in linux to allow the use of the gyroscope and every button but also maximize controller compatibility with multiple games.

Usage

On steam head for settings for the emulated PS4 controller and remove the default deadzone for both left and right joystick: the ROG ally joystics appears to be way better than DS4 ones.

On steam disable Nintendo buttons layout and rely on the proper configuration option on this software to accomplish what you seek.

Tweak ff_rumble to a value between 0 and 100 to configure the strenght for rumble output.

Remember to look /etc/ROGueENEMY/config.cfg for additional configurations.

WARNING: If steam does not recognise a DualSense controller use the udev rule provided in this repo.

Compilation

To compile from source you need CMake and make. After the usual git clone and cd inside the cloned directory to use CMake do:

mkdir build
cd build
cmake ..
cmake --build .

Notes: This project should be compiled with the following flags: -O3 -march=znver4 -flto=full

Design

This software is meant to be run all the time in background and avoid busy wait, as well as quick reaction time from user input are both a design goal as well as ensuring reliable operation across many linux distributions in different conditions.

Contributions

The following is a (probably incomplete) list of contributions this project had.

As this project was met in a great way by the community contributions were many:

  • ashtopeth101 for providing capture data of a real DS4 controller, for his precious testing and in general his time
  • 143mailliw for spotting and fixing a bug with the timestamp and the following time required to ensure proper operation jlobue10 for suggestions and allowing easy end-user usage of this software in fedora-based distros
  • everybody else testing and providing feedback

If I have forgotten someone please tell me and/or send a pull request.