


While playing a racing game I felt TMR/Hall Effect sticks sluggish on Linux. So I checked the driver Fuzz/Flat settings.
I finally figured out why my TMR controller (GuliKit ES PRO/Vader 4 PRO) felt like it was smoothing my inputs on CachyOS and u/DraugerOS. It turns out the xpad driver applies a default "fuzz" (anti-jitter) and "flat" (deadzone) that basically kills the 11-bit precision of these sensors.
If you run evtest, you'll probably see a fuzz of 16 or more. For a high-res stick, that's way too much.
So I got evdev-joystick (part of the joystick package on Debian or game-devices-udev on Arch/AUR).
Then: sudo evdev-joystick --evdev /dev/input/event29 --deadzone 2 --fuzz 8
sudo evdev-joystick --e /dev/input/event29 --f 6 --d 2 --a 0
This configuration is helping me a lot! It made my inputs so much more responsive and precise in Asphalt Legends (I really love this game) — I'm actually top 1000 in a competition right now because of this "speed trick".
Use evdev-joystick -h to see what can be useful to you.
I believe that these tweaks on fuzz and deadzone might not be necessary for games that don't rely on aiming or steering, but for racing, it's a game-changer.
P.S: My older post was removed cos I used AI. Sorry, bros. Here is my genuine text. I hope it helps someone.
images: my CachyOS terminal while I was doing "the speed trick", screenshots from Asphalt lederboard, some of my controllers and a book from Samuel Rawet.
Cheers
EDIT: evdev-joystick is a part of the official arch package joyutils. you don't need the AUR pacakge
Warning: evdev-joystick --e /dev/input/event6 --d 0 (this command is shown by evdev-joystick --help but some people reported that it made "dpad stop working")
If you want to change the fuzz value better use the command like this for per-axis control:
evdev-joystick --e </path/to/event/device/file> --d <deadzone_value> --fuzz 8 --a <axis_index>
Thanks to u/king_Brad u/Criveratech u/AtMaxbo for the revision, contribution and help.