From 69005de99e22458744ef57c1650191d9127636d2 Mon Sep 17 00:00:00 2001 From: dinkc64 <12570148+dinkc64@users.noreply.github.com> Date: Thu, 24 Jul 2014 18:43:14 +0000 Subject: [PATCH] Wizard Fire fix --- src/burn/drv/dataeast/deco16ic.cpp | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/src/burn/drv/dataeast/deco16ic.cpp b/src/burn/drv/dataeast/deco16ic.cpp index cbfc0ce04..8fb72574f 100644 --- a/src/burn/drv/dataeast/deco16ic.cpp +++ b/src/burn/drv/dataeast/deco16ic.cpp @@ -85,19 +85,22 @@ void deco16_draw_prio_sprite(UINT16 *dest, UINT8 *gfx, INT32 code, INT32 color, if (!pxl) continue; - INT32 bpriority = deco16_prio_map[(sy * 512) + sx]; - - if (spri == -1) { - if ((pri & (1 << (bpriority & 0x1f))) || (bpriority & 0x80)) continue; - deco16_prio_map[sy * 512 + sx] |= 0x80; // right? - } else { - if (pri <= bpriority || spri <= deco16_sprite_prio_map[sy * 512 + sx]) continue; - deco16_sprite_prio_map[sy * 512 + sx] = spri; - deco16_prio_map[sy * 512 + sx] = pri; // right? + if (pri != -1) { + INT32 bpriority = deco16_prio_map[(sy * 512) + sx]; + + if (spri == -1) { + if ((pri & (1 << (bpriority & 0x1f))) || (bpriority & 0x80)) continue; + deco16_prio_map[sy * 512 + sx] |= 0x80; // right? + } else { + if (pri <= bpriority || spri <= deco16_sprite_prio_map[sy * 512 + sx]) continue; + deco16_sprite_prio_map[sy * 512 + sx] = spri; + deco16_prio_map[sy * 512 + sx] = pri; // right? + } } - dest[sy * nScreenWidth + sx] = pxl | color; + + deco16_prio_map[sy * 512 + sx] |= 0x80; // right? } sx -= 16;