Proper analog stick range in Linux


#1

Issue:
I am attempting to use my Gamecube controller through a Mayflash adapter in Citra, although the analog sticks do not seem to reach the proper peak. I have already tried calibrating the controller using jstest-gtk and subsequently tested the controller: the range being displayed seems to be correctly mapped from -32768 to +32767 after the calibration, but Citra is apparently getting the values from somewhere else, seemingly ignoring the calibration completely (the uncalibrated controller only reaches about 70% of the actual peak)

System Information

  • Operating System: Debian Buster
  • CPU: AMD FX-6300 @4.5GHz
  • GPU: AMD R7 370
  • Citra Version (found in title bar): HEAD | 1b94f25
  • Game: All Games

#2

did you set your analog sticks using the “Set Analog Stick” option or by settings into the axis slots? could you try both to see if that makes a difference?


#3

I have tried both, though as far as I can tell setting into the axis slot is going to map the maximum value to any value above a threshold for the actual inclination (basically it turns the analog stick into a d-pad). It mitigates the problem, but I have no actual analog control that way. Setting the analog stick gives me an analog control, but the calibration does not seem to work.

In the meanwhile, I tested the controller on another emulator (mupen64plus) and the same problem happens there, I believe this is not a Citra issue but an SDL one. It’s like SDL is not reading values from /dev/input/js0 for these emulators.


#4

Here:
that’s probably what you need.


#5

I’ve already tried setting the global variable but yeah, it appears I will have to recompile SDL entirely, perhaps that’s because the adapter automatically installs 4 controllers. I shall try that and update this thread if it works.


#6

I think I have same problem on Windows 10. Calibration does not help :frowning:
link_forward


#7

try the x360ce tool (you could ask for help on their forums)