From 67dfa7de979064a87dfac91c193cf3bac468a42f Mon Sep 17 00:00:00 2001 From: David Haywood Date: Tue, 16 Sep 2014 09:28:29 +0000 Subject: [PATCH] double buffer nmk16 sprites (nw) --- src/mame/drivers/nmk16.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/mame/drivers/nmk16.c b/src/mame/drivers/nmk16.c index 7755312808d..41c70465678 100644 --- a/src/mame/drivers/nmk16.c +++ b/src/mame/drivers/nmk16.c @@ -3824,8 +3824,9 @@ TIMER_DEVICE_CALLBACK_MEMBER(nmk16_state::nmk16_scanline) if (scanline == SPRDMA_SCANLINE) { - memcpy(m_spriteram_old2, m_mainram + m_sprdma_base / 2, 0x1000); - // todo, sprites are also framebuffered, so needs one more frame of delay + // 2 buffers confirmed on PCB + memcpy(m_spriteram_old2,m_spriteram_old, 0x1000); + memcpy(m_spriteram_old, m_mainram + m_sprdma_base / 2, 0x1000); } /* Vblank-in irq, Vandyke definitely relies that irq fires at scanline ~0 instead of 112 (as per previous @@ -4587,8 +4588,11 @@ TIMER_DEVICE_CALLBACK_MEMBER(nmk16_state::manybloc_scanline) if(scanline == 248) // vblank-out irq m_maincpu->set_input_line(4, HOLD_LINE); - if (scanline==248) + if (scanline == 248) + { + // only a single buffer memcpy(m_spriteram_old2, m_mainram + m_sprdma_base / 2, 0x1000); + } /* This is either vblank-in or sprite dma irq complete */ if(scanline == 0)