From e94912cdb93cfce579d168c9b078ca8b000bd499 Mon Sep 17 00:00:00 2001 From: RedPanda4552 Date: Sat, 19 Aug 2023 15:14:40 -0400 Subject: [PATCH] Pad: Only consider LSB for small motor vibration --- pcsx2/SIO/Pad/PadDualshock2.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/pcsx2/SIO/Pad/PadDualshock2.cpp b/pcsx2/SIO/Pad/PadDualshock2.cpp index c8c000d156..65797db955 100644 --- a/pcsx2/SIO/Pad/PadDualshock2.cpp +++ b/pcsx2/SIO/Pad/PadDualshock2.cpp @@ -166,13 +166,16 @@ u8 PadDualshock2::Poll(u8 commandByte) break; } + // Small motor on the controller is only controlled by the LSB. + // Any value can be sent by the software, but only odd numbers + // (LSB set) will turn on the motor. switch (this->smallMotorLastConfig) { case 0x00: - smallMotor = this->vibrationMotors[0]; + smallMotor = this->vibrationMotors[0] & 0x01; break; case 0x01: - smallMotor = this->vibrationMotors[1]; + smallMotor = this->vibrationMotors[1] & 0x01; break; default: break;