X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=pcsx_rearmed.git;a=blobdiff_plain;f=libpcsxcore%2Fcdrom.c;h=0e033db76f8b54778b4d33fa107bbcb426f8973f;hp=92e4b7f2f87b1ee54b14861a87c7f2502297b136;hb=7de557a6f7b032bd5bb5e0e5c8a6539b856d9c20;hpb=ef79bbde537d6b9c745a7d86cb9df1d04c35590d diff --git a/libpcsxcore/cdrom.c b/libpcsxcore/cdrom.c index 92e4b7f2..0e033db7 100644 --- a/libpcsxcore/cdrom.c +++ b/libpcsxcore/cdrom.c @@ -92,14 +92,18 @@ static struct CdrStat stat; static struct SubQ *subq; #define CDR_INT(eCycle) { \ - psxRegs.interrupt |= 0x4; \ - psxRegs.intCycle[2 + 1] = eCycle; \ - psxRegs.intCycle[2] = psxRegs.cycle; } + psxRegs.interrupt |= (1 << PSXINT_CDR); \ + psxRegs.intCycle[PSXINT_CDR].cycle = eCycle; \ + psxRegs.intCycle[PSXINT_CDR].sCycle = psxRegs.cycle; \ + new_dyna_set_event(PSXINT_CDR, eCycle); \ +} #define CDREAD_INT(eCycle) { \ - psxRegs.interrupt |= 0x40000; \ - psxRegs.intCycle[2 + 16 + 1] = eCycle; \ - psxRegs.intCycle[2 + 16] = psxRegs.cycle; } + psxRegs.interrupt |= (1 << PSXINT_CDREAD); \ + psxRegs.intCycle[PSXINT_CDREAD].cycle = eCycle; \ + psxRegs.intCycle[PSXINT_CDREAD].sCycle = psxRegs.cycle; \ + new_dyna_set_event(PSXINT_CDREAD, eCycle); \ +} #define StartReading(type, eCycle) { \ cdr.Reading = type; \ @@ -111,7 +115,7 @@ static struct SubQ *subq; #define StopReading() { \ if (cdr.Reading) { \ cdr.Reading = 0; \ - psxRegs.interrupt &= ~0x40000; \ + psxRegs.interrupt &= ~(1 << PSXINT_CDREAD); \ } \ cdr.StatP &= ~0x20;\ } @@ -1119,6 +1123,7 @@ void cdrReset() { cdr.CurTrack = 1; cdr.File = 1; cdr.Channel = 1; + memset(&stat, 0, sizeof(stat)); } int cdrFreeze(gzFile f, int Mode) {