X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=libpcsxcore%2Fr3000a.c;h=69772d44cf4753ca9a285434b5b7f8ab81711b5e;hb=f6eb0b1c75fd9103a1ad18aed5d00aa0c41fa24e;hp=9b4793628638346c7959b238a6b3bdb577973508;hpb=11d23573173ec4b5074eb35665c6012a46034d5c;p=pcsx_rearmed.git diff --git a/libpcsxcore/r3000a.c b/libpcsxcore/r3000a.c index 9b479362..69772d44 100644 --- a/libpcsxcore/r3000a.c +++ b/libpcsxcore/r3000a.c @@ -264,7 +264,7 @@ static void psxScheduleIrq10One(u32 cycles_abs) { psxRegs.interrupt |= 1 << PSXINT_IRQ10; psxRegs.intCycle[PSXINT_IRQ10].cycle = c; psxRegs.intCycle[PSXINT_IRQ10].sCycle = rcnts[3].cycleStart; - new_dyna_set_event(PSXINT_IRQ10, c); + new_dyna_set_event_abs(PSXINT_IRQ10, cycles_abs); } void irq10Interrupt() { @@ -280,8 +280,11 @@ void irq10Interrupt() { irq10count, psxRegs.cycle - prevc, (psxRegs.CP0.n.SR & 0x401) != 0x401, !(psxHu32(0x1074) & 0x400)); #endif - if (--irq10count > 0) - psxScheduleIrq10One(prevc + PSXCLK / 60 / 263); + if (--irq10count > 0) { + u32 cycles_per_line = Config.PsxType + ? PSXCLK / 50 / 314 : PSXCLK / 60 / 263; + psxScheduleIrq10One(prevc + cycles_per_line); + } } void psxScheduleIrq10(int irq_count, int x_cycles, int y) {