gpu-gles from psx4m
[pcsx_rearmed.git] / libpcsxcore / cdrom.c
index 92e4b7f..0e033db 100644 (file)
@@ -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) {