diff options
| author | 2015-07-30 18:26:18 +0200 | |
|---|---|---|
| committer | 2015-07-30 18:26:46 +0200 | |
| commit | 29cbed88e3274b5dd641773fa86271dd4936d374 (patch) | |
| tree | fd0a4177d10211316bfe7dbaa63a0e02029948f3 | |
| parent | 8549f2ae5d2978b31ec265b98249694d8256c3be (diff) | |
8080bw: use standard 3-bit palettes where applicable, clean up palette
handling
| -rw-r--r-- | src/mame/drivers/8080bw.c | 29 | ||||
| -rw-r--r-- | src/mame/includes/8080bw.h | 10 | ||||
| -rw-r--r-- | src/mame/video/8080bw.c | 214 |
3 files changed, 93 insertions, 160 deletions
diff --git a/src/mame/drivers/8080bw.c b/src/mame/drivers/8080bw.c index 31bac5abeee..d2d04b0dd39 100644 --- a/src/mame/drivers/8080bw.c +++ b/src/mame/drivers/8080bw.c @@ -421,6 +421,8 @@ static MACHINE_CONFIG_DERIVED_CLASS( invadpt2, mw8080bw_root, _8080bw_state ) MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_UPDATE_DRIVER(_8080bw_state, screen_update_invadpt2) + MCFG_PALETTE_ADD_3BIT_RBG("palette") + /* sound hardware */ MCFG_FRAGMENT_ADD(invaders_samples_audio) MACHINE_CONFIG_END @@ -623,6 +625,8 @@ static MACHINE_CONFIG_DERIVED_CLASS( cosmo, mw8080bw_root, _8080bw_state ) MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_UPDATE_DRIVER(_8080bw_state, screen_update_cosmo) + MCFG_PALETTE_ADD_3BIT_RGB("palette") + /* sound hardware */ MCFG_FRAGMENT_ADD(invaders_samples_audio) MACHINE_CONFIG_END @@ -893,6 +897,8 @@ static MACHINE_CONFIG_DERIVED_CLASS( invrvnge, mw8080bw_root, _8080bw_state ) MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_UPDATE_DRIVER(_8080bw_state, screen_update_invadpt2) + MCFG_PALETTE_ADD_3BIT_RBG("palette") + /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -1056,6 +1062,8 @@ static MACHINE_CONFIG_DERIVED_CLASS( lrescue, mw8080bw_root, _8080bw_state ) MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_UPDATE_DRIVER(_8080bw_state, screen_update_invadpt2) + MCFG_PALETTE_ADD_3BIT_RBG("palette") + /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -1385,6 +1393,8 @@ static MACHINE_CONFIG_DERIVED_CLASS( schaser, mw8080bw_root, _8080bw_state ) MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_UPDATE_DRIVER(_8080bw_state, screen_update_schaser) + MCFG_PALETTE_ADD_3BIT_RBG("palette") + /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -1490,6 +1500,8 @@ static MACHINE_CONFIG_DERIVED_CLASS( schasercv, mw8080bw_root, _8080bw_state ) MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_UPDATE_DRIVER(_8080bw_state, screen_update_schasercv) + MCFG_PALETTE_ADD_3BIT_RBG("palette") + /* sound hardware */ MCFG_FRAGMENT_ADD(invaders_samples_audio) @@ -1570,6 +1582,9 @@ static MACHINE_CONFIG_DERIVED_CLASS( sflush, mw8080bw_root, _8080bw_state ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_UPDATE_DRIVER(_8080bw_state, screen_update_sflush) + + MCFG_PALETTE_ADD("palette", 8) + MCFG_PALETTE_INIT_OWNER(_8080bw_state, sflush) MACHINE_CONFIG_END @@ -1670,6 +1685,8 @@ static MACHINE_CONFIG_DERIVED_CLASS( lupin3, mw8080bw_root, _8080bw_state ) MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_UPDATE_DRIVER(_8080bw_state, screen_update_indianbt) + MCFG_PALETTE_ADD_3BIT_RGB("palette") + /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -1714,6 +1731,8 @@ static MACHINE_CONFIG_DERIVED_CLASS( lupin3a, mw8080bw_root, _8080bw_state ) MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_UPDATE_DRIVER(_8080bw_state, screen_update_lupin3) + MCFG_PALETTE_ADD_3BIT_RBG("palette") + /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -1865,6 +1884,8 @@ static MACHINE_CONFIG_DERIVED_CLASS( polaris, mw8080bw_root, _8080bw_state ) MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_UPDATE_DRIVER(_8080bw_state, screen_update_polaris) + MCFG_PALETTE_ADD_3BIT_RBG("palette") + /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -1989,6 +2010,8 @@ static MACHINE_CONFIG_DERIVED_CLASS( ballbomb, mw8080bw_root, _8080bw_state ) MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_UPDATE_DRIVER(_8080bw_state, screen_update_ballbomb) + MCFG_PALETTE_ADD_3BIT_RBG("palette") + /* sound hardware */ MCFG_FRAGMENT_ADD(invaders_samples_audio) @@ -2230,6 +2253,8 @@ static MACHINE_CONFIG_DERIVED_CLASS( indianbt, mw8080bw_root, _8080bw_state ) MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_UPDATE_DRIVER(_8080bw_state, screen_update_indianbt) + MCFG_PALETTE_ADD_3BIT_RGB("palette") + /* sound hardware */ MCFG_FRAGMENT_ADD(invaders_samples_audio) @@ -2253,6 +2278,8 @@ static MACHINE_CONFIG_DERIVED_CLASS( indianbtbr, mw8080bw_root, _8080bw_state ) MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_UPDATE_DRIVER(_8080bw_state, screen_update_indianbt) + MCFG_PALETTE_ADD_3BIT_RGB("palette") + /* sound hardware */ MCFG_FRAGMENT_ADD(invaders_samples_audio) MACHINE_CONFIG_END @@ -2324,6 +2351,8 @@ static MACHINE_CONFIG_DERIVED_CLASS( steelwkr, mw8080bw_root, _8080bw_state ) MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_UPDATE_DRIVER(_8080bw_state, screen_update_invadpt2) + MCFG_PALETTE_ADD_3BIT_RBG("palette") + /* sound hardware */ MCFG_FRAGMENT_ADD(invaders_samples_audio) MACHINE_CONFIG_END diff --git a/src/mame/includes/8080bw.h b/src/mame/includes/8080bw.h index 2c8da3f42ea..8dcbdef4fb4 100644 --- a/src/mame/includes/8080bw.h +++ b/src/mame/includes/8080bw.h @@ -127,6 +127,7 @@ public: DECLARE_MACHINE_START(claybust); DECLARE_PALETTE_INIT(rollingc); + DECLARE_PALETTE_INIT(sflush); UINT32 screen_update_invadpt2(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); UINT32 screen_update_cosmo(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); @@ -150,12 +151,9 @@ public: DECLARE_WRITE8_MEMBER(polaris_sh_port_3_w); void schaser_reinit_555_time_remain(); - void invadpt2_get_pens( pen_t *pens ); - void sflush_get_pens( pen_t *pens ); - void cosmo_get_pens( pen_t *pens ); - inline void set_pixel( bitmap_rgb32 &bitmap, UINT8 y, UINT8 x, const pen_t *pens, UINT8 color ); - inline void set_8_pixels( bitmap_rgb32 &bitmap, UINT8 y, UINT8 x, UINT8 data, const pen_t *pens, UINT8 fore_color, UINT8 back_color ); - void clear_extra_columns( bitmap_rgb32 &bitmap, const pen_t *pens, UINT8 color ); + inline void set_pixel( bitmap_rgb32 &bitmap, UINT8 y, UINT8 x, int color ); + inline void set_8_pixels( bitmap_rgb32 &bitmap, UINT8 y, UINT8 x, UINT8 data, int fore_color, int back_color ); + void clear_extra_columns( bitmap_rgb32 &bitmap, int color ); void invmulti_bankswitch_restore(); }; diff --git a/src/mame/video/8080bw.c b/src/mame/video/8080bw.c index d5779ed8828..8578031b743 100644 --- a/src/mame/video/8080bw.c +++ b/src/mame/video/8080bw.c @@ -12,9 +12,6 @@ #include "includes/8080bw.h" -#define NUM_PENS (8) - - MACHINE_START_MEMBER(_8080bw_state,extra_8080bw_vh) { save_item(NAME(m_flip_screen)); @@ -44,60 +41,35 @@ PALETTE_INIT_MEMBER(_8080bw_state,rollingc) } -void _8080bw_state::invadpt2_get_pens( pen_t *pens ) +PALETTE_INIT_MEMBER( _8080bw_state, sflush ) { - offs_t i; + // standard 3-bit rbg palette + palette.palette_init_3bit_rbg(palette); - for (i = 0; i < NUM_PENS; i++) - { - pens[i] = rgb_t(pal1bit(i >> 0), pal1bit(i >> 2), pal1bit(i >> 1)); - } + // but background color is bright blue + palette.set_pen_color(0, 0x80, 0x80, 0xff); } -void _8080bw_state::sflush_get_pens( pen_t *pens ) -{ - offs_t i; - - pens[0] = rgb_t(0x80, 0x80, 0xff); - - for (i = 1; i < NUM_PENS; i++) - { - pens[i] = rgb_t(pal1bit(i >> 0), pal1bit(i >> 2), pal1bit(i >> 1)); - } -} - - -void _8080bw_state::cosmo_get_pens( pen_t *pens ) -{ - offs_t i; - - for (i = 0; i < NUM_PENS; i++) - { - pens[i] = rgb_t(pal1bit(i >> 0), pal1bit(i >> 1), pal1bit(i >> 2)); - } -} - - -inline void _8080bw_state::set_pixel( bitmap_rgb32 &bitmap, UINT8 y, UINT8 x, const pen_t *pens, UINT8 color ) +inline void _8080bw_state::set_pixel( bitmap_rgb32 &bitmap, UINT8 y, UINT8 x, int color ) { if (y >= MW8080BW_VCOUNTER_START_NO_VBLANK) { if (m_flip_screen) - bitmap.pix32(MW8080BW_VBSTART - 1 - (y - MW8080BW_VCOUNTER_START_NO_VBLANK), MW8080BW_HPIXCOUNT - 1 - x) = pens[color]; + bitmap.pix32(MW8080BW_VBSTART - 1 - (y - MW8080BW_VCOUNTER_START_NO_VBLANK), MW8080BW_HPIXCOUNT - 1 - x) = color; else - bitmap.pix32(y - MW8080BW_VCOUNTER_START_NO_VBLANK, x) = pens[color]; + bitmap.pix32(y - MW8080BW_VCOUNTER_START_NO_VBLANK, x) = m_palette->pen_color(color); } } -inline void _8080bw_state::set_8_pixels( bitmap_rgb32 &bitmap, UINT8 y, UINT8 x, UINT8 data, const pen_t *pens, UINT8 fore_color, UINT8 back_color ) +inline void _8080bw_state::set_8_pixels( bitmap_rgb32 &bitmap, UINT8 y, UINT8 x, UINT8 data, int fore_color, int back_color ) { int i; for (i = 0; i < 8; i++) { - set_pixel(bitmap, y, x, pens, (data & 0x01) ? fore_color : back_color); + set_pixel(bitmap, y, x, (data & 0x01) ? fore_color : back_color); x = x + 1; data = data >> 1; @@ -106,7 +78,7 @@ inline void _8080bw_state::set_8_pixels( bitmap_rgb32 &bitmap, UINT8 y, UINT8 x, /* this is needed as this driver doesn't emulate the shift register like mw8080bw does */ -void _8080bw_state::clear_extra_columns( bitmap_rgb32 &bitmap, const pen_t *pens, UINT8 color ) +void _8080bw_state::clear_extra_columns( bitmap_rgb32 &bitmap, int color ) { UINT8 x; @@ -117,9 +89,9 @@ void _8080bw_state::clear_extra_columns( bitmap_rgb32 &bitmap, const pen_t *pens for (y = MW8080BW_VCOUNTER_START_NO_VBLANK; y != 0; y++) { if (m_flip_screen) - bitmap.pix32(MW8080BW_VBSTART - 1 - (y - MW8080BW_VCOUNTER_START_NO_VBLANK), MW8080BW_HPIXCOUNT - 1 - (256 + x)) = pens[color]; + bitmap.pix32(MW8080BW_VBSTART - 1 - (y - MW8080BW_VCOUNTER_START_NO_VBLANK), MW8080BW_HPIXCOUNT - 1 - (256 + x)) = m_palette->pen_color(color); else - bitmap.pix32(y - MW8080BW_VCOUNTER_START_NO_VBLANK, 256 + x) = pens[color]; + bitmap.pix32(y - MW8080BW_VCOUNTER_START_NO_VBLANK, 256 + x) = m_palette->pen_color(color); } } } @@ -127,17 +99,10 @@ void _8080bw_state::clear_extra_columns( bitmap_rgb32 &bitmap, const pen_t *pens UINT32 _8080bw_state::screen_update_invadpt2(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - pen_t pens[NUM_PENS]; - offs_t offs; - UINT8 *prom; - UINT8 *color_map_base; - - invadpt2_get_pens(pens); - - prom = memregion("proms")->base(); - color_map_base = m_color_map ? &prom[0x0400] : &prom[0x0000]; + UINT8 *prom = memregion("proms")->base(); + UINT8 *color_map_base = m_color_map ? &prom[0x0400] : &prom[0x0000]; - for (offs = 0; offs < m_main_ram.bytes(); offs++) + for (offs_t offs = 0; offs < m_main_ram.bytes(); offs++) { UINT8 y = offs >> 5; UINT8 x = offs << 3; @@ -147,10 +112,10 @@ UINT32 _8080bw_state::screen_update_invadpt2(screen_device &screen, bitmap_rgb32 UINT8 data = m_main_ram[offs]; UINT8 fore_color = m_screen_red ? 1 : color_map_base[color_address] & 0x07; - set_8_pixels(bitmap, y, x, data, pens, fore_color, 0); + set_8_pixels(bitmap, y, x, data, fore_color, 0); } - clear_extra_columns(bitmap, pens, 0); + clear_extra_columns(bitmap, 0); return 0; } @@ -158,17 +123,10 @@ UINT32 _8080bw_state::screen_update_invadpt2(screen_device &screen, bitmap_rgb32 UINT32 _8080bw_state::screen_update_ballbomb(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - pen_t pens[NUM_PENS]; - offs_t offs; - UINT8 *color_map_base; - UINT8 *prom; + UINT8 *prom = memregion("proms")->base(); + UINT8 *color_map_base = m_color_map ? &prom[0x0400] : &prom[0x0000]; - invadpt2_get_pens(pens); - - prom = memregion("proms")->base(); - color_map_base = m_color_map ? &prom[0x0400] : &prom[0x0000]; - - for (offs = 0; offs < m_main_ram.bytes(); offs++) + for (offs_t offs = 0; offs < m_main_ram.bytes(); offs++) { UINT8 y = offs >> 5; UINT8 x = offs << 3; @@ -179,10 +137,10 @@ UINT32 _8080bw_state::screen_update_ballbomb(screen_device &screen, bitmap_rgb32 UINT8 fore_color = m_screen_red ? 1 : color_map_base[color_address] & 0x07; /* blue background */ - set_8_pixels(bitmap, y, x, data, pens, fore_color, 2); + set_8_pixels(bitmap, y, x, data, fore_color, 2); } - clear_extra_columns(bitmap, pens, 2); + clear_extra_columns(bitmap, 2); return 0; } @@ -190,15 +148,9 @@ UINT32 _8080bw_state::screen_update_ballbomb(screen_device &screen, bitmap_rgb32 UINT32 _8080bw_state::screen_update_schaser(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - pen_t pens[NUM_PENS]; - offs_t offs; - UINT8 *background_map_base; - - invadpt2_get_pens(pens); + UINT8 *background_map_base = memregion("proms")->base(); - background_map_base = memregion("proms")->base(); - - for (offs = 0; offs < m_main_ram.bytes(); offs++) + for (offs_t offs = 0; offs < m_main_ram.bytes(); offs++) { UINT8 back_color = 0; @@ -219,10 +171,10 @@ UINT32 _8080bw_state::screen_update_schaser(screen_device &screen, bitmap_rgb32 back_color = (((back_data & 0x0c) == 0x0c) && m_schaser_background_select) ? 4 : 2; } - set_8_pixels(bitmap, y, x, data, pens, fore_color, back_color); + set_8_pixels(bitmap, y, x, data, fore_color, back_color); } - clear_extra_columns(bitmap, pens, m_schaser_background_disable ? 0 : 2); + clear_extra_columns(bitmap, m_schaser_background_disable ? 0 : 2); return 0; } @@ -230,12 +182,7 @@ UINT32 _8080bw_state::screen_update_schaser(screen_device &screen, bitmap_rgb32 UINT32 _8080bw_state::screen_update_schasercv(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - pen_t pens[NUM_PENS]; - offs_t offs; - - invadpt2_get_pens(pens); - - for (offs = 0; offs < m_main_ram.bytes(); offs++) + for (offs_t offs = 0; offs < m_main_ram.bytes(); offs++) { UINT8 y = offs >> 5; UINT8 x = offs << 3; @@ -244,10 +191,10 @@ UINT32 _8080bw_state::screen_update_schasercv(screen_device &screen, bitmap_rgb3 UINT8 fore_color = m_colorram[offs & 0x1f9f] & 0x07; /* blue background */ - set_8_pixels(bitmap, y, x, data, pens, fore_color, 2); + set_8_pixels(bitmap, y, x, data, fore_color, 2); } - clear_extra_columns(bitmap, pens, 2); + clear_extra_columns(bitmap, 2); return 0; } @@ -255,9 +202,7 @@ UINT32 _8080bw_state::screen_update_schasercv(screen_device &screen, bitmap_rgb3 UINT32 _8080bw_state::screen_update_rollingc(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - offs_t offs; - - for (offs = 0; offs < m_main_ram.bytes(); offs++) + for (offs_t offs = 0; offs < m_main_ram.bytes(); offs++) { UINT8 y = offs >> 5; UINT8 x = offs << 3; @@ -266,10 +211,10 @@ UINT32 _8080bw_state::screen_update_rollingc(screen_device &screen, bitmap_rgb32 UINT8 fore_color = m_colorram[offs & 0x1f1f] & 0x0f; UINT8 back_color = m_colorram2[offs & 0x1f1f] & 0x0f; - set_8_pixels(bitmap, y, x, data, m_palette->pens(), fore_color, back_color); + set_8_pixels(bitmap, y, x, data, fore_color, back_color); } - clear_extra_columns(bitmap, m_palette->pens(), 0); + clear_extra_columns(bitmap, 0); return 0; } @@ -277,17 +222,10 @@ UINT32 _8080bw_state::screen_update_rollingc(screen_device &screen, bitmap_rgb32 UINT32 _8080bw_state::screen_update_polaris(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - pen_t pens[NUM_PENS]; - offs_t offs; - UINT8 *color_map_base; - UINT8 *cloud_gfx; - - invadpt2_get_pens(pens); - - color_map_base = memregion("proms")->base(); - cloud_gfx = memregion("user1")->base(); + UINT8 *color_map_base = memregion("proms")->base(); + UINT8 *cloud_gfx = memregion("user1")->base(); - for (offs = 0; offs < m_main_ram.bytes(); offs++) + for (offs_t offs = 0; offs < m_main_ram.bytes(); offs++) { UINT8 y = offs >> 5; UINT8 x = offs << 3; @@ -309,7 +247,7 @@ UINT32 _8080bw_state::screen_update_polaris(screen_device &screen, bitmap_rgb32 if ((color_map_base[color_address] & 0x08) || (cloud_y >= 64)) { - set_8_pixels(bitmap, y, x, data, pens, fore_color, back_color); + set_8_pixels(bitmap, y, x, data, fore_color, back_color); } else { @@ -332,7 +270,7 @@ UINT32 _8080bw_state::screen_update_polaris(screen_device &screen, bitmap_rgb32 color = (cloud_gfx[cloud_gfx_offs] & bit) ? 7 : back_color; } - set_pixel(bitmap, y, x, pens, color); + set_pixel(bitmap, y, x, color); x = x + 1; data = data >> 1; @@ -340,7 +278,7 @@ UINT32 _8080bw_state::screen_update_polaris(screen_device &screen, bitmap_rgb32 } } - clear_extra_columns(bitmap, pens, 6); + clear_extra_columns(bitmap, 6); return 0; } @@ -348,12 +286,7 @@ UINT32 _8080bw_state::screen_update_polaris(screen_device &screen, bitmap_rgb32 UINT32 _8080bw_state::screen_update_lupin3(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - pen_t pens[NUM_PENS]; - offs_t offs; - - invadpt2_get_pens(pens); - - for (offs = 0; offs < m_main_ram.bytes(); offs++) + for (offs_t offs = 0; offs < m_main_ram.bytes(); offs++) { UINT8 y = offs >> 5; UINT8 x = offs << 3; @@ -361,10 +294,10 @@ UINT32 _8080bw_state::screen_update_lupin3(screen_device &screen, bitmap_rgb32 & UINT8 data = m_main_ram[offs]; UINT8 fore_color = ~m_colorram[offs & 0x1f9f] & 0x07; - set_8_pixels(bitmap, y, x, data, pens, fore_color, 0); + set_8_pixels(bitmap, y, x, data, fore_color, 0); } - clear_extra_columns(bitmap, pens, 0); + clear_extra_columns(bitmap, 0); return 0; } @@ -372,12 +305,7 @@ UINT32 _8080bw_state::screen_update_lupin3(screen_device &screen, bitmap_rgb32 & UINT32 _8080bw_state::screen_update_cosmo(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - pen_t pens[NUM_PENS]; - offs_t offs; - - cosmo_get_pens(pens); - - for (offs = 0; offs < m_main_ram.bytes(); offs++) + for (offs_t offs = 0; offs < m_main_ram.bytes(); offs++) { UINT8 y = offs >> 5; UINT8 x = offs << 3; @@ -387,10 +315,10 @@ UINT32 _8080bw_state::screen_update_cosmo(screen_device &screen, bitmap_rgb32 &b UINT8 data = m_main_ram[offs]; UINT8 fore_color = m_colorram[color_address] & 0x07; - set_8_pixels(bitmap, y, x, data, pens, fore_color, 0); + set_8_pixels(bitmap, y, x, data, fore_color, 0); } - clear_extra_columns(bitmap, pens, 0); + clear_extra_columns(bitmap, 0); return 0; } @@ -398,17 +326,10 @@ UINT32 _8080bw_state::screen_update_cosmo(screen_device &screen, bitmap_rgb32 &b UINT32 _8080bw_state::screen_update_indianbt(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - pen_t pens[NUM_PENS]; - offs_t offs; - UINT8 *color_map_base; - UINT8 *prom; - - cosmo_get_pens(pens); + UINT8 *prom = memregion("proms")->base(); + UINT8 *color_map_base = m_color_map ? &prom[0x0400] : &prom[0x0000]; - prom = memregion("proms")->base(); - color_map_base = m_color_map ? &prom[0x0400] : &prom[0x0000]; - - for (offs = 0; offs < m_main_ram.bytes(); offs++) + for (offs_t offs = 0; offs < m_main_ram.bytes(); offs++) { UINT8 y = offs >> 5; UINT8 x = offs << 3; @@ -418,10 +339,10 @@ UINT32 _8080bw_state::screen_update_indianbt(screen_device &screen, bitmap_rgb32 UINT8 data = m_main_ram[offs]; UINT8 fore_color = color_map_base[color_address] & 0x07; - set_8_pixels(bitmap, y, x, data, pens, fore_color, 0); + set_8_pixels(bitmap, y, x, data, fore_color, 0); } - clear_extra_columns(bitmap, pens, 0); + clear_extra_columns(bitmap, 0); return 0; } @@ -429,12 +350,7 @@ UINT32 _8080bw_state::screen_update_indianbt(screen_device &screen, bitmap_rgb32 UINT32 _8080bw_state::screen_update_sflush(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - pen_t pens[NUM_PENS]; - offs_t offs; - - sflush_get_pens(pens); - - for (offs = 0; offs < m_main_ram.bytes(); offs++) + for (offs_t offs = 0; offs < m_main_ram.bytes(); offs++) { UINT8 y = offs >> 5; UINT8 x = offs << 3; @@ -442,10 +358,10 @@ UINT32 _8080bw_state::screen_update_sflush(screen_device &screen, bitmap_rgb32 & UINT8 data = m_main_ram[offs]; UINT8 fore_color = m_colorram[offs & 0x1f9f] & 0x07; - set_8_pixels(bitmap, y, x, data, pens, fore_color, 0); + set_8_pixels(bitmap, y, x, data, fore_color, 0); } - clear_extra_columns(bitmap, pens, 0); + clear_extra_columns(bitmap, 0); return 0; } @@ -453,24 +369,19 @@ UINT32 _8080bw_state::screen_update_sflush(screen_device &screen, bitmap_rgb32 & UINT32 _8080bw_state::screen_update_shuttlei(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - pen_t pens[2] = { rgb_t::black, rgb_t::white }; - offs_t offs; - - for (offs = 0; offs < m_main_ram.bytes(); offs++) + for (offs_t offs = 0; offs < m_main_ram.bytes(); offs++) { - int i; - UINT8 y = offs >> 5; UINT8 x = offs << 3; UINT8 data = m_main_ram[offs]; - for (i = 0; i < 8; i++) + for (int i = 0; i < 8; i++) { if (m_flip_screen) - bitmap.pix32(191-y, 255-(x|i)) = pens[BIT(data, 7)]; + bitmap.pix32(191-y, 255-(x|i)) = BIT(data, 7) ? rgb_t::white : rgb_t::black; else - bitmap.pix32(y, x|i) = pens[BIT(data, 7)]; + bitmap.pix32(y, x|i) = BIT(data, 7) ? rgb_t::white : rgb_t::black; data <<= 1; } } @@ -481,22 +392,17 @@ UINT32 _8080bw_state::screen_update_shuttlei(screen_device &screen, bitmap_rgb32 UINT32 _8080bw_state::screen_update_spacecom(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - pen_t pens[2] = { rgb_t::black, rgb_t::white }; - offs_t offs; - - for (offs = 0; offs < 0x1c00; offs++) + for (offs_t offs = 0; offs < 0x1c00; offs++) { - int i; - UINT8 y = offs >> 5; UINT8 x = offs << 3; UINT8 flipx = m_flip_screen ? 7 : 0; UINT8 data = m_main_ram[offs+0x400]; - for (i = 0; i < 8; i++) + for (int i = 0; i < 8; i++) { - bitmap.pix32(y, x | (i^flipx)) = pens[data & 1]; + bitmap.pix32(y, x | (i^flipx)) = BIT(data, 0) ? rgb_t::white : rgb_t::black; data >>= 1; } } |
