summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/svision.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/svision.cpp')
-rw-r--r--src/mame/drivers/svision.cpp83
1 files changed, 38 insertions, 45 deletions
diff --git a/src/mame/drivers/svision.cpp b/src/mame/drivers/svision.cpp
index f1a0f0472c7..f58246bd9b0 100644
--- a/src/mame/drivers/svision.cpp
+++ b/src/mame/drivers/svision.cpp
@@ -301,62 +301,56 @@ static INPUT_PORTS_START( svisions )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START) PORT_NAME("2nd Start/Pause") PORT_PLAYER(2)
INPUT_PORTS_END
-/* most games contain their graphics in roms, and have hardware to
- draw complete rectangular objects */
+// most games contain their graphics in roms, and have hardware to draw complete rectangular objects
-/* palette in red, green, blue triples */
-static const unsigned char svision_palette[] =
+// palette in red, green, blue triples
+static constexpr rgb_t svision_pens[] =
{
#if 0
- /* greens grabbed from a scan of a handheld
- * in its best adjustment for contrast
- */
- 86, 121, 86,
- 81, 115, 90,
- 74, 107, 101,
- 54, 78, 85
+ // greens grabbed from a scan of a handheld in its best adjustment for contrast
+ { 86, 121, 86 },
+ { 81, 115, 90 },
+ { 74, 107, 101 },
+ { 54, 78, 85 }
#else
- /* grabbed from chris covell's black white pics */
- 0xe0, 0xe0, 0xe0,
- 0xb9, 0xb9, 0xb9,
- 0x54, 0x54, 0x54,
- 0x12, 0x12, 0x12
+ // grabbed from chris covell's black white pics
+ { 0xe0, 0xe0, 0xe0 },
+ { 0xb9, 0xb9, 0xb9 },
+ { 0x54, 0x54, 0x54 },
+ { 0x12, 0x12, 0x12 }
#endif
};
-/* palette in RGB triplets */
-static const unsigned char svisionp_palette[] =
+// palette in RGB triplets
+static constexpr rgb_t svisionp_pens[] =
{
// pal
- 1, 1, 3,
- 5, 18, 9,
- 48, 76, 100,
- 190, 190, 190
+ { 1, 1, 3 },
+ { 5, 18, 9 },
+ { 48, 76, 100 },
+ { 190, 190, 190 }
};
-/* palette in RGB triplets */
-static const unsigned char svisionn_palette[] =
+// palette in RGB triplets
+static constexpr rgb_t svisionn_pens[] =
{
- 0, 0, 0,
- 188, 242, 244, // darker
- 129, 204, 255,
- 245, 249, 248
+ { 0, 0, 0 },
+ { 188, 242, 244 }, // darker
+ { 129, 204, 255 },
+ { 245, 249, 248 }
};
-PALETTE_INIT_MEMBER(svision_state, svision)
+void svision_state::svision_palette(palette_device &palette) const
{
- for (int i = 0; i < sizeof(svision_palette) / 3; i++)
- palette.set_pen_color(i, svision_palette[i*3], svision_palette[i*3+1], svision_palette[i*3+2]);
+ palette.set_pen_colors(0, svision_pens);
}
-PALETTE_INIT_MEMBER(svision_state,svisionn)
+void svision_state::svisionn_palette(palette_device &palette) const
{
- for (int i = 0; i < sizeof(svisionn_palette) / 3; i++)
- palette.set_pen_color(i, svisionn_palette[i*3], svisionn_palette[i*3+1], svisionn_palette[i*3+2]);
+ palette.set_pen_colors(0, svisionn_pens);
}
-PALETTE_INIT_MEMBER(svision_state,svisionp)
+void svision_state::svisionp_palette(palette_device &palette) const
{
- for (int i = 0; i < sizeof(svisionn_palette) / 3; i++)
- palette.set_pen_color(i, svisionp_palette[i*3], svisionp_palette[i*3+1], svisionp_palette[i*3+2]);
+ palette.set_pen_colors(0, svisionp_pens);
}
uint32_t svision_state::screen_update_svision(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
@@ -494,10 +488,10 @@ MACHINE_RESET_MEMBER(svision_state,tvlink)
memset(m_reg + 0x800, 0xff, 0x40); // normally done from m_tvlink microcontroller
m_reg[0x82a] = 0xdf;
- m_tvlink.palette[0] = MAKE24_RGB32(svisionp_palette[ 0], svisionp_palette[ 1], svisionp_palette[ 2]);
- m_tvlink.palette[1] = MAKE24_RGB32(svisionp_palette[ 3], svisionp_palette[ 4], svisionp_palette[ 5]);
- m_tvlink.palette[2] = MAKE24_RGB32(svisionp_palette[ 6], svisionp_palette[ 7], svisionp_palette[ 8]);
- m_tvlink.palette[3] = MAKE24_RGB32(svisionp_palette[ 9], svisionp_palette[10], svisionp_palette[11]);
+ m_tvlink.palette[0] = MAKE24_RGB32(svisionp_pens[0].r(), svisionp_pens[0].g(), svisionp_pens[0].b());
+ m_tvlink.palette[1] = MAKE24_RGB32(svisionp_pens[1].r(), svisionp_pens[1].g(), svisionp_pens[1].b());
+ m_tvlink.palette[2] = MAKE24_RGB32(svisionp_pens[2].r(), svisionp_pens[2].g(), svisionp_pens[2].b());
+ m_tvlink.palette[3] = MAKE24_RGB32(svisionp_pens[3].r(), svisionp_pens[3].g(), svisionp_pens[3].b());
}
MACHINE_CONFIG_START(svision_state::svision_base)
@@ -532,8 +526,7 @@ MACHINE_CONFIG_START(svision_state::svision)
MCFG_SCREEN_PALETTE(m_palette)
MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, svision_state, frame_int_w))
- MCFG_PALETTE_ADD(m_palette, ARRAY_LENGTH(svision_palette) * 3)
- MCFG_PALETTE_INIT_OWNER(svision_state, svision )
+ PALETTE(config, m_palette, FUNC(svision_state::svision_palette), ARRAY_LENGTH(svision_pens));
MACHINE_CONFIG_END
MACHINE_CONFIG_START(svision_state::svisions)
@@ -546,14 +539,14 @@ MACHINE_CONFIG_START(svision_state::svisionp)
m_maincpu->set_clock(4430000);
m_screen->set_refresh(HZ_TO_ATTOSECONDS(50));
- m_palette->set_init(palette_init_delegate(&svision_state::palette_init_svisionp, "svision_state::palette_init_svisionp", this));
+ m_palette->set_init(FUNC(svision_state::svisionp_palette));
MACHINE_CONFIG_END
MACHINE_CONFIG_START(svision_state::svisionn)
svision(config);
m_maincpu->set_clock(3560000/*?*/);
m_screen->set_refresh(HZ_TO_ATTOSECONDS(60));
- m_palette->set_init(palette_init_delegate(&svision_state::palette_init_svisionn, "svision_state::palette_init_svisionn", this));
+ m_palette->set_init(FUNC(svision_state::svisionn_palette));
MACHINE_CONFIG_END
MACHINE_CONFIG_START(svision_state::tvlinkp)