// same for Outrunners (92-121, when active is set to 24)\r
// 96 is VR hack\r
static const int dma_timings[] = {\r
- 96, 167, 166, 83, // vblank: 32cell: dma2vram dma2[vs|c]ram vram_fill vram_copy\r
+ 167, 167, 166, 83, // vblank: 32cell: dma2vram dma2[vs|c]ram vram_fill vram_copy\r
102, 205, 204, 102, // vblank: 40cell:\r
16, 16, 15, 8, // active: 32cell:\r
24, 18, 17, 9 // ...\r
};\r
\r
static const int dma_bsycles[] = {\r
- (488<<8)/96, (488<<8)/167, (488<<8)/166, (488<<8)/83,\r
- (488<<8)/102, (488<<8)/205, (488<<8)/204, (488<<8)/102,\r
+ (488<<8)/167, (488<<8)/167, (488<<8)/166, (488<<8)/83,\r
+ (488<<8)/102, (488<<8)/233, (488<<8)/204, (488<<8)/102,\r
(488<<8)/16, (488<<8)/16, (488<<8)/15, (488<<8)/8,\r
(488<<8)/24, (488<<8)/18, (488<<8)/17, (488<<8)/9\r
};\r
\r
+// grossly inaccurate.. FIXME FIXXXMEE\r
PICO_INTERNAL int CheckDMA(void)\r
{\r
int burn = 0, xfers_can, dma_op = Pico.video.reg[0x17]>>6; // see gens for 00 and 01 modes\r
// also delay between F bit (bit 7) is set in SR and IRQ happens (Ex-Mutants)
// also delay between last H-int and V-int (Golden Axe 3)
line_base_cycles = SekCyclesDone();
+ if (Pico.m.dma_xfers) SekCyclesBurn(CheckDMA());
CPUS_RUN(CYCLES_M68K_VINT_LAG);
if (pv->reg[1]&0x20) {
}
// Run scanline:
- if (Pico.m.dma_xfers) SekCyclesBurn(CheckDMA());
CPUS_RUN(CYCLES_M68K_LINE - CYCLES_M68K_VINT_LAG - CYCLES_M68K_ASD);
if (PicoLineHook) PicoLineHook();