Fixed bug 5359 - Incorrect sensor data from DualShock4

multiply gyro values by sensitivity

When the hardware calibration fails, values read from sensors need to be multiplied by default sensitivity (16 for gyro, 1 for accelerometer).
Sam Lantinga 2020-11-23 21:18:37 -08:00
parent c8c818d7a4
commit e44bf8a080
2 changed files with 4 additions and 0 deletions

View File

@ -360,6 +360,8 @@ HIDAPI_DriverPS4_ApplyCalibrationData(SDL_DriverPS4_Context *ctx, int index, Sin
IMUCalibrationData *calibration = &ctx->calibration[index];
result = (value - calibration->bias) * calibration->sensitivity;
} else if (index < 3) {
result = value * 64.f;
} else {
result = value;
}

View File

@ -331,6 +331,8 @@ HIDAPI_DriverPS5_ApplyCalibrationData(SDL_DriverPS5_Context *ctx, int index, Sin
IMUCalibrationData *calibration = &ctx->calibration[index];
result = (value - calibration->bias) * calibration->sensitivity;
} else if (index < 3) {
result = value * 64.f;
} else {
result = value;
}