minor
[picodrive.git] / Pico / PicoFrameHints.c
index 9fecc0c..84db382 100644 (file)
@@ -124,7 +124,7 @@ static int PicoFrameHints(void)
       emustatus &= ~1;
     else if ((y == 224 || y == line_sample) && PsndOut)
     {
-      if (Pico.m.z80Run && (PicoOpt&POPT_EN_Z80))
+      if (Pico.m.z80Run && !Pico.m.z80_reset && (PicoOpt&POPT_EN_Z80))
         PicoSyncZ80(SekCycleCnt);
       if (ym2612.dacen && PsndDacLine <= y)
         PsndDoDAC(y);
@@ -139,15 +139,10 @@ static int PicoFrameHints(void)
 #ifdef PICO_CD
     update_chips();
 #else
-    if (PicoLineHook) PicoLineHook(1);
+    if (PicoLineHook) PicoLineHook();
 #endif
   }
 
-  // V-int line (224 or 240)
-  Pico.m.scanline = y;
-  pv->v_counter = 0xe0; // bad for 240 mode
-  if ((pv->reg[12]&6) == 6) pv->v_counter = 0xc1;
-
   if (!skip)
   {
     if (DrawScanline < y)
@@ -157,6 +152,11 @@ static int PicoFrameHints(void)
 #endif
   }
 
+  // V-int line (224 or 240)
+  Pico.m.scanline = y;
+  pv->v_counter = 0xe0; // bad for 240 mode
+  if ((pv->reg[12]&6) == 6) pv->v_counter = 0xc1;
+
   // VDP FIFO
   pv->lwrite_cnt=0;
   Pico.video.status|=0x200;
@@ -188,7 +188,7 @@ static int PicoFrameHints(void)
     elprintf(EL_INTS, "vint: @ %06x [%i]", SekPc, SekCycleCnt);
     SekInterrupt(6);
   }
-  if (Pico.m.z80Run && (PicoOpt&POPT_EN_Z80)) {
+  if (Pico.m.z80Run && !Pico.m.z80_reset && (PicoOpt&POPT_EN_Z80)) {
     PicoSyncZ80(SekCycleCnt);
     elprintf(EL_INTS, "zint");
     z80_int();
@@ -213,7 +213,7 @@ static int PicoFrameHints(void)
 #ifdef PICO_CD
   update_chips();
 #else
-  if (PicoLineHook) PicoLineHook(1);
+  if (PicoLineHook) PicoLineHook();
 #endif
 
   // PAL line count might actually be 313 according to Steve Snake, but that would complicate things.
@@ -241,12 +241,12 @@ static int PicoFrameHints(void)
 #ifdef PICO_CD
     update_chips();
 #else
-    if (PicoLineHook) PicoLineHook(1);
+    if (PicoLineHook) PicoLineHook();
 #endif
   }
 
   // sync z80
-  if (Pico.m.z80Run && (PicoOpt&POPT_EN_Z80))
+  if (Pico.m.z80Run && !Pico.m.z80_reset && (PicoOpt&POPT_EN_Z80))
     PicoSyncZ80(Pico.m.pal ? 151809 : 127671); // cycles adjusted for converter
   if (PsndOut && ym2612.dacen && PsndDacLine <= lines-1)
     PsndDoDAC(lines-1);