summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorGravatarGravatar Ivan Vangelista <mesgnet@yahoo.it>2019-02-13 19:16:32 +0100
committerGravatarGravatar Ivan Vangelista <mesgnet@yahoo.it>2019-02-13 19:16:32 +0100
commit088c214cf75e442a0e8df566f0541571b07bcb2f (patch) (github)
tree6796c9d1a3cf691a5260359c75f86f623afc2554 /src
parent29fa02b16ed144af43ad23cce2cbd121ddbf6b25 (diff)
downloadmame-088c214cf75e442a0e8df566f0541571b07bcb2f.tar.bz2
mame-088c214cf75e442a0e8df566f0541571b07bcb2f.zip
misc MCFG and MACHINE_CONFIG macro removal (nw)
Diffstat (limited to 'src')
-rw-r--r--src/devices/bus/cpc/amdrum.cpp2
-rw-r--r--src/devices/bus/pc1512/mouse.h17
-rw-r--r--src/emu/drivers/empty.cpp16
-rw-r--r--src/mame/audio/astrof.cpp5
-rw-r--r--src/mame/audio/atarijsa.cpp18
-rw-r--r--src/mame/audio/avalnche.cpp22
-rw-r--r--src/mame/audio/exidy.cpp41
-rw-r--r--src/mame/audio/exidy440.cpp21
-rw-r--r--src/mame/audio/gottlieb.cpp21
-rw-r--r--src/mame/audio/llander.cpp8
-rw-r--r--src/mame/audio/midway.cpp12
-rw-r--r--src/mame/audio/spiders.cpp9
-rw-r--r--src/mame/audio/sprint8.cpp37
-rw-r--r--src/mame/audio/t5182.cpp12
-rw-r--r--src/mame/audio/timeplt.cpp8
-rw-r--r--src/mame/audio/timeplt.h3
-rw-r--r--src/mame/audio/tx1.cpp30
-rw-r--r--src/mame/audio/williams.cpp37
-rw-r--r--src/mame/audio/wpcsnd.cpp14
-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
-rw-r--r--src/mame/etc/korgm1.cpp28
-rw-r--r--src/mame/etc/template_device.cpp7
-rw-r--r--src/mame/etc/unkfr.cpp5
-rw-r--r--src/mame/includes/sprint8.h2
-rw-r--r--src/mame/machine/apricotkb.cpp9
-rw-r--r--src/mame/machine/dec_lk201.cpp13
-rw-r--r--src/mame/machine/megadriv.cpp59
-rw-r--r--src/mame/machine/mpu4.cpp76
-rw-r--r--src/mame/machine/pcshare.cpp90
-rw-r--r--src/mame/machine/pgmprot_igs025_igs012.cpp8
-rw-r--r--src/mame/machine/pgmprot_igs025_igs022.cpp18
-rw-r--r--src/mame/machine/pgmprot_igs025_igs028.cpp8
-rw-r--r--src/mame/machine/pgmprot_igs027a_type1.cpp37
-rw-r--r--src/mame/machine/pgmprot_igs027a_type2.cpp12
-rw-r--r--src/mame/machine/pgmprot_igs027a_type3.cpp12
-rw-r--r--src/zexall/zexall.cpp9
129 files changed, 940 insertions, 905 deletions
diff --git a/src/devices/bus/cpc/amdrum.cpp b/src/devices/bus/cpc/amdrum.cpp
index acaebe1c260..f3b5e5ab252 100644
--- a/src/devices/bus/cpc/amdrum.cpp
+++ b/src/devices/bus/cpc/amdrum.cpp
@@ -23,7 +23,7 @@ DEFINE_DEVICE_TYPE(CPC_AMDRUM, cpc_amdrum_device, "cpc_amdrum", "Amdrum")
void cpc_amdrum_device::device_add_mconfig(machine_config &config)
{
SPEAKER(config, "speaker").front_center();
- DAC_8BIT_R2R(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 0.5); // unknown DAC
+ ZN428E(config, m_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);
diff --git a/src/devices/bus/pc1512/mouse.h b/src/devices/bus/pc1512/mouse.h
index 709696dfef7..9c71eb4d89d 100644
--- a/src/devices/bus/pc1512/mouse.h
+++ b/src/devices/bus/pc1512/mouse.h
@@ -32,23 +32,6 @@
#define PC1512_MOUSE_PORT_TAG "mous"
-#define MCFG_PC1512_MOUSE_PORT_ADD(_tag, _slot_intf, _def_slot) \
- MCFG_DEVICE_ADD(_tag, PC1512_MOUSE_PORT, 0) \
- MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, false)
-
-#define MCFG_PC1512_MOUSE_PORT_X_CB(_write) \
- downcast<pc1512_mouse_port_device &>(*device).set_x_wr_callback(DEVCB_##_write);
-
-#define MCFG_PC1512_MOUSE_PORT_Y_CB(_write) \
- downcast<pc1512_mouse_port_device &>(*device).set_y_wr_callback(DEVCB_##_write);
-
-#define MCFG_PC1512_MOUSE_PORT_M1_CB(_write) \
- downcast<pc1512_mouse_port_device &>(*device).set_m1_wr_callback(DEVCB_##_write);
-
-#define MCFG_PC1512_MOUSE_PORT_M2_CB(_write) \
- downcast<pc1512_mouse_port_device &>(*device).set_m2_wr_callback(DEVCB_##_write);
-
-
//**************************************************************************
// TYPE DEFINITIONS
diff --git a/src/emu/drivers/empty.cpp b/src/emu/drivers/empty.cpp
index 3a139a9f12d..4dea1cceb9d 100644
--- a/src/emu/drivers/empty.cpp
+++ b/src/emu/drivers/empty.cpp
@@ -43,15 +43,15 @@ protected:
// MACHINE DRIVERS
//**************************************************************************
-MACHINE_CONFIG_START( empty_state::___empty )
-
+void empty_state::___empty(machine_config &config)
+{
// video hardware
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_UPDATE_DRIVER(empty_state, screen_update)
- MCFG_SCREEN_SIZE(640,480)
- MCFG_SCREEN_VISIBLE_AREA(0,639, 0,479)
- MCFG_SCREEN_REFRESH_RATE(30)
-MACHINE_CONFIG_END
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_screen_update(FUNC(empty_state::screen_update));
+ screen.set_size(640, 480);
+ screen.set_visarea(0, 639, 0, 479);
+ screen.set_refresh_hz(30);
+}
diff --git a/src/mame/audio/astrof.cpp b/src/mame/audio/astrof.cpp
index 89e334a6672..663013e1bc8 100644
--- a/src/mame/audio/astrof.cpp
+++ b/src/mame/audio/astrof.cpp
@@ -162,9 +162,10 @@ WRITE8_MEMBER(astrof_state::spfghmk2_audio_w)
}
-MACHINE_CONFIG_START(astrof_state::spfghmk2_audio)
+void astrof_state::spfghmk2_audio(machine_config &config)
+{
/* nothing yet */
-MACHINE_CONFIG_END
+}
diff --git a/src/mame/audio/atarijsa.cpp b/src/mame/audio/atarijsa.cpp
index 4a34fb674ba..51869806fe1 100644
--- a/src/mame/audio/atarijsa.cpp
+++ b/src/mame/audio/atarijsa.cpp
@@ -698,8 +698,8 @@ WRITE8_MEMBER( atari_jsa_i_device::pokey_w )
//-------------------------------------------------
// Fully populated JSA-I, not used by anyone
-MACHINE_CONFIG_START(atari_jsa_i_device::device_add_mconfig)
-
+void atari_jsa_i_device::device_add_mconfig(machine_config &config)
+{
// basic machine hardware
M6502(config, m_jsacpu, JSA_MASTER_CLOCK/2);
m_jsacpu->set_addrmap(AS_PROGRAM, &atari_jsa_i_device::atarijsa1_map);
@@ -715,14 +715,14 @@ MACHINE_CONFIG_START(atari_jsa_i_device::device_add_mconfig)
m_ym2151->add_route(0, *this, 0.60, AUTO_ALLOC_INPUT, 0);
m_ym2151->add_route(1, *this, 0.60, AUTO_ALLOC_INPUT, 1);
- MCFG_DEVICE_ADD("pokey", POKEY, JSA_MASTER_CLOCK/2)
- MCFG_MIXER_ROUTE(ALL_OUTPUTS, *this, 0.40, 0)
- MCFG_MIXER_ROUTE(ALL_OUTPUTS, *this, 0.40, 1)
+ POKEY(config, m_pokey, JSA_MASTER_CLOCK/2);
+ m_pokey->add_route(ALL_OUTPUTS, *this, 0.40, AUTO_ALLOC_INPUT, 0);
+ m_pokey->add_route(ALL_OUTPUTS, *this, 0.40, AUTO_ALLOC_INPUT, 1);
- MCFG_DEVICE_ADD("tms", TMS5220C, JSA_MASTER_CLOCK*2/11) // potentially JSA_MASTER_CLOCK/9 as well
- MCFG_MIXER_ROUTE(ALL_OUTPUTS, *this, 1.0, 0)
- MCFG_MIXER_ROUTE(ALL_OUTPUTS, *this, 1.0, 1)
-MACHINE_CONFIG_END
+ TMS5220C(config, m_tms5220, JSA_MASTER_CLOCK*2/11); // potentially JSA_MASTER_CLOCK/9 as well
+ m_tms5220->add_route(ALL_OUTPUTS, *this, 1.0, AUTO_ALLOC_INPUT, 0);
+ m_tms5220->add_route(ALL_OUTPUTS, *this, 1.0, AUTO_ALLOC_INPUT, 1);
+}
//-------------------------------------------------
diff --git a/src/mame/audio/avalnche.cpp b/src/mame/audio/avalnche.cpp
index 3200bd8576f..471c73a8e5c 100644
--- a/src/mame/audio/avalnche.cpp
+++ b/src/mame/audio/avalnche.cpp
@@ -102,25 +102,27 @@ static DISCRETE_SOUND_START(avalnche_discrete)
DISCRETE_SOUND_END
-MACHINE_CONFIG_START(avalnche_state::avalnche_sound)
+void avalnche_state::avalnche_sound(machine_config &config)
+{
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("discrete", DISCRETE, avalnche_discrete)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
+ DISCRETE(config, m_discrete, avalnche_discrete).add_route(ALL_OUTPUTS, "mono", 1.0);
- m_latch->q_out_cb<1>().set("discrete", FUNC(discrete_device::write_line<AVALNCHE_ATTRACT_EN>));
- m_latch->q_out_cb<4>().set("discrete", FUNC(discrete_device::write_line<AVALNCHE_AUD0_EN>));
- m_latch->q_out_cb<5>().set("discrete", FUNC(discrete_device::write_line<AVALNCHE_AUD1_EN>));
- m_latch->q_out_cb<6>().set("discrete", FUNC(discrete_device::write_line<AVALNCHE_AUD2_EN>));
-MACHINE_CONFIG_END
+ m_latch->q_out_cb<1>().set(m_discrete, FUNC(discrete_device::write_line<AVALNCHE_ATTRACT_EN>));
+ m_latch->q_out_cb<4>().set(m_discrete, FUNC(discrete_device::write_line<AVALNCHE_AUD0_EN>));
+ m_latch->q_out_cb<5>().set(m_discrete, FUNC(discrete_device::write_line<AVALNCHE_AUD1_EN>));
+ m_latch->q_out_cb<6>().set(m_discrete, FUNC(discrete_device::write_line<AVALNCHE_AUD2_EN>));
+}
-MACHINE_CONFIG_START(avalnche_state::acatch_sound) // just a stub here...
+void avalnche_state::acatch_sound(machine_config &config)
+{
+ // just a stub here...
m_latch->q_out_cb<1>().set_nop(); // It is attract_enable just like avalnche, but not hooked up yet.
m_latch->q_out_cb<4>().set(FUNC(avalnche_state::catch_aud0_w));
m_latch->q_out_cb<5>().set(FUNC(avalnche_state::catch_aud1_w));
m_latch->q_out_cb<6>().set(FUNC(avalnche_state::catch_aud2_w));
-MACHINE_CONFIG_END
+}
/***************************************************************************
diff --git a/src/mame/audio/exidy.cpp b/src/mame/audio/exidy.cpp
index 9eabc95c405..df55e898700 100644
--- a/src/mame/audio/exidy.cpp
+++ b/src/mame/audio/exidy.cpp
@@ -750,9 +750,10 @@ void venture_sound_device::venture_audio_map(address_map &map)
}
-MACHINE_CONFIG_START(venture_sound_device::device_add_mconfig)
- MCFG_DEVICE_ADD("audiocpu", M6502, 3579545/4)
- MCFG_DEVICE_PROGRAM_MAP(venture_audio_map)
+void venture_sound_device::device_add_mconfig(machine_config &config)
+{
+ m6502_device &audiocpu(M6502(config, "audiocpu", 3579545/4));
+ audiocpu.set_addrmap(AS_PROGRAM, &venture_sound_device::venture_audio_map);
RIOT6532(config, m_riot, SH6532_CLOCK);
m_riot->in_pa_callback().set(FUNC(venture_sound_device::r6532_porta_r));
@@ -772,9 +773,8 @@ MACHINE_CONFIG_START(venture_sound_device::device_add_mconfig)
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_MODIFY(DEVICE_SELF)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
-MACHINE_CONFIG_END
+ this->add_route(ALL_OUTPUTS, "mono", 0.50);
+}
@@ -833,17 +833,17 @@ void mtrap_sound_device::cvsd_iomap(address_map &map)
}
-MACHINE_CONFIG_START(mtrap_sound_device::device_add_mconfig)
+void mtrap_sound_device::device_add_mconfig(machine_config &config)
+{
venture_sound_device::device_add_mconfig(config);
- MCFG_DEVICE_ADD("cvsdcpu", Z80, CVSD_Z80_CLOCK)
- MCFG_DEVICE_PROGRAM_MAP(cvsd_map)
- MCFG_DEVICE_IO_MAP(cvsd_iomap)
+ Z80(config, m_cvsdcpu, CVSD_Z80_CLOCK);
+ m_cvsdcpu->set_addrmap(AS_PROGRAM, &mtrap_sound_device::cvsd_map);
+ m_cvsdcpu->set_addrmap(AS_IO, &mtrap_sound_device::cvsd_iomap);
/* audio hardware */
- MCFG_DEVICE_ADD("cvsd", MC3417, CVSD_CLOCK)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
-MACHINE_CONFIG_END
+ MC3417(config, m_cvsd, CVSD_CLOCK).add_route(ALL_OUTPUTS, "mono", 0.80);
+}
/*************************************
@@ -980,9 +980,10 @@ void victory_sound_device::victory_audio_map(address_map &map)
}
-MACHINE_CONFIG_START(victory_sound_device::device_add_mconfig)
- MCFG_DEVICE_ADD("audiocpu", M6502, VICTORY_AUDIO_CPU_CLOCK)
- MCFG_DEVICE_PROGRAM_MAP(victory_audio_map)
+void victory_sound_device::device_add_mconfig(machine_config &config)
+{
+ m6502_device &audiocpu(M6502(config, "audiocpu", VICTORY_AUDIO_CPU_CLOCK));
+ audiocpu.set_addrmap(AS_PROGRAM, &victory_sound_device::victory_audio_map);
RIOT6532(config, m_riot, SH6532_CLOCK);
m_riot->in_pa_callback().set(FUNC(victory_sound_device::r6532_porta_r));
@@ -1000,9 +1001,7 @@ MACHINE_CONFIG_START(victory_sound_device::device_add_mconfig)
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_MODIFY(DEVICE_SELF)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
+ this->add_route(ALL_OUTPUTS, "mono", 1.0);
- MCFG_DEVICE_ADD("tms", TMS5220, 640000)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
-MACHINE_CONFIG_END
+ TMS5220(config, m_tms, 640000).add_route(ALL_OUTPUTS, "mono", 1.0);
+}
diff --git a/src/mame/audio/exidy440.cpp b/src/mame/audio/exidy440.cpp
index 59920448465..df7c35fb084 100644
--- a/src/mame/audio/exidy440.cpp
+++ b/src/mame/audio/exidy440.cpp
@@ -98,22 +98,19 @@ exidy440_sound_device::exidy440_sound_device(const machine_config &mconfig, cons
// device_add_mconfig - add device configuration
//-------------------------------------------------
-MACHINE_CONFIG_START(exidy440_sound_device::device_add_mconfig)
- MCFG_DEVICE_ADD("audiocpu", MC6809, EXIDY440_AUDIO_CLOCK)
- MCFG_DEVICE_PROGRAM_MAP(exidy440_audio_map)
+void exidy440_sound_device::device_add_mconfig(machine_config &config)
+{
+ MC6809(config, m_audiocpu, EXIDY440_AUDIO_CLOCK);
+ m_audiocpu->set_addrmap(AS_PROGRAM, &exidy440_sound_device::exidy440_audio_map);
-// MCFG_DEVICE_ADD("cvsd1", MC3418, EXIDY440_MC3418_CLOCK)
-// MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0)
+// MC3418(config, "cvsd1", EXIDY440_MC3418_CLOCK).add_route(ALL_OUTPUTS, "lspeaker", 1.0);
-// MCFG_DEVICE_ADD("cvsd2", MC3418, EXIDY440_MC3418_CLOCK)
-// MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0)
+// MC3418(config, "cvsd2", EXIDY440_MC3418_CLOCK).add_route(ALL_OUTPUTS, "rspeaker", 1.0);
-// MCFG_DEVICE_ADD("cvsd3", MC3417, EXIDY440_MC3417_CLOCK)
-// MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0)
+// MC3417(config, "cvsd3", EXIDY440_MC3417_CLOCK).add_route(ALL_OUTPUTS, "lspeaker", 1.0);
-// MCFG_DEVICE_ADD("cvsd4", MC3417, EXIDY440_MC3417_CLOCK)
-// MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0)
-MACHINE_CONFIG_END
+// MC3417(config, "cvsd4", EXIDY440_MC3417_CLOCK).add_route(ALL_OUTPUTS, "rspeaker", 1.0);
+}
//-------------------------------------------------
// device_start - device-specific startup
diff --git a/src/mame/audio/gottlieb.cpp b/src/mame/audio/gottlieb.cpp
index 1ed3ca8af76..03c61f14515 100644
--- a/src/mame/audio/gottlieb.cpp
+++ b/src/mame/audio/gottlieb.cpp
@@ -657,18 +657,18 @@ INPUT_PORTS_END
// device_add_mconfig - add device configuration
//-------------------------------------------------
-MACHINE_CONFIG_START(gottlieb_sound_r2_device::device_add_mconfig)
+void gottlieb_sound_r2_device::device_add_mconfig(machine_config &config)
+{
// audio CPUs
- MCFG_DEVICE_ADD("audiocpu", M6502, SOUND2_CLOCK/4)
- MCFG_DEVICE_PROGRAM_MAP(gottlieb_sound_r2_map)
+ M6502(config, m_audiocpu, SOUND2_CLOCK/4);
+ m_audiocpu->set_addrmap(AS_PROGRAM, &gottlieb_sound_r2_device::gottlieb_sound_r2_map);
- MCFG_DEVICE_ADD("speechcpu", M6502, SOUND2_CLOCK/4)
- MCFG_DEVICE_PROGRAM_MAP(gottlieb_speech_r2_map)
+ M6502(config, m_speechcpu, SOUND2_CLOCK/4);
+ m_speechcpu->set_addrmap(AS_PROGRAM, &gottlieb_sound_r2_device::gottlieb_speech_r2_map);
// sound hardware
- MCFG_DEVICE_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, *this, 0.075) // unknown DAC
- MCFG_DEVICE_ADD("dacvol", DAC_8BIT_R2R, 0) // unknown DAC
- MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+ DAC_8BIT_R2R(config, "dac", 0).add_route(ALL_OUTPUTS, *this, 0.075); // unknown DAC
+ DAC_8BIT_R2R(config, "dacvol", 0).add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT).add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
vref.add_route(0, "dacvol", 1.0, DAC_VREF_POS_INPUT);
@@ -677,9 +677,8 @@ MACHINE_CONFIG_START(gottlieb_sound_r2_device::device_add_mconfig)
AY8913(config, m_ay2, SOUND2_CLOCK/2).add_route(ALL_OUTPUTS, *this, 0.15);
- MCFG_DEVICE_ADD("spsnd", SP0250, SOUND2_SPEECH_CLOCK)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, *this, 1.0)
-MACHINE_CONFIG_END
+ SP0250(config, m_sp0250, SOUND2_SPEECH_CLOCK).add_route(ALL_OUTPUTS, *this, 1.0);
+}
//-------------------------------------------------
diff --git a/src/mame/audio/llander.cpp b/src/mame/audio/llander.cpp
index 4c216f3679b..80429f032f4 100644
--- a/src/mame/audio/llander.cpp
+++ b/src/mame/audio/llander.cpp
@@ -98,9 +98,9 @@ WRITE8_MEMBER(asteroid_state::llander_sounds_w)
}
-MACHINE_CONFIG_START(asteroid_state::llander_sound)
+void asteroid_state::llander_sound(machine_config &config)
+{
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("discrete", DISCRETE, llander_discrete)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
-MACHINE_CONFIG_END
+ DISCRETE(config, m_discrete, llander_discrete).add_route(ALL_OUTPUTS, "mono", 1.0);
+}
diff --git a/src/mame/audio/midway.cpp b/src/mame/audio/midway.cpp
index 6ca374dcb3b..30d1282140f 100644
--- a/src/mame/audio/midway.cpp
+++ b/src/mame/audio/midway.cpp
@@ -955,9 +955,10 @@ void midway_squawk_n_talk_device::squawkntalk_alt_map(address_map &map)
// device_add_mconfig - add device configuration
//-------------------------------------------------
-MACHINE_CONFIG_START(midway_squawk_n_talk_device::device_add_mconfig)
- MCFG_DEVICE_ADD("cpu", M6802, DERIVED_CLOCK(1, 1))
- MCFG_DEVICE_PROGRAM_MAP(squawkntalk_map)
+void midway_squawk_n_talk_device::device_add_mconfig(machine_config &config)
+{
+ M6802(config, m_cpu, DERIVED_CLOCK(1, 1));
+ m_cpu->set_addrmap(AS_PROGRAM, &midway_squawk_n_talk_device::squawkntalk_map);
PIA6821(config, m_pia0, 0);
m_pia0->writepa_handler().set(FUNC(midway_squawk_n_talk_device::porta1_w));
@@ -971,12 +972,11 @@ MACHINE_CONFIG_START(midway_squawk_n_talk_device::device_add_mconfig)
m_pia1->irqb_handler().set(FUNC(midway_squawk_n_talk_device::irq_w));
// only used on Discs of Tron, which is stereo
- MCFG_DEVICE_ADD("tms5200", TMS5200, 640000)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, *this, 0.60)
+ TMS5200(config, m_tms5200, 640000).add_route(ALL_OUTPUTS, *this, 0.60);
// the board also supports an AY-8912 and/or an 8-bit DAC, neither of
// which are populated on the Discs of Tron board
-MACHINE_CONFIG_END
+}
//-------------------------------------------------
diff --git a/src/mame/audio/spiders.cpp b/src/mame/audio/spiders.cpp
index 93c03844447..3a50b0556c0 100644
--- a/src/mame/audio/spiders.cpp
+++ b/src/mame/audio/spiders.cpp
@@ -204,9 +204,8 @@ WRITE8_MEMBER(spiders_state::spiders_audio_ctrl_w)
}
-MACHINE_CONFIG_START(spiders_state::spiders_audio)
-
+void spiders_state::spiders_audio(machine_config &config)
+{
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("discrete", DISCRETE, spiders_discrete)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
-MACHINE_CONFIG_END
+ DISCRETE(config, m_discrete, spiders_discrete).add_route(ALL_OUTPUTS, "mono", 1.0);
+}
diff --git a/src/mame/audio/sprint8.cpp b/src/mame/audio/sprint8.cpp
index e187173cbcd..c05a83bc890 100644
--- a/src/mame/audio/sprint8.cpp
+++ b/src/mame/audio/sprint8.cpp
@@ -296,7 +296,8 @@ DISCRETE_SOUND_START( sprint8_discrete )
DISCRETE_TASK_END()
DISCRETE_SOUND_END
-MACHINE_CONFIG_START(sprint8_state::sprint8_audio)
+void sprint8_state::sprint8_audio(machine_config &config)
+{
/* sound hardware */
/* the proper way is to hook up 4 speakers, but they are not really
* F/R/L/R speakers. Though you can pretend the 1-2 mix is the front. */
@@ -305,30 +306,30 @@ MACHINE_CONFIG_START(sprint8_state::sprint8_audio)
SPEAKER(config, "speaker_5_6", 0.0, 0.0, -0.5); // back
SPEAKER(config, "speaker_4_8", 0.2, 0.0, 1.0); // right
- MCFG_DEVICE_ADD("discrete", DISCRETE, sprint8_discrete)
- MCFG_SOUND_ROUTE(0, "speaker_1_2", 1.0)
+ DISCRETE(config, m_discrete, sprint8_discrete);
+ m_discrete->add_route(0, "speaker_1_2", 1.0);
/* volumes on other channels defaulted to off, */
/* user can turn them up if needed. */
/* The game does not sound good with all channels mixed to stereo. */
- MCFG_SOUND_ROUTE(1, "speaker_3_7", 0.0)
- MCFG_SOUND_ROUTE(2, "speaker_5_6", 0.0)
- MCFG_SOUND_ROUTE(3, "speaker_4_8", 0.0)
+ m_discrete->add_route(1, "speaker_3_7", 0.0);
+ m_discrete->add_route(2, "speaker_5_6", 0.0);
+ m_discrete->add_route(3, "speaker_4_8", 0.0);
f9334_device &latch(F9334(config, "latch"));
latch.q_out_cb<0>().set(FUNC(sprint8_state::int_reset_w));
- latch.q_out_cb<1>().set("discrete", FUNC(discrete_device::write_line<SPRINT8_CRASH_EN>));
- latch.q_out_cb<2>().set("discrete", FUNC(discrete_device::write_line<SPRINT8_SCREECH_EN>));
+ latch.q_out_cb<1>().set(m_discrete, FUNC(discrete_device::write_line<SPRINT8_CRASH_EN>));
+ latch.q_out_cb<2>().set(m_discrete, FUNC(discrete_device::write_line<SPRINT8_SCREECH_EN>));
latch.q_out_cb<5>().set(FUNC(sprint8_state::team_w));
- latch.q_out_cb<6>().set("discrete", FUNC(discrete_device::write_line<SPRINT8_ATTRACT_EN>));
+ latch.q_out_cb<6>().set(m_discrete, FUNC(discrete_device::write_line<SPRINT8_ATTRACT_EN>));
f9334_device &motor(F9334(config, "motor"));
- motor.q_out_cb<0>().set("discrete", FUNC(discrete_device::write_line<SPRINT8_MOTOR1_EN>));
- motor.q_out_cb<1>().set("discrete", FUNC(discrete_device::write_line<SPRINT8_MOTOR2_EN>));
- motor.q_out_cb<2>().set("discrete", FUNC(discrete_device::write_line<SPRINT8_MOTOR3_EN>));
- motor.q_out_cb<3>().set("discrete", FUNC(discrete_device::write_line<SPRINT8_MOTOR4_EN>));
- motor.q_out_cb<4>().set("discrete", FUNC(discrete_device::write_line<SPRINT8_MOTOR5_EN>));
- motor.q_out_cb<5>().set("discrete", FUNC(discrete_device::write_line<SPRINT8_MOTOR6_EN>));
- motor.q_out_cb<6>().set("discrete", FUNC(discrete_device::write_line<SPRINT8_MOTOR7_EN>));
- motor.q_out_cb<7>().set("discrete", FUNC(discrete_device::write_line<SPRINT8_MOTOR8_EN>));
-MACHINE_CONFIG_END
+ motor.q_out_cb<0>().set(m_discrete, FUNC(discrete_device::write_line<SPRINT8_MOTOR1_EN>));
+ motor.q_out_cb<1>().set(m_discrete, FUNC(discrete_device::write_line<SPRINT8_MOTOR2_EN>));
+ motor.q_out_cb<2>().set(m_discrete, FUNC(discrete_device::write_line<SPRINT8_MOTOR3_EN>));
+ motor.q_out_cb<3>().set(m_discrete, FUNC(discrete_device::write_line<SPRINT8_MOTOR4_EN>));
+ motor.q_out_cb<4>().set(m_discrete, FUNC(discrete_device::write_line<SPRINT8_MOTOR5_EN>));
+ motor.q_out_cb<5>().set(m_discrete, FUNC(discrete_device::write_line<SPRINT8_MOTOR6_EN>));
+ motor.q_out_cb<6>().set(m_discrete, FUNC(discrete_device::write_line<SPRINT8_MOTOR7_EN>));
+ motor.q_out_cb<7>().set(m_discrete, FUNC(discrete_device::write_line<SPRINT8_MOTOR8_EN>));
+}
;
diff --git a/src/mame/audio/t5182.cpp b/src/mame/audio/t5182.cpp
index 93726634dcb..2cc831bf63d 100644
--- a/src/mame/audio/t5182.cpp
+++ b/src/mame/audio/t5182.cpp
@@ -371,9 +371,9 @@ void t5182_device::t5182_io(address_map &map)
// device_add_mconfig - add device configuration
//-------------------------------------------------
-MACHINE_CONFIG_START(t5182_device::device_add_mconfig)
- MCFG_DEVICE_ADD("t5182_z80", Z80, T5182_CLOCK)
- MCFG_DEVICE_PROGRAM_MAP(t5182_map)
- MCFG_DEVICE_IO_MAP(t5182_io)
-
-MACHINE_CONFIG_END
+void t5182_device::device_add_mconfig(machine_config &config)
+{
+ Z80(config, m_ourcpu, T5182_CLOCK);
+ m_ourcpu->set_addrmap(AS_PROGRAM, &t5182_device::t5182_map);
+ m_ourcpu->set_addrmap(AS_IO, &t5182_device::t5182_io);
+}
diff --git a/src/mame/audio/timeplt.cpp b/src/mame/audio/timeplt.cpp
index 14bd7834c5c..c276cd3fcfe 100644
--- a/src/mame/audio/timeplt.cpp
+++ b/src/mame/audio/timeplt.cpp
@@ -219,13 +219,13 @@ void timeplt_audio_device::device_add_mconfig(machine_config &config)
}
-MACHINE_CONFIG_START(locomotn_audio_device::device_add_mconfig)
+void locomotn_audio_device::device_add_mconfig(machine_config &config)
+{
timeplt_audio_device::device_add_mconfig(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("tpsound")
- MCFG_DEVICE_PROGRAM_MAP(locomotn_sound_map)
-MACHINE_CONFIG_END
+ m_soundcpu->set_addrmap(AS_PROGRAM, &locomotn_audio_device::locomotn_sound_map);
+}
//-------------------------------------------------
// sound_stream_update - handle a stream update
diff --git a/src/mame/audio/timeplt.h b/src/mame/audio/timeplt.h
index fc3d57ec241..509de0fab17 100644
--- a/src/mame/audio/timeplt.h
+++ b/src/mame/audio/timeplt.h
@@ -34,9 +34,10 @@ protected:
void timeplt_sound_map(address_map &map);
+ required_device<cpu_device> m_soundcpu;
+
private:
// internal state
- required_device<cpu_device> m_soundcpu;
required_device<generic_latch_8_device> m_soundlatch;
required_device_array<filter_rc_device, 3> m_filter_0;
required_device_array<filter_rc_device, 3> m_filter_1;
diff --git a/src/mame/audio/tx1.cpp b/src/mame/audio/tx1.cpp
index b8fcd87e4c8..f1667c8e7c0 100644
--- a/src/mame/audio/tx1.cpp
+++ b/src/mame/audio/tx1.cpp
@@ -552,7 +552,8 @@ ioport_constructor tx1j_sound_device::device_input_ports() const
return INPUT_PORTS_NAME(tx1j_inputs);
}
-MACHINE_CONFIG_START(tx1_sound_device::device_add_mconfig)
+void tx1_sound_device::device_add_mconfig(machine_config &config)
+{
Z80(config, m_audiocpu, TX1_PIXEL_CLOCK / 2);
m_audiocpu->set_addrmap(AS_PROGRAM, &tx1_sound_device::tx1_sound_prg);
m_audiocpu->set_addrmap(AS_IO, &tx1_sound_device::tx1_sound_io);
@@ -575,10 +576,9 @@ MACHINE_CONFIG_START(tx1_sound_device::device_add_mconfig)
aysnd.add_route(ALL_OUTPUTS, "frontleft", 0.1);
aysnd.add_route(ALL_OUTPUTS, "frontright", 0.1);
- MCFG_DEVICE_MODIFY(DEVICE_SELF)
- MCFG_SOUND_ROUTE(0, "frontleft", 0.2)
- MCFG_SOUND_ROUTE(1, "frontright", 0.2)
-MACHINE_CONFIG_END
+ this->add_route(0, "frontleft", 0.2);
+ this->add_route(1, "frontright", 0.2);
+}
/*************************************
*
@@ -1059,7 +1059,8 @@ ioport_constructor buggyboyjr_sound_device::device_input_ports() const
return INPUT_PORTS_NAME(buggyboyjr_inputs);
}
-MACHINE_CONFIG_START(buggyboy_sound_device::device_add_mconfig)
+void buggyboy_sound_device::device_add_mconfig(machine_config &config)
+{
Z80(config, m_audiocpu, BUGGYBOY_ZCLK / 2);
m_audiocpu->set_addrmap(AS_PROGRAM, &buggyboy_sound_device::buggyboy_sound_prg);
m_audiocpu->set_addrmap(AS_IO, &buggyboy_sound_device::buggyboy_sound_io);
@@ -1085,12 +1086,12 @@ MACHINE_CONFIG_START(buggyboy_sound_device::device_add_mconfig)
m_ym[1]->port_b_write_callback().set(FUNC(buggyboy_sound_device::ym2_b_w));
m_ym[1]->add_route(ALL_OUTPUTS, "frontright", 0.15);
- MCFG_DEVICE_MODIFY(DEVICE_SELF)
- MCFG_SOUND_ROUTE(0, "frontleft", 0.2)
- MCFG_SOUND_ROUTE(1, "frontright", 0.2)
-MACHINE_CONFIG_END
+ this->add_route(0, "frontleft", 0.2);
+ this->add_route(1, "frontright", 0.2);
+}
-MACHINE_CONFIG_START(buggyboyjr_sound_device::device_add_mconfig)
+void buggyboyjr_sound_device::device_add_mconfig(machine_config &config)
+{
Z80(config, m_audiocpu, BUGGYBOY_ZCLK / 2);
m_audiocpu->set_addrmap(AS_PROGRAM, &buggyboyjr_sound_device::buggybjr_sound_prg);
m_audiocpu->set_addrmap(AS_IO, &buggyboyjr_sound_device::buggyboy_sound_io);
@@ -1111,7 +1112,6 @@ MACHINE_CONFIG_START(buggyboyjr_sound_device::device_add_mconfig)
m_ym[1]->port_b_write_callback().set(FUNC(buggyboy_sound_device::ym2_b_w));
m_ym[1]->add_route(ALL_OUTPUTS, "frontright", 0.15);
- MCFG_DEVICE_MODIFY(DEVICE_SELF)
- MCFG_SOUND_ROUTE(0, "frontleft", 0.2)
- MCFG_SOUND_ROUTE(1, "frontright", 0.2)
-MACHINE_CONFIG_END
+ this->add_route(0, "frontleft", 0.2);
+ this->add_route(1, "frontright", 0.2);
+}
diff --git a/src/mame/audio/williams.cpp b/src/mame/audio/williams.cpp
index 87758db2d9c..5faa1709614 100644
--- a/src/mame/audio/williams.cpp
+++ b/src/mame/audio/williams.cpp
@@ -500,27 +500,27 @@ void williams_narc_sound_device::williams_narc_slave_map(address_map &map)
//-------------------------------------------------
-MACHINE_CONFIG_START(williams_narc_sound_device::device_add_mconfig)
- MCFG_DEVICE_ADD("cpu0", MC6809E, NARC_MASTER_CLOCK / 4)
- MCFG_DEVICE_PROGRAM_MAP(williams_narc_master_map)
+void williams_narc_sound_device::device_add_mconfig(machine_config &config)
+{
+ MC6809E(config, m_cpu[0], NARC_MASTER_CLOCK / 4);
+ m_cpu[0]->set_addrmap(AS_PROGRAM, &williams_narc_sound_device::williams_narc_master_map);
- MCFG_DEVICE_ADD("cpu1", MC6809E, NARC_MASTER_CLOCK / 4)
- MCFG_DEVICE_PROGRAM_MAP(williams_narc_slave_map)
+ MC6809E(config, m_cpu[1], NARC_MASTER_CLOCK / 4);
+ m_cpu[1]->set_addrmap(AS_PROGRAM, &williams_narc_sound_device::williams_narc_slave_map);
ym2151_device &ym2151(YM2151(config, "ym2151", NARC_FM_CLOCK));
ym2151.irq_handler().set_inputline("cpu0", M6809_FIRQ_LINE);
ym2151.add_route(ALL_OUTPUTS, *this, 0.10);
- MCFG_DEVICE_ADD("dac1", AD7224, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, *this, 0.25)
- MCFG_DEVICE_ADD("dac2", AD7224, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, *this, 0.25)
+ AD7224(config, "dac1", 0).add_route(ALL_OUTPUTS, *this, 0.25);
+ AD7224(config, "dac2", 0).add_route(ALL_OUTPUTS, *this, 0.25);
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);
- MCFG_DEVICE_ADD("cvsd", HC55516, 0)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, *this, 0.60)
-MACHINE_CONFIG_END
+ HC55516(config, m_hc55516, 0).add_route(ALL_OUTPUTS, *this, 0.60);
+}
//-------------------------------------------------
@@ -758,24 +758,25 @@ void williams_adpcm_sound_device::williams_adpcm_oki_map(address_map &map)
// device_add_mconfig - add device configuration
//-------------------------------------------------
-MACHINE_CONFIG_START(williams_adpcm_sound_device::device_add_mconfig)
- MCFG_DEVICE_ADD("cpu", MC6809E, ADPCM_MASTER_CLOCK / 4)
- MCFG_DEVICE_PROGRAM_MAP(williams_adpcm_map)
+void williams_adpcm_sound_device::device_add_mconfig(machine_config &config)
+{
+ MC6809E(config, m_cpu, ADPCM_MASTER_CLOCK / 4);
+ m_cpu->set_addrmap(AS_PROGRAM, &williams_adpcm_sound_device::williams_adpcm_map);
ym2151_device &ym2151(YM2151(config, "ym2151", ADPCM_FM_CLOCK));
ym2151.irq_handler().set_inputline("cpu", M6809_FIRQ_LINE);
ym2151.add_route(ALL_OUTPUTS, *this, 0.10);
- MCFG_DEVICE_ADD("dac", AD7524, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, *this, 0.10)
+ AD7524(config, "dac", 0).add_route(ALL_OUTPUTS, *this, 0.10);
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);
- MCFG_DEVICE_ADD("oki", OKIM6295, ADPCM_MASTER_CLOCK/8, okim6295_device::PIN7_HIGH) // clock frequency & pin 7 not verified
- MCFG_DEVICE_ADDRESS_MAP(0, williams_adpcm_oki_map)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, *this, 0.15)
-MACHINE_CONFIG_END
+ okim6295_device &oki(OKIM6295(config, "oki", ADPCM_MASTER_CLOCK/8, okim6295_device::PIN7_HIGH)); // clock frequency & pin 7 not verified
+ oki.set_addrmap(0, &williams_adpcm_sound_device::williams_adpcm_oki_map);
+ oki.add_route(ALL_OUTPUTS, *this, 0.15);
+}
//-------------------------------------------------
diff --git a/src/mame/audio/wpcsnd.cpp b/src/mame/audio/wpcsnd.cpp
index 2779287263c..1662b04c1dc 100644
--- a/src/mame/audio/wpcsnd.cpp
+++ b/src/mame/audio/wpcsnd.cpp
@@ -69,24 +69,24 @@ uint8_t wpcsnd_device::data_r()
return m_reply;
}
-MACHINE_CONFIG_START(wpcsnd_device::device_add_mconfig)
- MCFG_DEVICE_ADD("bgcpu", MC6809E, XTAL(8'000'000) / 4) // MC68B09E
- MCFG_DEVICE_PROGRAM_MAP(wpcsnd_map)
+void wpcsnd_device::device_add_mconfig(machine_config &config)
+{
+ MC6809E(config, m_cpu, XTAL(8'000'000) / 4); // MC68B09E
+ m_cpu->set_addrmap(AS_PROGRAM, &wpcsnd_device::wpcsnd_map);
config.m_minimum_quantum = attotime::from_hz(50);
YM2151(config, m_ym2151, 3580000);
m_ym2151->irq_handler().set(FUNC(wpcsnd_device::ym2151_irq_w));
m_ym2151->add_route(ALL_OUTPUTS, *this, 0.25);
- MCFG_DEVICE_ADD("dac", AD7524, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, *this, 0.25)
+ AD7524(config, "dac", 0).add_route(ALL_OUTPUTS, *this, 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);
- MCFG_DEVICE_ADD("hc55516", HC55516, 0)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, *this, 0.5)
-MACHINE_CONFIG_END
+ HC55516(config, m_hc55516, 0).add_route(ALL_OUTPUTS, *this, 0.5);
+}
void wpcsnd_device::device_start()
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);
diff --git a/src/mame/etc/korgm1.cpp b/src/mame/etc/korgm1.cpp
index ddfb1cd8490..6a5df1cd84c 100644
--- a/src/mame/etc/korgm1.cpp
+++ b/src/mame/etc/korgm1.cpp
@@ -167,32 +167,32 @@ PALETTE_INIT_MEMBER(korgm1_state, korgm1)
{
}
-MACHINE_CONFIG_START(korgm1_state::korgm1)
-
+void korgm1_state::korgm1(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu",V30,MAIN_CLOCK) // V50 actually
- MCFG_DEVICE_PROGRAM_MAP(korgm1_map)
- MCFG_DEVICE_IO_MAP(korgm1_io)
+ V30(config, m_maincpu, MAIN_CLOCK); // V50 actually
+ m_maincpu->set_addrmap(AS_PROGRAM, &korgm1_state::korgm1_map);
+ m_maincpu->set_addrmap(AS_IO, &korgm1_state::korgm1_io);
- MCFG_DEVICE_ADD("pio", CXD1095, 0)
+ CXD1095(config, "pio", 0);
/* video hardware */
/* TODO: LCD actually */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
- MCFG_SCREEN_UPDATE_DRIVER(korgm1_state, screen_update)
- MCFG_SCREEN_SIZE(32*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500));
+ screen.set_screen_update(FUNC(korgm1_state::screen_update));
+ screen.set_size(32*8, 32*8);
+ screen.set_visarea(0*8, 32*8-1, 0*8, 32*8-1);
GFXDECODE(config, "gfxdecode", "palette", gfx_korgm1);
- MCFG_PALETTE_ADD("palette", 8)
+ PALETTE(config, "palette").set_entries(8);
/* sound hardware */
SPEAKER(config, "mono").front_center();
// AY8910(config, "aysnd", MAIN_CLOCK/4).add_route(ALL_OUTPUTS, "mono", 0.30);
-MACHINE_CONFIG_END
+}
/***************************************************************************
diff --git a/src/mame/etc/template_device.cpp b/src/mame/etc/template_device.cpp
index d1adea3448b..21226b79b1b 100644
--- a/src/mame/etc/template_device.cpp
+++ b/src/mame/etc/template_device.cpp
@@ -40,9 +40,10 @@ xxx_device::xxx_device(const machine_config &mconfig, const char *tag, device_t
// configuration addiitons
//-------------------------------------------------
-MACHINE_CONFIG_START(xxx_device::device_add_mconfig)
- //MCFG_DEVICE_ADD(...)
-MACHINE_CONFIG_END
+void xxx_device::device_add_mconfig(machine_config &config)
+{
+ //DEVICE(config, ...);
+}
//-------------------------------------------------
diff --git a/src/mame/etc/unkfr.cpp b/src/mame/etc/unkfr.cpp
index dd16171c298..4e7c2e7f566 100644
--- a/src/mame/etc/unkfr.cpp
+++ b/src/mame/etc/unkfr.cpp
@@ -60,8 +60,9 @@ static INPUT_PORTS_START( unkfr )
PORT_DIPSETTING( 0x80, DEF_STR( On ) )
INPUT_PORTS_END
-MACHINE_CONFIG_START( unkfr_state::unkfr )
-MACHINE_CONFIG_END
+void unkfr_state::unkfr(machine_config &config)
+{
+}
ROM_START( unkfr )
ROM_REGION( 0x800000, "unkroms", 0 )
diff --git a/src/mame/includes/sprint8.h b/src/mame/includes/sprint8.h
index 1439e0747e3..9392b32d06d 100644
--- a/src/mame/includes/sprint8.h
+++ b/src/mame/includes/sprint8.h
@@ -59,7 +59,7 @@ private:
required_device<gfxdecode_device> m_gfxdecode;
required_device<screen_device> m_screen;
required_device<palette_device> m_palette;
- required_device<discrete_device> m_discrete;
+ required_device<discrete_sound_device> m_discrete;
required_shared_ptr<uint8_t> m_video_ram;
required_shared_ptr<uint8_t> m_pos_h_ram;
diff --git a/src/mame/machine/apricotkb.cpp b/src/mame/machine/apricotkb.cpp
index f573832986f..d5e4aecc451 100644
--- a/src/mame/machine/apricotkb.cpp
+++ b/src/mame/machine/apricotkb.cpp
@@ -68,12 +68,13 @@ void apricot_keyboard_device::apricot_keyboard_io(address_map &map)
// device_add_mconfig - add device configuration
//-------------------------------------------------
-MACHINE_CONFIG_START(apricot_keyboard_device::device_add_mconfig)
+void apricot_keyboard_device::device_add_mconfig(machine_config &config)
+{
#ifdef UPD7507_EMULATED
- MCFG_DEVICE_ADD(UPD7507C_TAG, UPD7507, XTAL(32'768))
- MCFG_DEVICE_IO_MAP(apricot_keyboard_io)
+ upd7507_device &upd(UPD7507(config, UPD7507C_TAG, XTAL(32'768)));
+ upd.set_addrmap(AS_IO, &apricot_keyboard_device::apricot_keyboard_io);
#endif
-MACHINE_CONFIG_END
+}
//-------------------------------------------------
diff --git a/src/mame/machine/dec_lk201.cpp b/src/mame/machine/dec_lk201.cpp
index 84740e07cee..4c4f5dbd4f9 100644
--- a/src/mame/machine/dec_lk201.cpp
+++ b/src/mame/machine/dec_lk201.cpp
@@ -211,14 +211,15 @@ void lk201_device::lk201_map(address_map &map)
// device_add_mconfig - add device configuration
//-------------------------------------------------
-MACHINE_CONFIG_START(lk201_device::device_add_mconfig)
- MCFG_DEVICE_ADD(LK201_CPU_TAG, M68HC05EG, XTAL(4'000'000)) // actually 68HC05C4, clock verified by Lord_Nightmare
- MCFG_DEVICE_PROGRAM_MAP(lk201_map)
+void lk201_device::device_add_mconfig(machine_config &config)
+{
+ M68HC05EG(config, m_maincpu, XTAL(4'000'000)); // actually 68HC05C4, clock verified by Lord_Nightmare
+ m_maincpu->set_addrmap(AS_PROGRAM, &lk201_device::lk201_map);
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD(LK201_SPK_TAG, BEEP, 2000) // clocked by a 555 timer at E8, the volume of the beep is controllable by: (8051 model) P2.0 thru P2.3, or (6805 model) the upper 4 bits of the LED data latch
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
-MACHINE_CONFIG_END
+ BEEP(config, m_speaker, 2000); // clocked by a 555 timer at E8, the volume of the beep is controllable by: (8051 model) P2.0 thru P2.3, or (6805 model) the upper 4 bits of the LED data latch
+ m_speaker->add_route(ALL_OUTPUTS, "mono", 0.50);
+}
const tiny_rom_entry *lk201_device::device_rom_region() const
{
diff --git a/src/mame/machine/megadriv.cpp b/src/mame/machine/megadriv.cpp
index 4ebeccdb2a7..43da1c28c11 100644
--- a/src/mame/machine/megadriv.cpp
+++ b/src/mame/machine/megadriv.cpp
@@ -883,7 +883,8 @@ void md_base_state::megadriv_timers(machine_config &config)
}
-MACHINE_CONFIG_START(md_base_state::md_ntsc)
+void md_base_state::md_ntsc(machine_config &config)
+{
M68000(config, m_maincpu, MASTER_CLOCK_NTSC / 7); /* 7.67 MHz */
m_maincpu->set_addrmap(AS_PROGRAM, &md_base_state::megadriv_map);
m_maincpu->set_irq_acknowledge_callback(FUNC(md_base_state::genesis_int_callback));
@@ -909,13 +910,13 @@ MACHINE_CONFIG_START(md_base_state::md_ntsc)
m_vdp->add_route(ALL_OUTPUTS, "lspeaker", 0.25);
m_vdp->add_route(ALL_OUTPUTS, "rspeaker", 0.25);
- MCFG_SCREEN_ADD("megadriv", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) // Vblank handled manually.
- MCFG_SCREEN_SIZE(64*8, 620)
- MCFG_SCREEN_VISIBLE_AREA(0, 32*8-1, 0, 28*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(md_base_state, screen_update_megadriv) /* Copies a bitmap */
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, md_base_state, screen_vblank_megadriv)) /* Used to Sync the timing */
+ screen_device &screen(SCREEN(config, "megadriv", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); // Vblank handled manually.
+ screen.set_size(64*8, 620);
+ screen.set_visarea(0, 32*8-1, 0, 28*8-1);
+ screen.set_screen_update(FUNC(md_base_state::screen_update_megadriv)); /* Copies a bitmap */
+ screen.screen_vblank().set(FUNC(md_base_state::screen_vblank_megadriv)); /* Used to Sync the timing */
MCFG_VIDEO_START_OVERRIDE(md_base_state, megadriv)
@@ -923,22 +924,22 @@ MACHINE_CONFIG_START(md_base_state::md_ntsc)
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
- MCFG_DEVICE_ADD("ymsnd", YM2612, MASTER_CLOCK_NTSC/7) /* 7.67 MHz */
- MCFG_SOUND_ROUTE(0, "lspeaker", 0.50)
- MCFG_SOUND_ROUTE(1, "rspeaker", 0.50)
-MACHINE_CONFIG_END
+ YM2612(config, m_ymsnd, MASTER_CLOCK_NTSC/7); /* 7.67 MHz */
+ m_ymsnd->add_route(0, "lspeaker", 0.50);
+ m_ymsnd->add_route(1, "rspeaker", 0.50);
+}
-MACHINE_CONFIG_START(md_cons_state::dcat16_megadriv_base)
+void md_cons_state::dcat16_megadriv_base(machine_config &config)
+{
md_ntsc(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(dcat16_megadriv_map)
- MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(md_base_state,genesis_int_callback)
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_PROGRAM, &md_base_state::dcat16_megadriv_map);
+}
/************ PAL hardware has a different master clock *************/
-MACHINE_CONFIG_START(md_base_state::md_pal)
+void md_base_state::md_pal(machine_config &config)
+{
M68000(config, m_maincpu, MASTER_CLOCK_PAL / 7); /* 7.67 MHz */
m_maincpu->set_addrmap(AS_PROGRAM, &md_base_state::megadriv_map);
m_maincpu->set_irq_acknowledge_callback(FUNC(md_base_state::genesis_int_callback));
@@ -963,13 +964,13 @@ MACHINE_CONFIG_START(md_base_state::md_pal)
m_vdp->add_route(ALL_OUTPUTS, "lspeaker", 0.25);
m_vdp->add_route(ALL_OUTPUTS, "rspeaker", 0.25);
- MCFG_SCREEN_ADD("megadriv", RASTER)
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) // Vblank handled manually.
- MCFG_SCREEN_SIZE(64*8, 620)
- MCFG_SCREEN_VISIBLE_AREA(0, 32*8-1, 0, 28*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(md_base_state, screen_update_megadriv) /* Copies a bitmap */
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, md_base_state, screen_vblank_megadriv)) /* Used to Sync the timing */
+ screen_device &screen(SCREEN(config, "megadriv", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(50);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); // Vblank handled manually.
+ screen.set_size(64*8, 620);
+ screen.set_visarea(0, 32*8-1, 0, 28*8-1);
+ screen.set_screen_update(FUNC(md_base_state::screen_update_megadriv)); /* Copies a bitmap */
+ screen.screen_vblank().set(FUNC(md_base_state::screen_vblank_megadriv)); /* Used to Sync the timing */
MCFG_VIDEO_START_OVERRIDE(md_base_state, megadriv)
@@ -977,10 +978,10 @@ MACHINE_CONFIG_START(md_base_state::md_pal)
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
- MCFG_DEVICE_ADD("ymsnd", YM2612, MASTER_CLOCK_PAL/7) /* 7.67 MHz */
- MCFG_SOUND_ROUTE(0, "lspeaker", 0.50)
- MCFG_SOUND_ROUTE(1, "rspeaker", 0.50)
-MACHINE_CONFIG_END
+ YM2612(config, m_ymsnd, MASTER_CLOCK_NTSC/7); /* 7.67 MHz */
+ m_ymsnd->add_route(0, "lspeaker", 0.50);
+ m_ymsnd->add_route(1, "rspeaker", 0.50);
+}
WRITE8_MEMBER(md_base_state::megadriv_tas_callback)
diff --git a/src/mame/machine/mpu4.cpp b/src/mame/machine/mpu4.cpp
index 316f9fe9ad6..51d4f860742 100644
--- a/src/mame/machine/mpu4.cpp
+++ b/src/mame/machine/mpu4.cpp
@@ -3067,12 +3067,12 @@ void mpu4_state::mpu4_common2(machine_config &config)
}
/* machine driver for MOD 2 board */
-MACHINE_CONFIG_START(mpu4_state::mpu4base)
-
+void mpu4_state::mpu4base(machine_config &config)
+{
MCFG_MACHINE_START_OVERRIDE(mpu4_state,mod2 )
MCFG_MACHINE_RESET_OVERRIDE(mpu4_state,mpu4)
- MCFG_DEVICE_ADD("maincpu", MC6809, MPU4_MASTER_CLOCK) // MC68B09P
- MCFG_DEVICE_PROGRAM_MAP(mpu4_memmap)
+ MC6809(config, m_maincpu, MPU4_MASTER_CLOCK); // MC68B09P
+ m_maincpu->set_addrmap(AS_PROGRAM, &mpu4_state::mpu4_memmap);
mpu4_common(config);
@@ -3082,7 +3082,7 @@ MACHINE_CONFIG_START(mpu4_state::mpu4base)
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
config.set_default_layout(layout_mpu4);
-MACHINE_CONFIG_END
+}
void mpu4_state::mod2(machine_config &config)
@@ -3109,71 +3109,77 @@ void mpu4_state::mod2_alt(machine_config &config)
-MACHINE_CONFIG_START(mpu4_state::mod4yam)
+void mpu4_state::mod4yam(machine_config &config)
+{
mpu4base(config);
MCFG_MACHINE_START_OVERRIDE(mpu4_state,mpu4yam)
mpu4_std_6reel(config);
- MCFG_DEVICE_ADD("ym2413", YM2413, MPU4_MASTER_CLOCK/4)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0)
-MACHINE_CONFIG_END
+ YM2413(config, m_ym2413, MPU4_MASTER_CLOCK/4);
+ m_ym2413->add_route(ALL_OUTPUTS, "lspeaker", 1.0);
+ m_ym2413->add_route(ALL_OUTPUTS, "rspeaker", 1.0);
+}
-MACHINE_CONFIG_START(mpu4_state::mod4oki)
+void mpu4_state::mod4oki(machine_config &config)
+{
mpu4base(config);
MCFG_MACHINE_START_OVERRIDE(mpu4_state,mpu4oki)
mpu4_common2(config);
mpu4_std_6reel(config);
- MCFG_DEVICE_ADD("msm6376", OKIM6376, 128000) //16KHz sample Can also be 85430 at 10.5KHz and 64000 at 8KHz
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0)
-MACHINE_CONFIG_END
+ OKIM6376(config, m_msm6376, 128000); //16KHz sample Can also be 85430 at 10.5KHz and 64000 at 8KHz
+ m_msm6376->add_route(ALL_OUTPUTS, "lspeaker", 1.0);
+ m_msm6376->add_route(ALL_OUTPUTS, "rspeaker", 1.0);
+}
-MACHINE_CONFIG_START(mpu4_state::mod4oki_alt)
+void mpu4_state::mod4oki_alt(machine_config &config)
+{
mpu4base(config);
MCFG_MACHINE_START_OVERRIDE(mpu4_state,mpu4oki)
mpu4_common2(config);
mpu4_type2_6reel(config);
- MCFG_DEVICE_ADD("msm6376", OKIM6376, 128000) //16KHz sample Can also be 85430 at 10.5KHz and 64000 at 8KHz
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0)
-MACHINE_CONFIG_END
+ OKIM6376(config, m_msm6376, 128000); //16KHz sample Can also be 85430 at 10.5KHz and 64000 at 8KHz
+ m_msm6376->add_route(ALL_OUTPUTS, "lspeaker", 1.0);
+ m_msm6376->add_route(ALL_OUTPUTS, "rspeaker", 1.0);
+}
-MACHINE_CONFIG_START(mpu4_state::mod4oki_5r)
+void mpu4_state::mod4oki_5r(machine_config &config)
+{
mpu4base(config);
MCFG_MACHINE_START_OVERRIDE(mpu4_state,mpu4oki)
mpu4_common2(config);
mpu4_std_5reel(config);
- MCFG_DEVICE_ADD("msm6376", OKIM6376, 128000) //16KHz sample Can also be 85430 at 10.5KHz and 64000 at 8KHz
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0)
-MACHINE_CONFIG_END
+ OKIM6376(config, m_msm6376, 128000); //16KHz sample Can also be 85430 at 10.5KHz and 64000 at 8KHz
+ m_msm6376->add_route(ALL_OUTPUTS, "lspeaker", 1.0);
+ m_msm6376->add_route(ALL_OUTPUTS, "rspeaker", 1.0);
+}
-MACHINE_CONFIG_START(mpu4_state::bwboki)
+void mpu4_state::bwboki(machine_config &config)
+{
mpu4base(config);
MCFG_MACHINE_START_OVERRIDE(mpu4_state,mpu4bwb)
mpu4_common2(config);
mpu4_bwb_5reel(config);
- MCFG_DEVICE_ADD("msm6376", OKIM6376, 128000) //16KHz sample Can also be 85430 at 10.5KHz and 64000 at 8KHz
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0)
-MACHINE_CONFIG_END
+ OKIM6376(config, m_msm6376, 128000); //16KHz sample Can also be 85430 at 10.5KHz and 64000 at 8KHz
+ m_msm6376->add_route(ALL_OUTPUTS, "lspeaker", 1.0);
+ m_msm6376->add_route(ALL_OUTPUTS, "rspeaker", 1.0);
+}
-MACHINE_CONFIG_START(mpu4_state::mpu4crys)
+void mpu4_state::mpu4crys(machine_config &config)
+{
mod2(config);
MCFG_MACHINE_START_OVERRIDE(mpu4_state,mpu4cry)
- MCFG_DEVICE_ADD("upd", UPD7759)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0)
-MACHINE_CONFIG_END
+ upd7759_device &upd(UPD7759(config, "upd"));
+ upd.add_route(ALL_OUTPUTS, "lspeaker", 1.0);
+ upd.add_route(ALL_OUTPUTS, "rspeaker", 1.0);
+}
#define GAME_FLAGS (MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL)
diff --git a/src/mame/machine/pcshare.cpp b/src/mame/machine/pcshare.cpp
index 0cedba2dd03..8d9fbac3f27 100644
--- a/src/mame/machine/pcshare.cpp
+++ b/src/mame/machine/pcshare.cpp
@@ -141,51 +141,51 @@ void pcat_base_state::pcat32_io_common(address_map &map)
}
-MACHINE_CONFIG_START(pcat_base_state::pcvideo_vga)
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_RAW_PARAMS(25.1748_MHz_XTAL, 900, 0, 640, 526, 0, 480)
- MCFG_SCREEN_UPDATE_DEVICE("vga", vga_device, screen_update)
-
- MCFG_DEVICE_ADD("vga", VGA, 0)
- MCFG_VIDEO_SET_SCREEN("screen")
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(pcat_base_state::pcvideo_trident_vga)
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_RAW_PARAMS(25.1748_MHz_XTAL, 900, 0, 640, 526, 0, 480)
- MCFG_SCREEN_UPDATE_DEVICE("vga", trident_vga_device, screen_update)
-
- MCFG_DEVICE_ADD("vga", TRIDENT_VGA, 0)
- MCFG_VIDEO_SET_SCREEN("screen")
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(pcat_base_state::pcvideo_s3_vga)
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_RAW_PARAMS(25.1748_MHz_XTAL, 900, 0, 640, 526, 0, 480)
- MCFG_SCREEN_UPDATE_DEVICE("vga", s3_vga_device, screen_update)
-
- MCFG_DEVICE_ADD("vga", S3_VGA, 0)
- MCFG_VIDEO_SET_SCREEN("screen")
-MACHINE_CONFIG_END
-
-
-MACHINE_CONFIG_START(pcat_base_state::pcvideo_cirrus_gd5428)
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_RAW_PARAMS(25.1748_MHz_XTAL, 900, 0, 640, 526, 0, 480)
- MCFG_SCREEN_UPDATE_DEVICE("vga", cirrus_gd5428_device, screen_update)
-
- MCFG_DEVICE_ADD("vga", CIRRUS_GD5428, 0)
- MCFG_VIDEO_SET_SCREEN("screen")
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(pcat_base_state::pcvideo_cirrus_gd5430)
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_RAW_PARAMS(25.1748_MHz_XTAL, 900, 0, 640, 526, 0, 480)
- MCFG_SCREEN_UPDATE_DEVICE("vga", cirrus_gd5430_device, screen_update)
-
- MCFG_DEVICE_ADD("vga", CIRRUS_GD5430, 0)
- MCFG_VIDEO_SET_SCREEN("screen")
-MACHINE_CONFIG_END
+void pcat_base_state::pcvideo_vga(machine_config &config)
+{
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_raw(25.1748_MHz_XTAL, 900, 0, 640, 526, 0, 480);
+ screen.set_screen_update("vga", FUNC(vga_device::screen_update));
+
+ VGA(config, "vga", 0).set_screen("screen");
+}
+
+void pcat_base_state::pcvideo_trident_vga(machine_config &config)
+{
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_raw(25.1748_MHz_XTAL, 900, 0, 640, 526, 0, 480);
+ screen.set_screen_update("vga", FUNC(trident_vga_device::screen_update));
+
+ TRIDENT_VGA(config, "vga", 0).set_screen("screen");
+}
+
+void pcat_base_state::pcvideo_s3_vga(machine_config &config)
+{
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_raw(25.1748_MHz_XTAL, 900, 0, 640, 526, 0, 480);
+ screen.set_screen_update("vga", FUNC(s3_vga_device::screen_update));
+
+ S3_VGA(config, "vga", 0).set_screen("screen");
+}
+
+
+void pcat_base_state::pcvideo_cirrus_gd5428(machine_config &config)
+{
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_raw(25.1748_MHz_XTAL, 900, 0, 640, 526, 0, 480);
+ screen.set_screen_update("vga", FUNC(cirrus_gd5428_device::screen_update));
+
+ CIRRUS_GD5428(config, "vga", 0).set_screen("screen");
+}
+
+void pcat_base_state::pcvideo_cirrus_gd5430(machine_config &config)
+{
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_raw(25.1748_MHz_XTAL, 900, 0, 640, 526, 0, 480);
+ screen.set_screen_update("vga", FUNC(cirrus_gd5430_device::screen_update));
+
+ CIRRUS_GD5430(config, "vga", 0).set_screen("screen");
+}
void pcat_base_state::pcat_common(machine_config &config)
{
diff --git a/src/mame/machine/pgmprot_igs025_igs012.cpp b/src/mame/machine/pgmprot_igs025_igs012.cpp
index a188ce5bc95..0fd73fab0f9 100644
--- a/src/mame/machine/pgmprot_igs025_igs012.cpp
+++ b/src/mame/machine/pgmprot_igs025_igs012.cpp
@@ -133,17 +133,17 @@ void pgm_012_025_state::drgw2_mem(address_map &map)
map(0xd00000, 0xd00fff).noprw(); // Written, but never read back? Related to the protection device? - IGS012?
}
-MACHINE_CONFIG_START(pgm_012_025_state::pgm_012_025_drgw2)
+void pgm_012_025_state::pgm_012_025_drgw2(machine_config &config)
+{
pgmbase(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(drgw2_mem)
+ m_maincpu->set_addrmap(AS_PROGRAM, &pgm_012_025_state::drgw2_mem);
IGS025(config, m_igs025, 0);
//m_igs025->set_external_cb(FUNC(pgm_022_025_state::igs025_to_igs012_callback), this);
MCFG_MACHINE_RESET_OVERRIDE(pgm_012_025_state,drgw2)
-MACHINE_CONFIG_END
+}
void pgm_012_025_state::init_drgw2()
diff --git a/src/mame/machine/pgmprot_igs025_igs022.cpp b/src/mame/machine/pgmprot_igs025_igs022.cpp
index 1fa7ac4a75e..95b51171b27 100644
--- a/src/mame/machine/pgmprot_igs025_igs022.cpp
+++ b/src/mame/machine/pgmprot_igs025_igs022.cpp
@@ -375,28 +375,30 @@ void pgm_022_025_state::killbld_mem(address_map &map)
}
-MACHINE_CONFIG_START(pgm_022_025_state::pgm_022_025)
+void pgm_022_025_state::pgm_022_025(machine_config &config)
+{
pgmbase(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(killbld_mem)
+ m_maincpu->set_addrmap(AS_PROGRAM, &pgm_022_025_state::killbld_mem);
IGS025(config, m_igs025, 0);
m_igs025->set_external_cb(FUNC(pgm_022_025_state::igs025_to_igs022_callback), this);
IGS022(config, m_igs022, 0);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(pgm_022_025_state::pgm_022_025_dw3)
+void pgm_022_025_state::pgm_022_025_dw3(machine_config &config)
+{
pgm_022_025(config);
MCFG_MACHINE_RESET_OVERRIDE(pgm_022_025_state, dw3)
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(pgm_022_025_state::pgm_022_025_killbld)
+void pgm_022_025_state::pgm_022_025_killbld(machine_config &config)
+{
pgm_022_025(config);
MCFG_MACHINE_RESET_OVERRIDE(pgm_022_025_state, killbld)
-MACHINE_CONFIG_END
+}
INPUT_PORTS_START( killbld )
diff --git a/src/mame/machine/pgmprot_igs025_igs028.cpp b/src/mame/machine/pgmprot_igs025_igs028.cpp
index cc95946766d..d7f9214d947 100644
--- a/src/mame/machine/pgmprot_igs025_igs028.cpp
+++ b/src/mame/machine/pgmprot_igs025_igs028.cpp
@@ -186,11 +186,11 @@ void pgm_028_025_state::igs025_to_igs028_callback( void )
}
-MACHINE_CONFIG_START(pgm_028_025_state::pgm_028_025_ol)
+void pgm_028_025_state::pgm_028_025_ol(machine_config &config)
+{
pgmbase(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(olds_mem)
+ m_maincpu->set_addrmap(AS_PROGRAM, &pgm_028_025_state::olds_mem);
IGS025(config, m_igs025, 0);
m_igs025->set_external_cb(FUNC(pgm_028_025_state::igs025_to_igs028_callback), this);
@@ -198,7 +198,7 @@ MACHINE_CONFIG_START(pgm_028_025_state::pgm_028_025_ol)
IGS028(config, m_igs028, 0);
MCFG_MACHINE_RESET_OVERRIDE(pgm_028_025_state,olds)
-MACHINE_CONFIG_END
+}
INPUT_PORTS_START( olds )
diff --git a/src/mame/machine/pgmprot_igs027a_type1.cpp b/src/mame/machine/pgmprot_igs027a_type1.cpp
index 151f2def734..54a2bbd72dc 100644
--- a/src/mame/machine/pgmprot_igs027a_type1.cpp
+++ b/src/mame/machine/pgmprot_igs027a_type1.cpp
@@ -215,38 +215,37 @@ MACHINE_START_MEMBER(pgm_arm_type1_state,pgm_arm_type1)
save_item(NAME(m_slots));
}
-MACHINE_CONFIG_START(pgm_arm_type1_state::pgm_arm_type1_cave)
+void pgm_arm_type1_state::pgm_arm_type1_cave(machine_config &config)
+{
pgmbase(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(cavepgm_mem)
+ m_maincpu->set_addrmap(AS_PROGRAM, &pgm_arm_type1_state::cavepgm_mem);
MCFG_MACHINE_START_OVERRIDE(pgm_arm_type1_state, pgm_arm_type1 )
- MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_REFRESH_RATE(59.17) // verified on pcb
-MACHINE_CONFIG_END
+ subdevice<screen_device>("screen")->set_refresh_hz(59.17); // verified on pcb
+}
-MACHINE_CONFIG_START(pgm_arm_type1_state::pgm_arm_type1_sim)
+void pgm_arm_type1_state::pgm_arm_type1_sim(machine_config &config)
+{
pgm_arm_type1_cave(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(kov_sim_map)
+ m_maincpu->set_addrmap(AS_PROGRAM, &pgm_arm_type1_state::kov_sim_map);
/* protection CPU */
- MCFG_DEVICE_ADD("prot", ARM7, 20000000 ) // 55857E?
- MCFG_DEVICE_PROGRAM_MAP(_55857E_arm7_map)
- MCFG_DEVICE_DISABLE()
-MACHINE_CONFIG_END
+ ARM7(config, m_prot, 20000000); // 55857E?
+ m_prot->set_addrmap(AS_PROGRAM, &pgm_arm_type1_state::_55857E_arm7_map);
+ m_prot->set_disable();
+}
-MACHINE_CONFIG_START(pgm_arm_type1_state::pgm_arm_type1)
+void pgm_arm_type1_state::pgm_arm_type1(machine_config &config)
+{
pgm_arm_type1_cave(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(kov_map)
+ m_maincpu->set_addrmap(AS_PROGRAM, &pgm_arm_type1_state::kov_map);
/* protection CPU */
- MCFG_DEVICE_ADD("prot", ARM7, 20000000) // 55857E?
- MCFG_DEVICE_PROGRAM_MAP(_55857E_arm7_map)
-MACHINE_CONFIG_END
+ ARM7(config, m_prot, 20000000); // 55857E?
+ m_prot->set_addrmap(AS_PROGRAM, &pgm_arm_type1_state::_55857E_arm7_map);
+}
void pgm_arm_type1_state::pgm_arm7_type1_latch_init()
{
diff --git a/src/mame/machine/pgmprot_igs027a_type2.cpp b/src/mame/machine/pgmprot_igs027a_type2.cpp
index fde207c1582..40f23f438a3 100644
--- a/src/mame/machine/pgmprot_igs027a_type2.cpp
+++ b/src/mame/machine/pgmprot_igs027a_type2.cpp
@@ -132,18 +132,18 @@ MACHINE_START_MEMBER(pgm_arm_type2_state,pgm_arm_type2)
/******* ARM 55857F *******/
-MACHINE_CONFIG_START(pgm_arm_type2_state::pgm_arm_type2)
+void pgm_arm_type2_state::pgm_arm_type2(machine_config &config)
+{
pgmbase(config);
MCFG_MACHINE_START_OVERRIDE(pgm_arm_type2_state, pgm_arm_type2 )
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(kov2_mem)
+ m_maincpu->set_addrmap(AS_PROGRAM, &pgm_arm_type2_state::kov2_mem);
/* protection CPU */
- MCFG_DEVICE_ADD("prot", ARM7, 20000000) // 55857F
- MCFG_DEVICE_PROGRAM_MAP(_55857F_arm7_map)
-MACHINE_CONFIG_END
+ ARM7(config, m_prot, 20000000); // 55857F
+ m_prot->set_addrmap(AS_PROGRAM, &pgm_arm_type2_state::_55857F_arm7_map);
+}
diff --git a/src/mame/machine/pgmprot_igs027a_type3.cpp b/src/mame/machine/pgmprot_igs027a_type3.cpp
index a1ff65d223a..cea87b7fcab 100644
--- a/src/mame/machine/pgmprot_igs027a_type3.cpp
+++ b/src/mame/machine/pgmprot_igs027a_type3.cpp
@@ -190,20 +190,20 @@ MACHINE_START_MEMBER(pgm_arm_type3_state,pgm_arm_type3)
/******* ARM 55857G *******/
-MACHINE_CONFIG_START(pgm_arm_type3_state::pgm_arm_type3)
+void pgm_arm_type3_state::pgm_arm_type3(machine_config &config)
+{
pgmbase(config);
MCFG_MACHINE_START_OVERRIDE(pgm_arm_type3_state, pgm_arm_type3 )
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(svg_68k_mem)
+ m_maincpu->set_addrmap(AS_PROGRAM, &pgm_arm_type3_state::svg_68k_mem);
/* protection CPU */
- MCFG_DEVICE_ADD("prot", ARM7, XTAL(33'000'000)) // 55857G - 33Mhz Xtal, at least on SVG
- MCFG_DEVICE_PROGRAM_MAP(_55857G_arm7_map)
+ ARM7(config, m_prot, XTAL(33'000'000)); // 55857G - 33Mhz Xtal, at least on SVG
+ m_prot->set_addrmap(AS_PROGRAM, &pgm_arm_type3_state::_55857G_arm7_map);
MCFG_MACHINE_RESET_OVERRIDE(pgm_arm_type3_state, pgm_arm_type3_reset)
-MACHINE_CONFIG_END
+}
diff --git a/src/zexall/zexall.cpp b/src/zexall/zexall.cpp
index f05b20ca12f..f9fff9b2526 100644
--- a/src/zexall/zexall.cpp
+++ b/src/zexall/zexall.cpp
@@ -141,11 +141,12 @@ INPUT_PORTS_END
Machine Drivers
******************************************************************************/
-MACHINE_CONFIG_START(zexall_state::zexall)
+void zexall_state::zexall(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, XTAL(3'579'545))
- MCFG_DEVICE_PROGRAM_MAP(z80_mem)
-MACHINE_CONFIG_END
+ Z80(config, m_maincpu, XTAL(3'579'545));
+ m_maincpu->set_addrmap(AS_PROGRAM, &zexall_state::z80_mem);
+}
/******************************************************************************