diff options
| author | 2010-05-09 23:06:33 +0000 | |
|---|---|---|
| committer | 2010-05-09 23:06:33 +0000 | |
| commit | 68bfc99c13f01360bdd85de97a172afe7f1e1aa8 (patch) | |
| tree | 938c978e356f42d50769e704f688da625ecc40a8 /src | |
| parent | 0b943660b57d581eabaed8d7afbdc8bf2c792629 (diff) | |
r9070 update taking shadow/highlight into account, fixes mametesters bug 03644
Diffstat (limited to 'src')
| -rw-r--r-- | src/emu/drawgfxm.h | 44 |
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) \ |
