This is a work in progress to support plug+play of various GameControllers.
- should recognize all SDL GameControllers from SDL_GameControllerDB/gamecontrollerdb.txt at master · gabomdq/SDL_GameControllerDB · GitHub
- may still have issues with reversed axes for some devices
So, does it work for your dusty, old controllers?
Adding new devices or changing the mapping now works by editing the file mappings/sdl_mappings_windows_overwrite.txt
For the GUID you need to include the vendor and product ID of the new device.
Also, for some reason you have to rearrange the vendor ID from ABCD to CDAB.
This should rarely be necessary, so first check if the device is in the list and check how it is working here:
Things that could be improved or added:
- per controller deadzone
- set vibration
- PS touchpad position XY
- read gyro
- 2 Joy-Cons can not be recognised as one controller
- Joy-Con ThumbStick only recognised as digital (driver related)
- Xbox home button missing
- battery status
- set PS lights
Hope someone will find this useful or wants to help out.
VL.GameController.v0.3.zip (286.0 KB)
Right now, when plugging in a new device, the device model is guessed by the name that Stride outputs.
The names do not always give enough information to confidently determine the correct device.
For example, the PS5 DualSense appears just as ‘Wireless Controller’,
while the PS4 DualShock is helpfully recognized as ‘PS4 Controller’.
The mappings folder contains the button and axis mappings for currently supported devices:
PS4 DualShock, PS5 Dual Sense, Xbox360, Nintendo JoyCon, and a 100 year old Logitech Dual Action.
Adding new device mappings could be more convenient, for now it works by adding a .txt file and rearranging the entries. Use the Help file to see the direct input values.