X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=pcsx_rearmed.git;a=blobdiff_plain;f=libpcsxcore%2Fcdrom.c;h=87a7c198c0849ca9be28eee37d78bb63634f4f21;hp=c667ac48a9637abbe2500231964ab7c71cf234e4;hb=4955e9d068cd7cbb2bc8755d7bab09b78b92a981;hpb=696c9530369f5f5b75a15f0b180d6bf8d855afa3 diff --git a/libpcsxcore/cdrom.c b/libpcsxcore/cdrom.c index c667ac48..87a7c198 100644 --- a/libpcsxcore/cdrom.c +++ b/libpcsxcore/cdrom.c @@ -1902,9 +1902,13 @@ void cdrWrite3(unsigned char rt) { // - Final Fantasy Tactics // - various other games - if (cdr.Irq) // rearmed guesswork hack if (cdr.Reading && !cdr.ResultReady) { - CDREAD_INT((cdr.Mode & MODE_SPEED) ? (cdReadTime / 2) : cdReadTime); + int left = psxRegs.intCycle[PSXINT_CDREAD].sCycle + psxRegs.intCycle[PSXINT_CDREAD].cycle - psxRegs.cycle; + int time = (cdr.Mode & MODE_SPEED) ? (cdReadTime / 2) : cdReadTime; + if (left < time / 2) { // rearmed guesswork hack + //printf("-- resched %d -> %d\n", left, time / 2); + CDREAD_INT(time / 2); + } } return;