X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=pico%2Fpico_cmn.c;h=78fdd120c5cd95cf720fc7beeeff435f31d5a32f;hb=8f80007bcc94faae7c369d4ed8a07a9d35c31c72;hp=341255a8139fd7c7018b82d2b3cf0f797f22e12f;hpb=99ade2ee2f76fa8170fb4e1abacc24f39a150c44;p=picodrive.git diff --git a/pico/pico_cmn.c b/pico/pico_cmn.c index 341255a..78fdd12 100644 --- a/pico/pico_cmn.c +++ b/pico/pico_cmn.c @@ -85,8 +85,7 @@ static int PicoFrameHints(void) } z80_resetCycles(); - PsndDacLine = 0; - emustatus &= ~1; + PsndStartFrame(); pv->status&=~0x88; // clear V-Int, come out of vblank @@ -145,8 +144,6 @@ static int PicoFrameHints(void) if (Pico.m.z80Run && !Pico.m.z80_reset && (PicoOpt&POPT_EN_Z80)) PicoSyncZ80(cycles); - if (ym2612.dacen && PsndDacLine <= y) - PsndDoDAC(y); #ifdef PICO_CD if (PicoAHW & PAHW_MCD) pcd_sync_s68k(cycles, 0); @@ -168,7 +165,7 @@ static int PicoFrameHints(void) if (!skip) { - if (DrawScanline < y) + if (Pico.est.DrawScanline < y) PicoDrawSync(y - 1, 0); #ifdef DRAW_FINISH_FUNC DRAW_FINISH_FUNC(); @@ -230,11 +227,7 @@ static int PicoFrameHints(void) // get samples from sound chips if (y == 224 && PsndOut) - { - if (ym2612.dacen && PsndDacLine <= y) - PsndDoDAC(y); PsndGetSamples(y); - } // Run scanline: CPUS_RUN(CYCLES_M68K_LINE - CYCLES_M68K_VINT_LAG - CYCLES_M68K_ASD); @@ -269,8 +262,10 @@ static int PicoFrameHints(void) cycles = SekCyclesDone(); if (Pico.m.z80Run && !Pico.m.z80_reset && (PicoOpt&POPT_EN_Z80)) PicoSyncZ80(cycles); - if (PsndOut && ym2612.dacen && PsndDacLine <= lines-1) - PsndDoDAC(lines-1); + if (PsndOut && ym2612.dacen && PsndDacLine < lines) + PsndDoDAC(lines - 1); + if (PsndOut && PsndPsgLine < lines) + PsndDoPSG(lines - 1); #ifdef PICO_CD if (PicoAHW & PAHW_MCD)