mirror of
https://github.com/holub/mame
synced 2025-06-05 12:26:35 +03:00
specpdq: Fix backwards copy [O. Galibert]
This commit is contained in:
parent
b0b23cb386
commit
2b60795780
@ -431,7 +431,7 @@ WRITE32_MEMBER( nubus_specpdq_device::specpdq_w )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if ((data == 0x101) || (data == 0x100))
|
else if (data == 0x100)
|
||||||
{
|
{
|
||||||
int x, y;
|
int x, y;
|
||||||
uint8_t *vram = &m_vram[m_vram_addr & ~3];
|
uint8_t *vram = &m_vram[m_vram_addr & ~3];
|
||||||
@ -440,7 +440,7 @@ WRITE32_MEMBER( nubus_specpdq_device::specpdq_w )
|
|||||||
int sdx = m_vram_addr & 3;
|
int sdx = m_vram_addr & 3;
|
||||||
int ddx = m_vram_src & 3;
|
int ddx = m_vram_src & 3;
|
||||||
|
|
||||||
logerror("Copy rectangle, width %d height %d src %x dst %x\n", m_width, m_height, m_vram_addr, m_vram_src);
|
logerror("Copy rectangle forwards, width %d height %d src %x dst %x mode %03x\n", m_width, m_height, m_vram_addr, m_vram_src, data);
|
||||||
|
|
||||||
for (y = 0; y < m_height; y++)
|
for (y = 0; y < m_height; y++)
|
||||||
{
|
{
|
||||||
@ -449,8 +449,27 @@ WRITE32_MEMBER( nubus_specpdq_device::specpdq_w )
|
|||||||
vram[(y * 1152)+BYTE4_XOR_BE(x + ddx)] = vramsrc[(y * 1152)+BYTE4_XOR_BE(x + sdx)];
|
vram[(y * 1152)+BYTE4_XOR_BE(x + ddx)] = vramsrc[(y * 1152)+BYTE4_XOR_BE(x + sdx)];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
(void)vramsrc;
|
(void)vramsrc; (void)sdx;
|
||||||
(void)sdx;
|
}
|
||||||
|
else if (data == 0x101)
|
||||||
|
{
|
||||||
|
int x, y;
|
||||||
|
uint8_t *vram = &m_vram[m_vram_addr & ~3];
|
||||||
|
uint8_t *vramsrc = &m_vram[m_vram_src & ~3];
|
||||||
|
|
||||||
|
int sdx = m_vram_addr & 3;
|
||||||
|
int ddx = m_vram_src & 3;
|
||||||
|
|
||||||
|
logerror("Copy rectangle backwards, width %d height %d src %x dst %x mode %03x\n", m_width, m_height, m_vram_addr, m_vram_src, data);
|
||||||
|
|
||||||
|
for (y = 0; y < m_height; y++)
|
||||||
|
{
|
||||||
|
for (x = 0; x < m_width; x++)
|
||||||
|
{
|
||||||
|
vram[(-y * 1152)+BYTE4_XOR_BE(-x + ddx)] = vramsrc[(-y * 1152)+BYTE4_XOR_BE(-x + sdx)];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
(void)vramsrc; (void)sdx;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user