mirror of
https://github.com/shadps4-emu/shadPS4.git
synced 2025-06-20 09:30:37 +00:00
Fix incorrect calculation setting the center of the joysticks one value off causing stick drift in games that assume already corrected input values (#2760)
This commit is contained in:
parent
7fee289b66
commit
08731303d8
2 changed files with 7 additions and 7 deletions
|
@ -550,18 +550,18 @@ void ControllerOutput::FinalizeUpdate() {
|
||||||
break;
|
break;
|
||||||
case Axis::TriggerLeft:
|
case Axis::TriggerLeft:
|
||||||
ApplyDeadzone(new_param, lefttrigger_deadzone);
|
ApplyDeadzone(new_param, lefttrigger_deadzone);
|
||||||
controller->Axis(0, c_axis, GetAxis(0x0, 0x80, *new_param));
|
controller->Axis(0, c_axis, GetAxis(0x0, 0x7f, *new_param));
|
||||||
controller->CheckButton(0, OrbisPadButtonDataOffset::L2, *new_param > 0x20);
|
controller->CheckButton(0, OrbisPadButtonDataOffset::L2, *new_param > 0x20);
|
||||||
return;
|
return;
|
||||||
case Axis::TriggerRight:
|
case Axis::TriggerRight:
|
||||||
ApplyDeadzone(new_param, righttrigger_deadzone);
|
ApplyDeadzone(new_param, righttrigger_deadzone);
|
||||||
controller->Axis(0, c_axis, GetAxis(0x0, 0x80, *new_param));
|
controller->Axis(0, c_axis, GetAxis(0x0, 0x7f, *new_param));
|
||||||
controller->CheckButton(0, OrbisPadButtonDataOffset::R2, *new_param > 0x20);
|
controller->CheckButton(0, OrbisPadButtonDataOffset::R2, *new_param > 0x20);
|
||||||
return;
|
return;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
controller->Axis(0, c_axis, GetAxis(-0x80, 0x80, *new_param * multiplier));
|
controller->Axis(0, c_axis, GetAxis(-0x80, 0x7f, *new_param * multiplier));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -61,11 +61,11 @@ Uint32 MousePolling(void* param, Uint32 id, Uint32 interval) {
|
||||||
float a_x = cos(angle) * output_speed, a_y = sin(angle) * output_speed;
|
float a_x = cos(angle) * output_speed, a_y = sin(angle) * output_speed;
|
||||||
|
|
||||||
if (d_x != 0 && d_y != 0) {
|
if (d_x != 0 && d_y != 0) {
|
||||||
controller->Axis(0, axis_x, GetAxis(-0x80, 0x80, a_x));
|
controller->Axis(0, axis_x, GetAxis(-0x80, 0x7f, a_x));
|
||||||
controller->Axis(0, axis_y, GetAxis(-0x80, 0x80, a_y));
|
controller->Axis(0, axis_y, GetAxis(-0x80, 0x7f, a_y));
|
||||||
} else {
|
} else {
|
||||||
controller->Axis(0, axis_x, GetAxis(-0x80, 0x80, 0));
|
controller->Axis(0, axis_x, GetAxis(-0x80, 0x7f, 0));
|
||||||
controller->Axis(0, axis_y, GetAxis(-0x80, 0x80, 0));
|
controller->Axis(0, axis_y, GetAxis(-0x80, 0x7f, 0));
|
||||||
}
|
}
|
||||||
|
|
||||||
return interval;
|
return interval;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue