summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
author Michaël Banaan Ananas <happppp@users.noreply.github.com>2010-05-09 23:06:33 +0000
committer Michaël Banaan Ananas <happppp@users.noreply.github.com>2010-05-09 23:06:33 +0000
commit68bfc99c13f01360bdd85de97a172afe7f1e1aa8 (patch)
tree938c978e356f42d50769e704f688da625ecc40a8 /src
parent0b943660b57d581eabaed8d7afbdc8bf2c792629 (diff)
r9070 update taking shadow/highlight into account, fixes mametesters bug 03644
Diffstat (limited to 'src')
-rw-r--r--src/emu/drawgfxm.h44
1 files 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) \