psxbios: Callback Events should not set event status to busy in TestEvent.
authorgameblabla <gameblabla@openmailbox.org>
Thu, 18 Jul 2019 00:30:31 +0000 (02:30 +0200)
committergameblabla <gameblabla@openmailbox.org>
Thu, 18 Jul 2019 00:30:31 +0000 (02:30 +0200)
We are already doing that in WaitEvent. According to nocash documentation,
this also applies to TestEvent as well so let's implement it.

libpcsxcore/psxbios.c

index 288e33b..829deb0 100644 (file)
@@ -1762,9 +1762,15 @@ void psxBios_TestEvent() { // 0b
        ev   = a0 & 0xff;
        spec = (a0 >> 8) & 0xff;
 
-       if (Event[ev][spec].status == EvStALREADY) {
-               Event[ev][spec].status = EvStACTIVE; v0 = 1;
-       } else v0 = 0;
+       if (Event[ev][spec].status == EvStALREADY) 
+       {
+               if (!(Event[ev][spec].mode == EvMdINTR)) Event[ev][spec].status = EvStACTIVE;
+               v0 = 1;
+       } 
+       else 
+       {
+               v0 = 0;
+       }
 
 #ifdef PSXBIOS_LOG
        PSXBIOS_LOG("psxBios_%s %x,%x: %x\n", biosB0n[0x0b], ev, spec, v0);