diff options
author | Dirk Best <mail@dirk-best.de> | 2015-08-12 16:17:06 +0200 |
---|---|---|
committer | Dirk Best <mail@dirk-best.de> | 2015-08-12 16:17:06 +0200 |
commit | ce9f2df3629f53519f22d2ef50de811bb87e5a83 (patch) | |
tree | ff7652931ad2009b5e5dabe866ce2b81eb390205 /src/mame/video/system1.c | |
parent | 2e015eca33411e6b25c3431130bad66030ddadc0 (diff) |
system1: use standard palette device ram
Diffstat (limited to 'src/mame/video/system1.c')
-rw-r--r-- | src/mame/video/system1.c | 47 |
1 files changed, 14 insertions, 33 deletions
diff --git a/src/mame/video/system1.c b/src/mame/video/system1.c index 07e040dc8d4..b43c8020664 100644 --- a/src/mame/video/system1.c +++ b/src/mame/video/system1.c @@ -292,9 +292,6 @@ WRITE8_MEMBER(system1_state::system1_videoram_bank_w) WRITE8_MEMBER(system1_state::system1_paletteram_w) { - const UINT8 *color_prom = memregion("palette")->base(); - int val,r,g,b; - /* There are two kind of color handling: in the System 1 games, values in the palette RAM are directly mapped to colors with the usual BBGGGRRR format; @@ -316,41 +313,25 @@ WRITE8_MEMBER(system1_state::system1_paletteram_w) accurate to +/- .003K ohms. */ - m_generic_paletteram_8[offset] = data; - - if (color_prom != NULL) + if (m_color_prom != NULL) { - int bit0,bit1,bit2,bit3; - - val = color_prom[data+0*256]; - bit0 = (val >> 0) & 0x01; - bit1 = (val >> 1) & 0x01; - bit2 = (val >> 2) & 0x01; - bit3 = (val >> 3) & 0x01; - r = 0x0e * bit0 + 0x1f * bit1 + 0x43 * bit2 + 0x8f * bit3; - - val = color_prom[data+1*256]; - bit0 = (val >> 0) & 0x01; - bit1 = (val >> 1) & 0x01; - bit2 = (val >> 2) & 0x01; - bit3 = (val >> 3) & 0x01; - g = 0x0e * bit0 + 0x1f * bit1 + 0x43 * bit2 + 0x8f * bit3; - - val = color_prom[data+2*256]; - bit0 = (val >> 0) & 0x01; - bit1 = (val >> 1) & 0x01; - bit2 = (val >> 2) & 0x01; - bit3 = (val >> 3) & 0x01; - b = 0x0e * bit0 + 0x1f * bit1 + 0x43 * bit2 + 0x8f * bit3; + UINT8 val; + + val = m_color_prom[data + 0 * 256]; + UINT8 r = 0x0e * BIT(val, 0) + 0x1f * BIT(val, 1) + 0x43 * BIT(val, 2) + 0x8f * BIT(val, 3); + + val = m_color_prom[data + 1 * 256]; + UINT8 g = 0x0e * BIT(val, 0) + 0x1f * BIT(val, 1) + 0x43 * BIT(val, 2) + 0x8f * BIT(val, 3); + + val = m_color_prom[data + 2 * 256]; + UINT8 b = 0x0e * BIT(val, 0) + 0x1f * BIT(val, 1) + 0x43 * BIT(val, 2) + 0x8f * BIT(val, 3); + + m_palette->set_pen_color(offset, rgb_t(r, g, b)); } else { - r = pal3bit(data >> 0); - g = pal3bit(data >> 3); - b = pal2bit(data >> 6); + m_palette->write(space, offset, data); } - - m_palette->set_pen_color(offset,rgb_t(r,g,b)); } |