From 68bfc99c13f01360bdd85de97a172afe7f1e1aa8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Banaan=20Ananas?= Date: Sun, 9 May 2010 23:06:33 +0000 Subject: [PATCH] r9070 update taking shadow/highlight into account, fixes mametesters bug 03644 --- src/emu/drawgfxm.h | 44 ++++++++++++++++++++------------------------ 1 file changed, 20 insertions(+), 24 deletions(-) diff --git a/src/emu/drawgfxm.h b/src/emu/drawgfxm.h index 93a7a0f33bc..64543492d25 100644 --- a/src/emu/drawgfxm.h +++ b/src/emu/drawgfxm.h @@ -255,21 +255,19 @@ do \ if (entry != DRAWMODE_NONE) \ { \ UINT8 pridata = (PRIORITY); \ - if (((1 << (pridata & 0x1f)) & pmask) == 0) \ + if (entry == DRAWMODE_SOURCE) \ { \ - if (entry == DRAWMODE_SOURCE) \ - { \ + if (((1 << (pridata & 0x1f)) & pmask) == 0) \ (DEST) = paldata[srcdata]; \ - (PRIORITY) = 31; \ - } \ - else if ((pridata & 0x80) == 0) \ - { \ - (DEST) = shadowtable[DEST]; \ - (PRIORITY) = pridata | 0x80; \ - } \ + else if (pridata & 0x80) \ + (DEST) = shadowtable[paldata[srcdata]]; /* reapply */ \ + (PRIORITY) = pridata | 0x1f; \ + } \ + else if (((pridata & 0x80) | ((1 << (pridata & 0x1f)) & pmask)) == 0) \ + { \ + (DEST) = shadowtable[DEST]; \ + (PRIORITY) = 0x9f; \ } \ - else if (entry == DRAWMODE_SOURCE) \ - (PRIORITY) = 31; \ } \ } \ while (0) \ @@ -282,21 +280,19 @@ do \ if (entry != DRAWMODE_NONE) \ { \ UINT8 pridata = (PRIORITY); \ - if (((1 << (pridata & 0x1f)) & pmask) == 0) \ + if (entry == DRAWMODE_SOURCE) \ { \ - if (entry == DRAWMODE_SOURCE) \ - { \ + if (((1 << (pridata & 0x1f)) & pmask) == 0) \ (DEST) = paldata[srcdata]; \ - (PRIORITY) = 31; \ - } \ - else if ((pridata & 0x80) == 0) \ - { \ - (DEST) = shadowtable[rgb_to_rgb15(DEST)]; \ - (PRIORITY) = pridata | 0x80; \ - } \ + else if (pridata & 0x80) \ + (DEST) = shadowtable[rgb_to_rgb15(paldata[srcdata])]; \ + (PRIORITY) = pridata | 0x1f; \ + } \ + else if (((pridata & 0x80) | ((1 << (pridata & 0x1f)) & pmask)) == 0) \ + { \ + (DEST) = shadowtable[rgb_to_rgb15(DEST)]; \ + (PRIORITY) = 0x9f; \ } \ - else if (entry == DRAWMODE_SOURCE) \ - (PRIORITY) = 31; \ } \ } \ while (0) \