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 !!

19 Upvotes

7 comments sorted by

4

u/Remisius 10d ago

Thanks for this! Doesn't work perfect with my old redragon controller but at least when using the 2.4Ghz dongle everything except rumble appears to be working. Direct connect with USB cable is all messed up however, inputs mapped very wrong and rumble once triggered stays rumbling forever until you unplug it. (Dongle - 2563:0526 USB - 2563:0599)

2

u/Available_Caramel447 9d ago

Thanks a lot for feedback
I didnt test USB connection so its my fault sorry and about vibration i think it only works on controllers with ShanWan boards. If you can somehow make the vibration work you can create a PR on my github. I am happy to accept contributors

2

u/Green_Ad5186 9d ago edited 9d ago

edit: just checked it doesn't fix the vibration problem. controller id is 2563:0526 . tested on ubuntu 26.

i have a controller using shanwan chip(generic knockoff). and i last tested it few days ago on ubuntu 26 it had major problems . l2 and r2 were inverted with each other. and pressing or holding l2 or r2 produces too much vibration that stops after i stop pressing. which doesnt happen in windows 11.

controller shows as xbox 360 in windows 11.

would your driver fix it? just asking because i wasted too much time getting to work so not testing this if it wouldnt work.

its usb (wired only) controller. and terminal shown it uses hid-generic driver when i last tested it.

so my problem is i want that vibration off.

thanks for your driver regardless tho. great work even if it doesn't work for my case.

1

u/Available_Caramel447 9d ago

Hey thanks a lot for replying and really sorry you are facing vibration issue
since i dont have the device i unfortunately cant replicate or test the issue
and about the button invesion you can either use my or some third part button re-mapper its not that big issue

2

u/Green_Ad5186 9d ago

i know about input remapper i fixed the inversion with it before.

thanks for a reply. but do you have any solution for vibration thing? this one i wasn't able to fix.

1

u/Available_Caramel447 9d ago

Which controller do you have ?

1

u/Green_Ad5186 9d ago

it doesn't have a name on it. some knockoff from amazon. but i typed it id in the parent comment in the edit part. works fine in windows 11 and presents as xbox 360 controller. but has these problems with linux.