diff options
86 files changed, 1720 insertions, 1741 deletions
diff --git a/src/mame/drivers/spec128.cpp b/src/mame/drivers/spec128.cpp index af114340842..8da68cafa73 100644 --- a/src/mame/drivers/spec128.cpp +++ b/src/mame/drivers/spec128.cpp @@ -296,22 +296,20 @@ static GFXDECODE_START( spec128 ) GFXDECODE_END -MACHINE_CONFIG_START(spectrum_state::spectrum_128) +void spectrum_state::spectrum_128(machine_config &config) +{ spectrum(config); - config.device_remove("maincpu"); - - MCFG_DEVICE_ADD("maincpu", Z80, X1_128_SINCLAIR / 5) - MCFG_DEVICE_PROGRAM_MAP(spectrum_128_mem) - MCFG_DEVICE_IO_MAP(spectrum_128_io) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", spectrum_state, spec_interrupt) + Z80(config.replace(), m_maincpu, X1_128_SINCLAIR / 5); + m_maincpu->set_addrmap(AS_PROGRAM, &spectrum_state::spectrum_128_mem); + m_maincpu->set_addrmap(AS_IO, &spectrum_state::spectrum_128_io); + m_maincpu->set_vblank_int("screen", FUNC(spectrum_state::spec_interrupt)); config.m_minimum_quantum = attotime::from_hz(60); MCFG_MACHINE_RESET_OVERRIDE(spectrum_state, spectrum_128 ) /* video hardware */ - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_RAW_PARAMS(X1_128_SINCLAIR / 2.5f, 456, 0, 352, 311, 0, 296) + m_screen->set_raw(X1_128_SINCLAIR / 2.5f, 456, 0, 352, 311, 0, 296); MCFG_VIDEO_START_OVERRIDE(spectrum_state, spectrum_128 ) subdevice<gfxdecode_device>("gfxdecode")->set_info(spec128); @@ -320,12 +318,13 @@ MACHINE_CONFIG_START(spectrum_state::spectrum_128) AY8912(config, "ay8912", X1_128_SINCLAIR / 10).add_route(ALL_OUTPUTS, "mono", 0.25); /* expansion port */ - MCFG_DEVICE_MODIFY("exp") - MCFG_DEVICE_SLOT_INTERFACE(spec128_expansion_devices, nullptr, false) + SPECTRUM_EXPANSION_SLOT(config.replace(), m_exp, spec128_expansion_devices, nullptr); + m_exp->irq_handler().set_inputline(m_maincpu, INPUT_LINE_IRQ0); + m_exp->nmi_handler().set_inputline(m_maincpu, INPUT_LINE_NMI); /* internal ram */ m_ram->set_default_size("128K"); -MACHINE_CONFIG_END +} diff --git a/src/mame/drivers/spectrum.cpp b/src/mame/drivers/spectrum.cpp index f1add2f80c2..ccd29d7cc45 100644 --- a/src/mame/drivers/spectrum.cpp +++ b/src/mame/drivers/spectrum.cpp @@ -668,8 +668,8 @@ INTERRUPT_GEN_MEMBER(spectrum_state::spec_interrupt) m_irq_off_timer->adjust(m_maincpu->clocks_to_attotime(32)); } -MACHINE_CONFIG_START(spectrum_state::spectrum_common) - +void spectrum_state::spectrum_common(machine_config &config) +{ /* basic machine hardware */ Z80(config, m_maincpu, X1 / 4); /* This is verified only for the ZX Spectrum. Other clones are reported to have different clocks */ m_maincpu->set_addrmap(AS_PROGRAM, &spectrum_state::spectrum_mem); @@ -714,7 +714,7 @@ MACHINE_CONFIG_START(spectrum_state::spectrum_common) m_cassette->set_interface("spectrum_cass"); SOFTWARE_LIST(config, "cass_list").set_original("spectrum_cass"); -MACHINE_CONFIG_END +} void spectrum_state::spectrum(machine_config &config) { diff --git a/src/mame/drivers/tagteam.cpp b/src/mame/drivers/tagteam.cpp index 871023dbac8..1046292c820 100644 --- a/src/mame/drivers/tagteam.cpp +++ b/src/mame/drivers/tagteam.cpp @@ -209,25 +209,25 @@ INTERRUPT_GEN_MEMBER(tagteam_state::sound_timer_irq) } -MACHINE_CONFIG_START(tagteam_state::tagteam) - +void tagteam_state::tagteam(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M6502, XTAL(12'000'000)/8) - MCFG_DEVICE_PROGRAM_MAP(main_map) - MCFG_DEVICE_PERIODIC_INT_DRIVER(tagteam_state, irq0_line_assert, 272/16*57) // connected to bit 4 of vcount (basically once every 16 scanlines) + M6502(config, m_maincpu, XTAL(12'000'000)/8); + m_maincpu->set_addrmap(AS_PROGRAM, &tagteam_state::main_map); + m_maincpu->set_periodic_int(FUNC(tagteam_state::irq0_line_assert), attotime::from_hz(272/16*57)); // connected to bit 4 of vcount (basically once every 16 scanlines) - MCFG_DEVICE_ADD("audiocpu", M6502, XTAL(12'000'000)/2/6) // daughterboard gets 12mhz/2 from mainboard, but how it's divided further is a guess - MCFG_DEVICE_PROGRAM_MAP(sound_map) - MCFG_DEVICE_PERIODIC_INT_DRIVER(tagteam_state, sound_timer_irq, 272/16*57) // same source as maincpu irq + M6502(config, m_audiocpu, XTAL(12'000'000)/2/6); // daughterboard gets 12mhz/2 from mainboard, but how it's divided further is a guess + m_audiocpu->set_addrmap(AS_PROGRAM, &tagteam_state::sound_map); + m_audiocpu->set_periodic_int(FUNC(tagteam_state::sound_timer_irq), attotime::from_hz(272/16*57)); // same source as maincpu irq /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(57) // measured? - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(3072)) - MCFG_SCREEN_SIZE(32*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_DRIVER(tagteam_state, screen_update) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(57); // measured? + screen.set_vblank_time(ATTOSECONDS_IN_USEC(3072)); + screen.set_size(32*8, 32*8); + screen.set_visarea(0*8, 32*8-1, 1*8, 31*8-1); + screen.set_screen_update(FUNC(tagteam_state::screen_update)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_tagteam); PALETTE(config, m_palette, FUNC(tagteam_state::tagteam_palette), 32); @@ -245,7 +245,7 @@ MACHINE_CONFIG_START(tagteam_state::tagteam) voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref")); vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT); -MACHINE_CONFIG_END +} diff --git a/src/mame/drivers/tail2nos.cpp b/src/mame/drivers/tail2nos.cpp index 8e595e64e54..06c6e75470e 100644 --- a/src/mame/drivers/tail2nos.cpp +++ b/src/mame/drivers/tail2nos.cpp @@ -232,16 +232,16 @@ void tail2nos_state::machine_reset() { } -MACHINE_CONFIG_START(tail2nos_state::tail2nos) - +void tail2nos_state::tail2nos(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000,XTAL(20'000'000)/2) /* verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(main_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", tail2nos_state, irq6_line_hold) + M68000(config, m_maincpu, XTAL(20'000'000)/2); /* verified on pcb */ + m_maincpu->set_addrmap(AS_PROGRAM, &tail2nos_state::main_map); + m_maincpu->set_vblank_int("screen", FUNC(tail2nos_state::irq6_line_hold)); - MCFG_DEVICE_ADD("audiocpu", Z80,XTAL(20'000'000)/4) /* verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(sound_map) - MCFG_DEVICE_IO_MAP(sound_port_map) + Z80(config, m_audiocpu, XTAL(20'000'000)/4); /* verified on pcb */ + m_audiocpu->set_addrmap(AS_PROGRAM, &tail2nos_state::sound_map); + m_audiocpu->set_addrmap(AS_IO, &tail2nos_state::sound_port_map); /* IRQs are triggered by the YM2608 */ ACIA6850(config, m_acia, 0); @@ -250,13 +250,13 @@ MACHINE_CONFIG_START(tail2nos_state::tail2nos) //m_acia->rts_handler().set("link", FUNC(rs232_port_device::write_rts)); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(64*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_DRIVER(tail2nos_state, screen_update_tail2nos) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(64*8, 32*8); + screen.set_visarea(0*8, 40*8-1, 1*8, 31*8-1); + screen.set_screen_update(FUNC(tail2nos_state::screen_update_tail2nos)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_tail2nos); PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 2048); @@ -285,7 +285,7 @@ MACHINE_CONFIG_START(tail2nos_state::tail2nos) ymsnd.add_route(0, "rspeaker", 0.25); ymsnd.add_route(1, "lspeaker", 1.0); ymsnd.add_route(2, "rspeaker", 1.0); -MACHINE_CONFIG_END +} diff --git a/src/mame/drivers/taito_o.cpp b/src/mame/drivers/taito_o.cpp index 637beb44e70..c43880d7313 100644 --- a/src/mame/drivers/taito_o.cpp +++ b/src/mame/drivers/taito_o.cpp @@ -233,21 +233,21 @@ void taitoo_state::machine_start() { } -MACHINE_CONFIG_START(taitoo_state::parentj) - - MCFG_DEVICE_ADD("maincpu", M68000,12000000 ) /*?? MHz */ - MCFG_DEVICE_PROGRAM_MAP(parentj_map) +void taitoo_state::parentj(machine_config &config) +{ + M68000(config, m_maincpu, 12000000); /*?? MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &taitoo_state::parentj_map); TIMER(config, "scantimer").configure_scanline(FUNC(taitoo_state::parentj_interrupt), "screen", 0, 1); WATCHDOG_TIMER(config, m_watchdog); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(64*16, 64*16) - MCFG_SCREEN_VISIBLE_AREA(0*16, 32*16-1, 3*16, 31*16-1) - MCFG_SCREEN_UPDATE_DRIVER(taitoo_state, screen_update_parentj) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(64*16, 64*16); + screen.set_visarea(0*16, 32*16-1, 3*16, 31*16-1); + screen.set_screen_update(FUNC(taitoo_state::screen_update_parentj)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_parentj); PALETTE(config, m_palette).set_format(palette_device::xBGR_555, 33*16); @@ -265,7 +265,7 @@ MACHINE_CONFIG_START(taitoo_state::parentj) ymsnd.port_a_read_callback().set_ioport("DSWA"); ymsnd.port_b_read_callback().set_ioport("DSWB"); ymsnd.add_route(ALL_OUTPUTS, "mono", 1.0); -MACHINE_CONFIG_END +} ROM_START( parentj ) ROM_REGION( 0x20000, "maincpu", 0 ) /* 68000 Code */ diff --git a/src/mame/drivers/taitosj.cpp b/src/mame/drivers/taitosj.cpp index 29ae9cee71f..e34022abd85 100644 --- a/src/mame/drivers/taitosj.cpp +++ b/src/mame/drivers/taitosj.cpp @@ -1770,33 +1770,33 @@ WRITE8_MEMBER(taitosj_state::taitosj_dacvol_w) m_dacvol->write(NODE_01, data ^ 0xff); // 7416 hex inverter } -MACHINE_CONFIG_START(taitosj_state::nomcu) - +void taitosj_state::nomcu(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu",Z80,XTAL(8'000'000)/2) /* 8 MHz / 2, on CPU board */ - MCFG_DEVICE_PROGRAM_MAP(taitosj_main_nomcu_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", taitosj_state, irq0_line_hold) + Z80(config, m_maincpu, XTAL(8'000'000)/2); /* 8 MHz / 2, on CPU board */ + m_maincpu->set_addrmap(AS_PROGRAM, &taitosj_state::taitosj_main_nomcu_map); + m_maincpu->set_vblank_int("screen", FUNC(taitosj_state::irq0_line_hold)); - MCFG_DEVICE_ADD("audiocpu", Z80,XTAL(6'000'000)/2) /* 6 MHz / 2, on GAME board */ - MCFG_DEVICE_PROGRAM_MAP(taitosj_audio_map) + Z80(config, m_audiocpu, XTAL(6'000'000)/2); /* 6 MHz / 2, on GAME board */ + m_audiocpu->set_addrmap(AS_PROGRAM, &taitosj_state::taitosj_audio_map); /* interrupts: */ /* - no interrupts synced with vblank */ /* - NMI triggered by the main CPU */ /* - periodic IRQ, with frequency 6000000/(4*16*16*10*16) = 36.621 Hz, */ - MCFG_DEVICE_PERIODIC_INT_DRIVER(taitosj_state, irq0_line_hold, XTAL(6'000'000)/(4*16*16*10*16)) + m_audiocpu->set_periodic_int(FUNC(taitosj_state::irq0_line_hold), attotime::from_hz(XTAL(6'000'000)/(4*16*16*10*16))); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) - MCFG_SCREEN_SIZE(32*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(taitosj_state, screen_update_taitosj) - MCFG_SCREEN_PALETTE("palette") + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */); + m_screen->set_size(32*8, 32*8); + m_screen->set_visarea(0*8, 32*8-1, 2*8, 30*8-1); + m_screen->set_screen_update(FUNC(taitosj_state::screen_update_taitosj)); + m_screen->set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_taitosj); - MCFG_PALETTE_ADD("palette", 64) + PALETTE(config, m_palette).set_entries(64); /* sound hardware */ @@ -1835,19 +1835,20 @@ MACHINE_CONFIG_START(taitosj_state::nomcu) WATCHDOG_TIMER(config, "watchdog").set_vblank_count("screen", 128); // 74LS393 on CPU board, counts 128 vblanks before firing watchdog - DAC_8BIT_R2R(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.15); // 30k r-2r network - MCFG_DEVICE_ADD("dacvol", DISCRETE, taitosj_dacvol_discrete) - MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT) -MACHINE_CONFIG_END + DAC_8BIT_R2R(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 0.15); // 30k r-2r network + DISCRETE(config, m_dacvol, taitosj_dacvol_discrete); + m_dacvol->add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT); + m_dacvol->add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT); +} /* same as above, but with additional 68705 MCU */ -MACHINE_CONFIG_START(taitosj_state::mcu) +void taitosj_state::mcu(machine_config &config) +{ nomcu(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(taitosj_main_mcu_map) + m_maincpu->set_addrmap(AS_PROGRAM, &taitosj_state::taitosj_main_mcu_map); TAITO_SJ_SECURITY_MCU(config, m_mcu, XTAL(3'000'000)); /* xtal is 3MHz, divided by 4 internally */ m_mcu->set_int_mode(taito_sj_security_mcu_device::int_mode::LATCH); @@ -1857,19 +1858,18 @@ MACHINE_CONFIG_START(taitosj_state::mcu) m_mcu->busrq_cb().set(FUNC(taitosj_state::mcu_busrq_w)); config.m_minimum_quantum = attotime::from_hz(6000); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(taitosj_state::kikstart) +void taitosj_state::kikstart(machine_config &config) +{ mcu(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(kikstart_main_map) + m_maincpu->set_addrmap(AS_PROGRAM, &taitosj_state::kikstart_main_map); - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_DRIVER(taitosj_state, screen_update_kikstart) -MACHINE_CONFIG_END + m_screen->set_screen_update(FUNC(taitosj_state::screen_update_kikstart)); +} diff --git a/src/mame/drivers/taitottl.cpp b/src/mame/drivers/taitottl.cpp index 74cdb371bd5..809242a9338 100644 --- a/src/mame/drivers/taitottl.cpp +++ b/src/mame/drivers/taitottl.cpp @@ -136,11 +136,11 @@ void taitottl_state::video_start() { } -MACHINE_CONFIG_START(taitottl_state::taitottl) - +void taitottl_state::taitottl(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", NETLIST_CPU, NETLIST_CLOCK) - MCFG_NETLIST_SETUP(taitottl) + NETLIST_CPU(config, m_maincpu, NETLIST_CLOCK); + m_maincpu->set_constructor(netlist_taitottl); /* video hardware */ SCREEN(config, "screen", SCREEN_TYPE_RASTER); @@ -150,7 +150,7 @@ MACHINE_CONFIG_START(taitottl_state::taitottl) m_video->set_vert_params(V_TOTAL-22,V_TOTAL-19,V_TOTAL-12,V_TOTAL); m_video->set_fieldcount(1); m_video->set_threshold(0.30); -MACHINE_CONFIG_END +} /*************************************************************************** diff --git a/src/mame/drivers/taitotx.cpp b/src/mame/drivers/taitotx.cpp index 83e5169e335..f12ad04a2fb 100644 --- a/src/mame/drivers/taitotx.cpp +++ b/src/mame/drivers/taitotx.cpp @@ -172,23 +172,22 @@ void taito_type_x_state::machine_reset() } // todo: different configs for the different machine types. -MACHINE_CONFIG_START(taito_type_x_state::taito_type_x) - +void taito_type_x_state::taito_type_x(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", PENTIUM3, 733333333) /* Wrong, much newer processors, much faster. */ - MCFG_DEVICE_PROGRAM_MAP(taito_type_x_map) + PENTIUM3(config, m_maincpu, 733333333); /* Wrong, much newer processors, much faster. */ + m_maincpu->set_addrmap(AS_PROGRAM, &taito_type_x_state::taito_type_x_map); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(640, 480) - MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) - MCFG_SCREEN_UPDATE_DRIVER(taito_type_x_state, screen_update_taito_type_x) - - MCFG_PALETTE_ADD("palette", 0x10000) - -MACHINE_CONFIG_END + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(640, 480); + screen.set_visarea(0, 640-1, 0, 480-1); + screen.set_screen_update(FUNC(taito_type_x_state::screen_update_taito_type_x)); + + PALETTE(config, "palette").set_entries(0x10000); +} diff --git a/src/mame/drivers/taitowlf.cpp b/src/mame/drivers/taitowlf.cpp index 0fa7d7b05f7..71ff3629d2e 100644 --- a/src/mame/drivers/taitowlf.cpp +++ b/src/mame/drivers/taitowlf.cpp @@ -372,10 +372,10 @@ void taitowlf_state::taitowlf_palette(palette_device &palette) const MACHINE_CONFIG_START(taitowlf_state::taitowlf) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", PENTIUM, 200000000) - MCFG_DEVICE_PROGRAM_MAP(taitowlf_map) - MCFG_DEVICE_IO_MAP(taitowlf_io) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("pic8259_1", pic8259_device, inta_cb) + PENTIUM(config, m_maincpu, 200000000); + m_maincpu->set_addrmap(AS_PROGRAM, &taitowlf_state::taitowlf_map); + m_maincpu->set_addrmap(AS_IO, &taitowlf_state::taitowlf_io); + m_maincpu->set_irq_acknowledge_callback("pic8259_1", FUNC(pic8259_device::inta_cb)); MCFG_PCI_BUS_LEGACY_ADD("pcibus", 0) @@ -389,12 +389,12 @@ MACHINE_CONFIG_START(taitowlf_state::taitowlf) pcvideo_vga(config); #else /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(512, 256) - MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1) - MCFG_SCREEN_UPDATE_DRIVER(taitowlf_state, screen_update_taitowlf) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(512, 256); + screen.set_visarea(0, 512-1, 0, 256-1); + screen.set_screen_update(FUNC(taitowlf_state::screen_update_taitowlf)); PALETTE(config, m_palette, FUNC(taitowlf_state::taitowlf_palette), 256); #endif MACHINE_CONFIG_END diff --git a/src/mame/drivers/tank8.cpp b/src/mame/drivers/tank8.cpp index ba993fccfe0..63a6f3da119 100644 --- a/src/mame/drivers/tank8.cpp +++ b/src/mame/drivers/tank8.cpp @@ -328,23 +328,22 @@ static GFXDECODE_START( gfx_tank8 ) GFXDECODE_END -MACHINE_CONFIG_START(tank8_state::tank8) - +void tank8_state::tank8(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M6800, 11055000 / 10) /* ? */ - MCFG_DEVICE_PROGRAM_MAP(tank8_cpu_map) - + M6800(config, m_maincpu, 11055000 / 10); /* ? */ + m_maincpu->set_addrmap(AS_PROGRAM, &tank8_state::tank8_cpu_map); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(30 * 1000000 / 15681)) - MCFG_SCREEN_SIZE(512, 524) - MCFG_SCREEN_VISIBLE_AREA(16, 495, 0, 463) - MCFG_SCREEN_UPDATE_DRIVER(tank8_state, screen_update) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, tank8_state, screen_vblank)) - MCFG_SCREEN_PALETTE(m_palette) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_video_attributes(VIDEO_UPDATE_AFTER_VBLANK); + m_screen->set_refresh_hz(60); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(30 * 1000000 / 15681)); + m_screen->set_size(512, 524); + m_screen->set_visarea(16, 495, 0, 463); + m_screen->set_screen_update(FUNC(tank8_state::screen_update)); + m_screen->screen_vblank().set(FUNC(tank8_state::screen_vblank)); + m_screen->set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_tank8); PALETTE(config, m_palette, FUNC(tank8_state::tank8_palette), 20, 10); @@ -352,9 +351,8 @@ MACHINE_CONFIG_START(tank8_state::tank8) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("discrete", DISCRETE, tank8_discrete) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) -MACHINE_CONFIG_END + DISCRETE(config, m_discrete, tank8_discrete).add_route(ALL_OUTPUTS, "mono", 0.80); +} ROM_START( tank8a ) diff --git a/src/mame/drivers/tankbust.cpp b/src/mame/drivers/tankbust.cpp index 8ba4804074e..bf7cef07fae 100644 --- a/src/mame/drivers/tankbust.cpp +++ b/src/mame/drivers/tankbust.cpp @@ -330,30 +330,30 @@ INTERRUPT_GEN_MEMBER(tankbust_state::vblank_irq) device.execute().set_input_line(0, HOLD_LINE); } -MACHINE_CONFIG_START(tankbust_state::tankbust) - +void tankbust_state::tankbust(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, XTAL(14'318'181)/2) /* Verified on PCB */ - MCFG_DEVICE_PROGRAM_MAP(main_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", tankbust_state, vblank_irq) + Z80(config, m_maincpu, XTAL(14'318'181)/2); /* Verified on PCB */ + m_maincpu->set_addrmap(AS_PROGRAM, &tankbust_state::main_map); + m_maincpu->set_vblank_int("screen", FUNC(tankbust_state::vblank_irq)); - MCFG_DEVICE_ADD("sub", Z80, XTAL(14'318'181)/4) /* Verified on PCB */ -// MCFG_DEVICE_ADD("sub", Z80, XTAL(14'318'181)/3) /* Accurate to audio recording, but apparently incorrect clock */ - MCFG_DEVICE_PROGRAM_MAP(map_cpu2) - MCFG_DEVICE_IO_MAP(port_map_cpu2) + Z80(config, m_subcpu, XTAL(14'318'181)/4); /* Verified on PCB */ +// Z80(config, m_subcpu, XTAL(14'318'181)/3); /* Accurate to audio recording, but apparently incorrect clock */ + m_subcpu->set_addrmap(AS_PROGRAM, &tankbust_state::map_cpu2); + m_subcpu->set_addrmap(AS_IO, &tankbust_state::port_map_cpu2); config.m_minimum_quantum = attotime::from_hz(6000); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) - MCFG_SCREEN_SIZE ( 64*8, 32*8 ) - MCFG_SCREEN_VISIBLE_AREA ( 16*8, 56*8-1, 1*8, 31*8-1 ) -// MCFG_SCREEN_VISIBLE_AREA ( 0*8, 64*8-1, 1*8, 31*8-1 ) - MCFG_SCREEN_UPDATE_DRIVER(tankbust_state, screen_update) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */); + screen.set_size( 64*8, 32*8); + screen.set_visarea( 16*8, 56*8-1, 1*8, 31*8-1); +// screen.set_visarea( 0*8, 64*8-1, 1*8, 31*8-1); + screen.set_screen_update(FUNC(tankbust_state::screen_update)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_tankbust); PALETTE(config, m_palette, FUNC(tankbust_state::tankbust_palette), 128); @@ -367,7 +367,7 @@ MACHINE_CONFIG_START(tankbust_state::tankbust) ay1.add_route(ALL_OUTPUTS, "mono", 0.10); AY8910(config, "ay2", XTAL(14'318'181)/16).add_route(ALL_OUTPUTS, "mono", 0.10); /* Verified on PCB */ -MACHINE_CONFIG_END +} /*************************************************************************** diff --git a/src/mame/drivers/targeth.cpp b/src/mame/drivers/targeth.cpp index 2460c289cd7..3afa4def461 100644 --- a/src/mame/drivers/targeth.cpp +++ b/src/mame/drivers/targeth.cpp @@ -268,28 +268,28 @@ static INPUT_PORTS_START( targeth ) INPUT_PORTS_END -MACHINE_CONFIG_START(targeth_state::targeth) - +void targeth_state::targeth(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(24'000'000)/2) /* 12 MHz */ - MCFG_DEVICE_PROGRAM_MAP(main_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", targeth_state, irq2_line_hold) + M68000(config, m_maincpu, XTAL(24'000'000)/2); /* 12 MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &targeth_state::main_map); + m_maincpu->set_vblank_int("screen", FUNC(targeth_state::irq2_line_hold)); - MCFG_DEVICE_ADD("gaelco_ds5002fp", GAELCO_DS5002FP, XTAL(24'000'000) / 2) - MCFG_DEVICE_ADDRESS_MAP(0, mcu_hostmem_map) + gaelco_ds5002fp_device &ds5002fp(GAELCO_DS5002FP(config, "gaelco_ds5002fp", XTAL(24'000'000) / 2)); + ds5002fp.set_addrmap(0, &targeth_state::mcu_hostmem_map); LS259(config, m_outlatch); m_outlatch->q_out_cb<2>().set(FUNC(targeth_state::coin1_counter_w)); m_outlatch->q_out_cb<3>().set(FUNC(targeth_state::coin2_counter_w)); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) - MCFG_SCREEN_SIZE(64*16, 16*16) - MCFG_SCREEN_VISIBLE_AREA(3*8, 23*16-8-1, 16, 16*16-8-1) - MCFG_SCREEN_UPDATE_DRIVER(targeth_state, screen_update) - MCFG_SCREEN_PALETTE(m_palette) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */); + m_screen->set_size(64*16, 16*16); + m_screen->set_visarea(3*8, 23*16-8-1, 16, 16*16-8-1); + m_screen->set_screen_update(FUNC(targeth_state::screen_update)); + m_screen->set_palette(m_palette); GFXDECODE(config, "gfxdecode", m_palette, gfx_targeth); PALETTE(config, m_palette).set_format(palette_device::xBGR_555, 1024); @@ -297,10 +297,10 @@ MACHINE_CONFIG_START(targeth_state::targeth) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(1'000'000), okim6295_device::PIN7_HIGH) // 1MHz resonator - pin 7 not verified - MCFG_DEVICE_ADDRESS_MAP(0, oki_map) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_CONFIG_END + okim6295_device &oki(OKIM6295(config, "oki", XTAL(1'000'000), okim6295_device::PIN7_HIGH)); // 1MHz resonator - pin 7 not verified + oki.set_addrmap(0, &targeth_state::oki_map); + oki.add_route(ALL_OUTPUTS, "mono", 1.0); +} ROM_START( targeth ) ROM_REGION( 0x100000, "maincpu", 0 ) /* 68000 code */ diff --git a/src/mame/drivers/tasman.cpp b/src/mame/drivers/tasman.cpp index 53a6beac5b6..3e8efe41fbd 100644 --- a/src/mame/drivers/tasman.cpp +++ b/src/mame/drivers/tasman.cpp @@ -645,27 +645,28 @@ TIMER_DEVICE_CALLBACK_MEMBER(kongambl_state::kongambl_vblank) } -MACHINE_CONFIG_START(kongambl_state::kongambl) - MCFG_DEVICE_ADD("maincpu", M68EC020, 25000000) - MCFG_DEVICE_PROGRAM_MAP(kongambl_map) +void kongambl_state::kongambl(machine_config &config) +{ + M68EC020(config, m_maincpu, 25000000); + m_maincpu->set_addrmap(AS_PROGRAM, &kongambl_state::kongambl_map); TIMER(config, "scantimer").configure_scanline(FUNC(kongambl_state::kongambl_vblank), "screen", 0, 1); - MCFG_DEVICE_ADD("sndcpu", M68000, 16000000) - MCFG_DEVICE_PROGRAM_MAP(kongamaud_map) - MCFG_DEVICE_PERIODIC_INT_DRIVER(kongambl_state, irq2_line_hold, 480) + m68000_device &sndcpu(M68000(config, "sndcpu", 16000000)); + sndcpu.set_addrmap(AS_PROGRAM, &kongambl_state::kongamaud_map); + sndcpu.set_periodic_int(FUNC(kongambl_state::irq2_line_hold), attotime::from_hz(480)); K053252(config, m_k053252, 25000000); m_k053252->set_offsets(0, 16); // TBD m_k053252->int1_ack().set(FUNC(kongambl_state::vblank_irq_ack_w)); m_k053252->int2_ack().set(FUNC(kongambl_state::hblank_irq_ack_w)); - m_k053252->set_screen("screen"); + m_k053252->set_screen(m_screen); EEPROM_93C46_16BIT(config, "eeprom"); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(25000000, 288+16+32+48, 0, 287, 224+16+8+16, 0, 223) // fake, they'll be changed by CCU anyway, TBD - MCFG_SCREEN_UPDATE_DRIVER(kongambl_state, screen_update_kongambl) - MCFG_SCREEN_PALETTE(m_palette) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_raw(25000000, 288+16+32+48, 0, 287, 224+16+8+16, 0, 223); // fake, they'll be changed by CCU anyway, TBD + m_screen->set_screen_update(FUNC(kongambl_state::screen_update_kongambl)); + m_screen->set_palette(m_palette); PALETTE(config, m_palette).set_format(palette_device::xRGB_888, 32768); @@ -689,7 +690,7 @@ MACHINE_CONFIG_START(kongambl_state::kongambl) SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); -MACHINE_CONFIG_END +} ROM_START( kingtut ) diff --git a/src/mame/drivers/tatsumi.cpp b/src/mame/drivers/tatsumi.cpp index 540f19f6326..51aa5849fda 100644 --- a/src/mame/drivers/tatsumi.cpp +++ b/src/mame/drivers/tatsumi.cpp @@ -864,23 +864,23 @@ MACHINE_RESET_MEMBER(apache3_state,apache3) } -MACHINE_CONFIG_START(apache3_state::apache3) - +void apache3_state::apache3(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", V30, CLOCK_1 / 2) - MCFG_DEVICE_PROGRAM_MAP(apache3_v30_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", tatsumi_state, v30_interrupt) + V30(config, m_maincpu, CLOCK_1 / 2); + m_maincpu->set_addrmap(AS_PROGRAM, &apache3_state::apache3_v30_map); + m_maincpu->set_vblank_int("screen", FUNC(tatsumi_state::v30_interrupt)); - MCFG_DEVICE_ADD("sub", M68000, CLOCK_2 / 4) - MCFG_DEVICE_PROGRAM_MAP(apache3_68000_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", apache3_state, irq4_line_hold) + M68000(config, m_subcpu, CLOCK_2 / 4); + m_subcpu->set_addrmap(AS_PROGRAM, &apache3_state::apache3_68000_map); + m_subcpu->set_vblank_int("screen", FUNC(apache3_state::irq4_line_hold)); - MCFG_DEVICE_ADD("audiocpu", V20, CLOCK_1 / 2) - MCFG_DEVICE_PROGRAM_MAP(apache3_v20_map) + V20(config, m_audiocpu, CLOCK_1 / 2); + m_audiocpu->set_addrmap(AS_PROGRAM, &apache3_state::apache3_v20_map); - MCFG_DEVICE_ADD("sub2", Z80, CLOCK_2 / 8) - MCFG_DEVICE_PROGRAM_MAP(apache3_z80_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", apache3_state, irq0_line_hold) + Z80(config, m_subcpu2, CLOCK_2 / 8); + m_subcpu2->set_addrmap(AS_PROGRAM, &apache3_state::apache3_z80_map); + m_subcpu2->set_vblank_int("screen", FUNC(apache3_state::irq0_line_hold)); config.m_minimum_quantum = attotime::from_hz(6000); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); @@ -898,9 +898,9 @@ MACHINE_CONFIG_START(apache3_state::apache3) I8255(config, "ppi"); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(CLOCK_2 / 8, 400, 0, 320, 272, 0, 240) // TODO: Hook up CRTC - MCFG_SCREEN_UPDATE_DRIVER(apache3_state, screen_update_apache3) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_raw(CLOCK_2 / 8, 400, 0, 320, 272, 0, 240); // TODO: Hook up CRTC + screen.set_screen_update(FUNC(apache3_state::screen_update_apache3)); GFXDECODE(config, m_gfxdecode, m_palette, gfx_apache3); PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 1024 + 4096); // 1024 real colours, and 4096 arranged as series of CLUTs @@ -924,23 +924,23 @@ MACHINE_CONFIG_START(apache3_state::apache3) m_ym2151->add_route(0, "lspeaker", 0.45); m_ym2151->add_route(1, "rspeaker", 0.45); - MCFG_DEVICE_ADD("oki", OKIM6295, CLOCK_1 / 4 / 2, okim6295_device::PIN7_HIGH) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.75) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.75) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(roundup5_state::roundup5) + OKIM6295(config, m_oki, CLOCK_1 / 4 / 2, okim6295_device::PIN7_HIGH); + m_oki->add_route(ALL_OUTPUTS, "lspeaker", 0.75); + m_oki->add_route(ALL_OUTPUTS, "rspeaker", 0.75); +} +void roundup5_state::roundup5(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", V30, CLOCK_1 / 2) - MCFG_DEVICE_PROGRAM_MAP(roundup5_v30_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", tatsumi_state, v30_interrupt) + V30(config, m_maincpu, CLOCK_1 / 2); + m_maincpu->set_addrmap(AS_PROGRAM, &roundup5_state::roundup5_v30_map); + m_maincpu->set_vblank_int("screen", FUNC(tatsumi_state::v30_interrupt)); - MCFG_DEVICE_ADD("sub", M68000, CLOCK_2 / 4) - MCFG_DEVICE_PROGRAM_MAP(roundup5_68000_map) + M68000(config, m_subcpu, CLOCK_2 / 4); + m_subcpu->set_addrmap(AS_PROGRAM, &roundup5_state::roundup5_68000_map); - MCFG_DEVICE_ADD("audiocpu", Z80, CLOCK_1 / 4) - MCFG_DEVICE_PROGRAM_MAP(roundup5_z80_map) + Z80(config, m_audiocpu, CLOCK_1 / 4); + m_audiocpu->set_addrmap(AS_PROGRAM, &roundup5_state::roundup5_z80_map); config.m_minimum_quantum = attotime::from_hz(6000); @@ -950,9 +950,9 @@ MACHINE_CONFIG_START(roundup5_state::roundup5) ppi.out_pc_callback().set(FUNC(roundup5_state::output_w)); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(CLOCK_2 / 8, 400, 0, 320, 272, 0, 240) // TODO: Hook up CRTC - MCFG_SCREEN_UPDATE_DRIVER(roundup5_state, screen_update_roundup5) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_raw(CLOCK_2 / 8, 400, 0, 320, 272, 0, 240); // TODO: Hook up CRTC + screen.set_screen_update(FUNC(roundup5_state::screen_update_roundup5)); GFXDECODE(config, m_gfxdecode, m_palette, gfx_roundup5); PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 1024 + 4096); // 1024 real colours, and 4096 arranged as series of CLUTs @@ -969,10 +969,10 @@ MACHINE_CONFIG_START(roundup5_state::roundup5) m_ym2151->add_route(0, "lspeaker", 0.45); m_ym2151->add_route(1, "rspeaker", 0.45); - MCFG_DEVICE_ADD("oki", OKIM6295, CLOCK_1 / 4 / 2, okim6295_device::PIN7_HIGH) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.75) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.75) -MACHINE_CONFIG_END + OKIM6295(config, m_oki, CLOCK_1 / 4 / 2, okim6295_device::PIN7_HIGH); + m_oki->add_route(ALL_OUTPUTS, "lspeaker", 0.75); + m_oki->add_route(ALL_OUTPUTS, "rspeaker", 0.75); +} void cyclwarr_state::machine_reset() { @@ -1000,19 +1000,19 @@ void cyclwarr_state::machine_reset() m_road_color_bank = m_prev_road_bank = 0; } -MACHINE_CONFIG_START(cyclwarr_state::cyclwarr) - +void cyclwarr_state::cyclwarr(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, CLOCK_2 / 4) - MCFG_DEVICE_PROGRAM_MAP(master_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", cyclwarr_state, irq5_line_hold) + M68000(config, m_maincpu, CLOCK_2 / 4); + m_maincpu->set_addrmap(AS_PROGRAM, &cyclwarr_state::master_map); + m_maincpu->set_vblank_int("screen", FUNC(cyclwarr_state::irq5_line_hold)); - MCFG_DEVICE_ADD("sub", M68000, CLOCK_2 / 4) - MCFG_DEVICE_PROGRAM_MAP(slave_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", cyclwarr_state, irq5_line_hold) + M68000(config, m_subcpu, CLOCK_2 / 4); + m_subcpu->set_addrmap(AS_PROGRAM, &cyclwarr_state::slave_map); + m_subcpu->set_vblank_int("screen", FUNC(cyclwarr_state::irq5_line_hold)); - MCFG_DEVICE_ADD("audiocpu", Z80, CLOCK_1 / 4) - MCFG_DEVICE_PROGRAM_MAP(sound_map) + Z80(config, m_audiocpu, CLOCK_1 / 4); + m_audiocpu->set_addrmap(AS_PROGRAM, &cyclwarr_state::sound_map); // saner sync value (avoids crashing after crediting) config.m_minimum_quantum = attotime::from_hz(CLOCK_2 / 1024); @@ -1031,9 +1031,9 @@ MACHINE_CONFIG_START(cyclwarr_state::cyclwarr) io2.out_porte_cb().set(FUNC(cyclwarr_state::cyclwarr_control_w)); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(CLOCK_2 / 8, 400, 0, 320, 272, 0, 240) // TODO: Hook up CRTC - MCFG_SCREEN_UPDATE_DRIVER(cyclwarr_state, screen_update_cyclwarr) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_raw(CLOCK_2 / 8, 400, 0, 320, 272, 0, 240); // TODO: Hook up CRTC + screen.set_screen_update(FUNC(cyclwarr_state::screen_update_cyclwarr)); GFXDECODE(config, m_gfxdecode, m_palette, gfx_cyclwarr); PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 8192 + 8192); @@ -1052,25 +1052,24 @@ MACHINE_CONFIG_START(cyclwarr_state::cyclwarr) m_ym2151->add_route(0, "lspeaker", 0.45); m_ym2151->add_route(1, "rspeaker", 0.45); - MCFG_DEVICE_ADD("oki", OKIM6295, CLOCK_1 / 8, okim6295_device::PIN7_HIGH) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.75) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.75) -MACHINE_CONFIG_END + OKIM6295(config, m_oki, CLOCK_1 / 8, okim6295_device::PIN7_HIGH); + m_oki->add_route(ALL_OUTPUTS, "lspeaker", 0.75); + m_oki->add_route(ALL_OUTPUTS, "rspeaker", 0.75); +} -MACHINE_CONFIG_START(cyclwarr_state::bigfight) +void cyclwarr_state::bigfight(machine_config &config) +{ cyclwarr(config); // TODO: it's same video HW, we don't know how/where video registers are mapped -// MCFG_SCREEN_MODIFY("screen") -// MCFG_SCREEN_UPDATE_DRIVER(cyclwarr_state, screen_update_bigfight) +// subdevice<screen_device>("screen")->set_screen_update(FUNC(cyclwarr_state::screen_update_bigfight)); MCFG_VIDEO_START_OVERRIDE(cyclwarr_state, bigfight) /* sound hardware */ // TODO: 2MHz was too fast. Can the clock be software controlled? - MCFG_DEVICE_MODIFY("oki") - MCFG_DEVICE_CLOCK(CLOCK_1 / 8 / 2) -MACHINE_CONFIG_END + m_oki->set_clock(CLOCK_1 / 8 / 2); +} /***************************************************************************/ diff --git a/src/mame/drivers/tavernie.cpp b/src/mame/drivers/tavernie.cpp index 101a556e869..ec03e61a2bc 100644 --- a/src/mame/drivers/tavernie.cpp +++ b/src/mame/drivers/tavernie.cpp @@ -297,10 +297,11 @@ void tavernie_state::kbd_put(u8 data) m_pia_ivg->cb1_w(1); } -MACHINE_CONFIG_START(tavernie_state::cpu09) +void tavernie_state::cpu09(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", MC6809, 4_MHz_XTAL) - MCFG_DEVICE_PROGRAM_MAP(cpu09_mem) + MC6809(config, m_maincpu, 4_MHz_XTAL); + m_maincpu->set_addrmap(AS_PROGRAM, &tavernie_state::cpu09_mem); MCFG_MACHINE_RESET_OVERRIDE(tavernie_state, cpu09) /* sound hardware */ @@ -335,28 +336,27 @@ MACHINE_CONFIG_START(tavernie_state::cpu09) clock_device &acia_clock(CLOCK(config, "acia_clock", 153600)); acia_clock.signal_handler().set("acia", FUNC(acia6850_device::write_txc)); acia_clock.signal_handler().append("acia", FUNC(acia6850_device::write_rxc)); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(tavernie_state::ivg09) +void tavernie_state::ivg09(machine_config &config) +{ cpu09(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(ivg09_mem) + m_maincpu->set_addrmap(AS_PROGRAM, &tavernie_state::ivg09_mem); MCFG_MACHINE_RESET_OVERRIDE(tavernie_state, ivg09) /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_SIZE(80*8, 25*10) - MCFG_SCREEN_VISIBLE_AREA(0, 80*8-1, 0, 25*10-1) - MCFG_SCREEN_UPDATE_DEVICE("crtc", mc6845_device, screen_update) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_size(80*8, 25*10); + screen.set_visarea(0, 80*8-1, 0, 25*10-1); + screen.set_screen_update("crtc", FUNC(mc6845_device::screen_update)); PALETTE(config, m_palette, palette_device::MONOCHROME); config.set_default_layout(layout_tavernie); /* sound hardware */ - MCFG_DEVICE_ADD("beeper", BEEP, 950) // guess - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) + BEEP(config, m_beep, 950).add_route(ALL_OUTPUTS, "mono", 0.50); // guess /* Devices */ generic_keyboard_device &keyboard(GENERIC_KEYBOARD(config, "keyboard", 0)); @@ -371,11 +371,11 @@ MACHINE_CONFIG_START(tavernie_state::ivg09) PIA6821(config, m_pia_ivg, 0); m_pia_ivg->readpb_handler().set(FUNC(tavernie_state::pb_ivg_r)); m_pia_ivg->writepa_handler().set(FUNC(tavernie_state::pa_ivg_w)); - m_pia_ivg->cb2_handler().set("beeper", FUNC(beep_device::set_state)); + m_pia_ivg->cb2_handler().set(m_beep, FUNC(beep_device::set_state)); FD1795(config, m_fdc, 8_MHz_XTAL / 8); FLOPPY_CONNECTOR(config, "fdc:0", ifd09_floppies, "525dd", floppy_image_device::default_floppy_formats).enable_sound(true); -MACHINE_CONFIG_END +} /* ROM definition */ ROM_START( cpu09 ) diff --git a/src/mame/drivers/taxidriv.cpp b/src/mame/drivers/taxidriv.cpp index 4756ff18a1b..fc3e0af0d8c 100644 --- a/src/mame/drivers/taxidriv.cpp +++ b/src/mame/drivers/taxidriv.cpp @@ -332,21 +332,21 @@ void taxidriv_state::taxidriv_palette(palette_device &palette) const } } -MACHINE_CONFIG_START(taxidriv_state::taxidriv) - +void taxidriv_state::taxidriv(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80,4000000) /* 4 MHz ??? */ - MCFG_DEVICE_PROGRAM_MAP(main_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", taxidriv_state, irq0_line_hold) + Z80(config, m_maincpu, 4000000); /* 4 MHz ??? */ + m_maincpu->set_addrmap(AS_PROGRAM, &taxidriv_state::main_map); + m_maincpu->set_vblank_int("screen", FUNC(taxidriv_state::irq0_line_hold)); - MCFG_DEVICE_ADD("sub", Z80,4000000) /* 4 MHz ??? */ - MCFG_DEVICE_PROGRAM_MAP(cpu2_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", taxidriv_state, irq0_line_hold) /* ??? */ + z80_device &subcpu(Z80(config, "sub", 4000000)); /* 4 MHz ??? */ + subcpu.set_addrmap(AS_PROGRAM, &taxidriv_state::cpu2_map); + subcpu.set_vblank_int("screen", FUNC(taxidriv_state::irq0_line_hold)); /* ??? */ - MCFG_DEVICE_ADD("audiocpu", Z80,4000000) /* 4 MHz ??? */ - MCFG_DEVICE_PROGRAM_MAP(cpu3_map) - MCFG_DEVICE_IO_MAP(cpu3_port_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", taxidriv_state, irq0_line_hold) /* ??? */ + z80_device &audiocpu(Z80(config, "audiocpu", 4000000)); /* 4 MHz ??? */ + audiocpu.set_addrmap(AS_PROGRAM, &taxidriv_state::cpu3_map); + audiocpu.set_addrmap(AS_IO, &taxidriv_state::cpu3_port_map); + audiocpu.set_vblank_int("screen", FUNC(taxidriv_state::irq0_line_hold)); /* ??? */ config.m_minimum_quantum = attotime::from_hz(6000); /* 100 CPU slices per frame - a high value to ensure proper */ /* synchronization of the CPUs */ @@ -379,13 +379,13 @@ MACHINE_CONFIG_START(taxidriv_state::taxidriv) ppi4.out_pc_callback().set(FUNC(taxidriv_state::p4c_w)); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(32*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 27*8-1) - MCFG_SCREEN_UPDATE_DRIVER(taxidriv_state, screen_update) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(32*8, 32*8); + screen.set_visarea(0*8, 32*8-1, 1*8, 27*8-1); + screen.set_screen_update(FUNC(taxidriv_state::screen_update)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_taxidriv); PALETTE(config, m_palette, FUNC(taxidriv_state::taxidriv_palette), 16); @@ -401,7 +401,7 @@ MACHINE_CONFIG_START(taxidriv_state::taxidriv) ay8910_device &ay2(AY8910(config, "ay2", 1250000)); ay2.port_a_read_callback().set(FUNC(taxidriv_state::p8910_1a_r)); ay2.add_route(ALL_OUTPUTS, "mono", 0.25); -MACHINE_CONFIG_END +} diff --git a/src/mame/drivers/tdv2324.cpp b/src/mame/drivers/tdv2324.cpp index a183d2dc99b..bb0bd3abf13 100644 --- a/src/mame/drivers/tdv2324.cpp +++ b/src/mame/drivers/tdv2324.cpp @@ -261,21 +261,22 @@ static void tdv2324_floppies(device_slot_interface &device) //************************************************************************** //------------------------------------------------- -// MACHINE_CONFIG( tdv2324 ) +// machine_config( tdv2324 ) //------------------------------------------------- -MACHINE_CONFIG_START(tdv2324_state::tdv2324) +void tdv2324_state::tdv2324(machine_config &config) +{ // basic system hardware - MCFG_DEVICE_ADD(P8085AH_0_TAG, I8085A, 8700000/2) // ??? - MCFG_DEVICE_PROGRAM_MAP(tdv2324_mem) - MCFG_DEVICE_IO_MAP(tdv2324_io) + I8085A(config, m_maincpu, 8700000/2); // ??? + m_maincpu->set_addrmap(AS_PROGRAM, &tdv2324_state::tdv2324_mem); + m_maincpu->set_addrmap(AS_IO, &tdv2324_state::tdv2324_io); - MCFG_DEVICE_ADD(P8085AH_1_TAG, I8085A, 8000000/2) // ??? - MCFG_DEVICE_PROGRAM_MAP(tdv2324_sub_mem) - MCFG_DEVICE_IO_MAP(tdv2324_sub_io) + I8085A(config, m_subcpu, 8000000/2); // ??? + m_subcpu->set_addrmap(AS_PROGRAM, &tdv2324_state::tdv2324_sub_mem); + m_subcpu->set_addrmap(AS_IO, &tdv2324_state::tdv2324_sub_io); - MCFG_DEVICE_ADD(MC68B02P_TAG, M6802, 8000000/2) // ??? - MCFG_DEVICE_PROGRAM_MAP(tdv2324_fdc_mem) + M6802(config, m_fdccpu, 8000000/2); // ??? + m_fdccpu->set_addrmap(AS_PROGRAM, &tdv2324_state::tdv2324_fdc_mem); // video hardware screen_device &screen(SCREEN(config, SCREEN_TAG, SCREEN_TYPE_RASTER, rgb_t::green())); @@ -306,7 +307,7 @@ MACHINE_CONFIG_START(tdv2324_state::tdv2324) // software list SOFTWARE_LIST(config, "flop_list").set_original("tdv2324"); -MACHINE_CONFIG_END +} diff --git a/src/mame/drivers/tec1.cpp b/src/mame/drivers/tec1.cpp index f968b701f20..7d24f438830 100644 --- a/src/mame/drivers/tec1.cpp +++ b/src/mame/drivers/tec1.cpp @@ -420,20 +420,20 @@ INPUT_PORTS_END ***************************************************************************/ -MACHINE_CONFIG_START(tec1_state::tec1) +void tec1_state::tec1(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, 1000000) /* speed can be varied between 250kHz and 2MHz */ - MCFG_DEVICE_PROGRAM_MAP(tec1_map) - MCFG_DEVICE_IO_MAP(tec1_io) + Z80(config, m_maincpu, 1000000); /* speed can be varied between 250kHz and 2MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &tec1_state::tec1_map); + m_maincpu->set_addrmap(AS_IO, &tec1_state::tec1_io); /* video hardware */ config.set_default_layout(layout_tec1); /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) -MACHINE_CONFIG_END + SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.50); +} void tec1_state::tecjmon(machine_config &config) { @@ -447,7 +447,7 @@ void tec1_state::tecjmon(machine_config &config) /* sound hardware */ SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, "speaker").add_route(ALL_OUTPUTS, "mono", 0.50); + SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.50); WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.05); /* Devices */ diff --git a/src/mame/drivers/techno.cpp b/src/mame/drivers/techno.cpp index b7d193944aa..46b7715023e 100644 --- a/src/mame/drivers/techno.cpp +++ b/src/mame/drivers/techno.cpp @@ -288,18 +288,20 @@ void techno_state::machine_reset() m_maincpu->set_input_line(M68K_IRQ_1, CLEAR_LINE); } -MACHINE_CONFIG_START(techno_state::techno) +void techno_state::techno(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(8'000'000)) - MCFG_DEVICE_PROGRAM_MAP(techno_map) + M68000(config, m_maincpu, XTAL(8'000'000)); + m_maincpu->set_addrmap(AS_PROGRAM, &techno_state::techno_map); + NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); - //MCFG_DEVICE_ADD("cpu2", TMS7000, XTAL(4'000'000)) - //MCFG_DEVICE_PROGRAM_MAP(techno_sub_map) + //tms7000_device &cpu2(TMS7000(config, "cpu2", XTAL(4'000'000))); + //cpu2.set_addrmap(AS_PROGRAM, &techno_state::techno_sub_map); /* Video */ config.set_default_layout(layout_techno); -MACHINE_CONFIG_END +} ROM_START(xforce) ROM_REGION(0x10000, "maincpu", 0) diff --git a/src/mame/drivers/tecmo16.cpp b/src/mame/drivers/tecmo16.cpp index ba197fc828e..f2db7d3bb90 100644 --- a/src/mame/drivers/tecmo16.cpp +++ b/src/mame/drivers/tecmo16.cpp @@ -354,28 +354,28 @@ GFXDECODE_END #define MASTER_CLOCK XTAL(24'000'000) #define OKI_CLOCK XTAL(8'000'000) -MACHINE_CONFIG_START(tecmo16_state::fstarfrc) - +void tecmo16_state::fstarfrc(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000,MASTER_CLOCK/2) /* 12MHz */ - MCFG_DEVICE_PROGRAM_MAP(fstarfrc_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", tecmo16_state, irq5_line_hold) + M68000(config, m_maincpu, MASTER_CLOCK/2); /* 12MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &tecmo16_state::fstarfrc_map); + m_maincpu->set_vblank_int("screen", FUNC(tecmo16_state::irq5_line_hold)); - MCFG_DEVICE_ADD("audiocpu", Z80,MASTER_CLOCK/6) /* 4MHz */ - MCFG_DEVICE_PROGRAM_MAP(sound_map) + Z80(config, m_audiocpu, MASTER_CLOCK/6); /* 4MHz */ + m_audiocpu->set_addrmap(AS_PROGRAM, &tecmo16_state::sound_map); /* NMIs are triggered by the main CPU */ config.m_minimum_quantum = attotime::from_hz(600); /* video hardware */ BUFFERED_SPRITERAM16(config, m_spriteram); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(32*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(tecmo16_state, screen_update) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE("spriteram", buffered_spriteram16_device, vblank_copy_rising)) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0)); + m_screen->set_size(32*8, 32*8); + m_screen->set_visarea(0*8, 32*8-1, 2*8, 30*8-1); + m_screen->set_screen_update(FUNC(tecmo16_state::screen_update)); + m_screen->screen_vblank().set(m_spriteram, FUNC(buffered_spriteram16_device::vblank_copy_rising)); GFXDECODE(config, m_gfxdecode, m_palette, gfx_tecmo16); PALETTE(config, m_palette, palette_device::BLACK).set_format(palette_device::xBGR_444, 4096); @@ -402,26 +402,27 @@ MACHINE_CONFIG_START(tecmo16_state::fstarfrc) ymsnd.add_route(0, "lspeaker", 0.60); ymsnd.add_route(1, "rspeaker", 0.60); - MCFG_DEVICE_ADD("oki", OKIM6295, OKI_CLOCK/8, okim6295_device::PIN7_HIGH) // sample rate 1 MHz / 132 - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.40) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.40) -MACHINE_CONFIG_END + okim6295_device &oki(OKIM6295(config, "oki", OKI_CLOCK/8, okim6295_device::PIN7_HIGH)); // sample rate 1 MHz / 132 + oki.add_route(ALL_OUTPUTS, "lspeaker", 0.40); + oki.add_route(ALL_OUTPUTS, "rspeaker", 0.40); +} -MACHINE_CONFIG_START(tecmo16_state::ginkun) +void tecmo16_state::ginkun(machine_config &config) +{ fstarfrc(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(ginkun_map) + m_maincpu->set_addrmap(AS_PROGRAM, &tecmo16_state::ginkun_map); MCFG_VIDEO_START_OVERRIDE(tecmo16_state,ginkun) -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(tecmo16_state::riot) +void tecmo16_state::riot(machine_config &config) +{ ginkun(config); /* basic machine hardware */ MCFG_VIDEO_START_OVERRIDE(tecmo16_state,riot) -MACHINE_CONFIG_END +} /******************************************************************************/ diff --git a/src/mame/drivers/tek410x.cpp b/src/mame/drivers/tek410x.cpp index fa21406364e..c70f2a6fec4 100644 --- a/src/mame/drivers/tek410x.cpp +++ b/src/mame/drivers/tek410x.cpp @@ -97,23 +97,24 @@ void tek4107a_state::machine_start() /* Machine Driver */ -MACHINE_CONFIG_START(tek4107a_state::tek4107a) +void tek4107a_state::tek4107a(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD(I80188_TAG, I80188, 21000000) - MCFG_DEVICE_PROGRAM_MAP(tek4107a_mem) - MCFG_DEVICE_IO_MAP(tek4107a_io) + i80188_cpu_device &maincpu(I80188(config, I80188_TAG, 21000000)); + maincpu.set_addrmap(AS_PROGRAM, &tek4107a_state::tek4107a_mem); + maincpu.set_addrmap(AS_IO, &tek4107a_state::tek4107a_io); /* video hardware */ - MCFG_SCREEN_ADD(SCREEN_TAG, RASTER) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_UPDATE_DRIVER(tek4107a_state, screen_update) - MCFG_SCREEN_SIZE(640, 480) - MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) + screen_device &screen(SCREEN(config, SCREEN_TAG, SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_screen_update(FUNC(tek4107a_state::screen_update)); + screen.set_size(640, 480); + screen.set_visarea(0, 640-1, 0, 480-1); PALETTE(config, "palette").set_entries(64); GFXDECODE(config, "gfxdecode", "palette", gfx_tek4107a); -MACHINE_CONFIG_END +} void tek4107a_state::tek4109a(machine_config &config) { diff --git a/src/mame/drivers/tek440x.cpp b/src/mame/drivers/tek440x.cpp index 4c71fc1b4a3..3d43d6f98c3 100644 --- a/src/mame/drivers/tek440x.cpp +++ b/src/mame/drivers/tek440x.cpp @@ -193,24 +193,24 @@ INPUT_PORTS_END * *************************************/ -MACHINE_CONFIG_START(tek440x_state::tek4404) - +void tek440x_state::tek4404(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68010, 40_MHz_XTAL / 4) // MC68010L10 - MCFG_DEVICE_PROGRAM_MAP(maincpu_map) + M68010(config, m_maincpu, 40_MHz_XTAL / 4); // MC68010L10 + m_maincpu->set_addrmap(AS_PROGRAM, &tek440x_state::maincpu_map); - MCFG_DEVICE_ADD("fdccpu", M6502, 1000000) - MCFG_DEVICE_PROGRAM_MAP(fdccpu_map) + M6502(config, m_fdccpu, 1000000); + m_fdccpu->set_addrmap(AS_PROGRAM, &tek440x_state::fdccpu_map); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) - MCFG_SCREEN_SIZE(640, 480) - MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 479) - MCFG_SCREEN_UPDATE_DRIVER(tek440x_state, screen_update) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_video_attributes(VIDEO_UPDATE_BEFORE_VBLANK); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */); + screen.set_size(640, 480); + screen.set_visarea(0, 639, 0, 479); + screen.set_screen_update(FUNC(tek440x_state::screen_update)); + screen.set_palette("palette"); PALETTE(config, "palette", palette_device::MONOCHROME); mos6551_device &aica(MOS6551(config, "aica", 0)); @@ -227,9 +227,8 @@ MACHINE_CONFIG_START(tek440x_state::tek4404) SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("snsnd", SN76496, VIDEO_CLOCK / 8) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) -MACHINE_CONFIG_END + SN76496(config, "snsnd", VIDEO_CLOCK / 8).add_route(ALL_OUTPUTS, "mono", 0.80); +} diff --git a/src/mame/drivers/tekxp33x.cpp b/src/mame/drivers/tekxp33x.cpp index de2e0d3aad0..ed2e4bb74f1 100644 --- a/src/mame/drivers/tekxp33x.cpp +++ b/src/mame/drivers/tekxp33x.cpp @@ -97,25 +97,26 @@ void tekxp330_state::machine_start() /* Machine Driver */ -MACHINE_CONFIG_START(tekxp330_state::tekxp330) +void tekxp330_state::tekxp330(machine_config &config) +{ /* basic machine hardware */ r3052e_device &maincpu(R3052E(config, "maincpu", XTAL(20'000'000))); /* IDT 79R3052E, clock unknown */ maincpu.set_endianness(ENDIANNESS_BIG); maincpu.set_addrmap(AS_PROGRAM, &tekxp330_state::cpu_map); - MCFG_DEVICE_ADD("tms", TMS34010, XTAL(40'000'000)) /* clock unknown */ - MCFG_DEVICE_PROGRAM_MAP(tms_map) + tms34010_device &tms(TMS34010(config, "tms", XTAL(40'000'000))); /* clock unknown */ + tms.set_addrmap(AS_PROGRAM, &tekxp330_state::tms_map); /* video hardware */ - MCFG_SCREEN_ADD(SCREEN_TAG, RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_UPDATE_DRIVER(tekxp330_state, screen_update) - MCFG_SCREEN_SIZE(640, 480) - MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) - - MCFG_PALETTE_ADD("palette", 64) -MACHINE_CONFIG_END + screen_device &screen(SCREEN(config, SCREEN_TAG, SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_screen_update(FUNC(tekxp330_state::screen_update)); + screen.set_size(640, 480); + screen.set_visarea(0, 640-1, 0, 480-1); + + PALETTE(config, "palette").set_entries(64); +} /* ROMs */ diff --git a/src/mame/drivers/terco.cpp b/src/mame/drivers/terco.cpp index a169121c0f6..c4257a95d8f 100644 --- a/src/mame/drivers/terco.cpp +++ b/src/mame/drivers/terco.cpp @@ -295,15 +295,16 @@ void t4490_state::t4490_map(address_map &map) static INPUT_PORTS_START( t4490 ) INPUT_PORTS_END -MACHINE_CONFIG_START(t4490_state::t4490) - MCFG_DEVICE_ADD("maincpu", M6800, XTAL(8'000'000)/4) // divided by a MC6875 - MCFG_DEVICE_PROGRAM_MAP(t4490_map) +void t4490_state::t4490(machine_config &config) +{ + M6800(config, m_maincpu, XTAL(8'000'000)/4); // divided by a MC6875 + m_maincpu->set_addrmap(AS_PROGRAM, &t4490_state::t4490_map); /* devices */ - MCFG_DEVICE_ADD("pia1", PIA6821, 0) - MCFG_DEVICE_ADD("pia2", PIA6821, 0) - MCFG_DEVICE_ADD("acia", ACIA6850, 0) -MACHINE_CONFIG_END + PIA6821(config, m_pia1, 0); + PIA6821(config, m_pia2, 0); + ACIA6850(config, "acia", 0); +} ROM_START( t4490 ) ROM_REGION(0x10000, "maincpu", 0) diff --git a/src/mame/drivers/terminal.cpp b/src/mame/drivers/terminal.cpp index 202ce67e470..3cb8670861c 100644 --- a/src/mame/drivers/terminal.cpp +++ b/src/mame/drivers/terminal.cpp @@ -45,10 +45,11 @@ static INPUT_PORTS_START( terminal ) INPUT_PORTS_END -MACHINE_CONFIG_START( terminal_state::terminal ) - MCFG_DEVICE_ADD("maincpu", I8031, 12'000'000) - MCFG_DEVICE_PROGRAM_MAP(mem_map) -MACHINE_CONFIG_END +void terminal_state::terminal(machine_config &config) +{ + I8031(config, m_maincpu, 12'000'000); + m_maincpu->set_addrmap(AS_PROGRAM, &terminal_state::mem_map); +} /* ROM definition */ diff --git a/src/mame/drivers/terracre.cpp b/src/mame/drivers/terracre.cpp index b8f18c92070..745c79bf475 100644 --- a/src/mame/drivers/terracre.cpp +++ b/src/mame/drivers/terracre.cpp @@ -454,26 +454,27 @@ static GFXDECODE_START( gfx_terracre ) GFXDECODE_END -MACHINE_CONFIG_START(terracre_state::ym3526) - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(16'000'000)/2) // 8mhz - MCFG_DEVICE_PROGRAM_MAP(terracre_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", terracre_state, irq1_line_hold) - - MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(16'000'000)/4) // 4.0mhz when compared to sound recordings, should be derived from XTAL(22'000'000)? how? - MCFG_DEVICE_PROGRAM_MAP(sound_map) - MCFG_DEVICE_IO_MAP(sound_3526_io_map) - MCFG_DEVICE_PERIODIC_INT_DRIVER(terracre_state, irq0_line_hold, XTAL(16'000'000)/4/512) // ? - - MCFG_DEVICE_ADD("spriteram", BUFFERED_SPRITERAM16) - - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE( 60 ) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) - MCFG_SCREEN_SIZE(32*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(terracre_state, screen_update_amazon) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE("spriteram", buffered_spriteram16_device, vblank_copy_rising)) - MCFG_SCREEN_PALETTE(m_palette) +void terracre_state::ym3526(machine_config &config) +{ + M68000(config, m_maincpu, XTAL(16'000'000)/2); // 8mhz + m_maincpu->set_addrmap(AS_PROGRAM, &terracre_state::terracre_map); + m_maincpu->set_vblank_int("screen", FUNC(terracre_state::irq1_line_hold)); + + z80_device &audiocpu(Z80(config, "audiocpu", XTAL(16'000'000)/4)); // 4.0mhz when compared to sound recordings, should be derived from XTAL(22'000'000)? how? + audiocpu.set_addrmap(AS_PROGRAM, &terracre_state::sound_map); + audiocpu.set_addrmap(AS_IO, &terracre_state::sound_3526_io_map); + audiocpu.set_periodic_int(FUNC(terracre_state::irq0_line_hold), attotime::from_hz(XTAL(16'000'000)/4/512)); // ? + + BUFFERED_SPRITERAM16(config, m_spriteram); + + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */); + screen.set_size(32*8, 32*8); + screen.set_visarea(0*8, 32*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(terracre_state::screen_update_amazon)); + screen.screen_vblank().set(m_spriteram, FUNC(buffered_spriteram16_device::vblank_copy_rising)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_terracre); PALETTE(config, m_palette, FUNC(terracre_state::terracre_palette), 1*16+16*16+16*256, 256); @@ -482,43 +483,42 @@ MACHINE_CONFIG_START(terracre_state::ym3526) GENERIC_LATCH_8(config, m_soundlatch); - MCFG_DEVICE_ADD("ymsnd", YM3526, XTAL(16'000'000)/4) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0) + YM3526(config, "ymsnd", XTAL(16'000'000)/4).add_route(ALL_OUTPUTS, "speaker", 1.0); DAC_8BIT_R2R(config, "dac1", 0).add_route(ALL_OUTPUTS, "speaker", 0.5); // unknown DAC DAC_8BIT_R2R(config, "dac2", 0).add_route(ALL_OUTPUTS, "speaker", 0.5); // unknown DAC voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref")); vref.add_route(0, "dac1", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac1", -1.0, DAC_VREF_NEG_INPUT); vref.add_route(0, "dac2", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac2", -1.0, DAC_VREF_NEG_INPUT); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(terracre_state::ym2203) +void terracre_state::ym2203(machine_config &config) +{ ym3526(config); - MCFG_DEVICE_MODIFY("audiocpu") - MCFG_DEVICE_IO_MAP(sound_2203_io_map) + subdevice<z80_device>("audiocpu")->set_addrmap(AS_IO, &terracre_state::sound_2203_io_map); config.device_remove("ymsnd"); - MCFG_DEVICE_ADD("ym1", YM2203, XTAL(16'000'000)/4) - MCFG_SOUND_ROUTE(0, "speaker", 0.2) - MCFG_SOUND_ROUTE(1, "speaker", 0.2) - MCFG_SOUND_ROUTE(2, "speaker", 0.2) - MCFG_SOUND_ROUTE(3, "speaker", 0.4) -MACHINE_CONFIG_END + ym2203_device &ym1(YM2203(config, "ym1", XTAL(16'000'000)/4)); + ym1.add_route(0, "speaker", 0.2); + ym1.add_route(1, "speaker", 0.2); + ym1.add_route(2, "speaker", 0.2); + ym1.add_route(3, "speaker", 0.4); +} -MACHINE_CONFIG_START(terracre_state::amazon_base) +void terracre_state::amazon_base(machine_config &config) +{ ym3526(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(amazon_base_map) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, &terracre_state::amazon_base_map); +} -MACHINE_CONFIG_START(amazon_state::amazon_1412m2) +void amazon_state::amazon_1412m2(machine_config &config) +{ amazon_base(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(amazon_1412m2_map) + m_maincpu->set_addrmap(AS_PROGRAM, &amazon_state::amazon_1412m2_map); NB1412M2(config, m_prot, XTAL(16'000'000)); // divided by 4 maybe -MACHINE_CONFIG_END +} /************************************** diff --git a/src/mame/drivers/testpat.cpp b/src/mame/drivers/testpat.cpp index c11421ab3be..83c1d82c66f 100644 --- a/src/mame/drivers/testpat.cpp +++ b/src/mame/drivers/testpat.cpp @@ -103,8 +103,8 @@ INPUT_PORTS_END MACHINE_CONFIG_START(tp1983_state::tp1983) - MCFG_DEVICE_ADD("maincpu", NETLIST_CPU, NETLIST_CLOCK) - MCFG_NETLIST_SETUP(tp1983) + NETLIST_CPU(config, m_maincpu, NETLIST_CLOCK); + m_maincpu->set_constructor(netlist_tp1983); MCFG_NETLIST_ANALOG_OUTPUT("maincpu", "vid0", "videomix", fixedfreq_device, update_composite_monochrome, "fixfreq") @@ -116,11 +116,11 @@ MACHINE_CONFIG_START(tp1983_state::tp1983) m_video->set_fieldcount(1); m_video->set_threshold(1); m_video->set_gain(0.36); -MACHINE_CONFIG_END +} MACHINE_CONFIG_START(tp1985_state::tp1985) - MCFG_DEVICE_ADD("maincpu", NETLIST_CPU, NETLIST_CLOCK) - MCFG_NETLIST_SETUP(tp1985) + NETLIST_CPU(config, m_maincpu, NETLIST_CLOCK); + m_maincpu->set_constructor(netlist_tp1985); MCFG_NETLIST_ANALOG_OUTPUT("maincpu", "vid0", "videomix", tp1985_state, video_out_cb, "") diff --git a/src/mame/drivers/tetrisp2.cpp b/src/mame/drivers/tetrisp2.cpp index 62a2090ac11..5947f894901 100644 --- a/src/mame/drivers/tetrisp2.cpp +++ b/src/mame/drivers/tetrisp2.cpp @@ -1692,28 +1692,28 @@ void stepstag_state::init_stepstag() } -MACHINE_CONFIG_START(tetrisp2_state::tetrisp2) - +void tetrisp2_state::tetrisp2(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 12000000) - MCFG_DEVICE_PROGRAM_MAP(tetrisp2_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", tetrisp2_state, irq2_line_hold) + M68000(config, m_maincpu, 12000000); + m_maincpu->set_addrmap(AS_PROGRAM, &tetrisp2_state::tetrisp2_map); + m_maincpu->set_vblank_int("screen", FUNC(tetrisp2_state::irq2_line_hold)); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); WATCHDOG_TIMER(config, "watchdog").set_vblank_count("screen", 8); /* guess */ /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(0x140, 0xe0) - MCFG_SCREEN_VISIBLE_AREA(0, 0x140-1, 0, 0xe0-1) - MCFG_SCREEN_UPDATE_DRIVER(tetrisp2_state, screen_update_tetrisp2) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(0x140, 0xe0); + screen.set_visarea(0, 0x140-1, 0, 0xe0-1); + screen.set_screen_update(FUNC(tetrisp2_state::screen_update_tetrisp2)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_tetrisp2); - MCFG_PALETTE_ADD("palette", 0x8000) + PALETTE(config, m_palette).set_entries(0x8000); MCFG_VIDEO_START_OVERRIDE(tetrisp2_state,tetrisp2) @@ -1721,67 +1721,66 @@ MACHINE_CONFIG_START(tetrisp2_state::tetrisp2) SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); - MCFG_DEVICE_ADD("ymz", YMZ280B, 16934400) - MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) - MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) -MACHINE_CONFIG_END - + ymz280b_device &ymz(YMZ280B(config, "ymz", 16934400)); + ymz.add_route(0, "lspeaker", 1.0); + ymz.add_route(1, "rspeaker", 1.0); +} -MACHINE_CONFIG_START(tetrisp2_state::nndmseal) +void tetrisp2_state::nndmseal(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(12'000'000)) - MCFG_DEVICE_PROGRAM_MAP(nndmseal_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", tetrisp2_state, irq2_line_hold) + M68000(config, m_maincpu, XTAL(12'000'000)); + m_maincpu->set_addrmap(AS_PROGRAM, &tetrisp2_state::nndmseal_map); + m_maincpu->set_vblank_int("screen", FUNC(tetrisp2_state::irq2_line_hold)); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); WATCHDOG_TIMER(config, "watchdog"); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(0x180, 0xf0) - MCFG_SCREEN_VISIBLE_AREA(0, 0x180-1, 0, 0xf0-1) - MCFG_SCREEN_UPDATE_DRIVER(tetrisp2_state, screen_update_tetrisp2) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(0x180, 0xf0); + screen.set_visarea(0, 0x180-1, 0, 0xf0-1); + screen.set_screen_update(FUNC(tetrisp2_state::screen_update_tetrisp2)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_tetrisp2); - MCFG_PALETTE_ADD("palette", 0x8000) + PALETTE(config, m_palette).set_entries(0x8000); MCFG_VIDEO_START_OVERRIDE(tetrisp2_state,nndmseal) // bg layer offset /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(2'000'000), okim6295_device::PIN7_HIGH) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_CONFIG_END - + OKIM6295(config, "oki", XTAL(2'000'000), okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 1.0); +} -MACHINE_CONFIG_START(tetrisp2_state::rockn) +void tetrisp2_state::rockn(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 12000000) - MCFG_DEVICE_PROGRAM_MAP(rockn1_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", tetrisp2_state, irq2_line_hold) + M68000(config, m_maincpu, 12000000); + m_maincpu->set_addrmap(AS_PROGRAM, &tetrisp2_state::rockn1_map); + m_maincpu->set_vblank_int("screen", FUNC(tetrisp2_state::irq2_line_hold)); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); WATCHDOG_TIMER(config, "watchdog"); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(0x140, 0xe0) - MCFG_SCREEN_VISIBLE_AREA(0, 0x140-1, 0, 0xe0-1) - MCFG_SCREEN_UPDATE_DRIVER(tetrisp2_state, screen_update_rockntread) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(0x140, 0xe0); + screen.set_visarea(0, 0x140-1, 0, 0xe0-1); + screen.set_screen_update(FUNC(tetrisp2_state::screen_update_rockntread)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_tetrisp2); - MCFG_PALETTE_ADD("palette", 0x8000) + PALETTE(config, m_palette).set_entries(0x8000); MCFG_VIDEO_START_OVERRIDE(tetrisp2_state,rockntread) @@ -1789,34 +1788,34 @@ MACHINE_CONFIG_START(tetrisp2_state::rockn) SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); - MCFG_DEVICE_ADD("ymz", YMZ280B, 16934400) - MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) - MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) -MACHINE_CONFIG_END - + ymz280b_device &ymz(YMZ280B(config, "ymz", 16934400)); + ymz.add_route(0, "lspeaker", 1.0); + ymz.add_route(1, "rspeaker", 1.0); +} -MACHINE_CONFIG_START(tetrisp2_state::rockn2) +void tetrisp2_state::rockn2(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 12000000) - MCFG_DEVICE_PROGRAM_MAP(rockn2_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", tetrisp2_state, irq2_line_hold) + M68000(config, m_maincpu, 12000000); + m_maincpu->set_addrmap(AS_PROGRAM, &tetrisp2_state::rockn2_map); + m_maincpu->set_vblank_int("screen", FUNC(tetrisp2_state::irq2_line_hold)); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); WATCHDOG_TIMER(config, "watchdog"); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(0x140, 0xe0) - MCFG_SCREEN_VISIBLE_AREA(0, 0x140-1, 0, 0xe0-1) - MCFG_SCREEN_UPDATE_DRIVER(tetrisp2_state, screen_update_rockntread) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(0x140, 0xe0); + screen.set_visarea(0, 0x140-1, 0, 0xe0-1); + screen.set_screen_update(FUNC(tetrisp2_state::screen_update_rockntread)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_tetrisp2); - MCFG_PALETTE_ADD("palette", 0x8000) + PALETTE(config, m_palette).set_entries(0x8000); MCFG_VIDEO_START_OVERRIDE(tetrisp2_state,rockntread) @@ -1824,22 +1823,22 @@ MACHINE_CONFIG_START(tetrisp2_state::rockn2) SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); - MCFG_DEVICE_ADD("ymz", YMZ280B, 16934400) - MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) - MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) -MACHINE_CONFIG_END - + ymz280b_device &ymz(YMZ280B(config, "ymz", 16934400)); + ymz.add_route(0, "lspeaker", 1.0); + ymz.add_route(1, "rspeaker", 1.0); +} -MACHINE_CONFIG_START(tetrisp2_state::rocknms) +void tetrisp2_state::rocknms(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 12000000) - MCFG_DEVICE_PROGRAM_MAP(rocknms_main_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("lscreen", tetrisp2_state, irq2_line_hold) + M68000(config, m_maincpu, 12000000); + m_maincpu->set_addrmap(AS_PROGRAM, &tetrisp2_state::rocknms_main_map); + m_maincpu->set_vblank_int("lscreen", FUNC(tetrisp2_state::irq2_line_hold)); - MCFG_DEVICE_ADD("sub", M68000, 12000000) - MCFG_DEVICE_PROGRAM_MAP(rocknms_sub_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("lscreen", tetrisp2_state, irq2_line_hold) + M68000(config, m_subcpu, 12000000); + m_subcpu->set_addrmap(AS_PROGRAM, &tetrisp2_state::rocknms_sub_map); + m_subcpu->set_vblank_int("lscreen", FUNC(tetrisp2_state::irq2_line_hold)); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); @@ -1848,10 +1847,10 @@ MACHINE_CONFIG_START(tetrisp2_state::rocknms) /* video hardware */ GFXDECODE(config, m_gfxdecode, m_palette, gfx_tetrisp2); - MCFG_PALETTE_ADD("palette", 0x8000) + PALETTE(config, m_palette).set_entries(0x8000); GFXDECODE(config, m_sub_gfxdecode, m_sub_palette, gfx_rocknms_sub); - MCFG_PALETTE_ADD("sub_palette", 0x8000) + PALETTE(config, m_sub_palette).set_entries(0x8000); config.set_default_layout(layout_rocknms); @@ -1877,20 +1876,21 @@ MACHINE_CONFIG_START(tetrisp2_state::rocknms) SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); - MCFG_DEVICE_ADD("ymz", YMZ280B, 16934400) - MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) - MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) -MACHINE_CONFIG_END + ymz280b_device &ymz(YMZ280B(config, "ymz", 16934400)); + ymz.add_route(0, "lspeaker", 1.0); + ymz.add_route(1, "rspeaker", 1.0); +} -MACHINE_CONFIG_START(stepstag_state::stepstag) - MCFG_DEVICE_ADD("maincpu", M68000, 12000000 ) - MCFG_DEVICE_PROGRAM_MAP(stepstag_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("mscreen", tetrisp2_state, irq2_line_hold) // lev 4 triggered by system timer +void stepstag_state::stepstag(machine_config &config) +{ + M68000(config, m_maincpu, 12000000); + m_maincpu->set_addrmap(AS_PROGRAM, &stepstag_state::stepstag_map); + m_maincpu->set_vblank_int("mscreen", FUNC(tetrisp2_state::irq2_line_hold)); // lev 4 triggered by system timer - MCFG_DEVICE_ADD("sub", M68000, 16000000 ) //?? - MCFG_DEVICE_PROGRAM_MAP(stepstag_sub_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("lscreen", tetrisp2_state, irq4_line_hold) // lev 6 triggered by main CPU + M68000(config, m_subcpu, 16000000); //?? + m_subcpu->set_addrmap(AS_PROGRAM, &stepstag_state::stepstag_sub_map); + m_subcpu->set_vblank_int("lscreen", FUNC(tetrisp2_state::irq4_line_hold)); // lev 6 triggered by main CPU NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); @@ -1905,7 +1905,7 @@ MACHINE_CONFIG_START(stepstag_state::stepstag) lscreen.set_size(0x160, 0xf0); lscreen.set_visarea(0, 0x160-1, 0, 0xf0-1); lscreen.set_screen_update(FUNC(stepstag_state::screen_update_stepstag_left)); -// lscreen.set_palette("lpalette")); +// lscreen.set_palette(m_vj_palette_l)); screen_device &mscreen(SCREEN(config, "mscreen", SCREEN_TYPE_RASTER)); mscreen.set_orientation(ROT0); @@ -1914,7 +1914,7 @@ MACHINE_CONFIG_START(stepstag_state::stepstag) mscreen.set_size(0x160, 0xf0); mscreen.set_visarea(0, 0x160-1, 0, 0xf0-1); mscreen.set_screen_update(FUNC(stepstag_state::screen_update_stepstag_mid)); -// mscreen.set_palette("mpalette")); +// mscreen.set_palette(m_vj_palette_m)); screen_device &rscreen(SCREEN(config, "rscreen", SCREEN_TYPE_RASTER)); rscreen.set_orientation(ROT270);; @@ -1923,20 +1923,20 @@ MACHINE_CONFIG_START(stepstag_state::stepstag) rscreen.set_size(0x160, 0xf0); rscreen.set_visarea(0, 0x160-1, 0, 0xf0-1); rscreen.set_screen_update(FUNC(stepstag_state::screen_update_stepstag_right)); - rscreen.set_palette("rpalette"); + rscreen.set_palette(m_vj_palette_r); MCFG_VIDEO_START_OVERRIDE(stepstag_state, stepstag ) GFXDECODE(config, m_gfxdecode, m_palette, gfx_tetrisp2); - MCFG_PALETTE_ADD("palette", 0x8000) + PALETTE(config, m_palette).set_entries(0x8000); GFXDECODE(config, m_vj_gfxdecode_l, m_vj_palette_l, gfx_vj_lscreen); - MCFG_PALETTE_ADD("lpalette", 0x8000) + PALETTE(config, m_vj_palette_l).set_entries(0x8000); GFXDECODE(config, m_vj_gfxdecode_m, m_vj_palette_m, gfx_vj_mscreen); - MCFG_PALETTE_ADD("mpalette", 0x8000) + PALETTE(config, m_vj_palette_m).set_entries(0x8000); GFXDECODE(config, m_vj_gfxdecode_r, m_vj_palette_r, gfx_vj_rscreen); - MCFG_PALETTE_ADD("rpalette", 0x8000) + PALETTE(config, m_vj_palette_r).set_entries(0x8000); config.set_default_layout(layout_stepstag); @@ -1946,70 +1946,71 @@ MACHINE_CONFIG_START(stepstag_state::stepstag) GENERIC_LATCH_16(config, m_soundlatch); - MCFG_DEVICE_ADD("ymz", YMZ280B, 16934400) - MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) - MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) -MACHINE_CONFIG_END + ymz280b_device &ymz(YMZ280B(config, "ymz", 16934400)); + ymz.add_route(0, "lspeaker", 1.0); + ymz.add_route(1, "rspeaker", 1.0); +} -MACHINE_CONFIG_START(stepstag_state::vjdash) // 4 Screens - MCFG_DEVICE_ADD("maincpu", M68000, 12000000 ) - MCFG_DEVICE_PROGRAM_MAP(vjdash_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", tetrisp2_state, irq2_line_hold) // lev 4 triggered by system timer +void stepstag_state::vjdash(machine_config &config) // 4 Screens +{ + M68000(config, m_maincpu, 12000000); + m_maincpu->set_addrmap(AS_PROGRAM, &stepstag_state::vjdash_map); + m_maincpu->set_vblank_int("screen", FUNC(tetrisp2_state::irq2_line_hold)); // lev 4 triggered by system timer - MCFG_DEVICE_ADD("sub", M68000, 16000000 ) //?? - MCFG_DEVICE_PROGRAM_MAP(stepstag_sub_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("mscreen", tetrisp2_state, irq4_line_hold) // lev 6 triggered by main CPU + M68000(config, m_subcpu, 16000000); //?? + m_subcpu->set_addrmap(AS_PROGRAM, &stepstag_state::stepstag_sub_map); + m_subcpu->set_vblank_int("mscreen", FUNC(tetrisp2_state::irq4_line_hold)); // lev 6 triggered by main CPU NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); WATCHDOG_TIMER(config, "watchdog"); // video hardware - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(0x160, 0xf0) - MCFG_SCREEN_VISIBLE_AREA(0, 0x140-1, 0, 0xe0-1) - MCFG_SCREEN_UPDATE_DRIVER(stepstag_state, screen_update_stepstag_main) -// MCFG_SCREEN_UPDATE_DRIVER(tetrisp2_state, screen_update_rockntread) - MCFG_SCREEN_PALETTE("palette") - - MCFG_SCREEN_ADD("lscreen", RASTER) - MCFG_SCREEN_REFRESH_RATE(30) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(0x160, 0xf0) - MCFG_SCREEN_VISIBLE_AREA(0, 0x160-1, 0, 0xf0-1) - MCFG_SCREEN_UPDATE_DRIVER(stepstag_state, screen_update_stepstag_left) -// MCFG_SCREEN_PALETTE("lpalette") - - MCFG_SCREEN_ADD("mscreen", RASTER) - MCFG_SCREEN_REFRESH_RATE(30) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(0x160, 0xf0) - MCFG_SCREEN_VISIBLE_AREA(0, 0x160-1, 0, 0xf0-1) - MCFG_SCREEN_UPDATE_DRIVER(stepstag_state, screen_update_stepstag_mid) -// MCFG_SCREEN_PALETTE("mpalette") - - MCFG_SCREEN_ADD("rscreen", RASTER) - MCFG_SCREEN_REFRESH_RATE(30) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(0x160, 0xf0) - MCFG_SCREEN_VISIBLE_AREA(0, 0x160-1, 0, 0xf0-1) - MCFG_SCREEN_UPDATE_DRIVER(stepstag_state, screen_update_stepstag_right) - MCFG_SCREEN_PALETTE("rpalette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(0x160, 0xf0); + screen.set_visarea(0, 0x140-1, 0, 0xe0-1); + screen.set_screen_update(FUNC(stepstag_state::screen_update_stepstag_main)); +// screen.set_screen_update(FUNC(tetrisp2_state::screen_update_rockntread)); + screen.set_palette(m_palette); + + screen_device &lscreen(SCREEN(config, "lscreen", SCREEN_TYPE_RASTER)); + lscreen.set_refresh_hz(30); + lscreen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + lscreen.set_size(0x160, 0xf0); + lscreen.set_visarea(0, 0x160-1, 0, 0xf0-1); + lscreen.set_screen_update(FUNC(stepstag_state::screen_update_stepstag_left)); +// lscreen.set_palette(m_vj_palette_l); + + screen_device &mscreen(SCREEN(config, "mscreen", SCREEN_TYPE_RASTER)); + mscreen.set_refresh_hz(30); + mscreen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + mscreen.set_size(0x160, 0xf0); + mscreen.set_visarea(0, 0x160-1, 0, 0xf0-1); + mscreen.set_screen_update(FUNC(stepstag_state::screen_update_stepstag_mid)); +// mscreen.set_palette(m_vj_palette_m); + + screen_device &rscreen(SCREEN(config, "rscreen", SCREEN_TYPE_RASTER)); + rscreen.set_refresh_hz(30); + rscreen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + rscreen.set_size(0x160, 0xf0); + rscreen.set_visarea(0, 0x160-1, 0, 0xf0-1); + rscreen.set_screen_update(FUNC(stepstag_state::screen_update_stepstag_right)); + rscreen.set_palette(m_vj_palette_r); MCFG_VIDEO_START_OVERRIDE(stepstag_state, stepstag ) GFXDECODE(config, m_gfxdecode, m_palette, gfx_tetrisp2); - MCFG_PALETTE_ADD("palette", 0x8000) + PALETTE(config, m_palette).set_entries(0x8000); GFXDECODE(config, m_vj_gfxdecode_l, m_vj_palette_l, gfx_vj_lscreen); - MCFG_PALETTE_ADD("lpalette", 0x8000) + PALETTE(config, m_vj_palette_l).set_entries(0x8000); GFXDECODE(config, m_vj_gfxdecode_m, m_vj_palette_m, gfx_vj_mscreen); - MCFG_PALETTE_ADD("mpalette", 0x8000) + PALETTE(config, m_vj_palette_m).set_entries(0x8000); GFXDECODE(config, m_vj_gfxdecode_r, m_vj_palette_r, gfx_vj_rscreen); - MCFG_PALETTE_ADD("rpalette", 0x8000) + PALETTE(config, m_vj_palette_r).set_entries(0x8000); config.set_default_layout(layout_vjdash); @@ -2019,10 +2020,10 @@ MACHINE_CONFIG_START(stepstag_state::vjdash) // 4 Screens GENERIC_LATCH_16(config, m_soundlatch); - MCFG_DEVICE_ADD("ymz", YMZ280B, 16934400) - MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) - MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) -MACHINE_CONFIG_END + ymz280b_device &ymz(YMZ280B(config, "ymz", 16934400)); + ymz.add_route(0, "lspeaker", 1.0); + ymz.add_route(1, "rspeaker", 1.0); +} /*************************************************************************** diff --git a/src/mame/drivers/tg100.cpp b/src/mame/drivers/tg100.cpp index 4f047d21d19..aeca288be89 100644 --- a/src/mame/drivers/tg100.cpp +++ b/src/mame/drivers/tg100.cpp @@ -73,21 +73,21 @@ void tg100_state::ymw258_map(address_map &map) map(0x000000, 0x1fffff).rom(); } -MACHINE_CONFIG_START(tg100_state::tg100) +void tg100_state::tg100(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", H83002, XTAL(20'000'000)) /* TODO: correct CPU type (H8/520) */ - MCFG_DEVICE_PROGRAM_MAP( tg100_map ) - MCFG_DEVICE_IO_MAP( tg100_io_map ) + H83002(config, m_maincpu, XTAL(20'000'000)); /* TODO: correct CPU type (H8/520) */ + m_maincpu->set_addrmap(AS_PROGRAM, &tg100_state::tg100_map); + m_maincpu->set_addrmap(AS_IO, &tg100_state::tg100_io_map); SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); - MCFG_DEVICE_ADD("ymw258", MULTIPCM, 9400000) - MCFG_DEVICE_ADDRESS_MAP(0, ymw258_map) - MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) - MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) - -MACHINE_CONFIG_END + MULTIPCM(config, m_ymw258, 9400000); + m_ymw258->set_addrmap(0, ymw258_map); + m_ymw258->add_route(0, "lspeaker", 1.0); + m_ymw258->add_route(1, "rspeaker", 1.0); +} ROM_START( tg100 ) diff --git a/src/mame/drivers/tgtpanic.cpp b/src/mame/drivers/tgtpanic.cpp index 33d194bea99..faeffcb562e 100644 --- a/src/mame/drivers/tgtpanic.cpp +++ b/src/mame/drivers/tgtpanic.cpp @@ -153,22 +153,22 @@ INPUT_PORTS_END * *************************************/ -MACHINE_CONFIG_START(tgtpanic_state::tgtpanic) - +void tgtpanic_state::tgtpanic(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, XTAL(4'000'000)) - MCFG_DEVICE_PROGRAM_MAP(prg_map) - MCFG_DEVICE_IO_MAP(io_map) - MCFG_DEVICE_PERIODIC_INT_DRIVER(tgtpanic_state, irq0_line_hold, 20) /* Unverified */ + Z80(config,m_maincpu, XTAL(4'000'000)); + m_maincpu->set_addrmap(AS_PROGRAM, &tgtpanic_state::prg_map); + m_maincpu->set_addrmap(AS_IO, &tgtpanic_state::io_map); + m_maincpu->set_periodic_int(FUNC(tgtpanic_state::irq0_line_hold), attotime::from_hz(20)); /* Unverified */ /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) /* Unverified */ - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* Unverified */ - MCFG_SCREEN_SIZE(256, 256) - MCFG_SCREEN_VISIBLE_AREA(0, 192 - 1, 0, 192 - 1) - MCFG_SCREEN_UPDATE_DRIVER(tgtpanic_state, screen_update) -MACHINE_CONFIG_END + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); /* Unverified */ + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* Unverified */ + m_screen->set_size(256, 256); + m_screen->set_visarea(0, 192 - 1, 0, 192 - 1); + m_screen->set_screen_update(FUNC(tgtpanic_state::screen_update)); +} /************************************* diff --git a/src/mame/drivers/thedealr.cpp b/src/mame/drivers/thedealr.cpp index 8b3c140d685..2519435c9fd 100644 --- a/src/mame/drivers/thedealr.cpp +++ b/src/mame/drivers/thedealr.cpp @@ -75,7 +75,7 @@ private: uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); DECLARE_WRITE_LINE_MEMBER(screen_vblank); - void thedealr(address_map &map); + void thedealr_main(address_map &map); void thedealr_sub(address_map &map); virtual void machine_start() override; @@ -282,7 +282,7 @@ WRITE8_MEMBER(thedealr_state::unk_w) // popmessage("UNK %02x", data); } -void thedealr_state::thedealr(address_map &map) +void thedealr_state::thedealr_main(address_map &map) { map(0x0000, 0x07ff).ram().share("nvram"); @@ -540,15 +540,16 @@ TIMER_DEVICE_CALLBACK_MEMBER(thedealr_state::thedealr_interrupt) m_maincpu->set_input_line(INPUT_LINE_IRQ0, ASSERT_LINE); } -MACHINE_CONFIG_START(thedealr_state::thedealr) - +void thedealr_state::thedealr(machine_config &config) +{ // basic machine hardware - MCFG_DEVICE_ADD("maincpu", R65C02, XTAL(16'000'000)/8) // 2 MHz? - MCFG_DEVICE_PROGRAM_MAP(thedealr) + R65C02(config, m_maincpu, XTAL(16'000'000)/8); // 2 MHz? + m_maincpu->set_addrmap(AS_PROGRAM, &thedealr_state::thedealr_main); + TIMER(config, "scantimer").configure_scanline(FUNC(thedealr_state::thedealr_interrupt), "screen", 0, 1); - MCFG_DEVICE_ADD("subcpu", R65C02, XTAL(16'000'000)/8) // 2 MHz? - MCFG_DEVICE_PROGRAM_MAP(thedealr_sub) + R65C02(config, m_subcpu, XTAL(16'000'000)/8); // 2 MHz? + m_subcpu->set_addrmap(AS_PROGRAM, &thedealr_state::thedealr_sub); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); @@ -577,7 +578,7 @@ MACHINE_CONFIG_START(thedealr_state::thedealr) aysnd.port_a_read_callback().set_ioport("DSW2"); aysnd.port_b_read_callback().set_ioport("DSW1"); aysnd.add_route(ALL_OUTPUTS, "mono", 0.50); -MACHINE_CONFIG_END +} /*************************************************************************** diff --git a/src/mame/drivers/thepit.cpp b/src/mame/drivers/thepit.cpp index 0e90466fbad..b159ad2f1bf 100644 --- a/src/mame/drivers/thepit.cpp +++ b/src/mame/drivers/thepit.cpp @@ -715,17 +715,17 @@ INTERRUPT_GEN_MEMBER(thepit_state::vblank_irq) device.execute().set_input_line(INPUT_LINE_NMI, ASSERT_LINE); } -MACHINE_CONFIG_START(thepit_state::thepit) - +void thepit_state::thepit(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, PIXEL_CLOCK/2) /* 3.072 MHz */ - MCFG_DEVICE_PROGRAM_MAP(thepit_main_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", thepit_state, vblank_irq) + Z80(config, m_maincpu, PIXEL_CLOCK/2); /* 3.072 MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &thepit_state::thepit_main_map); + m_maincpu->set_vblank_int("screen", FUNC(thepit_state::vblank_irq)); - MCFG_DEVICE_ADD("audiocpu", Z80, SOUND_CLOCK/4) /* 2.5 MHz */ - MCFG_DEVICE_PROGRAM_MAP(audio_map) - MCFG_DEVICE_IO_MAP(audio_io_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", thepit_state, irq0_line_hold) + z80_device &audiocpu(Z80(config, "audiocpu", SOUND_CLOCK/4)); /* 2.5 MHz */ + audiocpu.set_addrmap(AS_PROGRAM, &thepit_state::audio_map); + audiocpu.set_addrmap(AS_IO, &thepit_state::audio_io_map); + audiocpu.set_vblank_int("screen", FUNC(thepit_state::irq0_line_hold)); LS259(config, m_mainlatch); // IC42 m_mainlatch->q_out_cb<0>().set(FUNC(thepit_state::nmi_mask_w)); @@ -740,10 +740,10 @@ MACHINE_CONFIG_START(thepit_state::thepit) GFXDECODE(config, m_gfxdecode, m_palette, gfx_thepit); PALETTE(config, m_palette, FUNC(thepit_state::thepit_palette), 32+8); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) - MCFG_SCREEN_UPDATE_DRIVER(thepit_state, screen_update) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_raw(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART); + screen.set_screen_update(FUNC(thepit_state::screen_update)); + screen.set_palette(m_palette); /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -755,7 +755,7 @@ MACHINE_CONFIG_START(thepit_state::thepit) ay1.add_route(ALL_OUTPUTS, "mono", 0.25); AY8910(config, "ay2", PIXEL_CLOCK/4).add_route(ALL_OUTPUTS, "mono", 0.25); -MACHINE_CONFIG_END +} void thepit_state::fitter(machine_config &config) { @@ -763,32 +763,31 @@ void thepit_state::fitter(machine_config &config) m_mainlatch->q_out_cb<2>().set(FUNC(thepit_state::coin_lockout_w)); } -MACHINE_CONFIG_START(thepit_state::desertdn) +void thepit_state::desertdn(machine_config &config) +{ fitter(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(desertdan_main_map) + m_maincpu->set_addrmap(AS_PROGRAM, &thepit_state::desertdan_main_map); /* video hardware */ - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_DRIVER(thepit_state, screen_update_desertdan) + subdevice<screen_device>("screen")->set_screen_update(FUNC(thepit_state::screen_update_desertdan)); m_gfxdecode->set_info(gfx_intrepid); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(thepit_state::intrepid) +void thepit_state::intrepid(machine_config &config) +{ fitter(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(intrepid_main_map) + m_maincpu->set_addrmap(AS_PROGRAM, &thepit_state::intrepid_main_map); m_mainlatch->q_out_cb<5>().set(FUNC(thepit_state::intrepid_graphics_bank_w)); /* video hardware */ m_gfxdecode->set_info(gfx_intrepid); -MACHINE_CONFIG_END +} void thepit_state::suprmous(machine_config &config) diff --git a/src/mame/drivers/thomson.cpp b/src/mame/drivers/thomson.cpp index ee0bcb3e5f0..a096c39acf7 100644 --- a/src/mame/drivers/thomson.cpp +++ b/src/mame/drivers/thomson.cpp @@ -300,7 +300,7 @@ T9000 (1980) Early TO7 prototype. The hardware seems to be the exactly same. Only the BIOS is different. It has some bug that were corrected later for the TO7. -Actually, the two computers are undistinguishable, except for the different +Actually, the two computers are indistinguishable, except for the different startup screen, and a couple BIOS addresses. They can run the same software and accept the same devices and extensions. @@ -309,7 +309,7 @@ They can run the same software and accept the same devices and extensions. /* ------------ address maps ------------ */ -void thomson_state::to7(address_map &map) +void thomson_state::to7_map(address_map &map) { map(0x0000, 0x3fff).bankr(THOM_CART_BANK).w(FUNC(thomson_state::to7_cartridge_w)); /* 4 * 16 KB */ @@ -625,22 +625,21 @@ MACHINE_CONFIG_START(thomson_state::to7_base) MCFG_MACHINE_RESET_OVERRIDE( thomson_state, to7 ) /* cpu */ - MCFG_DEVICE_ADD("maincpu", MC6809E, 16_MHz_XTAL / 16) - MCFG_DEVICE_PROGRAM_MAP(to7) + MC6809E(config, m_maincpu, 16_MHz_XTAL / 16); + m_maincpu->set_addrmap(AS_PROGRAM, &thomson_state::to7_map); INPUT_MERGER_ANY_HIGH(config, "mainirq").output_handler().set_inputline(m_maincpu, M6809_IRQ_LINE); INPUT_MERGER_ANY_HIGH(config, "mainfirq").output_handler().set_inputline(m_maincpu, M6809_FIRQ_LINE); /* video */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE ( /*50*/ 1./0.019968 ) - MCFG_SCREEN_SIZE ( THOM_TOTAL_WIDTH * 2, THOM_TOTAL_HEIGHT ) - MCFG_SCREEN_VISIBLE_AREA ( 0, THOM_TOTAL_WIDTH * 2 - 1, - 0, THOM_TOTAL_HEIGHT - 1 ) - MCFG_SCREEN_UPDATE_DRIVER( thomson_state, screen_update_thom ) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, thomson_state, thom_vblank)) - MCFG_SCREEN_PALETTE("palette") + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(/*50*/ 1./0.019968); + m_screen->set_size(THOM_TOTAL_WIDTH * 2, THOM_TOTAL_HEIGHT); + m_screen->set_visarea(0, THOM_TOTAL_WIDTH * 2 - 1, 0, THOM_TOTAL_HEIGHT - 1); + m_screen->set_screen_update(FUNC(thomson_state::screen_update_thom)); + m_screen->screen_vblank().set(FUNC(thomson_state::thom_vblank)); + m_screen->set_palette("palette"); PALETTE(config, "palette", FUNC(thomson_state::thom_palette), 4097); // 12-bit color + transparency MCFG_VIDEO_START_OVERRIDE( thomson_state, thom ) @@ -655,8 +654,7 @@ MACHINE_CONFIG_START(thomson_state::to7_base) vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT); /* speech synthesis */ - MCFG_DEVICE_ADD("mea8000", MEA8000, 3840000) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0) + MEA8000(config, m_mea8000, 3840000).add_route(ALL_OUTPUTS, "speaker", 1.0); /* cassette */ CASSETTE(config, m_cassette); @@ -665,7 +663,7 @@ MACHINE_CONFIG_START(thomson_state::to7_base) m_cassette->set_interface("to_cass"); /* floppy */ - MCFG_DEVICE_ADD("mc6843", MC6843, 16_MHz_XTAL / 16 / 2) + MC6843(config, m_mc6843, 16_MHz_XTAL / 16 / 2); LEGACY_FLOPPY(config, m_floppy_image[0], 0, &thomson_floppy_interface); m_floppy_image[0]->out_idx_cb().set(FUNC(thomson_state::fdc_index_0_w)); @@ -819,7 +817,7 @@ In arabic mode, Ctrl+E / Ctrl+X to start / stop typing in-line latin. **********************************************************************/ -void thomson_state::to770(address_map &map) +void thomson_state::to770_map(address_map &map) { map(0x0000, 0x3fff).bankr(THOM_CART_BANK).w(FUNC(thomson_state::to7_cartridge_w)); /* 4 * 16 KB */ @@ -924,13 +922,13 @@ INPUT_PORTS_END /* ------------ driver ------------ */ -MACHINE_CONFIG_START(thomson_state::to770) +void thomson_state::to770(machine_config &config) +{ to7(config); MCFG_MACHINE_START_OVERRIDE( thomson_state, to770 ) MCFG_MACHINE_RESET_OVERRIDE( thomson_state, to770 ) - MCFG_DEVICE_MODIFY( "maincpu" ) - MCFG_DEVICE_PROGRAM_MAP ( to770) + m_maincpu->set_addrmap(AS_PROGRAM, &thomson_state::to770_map); m_pia_sys->readpa_handler().set(FUNC(thomson_state::to770_sys_porta_in)); m_pia_sys->readpb_handler().set_constant(0); @@ -944,7 +942,7 @@ MACHINE_CONFIG_START(thomson_state::to770) SOFTWARE_LIST(config, "t770_cart_list").set_original("to770_cart"); SOFTWARE_LIST(config.replace(), "to7_cart_list").set_compatible("to7_cart"); -MACHINE_CONFIG_END +} void thomson_state::to770a(machine_config &config) { @@ -1017,7 +1015,7 @@ Differences include: **********************************************************************/ -void thomson_state::mo5(address_map &map) +void thomson_state::mo5_map(address_map &map) { map(0x0000, 0x1fff).bankr(THOM_VRAM_BANK).w(FUNC(thomson_state::to770_vram_w)); @@ -1118,8 +1116,7 @@ MACHINE_CONFIG_START(thomson_state::mo5) MCFG_MACHINE_START_OVERRIDE( thomson_state, mo5 ) MCFG_MACHINE_RESET_OVERRIDE( thomson_state, mo5 ) - MCFG_DEVICE_MODIFY( "maincpu" ) - MCFG_DEVICE_PROGRAM_MAP ( mo5) + m_maincpu->set_addrmap(AS_PROGRAM, &thomson_state::mo5_map); m_cassette->set_formats(mo5_cassette_formats); m_cassette->set_interface("mo_cass"); @@ -1153,9 +1150,10 @@ MACHINE_CONFIG_START(thomson_state::mo5) m_ram->set_default_size("112K"); MACHINE_CONFIG_END -MACHINE_CONFIG_START(thomson_state::mo5e) +void thomson_state::mo5e(machine_config &config) +{ mo5(config); -MACHINE_CONFIG_END +} COMP( 1984, mo5, 0, 0, mo5, mo5, thomson_state, empty_init, "Thomson", "MO5", 0 ) @@ -1235,7 +1233,7 @@ It was replaced quickly with the improved TO9+. **********************************************************************/ -void thomson_state::to9(address_map &map) +void thomson_state::to9_map(address_map &map) { map(0x0000, 0x3fff).bankr(THOM_CART_BANK).w(FUNC(thomson_state::to9_cartridge_w));/* 4 * 16 KB */ @@ -1470,14 +1468,14 @@ INPUT_PORTS_END /* ------------ driver ------------ */ -MACHINE_CONFIG_START(thomson_state::to9) +void thomson_state::to9(machine_config &config) +{ to7(config); MCFG_MACHINE_START_OVERRIDE( thomson_state, to9 ) MCFG_MACHINE_RESET_OVERRIDE( thomson_state, to9 ) - MCFG_DEVICE_MODIFY( "maincpu" ) - MCFG_DEVICE_PROGRAM_MAP ( to9) + m_maincpu->set_addrmap(AS_PROGRAM, &thomson_state::to9_map); m_pia_sys->readpa_handler().set(FUNC(thomson_state::to9_sys_porta_in)); m_pia_sys->readpb_handler().set_constant(0); @@ -1493,7 +1491,7 @@ MACHINE_CONFIG_START(thomson_state::to9) /* internal ram */ m_ram->set_default_size("192K").set_extra_options("128K"); -MACHINE_CONFIG_END +} COMP( 1985, to9, 0, 0, to9, to9, thomson_state, empty_init, "Thomson", "TO9", MACHINE_IMPERFECT_COLORS ) @@ -1562,7 +1560,7 @@ The TO8D is simply a TO8 with an integrated 3"1/2 floppy drive. **********************************************************************/ -void thomson_state::to8(address_map &map) +void thomson_state::to8_map(address_map &map) { map(0x0000, 0x3fff).bankr(THOM_CART_BANK).w(FUNC(thomson_state::to8_cartridge_w)); /* 4 * 16 KB */ @@ -1691,15 +1689,15 @@ INPUT_PORTS_END /* ------------ driver ------------ */ -MACHINE_CONFIG_START(thomson_state::to8) +void thomson_state::to8(machine_config &config) +{ to7(config); MCFG_MACHINE_START_OVERRIDE( thomson_state, to8 ) MCFG_MACHINE_RESET_OVERRIDE( thomson_state, to8 ) - MCFG_DEVICE_MODIFY( "maincpu" ) - MCFG_DEVICE_PROGRAM_MAP ( to8) + m_maincpu->set_addrmap(AS_PROGRAM, &thomson_state::to8_map); - //MCFG_DEVICE_ADD("kbdmcu", MC6804, 11_MHz_XTAL) + //MC6804(config, "kbdmcu", 11_MHz_XTAL); m_pia_sys->readpa_handler().set(FUNC(thomson_state::to8_sys_porta_in)); m_pia_sys->readpb_handler().set_constant(0); @@ -1722,7 +1720,7 @@ MACHINE_CONFIG_START(thomson_state::to8) SOFTWARE_LIST(config, "to8_qd_list").set_original("to8_qd"); SOFTWARE_LIST(config.replace(), "to7_cass_list").set_compatible("to7_cass"); SOFTWARE_LIST(config.replace(), "to7_qd_list").set_compatible("to7_qd"); -MACHINE_CONFIG_END +} void thomson_state::to8d(machine_config &config) { @@ -1772,7 +1770,7 @@ The differences with the TO8 are: **********************************************************************/ -void thomson_state::to9p(address_map &map) +void thomson_state::to9p_map(address_map &map) { map(0x0000, 0x3fff).bankr(THOM_CART_BANK).w(FUNC(thomson_state::to8_cartridge_w)); /* 4 * 16 KB */ @@ -1853,13 +1851,13 @@ INPUT_PORTS_END /* ------------ driver ------------ */ -MACHINE_CONFIG_START(thomson_state::to9p) +void thomson_state::to9p(machine_config &config) +{ to7(config); MCFG_MACHINE_START_OVERRIDE( thomson_state, to9p ) MCFG_MACHINE_RESET_OVERRIDE( thomson_state, to9p ) - MCFG_DEVICE_MODIFY( "maincpu" ) - MCFG_DEVICE_PROGRAM_MAP ( to9p) + m_maincpu->set_addrmap(AS_PROGRAM, &thomson_state::to9p_map); m_pia_sys->readpa_handler().set(FUNC(thomson_state::to8_sys_porta_in)); m_pia_sys->readpb_handler().set_constant(0); @@ -1883,7 +1881,7 @@ MACHINE_CONFIG_START(thomson_state::to9p) SOFTWARE_LIST(config, "to8_qd_list").set_original("to8_qd"); SOFTWARE_LIST(config.replace(), "to7_cass_list").set_compatible("to7_cass"); SOFTWARE_LIST(config.replace(), "to7_qd_list").set_compatible("to7_qd"); -MACHINE_CONFIG_END +} COMP( 1986, to9p, 0, 0, to9p, to9p, thomson_state, empty_init, "Thomson", "TO9+", 0 ) @@ -1947,7 +1945,7 @@ a PC XT. **********************************************************************/ -void thomson_state::mo6(address_map &map) +void thomson_state::mo6_map(address_map &map) { map(0x0000, 0x1fff).bankr(THOM_VRAM_BANK).w(FUNC(thomson_state::to770_vram_w)); @@ -2201,8 +2199,7 @@ MACHINE_CONFIG_START(thomson_state::mo6) MCFG_MACHINE_START_OVERRIDE( thomson_state, mo6 ) MCFG_MACHINE_RESET_OVERRIDE( thomson_state, mo6 ) - MCFG_DEVICE_MODIFY( "maincpu" ) - MCFG_DEVICE_PROGRAM_MAP ( mo6) + m_maincpu->set_addrmap(AS_PROGRAM, &thomson_state::mo6_map); m_cassette->set_formats(mo5_cassette_formats); m_cassette->set_interface("mo_cass"); @@ -2297,7 +2294,7 @@ Here are the differences between the MO6 and MO5NR: **********************************************************************/ -void thomson_state::mo5nr(address_map &map) +void thomson_state::mo5nr_map(address_map &map) { map(0x0000, 0x1fff).bankr(THOM_VRAM_BANK).w(FUNC(thomson_state::to770_vram_w)); @@ -2467,8 +2464,7 @@ MACHINE_CONFIG_START(thomson_state::mo5nr) MCFG_MACHINE_START_OVERRIDE( thomson_state, mo5nr ) MCFG_MACHINE_RESET_OVERRIDE( thomson_state, mo5nr ) - MCFG_DEVICE_MODIFY( "maincpu" ) - MCFG_DEVICE_PROGRAM_MAP ( mo5nr) + m_maincpu->set_addrmap(AS_PROGRAM, &thomson_state::mo5nr_map); m_cassette->set_formats(mo5_cassette_formats); m_cassette->set_interface("mo_cass"); diff --git a/src/mame/drivers/thoop2.cpp b/src/mame/drivers/thoop2.cpp index 626b61066ed..b3f201a1ec2 100644 --- a/src/mame/drivers/thoop2.cpp +++ b/src/mame/drivers/thoop2.cpp @@ -263,15 +263,15 @@ static GFXDECODE_START( gfx_thoop2 ) GFXDECODE_END -MACHINE_CONFIG_START(thoop2_state::thoop2) - +void thoop2_state::thoop2(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000,XTAL(24'000'000) / 2) // 12MHz verified - MCFG_DEVICE_PROGRAM_MAP(thoop2_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", thoop2_state, irq6_line_hold) + M68000(config, m_maincpu, XTAL(24'000'000) / 2); // 12MHz verified + m_maincpu->set_addrmap(AS_PROGRAM, &thoop2_state::thoop2_map); + m_maincpu->set_vblank_int("screen", FUNC(thoop2_state::irq6_line_hold)); - MCFG_DEVICE_ADD("gaelco_ds5002fp", GAELCO_DS5002FP, XTAL(24'000'000) / 2) // 12MHz verified - MCFG_DEVICE_ADDRESS_MAP(0, mcu_hostmem_map) + gaelco_ds5002fp_device &ds5002fp(GAELCO_DS5002FP(config, "gaelco_ds5002fp", XTAL(24'000'000) / 2)); // 12MHz verified + ds5002fp.set_addrmap(0, &thoop2_state::mcu_hostmem_map); LS259(config, m_outlatch); m_outlatch->q_out_cb<0>().set(FUNC(thoop2_state::coin1_lockout_w)); @@ -284,13 +284,13 @@ MACHINE_CONFIG_START(thoop2_state::thoop2) WATCHDOG_TIMER(config, "watchdog"); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(59.24) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) - MCFG_SCREEN_SIZE(32*16, 32*16) - MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 16, 256-1) - MCFG_SCREEN_UPDATE_DRIVER(thoop2_state, screen_update) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(59.24); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */); + screen.set_size(32*16, 32*16); + screen.set_visarea(0, 320-1, 16, 256-1); + screen.set_screen_update(FUNC(thoop2_state::screen_update)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_thoop2); PALETTE(config, m_palette).set_format(palette_device::xBGR_555, 1024); @@ -298,10 +298,10 @@ MACHINE_CONFIG_START(thoop2_state::thoop2) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(1'000'000), okim6295_device::PIN7_HIGH) // 1MHz resonator - pin 7 not connected - MCFG_DEVICE_ADDRESS_MAP(0, oki_map) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_CONFIG_END + okim6295_device &oki(OKIM6295(config, "oki", XTAL(1'000'000), okim6295_device::PIN7_HIGH)); // 1MHz resonator - pin 7 not connected + oki.set_addrmap(0, &thoop2_state::oki_map); + oki.add_route(ALL_OUTPUTS, "mono", 1.0); +} diff --git a/src/mame/drivers/thunderj.cpp b/src/mame/drivers/thunderj.cpp index 102c9292f17..53403e0eaa3 100644 --- a/src/mame/drivers/thunderj.cpp +++ b/src/mame/drivers/thunderj.cpp @@ -241,14 +241,14 @@ GFXDECODE_END * *************************************/ -MACHINE_CONFIG_START(thunderj_state::thunderj) - +void thunderj_state::thunderj(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, ATARI_CLOCK_14MHz/2) - MCFG_DEVICE_PROGRAM_MAP(main_map) + M68000(config, m_maincpu, ATARI_CLOCK_14MHz/2); + m_maincpu->set_addrmap(AS_PROGRAM, &thunderj_state::main_map); - MCFG_DEVICE_ADD("extra", M68000, ATARI_CLOCK_14MHz/2) - MCFG_DEVICE_PROGRAM_MAP(extra_map) + M68000(config, m_extra, ATARI_CLOCK_14MHz/2); + m_extra->set_addrmap(AS_PROGRAM, &thunderj_state::extra_map); EEPROM_2816(config, "eeprom").lock_after_write(true); @@ -268,13 +268,13 @@ MACHINE_CONFIG_START(thunderj_state::thunderj) TILEMAP(config, "vad:alpha", "gfxdecode", 2, 8, 8, TILEMAP_SCAN_ROWS, 64, 32, 0).set_info_callback(DEVICE_SELF_OWNER, FUNC(thunderj_state::get_alpha_tile_info)); ATARI_MOTION_OBJECTS(config, "vad:mob", 0, m_screen, thunderj_state::s_mob_config).set_gfxdecode("gfxdecode"); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_video_attributes(VIDEO_UPDATE_BEFORE_VBLANK); /* note: these parameters are from published specs, not derived */ /* the board uses a VAD chip to generate video signals */ - MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240) - MCFG_SCREEN_UPDATE_DRIVER(thunderj_state, screen_update_thunderj) - MCFG_SCREEN_PALETTE("palette") + m_screen->set_raw(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240); + m_screen->set_screen_update(FUNC(thunderj_state::screen_update_thunderj)); + m_screen->set_palette("palette"); /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -283,7 +283,7 @@ MACHINE_CONFIG_START(thunderj_state::thunderj) m_jsa->main_int_cb().set_inputline(m_maincpu, M68K_IRQ_6); m_jsa->test_read_cb().set_ioport("260012").bit(1); m_jsa->add_route(ALL_OUTPUTS, "mono", 1.0); -MACHINE_CONFIG_END +} diff --git a/src/mame/drivers/ti74.cpp b/src/mame/drivers/ti74.cpp index ed14d5ec522..99c85670ae0 100644 --- a/src/mame/drivers/ti74.cpp +++ b/src/mame/drivers/ti74.cpp @@ -530,14 +530,15 @@ MACHINE_CONFIG_START(ti74_state::ti74) NVRAM(config, "sysram.ic3", nvram_device::DEFAULT_ALL_0); /* video hardware */ - MCFG_SCREEN_ADD("screen", LCD) - MCFG_SCREEN_REFRESH_RATE(60) // arbitrary - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) - MCFG_SCREEN_SIZE(6*31+1, 9*1+1+1) - MCFG_SCREEN_VISIBLE_AREA(0, 6*31, 0, 9*1+1) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD)); + screen.set_refresh_hz(60); // arbitrary + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); + screen.set_size(6*31+1, 9*1+1+1); + screen.set_visarea(0, 6*31, 0, 9*1+1); + screen.set_screen_update("hd44780", FUNC(hd44780_device::screen_update)); + screen.set_palette("palette"); + config.set_default_layout(layout_ti74); - MCFG_SCREEN_UPDATE_DEVICE("hd44780", hd44780_device, screen_update) - MCFG_SCREEN_PALETTE("palette") PALETTE(config, "palette", FUNC(ti74_state::ti74_palette), 3); @@ -565,14 +566,15 @@ MACHINE_CONFIG_START(ti74_state::ti95) NVRAM(config, "sysram.ic3", nvram_device::DEFAULT_ALL_0); /* video hardware */ - MCFG_SCREEN_ADD("screen", LCD) - MCFG_SCREEN_REFRESH_RATE(60) // arbitrary - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) - MCFG_SCREEN_SIZE(200, 20) - MCFG_SCREEN_VISIBLE_AREA(0, 200-1, 0, 20-1) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD)); + screen.set_refresh_hz(60); // arbitrary + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); + screen.set_size(200, 20); + screen.set_visarea(0, 200-1, 0, 20-1); + screen.set_screen_update("hd44780", FUNC(hd44780_device::screen_update)); + screen.set_palette("palette"); + config.set_default_layout(layout_ti95); - MCFG_SCREEN_UPDATE_DEVICE("hd44780", hd44780_device, screen_update) - MCFG_SCREEN_PALETTE("palette") PALETTE(config, "palette", FUNC(ti74_state::ti74_palette), 3); diff --git a/src/mame/drivers/ti85.cpp b/src/mame/drivers/ti85.cpp index afaf512e3af..e4a049b11a5 100644 --- a/src/mame/drivers/ti85.cpp +++ b/src/mame/drivers/ti85.cpp @@ -374,10 +374,10 @@ void ti85_state::ti83p_banked_mem(address_map &map) void ti85_state::ti83p_asic_mem(address_map &map) { - map(0x0000, 0x3fff).rw(m_membank1, FUNC(address_map_bank_device::read8), FUNC(address_map_bank_device::write8)); - map(0x4000, 0x7fff).w(m_membank2, FUNC(address_map_bank_device::write8)).r(FUNC(ti85_state::ti83p_membank2_r)); - map(0x8000, 0xbfff).w(m_membank3, FUNC(address_map_bank_device::write8)).r(FUNC(ti85_state::ti83p_membank3_r)); - map(0xc000, 0xffff).rw(m_membank4, FUNC(address_map_bank_device::read8), FUNC(address_map_bank_device::write8)); + map(0x0000, 0x3fff).rw(m_membank[0], FUNC(address_map_bank_device::read8), FUNC(address_map_bank_device::write8)); + map(0x4000, 0x7fff).w(m_membank[1], FUNC(address_map_bank_device::write8)).r(FUNC(ti85_state::ti83p_membank2_r)); + map(0x8000, 0xbfff).w(m_membank[2], FUNC(address_map_bank_device::write8)).r(FUNC(ti85_state::ti83p_membank3_r)); + map(0xc000, 0xffff).rw(m_membank[3], FUNC(address_map_bank_device::read8), FUNC(address_map_bank_device::write8)); } /* keyboard input */ @@ -578,97 +578,94 @@ static INPUT_PORTS_START (ti83) INPUT_PORTS_END /* machine definition */ -MACHINE_CONFIG_START(ti85_state::ti81) +void ti85_state::ti81(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, 2000000) /* 2 MHz */ - MCFG_DEVICE_PROGRAM_MAP(ti81_mem) - MCFG_DEVICE_IO_MAP(ti81_io) + Z80(config, m_maincpu, 2000000); /* 2 MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &ti85_state::ti81_mem); + m_maincpu->set_addrmap(AS_IO, &ti85_state::ti81_io); /* video hardware */ - MCFG_SCREEN_ADD("screen", LCD) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(0) - MCFG_SCREEN_SIZE(96, 64) - MCFG_SCREEN_VISIBLE_AREA(0, 96-1, 0, 64-1) - MCFG_SCREEN_UPDATE_DRIVER(ti85_state, screen_update_ti85) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD)); + screen.set_refresh_hz(50); + screen.set_vblank_time(0); + screen.set_size(96, 64); + screen.set_visarea(0, 96-1, 0, 64-1); + screen.set_screen_update(FUNC(ti85_state::screen_update_ti85)); + screen.set_palette("palette"); PALETTE(config, "palette", FUNC(ti85_state::ti85_palette), 224, 224); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(ti85_state::ti85) +void ti85_state::ti85(machine_config &config) +{ ti81(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_CLOCK(6000000) /* 6 MHz */ - MCFG_DEVICE_IO_MAP(ti85_io) + m_maincpu->set_clock(6000000); /* 6 MHz */ + m_maincpu->set_addrmap(AS_IO, &ti85_state::ti85_io); MCFG_MACHINE_RESET_OVERRIDE(ti85_state, ti85 ) - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_SIZE(128, 64) - MCFG_SCREEN_VISIBLE_AREA(0, 128-1, 0, 64-1) + subdevice<screen_device>("screen")->set_size(128, 64); + subdevice<screen_device>("screen")->set_visarea(0, 128-1, 0, 64-1); - MCFG_DEVICE_ADD("linkport", TI8X_LINK_PORT, default_ti8x_link_devices, nullptr) -MACHINE_CONFIG_END + TI8X_LINK_PORT(config, m_link_port, default_ti8x_link_devices, nullptr); +} MACHINE_CONFIG_START(ti85_state::ti85d) ti85(config); MCFG_SNAPSHOT_ADD("snapshot", ti85_state, ti8x, "sav") - //MCFG_TI85SERIAL_ADD( "tiserial" ) + //TI85SERIAL(config, "tiserial"); MACHINE_CONFIG_END -MACHINE_CONFIG_START(ti85_state::ti82) +void ti85_state::ti82(machine_config &config) +{ ti81(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_CLOCK(6000000) /* 6 MHz */ - MCFG_DEVICE_IO_MAP(ti82_io) + m_maincpu->set_clock(6000000); /* 6 MHz */ + m_maincpu->set_addrmap(AS_IO, &ti85_state::ti82_io); MCFG_MACHINE_RESET_OVERRIDE(ti85_state, ti85 ) - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_DEVICE("t6a04", t6a04_device, screen_update) + subdevice<screen_device>("screen")->set_screen_update("t6a04", FUNC(t6a04_device::screen_update)); subdevice<palette_device>("palette")->set_entries(2).set_init(FUNC(ti85_state::ti82_palette)); T6A04(config, "t6a04", 0).set_size(96, 64); - MCFG_DEVICE_ADD("linkport", TI8X_LINK_PORT, default_ti8x_link_devices, nullptr) -MACHINE_CONFIG_END + TI8X_LINK_PORT(config, m_link_port, default_ti8x_link_devices, nullptr); +} -MACHINE_CONFIG_START(ti85_state::ti81v2) +void ti85_state::ti81v2(machine_config &config) +{ ti82(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_IO_MAP(ti81v2_io) + m_maincpu->set_addrmap(AS_IO, &ti85_state::ti81v2_io); config.device_remove("linkport"); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(ti85_state::ti83) +void ti85_state::ti83(machine_config &config) +{ ti81(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_CLOCK(6000000) /* 6 MHz */ - MCFG_DEVICE_IO_MAP(ti83_io) + m_maincpu->set_clock(6000000); /* 6 MHz */ + m_maincpu->set_addrmap(AS_IO, &ti85_state::ti83_io); MCFG_MACHINE_RESET_OVERRIDE(ti85_state, ti85 ) - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_DEVICE("t6a04", t6a04_device, screen_update) + subdevice<screen_device>("screen")->set_screen_update("t6a04", FUNC(t6a04_device::screen_update)); subdevice<palette_device>("palette")->set_entries(2).set_init(FUNC(ti85_state::ti82_palette)); T6A04(config, "t6a04", 0).set_size(96, 64); -MACHINE_CONFIG_END +} MACHINE_CONFIG_START(ti85_state::ti86) ti85(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(ti86_mem) - MCFG_DEVICE_IO_MAP(ti86_io) + m_maincpu->set_addrmap(AS_PROGRAM, &ti85_state::ti86_mem); + m_maincpu->set_addrmap(AS_IO, &ti85_state::ti86_io); MCFG_MACHINE_START_OVERRIDE(ti85_state, ti86 ) MCFG_MACHINE_RESET_OVERRIDE(ti85_state, ti85 ) @@ -676,77 +673,70 @@ MACHINE_CONFIG_START(ti85_state::ti86) MCFG_SNAPSHOT_ADD("snapshot", ti85_state, ti8x, "sav") MACHINE_CONFIG_END -MACHINE_CONFIG_START(ti85_state::ti83p) +void ti85_state::ti83p(machine_config &config) +{ ti81(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_CLOCK(6000000) /* 8 MHz running at 6 MHz */ - MCFG_DEVICE_PROGRAM_MAP(ti83p_asic_mem) - MCFG_DEVICE_IO_MAP(ti83p_io) + m_maincpu->set_clock(6000000); /* 8 MHz running at 6 MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &ti85_state::ti83p_asic_mem); + m_maincpu->set_addrmap(AS_IO, &ti85_state::ti83p_io); MCFG_MACHINE_START_OVERRIDE(ti85_state, ti83p ) MCFG_MACHINE_RESET_OVERRIDE(ti85_state, ti83p ) - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_DEVICE("t6a04", t6a04_device, screen_update) + subdevice<screen_device>("screen")->set_screen_update("t6a04", FUNC(t6a04_device::screen_update)); subdevice<palette_device>("palette")->set_entries(2).set_init(FUNC(ti85_state::ti82_palette)); - ADDRESS_MAP_BANK(config, "membank1").set_map(&ti85_state::ti83p_banked_mem).set_options(ENDIANNESS_LITTLE, 8, 32, 0x4000); - ADDRESS_MAP_BANK(config, "membank2").set_map(&ti85_state::ti83p_banked_mem).set_options(ENDIANNESS_LITTLE, 8, 32, 0x4000); - ADDRESS_MAP_BANK(config, "membank3").set_map(&ti85_state::ti83p_banked_mem).set_options(ENDIANNESS_LITTLE, 8, 32, 0x4000); - ADDRESS_MAP_BANK(config, "membank4").set_map(&ti85_state::ti83p_banked_mem).set_options(ENDIANNESS_LITTLE, 8, 32, 0x4000); + ADDRESS_MAP_BANK(config, m_membank[0]).set_map(&ti85_state::ti83p_banked_mem).set_options(ENDIANNESS_LITTLE, 8, 32, 0x4000); + ADDRESS_MAP_BANK(config, m_membank[1]).set_map(&ti85_state::ti83p_banked_mem).set_options(ENDIANNESS_LITTLE, 8, 32, 0x4000); + ADDRESS_MAP_BANK(config, m_membank[2]).set_map(&ti85_state::ti83p_banked_mem).set_options(ENDIANNESS_LITTLE, 8, 32, 0x4000); + ADDRESS_MAP_BANK(config, m_membank[3]).set_map(&ti85_state::ti83p_banked_mem).set_options(ENDIANNESS_LITTLE, 8, 32, 0x4000); T6A04(config, "t6a04", 0).set_size(96, 64); - MCFG_DEVICE_ADD("linkport", TI8X_LINK_PORT, default_ti8x_link_devices, nullptr) + TI8X_LINK_PORT(config, m_link_port, default_ti8x_link_devices, nullptr); - AMD_29F400T(config, "flash"); -MACHINE_CONFIG_END + AMD_29F400T(config, m_flash); +} -MACHINE_CONFIG_START(ti85_state::ti83pse) +void ti85_state::ti83pse(machine_config &config) +{ ti83p(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_CLOCK( 15000000) - MCFG_DEVICE_IO_MAP(ti83pse_io) + m_maincpu->set_clock(15000000); + m_maincpu->set_addrmap(AS_IO, &ti85_state::ti83pse_io); - MCFG_DEVICE_MODIFY("membank1") - MCFG_DEVICE_PROGRAM_MAP(ti83pse_banked_mem) + m_membank[0]->set_map(&ti85_state::ti83pse_banked_mem); - MCFG_DEVICE_MODIFY("membank2") - MCFG_DEVICE_PROGRAM_MAP(ti83pse_banked_mem) + m_membank[1]->set_map(&ti85_state::ti83pse_banked_mem); - MCFG_DEVICE_MODIFY("membank3") - MCFG_DEVICE_PROGRAM_MAP(ti83pse_banked_mem) + m_membank[2]->set_map(&ti85_state::ti83pse_banked_mem); - MCFG_DEVICE_MODIFY("membank4") - MCFG_DEVICE_PROGRAM_MAP(ti83pse_banked_mem) + m_membank[3]->set_map(&ti85_state::ti83pse_banked_mem); MCFG_MACHINE_START_OVERRIDE(ti85_state, ti83pse ) - MCFG_DEVICE_REPLACE("flash", FUJITSU_29F160T, 0) -MACHINE_CONFIG_END + FUJITSU_29F160T(config.replace(), m_flash, 0); +} -MACHINE_CONFIG_START(ti85_state::ti84p) +void ti85_state::ti84p(machine_config &config) +{ ti83pse(config); - MCFG_DEVICE_MODIFY("membank1") - MCFG_DEVICE_PROGRAM_MAP(ti84p_banked_mem) + m_membank[0]->set_map(&ti85_state::ti84p_banked_mem); - MCFG_DEVICE_MODIFY("membank2") - MCFG_DEVICE_PROGRAM_MAP(ti84p_banked_mem) + m_membank[1]->set_map(&ti85_state::ti84p_banked_mem); - MCFG_DEVICE_MODIFY("membank3") - MCFG_DEVICE_PROGRAM_MAP(ti84p_banked_mem) + m_membank[2]->set_map(&ti85_state::ti84p_banked_mem); - MCFG_DEVICE_MODIFY("membank4") - MCFG_DEVICE_PROGRAM_MAP(ti84p_banked_mem) + m_membank[3]->set_map(&ti85_state::ti84p_banked_mem); MCFG_MACHINE_START_OVERRIDE(ti85_state, ti84p ) - MCFG_DEVICE_REPLACE("flash", AMD_29F800T , 0) -MACHINE_CONFIG_END + AMD_29F800T(config.replace(), m_flash, 0); +} -MACHINE_CONFIG_START(ti85_state::ti84pse) +void ti85_state::ti84pse(machine_config &config) +{ ti83pse(config); MCFG_MACHINE_START_OVERRIDE(ti85_state, ti84pse ) -MACHINE_CONFIG_END +} void ti85_state::ti73(machine_config &config) { diff --git a/src/mame/drivers/ti89.cpp b/src/mame/drivers/ti89.cpp index af68b2ff668..8724747af2a 100644 --- a/src/mame/drivers/ti89.cpp +++ b/src/mame/drivers/ti89.cpp @@ -519,60 +519,63 @@ void ti68k_state::ti68k_palette(palette_device &palette) const palette.set_pen_color(1, rgb_t(92, 83, 88)); } -MACHINE_CONFIG_START(ti68k_state::ti89) +void ti68k_state::ti89(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(10'000'000)) - MCFG_DEVICE_PROGRAM_MAP(ti89_mem) + M68000(config, m_maincpu, XTAL(10'000'000)); + m_maincpu->set_addrmap(AS_PROGRAM, &ti68k_state::ti89_mem); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); /* video hardware */ - MCFG_SCREEN_ADD("screen", LCD) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_UPDATE_DRIVER(ti68k_state, screen_update) - MCFG_SCREEN_SIZE(240, 128) - MCFG_SCREEN_VISIBLE_AREA(0, 160-1, 0, 100-1) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_screen_update(FUNC(ti68k_state::screen_update)); + screen.set_size(240, 128); + screen.set_visarea(0, 160-1, 0, 100-1); + screen.set_palette("palette"); PALETTE(config, "palette", FUNC(ti68k_state::ti68k_palette), 2); SHARP_UNK128MBIT(config, "flash"); //should be LH28F320 for ti89t and v200 and LH28F160S3T for other models TIMER(config, "ti68k_timer").configure_periodic(FUNC(ti68k_state::ti68k_timer_callback), attotime::from_hz(1<<14)); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(ti68k_state::ti92) +void ti68k_state::ti92(machine_config &config) +{ ti89(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(ti92_mem) + m_maincpu->set_addrmap(AS_PROGRAM, &ti68k_state::ti92_mem); /* video hardware */ - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_VISIBLE_AREA(0, 240-1, 0, 128-1) -MACHINE_CONFIG_END + subdevice<screen_device>("screen")->set_visarea(0, 240-1, 0, 128-1); +} -MACHINE_CONFIG_START(ti68k_state::ti92p) +void ti68k_state::ti92p(machine_config &config) +{ ti92(config); - MCFG_DEVICE_REPLACE("maincpu", M68000, XTAL(12'000'000)) - MCFG_DEVICE_PROGRAM_MAP(ti92p_mem) -MACHINE_CONFIG_END + m_maincpu->set_clock(XTAL(12'000'000)); + m_maincpu->set_addrmap(AS_PROGRAM, &ti68k_state::ti92p_mem); +} -MACHINE_CONFIG_START(ti68k_state::v200) +void ti68k_state::v200(machine_config &config) +{ ti92(config); - MCFG_DEVICE_REPLACE("maincpu", M68000, XTAL(12'000'000)) - MCFG_DEVICE_PROGRAM_MAP(v200_mem) -MACHINE_CONFIG_END + m_maincpu->set_clock(XTAL(12'000'000)); + m_maincpu->set_addrmap(AS_PROGRAM, &ti68k_state::v200_mem); +} -MACHINE_CONFIG_START(ti68k_state::ti89t) +void ti68k_state::ti89t(machine_config &config) +{ ti89(config); - MCFG_DEVICE_REPLACE("maincpu", M68000, XTAL(16'000'000)) - MCFG_DEVICE_PROGRAM_MAP(ti89t_mem) -MACHINE_CONFIG_END + m_maincpu->set_clock(XTAL(16'000'000)); + m_maincpu->set_addrmap(AS_PROGRAM, &ti68k_state::ti89t_mem); +} /* ROM definition */ diff --git a/src/mame/drivers/ti990_4.cpp b/src/mame/drivers/ti990_4.cpp index 1592b1ab93a..00170f41f00 100644 --- a/src/mame/drivers/ti990_4.cpp +++ b/src/mame/drivers/ti990_4.cpp @@ -291,7 +291,8 @@ void ti990_4_state::init_ti990_4() m_nmi_timer = timer_alloc(NMI_TIMER_ID); } -MACHINE_CONFIG_START(ti990_4_state::ti990_4) +void ti990_4_state::ti990_4(machine_config &config) +{ /* basic machine hardware */ /* TMS9900 CPU @ 3.0(???) MHz */ TMS9900(config, m_maincpu, 3000000); @@ -311,9 +312,10 @@ MACHINE_CONFIG_START(ti990_4_state::ti990_4) TI99X_FD800(config, "fd800", 0).int_cb().set(FUNC(ti990_4_state::fd_interrupt)); // TODO: Add floppy drives -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(ti990_4_state::ti990_4v) +void ti990_4_state::ti990_4v(machine_config &config) +{ /* basic machine hardware */ /* TMS9900 CPU @ 3.0(???) MHz */ TMS9900(config, m_maincpu, 3000000); @@ -331,7 +333,7 @@ MACHINE_CONFIG_START(ti990_4_state::ti990_4v) TI99X_FD800(config, "fd800", 0).int_cb().set(FUNC(ti990_4_state::fd_interrupt)); // TODO: Add floppy drives -MACHINE_CONFIG_END +} /* ROM loading diff --git a/src/mame/drivers/tiamc1.cpp b/src/mame/drivers/tiamc1.cpp index 254b127ac1c..2c54dd55b6a 100644 --- a/src/mame/drivers/tiamc1.cpp +++ b/src/mame/drivers/tiamc1.cpp @@ -327,11 +327,12 @@ static GFXDECODE_START( gfx_kot ) GFXDECODE_END -MACHINE_CONFIG_START(tiamc1_state::tiamc1) +void tiamc1_state::tiamc1(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", I8080, CPU_CLOCK) - MCFG_DEVICE_PROGRAM_MAP(tiamc1_map) - MCFG_DEVICE_IO_MAP(tiamc1_io_map) + I8080(config, m_maincpu, CPU_CLOCK); + m_maincpu->set_addrmap(AS_PROGRAM, &tiamc1_state::tiamc1_map); + m_maincpu->set_addrmap(AS_IO, &tiamc1_state::tiamc1_io_map); i8255_device &ppi(I8255A(config, "kr580vv55a")); /* soviet clone of i8255 */ ppi.in_pa_callback().set_ioport("IN0"); @@ -340,10 +341,10 @@ MACHINE_CONFIG_START(tiamc1_state::tiamc1) ppi.out_pc_callback().set(FUNC(tiamc1_state::tiamc1_control_w)); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 336, 0, 256, 312, 0, 256) // pixel clock and htotal comes from docs/schematics, the rest is guess (determined by undumped PROM) - MCFG_SCREEN_UPDATE_DRIVER(tiamc1_state, screen_update_tiamc1) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_raw(PIXEL_CLOCK, 336, 0, 256, 312, 0, 256); // pixel clock and htotal comes from docs/schematics, the rest is guess (determined by undumped PROM) + screen.set_screen_update(FUNC(tiamc1_state::screen_update_tiamc1)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_tiamc1); PALETTE(config, m_palette, FUNC(tiamc1_state::tiamc1_palette), 32); @@ -351,20 +352,18 @@ MACHINE_CONFIG_START(tiamc1_state::tiamc1) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("2x8253", TIAMC1, SND_CLOCK) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_CONFIG_END + TIAMC1(config, "2x8253", SND_CLOCK).add_route(ALL_OUTPUTS, "mono", 1.0); +} -MACHINE_CONFIG_START(tiamc1_state::kot) +void tiamc1_state::kot(machine_config &config) +{ tiamc1(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(kotrybolov_map) - MCFG_DEVICE_IO_MAP(kotrybolov_io_map) + m_maincpu->set_addrmap(AS_PROGRAM, &tiamc1_state::kotrybolov_map); + m_maincpu->set_addrmap(AS_IO, &tiamc1_state::kotrybolov_io_map); - MCFG_SCREEN_MODIFY("screen") MCFG_VIDEO_START_OVERRIDE(tiamc1_state, kot) - MCFG_SCREEN_UPDATE_DRIVER(tiamc1_state, screen_update_kot) + subdevice<screen_device>("screen")->set_screen_update(FUNC(tiamc1_state::screen_update_kot)); m_gfxdecode->set_info(gfx_kot); @@ -375,7 +374,7 @@ MACHINE_CONFIG_START(tiamc1_state::kot) pit8253.set_clk<0>(PIXEL_CLOCK / 4); pit8253.set_clk<2>(SND_CLOCK); // guess pit8253.out_handler<2>().set(FUNC(tiamc1_state::pit8253_2_w)); -MACHINE_CONFIG_END +} ROM_START( konek ) diff --git a/src/mame/drivers/ticalc1x.cpp b/src/mame/drivers/ticalc1x.cpp index bf3942b485d..d2db7c4c78d 100644 --- a/src/mame/drivers/ticalc1x.cpp +++ b/src/mame/drivers/ticalc1x.cpp @@ -187,8 +187,8 @@ static INPUT_PORTS_START( cmulti8 ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED ) INPUT_PORTS_END -MACHINE_CONFIG_START(cmulti8_state::cmulti8) - +void cmulti8_state::cmulti8(machine_config &config) +{ /* basic machine hardware */ TMS1070(config, m_maincpu, 250000); // approximation - RC osc. R=56K, C=68pf m_maincpu->k().set(FUNC(cmulti8_state::read_k)); @@ -199,7 +199,7 @@ MACHINE_CONFIG_START(cmulti8_state::cmulti8) config.set_default_layout(layout_cmulti8); /* no sound! */ -MACHINE_CONFIG_END +} @@ -404,8 +404,8 @@ static INPUT_PORTS_START( tisr16ii ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_9) PORT_CODE(KEYCODE_9_PAD) PORT_NAME("9") INPUT_PORTS_END -MACHINE_CONFIG_START(tisr16_state::tisr16) - +void tisr16_state::tisr16(machine_config &config) +{ /* basic machine hardware */ TMS1000(config, m_maincpu, 300000); // approximation - RC osc. R=43K, C=68pf (note: tisr16ii MCU RC osc. is different: R=30K, C=100pf, same freq) m_maincpu->k().set(FUNC(tisr16_state::read_k)); @@ -416,7 +416,7 @@ MACHINE_CONFIG_START(tisr16_state::tisr16) config.set_default_layout(layout_tisr16); /* no sound! */ -MACHINE_CONFIG_END +} @@ -546,8 +546,8 @@ static INPUT_PORTS_START( ti1270 ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_MINUS) PORT_NAME("+/-") INPUT_PORTS_END -MACHINE_CONFIG_START(ti1250_state::ti1250) - +void ti1250_state::ti1250(machine_config &config) +{ /* basic machine hardware */ TMS0950(config, m_maincpu, 200000); // approximation - RC osc. R=68K, C=68pf m_maincpu->k().set(FUNC(ti1250_state::read_k)); @@ -558,9 +558,10 @@ MACHINE_CONFIG_START(ti1250_state::ti1250) config.set_default_layout(layout_ti1250); /* no sound! */ -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(ti1250_state::ti1270) +void ti1250_state::ti1270(machine_config &config) +{ ti1250(config); /* basic machine hardware */ @@ -570,7 +571,7 @@ MACHINE_CONFIG_START(ti1250_state::ti1270) m_maincpu->r().set(FUNC(ti1250_state::write_r)); config.set_default_layout(layout_ti1270); -MACHINE_CONFIG_END +} @@ -676,8 +677,8 @@ static INPUT_PORTS_START( ti25503 ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_X) PORT_NAME("1/x") INPUT_PORTS_END -MACHINE_CONFIG_START(ti25503_state::ti25503) - +void ti25503_state::ti25503(machine_config &config) +{ /* basic machine hardware */ TMS1000(config, m_maincpu, 250000); // approximation m_maincpu->k().set(FUNC(ti25503_state::read_k)); @@ -688,7 +689,7 @@ MACHINE_CONFIG_START(ti25503_state::ti25503) config.set_default_layout(layout_ti25503); /* no sound! */ -MACHINE_CONFIG_END +} @@ -779,8 +780,8 @@ static INPUT_PORTS_START( ti1000 ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD) PORT_NAME("=") INPUT_PORTS_END -MACHINE_CONFIG_START(ti1000_state::ti1000) - +void ti1000_state::ti1000(machine_config &config) +{ /* basic machine hardware */ TMS1990(config, m_maincpu, 250000); // approximation m_maincpu->k().set(FUNC(ti1000_state::read_k)); @@ -791,7 +792,7 @@ MACHINE_CONFIG_START(ti1000_state::ti1000) config.set_default_layout(layout_ti1270); /* no sound! */ -MACHINE_CONFIG_END +} @@ -881,8 +882,8 @@ static INPUT_PORTS_START( wizatron ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_SLASH_PAD) PORT_NAME(UTF8_DIVIDE) INPUT_PORTS_END -MACHINE_CONFIG_START(wizatron_state::wizatron) - +void wizatron_state::wizatron(machine_config &config) +{ /* basic machine hardware */ TMS0970(config, m_maincpu, 250000); // approximation m_maincpu->k().set(FUNC(wizatron_state::read_k)); @@ -893,7 +894,7 @@ MACHINE_CONFIG_START(wizatron_state::wizatron) config.set_default_layout(layout_wizatron); /* no sound! */ -MACHINE_CONFIG_END +} @@ -958,8 +959,8 @@ static INPUT_PORTS_START( lilprof ) PORT_CONFSETTING( 0x08, "4" ) INPUT_PORTS_END -MACHINE_CONFIG_START(lilprof_state::lilprof) - +void lilprof_state::lilprof(machine_config &config) +{ /* basic machine hardware */ TMS0970(config, m_maincpu, 250000); // approximation m_maincpu->k().set(FUNC(lilprof_state::read_k)); @@ -970,7 +971,7 @@ MACHINE_CONFIG_START(lilprof_state::lilprof) config.set_default_layout(layout_wizatron); /* no sound! */ -MACHINE_CONFIG_END +} @@ -1071,8 +1072,8 @@ static INPUT_PORTS_START( lilprof78 ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_PLUS_PAD) PORT_NAME("+") INPUT_PORTS_END -MACHINE_CONFIG_START(lilprof78_state::lilprof78) - +void lilprof78_state::lilprof78(machine_config &config) +{ /* basic machine hardware */ TMS1990(config, m_maincpu, 250000); // approximation m_maincpu->k().set(FUNC(lilprof78_state::read_k)); @@ -1083,7 +1084,7 @@ MACHINE_CONFIG_START(lilprof78_state::lilprof78) config.set_default_layout(layout_wizatron); /* no sound! */ -MACHINE_CONFIG_END +} @@ -1185,8 +1186,8 @@ static INPUT_PORTS_START( dataman ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_E) PORT_NAME("Electro Flash") INPUT_PORTS_END -MACHINE_CONFIG_START(dataman_state::dataman) - +void dataman_state::dataman(machine_config &config) +{ /* basic machine hardware */ TMS1980(config, m_maincpu, 300000); // patent says 300kHz m_maincpu->k().set(FUNC(dataman_state::read_k)); @@ -1198,7 +1199,7 @@ MACHINE_CONFIG_START(dataman_state::dataman) config.set_default_layout(layout_dataman); /* no sound! */ -MACHINE_CONFIG_END +} @@ -1255,8 +1256,8 @@ static INPUT_PORTS_START( mathmarv ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_F) PORT_NAME("Flash") INPUT_PORTS_END -MACHINE_CONFIG_START(mathmarv_state::mathmarv) - +void mathmarv_state::mathmarv(machine_config &config) +{ /* basic machine hardware */ TMS1980(config, m_maincpu, 300000); // assume same as dataman m_maincpu->k().set(FUNC(dataman_state::read_k)); @@ -1269,9 +1270,8 @@ MACHINE_CONFIG_START(mathmarv_state::mathmarv) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) -MACHINE_CONFIG_END + SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25); +} @@ -1518,8 +1518,8 @@ static INPUT_PORTS_START( tibusan ) PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_PGDN) PORT_NAME("Off") PORT_CHANGED_MEMBER(DEVICE_SELF, hh_tms1k_state, power_button, (void *)false) INPUT_PORTS_END -MACHINE_CONFIG_START(ti30_state::ti30) - +void ti30_state::ti30(machine_config &config) +{ /* basic machine hardware */ TMS0980(config, m_maincpu, 400000); // guessed m_maincpu->k().set(FUNC(ti30_state::read_k)); @@ -1531,7 +1531,7 @@ MACHINE_CONFIG_START(ti30_state::ti30) config.set_default_layout(layout_ti30); /* no sound! */ -MACHINE_CONFIG_END +} diff --git a/src/mame/drivers/tickee.cpp b/src/mame/drivers/tickee.cpp index 255f7274053..48698080c09 100644 --- a/src/mame/drivers/tickee.cpp +++ b/src/mame/drivers/tickee.cpp @@ -754,8 +754,8 @@ INPUT_PORTS_END * *************************************/ -MACHINE_CONFIG_START(tickee_state::tickee) - +void tickee_state::tickee(machine_config &config) +{ /* basic machine hardware */ TMS34010(config, m_maincpu, XTAL(40'000'000)); m_maincpu->set_addrmap(AS_PROGRAM, &tickee_state::tickee_map); @@ -775,9 +775,9 @@ MACHINE_CONFIG_START(tickee_state::tickee) MCFG_VIDEO_START_OVERRIDE(tickee_state,tickee) - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(VIDEO_CLOCK/2, 444, 0, 320, 233, 0, 200) - MCFG_SCREEN_UPDATE_DEVICE("maincpu", tms34010_device, tms340x0_rgb32) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_raw(VIDEO_CLOCK/2, 444, 0, 320, 233, 0, 200); + m_screen->set_screen_update("maincpu", FUNC(tms34010_device::tms340x0_rgb32)); /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -791,20 +791,20 @@ MACHINE_CONFIG_START(tickee_state::tickee) ym2.port_a_read_callback().set_ioport("IN0"); ym2.port_b_read_callback().set_ioport("IN2"); ym2.add_route(ALL_OUTPUTS, "mono", 0.50); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(tickee_state::ghoshunt) +void tickee_state::ghoshunt(machine_config &config) +{ tickee(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(ghoshunt_map) -MACHINE_CONFIG_END - + m_maincpu->set_addrmap(AS_PROGRAM, &tickee_state::ghoshunt_map); +} -MACHINE_CONFIG_START(tickee_state::rapidfir) +void tickee_state::rapidfir(machine_config &config) +{ /* basic machine hardware */ TMS34010(config, m_maincpu, XTAL(50'000'000)); m_maincpu->set_addrmap(AS_PROGRAM, &tickee_state::rapidfir_map); @@ -825,20 +825,19 @@ MACHINE_CONFIG_START(tickee_state::rapidfir) MCFG_VIDEO_START_OVERRIDE(tickee_state,tickee) - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(VIDEO_CLOCK/2, 444, 0, 320, 233, 0, 200) - MCFG_SCREEN_UPDATE_DEVICE("maincpu", tms34010_device, tms340x0_rgb32) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_raw(VIDEO_CLOCK/2, 444, 0, 320, 233, 0, 200); + m_screen->set_screen_update("maincpu", FUNC(tms34010_device::tms340x0_rgb32)); /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("oki", OKIM6295, OKI_CLOCK, okim6295_device::PIN7_HIGH) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) -MACHINE_CONFIG_END - + OKIM6295(config, m_oki, OKI_CLOCK, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 1.00); +} -MACHINE_CONFIG_START(tickee_state::mouseatk) +void tickee_state::mouseatk(machine_config &config) +{ /* basic machine hardware */ TMS34010(config, m_maincpu, XTAL(40'000'000)); m_maincpu->set_addrmap(AS_PROGRAM, &tickee_state::mouseatk_map); @@ -856,9 +855,9 @@ MACHINE_CONFIG_START(tickee_state::mouseatk) /* video hardware */ TLC34076(config, m_tlc34076, tlc34076_device::TLC34076_6_BIT); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(VIDEO_CLOCK/2, 444, 0, 320, 233, 0, 200) - MCFG_SCREEN_UPDATE_DEVICE("maincpu", tms34010_device, tms340x0_rgb32) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_raw(VIDEO_CLOCK/2, 444, 0, 320, 233, 0, 200); + m_screen->set_screen_update("maincpu", FUNC(tms34010_device::tms340x0_rgb32)); /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -868,9 +867,8 @@ MACHINE_CONFIG_START(tickee_state::mouseatk) ym.port_b_read_callback().set_ioport("IN1"); ym.add_route(ALL_OUTPUTS, "mono", 0.50); - MCFG_DEVICE_ADD("oki", OKIM6295, OKI_CLOCK, okim6295_device::PIN7_HIGH) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) -MACHINE_CONFIG_END + OKIM6295(config, m_oki, OKI_CLOCK, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 1.00); +} /************************************* diff --git a/src/mame/drivers/tim011.cpp b/src/mame/drivers/tim011.cpp index 0e489c9674e..ebbaae170b2 100644 --- a/src/mame/drivers/tim011.cpp +++ b/src/mame/drivers/tim011.cpp @@ -132,14 +132,15 @@ static const floppy_format_type tim011_floppy_formats[] = { nullptr }; -MACHINE_CONFIG_START(tim011_state::tim011) +void tim011_state::tim011(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu",Z180, XTAL(12'288'000) / 2) // location U17 HD64180 - MCFG_DEVICE_PROGRAM_MAP(tim011_mem) - MCFG_DEVICE_IO_MAP(tim011_io) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", tim011_state, irq0_line_hold) + Z180(config, m_maincpu, XTAL(12'288'000) / 2); // location U17 HD64180 + m_maincpu->set_addrmap(AS_PROGRAM, &tim011_state::tim011_mem); + m_maincpu->set_addrmap(AS_IO, &tim011_state::tim011_io); + m_maincpu->set_vblank_int("screen", FUNC(tim011_state::irq0_line_hold)); -// MCFG_DEVICE_ADD("keyboard",CDP1802, XTAL(1'750'000)) // CDP1802, unknown clock +// CDP1802(config, "keyboard", XTAL(1'750'000)); // CDP1802, unknown clock // FDC9266 location U43 UPD765A(config, m_fdc, XTAL(8'000'000), true, true); @@ -152,16 +153,16 @@ MACHINE_CONFIG_START(tim011_state::tim011) FLOPPY_CONNECTOR(config, FDC9266_TAG ":3", tim011_floppies, "35dd", tim011_floppy_formats); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_SIZE(512, 256) - MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1) - MCFG_SCREEN_UPDATE_DRIVER(tim011_state, screen_update_tim011) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_size(512, 256); + screen.set_visarea(0, 512-1, 0, 256-1); + screen.set_screen_update(FUNC(tim011_state::screen_update_tim011)); + screen.set_palette("palette"); PALETTE(config, "palette", palette_device::MONOCHROME); -MACHINE_CONFIG_END +} /* ROM definition */ ROM_START( tim011 ) diff --git a/src/mame/drivers/tim100.cpp b/src/mame/drivers/tim100.cpp index 260e4d7b669..22717a5374f 100644 --- a/src/mame/drivers/tim100.cpp +++ b/src/mame/drivers/tim100.cpp @@ -161,19 +161,20 @@ WRITE_LINE_MEMBER( tim100_state::irq_w ) } -MACHINE_CONFIG_START(tim100_state::tim100) +void tim100_state::tim100(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu",I8085A, XTAL(4'915'200)) // divider unknown - MCFG_DEVICE_PROGRAM_MAP(tim100_mem) - MCFG_DEVICE_IO_MAP(tim100_io) + I8085A(config, m_maincpu, XTAL(4'915'200)); // divider unknown + m_maincpu->set_addrmap(AS_PROGRAM, &tim100_state::tim100_mem); + m_maincpu->set_addrmap(AS_IO, &tim100_state::tim100_io); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_UPDATE_DEVICE("crtc", i8276_device, screen_update) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_SIZE(600, 352) - MCFG_SCREEN_VISIBLE_AREA(0, 40*12-1, 0, 16*16-1) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_screen_update("crtc", FUNC(i8276_device::screen_update)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_size(600, 352); + screen.set_visarea(0, 40*12-1, 0, 16*16-1); GFXDECODE(config, "gfxdecode", m_palette, gfx_tim100); @@ -184,7 +185,7 @@ MACHINE_CONFIG_START(tim100_state::tim100) m_crtc->irq_wr_callback().set(FUNC(tim100_state::irq_w)); m_crtc->set_screen("screen"); - MCFG_PALETTE_ADD("palette", 3) + PALETTE(config, m_palette).set_entries(3); i8251_device &uart_u17(I8251(config, "uart_u17", 0)); uart_u17.txd_handler().set("rs232", FUNC(rs232_port_device::write_txd)); @@ -213,7 +214,7 @@ MACHINE_CONFIG_START(tim100_state::tim100) uart_clock.signal_handler().append("uart_u17", FUNC(i8251_device::write_rxc)); uart_clock.signal_handler().append("uart_u18", FUNC(i8251_device::write_txc)); uart_clock.signal_handler().append("uart_u18", FUNC(i8251_device::write_rxc)); -MACHINE_CONFIG_END +} /* ROM definition */ ROM_START( tim100 ) diff --git a/src/mame/drivers/timelimt.cpp b/src/mame/drivers/timelimt.cpp index 78adbaa83fb..c6593f263c0 100644 --- a/src/mame/drivers/timelimt.cpp +++ b/src/mame/drivers/timelimt.cpp @@ -222,18 +222,18 @@ INTERRUPT_GEN_MEMBER(timelimt_state::irq) /***************************************************************************/ -MACHINE_CONFIG_START(timelimt_state::timelimt) - +void timelimt_state::timelimt(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, 5000000) /* 5.000 MHz */ - MCFG_DEVICE_PROGRAM_MAP(main_map) - MCFG_DEVICE_IO_MAP(main_io_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", timelimt_state, irq) + Z80(config, m_maincpu, 5000000); /* 5.000 MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &timelimt_state::main_map); + m_maincpu->set_addrmap(AS_IO, &timelimt_state::main_io_map); + m_maincpu->set_vblank_int("screen", FUNC(timelimt_state::irq)); - MCFG_DEVICE_ADD("audiocpu", Z80,18432000/6) /* 3.072 MHz */ - MCFG_DEVICE_PROGRAM_MAP(sound_map) - MCFG_DEVICE_IO_MAP(sound_io_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", timelimt_state, irq0_line_hold) /* ? */ + Z80(config, m_audiocpu, 18432000/6); /* 3.072 MHz */ + m_audiocpu->set_addrmap(AS_PROGRAM, &timelimt_state::sound_map); + m_audiocpu->set_addrmap(AS_IO, &timelimt_state::sound_io_map); + m_audiocpu->set_vblank_int("screen", FUNC(timelimt_state::irq0_line_hold)); /* ? */ config.m_minimum_quantum = attotime::from_hz(3000); @@ -247,13 +247,13 @@ MACHINE_CONFIG_START(timelimt_state::timelimt) WATCHDOG_TIMER(config, "watchdog"); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(32*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(timelimt_state, screen_update) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(32*8, 32*8); + screen.set_visarea(0*8, 32*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(timelimt_state::screen_update)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_timelimt); PALETTE(config, m_palette, FUNC(timelimt_state::timelimt_palette), 64+32); @@ -268,7 +268,7 @@ MACHINE_CONFIG_START(timelimt_state::timelimt) ay8910_device &ay2(AY8910(config, "ay2", 18432000/12)); ay2.port_a_read_callback().set("soundlatch", FUNC(generic_latch_8_device::read)); ay2.add_route(ALL_OUTPUTS, "mono", 0.25); -MACHINE_CONFIG_END +} /*************************************************************************** diff --git a/src/mame/drivers/timetrv.cpp b/src/mame/drivers/timetrv.cpp index fcba7d7649e..dda61157b56 100644 --- a/src/mame/drivers/timetrv.cpp +++ b/src/mame/drivers/timetrv.cpp @@ -141,12 +141,12 @@ static INPUT_PORTS_START( timetrv ) // 0x80 eeprom read bit INPUT_PORTS_END -MACHINE_CONFIG_START(timetrv_state::timetrv) - +void timetrv_state::timetrv(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu",I80188,20000000) //??? - MCFG_DEVICE_PROGRAM_MAP(timetrv_map) - MCFG_DEVICE_IO_MAP(timetrv_io) + I80188(config, m_maincpu, 20000000); //??? + m_maincpu->set_addrmap(AS_PROGRAM, &timetrv_state::timetrv_map); + m_maincpu->set_addrmap(AS_IO, &timetrv_state::timetrv_io); // interrupts are generated by internally-driven timers EEPROM_2816(config, "eeprom"); @@ -160,20 +160,20 @@ MACHINE_CONFIG_START(timetrv_state::timetrv) ppi2.in_pb_callback().set(FUNC(timetrv_state::in_r)); //dsw ppi2.in_pc_callback().set(FUNC(timetrv_state::in_r)); //dsw - MCFG_DEVICE_ADD("uart", NS16450, 1843200) // P82050 (serial interface for laserdisc) + NS16450(config, "uart", 1843200); // P82050 (serial interface for laserdisc) /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(512, 512) - MCFG_SCREEN_VISIBLE_AREA(0*8, 512-1, 0*8, 512-1) - MCFG_SCREEN_UPDATE_DRIVER(timetrv_state, screen_update_timetrv) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(512, 512); + screen.set_visarea(0*8, 512-1, 0*8, 512-1); + screen.set_screen_update(FUNC(timetrv_state::screen_update_timetrv)); - MCFG_PALETTE_ADD("palette", 512) + PALETTE(config, "palette").set_entries(512); /* sound hardware */ -MACHINE_CONFIG_END +} /*************************************************************************** diff --git a/src/mame/drivers/timex.cpp b/src/mame/drivers/timex.cpp index 5e6976b11d4..ae0d2d29549 100644 --- a/src/mame/drivers/timex.cpp +++ b/src/mame/drivers/timex.cpp @@ -695,21 +695,20 @@ GFXDECODE_END MACHINE_CONFIG_START(spectrum_state::ts2068) spectrum_128(config); - MCFG_DEVICE_REPLACE("maincpu", Z80, XTAL(14'112'000)/4) /* From Schematic; 3.528 MHz */ - MCFG_DEVICE_PROGRAM_MAP(ts2068_mem) - MCFG_DEVICE_IO_MAP(ts2068_io) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", spectrum_state, spec_interrupt) + Z80(config.replace(), m_maincpu, XTAL(14'112'000)/4); /* From Schematic; 3.528 MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &spectrum_state::ts2068_mem); + m_maincpu->set_addrmap(AS_IO, &spectrum_state::ts2068_io); + m_maincpu->set_vblank_int("screen", FUNC(spectrum_state::spec_interrupt)); config.m_minimum_quantum = attotime::from_hz(60); MCFG_MACHINE_RESET_OVERRIDE(spectrum_state, ts2068 ) /* video hardware */ - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_SIZE(TS2068_SCREEN_WIDTH, TS2068_SCREEN_HEIGHT) - MCFG_SCREEN_VISIBLE_AREA(0, TS2068_SCREEN_WIDTH-1, 0, TS2068_SCREEN_HEIGHT-1) - MCFG_SCREEN_UPDATE_DRIVER(spectrum_state, screen_update_ts2068) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, spectrum_state, screen_vblank_timex)) + m_screen->set_refresh_hz(60); + m_screen->set_size(TS2068_SCREEN_WIDTH, TS2068_SCREEN_HEIGHT); + m_screen->set_visarea(0, TS2068_SCREEN_WIDTH-1, 0, TS2068_SCREEN_HEIGHT-1); + m_screen->set_screen_update(FUNC(spectrum_state::screen_update_ts2068)); + m_screen->screen_vblank().set(FUNC(spectrum_state::screen_vblank_timex)); subdevice<gfxdecode_device>("gfxdecode")->set_info(gfx_ts2068); @@ -731,34 +730,33 @@ MACHINE_CONFIG_START(spectrum_state::ts2068) MACHINE_CONFIG_END -MACHINE_CONFIG_START(spectrum_state::uk2086) +void spectrum_state::uk2086(machine_config &config) +{ ts2068(config); - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_REFRESH_RATE(50) -MACHINE_CONFIG_END + m_screen->set_refresh_hz(50); +} -MACHINE_CONFIG_START(spectrum_state::tc2048) +void spectrum_state::tc2048(machine_config &config) +{ spectrum(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(tc2048_mem) - MCFG_DEVICE_IO_MAP(tc2048_io) + m_maincpu->set_addrmap(AS_PROGRAM, &spectrum_state::tc2048_mem); + m_maincpu->set_addrmap(AS_IO, &spectrum_state::tc2048_io); MCFG_MACHINE_RESET_OVERRIDE(spectrum_state, tc2048 ) /* video hardware */ - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_SIZE(TS2068_SCREEN_WIDTH, SPEC_SCREEN_HEIGHT) - MCFG_SCREEN_VISIBLE_AREA(0, TS2068_SCREEN_WIDTH-1, 0, SPEC_SCREEN_HEIGHT-1) - MCFG_SCREEN_UPDATE_DRIVER(spectrum_state, screen_update_tc2048) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, spectrum_state, screen_vblank_timex)) + m_screen->set_refresh_hz(50); + m_screen->set_size(TS2068_SCREEN_WIDTH, SPEC_SCREEN_HEIGHT); + m_screen->set_visarea(0, TS2068_SCREEN_WIDTH-1, 0, SPEC_SCREEN_HEIGHT-1); + m_screen->set_screen_update(FUNC(spectrum_state::screen_update_tc2048)); + m_screen->screen_vblank().set(FUNC(spectrum_state::screen_vblank_timex)); MCFG_VIDEO_START_OVERRIDE(spectrum_state, spectrum_128 ) /* internal ram */ m_ram->set_default_size("48K"); -MACHINE_CONFIG_END +} diff --git a/src/mame/drivers/tispellb.cpp b/src/mame/drivers/tispellb.cpp index e083579e4e8..81a4a29d9a5 100644 --- a/src/mame/drivers/tispellb.cpp +++ b/src/mame/drivers/tispellb.cpp @@ -369,8 +369,8 @@ void tispellb_state::rev1(machine_config &config) } -MACHINE_CONFIG_START(tispellb_state::rev2) - +void tispellb_state::rev2(machine_config &config) +{ /* basic machine hardware */ tms0270_cpu_device &tms(TMS0270(config, m_maincpu, 350000)); // approximation tms.k().set(FUNC(tispellb_state::main_read_k)); @@ -387,9 +387,8 @@ MACHINE_CONFIG_START(tispellb_state::rev2) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) -MACHINE_CONFIG_END + SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25); +} diff --git a/src/mame/drivers/tk2000.cpp b/src/mame/drivers/tk2000.cpp index e480687ab15..dd44c72a319 100644 --- a/src/mame/drivers/tk2000.cpp +++ b/src/mame/drivers/tk2000.cpp @@ -566,27 +566,28 @@ static INPUT_PORTS_START( tk2000 ) PORT_CONFSETTING(0x03, "Amber") INPUT_PORTS_END -MACHINE_CONFIG_START(tk2000_state::tk2000) +void tk2000_state::tk2000(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD(A2_CPU_TAG, M6502, 1021800) /* close to actual CPU frequency of 1.020484 MHz */ - MCFG_DEVICE_PROGRAM_MAP(apple2_map) + M6502(config, m_maincpu, 1021800); /* close to actual CPU frequency of 1.020484 MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &tk2000_state::apple2_map); + TIMER(config, "scantimer").configure_scanline(FUNC(tk2000_state::apple2_interrupt), "screen", 0, 1); config.m_minimum_quantum = attotime::from_hz(60); APPLE2_VIDEO(config, m_video, XTAL(14'318'181)); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_SIZE(280*2, 262) - MCFG_SCREEN_VISIBLE_AREA(0, (280*2)-1,0,192-1) - MCFG_SCREEN_UPDATE_DRIVER(tk2000_state, screen_update) - MCFG_SCREEN_PALETTE(m_video) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + m_screen->set_size(280*2, 262); + m_screen->set_visarea(0, (280*2)-1,0,192-1); + m_screen->set_screen_update(FUNC(tk2000_state::screen_update)); + m_screen->set_palette(m_video); /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD(A2_SPEAKER_TAG, SPEAKER_SOUND) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) + SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 1.00); /* /INH banking */ ADDRESS_MAP_BANK(config, A2_UPPERBANK_TAG).set_map(&tk2000_state::inhbank_map).set_options(ENDIANNESS_LITTLE, 8, 32, 0x4000); @@ -595,7 +596,7 @@ MACHINE_CONFIG_START(tk2000_state::tk2000) CASSETTE(config, m_cassette); m_cassette->set_default_state(CASSETTE_STOPPED); -MACHINE_CONFIG_END +} /*************************************************************************** diff --git a/src/mame/drivers/tk80bs.cpp b/src/mame/drivers/tk80bs.cpp index 7109956a936..893dfdaf5f7 100644 --- a/src/mame/drivers/tk80bs.cpp +++ b/src/mame/drivers/tk80bs.cpp @@ -172,19 +172,20 @@ static GFXDECODE_START( gfx_tk80bs ) GFXDECODE_END -MACHINE_CONFIG_START(tk80bs_state::tk80bs) +void tk80bs_state::tk80bs(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu",I8080, XTAL(1'000'000)) //unknown clock - MCFG_DEVICE_PROGRAM_MAP(tk80bs_mem) + I8080(config, m_maincpu, XTAL(1'000'000)); //unknown clock + m_maincpu->set_addrmap(AS_PROGRAM, &tk80bs_state::tk80bs_mem); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_SIZE(256, 128) - MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 128-1) - MCFG_SCREEN_UPDATE_DRIVER(tk80bs_state, screen_update_tk80bs) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_size(256, 128); + screen.set_visarea(0, 256-1, 0, 128-1); + screen.set_screen_update(FUNC(tk80bs_state::screen_update_tk80bs)); + screen.set_palette(m_palette); PALETTE(config, m_palette, palette_device::MONOCHROME); GFXDECODE(config, m_gfxdecode, m_palette, gfx_tk80bs); @@ -196,7 +197,7 @@ MACHINE_CONFIG_START(tk80bs_state::tk80bs) generic_keyboard_device &keyboard(GENERIC_KEYBOARD(config, "keyboard", 0)); keyboard.set_keyboard_callback(FUNC(tk80bs_state::kbd_put)); -MACHINE_CONFIG_END +} ROM_START( tk80bs ) diff --git a/src/mame/drivers/tm990189.cpp b/src/mame/drivers/tm990189.cpp index 30faffb571e..73db95e309f 100644 --- a/src/mame/drivers/tm990189.cpp +++ b/src/mame/drivers/tm990189.cpp @@ -821,7 +821,8 @@ void tm990189_state::tm990_189_cru_map(address_map &map) map(0x0400, 0x05ff).w(m_tms9902, FUNC(tms9902_device::cruwrite)); /* optional tms9902 */ } -MACHINE_CONFIG_START(tm990189_state::tm990_189) +void tm990189_state::tm990_189(machine_config &config) +{ /* basic machine hardware */ TMS9980A(config, m_tms9980a, 8_MHz_XTAL); // clock divided by 4 internally m_tms9980a->set_addrmap(AS_PROGRAM, &tm990189_state::tm990_189_memmap); @@ -877,9 +878,10 @@ MACHINE_CONFIG_START(tm990189_state::tm990_189) // Need to delay the timer, or it will spoil the initial LOAD // TODO: Fix this, probably inside CPU display_timer.set_start_delay(attotime::from_msec(150)); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(tm990189_state::tm990_189_v) +void tm990189_state::tm990_189_v(machine_config &config) +{ /* basic machine hardware */ TMS9980A(config, m_tms9980a, 8_MHz_XTAL); m_tms9980a->set_addrmap(AS_PROGRAM, &tm990189_state::tm990_189_v_memmap); @@ -938,7 +940,7 @@ MACHINE_CONFIG_START(tm990189_state::tm990_189_v) timer_device &display_timer(TIMER(config, "display_timer")); display_timer.configure_periodic(FUNC(tm990189_state::display_callback), attotime::from_hz(30)); display_timer.set_start_delay(attotime::from_msec(150)); -MACHINE_CONFIG_END +} /* diff --git a/src/mame/drivers/tmaster.cpp b/src/mame/drivers/tmaster.cpp index 9a3038b569e..1fbe7c9326b 100644 --- a/src/mame/drivers/tmaster.cpp +++ b/src/mame/drivers/tmaster.cpp @@ -366,9 +366,11 @@ int tmaster_compute_addr(uint16_t reg_low, uint16_t reg_mid, uint16_t reg_high) return (reg_low & 0xff) | ((reg_mid & 0x1ff) << 8) | (reg_high << 17); } -MACHINE_CONFIG_START(tmaster_state::tm) - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(24'000'000) / 2) /* 12MHz */ - MCFG_DEVICE_PROGRAM_MAP(tmaster_map) +void tmaster_state::tm(machine_config &config) +{ + M68000(config, m_maincpu, XTAL(24'000'000) / 2); /* 12MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &tmaster_state::tmaster_map); + TIMER(config, "scantimer").configure_scanline(FUNC(tmaster_state::scanline_interrupt), "screen", 0, 1); MC68681(config, m_duart, XTAL(8'664'000) / 2 /*??*/); @@ -380,13 +382,13 @@ MACHINE_CONFIG_START(tmaster_state::tm) NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); // video hardware - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(400, 256) - MCFG_SCREEN_VISIBLE_AREA(0, 400-1, 0, 256-1) - MCFG_SCREEN_UPDATE_DRIVER(tmaster_state, screen_update) - MCFG_SCREEN_PALETTE(m_palette) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0)); + m_screen->set_size(400, 256); + m_screen->set_visarea(0, 400-1, 0, 256-1); + m_screen->set_screen_update(FUNC(tmaster_state::screen_update)); + m_screen->set_palette(m_palette); PALETTE(config, m_palette).set_format(palette_device::xBGR_555, 0x1000); @@ -397,9 +399,8 @@ MACHINE_CONFIG_START(tmaster_state::tm) // sound hardware SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(24'000'000) / 16, okim6295_device::PIN7_HIGH) /* 1.5Mhz? clock frequency & pin 7 not verified */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_CONFIG_END + OKIM6295(config, m_oki, XTAL(24'000'000) / 16, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 1.0); /* 1.5Mhz? clock frequency & pin 7 not verified */ +} void tmaster_state::tmds1204(machine_config &config) { diff --git a/src/mame/drivers/tmspoker.cpp b/src/mame/drivers/tmspoker.cpp index 8b89cc18270..0a658e55cad 100644 --- a/src/mame/drivers/tmspoker.cpp +++ b/src/mame/drivers/tmspoker.cpp @@ -564,8 +564,8 @@ GFXDECODE_END * Machine Drivers * *************************/ -MACHINE_CONFIG_START(tmspoker_state::tmspoker) - +void tmspoker_state::tmspoker(machine_config &config) +{ // CPU TMS9980A; no line connections TMS9980A(config, m_maincpu, MASTER_CLOCK); m_maincpu->set_addrmap(AS_PROGRAM, &tmspoker_state::tmspoker_map); @@ -573,13 +573,13 @@ MACHINE_CONFIG_START(tmspoker_state::tmspoker) m_maincpu->set_vblank_int("screen", FUNC(tmspoker_state::tmspoker_interrupt)); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(32*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) - MCFG_SCREEN_UPDATE_DRIVER(tmspoker_state, screen_update_tmspoker) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(32*8, 32*8); + screen.set_visarea(0*8, 32*8-1, 0*8, 32*8-1); + screen.set_screen_update(FUNC(tmspoker_state::screen_update_tmspoker)); + screen.set_palette("palette"); GFXDECODE(config, m_gfxdecode, "palette", gfx_tmspoker); PALETTE(config, "palette", FUNC(tmspoker_state::tmspoker_palette), 256); @@ -588,8 +588,7 @@ MACHINE_CONFIG_START(tmspoker_state::tmspoker) crtc.set_screen("screen"); crtc.set_show_border_area(false); crtc.set_char_width(8); - -MACHINE_CONFIG_END +} /************************* diff --git a/src/mame/drivers/toaplan2.cpp b/src/mame/drivers/toaplan2.cpp index 2bedef01040..e0294a4002b 100644 --- a/src/mame/drivers/toaplan2.cpp +++ b/src/mame/drivers/toaplan2.cpp @@ -3205,8 +3205,8 @@ static GFXDECODE_START( gfx_batrider ) GFXDECODE_END -MACHINE_CONFIG_START(toaplan2_state::tekipaki) - +void toaplan2_state::tekipaki(machine_config &config) +{ /* basic machine hardware */ M68000(config, m_maincpu, 10_MHz_XTAL); // 10MHz Oscillator m_maincpu->set_addrmap(AS_PROGRAM, &toaplan2_state::tekipaki_68k_mem); @@ -3246,10 +3246,10 @@ MACHINE_CONFIG_START(toaplan2_state::tekipaki) ym3812_device &ymsnd(YM3812(config, "ymsnd", 27_MHz_XTAL/8)); ymsnd.irq_handler().set_inputline(m_audiocpu, 0); ymsnd.add_route(ALL_OUTPUTS, "mono", 1.0); -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(toaplan2_state::ghox) +} +void toaplan2_state::ghox(machine_config &config) +{ /* basic machine hardware */ M68000(config, m_maincpu, 10_MHz_XTAL); /* verified on pcb */ m_maincpu->set_addrmap(AS_PROGRAM, &toaplan2_state::ghox_68k_mem); @@ -3284,7 +3284,7 @@ MACHINE_CONFIG_START(toaplan2_state::ghox) SPEAKER(config, "mono").front_center(); YM2151(config, "ymsnd", 27_MHz_XTAL/8).add_route(ALL_OUTPUTS, "mono", 1.0); // verified on pcb -MACHINE_CONFIG_END +} /* probably dogyuun, vfive and kbash use the same decryption table; those 3 games have been seen with the NITRO905 chip, other alias are @@ -3336,8 +3336,8 @@ a4849 cd */ -MACHINE_CONFIG_START(toaplan2_state::dogyuun) - +void toaplan2_state::dogyuun(machine_config &config) +{ /* basic machine hardware */ M68000(config, m_maincpu, 25_MHz_XTAL/2); /* verified on pcb */ m_maincpu->set_addrmap(AS_PROGRAM, &toaplan2_state::dogyuun_68k_mem); @@ -3376,11 +3376,11 @@ MACHINE_CONFIG_START(toaplan2_state::dogyuun) OKIM6295(config, m_oki[0], 25_MHz_XTAL/24, okim6295_device::PIN7_HIGH); // verified on PCB m_oki[0]->add_route(ALL_OUTPUTS, "mono", 0.5); -MACHINE_CONFIG_END - +} -MACHINE_CONFIG_START(toaplan2_state::kbash) +void toaplan2_state::kbash(machine_config &config) +{ /* basic machine hardware */ M68000(config, m_maincpu, 16_MHz_XTAL); /* 16MHz Oscillator */ m_maincpu->set_addrmap(AS_PROGRAM, &toaplan2_state::kbash_68k_mem); @@ -3420,11 +3420,11 @@ MACHINE_CONFIG_START(toaplan2_state::kbash) OKIM6295(config, m_oki[0], 32_MHz_XTAL/32, okim6295_device::PIN7_HIGH); m_oki[0]->add_route(ALL_OUTPUTS, "mono", 0.5); -MACHINE_CONFIG_END - +} -MACHINE_CONFIG_START(toaplan2_state::kbash2) +void toaplan2_state::kbash2(machine_config &config) +{ /* basic machine hardware */ M68000(config, m_maincpu, 16_MHz_XTAL); /* 16MHz Oscillator */ m_maincpu->set_addrmap(AS_PROGRAM, &toaplan2_state::kbash2_68k_mem); @@ -3456,11 +3456,11 @@ MACHINE_CONFIG_START(toaplan2_state::kbash2) OKIM6295(config, m_oki[1], 16_MHz_XTAL/16, okim6295_device::PIN7_HIGH); m_oki[1]->add_route(ALL_OUTPUTS, "mono", 1.0); -MACHINE_CONFIG_END - +} -MACHINE_CONFIG_START(toaplan2_state::truxton2) +void toaplan2_state::truxton2(machine_config &config) +{ /* basic machine hardware */ M68000(config, m_maincpu, 16_MHz_XTAL); /* verified on pcb */ m_maincpu->set_addrmap(AS_PROGRAM, &toaplan2_state::truxton2_68k_mem); @@ -3500,11 +3500,11 @@ MACHINE_CONFIG_START(toaplan2_state::truxton2) OKIM6295(config, m_oki[0], 16_MHz_XTAL/4, okim6295_device::PIN7_LOW); // verified on PCB m_oki[0]->add_route(ALL_OUTPUTS, "mono", 1.0); #endif -MACHINE_CONFIG_END - +} -MACHINE_CONFIG_START(toaplan2_state::pipibibs) +void toaplan2_state::pipibibs(machine_config &config) +{ /* basic machine hardware */ M68000(config, m_maincpu, 10_MHz_XTAL); // verified on PCB m_maincpu->set_addrmap(AS_PROGRAM, &toaplan2_state::pipibibs_68k_mem); @@ -3541,15 +3541,15 @@ MACHINE_CONFIG_START(toaplan2_state::pipibibs) ym3812_device &ymsnd(YM3812(config, "ymsnd", 27_MHz_XTAL/8)); // verified on PCB ymsnd.irq_handler().set_inputline(m_audiocpu, 0); ymsnd.add_route(ALL_OUTPUTS, "mono", 1.0); -MACHINE_CONFIG_END - +} -MACHINE_CONFIG_START(toaplan2_state::pipibibsbl) +void toaplan2_state::pipibibsbl(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 12_MHz_XTAL) // ??? (position labeled "68000-12" but 10 MHz-rated parts used) - MCFG_DEVICE_PROGRAM_MAP(pipibibi_bootleg_68k_mem) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(toaplan2_state, pipibibsbl_irq_ack) + M68000(config, m_maincpu, 12_MHz_XTAL); // ??? (position labeled "68000-12" but 10 MHz-rated parts used) + m_maincpu->set_addrmap(AS_PROGRAM, &toaplan2_state::pipibibi_bootleg_68k_mem); + m_maincpu->set_irq_acknowledge_callback(FUNC(toaplan2_state::pipibibsbl_irq_ack)); Z80(config, m_audiocpu, 12_MHz_XTAL / 2); // GoldStar Z8400B; clock source and divider unknown m_audiocpu->set_addrmap(AS_PROGRAM, &toaplan2_state::pipibibs_sound_z80_mem); @@ -3580,7 +3580,7 @@ MACHINE_CONFIG_START(toaplan2_state::pipibibsbl) ym3812_device &ymsnd(YM3812(config, "ymsnd", 28.322_MHz_XTAL / 8)); // ??? ymsnd.irq_handler().set_inputline(m_audiocpu, 0); ymsnd.add_route(ALL_OUTPUTS, "mono", 1.0); -MACHINE_CONFIG_END +} /* x = modified to match batsugun 'unencrypted' code - '?' likewise, but not so sure about them */ /* e = opcodes used in the EEPROM service routine */ @@ -3621,8 +3621,8 @@ static const uint8_t ts001turbo_decryption_table[256] = { }; -MACHINE_CONFIG_START(toaplan2_state::fixeight) - +void toaplan2_state::fixeight(machine_config &config) +{ /* basic machine hardware */ M68000(config, m_maincpu, 16_MHz_XTAL); // verified on PCB m_maincpu->set_addrmap(AS_PROGRAM, &toaplan2_state::fixeight_68k_mem); @@ -3659,15 +3659,15 @@ MACHINE_CONFIG_START(toaplan2_state::fixeight) OKIM6295(config, m_oki[0], 16_MHz_XTAL/16, okim6295_device::PIN7_HIGH); /* verified on pcb */ m_oki[0]->add_route(ALL_OUTPUTS, "mono", 0.5); -MACHINE_CONFIG_END - +} -MACHINE_CONFIG_START(toaplan2_state::fixeightbl) +void toaplan2_state::fixeightbl(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(10'000'000)) /* 10MHz Oscillator */ - MCFG_DEVICE_PROGRAM_MAP(fixeightbl_68k_mem) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(toaplan2_state, fixeightbl_irq_ack) + M68000(config, m_maincpu, XTAL(10'000'000)); /* 10MHz Oscillator */ + m_maincpu->set_addrmap(AS_PROGRAM, &toaplan2_state::fixeightbl_68k_mem); + m_maincpu->set_irq_acknowledge_callback(FUNC(toaplan2_state::fixeightbl_irq_ack)); /* video hardware */ SCREEN(config, m_screen, SCREEN_TYPE_RASTER); @@ -3695,11 +3695,11 @@ MACHINE_CONFIG_START(toaplan2_state::fixeightbl) OKIM6295(config, m_oki[0], 14_MHz_XTAL/16, okim6295_device::PIN7_LOW); m_oki[0]->add_route(ALL_OUTPUTS, "mono", 1.0); m_oki[0]->set_addrmap(0, &toaplan2_state::fixeightbl_oki); -MACHINE_CONFIG_END - +} -MACHINE_CONFIG_START(toaplan2_state::vfive) +void toaplan2_state::vfive(machine_config &config) +{ /* basic machine hardware */ M68000(config, m_maincpu, 20_MHz_XTAL/2); // verified on PCB m_maincpu->set_addrmap(AS_PROGRAM, &toaplan2_state::vfive_68k_mem); @@ -3732,11 +3732,11 @@ MACHINE_CONFIG_START(toaplan2_state::vfive) SPEAKER(config, "mono").front_center(); YM2151(config, "ymsnd", 27_MHz_XTAL/8).add_route(ALL_OUTPUTS, "mono", 1.0); // verified on PCB -MACHINE_CONFIG_END - +} -MACHINE_CONFIG_START(toaplan2_state::batsugun) +void toaplan2_state::batsugun(machine_config &config) +{ /* basic machine hardware */ M68000(config, m_maincpu, 32_MHz_XTAL/2); // 16MHz, 32MHz Oscillator m_maincpu->set_addrmap(AS_PROGRAM, &toaplan2_state::batsugun_68k_mem); @@ -3777,10 +3777,10 @@ MACHINE_CONFIG_START(toaplan2_state::batsugun) OKIM6295(config, m_oki[0], 32_MHz_XTAL/8, okim6295_device::PIN7_LOW); m_oki[0]->add_route(ALL_OUTPUTS, "mono", 0.5); -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(toaplan2_state::pwrkick) +} +void toaplan2_state::pwrkick(machine_config &config) +{ /* basic machine hardware */ M68000(config, m_maincpu, 16_MHz_XTAL); m_maincpu->set_addrmap(AS_PROGRAM, &toaplan2_state::pwrkick_68k_mem); @@ -3812,9 +3812,10 @@ MACHINE_CONFIG_START(toaplan2_state::pwrkick) // empty YM2151 socket OKIM6295(config, m_oki[0], 27_MHz_XTAL/8, okim6295_device::PIN7_HIGH); // not confirmed m_oki[0]->add_route(ALL_OUTPUTS, "mono", 0.5); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(toaplan2_state::othldrby) +void toaplan2_state::othldrby(machine_config &config) +{ /* basic machine hardware */ M68000(config, m_maincpu, 16_MHz_XTAL); m_maincpu->set_addrmap(AS_PROGRAM, &toaplan2_state::othldrby_68k_mem); @@ -3844,10 +3845,11 @@ MACHINE_CONFIG_START(toaplan2_state::othldrby) OKIM6295(config, m_oki[0], 27_MHz_XTAL/8, okim6295_device::PIN7_HIGH); // not confirmed m_oki[0]->add_route(ALL_OUTPUTS, "mono", 0.5); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(toaplan2_state::enmadaio) +void toaplan2_state::enmadaio(machine_config &config) +{ /* basic machine hardware */ M68000(config, m_maincpu, 20_MHz_XTAL/2); m_maincpu->set_addrmap(AS_PROGRAM, &toaplan2_state::enmadaio_68k_mem); @@ -3876,10 +3878,10 @@ MACHINE_CONFIG_START(toaplan2_state::enmadaio) OKIM6295(config, m_oki[0], 16_MHz_XTAL/4, okim6295_device::PIN7_LOW); // pin7 not confirmed m_oki[0]->set_addrmap(0, &toaplan2_state::enmadaio_oki); m_oki[0]->add_route(ALL_OUTPUTS, "mono", 0.5); -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(toaplan2_state::snowbro2) +} +void toaplan2_state::snowbro2(machine_config &config) +{ /* basic machine hardware */ M68000(config, m_maincpu, 16_MHz_XTAL); m_maincpu->set_addrmap(AS_PROGRAM, &toaplan2_state::snowbro2_68k_mem); @@ -3910,11 +3912,11 @@ MACHINE_CONFIG_START(toaplan2_state::snowbro2) OKIM6295(config, m_oki[0], 27_MHz_XTAL/10, okim6295_device::PIN7_HIGH); m_oki[0]->add_route(ALL_OUTPUTS, "mono", 1.0); -MACHINE_CONFIG_END - +} -MACHINE_CONFIG_START(toaplan2_state::mahoudai) +void toaplan2_state::mahoudai(machine_config &config) +{ /* basic machine hardware */ M68000(config, m_maincpu, 32_MHz_XTAL/2); // 16MHz, 32MHz Oscillator m_maincpu->set_addrmap(AS_PROGRAM, &toaplan2_state::mahoudai_68k_mem); @@ -3953,11 +3955,11 @@ MACHINE_CONFIG_START(toaplan2_state::mahoudai) OKIM6295(config, m_oki[0], 32_MHz_XTAL/32, okim6295_device::PIN7_HIGH); m_oki[0]->add_route(ALL_OUTPUTS, "mono", 1.0); -MACHINE_CONFIG_END - +} -MACHINE_CONFIG_START(toaplan2_state::shippumd) +void toaplan2_state::shippumd(machine_config &config) +{ /* basic machine hardware */ M68000(config, m_maincpu, 32_MHz_XTAL/2); // 16MHz, 32MHz Oscillator m_maincpu->set_addrmap(AS_PROGRAM, &toaplan2_state::shippumd_68k_mem); @@ -3996,10 +3998,10 @@ MACHINE_CONFIG_START(toaplan2_state::shippumd) OKIM6295(config, m_oki[0], 32_MHz_XTAL/32, okim6295_device::PIN7_HIGH); m_oki[0]->add_route(ALL_OUTPUTS, "mono", 1.0); -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(toaplan2_state::bgaregga) +} +void toaplan2_state::bgaregga(machine_config &config) +{ /* basic machine hardware */ M68000(config, m_maincpu, 32_MHz_XTAL/2); // 16MHz, 32MHz Oscillator m_maincpu->set_addrmap(AS_PROGRAM, &toaplan2_state::bgaregga_68k_mem); @@ -4045,18 +4047,19 @@ MACHINE_CONFIG_START(toaplan2_state::bgaregga) NMK112(config, m_nmk112, 0); m_nmk112->set_rom0_tag("oki1"); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(toaplan2_state::bgareggabl) +void toaplan2_state::bgareggabl(machine_config &config) +{ bgaregga(config); MCFG_VIDEO_START_OVERRIDE(toaplan2_state,bgareggabl) m_screen->set_screen_update(FUNC(toaplan2_state::screen_update_bootleg)); -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(toaplan2_state::batrider) +} +void toaplan2_state::batrider(machine_config &config) +{ /* basic machine hardware */ M68000(config, m_maincpu, 32_MHz_XTAL/2); // 16MHz, 32MHz Oscillator (verified) m_maincpu->set_addrmap(AS_PROGRAM, &toaplan2_state::batrider_68k_mem); @@ -4116,19 +4119,19 @@ MACHINE_CONFIG_START(toaplan2_state::batrider) NMK112(config, m_nmk112, 0); m_nmk112->set_rom0_tag("oki1"); m_nmk112->set_rom1_tag("oki2"); -MACHINE_CONFIG_END - +} -MACHINE_CONFIG_START(toaplan2_state::bbakraid) +void toaplan2_state::bbakraid(machine_config &config) +{ /* basic machine hardware */ M68000(config, m_maincpu, 32_MHz_XTAL/2); // 16MHz, 32MHz Oscillator m_maincpu->set_addrmap(AS_PROGRAM, &toaplan2_state::bbakraid_68k_mem); - MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(32'000'000)/6) /* 5.3333MHz , 32MHz Oscillator */ - MCFG_DEVICE_PROGRAM_MAP(bbakraid_sound_z80_mem) - MCFG_DEVICE_IO_MAP(bbakraid_sound_z80_port) - MCFG_DEVICE_PERIODIC_INT_DRIVER(toaplan2_state, bbakraid_snd_interrupt, 448) + Z80(config, m_audiocpu, XTAL(32'000'000)/6); /* 5.3333MHz , 32MHz Oscillator */ + m_audiocpu->set_addrmap(AS_PROGRAM, &toaplan2_state::bbakraid_sound_z80_mem); + m_audiocpu->set_addrmap(AS_IO, &toaplan2_state::bbakraid_sound_z80_port); + m_audiocpu->set_periodic_int(FUNC(toaplan2_state::bbakraid_snd_interrupt), attotime::from_hz(448)); config.m_minimum_quantum = attotime::from_hz(600); @@ -4174,7 +4177,7 @@ MACHINE_CONFIG_START(toaplan2_state::bbakraid) YMZ280B(config, "ymz", 16.9344_MHz_XTAL).add_route(ALL_OUTPUTS, "mono", 1.0); // IRQ not used ??? Connected to a test pin (TP082) -MACHINE_CONFIG_END +} /*************************************************************************** diff --git a/src/mame/drivers/tomcat.cpp b/src/mame/drivers/tomcat.cpp index 394b5a34553..ba8f361d667 100644 --- a/src/mame/drivers/tomcat.cpp +++ b/src/mame/drivers/tomcat.cpp @@ -308,25 +308,26 @@ void tomcat_state::machine_start() m_dsp_bio = 0; } -MACHINE_CONFIG_START(tomcat_state::tomcat) - MCFG_DEVICE_ADD("maincpu", M68010, 12.096_MHz_XTAL / 2) - MCFG_DEVICE_PROGRAM_MAP(tomcat_map) - MCFG_DEVICE_PERIODIC_INT_DRIVER(tomcat_state, irq1_line_assert, 5*60) - //MCFG_DEVICE_PERIODIC_INT_DRIVER(tomcat_state, irq1_line_assert, 12.096_MHz_XTAL / 16 / 16 / 16 / 12) +void tomcat_state::tomcat(machine_config &config) +{ + M68010(config, m_maincpu, 12.096_MHz_XTAL / 2); + m_maincpu->set_addrmap(AS_PROGRAM, &tomcat_state::tomcat_map); + m_maincpu->set_periodic_int(FUNC(tomcat_state::irq1_line_assert), attotime::from_hz(5*60)); + //m_maincpu->set_periodic_int(FUNC(tomcat_state::irq1_line_assert), attotime::from_hz(12.096_MHz_XTAL / 16 / 16 / 16 / 12)); TMS32010(config, m_dsp, 16_MHz_XTAL); m_dsp->set_addrmap(AS_PROGRAM, &tomcat_state::dsp_map); m_dsp->bio().set(FUNC(tomcat_state::dsp_bio_r)); - MCFG_DEVICE_ADD("soundcpu", M6502, 14.318181_MHz_XTAL / 8) - MCFG_DEVICE_DISABLE() - MCFG_DEVICE_PROGRAM_MAP( sound_map) + m6502_device &soundcpu(M6502(config, "soundcpu", 14.318181_MHz_XTAL / 8)); + soundcpu.set_disable(); + soundcpu.set_addrmap(AS_PROGRAM, &tomcat_state::sound_map); ADC0809(config, m_adc, 12.096_MHz_XTAL / 16); m_adc->in_callback<0>().set_ioport("STICKY"); m_adc->in_callback<1>().set_ioport("STICKX"); - MCFG_DEVICE_ADD("riot", RIOT6532, 14.318181_MHz_XTAL / 8) + RIOT6532(config, "riot", 14.318181_MHz_XTAL / 8); /* PA0 = /WS OUTPUT (TMS-5220 WRITE STROBE) PA1 = /RS OUTPUT (TMS-5220 READ STROBE) @@ -358,33 +359,31 @@ MACHINE_CONFIG_START(tomcat_state::tomcat) WATCHDOG_TIMER(config, "watchdog"); - MCFG_DEVICE_ADD("m48t02", M48T02, 0) + M48T02(config, "m48t02", 0); VECTOR(config, "vector", 0); - MCFG_SCREEN_ADD("screen", VECTOR) - MCFG_SCREEN_REFRESH_RATE(40) - //MCFG_SCREEN_REFRESH_RATE((double)XTAL(12'000'000) / 16 / 16 / 16 / 12 / 5 ) - MCFG_SCREEN_SIZE(400, 300) - MCFG_SCREEN_VISIBLE_AREA(0, 280, 0, 250) - MCFG_SCREEN_UPDATE_DEVICE("vector", vector_device, screen_update) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_VECTOR)); + screen.set_refresh_hz(40); + //screen.set_refresh_hz((double)XTAL(12'000'000) / 16 / 16 / 16 / 12 / 5 ); + screen.set_size(400, 300); + screen.set_visarea(0, 280, 0, 250); + screen.set_screen_update("vector", FUNC(vector_device::screen_update)); avg_device &avg(AVG_TOMCAT(config, "avg", 0)); avg.set_vector_tag("vector"); SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); - MCFG_DEVICE_ADD("pokey1", POKEY, XTAL(14'318'181) / 8) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.20) + POKEY(config, "pokey1", XTAL(14'318'181) / 8).add_route(ALL_OUTPUTS, "lspeaker", 0.20); - MCFG_DEVICE_ADD("pokey2", POKEY, XTAL(14'318'181) / 8) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.20) + POKEY(config, "pokey2", XTAL(14'318'181) / 8).add_route(ALL_OUTPUTS, "rspeaker", 0.20); - MCFG_DEVICE_ADD("tms", TMS5220, 325000) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.50) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.50) + TMS5220(config, m_tms, 325000); + m_tms->add_route(ALL_OUTPUTS, "lspeaker", 0.50); + m_tms->add_route(ALL_OUTPUTS, "rspeaker", 0.50); YM2151(config, "ymsnd", XTAL(14'318'181)/4).add_route(0, "lspeaker", 0.60).add_route(1, "rspeaker", 0.60); -MACHINE_CONFIG_END +} ROM_START( tomcat ) ROM_REGION( 0x10000, "maincpu", 0) diff --git a/src/mame/drivers/toobin.cpp b/src/mame/drivers/toobin.cpp index dfffdf747a0..9d791ffcaef 100644 --- a/src/mame/drivers/toobin.cpp +++ b/src/mame/drivers/toobin.cpp @@ -203,30 +203,30 @@ GFXDECODE_END * *************************************/ -MACHINE_CONFIG_START(toobin_state::toobin) - +void toobin_state::toobin(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68010, MASTER_CLOCK/4) - MCFG_DEVICE_PROGRAM_MAP(main_map) + M68010(config, m_maincpu, MASTER_CLOCK/4); + m_maincpu->set_addrmap(AS_PROGRAM, &toobin_state::main_map); EEPROM_2804(config, "eeprom").lock_after_write(true); WATCHDOG_TIMER(config, "watchdog").set_vblank_count(m_screen, 8); /* video hardware */ - MCFG_TILEMAP_ADD_STANDARD("playfield", "gfxdecode", 4, toobin_state, get_playfield_tile_info, 8,8, SCAN_ROWS, 128,64) - MCFG_TILEMAP_ADD_STANDARD_TRANSPEN("alpha", "gfxdecode", 2, toobin_state, get_alpha_tile_info, 8,8, SCAN_ROWS, 64,48, 0) + TILEMAP(config, m_playfield_tilemap, m_gfxdecode, 4, 8,8, TILEMAP_SCAN_ROWS, 128,64).set_info_callback(FUNC(toobin_state::get_playfield_tile_info)); + TILEMAP(config, m_alpha_tilemap, m_gfxdecode, 2, 8,8, TILEMAP_SCAN_ROWS, 64,48, 0).set_info_callback(FUNC(toobin_state::get_alpha_tile_info)); ATARI_MOTION_OBJECTS(config, m_mob, 0, m_screen, toobin_state::s_mob_config); m_mob->set_gfxdecode(m_gfxdecode); - MCFG_SCREEN_ADD(m_screen, RASTER) - MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK) - MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/2, 640, 0, 512, 416, 0, 384) - MCFG_SCREEN_UPDATE_DRIVER(toobin_state, screen_update) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_video_attributes(VIDEO_UPDATE_BEFORE_VBLANK); + m_screen->set_raw(MASTER_CLOCK/2, 640, 0, 512, 416, 0, 384); + m_screen->set_screen_update(FUNC(toobin_state::screen_update)); GFXDECODE(config, m_gfxdecode, m_palette, gfx_toobin); - MCFG_PALETTE_ADD("palette", 1024) + PALETTE(config, m_palette).set_entries(1024); /* sound hardware */ SPEAKER(config, "lspeaker").front_left(); @@ -238,7 +238,7 @@ MACHINE_CONFIG_START(toobin_state::toobin) m_jsa->add_route(0, "lspeaker", 1.0); m_jsa->add_route(1, "rspeaker", 1.0); config.device_remove("jsa:tms"); -MACHINE_CONFIG_END +} diff --git a/src/mame/drivers/tosh1000.cpp b/src/mame/drivers/tosh1000.cpp index faaa3bb6bb0..741f31563b8 100644 --- a/src/mame/drivers/tosh1000.cpp +++ b/src/mame/drivers/tosh1000.cpp @@ -253,11 +253,12 @@ void tosh1000_state::cfg_fdc_35(device_t *device) dynamic_cast<device_slot_interface &>(*device->subdevice("fdc:1")).set_default_option(""); } -MACHINE_CONFIG_START(tosh1000_state::tosh1000) - MCFG_DEVICE_ADD("maincpu", I8088, XTAL(5'000'000)) - MCFG_DEVICE_PROGRAM_MAP(tosh1000_map) - MCFG_DEVICE_IO_MAP(tosh1000_io) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("mb:pic8259", pic8259_device, inta_cb) +void tosh1000_state::tosh1000(machine_config &config) +{ + I8088(config, m_maincpu, XTAL(5'000'000)); + m_maincpu->set_addrmap(AS_PROGRAM, &tosh1000_state::tosh1000_map); + m_maincpu->set_addrmap(AS_IO, &tosh1000_state::tosh1000_io); + m_maincpu->set_irq_acknowledge_callback("mb:pic8259", FUNC(pic8259_device::inta_cb)); ADDRESS_MAP_BANK(config, "bankdev").set_map(&tosh1000_state::tosh1000_romdos).set_options(ENDIANNESS_LITTLE, 8, 20, 0x10000); @@ -268,13 +269,12 @@ MACHINE_CONFIG_START(tosh1000_state::tosh1000) TC8521(config, "rtc", XTAL(32'768)); // FIXME: determine ISA bus clock - MCFG_DEVICE_ADD("isa1", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "cga", false) - MCFG_DEVICE_ADD("isa2", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "fdc_xt", false) - MCFG_SLOT_OPTION_MACHINE_CONFIG("fdc_xt", cfg_fdc_35) - MCFG_DEVICE_ADD("isa3", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "lpt", false) - MCFG_DEVICE_ADD("isa4", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "com", false) - MCFG_DEVICE_ADD("isa5", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false) - MCFG_DEVICE_ADD("isa6", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false) + ISA8_SLOT(config, "isa1", 0, "mb:isa", pc_isa8_cards, "cga", false); + ISA8_SLOT(config, "isa2", 0, "mb:isa", pc_isa8_cards, "fdc_xt", false).set_option_machine_config("fdc_xt", cfg_fdc_35); + ISA8_SLOT(config, "isa3", 0, "mb:isa", pc_isa8_cards, "lpt", false); + ISA8_SLOT(config, "isa4", 0, "mb:isa", pc_isa8_cards, "com", false); + ISA8_SLOT(config, "isa5", 0, "mb:isa", pc_isa8_cards, nullptr, false); + ISA8_SLOT(config, "isa6", 0, "mb:isa", pc_isa8_cards, nullptr, false); // SOFTWARE_LIST(config, "flop_list").set_original("tosh1000"); @@ -284,7 +284,7 @@ MACHINE_CONFIG_START(tosh1000_state::tosh1000) RAM(config, RAM_TAG).set_default_size("512K"); TOSH1000_BRAM(config, m_bram, 0); -MACHINE_CONFIG_END +} ROM_START( tosh1000 ) diff --git a/src/mame/drivers/tourvis.cpp b/src/mame/drivers/tourvis.cpp index 088c8a94a09..8409fb21bd5 100644 --- a/src/mame/drivers/tourvis.cpp +++ b/src/mame/drivers/tourvis.cpp @@ -403,14 +403,14 @@ MACHINE_CONFIG_START(tourvision_state::tourvision) config.m_minimum_quantum = attotime::from_hz(60); - MCFG_DEVICE_ADD("subcpu", I8085A, 18000000/3 /*?*/) - MCFG_DEVICE_PROGRAM_MAP(tourvision_8085_map) + I8085A(config, m_subcpu, 18000000/3 /*?*/); + m_subcpu->set_addrmap(AS_PROGRAM, &tourvision_state::tourvision_8085_map); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(PCE_MAIN_CLOCK, huc6260_device::WPF, 64, 64 + 1024 + 64, huc6260_device::LPF, 18, 18 + 242) - MCFG_SCREEN_UPDATE_DRIVER( pce_common_state, screen_update ) - MCFG_SCREEN_PALETTE("huc6260") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_raw(PCE_MAIN_CLOCK, huc6260_device::WPF, 64, 64 + 1024 + 64, huc6260_device::LPF, 18, 18 + 242); + screen.set_screen_update(FUNC(pce_common_state::screen_update)); + screen.set_palette(m_huc6260); HUC6260(config, m_huc6260, PCE_MAIN_CLOCK); m_huc6260->next_pixel_data().set("huc6270", FUNC(huc6270_device::next_pixel)); @@ -437,8 +437,6 @@ MACHINE_CONFIG_START(tourvision_state::tourvision) MCFG_GENERIC_MANDATORY SOFTWARE_LIST(config, "tv_list").set_original("pce_tourvision"); - - MACHINE_CONFIG_END #define TOURVISION_BIOS \ diff --git a/src/mame/drivers/tp84.cpp b/src/mame/drivers/tp84.cpp index fe252e1fcf3..ed82130285f 100644 --- a/src/mame/drivers/tp84.cpp +++ b/src/mame/drivers/tp84.cpp @@ -329,17 +329,17 @@ static GFXDECODE_START( gfx_tp84 ) GFXDECODE_END -MACHINE_CONFIG_START(tp84_state::tp84) - +void tp84_state::tp84(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("cpu1", MC6809E, XTAL(18'432'000)/12) /* verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(tp84_cpu1_map) + MC6809E(config, m_maincpu, XTAL(18'432'000)/12); /* verified on pcb */ + m_maincpu->set_addrmap(AS_PROGRAM, &tp84_state::tp84_cpu1_map); - MCFG_DEVICE_ADD("sub", MC6809E, XTAL(18'432'000)/12) /* verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(cpu2_map) + MC6809E(config, m_subcpu, XTAL(18'432'000)/12); /* verified on pcb */ + m_subcpu->set_addrmap(AS_PROGRAM, &tp84_state::cpu2_map); - MCFG_DEVICE_ADD("audiocpu", Z80,XTAL(14'318'181)/4) /* verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(audio_map) + Z80(config, m_audiocpu, XTAL(14'318'181)/4); /* verified on pcb */ + m_audiocpu->set_addrmap(AS_PROGRAM, &tp84_state::audio_map); config.m_minimum_quantum = attotime::from_hz(6000); /* 100 CPU slices per frame - a high value to ensure proper */ /* synchronization of the CPUs */ @@ -354,14 +354,14 @@ MACHINE_CONFIG_START(tp84_state::tp84) WATCHDOG_TIMER(config, "watchdog"); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(32*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(tp84_state, screen_update_tp84) - MCFG_SCREEN_PALETTE(m_palette) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, tp84_state, vblank_irq)) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0)); + m_screen->set_size(32*8, 32*8); + m_screen->set_visarea(0*8, 32*8-1, 2*8, 30*8-1); + m_screen->set_screen_update(FUNC(tp84_state::screen_update_tp84)); + m_screen->set_palette(m_palette); + m_screen->screen_vblank().set(FUNC(tp84_state::vblank_irq)); GFXDECODE(config, m_gfxdecode, m_palette, gfx_tp84); PALETTE(config, m_palette, FUNC(tp84_state::tp84_palette), 4096, 256); @@ -371,24 +371,21 @@ MACHINE_CONFIG_START(tp84_state::tp84) GENERIC_LATCH_8(config, "soundlatch"); - MCFG_DEVICE_ADD("y2404_1", Y2404, XTAL(14'318'181)/8) /* verified on pcb */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "filter1", 0.75) + Y2404(config, "y2404_1", XTAL(14'318'181)/8).add_route(ALL_OUTPUTS, "filter1", 0.75); /* verified on pcb */ - MCFG_DEVICE_ADD("y2404_2", Y2404, XTAL(14'318'181)/8) /* verified on pcb */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "filter2", 0.75) + Y2404(config, "y2404_2", XTAL(14'318'181)/8).add_route(ALL_OUTPUTS, "filter2", 0.75); /* verified on pcb */ - MCFG_DEVICE_ADD("y2404_3", Y2404, XTAL(14'318'181)/8) /* verified on pcb */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "filter3", 0.75) + Y2404(config, "y2404_3", XTAL(14'318'181)/8).add_route(ALL_OUTPUTS, "filter3", 0.75); /* verified on pcb */ for (auto &filter : m_filter) FILTER_RC(config, filter).add_route(ALL_OUTPUTS, "mono", 1.0); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(tp84_state::tp84b) +void tp84_state::tp84b(machine_config &config) +{ tp84(config); - MCFG_DEVICE_MODIFY("cpu1") - MCFG_DEVICE_PROGRAM_MAP(tp84b_cpu1_map) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, &tp84_state::tp84b_cpu1_map); +} /*************************************************************************** diff --git a/src/mame/drivers/travrusa.cpp b/src/mame/drivers/travrusa.cpp index 91bc67f5487..e692ebb0f08 100644 --- a/src/mame/drivers/travrusa.cpp +++ b/src/mame/drivers/travrusa.cpp @@ -304,24 +304,23 @@ void travrusa_state::machine_reset() m_scrollx[1] = 0; } -MACHINE_CONFIG_START(travrusa_state::travrusa) - +void travrusa_state::travrusa(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, 4000000) /* 4 MHz (?) */ - MCFG_DEVICE_PROGRAM_MAP(main_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", travrusa_state, irq0_line_hold) - + Z80(config, m_maincpu, 4000000); /* 4 MHz (?) */ + m_maincpu->set_addrmap(AS_PROGRAM, &travrusa_state::main_map); + m_maincpu->set_vblank_int("screen", FUNC(travrusa_state::irq0_line_hold)); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(56.75) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(1790) /* accurate frequency, measured on a Moon Patrol board, is 56.75Hz. */) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(56.75); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(1790) /* accurate frequency, measured on a Moon Patrol board, is 56.75Hz. */); /* the Lode Runner manual (similar but different hardware) */ /* talks about 55Hz and 1790ms vblank duration. */ - MCFG_SCREEN_SIZE(32*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 0*8, 32*8-1) - MCFG_SCREEN_UPDATE_DRIVER(travrusa_state, screen_update_travrusa) - MCFG_SCREEN_PALETTE(m_palette) + screen.set_size(32*8, 32*8); + screen.set_visarea(1*8, 31*8-1, 0*8, 32*8-1); + screen.set_screen_update(FUNC(travrusa_state::screen_update_travrusa)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_travrusa); PALETTE(config, m_palette, FUNC(travrusa_state::travrusa_palette), 16*8+16*8, 128+16); @@ -329,7 +328,7 @@ MACHINE_CONFIG_START(travrusa_state::travrusa) /* sound hardware */ //m52_sound_c_audio(config); IREM_M52_SOUNDC_AUDIO(config, "irem_audio", 0); -MACHINE_CONFIG_END +} void travrusa_state::shtrider(machine_config &config) { diff --git a/src/mame/drivers/triforce.cpp b/src/mame/drivers/triforce.cpp index 6b0b7ce664f..d4a9fc8aee0 100644 --- a/src/mame/drivers/triforce.cpp +++ b/src/mame/drivers/triforce.cpp @@ -586,25 +586,24 @@ void triforce_state::machine_start() descrambler(&rom[0x100], 0x1afe00); } -MACHINE_CONFIG_START(triforce_state::triforce_base) - +void triforce_state::triforce_base(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", PPC603, 64000000) /* Correct CPU is a PowerPC 750 (what Apple called "G3") with paired-single vector instructions added */ - MCFG_DEVICE_PROGRAM_MAP(gc_map) + PPC603(config, m_maincpu, 64000000); /* Correct CPU is a PowerPC 750 (what Apple called "G3") with paired-single vector instructions added */ + m_maincpu->set_addrmap(AS_PROGRAM, &triforce_state::gc_map); config.m_minimum_quantum = attotime::from_hz(6000); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_SIZE(640, 480) - MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 479) - MCFG_SCREEN_UPDATE_DRIVER(triforce_state, screen_update_triforce) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_size(640, 480); + screen.set_visarea(0, 639, 0, 479); + screen.set_screen_update(FUNC(triforce_state::screen_update_triforce)); - MCFG_PALETTE_ADD("palette", 65536) - -MACHINE_CONFIG_END + PALETTE(config, "palette").set_entries(65536); +} void triforce_state::triforcegd(machine_config &config) { diff --git a/src/mame/drivers/trkfldch.cpp b/src/mame/drivers/trkfldch.cpp index e0141527ade..cde7b9594cf 100644 --- a/src/mame/drivers/trkfldch.cpp +++ b/src/mame/drivers/trkfldch.cpp @@ -159,7 +159,8 @@ void trkfldch_state::machine_reset() m_maincpu->set_state_int(1, addr); } -MACHINE_CONFIG_START(trkfldch_state::trkfldch) +void trkfldch_state::trkfldch(machine_config &config) +{ /* basic machine hardware */ G65816(config, m_maincpu, 20000000); //m_maincpu->set_addrmap(AS_DATA, &tv965_state::mem_map); @@ -177,7 +178,7 @@ MACHINE_CONFIG_START(trkfldch_state::trkfldch) GFXDECODE(config, m_gfxdecode, "palette", gfx_trkfldch); // dummy PALETTE(config, "palette").set_format(palette_device::xRGB_444, 0x100).set_endianness(ENDIANNESS_BIG); // dummy -MACHINE_CONFIG_END +} ROM_START( trkfldch ) ROM_REGION( 0x400000, "maincpu", 0 ) diff --git a/src/mame/drivers/trs80.cpp b/src/mame/drivers/trs80.cpp index 41bb67287bf..9d1d20c9c66 100644 --- a/src/mame/drivers/trs80.cpp +++ b/src/mame/drivers/trs80.cpp @@ -502,17 +502,18 @@ static void trs80_floppies(device_slot_interface &device) } -MACHINE_CONFIG_START(trs80_state::trs80) // the original model I, level I, with no extras +void trs80_state::trs80(machine_config &config) // the original model I, level I, with no extras +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, 10.6445_MHz_XTAL / 6) - MCFG_DEVICE_PROGRAM_MAP(trs80_mem) - MCFG_DEVICE_IO_MAP(trs80_io) + Z80(config, m_maincpu, 10.6445_MHz_XTAL / 6); + m_maincpu->set_addrmap(AS_PROGRAM, &trs80_state::trs80_mem); + m_maincpu->set_addrmap(AS_IO, &trs80_state::trs80_io); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(10.6445_MHz_XTAL, 672, 0, 384, 264, 0, 192) - MCFG_SCREEN_UPDATE_DRIVER(trs80_state, screen_update_trs80) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_raw(10.6445_MHz_XTAL, 672, 0, 384, 264, 0, 192); + screen.set_screen_update(FUNC(trs80_state::screen_update_trs80)); + screen.set_palette("palette"); GFXDECODE(config, "gfxdecode", "palette", gfx_trs80); PALETTE(config, "palette", palette_device::MONOCHROME); @@ -524,15 +525,14 @@ MACHINE_CONFIG_START(trs80_state::trs80) // the original model I, level I, /* devices */ CASSETTE(config, m_cassette); -MACHINE_CONFIG_END +} MACHINE_CONFIG_START(trs80_state::model1) // model I, level II trs80(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(m1_mem) - MCFG_DEVICE_IO_MAP(m1_io) - MCFG_DEVICE_PERIODIC_INT_DRIVER(trs80_state, rtc_interrupt, 40) + m_maincpu->set_addrmap(AS_PROGRAM, &trs80_state::m1_mem); + m_maincpu->set_addrmap(AS_IO, &trs80_state::m1_io); + m_maincpu->set_periodic_int(FUNC(trs80_state::rtc_interrupt), attotime::from_hz(40)); /* devices */ m_cassette->set_formats(trs80l2_cassette_formats); @@ -571,46 +571,44 @@ MACHINE_CONFIG_START(trs80_state::model1) // model I, level II RS232_PORT(config, "rs232", default_rs232_devices, nullptr); MACHINE_CONFIG_END -MACHINE_CONFIG_START(trs80_state::sys80) +void trs80_state::sys80(machine_config &config) +{ model1(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_IO_MAP(sys80_io) + m_maincpu->set_addrmap(AS_IO, &trs80_state::sys80_io); config.device_remove("brg"); CLOCK(config, m_uart_clock, 19200 * 16); m_uart_clock->signal_handler().set(m_uart, FUNC(ay31015_device::write_rcp)); m_uart_clock->signal_handler().append(m_uart, FUNC(ay31015_device::write_tcp)); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(trs80_state::sys80p) +void trs80_state::sys80p(machine_config &config) +{ sys80(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_CLOCK(10.48_MHz_XTAL / 6) - MCFG_DEVICE_MODIFY("screen") - MCFG_SCREEN_RAW_PARAMS(10.48_MHz_XTAL, 672, 0, 384, 312, 0, 192) -MACHINE_CONFIG_END + m_maincpu->set_clock(10.48_MHz_XTAL / 6); + subdevice<screen_device>("screen")->set_raw(10.48_MHz_XTAL, 672, 0, 384, 312, 0, 192); +} -MACHINE_CONFIG_START(trs80_state::ht1080z) +void trs80_state::ht1080z(machine_config &config) +{ sys80p(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_IO_MAP(ht1080z_io) + m_maincpu->set_addrmap(AS_IO, &trs80_state::ht1080z_io); - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_DRIVER(trs80_state, screen_update_ht1080z) + subdevice<screen_device>("screen")->set_screen_update(FUNC(trs80_state::screen_update_ht1080z)); subdevice<gfxdecode_device>("gfxdecode")->set_info(gfx_ht1080z); AY8910(config, "ay1", 1'500'000).add_route(ALL_OUTPUTS, "mono", 0.25); // guess of clock //ay1.port_a_read_callback(FUNC(trs80_state::...); // ports are some kind of expansion slot //ay1.port_b_read_callback(FUNC(trs80_state::...); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(trs80_state::lnw80) +void trs80_state::lnw80(machine_config &config) +{ model1(config); - MCFG_DEVICE_MODIFY("maincpu") - //MCFG_DEVICE_CLOCK(16_MHz_XTAL / 4) // or 16MHz / 9; 4MHz or 1.77MHz operation selected by HI/LO switch - MCFG_DEVICE_CLOCK(16_MHz_XTAL / 9) // need this so cassette can work - MCFG_DEVICE_PROGRAM_MAP(lnw80_mem) - MCFG_DEVICE_IO_MAP(lnw80_io) + //m_maincpu->set_clock(16_MHz_XTAL / 4); // or 16MHz / 9; 4MHz or 1.77MHz operation selected by HI/LO switch + m_maincpu->set_clock(16_MHz_XTAL / 9); // need this so cassette can work + m_maincpu->set_addrmap(AS_PROGRAM, &trs80_state::lnw80_mem); + m_maincpu->set_addrmap(AS_IO, &trs80_state::lnw80_io); ADDRESS_MAP_BANK(config, m_lnw_bank, 0); m_lnw_bank->set_addrmap(0, &trs80_state::lnw_banked_mem); @@ -623,30 +621,28 @@ MACHINE_CONFIG_START(trs80_state::lnw80) subdevice<gfxdecode_device>("gfxdecode")->set_info(gfx_lnw80); subdevice<palette_device>("palette")->set_entries(8).set_init(FUNC(trs80_state::lnw80_palette)); - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_RAW_PARAMS(3.579545_MHz_XTAL * 3, 682, 0, 480, 264, 0, 192) // 10.738MHz generated by tank circuit (top left of page 2 of schematics) + subdevice<screen_device>("screen")->set_raw(3.579545_MHz_XTAL * 3, 682, 0, 480, 264, 0, 192); // 10.738MHz generated by tank circuit (top left of page 2 of schematics) // LNW80 Theory of Operations gives H and V periods as 15.750kHz and 59.66Hz, probably due to rounding the calculated ~15.7468kHz to 4 figures - MCFG_SCREEN_UPDATE_DRIVER(trs80_state, screen_update_lnw80) + subdevice<screen_device>("screen")->set_screen_update(FUNC(trs80_state::screen_update_lnw80)); config.device_remove("brg"); CLOCK(config, m_uart_clock, 19200 * 16); m_uart_clock->signal_handler().set(m_uart, FUNC(ay31015_device::write_rcp)); m_uart_clock->signal_handler().append(m_uart, FUNC(ay31015_device::write_tcp)); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(trs80_state::radionic) +void trs80_state::radionic(machine_config &config) +{ model1(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_CLOCK(12_MHz_XTAL / 6) // or 3.579MHz / 2 (selectable?) + m_maincpu->set_clock(12_MHz_XTAL / 6); // or 3.579MHz / 2 (selectable?) // Komtek I "User Friendly Manual" calls for "Z80 running at 1.97 MHz." This likely refers to an alternate NTSC version // whose master clock was approximately 11.8005 MHz (6 times ~1.966 MHz and 750 times 15.734 kHz). Though the schematics // provide the main XTAL frequency as 12 MHz, that they also include a 3.579 MHz XTAL suggests this possibility. - MCFG_DEVICE_PERIODIC_INT_DRIVER(trs80_state, nmi_line_pulse, 12_MHz_XTAL / 12 / 16384) - MCFG_DEVICE_PROGRAM_MAP(radionic_mem) + m_maincpu->set_periodic_int(FUNC(trs80_state::nmi_line_pulse), attotime::from_hz(12_MHz_XTAL / 12 / 16384)); + m_maincpu->set_addrmap(AS_PROGRAM, &trs80_state::radionic_mem); - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_RAW_PARAMS(12_MHz_XTAL, 768, 0, 512, 312, 0, 256) - MCFG_SCREEN_UPDATE_DRIVER(trs80_state, screen_update_radionic) + subdevice<screen_device>("screen")->set_raw(12_MHz_XTAL, 768, 0, 512, 312, 0, 256); + subdevice<screen_device>("screen")->set_screen_update(FUNC(trs80_state::screen_update_radionic)); subdevice<gfxdecode_device>("gfxdecode")->set_info(gfx_radionic); // Interface to external circuits @@ -655,7 +651,7 @@ MACHINE_CONFIG_START(trs80_state::radionic) //m_ppi->out_pa_callback().set(FUNC(pulsar_state::ppi_pa_w)); // Data for external plugin printer module //m_ppi->out_pb_callback().set(FUNC(pulsar_state::ppi_pb_w)); // Control data to external //m_ppi->out_pc_callback().set(FUNC(pulsar_state::ppi_pc_w)); // Printer strobe -MACHINE_CONFIG_END +} /*************************************************************************** diff --git a/src/mame/drivers/trs80m2.cpp b/src/mame/drivers/trs80m2.cpp index 72f863a2dc1..ba499eb57e5 100644 --- a/src/mame/drivers/trs80m2.cpp +++ b/src/mame/drivers/trs80m2.cpp @@ -704,7 +704,7 @@ void trs80m2_state::machine_reset() //************************************************************************** //------------------------------------------------- -// MACHINE_CONFIG( trs80m2 ) +// machine_config( trs80m2 ) //------------------------------------------------- void trs80m2_state::trs80m2(machine_config &config) @@ -791,7 +791,7 @@ void trs80m2_state::trs80m2(machine_config &config) //------------------------------------------------- -// MACHINE_CONFIG( trs80m16 ) +// machine_config( trs80m16 ) //------------------------------------------------- void trs80m16_state::trs80m16(machine_config &config) diff --git a/src/mame/drivers/trs80m3.cpp b/src/mame/drivers/trs80m3.cpp index def0c09bd95..953b16f98b2 100644 --- a/src/mame/drivers/trs80m3.cpp +++ b/src/mame/drivers/trs80m3.cpp @@ -335,16 +335,16 @@ static void trs80_floppies(device_slot_interface &device) MACHINE_CONFIG_START(trs80m3_state::model3) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, 20.2752_MHz_XTAL / 10) // FIXME: actual Model III XTAL is 10.1376 MHz - MCFG_DEVICE_PROGRAM_MAP(m3_mem) - MCFG_DEVICE_IO_MAP(m3_io) - MCFG_DEVICE_PERIODIC_INT_DRIVER(trs80m3_state, rtc_interrupt, 20.2752_MHz_XTAL / 10 / 67584) + Z80(config, m_maincpu, 20.2752_MHz_XTAL / 10); // FIXME: actual Model III XTAL is 10.1376 MHz + m_maincpu->set_addrmap(AS_PROGRAM, &trs80m3_state::m3_mem); + m_maincpu->set_addrmap(AS_IO, &trs80m3_state::m3_io); + m_maincpu->set_periodic_int(FUNC(trs80m3_state::rtc_interrupt), attotime::from_hz(20.2752_MHz_XTAL / 10 / 67584)); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(12.672_MHz_XTAL, 800, 0, 640, 264, 0, 240) // FIXME: these are Model 4 80-column parameters - MCFG_SCREEN_UPDATE_DRIVER(trs80m3_state, screen_update_trs80m3) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_raw(12.672_MHz_XTAL, 800, 0, 640, 264, 0, 240); // FIXME: these are Model 4 80-column parameters + screen.set_screen_update(FUNC(trs80m3_state::screen_update_trs80m3)); + screen.set_palette("palette"); GFXDECODE(config, "gfxdecode", "palette", gfx_trs80m3); PALETTE(config, "palette", palette_device::MONOCHROME); @@ -392,11 +392,11 @@ MACHINE_CONFIG_START(trs80m3_state::model3) RS232_PORT(config, "rs232", default_rs232_devices, nullptr); MACHINE_CONFIG_END -MACHINE_CONFIG_START(trs80m3_state::model4) +void trs80m3_state::model4(machine_config &config) +{ model3(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(m4_mem) - MCFG_DEVICE_IO_MAP(m4_io) + m_maincpu->set_addrmap(AS_PROGRAM, &trs80m3_state::m4_mem); + m_maincpu->set_addrmap(AS_IO, &trs80m3_state::m4_io); RAM(config, m_mainram, 0); m_mainram->set_default_size("64K"); @@ -408,13 +408,13 @@ MACHINE_CONFIG_START(trs80m3_state::model4) m_m4_bank->set_data_width(8); m_m4_bank->set_addr_width(18); m_m4_bank->set_stride(0x10000); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(trs80m3_state::model4p) +void trs80m3_state::model4p(machine_config &config) +{ model3(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(m4p_mem) - MCFG_DEVICE_IO_MAP(m4p_io) + m_maincpu->set_addrmap(AS_PROGRAM, &trs80m3_state::m4p_mem); + m_maincpu->set_addrmap(AS_IO, &trs80m3_state::m4p_io); RAM(config, m_mainram, 0); m_mainram->set_default_size("64K"); @@ -428,13 +428,13 @@ MACHINE_CONFIG_START(trs80m3_state::model4p) m_m4p_bank->set_stride(0x10000); config.device_remove("quickload"); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(trs80m3_state::cp500) +void trs80m3_state::cp500(machine_config &config) +{ model3(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_IO_MAP(cp500_io) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_IO, &trs80m3_state::cp500_io); +} /*************************************************************************** diff --git a/src/mame/drivers/truco.cpp b/src/mame/drivers/truco.cpp index c3dcf0e6c5e..76166d70408 100644 --- a/src/mame/drivers/truco.cpp +++ b/src/mame/drivers/truco.cpp @@ -417,12 +417,12 @@ INTERRUPT_GEN_MEMBER(truco_state::interrupt) * Machine Driver * *******************************************/ -MACHINE_CONFIG_START(truco_state::truco) - +void truco_state::truco(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M6809, CPU_CLOCK) - MCFG_DEVICE_PROGRAM_MAP(main_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", truco_state, interrupt) + M6809(config, m_maincpu, CPU_CLOCK); + m_maincpu->set_addrmap(AS_PROGRAM, &truco_state::main_map); + m_maincpu->set_vblank_int("screen", FUNC(truco_state::interrupt)); WATCHDOG_TIMER(config, m_watchdog).set_time(attotime::from_msec(1600)); /* 1.6 seconds */ @@ -436,13 +436,13 @@ MACHINE_CONFIG_START(truco_state::truco) pia.irqb_handler().set(FUNC(truco_state::pia_irqb_w)); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) - MCFG_SCREEN_SIZE(256, 192) - MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 192-1) - MCFG_SCREEN_UPDATE_DRIVER(truco_state, screen_update) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */); + screen.set_size(256, 192); + screen.set_visarea(0, 256-1, 0, 192-1); + screen.set_screen_update(FUNC(truco_state::screen_update)); + screen.set_palette("palette"); PALETTE(config, "palette", FUNC(truco_state::truco_palette), 16); @@ -456,7 +456,7 @@ MACHINE_CONFIG_START(truco_state::truco) DAC_1BIT(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 0.4); voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref", 0)); vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT); -MACHINE_CONFIG_END +} /*************************************************************************** diff --git a/src/mame/drivers/trucocl.cpp b/src/mame/drivers/trucocl.cpp index bfd624c5976..94735cdf7f5 100644 --- a/src/mame/drivers/trucocl.cpp +++ b/src/mame/drivers/trucocl.cpp @@ -180,23 +180,24 @@ INTERRUPT_GEN_MEMBER(trucocl_state::trucocl_interrupt) device.execute().set_input_line(0, HOLD_LINE); } -MACHINE_CONFIG_START(trucocl_state::trucocl) +void trucocl_state::trucocl(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, 18432000/6) - MCFG_DEVICE_PROGRAM_MAP(main_map) - MCFG_DEVICE_IO_MAP(main_io) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", trucocl_state, trucocl_interrupt) + Z80(config, m_maincpu, 18432000/6); + m_maincpu->set_addrmap(AS_PROGRAM, &trucocl_state::main_map); + m_maincpu->set_addrmap(AS_IO, &trucocl_state::main_io); + m_maincpu->set_vblank_int("screen", FUNC(trucocl_state::trucocl_interrupt)); WATCHDOG_TIMER(config, "watchdog"); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(32*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) - MCFG_SCREEN_UPDATE_DRIVER(trucocl_state, screen_update_trucocl) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(32*8, 32*8); + screen.set_visarea(0*8, 32*8-1, 0*8, 32*8-1); + screen.set_screen_update(FUNC(trucocl_state::screen_update_trucocl)); + screen.set_palette("palette"); GFXDECODE(config, m_gfxdecode, "palette", gfx_trucocl); PALETTE(config, "palette", FUNC(trucocl_state::trucocl_palette), 32); @@ -208,7 +209,7 @@ MACHINE_CONFIG_START(trucocl_state::trucocl) voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref")); vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT); -MACHINE_CONFIG_END +} /*************************************************************************** diff --git a/src/mame/drivers/trvmadns.cpp b/src/mame/drivers/trvmadns.cpp index 779828acbb0..93e34381e1d 100644 --- a/src/mame/drivers/trvmadns.cpp +++ b/src/mame/drivers/trvmadns.cpp @@ -387,31 +387,30 @@ void trvmadns_state::machine_reset() m_old_data = -1; } -MACHINE_CONFIG_START(trvmadns_state::trvmadns) - MCFG_DEVICE_ADD("maincpu", Z80, XTAL(10'000'000)/4) // Most likely 2.5MHz (less likely 5MHz (10MHz/2)) - MCFG_DEVICE_PROGRAM_MAP(cpu_map) - MCFG_DEVICE_IO_MAP(io_map) - +void trvmadns_state::trvmadns(machine_config &config) +{ + Z80(config, m_maincpu, XTAL(10'000'000)/4); // Most likely 2.5MHz (less likely 5MHz (10MHz/2)) + m_maincpu->set_addrmap(AS_PROGRAM, &trvmadns_state::cpu_map); + m_maincpu->set_addrmap(AS_IO, &trvmadns_state::io_map); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(256, 256) - MCFG_SCREEN_VISIBLE_AREA(0*8, 31*8-1, 0*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(trvmadns_state, screen_update_trvmadns) - MCFG_SCREEN_PALETTE("palette") - MCFG_SCREEN_VBLANK_CALLBACK(INPUTLINE("maincpu", INPUT_LINE_NMI)) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(256, 256); + screen.set_visarea(0*8, 31*8-1, 0*8, 30*8-1); + screen.set_screen_update(FUNC(trvmadns_state::screen_update_trvmadns)); + screen.set_palette(m_palette); + screen.screen_vblank().set_inputline(m_maincpu, INPUT_LINE_NMI); GFXDECODE(config, m_gfxdecode, m_palette, gfx_trvmadns); - MCFG_PALETTE_ADD("palette", 16) - + PALETTE(config, m_palette).set_entries(16); /* sound hardware */ SPEAKER(config, "mono").front_center(); AY8910(config, "aysnd", XTAL(10'000'000)/2/4).add_route(ALL_OUTPUTS, "mono", 1.0); //? -MACHINE_CONFIG_END +} ROM_START( trvmadns ) diff --git a/src/mame/drivers/tryout.cpp b/src/mame/drivers/tryout.cpp index ac8f10ded2e..5a30afd1faf 100644 --- a/src/mame/drivers/tryout.cpp +++ b/src/mame/drivers/tryout.cpp @@ -191,23 +191,24 @@ static GFXDECODE_START( gfx_tryout ) GFXDECODE_ENTRY( nullptr, 0, vramlayout, 0, 4 ) GFXDECODE_END -MACHINE_CONFIG_START(tryout_state::tryout) +void tryout_state::tryout(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M6502, 2000000) /* ? */ - MCFG_DEVICE_PROGRAM_MAP(main_cpu) + M6502(config, m_maincpu, 2000000); /* ? */ + m_maincpu->set_addrmap(AS_PROGRAM, &tryout_state::main_cpu); - MCFG_DEVICE_ADD("audiocpu", M6502, 1500000) /* ? */ - MCFG_DEVICE_PROGRAM_MAP(sound_cpu) - MCFG_DEVICE_PERIODIC_INT_DRIVER(tryout_state, nmi_line_pulse, 1000) /* controls BGM tempo, 1000 is an hand-tuned value to match a side-by-side video */ + M6502(config, m_audiocpu, 1500000); /* ? */ + m_audiocpu->set_addrmap(AS_PROGRAM, &tryout_state::sound_cpu); + m_audiocpu->set_periodic_int(FUNC(tryout_state::nmi_line_pulse), attotime::from_hz(1000)); /* controls BGM tempo, 1000 is an hand-tuned value to match a side-by-side video */ /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) - MCFG_SCREEN_SIZE(256, 256) - MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_DRIVER(tryout_state, screen_update) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */); + screen.set_size(256, 256); + screen.set_visarea(0*8, 32*8-1, 1*8, 31*8-1); + screen.set_screen_update(FUNC(tryout_state::screen_update)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_tryout); PALETTE(config, m_palette, FUNC(tryout_state::tryout_palette), 0x20); @@ -217,9 +218,8 @@ MACHINE_CONFIG_START(tryout_state::tryout) GENERIC_LATCH_8(config, m_soundlatch); - MCFG_DEVICE_ADD("ymsnd", YM2203, 1500000) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) -MACHINE_CONFIG_END + YM2203(config, "ymsnd", 1500000).add_route(ALL_OUTPUTS, "mono", 0.50); +} ROM_START( tryout ) ROM_REGION( 0x14000, "maincpu", 0 ) diff --git a/src/mame/drivers/ts3000.cpp b/src/mame/drivers/ts3000.cpp index 148be14f9a4..65fdb5d6312 100644 --- a/src/mame/drivers/ts3000.cpp +++ b/src/mame/drivers/ts3000.cpp @@ -43,11 +43,12 @@ void ts3000_state::io_map(address_map &map) static INPUT_PORTS_START( ts3000 ) INPUT_PORTS_END -MACHINE_CONFIG_START(ts3000_state::ts3000) - MCFG_DEVICE_ADD("maincpu", I8088, XTAL(14'318'181)/3) // no idea of clock - MCFG_DEVICE_PROGRAM_MAP(mem_map) - MCFG_DEVICE_IO_MAP(io_map) -MACHINE_CONFIG_END +void ts3000_state::ts3000(machine_config &config) +{ + i8088_cpu_device &maincpu(I8088(config, "maincpu", XTAL(14'318'181)/3)); // no idea of clock + maincpu.set_addrmap(AS_PROGRAM, &ts3000_state::mem_map); + maincpu.set_addrmap(AS_IO, &ts3000_state::io_map); +} ROM_START( ts3000 ) ROM_REGION( 0x4000, "roms", 0 ) diff --git a/src/mame/drivers/tsamurai.cpp b/src/mame/drivers/tsamurai.cpp index 63f4277b236..dab0db07855 100644 --- a/src/mame/drivers/tsamurai.cpp +++ b/src/mame/drivers/tsamurai.cpp @@ -717,18 +717,18 @@ GFXDECODE_END /*******************************************************************************/ -MACHINE_CONFIG_START(tsamurai_state::tsamurai) - +void tsamurai_state::tsamurai(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, XTAL(24'000'000)/8) - MCFG_DEVICE_PROGRAM_MAP(main_map) - MCFG_DEVICE_IO_MAP(z80_io_map) + Z80(config, m_maincpu, XTAL(24'000'000)/8); + m_maincpu->set_addrmap(AS_PROGRAM, &tsamurai_state::main_map); + m_maincpu->set_addrmap(AS_IO, &tsamurai_state::z80_io_map); - MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(24'000'000)/8) - MCFG_DEVICE_PROGRAM_MAP(sound1_map) + Z80(config, m_audiocpu, XTAL(24'000'000)/8); + m_audiocpu->set_addrmap(AS_PROGRAM, &tsamurai_state::sound1_map); - MCFG_DEVICE_ADD("audio2", Z80, XTAL(24'000'000)/8) - MCFG_DEVICE_PROGRAM_MAP(sound2_map) + Z80(config, m_audio2, XTAL(24'000'000)/8); + m_audio2->set_addrmap(AS_PROGRAM, &tsamurai_state::sound2_map); MCFG_MACHINE_START_OVERRIDE(tsamurai_state,tsamurai) @@ -740,14 +740,14 @@ MACHINE_CONFIG_START(tsamurai_state::tsamurai) mainlatch.q_out_cb<4>().set(FUNC(tsamurai_state::coin2_counter_w)); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) - MCFG_SCREEN_SIZE(32*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0, 255, 16, 255-16) - MCFG_SCREEN_UPDATE_DRIVER(tsamurai_state, screen_update) - MCFG_SCREEN_PALETTE(m_palette) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, tsamurai_state, vblank_irq)) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */); + screen.set_size(32*8, 32*8); + screen.set_visarea(0, 255, 16, 255-16); + screen.set_screen_update(FUNC(tsamurai_state::screen_update)); + screen.set_palette(m_palette); + screen.screen_vblank().set(FUNC(tsamurai_state::vblank_irq)); GFXDECODE(config, m_gfxdecode, m_palette, gfx_tsamurai); PALETTE(config, m_palette, palette_device::RGB_444_PROMS, "proms", 256); @@ -763,19 +763,19 @@ MACHINE_CONFIG_START(tsamurai_state::tsamurai) voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref")); vref.add_route(0, "dac1", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac1", -1.0, DAC_VREF_NEG_INPUT); vref.add_route(0, "dac2", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac2", -1.0, DAC_VREF_NEG_INPUT); -MACHINE_CONFIG_END - +} -MACHINE_CONFIG_START(tsamurai_state::vsgongf) +void tsamurai_state::vsgongf(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, XTAL(24'000'000)/8) - MCFG_DEVICE_PROGRAM_MAP(vsgongf_map) + Z80(config, m_maincpu, XTAL(24'000'000)/8); + m_maincpu->set_addrmap(AS_PROGRAM, &tsamurai_state::vsgongf_map); - MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(24'000'000)/8) - MCFG_DEVICE_PROGRAM_MAP(sound_vsgongf_map) - MCFG_DEVICE_IO_MAP(vsgongf_audio_io_map) - MCFG_DEVICE_PERIODIC_INT_DRIVER(tsamurai_state, vsgongf_sound_interrupt, 3*60) + Z80(config, m_audiocpu, XTAL(24'000'000)/8); + m_audiocpu->set_addrmap(AS_PROGRAM, &tsamurai_state::sound_vsgongf_map); + m_audiocpu->set_addrmap(AS_IO, &tsamurai_state::vsgongf_audio_io_map); + m_audiocpu->set_periodic_int(FUNC(tsamurai_state::vsgongf_sound_interrupt), attotime::from_hz(3*60)); MCFG_MACHINE_START_OVERRIDE(tsamurai_state,vsgongf) @@ -787,14 +787,14 @@ MACHINE_CONFIG_START(tsamurai_state::vsgongf) mainlatch.q_out_cb<4>().set(FUNC(tsamurai_state::textbank1_w)); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) - MCFG_SCREEN_SIZE(32*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0, 255, 16, 255-16) - MCFG_SCREEN_UPDATE_DRIVER(tsamurai_state, screen_update_vsgongf) - MCFG_SCREEN_PALETTE(m_palette) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, tsamurai_state, vblank_irq)) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */); + screen.set_size(32*8, 32*8); + screen.set_visarea(0, 255, 16, 255-16); + screen.set_screen_update(FUNC(tsamurai_state::screen_update_vsgongf)); + screen.set_palette(m_palette); + screen.screen_vblank().set(FUNC(tsamurai_state::vblank_irq)); GFXDECODE(config, m_gfxdecode, m_palette, gfx_tsamurai); PALETTE(config, m_palette, palette_device::RGB_444_PROMS, "proms", 256); @@ -811,25 +811,25 @@ MACHINE_CONFIG_START(tsamurai_state::vsgongf) voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref")); vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT); -MACHINE_CONFIG_END - +} -MACHINE_CONFIG_START(tsamurai_state::m660) +void tsamurai_state::m660(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, XTAL(24'000'000)/8) - MCFG_DEVICE_PROGRAM_MAP(m660_map) - MCFG_DEVICE_IO_MAP(z80_m660_io_map) + Z80(config, m_maincpu, XTAL(24'000'000)/8); + m_maincpu->set_addrmap(AS_PROGRAM, &tsamurai_state::m660_map); + m_maincpu->set_addrmap(AS_PROGRAM, &tsamurai_state::z80_m660_io_map); - MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(24'000'000)/8) - MCFG_DEVICE_PROGRAM_MAP(sound1_m660_map) + Z80(config, m_audiocpu, XTAL(24'000'000)/8); + m_audiocpu->set_addrmap(AS_PROGRAM, &tsamurai_state::sound1_m660_map); - MCFG_DEVICE_ADD("audio2", Z80, XTAL(24'000'000)/8) - MCFG_DEVICE_PROGRAM_MAP(sound2_m660_map) + Z80(config, m_audio2, XTAL(24'000'000)/8); + m_audio2->set_addrmap(AS_PROGRAM, &tsamurai_state::sound2_m660_map); - MCFG_DEVICE_ADD("audio3", Z80, XTAL(24'000'000)/8) - MCFG_DEVICE_PROGRAM_MAP(sound3_m660_map) - MCFG_DEVICE_IO_MAP(sound3_m660_io_map) + Z80(config, m_audio3, XTAL(24'000'000)/8); + m_audio3->set_addrmap(AS_PROGRAM, &tsamurai_state::sound3_m660_map); + m_audio3->set_addrmap(AS_IO, &tsamurai_state::sound3_m660_io_map); MCFG_MACHINE_START_OVERRIDE(tsamurai_state,m660) @@ -866,7 +866,7 @@ MACHINE_CONFIG_START(tsamurai_state::m660) voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref")); vref.add_route(0, "dac1", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac1", -1.0, DAC_VREF_NEG_INPUT); vref.add_route(0, "dac2", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac2", -1.0, DAC_VREF_NEG_INPUT); -MACHINE_CONFIG_END +} /*******************************************************************************/ diff --git a/src/mame/drivers/ttchamp.cpp b/src/mame/drivers/ttchamp.cpp index 45cbb0df0bf..270f1984a0e 100644 --- a/src/mame/drivers/ttchamp.cpp +++ b/src/mame/drivers/ttchamp.cpp @@ -645,32 +645,30 @@ INTERRUPT_GEN_MEMBER(ttchamp_state::irq)/* right? */ device.execute().pulse_input_line(INPUT_LINE_NMI, attotime::zero); } -MACHINE_CONFIG_START(ttchamp_state::ttchamp) +void ttchamp_state::ttchamp(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", V30, 8000000) - MCFG_DEVICE_PROGRAM_MAP(ttchamp_map) - MCFG_DEVICE_IO_MAP(ttchamp_io) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", ttchamp_state, irq) + V30(config, m_maincpu, 8000000); + m_maincpu->set_addrmap(AS_PROGRAM, &ttchamp_state::ttchamp_map); + m_maincpu->set_addrmap(AS_IO, &ttchamp_state::ttchamp_io); + m_maincpu->set_vblank_int("screen", FUNC(ttchamp_state::irq)); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(1024,1024) - MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 200-1) - MCFG_SCREEN_UPDATE_DRIVER(ttchamp_state, screen_update) - MCFG_SCREEN_PALETTE("palette") - - MCFG_PALETTE_ADD("palette", 0x400) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(1024,1024); + screen.set_visarea(0, 320-1, 0, 200-1); + screen.set_screen_update(FUNC(ttchamp_state::screen_update)); + screen.set_palette(m_palette); + PALETTE(config, m_palette).set_entries(0x400); NVRAM(config, "backram", nvram_device::DEFAULT_ALL_0); SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("oki", OKIM6295, 8000000/8, okim6295_device::PIN7_HIGH) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - -MACHINE_CONFIG_END + OKIM6295(config, "oki", 8000000/8, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 1.0); +} ROM_START( ttchamp ) ROM_REGION16_LE( 0x200000, "maincpu", 0 ) diff --git a/src/mame/drivers/tugboat.cpp b/src/mame/drivers/tugboat.cpp index 55e3d72b31c..93e6e1863d6 100644 --- a/src/mame/drivers/tugboat.cpp +++ b/src/mame/drivers/tugboat.cpp @@ -359,9 +359,10 @@ static GFXDECODE_START( gfx_tugboat ) GFXDECODE_END -MACHINE_CONFIG_START(tugboat_state::tugboat) - MCFG_DEVICE_ADD("maincpu", M6502, 2000000) /* 2 MHz ???? */ - MCFG_DEVICE_PROGRAM_MAP(main_map) +void tugboat_state::tugboat(machine_config &config) +{ + M6502(config, m_maincpu, 2000000); /* 2 MHz ???? */ + m_maincpu->set_addrmap(AS_PROGRAM, &tugboat_state::main_map); pia6821_device &pia0(PIA6821(config, "pia0", 0)); pia0.readpa_handler().set(FUNC(tugboat_state::input_r)); @@ -370,13 +371,13 @@ MACHINE_CONFIG_START(tugboat_state::tugboat) pia1.readpa_handler().set_ioport("DSW"); pia1.writepb_handler().set(FUNC(tugboat_state::ctrl_w)); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_SIZE(32*8,32*8) - MCFG_SCREEN_VISIBLE_AREA(1*8,31*8-1,2*8,30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(tugboat_state, screen_update) - MCFG_SCREEN_PALETTE(m_palette) - MCFG_SCREEN_VBLANK_CALLBACK(INPUTLINE("maincpu", INPUT_LINE_NMI)) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); + m_screen->set_size(32*8,32*8); + m_screen->set_visarea(1*8,31*8-1,2*8,30*8-1); + m_screen->set_screen_update(FUNC(tugboat_state::screen_update)); + m_screen->set_palette(m_palette); + m_screen->screen_vblank().set_inputline(m_maincpu, INPUT_LINE_NMI); GFXDECODE(config, m_gfxdecode, m_palette, gfx_tugboat); PALETTE(config, m_palette, FUNC(tugboat_state::tugboat_palette), 256); @@ -385,7 +386,7 @@ MACHINE_CONFIG_START(tugboat_state::tugboat) SPEAKER(config, "mono").front_center(); AY8912(config, "aysnd", XTAL(10'000'000)/8).add_route(ALL_OUTPUTS, "mono", 0.35); -MACHINE_CONFIG_END +} ROM_START( tugboat ) diff --git a/src/mame/drivers/tumbleb.cpp b/src/mame/drivers/tumbleb.cpp index 0f5f81d7cfe..0b91a31aacf 100644 --- a/src/mame/drivers/tumbleb.cpp +++ b/src/mame/drivers/tumbleb.cpp @@ -2065,24 +2065,24 @@ MACHINE_RESET_MEMBER(tumbleb_state,tumbleb) memset(m_control_0, 0, sizeof(m_control_0)); } -MACHINE_CONFIG_START(tumbleb_state::tumblepb) - +void tumbleb_state::tumblepb(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 14000000) - MCFG_DEVICE_PROGRAM_MAP(tumblepopb_main_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", tumbleb_state, irq6_line_hold) + M68000(config, m_maincpu, 14000000); + m_maincpu->set_addrmap(AS_PROGRAM, &tumbleb_state::tumblepopb_main_map); + m_maincpu->set_vblank_int("screen", FUNC(tumbleb_state::irq6_line_hold)); MCFG_MACHINE_START_OVERRIDE(tumbleb_state,tumbleb) MCFG_MACHINE_RESET_OVERRIDE(tumbleb_state,tumbleb) /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(58) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529)) - MCFG_SCREEN_SIZE(40*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_DRIVER(tumbleb_state, screen_update_tumblepb) - MCFG_SCREEN_PALETTE(m_palette) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(58); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(529)); + m_screen->set_size(40*8, 32*8); + m_screen->set_visarea(0*8, 40*8-1, 1*8, 31*8-1); + m_screen->set_screen_update(FUNC(tumbleb_state::screen_update_tumblepb)); + m_screen->set_palette(m_palette); DECO_SPRITE(config, m_sprgen, 0); m_sprgen->set_gfx_region(3); @@ -2097,34 +2097,33 @@ MACHINE_CONFIG_START(tumbleb_state::tumblepb) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("oki", OKIM6295, 8000000/10, okim6295_device::PIN7_HIGH) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.70) -MACHINE_CONFIG_END + OKIM6295(config, m_oki, 8000000/10, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.70); +} -MACHINE_CONFIG_START(tumbleb_state::tumblepba) +void tumbleb_state::tumblepba(machine_config &config) +{ tumblepb(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(tumblepopba_main_map) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(tumbleb_state::tumbleb2) + m_maincpu->set_addrmap(AS_PROGRAM, &tumbleb_state::tumblepopba_main_map); +} +void tumbleb_state::tumbleb2(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD(m_maincpu, M68000, 14000000) - MCFG_DEVICE_PROGRAM_MAP(tumblepopb_main_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", tumbleb_state, tumbleb2_interrupt) + M68000(config, m_maincpu, 14000000); + m_maincpu->set_addrmap(AS_PROGRAM, &tumbleb_state::tumblepopb_main_map); + m_maincpu->set_vblank_int("screen", FUNC(tumbleb_state::tumbleb2_interrupt)); MCFG_MACHINE_START_OVERRIDE(tumbleb_state,tumbleb) MCFG_MACHINE_RESET_OVERRIDE(tumbleb_state,tumbleb) /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(58) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529)) - MCFG_SCREEN_SIZE(40*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_DRIVER(tumbleb_state, screen_update_tumblepb) - MCFG_SCREEN_PALETTE(m_palette) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(58); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(529)); + m_screen->set_size(40*8, 32*8); + m_screen->set_visarea(0*8, 40*8-1, 1*8, 31*8-1); + m_screen->set_screen_update(FUNC(tumbleb_state::screen_update_tumblepb)); + m_screen->set_palette(m_palette); DECO_SPRITE(config, m_sprgen, 0); m_sprgen->set_gfx_region(3); @@ -2139,9 +2138,8 @@ MACHINE_CONFIG_START(tumbleb_state::tumbleb2) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("oki", OKIM6295, 8000000/10, okim6295_device::PIN7_HIGH) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.70) -MACHINE_CONFIG_END + OKIM6295(config, m_oki, 8000000/10, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.70); +} void tumbleb_state::funkyjetb(machine_config &config) { @@ -2151,28 +2149,28 @@ void tumbleb_state::funkyjetb(machine_config &config) m_maincpu->set_vblank_int("screen", FUNC(tumbleb_state::irq6_line_hold)); } -MACHINE_CONFIG_START(tumbleb_state::jumpkids) - +void tumbleb_state::jumpkids(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 12000000) - MCFG_DEVICE_PROGRAM_MAP(jumpkids_main_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", tumbleb_state, irq6_line_hold) + M68000(config, m_maincpu, 12000000); + m_maincpu->set_addrmap(AS_PROGRAM, &tumbleb_state::jumpkids_main_map); + m_maincpu->set_vblank_int("screen", FUNC(tumbleb_state::irq6_line_hold)); /* z80? */ - MCFG_DEVICE_ADD("audiocpu", Z80, 8000000/2) - MCFG_DEVICE_PROGRAM_MAP(jumpkids_sound_map) + Z80(config, m_audiocpu, 8000000/2); + m_audiocpu->set_addrmap(AS_PROGRAM, &tumbleb_state::jumpkids_sound_map); MCFG_MACHINE_START_OVERRIDE(tumbleb_state,tumbleb) MCFG_MACHINE_RESET_OVERRIDE(tumbleb_state,tumbleb) /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529)) - MCFG_SCREEN_SIZE(40*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_DRIVER(tumbleb_state, screen_update_jumpkids) - MCFG_SCREEN_PALETTE(m_palette) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(529)); + m_screen->set_size(40*8, 32*8); + m_screen->set_visarea(0*8, 40*8-1, 1*8, 31*8-1); + m_screen->set_screen_update(FUNC(tumbleb_state::screen_update_jumpkids)); + m_screen->set_palette(m_palette); DECO_SPRITE(config, m_sprgen, 0); m_sprgen->set_gfx_region(3); @@ -2189,28 +2187,27 @@ MACHINE_CONFIG_START(tumbleb_state::jumpkids) GENERIC_LATCH_8(config, m_soundlatch); - MCFG_DEVICE_ADD("oki", OKIM6295, 8000000/8, okim6295_device::PIN7_HIGH) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.70) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(tumbleb_state::fncywld) + OKIM6295(config, m_oki, 8000000/8, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.70); +} +void tumbleb_state::fncywld(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 12000000) - MCFG_DEVICE_PROGRAM_MAP(fncywld_main_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", tumbleb_state, irq6_line_hold) + M68000(config, m_maincpu, 12000000); + m_maincpu->set_addrmap(AS_PROGRAM, &tumbleb_state::fncywld_main_map); + m_maincpu->set_vblank_int("screen", FUNC(tumbleb_state::irq6_line_hold)); MCFG_MACHINE_START_OVERRIDE(tumbleb_state,tumbleb) MCFG_MACHINE_RESET_OVERRIDE(tumbleb_state,tumbleb) /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529)) - MCFG_SCREEN_SIZE(40*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_DRIVER(tumbleb_state, screen_update_fncywld) - MCFG_SCREEN_PALETTE(m_palette) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(529)); + m_screen->set_size(40*8, 32*8); + m_screen->set_visarea(0*8, 40*8-1, 1*8, 31*8-1); + m_screen->set_screen_update(FUNC(tumbleb_state::screen_update_fncywld)); + m_screen->set_palette(m_palette); DECO_SPRITE(config, m_sprgen, 0); m_sprgen->set_gfx_region(3); @@ -2228,29 +2225,28 @@ MACHINE_CONFIG_START(tumbleb_state::fncywld) YM2151(config, "ymsnd", 32220000/9).add_route(ALL_OUTPUTS, "mono", 0.10); - MCFG_DEVICE_ADD("oki", OKIM6295, 1023924, okim6295_device::PIN7_HIGH) // clock frequency & pin 7 not verified - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_CONFIG_END + OKIM6295(config, m_oki, 1023924, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 1.0); // clock frequency & pin 7 not verified +} /// OSCs: 12MHz, 4MHz, 28.63636MHz, not the same PCB as fncywld -MACHINE_CONFIG_START(tumbleb_state::magipur) - +void tumbleb_state::magipur(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(12'000'000)) - MCFG_DEVICE_PROGRAM_MAP(magipur_main_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", tumbleb_state, irq6_line_hold) + M68000(config, m_maincpu, XTAL(12'000'000)); + m_maincpu->set_addrmap(AS_PROGRAM, &tumbleb_state::magipur_main_map); + m_maincpu->set_vblank_int("screen", FUNC(tumbleb_state::irq6_line_hold)); MCFG_MACHINE_START_OVERRIDE(tumbleb_state,tumbleb) MCFG_MACHINE_RESET_OVERRIDE(tumbleb_state,tumbleb) /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) // refresh rate not verified - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529)) - MCFG_SCREEN_SIZE(40*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_DRIVER(tumbleb_state, screen_update_fncywld) - MCFG_SCREEN_PALETTE(m_palette) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); // refresh rate not verified + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(529)); + m_screen->set_size(40*8, 32*8); + m_screen->set_visarea(0*8, 40*8-1, 1*8, 31*8-1); + m_screen->set_screen_update(FUNC(tumbleb_state::screen_update_fncywld)); + m_screen->set_palette(m_palette); DECO_SPRITE(config, m_sprgen, 0); m_sprgen->set_gfx_region(3); @@ -2268,9 +2264,8 @@ MACHINE_CONFIG_START(tumbleb_state::magipur) YM2151(config, "ymsnd", XTAL(4'000'000)).add_route(ALL_OUTPUTS, "mono", 0.10); - MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(4'000'000)/4, okim6295_device::PIN7_HIGH) // clock frequency & pin 7 not verified - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_CONFIG_END + OKIM6295(config, m_oki, XTAL(4'000'000)/4, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 1.0); // clock frequency & pin 7 not verified +} MACHINE_RESET_MEMBER(tumbleb_state,htchctch) diff --git a/src/mame/drivers/turbo.cpp b/src/mame/drivers/turbo.cpp index 4fe5dc1842b..80e6d144308 100644 --- a/src/mame/drivers/turbo.cpp +++ b/src/mame/drivers/turbo.cpp @@ -843,12 +843,12 @@ GFXDECODE_END * *************************************/ -MACHINE_CONFIG_START(turbo_state::turbo) - +void turbo_state::turbo(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, MASTER_CLOCK/4) - MCFG_DEVICE_PROGRAM_MAP(turbo_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", turbo_state, irq0_line_hold) + Z80(config, m_maincpu, MASTER_CLOCK/4); + m_maincpu->set_addrmap(AS_PROGRAM, &turbo_state::turbo_map); + m_maincpu->set_vblank_int("screen", FUNC(turbo_state::irq0_line_hold)); I8255(config, m_i8255_0); m_i8255_0->out_pa_callback().set(FUNC(turbo_state::turbo_ppi0a_w)); @@ -884,25 +884,25 @@ MACHINE_CONFIG_START(turbo_state::turbo) GFXDECODE(config, m_gfxdecode, "palette", gfx_turbo); PALETTE(config, "palette", FUNC(turbo_state::turbo_palette), 256); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE) - MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) - MCFG_SCREEN_UPDATE_DRIVER(turbo_state, screen_update_turbo) - MCFG_SCREEN_PALETTE("palette") + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_video_attributes(VIDEO_ALWAYS_UPDATE); + m_screen->set_raw(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART); + m_screen->set_screen_update(FUNC(turbo_state::screen_update_turbo)); + m_screen->set_palette("palette"); MCFG_VIDEO_START_OVERRIDE(turbo_state,turbo) /* sound hardware */ turbo_samples(config); -MACHINE_CONFIG_END - +} -MACHINE_CONFIG_START(turbo_state::subroc3d) +void turbo_state::subroc3d(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, MASTER_CLOCK/4) - MCFG_DEVICE_PROGRAM_MAP(subroc3d_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", turbo_state, irq0_line_hold) + Z80(config, m_maincpu, MASTER_CLOCK/4); + m_maincpu->set_addrmap(AS_PROGRAM, &turbo_state::subroc3d_map); + m_maincpu->set_vblank_int("screen", FUNC(turbo_state::irq0_line_hold)); I8255(config, m_i8255_0); m_i8255_0->out_pa_callback().set(FUNC(turbo_state::subroc3d_ppi0a_w)); @@ -923,30 +923,30 @@ MACHINE_CONFIG_START(turbo_state::subroc3d) GFXDECODE(config, m_gfxdecode, "palette", gfx_turbo); PALETTE(config, "palette", FUNC(turbo_state::subroc3d_palette), 256); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE) - MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) - MCFG_SCREEN_UPDATE_DRIVER(turbo_state, screen_update_subroc3d) - MCFG_SCREEN_PALETTE("palette") + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_video_attributes(VIDEO_ALWAYS_UPDATE); + m_screen->set_raw(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART); + m_screen->set_screen_update(FUNC(turbo_state::screen_update_subroc3d)); + m_screen->set_palette("palette"); MCFG_VIDEO_START_OVERRIDE(turbo_state,turbo) /* sound hardware */ subroc3d_samples(config); -MACHINE_CONFIG_END - +} -MACHINE_CONFIG_START(turbo_state::buckrog) +void turbo_state::buckrog(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, MASTER_CLOCK/4) - MCFG_DEVICE_PROGRAM_MAP(buckrog_map) - MCFG_DEVICE_OPCODES_MAP(decrypted_opcodes_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", turbo_state, irq0_line_hold) + Z80(config, m_maincpu, MASTER_CLOCK/4); + m_maincpu->set_addrmap(AS_PROGRAM, &turbo_state::buckrog_map); + m_maincpu->set_addrmap(AS_OPCODES, &turbo_state::decrypted_opcodes_map); + m_maincpu->set_vblank_int("screen", FUNC(turbo_state::irq0_line_hold)); - MCFG_DEVICE_ADD("subcpu", Z80, MASTER_CLOCK/4) - MCFG_DEVICE_PROGRAM_MAP(buckrog_cpu2_map) - MCFG_DEVICE_IO_MAP(buckrog_cpu2_portmap) + Z80(config, m_subcpu, MASTER_CLOCK/4); + m_subcpu->set_addrmap(AS_PROGRAM, &turbo_state::buckrog_cpu2_map); + m_subcpu->set_addrmap(AS_IO, &turbo_state::buckrog_cpu2_portmap); config.m_minimum_quantum = attotime::from_hz(600); MCFG_MACHINE_RESET_OVERRIDE(turbo_state,buckrog) @@ -970,23 +970,25 @@ MACHINE_CONFIG_START(turbo_state::buckrog) GFXDECODE(config, m_gfxdecode, "palette", gfx_turbo); PALETTE(config, "palette", FUNC(turbo_state::buckrog_palette), 1024); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE) - MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) - MCFG_SCREEN_UPDATE_DRIVER(turbo_state, screen_update_buckrog) - MCFG_SCREEN_PALETTE("palette") + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_video_attributes(VIDEO_ALWAYS_UPDATE); + m_screen->set_raw(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART); + m_screen->set_screen_update(FUNC(turbo_state::screen_update_buckrog)); + m_screen->set_palette("palette"); MCFG_VIDEO_START_OVERRIDE(turbo_state,buckrog) /* sound hardware */ buckrog_samples(config); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(turbo_state::buckrogu) +void turbo_state::buckrogu(machine_config &config) +{ buckrog(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_REMOVE_ADDRESS_MAP(AS_OPCODES) -MACHINE_CONFIG_END + Z80(config.replace(), m_maincpu, MASTER_CLOCK/4); + m_maincpu->set_addrmap(AS_PROGRAM, &turbo_state::buckrog_map); + m_maincpu->set_vblank_int("screen", FUNC(turbo_state::irq0_line_hold)); +} void turbo_state::buckroge(machine_config &config) diff --git a/src/mame/drivers/turrett.cpp b/src/mame/drivers/turrett.cpp index de69211ca0e..c40bd25bf75 100644 --- a/src/mame/drivers/turrett.cpp +++ b/src/mame/drivers/turrett.cpp @@ -345,8 +345,8 @@ void turrett_devices(device_slot_interface &device) * *************************************/ -MACHINE_CONFIG_START(turrett_state::turrett) - +void turrett_state::turrett(machine_config &config) +{ /* basic machine hardware */ R3041(config, m_maincpu, R3041_CLOCK); m_maincpu->set_endianness(ENDIANNESS_BIG); @@ -359,12 +359,12 @@ MACHINE_CONFIG_START(turrett_state::turrett) ATA_INTERFACE(config, m_ata).options(turrett_devices, "hdd", nullptr, true); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); // TODO: Likely not correct. Refresh rate empirically determined // to ensure in-sync streaming sound - MCFG_SCREEN_RAW_PARAMS(4000000, 512, 0, 336, 259, 0, 244) - MCFG_SCREEN_UPDATE_DRIVER(turrett_state, screen_update) - MCFG_SCREEN_PALETTE("palette") + m_screen->set_raw(4000000, 512, 0, 336, 259, 0, 244); + m_screen->set_screen_update(FUNC(turrett_state::screen_update)); + m_screen->set_palette("palette"); PALETTE(config, "palette", palette_device::RGB_555); @@ -372,11 +372,11 @@ MACHINE_CONFIG_START(turrett_state::turrett) SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); - MCFG_DEVICE_ADD("ttsound", TURRETT, R3041_CLOCK) // ? - MCFG_DEVICE_ADDRESS_MAP(0, turrett_sound_map) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) -MACHINE_CONFIG_END + turrett_device &ttsound(TURRETT(config, "ttsound", R3041_CLOCK)); // ? + ttsound.set_addrmap(0, turrett_sound_map); + ttsound.add_route(ALL_OUTPUTS, "lspeaker", 1.0); + ttsound.add_route(ALL_OUTPUTS, "rspeaker", 1.0); +} diff --git a/src/mame/drivers/tutankhm.cpp b/src/mame/drivers/tutankhm.cpp index 99acaf88b9d..7e07de74dc9 100644 --- a/src/mame/drivers/tutankhm.cpp +++ b/src/mame/drivers/tutankhm.cpp @@ -226,11 +226,11 @@ void tutankhm_state::machine_reset() m_irq_toggle = 0; } -MACHINE_CONFIG_START(tutankhm_state::tutankhm) - +void tutankhm_state::tutankhm(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", MC6809E, XTAL(18'432'000)/12) /* 1.5 MHz ??? */ - MCFG_DEVICE_PROGRAM_MAP(main_map) + MC6809E(config, m_maincpu, XTAL(18'432'000)/12); /* 1.5 MHz ??? */ + m_maincpu->set_addrmap(AS_PROGRAM, &tutankhm_state::main_map); ls259_device &mainlatch(LS259(config, "mainlatch")); // C3 mainlatch.q_out_cb<0>().set(FUNC(tutankhm_state::irq_enable_w)); @@ -245,19 +245,19 @@ MACHINE_CONFIG_START(tutankhm_state::tutankhm) WATCHDOG_TIMER(config, "watchdog"); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(32*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) /* not sure about the visible area */ - MCFG_SCREEN_UPDATE_DRIVER(tutankhm_state, screen_update_tutankhm) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, tutankhm_state, vblank_irq)) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(32*8, 32*8); + screen.set_visarea(0*8, 32*8-1, 2*8, 30*8-1); /* not sure about the visible area */ + screen.set_screen_update(FUNC(tutankhm_state::screen_update_tutankhm)); + screen.screen_vblank().set(FUNC(tutankhm_state::vblank_irq)); PALETTE(config, m_palette).set_format(palette_device::BGR_233, 16); /* sound hardware */ TIMEPLT_AUDIO(config, "timeplt_audio"); -MACHINE_CONFIG_END +} /************************************* diff --git a/src/mame/drivers/tvcapcom.cpp b/src/mame/drivers/tvcapcom.cpp index 3b66e8b3dbc..d4254f72348 100644 --- a/src/mame/drivers/tvcapcom.cpp +++ b/src/mame/drivers/tvcapcom.cpp @@ -55,26 +55,25 @@ uint32_t tvcapcom_state::screen_update_tvcapcom(screen_device &screen, bitmap_rg static INPUT_PORTS_START( tvcapcom ) INPUT_PORTS_END -MACHINE_CONFIG_START(tvcapcom_state::tvcapcom) - +void tvcapcom_state::tvcapcom(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", PPC603, 72900000) // IBM PowerPC Broadway CPU @ 729 MHz ? - MCFG_DEVICE_PROGRAM_MAP(gc_map) - MCFG_DEVICE_DISABLE() + PPC603(config, m_maincpu, 72900000); // IBM PowerPC Broadway CPU @ 729 MHz ? + m_maincpu->set_addrmap(AS_PROGRAM, &tvcapcom_state::gc_map); + m_maincpu->set_disable(); config.m_minimum_quantum = attotime::from_hz(6000); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_SIZE(640, 480) - MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 479) - MCFG_SCREEN_UPDATE_DRIVER(tvcapcom_state, screen_update_tvcapcom) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_size(640, 480); + screen.set_visarea(0, 639, 0, 479); + screen.set_screen_update(FUNC(tvcapcom_state::screen_update_tvcapcom)); - MCFG_PALETTE_ADD("palette", 65536) - -MACHINE_CONFIG_END + PALETTE(config, "palette").set_entries(65536); +} ROM_START( tvcapcom ) // Bios?? diff --git a/src/mame/drivers/tvgame.cpp b/src/mame/drivers/tvgame.cpp index 24f911a9a3c..f99e0445b00 100644 --- a/src/mame/drivers/tvgame.cpp +++ b/src/mame/drivers/tvgame.cpp @@ -101,32 +101,32 @@ uint32_t tvgame_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap return 0; } -MACHINE_CONFIG_START(tvgame_state::tvgame) +void tvgame_state::tvgame(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, XTAL(4'000'000)) - MCFG_DEVICE_PROGRAM_MAP(mem_map) - MCFG_DEVICE_IO_MAP(io_map) + Z80(config, m_maincpu, XTAL(4'000'000)); + m_maincpu->set_addrmap(AS_PROGRAM, &tvgame_state::mem_map); + m_maincpu->set_addrmap(AS_IO, &tvgame_state::io_map); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_UPDATE_DRIVER(tvgame_state, screen_update) - MCFG_SCREEN_SIZE(216, 213) - MCFG_SCREEN_VISIBLE_AREA(0, 215, 0, 212) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_screen_update(FUNC(tvgame_state::screen_update)); + screen.set_size(216, 213); + screen.set_visarea(0, 215, 0, 212); + screen.set_palette("palette"); PALETTE(config, "palette", palette_device::MONOCHROME); /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) + SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.50); // Devices i8255_device &ppi(I8255(config, "ppi")); ppi.in_pa_callback().set_ioport("LINE0"); ppi.out_pc_callback().set(FUNC(tvgame_state::speaker_w)); -MACHINE_CONFIG_END +} /* ROM definition */ ROM_START( tvgame ) diff --git a/src/mame/drivers/tx0.cpp b/src/mame/drivers/tx0.cpp index 0a905600d53..8cd353f7202 100644 --- a/src/mame/drivers/tx0.cpp +++ b/src/mame/drivers/tx0.cpp @@ -1537,7 +1537,8 @@ INTERRUPT_GEN_MEMBER(tx0_state::tx0_interrupt) } } -MACHINE_CONFIG_START(tx0_state::tx0_64kw) +void tx0_state::tx0_64kw(machine_config &config) +{ /* basic machine hardware */ /* TX0 CPU @ approx. 167 kHz (no master clock, but the memory cycle time is approximately 6usec) */ TX0_64KW(config, m_maincpu, 166667); @@ -1556,14 +1557,14 @@ MACHINE_CONFIG_START(tx0_state::tx0_64kw) m_maincpu->set_vblank_int("screen", FUNC(tx0_state::tx0_interrupt)); /* video hardware (includes the control panel and typewriter output) */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(refresh_rate) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_SIZE(virtual_width, virtual_height) - MCFG_SCREEN_VISIBLE_AREA(0, virtual_width-1, 0, virtual_height-1) - MCFG_SCREEN_UPDATE_DRIVER(tx0_state, screen_update_tx0) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, tx0_state, screen_vblank_tx0)) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(refresh_rate); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_size(virtual_width, virtual_height); + screen.set_visarea(0, virtual_width-1, 0, virtual_height-1); + screen.set_screen_update(FUNC(tx0_state::screen_update_tx0)); + screen.screen_vblank().set(FUNC(tx0_state::screen_vblank_tx0)); + screen.set_palette(m_palette); CRT(config, m_crt, 0); m_crt->set_num_levels(pen_crt_num_levels); @@ -1577,18 +1578,17 @@ MACHINE_CONFIG_START(tx0_state::tx0_64kw) GFXDECODE(config, m_gfxdecode, m_palette, gfx_tx0); PALETTE(config, m_palette, FUNC(tx0_state::tx0_palette), total_colors_needed + sizeof(tx0_pens), total_colors_needed); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(tx0_state::tx0_8kw) +void tx0_state::tx0_8kw(machine_config &config) +{ tx0_64kw(config); /* basic machine hardware */ /* TX0 CPU @ approx. 167 kHz (no master clock, but the memory cycle time is approximately 6usec) */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(tx0_8kw_map) - /*MCFG_CPU_PORTS(readport, writeport)*/ -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, &tx0_state::tx0_8kw_map); +} ROM_START(tx0_64kw) /*CPU memory space*/ diff --git a/src/mame/drivers/tx1.cpp b/src/mame/drivers/tx1.cpp index ac7ca3804b7..6bbba6c424c 100644 --- a/src/mame/drivers/tx1.cpp +++ b/src/mame/drivers/tx1.cpp @@ -167,15 +167,15 @@ void tx1_state::buggyboy_math(address_map &map) * *************************************/ -MACHINE_CONFIG_START(tx1_state::tx1) - MCFG_DEVICE_ADD("main_cpu", I8086, CPU_MASTER_CLOCK / 3) - MCFG_DEVICE_PROGRAM_MAP(tx1_main) +void tx1_state::tx1(machine_config &config) +{ + I8086(config, m_maincpu, CPU_MASTER_CLOCK / 3); + m_maincpu->set_addrmap(AS_PROGRAM, &tx1_state::tx1_main); - WATCHDOG_TIMER(config, "watchdog"); -// MCFG_WATCHDOG_TIME_INIT(5) + WATCHDOG_TIMER(config, "watchdog");//.set_time(5); - MCFG_DEVICE_ADD("math_cpu", I8086, CPU_MASTER_CLOCK / 3) - MCFG_DEVICE_PROGRAM_MAP(tx1_math) + I8086(config, m_mathcpu, CPU_MASTER_CLOCK / 3); + m_mathcpu->set_addrmap(AS_PROGRAM, &tx1_state::tx1_math); MCFG_MACHINE_RESET_OVERRIDE(tx1_state,tx1) NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); @@ -184,97 +184,96 @@ MACHINE_CONFIG_START(tx1_state::tx1) config.set_default_layout(layout_triphsxs); - MCFG_SCREEN_ADD("lscreen", RASTER) - MCFG_SCREEN_RAW_PARAMS(TX1_PIXEL_CLOCK, TX1_HTOTAL, TX1_HBEND, TX1_HBSTART, TX1_VTOTAL, TX1_VBEND, TX1_VBSTART) - MCFG_SCREEN_UPDATE_DRIVER(tx1_state, screen_update_tx1_left) - MCFG_SCREEN_PALETTE("palette") + screen_device &lscreen(SCREEN(config, "lscreen", SCREEN_TYPE_RASTER)); + lscreen.set_raw(TX1_PIXEL_CLOCK, TX1_HTOTAL, TX1_HBEND, TX1_HBSTART, TX1_VTOTAL, TX1_VBEND, TX1_VBSTART); + lscreen.set_screen_update(FUNC(tx1_state::screen_update_tx1_left)); + lscreen.set_palette("palette"); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(TX1_PIXEL_CLOCK, TX1_HTOTAL, TX1_HBEND, TX1_HBSTART, TX1_VTOTAL, TX1_VBEND, TX1_VBSTART) - MCFG_SCREEN_UPDATE_DRIVER(tx1_state, screen_update_tx1_middle) - MCFG_SCREEN_PALETTE("palette") + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_raw(TX1_PIXEL_CLOCK, TX1_HTOTAL, TX1_HBEND, TX1_HBSTART, TX1_VTOTAL, TX1_VBEND, TX1_VBSTART); + m_screen->set_screen_update(FUNC(tx1_state::screen_update_tx1_middle)); + m_screen->set_palette("palette"); - MCFG_SCREEN_ADD("rscreen", RASTER) - MCFG_SCREEN_RAW_PARAMS(TX1_PIXEL_CLOCK, TX1_HTOTAL, TX1_HBEND, TX1_HBSTART, TX1_VTOTAL, TX1_VBEND, TX1_VBSTART) - MCFG_SCREEN_UPDATE_DRIVER(tx1_state, screen_update_tx1_right) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, tx1_state, screen_vblank_tx1)) - MCFG_SCREEN_PALETTE("palette") + screen_device &rscreen(SCREEN(config, "rscreen", SCREEN_TYPE_RASTER)); + rscreen.set_raw(TX1_PIXEL_CLOCK, TX1_HTOTAL, TX1_HBEND, TX1_HBSTART, TX1_VTOTAL, TX1_VBEND, TX1_VBSTART); + rscreen.set_screen_update(FUNC(tx1_state::screen_update_tx1_right)); + rscreen.screen_vblank().set(FUNC(tx1_state::screen_vblank_tx1)); + rscreen.set_palette("palette"); MCFG_VIDEO_START_OVERRIDE(tx1_state,tx1) - MCFG_DEVICE_ADD("soundbrd", TX1_SOUND, TX1_PIXEL_CLOCK) -MACHINE_CONFIG_END + TX1_SOUND(config, m_sound, TX1_PIXEL_CLOCK); +} -MACHINE_CONFIG_START(tx1_state::tx1j) +void tx1_state::tx1j(machine_config &config) +{ tx1(config); - config.device_remove("soundbrd"); - - MCFG_DEVICE_ADD("soundbrd", TX1J_SOUND, TX1_PIXEL_CLOCK) -MACHINE_CONFIG_END + TX1J_SOUND(config.replace(), m_sound, TX1_PIXEL_CLOCK); +} -MACHINE_CONFIG_START(tx1_state::buggyboy) - MCFG_DEVICE_ADD("main_cpu", I8086, CPU_MASTER_CLOCK / 3) - MCFG_DEVICE_PROGRAM_MAP(buggyboy_main) +void tx1_state::buggyboy(machine_config &config) +{ + I8086(config, m_maincpu, CPU_MASTER_CLOCK / 3); + m_maincpu->set_addrmap(AS_PROGRAM, &tx1_state::buggyboy_main); - WATCHDOG_TIMER(config, "watchdog"); -// MCFG_WATCHDOG_TIME_INIT(5) + WATCHDOG_TIMER(config, "watchdog");//.set_time(5); - MCFG_DEVICE_ADD("math_cpu", I8086, CPU_MASTER_CLOCK / 3) - MCFG_DEVICE_PROGRAM_MAP(buggyboy_math) + I8086(config, m_mathcpu, CPU_MASTER_CLOCK / 3); + m_mathcpu->set_addrmap(AS_PROGRAM, &tx1_state::buggyboy_math); MCFG_MACHINE_RESET_OVERRIDE(tx1_state,buggyboy) NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); config.set_default_layout(layout_triphsxs); - MCFG_SCREEN_ADD("lscreen", RASTER) - MCFG_SCREEN_RAW_PARAMS(BB_PIXEL_CLOCK, BB_HTOTAL, BB_HBEND, BB_HBSTART, BB_VTOTAL, BB_VBEND, BB_VBSTART) - MCFG_SCREEN_UPDATE_DRIVER(tx1_state, screen_update_buggyboy_left) - MCFG_SCREEN_PALETTE("palette") + screen_device &lscreen(SCREEN(config, "lscreen", SCREEN_TYPE_RASTER)); + lscreen.set_raw(BB_PIXEL_CLOCK, BB_HTOTAL, BB_HBEND, BB_HBSTART, BB_VTOTAL, BB_VBEND, BB_VBSTART); + lscreen.set_screen_update(FUNC(tx1_state::screen_update_buggyboy_left)); + lscreen.set_palette("palette"); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(BB_PIXEL_CLOCK, BB_HTOTAL, BB_HBEND, BB_HBSTART, BB_VTOTAL, BB_VBEND, BB_VBSTART) - MCFG_SCREEN_UPDATE_DRIVER(tx1_state, screen_update_buggyboy_middle) - MCFG_SCREEN_PALETTE("palette") + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_raw(BB_PIXEL_CLOCK, BB_HTOTAL, BB_HBEND, BB_HBSTART, BB_VTOTAL, BB_VBEND, BB_VBSTART); + m_screen->set_screen_update(FUNC(tx1_state::screen_update_buggyboy_middle)); + m_screen->set_palette("palette"); - MCFG_SCREEN_ADD("rscreen", RASTER) - MCFG_SCREEN_RAW_PARAMS(BB_PIXEL_CLOCK, BB_HTOTAL, BB_HBEND, BB_HBSTART, BB_VTOTAL, BB_VBEND, BB_VBSTART) - MCFG_SCREEN_UPDATE_DRIVER(tx1_state, screen_update_buggyboy_right) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, tx1_state, screen_vblank_buggyboy)) - MCFG_SCREEN_PALETTE("palette") + screen_device &rscreen(SCREEN(config, "rscreen", SCREEN_TYPE_RASTER)); + rscreen.set_raw(BB_PIXEL_CLOCK, BB_HTOTAL, BB_HBEND, BB_HBSTART, BB_VTOTAL, BB_VBEND, BB_VBSTART); + rscreen.set_screen_update(FUNC(tx1_state::screen_update_buggyboy_right)); + rscreen.screen_vblank().set(FUNC(tx1_state::screen_vblank_buggyboy)); + rscreen.set_palette("palette"); PALETTE(config, "palette", FUNC(tx1_state::buggyboy_palette), 256); MCFG_VIDEO_START_OVERRIDE(tx1_state,buggyboy) - MCFG_DEVICE_ADD("soundbrd", BUGGYBOY_SOUND, BUGGYBOY_ZCLK) -MACHINE_CONFIG_END + BUGGYBOY_SOUND(config, m_sound, BUGGYBOY_ZCLK); +} -MACHINE_CONFIG_START(tx1_state::buggybjr) - MCFG_DEVICE_ADD("main_cpu", I8086, CPU_MASTER_CLOCK / 3) - MCFG_DEVICE_PROGRAM_MAP(buggybjr_main) +void tx1_state::buggybjr(machine_config &config) +{ + I8086(config, m_maincpu, CPU_MASTER_CLOCK / 3); + m_maincpu->set_addrmap(AS_PROGRAM, &tx1_state::buggybjr_main); - WATCHDOG_TIMER(config, "watchdog"); -// MCFG_WATCHDOG_TIME_INIT(5) + WATCHDOG_TIMER(config, "watchdog");//.set_time(5); - MCFG_DEVICE_ADD("math_cpu", I8086, CPU_MASTER_CLOCK / 3) - MCFG_DEVICE_PROGRAM_MAP(buggyboy_math) + I8086(config, m_mathcpu, CPU_MASTER_CLOCK / 3); + m_mathcpu->set_addrmap(AS_PROGRAM, &tx1_state::buggyboy_math); MCFG_MACHINE_RESET_OVERRIDE(tx1_state,buggyboy) NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(BB_PIXEL_CLOCK, BB_HTOTAL, BB_HBEND, BB_HBSTART, BB_VTOTAL, BB_VBEND, BB_VBSTART) - MCFG_SCREEN_UPDATE_DRIVER(tx1_state, screen_update_buggybjr) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, tx1_state, screen_vblank_buggyboy)) - MCFG_SCREEN_PALETTE("palette") + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_raw(BB_PIXEL_CLOCK, BB_HTOTAL, BB_HBEND, BB_HBSTART, BB_VTOTAL, BB_VBEND, BB_VBSTART); + m_screen->set_screen_update(FUNC(tx1_state::screen_update_buggybjr)); + m_screen->screen_vblank().set(FUNC(tx1_state::screen_vblank_buggyboy)); + m_screen->set_palette("palette"); PALETTE(config, "palette", FUNC(tx1_state::buggyboy_palette), 256); MCFG_VIDEO_START_OVERRIDE(tx1_state,buggybjr) - MCFG_DEVICE_ADD("soundbrd", BUGGYBOYJR_SOUND, BUGGYBOY_ZCLK) -MACHINE_CONFIG_END + BUGGYBOYJR_SOUND(config, m_sound, BUGGYBOY_ZCLK); +} /************************************* diff --git a/src/mame/includes/taitosj.h b/src/mame/includes/taitosj.h index e1fea20a1c5..4736857f79d 100644 --- a/src/mame/includes/taitosj.h +++ b/src/mame/includes/taitosj.h @@ -82,7 +82,7 @@ private: required_device<input_merger_device> m_soundnmi; required_device<input_merger_device> m_soundnmi2; required_device<dac_8bit_r2r_device> m_dac; - required_device<discrete_device> m_dacvol; + required_device<discrete_sound_device> m_dacvol; required_device<ay8910_device> m_ay1; required_device<ay8910_device> m_ay2; required_device<ay8910_device> m_ay3; diff --git a/src/mame/includes/terracre.h b/src/mame/includes/terracre.h index d6f2b35806d..9eedc5773f6 100644 --- a/src/mame/includes/terracre.h +++ b/src/mame/includes/terracre.h @@ -31,8 +31,9 @@ public: protected: void amazon_base_map(address_map &map); -private: required_device<cpu_device> m_maincpu; + +private: required_device<gfxdecode_device> m_gfxdecode; required_device<palette_device> m_palette; required_device<buffered_spriteram16_device> m_spriteram; diff --git a/src/mame/includes/thomson.h b/src/mame/includes/thomson.h index 79de6f56b43..b0d1dc13c88 100644 --- a/src/mame/includes/thomson.h +++ b/src/mame/includes/thomson.h @@ -379,14 +379,14 @@ private: void to7_network_got_frame(uint8_t *data, int length); - void mo5(address_map &map); - void mo5nr(address_map &map); - void mo6(address_map &map); - void to7(address_map &map); - void to770(address_map &map); - void to8(address_map &map); - void to9(address_map &map); - void to9p(address_map &map); + void mo5_map(address_map &map); + void mo5nr_map(address_map &map); + void mo6_map(address_map &map); + void to7_map(address_map &map); + void to770_map(address_map &map); + void to8_map(address_map &map); + void to9_map(address_map &map); + void to9p_map(address_map &map); required_device<cpu_device> m_maincpu; required_device<cassette_image_device> m_cassette; diff --git a/src/mame/includes/ti85.h b/src/mame/includes/ti85.h index 8ba897422dc..ff2cdf841ce 100644 --- a/src/mame/includes/ti85.h +++ b/src/mame/includes/ti85.h @@ -62,10 +62,7 @@ public: , m_link_port(*this, "linkport") , m_nvram(*this, "nvram") , m_flash(*this, "flash") - , m_membank1(*this, "membank1") - , m_membank2(*this, "membank2") - , m_membank3(*this, "membank3") - , m_membank4(*this, "membank4") + , m_membank(*this, "membank%u", 0U) { } @@ -87,10 +84,7 @@ private: optional_device<ti8x_link_port_device> m_link_port; optional_shared_ptr<uint8_t> m_nvram; optional_device<intelfsh8_device> m_flash; - optional_device<address_map_bank_device> m_membank1; - optional_device<address_map_bank_device> m_membank2; - optional_device<address_map_bank_device> m_membank3; - optional_device<address_map_bank_device> m_membank4; + optional_device_array<address_map_bank_device, 4> m_membank; ti85_model m_model; diff --git a/src/mame/machine/ti85.cpp b/src/mame/machine/ti85.cpp index f7aa783b3ab..dd8e23dc6bd 100644 --- a/src/mame/machine/ti85.cpp +++ b/src/mame/machine/ti85.cpp @@ -155,24 +155,24 @@ void ti85_state::update_ti83p_memory () { //address_space &space = m_maincpu->space(AS_PROGRAM); - m_membank1->set_bank(m_booting ? 0x1f : 0); //Always flash page 0, well almost + m_membank[0]->set_bank(m_booting ? 0x1f : 0); //Always flash page 0, well almost if (m_ti83p_port4 & 1) { - m_membank2->set_bank(m_ti8x_memory_page_1 & 0xfe); + m_membank[1]->set_bank(m_ti8x_memory_page_1 & 0xfe); - m_membank3->set_bank(m_ti8x_memory_page_1); + m_membank[2]->set_bank(m_ti8x_memory_page_1); - m_membank4->set_bank(m_ti8x_memory_page_2); + m_membank[3]->set_bank(m_ti8x_memory_page_2); } else { - m_membank2->set_bank(m_ti8x_memory_page_1); + m_membank[1]->set_bank(m_ti8x_memory_page_1); - m_membank3->set_bank(m_ti8x_memory_page_2); + m_membank[2]->set_bank(m_ti8x_memory_page_2); - m_membank4->set_bank(0x40); //Always first ram page + m_membank[3]->set_bank(0x40); //Always first ram page } } @@ -181,25 +181,25 @@ void ti85_state::update_ti83pse_memory () { //address_space &space = m_maincpu->space(AS_PROGRAM); - m_membank1->set_bank(m_booting ? (m_model==TI84P ? 0x3f : 0x7f) : 0); + m_membank[0]->set_bank(m_booting ? (m_model==TI84P ? 0x3f : 0x7f) : 0); if (m_ti83p_port4 & 1) { - m_membank2->set_bank(m_ti8x_memory_page_1 & 0xfe); + m_membank[1]->set_bank(m_ti8x_memory_page_1 & 0xfe); - m_membank3->set_bank(m_ti8x_memory_page_1 | 1); + m_membank[2]->set_bank(m_ti8x_memory_page_1 | 1); - m_membank4->set_bank(m_ti8x_memory_page_2); + m_membank[3]->set_bank(m_ti8x_memory_page_2); } else { - m_membank2->set_bank(m_ti8x_memory_page_1); + m_membank[1]->set_bank(m_ti8x_memory_page_1); - m_membank3->set_bank(m_ti8x_memory_page_2); + m_membank[2]->set_bank(m_ti8x_memory_page_2); - m_membank4->set_bank(m_ti8x_memory_page_3 + 0x80); + m_membank[3]->set_bank(m_ti8x_memory_page_3 + 0x80); } } @@ -287,7 +287,7 @@ uint8_t ti85_state::ti83p_membank2_r(offs_t offset) } } - return m_membank2->read8(offset); + return m_membank[1]->read8(offset); } uint8_t ti85_state::ti83p_membank3_r(offs_t offset) @@ -309,7 +309,7 @@ uint8_t ti85_state::ti83p_membank3_r(offs_t offset) } } - return m_membank3->read8(offset); + return m_membank[2]->read8(offset); } MACHINE_RESET_MEMBER(ti85_state,ti83p) |