diff options
author | 2019-03-06 18:07:20 +0100 | |
---|---|---|
committer | 2019-03-06 18:07:20 +0100 | |
commit | f7db65e0f31c26a1bfe5b2025c3855517036825c (patch) | |
tree | c42b673bb54696a62935295dc89e75aaa13a0c3d | |
parent | 9a5e311c0b7116645a415fcde820a7a96bb8571b (diff) |
mame\drivers: removed most MCFG and MACHINE_CONFIG macros from drivers starting with h and from the heavy hitters starting with g (nw)
41 files changed, 1367 insertions, 1371 deletions
diff --git a/src/mame/drivers/galaxian.cpp b/src/mame/drivers/galaxian.cpp index ede3c861d3e..c3213bc002e 100644 --- a/src/mame/drivers/galaxian.cpp +++ b/src/mame/drivers/galaxian.cpp @@ -5988,8 +5988,8 @@ DISCRETE_SOUND_END * *************************************/ -MACHINE_CONFIG_START(galaxian_state::galaxian_base) - +void galaxian_state::galaxian_base(machine_config &config) +{ // basic machine hardware Z80(config, m_maincpu, GALAXIAN_PIXEL_CLOCK/3/2); m_maincpu->set_addrmap(AS_PROGRAM, &galaxian_state::galaxian_map); @@ -6000,18 +6000,18 @@ MACHINE_CONFIG_START(galaxian_state::galaxian_base) GFXDECODE(config, m_gfxdecode, m_palette, gfx_galaxian); PALETTE(config, m_palette, FUNC(galaxian_state::galaxian_palette), 32); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(GALAXIAN_PIXEL_CLOCK, GALAXIAN_HTOTAL, GALAXIAN_HBEND, GALAXIAN_HBSTART, GALAXIAN_VTOTAL, GALAXIAN_VBEND, GALAXIAN_VBSTART) - MCFG_SCREEN_UPDATE_DRIVER(galaxian_state, screen_update_galaxian) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, galaxian_state, vblank_interrupt_w)) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_raw(GALAXIAN_PIXEL_CLOCK, GALAXIAN_HTOTAL, GALAXIAN_HBEND, GALAXIAN_HBSTART, GALAXIAN_VTOTAL, GALAXIAN_VBEND, GALAXIAN_VBSTART); + m_screen->set_screen_update(FUNC(galaxian_state::screen_update_galaxian)); + m_screen->screen_vblank().set(FUNC(galaxian_state::vblank_interrupt_w)); // sound hardware SPEAKER(config, "speaker").front_center(); -MACHINE_CONFIG_END - +} -MACHINE_CONFIG_START(galaxian_state::sidam_bootleg_base) +void galaxian_state::sidam_bootleg_base(machine_config &config) +{ galaxian_base(config); /* basic machine hardware */ @@ -6020,9 +6020,8 @@ MACHINE_CONFIG_START(galaxian_state::sidam_bootleg_base) /* video hardware */ m_gfxdecode->set_info(gfx_sidam); - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_RAW_PARAMS(12_MHz_XTAL, SIDAM_HTOTAL, SIDAM_HBEND, SIDAM_HBSTART, GALAXIAN_VTOTAL, GALAXIAN_VBEND, GALAXIAN_VBSTART) -MACHINE_CONFIG_END + m_screen->set_raw(12_MHz_XTAL, SIDAM_HTOTAL, SIDAM_HBEND, SIDAM_HBSTART, GALAXIAN_VTOTAL, GALAXIAN_VBEND, GALAXIAN_VBSTART); +} void galaxian_state::konami_base(machine_config &config) @@ -6043,12 +6042,12 @@ void galaxian_state::konami_base(machine_config &config) } -MACHINE_CONFIG_START(galaxian_state::konami_sound_1x_ay8910) - +void galaxian_state::konami_sound_1x_ay8910(machine_config &config) +{ /* 2nd CPU to drive sound */ - MCFG_DEVICE_ADD("audiocpu", Z80, KONAMI_SOUND_CLOCK/8) - MCFG_DEVICE_PROGRAM_MAP(frogger_sound_map) - MCFG_DEVICE_IO_MAP(frogger_sound_portmap) + Z80(config, m_audiocpu, KONAMI_SOUND_CLOCK/8); + m_audiocpu->set_addrmap(AS_PROGRAM, &galaxian_state::frogger_sound_map); + m_audiocpu->set_addrmap(AS_IO, &galaxian_state::frogger_sound_portmap); GENERIC_LATCH_8(config, m_soundlatch); @@ -6062,17 +6061,16 @@ MACHINE_CONFIG_START(galaxian_state::konami_sound_1x_ay8910) m_ay8910[0]->add_route(1, "konami", 1.0, 1); m_ay8910[0]->add_route(2, "konami", 1.0, 2); - MCFG_DEVICE_ADD("konami", DISCRETE, konami_sound_discrete) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.75) -MACHINE_CONFIG_END - + DISCRETE(config, m_discrete, konami_sound_discrete).add_route(ALL_OUTPUTS, "speaker", 0.75); +} -MACHINE_CONFIG_START(galaxian_state::konami_sound_2x_ay8910) +void galaxian_state::konami_sound_2x_ay8910(machine_config &config) +{ /* 2nd CPU to drive sound */ - MCFG_DEVICE_ADD("audiocpu", Z80, KONAMI_SOUND_CLOCK/8) - MCFG_DEVICE_PROGRAM_MAP(konami_sound_map) - MCFG_DEVICE_IO_MAP(konami_sound_portmap) + Z80(config, m_audiocpu, KONAMI_SOUND_CLOCK/8); + m_audiocpu->set_addrmap(AS_PROGRAM, &galaxian_state::konami_sound_map); + m_audiocpu->set_addrmap(AS_IO, &galaxian_state::konami_sound_portmap); GENERIC_LATCH_8(config, m_soundlatch); @@ -6093,9 +6091,8 @@ MACHINE_CONFIG_START(galaxian_state::konami_sound_2x_ay8910) m_ay8910[1]->add_route(1, "konami", 1.0, 4); m_ay8910[1]->add_route(2, "konami", 1.0, 5); - MCFG_DEVICE_ADD("konami", DISCRETE, konami_sound_discrete) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5) -MACHINE_CONFIG_END + DISCRETE(config, m_discrete, konami_sound_discrete).add_route(ALL_OUTPUTS, "speaker", 0.5); +} void galaxian_state::scramble_base(machine_config &config) @@ -6157,22 +6154,21 @@ void galaxian_state::pacmanbl(machine_config &config) m_gfxdecode->set_info(gfx_pacmanbl); } -MACHINE_CONFIG_START(galaxian_state::tenspot) +void galaxian_state::tenspot(machine_config &config) +{ galaxian(config); /* basic machine hardware */ - MCFG_DEVICE_ADD("selectcpu", Z80, GALAXIAN_PIXEL_CLOCK/3/2) // ?? mhz - MCFG_DEVICE_PROGRAM_MAP(tenspot_select_map) - //MCFG_CPU_VBLANK_INT("screen", nmi_line_pulse) + z80_device &selectcpu(Z80(config, "selectcpu", GALAXIAN_PIXEL_CLOCK/3/2)); // ?? mhz + selectcpu.set_addrmap(AS_PROGRAM, &galaxian_state::tenspot_select_map); + //selectcpu.set_vblank_int("screen", FUNC(galaxian_state::nmi_line_pulse)); /* separate tile/sprite ROMs */ m_gfxdecode->set_info(gfx_tenspot); - // MCFG_CPU_VBLANK_INT("screen", nmi_line_pulse) /* video hardware */ - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, galaxian_state, tenspot_interrupt_w)) -MACHINE_CONFIG_END + m_screen->screen_vblank().set(FUNC(galaxian_state::tenspot_interrupt_w)); +} void galaxian_state::zigzag(machine_config &config) { @@ -6298,30 +6294,32 @@ void galaxian_state::jumpbug(machine_config &config) } -MACHINE_CONFIG_START(galaxian_state::checkman) +void galaxian_state::checkman(machine_config &config) +{ mooncrst(config); /* basic machine hardware */ - MCFG_DEVICE_ADD("audiocpu", Z80, 1620000) /* 1.62 MHz */ - MCFG_DEVICE_PROGRAM_MAP(checkman_sound_map) - MCFG_DEVICE_IO_MAP(checkman_sound_portmap) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", galaxian_state, irq0_line_hold) /* NMIs are triggered by the main CPU */ + Z80(config, m_audiocpu, 1620000); /* 1.62 MHz */ + m_audiocpu->set_addrmap(AS_PROGRAM, &galaxian_state::checkman_sound_map); + m_audiocpu->set_addrmap(AS_IO, &galaxian_state::checkman_sound_portmap); + m_audiocpu->set_vblank_int("screen", FUNC(galaxian_state::irq0_line_hold)); /* NMIs are triggered by the main CPU */ GENERIC_LATCH_8(config, m_soundlatch); /* sound hardware */ AY8910(config, m_ay8910[0], 1789750).add_route(ALL_OUTPUTS, "speaker", 0.5); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(galaxian_state::checkmaj) +void galaxian_state::checkmaj(machine_config &config) +{ galaxian_base(config); // basic machine hardware m_maincpu->set_addrmap(AS_PROGRAM, &galaxian_state::galaxian_map_base); // no discrete sound - MCFG_DEVICE_ADD("audiocpu", Z80, 1620000) - MCFG_DEVICE_PROGRAM_MAP(checkmaj_sound_map) + Z80(config, m_audiocpu, 1620000); + m_audiocpu->set_addrmap(AS_PROGRAM, &galaxian_state::checkmaj_sound_map); TIMER(config, "irq0").configure_scanline(FUNC(galaxian_state::checkmaj_irq0_gen), "screen", 0, 8); @@ -6331,7 +6329,7 @@ MACHINE_CONFIG_START(galaxian_state::checkmaj) AY8910(config, m_ay8910[0], 1620000); m_ay8910[0]->port_a_read_callback().set(m_soundlatch, FUNC(generic_latch_8_device::read)); m_ay8910[0]->add_route(ALL_OUTPUTS, "speaker", 2); -MACHINE_CONFIG_END +} void galaxian_state::mshuttle(machine_config &config) @@ -6377,16 +6375,16 @@ void galaxian_state::frogger(machine_config &config) } -MACHINE_CONFIG_START(galaxian_state::froggermc) +void galaxian_state::froggermc(machine_config &config) +{ galaxian_base(config); konami_sound_1x_ay8910(config); // alternate memory map m_maincpu->set_addrmap(AS_PROGRAM, &galaxian_state::froggermc_map); - MCFG_DEVICE_MODIFY("audiocpu") - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE(DEVICE_SELF, galaxian_state, froggermc_audiocpu_irq_ack) -MACHINE_CONFIG_END + m_audiocpu->set_irq_acknowledge_callback(FUNC(galaxian_state::froggermc_audiocpu_irq_ack)); +} void galaxian_state::froggers(machine_config &config) @@ -6456,35 +6454,37 @@ void galaxian_state::scramble(machine_config &config) m_ppi8255[1]->out_pc_callback().set(FUNC(galaxian_state::theend_protection_w)); } -MACHINE_CONFIG_START(galaxian_state::jungsub) +void galaxian_state::jungsub(machine_config &config) +{ galaxian_base(config); // alternate memory map m_maincpu->set_addrmap(AS_PROGRAM, &galaxian_state::jungsub_map); m_maincpu->set_addrmap(AS_IO, &galaxian_state::jungsub_io_map); - MCFG_DEVICE_ADD("audiocpu", Z80, GALAXIAN_PIXEL_CLOCK / 3 / 2) // clock not verified - MCFG_DEVICE_PROGRAM_MAP(checkman_sound_map) - MCFG_DEVICE_IO_MAP(checkman_sound_portmap) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", galaxian_state, irq0_line_hold) + Z80(config, m_audiocpu, GALAXIAN_PIXEL_CLOCK / 3 / 2); // clock not verified + m_audiocpu->set_addrmap(AS_PROGRAM, &galaxian_state::checkman_sound_map); + m_audiocpu->set_addrmap(AS_IO, &galaxian_state::checkman_sound_portmap); + m_audiocpu->set_vblank_int("screen", FUNC(galaxian_state::irq0_line_hold)); GENERIC_LATCH_8(config, m_soundlatch); m_soundlatch->data_pending_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI); /* sound hardware */ AY8910(config, m_ay8910[0], GALAXIAN_PIXEL_CLOCK / 3 / 2 / 2).add_route(ALL_OUTPUTS, "speaker", 0.5); // clock not verified -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(galaxian_state::explorer) // Sidam 10800 +void galaxian_state::explorer(machine_config &config) // Sidam 10800 +{ sidam_bootleg_base(config); // alternate memory map m_maincpu->set_addrmap(AS_PROGRAM, &galaxian_state::explorer_map); /* 2nd CPU to drive sound */ - MCFG_DEVICE_ADD("audiocpu", Z80, 12_MHz_XTAL / 2 / 2 / 2) /* clock not verified */ - MCFG_DEVICE_PROGRAM_MAP(konami_sound_map) - MCFG_DEVICE_IO_MAP(konami_sound_portmap) + Z80(config, m_audiocpu, 12_MHz_XTAL / 2 / 2 / 2); /* clock not verified */ + m_audiocpu->set_addrmap(AS_PROGRAM, &galaxian_state::konami_sound_map); + m_audiocpu->set_addrmap(AS_IO, &galaxian_state::konami_sound_portmap); GENERIC_LATCH_8(config, m_soundlatch); @@ -6496,15 +6496,15 @@ MACHINE_CONFIG_START(galaxian_state::explorer) // Sidam 10800 AY8912(config, m_ay8910[1], 12_MHz_XTAL / 2 / 2 / 2); /* matches PCB, needs verification */ m_ay8910[0]->port_a_read_callback().set(FUNC(galaxian_state::konami_sound_timer_r)); m_ay8910[0]->add_route(ALL_OUTPUTS, "speaker", 0.25); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(galaxian_state::takeoff) // Sidam 10900, with 1 x AY-3-8912 +void galaxian_state::takeoff(machine_config &config) // Sidam 10900, with 1 x AY-3-8912 +{ explorer(config); /* 2nd CPU to drive sound */ - MCFG_DEVICE_MODIFY("audiocpu") - MCFG_DEVICE_PROGRAM_MAP(takeoff_sound_map) - MCFG_DEVICE_IO_MAP(takeoff_sound_portmap) + m_audiocpu->set_addrmap(AS_PROGRAM, &galaxian_state::takeoff_sound_map); + m_audiocpu->set_addrmap(AS_IO, &galaxian_state::takeoff_sound_portmap); /* sound hardware */ config.device_remove("8910.0"); @@ -6513,18 +6513,20 @@ MACHINE_CONFIG_START(galaxian_state::takeoff) // Sidam 10900, with 1 x AY-3-8912 ay8912_device &ay8912(AY8912(config, "8912", XTAL(12'000'000) / 8)); ay8912.port_a_read_callback().set(FUNC(galaxian_state::explorer_sound_latch_r)); ay8912.add_route(ALL_OUTPUTS, "speaker", 0.25); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(galaxian_state::amigo2) // marked "AMI", but similar to above +void galaxian_state::amigo2(machine_config &config) // marked "AMI", but similar to above +{ sidam_bootleg_base(config); // alternate memory map m_maincpu->set_addrmap(AS_PROGRAM, &galaxian_state::amigo2_map); // 2nd CPU to drive sound - MCFG_DEVICE_ADD("audiocpu", Z80, 12_MHz_XTAL / 2 / 2 / 2) // clock not verified - MCFG_DEVICE_PROGRAM_MAP(konami_sound_map) - MCFG_DEVICE_IO_MAP(konami_sound_portmap) + Z80(config, m_audiocpu, 12_MHz_XTAL / 2 / 2 / 2); // clock not verified + m_audiocpu->set_addrmap(AS_PROGRAM, &galaxian_state::konami_sound_map); + m_audiocpu->set_addrmap(AS_IO, &galaxian_state::konami_sound_portmap); + GENERIC_LATCH_8(config, m_soundlatch); /* sound hardware */ @@ -6534,17 +6536,17 @@ MACHINE_CONFIG_START(galaxian_state::amigo2) // marked "AMI", but similar to abo m_ay8910[0]->add_route(ALL_OUTPUTS, "speaker", 0.25); AY8910(config, m_ay8910[1], 12_MHz_XTAL / 2 / 2 / 2).add_route(ALL_OUTPUTS, "speaker", 0.25); /* matches PCB, needs verification */ -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(galaxian_state::scorpion) +void galaxian_state::scorpion(machine_config &config) +{ scramble_base(config); // alternate memory map m_maincpu->set_addrmap(AS_PROGRAM, &galaxian_state::scorpion_map); - MCFG_DEVICE_MODIFY("audiocpu") - MCFG_DEVICE_PROGRAM_MAP(scorpion_sound_map) - MCFG_DEVICE_IO_MAP(scorpion_sound_portmap) + m_audiocpu->set_addrmap(AS_PROGRAM, &galaxian_state::scorpion_sound_map); + m_audiocpu->set_addrmap(AS_IO, &galaxian_state::scorpion_sound_portmap); m_ppi8255[1]->in_pc_callback().set(FUNC(galaxian_state::scorpion_protection_r)); m_ppi8255[1]->out_pc_callback().set(FUNC(galaxian_state::scorpion_protection_w)); @@ -6556,7 +6558,7 @@ MACHINE_CONFIG_START(galaxian_state::scorpion) m_ay8910[2]->add_route(ALL_OUTPUTS, "speaker", 0.25); DIGITALKER(config, m_digitalker, 4_MHz_XTAL).add_route(ALL_OUTPUTS, "speaker", 0.16); -MACHINE_CONFIG_END +} void galaxian_state::sfx(machine_config &config) @@ -6689,25 +6691,25 @@ void galaxian_state::froggeram(machine_config &config) } -MACHINE_CONFIG_START(galaxian_state::turpins) // the ROMs came from a blister, so there aren't PCB infos available. Chip types and clocks are guessed. +void galaxian_state::turpins(machine_config &config) // the ROMs came from a blister, so there aren't PCB infos available. Chip types and clocks are guessed. +{ scobra(config); // alternate memory map m_maincpu->set_addrmap(AS_PROGRAM, &galaxian_state::turpins_map); - MCFG_DEVICE_MODIFY("audiocpu") - MCFG_DEVICE_PROGRAM_MAP(turpins_sound_map) -MACHINE_CONFIG_END + m_audiocpu->set_addrmap(AS_PROGRAM, &galaxian_state::turpins_sound_map); +} -MACHINE_CONFIG_START(galaxian_state::anteater) +void galaxian_state::anteater(machine_config &config) +{ scobra(config); /* quiet down the sounds */ - MCFG_DEVICE_MODIFY("konami") - MCFG_SOUND_ROUTES_RESET() - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) -MACHINE_CONFIG_END + m_discrete->reset_routes(); + m_discrete->add_route(ALL_OUTPUTS, "speaker", 0.25); +} void galaxian_state::anteateruk(machine_config &config) diff --git a/src/mame/drivers/galaxold.cpp b/src/mame/drivers/galaxold.cpp index c87e568e3ba..45ed0e73615 100644 --- a/src/mame/drivers/galaxold.cpp +++ b/src/mame/drivers/galaxold.cpp @@ -588,7 +588,7 @@ void galaxold_state::dkongjrmc_map(address_map &map) } -void galaxold_state::tazzmang(address_map &map) +void galaxold_state::tazzmang_map(address_map &map) { map(0x0000, 0x5fff).rom(); map(0x7000, 0x7000).portr("DSW0"); /* mirror */ @@ -614,7 +614,7 @@ void galaxold_state::tazzmang(address_map &map) } -void galaxold_state::bongo(address_map &map) +void galaxold_state::bongo_map(address_map &map) { map(0x0000, 0x5fff).rom(); map(0x8000, 0x83ff).ram(); @@ -668,7 +668,7 @@ void galaxold_state::ozon1_io_map(address_map &map) } -void galaxold_state::hunchbkg(address_map &map) +void galaxold_state::hunchbkg_map(address_map &map) { map(0x0000, 0x0fff).rom(); map(0x1480, 0x14bf).mirror(0x6000).ram().w(FUNC(galaxold_state::galaxold_attributesram_w)).share("attributesram"); @@ -694,7 +694,7 @@ void galaxold_state::hunchbkg(address_map &map) } /* hunchbkg style */ -void galaxold_state::spcwarp(address_map &map) +void galaxold_state::spcwarp_map(address_map &map) { map(0x0000, 0x0fff).rom(); map(0x1480, 0x14bf).mirror(0x6000).ram().w(FUNC(galaxold_state::galaxold_attributesram_w)).share("attributesram"); @@ -2253,11 +2253,11 @@ static GFXDECODE_START( gfx_4in1 ) GFXDECODE_END -MACHINE_CONFIG_START(galaxold_state::galaxold_base) - +void galaxold_state::galaxold_base(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, PIXEL_CLOCK/2) /* 3.072 MHz */ - MCFG_DEVICE_PROGRAM_MAP(galaxold_map) + Z80(config, m_maincpu, PIXEL_CLOCK/2); /* 3.072 MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &galaxold_state::galaxold_map); MCFG_MACHINE_RESET_OVERRIDE(galaxold_state,galaxold) @@ -2275,58 +2275,56 @@ MACHINE_CONFIG_START(galaxold_state::galaxold_base) GFXDECODE(config, m_gfxdecode, m_palette, gfx_galaxian); PALETTE(config, m_palette, FUNC(galaxold_state::galaxold_palette), 32+2+64); // 32 for the characters, 2 for the bullets, 64 for the stars - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) - MCFG_SCREEN_UPDATE_DRIVER(galaxold_state, screen_update_galaxold) - MCFG_SCREEN_PALETTE(m_palette) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_raw(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART); + m_screen->set_screen_update(FUNC(galaxold_state::screen_update_galaxold)); + m_screen->set_palette(m_palette); MCFG_VIDEO_START_OVERRIDE(galaxold_state,galaxold) /* sound hardware */ SPEAKER(config, "speaker").front_center(); -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(galaxold_state::galaxian_audio) - MCFG_DEVICE_ADD("cust", GALAXIAN, 0) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.4) +} - MCFG_DEVICE_ADD(GAL_AUDIO, DISCRETE, galaxian_discrete) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0) -MACHINE_CONFIG_END +void galaxold_state::galaxian_audio(machine_config &config) +{ + GALAXIAN(config, "cust", 0).add_route(ALL_OUTPUTS, "speaker", 0.4); -MACHINE_CONFIG_START(galaxold_state::mooncrst_audio) - MCFG_DEVICE_ADD("cust", GALAXIAN, 0) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.4) + DISCRETE(config, GAL_AUDIO, galaxian_discrete).add_route(ALL_OUTPUTS, "speaker", 1.0); +} - MCFG_DEVICE_ADD(GAL_AUDIO, DISCRETE, mooncrst_discrete) +void galaxold_state::mooncrst_audio(machine_config &config) +{ + GALAXIAN(config, "cust", 0).add_route(ALL_OUTPUTS, "speaker", 0.4); - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0) -MACHINE_CONFIG_END + DISCRETE(config, GAL_AUDIO, mooncrst_discrete).add_route(ALL_OUTPUTS, "speaker", 1.0); +} -MACHINE_CONFIG_START(galaxold_state::galaxian) +void galaxold_state::galaxian(machine_config &config) +{ galaxold_base(config); /* basic machine hardware */ /* sound hardware */ galaxian_audio(config); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(galaxold_state::mooncrst) +void galaxold_state::mooncrst(machine_config &config) +{ galaxold_base(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(mooncrst_map) + m_maincpu->set_addrmap(AS_PROGRAM, &galaxold_state::mooncrst_map); /* video hardware */ MCFG_VIDEO_START_OVERRIDE(galaxold_state,mooncrst) /* sound hardware */ mooncrst_audio(config); -MACHINE_CONFIG_END +} // 'Videotron' // this is a 'cartridge' based system, taking plug-in game boards. @@ -2334,84 +2332,85 @@ MACHINE_CONFIG_END // but neither of the games we have (froggerv and hustlerb3) make use of either. There are a number // of unpopulated positions on the game board which presumably can be populated with code for the // 2nd Z80. -MACHINE_CONFIG_START(galaxold_state::videotron) +void galaxold_state::videotron(machine_config &config) +{ galaxian(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(hustlerb3_map) + m_maincpu->set_addrmap(AS_PROGRAM, &galaxold_state::hustlerb3_map); /* video hardware */ MCFG_VIDEO_START_OVERRIDE(galaxold_state,mooncrst) -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(galaxold_state::porter) +void galaxold_state::porter(machine_config &config) +{ mooncrst(config); /* video hardware */ MCFG_VIDEO_START_OVERRIDE(galaxold_state, pisces) -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(galaxold_state::scramblb) +void galaxold_state::scramblb(machine_config &config) +{ galaxian(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(scramblb_map) + m_maincpu->set_addrmap(AS_PROGRAM, &galaxold_state::scramblb_map); /* video hardware */ m_palette->set_entries(32+2+64+1); // 32 for the characters, 2 for the bullets, 64 for the stars, 1 for background m_palette->set_init(FUNC(galaxold_state::scrambold_palette)); MCFG_VIDEO_START_OVERRIDE(galaxold_state,scrambold) -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(galaxold_state::scramb2) +void galaxold_state::scramb2(machine_config &config) +{ galaxian(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(scramb2_map) + m_maincpu->set_addrmap(AS_PROGRAM, &galaxold_state::scramb2_map); /* video hardware */ m_palette->set_entries(32+2+64+1); // 32 for the characters, 2 for the bullets, 64 for the stars, 1 for background m_palette->set_init(FUNC(galaxold_state::scrambold_palette)); MCFG_VIDEO_START_OVERRIDE(galaxold_state,scrambold) -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(galaxold_state::scramb3) +void galaxold_state::scramb3(machine_config &config) +{ scramb2(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(scramb3_map) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, &galaxold_state::scramb3_map); +} -MACHINE_CONFIG_START(galaxold_state::scrambler) +void galaxold_state::scrambler(machine_config &config) +{ galaxian(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(scrambler_map) + m_maincpu->set_addrmap(AS_PROGRAM, &galaxold_state::scrambler_map); /* video hardware */ m_palette->set_entries(32+2+64+1); // 32 for the characters, 2 for the bullets, 64 for the stars, 1 for background m_palette->set_init(FUNC(galaxold_state::scrambold_palette)); MCFG_VIDEO_START_OVERRIDE(galaxold_state,scrambold) -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(galaxold_state::guttang) +void galaxold_state::guttang(machine_config &config) +{ galaxian(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(guttang_map) + m_maincpu->set_addrmap(AS_PROGRAM, &galaxold_state::guttang_map); /* video hardware */ m_palette->set_entries(32+2+64+1); // 32 for the characters, 2 for the bullets, 64 for the stars, 1 for background @@ -2419,64 +2418,64 @@ MACHINE_CONFIG_START(galaxold_state::guttang) // m_palette->set_init(FUNC(galaxold_state::scrambold_palette)); MCFG_VIDEO_START_OVERRIDE(galaxold_state,mooncrst) -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(galaxold_state::_4in1) +void galaxold_state::_4in1(machine_config &config) +{ galaxian(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(_4in1_map) + m_maincpu->set_addrmap(AS_PROGRAM, &galaxold_state::_4in1_map); /* video hardware */ m_gfxdecode->set_info(gfx_4in1); MCFG_VIDEO_START_OVERRIDE(galaxold_state,pisces) -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(galaxold_state::bagmanmc) +void galaxold_state::bagmanmc(machine_config &config) +{ mooncrst(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(bagmanmc_map) + m_maincpu->set_addrmap(AS_PROGRAM, &galaxold_state::bagmanmc_map); MCFG_MACHINE_RESET_OVERRIDE(galaxold_state, devilfsg ) /* video hardware */ MCFG_VIDEO_START_OVERRIDE(galaxold_state, bagmanmc) -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(galaxold_state::dkongjrm) +void galaxold_state::dkongjrm(machine_config &config) +{ mooncrst(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(dkongjrm_map) + m_maincpu->set_addrmap(AS_PROGRAM, &galaxold_state::dkongjrm_map); /* video hardware */ MCFG_VIDEO_START_OVERRIDE(galaxold_state,dkongjrm) -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(galaxold_state::dkongjrmc) +void galaxold_state::dkongjrmc(machine_config &config) +{ mooncrst(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(dkongjrmc_map) + m_maincpu->set_addrmap(AS_PROGRAM, &galaxold_state::dkongjrmc_map); MCFG_VIDEO_START_OVERRIDE(galaxold_state,dkongjrmc) -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(galaxold_state::rockclim) +void galaxold_state::rockclim(machine_config &config) +{ mooncrst(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(rockclim_map) + m_maincpu->set_addrmap(AS_PROGRAM, &galaxold_state::rockclim_map); m_gfxdecode->set_info(gfx_rockclim); /* video hardware */ @@ -2484,19 +2483,18 @@ MACHINE_CONFIG_START(galaxold_state::rockclim) m_palette->set_entries(64+64+2); // 64 colors only, but still uses bullets so we need to keep the palette big m_palette->set_init(FUNC(galaxold_state::rockclim_palette)); - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_SIZE(64*8, 32*8) -MACHINE_CONFIG_END + m_screen->set_size(64*8, 32*8); +} -MACHINE_CONFIG_START(galaxold_state::ozon1) +void galaxold_state::ozon1(machine_config &config) +{ galaxold_base(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(ozon1_map) - MCFG_DEVICE_IO_MAP(ozon1_io_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", galaxold_state, nmi_line_pulse) + m_maincpu->set_addrmap(AS_PROGRAM, &galaxold_state::ozon1_map); + m_maincpu->set_addrmap(AS_IO, &galaxold_state::ozon1_io_map); + m_maincpu->set_vblank_int("screen", FUNC(galaxold_state::nmi_line_pulse)); MCFG_MACHINE_RESET_REMOVE() @@ -2506,11 +2504,11 @@ MACHINE_CONFIG_START(galaxold_state::ozon1) MCFG_VIDEO_START_OVERRIDE(galaxold_state,ozon1) AY8910(config, "aysnd", PIXEL_CLOCK/4).add_route(ALL_OUTPUTS, "speaker", 0.5); -MACHINE_CONFIG_END - +} -MACHINE_CONFIG_START(galaxold_state::drivfrcg) +void galaxold_state::drivfrcg(machine_config &config) +{ /* basic machine hardware */ s2650_device &maincpu(S2650(config, m_maincpu, MASTER_CLOCK/6)); maincpu.set_addrmap(AS_PROGRAM, &galaxold_state::drivfrcg_program); @@ -2519,13 +2517,13 @@ MACHINE_CONFIG_START(galaxold_state::drivfrcg) maincpu.sense_handler().set("screen", FUNC(screen_device::vblank)); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(16000.0/132/2) - 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(galaxold_state, screen_update_galaxold) - MCFG_SCREEN_PALETTE(m_palette) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(16000.0/132/2); + 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(galaxold_state::screen_update_galaxold)); + m_screen->set_palette(m_palette); PALETTE(config, m_palette, FUNC(galaxold_state::rockclim_palette), 64); @@ -2537,38 +2535,38 @@ MACHINE_CONFIG_START(galaxold_state::drivfrcg) SPEAKER(config, "speaker").front_center(); galaxian_audio(config); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(galaxold_state::bongo) +void galaxold_state::bongo(machine_config &config) +{ galaxold_base(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(bongo) - MCFG_DEVICE_IO_MAP(bongo_io) + m_maincpu->set_addrmap(AS_PROGRAM, &galaxold_state::bongo_map); + m_maincpu->set_addrmap(AS_IO, &galaxold_state::bongo_io); /* video hardware */ MCFG_VIDEO_START_OVERRIDE(galaxold_state,bongo) - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_DRIVER(galaxold_state, screen_update_galaxold) + + m_screen->set_screen_update(FUNC(galaxold_state::screen_update_galaxold)); /* sound hardware */ ay8910_device &aysnd(AY8910(config, "aysnd", PIXEL_CLOCK/4)); aysnd.port_a_read_callback().set_ioport("DSW1"); aysnd.add_route(ALL_OUTPUTS, "speaker", 0.5); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(galaxold_state::hunchbkg) +void galaxold_state::hunchbkg(machine_config &config) +{ galaxold_base(config); /* basic machine hardware */ - MCFG_DEVICE_REPLACE("maincpu", S2650, PIXEL_CLOCK / 4) - - MCFG_DEVICE_PROGRAM_MAP(hunchbkg) - MCFG_DEVICE_DATA_MAP(hunchbkg_data) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(galaxold_state,hunchbkg_irq_callback) + S2650(config.replace(), m_maincpu, PIXEL_CLOCK / 4); + m_maincpu->set_addrmap(AS_PROGRAM, &galaxold_state::hunchbkg_map); + m_maincpu->set_addrmap(AS_DATA, &galaxold_state::hunchbkg_data); + m_maincpu->set_irq_acknowledge_callback(FUNC(galaxold_state::hunchbkg_irq_callback)); /* the nmi line seems to be inverted on the cpu plugin board */ m_7474_9m_1->comp_output_cb().set_inputline("maincpu", S2650_SENSE_LINE); @@ -2576,115 +2574,113 @@ MACHINE_CONFIG_START(galaxold_state::hunchbkg) MCFG_MACHINE_RESET_OVERRIDE(galaxold_state,hunchbkg) galaxian_audio(config); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(galaxold_state::spcwarp) +void galaxold_state::spcwarp(machine_config &config) +{ hunchbkg(config); /* hunchbkg, but with a different memory map */ /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(spcwarp) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, &galaxold_state::spcwarp_map); +} -MACHINE_CONFIG_START(galaxold_state::tazzmang) +void galaxold_state::tazzmang(machine_config &config) +{ galaxian(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(tazzmang) -MACHINE_CONFIG_END - + m_maincpu->set_addrmap(AS_PROGRAM, &galaxold_state::tazzmang_map); +} -MACHINE_CONFIG_START(galaxold_state::racknrol) +void galaxold_state::racknrol(machine_config &config) +{ /* basic machine hardware */ s2650_device &maincpu(S2650(config, m_maincpu, PIXEL_CLOCK/2)); maincpu.set_addrmap(AS_PROGRAM, &galaxold_state::racknrol_map); maincpu.set_addrmap(AS_IO, &galaxold_state::racknrol_io); maincpu.sense_handler().set(m_screen, FUNC(screen_device::vblank)).invert(); // ??? - device = &maincpu; // FIXME: kill the following line - convert to a screen vblank callback - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", galaxold_state, hunchbks_vh_interrupt) + // FIXME: kill the following line - convert to a screen vblank callback + maincpu.set_vblank_int("screen", FUNC(galaxold_state::hunchbks_vh_interrupt)); /* video hardware */ GFXDECODE(config, m_gfxdecode, m_palette, gfx_galaxian); PALETTE(config, m_palette, FUNC(galaxold_state::rockclim_palette), 32); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) - MCFG_SCREEN_UPDATE_DRIVER(galaxold_state, screen_update_galaxold) - MCFG_SCREEN_PALETTE(m_palette) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_raw(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART); + m_screen->set_screen_update(FUNC(galaxold_state::screen_update_galaxold)); + m_screen->set_palette(m_palette); MCFG_VIDEO_START_OVERRIDE(galaxold_state,racknrol) /* sound hardware */ SPEAKER(config, "speaker").front_center(); - MCFG_DEVICE_ADD("snsnd", SN76489A, PIXEL_CLOCK/2) // SN76489AN - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0) -MACHINE_CONFIG_END - + SN76489A(config, "snsnd", PIXEL_CLOCK/2).add_route(ALL_OUTPUTS, "speaker", 1.0); // SN76489AN +} -MACHINE_CONFIG_START(galaxold_state::hexpoola) +void galaxold_state::hexpoola(machine_config &config) +{ /* basic machine hardware */ s2650_device &maincpu(S2650(config, m_maincpu, PIXEL_CLOCK/2)); maincpu.set_addrmap(AS_PROGRAM, &galaxold_state::racknrol_map); maincpu.set_addrmap(AS_IO, &galaxold_state::hexpoola_io); maincpu.set_addrmap(AS_DATA, &galaxold_state::hexpoola_data); maincpu.sense_handler().set(m_screen, FUNC(screen_device::vblank)).invert(); // ??? - device = &maincpu; // FIXME: kill the following line - convert to a screen vblank callback - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", galaxold_state, hunchbks_vh_interrupt) + // FIXME: kill the following line - convert to a screen vblank callback + maincpu.set_vblank_int("screen", FUNC(galaxold_state::hunchbks_vh_interrupt)); GFXDECODE(config, m_gfxdecode, m_palette, gfx_galaxian); PALETTE(config, m_palette, FUNC(galaxold_state::rockclim_palette), 32); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) - MCFG_SCREEN_UPDATE_DRIVER(galaxold_state, screen_update_galaxold) - MCFG_SCREEN_PALETTE(m_palette) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_raw(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART); + m_screen->set_screen_update(FUNC(galaxold_state::screen_update_galaxold)); + m_screen->set_palette(m_palette); MCFG_VIDEO_START_OVERRIDE(galaxold_state,racknrol) /* sound hardware */ SPEAKER(config, "speaker").front_center(); - MCFG_DEVICE_ADD("snsnd", SN76496, PIXEL_CLOCK/2) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0) -MACHINE_CONFIG_END + SN76496(config, "snsnd", PIXEL_CLOCK/2).add_route(ALL_OUTPUTS, "speaker", 1.0); +} -MACHINE_CONFIG_START(galaxold_state::ckongg) +void galaxold_state::ckongg(machine_config &config) +{ galaxian(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(ckongg_map) + m_maincpu->set_addrmap(AS_PROGRAM, &galaxold_state::ckongg_map); m_gfxdecode->set_info(gfx_gmgalax); MCFG_VIDEO_START_OVERRIDE(galaxold_state,ckongs) -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(galaxold_state::ckongmc) +void galaxold_state::ckongmc(machine_config &config) +{ mooncrst(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(ckongmc_map) + m_maincpu->set_addrmap(AS_PROGRAM, &galaxold_state::ckongmc_map); m_gfxdecode->set_info(gfx_gmgalax); MCFG_VIDEO_START_OVERRIDE(galaxold_state,ckongs) -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(galaxold_state::bullsdrtg) +void galaxold_state::bullsdrtg(machine_config &config) +{ hexpoola(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_DATA_MAP(bullsdrtg_data_map) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_DATA, &galaxold_state::bullsdrtg_data_map); +} /*************************************************************************** diff --git a/src/mame/drivers/gei.cpp b/src/mame/drivers/gei.cpp index 277fbaa7bd3..f6726c18c9d 100644 --- a/src/mame/drivers/gei.cpp +++ b/src/mame/drivers/gei.cpp @@ -978,19 +978,20 @@ INTERRUPT_GEN_MEMBER(gei_state::vblank_irq) } -MACHINE_CONFIG_START(gei_state::getrivia) - MCFG_DEVICE_ADD("maincpu",Z80,4000000) /* 4 MHz */ - MCFG_DEVICE_PROGRAM_MAP(getrivia_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", gei_state, vblank_irq) +void gei_state::getrivia(machine_config &config) +{ + Z80(config, m_maincpu, 4000000); /* 4 MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &gei_state::getrivia_map); + m_maincpu->set_vblank_int("screen", FUNC(gei_state::vblank_irq)); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_UPDATE_DRIVER(gei_state, screen_update) - MCFG_SCREEN_SIZE(512, 256) - MCFG_SCREEN_VISIBLE_AREA(48, 511-48, 16, 255-16) - 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(0)); + m_screen->set_screen_update(FUNC(gei_state::screen_update)); + m_screen->set_size(512, 256); + m_screen->set_visarea(48, 511-48, 16, 255-16); + m_screen->set_palette("palette"); PALETTE(config, "palette", palette_device::GBR_3BIT); @@ -1013,92 +1014,92 @@ MACHINE_CONFIG_START(gei_state::getrivia) DAC_1BIT(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 0.99); voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref", 0)); vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(gei_state::findout) +void gei_state::findout(machine_config &config) +{ getrivia(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(findout_map) + m_maincpu->set_addrmap(AS_PROGRAM, &gei_state::findout_map); m_ppi[1]->in_pc_callback().set(FUNC(gei_state::portC_r)); m_ppi[1]->out_pc_callback().set_nop(); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(gei_state::quizvid) +void gei_state::quizvid(machine_config &config) +{ findout(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(quizvid_map) + m_maincpu->set_addrmap(AS_PROGRAM, &gei_state::quizvid_map); PALETTE(config.replace(), "palette", palette_device::GRB_3BIT); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(gei_state::gselect) +void gei_state::gselect(machine_config &config) +{ getrivia(config); /* basic machine hardware */ config.device_remove("ticket"); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(gselect_map) + m_maincpu->set_addrmap(AS_PROGRAM, &gei_state::gselect_map); m_ppi[0]->out_pc_callback().set(FUNC(gei_state::sound2_w)); m_ppi[1]->in_pc_callback().set_ioport("IN2"); m_ppi[1]->out_pc_callback().set(FUNC(gei_state::nmi_w)); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(gei_state::jokpokera) +void gei_state::jokpokera(machine_config &config) +{ getrivia(config); /* basic machine hardware */ config.device_remove("ticket"); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(gselect_map) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, &gei_state::gselect_map); +} -MACHINE_CONFIG_START(gei_state::amuse) +void gei_state::amuse(machine_config &config) +{ getrivia(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(amuse_map) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, &gei_state::amuse_map); +} -MACHINE_CONFIG_START(gei_state::gepoker) +void gei_state::gepoker(machine_config &config) +{ getrivia(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(gepoker_map) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, &gei_state::gepoker_map); +} -MACHINE_CONFIG_START(gei_state::amuse1) +void gei_state::amuse1(machine_config &config) +{ getrivia(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(amuse1_map) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, &gei_state::amuse1_map); +} -MACHINE_CONFIG_START(gei_state::suprpokr) +void gei_state::suprpokr(machine_config &config) +{ getrivia(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(suprpokr_map) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, &gei_state::suprpokr_map); +} -MACHINE_CONFIG_START(gei_state::sprtauth) +void gei_state::sprtauth(machine_config &config) +{ getrivia(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(sprtauth_map) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, &gei_state::sprtauth_map); +} /*************************************************** diff --git a/src/mame/drivers/genpc.cpp b/src/mame/drivers/genpc.cpp index 39118e5dfc7..da5d14d25b9 100644 --- a/src/mame/drivers/genpc.cpp +++ b/src/mame/drivers/genpc.cpp @@ -54,21 +54,22 @@ static DEVICE_INPUT_DEFAULTS_START(vga) DEVICE_INPUT_DEFAULTS("DSW0",0x30, 0x00) DEVICE_INPUT_DEFAULTS_END -MACHINE_CONFIG_START(genpc_state::pcmda) +void genpc_state::pcmda(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", I8088, 4772720) - MCFG_DEVICE_PROGRAM_MAP(pc8_map) - MCFG_DEVICE_IO_MAP(pc8_io) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("mb:pic8259", pic8259_device, inta_cb) + I8088(config, m_maincpu, 4772720); + m_maincpu->set_addrmap(AS_PROGRAM, &genpc_state::pc8_map); + m_maincpu->set_addrmap(AS_IO, &genpc_state::pc8_io); + m_maincpu->set_irq_acknowledge_callback("mb:pic8259", FUNC(pic8259_device::inta_cb)); IBM5160_MOTHERBOARD(config, "mb", 0).set_cputag(m_maincpu); - MCFG_DEVICE_ADD("isa1", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "mda", false) // FIXME: determine ISA bus clock - MCFG_DEVICE_ADD("isa2", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "com", false) - MCFG_DEVICE_ADD("isa3", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "fdc_xt", false) - MCFG_DEVICE_ADD("isa4", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "hdc", false) - MCFG_DEVICE_ADD("isa5", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "adlib", 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, "mda", false); // FIXME: determine ISA bus clock + ISA8_SLOT(config, "isa2", 0, "mb:isa", pc_isa8_cards, "com", false); + ISA8_SLOT(config, "isa3", 0, "mb:isa", pc_isa8_cards, "fdc_xt", false); + ISA8_SLOT(config, "isa4", 0, "mb:isa", pc_isa8_cards, "hdc", false); + ISA8_SLOT(config, "isa5", 0, "mb:isa", pc_isa8_cards, "adlib", false); + ISA8_SLOT(config, "isa6", 0, "mb:isa", pc_isa8_cards, nullptr, false); /* keyboard */ PC_KBDC_SLOT(config, "kbd", pc_xt_keyboards, STR_KBD_IBM_PC_XT_83).set_pc_kbdc_slot(subdevice("mb:pc_kbdc")); @@ -78,37 +79,37 @@ MACHINE_CONFIG_START(genpc_state::pcmda) /* software lists */ SOFTWARE_LIST(config, "disk_list").set_original("ibm5150"); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(genpc_state::pcherc) +void genpc_state::pcherc(machine_config &config) +{ pcmda(config); - MCFG_DEVICE_MODIFY("isa1") - MCFG_DEVICE_SLOT_INTERFACE(pc_isa8_cards, "hercules", false) -MACHINE_CONFIG_END + subdevice<isa8_slot_device>("isa1")->set_default_option("hercules"); +} -MACHINE_CONFIG_START(genpc_state::pccga) +void genpc_state::pccga(machine_config &config) +{ pcmda(config); subdevice<ibm5160_mb_device>("mb")->set_input_default(DEVICE_INPUT_DEFAULTS_NAME(cga)); - MCFG_DEVICE_MODIFY("isa1") - MCFG_DEVICE_SLOT_INTERFACE(pc_isa8_cards, "cga", false) -MACHINE_CONFIG_END + subdevice<isa8_slot_device>("isa1")->set_default_option("cga"); +} -MACHINE_CONFIG_START(genpc_state::pcega) +void genpc_state::pcega(machine_config &config) +{ pccga(config); - MCFG_DEVICE_MODIFY("isa1") - MCFG_DEVICE_SLOT_INTERFACE(pc_isa8_cards, "ega", false) + subdevice<isa8_slot_device>("isa1")->set_default_option("ega"); subdevice<ibm5160_mb_device>("mb")->set_input_default(DEVICE_INPUT_DEFAULTS_NAME(vga)); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(genpc_state::pcvga) +void genpc_state::pcvga(machine_config &config) +{ pcega(config); - MCFG_DEVICE_MODIFY("isa1") - MCFG_DEVICE_SLOT_INTERFACE(pc_isa8_cards, "vga", false) -MACHINE_CONFIG_END + subdevice<isa8_slot_device>("isa1")->set_default_option("vga"); +} ROM_START(pc) ROM_REGION(0x02000, "bios", 0) diff --git a/src/mame/drivers/goldstar.cpp b/src/mame/drivers/goldstar.cpp index ddc95ac1df3..199eb02f203 100644 --- a/src/mame/drivers/goldstar.cpp +++ b/src/mame/drivers/goldstar.cpp @@ -8443,22 +8443,22 @@ WRITE8_MEMBER(goldstar_state::ay8910_outputb_w) } -MACHINE_CONFIG_START(goldstar_state::goldstar) - +void goldstar_state::goldstar(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, CPU_CLOCK) - MCFG_DEVICE_PROGRAM_MAP(goldstar_map) - MCFG_DEVICE_IO_MAP(goldstar_readport) + Z80(config, m_maincpu, CPU_CLOCK); + m_maincpu->set_addrmap(AS_PROGRAM, &goldstar_state::goldstar_map); + m_maincpu->set_addrmap(AS_IO, &goldstar_state::goldstar_readport); /* 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, 64*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar) - MCFG_SCREEN_PALETTE(m_palette) - MCFG_SCREEN_VBLANK_CALLBACK(HOLDLINE("maincpu", 0)) + 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, 64*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(goldstar_state::screen_update_goldstar)); + screen.set_palette(m_palette); + screen.screen_vblank().set_inputline(m_maincpu, 0, HOLD_LINE); GFXDECODE(config, m_gfxdecode, m_palette, gfx_goldstar); PALETTE(config, m_palette).set_format(palette_device::BGR_233, 256); @@ -8473,28 +8473,26 @@ MACHINE_CONFIG_START(goldstar_state::goldstar) aysnd.port_b_read_callback().set_ioport("DSW3"); aysnd.add_route(ALL_OUTPUTS, "mono", 0.50); - MCFG_DEVICE_ADD("oki", OKIM6295, OKI_CLOCK, okim6295_device::PIN7_HIGH) /* clock frequency & pin 7 not verified */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - -MACHINE_CONFIG_END - + OKIM6295(config, "oki", OKI_CLOCK, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 1.0); /* clock frequency & pin 7 not verified */ +} -MACHINE_CONFIG_START(goldstar_state::goldstbl) +void goldstar_state::goldstbl(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, CPU_CLOCK) - MCFG_DEVICE_PROGRAM_MAP(goldstar_map) - MCFG_DEVICE_IO_MAP(goldstar_readport) + Z80(config, m_maincpu, CPU_CLOCK); + m_maincpu->set_addrmap(AS_PROGRAM, &goldstar_state::goldstar_map); + m_maincpu->set_addrmap(AS_IO, &goldstar_state::goldstar_readport); /* 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, 64*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar) - MCFG_SCREEN_PALETTE(m_palette) - MCFG_SCREEN_VBLANK_CALLBACK(HOLDLINE("maincpu", 0)) + 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, 64*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(goldstar_state::screen_update_goldstar)); + screen.set_palette(m_palette); + screen.screen_vblank().set_inputline(m_maincpu, 0, HOLD_LINE); GFXDECODE(config, m_gfxdecode, m_palette, gfx_bl); PALETTE(config, m_palette).set_format(palette_device::BGR_233, 256); @@ -8509,9 +8507,8 @@ MACHINE_CONFIG_START(goldstar_state::goldstbl) aysnd.port_b_read_callback().set_ioport("DSW3"); aysnd.add_route(ALL_OUTPUTS, "mono", 0.50); - MCFG_DEVICE_ADD("oki", OKIM6295, OKI_CLOCK, okim6295_device::PIN7_HIGH) /* clock frequency & pin 7 not verified */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_CONFIG_END + OKIM6295(config, "oki", OKI_CLOCK, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 1.0); /* clock frequency & pin 7 not verified */ +} void goldstar_state::moonlght(machine_config &config) { @@ -8526,22 +8523,22 @@ void goldstar_state::goldfrui(machine_config &config) } -MACHINE_CONFIG_START(sanghopm_state::star100) - +void sanghopm_state::star100(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, CPU_CLOCK) - MCFG_DEVICE_PROGRAM_MAP(star100_map) - MCFG_DEVICE_IO_MAP(star100_readport) + Z80(config, m_maincpu, CPU_CLOCK); + m_maincpu->set_addrmap(AS_PROGRAM, &sanghopm_state::star100_map); + m_maincpu->set_addrmap(AS_IO, &sanghopm_state::star100_readport); /* 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, 64*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(sanghopm_state, screen_update_sangho) - MCFG_SCREEN_PALETTE(m_palette) - MCFG_SCREEN_VBLANK_CALLBACK(HOLDLINE("maincpu", 0)) + 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, 64*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(sanghopm_state::screen_update_sangho)); + screen.set_palette(m_palette); + screen.screen_vblank().set_inputline(m_maincpu, 0, HOLD_LINE); PALETTE(config, m_palette).set_entries(0x100); RAMDAC(config, "ramdac", 0, "palette").set_addrmap(0, &sanghopm_state::ramdac_map); @@ -8559,30 +8556,28 @@ MACHINE_CONFIG_START(sanghopm_state::star100) aysnd.port_b_read_callback().set_ioport("DSW6"); aysnd.add_route(ALL_OUTPUTS, "mono", 0.50); - MCFG_DEVICE_ADD("oki", OKIM6295, OKI_CLOCK, okim6295_device::PIN7_HIGH) /* clock frequency & pin 7 not verified */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - -MACHINE_CONFIG_END - + OKIM6295(config, "oki", OKI_CLOCK, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 1.0); /* clock frequency & pin 7 not verified */ +} -MACHINE_CONFIG_START(goldstar_state::super9) +void goldstar_state::super9(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, CPU_CLOCK) - MCFG_DEVICE_PROGRAM_MAP(goldstar_map) -// MCFG_DEVICE_PROGRAM_MAP(nfm_map) - MCFG_DEVICE_IO_MAP(goldstar_readport) -// MCFG_DEVICE_IO_MAP(unkch_portmap) + Z80(config, m_maincpu, CPU_CLOCK); + m_maincpu->set_addrmap(AS_PROGRAM, &goldstar_state::goldstar_map); +// m_maincpu->set_addrmap(AS_PROGRAM, &goldstar_state::nfm_map); + m_maincpu->set_addrmap(AS_IO, &goldstar_state::goldstar_readport); +// m_maincpu->set_addrmap(AS_IO, &goldstar_state::unkch_portmap); /* 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, 64*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar) - MCFG_SCREEN_PALETTE(m_palette) - MCFG_SCREEN_VBLANK_CALLBACK(HOLDLINE("maincpu", 0)) + 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, 64*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(goldstar_state::screen_update_goldstar)); + screen.set_palette(m_palette); + screen.screen_vblank().set_inputline(m_maincpu, 0, HOLD_LINE); GFXDECODE(config, m_gfxdecode, m_palette, gfx_super9); PALETTE(config, m_palette).set_format(palette_device::BGR_233, 256); @@ -8597,9 +8592,8 @@ MACHINE_CONFIG_START(goldstar_state::super9) aysnd.port_b_read_callback().set_ioport("DSW3"); aysnd.add_route(ALL_OUTPUTS, "mono", 0.50); - MCFG_DEVICE_ADD("oki", OKIM6295, OKI_CLOCK, okim6295_device::PIN7_HIGH) /* clock frequency & pin 7 not verified */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_CONFIG_END + OKIM6295(config, "oki", OKI_CLOCK, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 1.0); /* clock frequency & pin 7 not verified */ +} void goldstar_state::cm_palette(palette_device &palette) const @@ -8647,12 +8641,12 @@ void goldstar_state::lucky8_palette(palette_device &palette) const } -MACHINE_CONFIG_START(cb3_state::ncb3) - +void cb3_state::ncb3(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, CPU_CLOCK) - MCFG_DEVICE_PROGRAM_MAP(ncb3_map) - MCFG_DEVICE_IO_MAP(ncb3_readwriteport) + Z80(config, m_maincpu, CPU_CLOCK); + m_maincpu->set_addrmap(AS_PROGRAM, &cb3_state::ncb3_map); + m_maincpu->set_addrmap(AS_IO, &cb3_state::ncb3_readwriteport); I8255A(config, m_ppi[0]); m_ppi[0]->in_pa_callback().set_ioport("IN0"); @@ -8667,14 +8661,14 @@ MACHINE_CONFIG_START(cb3_state::ncb3) m_ppi[2]->in_pa_callback().set_ioport("DSW2"); /* 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, 64*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar) - MCFG_SCREEN_PALETTE(m_palette) - MCFG_SCREEN_VBLANK_CALLBACK(HOLDLINE("maincpu", 0)) + 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, 64*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(goldstar_state::screen_update_goldstar)); + screen.set_palette(m_palette); + screen.screen_vblank().set_inputline(m_maincpu, 0, HOLD_LINE); GFXDECODE(config, m_gfxdecode, m_palette, gfx_ncb3); PALETTE(config, m_palette, FUNC(goldstar_state::cm_palette), 256); @@ -8686,14 +8680,13 @@ MACHINE_CONFIG_START(cb3_state::ncb3) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("snsnd", SN76489, PSG_CLOCK) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) + SN76489(config, "snsnd", PSG_CLOCK).add_route(ALL_OUTPUTS, "mono", 0.80); ay8910_device &aysnd(AY8910(config, "aysnd", AY_CLOCK)); aysnd.port_a_read_callback().set_ioport("DSW4"); aysnd.port_b_read_callback().set_ioport("DSW3"); aysnd.add_route(ALL_OUTPUTS, "mono", 0.50); -MACHINE_CONFIG_END +} void cb3_state::cb3c(machine_config &config) { @@ -8726,12 +8719,12 @@ void cb3_state::cm97(machine_config &config) } -MACHINE_CONFIG_START(goldstar_state::wcherry) - +void goldstar_state::wcherry(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, CPU_CLOCK) - MCFG_DEVICE_PROGRAM_MAP(wcherry_map) - MCFG_DEVICE_IO_MAP(wcherry_readwriteport) + Z80(config, m_maincpu, CPU_CLOCK); + m_maincpu->set_addrmap(AS_PROGRAM, &goldstar_state::wcherry_map); + m_maincpu->set_addrmap(AS_IO, &goldstar_state::wcherry_readwriteport); I8255A(config, m_ppi[0]); m_ppi[0]->in_pa_callback().set_ioport("IN0"); @@ -8746,14 +8739,14 @@ MACHINE_CONFIG_START(goldstar_state::wcherry) m_ppi[2]->in_pa_callback().set_ioport("DSW2"); /* 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, 64*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar) - MCFG_SCREEN_PALETTE(m_palette) - MCFG_SCREEN_VBLANK_CALLBACK(HOLDLINE("maincpu", 0)) + 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, 64*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(goldstar_state::screen_update_goldstar)); + screen.set_palette(m_palette); + screen.screen_vblank().set_inputline(m_maincpu, 0, HOLD_LINE); GFXDECODE(config, m_gfxdecode, m_palette, gfx_cb3e); PALETTE(config, m_palette, FUNC(goldstar_state::cm_palette), 256); @@ -8764,22 +8757,21 @@ MACHINE_CONFIG_START(goldstar_state::wcherry) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("snsnd", SN76489, PSG_CLOCK) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) + SN76489(config, "snsnd", PSG_CLOCK).add_route(ALL_OUTPUTS, "mono", 0.80); ay8910_device &aysnd(AY8910(config, "aysnd", AY_CLOCK)); aysnd.port_a_read_callback().set_ioport("DSW4"); aysnd.port_b_read_callback().set_ioport("DSW3"); aysnd.add_route(ALL_OUTPUTS, "mono", 0.50); -MACHINE_CONFIG_END - +} -MACHINE_CONFIG_START(cmaster_state::cm) +void cmaster_state::cm(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, CPU_CLOCK) - MCFG_DEVICE_PROGRAM_MAP(cm_map) - MCFG_DEVICE_IO_MAP(cm_portmap) + Z80(config, m_maincpu, CPU_CLOCK); + m_maincpu->set_addrmap(AS_PROGRAM, &cmaster_state::cm_map); + m_maincpu->set_addrmap(AS_IO, &cmaster_state::cm_portmap); I8255A(config, m_ppi[0]); m_ppi[0]->in_pa_callback().set_ioport("IN0"); @@ -8792,14 +8784,14 @@ MACHINE_CONFIG_START(cmaster_state::cm) m_ppi[1]->in_pc_callback().set_ioport("DSW3"); /* 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, 64*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar) - MCFG_SCREEN_PALETTE(m_palette) - MCFG_SCREEN_VBLANK_CALLBACK(HOLDLINE("maincpu", 0)) + 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, 64*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(goldstar_state::screen_update_goldstar)); + screen.set_palette(m_palette); + screen.screen_vblank().set_inputline(m_maincpu, 0, HOLD_LINE); GFXDECODE(config, m_gfxdecode, m_palette, gfx_cmbitmap); PALETTE(config, m_palette, FUNC(goldstar_state::cm_palette), 256); @@ -8813,7 +8805,7 @@ MACHINE_CONFIG_START(cmaster_state::cm) aysnd.port_a_read_callback().set_ioport("DSW4"); aysnd.port_b_read_callback().set_ioport("DSW5"); aysnd.add_route(ALL_OUTPUTS, "mono", 0.50); -MACHINE_CONFIG_END +} void cmaster_state::cmasterc(machine_config &config) { @@ -8822,12 +8814,12 @@ void cmaster_state::cmasterc(machine_config &config) } -MACHINE_CONFIG_START(goldstar_state::cmast91) - +void goldstar_state::cmast91(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, CPU_CLOCK) - MCFG_DEVICE_PROGRAM_MAP(cm_map) - MCFG_DEVICE_IO_MAP(cmast91_portmap) + Z80(config, m_maincpu, CPU_CLOCK); + m_maincpu->set_addrmap(AS_PROGRAM, &goldstar_state::cm_map); + m_maincpu->set_addrmap(AS_IO, &goldstar_state::cmast91_portmap); I8255A(config, m_ppi[0]); m_ppi[0]->in_pa_callback().set_ioport("IN0"); @@ -8840,14 +8832,14 @@ MACHINE_CONFIG_START(goldstar_state::cmast91) m_ppi[1]->in_pc_callback().set_ioport("DSW3"); /* 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, 64*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_cmast91) - MCFG_SCREEN_PALETTE(m_palette) - MCFG_SCREEN_VBLANK_CALLBACK(HOLDLINE("maincpu", 0)) + 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, 64*8-1, 1*8, 31*8-1); + screen.set_screen_update(FUNC(goldstar_state::screen_update_cmast91)); + screen.set_palette(m_palette); + screen.screen_vblank().set_inputline(m_maincpu, 0, HOLD_LINE); GFXDECODE(config, m_gfxdecode, m_palette, gfx_cmast91); PALETTE(config, m_palette, FUNC(goldstar_state::cmast91_palette), 256); @@ -8861,7 +8853,7 @@ MACHINE_CONFIG_START(goldstar_state::cmast91) aysnd.port_a_read_callback().set_ioport("DSW4"); aysnd.port_b_read_callback().set_ioport("DSW5"); aysnd.add_route(ALL_OUTPUTS, "mono", 0.50); -MACHINE_CONFIG_END +} @@ -8871,12 +8863,12 @@ WRITE_LINE_MEMBER(wingco_state::masked_irq) m_maincpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE); } -MACHINE_CONFIG_START(wingco_state::lucky8) - +void wingco_state::lucky8(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, CPU_CLOCK) - MCFG_DEVICE_PROGRAM_MAP(lucky8_map) - //MCFG_DEVICE_IO_MAP(goldstar_readport) + Z80(config, m_maincpu, CPU_CLOCK); + m_maincpu->set_addrmap(AS_PROGRAM, &wingco_state::lucky8_map); + //->m_maincpu->set_addrmap(AS_IO, &wingco_state::goldstar_readport); I8255A(config, m_ppi[0]); m_ppi[0]->in_pa_callback().set_ioport("IN0"); @@ -8895,14 +8887,14 @@ MACHINE_CONFIG_START(wingco_state::lucky8) m_ppi[2]->out_pc_callback().set(FUNC(wingco_state::system_outputc_w)); /* 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, 64*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar) - MCFG_SCREEN_PALETTE(m_palette) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, wingco_state, masked_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(64*8, 32*8); + screen.set_visarea(0*8, 64*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(goldstar_state::screen_update_goldstar)); + screen.set_palette(m_palette); + screen.screen_vblank().set(FUNC(wingco_state::masked_irq)); GFXDECODE(config, m_gfxdecode, m_palette, gfx_ncb3); PALETTE(config, m_palette, FUNC(goldstar_state::lucky8_palette)).set_format(palette_device::BGR_233, 256); @@ -8913,8 +8905,7 @@ MACHINE_CONFIG_START(wingco_state::lucky8) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("snsnd", SN76489, PSG_CLOCK) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) + SN76489(config, "snsnd", PSG_CLOCK).add_route(ALL_OUTPUTS, "mono", 0.80); ym2149_device &aysnd(YM2149(config, "aysnd", AY_CLOCK)); aysnd.port_a_read_callback().set_ioport("DSW3"); @@ -8922,14 +8913,14 @@ MACHINE_CONFIG_START(wingco_state::lucky8) aysnd.port_a_write_callback().set(FUNC(goldstar_state::ay8910_outputa_w)); aysnd.port_b_write_callback().set(FUNC(goldstar_state::ay8910_outputb_w)); aysnd.add_route(ALL_OUTPUTS, "mono", 0.50); -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(wingco_state::bingowng) +} +void wingco_state::bingowng(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, CPU_CLOCK) - MCFG_DEVICE_PROGRAM_MAP(lucky8_map) - //MCFG_DEVICE_IO_MAP(goldstar_readport) + Z80(config, m_maincpu, CPU_CLOCK); + m_maincpu->set_addrmap(AS_PROGRAM, &wingco_state::lucky8_map); + //m_maincpu->set_addrmap(AS_IO, &wingco_state::goldstar_readport); I8255A(config, m_ppi[0]); m_ppi[0]->in_pa_callback().set_ioport("IN0"); @@ -8948,14 +8939,14 @@ MACHINE_CONFIG_START(wingco_state::bingowng) m_ppi[2]->out_pc_callback().set(FUNC(wingco_state::system_outputc_w)); /* 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, 64*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(wingco_state, screen_update_bingowng) - MCFG_SCREEN_PALETTE(m_palette) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, wingco_state, masked_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(64*8, 32*8); + screen.set_visarea(0*8, 64*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(wingco_state::screen_update_bingowng)); + screen.set_palette(m_palette); + screen.screen_vblank().set(FUNC(wingco_state::masked_irq)); GFXDECODE(config, m_gfxdecode, m_palette, gfx_ncb3); PALETTE(config, m_palette, FUNC(goldstar_state::lucky8_palette), 256); @@ -8966,8 +8957,7 @@ MACHINE_CONFIG_START(wingco_state::bingowng) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("snsnd", SN76489, PSG_CLOCK) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) + SN76489(config, "snsnd", PSG_CLOCK).add_route(ALL_OUTPUTS, "mono", 0.80); ay8910_device &aysnd(AY8910(config, "aysnd", AY_CLOCK)); aysnd.port_a_read_callback().set_ioport("DSW3"); @@ -8975,7 +8965,7 @@ MACHINE_CONFIG_START(wingco_state::bingowng) aysnd.port_a_write_callback().set(FUNC(goldstar_state::ay8910_outputa_w)); aysnd.port_b_write_callback().set(FUNC(goldstar_state::ay8910_outputb_w)); aysnd.add_route(ALL_OUTPUTS, "mono", 0.50); -MACHINE_CONFIG_END +} void wingco_state::bingownga(machine_config &config) { @@ -8984,54 +8974,53 @@ void wingco_state::bingownga(machine_config &config) } -MACHINE_CONFIG_START(wingco_state::flam7_w4) +void wingco_state::flam7_w4(machine_config &config) +{ lucky8(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(flaming7_map) + m_maincpu->set_addrmap(AS_PROGRAM, &wingco_state::flaming7_map); m_ppi[0]->out_pc_callback().set(FUNC(wingco_state::fl7w4_outc802_w)); - MCFG_DEVICE_ADD(m_fl7w4_id, DS2401) -MACHINE_CONFIG_END + DS2401(config, m_fl7w4_id); +} -MACHINE_CONFIG_START(wingco_state::flaming7) +void wingco_state::flaming7(machine_config &config) +{ lucky8(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(flaming7_map) + m_maincpu->set_addrmap(AS_PROGRAM, &wingco_state::flaming7_map); m_gfxdecode->set_info(gfx_flaming7); // to do serial protection. m_ppi[0]->out_pc_callback().set(FUNC(wingco_state::fl7w4_outc802_w)); - MCFG_DEVICE_ADD(m_fl7w4_id, DS2401) -MACHINE_CONFIG_END + DS2401(config, m_fl7w4_id); +} -MACHINE_CONFIG_START(wingco_state::flam7_tw) +void wingco_state::flam7_tw(machine_config &config) +{ lucky8(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(flaming7_map) + m_maincpu->set_addrmap(AS_PROGRAM, &wingco_state::flaming7_map); m_gfxdecode->set_info(gfx_flam7_tw); // to do serial protection. m_ppi[0]->out_pc_callback().set(FUNC(wingco_state::fl7w4_outc802_w)); - MCFG_DEVICE_ADD(m_fl7w4_id, DS2401) -MACHINE_CONFIG_END + DS2401(config, m_fl7w4_id); +} -MACHINE_CONFIG_START(wingco_state::mbstar) +void wingco_state::mbstar(machine_config &config) +{ lucky8(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(mbstar_map) + m_maincpu->set_addrmap(AS_PROGRAM, &wingco_state::mbstar_map); - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_DRIVER(wingco_state, screen_update_mbstar) -MACHINE_CONFIG_END + subdevice<screen_device>("screen")->set_screen_update(FUNC(wingco_state::screen_update_mbstar)); +} @@ -9048,12 +9037,12 @@ void wingco_state::magodds_palette(palette_device &palette) const } } -MACHINE_CONFIG_START(wingco_state::magodds) - +void wingco_state::magodds(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, CPU_CLOCK) - MCFG_DEVICE_PROGRAM_MAP(magodds_map) - //MCFG_DEVICE_IO_MAP(goldstar_readport) + Z80(config, m_maincpu, CPU_CLOCK); + m_maincpu->set_addrmap(AS_PROGRAM, &wingco_state::magodds_map); + //m_maincpu->set_addrmap(AS_IO, &wingco_state::goldstar_readport); I8255A(config, m_ppi[0]); m_ppi[0]->in_pa_callback().set_ioport("IN0"); @@ -9072,14 +9061,14 @@ MACHINE_CONFIG_START(wingco_state::magodds) m_ppi[2]->out_pc_callback().set(FUNC(wingco_state::system_outputc_w)); /* 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, 64*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(wingco_state, screen_update_magical) - MCFG_SCREEN_PALETTE(m_palette) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, wingco_state, masked_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(64*8, 32*8); + screen.set_visarea(0*8, 64*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(wingco_state::screen_update_magical)); + screen.set_palette(m_palette); + screen.screen_vblank().set(FUNC(wingco_state::masked_irq)); GFXDECODE(config, m_gfxdecode, m_palette, gfx_magodds); PALETTE(config, m_palette, FUNC(wingco_state::magodds_palette), 256); @@ -9090,8 +9079,7 @@ MACHINE_CONFIG_START(wingco_state::magodds) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("snsnd", SN76489, PSG_CLOCK) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.00) // shut up annoying whine + SN76489(config, "snsnd", PSG_CLOCK).add_route(ALL_OUTPUTS, "mono", 0.00); // shut up annoying whine ay8910_device &aysnd(AY8910(config, "aysnd", AY_CLOCK)); aysnd.port_a_read_callback().set_ioport("DSW3"); @@ -9099,15 +9087,15 @@ MACHINE_CONFIG_START(wingco_state::magodds) aysnd.port_a_write_callback().set(FUNC(goldstar_state::ay8910_outputa_w)); aysnd.port_b_write_callback().set(FUNC(goldstar_state::ay8910_outputb_w)); aysnd.add_route(ALL_OUTPUTS, "mono", 0.80); -MACHINE_CONFIG_END - +} -MACHINE_CONFIG_START(goldstar_state::kkotnoli) +void goldstar_state::kkotnoli(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, CPU_CLOCK) - MCFG_DEVICE_PROGRAM_MAP(kkotnoli_map) - //MCFG_DEVICE_IO_MAP(goldstar_readport) + Z80(config, m_maincpu, CPU_CLOCK); + m_maincpu->set_addrmap(AS_PROGRAM, &goldstar_state::kkotnoli_map); + //m_maincpu->set_addrmap(AS_IO, &goldstar_state::goldstar_readport); I8255A(config, m_ppi[0]); m_ppi[0]->in_pa_callback().set_ioport("IN0"); @@ -9122,14 +9110,14 @@ MACHINE_CONFIG_START(goldstar_state::kkotnoli) m_ppi[2]->in_pa_callback().set_ioport("DSW1"); /* 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, 64*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar) - MCFG_SCREEN_PALETTE(m_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(64*8, 32*8); + screen.set_visarea(0*8, 64*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(goldstar_state::screen_update_goldstar)); + screen.set_palette(m_palette); + screen.screen_vblank().set_inputline(m_maincpu, INPUT_LINE_NMI); GFXDECODE(config, m_gfxdecode, m_palette, gfx_ncb3); PALETTE(config, m_palette, FUNC(goldstar_state::lucky8_palette), 256); @@ -9139,18 +9127,16 @@ MACHINE_CONFIG_START(goldstar_state::kkotnoli) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("snsnd", SN76489, PSG_CLOCK) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) - -MACHINE_CONFIG_END - + SN76489(config, "snsnd", PSG_CLOCK).add_route(ALL_OUTPUTS, "mono", 0.80); +} -MACHINE_CONFIG_START(goldstar_state::ladylinr) +void goldstar_state::ladylinr(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, CPU_CLOCK) - MCFG_DEVICE_PROGRAM_MAP(ladylinr_map) - //MCFG_DEVICE_IO_MAP(goldstar_readport) + Z80(config, m_maincpu, CPU_CLOCK); + m_maincpu->set_addrmap(AS_PROGRAM, &goldstar_state::ladylinr_map); + //m_maincpu->set_addrmap(AS_IO, &goldstar_state::goldstar_readport); I8255A(config, m_ppi[0]); m_ppi[0]->in_pa_callback().set_ioport("IN0"); @@ -9161,14 +9147,14 @@ MACHINE_CONFIG_START(goldstar_state::ladylinr) m_ppi[1]->in_pa_callback().set_ioport("DSW1"); /* 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, 64*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar) - MCFG_SCREEN_PALETTE(m_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(64*8, 32*8); + screen.set_visarea(0*8, 64*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(goldstar_state::screen_update_goldstar)); + screen.set_palette(m_palette); + screen.screen_vblank().set_inputline(m_maincpu, INPUT_LINE_NMI); GFXDECODE(config, m_gfxdecode, m_palette, gfx_ncb3); PALETTE(config, m_palette, FUNC(goldstar_state::lucky8_palette), 256); @@ -9179,19 +9165,18 @@ MACHINE_CONFIG_START(goldstar_state::ladylinr) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("snsnd", SN76489, PSG_CLOCK) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) + SN76489(config, "snsnd", PSG_CLOCK).add_route(ALL_OUTPUTS, "mono", 0.80); AY8930(config, "aysnd", AY_CLOCK).add_route(ALL_OUTPUTS, "mono", 0.50); // unused? -MACHINE_CONFIG_END - +} -MACHINE_CONFIG_START(wingco_state::wcat3) +void wingco_state::wcat3(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, CPU_CLOCK) - MCFG_DEVICE_PROGRAM_MAP(wcat3_map) - //MCFG_DEVICE_IO_MAP(goldstar_readport) + Z80(config, m_maincpu, CPU_CLOCK); + m_maincpu->set_addrmap(AS_PROGRAM, &wingco_state::wcat3_map); + //m_maincpu->set_addrmap(AS_IO, &wingco_state::goldstar_readport); I8255A(config, m_ppi[0]); m_ppi[0]->in_pa_callback().set_ioport("IN0"); @@ -9210,14 +9195,14 @@ MACHINE_CONFIG_START(wingco_state::wcat3) m_ppi[2]->out_pc_callback().set(FUNC(wingco_state::system_outputc_w)); /* 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, 64*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar) - MCFG_SCREEN_PALETTE(m_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(64*8, 32*8); + screen.set_visarea(0*8, 64*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(goldstar_state::screen_update_goldstar)); + screen.set_palette(m_palette); + screen.screen_vblank().set_inputline(m_maincpu, INPUT_LINE_NMI); GFXDECODE(config, m_gfxdecode, m_palette, gfx_ncb3); PALETTE(config, m_palette, FUNC(goldstar_state::lucky8_palette), 256); @@ -9228,8 +9213,7 @@ MACHINE_CONFIG_START(wingco_state::wcat3) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("snsnd", SN76489, PSG_CLOCK) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) + SN76489(config, "snsnd", PSG_CLOCK).add_route(ALL_OUTPUTS, "mono", 0.80); ay8910_device &aysnd(AY8910(config, "aysnd", AY_CLOCK)); aysnd.port_a_read_callback().set_ioport("DSW3"); @@ -9237,17 +9221,16 @@ MACHINE_CONFIG_START(wingco_state::wcat3) aysnd.port_a_write_callback().set(FUNC(goldstar_state::ay8910_outputa_w)); aysnd.port_b_write_callback().set(FUNC(goldstar_state::ay8910_outputb_w)); aysnd.add_route(ALL_OUTPUTS, "mono", 0.50); - -MACHINE_CONFIG_END +} /* diff with cm machine driver: gfxdecode, OKI & portmap */ -MACHINE_CONFIG_START(cmaster_state::amcoe1) - +void cmaster_state::amcoe1(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, CPU_CLOCK) - MCFG_DEVICE_PROGRAM_MAP(cm_map) - MCFG_DEVICE_IO_MAP(amcoe1_portmap) + Z80(config, m_maincpu, CPU_CLOCK); + m_maincpu->set_addrmap(AS_PROGRAM, &cmaster_state::cm_map); + m_maincpu->set_addrmap(AS_IO, &cmaster_state::amcoe1_portmap); I8255A(config, m_ppi[0]); m_ppi[0]->in_pa_callback().set_ioport("IN0"); @@ -9260,14 +9243,14 @@ MACHINE_CONFIG_START(cmaster_state::amcoe1) m_ppi[1]->in_pc_callback().set_ioport("DSW3"); /* 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, 64*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar) - MCFG_SCREEN_PALETTE(m_palette) - MCFG_SCREEN_VBLANK_CALLBACK(HOLDLINE("maincpu", 0)) + 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, 64*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(goldstar_state::screen_update_goldstar)); + screen.set_palette(m_palette); + screen.screen_vblank().set_inputline(m_maincpu, 0, HOLD_LINE); GFXDECODE(config, m_gfxdecode, m_palette, gfx_cm); PALETTE(config, m_palette, FUNC(goldstar_state::cm_palette), 256); @@ -9282,28 +9265,27 @@ MACHINE_CONFIG_START(cmaster_state::amcoe1) aysnd.port_b_read_callback().set_ioport("DSW5"); aysnd.add_route(ALL_OUTPUTS, "mono", 0.50); - MCFG_DEVICE_ADD("oki", OKIM6295, OKI_CLOCK, okim6295_device::PIN7_HIGH) /* clock frequency & pin 7 not verified */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_CONFIG_END + OKIM6295(config, "oki", OKI_CLOCK, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 1.0); /* clock frequency & pin 7 not verified */ +} /* diff with cm machine driver: gfxdecode, OKI, portmap & tilemaps rect size/position */ -MACHINE_CONFIG_START(cmaster_state::amcoe1a) +void cmaster_state::amcoe1a(machine_config &config) +{ amcoe1(config); /* video hardware */ - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_DRIVER(cmaster_state, screen_update_amcoe1a) -MACHINE_CONFIG_END + subdevice<screen_device>("screen")->set_screen_update(FUNC(cmaster_state::screen_update_amcoe1a)); +} /* diff with cm machine driver: gfxdecode, AY8910 volume & portmap */ -MACHINE_CONFIG_START(cmaster_state::amcoe2) - +void cmaster_state::amcoe2(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, CPU_CLOCK) - MCFG_DEVICE_PROGRAM_MAP(cm_map) - MCFG_DEVICE_IO_MAP(amcoe2_portmap) + Z80(config, m_maincpu, CPU_CLOCK); + m_maincpu->set_addrmap(AS_PROGRAM, &cmaster_state::cm_map); + m_maincpu->set_addrmap(AS_IO, &cmaster_state::amcoe2_portmap); I8255A(config, m_ppi[0]); m_ppi[0]->in_pa_callback().set_ioport("IN0"); @@ -9316,14 +9298,14 @@ MACHINE_CONFIG_START(cmaster_state::amcoe2) m_ppi[1]->in_pc_callback().set_ioport("DSW3"); /* 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, 64*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar) - MCFG_SCREEN_PALETTE(m_palette) - MCFG_SCREEN_VBLANK_CALLBACK(HOLDLINE("maincpu", 0)) + 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, 64*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(goldstar_state::screen_update_goldstar)); + screen.set_palette(m_palette); + screen.screen_vblank().set_inputline(m_maincpu, 0, HOLD_LINE); GFXDECODE(config, m_gfxdecode, m_palette, gfx_cm); PALETTE(config, m_palette, FUNC(goldstar_state::cm_palette), 256); @@ -9337,17 +9319,17 @@ MACHINE_CONFIG_START(cmaster_state::amcoe2) aysnd.port_a_read_callback().set_ioport("DSW4"); aysnd.port_b_read_callback().set_ioport("DSW5"); aysnd.add_route(ALL_OUTPUTS, "mono", 2.00); /* analyzed for clips */ -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(cmaster_state::nfm) +void cmaster_state::nfm(machine_config &config) +{ amcoe2(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(nfm_map) + m_maincpu->set_addrmap(AS_PROGRAM, &cmaster_state::nfm_map); m_gfxdecode->set_info(gfx_nfm); -MACHINE_CONFIG_END +} WRITE_LINE_MEMBER(unkch_state::vblank_irq) @@ -9356,24 +9338,24 @@ WRITE_LINE_MEMBER(unkch_state::vblank_irq) m_maincpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE); } -MACHINE_CONFIG_START(unkch_state::unkch) - +void unkch_state::unkch(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, CPU_CLOCK) - MCFG_DEVICE_PROGRAM_MAP(unkch_map) - MCFG_DEVICE_IO_MAP(unkch_portmap) + Z80(config, m_maincpu, CPU_CLOCK); + m_maincpu->set_addrmap(AS_PROGRAM, &unkch_state::unkch_map); + m_maincpu->set_addrmap(AS_IO, &unkch_state::unkch_portmap); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_1); /* 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, 64*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_DRIVER(unkch_state, screen_update_unkch) - MCFG_SCREEN_PALETTE(m_palette) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, unkch_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(64*8, 32*8); + screen.set_visarea(0*8, 64*8-1, 1*8, 31*8-1); + screen.set_screen_update(FUNC(unkch_state::screen_update_unkch)); + screen.set_palette(m_palette); + screen.screen_vblank().set(FUNC(unkch_state::vblank_irq)); GFXDECODE(config, m_gfxdecode, m_palette, gfx_unkch); PALETTE(config, m_palette).set_format(palette_device::xBGR_555, 512); @@ -9389,27 +9371,27 @@ MACHINE_CONFIG_START(unkch_state::unkch) /* payout hardware */ TICKET_DISPENSER(config, m_ticket_dispenser, attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW); -MACHINE_CONFIG_END +} // hw unknown - should be somewhat similar to cm -MACHINE_CONFIG_START(goldstar_state::pkrmast) - +void goldstar_state::pkrmast(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, CPU_CLOCK) - MCFG_DEVICE_PROGRAM_MAP(cm_map) - MCFG_DEVICE_IO_MAP(pkrmast_portmap) + Z80(config, m_maincpu, CPU_CLOCK); + m_maincpu->set_addrmap(AS_PROGRAM, &goldstar_state::cm_map); + m_maincpu->set_addrmap(AS_IO, &goldstar_state::pkrmast_portmap); /* 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, 64*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar) - MCFG_SCREEN_PALETTE(m_palette) - MCFG_SCREEN_VBLANK_CALLBACK(HOLDLINE("maincpu", 0)) + 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, 64*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(goldstar_state::screen_update_goldstar)); + screen.set_palette(m_palette); + screen.screen_vblank().set_inputline(m_maincpu, 0, HOLD_LINE); GFXDECODE(config, m_gfxdecode, m_palette, gfx_pkrmast); PALETTE(config, m_palette, FUNC(goldstar_state::cm_palette), 256); @@ -9423,29 +9405,29 @@ MACHINE_CONFIG_START(goldstar_state::pkrmast) aysnd.port_a_read_callback().set_ioport("DSW4"); aysnd.port_b_read_callback().set_ioport("DSW5"); aysnd.add_route(ALL_OUTPUTS, "mono", 0.50); -MACHINE_CONFIG_END - +} -MACHINE_CONFIG_START(unkch_state::megaline) +void unkch_state::megaline(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, CPU_CLOCK) - MCFG_DEVICE_PROGRAM_MAP(megaline_map) - MCFG_DEVICE_IO_MAP(megaline_portmap) + Z80(config, m_maincpu, CPU_CLOCK); + m_maincpu->set_addrmap(AS_PROGRAM, &unkch_state::megaline_map); + m_maincpu->set_addrmap(AS_IO, &unkch_state::megaline_portmap); - //MCFG_DEVICE_ADD("ppi8255_0", I8255A, 0) - //MCFG_DEVICE_ADD("ppi8255_1", I8255A, 0) - //MCFG_DEVICE_ADD("ppi8255_2", I8255A, 0) + //I8255A(config, m_ppi[0], 0); + //I8255A(config, m_ppi[1], 0); + //I8255A(config, m_ppi[2], 0); /* 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, 64*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar) - MCFG_SCREEN_PALETTE(m_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(64*8, 32*8); + screen.set_visarea(0*8, 64*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(goldstar_state::screen_update_goldstar)); + screen.set_palette(m_palette); + screen.screen_vblank().set_inputline(m_maincpu, INPUT_LINE_NMI); GFXDECODE(config, m_gfxdecode, m_palette, gfx_megaline); PALETTE(config, m_palette, FUNC(goldstar_state::lucky8_palette), 256); @@ -9456,14 +9438,11 @@ MACHINE_CONFIG_START(unkch_state::megaline) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("sn1", SN76489, PSG_CLOCK) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) + SN76489(config, "sn1", PSG_CLOCK).add_route(ALL_OUTPUTS, "mono", 0.80); - MCFG_DEVICE_ADD("sn2", SN76489, PSG_CLOCK) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) + SN76489(config, "sn2", PSG_CLOCK).add_route(ALL_OUTPUTS, "mono", 0.80); - MCFG_DEVICE_ADD("sn3", SN76489, PSG_CLOCK) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) + SN76489(config, "sn3", PSG_CLOCK).add_route(ALL_OUTPUTS, "mono", 0.80); ay8910_device &aysnd(AY8910(config, "aysnd", AY_CLOCK)); aysnd.port_a_read_callback().set_ioport("DSW3"); @@ -9471,28 +9450,26 @@ MACHINE_CONFIG_START(unkch_state::megaline) aysnd.port_a_write_callback().set(FUNC(goldstar_state::ay8910_outputa_w)); aysnd.port_b_write_callback().set(FUNC(goldstar_state::ay8910_outputb_w)); aysnd.add_route(ALL_OUTPUTS, "mono", 0.50); +} -MACHINE_CONFIG_END - - -MACHINE_CONFIG_START(unkch_state::bonusch) +void unkch_state::bonusch(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, 12_MHz_XTAL / 2) - MCFG_DEVICE_PROGRAM_MAP(bonusch_map) - MCFG_DEVICE_IO_MAP(bonusch_portmap) + Z80(config, m_maincpu, 12_MHz_XTAL / 2); + m_maincpu->set_addrmap(AS_PROGRAM, &unkch_state::bonusch_map); + m_maincpu->set_addrmap(AS_IO, &unkch_state::bonusch_portmap); - MCFG_DEVICE_ADD("mcu", I80C51, 12_MHz_XTAL) - MCFG_DEVICE_DISABLE() + I80C51(config, "mcu", 12_MHz_XTAL).set_disable(); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_SIZE(64*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar) - MCFG_SCREEN_PALETTE(m_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_size(64*8, 32*8); + screen.set_visarea(0*8, 64*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(goldstar_state::screen_update_goldstar)); + screen.set_palette(m_palette); + screen.screen_vblank().set_inputline(m_maincpu, INPUT_LINE_NMI); GFXDECODE(config, m_gfxdecode, m_palette, gfx_megaline); PALETTE(config, m_palette, FUNC(goldstar_state::lucky8_palette), 256); @@ -9502,25 +9479,20 @@ MACHINE_CONFIG_START(unkch_state::bonusch) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("sn1", SN76489, PSG_CLOCK) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) + SN76489(config, "sn1", PSG_CLOCK).add_route(ALL_OUTPUTS, "mono", 0.80); - MCFG_DEVICE_ADD("sn2", SN76489, PSG_CLOCK) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) + SN76489(config, "sn2", PSG_CLOCK).add_route(ALL_OUTPUTS, "mono", 0.80); - MCFG_DEVICE_ADD("sn3", SN76489, PSG_CLOCK) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) + SN76489(config, "sn3", PSG_CLOCK).add_route(ALL_OUTPUTS, "mono", 0.80); - MCFG_DEVICE_ADD("sn4", SN76489, PSG_CLOCK) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) - -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(unkch_state::feverch) + SN76489(config, "sn4", PSG_CLOCK).add_route(ALL_OUTPUTS, "mono", 0.80); +} - MCFG_DEVICE_ADD("maincpu", Z80, 12'000'000 / 2) // clock not verified - MCFG_DEVICE_PROGRAM_MAP(feverch_map) - MCFG_DEVICE_IO_MAP(feverch_portmap) +void unkch_state::feverch(machine_config &config) +{ + Z80(config, m_maincpu, 12'000'000 / 2); // clock not verified + m_maincpu->set_addrmap(AS_PROGRAM, &unkch_state::feverch_map); + m_maincpu->set_addrmap(AS_IO, &unkch_state::feverch_portmap); I8255A(config, m_ppi[0]); m_ppi[0]->in_pa_callback().set_ioport("IN0"); @@ -9537,13 +9509,13 @@ MACHINE_CONFIG_START(unkch_state::feverch) m_ppi[2]->in_pb_callback().set_ioport("DSW2"); m_ppi[2]->in_pc_callback().set_ioport("DSW3"); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_SIZE(64*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(unkch_state, screen_update_unkch) - MCFG_SCREEN_PALETTE(m_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_size(64*8, 32*8); + screen.set_visarea(0*8, 64*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(unkch_state::screen_update_unkch)); + screen.set_palette(m_palette); + screen.screen_vblank().set_inputline(m_maincpu, INPUT_LINE_NMI); GFXDECODE(config, m_gfxdecode, m_palette, gfx_ncb3); PALETTE(config, m_palette, FUNC(goldstar_state::lucky8_palette)).set_format(palette_device::BGR_233, 256); @@ -9552,15 +9524,12 @@ MACHINE_CONFIG_START(unkch_state::feverch) SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("sn1", SN76489A, 12'000'000 / 12) // actually SN76489AN, clock not verified - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) + SN76489A(config, "sn1", 12'000'000 / 12).add_route(ALL_OUTPUTS, "mono", 0.80); // actually SN76489AN, clock not verified - MCFG_DEVICE_ADD("sn2", SN76489A, 12'000'000 / 12) // actually SN76489AN, clock not verified - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) + SN76489A(config, "sn2", 12'000'000 / 12).add_route(ALL_OUTPUTS, "mono", 0.80); // actually SN76489AN, clock not verified - MCFG_DEVICE_ADD("sn3", SN76489A, 12'000'000 / 12) // actually SN76489AN, clock not verified - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) -MACHINE_CONFIG_END + SN76489A(config, "sn3", 12'000'000 / 12).add_route(ALL_OUTPUTS, "mono", 0.80); // actually SN76489AN, clock not verified +} /*************************************************************************** diff --git a/src/mame/drivers/h19.cpp b/src/mame/drivers/h19.cpp index 9571ef96780..d445b869756 100644 --- a/src/mame/drivers/h19.cpp +++ b/src/mame/drivers/h19.cpp @@ -520,11 +520,12 @@ static GFXDECODE_START( gfx_h19 ) GFXDECODE_ENTRY( "chargen", 0x0000, h19_charlayout, 0, 1 ) GFXDECODE_END -MACHINE_CONFIG_START(h19_state::h19) +void h19_state::h19(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, H19_CLOCK) // From schematics - MCFG_DEVICE_PROGRAM_MAP(mem_map) - MCFG_DEVICE_IO_MAP(io_map) + Z80(config, m_maincpu, H19_CLOCK); // From schematics + m_maincpu->set_addrmap(AS_PROGRAM, &h19_state::mem_map); + m_maincpu->set_addrmap(AS_IO, &h19_state::io_map); /* video hardware */ // TODO: make configurable, Heath offered 3 different CRTs - White, Green, Amber. @@ -564,9 +565,8 @@ MACHINE_CONFIG_START(h19_state::h19) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("beeper", BEEP, H19_BEEP_FRQ) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) -MACHINE_CONFIG_END + BEEP(config, m_beep, H19_BEEP_FRQ).add_route(ALL_OUTPUTS, "mono", 1.00); +} /* ROM definition */ ROM_START( h19 ) diff --git a/src/mame/drivers/halleys.cpp b/src/mame/drivers/halleys.cpp index 02b075c3687..c4278cadb6f 100644 --- a/src/mame/drivers/halleys.cpp +++ b/src/mame/drivers/halleys.cpp @@ -1930,25 +1930,26 @@ void halleys_state::machine_reset() } -MACHINE_CONFIG_START(halleys_state::halleys) - MCFG_DEVICE_ADD("maincpu", MC6809E, XTAL(19'968'000)/12) /* verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(halleys_map) +void halleys_state::halleys(machine_config &config) +{ + MC6809E(config, m_maincpu, XTAL(19'968'000)/12); /* verified on pcb */ + m_maincpu->set_addrmap(AS_PROGRAM, &halleys_state::halleys_map); + TIMER(config, "scantimer").configure_scanline(FUNC(halleys_state::halleys_scanline), "screen", 0, 1); - MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(6'000'000)/2) /* verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(sound_map) - MCFG_DEVICE_PERIODIC_INT_DRIVER(halleys_state, irq0_line_hold, (double)6000000/(4*16*16*10*16)) + Z80(config, m_audiocpu, XTAL(6'000'000)/2); /* verified on pcb */ + m_audiocpu->set_addrmap(AS_PROGRAM, &halleys_state::sound_map); + m_audiocpu->set_periodic_int(FUNC(halleys_state::irq0_line_hold), attotime::from_hz((double)6000000/(4*16*16*10*16))); // video hardware - - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(59.50) /* verified on PCB */ - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(SCREEN_WIDTH, SCREEN_HEIGHT) - MCFG_SCREEN_VISIBLE_AREA(VIS_MINX, VIS_MAXX, VIS_MINY, VIS_MAXY) - MCFG_SCREEN_UPDATE_DRIVER(halleys_state, screen_update_halleys) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(59.50); /* verified on PCB */ + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(SCREEN_WIDTH, SCREEN_HEIGHT); + screen.set_visarea(VIS_MINX, VIS_MAXX, VIS_MINY, VIS_MAXY); + screen.set_screen_update(FUNC(halleys_state::screen_update_halleys)); + screen.set_palette(m_palette); PALETTE(config, m_palette, FUNC(halleys_state::halleys_palette), PALETTE_SIZE); @@ -1966,19 +1967,19 @@ MACHINE_CONFIG_START(halleys_state::halleys) ym2149_device &ay4(YM2149(config, "ay4", XTAL(6'000'000)/4)); /* verified on pcb */ ay4.port_b_write_callback().set(FUNC(halleys_state::sndnmi_msk_w)); ay4.add_route(ALL_OUTPUTS, "mono", 0.15); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(halleys_state::benberob) +void halleys_state::benberob(machine_config &config) +{ halleys(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_CLOCK(XTAL(19'968'000)/12) /* not verified but pcb identical to halley's comet */ + + m_maincpu->set_clock(XTAL(19'968'000)/12); /* not verified but pcb identical to halley's comet */ subdevice<timer_device>("scantimer")->set_callback(FUNC(halleys_state::benberob_scanline)); - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_DRIVER(halleys_state, screen_update_benberob) -MACHINE_CONFIG_END + subdevice<screen_device>("screen")->set_screen_update(FUNC(halleys_state::screen_update_benberob)); +} //************************************************************************** diff --git a/src/mame/drivers/hanaawas.cpp b/src/mame/drivers/hanaawas.cpp index 1b015188f85..30dc91670bb 100644 --- a/src/mame/drivers/hanaawas.cpp +++ b/src/mame/drivers/hanaawas.cpp @@ -215,23 +215,23 @@ void hanaawas_state::machine_reset() m_mux = 0; } -MACHINE_CONFIG_START(hanaawas_state::hanaawas) - +void hanaawas_state::hanaawas(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80,18432000/6) /* 3.072 MHz ??? */ - MCFG_DEVICE_PROGRAM_MAP(hanaawas_map) - MCFG_DEVICE_IO_MAP(io_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", hanaawas_state, irq0_line_assert) + Z80(config, m_maincpu, 18432000/6); /* 3.072 MHz ??? */ + m_maincpu->set_addrmap(AS_PROGRAM, &hanaawas_state::hanaawas_map); + m_maincpu->set_addrmap(AS_IO, &hanaawas_state::io_map); + m_maincpu->set_vblank_int("screen", FUNC(hanaawas_state::irq0_line_assert)); /* 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, 0*8, 32*8-1) - MCFG_SCREEN_UPDATE_DRIVER(hanaawas_state, screen_update_hanaawas) - 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(32*8, 32*8); + screen.set_visarea(0*8, 32*8-1, 0*8, 32*8-1); + screen.set_screen_update(FUNC(hanaawas_state::screen_update_hanaawas)); + screen.set_palette("palette"); GFXDECODE(config, m_gfxdecode, "palette", gfx_hanaawas); PALETTE(config, "palette", FUNC(hanaawas_state::hanaawas_palette), 32 * 8, 16); @@ -243,7 +243,7 @@ MACHINE_CONFIG_START(hanaawas_state::hanaawas) aysnd.port_a_read_callback().set_ioport("DSW"); aysnd.port_b_write_callback().set(FUNC(hanaawas_state::hanaawas_portB_w)); aysnd.add_route(ALL_OUTPUTS, "mono", 0.50); -MACHINE_CONFIG_END +} /*************************************************************************** diff --git a/src/mame/drivers/hapyfish.cpp b/src/mame/drivers/hapyfish.cpp index 4c2d7b0a5e0..8681e2723af 100644 --- a/src/mame/drivers/hapyfish.cpp +++ b/src/mame/drivers/hapyfish.cpp @@ -241,19 +241,19 @@ void hapyfish_state::init_mini2440() // do nothing } -MACHINE_CONFIG_START(hapyfish_state::hapyfish) - MCFG_DEVICE_ADD("maincpu", ARM920T, 100000000) - MCFG_DEVICE_PROGRAM_MAP(hapyfish_map) - - MCFG_PALETTE_ADD("palette", 32768) +void hapyfish_state::hapyfish(machine_config &config) +{ + ARM920T(config, m_maincpu, 100000000); + m_maincpu->set_addrmap(AS_PROGRAM, &hapyfish_state::hapyfish_map); - MCFG_SCREEN_ADD("screen", LCD) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_SIZE(1024, 768) - MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 479) + PALETTE(config, "palette").set_entries(32768); - MCFG_SCREEN_UPDATE_DEVICE("s3c2440", s3c2440_device, screen_update) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_size(1024, 768); + screen.set_visarea(0, 639, 0, 479); + screen.set_screen_update("s3c2440", FUNC(s3c2440_device::screen_update)); SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); @@ -283,7 +283,7 @@ MACHINE_CONFIG_START(hapyfish_state::hapyfish) NAND(config, m_nand2, 0); m_nand2->set_nand_type(nand_device::chip::K9LAG08U0M); m_nand2->rnb_wr_callback().set(m_s3c2440, FUNC(s3c2440_device::frnb_w)); -MACHINE_CONFIG_END +} static INPUT_PORTS_START( hapyfish ) INPUT_PORTS_END diff --git a/src/mame/drivers/hazeltin.cpp b/src/mame/drivers/hazeltin.cpp index 75c456776cf..df405e038b0 100644 --- a/src/mame/drivers/hazeltin.cpp +++ b/src/mame/drivers/hazeltin.cpp @@ -695,20 +695,20 @@ GFXDECODE_END MACHINE_CONFIG_START(hazl1500_state::hazl1500) /* basic machine hardware */ - MCFG_DEVICE_ADD(CPU_TAG, I8080, XTAL(18'000'000)/9) // 18MHz crystal on schematics, using an i8224 clock gen/driver IC - MCFG_DEVICE_PROGRAM_MAP(hazl1500_mem) - MCFG_DEVICE_IO_MAP(hazl1500_io) + I8080(config, m_maincpu, XTAL(18'000'000)/9); // 18MHz crystal on schematics, using an i8224 clock gen/driver IC + m_maincpu->set_addrmap(AS_PROGRAM, &hazl1500_state::hazl1500_mem); + m_maincpu->set_addrmap(AS_IO, &hazl1500_state::hazl1500_io); config.m_perfect_cpu_quantum = subtag(CPU_TAG); INPUT_MERGER_ANY_HIGH(config, "mainint").output_handler().set_inputline(m_maincpu, INPUT_LINE_IRQ0); /* video hardware */ - MCFG_SCREEN_ADD(SCREEN_TAG, RASTER) - MCFG_SCREEN_UPDATE_DRIVER(hazl1500_state, screen_update_hazl1500) - //MCFG_SCREEN_RAW_PARAMS(XTAL(33'264'000) / 2, + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_screen_update(FUNC(hazl1500_state::screen_update_hazl1500)); + //m_screen->set_raw(XTAL(33'264'000) / 2, // SCREEN_HTOTAL, SCREEN_HSTART, SCREEN_HSTART + SCREEN_HDISP, // SCREEN_VTOTAL, SCREEN_VSTART, SCREEN_VSTART + SCREEN_VDISP); // TODO: Figure out exact visibility - MCFG_SCREEN_RAW_PARAMS(XTAL(33'264'000) / 2, + m_screen->set_raw(XTAL(33'264'000) / 2, SCREEN_HTOTAL, 0, SCREEN_HTOTAL, SCREEN_VTOTAL, 0, SCREEN_VTOTAL); diff --git a/src/mame/drivers/headonb.cpp b/src/mame/drivers/headonb.cpp index c3914f3003b..f4577a1056e 100644 --- a/src/mame/drivers/headonb.cpp +++ b/src/mame/drivers/headonb.cpp @@ -166,29 +166,29 @@ static GFXDECODE_START( gfx_headonb ) GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0, 1 ) GFXDECODE_END -MACHINE_CONFIG_START(headonb_state::headonb) - +void headonb_state::headonb(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", I8080A, XTAL(20'000'000) / 10) // divider guessed - MCFG_DEVICE_PROGRAM_MAP(headonb_map) - MCFG_DEVICE_IO_MAP(headonb_io_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", headonb_state, irq0_line_hold) // where is irqack? + I8080A(config, m_maincpu, XTAL(20'000'000) / 10); // divider guessed + m_maincpu->set_addrmap(AS_PROGRAM, &headonb_state::headonb_map); + m_maincpu->set_addrmap(AS_IO, &headonb_state::headonb_io_map); + m_maincpu->set_vblank_int("screen", FUNC(headonb_state::irq0_line_hold)); // where is irqack? /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) - MCFG_SCREEN_SIZE(32*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1) - MCFG_SCREEN_UPDATE_DRIVER(headonb_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)); + screen.set_size(32*8, 32*8); + screen.set_visarea(0*8, 32*8-1, 0*8, 28*8-1); + screen.set_screen_update(FUNC(headonb_state::screen_update)); + screen.set_palette("palette"); GFXDECODE(config, m_gfxdecode, "palette", gfx_headonb); PALETTE(config, "palette", palette_device::MONOCHROME); /* sound hardware */ // TODO -MACHINE_CONFIG_END +} /*************************************************************************** diff --git a/src/mame/drivers/hec2hrp.cpp b/src/mame/drivers/hec2hrp.cpp index 9a42aec9df5..b5e2c9f9349 100644 --- a/src/mame/drivers/hec2hrp.cpp +++ b/src/mame/drivers/hec2hrp.cpp @@ -394,23 +394,25 @@ static void minidisc_floppies(device_slot_interface &device) } -MACHINE_CONFIG_START(hec2hrp_state::hec2hr) - MCFG_DEVICE_ADD("maincpu", Z80, 5_MHz_XTAL) - MCFG_DEVICE_PROGRAM_MAP(hec2hrp_mem) - MCFG_DEVICE_IO_MAP(hec2hrp_io) - MCFG_DEVICE_PERIODIC_INT_DRIVER(hec2hrp_state, irq0_line_hold, 50) /* put on the Z80 irq in Hz*/ +void hec2hrp_state::hec2hr(machine_config &config) +{ + Z80(config, m_maincpu, 5_MHz_XTAL); + m_maincpu->set_addrmap(AS_PROGRAM, &hec2hrp_state::hec2hrp_mem); + m_maincpu->set_addrmap(AS_IO, &hec2hrp_state::hec2hrp_io); + m_maincpu->set_periodic_int(FUNC(hec2hrp_state::irq0_line_hold), attotime::from_hz(50)); /* put on the Z80 irq in Hz*/ + MCFG_MACHINE_RESET_OVERRIDE(hec2hrp_state,hec2hrp) MCFG_MACHINE_START_OVERRIDE(hec2hrp_state,hec2hrp) - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(400)) /* 2500 not accurate */ - MCFG_SCREEN_SIZE(512, 230) - MCFG_SCREEN_VISIBLE_AREA(0, 243, 0, 227) - MCFG_SCREEN_UPDATE_DRIVER(hec2hrp_state, screen_update_hec2hrp) - 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(400)); /* 2500 not accurate */ + screen.set_size(512, 230); + screen.set_visarea(0, 243, 0, 227); + screen.set_screen_update(FUNC(hec2hrp_state::screen_update_hec2hrp)); + screen.set_palette(m_palette); - MCFG_PALETTE_ADD("palette", 16) + PALETTE(config, m_palette).set_entries(16); MCFG_VIDEO_START_OVERRIDE(hec2hrp_state,hec2hrp) hector_audio(config); @@ -420,25 +422,27 @@ MACHINE_CONFIG_START(hec2hrp_state::hec2hr) m_cassette->set_default_state(CASSETTE_PLAY | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_ENABLED); PRINTER(config, m_printer, 0); -MACHINE_CONFIG_END +} + +void hec2hrp_state::hec2hrp(machine_config &config) +{ + Z80(config, m_maincpu, 5_MHz_XTAL); + m_maincpu->set_addrmap(AS_PROGRAM, &hec2hrp_state::hec2hrp_mem); + m_maincpu->set_addrmap(AS_IO, &hec2hrp_state::hec2hrp_io); + m_maincpu->set_periodic_int(FUNC(hec2hrp_state::irq0_line_hold), attotime::from_hz(50)); /* put on the Z80 irq in Hz*/ -MACHINE_CONFIG_START(hec2hrp_state::hec2hrp) - MCFG_DEVICE_ADD("maincpu", Z80, 5_MHz_XTAL) - MCFG_DEVICE_PROGRAM_MAP(hec2hrp_mem) - MCFG_DEVICE_IO_MAP(hec2hrp_io) - MCFG_DEVICE_PERIODIC_INT_DRIVER(hec2hrp_state, irq0_line_hold, 50) /* put on the Z80 irq in Hz*/ MCFG_MACHINE_RESET_OVERRIDE(hec2hrp_state,hec2hrp) MCFG_MACHINE_START_OVERRIDE(hec2hrp_state,hec2hrp) - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(400)) /* 2500 not accurate */ - MCFG_SCREEN_SIZE(512, 230) - MCFG_SCREEN_VISIBLE_AREA(0, 243, 0, 227) - MCFG_SCREEN_UPDATE_DRIVER(hec2hrp_state, screen_update_hec2hrp) - 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(400)); /* 2500 not accurate */ + screen.set_size(512, 230); + screen.set_visarea(0, 243, 0, 227); + screen.set_screen_update(FUNC(hec2hrp_state::screen_update_hec2hrp)); + screen.set_palette(m_palette); - MCFG_PALETTE_ADD("palette", 16) + PALETTE(config, m_palette).set_entries(16); MCFG_VIDEO_START_OVERRIDE(hec2hrp_state,hec2hrp) hector_audio(config); @@ -448,39 +452,43 @@ MACHINE_CONFIG_START(hec2hrp_state::hec2hrp) m_cassette->set_default_state(CASSETTE_PLAY | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_ENABLED); PRINTER(config, m_printer, 0); -MACHINE_CONFIG_END +} static void hector_floppies(device_slot_interface &device) { device.option_add("525hd", FLOPPY_525_HD); } -MACHINE_CONFIG_START(hec2hrp_state::hec2mx40) - MCFG_DEVICE_ADD("maincpu", Z80, 5_MHz_XTAL) - MCFG_DEVICE_PROGRAM_MAP(hec2hrx_mem) - MCFG_DEVICE_IO_MAP(hec2mx40_io) - MCFG_DEVICE_PERIODIC_INT_DRIVER(hec2hrp_state, irq0_line_hold, 50) // put on the Z80 irq in Hz +void hec2hrp_state::hec2mx40(machine_config &config) +{ + Z80(config, m_maincpu, 5_MHz_XTAL); + m_maincpu->set_addrmap(AS_PROGRAM, &hec2hrp_state::hec2hrx_mem); + m_maincpu->set_addrmap(AS_IO, &hec2hrp_state::hec2mx40_io); + m_maincpu->set_periodic_int(FUNC(hec2hrp_state::irq0_line_hold), attotime::from_hz(50)); /* put on the Z80 irq in Hz*/ + + Z80(config, m_disc2cpu, 4_MHz_XTAL); + m_disc2cpu->set_addrmap(AS_PROGRAM, &hec2hrp_state::hecdisc2_mem); + m_disc2cpu->set_addrmap(AS_IO, &hec2hrp_state::hecdisc2_io); - MCFG_DEVICE_ADD("disc2cpu", Z80, 4_MHz_XTAL) - MCFG_DEVICE_PROGRAM_MAP(hecdisc2_mem) - MCFG_DEVICE_IO_MAP(hecdisc2_io) UPD765A(config, m_upd_fdc, 8'000'000, false, true); m_upd_fdc->intrq_wr_callback().set(FUNC(hec2hrp_state::disc2_fdc_interrupt)); m_upd_fdc->drq_wr_callback().set(FUNC(hec2hrp_state::disc2_fdc_dma_irq)); + FLOPPY_CONNECTOR(config, m_upd_connector[0], hector_floppies, "525hd", floppy_image_device::default_floppy_formats); FLOPPY_CONNECTOR(config, m_upd_connector[1], hector_floppies, "525hd", floppy_image_device::default_floppy_formats); + MCFG_MACHINE_RESET_OVERRIDE(hec2hrp_state,hec2hrx) MCFG_MACHINE_START_OVERRIDE(hec2hrp_state,hec2hrx) - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(400)) /* 2500 not accurate */ - MCFG_SCREEN_SIZE(512, 230) - MCFG_SCREEN_VISIBLE_AREA(0, 243, 0, 227) - MCFG_SCREEN_UPDATE_DRIVER(hec2hrp_state, screen_update_hec2hrp) - 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(400)); /* 2500 not accurate */ + screen.set_size(512, 230); + screen.set_visarea(0, 243, 0, 227); + screen.set_screen_update(FUNC(hec2hrp_state::screen_update_hec2hrp)); + screen.set_palette(m_palette); - MCFG_PALETTE_ADD("palette", 16) + PALETTE(config, m_palette).set_entries(16); MCFG_VIDEO_START_OVERRIDE(hec2hrp_state,hec2hrp) hector_audio(config); @@ -490,35 +498,39 @@ MACHINE_CONFIG_START(hec2hrp_state::hec2mx40) m_cassette->set_default_state(CASSETTE_PLAY | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_ENABLED); PRINTER(config, m_printer, 0); -MACHINE_CONFIG_END +} + +void hec2hrp_state::hec2hrx(machine_config &config) +{ + Z80(config, m_maincpu, 5_MHz_XTAL); + m_maincpu->set_addrmap(AS_PROGRAM, &hec2hrp_state::hec2hrx_mem); + m_maincpu->set_addrmap(AS_IO, &hec2hrp_state::hec2hrx_io); + m_maincpu->set_periodic_int(FUNC(hec2hrp_state::irq0_line_hold), attotime::from_hz(50)); /* put on the Z80 irq in Hz*/ -MACHINE_CONFIG_START(hec2hrp_state::hec2hrx) - MCFG_DEVICE_ADD("maincpu", Z80, 5_MHz_XTAL) - MCFG_DEVICE_PROGRAM_MAP(hec2hrx_mem) - MCFG_DEVICE_IO_MAP(hec2hrx_io) - MCFG_DEVICE_PERIODIC_INT_DRIVER(hec2hrp_state, irq0_line_hold, 50) // put on the Z80 irq in Hz MCFG_MACHINE_RESET_OVERRIDE(hec2hrp_state,hec2hrx) MCFG_MACHINE_START_OVERRIDE(hec2hrp_state,hec2hrx) - MCFG_DEVICE_ADD("disc2cpu", Z80, 4_MHz_XTAL) - MCFG_DEVICE_PROGRAM_MAP(hecdisc2_mem) - MCFG_DEVICE_IO_MAP(hecdisc2_io) + Z80(config, m_disc2cpu, 4_MHz_XTAL); + m_disc2cpu->set_addrmap(AS_PROGRAM, &hec2hrp_state::hecdisc2_mem); + m_disc2cpu->set_addrmap(AS_IO, &hec2hrp_state::hecdisc2_io); + UPD765A(config, m_upd_fdc, 8'000'000, false, true); m_upd_fdc->intrq_wr_callback().set(FUNC(hec2hrp_state::disc2_fdc_interrupt)); m_upd_fdc->drq_wr_callback().set(FUNC(hec2hrp_state::disc2_fdc_dma_irq)); + FLOPPY_CONNECTOR(config, m_upd_connector[0], hector_floppies, "525hd", floppy_image_device::default_floppy_formats); FLOPPY_CONNECTOR(config, m_upd_connector[1], hector_floppies, "525hd", floppy_image_device::default_floppy_formats); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(400)) /* 2500 not accurate */ - MCFG_SCREEN_SIZE(512, 230) - MCFG_SCREEN_VISIBLE_AREA(0, 243, 0, 227) - MCFG_SCREEN_UPDATE_DRIVER(hec2hrp_state, screen_update_hec2hrp) - 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(400)); /* 2500 not accurate */ + screen.set_size(512, 230); + screen.set_visarea(0, 243, 0, 227); + screen.set_screen_update(FUNC(hec2hrp_state::screen_update_hec2hrp)); + screen.set_palette(m_palette); - MCFG_PALETTE_ADD("palette", 16) + PALETTE(config, m_palette).set_entries(16); MCFG_VIDEO_START_OVERRIDE(hec2hrp_state,hec2hrp) hector_audio(config); @@ -528,13 +540,15 @@ MACHINE_CONFIG_START(hec2hrp_state::hec2hrx) m_cassette->set_default_state(CASSETTE_PLAY | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_ENABLED); PRINTER(config, m_printer, 0); -MACHINE_CONFIG_END +} + +void hec2hrp_state::hec2mdhrx(machine_config &config) +{ + Z80(config, m_maincpu, 5_MHz_XTAL); + m_maincpu->set_addrmap(AS_PROGRAM, &hec2hrp_state::hec2hrx_mem); + m_maincpu->set_addrmap(AS_IO, &hec2hrp_state::hec2mdhrx_io); + m_maincpu->set_periodic_int(FUNC(hec2hrp_state::irq0_line_hold), attotime::from_hz(50)); /* put on the Z80 irq in Hz*/ -MACHINE_CONFIG_START(hec2hrp_state::hec2mdhrx) - MCFG_DEVICE_ADD("maincpu", Z80, 5_MHz_XTAL) - MCFG_DEVICE_PROGRAM_MAP(hec2hrx_mem) - MCFG_DEVICE_IO_MAP(hec2mdhrx_io) - MCFG_DEVICE_PERIODIC_INT_DRIVER(hec2hrp_state, irq0_line_hold, 50) // put on the Z80 irq in Hz MCFG_MACHINE_RESET_OVERRIDE(hec2hrp_state,hec2mdhrx) MCFG_MACHINE_START_OVERRIDE(hec2hrp_state,hec2mdhrx) @@ -542,16 +556,15 @@ MACHINE_CONFIG_START(hec2hrp_state::hec2mdhrx) FD1793(config, m_minidisc_fdc, 1_MHz_XTAL); FLOPPY_CONNECTOR(config, "wd179x:0", minidisc_floppies, "dd", hec2hrp_state::minidisc_formats); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(400)) /* 2500 not accurate */ - MCFG_SCREEN_SIZE(512, 230) - MCFG_SCREEN_VISIBLE_AREA(0, 243, 0, 227) - MCFG_SCREEN_UPDATE_DRIVER(hec2hrp_state, screen_update_hec2hrp) - 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(400)); /* 2500 not accurate */ + screen.set_size(512, 230); + screen.set_visarea(0, 243, 0, 227); + screen.set_screen_update(FUNC(hec2hrp_state::screen_update_hec2hrp)); + screen.set_palette(m_palette); - MCFG_VIDEO_START_OVERRIDE(hec2hrp_state,hec2hrp) - MCFG_PALETTE_ADD("palette", 16) + PALETTE(config, m_palette).set_entries(16); MCFG_VIDEO_START_OVERRIDE(hec2hrp_state,hec2hrp) hector_audio(config); @@ -561,35 +574,39 @@ MACHINE_CONFIG_START(hec2hrp_state::hec2mdhrx) m_cassette->set_default_state(CASSETTE_PLAY | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_ENABLED); PRINTER(config, m_printer, 0); -MACHINE_CONFIG_END +} + +void hec2hrp_state::hec2mx80(machine_config &config) +{ + Z80(config, m_maincpu, 5_MHz_XTAL); + m_maincpu->set_addrmap(AS_PROGRAM, &hec2hrp_state::hec2hrx_mem); + m_maincpu->set_addrmap(AS_IO, &hec2hrp_state::hec2mx80_io); + m_maincpu->set_periodic_int(FUNC(hec2hrp_state::irq0_line_hold), attotime::from_hz(50)); /* put on the Z80 irq in Hz*/ -MACHINE_CONFIG_START(hec2hrp_state::hec2mx80) - MCFG_DEVICE_ADD("maincpu", Z80, 5_MHz_XTAL) - MCFG_DEVICE_PROGRAM_MAP(hec2hrx_mem) - MCFG_DEVICE_IO_MAP(hec2mx80_io) - MCFG_DEVICE_PERIODIC_INT_DRIVER(hec2hrp_state, irq0_line_hold, 50) // put on the Z80 irq in Hz MCFG_MACHINE_RESET_OVERRIDE(hec2hrp_state,hec2hrx) MCFG_MACHINE_START_OVERRIDE(hec2hrp_state,hec2hrx) - MCFG_DEVICE_ADD("disc2cpu", Z80, 4_MHz_XTAL) - MCFG_DEVICE_PROGRAM_MAP(hecdisc2_mem) - MCFG_DEVICE_IO_MAP(hecdisc2_io) + Z80(config, m_disc2cpu, 4_MHz_XTAL); + m_disc2cpu->set_addrmap(AS_PROGRAM, &hec2hrp_state::hecdisc2_mem); + m_disc2cpu->set_addrmap(AS_IO, &hec2hrp_state::hecdisc2_io); + UPD765A(config, m_upd_fdc, 8'000'000, false, true); m_upd_fdc->intrq_wr_callback().set(FUNC(hec2hrp_state::disc2_fdc_interrupt)); m_upd_fdc->drq_wr_callback().set(FUNC(hec2hrp_state::disc2_fdc_dma_irq)); + FLOPPY_CONNECTOR(config, m_upd_connector[0], hector_floppies, "525hd", floppy_image_device::default_floppy_formats); FLOPPY_CONNECTOR(config, m_upd_connector[1], hector_floppies, "525hd", floppy_image_device::default_floppy_formats); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(400)) /* 2500 not accurate */ - MCFG_SCREEN_SIZE(512, 230) - MCFG_SCREEN_VISIBLE_AREA(0, 243, 0, 227) - MCFG_SCREEN_UPDATE_DRIVER(hec2hrp_state, screen_update_hec2hrp) - 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(400)); /* 2500 not accurate */ + screen.set_size(512, 230); + screen.set_visarea(0, 243, 0, 227); + screen.set_screen_update(FUNC(hec2hrp_state::screen_update_hec2hrp)); + screen.set_palette(m_palette); - MCFG_PALETTE_ADD("palette", 16) + PALETTE(config, m_palette).set_entries(16); MCFG_VIDEO_START_OVERRIDE(hec2hrp_state,hec2hrp) hector_audio(config); @@ -599,7 +616,7 @@ MACHINE_CONFIG_START(hec2hrp_state::hec2mx80) m_cassette->set_default_state(CASSETTE_PLAY | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_ENABLED); PRINTER(config, m_printer, 0); -MACHINE_CONFIG_END +} ROM_START( hec2hr ) ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASEFF ) diff --git a/src/mame/drivers/hideseek.cpp b/src/mame/drivers/hideseek.cpp index fd85859aee7..8703174c3c3 100644 --- a/src/mame/drivers/hideseek.cpp +++ b/src/mame/drivers/hideseek.cpp @@ -2,7 +2,7 @@ // copyright-holders:Guru /* Hide & Seek -the AG-2 AX51201 should be the follow-up to the AG-1 AX51101 in gunpey.c +the AG-2 AX51201 should be the follow-up to the AG-1 AX51101 in gunpey.cpp AS: Current ROM code barely contains some valid SH-2 opcodes but not enough for a HD64F7045F28. i.e. It doesn't contain VBR set-up, valid irq routines, @@ -103,21 +103,21 @@ void hideseek_state::hideseek_palette(palette_device &palette) const -MACHINE_CONFIG_START(hideseek_state::hideseek) - +void hideseek_state::hideseek(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", SH2, 7372800 * 4 ) - MCFG_DEVICE_PROGRAM_MAP(mem_map) + SH2(config, m_maincpu, 7372800 * 4); + m_maincpu->set_addrmap(AS_PROGRAM, &hideseek_state::mem_map); // TIMER(config, "scantimer").configure_scanline(FUNC(hideseek_state::hideseek_scanline), "screen", 0, 1); /* 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, 64*8-1, 0*8, 32*8-1) - MCFG_SCREEN_UPDATE_DRIVER(hideseek_state, screen_update_hideseek) - 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(64*8, 32*8); + screen.set_visarea(0*8, 64*8-1, 0*8, 32*8-1); + screen.set_screen_update(FUNC(hideseek_state::screen_update_hideseek)); + screen.set_palette("palette"); PALETTE(config, "palette", FUNC(hideseek_state::hideseek_palette), 0x10000); GFXDECODE(config, "gfxdecode", "palette", gfx_hideseek); @@ -126,7 +126,7 @@ MACHINE_CONFIG_START(hideseek_state::hideseek) SPEAKER(config, "rspeaker").front_right(); /* sound : M9810 */ -MACHINE_CONFIG_END +} ROM_START( hideseek ) diff --git a/src/mame/drivers/higemaru.cpp b/src/mame/drivers/higemaru.cpp index ba32983ef19..75c6cc4f052 100644 --- a/src/mame/drivers/higemaru.cpp +++ b/src/mame/drivers/higemaru.cpp @@ -163,21 +163,21 @@ static GFXDECODE_START( gfx_higemaru ) GFXDECODE_END -MACHINE_CONFIG_START(higemaru_state::higemaru) - +void higemaru_state::higemaru(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, XTAL(12'000'000)/4) /* 3 MHz Sharp LH0080A Z80A-CPU-D */ - MCFG_DEVICE_PROGRAM_MAP(higemaru_map) + Z80(config, m_maincpu, XTAL(12'000'000)/4); /* 3 MHz Sharp LH0080A Z80A-CPU-D */ + m_maincpu->set_addrmap(AS_PROGRAM, &higemaru_state::higemaru_map); TIMER(config, "scantimer").configure_scanline(FUNC(higemaru_state::higemaru_scanline), "screen", 0, 1); /* 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(higemaru_state, screen_update_higemaru) - 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(higemaru_state::screen_update_higemaru)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_higemaru); @@ -189,7 +189,7 @@ MACHINE_CONFIG_START(higemaru_state::higemaru) AY8910(config, "ay1", XTAL(12'000'000)/8).add_route(ALL_OUTPUTS, "mono", 0.25); AY8910(config, "ay2", XTAL(12'000'000)/8).add_route(ALL_OUTPUTS, "mono", 0.25); -MACHINE_CONFIG_END +} /*************************************************************************** diff --git a/src/mame/drivers/highvdeo.cpp b/src/mame/drivers/highvdeo.cpp index 365b5f9385c..ccce0c6d0c9 100644 --- a/src/mame/drivers/highvdeo.cpp +++ b/src/mame/drivers/highvdeo.cpp @@ -1219,20 +1219,21 @@ void highvdeo_state::ramdac_map(address_map &map) } -MACHINE_CONFIG_START(highvdeo_state::tv_vcf) - MCFG_DEVICE_ADD("maincpu", V30, XTAL(12'000'000)/2 ) // ? - MCFG_DEVICE_PROGRAM_MAP(tv_vcf_map) - MCFG_DEVICE_IO_MAP(tv_vcf_io) +void highvdeo_state::tv_vcf(machine_config &config) +{ + V30(config, m_maincpu, XTAL(12'000'000)/2); // ? + m_maincpu->set_addrmap(AS_PROGRAM, &highvdeo_state::tv_vcf_map); + m_maincpu->set_addrmap(AS_IO, &highvdeo_state::tv_vcf_io); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(400, 300) - MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 200-1) - MCFG_SCREEN_UPDATE_DRIVER(highvdeo_state, screen_update_tourvisn) - MCFG_SCREEN_VBLANK_CALLBACK(ASSERTLINE("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(400, 300); + screen.set_visarea(0, 320-1, 0, 200-1); + screen.set_screen_update(FUNC(highvdeo_state::screen_update_tourvisn)); + screen.screen_vblank().set_inputline(m_maincpu, INPUT_LINE_NMI, ASSERT_LINE); PALETTE(config, m_palette).set_entries(0x100); ramdac_device &ramdac(RAMDAC(config, "ramdac", 0, m_palette)); @@ -1242,144 +1243,141 @@ MACHINE_CONFIG_START(highvdeo_state::tv_vcf) SPEAKER(config, "mono").front_center(); //OkiM6376 - MCFG_DEVICE_ADD("oki", OKIM6376, XTAL(12'000'000)/2/2/20)//Guess, gives approx. same sample rate as previous emulation - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_CONFIG_END + OKIM6376(config, m_okim6376, XTAL(12'000'000)/2/2/20).add_route(ALL_OUTPUTS, "mono", 1.0); //Guess, gives approx. same sample rate as previous emulation +} -MACHINE_CONFIG_START(highvdeo_state::tv_ncf) +void highvdeo_state::tv_ncf(machine_config &config) +{ tv_vcf(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(tv_ncf_map) - MCFG_DEVICE_IO_MAP(tv_ncf_io) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, &highvdeo_state::tv_ncf_map); + m_maincpu->set_addrmap(AS_IO, &highvdeo_state::tv_ncf_io); +} -MACHINE_CONFIG_START(highvdeo_state::nyjoker) +void highvdeo_state::nyjoker(machine_config &config) +{ tv_vcf(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(nyjoker_map) - MCFG_DEVICE_IO_MAP(nyjoker_io) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, &highvdeo_state::nyjoker_map); + m_maincpu->set_addrmap(AS_IO, &highvdeo_state::nyjoker_io); +} -MACHINE_CONFIG_START(highvdeo_state::tv_tcf) +void highvdeo_state::tv_tcf(machine_config &config) +{ tv_vcf(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(tv_tcf_map) - MCFG_DEVICE_IO_MAP(tv_tcf_io) + m_maincpu->set_addrmap(AS_PROGRAM, &highvdeo_state::tv_tcf_map); + m_maincpu->set_addrmap(AS_IO, &highvdeo_state::tv_tcf_io); - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_VISIBLE_AREA(0, 400-1, 0, 300-1) + subdevice<screen_device>("screen")->set_visarea(0, 400-1, 0, 300-1); m_palette->set_format(palette_device::RGB_565, 0x100); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(highvdeo_state::newmcard) +void highvdeo_state::newmcard(machine_config &config) +{ tv_tcf(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(newmcard_map) - MCFG_DEVICE_IO_MAP(newmcard_io) + m_maincpu->set_addrmap(AS_PROGRAM, &highvdeo_state::newmcard_map); + m_maincpu->set_addrmap(AS_IO, &highvdeo_state::newmcard_io); - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 200-1) -MACHINE_CONFIG_END + subdevice<screen_device>("screen")->set_visarea(0, 320-1, 0, 200-1); +} -MACHINE_CONFIG_START(highvdeo_state::record) +void highvdeo_state::record(machine_config &config) +{ newmcard(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_IO_MAP(record_io) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_IO, &highvdeo_state::record_io); +} -MACHINE_CONFIG_START(highvdeo_state::ciclone) +void highvdeo_state::ciclone(machine_config &config) +{ tv_tcf(config); - config.device_remove("maincpu"); - - MCFG_DEVICE_ADD("maincpu", I80186, 20000000 ) // ? - MCFG_DEVICE_PROGRAM_MAP(tv_tcf_map) - MCFG_DEVICE_IO_MAP(ciclone_io) -MACHINE_CONFIG_END + I80186(config.replace(), m_maincpu, 20000000); // ? + m_maincpu->set_addrmap(AS_PROGRAM, &highvdeo_state::tv_tcf_map); + m_maincpu->set_addrmap(AS_IO, &highvdeo_state::ciclone_io); +} -MACHINE_CONFIG_START(highvdeo_state::brasil) - MCFG_DEVICE_ADD("maincpu", I80186, 20000000 ) // fashion doesn't like 20/2 Mhz - MCFG_DEVICE_PROGRAM_MAP(brasil_map) - MCFG_DEVICE_IO_MAP(brasil_io) +void highvdeo_state::brasil(machine_config &config) +{ + I80186(config, m_maincpu, 20000000); // fashion doesn't like 20/2 Mhz + m_maincpu->set_addrmap(AS_PROGRAM, &highvdeo_state::brasil_map); + m_maincpu->set_addrmap(AS_IO, &highvdeo_state::brasil_io); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(400, 300) - MCFG_SCREEN_VISIBLE_AREA(0, 400-1, 0, 300-1) - MCFG_SCREEN_UPDATE_DRIVER(highvdeo_state, screen_update_brasil) - MCFG_SCREEN_VBLANK_CALLBACK(ASSERTLINE("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(400, 300); + screen.set_visarea(0, 400-1, 0, 300-1); + screen.set_screen_update(FUNC(highvdeo_state::screen_update_brasil)); + screen.screen_vblank().set_inputline(m_maincpu, INPUT_LINE_NMI, ASSERT_LINE); PALETTE(config, m_palette, palette_device::RGB_565); /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("oki", OKIM6376, XTAL(12'000'000)/2/2/20)//Guess, gives same sample rate as previous emulation - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_CONFIG_END + OKIM6376(config, m_okim6376, XTAL(12'000'000)/2/2/20).add_route(ALL_OUTPUTS, "mono", 1.0); //Guess, gives same sample rate as previous emulation +} -MACHINE_CONFIG_START(highvdeo_state::fashion) +void highvdeo_state::fashion(machine_config &config) +{ brasil(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_IO_MAP(fashion_io) -MACHINE_CONFIG_END -MACHINE_CONFIG_START(highvdeo_state::grancapi) - MCFG_DEVICE_ADD("maincpu", I80186, 20000000 ) - MCFG_DEVICE_PROGRAM_MAP(brasil_map) - MCFG_DEVICE_IO_MAP(grancapi_io) + m_maincpu->set_addrmap(AS_IO, &highvdeo_state::fashion_io); +} + +void highvdeo_state::grancapi(machine_config &config) +{ + I80186(config, m_maincpu, 20000000); + m_maincpu->set_addrmap(AS_PROGRAM, &highvdeo_state::brasil_map); + m_maincpu->set_addrmap(AS_IO, &highvdeo_state::grancapi_io); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(400, 300) - MCFG_SCREEN_VISIBLE_AREA(0, 400-1, 0, 300-1) - MCFG_SCREEN_UPDATE_DRIVER(highvdeo_state, screen_update_brasil) - MCFG_SCREEN_VBLANK_CALLBACK(ASSERTLINE("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(400, 300); + screen.set_visarea(0, 400-1, 0, 300-1); + screen.set_screen_update(FUNC(highvdeo_state::screen_update_brasil)); + screen.screen_vblank().set_inputline(m_maincpu, INPUT_LINE_NMI, ASSERT_LINE); PALETTE(config, m_palette, palette_device::RGB_565); /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("oki", OKIM6376, XTAL(12'000'000)/2/2/20)//Guess, gives same sample rate as previous emulation - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_CONFIG_END + OKIM6376(config, m_okim6376, XTAL(12'000'000)/2/2/20).add_route(ALL_OUTPUTS, "mono", 1.0); //Guess, gives same sample rate as previous emulation +} -MACHINE_CONFIG_START(highvdeo_state::magicbom) - MCFG_DEVICE_ADD("maincpu", I80186, 20000000 ) - MCFG_DEVICE_PROGRAM_MAP(brasil_map) - MCFG_DEVICE_IO_MAP(magicbom_io) +void highvdeo_state::magicbom(machine_config &config) +{ + I80186(config, m_maincpu, 20000000); + m_maincpu->set_addrmap(AS_PROGRAM, &highvdeo_state::brasil_map); + m_maincpu->set_addrmap(AS_IO, &highvdeo_state::magicbom_io); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(400, 300) - MCFG_SCREEN_VISIBLE_AREA(0, 400-1, 0, 300-1) - MCFG_SCREEN_UPDATE_DRIVER(highvdeo_state, screen_update_brasil) - MCFG_SCREEN_VBLANK_CALLBACK(ASSERTLINE("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(400, 300); + screen.set_visarea(0, 400-1, 0, 300-1); + screen.set_screen_update(FUNC(highvdeo_state::screen_update_brasil)); + screen.screen_vblank().set_inputline(m_maincpu, INPUT_LINE_NMI, ASSERT_LINE); PALETTE(config, m_palette, palette_device::RGB_565); /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("oki", OKIM6376, XTAL(12'000'000)/2/2/20)//Guess, gives same sample rate as previous emulation - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_CONFIG_END + OKIM6376(config, m_okim6376, XTAL(12'000'000)/2/2/20).add_route(ALL_OUTPUTS, "mono", 1.0); //Guess, gives same sample rate as previous emulation +} ROM_START( tour4000 ) diff --git a/src/mame/drivers/hitme.cpp b/src/mame/drivers/hitme.cpp index a0aef7850e8..85f00383a99 100644 --- a/src/mame/drivers/hitme.cpp +++ b/src/mame/drivers/hitme.cpp @@ -314,22 +314,22 @@ void hitme_state::machine_reset() m_timeout_time = attotime::zero; } -MACHINE_CONFIG_START(hitme_state::hitme) - +void hitme_state::hitme(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", I8080, MASTER_CLOCK/16) - MCFG_DEVICE_PROGRAM_MAP(hitme_map) - MCFG_DEVICE_IO_MAP(hitme_portmap) + I8080(config, m_maincpu, MASTER_CLOCK/16); + m_maincpu->set_addrmap(AS_PROGRAM, &hitme_state::hitme_map); + m_maincpu->set_addrmap(AS_IO, &hitme_state::hitme_portmap); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(40*8, 19*10) - MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 19*10-1) - MCFG_SCREEN_UPDATE_DRIVER(hitme_state, screen_update_hitme) - 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(0)); + m_screen->set_size(40*8, 19*10); + m_screen->set_visarea(0*8, 40*8-1, 0*8, 19*10-1); + m_screen->set_screen_update(FUNC(hitme_state::screen_update_hitme)); + m_screen->set_palette("palette"); GFXDECODE(config, m_gfxdecode, "palette", gfx_hitme); PALETTE(config, "palette", palette_device::MONOCHROME); @@ -337,7 +337,7 @@ MACHINE_CONFIG_START(hitme_state::hitme) /* sound hardware */ SPEAKER(config, "mono").front_center(); DISCRETE(config, m_discrete, hitme_discrete).add_route(ALL_OUTPUTS, "mono", 1.0); -MACHINE_CONFIG_END +} @@ -348,19 +348,19 @@ MACHINE_CONFIG_END Barricade or is the resolution set by a dip switch? */ -MACHINE_CONFIG_START(hitme_state::barricad) +void hitme_state::barricad(machine_config &config) +{ hitme(config); /* video hardware */ - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_SIZE(32*8, 24*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 24*8-1) - MCFG_SCREEN_UPDATE_DRIVER(hitme_state, screen_update_barricad) + m_screen->set_size(32*8, 24*8); + m_screen->set_visarea(0*8, 32*8-1, 0*8, 24*8-1); + m_screen->set_screen_update(FUNC(hitme_state::screen_update_barricad)); m_gfxdecode->set_info(gfx_barricad); MCFG_VIDEO_START_OVERRIDE(hitme_state,barricad) -MACHINE_CONFIG_END +} diff --git a/src/mame/drivers/holeland.cpp b/src/mame/drivers/holeland.cpp index 8138b434bc7..1be272f5e98 100644 --- a/src/mame/drivers/holeland.cpp +++ b/src/mame/drivers/holeland.cpp @@ -274,13 +274,13 @@ static GFXDECODE_START( gfx_crzrally ) GFXDECODE_END -MACHINE_CONFIG_START(holeland_state::holeland) - +void holeland_state::holeland(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, 3355700) /* measured 298ns on PCB */ - MCFG_DEVICE_PROGRAM_MAP(holeland_map) - MCFG_DEVICE_IO_MAP(io_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", holeland_state, irq0_line_hold) + Z80(config, m_maincpu, 3355700); /* measured 298ns on PCB */ + m_maincpu->set_addrmap(AS_PROGRAM, &holeland_state::holeland_map); + m_maincpu->set_addrmap(AS_IO, &holeland_state::io_map); + m_maincpu->set_vblank_int("screen", FUNC(holeland_state::irq0_line_hold)); LS259(config, m_latch); // 3J m_latch->parallel_out_cb().set(FUNC(holeland_state::pal_offs_w)).mask(0x03); @@ -291,13 +291,13 @@ MACHINE_CONFIG_START(holeland_state::holeland) 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*16, 32*16) - MCFG_SCREEN_VISIBLE_AREA(0*16, 32*16-1, 2*16, 30*16-1) - MCFG_SCREEN_UPDATE_DRIVER(holeland_state, screen_update_holeland) - 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*16, 32*16); + screen.set_visarea(0*16, 32*16-1, 2*16, 30*16-1); + screen.set_screen_update(FUNC(holeland_state::screen_update_holeland)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_holeland); PALETTE(config, m_palette, palette_device::RGB_444_PROMS, "proms", 256); @@ -319,7 +319,7 @@ MACHINE_CONFIG_START(holeland_state::holeland) sp0256_device &speech(SP0256(config, "speech", 3355700)); /* measured 298ns on PCB */ speech.data_request_callback().set_inputline("maincpu", INPUT_LINE_NMI); speech.add_route(ALL_OUTPUTS, "mono", 1.0); -MACHINE_CONFIG_END +} /* @@ -355,13 +355,13 @@ Notes: */ -MACHINE_CONFIG_START(holeland_state::crzrally) - +void holeland_state::crzrally(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, 20000000/4) /* 5 MHz */ - MCFG_DEVICE_PROGRAM_MAP(crzrally_map) - MCFG_DEVICE_IO_MAP(io_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", holeland_state, irq0_line_hold) + Z80(config, m_maincpu, 20000000/4); /* 5 MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &holeland_state::crzrally_map); + m_maincpu->set_addrmap(AS_IO, &holeland_state::io_map); + m_maincpu->set_vblank_int("screen", FUNC(holeland_state::irq0_line_hold)); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_1); @@ -372,13 +372,13 @@ MACHINE_CONFIG_START(holeland_state::crzrally) WATCHDOG_TIMER(config, "watchdog"); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(59) - 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(holeland_state, screen_update_crzrally) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(59); + 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(holeland_state::screen_update_crzrally)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_crzrally); PALETTE(config, m_palette, palette_device::RGB_444_PROMS, "proms", 256); @@ -396,7 +396,7 @@ MACHINE_CONFIG_START(holeland_state::crzrally) ay2.port_a_read_callback().set_ioport("DSW1"); ay2.port_b_read_callback().set_ioport("DSW2"); ay2.add_route(ALL_OUTPUTS, "mono", 0.25); -MACHINE_CONFIG_END +} /*************************************************************************** diff --git a/src/mame/drivers/homelab.cpp b/src/mame/drivers/homelab.cpp index cb5aa1c3e46..9e2165554f0 100644 --- a/src/mame/drivers/homelab.cpp +++ b/src/mame/drivers/homelab.cpp @@ -752,9 +752,9 @@ QUICKLOAD_LOAD_MEMBER( homelab_state,homelab) /* Machine driver */ MACHINE_CONFIG_START(homelab_state::homelab) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, XTAL(8'000'000) / 2) - MCFG_DEVICE_PROGRAM_MAP(homelab2_mem) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", homelab_state, homelab_frame) + Z80(config, m_maincpu, XTAL(8'000'000) / 2); + m_maincpu->set_addrmap(AS_PROGRAM, &homelab_state::homelab2_mem); + m_maincpu->set_vblank_int("screen", FUNC(homelab_state::homelab_frame)); /* video hardware */ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER, rgb_t::green())); @@ -784,9 +784,9 @@ MACHINE_CONFIG_END MACHINE_CONFIG_START(homelab_state::homelab3) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, XTAL(12'000'000) / 4) - MCFG_DEVICE_PROGRAM_MAP(homelab3_mem) - MCFG_DEVICE_IO_MAP(homelab3_io) + Z80(config, m_maincpu, XTAL(12'000'000) / 4); + m_maincpu->set_addrmap(AS_PROGRAM, &homelab_state::homelab3_mem); + m_maincpu->set_addrmap(AS_IO, &homelab_state::homelab3_io); MCFG_MACHINE_RESET_OVERRIDE(homelab_state,homelab3) /* video hardware */ @@ -817,9 +817,9 @@ MACHINE_CONFIG_END MACHINE_CONFIG_START(homelab_state::brailab4) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, XTAL(12'000'000) / 4) - MCFG_DEVICE_PROGRAM_MAP(brailab4_mem) - MCFG_DEVICE_IO_MAP(brailab4_io) + Z80(config, m_maincpu, XTAL(12'000'000) / 4); + m_maincpu->set_addrmap(AS_PROGRAM, &homelab_state::brailab4_mem); + m_maincpu->set_addrmap(AS_IO, &homelab_state::brailab4_io); MCFG_MACHINE_RESET_OVERRIDE(homelab_state,brailab4) /* video hardware */ @@ -844,8 +844,7 @@ MACHINE_CONFIG_START(homelab_state::brailab4) WAVE(config, "wave", m_cass).add_route(ALL_OUTPUTS, "speaker", 0.25); - MCFG_DEVICE_ADD("mea8000", MEA8000, 3840000) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0) + MEA8000(config, "mea8000", 3840000).add_route(ALL_OUTPUTS, "speaker", 1.0); CASSETTE(config, m_cass); MCFG_QUICKLOAD_ADD("quickload", homelab_state, homelab, "htp", attotime::from_seconds(18)) diff --git a/src/mame/drivers/homez80.cpp b/src/mame/drivers/homez80.cpp index 2bb6b6fd0b1..afe9586e22d 100644 --- a/src/mame/drivers/homez80.cpp +++ b/src/mame/drivers/homez80.cpp @@ -287,25 +287,26 @@ INTERRUPT_GEN_MEMBER(homez80_state::homez80_interrupt) m_irq ^= 1; } -MACHINE_CONFIG_START(homez80_state::homez80) +void homez80_state::homez80(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu",Z80, XTAL(8'000'000) / 2) - MCFG_DEVICE_PROGRAM_MAP(homez80_mem) - MCFG_DEVICE_IO_MAP(homez80_io) - MCFG_DEVICE_PERIODIC_INT_DRIVER(homez80_state, homez80_interrupt, 50) + Z80(config, m_maincpu, XTAL(8'000'000) / 2); + m_maincpu->set_addrmap(AS_PROGRAM, &homez80_state::homez80_mem); + m_maincpu->set_addrmap(AS_IO, &homez80_state::homez80_io); + m_maincpu->set_periodic_int(FUNC(homez80_state::homez80_interrupt), attotime::from_hz(50)); /* 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(homez80_state, screen_update) - MCFG_SCREEN_SIZE(344, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0, 344-1, 0, 32*8-1) - 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(homez80_state::screen_update)); + screen.set_size(344, 32*8); + screen.set_visarea(0, 344-1, 0, 32*8-1); + screen.set_palette("palette"); PALETTE(config, "palette", palette_device::MONOCHROME); GFXDECODE(config, "gfxdecode", "palette", gfx_homez80); -MACHINE_CONFIG_END +} /* ROM definition */ ROM_START( homez80 ) diff --git a/src/mame/drivers/horizon.cpp b/src/mame/drivers/horizon.cpp index eb7f424f389..b34eabc09a6 100644 --- a/src/mame/drivers/horizon.cpp +++ b/src/mame/drivers/horizon.cpp @@ -179,7 +179,7 @@ static void horizon_s100_cards(device_slot_interface &device) //************************************************************************** //------------------------------------------------- -// MACHINE_CONFIG( horizon ) +// machine_config( horizon ) //------------------------------------------------- void horizon_state::horizon(machine_config &config) diff --git a/src/mame/drivers/hornet.cpp b/src/mame/drivers/hornet.cpp index 115a1b4a689..9416abc126b 100644 --- a/src/mame/drivers/hornet.cpp +++ b/src/mame/drivers/hornet.cpp @@ -1064,8 +1064,8 @@ double hornet_state::adc12138_input_callback(uint8_t input) return (double)(value) / 2047.0; } -MACHINE_CONFIG_START(hornet_state::hornet) - +void hornet_state::hornet(machine_config &config) +{ /* basic machine hardware */ PPC403GA(config, m_maincpu, XTAL(64'000'000) / 2); /* PowerPC 403GA 32MHz */ m_maincpu->set_addrmap(AS_PROGRAM, &hornet_state::hornet_map); @@ -1125,9 +1125,10 @@ MACHINE_CONFIG_START(hornet_state::hornet) KONPPC(config, m_konppc, 0); m_konppc->set_num_boards(1); m_konppc->set_cbboard_type(konppc_device::CGBOARD_TYPE_HORNET); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(hornet_state::hornet_2board) +void hornet_state::hornet_2board(machine_config &config) +{ hornet(config); ADSP21062(config, m_dsp2, XTAL(36'000'000)); @@ -1170,16 +1171,18 @@ MACHINE_CONFIG_START(hornet_state::hornet_2board) rscreen.set_screen_update(FUNC(hornet_state::screen_update_rscreen)); m_konppc->set_num_boards(2); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(hornet_state::terabrst) +void hornet_state::terabrst(machine_config &config) +{ hornet(config); M68000(config, m_gn680, XTAL(32'000'000) / 2); /* 16MHz */ m_gn680->set_addrmap(AS_PROGRAM, &hornet_state::gn680_memmap); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(hornet_state::hornet_2board_v2) +void hornet_state::hornet_2board_v2(machine_config &config) +{ hornet_2board(config); VOODOO_2(config.replace(), m_voodoo[0], STD_VOODOO_2_CLOCK); @@ -1195,7 +1198,7 @@ MACHINE_CONFIG_START(hornet_state::hornet_2board_v2) m_voodoo[1]->set_screen_tag("rscreen"); m_voodoo[1]->set_cpu_tag("dsp2"); // ?? m_voodoo[1]->vblank_callback().set(FUNC(hornet_state::voodoo_vblank_1)); -MACHINE_CONFIG_END +} void hornet_state::sscope2(machine_config &config) { diff --git a/src/mame/drivers/hotblock.cpp b/src/mame/drivers/hotblock.cpp index 7c63d22dc6b..c053f266313 100644 --- a/src/mame/drivers/hotblock.cpp +++ b/src/mame/drivers/hotblock.cpp @@ -207,21 +207,21 @@ static INPUT_PORTS_START( hotblock ) INPUT_PORTS_END -MACHINE_CONFIG_START(hotblock_state::hotblock) - +void hotblock_state::hotblock(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", I8088, 24_MHz_XTAL / 3) // Unknown clock - MCFG_DEVICE_PROGRAM_MAP(hotblock_map) - MCFG_DEVICE_IO_MAP(hotblock_io) + I8088(config, m_maincpu, 24_MHz_XTAL / 3); // Unknown clock + m_maincpu->set_addrmap(AS_PROGRAM, &hotblock_state::hotblock_map); + m_maincpu->set_addrmap(AS_IO, &hotblock_state::hotblock_io); // I2CMEM(config, m_i2cmem, 0).set_page_size(16).set_data_size(0x200); // 24C04 /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(24_MHz_XTAL / 3, 512, 0, 320, 312, 0, 200) // 15.625 kHz horizontal??? - MCFG_SCREEN_UPDATE_DRIVER(hotblock_state, screen_update) - MCFG_SCREEN_PALETTE("palette") - MCFG_SCREEN_VBLANK_CALLBACK(INPUTLINE("maincpu", INPUT_LINE_NMI)) // right? + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_raw(24_MHz_XTAL / 3, 512, 0, 320, 312, 0, 200); // 15.625 kHz horizontal??? + screen.set_screen_update(FUNC(hotblock_state::screen_update)); + screen.set_palette(m_palette); + screen.screen_vblank().set_inputline(m_maincpu, INPUT_LINE_NMI); // right? PALETTE(config, m_palette).set_format(palette_device::xBGR_555, 0x200/2); @@ -232,7 +232,7 @@ MACHINE_CONFIG_START(hotblock_state::hotblock) aysnd.port_a_read_callback().set_ioport("P1"); aysnd.port_b_read_callback().set_ioport("P2"); aysnd.add_route(ALL_OUTPUTS, "mono", 0.50); -MACHINE_CONFIG_END +} ROM_START( hotblock ) ROM_REGION( 0x100000, "maincpu", 0 ) diff --git a/src/mame/drivers/hotstuff.cpp b/src/mame/drivers/hotstuff.cpp index 6bde0ec44ac..e47e5c70e9c 100644 --- a/src/mame/drivers/hotstuff.cpp +++ b/src/mame/drivers/hotstuff.cpp @@ -101,19 +101,19 @@ void hotstuff_state::hotstuff_map(address_map &map) static INPUT_PORTS_START( hotstuff ) INPUT_PORTS_END -MACHINE_CONFIG_START(hotstuff_state::hotstuff) - - MCFG_DEVICE_ADD("maincpu", M68000, 16000000) - MCFG_DEVICE_PROGRAM_MAP(hotstuff_map) +void hotstuff_state::hotstuff(machine_config &config) +{ + M68000(config, m_maincpu, 16000000); + m_maincpu->set_addrmap(AS_PROGRAM, &hotstuff_state::hotstuff_map); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(128*8, 64*8) - MCFG_SCREEN_VISIBLE_AREA((0x10*4)+8, 101*8-1, 0*8, 33*8-1) - MCFG_SCREEN_UPDATE_DRIVER(hotstuff_state, screen_update_hotstuff) + 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(128*8, 64*8); + screen.set_visarea((0x10*4)+8, 101*8-1, 0*8, 33*8-1); + screen.set_screen_update(FUNC(hotstuff_state::screen_update_hotstuff)); - MCFG_PALETTE_ADD("palette", 0x200) + PALETTE(config, "palette").set_entries(0x200); scc8530_device& scc1(SCC8530N(config, "scc1", 4915200)); scc1.out_int_callback().set_inputline(m_maincpu, M68K_IRQ_4); @@ -123,7 +123,7 @@ MACHINE_CONFIG_START(hotstuff_state::hotstuff) MC146818(config, m_rtc, XTAL(32'768)); m_rtc->irq().set_inputline("maincpu", M68K_IRQ_1); -MACHINE_CONFIG_END +} diff --git a/src/mame/drivers/hp16500.cpp b/src/mame/drivers/hp16500.cpp index f3bc942d289..4ed4e5bd469 100644 --- a/src/mame/drivers/hp16500.cpp +++ b/src/mame/drivers/hp16500.cpp @@ -413,14 +413,15 @@ uint32_t hp16500_state::screen_update_hp16500(screen_device &screen, bitmap_rgb3 return 0; } -MACHINE_CONFIG_START(hp16500_state::hp1650) +void hp16500_state::hp1650(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 10000000) - MCFG_DEVICE_PROGRAM_MAP(hp1650_map) + M68000(config, m_maincpu, 10000000); + m_maincpu->set_addrmap(AS_PROGRAM, &hp16500_state::hp1650_map); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(25000000, 0x330, 0, 0x250, 0x198, 0, 0x180 ) - MCFG_SCREEN_UPDATE_DEVICE( "crtc", mc6845_device, screen_update ) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_raw(25000000, 0x330, 0, 0x250, 0x198, 0, 0x180); + screen.set_screen_update("crtc", FUNC(mc6845_device::screen_update)); mc6845_device &crtc(MC6845(config, "crtc", 25000000/9)); crtc.set_screen("screen"); @@ -429,20 +430,21 @@ MACHINE_CONFIG_START(hp16500_state::hp1650) crtc.set_update_row_callback(FUNC(hp16500_state::crtc_update_row_1650), this); crtc.out_vsync_callback().set(FUNC(hp16500_state::vsync_changed)); - MCFG_DEVICE_ADD("epci", MC2661, 5000000) + MC2661(config, "epci", 5000000); SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(hp16500_state::hp1651) +void hp16500_state::hp1651(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 10000000) - MCFG_DEVICE_PROGRAM_MAP(hp1651_map) + M68000(config, m_maincpu, 10000000); + m_maincpu->set_addrmap(AS_PROGRAM, &hp16500_state::hp1651_map); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(25000000, 0x330, 0, 0x250, 0x198, 0, 0x180 ) - MCFG_SCREEN_UPDATE_DEVICE( "crtc", mc6845_device, screen_update ) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_raw(25000000, 0x330, 0, 0x250, 0x198, 0, 0x180); + screen.set_screen_update("crtc", FUNC(mc6845_device::screen_update)); mc6845_device &crtc(MC6845(config, "crtc", 25000000/9)); crtc.set_screen("screen"); @@ -451,20 +453,21 @@ MACHINE_CONFIG_START(hp16500_state::hp1651) crtc.set_update_row_callback(FUNC(hp16500_state::crtc_update_row_1650), this); crtc.out_vsync_callback().set(FUNC(hp16500_state::vsync_changed)); - MCFG_DEVICE_ADD("epci", MC2661, 5000000) + MC2661(config, "epci", 5000000); SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(hp16500_state::hp16500a) +void hp16500_state::hp16500a(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 10000000) - MCFG_DEVICE_PROGRAM_MAP(hp16500a_map) + M68000(config, m_maincpu, 10000000); + m_maincpu->set_addrmap(AS_PROGRAM, &hp16500_state::hp16500a_map); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(25000000, 0x320, 0, 0x240, 0x19c, 0, 0x170 ) - MCFG_SCREEN_UPDATE_DEVICE( "crtc", mc6845_device, screen_update ) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_raw(25000000, 0x320, 0, 0x240, 0x19c, 0, 0x170); + screen.set_screen_update("crtc", FUNC(mc6845_device::screen_update)); mc6845_device &crtc(MC6845(config, "crtc", 25000000/9)); crtc.set_screen("screen"); @@ -475,7 +478,7 @@ MACHINE_CONFIG_START(hp16500_state::hp16500a) SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); -MACHINE_CONFIG_END +} void hp16500_state::hp16500b(machine_config &config) { diff --git a/src/mame/drivers/hp2100.cpp b/src/mame/drivers/hp2100.cpp index 4a4457f187e..2ea6920c822 100644 --- a/src/mame/drivers/hp2100.cpp +++ b/src/mame/drivers/hp2100.cpp @@ -249,8 +249,9 @@ private: static INPUT_PORTS_START( hp2100 ) INPUT_PORTS_END -MACHINE_CONFIG_START(hp2100_state::hp2100) -MACHINE_CONFIG_END +void hp2100_state::hp2100(machine_config &config) +{ +} ROM_START( hp2100 ) ROM_REGION( 0x0400, "maincpu", 0 ) diff --git a/src/mame/drivers/hp2640.cpp b/src/mame/drivers/hp2640.cpp index 816d403b9f6..ef357b12e3e 100644 --- a/src/mame/drivers/hp2640.cpp +++ b/src/mame/drivers/hp2640.cpp @@ -966,11 +966,12 @@ void hp2645_state::cpu_io_map(address_map &map) map(0x00, 0xff).w(FUNC(hp2645_state::mode_byte_w)); } -MACHINE_CONFIG_START(hp2645_state::hp2645) - MCFG_DEVICE_ADD("cpu" , I8080A , SYS_CLOCK / 2) - MCFG_DEVICE_PROGRAM_MAP(cpu_mem_map) - MCFG_DEVICE_IO_MAP(cpu_io_map) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(hp2645_state , irq_callback) +void hp2645_state::hp2645(machine_config &config) +{ + I8080A(config, m_cpu, SYS_CLOCK / 2); + m_cpu->set_addrmap(AS_PROGRAM, &hp2645_state::cpu_mem_map); + m_cpu->set_addrmap(AS_IO, &hp2645_state::cpu_io_map); + m_cpu->set_irq_acknowledge_callback(FUNC(hp2645_state::irq_callback)); TIMER(config, m_timer_10ms).configure_generic(FUNC(hp2645_state::timer_10ms_exp)); TIMER(config, m_timer_cursor_blink_inh).configure_generic(FUNC(hp2645_state::timer_cursor_blink_inh)); @@ -1005,8 +1006,7 @@ MACHINE_CONFIG_START(hp2645_state::hp2645) SPEAKER(config, "mono").front_center(); BEEP(config, m_beep, BEEP_FREQUENCY).add_route(ALL_OUTPUTS, "mono", 1.00); TIMER(config, m_timer_beep).configure_generic(FUNC(hp2645_state::timer_beep_exp)); - -MACHINE_CONFIG_END +} ROM_START(hp2645) ROM_REGION(0x5800 , "cpu" , 0) diff --git a/src/mame/drivers/hp49gp.cpp b/src/mame/drivers/hp49gp.cpp index bd88261dcf0..934a7f2a724 100644 --- a/src/mame/drivers/hp49gp.cpp +++ b/src/mame/drivers/hp49gp.cpp @@ -283,18 +283,19 @@ void hp49gp_state::init_hp49gp() lcd_spi_init(); } -MACHINE_CONFIG_START(hp49gp_state::hp49gp) - MCFG_DEVICE_ADD("maincpu", ARM9, 400000000) - MCFG_DEVICE_PROGRAM_MAP(hp49gp_map) +void hp49gp_state::hp49gp(machine_config &config) +{ + ARM9(config, m_maincpu, 400000000); + m_maincpu->set_addrmap(AS_PROGRAM, &hp49gp_state::hp49gp_map); - MCFG_PALETTE_ADD("palette", 32768) + PALETTE(config, "palette").set_entries(32768); - MCFG_SCREEN_ADD("screen", LCD) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_SIZE(160, 85) - MCFG_SCREEN_VISIBLE_AREA(0, 131 - 1, 0, 80 - 1) - MCFG_SCREEN_UPDATE_DEVICE("s3c2410", s3c2410_device, screen_update) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_size(160, 85); + screen.set_visarea(0, 131 - 1, 0, 80 - 1); + screen.set_screen_update("s3c2410", FUNC(s3c2410_device::screen_update)); S3C2410(config, m_s3c2410, 12000000); m_s3c2410->set_palette_tag("palette"); @@ -302,7 +303,7 @@ MACHINE_CONFIG_START(hp49gp_state::hp49gp) m_s3c2410->gpio_port_r_callback().set(FUNC(hp49gp_state::s3c2410_gpio_port_r)); m_s3c2410->gpio_port_w_callback().set(FUNC(hp49gp_state::s3c2410_gpio_port_w)); m_s3c2410->set_lcd_flags(S3C24XX_INTERFACE_LCD_REVERSE); -MACHINE_CONFIG_END +} static INPUT_PORTS_START( hp49gp ) PORT_START("ROW1") diff --git a/src/mame/drivers/hp9825.cpp b/src/mame/drivers/hp9825.cpp index 53a180be86b..39c92bbe7cc 100644 --- a/src/mame/drivers/hp9825.cpp +++ b/src/mame/drivers/hp9825.cpp @@ -622,7 +622,8 @@ void hp9825_state::set_dmar_slot(unsigned slot , int state) m_io_sys->set_dmar(uint8_t(sc) , state); } -MACHINE_CONFIG_START(hp9825_state::hp9825_base) +void hp9825_state::hp9825_base(machine_config &config) +{ HP_09825_67907(config , m_cpu , MAIN_CLOCK); // Just guessing... settings borrowed from hp9845 m_cpu->set_rw_cycles(6 , 6); @@ -673,7 +674,7 @@ MACHINE_CONFIG_START(hp9825_state::hp9825_base) } config.set_default_layout(layout_hp9825); -MACHINE_CONFIG_END +} #define IOP_MASK(x) BIT_MASK<ioport_value>((x)) @@ -844,10 +845,11 @@ private: void cpu_mem_map(address_map &map); }; -MACHINE_CONFIG_START(hp9825b_state::hp9825b) +void hp9825b_state::hp9825b(machine_config &config) +{ hp9825_base(config); m_cpu->set_addrmap(AS_PROGRAM , &hp9825b_state::cpu_mem_map); -MACHINE_CONFIG_END +} void hp9825b_state::cpu_mem_map(address_map &map) { @@ -901,12 +903,13 @@ private: bool is_rom(uint16_t addr , uint8_t cycle_type) const; }; -MACHINE_CONFIG_START(hp9825t_state::hp9825t) +void hp9825t_state::hp9825t(machine_config &config) +{ hp9825_base(config); m_cpu->set_addrmap(AS_PROGRAM , &hp9825t_state::cpu_mem_map); m_cpu->stm_cb().set(FUNC(hp9825t_state::stm)); m_cpu->opcode_cb().set(FUNC(hp9825t_state::opcode_fetch)); -MACHINE_CONFIG_END +} void hp9825t_state::machine_start() { diff --git a/src/mame/drivers/hp9845.cpp b/src/mame/drivers/hp9845.cpp index cf8dd47754c..d4f64f10393 100644 --- a/src/mame/drivers/hp9845.cpp +++ b/src/mame/drivers/hp9845.cpp @@ -3532,35 +3532,37 @@ const uint8_t hp9845t_state::m_back_arrow_shape[] = { 0xf8, 0xf0, 0xe0, 0xc0, 0x80, 0x00, 0x00 }; -MACHINE_CONFIG_START(hp9845_state::hp9845a) - //MCFG_DEVICE_ADD("lpu", HP_5061_3010, XTAL(11'400'000)) - //MCFG_DEVICE_ADD("ppu", HP_5061_3011, XTAL(11'400'000)) +void hp9845_state::hp9845a(machine_config &config) +{ + //HP_5061_3010(config, m_lpu, XTAL(11'400'000)); + //HP_5061_3011(config, m_ppu, XTAL(11'400'000)); // video hardware - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_UPDATE_DRIVER(hp9845_state, screen_update) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) - MCFG_SCREEN_SIZE(560, 455) - MCFG_SCREEN_VISIBLE_AREA(0, 560-1, 0, 455-1) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_screen_update(FUNC(hp9845_state::screen_update)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); + screen.set_size(560, 455); + screen.set_visarea(0, 560-1, 0, 455-1); SOFTWARE_LIST(config, "optrom_list").set_original("hp9845a_rom"); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(hp9845_state::hp9835a) - //MCFG_DEVICE_ADD("lpu", HP_5061_3001, XTAL(11'400'000)) - //MCFG_DEVICE_ADD("ppu", HP_5061_3001, XTAL(11'400'000)) +void hp9845_state::hp9835a(machine_config &config) +{ + //HP_5061_3001(config, m_lpu, XTAL(11'400'000)); + //HP_5061_301(1config, m_ppu, XTAL(11'400'000)); // video hardware - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_UPDATE_DRIVER(hp9845_state, screen_update) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) - MCFG_SCREEN_SIZE(560, 455) - MCFG_SCREEN_VISIBLE_AREA(0, 560-1, 0, 455-1) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_screen_update(FUNC(hp9845_state::screen_update)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); + screen.set_size(560, 455); + screen.set_visarea(0, 560-1, 0, 455-1); SOFTWARE_LIST(config, "optrom_list").set_original("hp9835a_rom"); -MACHINE_CONFIG_END +} /* Global memory map in blocks of 32 kwords / 64 kbytes each: @@ -3623,7 +3625,8 @@ void hp9845_base_state::ppu_io_map(address_map &map) map(HP_MAKE_IOADDR(T15_PA, 0), HP_MAKE_IOADDR(T15_PA, 3)).rw(m_t15, FUNC(hp_taco_device::reg_r), FUNC(hp_taco_device::reg_w)); } -MACHINE_CONFIG_START(hp9845_base_state::hp9845_base) +void hp9845_base_state::hp9845_base(machine_config &config) +{ HP_5061_3001(config , m_lpu , 5700000); m_lpu->set_addrmap(AS_PROGRAM , &hp9845_base_state::global_mem_map); m_lpu->set_9845_boot_mode(true); @@ -3655,8 +3658,7 @@ MACHINE_CONFIG_START(hp9845_base_state::hp9845_base) // Beeper SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("beeper" , BEEP , KEY_SCAN_OSCILLATOR / 512) - MCFG_SOUND_ROUTE(ALL_OUTPUTS , "mono" , 0.50) + BEEP(config, m_beeper , KEY_SCAN_OSCILLATOR / 512).add_route(ALL_OUTPUTS , "mono" , 0.50); TIMER(config, m_beep_timer).configure_generic(FUNC(hp9845_base_state::beeper_off)); @@ -3674,22 +3676,14 @@ MACHINE_CONFIG_START(hp9845_base_state::hp9845_base) // right-hand side and left-hand side drawers, respectively. // Here we do away with the distinction between LPU & PPU ROMs: in the end they // are visible to both CPUs at the same addresses. - MCFG_DEVICE_ADD("drawer1", HP_OPTROM_SLOT, 0) - MCFG_DEVICE_SLOT_INTERFACE(hp_optrom_slot_devices, NULL, false) - MCFG_DEVICE_ADD("drawer2", HP_OPTROM_SLOT, 0) - MCFG_DEVICE_SLOT_INTERFACE(hp_optrom_slot_devices, NULL, false) - MCFG_DEVICE_ADD("drawer3", HP_OPTROM_SLOT, 0) - MCFG_DEVICE_SLOT_INTERFACE(hp_optrom_slot_devices, NULL, false) - MCFG_DEVICE_ADD("drawer4", HP_OPTROM_SLOT, 0) - MCFG_DEVICE_SLOT_INTERFACE(hp_optrom_slot_devices, NULL, false) - MCFG_DEVICE_ADD("drawer5", HP_OPTROM_SLOT, 0) - MCFG_DEVICE_SLOT_INTERFACE(hp_optrom_slot_devices, NULL, false) - MCFG_DEVICE_ADD("drawer6", HP_OPTROM_SLOT, 0) - MCFG_DEVICE_SLOT_INTERFACE(hp_optrom_slot_devices, NULL, false) - MCFG_DEVICE_ADD("drawer7", HP_OPTROM_SLOT, 0) - MCFG_DEVICE_SLOT_INTERFACE(hp_optrom_slot_devices, NULL, false) - MCFG_DEVICE_ADD("drawer8", HP_OPTROM_SLOT, 0) - MCFG_DEVICE_SLOT_INTERFACE(hp_optrom_slot_devices, NULL, false) + HP_OPTROM_SLOT(config, "drawer1", 0); + HP_OPTROM_SLOT(config, "drawer2", 0); + HP_OPTROM_SLOT(config, "drawer3", 0); + HP_OPTROM_SLOT(config, "drawer4", 0); + HP_OPTROM_SLOT(config, "drawer5", 0); + HP_OPTROM_SLOT(config, "drawer6", 0); + HP_OPTROM_SLOT(config, "drawer7", 0); + HP_OPTROM_SLOT(config, "drawer8", 0); // I/O slots for (unsigned slot = 0; slot < 4; slot++) { @@ -3709,7 +3703,7 @@ MACHINE_CONFIG_START(hp9845_base_state::hp9845_base) prt.irq().set(FUNC(hp9845_base_state::prt_irl_w)); prt.flg().set([this](int state) { m_io_sys->set_flg(PRINTER_PA , state); }); prt.sts().set([this](int state) { m_io_sys->set_sts(PRINTER_PA , state); }); -MACHINE_CONFIG_END +} void hp9845b_state::hp9845b(machine_config &config) { @@ -3728,19 +3722,18 @@ void hp9845b_state::hp9845b(machine_config &config) SOFTWARE_LIST(config, "optrom_list").set_original("hp9845b_rom"); } -MACHINE_CONFIG_START(hp9845c_state::hp9845c) +void hp9845c_state::hp9845c(machine_config &config) +{ hp9845_base(config); // video hardware - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_DRIVER(hp9845c_state, screen_update) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, hp9845c_state, vblank_w)) - MCFG_SCREEN_RAW_PARAMS(VIDEO_770_PIXEL_CLOCK , VIDEO_770_HTOTAL , VIDEO_770_HBEND , VIDEO_770_HBSTART , VIDEO_770_VTOTAL , VIDEO_770_VBEND , VIDEO_770_VBSTART) - MCFG_PALETTE_ADD("palette", 24) + m_screen->set_screen_update(FUNC(hp9845c_state::screen_update)); + m_screen->screen_vblank().set(FUNC(hp9845c_state::vblank_w)); + m_screen->set_raw(VIDEO_770_PIXEL_CLOCK , VIDEO_770_HTOTAL , VIDEO_770_HBEND , VIDEO_770_HBSTART , VIDEO_770_VTOTAL , VIDEO_770_VBEND , VIDEO_770_VBSTART); + PALETTE(config, m_palette).set_entries(24); TIMER(config, "scantimer").configure_scanline(FUNC(hp9845c_state::scanline_timer), "screen", 0, 1); SOFTWARE_LIST(config, "optrom_list").set_original("hp9845b_rom"); - -MACHINE_CONFIG_END +} void hp9845t_state::hp9845t(machine_config &config) { diff --git a/src/mame/drivers/hp9k.cpp b/src/mame/drivers/hp9k.cpp index 0ecf21bc482..c10eed0913b 100644 --- a/src/mame/drivers/hp9k.cpp +++ b/src/mame/drivers/hp9k.cpp @@ -394,20 +394,21 @@ WRITE8_MEMBER( hp9k_state::kbd_put ) } -MACHINE_CONFIG_START(hp9k_state::hp9k) +void hp9k_state::hp9k(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu",M68000, XTAL(8'000'000)) - MCFG_DEVICE_PROGRAM_MAP(hp9k_mem) + M68000(config, m_maincpu, XTAL(8'000'000)); + m_maincpu->set_addrmap(AS_PROGRAM, &hp9k_state::hp9k_mem); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(HP9816_ROWX*HP9816_CHDIMX, HP9816_ROWY*HP9816_CHDIMY) - MCFG_SCREEN_VISIBLE_AREA(0, (HP9816_ROWX*HP9816_CHDIMX)-1, 0, (HP9816_ROWY*HP9816_CHDIMY)-1) - MCFG_SCREEN_UPDATE_DRIVER(hp9k_state, screen_update) - 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(0)); + screen.set_size(HP9816_ROWX*HP9816_CHDIMX, HP9816_ROWY*HP9816_CHDIMY); + screen.set_visarea(0, (HP9816_ROWX*HP9816_CHDIMX)-1, 0, (HP9816_ROWY*HP9816_CHDIMY)-1); + screen.set_screen_update(FUNC(hp9k_state::screen_update)); + screen.set_palette("palette"); GFXDECODE(config, m_gfxdecode, "palette", gfx_hp9k); PALETTE(config, "palette", palette_device::MONOCHROME); @@ -416,7 +417,7 @@ MACHINE_CONFIG_START(hp9k_state::hp9k) m_6845->set_screen("screen"); m_6845->set_show_border_area(false); m_6845->set_char_width(8); -MACHINE_CONFIG_END +} /* ROM definition */ ROM_START( hp9816 ) diff --git a/src/mame/drivers/hp9k_3xx.cpp b/src/mame/drivers/hp9k_3xx.cpp index 2baa5d17d9c..5a0d69e4311 100644 --- a/src/mame/drivers/hp9k_3xx.cpp +++ b/src/mame/drivers/hp9k_3xx.cpp @@ -334,12 +334,12 @@ void hp9k3xx_state::hp9k300(machine_config &config) config.set_default_layout(layout_hp9k_3xx); } -MACHINE_CONFIG_START(hp9k3xx_state::hp9k310) - +void hp9k3xx_state::hp9k310(machine_config &config) +{ hp9k300(config); - MCFG_DEVICE_ADD(m_maincpu, M68010, 10000000) - MCFG_DEVICE_PROGRAM_MAP(hp9k310_map) + M68010(config, m_maincpu, 10000000); + m_maincpu->set_addrmap(AS_PROGRAM, &hp9k3xx_state::hp9k310_map); add_dio16_bus(config); @@ -349,12 +349,12 @@ MACHINE_CONFIG_START(hp9k3xx_state::hp9k310) DIO32_SLOT(config, "sl3", 0, "diobus", dio32_cards, "98643", false); DIO16_SLOT(config, "sl4", 0, "diobus", dio16_cards, "98644", false); DIO16_SLOT(config, "sl5", 0, "diobus", dio16_cards, nullptr, false); +} -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(hp9k3xx_state::hp9k320) - MCFG_DEVICE_ADD(m_maincpu, M68020FPU, 16670000) - MCFG_DEVICE_PROGRAM_MAP(hp9k320_map) +void hp9k3xx_state::hp9k320(machine_config &config) +{ + M68020FPU(config, m_maincpu, 16670000); + m_maincpu->set_addrmap(AS_PROGRAM, &hp9k3xx_state::hp9k320_map); hp9k300(config); add_dio32_bus(config); @@ -366,11 +366,12 @@ MACHINE_CONFIG_START(hp9k3xx_state::hp9k320) DIO32_SLOT(config, "sl4", 0, "diobus", dio32_cards, "98620", false); DIO32_SLOT(config, "sl5", 0, "diobus", dio32_cards, "98265a", false); DIO32_SLOT(config, "sl7", 0, "diobus", dio32_cards, nullptr, false); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(hp9k3xx_state::hp9k330) - MCFG_DEVICE_ADD(m_maincpu, M68020PMMU, 16670000) - MCFG_DEVICE_PROGRAM_MAP(hp9k330_map) +void hp9k3xx_state::hp9k330(machine_config &config) +{ + M68020PMMU(config, m_maincpu, 16670000); + m_maincpu->set_addrmap(AS_PROGRAM, &hp9k3xx_state::hp9k330_map); hp9k300(config); add_dio32_bus(config); @@ -380,11 +381,12 @@ MACHINE_CONFIG_START(hp9k3xx_state::hp9k330) DIO32_SLOT(config, "sl2", 0, "diobus", dio16_cards, "98603b", false); DIO32_SLOT(config, "sl3", 0, "diobus", dio16_cards, "98644", false); DIO32_SLOT(config, "sl4", 0, "diobus", dio16_cards, nullptr, false); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(hp9k3xx_state::hp9k332) - MCFG_DEVICE_ADD(m_maincpu, M68020PMMU, 16670000) - MCFG_DEVICE_PROGRAM_MAP(hp9k332_map) +void hp9k3xx_state::hp9k332(machine_config &config) +{ + M68020PMMU(config, m_maincpu, 16670000); + m_maincpu->set_addrmap(AS_PROGRAM, &hp9k3xx_state::hp9k332_map); hp9k300(config); add_dio16_bus(config); @@ -394,22 +396,22 @@ MACHINE_CONFIG_START(hp9k3xx_state::hp9k332) DIO16_SLOT(config, "sl2", 0, "diobus", dio16_cards, "98644", false); DIO16_SLOT(config, "sl3", 0, "diobus", dio16_cards, "98543", false); DIO16_SLOT(config, "sl4", 0, "diobus", dio16_cards, nullptr, false); +} -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(hp9k3xx_state::hp9k340) +void hp9k3xx_state::hp9k340(machine_config &config) +{ hp9k320(config); - MCFG_DEVICE_REPLACE(m_maincpu, M68030, 16670000) - MCFG_DEVICE_PROGRAM_MAP(hp9k330_map) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(hp9k3xx_state::hp9k360) + M68030(config.replace(), m_maincpu, 16670000); + m_maincpu->set_addrmap(AS_PROGRAM, &hp9k3xx_state::hp9k330_map); +} +void hp9k3xx_state::hp9k360(machine_config &config) +{ hp9k300(config); - MCFG_DEVICE_ADD(m_maincpu, M68030, 25000000) - MCFG_DEVICE_PROGRAM_MAP(hp9k360_map) + M68030(config, m_maincpu, 25000000); + m_maincpu->set_addrmap(AS_PROGRAM, &hp9k3xx_state::hp9k360_map); add_dio32_bus(config); @@ -419,30 +421,32 @@ MACHINE_CONFIG_START(hp9k3xx_state::hp9k360) DIO32_SLOT(config, "sl3", 0, "diobus", dio32_cards, "98620", false); DIO32_SLOT(config, "sl4", 0, "diobus", dio32_cards, "98265a", false); DIO32_SLOT(config, "sl5", 0, "diobus", dio32_cards, nullptr, false); - -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(hp9k3xx_state::hp9k370) +void hp9k3xx_state::hp9k370(machine_config &config) +{ hp9k360(config); - MCFG_DEVICE_REPLACE(m_maincpu, M68030, 33000000) - MCFG_DEVICE_PROGRAM_MAP(hp9k370_map) -MACHINE_CONFIG_END + M68030(config.replace(), m_maincpu, 33000000); + m_maincpu->set_addrmap(AS_PROGRAM, &hp9k3xx_state::hp9k370_map); +} -MACHINE_CONFIG_START(hp9k3xx_state::hp9k380) +void hp9k3xx_state::hp9k380(machine_config &config) +{ hp9k360(config); - MCFG_DEVICE_REPLACE(m_maincpu, M68040, 25000000) - MCFG_DEVICE_PROGRAM_MAP(hp9k380_map) -MACHINE_CONFIG_END + M68040(config.replace(), m_maincpu, 25000000); + m_maincpu->set_addrmap(AS_PROGRAM, &hp9k3xx_state::hp9k380_map); +} -MACHINE_CONFIG_START(hp9k3xx_state::hp9k382) +void hp9k3xx_state::hp9k382(machine_config &config) +{ hp9k360(config); - MCFG_DEVICE_REPLACE(m_maincpu, M68040, 25000000) - MCFG_DEVICE_PROGRAM_MAP(hp9k382_map) -MACHINE_CONFIG_END + M68040(config.replace(), m_maincpu, 25000000); + m_maincpu->set_addrmap(AS_PROGRAM, &hp9k3xx_state::hp9k382_map); +} ROM_START( hp9k310 ) ROM_REGION( 0x20000, MAINCPU_TAG, 0 ) diff --git a/src/mame/drivers/hprot1.cpp b/src/mame/drivers/hprot1.cpp index a0839725314..2a30193de12 100644 --- a/src/mame/drivers/hprot1.cpp +++ b/src/mame/drivers/hprot1.cpp @@ -245,7 +245,8 @@ HD44780_PIXEL_UPDATE(hprot1_state::hprot1_pixel_update) } } -MACHINE_CONFIG_START(hprot1_state::hprot1) +void hprot1_state::hprot1(machine_config &config) +{ /* basic machine hardware */ I80C31(config, m_maincpu, XTAL(10'000'000)); m_maincpu->set_addrmap(AS_PROGRAM, &hprot1_state::i80c31_prg); @@ -255,13 +256,13 @@ MACHINE_CONFIG_START(hprot1_state::hprot1) m_maincpu->port_out_cb<3>().set(FUNC(hprot1_state::henry_p3_w)); /* 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_DEVICE("hd44780", hd44780_device, screen_update) - MCFG_SCREEN_SIZE(6*16, 9*2) - MCFG_SCREEN_VISIBLE_AREA(0, 6*16-1, 0, 9*2-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("hd44780", FUNC(hd44780_device::screen_update)); + screen.set_size(6*16, 9*2); + screen.set_visarea(0, 6*16-1, 0, 9*2-1); + screen.set_palette("palette"); PALETTE(config, "palette", FUNC(hprot1_state::hprot1_palette), 2); GFXDECODE(config, "gfxdecode", "palette", gfx_hprot1); @@ -273,40 +274,40 @@ MACHINE_CONFIG_START(hprot1_state::hprot1) /* TODO: figure out which RTC chip is in use. */ /* TODO: emulate the ADM695AN chip (watchdog/brownout reset)*/ -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(hprot1_state::hprotr8a) +void hprot1_state::hprotr8a(machine_config &config) +{ hprot1(config); - MCFG_DEVICE_REPLACE("maincpu", I80C31, 11059200) // value of X1 cristal on the PCB - MCFG_DEVICE_PROGRAM_MAP(i80c31_prg) - MCFG_DEVICE_IO_MAP(i80c31_io) + I80C31(config.replace(), m_maincpu, 11059200); // value of X1 crystal on the PCB + m_maincpu->set_addrmap(AS_PROGRAM, &hprot1_state::i80c31_prg); + m_maincpu->set_addrmap(AS_IO, &hprot1_state::i80c31_io); /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) + SPEAKER_SOUND(config, "speaker").add_route(ALL_OUTPUTS, "mono", 0.50); /* TODO: add an RS232 interface (emulate MAX232N chip) (the board has GND/VCC/RX/TX pins available in a connector) */ /* TODO: add an I2C interface (the board has GND/VCC/SDA/SCL pins available in a connector) */ -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(hprot1_state::hprot2r6) +void hprot1_state::hprot2r6(machine_config &config) +{ hprot1(config); - MCFG_DEVICE_REPLACE("maincpu", I80C31, 11059200) // value of X1 cristal on the PCB - MCFG_DEVICE_PROGRAM_MAP(i80c31_prg) - MCFG_DEVICE_IO_MAP(i80c31_io) + I80C31(config.replace(), m_maincpu, 11059200); // value of X1 crystal on the PCB + m_maincpu->set_addrmap(AS_PROGRAM, &hprot1_state::i80c31_prg); + m_maincpu->set_addrmap(AS_IO, &hprot1_state::i80c31_io); /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) + SPEAKER_SOUND(config, "speaker").add_route(ALL_OUTPUTS, "mono", 0.50); /* TODO: add an RS232 interface (emulate MAX232N chip) */ -MACHINE_CONFIG_END +} ROM_START( hprot1 ) ROM_REGION( 0x10000, "maincpu", 0 ) diff --git a/src/mame/drivers/huebler.cpp b/src/mame/drivers/huebler.cpp index e73246bd343..f8ce25a5d03 100644 --- a/src/mame/drivers/huebler.cpp +++ b/src/mame/drivers/huebler.cpp @@ -311,7 +311,8 @@ static GFXDECODE_START( gfx_amu880 ) GFXDECODE_END -MACHINE_CONFIG_START(amu880_state::amu880) +void amu880_state::amu880(machine_config &config) +{ /* basic machine hardware */ Z80(config, m_maincpu, XTAL(10'000'000)/4); // U880D m_maincpu->set_addrmap(AS_PROGRAM, &amu880_state::amu880_mem); @@ -321,9 +322,9 @@ MACHINE_CONFIG_START(amu880_state::amu880) TIMER(config, "keyboard").configure_periodic(FUNC(amu880_state::keyboard_tick), attotime::from_hz(1500)); /* video hardware */ - MCFG_SCREEN_ADD(SCREEN_TAG, RASTER) - MCFG_SCREEN_UPDATE_DRIVER(amu880_state, screen_update) - MCFG_SCREEN_RAW_PARAMS(9000000, 576, 0*6, 64*6, 320, 0*10, 24*10) + screen_device &screen(SCREEN(config, SCREEN_TAG, SCREEN_TYPE_RASTER)); + screen.set_screen_update(FUNC(amu880_state::screen_update)); + screen.set_raw(9000000, 576, 0*6, 64*6, 320, 0*10, 24*10); GFXDECODE(config, "gfxdecode", m_palette, gfx_amu880); PALETTE(config, m_palette, palette_device::MONOCHROME); @@ -352,7 +353,7 @@ MACHINE_CONFIG_START(amu880_state::amu880) /* internal ram */ RAM(config, RAM_TAG).set_default_size("64K"); -MACHINE_CONFIG_END +} /* ROMs */ diff --git a/src/mame/drivers/hunter2.cpp b/src/mame/drivers/hunter2.cpp index 336d7dbbfd2..5271e19bd86 100644 --- a/src/mame/drivers/hunter2.cpp +++ b/src/mame/drivers/hunter2.cpp @@ -378,19 +378,20 @@ WRITE_LINE_MEMBER(hunter2_state::rxd_w) m_maincpu->set_input_line(NSC800_RSTB, ASSERT_LINE); } -MACHINE_CONFIG_START(hunter2_state::hunter2) +void hunter2_state::hunter2(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", NSC800, XTAL(4'000'000)) - MCFG_DEVICE_PROGRAM_MAP(hunter2_mem) - MCFG_DEVICE_IO_MAP(hunter2_io) + NSC800(config, m_maincpu, XTAL(4'000'000)); + m_maincpu->set_addrmap(AS_PROGRAM, &hunter2_state::hunter2_mem); + m_maincpu->set_addrmap(AS_IO, &hunter2_state::hunter2_io); /* video hardware */ - MCFG_SCREEN_ADD("screen", LCD) - MCFG_SCREEN_REFRESH_RATE(80) - MCFG_SCREEN_UPDATE_DEVICE("lcdc", hd61830_device, screen_update) - MCFG_SCREEN_SIZE(240, 128) - MCFG_SCREEN_VISIBLE_AREA(0, 239, 0, 63) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD)); + screen.set_refresh_hz(80); + screen.set_screen_update("lcdc", FUNC(hd61830_device::screen_update)); + screen.set_size(240, 128); + screen.set_visarea(0, 239, 0, 63); + screen.set_palette("palette"); PALETTE(config, "palette", FUNC(hunter2_state::hunter2_palette), 2); hd61830_device &hd61830(HD61830(config, "lcdc", XTAL(4'915'200)/2/2)); // unknown clock @@ -398,8 +399,7 @@ MACHINE_CONFIG_START(hunter2_state::hunter2) /* 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 */ mm58274c_device &rtc(MM58274C(config, "rtc", 0)); @@ -425,7 +425,7 @@ MACHINE_CONFIG_START(hunter2_state::hunter2) ADDRESS_MAP_BANK(config, "bank2").set_map(&hunter2_state::hunter2_banked_mem).set_endianness(ENDIANNESS_LITTLE).set_data_width(8).set_stride(0x4000); ADDRESS_MAP_BANK(config, "bank3").set_map(&hunter2_state::hunter2_banked_mem).set_endianness(ENDIANNESS_LITTLE).set_data_width(8).set_stride(0x4000); ADDRESS_MAP_BANK(config, "bank4").set_map(&hunter2_state::hunter2_banked_mem).set_endianness(ENDIANNESS_LITTLE).set_data_width(8).set_stride(0x4000); -MACHINE_CONFIG_END +} /* ROM definition */ ROM_START( hunter2 ) diff --git a/src/mame/drivers/hvyunit.cpp b/src/mame/drivers/hvyunit.cpp index 5ec161435b1..8290f0d6837 100644 --- a/src/mame/drivers/hvyunit.cpp +++ b/src/mame/drivers/hvyunit.cpp @@ -618,22 +618,22 @@ TIMER_DEVICE_CALLBACK_MEMBER(hvyunit_state::scanline) * *************************************/ -MACHINE_CONFIG_START(hvyunit_state::hvyunit) - - MCFG_DEVICE_ADD("master", Z80, XTAL(12'000'000)/2) /* 6MHz verified on PCB */ - MCFG_DEVICE_PROGRAM_MAP(master_memory) - MCFG_DEVICE_IO_MAP(master_io) +void hvyunit_state::hvyunit(machine_config &config) +{ + Z80(config, m_mastercpu, XTAL(12'000'000)/2); /* 6MHz verified on PCB */ + m_mastercpu->set_addrmap(AS_PROGRAM, &hvyunit_state::master_memory); + m_mastercpu->set_addrmap(AS_IO, &hvyunit_state::master_io); TIMER(config, "scantimer").configure_scanline(FUNC(hvyunit_state::scanline), "screen", 0, 1); - MCFG_DEVICE_ADD("slave", Z80, XTAL(12'000'000)/2) /* 6MHz verified on PCB */ - MCFG_DEVICE_PROGRAM_MAP(slave_memory) - MCFG_DEVICE_IO_MAP(slave_io) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", hvyunit_state, irq0_line_hold) + Z80(config, m_slavecpu, XTAL(12'000'000)/2); /* 6MHz verified on PCB */ + m_slavecpu->set_addrmap(AS_PROGRAM, &hvyunit_state::slave_memory); + m_slavecpu->set_addrmap(AS_IO, &hvyunit_state::slave_io); + m_slavecpu->set_vblank_int("screen", FUNC(hvyunit_state::irq0_line_hold)); - MCFG_DEVICE_ADD("soundcpu", Z80, XTAL(12'000'000)/2) /* 6MHz verified on PCB */ - MCFG_DEVICE_PROGRAM_MAP(sound_memory) - MCFG_DEVICE_IO_MAP(sound_io) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", hvyunit_state, irq0_line_hold) + Z80(config, m_soundcpu, XTAL(12'000'000)/2); /* 6MHz verified on PCB */ + m_soundcpu->set_addrmap(AS_PROGRAM, &hvyunit_state::sound_memory); + m_soundcpu->set_addrmap(AS_IO, &hvyunit_state::sound_io); + m_soundcpu->set_vblank_int("screen", FUNC(hvyunit_state::irq0_line_hold)); I80C51(config, m_mermaid, XTAL(12'000'000)/2); /* 6MHz verified on PCB */ m_mermaid->port_in_cb<0>().set(FUNC(hvyunit_state::mermaid_p0_r)); @@ -652,14 +652,14 @@ MACHINE_CONFIG_START(hvyunit_state::hvyunit) config.m_minimum_quantum = attotime::from_hz(6000); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(58) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(256, 256) - MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 240-1) - MCFG_SCREEN_UPDATE_DRIVER(hvyunit_state, screen_update) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, hvyunit_state, screen_vblank)) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(58); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(256, 256); + screen.set_visarea(0, 256-1, 16, 240-1); + screen.set_screen_update(FUNC(hvyunit_state::screen_update)); + screen.screen_vblank().set(FUNC(hvyunit_state::screen_vblank)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_hvyunit); PALETTE(config, m_palette).set_format(palette_device::xRGB_444, 0x800); @@ -673,9 +673,8 @@ MACHINE_CONFIG_START(hvyunit_state::hvyunit) GENERIC_LATCH_8(config, m_soundlatch); m_soundlatch->data_pending_callback().set_inputline(m_soundcpu, INPUT_LINE_NMI); - MCFG_DEVICE_ADD("ymsnd", YM2203, XTAL(12'000'000)/4) /* 3MHz verified on PCB */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) -MACHINE_CONFIG_END + YM2203(config, "ymsnd", XTAL(12'000'000)/4).add_route(ALL_OUTPUTS, "mono", 0.80); /* 3MHz verified on PCB */ +} diff --git a/src/mame/drivers/hx20.cpp b/src/mame/drivers/hx20.cpp index bdc4022405a..cd2dd29ff86 100644 --- a/src/mame/drivers/hx20.cpp +++ b/src/mame/drivers/hx20.cpp @@ -19,7 +19,7 @@ TODO: - - m6800.c rewrite + - m6800.cpp rewrite - keyboard interrupt - LCD controller - serial @@ -833,7 +833,7 @@ void hx20_state::machine_start() //************************************************************************** //------------------------------------------------- -// MACHINE_CONFIG( hx20 ) +// machine_config( hx20 ) //------------------------------------------------- MACHINE_CONFIG_START(hx20_state::hx20) @@ -859,13 +859,13 @@ MACHINE_CONFIG_START(hx20_state::hx20) m_subcpu->out_p4_cb().set(FUNC(hx20_state::slave_p4_w)); // video hardware - MCFG_SCREEN_ADD(SCREEN_TAG, LCD) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) - MCFG_SCREEN_SIZE(120, 32) - MCFG_SCREEN_VISIBLE_AREA(0, 120-1, 0, 32-1) - MCFG_SCREEN_UPDATE_DRIVER(hx20_state, screen_update) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, SCREEN_TAG, SCREEN_TYPE_LCD)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); + screen.set_size(120, 32); + screen.set_visarea(0, 120-1, 0, 32-1); + screen.set_screen_update(FUNC(hx20_state::screen_update)); + screen.set_palette("palette"); PALETTE(config, "palette", FUNC(hx20_state::hx20_palette), 2); @@ -903,7 +903,7 @@ MACHINE_CONFIG_END //------------------------------------------------- -// MACHINE_CONFIG( hx20 ) +// machine_config( hx20 ) //------------------------------------------------- void hx20_state::cm6000(machine_config &config) diff --git a/src/mame/drivers/hyhoo.cpp b/src/mame/drivers/hyhoo.cpp index 0a82b3dfcab..c8a739f01f9 100644 --- a/src/mame/drivers/hyhoo.cpp +++ b/src/mame/drivers/hyhoo.cpp @@ -226,23 +226,23 @@ static INPUT_PORTS_START( hyhoo2 ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) INPUT_PORTS_END -MACHINE_CONFIG_START(hyhoo_state::hyhoo) - +void hyhoo_state::hyhoo(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, 5000000) /* 5.00 MHz ?? */ - MCFG_DEVICE_PROGRAM_MAP(hyhoo_map) - MCFG_DEVICE_IO_MAP(hyhoo_io_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", hyhoo_state, irq0_line_hold) + Z80(config, m_maincpu, 5000000); /* 5.00 MHz ?? */ + m_maincpu->set_addrmap(AS_PROGRAM, &hyhoo_state::hyhoo_map); + m_maincpu->set_addrmap(AS_IO, &hyhoo_state::hyhoo_io_map); + m_maincpu->set_vblank_int("screen", FUNC(hyhoo_state::irq0_line_hold)); 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(512, 256) - MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 16, 240-1) - MCFG_SCREEN_UPDATE_DRIVER(hyhoo_state, screen_update_hyhoo) + 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(512, 256); + m_screen->set_visarea(0, 512-1, 16, 240-1); + m_screen->set_screen_update(FUNC(hyhoo_state::screen_update_hyhoo)); NB1413M3(config, m_nb1413m3, 0, NB1413M3_HYHOO); @@ -258,7 +258,7 @@ MACHINE_CONFIG_START(hyhoo_state::hyhoo) 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 +} void hyhoo_state::hyhoo2(machine_config &config) diff --git a/src/mame/drivers/hyperscan.cpp b/src/mame/drivers/hyperscan.cpp index a4b07977096..99ff480f937 100644 --- a/src/mame/drivers/hyperscan.cpp +++ b/src/mame/drivers/hyperscan.cpp @@ -621,22 +621,23 @@ void hyperscan_state::machine_reset() } -MACHINE_CONFIG_START(hyperscan_state::hyperscan) +void hyperscan_state::hyperscan(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", SCORE7, XTAL(27'000'000) * 4) // 108MHz S+core 7 - MCFG_DEVICE_PROGRAM_MAP(spg290_mem) + SCORE7(config, m_maincpu, XTAL(27'000'000) * 4); // 108MHz S+core 7 + m_maincpu->set_addrmap(AS_PROGRAM, &hyperscan_state::spg290_mem); SOFTWARE_LIST(config, "cd_list").set_original("hyperscan"); /* 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(hyperscan_state, spg290_screen_update) - MCFG_SCREEN_SIZE(640, 480) - MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, hyperscan_state, spg290_vblank_irq)) -MACHINE_CONFIG_END + 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(hyperscan_state::spg290_screen_update)); + screen.set_size(640, 480); + screen.set_visarea(0, 640-1, 0, 480-1); + screen.screen_vblank().set(FUNC(hyperscan_state::spg290_vblank_irq)); +} /* ROM definition */ diff --git a/src/mame/drivers/hyprduel.cpp b/src/mame/drivers/hyprduel.cpp index 982b72ab30e..0f31f12ce74 100644 --- a/src/mame/drivers/hyprduel.cpp +++ b/src/mame/drivers/hyprduel.cpp @@ -432,30 +432,32 @@ MACHINE_START_MEMBER(hyprduel_state,hyprduel) m_vblank_end_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(hyprduel_state::vblank_end_callback), this)); } -MACHINE_CONFIG_START(hyprduel_state::i4220_config) +void hyprduel_state::i4220_config(machine_config &config) +{ I4220(config, m_vdp, XTAL(26'666'000)); m_vdp->blit_irq_cb().set(FUNC(hyprduel_state::vdp_blit_end_w)); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_SCANLINE) - MCFG_SCREEN_REFRESH_RATE(60) // Unknown/Unverified - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(320, 224) - MCFG_SCREEN_VISIBLE_AREA(0, 320-1, FIRST_VISIBLE_LINE, LAST_VISIBLE_LINE) - MCFG_SCREEN_UPDATE_DEVICE("vdp", imagetek_i4100_device, screen_update) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE("vdp", imagetek_i4100_device, screen_eof)) - MCFG_SCREEN_PALETTE(":vdp:palette") -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(hyprduel_state::hyprduel) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_video_attributes(VIDEO_UPDATE_SCANLINE); + screen.set_refresh_hz(60); // Unknown/Unverified + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(320, 224); + screen.set_visarea(0, 320-1, FIRST_VISIBLE_LINE, LAST_VISIBLE_LINE); + screen.set_screen_update("vdp", FUNC(imagetek_i4100_device::screen_update)); + screen.screen_vblank().set("vdp", FUNC(imagetek_i4100_device::screen_eof)); + screen.set_palette(":vdp:palette"); +} +void hyprduel_state::hyprduel(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000,20000000/2) /* 10MHz */ - MCFG_DEVICE_PROGRAM_MAP(hyprduel_map) + M68000(config, m_maincpu, 20000000/2); /* 10MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &hyprduel_state::hyprduel_map); + TIMER(config, "scantimer").configure_scanline(FUNC(hyprduel_state::interrupt), "screen", 0, 1); - MCFG_DEVICE_ADD("sub", M68000,20000000/2) /* 10MHz */ - MCFG_DEVICE_PROGRAM_MAP(hyprduel_map2) + M68000(config, m_subcpu, 20000000/2); /* 10MHz */ + m_subcpu->set_addrmap(AS_PROGRAM, &hyprduel_state::hyprduel_map2); MCFG_MACHINE_START_OVERRIDE(hyprduel_state,hyprduel) @@ -469,21 +471,21 @@ MACHINE_CONFIG_START(hyprduel_state::hyprduel) ymsnd.irq_handler().set_inputline(m_subcpu, 1); ymsnd.add_route(ALL_OUTPUTS, "mono", 0.80); - MCFG_DEVICE_ADD("oki", OKIM6295, 4000000/16/16*132, okim6295_device::PIN7_HIGH) // clock frequency & pin 7 not verified - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.57) -MACHINE_CONFIG_END - + OKIM6295(config, "oki", 4000000/16/16*132, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.57); // clock frequency & pin 7 not verified +} -MACHINE_CONFIG_START(hyprduel_state::magerror) +void hyprduel_state::magerror(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000,20000000/2) /* 10MHz */ - MCFG_DEVICE_PROGRAM_MAP(magerror_map) + M68000(config, m_maincpu, 20000000/2); /* 10MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &hyprduel_state::magerror_map); + TIMER(config, "scantimer").configure_scanline(FUNC(hyprduel_state::interrupt), "screen", 0, 1); - MCFG_DEVICE_ADD("sub", M68000,20000000/2) /* 10MHz */ - MCFG_DEVICE_PROGRAM_MAP(magerror_map2) - MCFG_DEVICE_PERIODIC_INT_DRIVER(hyprduel_state, irq1_line_hold, 968) /* tempo? */ + M68000(config, m_subcpu, 20000000/2); /* 10MHz */ + m_subcpu->set_addrmap(AS_PROGRAM, &hyprduel_state::magerror_map2); + m_subcpu->set_periodic_int(FUNC(hyprduel_state::irq1_line_hold), attotime::from_hz(968)); /* tempo? */ MCFG_MACHINE_START_OVERRIDE(hyprduel_state,hyprduel) @@ -493,12 +495,10 @@ MACHINE_CONFIG_START(hyprduel_state::magerror) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("ymsnd", YM2413, 3579545) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) + YM2413(config, "ymsnd", 3579545).add_route(ALL_OUTPUTS, "mono", 1.00); - MCFG_DEVICE_ADD("oki", OKIM6295, 4000000/16/16*132, okim6295_device::PIN7_HIGH) // clock frequency & pin 7 not verified - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.57) -MACHINE_CONFIG_END + OKIM6295(config, "oki", 4000000/16/16*132, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.57); // clock frequency & pin 7 not verified +} /*************************************************************************** ROMs Loading diff --git a/src/mame/includes/galaxian.h b/src/mame/includes/galaxian.h index 1891a08da76..651c145ce1a 100644 --- a/src/mame/includes/galaxian.h +++ b/src/mame/includes/galaxian.h @@ -426,7 +426,7 @@ protected: required_device<screen_device> m_screen; required_device<palette_device> m_palette; optional_device<generic_latch_8_device> m_soundlatch; - optional_device<discrete_device> m_discrete; + optional_device<discrete_sound_device> m_discrete; optional_ioport m_fake_select; optional_ioport_array<10> m_tenspot_game_dsw; diff --git a/src/mame/includes/galaxold.h b/src/mame/includes/galaxold.h index 33ff44e778d..71c91132daf 100644 --- a/src/mame/includes/galaxold.h +++ b/src/mame/includes/galaxold.h @@ -300,7 +300,7 @@ public: void mooncrst_audio(machine_config &config); void _4in1_map(address_map &map); void bagmanmc_map(address_map &map); - void bongo(address_map &map); + void bongo_map(address_map &map); void bongo_io(address_map &map); void bullsdrtg_data_map(address_map &map); void ckongg_map(address_map &map); @@ -313,7 +313,7 @@ public: void guttang_map(address_map &map); void hexpoola_data(address_map &map); void hexpoola_io(address_map &map); - void hunchbkg(address_map &map); + void hunchbkg_map(address_map &map); void hunchbkg_data(address_map &map); void hustlerb3_map(address_map &map); void mooncrst_map(address_map &map); @@ -327,8 +327,8 @@ public: void scramb3_map(address_map &map); void scramblb_map(address_map &map); void scrambler_map(address_map &map); - void spcwarp(address_map &map); - void tazzmang(address_map &map); + void spcwarp_map(address_map &map); + void tazzmang_map(address_map &map); protected: virtual void machine_start() override { m_leds.resolve(); } |