summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/samcoupe.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/samcoupe.cpp')
-rw-r--r--src/mame/drivers/samcoupe.cpp18
1 files changed, 6 insertions, 12 deletions
diff --git a/src/mame/drivers/samcoupe.cpp b/src/mame/drivers/samcoupe.cpp
index 372a6d4dde9..516f431c12a 100644
--- a/src/mame/drivers/samcoupe.cpp
+++ b/src/mame/drivers/samcoupe.cpp
@@ -472,22 +472,16 @@ INPUT_PORTS_END
nothing G+4 R+4 B+4 ALL+1 G+2 R+2 B+2
*/
-PALETTE_INIT_MEMBER(samcoupe_state, samcoupe)
+void samcoupe_state::samcoupe_palette(palette_device &palette) const
{
for (int i = 0; i < 128; i++)
{
- uint8_t b = BIT(i, 0) * 2 + BIT(i, 4) * 4 + BIT(i, 3);
- uint8_t r = BIT(i, 1) * 2 + BIT(i, 5) * 4 + BIT(i, 3);
- uint8_t g = BIT(i, 2) * 2 + BIT(i, 6) * 4 + BIT(i, 3);
+ uint8_t const b = bitswap<3>(i, 4, 0, 3);
+ uint8_t const r = bitswap<3>(i, 5, 1, 3);
+ uint8_t const g = bitswap<3>(i, 6, 2, 3);
- r <<= 5;
- g <<= 5;
- b <<= 5;
-
- palette.set_pen_color(i, rgb_t(r, g, b));
+ palette.set_pen_color(i, pal3bit(r), pal3bit(g), pal3bit(b));
}
-
- palette.palette()->normalize_range(0, 127);
}
@@ -519,7 +513,7 @@ void samcoupe_state::samcoupe(machine_config &config)
m_screen->set_screen_update(FUNC(samcoupe_state::screen_update));
m_screen->set_palette("palette");
- PALETTE(config, "palette", 128).set_init(FUNC(samcoupe_state::palette_init_samcoupe));
+ PALETTE(config, "palette", FUNC(samcoupe_state::samcoupe_palette), 128);
/* devices */
CENTRONICS(config, m_lpt1, centronics_devices, "printer");