gte_neon: hook into recompiler
[pcsx_rearmed.git] / libpcsxcore / cdrom.c
index b063fa5..ee74835 100644 (file)
@@ -861,7 +861,17 @@ void cdrInterrupt() {
                        cdr.Result[0] = cdr.StatP;
                        cdr.Stat = Acknowledge;
 
-                       AddIrqQueue(CdlPause + 0x20, 0x800);
+                       /*
+                       Gundam Battle Assault 2: much slower (*)
+                       - Fixes boot, gameplay
+
+                       Hokuto no Ken 2: slower
+                       - Fixes intro + subtitles
+
+                       InuYasha - Feudal Fairy Tale: slower
+                       - Fixes battles
+                       */
+                       AddIrqQueue(CdlPause + 0x20, cdReadTime * 3);
                        cdr.Ctrl |= 0x80;
                        break;
 
@@ -978,10 +988,9 @@ void cdrInterrupt() {
                        }
 
                        // redump.org - wipe time
-                       /*if( !cdr.Play && CheckSBI(cdr.Result+5) ) {
+                       if( !cdr.Play && CheckSBI(cdr.Result+5) ) {
                                memset( cdr.Result+2, 0, 6 );
                        }
-                       */
 
                        cdr.Stat = Acknowledge;
                        break;
@@ -1610,17 +1619,7 @@ void cdrWrite1(unsigned char rt) {
                cdr.Ctrl |= 0x80;
                cdr.Stat = NoIntr;
 
-               /*
-                  Gundam Battle Assault 2: much slower (*)
-                  - Fixes boot, gameplay
-
-                  Hokuto no Ken 2: slower
-                  - Fixes intro + subtitles
-
-                  InuYasha - Feudal Fairy Tale: slower
-                  - Fixes battles
-                  */
-               AddIrqQueue(cdr.Cmd, cdReadTime * 3);
+               AddIrqQueue(cdr.Cmd, 0x800);
                break;
 
        case CdlReset:
@@ -1894,9 +1893,15 @@ void cdrWrite3(unsigned char rt) {
                        return;
                }
 
+               // XA streaming - incorrect timing because of this reschedule
+               // - Final Fantasy Tactics
+               // - various other games
+
+               /*
                if (cdr.Reading && !cdr.ResultReady) {
                        CDREAD_INT((cdr.Mode & MODE_SPEED) ? (cdReadTime / 2) : cdReadTime);
                }
+               */
 
                return;
        }