X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=Pico%2FPicoFrameHints.c;h=84db382135f31e5dbde2909abf93d68549fb9dea;hb=9cd8914e0223ff79f46dea9bc0b7cbd24c79f4bf;hp=9fecc0cd06fff5c0a9bf1c97b3a5ac8d7be7d4bd;hpb=9761a7d0d41ad429d53c64ff35fe061c38092dbf;p=picodrive.git diff --git a/Pico/PicoFrameHints.c b/Pico/PicoFrameHints.c index 9fecc0c..84db382 100644 --- a/Pico/PicoFrameHints.c +++ b/Pico/PicoFrameHints.c @@ -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);