Davidobot / BetterJoy

Allows the Nintendo Switch Pro Controller, Joycons and SNES controller to be used with CEMU, Citra, Dolphin, Yuzu and as generic XInput
Other
3.73k stars 340 forks source link

Switch Pro Controller joystik not reaching max positive values on X and Y axis #1063

Open Kerlirock opened 1 year ago

Kerlirock commented 1 year ago

Hello, First, i'd like to make clear that I've seen many other people having the same issue, and despite the help provided, i can't seem to make my controller work as intended, even when i use the "Calibrate" option. Also, I'd like to use this controller in bluetooth, not cabled, so using the cable to make it work isn't an option.

DESCRIPTION Whenever i launch a Steam game and use one of my joysticks via BetterJoy, they can't reach the maximum value on the X and Y axis. This results in unwanted behaviors like moving slower to the right and forward than to the left and backward. However, when i don't use BetterJoy for non-Steam games, the joysticks seem to work just fine.

I've tested my controller on this website: https://gamepad-tester.com (check "Test Circularity") Here's the results of the left and right joysticks respectively when i spin them. image

EXPECTED BEHAVIOR As you can see on the screenshot above, the green segments seem to represent lower values. However, as far as i know, each segment should be blue, so that each axis value is the same.

CONTROLLER

Kerlirock commented 1 year ago

I finally figured it out, here's what i did for those who may encounter the same issue:

1- First, I've read that calibration options only work on 3rd-Party Controllers, so I clicked on "Add Controllers". image

Here's what i did on this window (don't forget to hit "Apply" when you're done). image

When testing this with the default settings, my joysticks values looked something like this. image

2- Then, with this new controller setup, I changed the values of "stick_cal" and "stick2_cal", referring to the calibration values of both my joysticks. Here are the values I ended up using. I don't know if those values apply to every other Pro Switch Controllers though (again, don't forget to hit the "Apply" button): stick_cal: 0x500,0x500,0x720,0x700,0x500,0x500 stick2_cal: 0x500,0x500,0x780,0x790,0x500,0x500

Testing my joysticks with those values, here's what they look like. image Those are not perfect, but they work fine for me, I'll change them in the future if I feel the need to.

botnag commented 4 months ago

how did you arrive at those new calibration values?

LouisGD commented 3 months ago

how did you arrive at those new calibration values?

Honestly, it was kind of random. I tried to enter a value, see how it affected my joystick on Gamepad Tester, then correct it if needed, and repeat the process over and over until I got happy with the result. As you can see, the red parts of the joysticks indicate that those values should be lower, but I guess the values are clamped so that it would never get too high. Anyway I never had to complain about anything.

Also, note that my friend tried BetterJoy with a similar controller, and he never had to change any value, it just worked on its own. So I guess those values are specific to my controller and not every Pro Switch Controller. You may not need to modify those values.

Kerlirock commented 3 months ago

how did you arrive at those new calibration values?

Honestly, it was kind of random. I tried to enter a value, see how it affected my joystick on Gamepad Tester, then correct it if needed, and repeat the process over and over until I got happy with the result. As you can see, the red parts of the joysticks indicate that those values should be lower, but I guess the values are clamped so that it would never get too high. Anyway I never had to complain about anything.

Also, note that my friend tried BetterJoy with a similar controller, and he never had to change any value, it just worked on its own. So I guess those values are specific to my controller and not every Pro Switch Controller. You may not need to modify those values.

Woops, wrong account