summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/m5.cpp
diff options
context:
space:
mode:
author AJR <ajrhacker@users.noreply.github.com>2018-08-21 11:12:59 -0400
committer AJR <ajrhacker@users.noreply.github.com>2018-08-21 11:18:42 -0400
commit71da8e2ae2521d4c895520c85e45e3ccfdb56e30 (patch)
treed4cf5356574b4171d15d14d0f10567bcb49b7aff /src/mame/drivers/m5.cpp
parentb3e306b985c98019687f46fb08cd4f999ec751f7 (diff)
tms9928a: Configuration modernization (nw)
- Replace callback configuration macros with devcb3 (slightly shortening function names in the process) - Change configured clock to be twice the dot clock (as on hardware), rather than equal to it - Allow the VDP to configure the screen in device_config_complete (taking into account 60 Hz/50 Hz variations), making MCFG_TMS9928A_SCREEN_ADD_NTSC/_PAL macros obsolete - Add notes on clock outputs msx.cpp: Use a template to simplify configuration of all the MSX1 VDP variants (nw) bbcbc: Increase clock speed to a more plausible rate WARNING: Withheld for now due to Vas's quibbles with the similar approach used in 577f198564faff49f2636600598a15644db354bb.
Diffstat (limited to 'src/mame/drivers/m5.cpp')
-rw-r--r--src/mame/drivers/m5.cpp41
1 files changed, 21 insertions, 20 deletions
diff --git a/src/mame/drivers/m5.cpp b/src/mame/drivers/m5.cpp
index a6d4a1d8f5e..883ff137ac6 100644
--- a/src/mame/drivers/m5.cpp
+++ b/src/mame/drivers/m5.cpp
@@ -1467,30 +1467,32 @@ MACHINE_CONFIG_END
// MACHINE_CONFIG_START( ntsc )
//-------------------------------------------------
-MACHINE_CONFIG_START(m5_state::ntsc)
+void m5_state::ntsc(machine_config &config)
+{
m5(config);
// video hardware
- MCFG_DEVICE_ADD( "tms9928a", TMS9928A, 10.738635_MHz_XTAL / 2 )
- MCFG_TMS9928A_VRAM_SIZE(0x4000)
- MCFG_TMS9928A_OUT_INT_LINE_CB(WRITELINE(*this, m5_state, sordm5_video_interrupt_callback))
- MCFG_TMS9928A_SCREEN_ADD_NTSC( "screen" )
- MCFG_SCREEN_UPDATE_DEVICE( "tms9928a", tms9928a_device, screen_update )
-MACHINE_CONFIG_END
+ tms9928a_device &vdp(TMS9928A(config, "tms9928a", 10.738635_MHz_XTAL));
+ vdp.set_screen("screen");
+ vdp.set_vram_size(0x4000);
+ vdp.int_callback().set(FUNC(m5_state::sordm5_video_interrupt_callback));
+ SCREEN(config, "screen", SCREEN_TYPE_RASTER);
+}
//-------------------------------------------------
// MACHINE_CONFIG_START( pal )
//-------------------------------------------------
-MACHINE_CONFIG_START(m5_state::pal)
+void m5_state::pal(machine_config &config)
+{
m5(config);
// video hardware
- MCFG_DEVICE_ADD( "tms9928a", TMS9929A, 10.738635_MHz_XTAL / 2 )
- MCFG_TMS9928A_VRAM_SIZE(0x4000)
- MCFG_TMS9928A_OUT_INT_LINE_CB(WRITELINE(*this, m5_state, sordm5_video_interrupt_callback))
- MCFG_TMS9928A_SCREEN_ADD_PAL( "screen" )
- MCFG_SCREEN_UPDATE_DEVICE( "tms9928a", tms9928a_device, screen_update )
-MACHINE_CONFIG_END
+ tms9929a_device &vdp(TMS9929A(config, "tms9928a", 10.738635_MHz_XTAL));
+ vdp.set_screen("screen");
+ vdp.set_vram_size(0x4000);
+ vdp.int_callback().set(FUNC(m5_state::sordm5_video_interrupt_callback));
+ SCREEN(config, "screen", SCREEN_TYPE_RASTER);
+}
//-------------------------------------------------
// MACHINE_CONFIG( m5p_brno )
@@ -1513,12 +1515,11 @@ MACHINE_CONFIG_START(brno_state::brno)
MCFG_DEVICE_REMOVE(UPD765_TAG)
// video hardware
- MCFG_DEVICE_ADD("tms9928a", TMS9929A, 10.738635_MHz_XTAL / 2)
- MCFG_TMS9928A_VRAM_SIZE(0x4000)
- MCFG_TMS9928A_OUT_INT_LINE_CB(WRITELINE(*this, m5_state, sordm5_video_interrupt_callback))
- MCFG_TMS9928A_SCREEN_ADD_PAL( "screen" )
- MCFG_SCREEN_UPDATE_DEVICE( "tms9928a", tms9928a_device, screen_update )
-
+ tms9929a_device &vdp(TMS9929A(config, "tms9928a", 10.738635_MHz_XTAL));
+ vdp.set_screen("screen");
+ vdp.set_vram_size(0x4000);
+ vdp.int_callback().set(FUNC(m5_state::sordm5_video_interrupt_callback));
+ SCREEN(config, "screen", SCREEN_TYPE_RASTER);
// floppy
MCFG_DEVICE_ADD(WD2797_TAG, WD2797, 1_MHz_XTAL)