summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/mrgame.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/mrgame.cpp')
-rw-r--r--src/mame/drivers/mrgame.cpp42
1 files changed, 22 insertions, 20 deletions
diff --git a/src/mame/drivers/mrgame.cpp b/src/mame/drivers/mrgame.cpp
index 8a358f08e40..e966ad5c383 100644
--- a/src/mame/drivers/mrgame.cpp
+++ b/src/mame/drivers/mrgame.cpp
@@ -72,8 +72,12 @@ public:
void init_mrgame();
+protected:
+ virtual void machine_start() override;
+ virtual void machine_reset() override;
+
private:
- DECLARE_PALETTE_INIT(mrgame);
+ void mrgame_palette(palette_device &palette) const;
DECLARE_WRITE8_MEMBER(ack1_w);
DECLARE_WRITE8_MEMBER(ack2_w);
DECLARE_WRITE8_MEMBER(portb_w);
@@ -105,9 +109,6 @@ private:
void video_map(address_map &map);
void wcup90_video_map(address_map &map);
- virtual void machine_start() override;
- virtual void machine_reset() override;
-
std::unique_ptr<bitmap_ind16> m_tile_bitmap;
required_device<palette_device> m_palette;
required_shared_ptr<uint8_t> m_p_videoram;
@@ -446,41 +447,42 @@ static GFXDECODE_START(gfx_mrgame)
GFXDECODE_ENTRY("chargen", 0, spritelayout, 0, 16)
GFXDECODE_END
-PALETTE_INIT_MEMBER(mrgame_state, mrgame)
+void mrgame_state::mrgame_palette(palette_device &palette) const
{
- static const int resistances[3] = { 1000, 470, 220 };
- double rweights[3], gweights[3], bweights[2];
- uint8_t i, bit0, bit1, bit2, r, g, b;
- const uint8_t *color_prom = machine().root_device().memregion("proms")->base();
+ static constexpr int resistances[3] = { 1000, 470, 220 };
+ uint8_t const *const color_prom = machine().root_device().memregion("proms")->base();
- /* compute the color output resistor weights */
+ // compute the color output resistor weights
+ double rweights[3], gweights[3], bweights[2];
compute_resistor_weights(0, 255, -1.0,
3, &resistances[0], rweights, 0, 0,
3, &resistances[0], gweights, 0, 0,
2, &resistances[1], bweights, 0, 0);
- /* create a lookup table for the palette */
- for (i = 0; i < 32; i++)
+ // create a lookup table for the palette
+ for (uint8_t i = 0; i < 32; i++)
{
- /* red component */
+ uint8_t bit0, bit1, bit2;
+
+ // red component
bit0 = BIT(color_prom[i], 0);
bit1 = BIT(color_prom[i], 1);
bit2 = BIT(color_prom[i], 2);
- r = combine_3_weights(rweights, bit0, bit1, bit2);
+ uint8_t const r = combine_3_weights(rweights, bit0, bit1, bit2);
- /* green component */
+ // green component
bit0 = BIT(color_prom[i], 3);
bit1 = BIT(color_prom[i], 4);
bit2 = BIT(color_prom[i], 5);
- g = combine_3_weights(gweights, bit0, bit1, bit2);
+ uint8_t const g = combine_3_weights(gweights, bit0, bit1, bit2);
- /* blue component */
+ // blue component
bit0 = BIT(color_prom[i], 6);
bit1 = BIT(color_prom[i], 7);
- b = combine_2_weights(bweights, bit0, bit1);
+ uint8_t const b = combine_2_weights(bweights, bit0, bit1);
palette.set_pen_color(i, rgb_t(r, g, b));
- palette.set_pen_color(i+32, rgb_t(r, g, b));
+ palette.set_pen_color(i + 32, rgb_t(r, g, b));
}
}
@@ -572,7 +574,7 @@ void mrgame_state::mrgame(machine_config &config)
screen.set_palette(m_palette);
screen.screen_vblank().set(FUNC(mrgame_state::vblank_nmi_w));
- PALETTE(config, m_palette, 64).set_init(FUNC(mrgame_state::palette_init_mrgame));
+ PALETTE(config, m_palette, FUNC(mrgame_state::mrgame_palette), 64);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_mrgame);