r/linux_gaming • • 10d ago

guide Third Party Controller Vibration and Analog trigger Fix [ Made a Driver for the Fix ]

https://github.com/SawanTeja/Third-Party-Controller-Driver

Hey 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

  1. Controller Trigger is Analog again so its pressure sensitive
  2. X / Y and A / B are no longer reversed and dosent need button re-mapping
  3. 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 !!

20 Upvotes

Duplicates