double buffer nmk16 sprites (nw)

This commit is contained in:
David Haywood 2014-09-16 09:28:29 +00:00
parent 9db9150328
commit 67dfa7de97

View File

@ -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)