From 1ace7445f6db43ef44cc3515098f39a7d102a25d Mon Sep 17 00:00:00 2001 From: EkeEke Date: Wed, 21 Nov 2012 22:37:46 +0100 Subject: [PATCH] fixed VDP DMA from SVP ROM latency, broken in r683 (graphic errors in Virtua Racing) --- source/vdp_ctrl.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/vdp_ctrl.c b/source/vdp_ctrl.c index 05a2737..5358106 100644 --- a/source/vdp_ctrl.c +++ b/source/vdp_ctrl.c @@ -745,8 +745,8 @@ void vdp_68k_ctrl_w(unsigned int data) /* DMA source address */ dma_src = (reg[22] << 8) | reg[21]; - /* Transfer from SVP DRAM ($300000-$31ffff) or CD Word-RAM ($200000-$3fffff/$600000-$7fffff) */ - if (((system_hw == SYSTEM_MCD) && ((reg[23] & 0x70) == ((scd.cartridge.boot >> 1) + 0x10))) || (svp && ((reg[23] & 0x70) == 0x10))) + /* Transfer from SVP ROM/RAM ($000000-$3fffff) or CD Word-RAM ($200000-$3fffff/$600000-$7fffff) */ + if (((system_hw == SYSTEM_MCD) && ((reg[23] & 0x70) == ((scd.cartridge.boot >> 1) + 0x10))) || (svp && !(reg[23] & 0x60))) { /* source data is available with one cycle delay, i.e first word written by VDP is */ /* previous data being held on 68k bus at that time, then source words are written */