core: update to newer interrupt code, seems to affect timings too
[pcsx_rearmed.git] / libpcsxcore / cdrom.c
index d7f4d80..ae59a63 100644 (file)
@@ -92,17 +92,17 @@ 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; \
-       new_dyna_set_event(0, eCycle); \
+       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; \
-       new_dyna_set_event(2, eCycle); \
+       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) { \
@@ -115,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;\
 }