# 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: ```sh 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.