X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=libpcsxcore%2Fplugins.c;h=34f2481291c61c31da6f01ec5a5b0f46d670fa8e;hb=9cc1b6c9786f625bcbb130671f8c6f5351ff609e;hp=8d99be2d471cf2d3e66d7260a61a41ee3b925f66;hpb=4c7a462ed37b73f05ff8cc16b477c22e5b2daa26;p=pcsx_rearmed.git diff --git a/libpcsxcore/plugins.c b/libpcsxcore/plugins.c index 8d99be2d..34f24812 100644 --- a/libpcsxcore/plugins.c +++ b/libpcsxcore/plugins.c @@ -630,6 +630,7 @@ void _PADstartPoll(PadDataS *pad) { switch (pad->controllerType) { case PSE_PAD_TYPE_MOUSE: stdpar[0] = 0x12; + stdpar[1] = 0x5a; stdpar[2] = pad->buttonStatus & 0xff; stdpar[3] = pad->buttonStatus >> 8; stdpar[4] = pad->moveX; @@ -639,6 +640,7 @@ void _PADstartPoll(PadDataS *pad) { break; case PSE_PAD_TYPE_NEGCON: // npc101/npc104(slph00001/slph00069) stdpar[0] = 0x23; + stdpar[1] = 0x5a; stdpar[2] = pad->buttonStatus & 0xff; stdpar[3] = pad->buttonStatus >> 8; stdpar[4] = pad->rightJoyX; @@ -691,6 +693,7 @@ void _PADstartPoll(PadDataS *pad) { break; case PSE_PAD_TYPE_ANALOGPAD: // scph1150 stdpar[0] = 0x73; + stdpar[1] = 0x5a; stdpar[2] = pad->buttonStatus & 0xff; stdpar[3] = pad->buttonStatus >> 8; stdpar[4] = pad->rightJoyX; @@ -702,6 +705,7 @@ void _PADstartPoll(PadDataS *pad) { break; case PSE_PAD_TYPE_ANALOGJOY: // scph1110 stdpar[0] = 0x53; + stdpar[1] = 0x5a; stdpar[2] = pad->buttonStatus & 0xff; stdpar[3] = pad->buttonStatus >> 8; stdpar[4] = pad->rightJoyX; @@ -712,8 +716,8 @@ void _PADstartPoll(PadDataS *pad) { respSize = 8; break; case PSE_PAD_TYPE_STANDARD: - default: stdpar[0] = 0x41; + stdpar[1] = 0x5a; stdpar[2] = pad->buttonStatus & 0xff; stdpar[3] = pad->buttonStatus >> 8; //avoid analog value in multitap mode if change pad type in game. @@ -723,6 +727,19 @@ void _PADstartPoll(PadDataS *pad) { stdpar[7] = 0xff; memcpy(buf, stdpar, 8); respSize = 8; + break; + default: + stdpar[0] = 0xff; + stdpar[1] = 0xff; + stdpar[2] = 0xff; + stdpar[3] = 0xff; + stdpar[4] = 0xff; + stdpar[5] = 0xff; + stdpar[6] = 0xff; + stdpar[7] = 0xff; + memcpy(buf, stdpar, 8); + respSize = 8; + break; } } @@ -759,7 +776,11 @@ unsigned char _PADpoll(int port, unsigned char value) { } //if no new request the pad return 0xff, for signaling connected - if (reqPos >= respSize) return 0xff; + if (reqPos >= respSize +#ifdef ICACHE_EMULATION + && writeok +#endif + ) return 0xff; switch(reqPos){ case 2: