Project-Alpaca / RDS4Reboot

Rubber duck shock 4 - Reboot edition
GNU Lesser General Public License v3.0
26 stars 4 forks source link
arduino-library gamepad hid ps4

RDS4Reboot

A (hopefully) better game controller library for current-gen game consoles.

WARNING: Work in progress and not ready for general use. API may change at any time.

Disclaimer

This project is for research purposes only and does not come with any warranty. Use it at your own risk.

Why not b***k?

Simply put, existing software/boards like B***k, C*****u, P***0, etc. are either not flexible enough for my needs (I want full control over what the controller sends and receives, not just buttons and sticks), proprietary as f***, does not support current-gen consoles because they have "impossible to crack security measures", too expensive, or all of the above. Besides that, I am not hardcore enough to think that scrapping a $60 controller and figuring out how to padhack the touchpad, gyroscope, accelerometer, rumble motor, etc. without running into random obstacles such as frying the motherboard would be a good idea. So here we are.

Use cases

Usage

Currently the library only supports Teensy 3.x (including LC). A patched version of Teensyduino core (version 1.45 at the moment) is required, which can be found here.

For Teensyduino IDE users, there are two ways to install the patched library. One way is to run scripts/makepatch.sh and apply the generated patch file using the patch tool to an existing Teensyduino core installation. The other way is to directly replace the core library of a working installation with the patched version. Then you might want to edit the boards.txt in a similar fashion as this (with necessary changes like replace USB_XINPUT with USB_DS4STUB and so on). For PlatformIO users, it is possible to use the companion script hosted here and follow the instruction here. Afterwards add -DUSB_DS4STUB -UUSB_SERIAL to the build parameters.

After patching the Teensyduino core library just download and install RDS4Reboot normally.

Current status

Works

Does not work/WIP

Planned