set default calibration values for controllers that return invalid data

This commit is contained in:
Daryl Borth 2020-02-16 17:52:01 -07:00
parent f64dfb1d5f
commit 839db27a7f

View File

@ -137,6 +137,14 @@ s8 GuiTrigger::WPAD_Stick(u8 stick, int axis)
return 0; return 0;
} }
// some 3rd party controllers return invalid analog sticks calibration data
if ((min >= center) || (max <= center)) {
// force default calibration settings
min = 0;
max = stick ? 32 : 64;
center = stick ? 16 : 32;
}
if (pos > max) return 127; if (pos > max) return 127;
if (pos < min) return -128; if (pos < min) return -128;