summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Ivan Vangelista <mesgnet@yahoo.it>2019-03-06 18:07:20 +0100
committer Ivan Vangelista <mesgnet@yahoo.it>2019-03-06 18:07:20 +0100
commitf7db65e0f31c26a1bfe5b2025c3855517036825c (patch)
treec42b673bb54696a62935295dc89e75aaa13a0c3d
parent9a5e311c0b7116645a415fcde820a7a96bb8571b (diff)
mame\drivers: removed most MCFG and MACHINE_CONFIG macros from drivers starting with h and from the heavy hitters starting with g (nw)
-rw-r--r--src/mame/drivers/galaxian.cpp172
-rw-r--r--src/mame/drivers/galaxold.cpp300
-rw-r--r--src/mame/drivers/gei.cpp97
-rw-r--r--src/mame/drivers/genpc.cpp57
-rw-r--r--src/mame/drivers/goldstar.cpp729
-rw-r--r--src/mame/drivers/h19.cpp14
-rw-r--r--src/mame/drivers/halleys.cpp43
-rw-r--r--src/mame/drivers/hanaawas.cpp28
-rw-r--r--src/mame/drivers/hapyfish.cpp24
-rw-r--r--src/mame/drivers/hazeltin.cpp14
-rw-r--r--src/mame/drivers/headonb.cpp28
-rw-r--r--src/mame/drivers/hec2hrp.cpp205
-rw-r--r--src/mame/drivers/hideseek.cpp26
-rw-r--r--src/mame/drivers/higemaru.cpp24
-rw-r--r--src/mame/drivers/highvdeo.cpp188
-rw-r--r--src/mame/drivers/hitme.cpp38
-rw-r--r--src/mame/drivers/holeland.cpp56
-rw-r--r--src/mame/drivers/homelab.cpp21
-rw-r--r--src/mame/drivers/homez80.cpp27
-rw-r--r--src/mame/drivers/horizon.cpp2
-rw-r--r--src/mame/drivers/hornet.cpp21
-rw-r--r--src/mame/drivers/hotblock.cpp22
-rw-r--r--src/mame/drivers/hotstuff.cpp24
-rw-r--r--src/mame/drivers/hp16500.cpp49
-rw-r--r--src/mame/drivers/hp2100.cpp5
-rw-r--r--src/mame/drivers/hp2640.cpp14
-rw-r--r--src/mame/drivers/hp49gp.cpp23
-rw-r--r--src/mame/drivers/hp9825.cpp15
-rw-r--r--src/mame/drivers/hp9845.cpp89
-rw-r--r--src/mame/drivers/hp9k.cpp23
-rw-r--r--src/mame/drivers/hp9k_3xx.cpp86
-rw-r--r--src/mame/drivers/hprot1.cpp47
-rw-r--r--src/mame/drivers/huebler.cpp11
-rw-r--r--src/mame/drivers/hunter2.cpp26
-rw-r--r--src/mame/drivers/hvyunit.cpp47
-rw-r--r--src/mame/drivers/hx20.cpp20
-rw-r--r--src/mame/drivers/hyhoo.cpp26
-rw-r--r--src/mame/drivers/hyperscan.cpp23
-rw-r--r--src/mame/drivers/hyprduel.cpp64
-rw-r--r--src/mame/includes/galaxian.h2
-rw-r--r--src/mame/includes/galaxold.h8
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(); }