summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers')
-rw-r--r--src/mame/drivers/applix.cpp4
-rw-r--r--src/mame/drivers/armedf.cpp36
-rw-r--r--src/mame/drivers/atari_s2.cpp21
-rw-r--r--src/mame/drivers/bking.cpp2
-rw-r--r--src/mame/drivers/bw12.cpp13
-rw-r--r--src/mame/drivers/bwing.cpp2
-rw-r--r--src/mame/drivers/byvid.cpp32
-rw-r--r--src/mame/drivers/calchase.cpp8
-rw-r--r--src/mame/drivers/cc40.cpp2
-rw-r--r--src/mame/drivers/cchasm.cpp24
-rw-r--r--src/mame/drivers/champbas.cpp8
-rw-r--r--src/mame/drivers/chsuper.cpp2
-rw-r--r--src/mame/drivers/circusc.cpp2
-rw-r--r--src/mame/drivers/cntsteer.cpp2
-rw-r--r--src/mame/drivers/coolpool.cpp28
-rw-r--r--src/mame/drivers/cop01.cpp3
-rw-r--r--src/mame/drivers/exterm.cpp19
-rw-r--r--src/mame/drivers/fantland.cpp2
-rw-r--r--src/mame/drivers/fidel68k.cpp105
-rw-r--r--src/mame/drivers/finalizr.cpp2
-rw-r--r--src/mame/drivers/galaxian.cpp26
-rw-r--r--src/mame/drivers/galeb.cpp25
-rw-r--r--src/mame/drivers/galivan.cpp8
-rw-r--r--src/mame/drivers/gamecom.cpp6
-rw-r--r--src/mame/drivers/gba.cpp26
-rw-r--r--src/mame/drivers/gei.cpp2
-rw-r--r--src/mame/drivers/go2000.cpp2
-rw-r--r--src/mame/drivers/gp32.cpp4
-rw-r--r--src/mame/drivers/hankin.cpp15
-rw-r--r--src/mame/drivers/hapyfish.cpp4
-rw-r--r--src/mame/drivers/homelab.cpp6
-rw-r--r--src/mame/drivers/hp80.cpp6
-rw-r--r--src/mame/drivers/hyhoo.cpp2
-rw-r--r--src/mame/drivers/instantm.cpp17
-rw-r--r--src/mame/drivers/juicebox.cpp2
-rw-r--r--src/mame/drivers/kingobox.cpp4
-rw-r--r--src/mame/drivers/ksayakyu.cpp2
-rw-r--r--src/mame/drivers/laserbas.cpp31
-rw-r--r--src/mame/drivers/lasso.cpp2
-rw-r--r--src/mame/drivers/lazercmd.cpp16
-rw-r--r--src/mame/drivers/leland.cpp4
-rw-r--r--src/mame/drivers/luckybal.cpp21
-rw-r--r--src/mame/drivers/magicfly.cpp2
-rw-r--r--src/mame/drivers/megazone.cpp2
-rw-r--r--src/mame/drivers/meyc8080.cpp25
-rw-r--r--src/mame/drivers/meyc8088.cpp22
-rw-r--r--src/mame/drivers/microvsn.cpp2
-rw-r--r--src/mame/drivers/mikro80.cpp43
-rw-r--r--src/mame/drivers/mini2440.cpp4
-rw-r--r--src/mame/drivers/mjsister.cpp2
-rw-r--r--src/mame/drivers/mogura.cpp6
-rw-r--r--src/mame/drivers/murogem.cpp2
-rw-r--r--src/mame/drivers/murogmbl.cpp4
-rw-r--r--src/mame/drivers/nbmj8688.cpp4
-rw-r--r--src/mame/drivers/nbmj8891.cpp2
-rw-r--r--src/mame/drivers/nbmj8900.cpp2
-rw-r--r--src/mame/drivers/nbmj8991.cpp6
-rw-r--r--src/mame/drivers/nbmj9195.cpp169
-rw-r--r--src/mame/drivers/ngp.cpp28
-rw-r--r--src/mame/drivers/nightgal.cpp2
-rw-r--r--src/mame/drivers/notetaker.cpp21
-rw-r--r--src/mame/drivers/nyny.cpp2
-rw-r--r--src/mame/drivers/palm.cpp2
-rw-r--r--src/mame/drivers/pandoras.cpp24
-rw-r--r--src/mame/drivers/pastelg.cpp4
-rw-r--r--src/mame/drivers/pockstat.cpp2
-rw-r--r--src/mame/drivers/pong.cpp6
-rw-r--r--src/mame/drivers/ppmast93.cpp2
-rw-r--r--src/mame/drivers/rltennis.cpp4
-rw-r--r--src/mame/drivers/rowamet.cpp19
-rw-r--r--src/mame/drivers/royalmah.cpp2
-rw-r--r--src/mame/drivers/s11.cpp4
-rw-r--r--src/mame/drivers/s11a.cpp4
-rw-r--r--src/mame/drivers/s11b.cpp28
-rw-r--r--src/mame/drivers/sbasketb.cpp2
-rw-r--r--src/mame/drivers/seicross.cpp2
-rw-r--r--src/mame/drivers/senjyo.cpp2
-rw-r--r--src/mame/drivers/shangkid.cpp29
-rw-r--r--src/mame/drivers/shisen.cpp2
-rw-r--r--src/mame/drivers/ssozumo.cpp2
-rw-r--r--src/mame/drivers/tagteam.cpp2
-rw-r--r--src/mame/drivers/taitosj.cpp2
-rw-r--r--src/mame/drivers/terracre.cpp4
-rw-r--r--src/mame/drivers/thomson.cpp4
-rw-r--r--src/mame/drivers/truco.cpp2
-rw-r--r--src/mame/drivers/trucocl.cpp2
-rw-r--r--src/mame/drivers/tsamurai.cpp10
-rw-r--r--src/mame/drivers/vcombat.cpp4
-rw-r--r--src/mame/drivers/vidbrain.cpp23
-rw-r--r--src/mame/drivers/videopkr.cpp2
-rw-r--r--src/mame/drivers/wheelfir.cpp4
-rw-r--r--src/mame/drivers/wildpkr.cpp3
-rw-r--r--src/mame/drivers/williams.cpp17
-rw-r--r--src/mame/drivers/wmg.cpp2
94 files changed, 579 insertions, 540 deletions
diff --git a/src/mame/drivers/applix.cpp b/src/mame/drivers/applix.cpp
index 5c36930b81f..4e6ad739e47 100644
--- a/src/mame/drivers/applix.cpp
+++ b/src/mame/drivers/applix.cpp
@@ -878,8 +878,8 @@ MACHINE_CONFIG_START(applix_state::applix)
/* sound hardware */
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
- MCFG_DEVICE_ADD("ldac", DAC0800, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) // 74ls374.u20 + dac0800.u21 + 4052.u23
- MCFG_DEVICE_ADD("rdac", DAC0800, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) // 74ls374.u20 + dac0800.u21 + 4052.u23
+ DAC0800(config, "ldac", 0).add_route(ALL_OUTPUTS, "lspeaker", 1.0); // 74ls374.u20 + dac0800.u21 + 4052.u23
+ DAC0800(config, "rdac", 0).add_route(ALL_OUTPUTS, "rspeaker", 1.0); // 74ls374.u20 + dac0800.u21 + 4052.u23
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "ldac", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "ldac", -1.0, DAC_VREF_NEG_INPUT);
diff --git a/src/mame/drivers/armedf.cpp b/src/mame/drivers/armedf.cpp
index 1e31b5e770d..6a79b51b97f 100644
--- a/src/mame/drivers/armedf.cpp
+++ b/src/mame/drivers/armedf.cpp
@@ -1251,26 +1251,26 @@ void armedf_state::machine_reset()
}
-MACHINE_CONFIG_START(armedf_state::terraf_sound)
- MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(24'000'000)/6) // 4mhz
- MCFG_DEVICE_PROGRAM_MAP(sound_map)
- MCFG_DEVICE_IO_MAP(sound_portmap)
- MCFG_DEVICE_PERIODIC_INT_DRIVER(armedf_state, irq0_line_hold, XTAL(8'000'000)/2/512) // ?
+void armedf_state::terraf_sound(machine_config &config)
+{
+ z80_device &audiocpu(Z80(config, "audiocpu", XTAL(24'000'000)/6)); // 4mhz
+ audiocpu.set_addrmap(AS_PROGRAM, &armedf_state::sound_map);
+ audiocpu.set_addrmap(AS_IO, &armedf_state::sound_portmap);
+ audiocpu.set_periodic_int(FUNC(armedf_state::irq0_line_hold), attotime::from_hz(XTAL(8'000'000)/2/512)); // ?
SPEAKER(config, "speaker").front_center();
GENERIC_LATCH_8(config, m_soundlatch);
- MCFG_DEVICE_ADD("ymsnd", YM3812, XTAL(24'000'000)/6) // 4mhz
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5)
+ YM3812(config, "ymsnd", XTAL(24'000'000)/6).add_route(ALL_OUTPUTS, "speaker", 0.5); // 4mhz
- MCFG_DEVICE_ADD("dac1", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.8) // 10-pin SIP with 74HC374P latch
- MCFG_DEVICE_ADD("dac2", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.8) // 10-pin SIP with 74HC374P latch
+ DAC_8BIT_R2R(config, "dac1", 0).add_route(ALL_OUTPUTS, "speaker", 0.8); // 10-pin SIP with 74HC374P latch
+ DAC_8BIT_R2R(config, "dac2", 0).add_route(ALL_OUTPUTS, "speaker", 0.8); // 10-pin SIP with 74HC374P latch
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac1", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac1", -1.0, DAC_VREF_NEG_INPUT);
vref.add_route(0, "dac2", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac2", -1.0, DAC_VREF_NEG_INPUT);
-MACHINE_CONFIG_END
+}
MACHINE_CONFIG_START(armedf_state::terraf)
@@ -1343,8 +1343,8 @@ MACHINE_CONFIG_START(armedf_state::terrafjb)
MCFG_DEVICE_ADD("ymsnd", YM3812, XTAL(24'000'000)/6) // 4mhz
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5)
- MCFG_DEVICE_ADD("dac1", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.8) // unknown DAC
- MCFG_DEVICE_ADD("dac2", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.8) // unknown DAC
+ DAC_8BIT_R2R(config, "dac1", 0).add_route(ALL_OUTPUTS, "speaker", 0.8); // unknown DAC
+ DAC_8BIT_R2R(config, "dac2", 0).add_route(ALL_OUTPUTS, "speaker", 0.8); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac1", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac1", -1.0, DAC_VREF_NEG_INPUT);
@@ -1424,8 +1424,8 @@ MACHINE_CONFIG_START(armedf_state::armedf)
MCFG_DEVICE_ADD("ymsnd", YM3812, XTAL(24'000'000)/6) // 4mhz
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5)
- MCFG_DEVICE_ADD("dac1", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5) // unknown DAC
- MCFG_DEVICE_ADD("dac2", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5) // unknown DAC
+ DAC_8BIT_R2R(config, "dac1", 0).add_route(ALL_OUTPUTS, "speaker", 0.5); // unknown DAC
+ DAC_8BIT_R2R(config, "dac2", 0).add_route(ALL_OUTPUTS, "speaker", 0.5); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac1", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac1", -1.0, DAC_VREF_NEG_INPUT);
@@ -1471,8 +1471,8 @@ MACHINE_CONFIG_START(armedf_state::cclimbr2)
MCFG_DEVICE_ADD("ymsnd", YM3812, XTAL(24'000'000)/6) // or YM3526?
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5)
- MCFG_DEVICE_ADD("dac1", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.4) // unknown DAC
- MCFG_DEVICE_ADD("dac2", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.4) // unknown DAC
+ DAC_8BIT_R2R(config, "dac1", 0).add_route(ALL_OUTPUTS, "speaker", 0.4); // unknown DAC
+ DAC_8BIT_R2R(config, "dac2", 0).add_route(ALL_OUTPUTS, "speaker", 0.4); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac1", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac1", -1.0, DAC_VREF_NEG_INPUT);
@@ -1510,8 +1510,8 @@ MACHINE_CONFIG_START(armedf_state::legion_common)
GENERIC_LATCH_8(config, m_soundlatch);
- MCFG_DEVICE_ADD("dac1", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.4) // 10-pin SIP with 74HC374P latch
- MCFG_DEVICE_ADD("dac2", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.4) // 10-pin SIP with 74HC374P latch
+ DAC_8BIT_R2R(config, "dac1", 0).add_route(ALL_OUTPUTS, "speaker", 0.4); // 10-pin SIP with 74HC374P latch
+ DAC_8BIT_R2R(config, "dac2", 0).add_route(ALL_OUTPUTS, "speaker", 0.4); // 10-pin SIP with 74HC374P latch
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac1", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac1", -1.0, DAC_VREF_NEG_INPUT);
diff --git a/src/mame/drivers/atari_s2.cpp b/src/mame/drivers/atari_s2.cpp
index 2074d23a4e3..219e52392b4 100644
--- a/src/mame/drivers/atari_s2.cpp
+++ b/src/mame/drivers/atari_s2.cpp
@@ -479,10 +479,11 @@ void atari_s2_state::machine_reset()
}
-MACHINE_CONFIG_START(atari_s2_state::atari_s2)
+void atari_s2_state::atari_s2(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M6800, XTAL(4'000'000) / 4)
- MCFG_DEVICE_PROGRAM_MAP(atari_s2_map)
+ M6800(config, m_maincpu, XTAL(4'000'000) / 4);
+ m_maincpu->set_addrmap(AS_PROGRAM, &atari_s2_state::atari_s2_map);
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
WATCHDOG_TIMER(config, "watchdog");
@@ -490,8 +491,8 @@ MACHINE_CONFIG_START(atari_s2_state::atari_s2)
genpin_audio(config);
SPEAKER(config, "speaker").front_center();
- MCFG_DEVICE_ADD("dac", DAC_4BIT_BINARY_WEIGHTED, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.15) // r23-r26 (68k,33k,18k,8.2k)
- MCFG_DEVICE_ADD("dac1", DAC_3BIT_BINARY_WEIGHTED, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.15) // r18-r20 (100k,47k,100k)
+ DAC_4BIT_BINARY_WEIGHTED(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 0.15); // r23-r26 (68k,33k,18k,8.2k)
+ DAC_3BIT_BINARY_WEIGHTED(config, m_dac1, 0).add_route(ALL_OUTPUTS, "speaker", 0.15); // r18-r20 (100k,47k,100k)
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT);
@@ -502,13 +503,13 @@ MACHINE_CONFIG_START(atari_s2_state::atari_s2)
TIMER(config, "irq").configure_periodic(FUNC(atari_s2_state::irq), attotime::from_hz(XTAL(4'000'000) / 8192));
TIMER(config, "timer_s").configure_periodic(FUNC(atari_s2_state::timer_s), attotime::from_hz(150000));
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(atari_s2_state::atari_s3)
+void atari_s2_state::atari_s3(machine_config &config)
+{
atari_s2(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(atari_s3_map)
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_PROGRAM, &atari_s2_state::atari_s3_map);
+}
/*-------------------------------------------------------------------
diff --git a/src/mame/drivers/bking.cpp b/src/mame/drivers/bking.cpp
index ac01f35a7cc..013b2d4f91c 100644
--- a/src/mame/drivers/bking.cpp
+++ b/src/mame/drivers/bking.cpp
@@ -434,7 +434,7 @@ MACHINE_CONFIG_START(bking_state::bking)
ay2.port_b_write_callback().set(FUNC(bking_state::port_b_w));
ay2.add_route(ALL_OUTPUTS, "speaker", 0.25);
- MCFG_DEVICE_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) // unknown DAC
+ DAC_8BIT_R2R(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.25); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
diff --git a/src/mame/drivers/bw12.cpp b/src/mame/drivers/bw12.cpp
index e5b8cd5a61f..270254311e9 100644
--- a/src/mame/drivers/bw12.cpp
+++ b/src/mame/drivers/bw12.cpp
@@ -549,11 +549,12 @@ GFXDECODE_END
/* Machine Driver */
-MACHINE_CONFIG_START(bw12_state::common)
+void bw12_state::common(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD(Z80_TAG, Z80, XTAL(16'000'000)/4)
- MCFG_DEVICE_PROGRAM_MAP(bw12_mem)
- MCFG_DEVICE_IO_MAP(bw12_io)
+ Z80(config, m_maincpu, XTAL(16'000'000)/4);
+ m_maincpu->set_addrmap(AS_PROGRAM, &bw12_state::bw12_mem);
+ m_maincpu->set_addrmap(AS_IO, &bw12_state::bw12_io);
/* video hardware */
screen_device &screen(SCREEN(config, SCREEN_TAG, SCREEN_TYPE_RASTER, rgb_t::amber()));
@@ -574,7 +575,7 @@ MACHINE_CONFIG_START(bw12_state::common)
/* sound hardware */
SPEAKER(config, "speaker").front_center();
- MCFG_DEVICE_ADD("dac", MC1408, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.125) // ls273.ic5 + mc1408.ic4
+ MC1408(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.125); // ls273.ic5 + mc1408.ic4
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
@@ -642,7 +643,7 @@ MACHINE_CONFIG_START(bw12_state::common)
output_latch_device &cent_data_out(OUTPUT_LATCH(config, "cent_data_out"));
m_centronics->set_output_latch(cent_data_out);
-MACHINE_CONFIG_END
+}
void bw12_state::bw12(machine_config &config)
{
diff --git a/src/mame/drivers/bwing.cpp b/src/mame/drivers/bwing.cpp
index 01f04a9e815..fc6642b00ad 100644
--- a/src/mame/drivers/bwing.cpp
+++ b/src/mame/drivers/bwing.cpp
@@ -404,7 +404,7 @@ MACHINE_CONFIG_START(bwing_state::bwing)
AY8912(config, "ay2", XTAL(24'000'000) / 2 / 8).add_route(ALL_OUTPUTS, "speaker", 0.5);
- MCFG_DEVICE_ADD("dac", DAC08, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.1)
+ DAC08(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.1);
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
diff --git a/src/mame/drivers/byvid.cpp b/src/mame/drivers/byvid.cpp
index 5975097ae0c..68755017da9 100644
--- a/src/mame/drivers/byvid.cpp
+++ b/src/mame/drivers/byvid.cpp
@@ -746,13 +746,14 @@ uint32_t by133_state::screen_update_granny(screen_device &screen, bitmap_rgb32 &
return 0;
}
-MACHINE_CONFIG_START(by133_state::babypac)
+void by133_state::babypac(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M6800, XTAL(3'579'545)/4) // no xtal, just 2 chips
- MCFG_DEVICE_PROGRAM_MAP(main_map)
+ M6800(config, m_maincpu, XTAL(3'579'545)/4); // no xtal, just 2 chips
+ m_maincpu->set_addrmap(AS_PROGRAM, &by133_state::main_map);
- MCFG_DEVICE_ADD("videocpu", MC6809, XTAL(3'579'545))
- MCFG_DEVICE_PROGRAM_MAP(video_map)
+ MC6809(config, m_videocpu, XTAL(3'579'545));
+ m_videocpu->set_addrmap(AS_PROGRAM, &by133_state::video_map);
M6803(config, m_audiocpu, XTAL(3'579'545));
m_audiocpu->set_addrmap(AS_PROGRAM, &by133_state::sound_map);
@@ -802,30 +803,29 @@ MACHINE_CONFIG_START(by133_state::babypac)
/* sound hardware */
SPEAKER(config, "speaker").front_center();
- MCFG_DEVICE_ADD("dac", ZN429E, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) // U32 (Vidiot) or U6 (Cheap Squeak)
+ ZN429E(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.25); // U32 (Vidiot) or U6 (Cheap Squeak)
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT);
SPEAKER(config, "beee").front_center();
- MCFG_DEVICE_ADD("beeper", BEEP, 600)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "beee", 0.10)
-MACHINE_CONFIG_END
+ BEEP(config, m_beep, 600).add_route(ALL_OUTPUTS, "beee", 0.10);
+}
-MACHINE_CONFIG_START(by133_state::granny)
+void by133_state::granny(machine_config &config)
+{
babypac(config);
- config.device_remove("videocpu");
- MCFG_DEVICE_ADD("videocpu", MC6809, XTAL(8'000'000)) // MC68B09P (XTAL value hard to read)
- MCFG_DEVICE_PROGRAM_MAP(granny_map)
+
+ MC6809(config.replace(), m_videocpu, XTAL(8'000'000)); // MC68B09P (XTAL value hard to read)
+ m_videocpu->set_addrmap(AS_PROGRAM, &by133_state::granny_map);
TMS9928A(config, m_crtc2, XTAL(10'738'635)).set_screen("screen");
m_crtc2->set_vram_size(0x4000);
m_crtc2->int_callback().set_inputline(m_videocpu, M6809_IRQ_LINE);
- MCFG_DEVICE_MODIFY("screen")
- MCFG_SCREEN_UPDATE_DRIVER(by133_state, screen_update_granny)
-MACHINE_CONFIG_END
+ subdevice<screen_device>("screen")->set_screen_update(FUNC(by133_state::screen_update_granny));
+}
/*-----------------------------------------------------
diff --git a/src/mame/drivers/calchase.cpp b/src/mame/drivers/calchase.cpp
index a918595c110..8f1ff12a4a3 100644
--- a/src/mame/drivers/calchase.cpp
+++ b/src/mame/drivers/calchase.cpp
@@ -702,8 +702,8 @@ MACHINE_CONFIG_START(calchase_state::calchase)
/* sound hardware */
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
- MCFG_DEVICE_ADD("ldac", DAC_12BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.25) // unknown DAC
- MCFG_DEVICE_ADD("rdac", DAC_12BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.25) // unknown DAC
+ DAC_12BIT_R2R(config, "ldac", 0).add_route(ALL_OUTPUTS, "lspeaker", 0.25); // unknown DAC
+ DAC_12BIT_R2R(config, "rdac", 0).add_route(ALL_OUTPUTS, "rspeaker", 0.25); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "ldac", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "ldac", -1.0, DAC_VREF_NEG_INPUT);
@@ -731,8 +731,8 @@ MACHINE_CONFIG_START(calchase_state::hostinv)
/* sound hardware */
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
- MCFG_DEVICE_ADD("ldac", DAC_12BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.25) // unknown DAC
- MCFG_DEVICE_ADD("rdac", DAC_12BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.25) // unknown DAC
+ DAC_12BIT_R2R(config, "ldac", 0).add_route(ALL_OUTPUTS, "lspeaker", 0.25); // unknown DAC
+ DAC_12BIT_R2R(config, "rdac", 0).add_route(ALL_OUTPUTS, "rspeaker", 0.25); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "ldac", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "ldac", -1.0, DAC_VREF_NEG_INPUT);
diff --git a/src/mame/drivers/cc40.cpp b/src/mame/drivers/cc40.cpp
index 9ce088b6fd0..de47135e965 100644
--- a/src/mame/drivers/cc40.cpp
+++ b/src/mame/drivers/cc40.cpp
@@ -615,7 +615,7 @@ MACHINE_CONFIG_START(cc40_state::cc40)
/* sound hardware */
SPEAKER(config, "speaker").front_center();
- MCFG_DEVICE_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
+ DAC_1BIT(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.25);
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref", 0));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
diff --git a/src/mame/drivers/cchasm.cpp b/src/mame/drivers/cchasm.cpp
index 2cae8d08d2c..7ef7d962d30 100644
--- a/src/mame/drivers/cchasm.cpp
+++ b/src/mame/drivers/cchasm.cpp
@@ -146,11 +146,11 @@ static const z80_daisy_config daisy_chain[] =
*
*************************************/
-MACHINE_CONFIG_START(cchasm_state::cchasm)
-
+void cchasm_state::cchasm(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, CCHASM_68K_CLOCK) /* 8 MHz (from schematics) */
- MCFG_DEVICE_PROGRAM_MAP(memmap)
+ M68000(config, m_maincpu, CCHASM_68K_CLOCK); /* 8 MHz (from schematics) */
+ m_maincpu->set_addrmap(AS_PROGRAM, &cchasm_state::memmap);
Z80(config, m_audiocpu, 3584229); /* 3.58 MHz (from schematics) */
m_audiocpu->set_daisy_config(daisy_chain);
@@ -166,11 +166,11 @@ MACHINE_CONFIG_START(cchasm_state::cchasm)
/* video hardware */
VECTOR(config, m_vector, 0);
- MCFG_SCREEN_ADD("screen", VECTOR)
- MCFG_SCREEN_REFRESH_RATE(40)
- MCFG_SCREEN_SIZE(400, 300)
- MCFG_SCREEN_VISIBLE_AREA(0, 1024-1, 0, 768-1)
- MCFG_SCREEN_UPDATE_DEVICE("vector", vector_device, screen_update)
+ SCREEN(config, m_screen, SCREEN_TYPE_VECTOR);
+ m_screen->set_refresh_hz(40);
+ m_screen->set_size(400, 300);
+ m_screen->set_visarea(0, 1024-1, 0, 768-1);
+ m_screen->set_screen_update("vector", FUNC(vector_device::screen_update));
/* sound hardware */
SPEAKER(config, "speaker").front_center();
@@ -184,8 +184,8 @@ MACHINE_CONFIG_START(cchasm_state::cchasm)
AY8910(config, "ay2", 1818182).add_route(ALL_OUTPUTS, "speaker", 0.2);
- MCFG_DEVICE_ADD("dac1", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5)
- MCFG_DEVICE_ADD("dac2", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5)
+ DAC_1BIT(config, m_dac1, 0).add_route(ALL_OUTPUTS, "speaker", 0.5);
+ DAC_1BIT(config, m_dac2, 0).add_route(ALL_OUTPUTS, "speaker", 0.5);
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac1", 1.0, DAC_VREF_POS_INPUT);
@@ -195,7 +195,7 @@ MACHINE_CONFIG_START(cchasm_state::cchasm)
ptm6840_device &ptm(PTM6840(config, "6840ptm", CCHASM_68K_CLOCK/10));
ptm.set_external_clocks(0, (CCHASM_68K_CLOCK / 10).value(), 0);
ptm.irq_callback().set_inputline("maincpu", 4);
-MACHINE_CONFIG_END
+}
diff --git a/src/mame/drivers/champbas.cpp b/src/mame/drivers/champbas.cpp
index 52ffaca1202..4fa42a9df6d 100644
--- a/src/mame/drivers/champbas.cpp
+++ b/src/mame/drivers/champbas.cpp
@@ -608,7 +608,7 @@ MACHINE_CONFIG_START(champbas_state::champbas)
AY8910(config, "ay1", XTAL(18'432'000)/12).add_route(ALL_OUTPUTS, "speaker", 0.3);
- MCFG_DEVICE_ADD("dac", DAC_6BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.7) // unknown DAC
+ DAC_6BIT_R2R(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.7); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
@@ -727,8 +727,8 @@ MACHINE_CONFIG_START(exctsccr_state::exctsccr)
AY8910(config, "ay4", XTAL(14'318'181)/8).add_route(ALL_OUTPUTS, "speaker", 0.08);
- MCFG_DEVICE_ADD("dac1", DAC_6BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.3) // unknown DAC
- MCFG_DEVICE_ADD("dac2", DAC_6BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.3) // unknown DAC
+ DAC_6BIT_R2R(config, "dac1", 0).add_route(ALL_OUTPUTS, "speaker", 0.3); // unknown DAC
+ DAC_6BIT_R2R(config, "dac2", 0).add_route(ALL_OUTPUTS, "speaker", 0.3); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac1", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac1", -1.0, DAC_VREF_NEG_INPUT);
@@ -779,7 +779,7 @@ MACHINE_CONFIG_START(exctsccr_state::exctsccrb)
AY8910(config, "ay1", XTAL(18'432'000)/12).add_route(ALL_OUTPUTS, "speaker", 0.3);
- MCFG_DEVICE_ADD("dac", DAC_6BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.7) // unknown DAC
+ DAC_6BIT_R2R(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.7); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
diff --git a/src/mame/drivers/chsuper.cpp b/src/mame/drivers/chsuper.cpp
index e838abfa592..b6d44a06090 100644
--- a/src/mame/drivers/chsuper.cpp
+++ b/src/mame/drivers/chsuper.cpp
@@ -392,7 +392,7 @@ MACHINE_CONFIG_START(chsuper_state::chsuper)
/* sound hardware */
SPEAKER(config, "speaker").front_center();
- MCFG_DEVICE_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) // unknown DAC
+ DAC_8BIT_R2R(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.25); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
diff --git a/src/mame/drivers/circusc.cpp b/src/mame/drivers/circusc.cpp
index ede53ac5e66..be0bfbcdec6 100644
--- a/src/mame/drivers/circusc.cpp
+++ b/src/mame/drivers/circusc.cpp
@@ -387,7 +387,7 @@ MACHINE_CONFIG_START(circusc_state::circusc)
MCFG_DEVICE_ADD("sn2", SN76496, XTAL(14'318'181)/8)
MCFG_SOUND_ROUTE(0, "fltdisc", 1.0, 1)
- MCFG_DEVICE_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(0, "fltdisc", 1.0, 2) // ls374.7g + r44+r45+r47+r48+r50+r56+r57+r58+r59 (20k) + r46+r49+r51+r52+r53+r54+r55 (10k) + upc324.3h
+ DAC_8BIT_R2R(config, "dac", 0).add_route(0, "fltdisc", 1.0, 2); // ls374.7g + r44+r45+r47+r48+r50+r56+r57+r58+r59 (20k) + r46+r49+r51+r52+r53+r54+r55 (10k) + upc324.3h
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref", 0));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
diff --git a/src/mame/drivers/cntsteer.cpp b/src/mame/drivers/cntsteer.cpp
index 709e040612d..1991de99997 100644
--- a/src/mame/drivers/cntsteer.cpp
+++ b/src/mame/drivers/cntsteer.cpp
@@ -967,7 +967,7 @@ MACHINE_CONFIG_START(cntsteer_state::cntsteer)
AY8910(config, "ay2", 1500000).add_route(ALL_OUTPUTS, "speaker", 0.5);
- MCFG_DEVICE_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) // unknown DAC
+ DAC_8BIT_R2R(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.25); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
diff --git a/src/mame/drivers/coolpool.cpp b/src/mame/drivers/coolpool.cpp
index cf53037393c..cfe5a6bb57e 100644
--- a/src/mame/drivers/coolpool.cpp
+++ b/src/mame/drivers/coolpool.cpp
@@ -710,8 +710,8 @@ INPUT_PORTS_END
*
*************************************/
-MACHINE_CONFIG_START(coolpool_state::amerdart)
-
+void coolpool_state::amerdart(machine_config &config)
+{
/* basic machine hardware */
TMS34010(config, m_maincpu, XTAL(40'000'000));
m_maincpu->set_addrmap(AS_PROGRAM, &coolpool_state::amerdart_map);
@@ -740,22 +740,22 @@ MACHINE_CONFIG_START(coolpool_state::amerdart)
TIMER(config, m_nvram_timer).configure_generic(FUNC(coolpool_state::nvram_write_timeout));
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_RAW_PARAMS(XTAL(40'000'000)/6, 212*2, 0, 161*2, 262, 0, 241)
- MCFG_SCREEN_UPDATE_DEVICE("maincpu", tms34010_device, tms340x0_rgb32)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_raw(XTAL(40'000'000)/6, 212*2, 0, 161*2, 262, 0, 241);
+ screen.set_screen_update("maincpu", FUNC(tms34010_device::tms340x0_rgb32));
/* sound hardware */
SPEAKER(config, "speaker").front_center();
- MCFG_DEVICE_ADD("dac", MP1210, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0)
+ MP1210(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 1.0);
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT);
-MACHINE_CONFIG_END
-
+}
-MACHINE_CONFIG_START(coolpool_state::coolpool)
+void coolpool_state::coolpool(machine_config &config)
+{
/* basic machine hardware */
TMS34010(config, m_maincpu, XTAL(40'000'000));
m_maincpu->set_addrmap(AS_PROGRAM, &coolpool_state::coolpool_map);
@@ -789,18 +789,18 @@ MACHINE_CONFIG_START(coolpool_state::coolpool)
/* video hardware */
TLC34076(config, m_tlc34076, tlc34076_device::TLC34076_6_BIT);
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_RAW_PARAMS(XTAL(40'000'000)/6, 424, 0, 320, 262, 0, 240)
- MCFG_SCREEN_UPDATE_DEVICE("maincpu", tms34010_device, tms340x0_rgb32)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_raw(XTAL(40'000'000)/6, 424, 0, 320, 262, 0, 240);
+ screen.set_screen_update("maincpu", FUNC(tms34010_device::tms340x0_rgb32));
/* sound hardware */
SPEAKER(config, "speaker").front_center();
- MCFG_DEVICE_ADD("dac", MP1210, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0)
+ MP1210(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 1.0);
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
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 coolpool_state::_9ballsht(machine_config &config)
diff --git a/src/mame/drivers/cop01.cpp b/src/mame/drivers/cop01.cpp
index 974c50dd341..fcf79bba80c 100644
--- a/src/mame/drivers/cop01.cpp
+++ b/src/mame/drivers/cop01.cpp
@@ -518,8 +518,7 @@ MACHINE_CONFIG_START(mightguy_state::mightguy)
MCFG_DEVICE_ADD("ymsnd", YM3526, AUDIOCPU_CLOCK/2) /* unknown divider */
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
- MCFG_DEVICE_ADD("dac", DAC_8BIT_R2R, 0) // unknown DAC
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5)
+ DAC_8BIT_R2R(config, "dac", 0).add_route(ALL_OUTPUTS, "mono", 0.5); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
diff --git a/src/mame/drivers/exterm.cpp b/src/mame/drivers/exterm.cpp
index c02dd2bb8f7..d8f765a631f 100644
--- a/src/mame/drivers/exterm.cpp
+++ b/src/mame/drivers/exterm.cpp
@@ -369,8 +369,8 @@ INPUT_PORTS_END
*
*************************************/
-MACHINE_CONFIG_START(exterm_state::exterm)
-
+void exterm_state::exterm(machine_config &config)
+{
/* basic machine hardware */
TMS34010(config, m_maincpu, 40000000);
m_maincpu->set_addrmap(AS_PROGRAM, &exterm_state::master_map);
@@ -406,24 +406,23 @@ MACHINE_CONFIG_START(exterm_state::exterm)
/* video hardware */
PALETTE(config, "palette", FUNC(exterm_state::exterm_palette)).set_format(palette_device::xRGB_555, 2048+32768);
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_RAW_PARAMS(40000000/8, 318, 0, 256, 264, 0, 240)
- MCFG_SCREEN_UPDATE_DEVICE("maincpu", tms34010_device, tms340x0_ind16)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_raw(40000000/8, 318, 0, 256, 264, 0, 240);
+ screen.set_screen_update("maincpu", FUNC(tms34010_device::tms340x0_ind16));
+ screen.set_palette("palette");
/* sound hardware */
SPEAKER(config, "speaker").front_center();
- MCFG_DEVICE_ADD("dac", AD7528, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.4) // ad7528j.e2
- MCFG_DEVICE_ADD("dacvol", AD7528, 0) // ad7528j.e2
- MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ AD7528(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.4); // ad7528j.e2
+ AD7528(config, "dacvol", 0).add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT).add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT); // ad7528j.e2
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dacvol", 1.0, DAC_VREF_POS_INPUT);
YM2151(config, m_ym2151, 4000000).add_route(ALL_OUTPUTS, "speaker", 1.0);
-MACHINE_CONFIG_END
+}
diff --git a/src/mame/drivers/fantland.cpp b/src/mame/drivers/fantland.cpp
index d132fb49d83..45c9c09db14 100644
--- a/src/mame/drivers/fantland.cpp
+++ b/src/mame/drivers/fantland.cpp
@@ -842,7 +842,7 @@ MACHINE_CONFIG_START(fantland_state::fantland)
YM2151(config, "ymsnd", 3000000).add_route(0, "speaker", 0.35).add_route(1, "speaker", 0.35);
- MCFG_DEVICE_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) // unknown DAC
+ DAC_8BIT_R2R(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.25); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
diff --git a/src/mame/drivers/fidel68k.cpp b/src/mame/drivers/fidel68k.cpp
index 99e3e1f959c..be45eb18ad0 100644
--- a/src/mame/drivers/fidel68k.cpp
+++ b/src/mame/drivers/fidel68k.cpp
@@ -568,11 +568,11 @@ INPUT_PORTS_END
Machine Drivers
******************************************************************************/
-MACHINE_CONFIG_START(fidel68k_state::fex68k)
-
+void fidel68k_state::fex68k(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, 12_MHz_XTAL) // HD68HC000P12
- MCFG_DEVICE_PROGRAM_MAP(fex68k_map)
+ M68000(config, m_maincpu, 12_MHz_XTAL); // HD68HC000P12
+ m_maincpu->set_addrmap(AS_PROGRAM, &fidel68k_state::fex68k_map);
const attotime irq_period = attotime::from_hz(618); // theoretical frequency from 556 timer (22nF, 91K + 20K POT @ 14.8K, 0.1K), measurement was 580Hz
TIMER(config, m_irq_on).configure_periodic(FUNC(fidel68k_state::irq_on<M68K_IRQ_2>), irq_period);
@@ -584,34 +584,34 @@ MACHINE_CONFIG_START(fidel68k_state::fex68k)
/* sound hardware */
SPEAKER(config, "speaker").front_center();
- MCFG_DEVICE_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
+ DAC_1BIT(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 0.25);
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref", 0));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(fidel68k_state::fex68km2)
+void fidel68k_state::fex68km2(machine_config &config)
+{
fex68k(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(fex68km2_map)
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_PROGRAM, &fidel68k_state::fex68km2_map);
+}
-MACHINE_CONFIG_START(fidel68k_state::fex68km3)
+void fidel68k_state::fex68km3(machine_config &config)
+{
fex68k(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_CLOCK(16_MHz_XTAL) // factory overclock
- MCFG_DEVICE_PROGRAM_MAP(fex68km3_map)
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(fidel68k_state::fdes2265)
+ m_maincpu->set_clock(16_MHz_XTAL); // factory overclock
+ m_maincpu->set_addrmap(AS_PROGRAM, &fidel68k_state::fex68km3_map);
+}
+void fidel68k_state::fdes2265(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, 16_MHz_XTAL) // MC68HC000P12F
- MCFG_DEVICE_PROGRAM_MAP(fdes2265_map)
+ M68000(config, m_maincpu, 16_MHz_XTAL); // MC68HC000P12F
+ m_maincpu->set_addrmap(AS_PROGRAM, &fidel68k_state::fdes2265_map);
const attotime irq_period = attotime::from_hz(597); // from 555 timer, measured
TIMER(config, m_irq_on).configure_periodic(FUNC(fidel68k_state::irq_on<M68K_IRQ_4>), irq_period);
@@ -623,27 +623,27 @@ MACHINE_CONFIG_START(fidel68k_state::fdes2265)
/* sound hardware */
SPEAKER(config, "speaker").front_center();
- MCFG_DEVICE_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
+ DAC_1BIT(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 0.25);
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref", 0));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(fidel68k_state::fdes2325)
+void fidel68k_state::fdes2325(machine_config &config)
+{
fdes2265(config);
/* basic machine hardware */
- MCFG_DEVICE_REPLACE("maincpu", M68EC020, 20_MHz_XTAL) // MC68EC020RP25
- MCFG_DEVICE_PROGRAM_MAP(fdes2325_map)
+ M68EC020(config.replace(), m_maincpu, 20_MHz_XTAL); // MC68EC020RP25
+ m_maincpu->set_addrmap(AS_PROGRAM, &fidel68k_state::fdes2325_map);
config.set_default_layout(layout_fidel_desdis_68kg);
-MACHINE_CONFIG_END
+}
MACHINE_CONFIG_START(fidel68k_state::eag_base)
-
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, 16_MHz_XTAL)
- MCFG_DEVICE_PROGRAM_MAP(eag_map)
+ M68000(config, m_maincpu, 16_MHz_XTAL);
+ m_maincpu->set_addrmap(AS_PROGRAM, &fidel68k_state::eag_map);
const attotime irq_period = attotime::from_hz(4.9152_MHz_XTAL/0x2000); // 600Hz
TIMER(config, m_irq_on).configure_periodic(FUNC(fidel68k_state::irq_on<M68K_IRQ_2>), irq_period);
@@ -657,7 +657,7 @@ MACHINE_CONFIG_START(fidel68k_state::eag_base)
/* sound hardware */
SPEAKER(config, "speaker").front_center();
- MCFG_DEVICE_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
+ DAC_1BIT(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 0.25);
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref", 0));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
@@ -675,51 +675,56 @@ void fidel68k_state::eag(machine_config &config)
RAM(config, m_ram).set_default_size("1M").set_extra_options("128K, 512K, 1M");
}
-MACHINE_CONFIG_START(fidel68k_state::eagv5)
+void fidel68k_state::eagv5(machine_config &config)
+{
eag(config);
/* basic machine hardware */
m_ram->set_default_size("128K");
- MCFG_DEVICE_ADD("subcpu", M68000, 16_MHz_XTAL)
- MCFG_DEVICE_PROGRAM_MAP(eagv5_slave_map)
-MACHINE_CONFIG_END
+ m68000_device &subcpu(M68000(config, "subcpu", 16_MHz_XTAL));
+ subcpu.set_addrmap(AS_PROGRAM, &fidel68k_state::eagv5_slave_map);
+}
-MACHINE_CONFIG_START(fidel68k_state::eagv7)
+void fidel68k_state::eagv7(machine_config &config)
+{
eag_base(config);
/* basic machine hardware */
- MCFG_DEVICE_REPLACE("maincpu", M68020, 20_MHz_XTAL)
- MCFG_DEVICE_PROGRAM_MAP(eagv7_map)
-MACHINE_CONFIG_END
+ M68020(config.replace(), m_maincpu, 20_MHz_XTAL);
+ m_maincpu->set_addrmap(AS_PROGRAM, &fidel68k_state::eagv7_map);
+}
-MACHINE_CONFIG_START(fidel68k_state::eagv9)
+void fidel68k_state::eagv9(machine_config &config)
+{
eagv7(config);
/* basic machine hardware */
- MCFG_DEVICE_REPLACE("maincpu", M68030, 32_MHz_XTAL)
- MCFG_DEVICE_PROGRAM_MAP(eagv7_map)
-MACHINE_CONFIG_END
+ M68030(config.replace(), m_maincpu, 32_MHz_XTAL);
+ m_maincpu->set_addrmap(AS_PROGRAM, &fidel68k_state::eagv7_map);
+}
-MACHINE_CONFIG_START(fidel68k_state::eagv10)
+void fidel68k_state::eagv10(machine_config &config)
+{
eagv7(config);
/* basic machine hardware */
- MCFG_DEVICE_REPLACE("maincpu", M68040, 25_MHz_XTAL)
- MCFG_DEVICE_PROGRAM_MAP(eagv11_map)
-MACHINE_CONFIG_END
+ M68040(config.replace(), m_maincpu, 25_MHz_XTAL);
+ m_maincpu->set_addrmap(AS_PROGRAM, &fidel68k_state::eagv11_map);
+}
-MACHINE_CONFIG_START(fidel68k_state::eagv11)
+void fidel68k_state::eagv11(machine_config &config)
+{
eagv7(config);
/* basic machine hardware */
- MCFG_DEVICE_REPLACE("maincpu", M68EC040, 36_MHz_XTAL*2*2) // wrong! should be M68EC060 @ 72MHz
- MCFG_DEVICE_PROGRAM_MAP(eagv11_map)
+ M68EC040(config.replace(), m_maincpu, 36_MHz_XTAL*2*2); // wrong! should be M68EC060 @ 72MHz
+ m_maincpu->set_addrmap(AS_PROGRAM, &fidel68k_state::eagv11_map);
+ m_maincpu->set_periodic_int(FUNC(fidel68k_state::irq2_line_hold), attotime::from_hz(600));
- MCFG_DEVICE_PERIODIC_INT_DRIVER(fidel68k_state, irq2_line_hold, 600)
config.device_remove("irq_on"); // 8.25us is too long
config.device_remove("irq_off");
-MACHINE_CONFIG_END
+}
diff --git a/src/mame/drivers/finalizr.cpp b/src/mame/drivers/finalizr.cpp
index e3da8829e4f..01a3082b7a7 100644
--- a/src/mame/drivers/finalizr.cpp
+++ b/src/mame/drivers/finalizr.cpp
@@ -298,7 +298,7 @@ MACHINE_CONFIG_START(finalizr_state::finalizr)
MCFG_DEVICE_ADD("snsnd", SN76489A, XTAL(18'432'000)/12)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.75)
- MCFG_DEVICE_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.325) // unknown DAC
+ DAC_8BIT_R2R(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.325); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
diff --git a/src/mame/drivers/galaxian.cpp b/src/mame/drivers/galaxian.cpp
index a42110bd60e..a390adba942 100644
--- a/src/mame/drivers/galaxian.cpp
+++ b/src/mame/drivers/galaxian.cpp
@@ -6348,23 +6348,24 @@ void galaxian_state::mshuttle(machine_config &config)
}
-MACHINE_CONFIG_START(galaxian_state::kingball)
+void galaxian_state::kingball(machine_config &config)
+{
mooncrst(config);
/* basic machine hardware */
- MCFG_DEVICE_ADD("audiocpu", Z80,5000000/2)
- MCFG_DEVICE_PROGRAM_MAP(kingball_sound_map)
- MCFG_DEVICE_IO_MAP(kingball_sound_portmap)
+ Z80(config, m_audiocpu, 5000000/2);
+ m_audiocpu->set_addrmap(AS_PROGRAM, &galaxian_state::kingball_sound_map);
+ m_audiocpu->set_addrmap(AS_IO, &galaxian_state::kingball_sound_portmap);
GENERIC_LATCH_8(config, m_soundlatch);
/* sound hardware */
- MCFG_DEVICE_ADD("dac", DAC_4BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.53) // unknown DAC
+ DAC_4BIT_R2R(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 0.53); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
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 galaxian_state::frogger(machine_config &config)
@@ -6559,7 +6560,8 @@ MACHINE_CONFIG_START(galaxian_state::scorpion)
MACHINE_CONFIG_END
-MACHINE_CONFIG_START(galaxian_state::sfx)
+void galaxian_state::sfx(machine_config &config)
+{
scramble_base(config);
config.device_remove("watchdog");
@@ -6568,9 +6570,9 @@ MACHINE_CONFIG_START(galaxian_state::sfx)
m_maincpu->set_addrmap(AS_PROGRAM, &galaxian_state::sfx_map);
/* 3rd CPU for the sample player */
- MCFG_DEVICE_ADD("audio2", Z80, KONAMI_SOUND_CLOCK/8)
- MCFG_DEVICE_PROGRAM_MAP(sfx_sample_map)
- MCFG_DEVICE_IO_MAP(sfx_sample_portmap)
+ Z80(config, m_audio2, KONAMI_SOUND_CLOCK/8);
+ m_audio2->set_addrmap(AS_PROGRAM, &galaxian_state::sfx_sample_map);
+ m_audio2->set_addrmap(AS_IO, &galaxian_state::sfx_sample_portmap);
I8255A(config, m_ppi8255[2]);
m_ppi8255[2]->in_pa_callback().set("soundlatch2", FUNC(generic_latch_8_device::read));
@@ -6582,12 +6584,12 @@ MACHINE_CONFIG_START(galaxian_state::sfx)
m_ay8910[1]->port_b_write_callback().set(FUNC(galaxian_state::sfx_sample_control_w));
/* DAC for the sample player */
- MCFG_DEVICE_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0) // 16-pin IC (not identified by schematics)
+ DAC_8BIT_R2R(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 1.0); // 16-pin IC (not identified by schematics)
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
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 galaxian_state::monsterz(machine_config &config)
diff --git a/src/mame/drivers/galeb.cpp b/src/mame/drivers/galeb.cpp
index 590d39b128d..016576081c1 100644
--- a/src/mame/drivers/galeb.cpp
+++ b/src/mame/drivers/galeb.cpp
@@ -164,19 +164,20 @@ static INPUT_PORTS_START( galeb )
INPUT_PORTS_END
/* Machine driver */
-MACHINE_CONFIG_START(galeb_state::galeb)
+void galeb_state::galeb(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M6502, 1000000)
- MCFG_DEVICE_PROGRAM_MAP(galeb_mem)
+ M6502(config, m_maincpu, 1000000);
+ m_maincpu->set_addrmap(AS_PROGRAM, &galeb_state::galeb_mem);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_SIZE(48*8, 16*8)
- MCFG_SCREEN_VISIBLE_AREA(0, 48*8-1, 0, 16*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(galeb_state, screen_update_galeb)
- MCFG_SCREEN_PALETTE(m_palette)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(50);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ screen.set_size(48*8, 16*8);
+ screen.set_visarea(0, 48*8-1, 0, 16*8-1);
+ screen.set_screen_update(FUNC(galeb_state::screen_update_galeb));
+ screen.set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_galeb);
@@ -185,11 +186,11 @@ MACHINE_CONFIG_START(galeb_state::galeb)
/* audio hardware */
SPEAKER(config, "speaker").front_center();
- MCFG_DEVICE_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.0625) // unknown DAC
+ DAC_1BIT(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 0.0625); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref", 0));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
-MACHINE_CONFIG_END
+}
/* ROM definition */
ROM_START( galeb )
diff --git a/src/mame/drivers/galivan.cpp b/src/mame/drivers/galivan.cpp
index a2dbc99460f..ced01bdb610 100644
--- a/src/mame/drivers/galivan.cpp
+++ b/src/mame/drivers/galivan.cpp
@@ -470,8 +470,8 @@ MACHINE_CONFIG_START(galivan_state::galivan)
MCFG_DEVICE_ADD("ymsnd", YM3526, XTAL(8'000'000)/2)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0)
- MCFG_DEVICE_ADD("dac1", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) // unknown DAC
- MCFG_DEVICE_ADD("dac2", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) // unknown DAC
+ DAC_8BIT_R2R(config, "dac1", 0).add_route(ALL_OUTPUTS, "speaker", 0.25); // unknown DAC
+ DAC_8BIT_R2R(config, "dac2", 0).add_route(ALL_OUTPUTS, "speaker", 0.25); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac1", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac1", -1.0, DAC_VREF_NEG_INPUT);
@@ -529,8 +529,8 @@ MACHINE_CONFIG_START(galivan_state::ninjemak)
MCFG_DEVICE_ADD("ymsnd", YM3526, XTAL(8'000'000)/2)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0)
- MCFG_DEVICE_ADD("dac1", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) // unknown DAC
- MCFG_DEVICE_ADD("dac2", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) // unknown DAC
+ DAC_8BIT_R2R(config, "dac1", 0).add_route(ALL_OUTPUTS, "speaker", 0.25); // unknown DAC
+ DAC_8BIT_R2R(config, "dac2", 0).add_route(ALL_OUTPUTS, "speaker", 0.25); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac1", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac1", -1.0, DAC_VREF_NEG_INPUT);
diff --git a/src/mame/drivers/gamecom.cpp b/src/mame/drivers/gamecom.cpp
index 5a905b6a59a..d454a73db3f 100644
--- a/src/mame/drivers/gamecom.cpp
+++ b/src/mame/drivers/gamecom.cpp
@@ -282,9 +282,9 @@ MACHINE_CONFIG_START(gamecom_state::gamecom)
/* sound hardware */
SPEAKER(config, "speaker").front_center();
/* TODO: much more complex than this */
- MCFG_DEVICE_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5) // unknown DAC (Digital audio)
- MCFG_DEVICE_ADD("dac0", DAC_4BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.05) // unknown DAC (Frequency modulation)
- MCFG_DEVICE_ADD("dac1", DAC_4BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.05) // unknown DAC (Frequency modulation)
+ DAC_8BIT_R2R(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 0.5); // unknown DAC (Digital audio)
+ DAC_4BIT_R2R(config, m_dac0, 0).add_route(ALL_OUTPUTS, "speaker", 0.05); // unknown DAC (Frequency modulation)
+ DAC_4BIT_R2R(config, m_dac1, 0).add_route(ALL_OUTPUTS, "speaker", 0.05); // unknown DAC (Frequency modulation)
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT);
diff --git a/src/mame/drivers/gba.cpp b/src/mame/drivers/gba.cpp
index 53a12ba2ab8..13d82bcfe6f 100644
--- a/src/mame/drivers/gba.cpp
+++ b/src/mame/drivers/gba.cpp
@@ -1430,10 +1430,10 @@ static void gba_cart(device_slot_interface &device)
}
-MACHINE_CONFIG_START(gba_state::gbadv)
-
- MCFG_DEVICE_ADD("maincpu", ARM7, XTAL(16'777'216))
- MCFG_DEVICE_PROGRAM_MAP(gba_map)
+void gba_state::gbadv(machine_config &config)
+{
+ ARM7(config, m_maincpu, XTAL(16'777'216));
+ m_maincpu->set_addrmap(AS_PROGRAM, &gba_state::gba_map);
gba_lcd_device &lcd(GBA_LCD(config, "lcd", 0));
lcd.int_hblank_callback().set(FUNC(gba_state::int_hblank_callback));
@@ -1444,14 +1444,14 @@ MACHINE_CONFIG_START(gba_state::gbadv)
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
- MCFG_DEVICE_ADD("custom", CGB04_APU, XTAL(16'777'216)/4)
- MCFG_SOUND_ROUTE(0, "lspeaker", 0.5)
- MCFG_SOUND_ROUTE(1, "rspeaker", 0.5)
-
- MCFG_DEVICE_ADD("ldaca", DAC_8BIT_R2R_TWOS_COMPLEMENT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.5) // unknown DAC
- MCFG_DEVICE_ADD("rdaca", DAC_8BIT_R2R_TWOS_COMPLEMENT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.5) // unknown DAC
- MCFG_DEVICE_ADD("ldacb", DAC_8BIT_R2R_TWOS_COMPLEMENT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.5) // unknown DAC
- MCFG_DEVICE_ADD("rdacb", DAC_8BIT_R2R_TWOS_COMPLEMENT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.5) // unknown DAC
+ CGB04_APU(config, m_gbsound, XTAL(16'777'216)/4);
+ m_gbsound->add_route(0, "lspeaker", 0.5);
+ m_gbsound->add_route(1, "rspeaker", 0.5);
+
+ DAC_8BIT_R2R_TWOS_COMPLEMENT(config, m_ldaca, 0).add_route(ALL_OUTPUTS, "lspeaker", 0.5); // unknown DAC
+ DAC_8BIT_R2R_TWOS_COMPLEMENT(config, m_rdaca, 0).add_route(ALL_OUTPUTS, "rspeaker", 0.5); // unknown DAC
+ DAC_8BIT_R2R_TWOS_COMPLEMENT(config, m_ldacb, 0).add_route(ALL_OUTPUTS, "lspeaker", 0.5); // unknown DAC
+ DAC_8BIT_R2R_TWOS_COMPLEMENT(config, m_rdacb, 0).add_route(ALL_OUTPUTS, "rspeaker", 0.5); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref", 0));
vref.set_output(5.0);
vref.add_route(0, "ldaca", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "ldaca", -1.0, DAC_VREF_NEG_INPUT);
@@ -1461,7 +1461,7 @@ MACHINE_CONFIG_START(gba_state::gbadv)
GBA_CART_SLOT(config, m_cart, gba_cart, nullptr);
SOFTWARE_LIST(config, "cart_list").set_original("gba");
-MACHINE_CONFIG_END
+}
ROM_START( gba )
diff --git a/src/mame/drivers/gei.cpp b/src/mame/drivers/gei.cpp
index 2a403be5089..6afd8d21955 100644
--- a/src/mame/drivers/gei.cpp
+++ b/src/mame/drivers/gei.cpp
@@ -1010,7 +1010,7 @@ MACHINE_CONFIG_START(gei_state::getrivia)
/* sound hardware */
SPEAKER(config, "speaker").front_center();
- MCFG_DEVICE_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.99)
+ DAC_1BIT(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 0.99);
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref", 0));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
diff --git a/src/mame/drivers/go2000.cpp b/src/mame/drivers/go2000.cpp
index 93ec38c2a92..5ac1edfb219 100644
--- a/src/mame/drivers/go2000.cpp
+++ b/src/mame/drivers/go2000.cpp
@@ -371,7 +371,7 @@ MACHINE_CONFIG_START(go2000_state::go2000)
GENERIC_LATCH_8(config, m_soundlatch);
SPEAKER(config, "speaker").front_center();
- MCFG_DEVICE_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(0, "speaker", 0.25) // unknown DAC
+ DAC_8BIT_R2R(config, "dac", 0).add_route(0, "speaker", 0.25); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
diff --git a/src/mame/drivers/gp32.cpp b/src/mame/drivers/gp32.cpp
index e8232aea7ca..bd55fe4a6a1 100644
--- a/src/mame/drivers/gp32.cpp
+++ b/src/mame/drivers/gp32.cpp
@@ -1688,8 +1688,8 @@ MACHINE_CONFIG_START(gp32_state::gp32)
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
- MCFG_DEVICE_ADD("ldac", DAC_16BIT_R2R_TWOS_COMPLEMENT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) // unknown DAC
- MCFG_DEVICE_ADD("rdac", DAC_16BIT_R2R_TWOS_COMPLEMENT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) // unknown DAC
+ DAC_16BIT_R2R_TWOS_COMPLEMENT(config, m_ldac, 0).add_route(ALL_OUTPUTS, "lspeaker", 1.0); // unknown DAC
+ DAC_16BIT_R2R_TWOS_COMPLEMENT(config, m_rdac, 0).add_route(ALL_OUTPUTS, "rspeaker", 1.0); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "ldac", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "ldac", -1.0, DAC_VREF_NEG_INPUT);
diff --git a/src/mame/drivers/hankin.cpp b/src/mame/drivers/hankin.cpp
index fd69ae66296..8b15f6f74ac 100644
--- a/src/mame/drivers/hankin.cpp
+++ b/src/mame/drivers/hankin.cpp
@@ -472,13 +472,14 @@ WRITE_LINE_MEMBER( hankin_state::ic2_cb2_w )
m_ic2_cb2 = state;
}
-MACHINE_CONFIG_START(hankin_state::hankin)
+void hankin_state::hankin(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M6802, 3276800)
- MCFG_DEVICE_PROGRAM_MAP(hankin_map)
+ M6802(config, m_maincpu, 3276800);
+ m_maincpu->set_addrmap(AS_PROGRAM, &hankin_state::hankin_map);
- MCFG_DEVICE_ADD("audiocpu", M6802, 3276800) // guess, xtal value not shown
- MCFG_DEVICE_PROGRAM_MAP(hankin_sub_map)
+ M6802(config, m_audiocpu, 3276800); // guess, xtal value not shown
+ m_audiocpu->set_addrmap(AS_PROGRAM, &hankin_state::hankin_sub_map);
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
@@ -489,7 +490,7 @@ MACHINE_CONFIG_START(hankin_state::hankin)
genpin_audio(config);
SPEAKER(config, "speaker").front_center();
- MCFG_DEVICE_ADD("dac", DAC_4BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5) // unknown DAC
+ DAC_4BIT_R2R(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 0.5); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
@@ -528,7 +529,7 @@ MACHINE_CONFIG_START(hankin_state::hankin)
TIMER(config, "timer_x").configure_periodic(FUNC(hankin_state::timer_x), attotime::from_hz(120)); // mains freq*2
TIMER(config, "timer_s").configure_periodic(FUNC(hankin_state::timer_s), attotime::from_hz(94000)); // 555 on sound board*2
-MACHINE_CONFIG_END
+}
/*--------------------------------
/ FJ Holden
diff --git a/src/mame/drivers/hapyfish.cpp b/src/mame/drivers/hapyfish.cpp
index c31dfd28921..1c2c9435f2f 100644
--- a/src/mame/drivers/hapyfish.cpp
+++ b/src/mame/drivers/hapyfish.cpp
@@ -257,8 +257,8 @@ MACHINE_CONFIG_START(hapyfish_state::hapyfish)
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
- MCFG_DEVICE_ADD("ldac", UDA1341TS, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) // uda1341ts.u12
- MCFG_DEVICE_ADD("rdac", UDA1341TS, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) // uda1341ts.u12
+ UDA1341TS(config, m_ldac, 0).add_route(ALL_OUTPUTS, "lspeaker", 1.0); // uda1341ts.u12
+ UDA1341TS(config, m_rdac, 0).add_route(ALL_OUTPUTS, "rspeaker", 1.0); // uda1341ts.u12
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "ldac", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "ldac", -1.0, DAC_VREF_NEG_INPUT);
diff --git a/src/mame/drivers/homelab.cpp b/src/mame/drivers/homelab.cpp
index a4381953667..d75e303becb 100644
--- a/src/mame/drivers/homelab.cpp
+++ b/src/mame/drivers/homelab.cpp
@@ -772,7 +772,7 @@ MACHINE_CONFIG_START(homelab_state::homelab)
/* sound hardware */
SPEAKER(config, "speaker").front_center();
- MCFG_DEVICE_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5)
+ DAC_1BIT(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 0.5);
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref", 0));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
@@ -806,7 +806,7 @@ MACHINE_CONFIG_START(homelab_state::homelab3)
/* sound hardware */
SPEAKER(config, "speaker").front_center();
- MCFG_DEVICE_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5)
+ DAC_1BIT(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 0.5);
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref", 0));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
@@ -840,7 +840,7 @@ MACHINE_CONFIG_START(homelab_state::brailab4)
/* sound hardware */
SPEAKER(config, "speaker").front_center();
- MCFG_DEVICE_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5)
+ DAC_1BIT(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 0.5);
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref", 0));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
diff --git a/src/mame/drivers/hp80.cpp b/src/mame/drivers/hp80.cpp
index 295c3b50f50..3770537e8b7 100644
--- a/src/mame/drivers/hp80.cpp
+++ b/src/mame/drivers/hp80.cpp
@@ -1355,13 +1355,11 @@ MACHINE_CONFIG_START(hp85_state::hp85)
// Beeper
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("dac" , DAC_1BIT , 0)
- MCFG_MIXER_ROUTE(ALL_OUTPUTS , "mono" , 0.5 , 0)
+ DAC_1BIT(config, m_dac , 0).add_route(ALL_OUTPUTS, "mono", 0.5, AUTO_ALLOC_INPUT, 0);
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
- MCFG_DEVICE_ADD("beeper" , BEEP , MASTER_CLOCK / 8192)
- MCFG_MIXER_ROUTE(ALL_OUTPUTS , "mono" , 0.5 , 0)
+ BEEP(config, m_beep, MASTER_CLOCK / 8192).add_route(ALL_OUTPUTS, "mono", 0.5, AUTO_ALLOC_INPUT, 0);
// Tape drive
MCFG_DEVICE_ADD("tape" , HP_1MA6 , 0)
diff --git a/src/mame/drivers/hyhoo.cpp b/src/mame/drivers/hyhoo.cpp
index f39b367f8cd..a68f6415aa2 100644
--- a/src/mame/drivers/hyhoo.cpp
+++ b/src/mame/drivers/hyhoo.cpp
@@ -254,7 +254,7 @@ MACHINE_CONFIG_START(hyhoo_state::hyhoo)
aysnd.port_b_read_callback().set_ioport("DSWB");
aysnd.add_route(ALL_OUTPUTS, "speaker", 0.35);
- MCFG_DEVICE_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) // unknown DAC
+ DAC_8BIT_R2R(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.25); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
diff --git a/src/mame/drivers/instantm.cpp b/src/mame/drivers/instantm.cpp
index 7044be5d585..42b2f3a2967 100644
--- a/src/mame/drivers/instantm.cpp
+++ b/src/mame/drivers/instantm.cpp
@@ -126,26 +126,27 @@ void instantm_state::machine_reset()
// OSC1 = XTAL(3'579'545)
-MACHINE_CONFIG_START(instantm_state::instantm)
+void instantm_state::instantm(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, XTAL(3'579'545))
- MCFG_DEVICE_PROGRAM_MAP(main_map)
+ Z80(config, m_maincpu, XTAL(3'579'545));
+ m_maincpu->set_addrmap(AS_PROGRAM, &instantm_state::main_map);
- MCFG_DEVICE_ADD("subcpu", Z80, XTAL(3'579'545))
- MCFG_DEVICE_PROGRAM_MAP(sub_map)
- MCFG_DEVICE_IO_MAP(sub_io)
+ z80_device &subcpu(Z80(config, "subcpu", XTAL(3'579'545)));
+ subcpu.set_addrmap(AS_PROGRAM, &instantm_state::sub_map);
+ subcpu.set_addrmap(AS_IO, &instantm_state::sub_io);
// all guesswork
clock_device &voice_clock(CLOCK(config, "voice_clock", 24000));
voice_clock.signal_handler().set(FUNC(instantm_state::clock_w));
SPEAKER(config, "speaker").front_center();
- MCFG_DEVICE_ADD("dac", MC1408, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5)
+ MC1408(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.5);
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT);
-MACHINE_CONFIG_END
+}
diff --git a/src/mame/drivers/juicebox.cpp b/src/mame/drivers/juicebox.cpp
index 4a35b415480..ca52a7b84c4 100644
--- a/src/mame/drivers/juicebox.cpp
+++ b/src/mame/drivers/juicebox.cpp
@@ -323,7 +323,7 @@ MACHINE_CONFIG_START(juicebox_state::juicebox)
MCFG_SCREEN_UPDATE_DEVICE("s3c44b0", s3c44b0_device, video_update)
SPEAKER(config, "speaker").front_center();
- MCFG_DEVICE_ADD("dac", DAC_16BIT_R2R_TWOS_COMPLEMENT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0) // unknown DAC
+ DAC_16BIT_R2R_TWOS_COMPLEMENT(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 1.0); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
diff --git a/src/mame/drivers/kingobox.cpp b/src/mame/drivers/kingobox.cpp
index e5dde38b39a..e2f2e19cddc 100644
--- a/src/mame/drivers/kingobox.cpp
+++ b/src/mame/drivers/kingobox.cpp
@@ -511,7 +511,7 @@ MACHINE_CONFIG_START(kingofb_state::kingofb)
aysnd.port_a_read_callback().set(m_soundlatch, FUNC(generic_latch_8_device::read));
aysnd.add_route(ALL_OUTPUTS, "speaker", 0.25);
- MCFG_DEVICE_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.125) // 100K (R30-44 even)/200K (R31-45 odd) ladder network
+ DAC_8BIT_R2R(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.125); // 100K (R30-44 even)/200K (R31-45 odd) ladder network
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
@@ -569,7 +569,7 @@ MACHINE_CONFIG_START(kingofb_state::ringking)
aysnd.port_a_read_callback().set(m_soundlatch, FUNC(generic_latch_8_device::read));
aysnd.add_route(ALL_OUTPUTS, "speaker", 0.25);
- MCFG_DEVICE_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.125) // unknown DAC
+ DAC_8BIT_R2R(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.125); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
diff --git a/src/mame/drivers/ksayakyu.cpp b/src/mame/drivers/ksayakyu.cpp
index d2114f23859..83a7cd44dcc 100644
--- a/src/mame/drivers/ksayakyu.cpp
+++ b/src/mame/drivers/ksayakyu.cpp
@@ -299,7 +299,7 @@ MACHINE_CONFIG_START(ksayakyu_state::ksayakyu)
ay2.port_b_write_callback().set(FUNC(ksayakyu_state::dummy3_w));
ay2.add_route(ALL_OUTPUTS, "speaker", 0.25);
- MCFG_DEVICE_ADD("dac", DAC_6BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) // unknown DAC
+ DAC_6BIT_R2R(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.25); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
diff --git a/src/mame/drivers/laserbas.cpp b/src/mame/drivers/laserbas.cpp
index f205c8f056c..c1f35a49e3d 100644
--- a/src/mame/drivers/laserbas.cpp
+++ b/src/mame/drivers/laserbas.cpp
@@ -368,11 +368,11 @@ INPUT_PORTS_END
#define CLOCK 16680000
#define PIT_CLOCK (CLOCK/16) // 12 divider ?
-MACHINE_CONFIG_START(laserbas_state::laserbas)
-
- MCFG_DEVICE_ADD("maincpu", Z80, CLOCK / 4)
- MCFG_DEVICE_PROGRAM_MAP(laserbas_memory)
- MCFG_DEVICE_IO_MAP(laserbas_io)
+void laserbas_state::laserbas(machine_config &config)
+{
+ Z80(config, m_maincpu, CLOCK / 4);
+ m_maincpu->set_addrmap(AS_PROGRAM, &laserbas_state::laserbas_memory);
+ m_maincpu->set_addrmap(AS_IO, &laserbas_state::laserbas_io);
TIMER(config, "scantimer").configure_scanline(FUNC(laserbas_state::laserbas_scanline), "screen", 0, 1);
/* TODO: clocks aren't known */
@@ -392,9 +392,9 @@ MACHINE_CONFIG_START(laserbas_state::laserbas)
pit1.out_handler<1>().set(FUNC(laserbas_state::pit_out_w<4>));
pit1.out_handler<2>().set(FUNC(laserbas_state::pit_out_w<5>));
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_RAW_PARAMS(4000000, 256, 0, 256, 256, 0, 256) /* temporary, CRTC will configure screen */
- MCFG_SCREEN_UPDATE_DEVICE("crtc", mc6845_device, screen_update)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_raw(4000000, 256, 0, 256, 256, 0, 256); /* temporary, CRTC will configure screen */
+ screen.set_screen_update("crtc", FUNC(mc6845_device::screen_update));
h46505_device &crtc(H46505(config, "crtc", 3000000/4)); /* unknown clock, hand tuned to get ~60 fps */
crtc.set_screen("screen");
@@ -406,12 +406,12 @@ MACHINE_CONFIG_START(laserbas_state::laserbas)
/* sound hardware */
SPEAKER(config, "speaker").front_center();
- MCFG_DEVICE_ADD(m_dac[0], DAC_4BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.16)
- MCFG_DEVICE_ADD(m_dac[1], DAC_4BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.16)
- MCFG_DEVICE_ADD(m_dac[2], DAC_4BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.16)
- MCFG_DEVICE_ADD(m_dac[3], DAC_4BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.16)
- MCFG_DEVICE_ADD(m_dac[4], DAC_4BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.16)
- MCFG_DEVICE_ADD(m_dac[5], DAC_4BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.16)
+ DAC_4BIT_R2R(config, m_dac[0], 0).add_route(ALL_OUTPUTS, "speaker", 0.16);
+ DAC_4BIT_R2R(config, m_dac[1], 0).add_route(ALL_OUTPUTS, "speaker", 0.16);
+ DAC_4BIT_R2R(config, m_dac[2], 0).add_route(ALL_OUTPUTS, "speaker", 0.16);
+ DAC_4BIT_R2R(config, m_dac[3], 0).add_route(ALL_OUTPUTS, "speaker", 0.16);
+ DAC_4BIT_R2R(config, m_dac[4], 0).add_route(ALL_OUTPUTS, "speaker", 0.16);
+ DAC_4BIT_R2R(config, m_dac[5], 0).add_route(ALL_OUTPUTS, "speaker", 0.16);
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref", 0));
vref.set_output(5.0);
vref.add_route(0, "dac1", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac1", -1.0, DAC_VREF_NEG_INPUT);
@@ -420,8 +420,7 @@ MACHINE_CONFIG_START(laserbas_state::laserbas)
vref.add_route(0, "dac4", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac4", -1.0, DAC_VREF_NEG_INPUT);
vref.add_route(0, "dac5", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac5", -1.0, DAC_VREF_NEG_INPUT);
vref.add_route(0, "dac6", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac6", -1.0, DAC_VREF_NEG_INPUT);
-
-MACHINE_CONFIG_END
+}
/*
Amstar LaserBase 1981 (Hoei)
diff --git a/src/mame/drivers/lasso.cpp b/src/mame/drivers/lasso.cpp
index 0a67562300f..02bd0aef619 100644
--- a/src/mame/drivers/lasso.cpp
+++ b/src/mame/drivers/lasso.cpp
@@ -573,7 +573,7 @@ MACHINE_CONFIG_START(lasso_state::wwjgtin)
MCFG_VIDEO_START_OVERRIDE(lasso_state,wwjgtin)
/* sound hardware */
- MCFG_DEVICE_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5) // unknown DAC
+ DAC_8BIT_R2R(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.5); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
diff --git a/src/mame/drivers/lazercmd.cpp b/src/mame/drivers/lazercmd.cpp
index eb9f8115393..1fa02c57665 100644
--- a/src/mame/drivers/lazercmd.cpp
+++ b/src/mame/drivers/lazercmd.cpp
@@ -652,10 +652,10 @@ MACHINE_CONFIG_START(lazercmd_state::lazercmd)
/* sound hardware */
SPEAKER(config, "speaker").front_center();
- MCFG_DEVICE_ADD("dac0", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.99)
- MCFG_DEVICE_ADD("dac1", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.99)
- MCFG_DEVICE_ADD("dac2", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.99)
- MCFG_DEVICE_ADD("dac3", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.99)
+ DAC_1BIT(config, m_dac0, 0).add_route(ALL_OUTPUTS, "speaker", 0.99);
+ DAC_1BIT(config, m_dac1, 0).add_route(ALL_OUTPUTS, "speaker", 0.99);
+ DAC_1BIT(config, m_dac2, 0).add_route(ALL_OUTPUTS, "speaker", 0.99);
+ DAC_1BIT(config, m_dac3, 0).add_route(ALL_OUTPUTS, "speaker", 0.99);
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac0", 1.0, DAC_VREF_POS_INPUT);
@@ -691,8 +691,8 @@ MACHINE_CONFIG_START(lazercmd_state::medlanes)
/* sound hardware */
SPEAKER(config, "speaker").front_center();
- MCFG_DEVICE_ADD("dac2", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.99)
- MCFG_DEVICE_ADD("dac3", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.99)
+ DAC_1BIT(config, m_dac2, 0).add_route(ALL_OUTPUTS, "speaker", 0.99);
+ DAC_1BIT(config, m_dac3, 0).add_route(ALL_OUTPUTS, "speaker", 0.99);
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac2", 1.0, DAC_VREF_POS_INPUT);
@@ -726,8 +726,8 @@ MACHINE_CONFIG_START(lazercmd_state::bbonk)
/* sound hardware */
SPEAKER(config, "speaker").front_center();
- MCFG_DEVICE_ADD("dac2", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.99)
- MCFG_DEVICE_ADD("dac3", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.99)
+ DAC_1BIT(config, m_dac2, 0).add_route(ALL_OUTPUTS, "speaker", 0.99);
+ DAC_1BIT(config, m_dac3, 0).add_route(ALL_OUTPUTS, "speaker", 0.99);
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac2", 1.0, DAC_VREF_POS_INPUT);
diff --git a/src/mame/drivers/leland.cpp b/src/mame/drivers/leland.cpp
index 88f27326849..8cc8b2a1594 100644
--- a/src/mame/drivers/leland.cpp
+++ b/src/mame/drivers/leland.cpp
@@ -1013,8 +1013,8 @@ MACHINE_CONFIG_START(leland_state::leland)
// m_ay8912->port_a_write_callback().set(FUNC(leland_state::leland_sound_port_w));
// m_ay8912->add_route(ALL_OUTPUTS, "speaker", 0.25);
- MCFG_DEVICE_ADD(m_dac[0], DAC_8BIT_BINARY_WEIGHTED, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.0625) // ls374.u79 + r17-r23 (24k,12k,6.2k,3k,1.5k,750,390,180)
- MCFG_DEVICE_ADD(m_dac[1], DAC_8BIT_BINARY_WEIGHTED, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.0625) // ls374.u88 + r27-r34 (24k,12k,6.2k,3k,1.5k,750,390,180)
+ DAC_8BIT_BINARY_WEIGHTED(config, m_dac[0], 0).add_route(ALL_OUTPUTS, "speaker", 0.0625); // ls374.u79 + r17-r23 (24k,12k,6.2k,3k,1.5k,750,390,180)
+ DAC_8BIT_BINARY_WEIGHTED(config, m_dac[1], 0).add_route(ALL_OUTPUTS, "speaker", 0.0625); // ls374.u88 + r27-r34 (24k,12k,6.2k,3k,1.5k,750,390,180)
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac0", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac0", -1.0, DAC_VREF_NEG_INPUT);
diff --git a/src/mame/drivers/luckybal.cpp b/src/mame/drivers/luckybal.cpp
index d9e8c9879c9..bfea64f1b93 100644
--- a/src/mame/drivers/luckybal.cpp
+++ b/src/mame/drivers/luckybal.cpp
@@ -565,12 +565,12 @@ INPUT_PORTS_END
* Machine Driver *
**************************************/
-MACHINE_CONFIG_START(luckybal_state::luckybal)
-
+void luckybal_state::luckybal(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z180, CPU_CLOCK / 2)
- MCFG_DEVICE_PROGRAM_MAP(main_map)
- MCFG_DEVICE_IO_MAP(main_io)
+ Z180(config, m_maincpu, CPU_CLOCK / 2);
+ m_maincpu->set_addrmap(AS_PROGRAM, &luckybal_state::main_map);
+ m_maincpu->set_addrmap(AS_IO, &luckybal_state::main_io);
I8255A(config, m_ppi);
m_ppi->out_pa_callback().set(FUNC(luckybal_state::output_port_a_w));
@@ -578,11 +578,11 @@ MACHINE_CONFIG_START(luckybal_state::luckybal)
m_ppi->in_pc_callback().set(FUNC(luckybal_state::input_port_c_r));
m_ppi->out_pc_callback().set(FUNC(luckybal_state::output_port_c_w));
- MCFG_DEVICE_ADD("latch1", CD4099, 0)
+ CD4099(config, "latch1", 0);
- MCFG_DEVICE_ADD("latch2", CD4099, 0)
+ CD4099(config, "latch2", 0);
- MCFG_DEVICE_ADD("latch3", CD4099, 0)
+ CD4099(config, "latch3", 0);
/* nvram */
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
@@ -596,13 +596,12 @@ MACHINE_CONFIG_START(luckybal_state::luckybal)
/* sound hardware */
SPEAKER(config, "speaker").front_center();
- MCFG_DEVICE_ADD("dac", DAC08, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5)
+ DAC08(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.5);
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT);
-
-MACHINE_CONFIG_END
+}
/**************************************
diff --git a/src/mame/drivers/magicfly.cpp b/src/mame/drivers/magicfly.cpp
index 2d7581a45b3..b1ccdd83220 100644
--- a/src/mame/drivers/magicfly.cpp
+++ b/src/mame/drivers/magicfly.cpp
@@ -968,7 +968,7 @@ MACHINE_CONFIG_START(magicfly_state::magicfly)
/* sound hardware */
SPEAKER(config, "speaker").front_center();
- MCFG_DEVICE_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
+ DAC_1BIT(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 0.25);
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref", 0));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
diff --git a/src/mame/drivers/megazone.cpp b/src/mame/drivers/megazone.cpp
index ab139434c89..cf03d5bb9b9 100644
--- a/src/mame/drivers/megazone.cpp
+++ b/src/mame/drivers/megazone.cpp
@@ -344,7 +344,7 @@ MACHINE_CONFIG_START(megazone_state::megazone)
aysnd.add_route(1, "filter.0.1", 0.30);
aysnd.add_route(2, "filter.0.2", 0.30);
- MCFG_DEVICE_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) // unknown DAC
+ DAC_8BIT_R2R(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.25); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
diff --git a/src/mame/drivers/meyc8080.cpp b/src/mame/drivers/meyc8080.cpp
index b8188021728..6cc3c8232f1 100644
--- a/src/mame/drivers/meyc8080.cpp
+++ b/src/mame/drivers/meyc8080.cpp
@@ -588,31 +588,30 @@ INPUT_PORTS_END
*
*************************************/
-MACHINE_CONFIG_START(meyc8080_state::meyc8080)
-
+void meyc8080_state::meyc8080(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", I8080A, XTAL(20'000'000) / 10) // divider guessed
- MCFG_DEVICE_PROGRAM_MAP(meyc8080_map)
+ I8080A(config, m_maincpu, XTAL(20'000'000) / 10); // divider guessed
+ m_maincpu->set_addrmap(AS_PROGRAM, &meyc8080_state::meyc8080_map);
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_SIZE(256, 256)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 4*8, 32*8-1)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
- MCFG_SCREEN_UPDATE_DRIVER(meyc8080_state, screen_update_meyc8080)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_size(256, 256);
+ screen.set_visarea(0*8, 32*8-1, 4*8, 32*8-1);
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */);
+ screen.set_screen_update(FUNC(meyc8080_state::screen_update_meyc8080));
/* audio hardware */
SPEAKER(config, "speaker").front_center();
- MCFG_DEVICE_ADD("dac", DAC_2BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.66) // unknown DAC
+ DAC_2BIT_R2R(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 0.66); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT);
-
-MACHINE_CONFIG_END
+}
diff --git a/src/mame/drivers/meyc8088.cpp b/src/mame/drivers/meyc8088.cpp
index 2d4ba708277..cf59d3860d5 100644
--- a/src/mame/drivers/meyc8088.cpp
+++ b/src/mame/drivers/meyc8088.cpp
@@ -364,11 +364,11 @@ INPUT_PORTS_END
***************************************************************************/
-MACHINE_CONFIG_START(meyc8088_state::meyc8088)
-
+void meyc8088_state::meyc8088(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD(m_maincpu, I8088, (XTAL(15'000'000) / 3) * 0.95) // NOTE: underclocked to prevent errors on diagnostics, MAME i8088 cycle timing is probably inaccurate
- MCFG_DEVICE_PROGRAM_MAP(meyc8088_map)
+ I8088(config, m_maincpu, (XTAL(15'000'000) / 3) * 0.95); // NOTE: underclocked to prevent errors on diagnostics, MAME i8088 cycle timing is probably inaccurate
+ m_maincpu->set_addrmap(AS_PROGRAM, &meyc8088_state::meyc8088_map);
i8155_device &i8155_1(I8155(config, "i8155_1", XTAL(15'000'000) / (3*1)));
// all ports set to input
@@ -389,22 +389,22 @@ MACHINE_CONFIG_START(meyc8088_state::meyc8088)
TIMER(config, m_heartbeat).configure_generic(FUNC(meyc8088_state::heartbeat_callback));
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_RAW_PARAMS(XTAL(15'000'000)/3, 320, 0, 256, 261, 0, 224)
- MCFG_SCREEN_UPDATE_DRIVER(meyc8088_state, screen_update)
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, meyc8088_state, screen_vblank))
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_raw(XTAL(15'000'000)/3, 320, 0, 256, 261, 0, 224);
+ screen.set_screen_update(FUNC(meyc8088_state::screen_update));
+ screen.screen_vblank().set(FUNC(meyc8088_state::screen_vblank));
+ screen.set_palette("palette");
PALETTE(config, "palette", FUNC(meyc8088_state::meyc8088_palette), 32);
/* sound hardware */
SPEAKER(config, "speaker").front_center();
- MCFG_DEVICE_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
+ DAC_1BIT(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.25);
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref", 0));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
-MACHINE_CONFIG_END
+}
ROM_START( gldarrow )
diff --git a/src/mame/drivers/microvsn.cpp b/src/mame/drivers/microvsn.cpp
index 59e9f7bc6b9..f4823886462 100644
--- a/src/mame/drivers/microvsn.cpp
+++ b/src/mame/drivers/microvsn.cpp
@@ -662,7 +662,7 @@ MACHINE_CONFIG_START(microvision_state::microvision)
/* sound hardware */
SPEAKER(config, "speaker").front_center();
- MCFG_DEVICE_ADD("dac", DAC_2BIT_BINARY_WEIGHTED_ONES_COMPLEMENT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) // unknown DAC
+ DAC_2BIT_BINARY_WEIGHTED_ONES_COMPLEMENT(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 0.25); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
diff --git a/src/mame/drivers/mikro80.cpp b/src/mame/drivers/mikro80.cpp
index c1d08e27a7d..5a849c322aa 100644
--- a/src/mame/drivers/mikro80.cpp
+++ b/src/mame/drivers/mikro80.cpp
@@ -165,11 +165,12 @@ static GFXDECODE_START( gfx_mikro80 )
GFXDECODE_ENTRY( "gfx1", 0x0000, mikro80_charlayout, 0, 1 )
GFXDECODE_END
-MACHINE_CONFIG_START(mikro80_state::mikro80)
+void mikro80_state::mikro80(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu",I8080, 2000000)
- MCFG_DEVICE_PROGRAM_MAP(mikro80_mem)
- MCFG_DEVICE_IO_MAP(mikro80_io)
+ I8080(config, m_maincpu, 2000000);
+ m_maincpu->set_addrmap(AS_PROGRAM, &mikro80_state::mikro80_mem);
+ m_maincpu->set_addrmap(AS_IO, &mikro80_state::mikro80_io);
I8255(config, m_ppi8255);
m_ppi8255->out_pa_callback().set(FUNC(mikro80_state::mikro80_8255_porta_w));
@@ -177,13 +178,13 @@ MACHINE_CONFIG_START(mikro80_state::mikro80)
m_ppi8255->in_pc_callback().set(FUNC(mikro80_state::mikro80_8255_portc_r));
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0, 64*8-1, 0, 32*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(mikro80_state, screen_update_mikro80)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(50);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ screen.set_size(64*8, 32*8);
+ screen.set_visarea(0, 64*8-1, 0, 32*8-1);
+ screen.set_screen_update(FUNC(mikro80_state::screen_update_mikro80));
+ screen.set_palette("palette");
GFXDECODE(config, "gfxdecode", "palette", gfx_mikro80);
PALETTE(config, "palette", palette_device::MONOCHROME);
@@ -197,26 +198,26 @@ MACHINE_CONFIG_START(mikro80_state::mikro80)
m_cassette->set_interface("mikro80_cass");
SOFTWARE_LIST(config, "cass_list").set_original("mikro80");
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(mikro80_state::radio99)
+void mikro80_state::radio99(machine_config &config)
+{
mikro80(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_IO_MAP(radio99_io)
+ m_maincpu->set_addrmap(AS_IO, &mikro80_state::radio99_io);
- MCFG_DEVICE_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.12)
+ DAC_1BIT(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 0.12);
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref", 0));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(mikro80_state::kristall)
+void mikro80_state::kristall(machine_config &config)
+{
mikro80(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_IO_MAP(kristall_io)
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_IO, &mikro80_state::kristall_io);
+}
/* ROM definition */
diff --git a/src/mame/drivers/mini2440.cpp b/src/mame/drivers/mini2440.cpp
index f3b2e8b7dfc..93bf4edb657 100644
--- a/src/mame/drivers/mini2440.cpp
+++ b/src/mame/drivers/mini2440.cpp
@@ -241,8 +241,8 @@ MACHINE_CONFIG_START(mini2440_state::mini2440)
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
- MCFG_DEVICE_ADD("ldac", UDA1341TS, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) // uda1341ts.u12
- MCFG_DEVICE_ADD("rdac", UDA1341TS, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) // uda1341ts.u12
+ UDA1341TS(config, m_ldac, 0).add_route(ALL_OUTPUTS, "lspeaker", 1.0); // uda1341ts.u12
+ UDA1341TS(config, m_rdac, 0).add_route(ALL_OUTPUTS, "rspeaker", 1.0); // uda1341ts.u12
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "ldac", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "ldac", -1.0, DAC_VREF_NEG_INPUT);
diff --git a/src/mame/drivers/mjsister.cpp b/src/mame/drivers/mjsister.cpp
index c7b75ce3d11..761c8ce5d43 100644
--- a/src/mame/drivers/mjsister.cpp
+++ b/src/mame/drivers/mjsister.cpp
@@ -536,7 +536,7 @@ MACHINE_CONFIG_START(mjsister_state::mjsister)
aysnd.port_b_read_callback().set_ioport("DSW2");
aysnd.add_route(ALL_OUTPUTS, "speaker", 0.15);
- MCFG_DEVICE_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5) // unknown DAC
+ DAC_8BIT_R2R(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.5); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
diff --git a/src/mame/drivers/mogura.cpp b/src/mame/drivers/mogura.cpp
index 86394740680..faca2036527 100644
--- a/src/mame/drivers/mogura.cpp
+++ b/src/mame/drivers/mogura.cpp
@@ -231,13 +231,13 @@ MACHINE_CONFIG_START(mogura_state::mogura)
/* sound hardware */
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
- MCFG_DEVICE_ADD("ldac", DAC_4BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.25) // unknown DAC
- MCFG_DEVICE_ADD("rdac", DAC_4BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.25) // unknown DAC
+ DAC_4BIT_R2R(config, m_ldac, 0).add_route(ALL_OUTPUTS, "lspeaker", 0.25); // unknown DAC
+ DAC_4BIT_R2R(config, m_rdac, 0).add_route(ALL_OUTPUTS, "rspeaker", 0.25); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "ldac", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "ldac", -1.0, DAC_VREF_NEG_INPUT);
vref.add_route(0, "rdac", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "rdac", -1.0, DAC_VREF_NEG_INPUT);
- MACHINE_CONFIG_END
+MACHINE_CONFIG_END
ROM_START( mogura )
diff --git a/src/mame/drivers/murogem.cpp b/src/mame/drivers/murogem.cpp
index 407dad1bd60..b5c81d9d233 100644
--- a/src/mame/drivers/murogem.cpp
+++ b/src/mame/drivers/murogem.cpp
@@ -274,7 +274,7 @@ MACHINE_CONFIG_START(murogem_state::murogem)
/* sound hardware */
SPEAKER(config, "speaker").front_center();
- MCFG_DEVICE_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.375)
+ DAC_1BIT(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.375);
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref", 0));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
diff --git a/src/mame/drivers/murogmbl.cpp b/src/mame/drivers/murogmbl.cpp
index 98951bc0073..584265b5c46 100644
--- a/src/mame/drivers/murogmbl.cpp
+++ b/src/mame/drivers/murogmbl.cpp
@@ -367,7 +367,7 @@ MACHINE_CONFIG_START(murogmbl_state::murogmbl)
PALETTE(config, m_palette, FUNC(murogmbl_state::murogmbl_palette), 0x100);
SPEAKER(config, "speaker").front_center();
- MCFG_DEVICE_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5) // unknown DAC
+ DAC_8BIT_R2R(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.5); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
@@ -393,7 +393,7 @@ MACHINE_CONFIG_START(slotunbl_state::slotunbl)
PALETTE(config, m_palette, FUNC(slotunbl_state::slotunbl_palette), 0x100);
SPEAKER(config, "speaker").front_center();
- MCFG_DEVICE_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5) // unknown DAC
+ DAC_8BIT_R2R(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.5); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
diff --git a/src/mame/drivers/nbmj8688.cpp b/src/mame/drivers/nbmj8688.cpp
index 8ac2dc0867a..c9ae3891553 100644
--- a/src/mame/drivers/nbmj8688.cpp
+++ b/src/mame/drivers/nbmj8688.cpp
@@ -2483,7 +2483,7 @@ MACHINE_CONFIG_START(nbmj8688_state::NBMJDRV_4096)
psg.port_b_read_callback().set(FUNC(nbmj8688_state::dipsw2_r)); // DIPSW-B read
psg.add_route(ALL_OUTPUTS, "speaker", 0.35);
- MCFG_DEVICE_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5) // unknown DAC
+ DAC_8BIT_R2R(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.5); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
@@ -2674,7 +2674,7 @@ MACHINE_CONFIG_START(nbmj8688_state::mbmj_p16bit_LCD)
psg.port_b_read_callback().set(FUNC(nbmj8688_state::dipsw2_r)); // DIPSW-B read
psg.add_route(ALL_OUTPUTS, "speaker", 0.35);
- MCFG_DEVICE_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5) // unknown DAC
+ DAC_8BIT_R2R(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.5); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
diff --git a/src/mame/drivers/nbmj8891.cpp b/src/mame/drivers/nbmj8891.cpp
index fdb07694965..4b070f268c1 100644
--- a/src/mame/drivers/nbmj8891.cpp
+++ b/src/mame/drivers/nbmj8891.cpp
@@ -2216,7 +2216,7 @@ MACHINE_CONFIG_START(nbmj8891_state::gionbana)
YM3812(config, "fmsnd", 2500000).add_route(ALL_OUTPUTS, "speaker", 0.5);
- MCFG_DEVICE_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.37) // unknown DAC
+ DAC_8BIT_R2R(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.37); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
diff --git a/src/mame/drivers/nbmj8900.cpp b/src/mame/drivers/nbmj8900.cpp
index 07d38f14892..5c48b1fa2ce 100644
--- a/src/mame/drivers/nbmj8900.cpp
+++ b/src/mame/drivers/nbmj8900.cpp
@@ -332,7 +332,7 @@ MACHINE_CONFIG_START(nbmj8900_state::ohpaipee)
MCFG_DEVICE_ADD("ymsnd", YM3812, 2500000)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.7)
- MCFG_DEVICE_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.42) // unknown DAC
+ DAC_8BIT_R2R(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.42); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
diff --git a/src/mame/drivers/nbmj8991.cpp b/src/mame/drivers/nbmj8991.cpp
index 653c80e7c48..339cbf039a9 100644
--- a/src/mame/drivers/nbmj8991.cpp
+++ b/src/mame/drivers/nbmj8991.cpp
@@ -1352,7 +1352,7 @@ MACHINE_CONFIG_START(nbmj8991_state::nbmjdrv1) // galkoku
SPEAKER(config, "speaker").front_center();
YM3812(config, "fmsnd", 25000000/10).add_route(ALL_OUTPUTS, "speaker", 0.7);
- MCFG_DEVICE_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) // unknown DAC
+ DAC_8BIT_R2R(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.25); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
@@ -1394,8 +1394,8 @@ MACHINE_CONFIG_START(nbmj8991_state::nbmjdrv2) // pstadium
MCFG_DEVICE_ADD("fmsnd", YM3812, 25000000/6.25)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.7)
- MCFG_DEVICE_ADD("dac1", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) // unknown DAC
- MCFG_DEVICE_ADD("dac2", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) // unknown DAC
+ DAC_8BIT_R2R(config, "dac1", 0).add_route(ALL_OUTPUTS, "speaker", 0.25); // unknown DAC
+ DAC_8BIT_R2R(config, "dac2", 0).add_route(ALL_OUTPUTS, "speaker", 0.25); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac1", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac1", -1.0, DAC_VREF_NEG_INPUT);
diff --git a/src/mame/drivers/nbmj9195.cpp b/src/mame/drivers/nbmj9195.cpp
index 19b518112cc..3f4ccb41d27 100644
--- a/src/mame/drivers/nbmj9195.cpp
+++ b/src/mame/drivers/nbmj9195.cpp
@@ -2507,8 +2507,8 @@ static const z80_daisy_config daisy_chain_sound[] =
m_maincpu->out_pd_callback().set(FUNC(nbmj9195_state::clutsel_w)); \
m_maincpu->out_pe_callback().set(FUNC(nbmj9195_state::outcoin_flag_w));
-MACHINE_CONFIG_START(nbmj9195_state::NBMJDRV1_base)
-
+void nbmj9195_state::NBMJDRV1_base(machine_config &config)
+{
/* basic machine hardware */
TMPZ84C011(config, m_maincpu, 12000000/2); /* TMPZ84C011, 6.00 MHz */
m_maincpu->set_daisy_config(daisy_chain_main);
@@ -2543,26 +2543,27 @@ MACHINE_CONFIG_START(nbmj9195_state::NBMJDRV1_base)
GENERIC_LATCH_8(config, m_soundlatch);
- MCFG_DEVICE_ADD("ymsnd", YM3812, 4000000)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.7)
+ YM3812(config, "ymsnd", 4000000).add_route(ALL_OUTPUTS, "speaker", 0.7);
- MCFG_DEVICE_ADD("dac1", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) // unknown DAC
- MCFG_DEVICE_ADD("dac2", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) // unknown DAC
+ DAC_8BIT_R2R(config, "dac1", 0).add_route(ALL_OUTPUTS, "speaker", 0.25); // unknown DAC
+ DAC_8BIT_R2R(config, "dac2", 0).add_route(ALL_OUTPUTS, "speaker", 0.25); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac1", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac1", -1.0, DAC_VREF_NEG_INPUT);
vref.add_route(0, "dac2", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac2", -1.0, DAC_VREF_NEG_INPUT);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(nbmj9195_state::NBMJDRV1)
+void nbmj9195_state::NBMJDRV1(machine_config &config)
+{
NBMJDRV1_base(config);
/* basic machine hardware */
OTHERS_TMZ84C011_MAIN_PORTS
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(nbmj9195_state::NBMJDRV2)
+void nbmj9195_state::NBMJDRV2(machine_config &config)
+{
NBMJDRV1_base(config);
/* basic machine hardware */
@@ -2570,10 +2571,11 @@ MACHINE_CONFIG_START(nbmj9195_state::NBMJDRV2)
/* video hardware */
MCFG_VIDEO_START_OVERRIDE(nbmj9195_state,_1layer)
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(nbmj9195_state::NBMJDRV3)
+void nbmj9195_state::NBMJDRV3(machine_config &config)
+{
NBMJDRV1_base(config);
/* basic machine hardware */
@@ -2583,45 +2585,50 @@ MACHINE_CONFIG_START(nbmj9195_state::NBMJDRV3)
m_palette->set_entries(512);
MCFG_VIDEO_START_OVERRIDE(nbmj9195_state,nb22090)
-MACHINE_CONFIG_END
+}
//-------------------------------------------------------------------------
-MACHINE_CONFIG_START(nbmj9195_state::mjuraden)
+void nbmj9195_state::mjuraden(machine_config &config)
+{
NBMJDRV1(config);
/* basic machine hardware */
m_maincpu->set_addrmap(AS_PROGRAM, &nbmj9195_state::mjuraden_map);
m_maincpu->set_addrmap(AS_IO, &nbmj9195_state::mjuraden_io_map);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(nbmj9195_state::koinomp)
+void nbmj9195_state::koinomp(machine_config &config)
+{
NBMJDRV1(config);
/* basic machine hardware */
m_maincpu->set_addrmap(AS_PROGRAM, &nbmj9195_state::koinomp_map);
m_maincpu->set_addrmap(AS_IO, &nbmj9195_state::koinomp_io_map);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(nbmj9195_state::patimono)
+void nbmj9195_state::patimono(machine_config &config)
+{
NBMJDRV1(config);
/* basic machine hardware */
m_maincpu->set_addrmap(AS_IO, &nbmj9195_state::patimono_io_map);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(nbmj9195_state::janbari)
+void nbmj9195_state::janbari(machine_config &config)
+{
patimono(config);
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(nbmj9195_state::mmehyou)
+void nbmj9195_state::mmehyou(machine_config &config)
+{
NBMJDRV1(config);
/* basic machine hardware */
@@ -2629,205 +2636,227 @@ MACHINE_CONFIG_START(nbmj9195_state::mmehyou)
m_maincpu->set_addrmap(AS_IO, &nbmj9195_state::mmehyou_io_map);
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(nbmj9195_state::ultramhm)
+void nbmj9195_state::ultramhm(machine_config &config)
+{
koinomp(config);
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(nbmj9195_state::gal10ren)
+void nbmj9195_state::gal10ren(machine_config &config)
+{
NBMJDRV1(config);
/* basic machine hardware */
m_maincpu->set_addrmap(AS_IO, &nbmj9195_state::gal10ren_io_map);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(nbmj9195_state::renaiclb)
+void nbmj9195_state::renaiclb(machine_config &config)
+{
NBMJDRV1(config);
/* basic machine hardware */
m_maincpu->set_addrmap(AS_IO, &nbmj9195_state::renaiclb_io_map);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(nbmj9195_state::mjlaman)
+void nbmj9195_state::mjlaman(machine_config &config)
+{
NBMJDRV1(config);
/* basic machine hardware */
m_maincpu->set_addrmap(AS_IO, &nbmj9195_state::mjlaman_io_map);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(nbmj9195_state::mkeibaou)
+void nbmj9195_state::mkeibaou(machine_config &config)
+{
NBMJDRV1(config);
/* basic machine hardware */
m_maincpu->set_addrmap(AS_IO, &nbmj9195_state::mkeibaou_io_map);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(nbmj9195_state::pachiten)
+void nbmj9195_state::pachiten(machine_config &config)
+{
NBMJDRV1(config);
/* basic machine hardware */
m_maincpu->set_addrmap(AS_IO, &nbmj9195_state::pachiten_io_map);
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(nbmj9195_state::sailorws)
+void nbmj9195_state::sailorws(machine_config &config)
+{
NBMJDRV1(config);
/* basic machine hardware */
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(nbmj9195_state::sailorwr)
+void nbmj9195_state::sailorwr(machine_config &config)
+{
NBMJDRV1(config);
/* basic machine hardware */
m_maincpu->set_addrmap(AS_IO, &nbmj9195_state::sailorwr_io_map);
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(nbmj9195_state::psailor1)
+void nbmj9195_state::psailor1(machine_config &config)
+{
NBMJDRV1(config);
/* basic machine hardware */
m_maincpu->set_addrmap(AS_IO, &nbmj9195_state::psailor1_io_map);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(nbmj9195_state::psailor2)
+void nbmj9195_state::psailor2(machine_config &config)
+{
NBMJDRV1(config);
/* basic machine hardware */
m_maincpu->set_addrmap(AS_IO, &nbmj9195_state::psailor2_io_map);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(nbmj9195_state::otatidai)
+void nbmj9195_state::otatidai(machine_config &config)
+{
NBMJDRV1(config);
/* basic machine hardware */
m_maincpu->set_addrmap(AS_IO, &nbmj9195_state::otatidai_io_map);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(nbmj9195_state::yosimoto)
+void nbmj9195_state::yosimoto(machine_config &config)
+{
NBMJDRV1(config);
/* basic machine hardware */
m_maincpu->set_addrmap(AS_IO, &nbmj9195_state::yosimoto_io_map);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(nbmj9195_state::yosimotm)
+void nbmj9195_state::yosimotm(machine_config &config)
+{
NBMJDRV1(config);
/* basic machine hardware */
m_maincpu->set_addrmap(AS_IO, &nbmj9195_state::yosimotm_io_map);
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(nbmj9195_state::jituroku)
+void nbmj9195_state::jituroku(machine_config &config)
+{
NBMJDRV1(config);
/* basic machine hardware */
m_maincpu->set_addrmap(AS_IO, &nbmj9195_state::jituroku_io_map);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(nbmj9195_state::ngpgal)
+void nbmj9195_state::ngpgal(machine_config &config)
+{
NBMJDRV2(config);
/* basic machine hardware */
m_maincpu->set_addrmap(AS_PROGRAM, &nbmj9195_state::ngpgal_map);
m_maincpu->set_addrmap(AS_IO, &nbmj9195_state::ngpgal_io_map);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(nbmj9195_state::mjgottsu)
+void nbmj9195_state::mjgottsu(machine_config &config)
+{
NBMJDRV2(config);
/* basic machine hardware */
m_maincpu->set_addrmap(AS_PROGRAM, &nbmj9195_state::ngpgal_map);
m_maincpu->set_addrmap(AS_IO, &nbmj9195_state::mjgottsu_io_map);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(nbmj9195_state::bakuhatu)
+void nbmj9195_state::bakuhatu(machine_config &config)
+{
NBMJDRV2(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
m_maincpu->set_addrmap(AS_PROGRAM, &nbmj9195_state::ngpgal_map);
m_maincpu->set_addrmap(AS_IO, &nbmj9195_state::mjgottsu_io_map);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(nbmj9195_state::cmehyou)
+void nbmj9195_state::cmehyou(machine_config &config)
+{
NBMJDRV2(config);
/* basic machine hardware */
m_maincpu->set_addrmap(AS_PROGRAM, &nbmj9195_state::ngpgal_map);
m_maincpu->set_addrmap(AS_IO, &nbmj9195_state::cmehyou_io_map);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(nbmj9195_state::mjkoiura)
+void nbmj9195_state::mjkoiura(machine_config &config)
+{
NBMJDRV2(config);
/* basic machine hardware */
m_maincpu->set_addrmap(AS_PROGRAM, &nbmj9195_state::mjuraden_map);
m_maincpu->set_addrmap(AS_IO, &nbmj9195_state::mjkoiura_io_map);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(nbmj9195_state::mkoiuraa)
+void nbmj9195_state::mkoiuraa(machine_config &config)
+{
NBMJDRV2(config);
/* basic machine hardware */
m_maincpu->set_addrmap(AS_PROGRAM, &nbmj9195_state::mjuraden_map);
m_maincpu->set_addrmap(AS_IO, &nbmj9195_state::mkoiuraa_io_map);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(nbmj9195_state::mscoutm)
+void nbmj9195_state::mscoutm(machine_config &config)
+{
NBMJDRV3(config);
/* basic machine hardware */
m_maincpu->set_addrmap(AS_PROGRAM, &nbmj9195_state::mscoutm_map);
m_maincpu->set_addrmap(AS_IO, &nbmj9195_state::mscoutm_io_map);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(nbmj9195_state::imekura)
+void nbmj9195_state::imekura(machine_config &config)
+{
NBMJDRV3(config);
/* basic machine hardware */
m_maincpu->set_addrmap(AS_PROGRAM, &nbmj9195_state::mjegolf_map);
m_maincpu->set_addrmap(AS_IO, &nbmj9195_state::imekura_io_map);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(nbmj9195_state::mjegolf)
+void nbmj9195_state::mjegolf(machine_config &config)
+{
NBMJDRV3(config);
/* basic machine hardware */
m_maincpu->set_addrmap(AS_PROGRAM, &nbmj9195_state::mjegolf_map);
m_maincpu->set_addrmap(AS_IO, &nbmj9195_state::mjegolf_io_map);
-MACHINE_CONFIG_END
+}
diff --git a/src/mame/drivers/ngp.cpp b/src/mame/drivers/ngp.cpp
index f2e1cae52ab..86e8d12471c 100644
--- a/src/mame/drivers/ngp.cpp
+++ b/src/mame/drivers/ngp.cpp
@@ -826,36 +826,36 @@ void ngp_state::nvram_write(emu_file &file)
}
-MACHINE_CONFIG_START(ngp_state::ngp_common)
-
+void ngp_state::ngp_common(machine_config &config)
+{
TMP95C061(config, m_maincpu, 6.144_MHz_XTAL);
m_maincpu->set_am8_16(1);
m_maincpu->set_addrmap(AS_PROGRAM, &ngp_state::ngp_mem);
m_maincpu->porta_write().set(FUNC(ngp_state::ngp_tlcs900_porta));
- MCFG_DEVICE_ADD( "soundcpu", Z80, 6.144_MHz_XTAL/2 )
- MCFG_DEVICE_PROGRAM_MAP( z80_mem)
- MCFG_DEVICE_IO_MAP( z80_io)
+ z80_device &soundcpu(Z80(config, "soundcpu", 6.144_MHz_XTAL/2));
+ soundcpu.set_addrmap(AS_PROGRAM, &ngp_state::z80_mem);
+ soundcpu.set_addrmap(AS_IO, &ngp_state::z80_io);
- MCFG_SCREEN_ADD( "screen", LCD )
- MCFG_SCREEN_RAW_PARAMS( 6.144_MHz_XTAL, 515, 0, 160 /*480*/, 199, 0, 152 )
- MCFG_SCREEN_UPDATE_DRIVER(ngp_state, screen_update_ngp)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD));
+ screen.set_raw(6.144_MHz_XTAL, 515, 0, 160 /*480*/, 199, 0, 152);
+ screen.set_screen_update(FUNC(ngp_state::screen_update_ngp));
/* sound hardware */
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
- MCFG_DEVICE_ADD( "t6w28", T6W28, 6.144_MHz_XTAL/2 )
- MCFG_SOUND_ROUTE( 0, "lspeaker", 0.50 )
- MCFG_SOUND_ROUTE( 1, "rspeaker", 0.50 )
+ T6W28(config, m_t6w28, 6.144_MHz_XTAL/2);
+ m_t6w28->add_route(0, "lspeaker", 0.50);
+ m_t6w28->add_route(1, "rspeaker", 0.50);
- MCFG_DEVICE_ADD("ldac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.25) // unknown DAC
- MCFG_DEVICE_ADD("rdac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.25) // unknown DAC
+ DAC_8BIT_R2R(config, m_ldac, 0).add_route(ALL_OUTPUTS, "lspeaker", 0.25); // unknown DAC
+ DAC_8BIT_R2R(config, m_rdac, 0).add_route(ALL_OUTPUTS, "rspeaker", 0.25); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "ldac", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "ldac", -1.0, DAC_VREF_NEG_INPUT);
vref.add_route(0, "rdac", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "rdac", -1.0, DAC_VREF_NEG_INPUT);
-MACHINE_CONFIG_END
+}
MACHINE_CONFIG_START(ngp_state::ngp)
diff --git a/src/mame/drivers/nightgal.cpp b/src/mame/drivers/nightgal.cpp
index 3a5e3ca6e3d..d6e71b407c3 100644
--- a/src/mame/drivers/nightgal.cpp
+++ b/src/mame/drivers/nightgal.cpp
@@ -838,7 +838,7 @@ MACHINE_CONFIG_START(nightgal_state::sexygal)
clock_device &sampleclk(CLOCK(config, "sampleclk", 6000)); // quite a wild guess
sampleclk.signal_handler().set_inputline(m_audiocpu, INPUT_LINE_NMI);
- MCFG_DEVICE_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) // unknown DAC
+ DAC_8BIT_R2R(config, "dac", 0).add_route(ALL_OUTPUTS, "mono", 0.25); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
diff --git a/src/mame/drivers/notetaker.cpp b/src/mame/drivers/notetaker.cpp
index af1f2232205..caf4744ca25 100644
--- a/src/mame/drivers/notetaker.cpp
+++ b/src/mame/drivers/notetaker.cpp
@@ -799,7 +799,8 @@ void notetaker_state::ep_reset()
static INPUT_PORTS_START( notetakr )
INPUT_PORTS_END
-MACHINE_CONFIG_START(notetaker_state::notetakr)
+void notetaker_state::notetakr(machine_config &config)
+{
/* basic machine hardware */
/* IO CPU: 8086@8MHz */
I8086(config, m_iop_cpu, 24_MHz_XTAL / 3); /* iD8086-2 @ E4A; 24Mhz crystal divided down to 8Mhz by i8284 clock generator */
@@ -821,13 +822,13 @@ MACHINE_CONFIG_START(notetaker_state::notetakr)
m_ep_pic->out_int_callback().set_inputline(m_ep_cpu, 0);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60.975)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(250))
- MCFG_SCREEN_UPDATE_DRIVER(notetaker_state, screen_update)
- MCFG_SCREEN_SIZE(640, 480)
- MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60.975);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(250));
+ screen.set_screen_update(FUNC(notetaker_state::screen_update));
+ screen.set_size(640, 480);
+ screen.set_visarea(0, 640-1, 0, 480-1);
+ screen.set_palette("palette");
PALETTE(config, "palette", palette_device::MONOCHROME);
@@ -869,12 +870,12 @@ MACHINE_CONFIG_START(notetaker_state::notetakr)
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
// TODO: hook DAC up to two HA2425 (sample and hold) chips and hook those up to the speakers
- MCFG_DEVICE_ADD("dac", DAC1200, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.5) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.5) // unknown DAC
+ DAC1200(config, m_dac, 0).add_route(ALL_OUTPUTS, "lspeaker", 0.5).add_route(ALL_OUTPUTS, "rspeaker", 0.5); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
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 notetaker_state::init_notetakr()
{
diff --git a/src/mame/drivers/nyny.cpp b/src/mame/drivers/nyny.cpp
index 0aaa12b423b..28623eab530 100644
--- a/src/mame/drivers/nyny.cpp
+++ b/src/mame/drivers/nyny.cpp
@@ -668,7 +668,7 @@ MACHINE_CONFIG_START(nyny_state::nyny)
AY8910(config, "ay3", AUDIO_CPU_2_CLOCK).add_route(ALL_OUTPUTS, "speaker", 0.03);
- MCFG_DEVICE_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) // unknown DAC
+ DAC_8BIT_R2R(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.25); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
diff --git a/src/mame/drivers/palm.cpp b/src/mame/drivers/palm.cpp
index 2f2c2166476..d040e84ce6f 100644
--- a/src/mame/drivers/palm.cpp
+++ b/src/mame/drivers/palm.cpp
@@ -204,7 +204,7 @@ MACHINE_CONFIG_START(palm_state::palm)
/* audio hardware */
SPEAKER(config, "speaker").front_center();
- MCFG_DEVICE_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
+ DAC_1BIT(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.25);
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref", 0));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
diff --git a/src/mame/drivers/pandoras.cpp b/src/mame/drivers/pandoras.cpp
index c3de81d56d0..14fa066f63e 100644
--- a/src/mame/drivers/pandoras.cpp
+++ b/src/mame/drivers/pandoras.cpp
@@ -305,8 +305,8 @@ READ8_MEMBER(pandoras_state::pandoras_portB_r)
return (m_audiocpu->total_cycles() / 512) & 0x0f;
}
-MACHINE_CONFIG_START(pandoras_state::pandoras)
-
+void pandoras_state::pandoras(machine_config &config)
+{
/* basic machine hardware */
MC6809E(config, m_maincpu, MASTER_CLOCK/6); /* CPU A */
m_maincpu->set_addrmap(AS_PROGRAM, &pandoras_state::pandoras_master_map);
@@ -337,14 +337,14 @@ MACHINE_CONFIG_START(pandoras_state::pandoras)
WATCHDOG_TIMER(config, "watchdog");
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(32*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(pandoras_state, screen_update_pandoras)
- MCFG_SCREEN_PALETTE(m_palette)
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, pandoras_state, vblank_irq))
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(32*8, 32*8);
+ screen.set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
+ screen.set_screen_update(FUNC(pandoras_state::screen_update_pandoras));
+ screen.set_palette(m_palette);
+ screen.screen_vblank().set(FUNC(pandoras_state::vblank_irq));
GFXDECODE(config, m_gfxdecode, m_palette, gfx_pandoras);
PALETTE(config, m_palette, FUNC(pandoras_state::pandoras_palette), 16*16+16*16, 32);
@@ -360,12 +360,12 @@ MACHINE_CONFIG_START(pandoras_state::pandoras)
aysnd.port_b_read_callback().set(FUNC(pandoras_state::pandoras_portB_r));
aysnd.add_route(ALL_OUTPUTS, "speaker", 0.4);
- MCFG_DEVICE_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.12) // unknown DAC
+ DAC_8BIT_R2R(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.12); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT);
-MACHINE_CONFIG_END
+}
/***************************************************************************
diff --git a/src/mame/drivers/pastelg.cpp b/src/mame/drivers/pastelg.cpp
index fd226c221ec..d3655238081 100644
--- a/src/mame/drivers/pastelg.cpp
+++ b/src/mame/drivers/pastelg.cpp
@@ -428,7 +428,7 @@ MACHINE_CONFIG_START(pastelg_state::pastelg)
aysnd.port_b_read_callback().set_ioport("DSWB");
aysnd.add_route(ALL_OUTPUTS, "speaker", 0.35);
- MCFG_DEVICE_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) // unknown DAC
+ DAC_8BIT_R2R(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.25); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
@@ -488,7 +488,7 @@ MACHINE_CONFIG_START(pastelg_state::threeds)
aysnd.port_b_read_callback().set_ioport("DSWA");
aysnd.add_route(ALL_OUTPUTS, "speaker", 0.35);
- MCFG_DEVICE_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) // unknown DAC
+ DAC_8BIT_R2R(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.25); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
diff --git a/src/mame/drivers/pockstat.cpp b/src/mame/drivers/pockstat.cpp
index 8aa5e074d04..c8a48dcde21 100644
--- a/src/mame/drivers/pockstat.cpp
+++ b/src/mame/drivers/pockstat.cpp
@@ -995,7 +995,7 @@ MACHINE_CONFIG_START(pockstat_state::pockstat)
PALETTE(config, "palette", palette_device::MONOCHROME);
SPEAKER(config, "speaker").front_center();
- MCFG_DEVICE_ADD("dac", DAC_16BIT_R2R_TWOS_COMPLEMENT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5) // unknown DAC
+ DAC_16BIT_R2R_TWOS_COMPLEMENT(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.5); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
diff --git a/src/mame/drivers/pong.cpp b/src/mame/drivers/pong.cpp
index c32e3180651..926e35ddee4 100644
--- a/src/mame/drivers/pong.cpp
+++ b/src/mame/drivers/pong.cpp
@@ -406,7 +406,7 @@ MACHINE_CONFIG_START(pong_state::pong)
/* sound hardware */
SPEAKER(config, "speaker").front_center();
- MCFG_DEVICE_ADD("dac", DAC_16BIT_R2R_TWOS_COMPLEMENT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5) // unknown DAC
+ DAC_16BIT_R2R_TWOS_COMPLEMENT(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 0.5); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
@@ -462,7 +462,7 @@ MACHINE_CONFIG_START(breakout_state::breakout)
/* sound hardware */
SPEAKER(config, "speaker").front_center();
- MCFG_DEVICE_ADD("dac", DAC_16BIT_R2R_TWOS_COMPLEMENT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5) // unknown DAC
+ DAC_16BIT_R2R_TWOS_COMPLEMENT(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 0.5); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
@@ -510,7 +510,7 @@ MACHINE_CONFIG_START(pong_state::pongd)
/* sound hardware */
SPEAKER(config, "speaker").front_center();
- MCFG_DEVICE_ADD("dac", DAC_16BIT_R2R_TWOS_COMPLEMENT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5) // unknown DAC
+ DAC_16BIT_R2R_TWOS_COMPLEMENT(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 0.5); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
diff --git a/src/mame/drivers/ppmast93.cpp b/src/mame/drivers/ppmast93.cpp
index 0f854a6e485..c7750f78f8b 100644
--- a/src/mame/drivers/ppmast93.cpp
+++ b/src/mame/drivers/ppmast93.cpp
@@ -406,7 +406,7 @@ MACHINE_CONFIG_START(ppmast93_state::ppmast93)
MCFG_DEVICE_ADD("ymsnd", YM2413, 5000000/2)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0)
- MCFG_DEVICE_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.3) // unknown DAC
+ DAC_8BIT_R2R(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.3); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
diff --git a/src/mame/drivers/rltennis.cpp b/src/mame/drivers/rltennis.cpp
index 341d5720a0c..484c2c7c3f1 100644
--- a/src/mame/drivers/rltennis.cpp
+++ b/src/mame/drivers/rltennis.cpp
@@ -204,8 +204,8 @@ MACHINE_CONFIG_START(rltennis_state::rltennis)
SPEAKER(config, "speaker").front_center();
- MCFG_DEVICE_ADD("dac1", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5) // unknown DAC
- MCFG_DEVICE_ADD("dac2", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) // unknown DAC
+ DAC_8BIT_R2R(config, "dac1", 0).add_route(ALL_OUTPUTS, "speaker", 0.5); // unknown DAC
+ DAC_8BIT_R2R(config, "dac2", 0).add_route(ALL_OUTPUTS, "speaker", 0.25); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac1", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac1", -1.0, DAC_VREF_NEG_INPUT);
diff --git a/src/mame/drivers/rowamet.cpp b/src/mame/drivers/rowamet.cpp
index dd7fd72fff5..9f683934472 100644
--- a/src/mame/drivers/rowamet.cpp
+++ b/src/mame/drivers/rowamet.cpp
@@ -222,13 +222,16 @@ TIMER_DEVICE_CALLBACK_MEMBER( rowamet_state::timer_a )
m_digits[++digit] = patterns[m_p_ram[m_out_offs++]&15];
}
-MACHINE_CONFIG_START(rowamet_state::rowamet)
+void rowamet_state::rowamet(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, 1888888)
- MCFG_DEVICE_PROGRAM_MAP(rowamet_map)
- MCFG_DEVICE_ADD("cpu2", Z80, 1888888)
- MCFG_DEVICE_PROGRAM_MAP(rowamet_sub_map)
- MCFG_DEVICE_IO_MAP(rowamet_sub_io)
+ Z80(config, m_maincpu, 1888888);
+ m_maincpu->set_addrmap(AS_PROGRAM, &rowamet_state::rowamet_map);
+
+ Z80(config, m_cpu2, 1888888);
+ m_cpu2->set_addrmap(AS_PROGRAM, &rowamet_state::rowamet_sub_map);
+ m_cpu2->set_addrmap(AS_IO, &rowamet_state::rowamet_sub_io);
+
TIMER(config, "timer_a").configure_periodic(FUNC(rowamet_state::timer_a), attotime::from_hz(200));
/* Video */
@@ -236,12 +239,12 @@ MACHINE_CONFIG_START(rowamet_state::rowamet)
/* Sound */
SPEAKER(config, "speaker").front_center();
- MCFG_DEVICE_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) // unknown DAC
+ DAC_8BIT_R2R(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.25); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
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
+}
/*-------------------------------------------------------------------
/ Conan (1983)
diff --git a/src/mame/drivers/royalmah.cpp b/src/mame/drivers/royalmah.cpp
index 80866ea2747..57c3f78739d 100644
--- a/src/mame/drivers/royalmah.cpp
+++ b/src/mame/drivers/royalmah.cpp
@@ -3589,7 +3589,7 @@ MACHINE_CONFIG_START(royalmah_state::jansou)
GENERIC_LATCH_8(config, m_soundlatch);
- MCFG_DEVICE_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) // unknown DAC
+ DAC_8BIT_R2R(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.25); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
diff --git a/src/mame/drivers/s11.cpp b/src/mame/drivers/s11.cpp
index 7fa52dcc940..157d6d7abfe 100644
--- a/src/mame/drivers/s11.cpp
+++ b/src/mame/drivers/s11.cpp
@@ -447,7 +447,7 @@ MACHINE_CONFIG_START(s11_state::s11)
MCFG_DEVICE_PROGRAM_MAP(s11_audio_map)
SPEAKER(config, "speaker").front_center();
- MCFG_DEVICE_ADD("dac", MC1408, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5)
+ MC1408(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.5);
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT);
@@ -475,7 +475,7 @@ MACHINE_CONFIG_START(s11_state::s11)
m_ym->irq_handler().set(FUNC(s11_state::ym2151_irq_w));
m_ym->add_route(ALL_OUTPUTS, "bg", 0.50);
- MCFG_DEVICE_ADD("dac1", MC1408, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "bg", 0.25)
+ MC1408(config, "dac1", 0).add_route(ALL_OUTPUTS, "bg", 0.25);
PIA6821(config, m_pia40, 0);
m_pia40->writepa_handler().set("dac1", FUNC(dac_byte_interface::data_w));
diff --git a/src/mame/drivers/s11a.cpp b/src/mame/drivers/s11a.cpp
index 43b3371f8ba..ffcbe08dad8 100644
--- a/src/mame/drivers/s11a.cpp
+++ b/src/mame/drivers/s11a.cpp
@@ -239,7 +239,7 @@ MACHINE_CONFIG_START(s11a_state::s11a)
MCFG_DEVICE_PROGRAM_MAP(s11a_audio_map)
SPEAKER(config, "speaker").front_center();
- MCFG_DEVICE_ADD("dac", MC1408, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
+ MC1408(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.25);
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT);
@@ -266,7 +266,7 @@ MACHINE_CONFIG_START(s11a_state::s11a)
m_ym->irq_handler().set(FUNC(s11a_state::ym2151_irq_w));
m_ym->add_route(ALL_OUTPUTS, "bg", 0.50);
- MCFG_DEVICE_ADD("dac1", MC1408, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "bg", 0.25)
+ MC1408(config, "dac1", 0).add_route(ALL_OUTPUTS, "bg", 0.25);
PIA6821(config, m_pia40, 0);
m_pia40->writepa_handler().set("dac1", FUNC(dac_byte_interface::data_w));
diff --git a/src/mame/drivers/s11b.cpp b/src/mame/drivers/s11b.cpp
index 72b86268a83..61bfb00676e 100644
--- a/src/mame/drivers/s11b.cpp
+++ b/src/mame/drivers/s11b.cpp
@@ -250,10 +250,11 @@ void s11b_state::init_s11b_invert()
m_invert = true;
}
-MACHINE_CONFIG_START(s11b_state::s11b)
+void s11b_state::s11b(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M6808, XTAL(4'000'000))
- MCFG_DEVICE_PROGRAM_MAP(s11b_main_map)
+ M6808(config, m_maincpu, XTAL(4'000'000));
+ m_maincpu->set_addrmap(AS_PROGRAM, &s11b_state::s11b_main_map);
MCFG_MACHINE_RESET_OVERRIDE(s11b_state, s11b)
/* Video */
@@ -311,19 +312,18 @@ MACHINE_CONFIG_START(s11b_state::s11b)
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_1);
/* Add the soundcard */
- MCFG_DEVICE_ADD("audiocpu", M6802, XTAL(4'000'000))
- MCFG_DEVICE_PROGRAM_MAP(s11b_audio_map)
+ M6802(config, m_audiocpu, XTAL(4'000'000));
+ m_audiocpu->set_addrmap(AS_PROGRAM, &s11b_state::s11b_audio_map);
SPEAKER(config, "speaker").front_center();
- MCFG_DEVICE_ADD("dac", MC1408, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
+ MC1408(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.25);
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT);
vref.add_route(0, "dac1", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac1", -1.0, DAC_VREF_NEG_INPUT);
SPEAKER(config, "speech").front_center();
- MCFG_DEVICE_ADD("hc55516", HC55516, 0)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speech", 0.50)
+ HC55516(config, m_hc55516, 0).add_route(ALL_OUTPUTS, "speech", 0.50);
PIA6821(config, m_pias, 0);
m_pias->readpa_handler().set(FUNC(s11_state::sound_r));
@@ -335,8 +335,8 @@ MACHINE_CONFIG_START(s11b_state::s11b)
m_pias->irqa_handler().set_inputline("audiocpu", M6802_IRQ_LINE);
/* Add the background music card */
- MCFG_DEVICE_ADD("bgcpu", MC6809E, XTAL(8'000'000) / 4) // MC68B09E
- MCFG_DEVICE_PROGRAM_MAP(s11b_bg_map)
+ MC6809E(config, m_bgcpu, XTAL(8'000'000) / 4); // MC68B09E
+ m_bgcpu->set_addrmap(AS_PROGRAM, &s11b_state::s11b_bg_map);
config.m_minimum_quantum = attotime::from_hz(50);
SPEAKER(config, "bg").front_center();
@@ -344,10 +344,9 @@ MACHINE_CONFIG_START(s11b_state::s11b)
m_ym->irq_handler().set(FUNC(s11b_state::ym2151_irq_w));
m_ym->add_route(ALL_OUTPUTS, "bg", 0.25);
- MCFG_DEVICE_ADD("dac1", MC1408, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "bg", 0.25)
+ MC1408(config, "dac1", 0).add_route(ALL_OUTPUTS, "bg", 0.25);
- MCFG_DEVICE_ADD("hc55516_bg", HC55516, 0)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speech", 0.50)
+ HC55516(config, m_bg_hc55516, 0).add_route(ALL_OUTPUTS, "speech", 0.50);
PIA6821(config, m_pia40, 0);
m_pia40->writepa_handler().set("dac1", FUNC(dac_byte_interface::data_w));
@@ -356,8 +355,7 @@ MACHINE_CONFIG_START(s11b_state::s11b)
m_pia40->cb2_handler().set(FUNC(s11_state::pia40_cb2_w));
m_pia40->irqa_handler().set_inputline("bgcpu", M6809_FIRQ_LINE);
m_pia40->irqb_handler().set_inputline("bgcpu", INPUT_LINE_NMI);
-
-MACHINE_CONFIG_END
+}
/*-----------------------
/ Bad Cats 12/89
diff --git a/src/mame/drivers/sbasketb.cpp b/src/mame/drivers/sbasketb.cpp
index 67466747cf4..90e2406c891 100644
--- a/src/mame/drivers/sbasketb.cpp
+++ b/src/mame/drivers/sbasketb.cpp
@@ -232,7 +232,7 @@ MACHINE_CONFIG_START(sbasketb_state::sbasketb)
MCFG_DEVICE_ADD(m_soundbrd, TRACKFLD_AUDIO, 0, m_audiocpu, m_vlm)
- MCFG_DEVICE_ADD(m_dac, DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.4) // unknown DAC
+ DAC_8BIT_R2R(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 0.4); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
diff --git a/src/mame/drivers/seicross.cpp b/src/mame/drivers/seicross.cpp
index 46dcb2b48a6..542c97268c9 100644
--- a/src/mame/drivers/seicross.cpp
+++ b/src/mame/drivers/seicross.cpp
@@ -431,7 +431,7 @@ MACHINE_CONFIG_START(seicross_state::no_nvram)
aysnd.port_b_write_callback().set(FUNC(seicross_state::portB_w));
aysnd.add_route(ALL_OUTPUTS, "speaker", 0.25);
- MCFG_DEVICE_ADD("dac", DAC_4BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.12) // unknown DAC
+ DAC_4BIT_R2R(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 0.12); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
diff --git a/src/mame/drivers/senjyo.cpp b/src/mame/drivers/senjyo.cpp
index a5e3cd7dc91..2bcaac245ee 100644
--- a/src/mame/drivers/senjyo.cpp
+++ b/src/mame/drivers/senjyo.cpp
@@ -594,7 +594,7 @@ MACHINE_CONFIG_START(senjyo_state::senjyo)
MCFG_DEVICE_ADD("sn3", SN76496, 2000000)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5)
- MCFG_DEVICE_ADD("dac", DAC_4BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.05) // unknown DAC
+ DAC_4BIT_R2R(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 0.05); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
diff --git a/src/mame/drivers/shangkid.cpp b/src/mame/drivers/shangkid.cpp
index d1b017aeff1..aab5a1bc636 100644
--- a/src/mame/drivers/shangkid.cpp
+++ b/src/mame/drivers/shangkid.cpp
@@ -375,19 +375,19 @@ void shangkid_state::sound_portmap(address_map &map)
/***************************************************************************************/
-MACHINE_CONFIG_START(shangkid_state::chinhero)
-
+void shangkid_state::chinhero(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD(m_maincpu, Z80, XTAL(18'432'000)/6) /* verified on pcb */
- MCFG_DEVICE_PROGRAM_MAP(chinhero_main_map)
+ Z80(config, m_maincpu, XTAL(18'432'000)/6); /* verified on pcb */
+ m_maincpu->set_addrmap(AS_PROGRAM, &shangkid_state::chinhero_main_map);
- MCFG_DEVICE_ADD(m_bbx, Z80, XTAL(18'432'000)/6) /* verified on pcb */
- MCFG_DEVICE_PROGRAM_MAP(chinhero_bbx_map)
- MCFG_DEVICE_IO_MAP(chinhero_bbx_portmap)
+ Z80(config, m_bbx, XTAL(18'432'000)/6); /* verified on pcb */
+ m_bbx->set_addrmap(AS_PROGRAM, &shangkid_state::chinhero_bbx_map);
+ m_bbx->set_addrmap(AS_IO, &shangkid_state::chinhero_bbx_portmap);
- MCFG_DEVICE_ADD(m_audiocpu, Z80, XTAL(18'432'000)/6) /* verified on pcb */
- MCFG_DEVICE_PROGRAM_MAP(chinhero_sound_map)
- MCFG_DEVICE_IO_MAP(sound_portmap)
+ Z80(config, m_audiocpu, XTAL(18'432'000)/6); /* verified on pcb */
+ m_audiocpu->set_addrmap(AS_PROGRAM, &shangkid_state::chinhero_sound_map);
+ m_audiocpu->set_addrmap(AS_IO, &shangkid_state::sound_portmap);
ls259_device &mainlatch(LS259(config, "mainlatch"));
mainlatch.q_out_cb<0>().set_inputline(m_bbx, INPUT_LINE_RESET).invert(); // RESET2
@@ -420,7 +420,7 @@ MACHINE_CONFIG_START(shangkid_state::chinhero)
/* sound hardware */
SPEAKER(config, "speaker").front_center();
- MCFG_DEVICE_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) // unknown DAC
+ DAC_8BIT_R2R(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.25); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
@@ -430,10 +430,11 @@ MACHINE_CONFIG_START(shangkid_state::chinhero)
m_aysnd->port_a_write_callback().set(FUNC(shangkid_state::chinhero_ay8910_porta_w));
m_aysnd->port_b_write_callback().set(FUNC(shangkid_state::ay8910_portb_w));
m_aysnd->add_route(ALL_OUTPUTS, "speaker", 0.1);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(shangkid_state::shangkid)
+void shangkid_state::shangkid(machine_config &config)
+{
chinhero(config);
/* basic machine hardware */
@@ -455,7 +456,7 @@ MACHINE_CONFIG_START(shangkid_state::shangkid)
m_gfxdecode->set_info(gfx_shangkid);
m_aysnd->port_a_write_callback().set(FUNC(shangkid_state::shangkid_ay8910_porta_w));
-MACHINE_CONFIG_END
+}
diff --git a/src/mame/drivers/shisen.cpp b/src/mame/drivers/shisen.cpp
index 05a5fbd5ac2..bdcaa1beefd 100644
--- a/src/mame/drivers/shisen.cpp
+++ b/src/mame/drivers/shisen.cpp
@@ -257,7 +257,7 @@ MACHINE_CONFIG_START(shisen_state::shisen)
ymsnd.add_route(0, "lspeaker", 0.5);
ymsnd.add_route(1, "rspeaker", 0.5);
- MCFG_DEVICE_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.25) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.25) // unknown DAC
+ DAC_8BIT_R2R(config, "dac", 0).add_route(ALL_OUTPUTS, "lspeaker", 0.25).add_route(ALL_OUTPUTS, "rspeaker", 0x25); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
diff --git a/src/mame/drivers/ssozumo.cpp b/src/mame/drivers/ssozumo.cpp
index d6455b6c985..d2c805c6ff0 100644
--- a/src/mame/drivers/ssozumo.cpp
+++ b/src/mame/drivers/ssozumo.cpp
@@ -227,7 +227,7 @@ MACHINE_CONFIG_START(ssozumo_state::ssozumo)
YM2149(config, "ay1", 1500000).add_route(ALL_OUTPUTS, "speaker", 0.3);
YM2149(config, "ay2", 1500000).add_route(ALL_OUTPUTS, "speaker", 0.3);
- MCFG_DEVICE_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.3) // unknown DAC
+ DAC_8BIT_R2R(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.3); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
diff --git a/src/mame/drivers/tagteam.cpp b/src/mame/drivers/tagteam.cpp
index bfe9e31078d..091052b6e19 100644
--- a/src/mame/drivers/tagteam.cpp
+++ b/src/mame/drivers/tagteam.cpp
@@ -241,7 +241,7 @@ MACHINE_CONFIG_START(tagteam_state::tagteam)
AY8910(config, "ay1", XTAL(12'000'000)/8).add_route(ALL_OUTPUTS, "speaker", 0.25);
AY8910(config, "ay2", XTAL(12'000'000)/8).add_route(ALL_OUTPUTS, "speaker", 0.25);
- MCFG_DEVICE_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) // unknown DAC
+ DAC_8BIT_R2R(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.25); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
diff --git a/src/mame/drivers/taitosj.cpp b/src/mame/drivers/taitosj.cpp
index 8b158e190cb..29ae9cee71f 100644
--- a/src/mame/drivers/taitosj.cpp
+++ b/src/mame/drivers/taitosj.cpp
@@ -1835,7 +1835,7 @@ MACHINE_CONFIG_START(taitosj_state::nomcu)
WATCHDOG_TIMER(config, "watchdog").set_vblank_count("screen", 128); // 74LS393 on CPU board, counts 128 vblanks before firing watchdog
- MCFG_DEVICE_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.15) // 30k r-2r network
+ DAC_8BIT_R2R(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.15); // 30k r-2r network
MCFG_DEVICE_ADD("dacvol", DISCRETE, taitosj_dacvol_discrete)
MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/terracre.cpp b/src/mame/drivers/terracre.cpp
index 6a922b8b0d1..f125ceac16e 100644
--- a/src/mame/drivers/terracre.cpp
+++ b/src/mame/drivers/terracre.cpp
@@ -485,8 +485,8 @@ MACHINE_CONFIG_START(terracre_state::ym3526)
MCFG_DEVICE_ADD("ymsnd", YM3526, XTAL(16'000'000)/4)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0)
- MCFG_DEVICE_ADD("dac1", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5) // unknown DAC
- MCFG_DEVICE_ADD("dac2", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5) // unknown DAC
+ DAC_8BIT_R2R(config, "dac1", 0).add_route(ALL_OUTPUTS, "speaker", 0.5); // unknown DAC
+ DAC_8BIT_R2R(config, "dac2", 0).add_route(ALL_OUTPUTS, "speaker", 0.5); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac1", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac1", -1.0, DAC_VREF_NEG_INPUT);
diff --git a/src/mame/drivers/thomson.cpp b/src/mame/drivers/thomson.cpp
index bb45817ba0c..32bacd28e72 100644
--- a/src/mame/drivers/thomson.cpp
+++ b/src/mame/drivers/thomson.cpp
@@ -647,8 +647,8 @@ MACHINE_CONFIG_START(thomson_state::to7_base)
/* sound */
SPEAKER(config, "speaker").front_center();
- MCFG_DEVICE_ADD("buzzer", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5)
- MCFG_DEVICE_ADD("dac", DAC_6BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5) // 6-bit game extension R-2R DAC (R=10K)
+ DAC_1BIT(config, "buzzer", 0).add_route(ALL_OUTPUTS, "speaker", 0.5);
+ DAC_6BIT_R2R(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 0.5); // 6-bit game extension R-2R DAC (R=10K)
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "buzzer", 1.0, DAC_VREF_POS_INPUT);
diff --git a/src/mame/drivers/truco.cpp b/src/mame/drivers/truco.cpp
index dcbd0815e05..901b00dd3e8 100644
--- a/src/mame/drivers/truco.cpp
+++ b/src/mame/drivers/truco.cpp
@@ -453,7 +453,7 @@ MACHINE_CONFIG_START(truco_state::truco)
/* sound hardware */
SPEAKER(config, "speaker").front_center();
- MCFG_DEVICE_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.4)
+ DAC_1BIT(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 0.4);
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref", 0));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
diff --git a/src/mame/drivers/trucocl.cpp b/src/mame/drivers/trucocl.cpp
index f6b24acf2f4..8d711a8ca30 100644
--- a/src/mame/drivers/trucocl.cpp
+++ b/src/mame/drivers/trucocl.cpp
@@ -204,7 +204,7 @@ MACHINE_CONFIG_START(trucocl_state::trucocl)
/* sound hardware */
SPEAKER(config, "speaker").front_center();
- MCFG_DEVICE_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5) // unknown DAC
+ DAC_8BIT_R2R(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.5); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
diff --git a/src/mame/drivers/tsamurai.cpp b/src/mame/drivers/tsamurai.cpp
index f5f9786d076..fe58c510f6c 100644
--- a/src/mame/drivers/tsamurai.cpp
+++ b/src/mame/drivers/tsamurai.cpp
@@ -758,8 +758,8 @@ MACHINE_CONFIG_START(tsamurai_state::tsamurai)
AY8910(config,"aysnd", XTAL(24'000'000)/8).add_route(ALL_OUTPUTS, "speaker", 0.1);
- MCFG_DEVICE_ADD("dac1", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.1) // unknown DAC
- MCFG_DEVICE_ADD("dac2", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.1) // unknown DAC
+ DAC_8BIT_R2R(config, "dac1", 0).add_route(ALL_OUTPUTS, "speaker", 0.1); // unknown DAC
+ DAC_8BIT_R2R(config, "dac2", 0).add_route(ALL_OUTPUTS, "speaker", 0.1); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac1", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac1", -1.0, DAC_VREF_NEG_INPUT);
@@ -808,7 +808,7 @@ MACHINE_CONFIG_START(tsamurai_state::vsgongf)
AY8910(config,"aysnd", XTAL(24'000'000)/8).add_route(ALL_OUTPUTS, "speaker", 0.1);
- MCFG_DEVICE_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.1) // unknown DAC
+ DAC_8BIT_R2R(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.1); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
@@ -863,8 +863,8 @@ MACHINE_CONFIG_START(tsamurai_state::m660)
AY8910(config,"aysnd", XTAL(24'000'000)/8).add_route(ALL_OUTPUTS, "speaker", 0.1);
- MCFG_DEVICE_ADD("dac1", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.1) // unknown DAC
- MCFG_DEVICE_ADD("dac2", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.1) // unknown DAC
+ DAC_8BIT_R2R(config, "dac1", 0).add_route(ALL_OUTPUTS, "speaker", 0.1); // unknown DAC
+ DAC_8BIT_R2R(config, "dac2", 0).add_route(ALL_OUTPUTS, "speaker", 0.1); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac1", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac1", -1.0, DAC_VREF_NEG_INPUT);
diff --git a/src/mame/drivers/vcombat.cpp b/src/mame/drivers/vcombat.cpp
index 3fdbd97bea0..1172ad7581f 100644
--- a/src/mame/drivers/vcombat.cpp
+++ b/src/mame/drivers/vcombat.cpp
@@ -603,7 +603,7 @@ MACHINE_CONFIG_START(vcombat_state::vcombat)
MCFG_SCREEN_UPDATE_DRIVER(vcombat_state, screen_update_vcombat_aux)
SPEAKER(config, "speaker").front_center();
- MCFG_DEVICE_ADD("dac", DAC_10BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0) // unknown DAC
+ DAC_10BIT_R2R(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 1.0); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
@@ -640,7 +640,7 @@ MACHINE_CONFIG_START(vcombat_state::shadfgtr)
MCFG_SCREEN_UPDATE_DRIVER(vcombat_state, screen_update_vcombat_main)
SPEAKER(config, "speaker").front_center();
- MCFG_DEVICE_ADD("dac", DAC_10BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0) // unknown DAC
+ DAC_10BIT_R2R(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 1.0); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
diff --git a/src/mame/drivers/vidbrain.cpp b/src/mame/drivers/vidbrain.cpp
index 3a1f5664052..5f7908721c9 100644
--- a/src/mame/drivers/vidbrain.cpp
+++ b/src/mame/drivers/vidbrain.cpp
@@ -395,19 +395,20 @@ void vidbrain_state::machine_reset()
// MACHINE_CONFIG( vidbrain )
//-------------------------------------------------
-MACHINE_CONFIG_START(vidbrain_state::vidbrain)
+void vidbrain_state::vidbrain(machine_config &config)
+{
// basic machine hardware
- MCFG_DEVICE_ADD(F3850_TAG, F8, XTAL(4'000'000)/2)
- MCFG_DEVICE_PROGRAM_MAP(vidbrain_mem)
- MCFG_DEVICE_IO_MAP(vidbrain_io)
- MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE(F3853_TAG, f3853_device, int_acknowledge)
+ F8(config, m_maincpu, XTAL(4'000'000)/2);
+ m_maincpu->set_addrmap(AS_PROGRAM, &vidbrain_state::vidbrain_mem);
+ m_maincpu->set_addrmap(AS_IO, &vidbrain_state::vidbrain_io);
+ m_maincpu->set_irq_acknowledge_callback(F3853_TAG, FUNC(f3853_device::int_acknowledge));
// video hardware
config.set_default_layout(layout_vidbrain);
- MCFG_SCREEN_ADD(SCREEN_TAG, RASTER)
- MCFG_SCREEN_UPDATE_DEVICE(UV201_TAG, uv201_device, screen_update)
- MCFG_SCREEN_RAW_PARAMS(3636363, 232, 18, 232, 262, 21, 262)
+ screen_device &screen(SCREEN(config, SCREEN_TAG, SCREEN_TYPE_RASTER));
+ screen.set_screen_update(UV201_TAG, FUNC(uv201_device::screen_update));
+ screen.set_raw(3636363, 232, 18, 232, 262, 21, 262);
UV201(config, m_uv, 3636363);
m_uv->set_screen(SCREEN_TAG);
m_uv->ext_int_wr_callback().set(FUNC(vidbrain_state::ext_int_w));
@@ -416,7 +417,7 @@ MACHINE_CONFIG_START(vidbrain_state::vidbrain)
// sound hardware
SPEAKER(config, "speaker").front_center();
- MCFG_DEVICE_ADD("dac", DAC_2BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.167) // 74ls74.u16 + 120k + 56k
+ DAC_2BIT_R2R(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 0.167); // 74ls74.u16 + 120k + 56k
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
@@ -424,7 +425,7 @@ MACHINE_CONFIG_START(vidbrain_state::vidbrain)
// devices
F3853(config, m_smi, XTAL(4'000'000)/2);
- m_smi->int_req_callback().set_inputline(F3850_TAG, F8_INPUT_LINE_INT_REQ);
+ m_smi->int_req_callback().set_inputline(m_maincpu, F8_INPUT_LINE_INT_REQ);
// cartridge
VIDEOBRAIN_EXPANSION_SLOT(config, VIDEOBRAIN_EXPANSION_SLOT_TAG, vidbrain_expansion_cards, nullptr);
@@ -434,7 +435,7 @@ MACHINE_CONFIG_START(vidbrain_state::vidbrain)
// internal ram
RAM(config, RAM_TAG).set_default_size("1K");
-MACHINE_CONFIG_END
+}
diff --git a/src/mame/drivers/videopkr.cpp b/src/mame/drivers/videopkr.cpp
index c5288e78308..dcda035ae20 100644
--- a/src/mame/drivers/videopkr.cpp
+++ b/src/mame/drivers/videopkr.cpp
@@ -1259,7 +1259,7 @@ MACHINE_CONFIG_START(videopkr_state::videopkr)
/* sound hardware */
SPEAKER(config, "speaker").front_center();
- MCFG_DEVICE_ADD("dac", MC1408, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.275)
+ MC1408(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.275);
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
diff --git a/src/mame/drivers/wheelfir.cpp b/src/mame/drivers/wheelfir.cpp
index a07ab00b4a2..2a5933f8570 100644
--- a/src/mame/drivers/wheelfir.cpp
+++ b/src/mame/drivers/wheelfir.cpp
@@ -769,8 +769,8 @@ MACHINE_CONFIG_START(wheelfir_state::wheelfir)
/* sound hardware */
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
- MCFG_DEVICE_ADD("ldac", DAC_10BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) // unknown DAC
- MCFG_DEVICE_ADD("rdac", DAC_10BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) // unknown DAC
+ DAC_10BIT_R2R(config, "ldac", 0).add_route(ALL_OUTPUTS, "lspeaker", 1.0); // unknown DAC
+ DAC_10BIT_R2R(config, "rdac", 0).add_route(ALL_OUTPUTS, "rspeaker", 1.0); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "ldac", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "ldac", -1.0, DAC_VREF_NEG_INPUT);
diff --git a/src/mame/drivers/wildpkr.cpp b/src/mame/drivers/wildpkr.cpp
index 871a9fb1dad..750e5431ecd 100644
--- a/src/mame/drivers/wildpkr.cpp
+++ b/src/mame/drivers/wildpkr.cpp
@@ -531,8 +531,7 @@ MACHINE_CONFIG_START(wildpkr_state::tabpkr)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("dac", AD557, 0)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
+ AD557(config, m_dac, 0).add_route(ALL_OUTPUTS, "mono", 0.50);
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
diff --git a/src/mame/drivers/williams.cpp b/src/mame/drivers/williams.cpp
index 866264f8b8d..5f839a0c0be 100644
--- a/src/mame/drivers/williams.cpp
+++ b/src/mame/drivers/williams.cpp
@@ -1514,7 +1514,7 @@ MACHINE_CONFIG_START(williams_state::williams)
/* sound hardware */
SPEAKER(config, "speaker").front_center();
- MCFG_DEVICE_ADD("dac", MC1408, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) // mc1408.ic6
+ MC1408(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.25); // mc1408.ic6
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
@@ -1689,12 +1689,13 @@ MACHINE_CONFIG_START(blaster_state::blastkit)
MACHINE_CONFIG_END
-MACHINE_CONFIG_START(blaster_state::blaster)
+void blaster_state::blaster(machine_config &config)
+{
blastkit(config);
/* basic machine hardware */
- MCFG_DEVICE_ADD("soundcpu_b", M6808, SOUND_CLOCK) // internal clock divider of 4, effective frequency is 894.886kHz
- MCFG_DEVICE_PROGRAM_MAP(sound_map_b)
+ M6808(config, m_soundcpu_b, SOUND_CLOCK); // internal clock divider of 4, effective frequency is 894.886kHz
+ m_soundcpu_b->set_addrmap(AS_PROGRAM, &blaster_state::sound_map_b);
/* pia */
m_pia[0]->readpb_handler().set("mux_b", FUNC(ls157_device::output_r)).mask(0x0f);
@@ -1728,13 +1729,13 @@ MACHINE_CONFIG_START(blaster_state::blaster)
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
- MCFG_DEVICE_ADD("ldac", MC1408, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.25) // unknown DAC
- MCFG_DEVICE_ADD("rdac", MC1408, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.25) // unknown DAC
+ MC1408(config, "ldac", 0).add_route(ALL_OUTPUTS, "lspeaker", 0.25); // unknown DAC
+ MC1408(config, "rdac", 0).add_route(ALL_OUTPUTS, "rspeaker", 0.25); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "ldac", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "ldac", -1.0, DAC_VREF_NEG_INPUT);
vref.add_route(0, "rdac", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "rdac", -1.0, DAC_VREF_NEG_INPUT);
-MACHINE_CONFIG_END
+}
MACHINE_CONFIG_START(williams2_state::williams2)
@@ -1773,7 +1774,7 @@ MACHINE_CONFIG_START(williams2_state::williams2)
/* sound hardware */
SPEAKER(config, "speaker").front_center();
- MCFG_DEVICE_ADD("dac", MC1408, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5) // unknown DAC
+ MC1408(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.5); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
diff --git a/src/mame/drivers/wmg.cpp b/src/mame/drivers/wmg.cpp
index 64bfe67b7a5..47bf94a9da0 100644
--- a/src/mame/drivers/wmg.cpp
+++ b/src/mame/drivers/wmg.cpp
@@ -549,7 +549,7 @@ MACHINE_CONFIG_START(wmg_state::wmg)
/* sound hardware */
SPEAKER(config, "speaker").front_center();
- MCFG_DEVICE_ADD("dac", MC1408, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) // unknown DAC
+ MC1408(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.25); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);