}
#endif
-// Accurate but slower frame which does hints
static int PicoFrameHints(void)
{
struct PicoVideo *pv=&Pico.video;
SekCyclesResetS68k();
#endif
PsndDacLine = 0;
+ emustatus &= ~1;
pv->status&=~0x88; // clear V-Int, come out of vblank
}
}
-#ifndef PICO_CD
// get samples from sound chips
- if (y == 32 && PsndOut)
- emustatus &= ~1;
- else if ((y == 224 || y == line_sample) && PsndOut)
+ if ((y == 224 || y == line_sample) && PsndOut)
{
if (Pico.m.z80Run && !Pico.m.z80_reset && (PicoOpt&POPT_EN_Z80))
PicoSyncZ80(SekCycleCnt);
if (ym2612.dacen && PsndDacLine <= y)
PsndDoDAC(y);
- getSamples(y);
+ PsndGetSamples(y);
}
-#endif
// Run scanline:
if (Pico.m.dma_xfers) SekCyclesBurn(CheckDMA());
pv->status|=0x08; // go into vblank
pv->pending_ints|=0x20;
+#ifdef PICO_32X
+ p32x_start_blank();
+#endif
+
// the following SekRun is there for several reasons:
// there must be a delay after vblank bit is set and irq is asserted (Mazin Saga)
// also delay between F bit (bit 7) is set in SR and IRQ happens (Ex-Mutants)
}
// get samples from sound chips
-#ifndef PICO_CD
- if (y == 224)
-#endif
- if (PsndOut)
- {
- if (ym2612.dacen && PsndDacLine <= y)
- PsndDoDAC(y);
- getSamples(y);
- }
+ if (y == 224 && PsndOut)
+ {
+ if (ym2612.dacen && PsndDacLine <= y)
+ PsndDoDAC(y);
+ PsndGetSamples(y);
+ }
// Run scanline:
if (Pico.m.dma_xfers) SekCyclesBurn(CheckDMA());