Skip to content

Conversation

@AhmedAmrNabil
Copy link

@AhmedAmrNabil AhmedAmrNabil commented Sep 3, 2025

Description

This pull request adds native support for the Vader 4 Pro controller and introduces a small UI improvement. With these changes, DS4Windows can now fully recognize and use all inputs and sensors of the Vader 4 Pro


Highlights of Changes

Vader 4 Pro Controller Support

  • Added full detection and integration for the Vader 4 Pro, including:
    • Complete button support (FN, Home, C, Z, and 4 paddles)
    • Gyroscope and accelerometer support
    • Automatic MAC address detection via direct command

UI Adjustment for Profile Selection

  • Updated the button mappings list to dynamically expand with the window height for better usability.

Limitations

  • Currently this implementation only works with wired/dongle connection.
  • Battery percentage report doesn't work (limitiation of the controller itself)

Credits

Thanks for @dantmnf for providing the Vader 4 Pro output report repo Here

@dantmnf
Copy link

dantmnf commented Sep 4, 2025

Just FYI all Flydigi controllers share the same USB VID/PID and similar report format, see SDL: https://github.com/libsdl-org/SDL/blob/main/src/joystick/hidapi/SDL_hidapi_flydigi.c

It is also reported some Flydigi controllers use a different USB VID/PID, but I don't have the exact value.

@AhmedAmrNabil
Copy link
Author

Just FYI all Flydigi controllers share the same USB VID/PID and similar report format, see SDL: https://github.com/libsdl-org/SDL/blob/main/src/joystick/hidapi/SDL_hidapi_flydigi.c

It is also reported some Flydigi controllers use a different USB VID/PID, but I don't have the exact value.

the Vader 4 pro shows 3 devices, so currently I hardcode to read the VID/PID of Flydigi and only get the one with "MI_02" in the device path, but the Vader 3 Pro uses MI_00 (read that from another issue here)
So I think I need to check for the device that have an output report of 32 bytes and then get the device name from the parent path
but other than that, this means most Flydigi controllers are supported then

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants