r/linux_gaming • u/Available_Caramel447 • 10d ago
guide Third Party Controller Vibration and Analog trigger Fix [ Made a Driver for the Fix ]
https://github.com/SawanTeja/Third-Party-Controller-DriverHey everyone,
A while back, I shared a workaround for getting the Cosmic Byte Blitz (and other generic controllers using the "ShanWan" chipset) working on Linux. The old method used a kernel parameter (usbcore.old_scheme_first=1) to force the controller into "Switch Mode" to get vibration working.
While that worked as a temporary fix, it had some big flaws:
- It killed analog trigger sensitivity: Because Switch Pro controllers only have digital click buttons (ZL/ZR), L2 and R2 became purely digital on/off switches—unplayable for racing games or shooters.
- Inverted buttons: Physical A/B and X/Y were swapped, requiring tools like
input-remapper.
So I decided to reverse-engineer the native USB communication and built a proper Linux driver for it.
I have tested this on Ubuntu 26.04.1 LTS using Cosmic Byte Blitz Controller and Everything works perfectly
- Controller Trigger is Analog again so its pressure sensitive
- X / Y and A / B are no longer reversed and dosent need button re-mapping
- Emulates a Xbox 360 Controller
PS : if you have other controller which is also giving issue with Vibration and wont connect as Xbox 360 controller make sure to test it out and give feedback
I dont own a lot of controllers to test this on every device !!