From f7a8ec7ee9bcfd885db9f38cb8e4c979342a0746 Mon Sep 17 00:00:00 2001 From: KrossX Date: Sun, 22 Nov 2015 19:18:02 -0300 Subject: [PATCH] Fix for odd DualShock rumble Only bit0 matters for the small motor. Fixes RE4 rumble on movies / map. Was already fixed on xpad. --- plugins/LilyPad/LilyPad.cpp | 2 +- plugins/onepad/onepad.cpp | 2 +- plugins/xpad/xpad.cpp | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/LilyPad/LilyPad.cpp b/plugins/LilyPad/LilyPad.cpp index 632ba36ec4..1162f3c66d 100644 --- a/plugins/LilyPad/LilyPad.cpp +++ b/plugins/LilyPad/LilyPad.cpp @@ -1330,7 +1330,7 @@ u8 CALLBACK PADpoll(u8 value) { // READ_DATA_AND_VIBRATE case 0x42: if (query.lastByte == pad->vibrateI[0]) { - SetVibrate(query.port, query.slot, 1, 255*(0!=value)); + SetVibrate(query.port, query.slot, 1, 255*(value&1)); } else if (query.lastByte == pad->vibrateI[1]) { SetVibrate(query.port, query.slot, 0, value); diff --git a/plugins/onepad/onepad.cpp b/plugins/onepad/onepad.cpp index ea6bf0d2a1..62cfaa1547 100644 --- a/plugins/onepad/onepad.cpp +++ b/plugins/onepad/onepad.cpp @@ -489,7 +489,7 @@ u8 _PADpoll(u8 value) case CMD_READ_DATA_AND_VIBRATE: if (curByte == padVib0[curPad]) - padVibF[curPad][0] = value; + padVibF[curPad][0] = value&1; if (curByte == padVib1[curPad]) padVibF[curPad][1] = value; break; diff --git a/plugins/xpad/xpad.cpp b/plugins/xpad/xpad.cpp index ad27319343..3b0d04817c 100644 --- a/plugins/xpad/xpad.cpp +++ b/plugins/xpad/xpad.cpp @@ -350,7 +350,7 @@ static class XPadPlugin switch(index) { case 0: - m_pad->m_small = value == 1 ? 128 : 0; // RE4 map menu, value = 2 + m_pad->m_small = (value&1) * 128; break; case 1: m_pad->m_large = value;