From: negativeExponent Date: Sat, 31 Oct 2020 11:38:47 +0000 (+0800) Subject: Fix negcon not working correctly in some games X-Git-Tag: r24l~610^2 X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4c7a462ed37b73f05ff8cc16b477c22e5b2daa26;p=pcsx_rearmed.git Fix negcon not working correctly in some games --- diff --git a/libpcsxcore/plugins.c b/libpcsxcore/plugins.c index 19de72c5..8d99be2d 100644 --- a/libpcsxcore/plugins.c +++ b/libpcsxcore/plugins.c @@ -747,7 +747,8 @@ unsigned char _PADpoll(int port, unsigned char value) { req = value; // Don't enable Analog/Vibration for a standard pad - if (in_type[port] == PSE_PAD_TYPE_STANDARD) { + if (in_type[port] == PSE_PAD_TYPE_STANDARD || + in_type[port] == PSE_PAD_TYPE_NEGCON) { ; // Pad keystate already in buffer } else @@ -772,9 +773,13 @@ unsigned char _PADpoll(int port, unsigned char value) { case CMD_READ_DATA_AND_VIBRATE: //mem the vibration value for Large motor; pad[port].Vib[1] = value; + + if (in_type[port] == PSE_PAD_TYPE_STANDARD && + in_type[port] == PSE_PAD_TYPE_NEGCON) + break; + //vibration - if (in_type[port] != PSE_PAD_TYPE_STANDARD) - vibrate(port); + vibrate(port); break; } break;