summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/video/tms9928a.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/emu/video/tms9928a.c')
-rw-r--r--src/emu/video/tms9928a.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/emu/video/tms9928a.c b/src/emu/video/tms9928a.c
index ab418363675..0abacbee8df 100644
--- a/src/emu/video/tms9928a.c
+++ b/src/emu/video/tms9928a.c
@@ -392,8 +392,13 @@ void TMS9928A_set_spriteslimit (int limit) {
*/
VIDEO_UPDATE( tms9928a )
{
- INT32 BackColour = tms.Regs[7] & 15; if (!BackColour) BackColour=1;
- palette_set_color(screen->machine, 0, TMS9928A_palette[BackColour]);
+ INT32 BackColour = tms.Regs[7] & 15;
+ rgb_t oldcolor = palette_get_color(screen->machine, 0);
+
+ if (!BackColour) BackColour=1;
+ /* note we preserve the alpha here; this is so that it can be controlled independently */
+ /* see cliffhgr.c for an example */
+ palette_set_color(screen->machine, 0, (TMS9928A_palette[BackColour] & MAKE_ARGB(0,255,255,255)) | (oldcolor & MAKE_ARGB(255,0,0,0)));
if (! (tms.Regs[1] & 0x40))
fillbitmap(bitmap, screen->machine->pens[BackColour], cliprect);