summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/namco/namcos21_de.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/namco/namcos21_de.cpp')
-rw-r--r--src/mame/namco/namcos21_de.cpp53
1 files changed, 31 insertions, 22 deletions
diff --git a/src/mame/namco/namcos21_de.cpp b/src/mame/namco/namcos21_de.cpp
index 924d4c29529..29ede68397f 100644
--- a/src/mame/namco/namcos21_de.cpp
+++ b/src/mame/namco/namcos21_de.cpp
@@ -215,39 +215,48 @@ void namco_de_pcbstack_device::device_add_mconfig(machine_config &config)
bool namco_de_pcbstack_device::sprite_mix_callback(u16 &dest, u8 &destpri, u16 colbase, u16 src, int srcpri, int pri)
{
+ // copy/pasted from namcos21_c67.cpp
if (srcpri == pri)
{
- if ((src & 0xff) != 0xff)
+ src ^= 0xf00;
+
+ switch (src & 0xff)
{
- switch (src & 0xff)
- {
- case 0:
- if ((dest & 0xff) != 0xff)
- dest = 0x4000 | (dest & 0x1fff);
- else
- dest = (dest & 0x1f00) | 0;
- break;
- case 1:
- if ((dest & 0xff) != 0xff)
- dest = 0x6000 | (dest & 0x1fff);
- else
- dest = (dest & 0x1f00) | 1;
- break;
- default:
- dest = colbase + (src ^ 0xf00);
- break;
- }
- return true;
+ case 0xff:
+ if ((dest & 0xff) == 0xff)
+ dest = (src & 0xf00) | 0xff;
+ else
+ return false;
+ break;
+
+ case 0x00:
+ if ((dest & 0xff) != 0xff)
+ dest = 0x4000 | (dest & 0x1fff);
+ else
+ dest = (src & 0xf00) | 0x00;
+ break;
+
+ case 0x01:
+ if ((dest & 0xff) != 0xff)
+ dest = 0x6000 | (dest & 0x1fff);
+ else
+ dest = (src & 0xf00) | 0x01;
+ break;
+
+ default:
+ dest = colbase | src;
+ break;
}
+ return true;
}
+
return false;
}
u32 namco_de_pcbstack_device::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- //u8 *videoram = m_gpu_videoram.get();
int pivot = 3;
- bitmap.fill(0xdff, cliprect);
+ bitmap.fill(0xff, cliprect);
screen.priority().fill(0, cliprect);
m_c355spr->build_sprite_list_and_render_sprites(cliprect); // TODO : buffered?