diff options
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 |
commit | 71da8e2ae2521d4c895520c85e45e3ccfdb56e30 (patch) | |
tree | d4cf5356574b4171d15d14d0f10567bcb49b7aff /src/mame/drivers/m5.cpp | |
parent | b3e306b985c98019687f46fb08cd4f999ec751f7 (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.cpp | 41 |
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) |