summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Ivan Vangelista <mesgnet@yahoo.it>2019-03-20 18:31:15 +0100
committer Ivan Vangelista <mesgnet@yahoo.it>2019-03-20 18:31:15 +0100
commit1e6d972d74f2839858aabf12443567b038709ff5 (patch)
tree4afb1e94d6b79b217d05786e28754a737b9b8c7b
parente2f3b86caa46b960b8ec045a8a4428260ada6b7d (diff)
src\mame: removed most MCFG and MACHINE_CONFIG macros from drivers starting with d (nw)
-rw-r--r--src/mame/drivers/d6800.cpp18
-rw-r--r--src/mame/drivers/d9final.cpp33
-rw-r--r--src/mame/drivers/dai.cpp27
-rw-r--r--src/mame/drivers/dambustr.cpp21
-rw-r--r--src/mame/drivers/darkmist.cpp27
-rw-r--r--src/mame/drivers/darkseal.cpp39
-rw-r--r--src/mame/drivers/daruma.cpp16
-rw-r--r--src/mame/drivers/dassault.cpp46
-rw-r--r--src/mame/drivers/datum.cpp11
-rw-r--r--src/mame/drivers/dblcrown.cpp26
-rw-r--r--src/mame/drivers/dblewing.cpp37
-rw-r--r--src/mame/drivers/dbz.cpp36
-rw-r--r--src/mame/drivers/dccons.cpp25
-rw-r--r--src/mame/drivers/dday.cpp24
-rw-r--r--src/mame/drivers/ddayjlc.cpp30
-rw-r--r--src/mame/drivers/ddealer.cpp31
-rw-r--r--src/mame/drivers/ddenlovr.cpp207
-rw-r--r--src/mame/drivers/ddragon3.cpp104
-rw-r--r--src/mame/drivers/ddribble.cpp57
-rw-r--r--src/mame/drivers/deco156.cpp66
-rw-r--r--src/mame/drivers/deco_mlc.cpp70
-rw-r--r--src/mame/drivers/decocass.cpp177
-rw-r--r--src/mame/drivers/decstation.cpp10
-rw-r--r--src/mame/drivers/decwritr.cpp35
-rw-r--r--src/mame/drivers/deshoros.cpp26
-rw-r--r--src/mame/drivers/destroyr.cpp24
-rw-r--r--src/mame/drivers/dfruit.cpp28
-rw-r--r--src/mame/drivers/dgpix.cpp25
-rw-r--r--src/mame/drivers/diablo1300.cpp11
-rw-r--r--src/mame/drivers/dietgo.cpp31
-rw-r--r--src/mame/drivers/digel804.cpp14
-rw-r--r--src/mame/drivers/digijet.cpp9
-rw-r--r--src/mame/drivers/dim68k.cpp24
-rw-r--r--src/mame/drivers/divebomb.cpp42
-rw-r--r--src/mame/drivers/diverboy.cpp33
-rw-r--r--src/mame/drivers/djboy.cpp64
-rw-r--r--src/mame/drivers/djmain.cpp58
-rw-r--r--src/mame/drivers/dkmb.cpp24
-rw-r--r--src/mame/drivers/dkong.cpp84
-rw-r--r--src/mame/drivers/dlair2.cpp28
-rw-r--r--src/mame/drivers/dmax8000.cpp11
-rw-r--r--src/mame/drivers/dmndrby.cpp31
-rw-r--r--src/mame/drivers/dms5000.cpp27
-rw-r--r--src/mame/drivers/dogfgt.cpp30
-rw-r--r--src/mame/drivers/dominob.cpp28
-rw-r--r--src/mame/drivers/dooyong.cpp294
-rw-r--r--src/mame/drivers/dorachan.cpp24
-rw-r--r--src/mame/drivers/dotrikun.cpp23
-rw-r--r--src/mame/drivers/dragon.cpp63
-rw-r--r--src/mame/drivers/dragrace.cpp30
-rw-r--r--src/mame/drivers/dreambal.cpp30
-rw-r--r--src/mame/drivers/dreamwld.cpp58
-rw-r--r--src/mame/drivers/drgnmst.cpp36
-rw-r--r--src/mame/drivers/dribling.cpp30
-rw-r--r--src/mame/drivers/drtomy.cpp29
-rw-r--r--src/mame/drivers/drw80pkr.cpp19
-rw-r--r--src/mame/drivers/dual68.cpp23
-rw-r--r--src/mame/drivers/duet16.cpp17
-rw-r--r--src/mame/drivers/dunhuang.cpp33
-rw-r--r--src/mame/drivers/dvk_kcgd.cpp13
-rw-r--r--src/mame/drivers/dvk_ksm.cpp13
-rw-r--r--src/mame/drivers/dynadice.cpp32
-rw-r--r--src/mame/includes/dragrace.h2
63 files changed, 1310 insertions, 1284 deletions
diff --git a/src/mame/drivers/d6800.cpp b/src/mame/drivers/d6800.cpp
index 005868fdd12..fac7892b7b5 100644
--- a/src/mame/drivers/d6800.cpp
+++ b/src/mame/drivers/d6800.cpp
@@ -408,17 +408,17 @@ QUICKLOAD_LOAD_MEMBER( d6800_state, d6800 )
MACHINE_CONFIG_START(d6800_state::d6800)
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu",M6800, XTAL(4'000'000)/4)
- MCFG_DEVICE_PROGRAM_MAP(d6800_map)
+ M6800(config, m_maincpu, XTAL(4'000'000)/4);
+ m_maincpu->set_addrmap(AS_PROGRAM, &d6800_state::d6800_map);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_SIZE(64, 32)
- MCFG_SCREEN_VISIBLE_AREA(0, 63, 0, 31)
- MCFG_SCREEN_UPDATE_DRIVER(d6800_state, screen_update_d6800)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(25))
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(50);
+ screen.set_size(64, 32);
+ screen.set_visarea_full();
+ screen.set_screen_update(FUNC(d6800_state::screen_update_d6800));
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(25));
+ screen.set_palette("palette");
PALETTE(config, "palette", palette_device::MONOCHROME);
diff --git a/src/mame/drivers/d9final.cpp b/src/mame/drivers/d9final.cpp
index c91d37e472a..7590a51ce4b 100644
--- a/src/mame/drivers/d9final.cpp
+++ b/src/mame/drivers/d9final.cpp
@@ -302,37 +302,36 @@ void d9final_state::machine_start()
membank("bank1")->set_entry(0);
}
-MACHINE_CONFIG_START(d9final_state::d9final)
+void d9final_state::d9final(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, 24000000/4)/* ? MHz */
- MCFG_DEVICE_PROGRAM_MAP(d9final_map)
- MCFG_DEVICE_IO_MAP(d9final_io)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", d9final_state, irq0_line_hold)
+ Z80(config, m_maincpu, 24000000/4); /* ? MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &d9final_state::d9final_map);
+ m_maincpu->set_addrmap(AS_IO, &d9final_state::d9final_io);
+ m_maincpu->set_vblank_int("screen", FUNC(d9final_state::irq0_line_hold));
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); // Sharp LH5116D-10 + battery
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(512, 256)
- MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 16, 256-16-1)
- MCFG_SCREEN_UPDATE_DRIVER(d9final_state, screen_update)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(512, 256);
+ screen.set_visarea(0, 512-1, 16, 256-16-1);
+ screen.set_screen_update(FUNC(d9final_state::screen_update));
+ screen.set_palette("palette");
GFXDECODE(config, m_gfxdecode, "palette", gfx_d9final);
PALETTE(config, "palette", palette_device::BLACK).set_format(palette_device::xBRG_444, 0x400);
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("ymsnd", YM2413, XTAL(3'579'545))
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5)
+ YM2413(config, "ymsnd", XTAL(3'579'545)).add_route(ALL_OUTPUTS, "mono", 0.5);
- //MCFG_DEVICE_ADD("essnd", ES8712, 24000000/3) // clock unknown
- //MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
+ //ES8712(config, "essnd", 24000000/3).add_route(ALL_OUTPUTS, "mono", 1.0); // clock unknown
RTC62421(config, "rtc", XTAL(32'768)); // internal oscillator
-MACHINE_CONFIG_END
+}
ROM_START( d9final )
diff --git a/src/mame/drivers/dai.cpp b/src/mame/drivers/dai.cpp
index e06e90ba308..9791381e4c0 100644
--- a/src/mame/drivers/dai.cpp
+++ b/src/mame/drivers/dai.cpp
@@ -187,12 +187,13 @@ static GFXDECODE_START( gfx_dai )
GFXDECODE_END
/* machine definition */
-MACHINE_CONFIG_START(dai_state::dai)
+void dai_state::dai(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", I8080, 2000000)
- MCFG_DEVICE_PROGRAM_MAP(dai_mem)
- MCFG_DEVICE_IO_MAP(dai_io)
- MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(dai_state,int_ack)
+ I8080(config, m_maincpu, 2000000);
+ m_maincpu->set_addrmap(AS_PROGRAM, &dai_state::dai_mem);
+ m_maincpu->set_addrmap(AS_IO, &dai_state::dai_io);
+ m_maincpu->set_irq_acknowledge_callback(FUNC(dai_state::int_ack));
config.m_minimum_quantum = attotime::from_hz(60);
PIT8253(config, m_pit, 0);
@@ -206,13 +207,13 @@ MACHINE_CONFIG_START(dai_state::dai)
I8255(config, "ppi8255");
/* 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(1056, 542)
- MCFG_SCREEN_VISIBLE_AREA(0, 1056-1, 0, 302-1)
- MCFG_SCREEN_UPDATE_DRIVER(dai_state, screen_update_dai)
- 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(1056, 542);
+ screen.set_visarea(0, 1056-1, 0, 302-1);
+ screen.set_screen_update(FUNC(dai_state::screen_update_dai));
+ screen.set_palette(m_palette);
GFXDECODE(config, "gfxdecode", m_palette, gfx_dai);
PALETTE(config, m_palette, FUNC(dai_state::dai_palette), ARRAY_LENGTH(s_palette));
@@ -241,7 +242,7 @@ MACHINE_CONFIG_START(dai_state::dai)
/* software lists */
SOFTWARE_LIST(config, "cass_list").set_original("dai_cass");
-MACHINE_CONFIG_END
+}
ROM_START(dai)
diff --git a/src/mame/drivers/dambustr.cpp b/src/mame/drivers/dambustr.cpp
index 42b6fdc1f75..9c185d0b378 100644
--- a/src/mame/drivers/dambustr.cpp
+++ b/src/mame/drivers/dambustr.cpp
@@ -261,10 +261,11 @@ void dambustr_state::init_dambustr()
-MACHINE_CONFIG_START(dambustr_state::dambustr)
+void dambustr_state::dambustr(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, 18432000/6) /* 3.072 MHz */
- MCFG_DEVICE_PROGRAM_MAP(dambustr_map)
+ Z80(config, m_maincpu, 18432000/6); /* 3.072 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &dambustr_state::dambustr_map);
MCFG_MACHINE_RESET_OVERRIDE(dambustr_state,galaxold)
@@ -276,12 +277,12 @@ MACHINE_CONFIG_START(dambustr_state::dambustr)
WATCHDOG_TIMER(config, "watchdog");
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(16000.0/132/2)
- 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(dambustr_state, screen_update_dambustr)
- MCFG_SCREEN_PALETTE(m_palette)
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_refresh_hz(16000.0/132/2);
+ m_screen->set_size(32*8, 32*8);
+ m_screen->set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
+ m_screen->set_screen_update(FUNC(dambustr_state::screen_update_dambustr));
+ m_screen->set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_dambustr);
PALETTE(config, m_palette, FUNC(dambustr_state::dambustr_palette), 32+2+64+8); // 32 for the characters, 2 for the bullets, 64 for the stars, 8 for the background
@@ -292,7 +293,7 @@ MACHINE_CONFIG_START(dambustr_state::dambustr)
SPEAKER(config, "speaker").front_center();
galaxian_audio(config);
-MACHINE_CONFIG_END
+}
ROM_START( dambustr )
diff --git a/src/mame/drivers/darkmist.cpp b/src/mame/drivers/darkmist.cpp
index 36306862d63..58cd566b3e6 100644
--- a/src/mame/drivers/darkmist.cpp
+++ b/src/mame/drivers/darkmist.cpp
@@ -239,23 +239,24 @@ TIMER_DEVICE_CALLBACK_MEMBER(darkmist_state::scanline)
-MACHINE_CONFIG_START(darkmist_state::darkmist)
+void darkmist_state::darkmist(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80,4000000) /* ? MHz */
- MCFG_DEVICE_PROGRAM_MAP(memmap)
- MCFG_DEVICE_OPCODES_MAP(decrypted_opcodes_map)
+ Z80(config, m_maincpu, 4000000); /* ? MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &darkmist_state::memmap);
+ m_maincpu->set_addrmap(AS_OPCODES, &darkmist_state::decrypted_opcodes_map);
TIMER(config, "scantimer").configure_scanline(FUNC(darkmist_state::scanline), "screen", 0, 1);
- MCFG_DEVICE_ADD("t5182", T5182, 0)
+ T5182(config, m_t5182, 0);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(256, 256)
- MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 256-16-1)
- MCFG_SCREEN_UPDATE_DRIVER(darkmist_state, screen_update)
- MCFG_SCREEN_PALETTE(m_palette)
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_refresh_hz(60);
+ m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ m_screen->set_size(256, 256);
+ m_screen->set_visarea(0, 256-1, 16, 256-16-1);
+ m_screen->set_screen_update(FUNC(darkmist_state::screen_update));
+ m_screen->set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_darkmist);
PALETTE(config, m_palette, FUNC(darkmist_state::darkmist_palette));
@@ -269,7 +270,7 @@ MACHINE_CONFIG_START(darkmist_state::darkmist)
ymsnd.irq_handler().set(m_t5182, FUNC(t5182_device::ym2151_irq_handler));
ymsnd.add_route(0, "mono", 1.0);
ymsnd.add_route(1, "mono", 1.0);
-MACHINE_CONFIG_END
+}
ROM_START( darkmist )
ROM_REGION( 0x18000, "maincpu", 0 )
diff --git a/src/mame/drivers/darkseal.cpp b/src/mame/drivers/darkseal.cpp
index 836a9e017b0..71fe922f2bd 100644
--- a/src/mame/drivers/darkseal.cpp
+++ b/src/mame/drivers/darkseal.cpp
@@ -201,30 +201,30 @@ GFXDECODE_END
/******************************************************************************/
-MACHINE_CONFIG_START(darkseal_state::darkseal)
-
+void darkseal_state::darkseal(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD(m_maincpu, M68000, XTAL(24'000'000)/2) /* Custom chip 59 */
- MCFG_DEVICE_PROGRAM_MAP(darkseal_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", darkseal_state, irq6_line_assert)/* VBL */
+ M68000(config, m_maincpu, XTAL(24'000'000)/2); /* Custom chip 59 */
+ m_maincpu->set_addrmap(AS_PROGRAM, &darkseal_state::darkseal_map);
+ m_maincpu->set_vblank_int("screen", FUNC(darkseal_state::irq6_line_assert)); /* VBL */
H6280(config, m_audiocpu, XTAL(32'220'000)/4); /* Custom chip 45, Audio section crystal is 32.220 MHz */
m_audiocpu->set_addrmap(AS_PROGRAM, &darkseal_state::sound_map);
m_audiocpu->add_route(ALL_OUTPUTS, "mono", 0); // internal sound unused
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(58)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529))
- MCFG_SCREEN_SIZE(32*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(darkseal_state, screen_update)
- MCFG_SCREEN_PALETTE("colors")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(58);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(529));
+ screen.set_size(32*8, 32*8);
+ screen.set_visarea(0*8, 32*8-1, 1*8, 31*8-1);
+ screen.set_screen_update(FUNC(darkseal_state::screen_update));
+ screen.set_palette(m_palette);
GFXDECODE(config, "gfxdecode", m_palette, gfx_darkseal);
- MCFG_PALETTE_ADD(m_palette, 2048)
+ PALETTE(config, m_palette).set_entries(2048);
- MCFG_DEVICE_ADD(m_spriteram, BUFFERED_SPRITERAM16)
+ BUFFERED_SPRITERAM16(config, m_spriteram);
DECO16IC(config, m_deco_tilegen[0], 0);
m_deco_tilegen[0]->set_split(0);
@@ -264,20 +264,17 @@ MACHINE_CONFIG_START(darkseal_state::darkseal)
GENERIC_LATCH_8(config, m_soundlatch);
m_soundlatch->data_pending_callback().set_inputline(m_audiocpu, 0);
- MCFG_DEVICE_ADD("ym1", YM2203, XTAL(32'220'000)/8)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.45)
+ YM2203(config, "ym1", XTAL(32'220'000)/8).add_route(ALL_OUTPUTS, "mono", 0.45);
ym2151_device &ym2(YM2151(config, "ym2", XTAL(32'220'000)/9));
ym2.irq_handler().set_inputline(m_audiocpu, 1); // IRQ2
ym2.add_route(0, "mono", 0.55);
ym2.add_route(1, "mono", 0.55);
- MCFG_DEVICE_ADD("oki1", OKIM6295, XTAL(32'220'000)/32, okim6295_device::PIN7_HIGH)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
+ OKIM6295(config, "oki1", XTAL(32'220'000)/32, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 1.0);
- MCFG_DEVICE_ADD("oki2", OKIM6295, XTAL(32'220'000)/16, okim6295_device::PIN7_HIGH)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60)
-MACHINE_CONFIG_END
+ OKIM6295(config, "oki2", XTAL(32'220'000)/16, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.60);
+}
/******************************************************************************/
diff --git a/src/mame/drivers/daruma.cpp b/src/mame/drivers/daruma.cpp
index 2a4946ba9fb..1ac8fd665f1 100644
--- a/src/mame/drivers/daruma.cpp
+++ b/src/mame/drivers/daruma.cpp
@@ -118,17 +118,17 @@ static INPUT_PORTS_START( daruma )
INPUT_PORTS_END
-MACHINE_CONFIG_START(daruma_state::daruma)
+void daruma_state::daruma(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", I80C32,11059200) //verified on pcb
- MCFG_DEVICE_PROGRAM_MAP(mem_prg)
- MCFG_DEVICE_IO_MAP(mem_io)
+ I80C32(config, m_maincpu, 11059200); //verified on pcb
+ m_maincpu->set_addrmap(AS_PROGRAM, &daruma_state::mem_prg);
+ m_maincpu->set_addrmap(AS_IO, &daruma_state::mem_io);
// TODO: ports
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND)
- MCFG_SOUND_ROUTE(0, "mono", 1.00)
+ SPEAKER_SOUND(config, m_speaker).add_route(0, "mono", 1.00);
/* TODO:
config.set_default_layout(layout_daruma);
@@ -136,9 +136,9 @@ MACHINE_CONFIG_START(daruma_state::daruma)
Motors: MTA011
http://pdf.datasheetcatalog.com/datasheet/Shindengen/mXstzvq.pdf
- The motor controller suposedly is used to cut the paper strip out after finishing printing something.
+ The motor controller supposedly is used to cut the paper strip out after finishing printing something.
*/
-MACHINE_CONFIG_END
+}
ROM_START( ds348 )
ROM_REGION( 0x10000, "maincpu", 0 )
diff --git a/src/mame/drivers/dassault.cpp b/src/mame/drivers/dassault.cpp
index 6addb4cf626..8ede1f49abb 100644
--- a/src/mame/drivers/dassault.cpp
+++ b/src/mame/drivers/dassault.cpp
@@ -522,16 +522,16 @@ void dassault_state::machine_reset()
m_priority = 0;
}
-MACHINE_CONFIG_START(dassault_state::dassault)
-
+void dassault_state::dassault(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, XTAL(28'000'000)/2) /* 14MHz - Accurate */
- MCFG_DEVICE_PROGRAM_MAP(dassault_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", dassault_state, irq4_line_assert)
+ M68000(config, m_maincpu, XTAL(28'000'000)/2); /* 14MHz - Accurate */
+ m_maincpu->set_addrmap(AS_PROGRAM, &dassault_state::dassault_map);
+ m_maincpu->set_vblank_int("screen", FUNC(dassault_state::irq4_line_assert));
- MCFG_DEVICE_ADD("sub", M68000, XTAL(28'000'000)/2) /* 14MHz - Accurate */
- MCFG_DEVICE_PROGRAM_MAP(dassault_sub_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", dassault_state, irq5_line_assert)
+ M68000(config, m_subcpu, XTAL(28'000'000)/2); /* 14MHz - Accurate */
+ m_subcpu->set_addrmap(AS_PROGRAM, &dassault_state::dassault_sub_map);
+ m_subcpu->set_vblank_int("screen", FUNC(dassault_state::irq5_line_assert));
H6280(config, m_audiocpu, XTAL(32'220'000)/8); /* Accurate */
m_audiocpu->set_addrmap(AS_PROGRAM, &dassault_state::sound_map);
@@ -546,15 +546,15 @@ MACHINE_CONFIG_START(dassault_state::dassault)
sharedram.intr_callback().set_inputline("sub", M68K_IRQ_6);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_RAW_PARAMS(XTAL(28'000'000) / 4, 442, 0, 320, 274, 8, 248) // same as robocop2(cninja.cpp)? verify this from real pcb.
- MCFG_SCREEN_UPDATE_DRIVER(dassault_state, screen_update_dassault)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_raw(XTAL(28'000'000) / 4, 442, 0, 320, 274, 8, 248); // same as robocop2(cninja.cpp)? verify this from real pcb.
+ screen.set_screen_update(FUNC(dassault_state::screen_update_dassault));
GFXDECODE(config, "gfxdecode", m_palette, gfx_dassault);
PALETTE(config, m_palette).set_format(palette_device::xBGR_888, 4096);
- MCFG_DEVICE_ADD("spriteram1", BUFFERED_SPRITERAM16)
- MCFG_DEVICE_ADD("spriteram2", BUFFERED_SPRITERAM16)
+ BUFFERED_SPRITERAM16(config, m_spriteram[0]);
+ BUFFERED_SPRITERAM16(config, m_spriteram[1]);
DECO16IC(config, m_deco_tilegen[0], 0);
m_deco_tilegen[0]->set_split(0);
@@ -603,9 +603,9 @@ MACHINE_CONFIG_START(dassault_state::dassault)
GENERIC_LATCH_8(config, m_soundlatch);
m_soundlatch->data_pending_callback().set_inputline(m_audiocpu, 0); // IRQ1
- MCFG_DEVICE_ADD("ym1", YM2203, XTAL(32'220'000)/8)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.40)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.40)
+ ym2203_device &ym1(YM2203(config, "ym1", XTAL(32'220'000)/8));
+ ym1.add_route(ALL_OUTPUTS, "lspeaker", 0.40);
+ ym1.add_route(ALL_OUTPUTS, "rspeaker", 0.40);
ym2151_device &ym2(YM2151(config, "ym2", XTAL(32'220'000)/9));
ym2.irq_handler().set_inputline(m_audiocpu, 1);
@@ -613,14 +613,14 @@ MACHINE_CONFIG_START(dassault_state::dassault)
ym2.add_route(0, "lspeaker", 0.45);
ym2.add_route(1, "rspeaker", 0.45);
- MCFG_DEVICE_ADD("oki1", OKIM6295, XTAL(32'220'000)/32, okim6295_device::PIN7_HIGH) // verified
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.50)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.50)
+ okim6295_device &oki1(OKIM6295(config, "oki1", XTAL(32'220'000)/32, okim6295_device::PIN7_HIGH)); // verified
+ oki1.add_route(ALL_OUTPUTS, "lspeaker", 0.50);
+ oki1.add_route(ALL_OUTPUTS, "rspeaker", 0.50);
- MCFG_DEVICE_ADD("oki2", OKIM6295, XTAL(32'220'000)/16, okim6295_device::PIN7_HIGH) // verified
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.25)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.25)
-MACHINE_CONFIG_END
+ OKIM6295(config, m_oki2, XTAL(32'220'000)/16, okim6295_device::PIN7_HIGH); // verified
+ m_oki2->add_route(ALL_OUTPUTS, "lspeaker", 0.25);
+ m_oki2->add_route(ALL_OUTPUTS, "rspeaker", 0.25);
+}
/**********************************************************************************/
diff --git a/src/mame/drivers/datum.cpp b/src/mame/drivers/datum.cpp
index d774b737b66..6b957acd9a1 100644
--- a/src/mame/drivers/datum.cpp
+++ b/src/mame/drivers/datum.cpp
@@ -182,10 +182,11 @@ WRITE8_MEMBER( datum_state::pb_w )
}
-MACHINE_CONFIG_START(datum_state::datum)
+void datum_state::datum(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu",M6802, XTAL(4'000'000)) // internally divided to 1 MHz
- MCFG_DEVICE_PROGRAM_MAP(datum_mem)
+ M6802(config, m_maincpu, XTAL(4'000'000)); // internally divided to 1 MHz
+ m_maincpu->set_addrmap(AS_PROGRAM, &datum_state::datum_mem);
/* video hardware */
config.set_default_layout(layout_datum);
@@ -202,8 +203,8 @@ MACHINE_CONFIG_START(datum_state::datum)
pia2.irqa_handler().set_inputline("maincpu", M6802_IRQ_LINE);
pia2.irqb_handler().set_inputline("maincpu", M6802_IRQ_LINE);
- MCFG_DEVICE_ADD("acia", ACIA6850, 0) // rs232
-MACHINE_CONFIG_END
+ ACIA6850(config, "acia", 0); // rs232
+}
/* ROM definition */
diff --git a/src/mame/drivers/dblcrown.cpp b/src/mame/drivers/dblcrown.cpp
index b4169a16577..55eab934533 100644
--- a/src/mame/drivers/dblcrown.cpp
+++ b/src/mame/drivers/dblcrown.cpp
@@ -599,24 +599,24 @@ It needs at least 64 instances because 0xa05b will be eventually nuked by the vb
}
-MACHINE_CONFIG_START(dblcrown_state::dblcrown)
-
+void dblcrown_state::dblcrown(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, CPU_CLOCK)
- MCFG_DEVICE_PROGRAM_MAP(dblcrown_map)
- MCFG_DEVICE_IO_MAP(dblcrown_io)
+ Z80(config, m_maincpu, CPU_CLOCK);
+ m_maincpu->set_addrmap(AS_PROGRAM, &dblcrown_state::dblcrown_map);
+ m_maincpu->set_addrmap(AS_IO, &dblcrown_state::dblcrown_io);
TIMER(config, "scantimer").configure_scanline(FUNC(dblcrown_state::dblcrown_irq_scanline), "screen", 0, 1);
WATCHDOG_TIMER(config, m_watchdog).set_time(attotime::from_msec(1000)); /* 1000 ms. (minimal of MAX693A watchdog long timeout period with internal oscillator) */
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
- MCFG_SCREEN_UPDATE_DRIVER(dblcrown_state, screen_update)
- MCFG_SCREEN_SIZE(64*8, 64*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_PALETTE(m_palette)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500));
+ screen.set_screen_update(FUNC(dblcrown_state::screen_update));
+ screen.set_size(64*8, 64*8);
+ screen.set_visarea(0*8, 40*8-1, 2*8, 30*8-1);
+ screen.set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_dblcrown);
@@ -632,7 +632,7 @@ MACHINE_CONFIG_START(dblcrown_state::dblcrown)
/* sound hardware */
SPEAKER(config, "mono").front_center();
YMZ284(config, "ymz", SND_CLOCK).add_route(ALL_OUTPUTS, "mono", 0.75);
-MACHINE_CONFIG_END
+}
/***************************************************************************
diff --git a/src/mame/drivers/dblewing.cpp b/src/mame/drivers/dblewing.cpp
index dc7ae8b18f6..8f45fc625a7 100644
--- a/src/mame/drivers/dblewing.cpp
+++ b/src/mame/drivers/dblewing.cpp
@@ -352,17 +352,17 @@ DECOSPR_PRIORITY_CB_MEMBER(dblewing_state::pri_callback)
return 0; // sprites always on top?
}
-MACHINE_CONFIG_START(dblewing_state::dblewing)
-
+void dblewing_state::dblewing(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, XTAL(28'000'000)/2) /* DE102 */
- MCFG_DEVICE_PROGRAM_MAP(dblewing_map)
- MCFG_DEVICE_OPCODES_MAP(decrypted_opcodes_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", dblewing_state, irq6_line_hold)
+ M68000(config, m_maincpu, XTAL(28'000'000)/2); /* DE102 */
+ m_maincpu->set_addrmap(AS_PROGRAM, &dblewing_state::dblewing_map);
+ m_maincpu->set_addrmap(AS_OPCODES, &dblewing_state::decrypted_opcodes_map);
+ m_maincpu->set_vblank_int("screen", FUNC(dblewing_state::irq6_line_hold));
- MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(32'220'000)/9)
- MCFG_DEVICE_PROGRAM_MAP(sound_map)
- MCFG_DEVICE_IO_MAP(sound_io)
+ Z80(config, m_audiocpu, XTAL(32'220'000)/9);
+ m_audiocpu->set_addrmap(AS_PROGRAM, &dblewing_state::sound_map);
+ m_audiocpu->set_addrmap(AS_IO, &dblewing_state::sound_io);
INPUT_MERGER_ANY_HIGH(config, "soundirq").output_handler().set_inputline(m_audiocpu, 0);
@@ -370,13 +370,13 @@ MACHINE_CONFIG_START(dblewing_state::dblewing)
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(58.443)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(dblewing_state, screen_update_dblewing)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(58.443);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */);
+ screen.set_size(64*8, 32*8);
+ screen.set_visarea(0*8, 40*8-1, 1*8, 31*8-1);
+ screen.set_screen_update(FUNC(dblewing_state::screen_update_dblewing));
+ screen.set_palette("palette");
PALETTE(config, "palette").set_format(palette_device::xBGR_444, 4096);
GFXDECODE(config, "gfxdecode", "palette", gfx_dblewing);
@@ -418,9 +418,8 @@ MACHINE_CONFIG_START(dblewing_state::dblewing)
ymsnd.irq_handler().set("soundirq", FUNC(input_merger_device::in_w<1>));
ymsnd.add_route(ALL_OUTPUTS, "mono", 1.0);
- MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(28'000'000)/28, okim6295_device::PIN7_HIGH)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
-MACHINE_CONFIG_END
+ OKIM6295(config, "oki", XTAL(28'000'000)/28, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 1.00);
+}
diff --git a/src/mame/drivers/dbz.cpp b/src/mame/drivers/dbz.cpp
index 392a6f667b7..2555c1aa644 100644
--- a/src/mame/drivers/dbz.cpp
+++ b/src/mame/drivers/dbz.cpp
@@ -324,25 +324,25 @@ void dbz_state::machine_reset()
m_control = 0;
}
-MACHINE_CONFIG_START(dbz_state::dbz)
-
+void dbz_state::dbz(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, 16000000)
- MCFG_DEVICE_PROGRAM_MAP(dbz_map)
+ M68000(config, m_maincpu, 16000000);
+ m_maincpu->set_addrmap(AS_PROGRAM, &dbz_state::dbz_map);
TIMER(config, "scantimer").configure_scanline(FUNC(dbz_state::dbz_scanline), "screen", 0, 1);
- MCFG_DEVICE_ADD("audiocpu", Z80, 4000000)
- MCFG_DEVICE_PROGRAM_MAP(dbz_sound_map)
- MCFG_DEVICE_IO_MAP(dbz_sound_io_map)
+ Z80(config, m_audiocpu, 4000000);
+ m_audiocpu->set_addrmap(AS_PROGRAM, &dbz_state::dbz_sound_map);
+ m_audiocpu->set_addrmap(AS_IO, &dbz_state::dbz_sound_io_map);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(55)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 40*8)
- MCFG_SCREEN_VISIBLE_AREA(0, 48*8-1, 0, 32*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(dbz_state, screen_update_dbz)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(55);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(64*8, 40*8);
+ screen.set_visarea(0, 48*8-1, 0, 32*8-1);
+ screen.set_screen_update(FUNC(dbz_state::screen_update_dbz));
+ screen.set_palette("palette");
GFXDECODE(config, m_gfxdecode, "palette", gfx_dbz);
@@ -382,10 +382,10 @@ MACHINE_CONFIG_START(dbz_state::dbz)
ymsnd.add_route(0, "lspeaker", 1.0);
ymsnd.add_route(1, "rspeaker", 1.0);
- MCFG_DEVICE_ADD("oki", OKIM6295, 1056000, okim6295_device::PIN7_HIGH)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0)
-MACHINE_CONFIG_END
+ okim6295_device &oki(OKIM6295(config, "oki", 1056000, okim6295_device::PIN7_HIGH));
+ oki.add_route(ALL_OUTPUTS, "lspeaker", 1.0);
+ oki.add_route(ALL_OUTPUTS, "rspeaker", 1.0);
+}
/**********************************************************************************/
diff --git a/src/mame/drivers/dccons.cpp b/src/mame/drivers/dccons.cpp
index e4c43a85cf1..062def2d2e3 100644
--- a/src/mame/drivers/dccons.cpp
+++ b/src/mame/drivers/dccons.cpp
@@ -593,7 +593,8 @@ void dc_cons_state::gdrom_config(device_t *device)
MCFG_SOUND_ROUTE(1, "^^aica", 1.0)
}
-MACHINE_CONFIG_START(dc_cons_state::dc)
+void dc_cons_state::dc(machine_config &config)
+{
/* basic machine hardware */
SH4LE(config, m_maincpu, CPU_CLOCK);
m_maincpu->set_md(0, 1);
@@ -611,8 +612,8 @@ MACHINE_CONFIG_START(dc_cons_state::dc)
TIMER(config, "scantimer").configure_scanline(FUNC(dc_state::dc_scanline), "screen", 0, 1);
- MCFG_DEVICE_ADD("soundcpu", ARM7, ((XTAL(33'868'800)*2)/3)/8) // AICA bus clock is 2/3rds * 33.8688. ARM7 gets 1 bus cycle out of each 8.
- MCFG_DEVICE_PROGRAM_MAP(dc_audio_map)
+ ARM7(config, m_soundcpu, ((XTAL(33'868'800)*2)/3)/8); // AICA bus clock is 2/3rds * 33.8688. ARM7 gets 1 bus cycle out of each 8.
+ m_soundcpu->set_addrmap(AS_PROGRAM, &dc_cons_state::dc_audio_map);
MCFG_MACHINE_RESET_OVERRIDE(dc_cons_state,dc_console )
@@ -658,10 +659,10 @@ MACHINE_CONFIG_START(dc_cons_state::dc)
dcctrl3.set_port_tag<7>("P4:A5");
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_RAW_PARAMS(13458568*2, 857, 0, 640, 524, 0, 480) /* TODO: where pclk actually comes? */
- MCFG_SCREEN_UPDATE_DEVICE("powervr2", powervr2_device, screen_update)
- MCFG_PALETTE_ADD("palette", 0x1000)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_raw(13458568*2, 857, 0, 640, 524, 0, 480); /* TODO: where pclk actually comes? */
+ screen.set_screen_update("powervr2", FUNC(powervr2_device::screen_update));
+ PALETTE(config, "palette").set_entries(0x1000);
POWERVR2(config, m_powervr2, 0);
m_powervr2->irq_callback().set(FUNC(dc_state::pvr_irq));
@@ -680,13 +681,13 @@ MACHINE_CONFIG_START(dc_cons_state::dc)
ATA_INTERFACE(config, m_ata, 0);
m_ata->irq_handler().set(FUNC(dc_cons_state::ata_interrupt));
- MCFG_DEVICE_MODIFY("ata:0")
- MCFG_SLOT_OPTION_ADD("gdrom", GDROM)
- MCFG_SLOT_OPTION_MACHINE_CONFIG("gdrom", gdrom_config)
- MCFG_SLOT_DEFAULT_OPTION("gdrom")
+ ata_slot_device &ata_0(*subdevice<ata_slot_device>("ata:0"));
+ ata_0.option_add("gdrom", GDROM);
+ ata_0.set_option_machine_config("gdrom", gdrom_config);
+ ata_0.set_default_option("gdrom");
SOFTWARE_LIST(config, "cd_list").set_original("dc");
-MACHINE_CONFIG_END
+}
#define ROM_LOAD_BIOS(bios,name,offset,length,hash) \
diff --git a/src/mame/drivers/dday.cpp b/src/mame/drivers/dday.cpp
index 00d67128fb4..7a061fc3215 100644
--- a/src/mame/drivers/dday.cpp
+++ b/src/mame/drivers/dday.cpp
@@ -254,21 +254,21 @@ void dday_state::machine_reset()
}
-MACHINE_CONFIG_START(dday_state::dday)
-
+void dday_state::dday(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, 2000000) /* 2 MHz ? */
- MCFG_DEVICE_PROGRAM_MAP(dday_map)
+ Z80(config, m_maincpu, 2000000); /* 2 MHz ? */
+ m_maincpu->set_addrmap(AS_PROGRAM, &dday_state::dday_map);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
- MCFG_SCREEN_SIZE(32*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(dday_state, screen_update_dday)
- MCFG_SCREEN_PALETTE(m_palette)
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_refresh_hz(60);
+ m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */);
+ m_screen->set_size(32*8, 32*8);
+ m_screen->set_visarea(0*8, 32*8-1, 0*8, 28*8-1);
+ m_screen->set_screen_update(FUNC(dday_state::screen_update_dday));
+ m_screen->set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_dday);
PALETTE(config, m_palette, FUNC(dday_state::dday_palette), 256).enable_shadows();
@@ -279,7 +279,7 @@ MACHINE_CONFIG_START(dday_state::dday)
AY8910(config, m_ay1, 1000000).add_route(ALL_OUTPUTS, "mono", 0.25);
AY8910(config, "ay2", 1000000).add_route(ALL_OUTPUTS, "mono", 0.25);
-MACHINE_CONFIG_END
+}
diff --git a/src/mame/drivers/ddayjlc.cpp b/src/mame/drivers/ddayjlc.cpp
index b4418cc9fc3..9681a93f218 100644
--- a/src/mame/drivers/ddayjlc.cpp
+++ b/src/mame/drivers/ddayjlc.cpp
@@ -599,26 +599,26 @@ void ddayjlc_state::ddayjlc_palette(palette_device &palette) const
palette.set_pen_color(0x203, rgb_t(0xff, 0xff, 0xff));
}
-MACHINE_CONFIG_START(ddayjlc_state::ddayjlc)
-
+void ddayjlc_state::ddayjlc(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80,12000000/3)
- MCFG_DEVICE_PROGRAM_MAP(main_map)
+ Z80(config, m_maincpu, 12000000/3);
+ m_maincpu->set_addrmap(AS_PROGRAM, &ddayjlc_state::main_map);
- MCFG_DEVICE_ADD("audiocpu", Z80, 12000000/4)
- MCFG_DEVICE_PROGRAM_MAP(sound_map)
+ Z80(config, m_audiocpu, 12000000/4);
+ m_audiocpu->set_addrmap(AS_PROGRAM, &ddayjlc_state::sound_map);
config.m_minimum_quantum = attotime::from_hz(6000);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(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(ddayjlc_state, screen_update_ddayjlc)
- MCFG_SCREEN_PALETTE(m_palette)
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, ddayjlc_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(ddayjlc_state::screen_update_ddayjlc));
+ screen.set_palette(m_palette);
+ screen.screen_vblank().set(FUNC(ddayjlc_state::vblank_irq));
GFXDECODE(config, m_gfxdecode, m_palette, gfx_ddayjlc);
PALETTE(config, m_palette, FUNC(ddayjlc_state::ddayjlc_palette), 0x200+4);
@@ -632,7 +632,7 @@ MACHINE_CONFIG_START(ddayjlc_state::ddayjlc)
ay1.add_route(ALL_OUTPUTS, "mono", 1.0);
AY8910(config, "ay2", 12000000/6).add_route(ALL_OUTPUTS, "mono", 1.0);
-MACHINE_CONFIG_END
+}
ROM_START( ddayjlc )
diff --git a/src/mame/drivers/ddealer.cpp b/src/mame/drivers/ddealer.cpp
index e98802e3bde..d46ca085054 100644
--- a/src/mame/drivers/ddealer.cpp
+++ b/src/mame/drivers/ddealer.cpp
@@ -628,33 +628,32 @@ void ddealer_state::machine_reset()
m_coin_input = 0;
}
-MACHINE_CONFIG_START(ddealer_state::ddealer)
-
- MCFG_DEVICE_ADD("maincpu" , M68000, XTAL(16'000'000)/2) /* 8MHz */
- MCFG_DEVICE_PROGRAM_MAP(ddealer_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", ddealer_state, irq4_line_hold)
- MCFG_DEVICE_PERIODIC_INT_DRIVER(ddealer_state, irq1_line_hold, 90)//guess, controls music tempo, 112 is way too fast
+void ddealer_state::ddealer(machine_config &config)
+{
+ M68000(config, m_maincpu, XTAL(16'000'000)/2); /* 8MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &ddealer_state::ddealer_map);
+ m_maincpu->set_vblank_int("screen", FUNC(ddealer_state::irq4_line_hold));
+ m_maincpu->set_periodic_int(FUNC(ddealer_state::irq1_line_hold), attotime::from_hz(90)); //guess, controls music tempo, 112 is way too fast
// M50747 or NMK-110 8131 MCU
GFXDECODE(config, m_gfxdecode, m_palette, gfx_ddealer);
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(512, 256)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(ddealer_state, screen_update)
- MCFG_SCREEN_PALETTE(m_palette)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(512, 256);
+ screen.set_visarea(0*8, 48*8-1, 2*8, 30*8-1);
+ screen.set_screen_update(FUNC(ddealer_state::screen_update));
+ screen.set_palette(m_palette);
PALETTE(config, m_palette).set_format(palette_device::RRRRGGGGBBBBRGBx, 0x200);
TIMER(config, "coinsim").configure_periodic(FUNC(ddealer_state::mcu_sim), attotime::from_hz(10000));
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("ymsnd", YM2203, XTAL(6'000'000) / 8) /* 7.5KHz */
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40)
-MACHINE_CONFIG_END
+ YM2203(config, "ymsnd", XTAL(6'000'000) / 8).add_route(ALL_OUTPUTS, "mono", 0.40); /* 7.5KHz */
+}
diff --git a/src/mame/drivers/ddenlovr.cpp b/src/mame/drivers/ddenlovr.cpp
index b9a52077718..e05af0653f3 100644
--- a/src/mame/drivers/ddenlovr.cpp
+++ b/src/mame/drivers/ddenlovr.cpp
@@ -4331,8 +4331,8 @@ void dynax_state::htengoku_banked_map(address_map &map)
map(0x80000, 0x801ff).w(FUNC(dynax_state::tenkai_palette_w));
}
-MACHINE_CONFIG_START(ddenlovr_state::htengoku)
-
+void ddenlovr_state::htengoku(machine_config &config)
+{
/* basic machine hardware */
Z80(config, m_maincpu, 20000000 / 4);
m_maincpu->set_addrmap(AS_PROGRAM, &ddenlovr_state::htengoku_mem_map);
@@ -4392,7 +4392,7 @@ MACHINE_CONFIG_START(ddenlovr_state::htengoku)
/* devices */
msm6242_device &rtc(MSM6242(config, "rtc", XTAL(32'768)));
rtc.out_int_handler().set("mainirq", FUNC(rst_pos_buffer_device::rst1_w));
-MACHINE_CONFIG_END
+}
/***************************************************************************
@@ -9692,8 +9692,8 @@ WRITE_LINE_MEMBER(ddenlovr_state::ddenlovr_irq)
m_maincpu->set_input_line(M68K_IRQ_1, HOLD_LINE);
}
-MACHINE_CONFIG_START(ddenlovr_state::ddenlovr)
-
+void ddenlovr_state::ddenlovr(machine_config &config)
+{
/* basic machine hardware */
M68000(config, m_maincpu, XTAL(24'000'000) / 2);
m_maincpu->set_addrmap(AS_PROGRAM, &ddenlovr_state::ddenlovr_map);
@@ -9730,14 +9730,14 @@ MACHINE_CONFIG_START(ddenlovr_state::ddenlovr)
YMZ284(config, "aysnd", XTAL(28'636'363) / 16).add_route(ALL_OUTPUTS, "mono", 0.30); // or /8 ?
- okim6295_device &oki(OKIM6295(config, "oki", XTAL(28'636'363) / 28, okim6295_device::PIN7_HIGH));
- oki.add_route(ALL_OUTPUTS, "mono", 0.80);
+ OKIM6295(config, m_oki, XTAL(28'636'363) / 28, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.80);
/* devices */
RTC72421(config, "rtc", XTAL(32'768)); // internal oscillator
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(ddenlovr_state::ddenlovj)
+void ddenlovr_state::ddenlovj(machine_config &config)
+{
ddenlovr(config);
/* basic machine hardware */
@@ -9748,7 +9748,7 @@ MACHINE_CONFIG_START(ddenlovr_state::ddenlovj)
m_mainlatch->q_out_cb<5>().set(FUNC(ddenlovr_state::ddenlovr_blitter_irq_ack_w));
RTC62421(config.replace(), "rtc", XTAL(32'768)); // internal oscillator
-MACHINE_CONFIG_END
+}
void ddenlovr_state::ddenlovrk(machine_config &config)
{
@@ -10061,7 +10061,7 @@ void ddenlovr_state::kotbinyo(machine_config &config)
m_screen->set_visarea(0, 336-1-1, 1+4, 256-15-1+4);
m_screen->set_screen_update(FUNC(ddenlovr_state::screen_update_ddenlovr));
m_screen->set_video_attributes(VIDEO_ALWAYS_UPDATE);
- m_screen->set_palette("palette");
+ m_screen->set_palette(m_palette);
m_screen->screen_vblank().set(FUNC(ddenlovr_state::hanakanz_irq));
PALETTE(config, m_palette).set_entries(0x200);
@@ -10431,7 +10431,8 @@ void ddenlovr_state::mjflove(machine_config &config)
AY8910(config, "aysnd", 28636363/8).add_route(ALL_OUTPUTS, "mono", 0.30);
}
-MACHINE_CONFIG_START(ddenlovr_state::hparadis)
+void ddenlovr_state::hparadis(machine_config &config)
+{
quizchq(config);
/* basic machine hardware */
@@ -10445,30 +10446,30 @@ MACHINE_CONFIG_START(ddenlovr_state::hparadis)
config.device_remove("rtc");
MCFG_MACHINE_START_OVERRIDE(ddenlovr_state,hparadis)
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(ddenlovr_state::jongtei)
+}
+void ddenlovr_state::jongtei(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu",Z80, XTAL(20'000'000) / 2) // KL5C80A12
- MCFG_DEVICE_PROGRAM_MAP(hanakanz_map)
- MCFG_DEVICE_IO_MAP(jongtei_portmap)
+ Z80(config, m_maincpu, XTAL(20'000'000) / 2); // KL5C80A12
+ m_maincpu->set_addrmap(AS_PROGRAM, &ddenlovr_state::hanakanz_map);
+ m_maincpu->set_addrmap(AS_IO, &ddenlovr_state::jongtei_portmap);
MCFG_MACHINE_START_OVERRIDE(ddenlovr_state,hanakanz)
MCFG_MACHINE_RESET_OVERRIDE(ddenlovr_state,ddenlovr)
/* video hardware */
- MCFG_SCREEN_ADD(m_screen, RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(336, 256)
- MCFG_SCREEN_VISIBLE_AREA(0, 336-1, 5, 256-11-1)
- MCFG_SCREEN_UPDATE_DRIVER(ddenlovr_state, screen_update_ddenlovr)
- MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE)
- MCFG_SCREEN_PALETTE("palette")
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, ddenlovr_state, hanakanz_irq))
-
- MCFG_PALETTE_ADD("palette", 0x200)
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_refresh_hz(60);
+ m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ m_screen->set_size(336, 256);
+ m_screen->set_visarea(0, 336-1, 5, 256-11-1);
+ m_screen->set_screen_update(FUNC(ddenlovr_state::screen_update_ddenlovr));
+ m_screen->set_video_attributes(VIDEO_ALWAYS_UPDATE);
+ m_screen->set_palette(m_palette);
+ m_screen->screen_vblank().set(FUNC(ddenlovr_state::hanakanz_irq));
+
+ PALETTE(config, m_palette).set_entries(0x200);
blitter_irq().set(FUNC(ddenlovr_state::mjflove_blitter_irq));
@@ -10479,29 +10480,27 @@ MACHINE_CONFIG_START(ddenlovr_state::jongtei)
YM2413(config, "ym2413", XTAL(28'636'363) / 8).add_route(ALL_OUTPUTS, "mono", 0.80);
- MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(28'636'363) / 28, okim6295_device::PIN7_HIGH)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
+ OKIM6295(config, m_oki, XTAL(28'636'363) / 28, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.80);
/* devices */
MSM6242(config, "rtc", XTAL(32'768)).out_int_handler().set(FUNC(ddenlovr_state::hanakanz_rtc_irq));
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(ddenlovr_state::mjgnight)
+void ddenlovr_state::mjgnight(machine_config &config)
+{
jongtei(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_IO_MAP(mjgnight_portmap)
+ m_maincpu->set_addrmap(AS_IO, &ddenlovr_state::mjgnight_portmap);
- MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_SIZE(336, 256)
- MCFG_SCREEN_VISIBLE_AREA(0, 336-1, 5-4, 256-11-1-4)
-MACHINE_CONFIG_END
+ m_screen->set_size(336, 256);
+ m_screen->set_visarea(0, 336-1, 5-4, 256-11-1-4);
+}
/***************************************************************************
Mahjong Seiryu Densetsu
***************************************************************************/
-MACHINE_CONFIG_START(ddenlovr_state::sryudens)
-
+void ddenlovr_state::sryudens(machine_config &config)
+{
/* basic machine hardware */
tmpz84c015_device &maincpu(TMPZ84C015(config, m_maincpu, XTAL(16'000'000) / 2)); // ?
maincpu.set_addrmap(AS_PROGRAM, &ddenlovr_state::sryudens_map);
@@ -10513,17 +10512,17 @@ MACHINE_CONFIG_START(ddenlovr_state::sryudens)
MCFG_MACHINE_RESET_OVERRIDE(ddenlovr_state,ddenlovr)
/* video hardware */
- MCFG_SCREEN_ADD(m_screen, RASTER)
- MCFG_SCREEN_REFRESH_RATE(60.8532) // VSync 60.8532Hz, HSync 15.2790kHz
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(336, 256+22)
- MCFG_SCREEN_VISIBLE_AREA(0, 336-1, 0+5, 256-12-1)
- MCFG_SCREEN_UPDATE_DRIVER(ddenlovr_state, screen_update_ddenlovr)
- MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE)
- MCFG_SCREEN_PALETTE("palette")
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE("maincpu", tmpz84c015_device, trg0))
-
- MCFG_PALETTE_ADD("palette", 0x100)
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_refresh_hz(60.8532); // VSync 60.8532Hz, HSync 15.2790kHz
+ m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ m_screen->set_size(336, 256+22);
+ m_screen->set_visarea(0, 336-1, 0+5, 256-12-1);
+ m_screen->set_screen_update(FUNC(ddenlovr_state::screen_update_ddenlovr));
+ m_screen->set_video_attributes(VIDEO_ALWAYS_UPDATE);
+ m_screen->set_palette(m_palette);
+ m_screen->screen_vblank().set(m_maincpu, FUNC(tmpz84c015_device::trg0));
+
+ PALETTE(config, m_palette).set_entries(0x100);
blitter_irq().set(FUNC(ddenlovr_state::mjflove_blitter_irq));
@@ -10536,20 +10535,19 @@ MACHINE_CONFIG_START(ddenlovr_state::sryudens)
YMZ284(config, "aysnd", XTAL(28'636'363) / 8).add_route(ALL_OUTPUTS, "mono", 0.30);
- MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(28'636'363) / 28, okim6295_device::PIN7_HIGH) // ?
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
+ OKIM6295(config, m_oki, XTAL(28'636'363) / 28, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.80); // ?
/* devices */
RTC62421(config, "rtc", XTAL(32'768)).out_int_handler().set(m_maincpu, FUNC(tmpz84c015_device::trg1)); // internal oscillator
-MACHINE_CONFIG_END
+}
/***************************************************************************
Mahjong Janshin Plus
***************************************************************************/
// PCB: NM7001004
-MACHINE_CONFIG_START(ddenlovr_state::janshinp)
-
+void ddenlovr_state::janshinp(machine_config &config)
+{
/* basic machine hardware */
tmpz84c015_device &maincpu(TMPZ84C015(config, m_maincpu, XTAL(16'000'000) / 2));
maincpu.set_addrmap(AS_PROGRAM, &ddenlovr_state::janshinp_map);
@@ -10561,17 +10559,17 @@ MACHINE_CONFIG_START(ddenlovr_state::janshinp)
MCFG_MACHINE_RESET_OVERRIDE(ddenlovr_state,ddenlovr)
/* video hardware */
- MCFG_SCREEN_ADD(m_screen, RASTER)
- MCFG_SCREEN_REFRESH_RATE(60.8532) // VSync 60.8532Hz, HSync 15.2790kHz ?
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(336, 256+22)
- MCFG_SCREEN_VISIBLE_AREA(0, 336-1, 0+5, 256-12-1)
- MCFG_SCREEN_UPDATE_DRIVER(ddenlovr_state, screen_update_ddenlovr)
- MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE)
- MCFG_SCREEN_PALETTE("palette")
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE("maincpu", tmpz84c015_device, trg0))
-
- MCFG_PALETTE_ADD("palette", 0x100)
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_refresh_hz(60.8532); // VSync 60.8532Hz, HSync 15.2790kHz ?
+ m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ m_screen->set_size(336, 256+22);
+ m_screen->set_visarea(0, 336-1, 0+5, 256-12-1);
+ m_screen->set_screen_update(FUNC(ddenlovr_state::screen_update_ddenlovr));
+ m_screen->set_video_attributes(VIDEO_ALWAYS_UPDATE);
+ m_screen->set_palette(m_palette);
+ m_screen->screen_vblank().set(m_maincpu, FUNC(tmpz84c015_device::trg0));
+
+ PALETTE(config, m_palette).set_entries(0x100);
blitter_irq().set(FUNC(ddenlovr_state::mjflove_blitter_irq));
@@ -10584,12 +10582,11 @@ MACHINE_CONFIG_START(ddenlovr_state::janshinp)
YMZ284(config, "aysnd", XTAL(28'636'363) / 8).add_route(ALL_OUTPUTS, "mono", 0.30);
- MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(28'636'363) / 28, okim6295_device::PIN7_HIGH) // ?
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
+ OKIM6295(config, m_oki, XTAL(28'636'363) / 28, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.80); // ?
/* devices */
MSM6242(config, "rtc", XTAL(32'768)).out_int_handler().set(m_maincpu, FUNC(tmpz84c015_device::trg1));
-MACHINE_CONFIG_END
+}
// Same PCB as janshinp
void ddenlovr_state::dtoyoken(machine_config &config)
@@ -10618,8 +10615,8 @@ MACHINE_START_MEMBER(ddenlovr_state,seljan2)
MACHINE_START_CALL_MEMBER(ddenlovr);
}
-MACHINE_CONFIG_START(ddenlovr_state::seljan2)
-
+void ddenlovr_state::seljan2(machine_config &config)
+{
/* basic machine hardware */
tmpz84c015_device &maincpu(TMPZ84C015(config, m_maincpu, XTAL(16'000'000) / 2));
maincpu.set_addrmap(AS_PROGRAM, &ddenlovr_state::seljan2_map);
@@ -10631,17 +10628,17 @@ MACHINE_CONFIG_START(ddenlovr_state::seljan2)
MCFG_MACHINE_RESET_OVERRIDE(ddenlovr_state,ddenlovr)
/* video hardware */
- MCFG_SCREEN_ADD(m_screen, RASTER)
- MCFG_SCREEN_REFRESH_RATE(60.8532) // VSync 60.8532Hz, HSync 15.2790kHz ?
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(336, 256+22)
- MCFG_SCREEN_VISIBLE_AREA(0, 336-1, 0+5, 256-12-1)
- MCFG_SCREEN_UPDATE_DRIVER(ddenlovr_state, screen_update_ddenlovr)
- MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE)
- MCFG_SCREEN_PALETTE("palette")
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE("maincpu", tmpz84c015_device, trg0))
-
- MCFG_PALETTE_ADD("palette", 0x100)
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_refresh_hz(60.8532); // VSync 60.8532Hz, HSync 15.2790kHz ?
+ m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ m_screen->set_size(336, 256+22);
+ m_screen->set_visarea(0, 336-1, 0+5, 256-12-1);
+ m_screen->set_screen_update(FUNC(ddenlovr_state::screen_update_ddenlovr));
+ m_screen->set_video_attributes(VIDEO_ALWAYS_UPDATE);
+ m_screen->set_palette(m_palette);
+ m_screen->screen_vblank().set(m_maincpu, FUNC(tmpz84c015_device::trg0));
+
+ PALETTE(config, m_palette).set_entries(0x100);
blitter_irq().set("maincpu", FUNC(tmpz84c015_device::pa7_w)).invert(); // PA bit 7 = blitter busy
@@ -10657,12 +10654,11 @@ MACHINE_CONFIG_START(ddenlovr_state::seljan2)
aysnd.port_b_write_callback().set(FUNC(ddenlovr_state::ddenlovr_select_w));
aysnd.add_route(ALL_OUTPUTS, "mono", 0.30);
- MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(28'636'363) / 28, okim6295_device::PIN7_HIGH) // ?
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
+ OKIM6295(config, m_oki, XTAL(28'636'363) / 28, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.80); // ?
/* devices */
MSM6242(config, "rtc", XTAL(32'768)).out_int_handler().set(m_maincpu, FUNC(tmpz84c015_device::trg1));
-MACHINE_CONFIG_END
+}
/***************************************************************************
@@ -10670,28 +10666,28 @@ MACHINE_CONFIG_END
***************************************************************************/
-MACHINE_CONFIG_START(ddenlovr_state::daimyojn)
-
+void ddenlovr_state::daimyojn(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu",Z80, XTAL(20'000'000) / 2)
- MCFG_DEVICE_PROGRAM_MAP(hanakanz_map)
- MCFG_DEVICE_IO_MAP(daimyojn_portmap)
+ Z80(config, m_maincpu, XTAL(20'000'000) / 2);
+ m_maincpu->set_addrmap(AS_PROGRAM, &ddenlovr_state::hanakanz_map);
+ m_maincpu->set_addrmap(AS_IO, &ddenlovr_state::daimyojn_portmap);
MCFG_MACHINE_START_OVERRIDE(ddenlovr_state,mjflove)
MCFG_MACHINE_RESET_OVERRIDE(ddenlovr_state,ddenlovr)
/* video hardware */
- MCFG_SCREEN_ADD(m_screen, RASTER)
- MCFG_SCREEN_REFRESH_RATE(59.7922) // HSync 15.4248kHz
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(336, 256+22)
- MCFG_SCREEN_VISIBLE_AREA(0, 336-1-1, 1, 256-15-1)
- MCFG_SCREEN_UPDATE_DRIVER(ddenlovr_state, screen_update_ddenlovr)
- MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE)
- MCFG_SCREEN_PALETTE("palette")
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, ddenlovr_state, hanakanz_irq))
-
- MCFG_PALETTE_ADD("palette", 0x200)
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_refresh_hz(59.7922); // HSync 15.4248kHz
+ m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ m_screen->set_size(336, 256+22);
+ m_screen->set_visarea(0, 336-1-1, 1, 256-15-1);
+ m_screen->set_screen_update(FUNC(ddenlovr_state::screen_update_ddenlovr));
+ m_screen->set_video_attributes(VIDEO_ALWAYS_UPDATE);
+ m_screen->set_palette(m_palette);
+ m_screen->screen_vblank().set(FUNC(ddenlovr_state::hanakanz_irq));
+
+ PALETTE(config, m_palette).set_entries(0x200);
MCFG_VIDEO_START_OVERRIDE(ddenlovr_state,hanakanz) // blitter commands in the roms are shuffled around
@@ -10700,12 +10696,11 @@ MACHINE_CONFIG_START(ddenlovr_state::daimyojn)
YM2413(config, "ym2413", XTAL(28'636'363) / 8).add_route(ALL_OUTPUTS, "mono", 0.80);
- MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(28'636'363) / 28, okim6295_device::PIN7_HIGH)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
+ OKIM6295(config, m_oki, XTAL(28'636'363) / 28, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.80);
/* devices */
MSM6242(config, "rtc", XTAL(32'768)).out_int_handler().set(FUNC(ddenlovr_state::hanakanz_rtc_irq));
-MACHINE_CONFIG_END
+}
diff --git a/src/mame/drivers/ddragon3.cpp b/src/mame/drivers/ddragon3.cpp
index 88f096a3d5f..ac3c7c9a629 100644
--- a/src/mame/drivers/ddragon3.cpp
+++ b/src/mame/drivers/ddragon3.cpp
@@ -820,22 +820,22 @@ void ddragon3_state::machine_reset()
m_bg_tilebase = 0;
}
-MACHINE_CONFIG_START(ddragon3_state::ddragon3)
-
+void ddragon3_state::ddragon3(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, 20_MHz_XTAL / 2)
- MCFG_DEVICE_PROGRAM_MAP(ddragon3_map)
+ M68000(config, m_maincpu, 20_MHz_XTAL / 2);
+ m_maincpu->set_addrmap(AS_PROGRAM, &ddragon3_state::ddragon3_map);
TIMER(config, "scantimer").configure_scanline(FUNC(ddragon3_state::ddragon3_scanline), "screen", 0, 1);
- MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(3'579'545))
- MCFG_DEVICE_PROGRAM_MAP(sound_map)
+ Z80(config, m_audiocpu, XTAL(3'579'545));
+ m_audiocpu->set_addrmap(AS_PROGRAM, &ddragon3_state::sound_map);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_RAW_PARAMS(28_MHz_XTAL / 4, 448, 0, 320, 272, 8, 248) /* HTOTAL and VTOTAL are guessed */
- MCFG_SCREEN_UPDATE_DRIVER(ddragon3_state, screen_update_ddragon3)
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE("spriteram", buffered_spriteram16_device, vblank_copy_rising))
- MCFG_SCREEN_PALETTE(m_palette)
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_raw(28_MHz_XTAL / 4, 448, 0, 320, 272, 8, 248); /* HTOTAL and VTOTAL are guessed */
+ m_screen->set_screen_update(FUNC(ddragon3_state::screen_update_ddragon3));
+ m_screen->screen_vblank().set(m_spriteram, FUNC(buffered_spriteram16_device::vblank_copy_rising));
+ m_screen->set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_ddragon3);
PALETTE(config, m_palette).set_format(palette_device::xBGR_555, 768);
@@ -854,66 +854,62 @@ MACHINE_CONFIG_START(ddragon3_state::ddragon3)
ym2151.add_route(0, "lspeaker", 0.50);
ym2151.add_route(1, "rspeaker", 0.50);
- MCFG_DEVICE_ADD("oki", OKIM6295, 1.056_MHz_XTAL, okim6295_device::PIN7_HIGH)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.50)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.50)
-MACHINE_CONFIG_END
+ OKIM6295(config, m_oki, 1.056_MHz_XTAL, okim6295_device::PIN7_HIGH);
+ m_oki->add_route(ALL_OUTPUTS, "lspeaker", 1.50);
+ m_oki->add_route(ALL_OUTPUTS, "rspeaker", 1.50);
+}
-MACHINE_CONFIG_START(ddragon3_state::ddragon3b)
+void ddragon3_state::ddragon3b(machine_config &config)
+{
ddragon3(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(dd3b_map)
+ m_maincpu->set_addrmap(AS_PROGRAM, &ddragon3_state::dd3b_map);
- MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_VBLANK_CALLBACK(NOOP)
-MACHINE_CONFIG_END
+ m_screen->screen_vblank().set_nop();
+}
-MACHINE_CONFIG_START(ddragon3_state::ctribe)
+void ddragon3_state::ctribe(machine_config &config)
+{
ddragon3(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(ctribe_map)
+ m_maincpu->set_addrmap(AS_PROGRAM, &ddragon3_state::ctribe_map);
- MCFG_DEVICE_MODIFY("audiocpu")
- MCFG_DEVICE_PROGRAM_MAP(ctribe_sound_map)
+ m_audiocpu->set_addrmap(AS_PROGRAM, &ddragon3_state::ctribe_sound_map);
m_palette->set_format(palette_device::xBGR_444, 768);
- MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_DRIVER(ddragon3_state, screen_update_ctribe)
- MCFG_SCREEN_VBLANK_CALLBACK(NOOP)
+ m_screen->set_screen_update(FUNC(ddragon3_state::screen_update_ctribe));
+ m_screen->screen_vblank().set_nop();
- MCFG_DEVICE_MODIFY("ym2151")
- MCFG_SOUND_ROUTES_RESET()
- MCFG_SOUND_ROUTE(0, "lspeaker", 1.20)
- MCFG_SOUND_ROUTE(1, "rspeaker", 1.20)
-
- MCFG_DEVICE_MODIFY("oki")
- MCFG_SOUND_ROUTES_RESET()
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.80)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.80)
-MACHINE_CONFIG_END
+ ym2151_device &ym2151(*subdevice<ym2151_device>("ym2151"));
+ ym2151.reset_routes();
+ ym2151.add_route(0, "lspeaker", 1.20);
+ ym2151.add_route(1, "rspeaker", 1.20);
+ m_oki->reset_routes();
+ m_oki->add_route(ALL_OUTPUTS, "lspeaker", 0.80);
+ m_oki->add_route(ALL_OUTPUTS, "rspeaker", 0.80);
+}
-MACHINE_CONFIG_START(wwfwfest_state::wwfwfest)
+void wwfwfest_state::wwfwfest(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, 24_MHz_XTAL / 2) /* 24 crystal, 12 rated chip */
- MCFG_DEVICE_PROGRAM_MAP(main_map)
+ M68000(config, m_maincpu, 24_MHz_XTAL / 2); /* 24 crystal, 12 rated chip */
+ m_maincpu->set_addrmap(AS_PROGRAM, &wwfwfest_state::main_map);
TIMER(config, "scantimer").configure_scanline(FUNC(ddragon3_state::ddragon3_scanline), "screen", 0, 1);
- MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(3'579'545))
- MCFG_DEVICE_PROGRAM_MAP(sound_map)
+ Z80(config, m_audiocpu, XTAL(3'579'545));
+ m_audiocpu->set_addrmap(AS_PROGRAM, &wwfwfest_state::sound_map);
/* video hardware */
BUFFERED_SPRITERAM16(config, m_spriteram);
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_RAW_PARAMS(28_MHz_XTAL / 4, 448, 0, 320, 272, 8, 248) /* HTOTAL and VTOTAL are guessed */
- MCFG_SCREEN_UPDATE_DRIVER(wwfwfest_state, screen_update_wwfwfest)
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE("spriteram", buffered_spriteram16_device, vblank_copy_rising))
- MCFG_SCREEN_PALETTE(m_palette)
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_raw(28_MHz_XTAL / 4, 448, 0, 320, 272, 8, 248); /* HTOTAL and VTOTAL are guessed */
+ m_screen->set_screen_update(FUNC(wwfwfest_state::screen_update_wwfwfest));
+ m_screen->screen_vblank().set(m_spriteram, FUNC(buffered_spriteram16_device::vblank_copy_rising));
+ m_screen->set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_wwfwfest);
PALETTE(config, m_palette).set_format(palette_device::xBGR_444, 8192);
@@ -929,14 +925,14 @@ MACHINE_CONFIG_START(wwfwfest_state::wwfwfest)
ym2151.add_route(0, "mono", 0.45);
ym2151.add_route(1, "mono", 0.45);
- MCFG_DEVICE_ADD("oki", OKIM6295, 1.056_MHz_XTAL, okim6295_device::PIN7_HIGH) /* Verified - Pin 7 tied to +5VDC */
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.90)
-MACHINE_CONFIG_END
+ OKIM6295(config, m_oki, 1.056_MHz_XTAL, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.90); /* Verified - Pin 7 tied to +5VDC */
+}
-MACHINE_CONFIG_START(wwfwfest_state::wwfwfstb)
+void wwfwfest_state::wwfwfstb(machine_config &config)
+{
wwfwfest(config);
MCFG_VIDEO_START_OVERRIDE(wwfwfest_state,wwfwfstb)
-MACHINE_CONFIG_END
+}
/*************************************
diff --git a/src/mame/drivers/ddribble.cpp b/src/mame/drivers/ddribble.cpp
index c5b4a7a09b7..e632afca03c 100644
--- a/src/mame/drivers/ddribble.cpp
+++ b/src/mame/drivers/ddribble.cpp
@@ -257,33 +257,33 @@ void ddribble_state::machine_reset()
m_charbank[1] = 0;
}
-MACHINE_CONFIG_START(ddribble_state::ddribble)
-
+void ddribble_state::ddribble(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD(m_maincpu, MC6809E, XTAL(18'432'000)/12) /* verified on pcb */
- MCFG_DEVICE_PROGRAM_MAP(cpu0_map)
+ MC6809E(config, m_maincpu, XTAL(18'432'000)/12); /* verified on pcb */
+ m_maincpu->set_addrmap(AS_PROGRAM, &ddribble_state::cpu0_map);
- MCFG_DEVICE_ADD(m_cpu1, MC6809E, XTAL(18'432'000)/12) /* verified on pcb */
- MCFG_DEVICE_PROGRAM_MAP(cpu1_map)
+ MC6809E(config, m_cpu1, XTAL(18'432'000)/12); /* verified on pcb */
+ m_cpu1->set_addrmap(AS_PROGRAM, &ddribble_state::cpu1_map);
- MCFG_DEVICE_ADD("cpu2", MC6809E, XTAL(18'432'000)/12) /* verified on pcb */
- MCFG_DEVICE_PROGRAM_MAP(cpu2_map)
+ mc6809e_device &cpu2(MC6809E(config, "cpu2", XTAL(18'432'000)/12)); /* verified on pcb */
+ cpu2.set_addrmap(AS_PROGRAM, &ddribble_state::cpu2_map);
config.m_minimum_quantum = attotime::from_hz(6000); /* we need heavy synch */
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_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1) */
- MCFG_SCREEN_UPDATE_DRIVER(ddribble_state, screen_update_ddribble)
- MCFG_SCREEN_PALETTE("palette")
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, ddribble_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_size(64*8, 32*8);
+ screen.set_visarea(0*8, 64*8-1, 2*8, 30*8-1); */
+ screen.set_screen_update(FUNC(ddribble_state::screen_update_ddribble));
+ screen.set_palette("palette");
+ screen.screen_vblank().set(FUNC(ddribble_state::vblank_irq));
GFXDECODE(config, m_gfxdecode, "palette", gfx_ddribble);
PALETTE(config, "palette", FUNC(ddribble_state::ddribble_palette)).set_format(palette_device::xBGR_555, 64 + 256, 64);
@@ -299,17 +299,16 @@ MACHINE_CONFIG_START(ddribble_state::ddribble)
ymsnd.add_route(2, "filter3", 0.25);
ymsnd.add_route(3, "mono", 0.25);
- MCFG_DEVICE_ADD(m_vlm, VLM5030, XTAL(3'579'545)) /* verified on pcb */
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
- MCFG_DEVICE_ADDRESS_MAP(0, vlm_map)
-
- MCFG_DEVICE_ADD(m_filter1, FILTER_RC)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
- MCFG_DEVICE_ADD(m_filter2, FILTER_RC)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
- MCFG_DEVICE_ADD(m_filter3, FILTER_RC)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
-MACHINE_CONFIG_END
+ VLM5030(config, m_vlm, XTAL(3'579'545)); /* verified on pcb */
+ m_vlm->add_route(ALL_OUTPUTS, "mono", 1.0);
+ m_vlm->set_addrmap(0, &ddribble_state::vlm_map);
+
+ FILTER_RC(config, m_filter1).add_route(ALL_OUTPUTS, "mono", 1.0);
+
+ FILTER_RC(config, m_filter2).add_route(ALL_OUTPUTS, "mono", 1.0);
+
+ FILTER_RC(config, m_filter3).add_route(ALL_OUTPUTS, "mono", 1.0);
+}
ROM_START( ddribble )
diff --git a/src/mame/drivers/deco156.cpp b/src/mame/drivers/deco156.cpp
index 82ffa6910b2..df7bd749e1b 100644
--- a/src/mame/drivers/deco156.cpp
+++ b/src/mame/drivers/deco156.cpp
@@ -329,21 +329,21 @@ DECOSPR_PRIORITY_CB_MEMBER(deco156_state::pri_callback)
return 0;
}
-MACHINE_CONFIG_START(deco156_state::hvysmsh)
-
+void deco156_state::hvysmsh(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", ARM, 28000000) /* Unconfirmed */
- MCFG_DEVICE_PROGRAM_MAP(hvysmsh_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", deco156_state, deco32_vbl_interrupt)
+ ARM(config, m_maincpu, 28000000); /* Unconfirmed */
+ m_maincpu->set_addrmap(AS_PROGRAM, &deco156_state::hvysmsh_map);
+ m_maincpu->set_vblank_int("screen", FUNC(deco156_state::deco32_vbl_interrupt));
EEPROM_93C46_16BIT(config, "eeprom");
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(58)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529))
- MCFG_SCREEN_SIZE(40*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(deco156_state, screen_update)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(58);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(529));
+ screen.set_size(40*8, 32*8);
+ screen.set_visarea(0*8, 40*8-1, 1*8, 31*8-1);
+ screen.set_screen_update(FUNC(deco156_state::screen_update));
GFXDECODE(config, "gfxdecode", m_palette, gfx_hvysmsh);
PALETTE(config, m_palette).set_format(palette_device::xBGR_888, 1024);
@@ -373,30 +373,30 @@ MACHINE_CONFIG_START(deco156_state::hvysmsh)
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
- MCFG_DEVICE_ADD("oki1", OKIM6295, 28000000/28, okim6295_device::PIN7_HIGH)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0)
-
- MCFG_DEVICE_ADD("oki2", OKIM6295, 28000000/14, okim6295_device::PIN7_HIGH)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.35)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.35)
-MACHINE_CONFIG_END
+ OKIM6295(config, m_oki1, 28000000/28, okim6295_device::PIN7_HIGH);
+ m_oki1->add_route(ALL_OUTPUTS, "lspeaker", 1.0);
+ m_oki1->add_route(ALL_OUTPUTS, "rspeaker", 1.0);
-MACHINE_CONFIG_START(deco156_state::wcvol95)
+ OKIM6295(config, m_oki2, 28000000/14, okim6295_device::PIN7_HIGH);
+ m_oki2->add_route(ALL_OUTPUTS, "lspeaker", 0.35);
+ m_oki2->add_route(ALL_OUTPUTS, "rspeaker", 0.35);
+}
+void deco156_state::wcvol95(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", ARM, 28000000) /* Unconfirmed */
- MCFG_DEVICE_PROGRAM_MAP(wcvol95_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", deco156_state, deco32_vbl_interrupt)
+ ARM(config, m_maincpu, 28000000); /* Unconfirmed */
+ m_maincpu->set_addrmap(AS_PROGRAM, &deco156_state::wcvol95_map);
+ m_maincpu->set_vblank_int("screen", FUNC(deco156_state::deco32_vbl_interrupt));
EEPROM_93C46_16BIT(config, "eeprom");
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(58)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529))
- MCFG_SCREEN_SIZE(40*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(deco156_state, screen_update)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(58);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(529));
+ screen.set_size(40*8, 32*8);
+ screen.set_visarea(0*8, 40*8-1, 1*8, 31*8-1);
+ screen.set_screen_update(FUNC(deco156_state::screen_update));
GFXDECODE(config, "gfxdecode", m_palette, gfx_hvysmsh);
PALETTE(config, m_palette).set_format(palette_device::xBGR_555, 1024);
@@ -426,10 +426,10 @@ MACHINE_CONFIG_START(deco156_state::wcvol95)
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
- MCFG_DEVICE_ADD("ymz", YMZ280B, 28000000 / 2)
- MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
- MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
-MACHINE_CONFIG_END
+ ymz280b_device &ymz(YMZ280B(config, "ymz", 28000000 / 2));
+ ymz.add_route(0, "lspeaker", 1.0);
+ ymz.add_route(1, "rspeaker", 1.0);
+}
/**********************************************************************************/
diff --git a/src/mame/drivers/deco_mlc.cpp b/src/mame/drivers/deco_mlc.cpp
index d902574728e..b3639af5000 100644
--- a/src/mame/drivers/deco_mlc.cpp
+++ b/src/mame/drivers/deco_mlc.cpp
@@ -507,24 +507,24 @@ void deco_mlc_state::machine_reset()
m_vbl_i = 0xffffffff;
}
-MACHINE_CONFIG_START(deco_mlc_state::avengrgs)
-
+void deco_mlc_state::avengrgs(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD(m_maincpu, SH2, 42000000/2) /* 21 MHz clock confirmed on real board */
- MCFG_DEVICE_PROGRAM_MAP(avengrgs_map)
+ SH2(config, m_maincpu, 42000000/2); /* 21 MHz clock confirmed on real board */
+ m_maincpu->set_addrmap(AS_PROGRAM, &deco_mlc_state::avengrgs_map);
EEPROM_93C46_16BIT(config, m_eeprom); /* Actually 93c45 */
TIMER(config, m_raster_irq_timer).configure_generic(FUNC(deco_mlc_state::interrupt_gen));
/* video hardware */
- MCFG_SCREEN_ADD(m_screen, RASTER)
- MCFG_SCREEN_REFRESH_RATE(58)
- MCFG_SCREEN_SIZE(40*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(deco_mlc_state, screen_update)
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, deco_mlc_state, screen_vblank_mlc))
- MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_SCANLINE)
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_refresh_hz(58);
+ m_screen->set_size(40*8, 32*8);
+ m_screen->set_visarea(0*8, 40*8-1, 1*8, 31*8-1);
+ m_screen->set_screen_update(FUNC(deco_mlc_state::screen_update));
+ m_screen->screen_vblank().set(FUNC(deco_mlc_state::screen_vblank_mlc));
+ m_screen->set_video_attributes(VIDEO_UPDATE_SCANLINE);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_deco_mlc);
PALETTE(config, m_palette).set_format(palette_device::xBGR_555, 2048);
@@ -534,29 +534,29 @@ MACHINE_CONFIG_START(deco_mlc_state::avengrgs)
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
- MCFG_DEVICE_ADD(m_ymz, YMZ280B, 42000000 / 3)
- MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
- MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(deco_mlc_state::mlc)
+ YMZ280B(config, m_ymz, 42000000 / 3);
+ m_ymz->add_route(0, "lspeaker", 1.0);
+ m_ymz->add_route(1, "rspeaker", 1.0);
+}
+void deco_mlc_state::mlc(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD(m_maincpu, ARM,42000000/6) /* 42 MHz -> 7MHz clock confirmed on real board */
- MCFG_DEVICE_PROGRAM_MAP(decomlc_map)
+ ARM(config, m_maincpu, 42000000/6); /* 42 MHz -> 7MHz clock confirmed on real board */
+ m_maincpu->set_addrmap(AS_PROGRAM, &deco_mlc_state::decomlc_map);
EEPROM_93C46_16BIT(config, m_eeprom); /* Actually 93c45 */
TIMER(config, m_raster_irq_timer).configure_generic(FUNC(deco_mlc_state::interrupt_gen));
/* video hardware */
- MCFG_SCREEN_ADD(m_screen, RASTER)
- MCFG_SCREEN_REFRESH_RATE(58)
- MCFG_SCREEN_SIZE(40*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(deco_mlc_state, screen_update)
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, deco_mlc_state, screen_vblank_mlc))
- MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_SCANLINE)
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_refresh_hz(58);
+ m_screen->set_size(40*8, 32*8);
+ m_screen->set_visarea(0*8, 40*8-1, 1*8, 31*8-1);
+ m_screen->set_screen_update(FUNC(deco_mlc_state::screen_update));
+ m_screen->screen_vblank().set(FUNC(deco_mlc_state::screen_vblank_mlc));
+ m_screen->set_video_attributes(VIDEO_UPDATE_SCANLINE);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_deco_mlc);
PALETTE(config, m_palette).set_format(palette_device::xBGR_555, 2048);
@@ -569,10 +569,10 @@ MACHINE_CONFIG_START(deco_mlc_state::mlc)
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
- MCFG_DEVICE_ADD(m_ymz, YMZ280B, 42000000 / 3)
- MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
- MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
-MACHINE_CONFIG_END
+ YMZ280B(config, m_ymz, 42000000 / 3);
+ m_ymz->add_route(0, "lspeaker", 1.0);
+ m_ymz->add_route(1, "rspeaker", 1.0);
+}
void deco_mlc_state::mlc_6bpp(machine_config &config)
{
@@ -581,16 +581,16 @@ void deco_mlc_state::mlc_6bpp(machine_config &config)
m_gfxdecode->set_info(gfx_6bpp);
}
-MACHINE_CONFIG_START(deco_mlc_state::mlc_5bpp)
+void deco_mlc_state::mlc_5bpp(machine_config &config)
+{
mlc(config);
m_gfxdecode->set_info(gfx_5bpp);
// TODO: mono? ch.0 doesn't output any sound in-game
- MCFG_DEVICE_MODIFY("ymz")
- MCFG_SOUND_ROUTE(1, "lspeaker", 1.0)
- MCFG_SOUND_ROUTE(0, "rspeaker", 1.0)
-MACHINE_CONFIG_END
+ m_ymz->add_route(1, "lspeaker", 1.0);
+ m_ymz->add_route(0, "rspeaker", 1.0);
+}
/***************************************************************************/
diff --git a/src/mame/drivers/decocass.cpp b/src/mame/drivers/decocass.cpp
index 3ef0719f32a..8f86b713c48 100644
--- a/src/mame/drivers/decocass.cpp
+++ b/src/mame/drivers/decocass.cpp
@@ -950,14 +950,14 @@ void decocass_state::decocass_palette(palette_device &palette) const
}
-MACHINE_CONFIG_START(decocass_state::decocass)
-
+void decocass_state::decocass(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", DECO_222, HCLK4) /* the earlier revision board doesn't have the 222 but must have the same thing implemented in logic for the M6502 */
- MCFG_DEVICE_PROGRAM_MAP(decocass_map)
+ DECO_222(config, m_maincpu, HCLK4); /* the earlier revision board doesn't have the 222 but must have the same thing implemented in logic for the M6502 */
+ m_maincpu->set_addrmap(AS_PROGRAM, &decocass_state::decocass_map);
- MCFG_DEVICE_ADD("audiocpu", M6502, HCLK1/3/2)
- MCFG_DEVICE_PROGRAM_MAP(decocass_sound_map)
+ M6502(config, m_audiocpu, HCLK1/3/2);
+ m_audiocpu->set_addrmap(AS_PROGRAM, &decocass_state::decocass_sound_map);
TIMER(config, "audionmi").configure_scanline(FUNC(decocass_state::decocass_audio_nmi_gen), "screen", 0, 8);
I8041(config, m_mcu, HCLK);
@@ -973,10 +973,10 @@ MACHINE_CONFIG_START(decocass_state::decocass)
DECOCASS_TAPE(config, m_cassette, 0);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_RAW_PARAMS(HCLK, 384, 0*8, 256, 272, 1*8, 248)
- MCFG_SCREEN_UPDATE_DRIVER(decocass_state, screen_update_decocass)
- MCFG_SCREEN_PALETTE(m_palette)
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_raw(HCLK, 384, 0*8, 256, 272, 1*8, 248);
+ m_screen->set_screen_update(FUNC(decocass_state::screen_update_decocass));
+ m_screen->set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_decocass);
PALETTE(config, m_palette, FUNC(decocass_state::decocass_palette), 64, 32);
@@ -990,249 +990,280 @@ MACHINE_CONFIG_START(decocass_state::decocass)
AY8910(config, "ay1", HCLK2).add_route(ALL_OUTPUTS, "mono", 0.40);
AY8910(config, "ay2", HCLK2).add_route(ALL_OUTPUTS, "mono", 0.40);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(decocass_type1_state::ctsttape)
+void decocass_type1_state::ctsttape(machine_config &config)
+{
decocass(config);
/* basic machine hardware */
MCFG_MACHINE_RESET_OVERRIDE(decocass_type1_state,ctsttape)
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(decocass_type1_state::cprogolfj)
+void decocass_type1_state::cprogolfj(machine_config &config)
+{
decocass(config);
/* basic machine hardware */
MCFG_MACHINE_RESET_OVERRIDE(decocass_type1_state,cprogolfj)
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(decocass_type1_state::cdsteljn)
+void decocass_type1_state::cdsteljn(machine_config &config)
+{
decocass(config);
/* basic machine hardware */
MCFG_MACHINE_RESET_OVERRIDE(decocass_type1_state,cdsteljn)
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(decocass_type1_state::cmanhat)
+void decocass_type1_state::cmanhat(machine_config &config)
+{
decocass(config);
/* basic machine hardware */
MCFG_MACHINE_RESET_OVERRIDE(decocass_type1_state,cmanhat)
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(decocass_type3_state::cfishing)
+void decocass_type3_state::cfishing(machine_config &config)
+{
decocass(config);
/* basic machine hardware */
MCFG_MACHINE_RESET_OVERRIDE(decocass_type3_state,cfishing)
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(decocass_type1_state::chwy)
+void decocass_type1_state::chwy(machine_config &config)
+{
decocass(config);
/* basic machine hardware */
MCFG_MACHINE_RESET_OVERRIDE(decocass_type1_state,chwy)
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(decocass_type1_state::cterrani)
+void decocass_type1_state::cterrani(machine_config &config)
+{
decocass(config);
/* basic machine hardware */
MCFG_MACHINE_RESET_OVERRIDE(decocass_type1_state,cterrani)
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(decocass_type1_state::castfant)
+void decocass_type1_state::castfant(machine_config &config)
+{
decocass(config);
/* basic machine hardware */
MCFG_MACHINE_RESET_OVERRIDE(decocass_type1_state,castfant)
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(decocass_type1_state::csuperas)
+void decocass_type1_state::csuperas(machine_config &config)
+{
decocass(config);
/* basic machine hardware */
MCFG_MACHINE_RESET_OVERRIDE(decocass_type1_state,csuperas)
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(decocass_type1_state::cocean1a) /* 10 */
+void decocass_type1_state::cocean1a(machine_config &config) /* 10 */
+{
decocass(config);
/* basic machine hardware */
MCFG_MACHINE_RESET_OVERRIDE(decocass_type1_state,cocean1a)
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(decocass_type1_state::clocknch)
+void decocass_type1_state::clocknch(machine_config &config)
+{
decocass(config);
/* basic machine hardware */
MCFG_MACHINE_RESET_OVERRIDE(decocass_type1_state,clocknch)
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(decocass_type1_state::clocknchj)
+void decocass_type1_state::clocknchj(machine_config &config)
+{
decocass(config);
/* basic machine hardware */
MCFG_MACHINE_RESET_OVERRIDE(decocass_type1_state,clocknchj)
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(decocass_type1_state::cfboy0a1) /* 12 */
+void decocass_type1_state::cfboy0a1(machine_config &config) /* 12 */
+{
decocass(config);
/* basic machine hardware */
MCFG_MACHINE_RESET_OVERRIDE(decocass_type1_state,cfboy0a1)
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(decocass_type1_state::cprogolf)
+void decocass_type1_state::cprogolf(machine_config &config)
+{
decocass(config);
/* basic machine hardware */
MCFG_MACHINE_RESET_OVERRIDE(decocass_type1_state,cprogolf)
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(decocass_type1_state::cluckypo)
+void decocass_type1_state::cluckypo(machine_config &config)
+{
decocass(config);
/* basic machine hardware */
MCFG_MACHINE_RESET_OVERRIDE(decocass_type1_state,cluckypo)
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(decocass_type1_state::ctisland)
+void decocass_type1_state::ctisland(machine_config &config)
+{
decocass(config);
/* basic machine hardware */
MCFG_MACHINE_RESET_OVERRIDE(decocass_type1_state,ctisland)
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(decocass_type1_state::ctisland3)
+void decocass_type1_state::ctisland3(machine_config &config)
+{
decocass(config);
/* basic machine hardware */
MCFG_MACHINE_RESET_OVERRIDE(decocass_type1_state,ctisland3)
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(decocass_type1_state::cexplore)
+void decocass_type1_state::cexplore(machine_config &config)
+{
decocass(config);
/* basic machine hardware */
MCFG_MACHINE_RESET_OVERRIDE(decocass_type1_state,cexplore)
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(decocass_type3_state::cbtime)
+void decocass_type3_state::cbtime(machine_config &config)
+{
decocass(config);
/* basic machine hardware */
MCFG_MACHINE_RESET_OVERRIDE(decocass_type3_state,cbtime)
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(decocass_type3_state::cburnrub)
+void decocass_type3_state::cburnrub(machine_config &config)
+{
decocass(config);
/* basic machine hardware */
MCFG_MACHINE_RESET_OVERRIDE(decocass_type3_state,cburnrub)
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(decocass_type3_state::cgraplop)
+void decocass_type3_state::cgraplop(machine_config &config)
+{
decocass(config);
/* basic machine hardware */
MCFG_MACHINE_RESET_OVERRIDE(decocass_type3_state,cgraplop)
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(decocass_type3_state::cgraplop2)
+void decocass_type3_state::cgraplop2(machine_config &config)
+{
decocass(config);
/* basic machine hardware */
MCFG_MACHINE_RESET_OVERRIDE(decocass_type3_state,cgraplop2)
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(decocass_type3_state::clapapa)
+void decocass_type3_state::clapapa(machine_config &config)
+{
decocass(config);
/* basic machine hardware */
MCFG_MACHINE_RESET_OVERRIDE(decocass_type3_state,clapapa)
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(decocass_type3_state::cskater)
+void decocass_type3_state::cskater(machine_config &config)
+{
decocass(config);
/* basic machine hardware */
MCFG_MACHINE_RESET_OVERRIDE(decocass_type3_state,cskater)
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(decocass_type3_state::cprobowl)
+void decocass_type3_state::cprobowl(machine_config &config)
+{
decocass(config);
/* basic machine hardware */
MCFG_MACHINE_RESET_OVERRIDE(decocass_type3_state,cprobowl)
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(decocass_type3_state::cnightst)
+void decocass_type3_state::cnightst(machine_config &config)
+{
decocass(config);
/* basic machine hardware */
MCFG_MACHINE_RESET_OVERRIDE(decocass_type3_state,cnightst)
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(decocass_type3_state::cpsoccer)
+void decocass_type3_state::cpsoccer(machine_config &config)
+{
decocass(config);
/* basic machine hardware */
MCFG_MACHINE_RESET_OVERRIDE(decocass_type3_state,cpsoccer)
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(decocass_type3_state::csdtenis)
+void decocass_type3_state::csdtenis(machine_config &config)
+{
decocass(config);
/* basic machine hardware */
MCFG_MACHINE_RESET_OVERRIDE(decocass_type3_state,csdtenis)
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(decocass_type3_state::czeroize)
+void decocass_type3_state::czeroize(machine_config &config)
+{
decocass(config);
/* basic machine hardware */
MCFG_MACHINE_RESET_OVERRIDE(decocass_type3_state,czeroize)
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(decocass_type3_state::cppicf)
+void decocass_type3_state::cppicf(machine_config &config)
+{
decocass(config);
/* basic machine hardware */
MCFG_MACHINE_RESET_OVERRIDE(decocass_type3_state,cppicf)
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(decocass_type3_state::cfghtice)
+void decocass_type3_state::cfghtice(machine_config &config)
+{
decocass(config);
/* basic machine hardware */
MCFG_MACHINE_RESET_OVERRIDE(decocass_type3_state,cfghtice)
-MACHINE_CONFIG_END
+}
diff --git a/src/mame/drivers/decstation.cpp b/src/mame/drivers/decstation.cpp
index 93e23d9fb0c..4d7d412e1a9 100644
--- a/src/mame/drivers/decstation.cpp
+++ b/src/mame/drivers/decstation.cpp
@@ -543,7 +543,8 @@ static void dec_scsi_devices(device_slot_interface &device)
device.option_add_internal("asc", NCR53C94);
}
-MACHINE_CONFIG_START(decstation_state::kn01)
+void decstation_state::kn01(machine_config &config)
+{
R2000(config, m_maincpu, 16.67_MHz_XTAL, 65536, 131072);
m_maincpu->set_endianness(ENDIANNESS_LITTLE);
m_maincpu->set_fpu(mips1_device_base::MIPS_R3010Av4);
@@ -565,9 +566,10 @@ MACHINE_CONFIG_START(decstation_state::kn01)
MC146818(config, m_rtc, XTAL(32'768));
m_rtc->set_binary(true);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(decstation_state::kn02ba)
+void decstation_state::kn02ba(machine_config &config)
+{
R3000A(config, m_maincpu, 33.333_MHz_XTAL, 65536, 131072);
m_maincpu->set_endianness(ENDIANNESS_LITTLE);
m_maincpu->set_fpu(mips1_device_base::MIPS_R3010Av4);
@@ -626,7 +628,7 @@ MACHINE_CONFIG_START(decstation_state::kn02ba)
NSCSI_CONNECTOR(config, "scsibus:5", dec_scsi_devices, nullptr);
NSCSI_CONNECTOR(config, "scsibus:6", dec_scsi_devices, nullptr);
NSCSI_CONNECTOR(config, "scsibus:7", dec_scsi_devices, "asc", true).set_option_machine_config("asc", [this] (device_t *device) { ncr5394(device); });
-MACHINE_CONFIG_END
+}
static INPUT_PORTS_START( decstation )
PORT_START("UNUSED") // unused IN0
diff --git a/src/mame/drivers/decwritr.cpp b/src/mame/drivers/decwritr.cpp
index 63d6637136b..bcd83f09b89 100644
--- a/src/mame/drivers/decwritr.cpp
+++ b/src/mame/drivers/decwritr.cpp
@@ -408,25 +408,25 @@ void decwriter_state::machine_reset()
// MACHINE DRIVERS
//**************************************************************************
-MACHINE_CONFIG_START(decwriter_state::la120)
-
- MCFG_DEVICE_ADD("maincpu", I8080A, XTAL(18'000'000) / 9) // 18Mhz xtal on schematics, using an i8224 clock divider/reset sanitizer IC
- MCFG_DEVICE_PROGRAM_MAP(la120_mem)
- MCFG_DEVICE_IO_MAP(la120_io)
- //MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("prtlsi", dc305_device, inta_cb)
+void decwriter_state::la120(machine_config &config)
+{
+ I8080A(config, m_maincpu, XTAL(18'000'000) / 9); // 18Mhz xtal on schematics, using an i8224 clock divider/reset sanitizer IC
+ m_maincpu->set_addrmap(AS_PROGRAM, &decwriter_state::la120_mem);
+ m_maincpu->set_addrmap(AS_IO, &decwriter_state::la120_io);
+ //m_maincpu->set_irq_acknowledge_callback("prtlsi", FUNC(dc305_device::inta_cb));
/* video hardware */
//TODO: no actual screen! has 8 leds above the keyboard (similar to vt100/vk100) and has 4 7segment leds for showing an error code.
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_UPDATE_DRIVER(decwriter_state, screen_update)
- MCFG_SCREEN_SIZE(640,480)
- MCFG_SCREEN_VISIBLE_AREA(0,639, 0,479)
- MCFG_SCREEN_REFRESH_RATE(30)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_screen_update(FUNC(decwriter_state::screen_update));
+ screen.set_size(640,480);
+ screen.set_visarea_full();
+ screen.set_refresh_hz(30);
- //MCFG_DEVICE_ADD("prtlsi", DC305, XTAL(18'000'000) / 9)
- //MCFG_DC305_OUT_RXC_CB(WRITELINE("usart", i8251_device, write_rxc))
- //MCFG_DC305_OUT_TXC_CB(WRITELINE("usart", i8251_device, write_txc))
- //MCFG_DC305_OUT_INT_CB(WRITELINE("mainint", input_merger_device, in_w<0>))
+ //dc305_device &prtlsi(DC305(config, "prtlsi", XTAL(18'000'000) / 9));
+ //prtlsi.out_rxc_cb().set("usart", FUNC(i8251_device, write_rxc));
+ //prtlsi.out_txc_cb().set("usart", FUNC(i8251_device, write_txc));
+ //prtlsi.out_int_cb().set("mainint", FUNC(input_merger_device::in_w<0>));
LS259(config, m_ledlatch); // E2 on keyboard
m_ledlatch->q_out_cb<0>().set_output("led1").invert(); // ON LINE
@@ -442,8 +442,7 @@ MACHINE_CONFIG_START(decwriter_state::la120)
/* audio hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("beeper", BEEP, 786) // TODO: LA120 speaker is controlled by asic; VT100 has: 7.945us per serial clock = ~125865.324hz, / 160 clocks per char = ~ 786 hz
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
+ BEEP(config, m_speaker, 786).add_route(ALL_OUTPUTS, "mono", 0.50); // TODO: LA120 speaker is controlled by asic; VT100 has: 7.945us per serial clock = ~125865.324hz, / 160 clocks per char = ~ 786 hz
/* i8251 */
I8251(config, "usart", XTAL(18'000'000) / 9);
@@ -461,7 +460,7 @@ MACHINE_CONFIG_START(decwriter_state::la120)
*/
ER1400(config, m_nvm);
-MACHINE_CONFIG_END
+}
diff --git a/src/mame/drivers/deshoros.cpp b/src/mame/drivers/deshoros.cpp
index cb489a945da..8dfda215b70 100644
--- a/src/mame/drivers/deshoros.cpp
+++ b/src/mame/drivers/deshoros.cpp
@@ -266,21 +266,21 @@ void destiny_state::machine_reset()
bank_select_w(m_maincpu->space(AS_PROGRAM), 0, 0);
}
-MACHINE_CONFIG_START(destiny_state::destiny)
-
+void destiny_state::destiny(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M6809, XTAL(4'000'000)/2)
- MCFG_DEVICE_PROGRAM_MAP(main_map)
- MCFG_DEVICE_PERIODIC_INT_DRIVER(destiny_state, irq0_line_hold, 50) // timer irq controls update speed, frequency needs to be determined yet (2MHz through three 74LS390)
+ M6809(config, m_maincpu, XTAL(4'000'000)/2);
+ m_maincpu->set_addrmap(AS_PROGRAM, &destiny_state::main_map);
+ m_maincpu->set_periodic_int(FUNC(destiny_state::irq0_line_hold), attotime::from_hz(50)); // timer irq controls update speed, frequency needs to be determined yet (2MHz through three 74LS390)
/* video hardware (dummy) */
- MCFG_SCREEN_ADD("screen", LCD)
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_SIZE(6*16, 9*2)
- MCFG_SCREEN_VISIBLE_AREA(0, 6*16-1, 0, 9*2-1)
- MCFG_SCREEN_UPDATE_DRIVER(destiny_state, screen_update_destiny)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD));
+ screen.set_refresh_hz(50);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ screen.set_size(6*16, 9*2);
+ screen.set_visarea_full();
+ screen.set_screen_update(FUNC(destiny_state::screen_update_destiny));
+ screen.set_palette("palette");
PALETTE(config, "palette", palette_device::MONOCHROME);
@@ -288,7 +288,7 @@ MACHINE_CONFIG_START(destiny_state::destiny)
SPEAKER(config, "mono").front_center();
BEEP(config, m_beeper, 800); // TODO: determine exact frequency thru schematics
m_beeper->add_route(ALL_OUTPUTS, "mono", 0.50);
-MACHINE_CONFIG_END
+}
diff --git a/src/mame/drivers/destroyr.cpp b/src/mame/drivers/destroyr.cpp
index d51dd8c033c..33c33c66d7b 100644
--- a/src/mame/drivers/destroyr.cpp
+++ b/src/mame/drivers/destroyr.cpp
@@ -465,12 +465,12 @@ void destroyr_state::machine_start()
save_item(NAME(m_potsense));
}
-MACHINE_CONFIG_START(destroyr_state::destroyr)
-
+void destroyr_state::destroyr(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M6800, XTAL(12'096'000) / 16)
- MCFG_DEVICE_PROGRAM_MAP(destroyr_map)
- MCFG_DEVICE_PERIODIC_INT_DRIVER(destroyr_state, irq0_line_assert, 4*60)
+ M6800(config, m_maincpu, XTAL(12'096'000) / 16);
+ m_maincpu->set_addrmap(AS_PROGRAM, &destroyr_state::destroyr_map);
+ m_maincpu->set_periodic_int(FUNC(destroyr_state::irq0_line_assert), attotime::from_hz(4*60));
f9334_device &outlatch(F9334(config, "outlatch")); // F8
outlatch.q_out_cb<0>().set_output("led0").invert(); // LED 1
@@ -485,18 +485,18 @@ MACHINE_CONFIG_START(destroyr_state::destroyr)
WATCHDOG_TIMER(config, m_watchdog);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_SIZE(256, 262)
- MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 239)
- MCFG_SCREEN_UPDATE_DRIVER(destroyr_state, screen_update)
- MCFG_SCREEN_PALETTE(m_palette)
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_refresh_hz(60);
+ m_screen->set_size(256, 262);
+ m_screen->set_visarea(0, 255, 0, 239);
+ m_screen->set_screen_update(FUNC(destroyr_state::screen_update));
+ m_screen->set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_destroyr);
PALETTE(config, m_palette, FUNC(destroyr_state::destroyr_palette), 8);
/* sound hardware */
-MACHINE_CONFIG_END
+}
ROM_START( destroyr )
diff --git a/src/mame/drivers/dfruit.cpp b/src/mame/drivers/dfruit.cpp
index 1d5838668c5..634c4a59914 100644
--- a/src/mame/drivers/dfruit.cpp
+++ b/src/mame/drivers/dfruit.cpp
@@ -371,28 +371,28 @@ TIMER_DEVICE_CALLBACK_MEMBER(dfruit_state::dfruit_irq_scanline)
#define MASTER_CLOCK XTAL(14'000'000)
-MACHINE_CONFIG_START(dfruit_state::dfruit)
-
+void dfruit_state::dfruit(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu",Z80,MASTER_CLOCK/2) //!!! TC0091LVC !!!
- MCFG_DEVICE_PROGRAM_MAP(dfruit_map)
+ Z80(config, m_maincpu, MASTER_CLOCK/2); //!!! TC0091LVC !!!
+ m_maincpu->set_addrmap(AS_PROGRAM, &dfruit_state::dfruit_map);
TIMER(config, "scantimer").configure_scanline(FUNC(dfruit_state::dfruit_irq_scanline), "screen", 0, 1);
//MCFG_MACHINE_START_OVERRIDE(dfruit_state,4enraya)
//MCFG_MACHINE_RESET_OVERRIDE(dfruit_state,4enraya)
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(dfruit_state, screen_update)
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, dfruit_state, screen_vblank))
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(64*8, 32*8);
+ screen.set_visarea(0*8, 40*8-1, 2*8, 30*8-1);
+ screen.set_screen_update(FUNC(dfruit_state::screen_update));
+ screen.screen_vblank().set(FUNC(dfruit_state::screen_vblank));
+ screen.set_palette("palette");
GFXDECODE(config, "gfxdecode", "palette", gfx_dfruit);
- MCFG_PALETTE_ADD("palette", 0x100)
+ PALETTE(config, "palette").set_entries(0x100);
TC0091LVC(config, m_vdp, 0);
m_vdp->set_gfxdecode_tag("gfxdecode");
@@ -408,7 +408,7 @@ MACHINE_CONFIG_START(dfruit_state::dfruit)
opn.port_a_read_callback().set_ioport("IN4");
opn.port_b_read_callback().set_ioport("IN5");
opn.add_route(ALL_OUTPUTS, "mono", 0.30);
-MACHINE_CONFIG_END
+}
/***************************************************************************
diff --git a/src/mame/drivers/dgpix.cpp b/src/mame/drivers/dgpix.cpp
index ad3d02361e2..7e855c2e3c3 100644
--- a/src/mame/drivers/dgpix.cpp
+++ b/src/mame/drivers/dgpix.cpp
@@ -431,10 +431,11 @@ void dgpix_state::machine_reset()
}
-MACHINE_CONFIG_START(dgpix_state::dgpix)
- MCFG_DEVICE_ADD("maincpu", E132XT, 20000000*4) /* 4x internal multiplier */
- MCFG_DEVICE_PROGRAM_MAP(cpu_map)
- MCFG_DEVICE_IO_MAP(io_map)
+void dgpix_state::dgpix(machine_config &config)
+{
+ E132XT(config, m_maincpu, 20000000*4); /* 4x internal multiplier */
+ m_maincpu->set_addrmap(AS_PROGRAM, &dgpix_state::cpu_map);
+ m_maincpu->set_addrmap(AS_IO, &dgpix_state::io_map);
/*
unknown 16bit sound cpu, embedded inside the KS0164 sound chip
@@ -444,19 +445,19 @@ MACHINE_CONFIG_START(dgpix_state::dgpix)
NVRAM(config, "nvram", nvram_device::DEFAULT_NONE);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
- MCFG_SCREEN_SIZE(512, 256)
- MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
- MCFG_SCREEN_UPDATE_DRIVER(dgpix_state, screen_update_dgpix)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */);
+ screen.set_size(512, 256);
+ screen.set_visarea(0, 319, 0, 239);
+ screen.set_screen_update(FUNC(dgpix_state::screen_update_dgpix));
+ screen.set_palette("palette");
PALETTE(config, "palette", palette_device::BGR_555);
/* sound hardware */
// KS0164 sound chip
-MACHINE_CONFIG_END
+}
/*
diff --git a/src/mame/drivers/diablo1300.cpp b/src/mame/drivers/diablo1300.cpp
index 868a3f7867b..692ad0730c5 100644
--- a/src/mame/drivers/diablo1300.cpp
+++ b/src/mame/drivers/diablo1300.cpp
@@ -176,12 +176,13 @@ void diablo1300_state::machine_reset()
{
}
-MACHINE_CONFIG_START( diablo1300_state::diablo1300 )
+void diablo1300_state::diablo1300(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", DIABLO1300, XTAL(1'689'600))
- MCFG_DEVICE_PROGRAM_MAP(diablo1300_map)
- MCFG_DEVICE_DATA_MAP(diablo1300_data_map)
-MACHINE_CONFIG_END
+ DIABLO1300(config, m_maincpu, XTAL(1'689'600));
+ m_maincpu->set_addrmap(AS_PROGRAM, &diablo1300_state::diablo1300_map);
+ m_maincpu->set_addrmap(AS_DATA, &diablo1300_state::diablo1300_data_map);
+}
ROM_START( diablo )
ROM_REGION( 0x10000, "maincpu", ROMREGION_16BIT )
diff --git a/src/mame/drivers/dietgo.cpp b/src/mame/drivers/dietgo.cpp
index 5243065a098..12cfb54fb7a 100644
--- a/src/mame/drivers/dietgo.cpp
+++ b/src/mame/drivers/dietgo.cpp
@@ -205,26 +205,26 @@ DECO16IC_BANK_CB_MEMBER(dietgo_state::bank_callback)
return (bank & 0x70) << 8;
}
-MACHINE_CONFIG_START(dietgo_state::dietgo)
-
+void dietgo_state::dietgo(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, XTAL(28'000'000)/2) /* DE102 (verified on pcb) */
- MCFG_DEVICE_PROGRAM_MAP(dietgo_map)
- MCFG_DEVICE_OPCODES_MAP(decrypted_opcodes_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", dietgo_state, irq6_line_hold)
+ M68000(config, m_maincpu, XTAL(28'000'000)/2); /* DE102 (verified on pcb) */
+ m_maincpu->set_addrmap(AS_PROGRAM, &dietgo_state::dietgo_map);
+ m_maincpu->set_addrmap(AS_OPCODES, &dietgo_state::decrypted_opcodes_map);
+ m_maincpu->set_vblank_int("screen", FUNC(dietgo_state::irq6_line_hold));
H6280(config, m_audiocpu, XTAL(32'220'000)/4/3); /* Custom chip 45; XIN is 32.220MHZ/4, verified on pcb */
m_audiocpu->set_addrmap(AS_PROGRAM, &dietgo_state::sound_map);
m_audiocpu->add_route(ALL_OUTPUTS, "mono", 0); // internal sound unused
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(58)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
- MCFG_SCREEN_SIZE(40*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(dietgo_state, screen_update)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(58);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */);
+ screen.set_size(40*8, 32*8);
+ screen.set_visarea(0*8, 40*8-1, 1*8, 31*8-1);
+ screen.set_screen_update(FUNC(dietgo_state::screen_update));
+ screen.set_palette("palette");
PALETTE(config, "palette").set_format(palette_device::xBGR_888, 1024);
@@ -265,9 +265,8 @@ MACHINE_CONFIG_START(dietgo_state::dietgo)
ymsnd.irq_handler().set_inputline(m_audiocpu, 1); /* IRQ2 */
ymsnd.add_route(ALL_OUTPUTS, "mono", 0.45);
- MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(32'220'000)/32, okim6295_device::PIN7_HIGH) /* verified on pcb */
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60)
-MACHINE_CONFIG_END
+ OKIM6295(config, "oki", XTAL(32'220'000)/32, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.60); /* verified on pcb */
+}
/* Diet Go Go */
diff --git a/src/mame/drivers/digel804.cpp b/src/mame/drivers/digel804.cpp
index fc01f97e320..254f36741dc 100644
--- a/src/mame/drivers/digel804.cpp
+++ b/src/mame/drivers/digel804.cpp
@@ -631,11 +631,12 @@ WRITE_LINE_MEMBER( ep804_state::ep804_acia_irq_w )
{
}
-MACHINE_CONFIG_START(digel804_state::digel804)
+void digel804_state::digel804(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD(m_maincpu, Z80, 3.6864_MHz_XTAL/2) /* Z80A, X1(aka E0 on schematics): 3.6864Mhz */
- MCFG_DEVICE_PROGRAM_MAP(z80_mem_804_1_4)
- MCFG_DEVICE_IO_MAP(z80_io_1_4)
+ Z80(config, m_maincpu, 3.6864_MHz_XTAL/2); /* Z80A, X1(aka E0 on schematics): 3.6864Mhz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &digel804_state::z80_mem_804_1_4);
+ m_maincpu->set_addrmap(AS_IO, &digel804_state::z80_io_1_4);
config.m_minimum_quantum = attotime::from_hz(60);
ROC10937(config, m_vfd); // RIGHT_TO_LEFT
@@ -669,9 +670,8 @@ MACHINE_CONFIG_START(digel804_state::digel804)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
-MACHINE_CONFIG_END
+ SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25);
+}
void ep804_state::ep804(machine_config &config)
{
diff --git a/src/mame/drivers/digijet.cpp b/src/mame/drivers/digijet.cpp
index 21da2bc0113..f7644ae3353 100644
--- a/src/mame/drivers/digijet.cpp
+++ b/src/mame/drivers/digijet.cpp
@@ -50,11 +50,12 @@ void digijet_state::io_map(address_map &map)
static INPUT_PORTS_START( digijet )
INPUT_PORTS_END
-MACHINE_CONFIG_START(digijet_state::digijet)
+void digijet_state::digijet(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD(I8049_TAG, I8049, XTAL(11'000'000))
- MCFG_DEVICE_IO_MAP(io_map)
-MACHINE_CONFIG_END
+ I8049(config, m_maincpu, XTAL(11'000'000));
+ m_maincpu->set_addrmap(AS_IO, &digijet_state::io_map);
+}
ROM_START( digijet )
ROM_REGION( 0x800, I8049_TAG, 0 )
diff --git a/src/mame/drivers/dim68k.cpp b/src/mame/drivers/dim68k.cpp
index c9d74be39ab..ab51d8c4d88 100644
--- a/src/mame/drivers/dim68k.cpp
+++ b/src/mame/drivers/dim68k.cpp
@@ -311,25 +311,25 @@ void dim68k_state::kbd_put(u8 data)
m_term_data = data;
}
-MACHINE_CONFIG_START(dim68k_state::dim68k)
+void dim68k_state::dim68k(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, XTAL(10'000'000))
- MCFG_DEVICE_PROGRAM_MAP(dim68k_mem)
+ M68000(config, m_maincpu, XTAL(10'000'000));
+ m_maincpu->set_addrmap(AS_PROGRAM, &dim68k_state::dim68k_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_UPDATE_DEVICE("crtc", mc6845_device, screen_update)
- MCFG_SCREEN_SIZE(640, 480)
- MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 250-1)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(50);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ screen.set_screen_update("crtc", FUNC(mc6845_device::screen_update));
+ screen.set_size(640, 480);
+ screen.set_visarea(0, 640-1, 0, 250-1);
PALETTE(config, m_palette, palette_device::MONOCHROME);
GFXDECODE(config, "gfxdecode", m_palette, gfx_dim68k);
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
+ SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.50);
/* Devices */
UPD765A(config, "fdc", 8'000'000, true, true); // these options unknown
@@ -347,7 +347,7 @@ MACHINE_CONFIG_START(dim68k_state::dim68k)
// software lists
SOFTWARE_LIST(config, "flop_list").set_original("dim68k");
-MACHINE_CONFIG_END
+}
/*
68000
diff --git a/src/mame/drivers/divebomb.cpp b/src/mame/drivers/divebomb.cpp
index a0002de0685..c33052b34a1 100644
--- a/src/mame/drivers/divebomb.cpp
+++ b/src/mame/drivers/divebomb.cpp
@@ -386,19 +386,19 @@ GFXDECODE_END
*
*************************************/
-MACHINE_CONFIG_START(divebomb_state::divebomb)
-
- MCFG_DEVICE_ADD("fgcpu", Z80,XTAL1/4) // ?
- MCFG_DEVICE_PROGRAM_MAP(divebomb_fgcpu_map)
- MCFG_DEVICE_IO_MAP(divebomb_fgcpu_iomap)
+void divebomb_state::divebomb(machine_config &config)
+{
+ Z80(config, m_fgcpu, XTAL1/4); // ?
+ m_fgcpu->set_addrmap(AS_PROGRAM, &divebomb_state::divebomb_fgcpu_map);
+ m_fgcpu->set_addrmap(AS_IO, &divebomb_state::divebomb_fgcpu_iomap);
- MCFG_DEVICE_ADD("spritecpu", Z80,XTAL1/4) // ?
- MCFG_DEVICE_PROGRAM_MAP(divebomb_spritecpu_map)
- MCFG_DEVICE_IO_MAP(divebomb_spritecpu_iomap)
+ Z80(config, m_spritecpu, XTAL1/4); // ?
+ m_spritecpu->set_addrmap(AS_PROGRAM, &divebomb_state::divebomb_spritecpu_map);
+ m_spritecpu->set_addrmap(AS_IO, &divebomb_state::divebomb_spritecpu_iomap);
- MCFG_DEVICE_ADD("rozcpu", Z80,XTAL1/4) // ?
- MCFG_DEVICE_PROGRAM_MAP(divebomb_rozcpu_map)
- MCFG_DEVICE_IO_MAP(divebomb_rozcpu_iomap)
+ Z80(config, m_rozcpu, XTAL1/4); // ?
+ m_rozcpu->set_addrmap(AS_PROGRAM, &divebomb_state::divebomb_rozcpu_map);
+ m_rozcpu->set_addrmap(AS_IO, &divebomb_state::divebomb_rozcpu_iomap);
config.m_perfect_cpu_quantum = subtag("fgcpu");
@@ -452,19 +452,13 @@ MACHINE_CONFIG_START(divebomb_state::divebomb)
SPEAKER(config, "mono").front_center();
// All frequencies unverified
- MCFG_DEVICE_ADD("sn0", SN76489, XTAL1/8)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.15)
- MCFG_DEVICE_ADD("sn1", SN76489, XTAL1/8)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.15)
- MCFG_DEVICE_ADD("sn2", SN76489, XTAL1/8)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.15)
- MCFG_DEVICE_ADD("sn3", SN76489, XTAL1/8)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.15)
- MCFG_DEVICE_ADD("sn4", SN76489, XTAL1/8)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.15)
- MCFG_DEVICE_ADD("sn5", SN76489, XTAL1/8)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.15)
-MACHINE_CONFIG_END
+ SN76489(config, "sn0", XTAL1/8).add_route(ALL_OUTPUTS, "mono", 0.15);
+ SN76489(config, "sn1", XTAL1/8).add_route(ALL_OUTPUTS, "mono", 0.15);
+ SN76489(config, "sn2", XTAL1/8).add_route(ALL_OUTPUTS, "mono", 0.15);
+ SN76489(config, "sn3", XTAL1/8).add_route(ALL_OUTPUTS, "mono", 0.15);
+ SN76489(config, "sn4", XTAL1/8).add_route(ALL_OUTPUTS, "mono", 0.15);
+ SN76489(config, "sn5", XTAL1/8).add_route(ALL_OUTPUTS, "mono", 0.15);
+}
diff --git a/src/mame/drivers/diverboy.cpp b/src/mame/drivers/diverboy.cpp
index 2d40f4bb4c9..63f3eafefec 100644
--- a/src/mame/drivers/diverboy.cpp
+++ b/src/mame/drivers/diverboy.cpp
@@ -274,25 +274,25 @@ void diverboy_state::machine_start()
{
}
-MACHINE_CONFIG_START(diverboy_state::diverboy)
-
- MCFG_DEVICE_ADD("maincpu", M68000, 12000000) /* guess */
- MCFG_DEVICE_PROGRAM_MAP(diverboy_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", diverboy_state, irq6_line_hold)
+void diverboy_state::diverboy(machine_config &config)
+{
+ M68000(config, m_maincpu, 12000000); /* guess */
+ m_maincpu->set_addrmap(AS_PROGRAM, &diverboy_state::diverboy_map);
+ m_maincpu->set_vblank_int("screen", FUNC(diverboy_state::irq6_line_hold));
- MCFG_DEVICE_ADD("audiocpu", Z80, 4000000)
- MCFG_DEVICE_PROGRAM_MAP(snd_map)
+ Z80(config, m_audiocpu, 4000000);
+ m_audiocpu->set_addrmap(AS_PROGRAM, &diverboy_state::snd_map);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_diverboy);
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8+4, 40*8+1, 2*8, 32*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(diverboy_state, screen_update_diverboy)
- MCFG_SCREEN_PALETTE(m_palette)
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_refresh_hz(60);
+ m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ m_screen->set_size(64*8, 32*8);
+ m_screen->set_visarea(0*8+4, 40*8+1, 2*8, 32*8-1);
+ m_screen->set_screen_update(FUNC(diverboy_state::screen_update_diverboy));
+ m_screen->set_palette(m_palette);
PALETTE(config, m_palette).set_format(palette_device::xBGR_444, 0x400);
@@ -301,9 +301,8 @@ MACHINE_CONFIG_START(diverboy_state::diverboy)
GENERIC_LATCH_8(config, m_soundlatch);
- MCFG_DEVICE_ADD("oki", OKIM6295, 1320000, okim6295_device::PIN7_HIGH) // clock frequency & pin 7 not verified
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
-MACHINE_CONFIG_END
+ OKIM6295(config, m_oki, 1320000, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.50); // clock frequency & pin 7 not verified
+}
/*
diff --git a/src/mame/drivers/djboy.cpp b/src/mame/drivers/djboy.cpp
index e9f84591e37..23b4ea2caf6 100644
--- a/src/mame/drivers/djboy.cpp
+++ b/src/mame/drivers/djboy.cpp
@@ -478,22 +478,22 @@ void djboy_state::machine_reset()
m_scrolly = 0;
}
-MACHINE_CONFIG_START(djboy_state::djboy)
-
- MCFG_DEVICE_ADD("mastercpu", Z80, 12_MHz_XTAL / 2) // 6.000MHz, verified
- MCFG_DEVICE_PROGRAM_MAP(mastercpu_am)
- MCFG_DEVICE_IO_MAP(mastercpu_port_am)
+void djboy_state::djboy(machine_config &config)
+{
+ Z80(config, m_mastercpu, 12_MHz_XTAL / 2); // 6.000MHz, verified
+ m_mastercpu->set_addrmap(AS_PROGRAM, &djboy_state::mastercpu_am);
+ m_mastercpu->set_addrmap(AS_IO, &djboy_state::mastercpu_port_am);
TIMER(config, "scantimer").configure_scanline(FUNC(djboy_state::djboy_scanline), "screen", 0, 1);
- MCFG_DEVICE_ADD("slavecpu", Z80, 12_MHz_XTAL / 2) // 6.000MHz, verified
- MCFG_DEVICE_PROGRAM_MAP(slavecpu_am)
- MCFG_DEVICE_IO_MAP(slavecpu_port_am)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", djboy_state, irq0_line_hold)
+ Z80(config, m_slavecpu, 12_MHz_XTAL / 2); // 6.000MHz, verified
+ m_slavecpu->set_addrmap(AS_PROGRAM, &djboy_state::slavecpu_am);
+ m_slavecpu->set_addrmap(AS_IO, &djboy_state::slavecpu_port_am);
+ m_slavecpu->set_vblank_int("screen", FUNC(djboy_state::irq0_line_hold));
- MCFG_DEVICE_ADD("soundcpu", Z80, 12_MHz_XTAL / 2) // 6.000MHz, verified
- MCFG_DEVICE_PROGRAM_MAP(soundcpu_am)
- MCFG_DEVICE_IO_MAP(soundcpu_port_am)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", djboy_state, irq0_line_hold)
+ Z80(config, m_soundcpu, 12_MHz_XTAL / 2); // 6.000MHz, verified
+ m_soundcpu->set_addrmap(AS_PROGRAM, &djboy_state::soundcpu_am);
+ m_soundcpu->set_addrmap(AS_IO, &djboy_state::soundcpu_port_am);
+ m_soundcpu->set_vblank_int("screen", FUNC(djboy_state::irq0_line_hold));
I80C51(config, m_beast, 12_MHz_XTAL / 2); // 6.000MHz, verified
m_beast->port_in_cb<0>().set(FUNC(djboy_state::beast_p0_r));
@@ -513,17 +513,17 @@ MACHINE_CONFIG_START(djboy_state::djboy)
m_beastlatch->data_pending_callback().set_inputline(m_beast, INPUT_LINE_IRQ0);
m_beastlatch->set_separate_acknowledge(true);
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(57.5)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(256, 256)
- MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 256-16-1)
- MCFG_SCREEN_UPDATE_DRIVER(djboy_state, screen_update_djboy)
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, djboy_state, screen_vblank_djboy))
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(57.5);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(256, 256);
+ screen.set_visarea(0, 256-1, 16, 256-16-1);
+ screen.set_screen_update(FUNC(djboy_state::screen_update_djboy));
+ screen.screen_vblank().set(FUNC(djboy_state::screen_vblank_djboy));
+ screen.set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_djboy);
- MCFG_PALETTE_ADD("palette", 0x200)
+ PALETTE(config, m_palette).set_entries(0x200);
KANEKO_PANDORA(config, m_pandora, 0);
m_pandora->set_gfxdecode_tag(m_gfxdecode);
@@ -534,18 +534,18 @@ MACHINE_CONFIG_START(djboy_state::djboy)
GENERIC_LATCH_8(config, m_soundlatch);
m_soundlatch->data_pending_callback().set_inputline(m_soundcpu, INPUT_LINE_NMI);
- MCFG_DEVICE_ADD("ymsnd", YM2203, 12_MHz_XTAL / 4) // 3.000MHz, verified
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.40)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.40)
+ ym2203_device &ymsnd(YM2203(config, "ymsnd", 12_MHz_XTAL / 4)); // 3.000MHz, verified
+ ymsnd.add_route(ALL_OUTPUTS, "lspeaker", 0.40);
+ ymsnd.add_route(ALL_OUTPUTS, "rspeaker", 0.40);
- MCFG_DEVICE_ADD("oki_l", OKIM6295, 12_MHz_XTAL / 8, okim6295_device::PIN7_LOW) // 1.500MHz, verified
- MCFG_DEVICE_ROM("oki")
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.50)
+ okim6295_device &oki_l(OKIM6295(config, "oki_l", 12_MHz_XTAL / 8, okim6295_device::PIN7_LOW)); // 1.500MHz, verified
+ oki_l.set_device_rom_tag("oki");
+ oki_l.add_route(ALL_OUTPUTS, "lspeaker", 0.50);
- MCFG_DEVICE_ADD("oki_r", OKIM6295, 12_MHz_XTAL / 8, okim6295_device::PIN7_LOW) // 1.500MHz, verified
- MCFG_DEVICE_ROM("oki")
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.50)
-MACHINE_CONFIG_END
+ okim6295_device &oki_r(OKIM6295(config, "oki_r", 12_MHz_XTAL / 8, okim6295_device::PIN7_LOW)); // 1.500MHz, verified
+ oki_r.set_device_rom_tag("oki");
+ oki_r.add_route(ALL_OUTPUTS, "rspeaker", 0.50);
+}
ROM_START( djboy )
diff --git a/src/mame/drivers/djmain.cpp b/src/mame/drivers/djmain.cpp
index 1239d9c5df1..11354990fbc 100644
--- a/src/mame/drivers/djmain.cpp
+++ b/src/mame/drivers/djmain.cpp
@@ -1379,25 +1379,25 @@ void djmain_state::machine_reset()
*
*************************************/
-MACHINE_CONFIG_START(djmain_state::djmainj)
-
+void djmain_state::djmainj(machine_config &config)
+{
/* basic machine hardware */
// popn3 works 9.6 MHz or slower in some songs */
- //MCFG_DEVICE_ADD("maincpu", M68EC020, 18432000/2) /* 9.216 MHz!? */
- MCFG_DEVICE_ADD("maincpu", M68EC020, 32000000/4) /* 8.000 MHz!? */
- MCFG_DEVICE_PROGRAM_MAP(maincpu_djmainj)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", djmain_state, vb_interrupt)
+ //M68EC020(config, m_maincpu, 18432000/2); /* 9.216 MHz!? */
+ M68EC020(config, m_maincpu, 32000000/4); /* 8.000 MHz!? */
+ m_maincpu->set_addrmap(AS_PROGRAM, &djmain_state::maincpu_djmainj);
+ m_maincpu->set_vblank_int("screen", FUNC(djmain_state::vb_interrupt));
ATA_INTERFACE(config, m_ata).options(ata_devices, "hdd", nullptr, true);
m_ata->irq_handler().set(FUNC(djmain_state::ide_interrupt));
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(58)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 64*8)
- MCFG_SCREEN_VISIBLE_AREA(12, 512-12-1, 0, 384-1)
- MCFG_SCREEN_UPDATE_DRIVER(djmain_state, screen_update_djmain)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(58);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(64*8, 64*8);
+ screen.set_visarea(12, 512-12-1, 0, 384-1);
+ screen.set_screen_update(FUNC(djmain_state::screen_update_djmain));
PALETTE(config, m_palette).set_format(palette_device::xBGR_888, 0x4440 / 4);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_djmain);
@@ -1413,28 +1413,28 @@ MACHINE_CONFIG_START(djmain_state::djmainj)
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
- MCFG_DEVICE_ADD("k054539_1", K054539, XTAL(18'432'000))
- MCFG_DEVICE_ADDRESS_MAP(0, k054539_map)
- MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
- MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
+ k054539_device &k054539_1(K054539(config, "k054539_1", XTAL(18'432'000)));
+ k054539_1.set_addrmap(0, &djmain_state::k054539_map);
+ k054539_1.add_route(0, "lspeaker", 1.0);
+ k054539_1.add_route(1, "rspeaker", 1.0);
- MCFG_DEVICE_ADD("k054539_2", K054539, XTAL(18'432'000))
- MCFG_DEVICE_ADDRESS_MAP(0, k054539_map)
- MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
- MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
-MACHINE_CONFIG_END
+ k054539_device &k054539_2(K054539(config, "k054539_2", XTAL(18'432'000)));
+ k054539_2.set_addrmap(0, &djmain_state::k054539_map);
+ k054539_2.add_route(0, "lspeaker", 1.0);
+ k054539_2.add_route(1, "rspeaker", 1.0);
+}
-MACHINE_CONFIG_START(djmain_state::djmainu)
+void djmain_state::djmainu(machine_config &config)
+{
djmainj(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(maincpu_djmainu)
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_PROGRAM, &djmain_state::maincpu_djmainu);
+}
-MACHINE_CONFIG_START(djmain_state::djmaina)
+void djmain_state::djmaina(machine_config &config)
+{
djmainj(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(maincpu_djmaina)
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_PROGRAM, &djmain_state::maincpu_djmaina);
+}
diff --git a/src/mame/drivers/dkmb.cpp b/src/mame/drivers/dkmb.cpp
index 617f45138cf..02684188d89 100644
--- a/src/mame/drivers/dkmb.cpp
+++ b/src/mame/drivers/dkmb.cpp
@@ -119,24 +119,24 @@ static INPUT_PORTS_START( dkmb )
INPUT_PORTS_END
-MACHINE_CONFIG_START(dkmb_state::dkmb)
-
- MCFG_DEVICE_ADD("maincpu", PPC603R, 75'000'000) // Actually MPC603RRX266LC
- MCFG_DEVICE_PROGRAM_MAP(main_map)
+void dkmb_state::dkmb(machine_config &config)
+{
+ PPC603R(config, m_maincpu, 75'000'000); // Actually MPC603RRX266LC
+ m_maincpu->set_addrmap(AS_PROGRAM, &dkmb_state::main_map);
- MCFG_DEVICE_ADD("pic", PIC16C56, 4'000'000) // Actually PIC12C508, clock not verified
+ PIC16C56(config, "pic", 4'000'000); // Actually PIC12C508, clock not verified
- MCFG_SCREEN_ADD("screen", RASTER) // wrong
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_UPDATE_DRIVER(dkmb_state, screen_update)
- MCFG_SCREEN_SIZE(1024, 256)
- MCFG_SCREEN_VISIBLE_AREA(0, 1024-1, 0, 256-1)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); // wrong
+ screen.set_refresh_hz(60);
+ screen.set_screen_update(FUNC(dkmb_state::screen_update));
+ screen.set_size(1024, 256);
+ screen.set_visarea_full();
- MCFG_PALETTE_ADD("palette", 65536)
+ PALETTE(config, "palette").set_entries(65536);
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
-MACHINE_CONFIG_END
+}
ROM_START( dkmb )
diff --git a/src/mame/drivers/dkong.cpp b/src/mame/drivers/dkong.cpp
index 55af4b84ce7..9be28348ab8 100644
--- a/src/mame/drivers/dkong.cpp
+++ b/src/mame/drivers/dkong.cpp
@@ -1692,11 +1692,11 @@ WRITE_LINE_MEMBER(dkong_state::busreq_w )
m_dma8257->hlda_w(state);
}
-MACHINE_CONFIG_START(dkong_state::dkong_base)
-
+void dkong_state::dkong_base(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD(m_maincpu, Z80, CLOCK_1H)
- MCFG_DEVICE_PROGRAM_MAP(dkong_map)
+ Z80(config, m_maincpu, CLOCK_1H);
+ m_maincpu->set_addrmap(AS_PROGRAM, &dkong_state::dkong_map);
MCFG_MACHINE_START_OVERRIDE(dkong_state,dkong2b)
MCFG_MACHINE_RESET_OVERRIDE(dkong_state,dkong)
@@ -1710,19 +1710,20 @@ MACHINE_CONFIG_START(dkong_state::dkong_base)
m_dma8257->set_reverse_rw_mode(1); // why?
/* video hardware */
- MCFG_SCREEN_ADD(m_screen, RASTER)
- MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
- MCFG_SCREEN_UPDATE_DRIVER(dkong_state, screen_update_dkong)
- MCFG_SCREEN_PALETTE(m_palette)
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, dkong_state, vblank_irq))
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_raw(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART);
+ m_screen->set_screen_update(FUNC(dkong_state::screen_update_dkong));
+ m_screen->set_palette(m_palette);
+ m_screen->screen_vblank().set(FUNC(dkong_state::vblank_irq));
GFXDECODE(config, m_gfxdecode, m_palette, gfx_dkong);
PALETTE(config, m_palette, FUNC(dkong_state::dkong2b_palette), DK2B_PALETTE_LENGTH);
MCFG_VIDEO_START_OVERRIDE(dkong_state,dkong)
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(dkong_state::radarscp)
+void dkong_state::radarscp(machine_config &config)
+{
dkong_base(config);
/* basic machine hardware */
@@ -1732,9 +1733,10 @@ MACHINE_CONFIG_START(dkong_state::radarscp)
/* sound hardware */
radarscp_audio(config);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(dkong_state::radarscp1)
+void dkong_state::radarscp1(machine_config &config)
+{
dkong_base(config);
/* basic machine hardware */
@@ -1744,10 +1746,11 @@ MACHINE_CONFIG_START(dkong_state::radarscp1)
/* sound hardware */
radarscp1_audio(config);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(dkong_state::dkong2b)
+void dkong_state::dkong2b(machine_config &config)
+{
dkong_base(config);
/* basic machine hardware */
@@ -1758,7 +1761,7 @@ MACHINE_CONFIG_START(dkong_state::dkong2b)
dkong2b_audio(config);
WATCHDOG_TIMER(config, m_watchdog);
-MACHINE_CONFIG_END
+}
void dkong_state::dk_braze(machine_config &config)
{
@@ -1788,12 +1791,12 @@ void dkong_state::dk3_braze(machine_config &config)
EEPROM_93C46_8BIT(config, "eeprom");
}
-MACHINE_CONFIG_START(dkong_state::dkong3)
-
+void dkong_state::dkong3(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD(m_maincpu, Z80, XTAL(8'000'000) / 2) /* verified in schematics */
- MCFG_DEVICE_PROGRAM_MAP(dkong3_map)
- MCFG_DEVICE_IO_MAP(dkong3_io_map)
+ Z80(config, m_maincpu, XTAL(8'000'000) / 2); /* verified in schematics */
+ m_maincpu->set_addrmap(AS_PROGRAM, &dkong_state::dkong3_map);
+ m_maincpu->set_addrmap(AS_IO, &dkong_state::dkong3_io_map);
MCFG_MACHINE_START_OVERRIDE(dkong_state, dkong3)
@@ -1818,27 +1821,28 @@ MACHINE_CONFIG_START(dkong_state::dkong3)
/* sound hardware */
dkong3_audio(config);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(dkong_state::dkongjr)
+void dkong_state::dkongjr(machine_config &config)
+{
dkong_base(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(dkongjr_map)
+ m_maincpu->set_addrmap(AS_PROGRAM, &dkong_state::dkongjr_map);
/* sound hardware */
dkongjr_audio(config);
WATCHDOG_TIMER(config, m_watchdog);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(dkong_state::pestplce)
+void dkong_state::pestplce(machine_config &config)
+{
dkongjr(config);
/* video hardware */
m_palette->set_init(FUNC(dkong_state::dkong2b_palette)); // wrong!
m_screen->set_screen_update(FUNC(dkong_state::screen_update_pestplce));
-MACHINE_CONFIG_END
+}
void dkong_state::dkong3b(machine_config &config)
{
@@ -1893,35 +1897,35 @@ void dkong_state::spclforc(machine_config &config)
*
*************************************/
-MACHINE_CONFIG_START(dkong_state::strtheat)
+void dkong_state::strtheat(machine_config &config)
+{
dkong2b(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_IO_MAP(epos_readport)
+ m_maincpu->set_addrmap(AS_IO, &dkong_state::epos_readport);
MCFG_MACHINE_RESET_OVERRIDE(dkong_state,strtheat)
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(dkong_state::drakton)
+void dkong_state::drakton(machine_config &config)
+{
dkong2b(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_IO_MAP(epos_readport)
+ m_maincpu->set_addrmap(AS_IO, &dkong_state::epos_readport);
MCFG_MACHINE_RESET_OVERRIDE(dkong_state,drakton)
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(dkong_state::drktnjr)
+void dkong_state::drktnjr(machine_config &config)
+{
dkongjr(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_IO_MAP(epos_readport)
+ m_maincpu->set_addrmap(AS_IO, &dkong_state::epos_readport);
MCFG_MACHINE_RESET_OVERRIDE(dkong_state,drakton)
-MACHINE_CONFIG_END
+}
/*************************************
*
diff --git a/src/mame/drivers/dlair2.cpp b/src/mame/drivers/dlair2.cpp
index 2ce7003e0d7..daf30d47ebb 100644
--- a/src/mame/drivers/dlair2.cpp
+++ b/src/mame/drivers/dlair2.cpp
@@ -183,22 +183,22 @@ INTERRUPT_GEN_MEMBER(dlair2_state::dlair2_timer_irq)
device.execute().set_input_line_and_vector(0,HOLD_LINE,0x20/4);
}
-MACHINE_CONFIG_START(dlair2_state::dlair2)
-
+void dlair2_state::dlair2(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", I8088 , MAIN_CLOCK/3) /* Schematics show I8088 "max" CPU */
- MCFG_DEVICE_PROGRAM_MAP(dlair2_map)
- MCFG_DEVICE_IO_MAP(dlair2_io)
- MCFG_DEVICE_PERIODIC_INT_DRIVER(dlair2_state, dlair2_timer_irq, 60) // timer irq, TODO: timing
+ I8088(config, m_maincpu, MAIN_CLOCK/3); /* Schematics show I8088 "max" CPU */
+ m_maincpu->set_addrmap(AS_PROGRAM, &dlair2_state::dlair2_map);
+ m_maincpu->set_addrmap(AS_IO, &dlair2_state::dlair2_io);
+ m_maincpu->set_periodic_int(FUNC(dlair2_state::dlair2_timer_irq), attotime::from_hz(60)); // timer irq, TODO: timing
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
- MCFG_SCREEN_UPDATE_DRIVER(dlair2_state, screen_update)
- MCFG_SCREEN_SIZE(32*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500));
+ screen.set_screen_update(FUNC(dlair2_state::screen_update));
+ screen.set_size(32*8, 32*8);
+ screen.set_visarea_full();
+ screen.set_palette("palette");
// GFXDECODE(config, "gfxdecode", "palette", gfx_dlair2);
@@ -206,7 +206,7 @@ MACHINE_CONFIG_START(dlair2_state::dlair2)
/* sound hardware */
SPEAKER(config, "mono").front_center();
-MACHINE_CONFIG_END
+}
/***************************************************************************
diff --git a/src/mame/drivers/dmax8000.cpp b/src/mame/drivers/dmax8000.cpp
index f6a0a6cfae7..fea238d8e2e 100644
--- a/src/mame/drivers/dmax8000.cpp
+++ b/src/mame/drivers/dmax8000.cpp
@@ -152,11 +152,12 @@ static void floppies(device_slot_interface &device)
}
-MACHINE_CONFIG_START(dmax8000_state::dmax8000)
+void dmax8000_state::dmax8000(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, 4'000'000) // no idea what crystal is used, but 4MHz clock is confirmed
- MCFG_DEVICE_PROGRAM_MAP(dmax8000_mem)
- MCFG_DEVICE_IO_MAP(dmax8000_io)
+ Z80(config, m_maincpu, 4'000'000); // no idea what crystal is used, but 4MHz clock is confirmed
+ m_maincpu->set_addrmap(AS_PROGRAM, &dmax8000_state::dmax8000_mem);
+ m_maincpu->set_addrmap(AS_IO, &dmax8000_state::dmax8000_io);
MCFG_MACHINE_RESET_OVERRIDE(dmax8000_state, dmax8000)
z80ctc_device &ctc(Z80CTC(config, "ctc", 4_MHz_XTAL));
@@ -198,7 +199,7 @@ MACHINE_CONFIG_START(dmax8000_state::dmax8000)
// this is all guess
rtc.set_mode24(0); // 12 hour
rtc.set_day1(1); // monday
-MACHINE_CONFIG_END
+}
/* ROM definition */
diff --git a/src/mame/drivers/dmndrby.cpp b/src/mame/drivers/dmndrby.cpp
index 00f63ad35a8..0de837b2e2d 100644
--- a/src/mame/drivers/dmndrby.cpp
+++ b/src/mame/drivers/dmndrby.cpp
@@ -535,27 +535,28 @@ INTERRUPT_GEN_MEMBER(dmndrby_state::dderby_timer_irq)
m_maincpu->set_input_line_and_vector(0, HOLD_LINE, 0xcf); /* RST 08h */
}
-MACHINE_CONFIG_START(dmndrby_state::dderby)
+void dmndrby_state::dderby(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80,4000000) /* ? MHz */
- MCFG_DEVICE_PROGRAM_MAP(memmap)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", dmndrby_state, dderby_irq)
- MCFG_DEVICE_PERIODIC_INT_DRIVER(dmndrby_state, dderby_timer_irq, 244/2)
+ Z80(config, m_maincpu, 4000000); /* ? MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &dmndrby_state::memmap);
+ m_maincpu->set_vblank_int("screen", FUNC(dmndrby_state::dderby_irq));
+ m_maincpu->set_periodic_int(FUNC(dmndrby_state::dderby_timer_irq), attotime::from_hz(244/2));
- MCFG_DEVICE_ADD("audiocpu", Z80, 4000000) /* verified on schematics */
- MCFG_DEVICE_PROGRAM_MAP(dderby_sound_map)
+ Z80(config, m_audiocpu, 4000000); /* verified on schematics */
+ m_audiocpu->set_addrmap(AS_PROGRAM, &dmndrby_state::dderby_sound_map);
config.m_minimum_quantum = attotime::from_hz(6000);
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(256, 256)
- MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 256-16-1)
- MCFG_SCREEN_UPDATE_DRIVER(dmndrby_state, screen_update_dderby)
- MCFG_SCREEN_PALETTE(m_palette)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(256, 256);
+ screen.set_visarea(0, 256-1, 16, 256-16-1);
+ screen.set_screen_update(FUNC(dmndrby_state::screen_update_dderby));
+ screen.set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_dmndrby);
PALETTE(config, m_palette, FUNC(dmndrby_state::dmndrby_palette), 0x300, 0x20);
@@ -565,7 +566,7 @@ MACHINE_CONFIG_START(dmndrby_state::dderby)
GENERIC_LATCH_8(config, m_soundlatch);
AY8910(config, "ay1", 1789750).add_route(ALL_OUTPUTS, "mono", 0.35); // frequency guessed
-MACHINE_CONFIG_END
+}
ROM_START( dmndrby )
diff --git a/src/mame/drivers/dms5000.cpp b/src/mame/drivers/dms5000.cpp
index 06e14ea41c0..1eb4a93cc4a 100644
--- a/src/mame/drivers/dms5000.cpp
+++ b/src/mame/drivers/dms5000.cpp
@@ -94,25 +94,26 @@ uint32_t dms5000_state::screen_update_dms5000(screen_device &screen, bitmap_ind1
return 0;
}
-MACHINE_CONFIG_START(dms5000_state::dms5000)
+void dms5000_state::dms5000(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu",I8086, XTAL(9'830'400))
- MCFG_DEVICE_PROGRAM_MAP(dms5000_mem)
- MCFG_DEVICE_IO_MAP(dms5000_io)
+ I8086(config, m_maincpu, XTAL(9'830'400));
+ m_maincpu->set_addrmap(AS_PROGRAM, &dms5000_state::dms5000_mem);
+ m_maincpu->set_addrmap(AS_IO, &dms5000_state::dms5000_io);
- MCFG_DEVICE_ADD("cntlatch", LS259, 0) // V34
+ LS259(config, "cntlatch", 0); // V34
/* 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(640, 480)
- MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
- MCFG_SCREEN_UPDATE_DRIVER(dms5000_state, screen_update_dms5000)
- MCFG_SCREEN_PALETTE("palette")
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_refresh_hz(50);
+ m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ m_screen->set_size(640, 480);
+ m_screen->set_visarea_full();
+ m_screen->set_screen_update(FUNC(dms5000_state::screen_update_dms5000));
+ m_screen->set_palette("palette");
PALETTE(config, "palette", palette_device::MONOCHROME);
-MACHINE_CONFIG_END
+}
/* ROM definition */
ROM_START( dms5000 )
diff --git a/src/mame/drivers/dogfgt.cpp b/src/mame/drivers/dogfgt.cpp
index 90943c3da50..b419707cf60 100644
--- a/src/mame/drivers/dogfgt.cpp
+++ b/src/mame/drivers/dogfgt.cpp
@@ -227,26 +227,26 @@ void dogfgt_state::machine_reset()
}
-MACHINE_CONFIG_START(dogfgt_state::dogfgt)
-
+void dogfgt_state::dogfgt(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD(m_maincpu, M6502, 1500000) /* 1.5 MHz ???? */
- MCFG_DEVICE_PROGRAM_MAP(main_map)
- MCFG_DEVICE_PERIODIC_INT_DRIVER(dogfgt_state, irq0_line_hold, 16*60) /* ? controls music tempo */
+ M6502(config, m_maincpu, 1500000); /* 1.5 MHz ???? */
+ m_maincpu->set_addrmap(AS_PROGRAM, &dogfgt_state::main_map);
+ m_maincpu->set_periodic_int(FUNC(dogfgt_state::irq0_line_hold), attotime::from_hz(16*60)); /* ? controls music tempo */
- MCFG_DEVICE_ADD(m_subcpu, M6502, 1500000) /* 1.5 MHz ???? */
- MCFG_DEVICE_PROGRAM_MAP(sub_map)
+ M6502(config, m_subcpu, 1500000); /* 1.5 MHz ???? */
+ m_subcpu->set_addrmap(AS_PROGRAM, &dogfgt_state::sub_map);
config.m_minimum_quantum = attotime::from_hz(6000);
/* video hardware */
- MCFG_SCREEN_ADD(m_screen, RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
- MCFG_SCREEN_SIZE(32*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(dogfgt_state, screen_update)
- MCFG_SCREEN_PALETTE(m_palette)
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_refresh_hz(60);
+ m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */);
+ m_screen->set_size(32*8, 32*8);
+ m_screen->set_visarea(0*8, 32*8-1, 1*8, 31*8-1);
+ m_screen->set_screen_update(FUNC(dogfgt_state::screen_update));
+ m_screen->set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_dogfgt);
PALETTE(config, m_palette, FUNC(dogfgt_state::dogfgt_palette)).set_format(palette_device::BGR_233, 16 + 64);
@@ -256,7 +256,7 @@ MACHINE_CONFIG_START(dogfgt_state::dogfgt)
AY8910(config, m_ay[0], 1500000).add_route(ALL_OUTPUTS, "mono", 0.30);
AY8910(config, m_ay[1], 1500000).add_route(ALL_OUTPUTS, "mono", 0.30);
-MACHINE_CONFIG_END
+}
diff --git a/src/mame/drivers/dominob.cpp b/src/mame/drivers/dominob.cpp
index 913b7da384e..3daa7ceede5 100644
--- a/src/mame/drivers/dominob.cpp
+++ b/src/mame/drivers/dominob.cpp
@@ -302,22 +302,22 @@ static GFXDECODE_START( gfx_dominob )
GFXDECODE_END
-MACHINE_CONFIG_START(dominob_state::dominob)
-
+void dominob_state::dominob(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80,XTAL(12'000'000)/2)
- MCFG_DEVICE_PROGRAM_MAP(memmap)
- MCFG_DEVICE_IO_MAP(portmap)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", dominob_state, irq0_line_hold)
+ Z80(config, m_maincpu, XTAL(12'000'000)/2);
+ m_maincpu->set_addrmap(AS_PROGRAM, &dominob_state::memmap);
+ m_maincpu->set_addrmap(AS_IO, &dominob_state::portmap);
+ m_maincpu->set_vblank_int("screen", FUNC(dominob_state::irq0_line_hold));
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(59.1524)
- 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, 32*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(dominob_state, screen_update_dominob)
- MCFG_SCREEN_PALETTE(m_palette)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(59.1524);
+ 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, 32*8-1);
+ screen.set_screen_update(FUNC(dominob_state::screen_update_dominob));
+ screen.set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_dominob);
PALETTE(config, m_palette).set_format(palette_device::xRGB_444, 512);
@@ -327,7 +327,7 @@ MACHINE_CONFIG_START(dominob_state::dominob)
ym2149_device &aysnd(YM2149(config, "aysnd", XTAL(12'000'000)/4));
aysnd.port_b_read_callback().set_ioport("DSW");
aysnd.add_route(ALL_OUTPUTS, "mono", 0.30);
-MACHINE_CONFIG_END
+}
/***************************************************************************
diff --git a/src/mame/drivers/dooyong.cpp b/src/mame/drivers/dooyong.cpp
index 0a7836e1d07..64acce48ce0 100644
--- a/src/mame/drivers/dooyong.cpp
+++ b/src/mame/drivers/dooyong.cpp
@@ -1447,7 +1447,8 @@ void dooyong_z80_ym2203_state::sound_2203(machine_config &config)
ym2.add_route(ALL_OUTPUTS, "mono", 0.40);
}
-MACHINE_CONFIG_START(dooyong_z80_state::sound_2151)
+void dooyong_z80_state::sound_2151(machine_config &config)
+{
SPEAKER(config, "mono").front_center();
GENERIC_LATCH_8(config, "soundlatch");
@@ -1457,11 +1458,11 @@ MACHINE_CONFIG_START(dooyong_z80_state::sound_2151)
ymsnd.add_route(0, "mono", 0.50);
ymsnd.add_route(1, "mono", 0.50);
- MCFG_DEVICE_ADD("oki", OKIM6295, 1_MHz_XTAL, okim6295_device::PIN7_HIGH)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60)
-MACHINE_CONFIG_END
+ OKIM6295(config, "oki", 1_MHz_XTAL, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.60);
+}
-MACHINE_CONFIG_START(dooyong_state::sound_2151_4mhz)
+void dooyong_state::sound_2151_4mhz(machine_config &config)
+{
SPEAKER(config, "mono").front_center();
GENERIC_LATCH_8(config, "soundlatch");
@@ -1471,33 +1472,32 @@ MACHINE_CONFIG_START(dooyong_state::sound_2151_4mhz)
ymsnd.add_route(0, "mono", 0.50);
ymsnd.add_route(1, "mono", 0.50);
- MCFG_DEVICE_ADD("oki", OKIM6295, 16_MHz_XTAL/16, okim6295_device::PIN7_HIGH) /* 1MHz (16MHz/16 for most, 8Mhz/8 for Super-X) */
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60)
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(dooyong_z80_ym2203_state::lastday)
+ OKIM6295(config, "oki", 16_MHz_XTAL/16, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.60); /* 1MHz (16MHz/16 for most, 8Mhz/8 for Super-X) */
+}
+void dooyong_z80_ym2203_state::lastday(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, 16_MHz_XTAL/2) /* 8MHz verified for Last Day / D-day */
- MCFG_DEVICE_PROGRAM_MAP(lastday_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", dooyong_state, irq0_line_hold)
+ Z80(config, m_maincpu, 16_MHz_XTAL/2); /* 8MHz verified for Last Day / D-day */
+ m_maincpu->set_addrmap(AS_PROGRAM, &dooyong_z80_ym2203_state::lastday_map);
+ m_maincpu->set_vblank_int("screen", FUNC(dooyong_state::irq0_line_hold));
- MCFG_DEVICE_ADD("audiocpu", Z80, 16_MHz_XTAL/4) /* 4MHz verified for Last Day / D-day */
- MCFG_DEVICE_PROGRAM_MAP(lastday_sound_map)
+ Z80(config, m_audiocpu, 16_MHz_XTAL/4); /* 4MHz verified for Last Day / D-day */
+ m_audiocpu->set_addrmap(AS_PROGRAM, &dooyong_z80_ym2203_state::lastday_sound_map);
MCFG_MACHINE_START_OVERRIDE(dooyong_z80_ym2203_state, cpu_z80)
/* video hardware */
- MCFG_DEVICE_ADD(m_spriteram, BUFFERED_SPRITERAM8)
+ BUFFERED_SPRITERAM8(config, m_spriteram);
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 1*8, 31*8-1 )
- MCFG_SCREEN_UPDATE_DRIVER(dooyong_z80_ym2203_state, screen_update_lastday)
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(m_spriteram, buffered_spriteram8_device, vblank_copy_rising))
- MCFG_SCREEN_PALETTE(m_palette)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */);
+ screen.set_size(64*8, 32*8);
+ screen.set_visarea(8*8, (64-8)*8-1, 1*8, 31*8-1 );
+ screen.set_screen_update(FUNC(dooyong_z80_ym2203_state::screen_update_lastday));
+ screen.screen_vblank().set(m_spriteram, FUNC(buffered_spriteram8_device::vblank_copy_rising));
+ screen.set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_lastday);
PALETTE(config, m_palette).set_format(palette_device::xBGR_444, 1024);
@@ -1524,31 +1524,31 @@ MACHINE_CONFIG_START(dooyong_z80_ym2203_state::lastday)
ym2.irq_handler().set("soundirq", FUNC(input_merger_any_high_device::in_w<1>));
ym2.port_a_read_callback().set(FUNC(dooyong_z80_ym2203_state::unk_r));
ym2.add_route(ALL_OUTPUTS, "mono", 0.40);
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(dooyong_z80_ym2203_state::gulfstrm)
+}
+void dooyong_z80_ym2203_state::gulfstrm(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, 8000000) /* ??? */
- MCFG_DEVICE_PROGRAM_MAP(gulfstrm_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", dooyong_state, irq0_line_hold)
+ Z80(config, m_maincpu, 8000000); /* ??? */
+ m_maincpu->set_addrmap(AS_PROGRAM, &dooyong_z80_ym2203_state::gulfstrm_map);
+ m_maincpu->set_vblank_int("screen", FUNC(dooyong_state::irq0_line_hold));
- MCFG_DEVICE_ADD("audiocpu", Z80, 8000000) /* ??? */
- MCFG_DEVICE_PROGRAM_MAP(lastday_sound_map)
+ Z80(config, m_audiocpu, 8000000); /* ??? */
+ m_audiocpu->set_addrmap(AS_PROGRAM, &dooyong_z80_ym2203_state::lastday_sound_map);
MCFG_MACHINE_START_OVERRIDE(dooyong_z80_ym2203_state, cpu_z80)
/* video hardware */
- MCFG_DEVICE_ADD(m_spriteram, BUFFERED_SPRITERAM8)
+ BUFFERED_SPRITERAM8(config, m_spriteram);
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 1*8, 31*8-1 )
- MCFG_SCREEN_UPDATE_DRIVER(dooyong_z80_ym2203_state, screen_update_gulfstrm)
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(m_spriteram, buffered_spriteram8_device, vblank_copy_rising))
- MCFG_SCREEN_PALETTE(m_palette)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */);
+ screen.set_size(64*8, 32*8);
+ screen.set_visarea(8*8, (64-8)*8-1, 1*8, 31*8-1 );
+ screen.set_screen_update(FUNC(dooyong_z80_ym2203_state::screen_update_gulfstrm));
+ screen.screen_vblank().set(m_spriteram, FUNC(buffered_spriteram8_device::vblank_copy_rising));
+ screen.set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_lastday);
PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 1024);
@@ -1561,31 +1561,31 @@ MACHINE_CONFIG_START(dooyong_z80_ym2203_state::gulfstrm)
/* sound hardware */
sound_2203(config); /* 3.579545MHz */
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(dooyong_z80_ym2203_state::pollux)
+}
+void dooyong_z80_ym2203_state::pollux(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, 16_MHz_XTAL/2) /* 8Mhz */
- MCFG_DEVICE_PROGRAM_MAP(pollux_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", dooyong_state, irq0_line_hold)
+ Z80(config, m_maincpu, 16_MHz_XTAL/2); /* 8Mhz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &dooyong_z80_ym2203_state::pollux_map);
+ m_maincpu->set_vblank_int("screen", FUNC(dooyong_state::irq0_line_hold));
- MCFG_DEVICE_ADD("audiocpu", Z80, 16_MHz_XTAL/4) /* 4Mhz */
- MCFG_DEVICE_PROGRAM_MAP(pollux_sound_map)
+ Z80(config, m_audiocpu, 16_MHz_XTAL/4); /* 4Mhz */
+ m_audiocpu->set_addrmap(AS_PROGRAM, &dooyong_z80_ym2203_state::pollux_sound_map);
MCFG_MACHINE_START_OVERRIDE(dooyong_z80_ym2203_state, cpu_z80)
/* video hardware */
- MCFG_DEVICE_ADD(m_spriteram, BUFFERED_SPRITERAM8)
+ BUFFERED_SPRITERAM8(config, m_spriteram);
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 1*8, 31*8-1 )
- MCFG_SCREEN_UPDATE_DRIVER(dooyong_z80_ym2203_state, screen_update_pollux)
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(m_spriteram, buffered_spriteram8_device, vblank_copy_rising))
- MCFG_SCREEN_PALETTE(m_palette)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */);
+ screen.set_size(64*8, 32*8);
+ screen.set_visarea(8*8, (64-8)*8-1, 1*8, 31*8-1 );
+ screen.set_screen_update(FUNC(dooyong_z80_ym2203_state::screen_update_pollux));
+ screen.screen_vblank().set(m_spriteram, FUNC(buffered_spriteram8_device::vblank_copy_rising));
+ screen.set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_lastday);
PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 1024*2);
@@ -1598,31 +1598,31 @@ MACHINE_CONFIG_START(dooyong_z80_ym2203_state::pollux)
/* sound hardware */
sound_2203(config); /* 3.579545MHz or 4Mhz ??? */
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(dooyong_z80_state::bluehawk)
+}
+void dooyong_z80_state::bluehawk(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, 8000000) /* ??? */
- MCFG_DEVICE_PROGRAM_MAP(bluehawk_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", dooyong_state, irq0_line_hold)
+ Z80(config, m_maincpu, 8000000); /* ??? */
+ m_maincpu->set_addrmap(AS_PROGRAM, &dooyong_z80_state::bluehawk_map);
+ m_maincpu->set_vblank_int("screen", FUNC(dooyong_state::irq0_line_hold));
- MCFG_DEVICE_ADD("audiocpu", Z80, 4000000) /* ??? */
- MCFG_DEVICE_PROGRAM_MAP(bluehawk_sound_map)
+ Z80(config, m_audiocpu, 4000000); /* ??? */
+ m_audiocpu->set_addrmap(AS_PROGRAM, &dooyong_z80_state::bluehawk_sound_map);
MCFG_MACHINE_START_OVERRIDE(dooyong_z80_state, cpu_z80)
/* video hardware */
- MCFG_DEVICE_ADD(m_spriteram, BUFFERED_SPRITERAM8)
+ BUFFERED_SPRITERAM8(config, m_spriteram);
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 1*8, 31*8-1 )
- MCFG_SCREEN_UPDATE_DRIVER(dooyong_z80_state, screen_update_bluehawk)
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(m_spriteram, buffered_spriteram8_device, vblank_copy_rising))
- MCFG_SCREEN_PALETTE(m_palette)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */);
+ screen.set_size(64*8, 32*8);
+ screen.set_visarea(8*8, (64-8)*8-1, 1*8, 31*8-1 );
+ screen.set_screen_update(FUNC(dooyong_z80_state::screen_update_bluehawk));
+ screen.screen_vblank().set(m_spriteram, FUNC(buffered_spriteram8_device::vblank_copy_rising));
+ screen.set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_bluehawk);
PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 1024);
@@ -1637,31 +1637,31 @@ MACHINE_CONFIG_START(dooyong_z80_state::bluehawk)
/* sound hardware */
sound_2151(config); /* 3.579545MHz or 4Mhz ??? */
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(dooyong_z80_state::flytiger)
+}
+void dooyong_z80_state::flytiger(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, 16_MHz_XTAL/2) /* 8MHz */
- MCFG_DEVICE_PROGRAM_MAP(flytiger_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", dooyong_state, irq0_line_hold)
+ Z80(config, m_maincpu, 16_MHz_XTAL/2); /* 8MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &dooyong_z80_state::flytiger_map);
+ m_maincpu->set_vblank_int("screen", FUNC(dooyong_state::irq0_line_hold));
- MCFG_DEVICE_ADD("audiocpu", Z80, 16_MHz_XTAL/4) /* 4Mhz */
- MCFG_DEVICE_PROGRAM_MAP(bluehawk_sound_map)
+ Z80(config, m_audiocpu, 16_MHz_XTAL/4); /* 4Mhz */
+ m_audiocpu->set_addrmap(AS_PROGRAM, &dooyong_z80_state::bluehawk_sound_map);
MCFG_MACHINE_START_OVERRIDE(dooyong_z80_state, cpu_z80)
/* video hardware */
- MCFG_DEVICE_ADD(m_spriteram, BUFFERED_SPRITERAM8)
+ BUFFERED_SPRITERAM8(config, m_spriteram);
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 1*8, 31*8-1 )
- MCFG_SCREEN_UPDATE_DRIVER(dooyong_z80_state, screen_update_flytiger)
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(m_spriteram, buffered_spriteram8_device, vblank_copy_rising))
- MCFG_SCREEN_PALETTE(m_palette)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */);
+ screen.set_size(64*8, 32*8);
+ screen.set_visarea(8*8, (64-8)*8-1, 1*8, 31*8-1 );
+ screen.set_screen_update(FUNC(dooyong_z80_state::screen_update_flytiger));
+ screen.screen_vblank().set(m_spriteram, FUNC(buffered_spriteram8_device::vblank_copy_rising));
+ screen.set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_flytiger);
PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 1024*2);
@@ -1675,28 +1675,28 @@ MACHINE_CONFIG_START(dooyong_z80_state::flytiger)
/* sound hardware */
sound_2151(config);
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(dooyong_z80_state::primella)
+}
+void dooyong_z80_state::primella(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, 16_MHz_XTAL/2) /* 8MHz */
- MCFG_DEVICE_PROGRAM_MAP(primella_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", dooyong_state, irq0_line_hold)
+ Z80(config, m_maincpu, 16_MHz_XTAL/2); /* 8MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &dooyong_z80_state::primella_map);
+ m_maincpu->set_vblank_int("screen", FUNC(dooyong_state::irq0_line_hold));
- MCFG_DEVICE_ADD("audiocpu", Z80, 16_MHz_XTAL/4) /* 4MHz */
- MCFG_DEVICE_PROGRAM_MAP(bluehawk_sound_map)
+ Z80(config, m_audiocpu, 16_MHz_XTAL/4); /* 4MHz */
+ m_audiocpu->set_addrmap(AS_PROGRAM, &dooyong_z80_state::bluehawk_sound_map);
MCFG_MACHINE_START_OVERRIDE(dooyong_z80_state, cpu_z80)
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 0*8, 32*8-1 )
- MCFG_SCREEN_UPDATE_DRIVER(dooyong_z80_state, screen_update_primella)
- MCFG_SCREEN_PALETTE(m_palette)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */);
+ screen.set_size(64*8, 32*8);
+ screen.set_visarea(8*8, (64-8)*8-1, 0*8, 32*8-1 );
+ screen.set_screen_update(FUNC(dooyong_z80_state::screen_update_primella));
+ screen.set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_primella);
PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 1024);
@@ -1711,7 +1711,7 @@ MACHINE_CONFIG_START(dooyong_z80_state::primella)
/* sound hardware */
sound_2151_4mhz(config); /* PCB has only 1 OSC at 16Mhz */
-MACHINE_CONFIG_END
+}
TIMER_DEVICE_CALLBACK_MEMBER(dooyong_68k_state::scanline)
@@ -1726,26 +1726,26 @@ TIMER_DEVICE_CALLBACK_MEMBER(dooyong_68k_state::scanline)
}
-MACHINE_CONFIG_START(rshark_state::dooyong_68k)
-
+void rshark_state::dooyong_68k(machine_config &config)
+{
// basic machine hardware
- MCFG_DEVICE_ADD("maincpu", M68000, 8_MHz_XTAL) // 8MHz measured on Super-X
+ M68000(config, m_maincpu, 8_MHz_XTAL); // 8MHz measured on Super-X
TIMER(config, "scantimer").configure_scanline(FUNC(rshark_state::scanline), "screen", 0, 1);
- MCFG_DEVICE_ADD("audiocpu", Z80, 8_MHz_XTAL/2) // 4MHz measured on Super-X
- MCFG_DEVICE_PROGRAM_MAP(bluehawk_sound_map)
+ Z80(config, m_audiocpu, 8_MHz_XTAL/2); // 4MHz measured on Super-X
+ m_audiocpu->set_addrmap(AS_PROGRAM, &rshark_state::bluehawk_sound_map);
// video hardware
- MCFG_DEVICE_ADD(m_spriteram, BUFFERED_SPRITERAM16)
+ BUFFERED_SPRITERAM16(config, m_spriteram);
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) // not accurate
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(rshark_state, screen_update_rshark)
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(m_spriteram, buffered_spriteram16_device, vblank_copy_rising))
- MCFG_SCREEN_PALETTE(m_palette)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); // not accurate
+ screen.set_size(64*8, 32*8);
+ screen.set_visarea(8*8, (64-8)*8-1, 1*8, 31*8-1);
+ screen.set_screen_update(FUNC(rshark_state::screen_update_rshark));
+ screen.screen_vblank().set(m_spriteram, FUNC(buffered_spriteram16_device::vblank_copy_rising));
+ screen.set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_rshark);
PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 2048);
@@ -1760,43 +1760,43 @@ MACHINE_CONFIG_START(rshark_state::dooyong_68k)
// sound hardware
sound_2151_4mhz(config);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(rshark_state::rshark)
+void rshark_state::rshark(machine_config &config)
+{
dooyong_68k(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(rshark_map)
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_PROGRAM, &rshark_state::rshark_map);
+}
-MACHINE_CONFIG_START(rshark_state::superx)
+void rshark_state::superx(machine_config &config)
+{
dooyong_68k(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(superx_map)
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(popbingo_state::popbingo)
+ m_maincpu->set_addrmap(AS_PROGRAM, &rshark_state::superx_map);
+}
+void popbingo_state::popbingo(machine_config &config)
+{
// basic machine hardware
- MCFG_DEVICE_ADD("maincpu", M68000, 20_MHz_XTAL/2) // 10MHz measured
- MCFG_DEVICE_PROGRAM_MAP(popbingo_map)
+ M68000(config, m_maincpu, 20_MHz_XTAL/2); // 10MHz measured
+ m_maincpu->set_addrmap(AS_PROGRAM, &popbingo_state::popbingo_map);
TIMER(config, "scantimer").configure_scanline(FUNC(popbingo_state::scanline), "screen", 0, 1);
- MCFG_DEVICE_ADD("audiocpu", Z80, 16_MHz_XTAL/4) // 4MHz measured
- MCFG_DEVICE_PROGRAM_MAP(bluehawk_sound_map)
+ Z80(config, m_audiocpu, 16_MHz_XTAL/4); // 4MHz measured
+ m_audiocpu->set_addrmap(AS_PROGRAM, &popbingo_state::bluehawk_sound_map);
// video hardware
- MCFG_DEVICE_ADD(m_spriteram, BUFFERED_SPRITERAM16)
+ BUFFERED_SPRITERAM16(config, m_spriteram);
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) // not accurate
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(popbingo_state, screen_update_popbingo)
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(m_spriteram, buffered_spriteram16_device, vblank_copy_rising))
- MCFG_SCREEN_PALETTE(m_palette)
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_refresh_hz(60);
+ m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); // not accurate
+ m_screen->set_size(64*8, 32*8);
+ m_screen->set_visarea(8*8, (64-8)*8-1, 1*8, 31*8-1);
+ m_screen->set_screen_update(FUNC(popbingo_state::screen_update_popbingo));
+ m_screen->screen_vblank().set(m_spriteram, FUNC(buffered_spriteram16_device::vblank_copy_rising));
+ m_screen->set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_popbingo);
PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 2048);
@@ -1808,7 +1808,7 @@ MACHINE_CONFIG_START(popbingo_state::popbingo)
// sound hardware
sound_2151_4mhz(config);
-MACHINE_CONFIG_END
+}
} // anonymous namespace
diff --git a/src/mame/drivers/dorachan.cpp b/src/mame/drivers/dorachan.cpp
index a4c377f8cf2..9c08186054f 100644
--- a/src/mame/drivers/dorachan.cpp
+++ b/src/mame/drivers/dorachan.cpp
@@ -226,23 +226,23 @@ void dorachan_state::machine_reset()
m_prot_value = 0;
}
-MACHINE_CONFIG_START(dorachan_state::dorachan)
-
+void dorachan_state::dorachan(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, 2000000)
- MCFG_DEVICE_PROGRAM_MAP(dorachan_map)
- MCFG_DEVICE_IO_MAP(dorachan_io_map)
- MCFG_DEVICE_PERIODIC_INT_DRIVER(dorachan_state, irq0_line_hold, 2*60)
+ Z80(config, m_maincpu, 2000000);
+ m_maincpu->set_addrmap(AS_PROGRAM, &dorachan_state::dorachan_map);
+ m_maincpu->set_addrmap(AS_IO, &dorachan_state::dorachan_io_map);
+ m_maincpu->set_periodic_int(FUNC(dorachan_state::irq0_line_hold), attotime::from_hz(2*60));
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_SIZE(32*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_UPDATE_DRIVER(dorachan_state, screen_update_dorachan)
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_size(32*8, 32*8);
+ m_screen->set_visarea(0*8, 32*8-1, 1*8, 31*8-1);
+ m_screen->set_refresh_hz(60);
+ m_screen->set_screen_update(FUNC(dorachan_state::screen_update_dorachan));
PALETTE(config, m_palette, palette_device::BGR_3BIT);
-MACHINE_CONFIG_END
+}
diff --git a/src/mame/drivers/dotrikun.cpp b/src/mame/drivers/dotrikun.cpp
index cc4a1a22bec..0a379652e2c 100644
--- a/src/mame/drivers/dotrikun.cpp
+++ b/src/mame/drivers/dotrikun.cpp
@@ -197,26 +197,27 @@ void dotrikun_state::machine_reset()
m_color = 0;
}
-MACHINE_CONFIG_START(dotrikun_state::dotrikun)
-
+void dotrikun_state::dotrikun(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, MASTER_CLOCK)
- MCFG_DEVICE_PROGRAM_MAP(dotrikun_map)
- MCFG_DEVICE_IO_MAP(io_map)
+ Z80(config, m_maincpu, MASTER_CLOCK);
+ m_maincpu->set_addrmap(AS_PROGRAM, &dotrikun_state::dotrikun_map);
+ m_maincpu->set_addrmap(AS_IO, &dotrikun_state::io_map);
+
TIMER(config, "scanline_on").configure_scanline(FUNC(dotrikun_state::scanline_on), "screen", 0, 1);
TIMER(config, m_scanline_off_timer).configure_generic(FUNC(dotrikun_state::scanline_off));
TIMER(config, m_interrupt_timer).configure_generic(FUNC(dotrikun_state::interrupt));
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK, 128+128, 0, 128, 192+64, 0, 192)
- MCFG_SCREEN_UPDATE_DRIVER(dotrikun_state, screen_update)
- MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE)
- MCFG_SCREEN_PALETTE("palette")
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_raw(MASTER_CLOCK, 128+128, 0, 128, 192+64, 0, 192);
+ m_screen->set_screen_update(FUNC(dotrikun_state::screen_update));
+ m_screen->set_video_attributes(VIDEO_ALWAYS_UPDATE);
+ m_screen->set_palette("palette");
PALETTE(config, "palette", palette_device::RGB_3BIT);
/* no sound hardware */
-MACHINE_CONFIG_END
+}
/***************************************************************************
diff --git a/src/mame/drivers/dragon.cpp b/src/mame/drivers/dragon.cpp
index 82ddfb2d936..c336b62b628 100644
--- a/src/mame/drivers/dragon.cpp
+++ b/src/mame/drivers/dragon.cpp
@@ -187,13 +187,13 @@ static void dragon_alpha_floppies(device_slot_interface &device)
device.option_add("dd", FLOPPY_35_DD);
}
-MACHINE_CONFIG_START(dragon_state::dragon_base)
- MCFG_DEVICE_MODIFY(":")
- MCFG_DEVICE_CLOCK(14.218_MHz_XTAL / 16)
+void dragon_state::dragon_base(machine_config &config)
+{
+ this->set_clock(14.218_MHz_XTAL / 16);
// basic machine hardware
- MCFG_DEVICE_ADD("maincpu", MC6809E, DERIVED_CLOCK(1, 1))
- MCFG_DEVICE_PROGRAM_MAP(dragon_mem)
+ MC6809E(config, m_maincpu, DERIVED_CLOCK(1, 1));
+ m_maincpu->set_addrmap(AS_PROGRAM, &dragon_state::dragon_mem);
// devices
pia6821_device &pia0(PIA6821(config, PIA0_TAG, 0));
@@ -243,9 +243,10 @@ MACHINE_CONFIG_START(dragon_state::dragon_base)
SOFTWARE_LIST(config, "dragon_cass_list").set_original("dragon_cass");
SOFTWARE_LIST(config, "dragon_flop_list").set_original("dragon_flop");
SOFTWARE_LIST(config, "coco_cart_list").set_compatible("coco_cart");
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(dragon_state::dragon32)
+void dragon_state::dragon32(machine_config &config)
+{
dragon_base(config);
// internal ram
RAM(config, m_ram).set_default_size("32K").set_extra_options("64K");
@@ -255,7 +256,7 @@ MACHINE_CONFIG_START(dragon_state::dragon32)
cartslot.cart_callback().set([this] (int state) { cart_w(state != 0); }); // lambda because name is overloaded
cartslot.nmi_callback().set_inputline(m_maincpu, INPUT_LINE_NMI);
cartslot.halt_callback().set_inputline(m_maincpu, INPUT_LINE_HALT);
-MACHINE_CONFIG_END
+}
void dragon64_state::dragon64(machine_config &config)
{
@@ -278,13 +279,14 @@ void dragon64_state::dragon64(machine_config &config)
SOFTWARE_LIST(config, "dragon_os9_list").set_original("dragon_os9");
}
-MACHINE_CONFIG_START(dragon64_state::dragon64h)
+void dragon64_state::dragon64h(machine_config &config)
+{
dragon64(config);
// Replace M6809 with HD6309
- MCFG_DEVICE_REPLACE(MAINCPU_TAG, HD6309E, DERIVED_CLOCK(1, 1))
- MCFG_DEVICE_PROGRAM_MAP(dragon_mem)
+ HD6309E(config.replace(), m_maincpu, DERIVED_CLOCK(1, 1));
+ m_maincpu->set_addrmap(AS_PROGRAM, &dragon64_state::dragon_mem);
m_ram->set_default_size("64K");
-MACHINE_CONFIG_END
+}
void dragon200e_state::dragon200e(machine_config &config)
{
@@ -293,15 +295,16 @@ void dragon200e_state::dragon200e(machine_config &config)
m_vdg->set_get_char_rom(FUNC(dragon200e_state::char_rom_r));
}
-MACHINE_CONFIG_START(d64plus_state::d64plus)
+void d64plus_state::d64plus(machine_config &config)
+{
dragon64(config);
// video hardware
- MCFG_SCREEN_ADD("plus_screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_SIZE(640, 264)
- MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 264-1)
- MCFG_SCREEN_UPDATE_DEVICE("crtc", hd6845_device, screen_update)
+ screen_device &plus_screen(SCREEN(config, "plus_screen", SCREEN_TYPE_RASTER));
+ plus_screen.set_refresh_hz(50);
+ plus_screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ plus_screen.set_size(640, 264);
+ plus_screen.set_visarea_full();
+ plus_screen.set_screen_update("crtc", FUNC(hd6845_device::screen_update));
PALETTE(config, m_palette, palette_device::MONOCHROME);
// crtc
@@ -310,7 +313,7 @@ MACHINE_CONFIG_START(d64plus_state::d64plus)
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8);
m_crtc->set_update_row_callback(FUNC(d64plus_state::crtc_update_row), this);
-MACHINE_CONFIG_END
+}
void dragon_alpha_state::dgnalpha(machine_config &config)
{
@@ -356,10 +359,10 @@ void dragon_alpha_state::dgnalpha(machine_config &config)
SOFTWARE_LIST(config, "dragon_os9_list").set_original("dragon_os9");
}
-MACHINE_CONFIG_START(dragon64_state::tanodr64)
+void dragon64_state::tanodr64(machine_config &config)
+{
dragon64(config);
- MCFG_DEVICE_MODIFY(":")
- MCFG_DEVICE_CLOCK(14.318181_MHz_XTAL / 16)
+ this->set_clock(14.318181_MHz_XTAL / 16);
m_sam->set_clock(14.318181_MHz_XTAL);
@@ -371,17 +374,17 @@ MACHINE_CONFIG_START(dragon64_state::tanodr64)
m_vdg->input_callback().set(m_sam, FUNC(sam6883_device::display_read));
// cartridge
- MCFG_DEVICE_MODIFY(CARTRIDGE_TAG)
- MCFG_DEVICE_SLOT_INTERFACE(dragon_cart, "sdtandy_fdc", false)
-MACHINE_CONFIG_END
+ subdevice<cococart_slot_device>(CARTRIDGE_TAG)->set_default_option("sdtandy_fdc");
+}
-MACHINE_CONFIG_START(dragon64_state::tanodr64h)
+void dragon64_state::tanodr64h(machine_config &config)
+{
tanodr64(config);
// Replace M6809 CPU with HD6309 CPU
- MCFG_DEVICE_REPLACE(MAINCPU_TAG, HD6309E, DERIVED_CLOCK(1, 1))
- MCFG_DEVICE_PROGRAM_MAP(dragon_mem)
+ HD6309E(config.replace(), m_maincpu, DERIVED_CLOCK(1, 1));
+ m_maincpu->set_addrmap(AS_PROGRAM, &dragon64_state::dragon_mem);
m_ram->set_default_size("64K");
-MACHINE_CONFIG_END
+}
/***************************************************************************
diff --git a/src/mame/drivers/dragrace.cpp b/src/mame/drivers/dragrace.cpp
index ac22a6b9920..876a8a1527c 100644
--- a/src/mame/drivers/dragrace.cpp
+++ b/src/mame/drivers/dragrace.cpp
@@ -272,24 +272,24 @@ void dragrace_state::machine_reset()
m_gear[1] = 0;
}
-MACHINE_CONFIG_START(dragrace_state::dragrace)
-
+void dragrace_state::dragrace(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M6800, 12.096_MHz_XTAL / 12)
- MCFG_DEVICE_PROGRAM_MAP(dragrace_map)
- MCFG_DEVICE_PERIODIC_INT_DRIVER(dragrace_state, irq0_line_hold, 4*60)
+ M6800(config, m_maincpu, 12.096_MHz_XTAL / 12);
+ m_maincpu->set_addrmap(AS_PROGRAM, &dragrace_state::dragrace_map);
+ m_maincpu->set_periodic_int(FUNC(dragrace_state::irq0_line_hold), attotime::from_hz(4*60));
WATCHDOG_TIMER(config, m_watchdog).set_vblank_count("screen", 8);
TIMER(config, "frame_timer").configure_periodic(FUNC(dragrace_state::dragrace_frame_callback), attotime::from_hz(60));
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_SIZE(256, 262)
- MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 239)
- MCFG_SCREEN_UPDATE_DRIVER(dragrace_state, screen_update_dragrace)
- MCFG_SCREEN_PALETTE("palette")
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_refresh_hz(60);
+ m_screen->set_size(256, 262);
+ m_screen->set_visarea(0, 255, 0, 239);
+ m_screen->set_screen_update(FUNC(dragrace_state::screen_update_dragrace));
+ m_screen->set_palette("palette");
GFXDECODE(config, m_gfxdecode, "palette", gfx_dragrace);
PALETTE(config, "palette", FUNC(dragrace_state::dragrace_palette), 16);
@@ -298,9 +298,9 @@ MACHINE_CONFIG_START(dragrace_state::dragrace)
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
- MCFG_DEVICE_ADD("discrete", DISCRETE, dragrace_discrete)
- MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
- MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
+ DISCRETE(config, m_discrete, dragrace_discrete);
+ m_discrete->add_route(0, "lspeaker", 1.0);
+ m_discrete->add_route(1, "rspeaker", 1.0);
f9334_device &latch_f5(F9334(config, "latch_f5")); // F5
latch_f5.parallel_out_cb().set(FUNC(dragrace_state::speed1_w)).mask(0x1f); // set 3SPEED1-7SPEED1
@@ -324,7 +324,7 @@ MACHINE_CONFIG_START(dragrace_state::dragrace)
latch_e5.q_out_cb<3>().set(m_discrete, FUNC(discrete_device::write_line<DRAGRACE_MOTOR2_EN>)); // Motor2 enable
latch_e5.q_out_cb<5>().set(m_discrete, FUNC(discrete_device::write_line<DRAGRACE_HITONE_EN>)); // HiTone enable
latch_e5.q_out_cb<7>().set_output("led1"); // Player 2 Start Lamp
-MACHINE_CONFIG_END
+}
ROM_START( dragrace )
diff --git a/src/mame/drivers/dreambal.cpp b/src/mame/drivers/dreambal.cpp
index 84da2840c07..07169fefc68 100644
--- a/src/mame/drivers/dreambal.cpp
+++ b/src/mame/drivers/dreambal.cpp
@@ -311,21 +311,21 @@ void dreambal_state::machine_reset()
}
// xtals = 28.000, 9.8304
-MACHINE_CONFIG_START(dreambal_state::dreambal)
-
+void dreambal_state::dreambal(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, 28000000/2)
- MCFG_DEVICE_PROGRAM_MAP(dreambal_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", dreambal_state, irq6_line_hold) // 5 valid too?
+ M68000(config, m_maincpu, 28000000/2);
+ m_maincpu->set_addrmap(AS_PROGRAM, &dreambal_state::dreambal_map);
+ m_maincpu->set_vblank_int("screen", FUNC(dreambal_state::irq6_line_hold)); // 5 valid too?
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(58)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(dreambal_state, screen_update_dreambal)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(58);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */);
+ screen.set_size(64*8, 32*8);
+ screen.set_visarea(0*8, 40*8-1, 1*8, 31*8-1);
+ screen.set_screen_update(FUNC(dreambal_state::screen_update_dreambal));
+ screen.set_palette("palette");
PALETTE(config, "palette").set_format(palette_device::xBGR_444, 0x400/2);
GFXDECODE(config, "gfxdecode", "palette", gfx_dreambal);
@@ -356,10 +356,8 @@ MACHINE_CONFIG_START(dreambal_state::dreambal)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("oki", OKIM6295, 9830400/8, okim6295_device::PIN7_HIGH)
-
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
-MACHINE_CONFIG_END
+ OKIM6295(config, "oki", 9830400/8, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 1.00);
+}
diff --git a/src/mame/drivers/dreamwld.cpp b/src/mame/drivers/dreamwld.cpp
index cc93023d745..8267c94898b 100644
--- a/src/mame/drivers/dreamwld.cpp
+++ b/src/mame/drivers/dreamwld.cpp
@@ -746,48 +746,46 @@ void dreamwld_state::machine_reset()
}
-MACHINE_CONFIG_START(dreamwld_state::baryon)
-
+void dreamwld_state::baryon(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68EC020, XTAL(32'000'000)/2) /* 16MHz verified */
- MCFG_DEVICE_PROGRAM_MAP(baryon_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", dreamwld_state, irq4_line_hold)
+ M68EC020(config, m_maincpu, XTAL(32'000'000)/2); /* 16MHz verified */
+ m_maincpu->set_addrmap(AS_PROGRAM, &dreamwld_state::baryon_map);
+ m_maincpu->set_vblank_int("screen", FUNC(dreamwld_state::irq4_line_hold));
- MCFG_DEVICE_ADD("mcu", AT89C52, XTAL(32'000'000)/2) /* AT89C52 or 87(C)52, unknown clock (value from docs) */
- MCFG_DEVICE_DISABLE() /* Internal ROM aren't dumped */
+ AT89C52(config, "mcu", XTAL(32'000'000)/2).set_disable(); /* AT89C52 or 87(C)52, unknown clock (value from docs), internal ROMs aren't dumped */
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(57.793)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
- MCFG_SCREEN_SIZE(512,256)
- MCFG_SCREEN_VISIBLE_AREA(0, 308-1, 0, 224-1)
- MCFG_SCREEN_UPDATE_DRIVER(dreamwld_state, screen_update_dreamwld)
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, dreamwld_state, screen_vblank_dreamwld))
- MCFG_SCREEN_PALETTE(m_palette)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(57.793);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500));
+ screen.set_size(512,256);
+ screen.set_visarea(0, 308-1, 0, 224-1);
+ screen.set_screen_update(FUNC(dreamwld_state::screen_update_dreamwld));
+ screen.screen_vblank().set(FUNC(dreamwld_state::screen_vblank_dreamwld));
+ screen.set_palette(m_palette);
PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 0x1000);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_dreamwld);
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("oki1", OKIM6295, XTAL(32'000'000)/32, okim6295_device::PIN7_LOW) /* 1MHz verified */
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
- MCFG_DEVICE_ADDRESS_MAP(0, oki1_map)
-MACHINE_CONFIG_END
+ okim6295_device &oki1(OKIM6295(config, "oki1", XTAL(32'000'000)/32, okim6295_device::PIN7_LOW)); /* 1MHz verified */
+ oki1.add_route(ALL_OUTPUTS, "mono", 1.00);
+ oki1.set_addrmap(0, &dreamwld_state::oki1_map);
+}
-MACHINE_CONFIG_START(dreamwld_state::dreamwld)
+void dreamwld_state::dreamwld(machine_config &config)
+{
baryon(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(dreamwld_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", dreamwld_state, irq4_line_hold)
+ m_maincpu->set_addrmap(AS_PROGRAM, &dreamwld_state::dreamwld_map);
- MCFG_DEVICE_ADD("oki2", OKIM6295, XTAL(32'000'000)/32, okim6295_device::PIN7_LOW) /* 1MHz verified */
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
- MCFG_DEVICE_ADDRESS_MAP(0, oki2_map)
-MACHINE_CONFIG_END
+ okim6295_device &oki2(OKIM6295(config, "oki2", XTAL(32'000'000)/32, okim6295_device::PIN7_LOW)); /* 1MHz verified */
+ oki2.add_route(ALL_OUTPUTS, "mono", 1.00);
+ oki2.set_addrmap(0, &dreamwld_state::oki2_map);
+}
/*
@@ -1023,7 +1021,7 @@ ROM_START( rolcrush )
ROM_LOAD( "mx27c4000_5.bin", 0x000000, 0x80000, CRC(7afa6adb) SHA1(d4049e1068a5f7abf0e14d0b9fbbbc6dfb5d0170) )
ROM_REGION( 0x80000, "oki2", ROMREGION_ERASE00 ) /* OKI Samples - 2nd chip (neither OKI or rom is present, empty sockets) */
- /* not populared */
+ /* not populated */
ROM_REGION( 0x400000, "gfx1", 0 ) /* Sprite Tiles - decoded */
ROM_LOAD( "m27c160.8.bin", 0x000000, 0x200000, CRC(a509bc36) SHA1(aaa008e07e4b24ff9dbcee5925d6516d1662931c) )
@@ -1057,7 +1055,7 @@ ROM_START( rolcrusha )
ROM_LOAD( "5", 0x000000, 0x80000, CRC(7afa6adb) SHA1(d4049e1068a5f7abf0e14d0b9fbbbc6dfb5d0170) )
ROM_REGION( 0x80000, "oki2", ROMREGION_ERASE00 ) /* OKI Samples - 2nd chip (neither OKI or rom is present, empty sockets) */
- /* not populared */
+ /* not populated */
ROM_REGION( 0x400000, "gfx1", 0 ) /* Sprite Tiles - decoded */
ROM_LOAD( "8", 0x000000, 0x200000, CRC(01446191) SHA1(b106ed6c085fad617552972db78866a3346e4553) )
@@ -1219,7 +1217,7 @@ ROM_START( gaialast )
ROM_LOAD( "1", 0x000000, 0x80000, CRC(2dbad410) SHA1(bb788ea14bb605be9af9c8f8adec94ad1c17ab55) )
ROM_REGION( 0x80000, "oki2", ROMREGION_ERASE00 ) /* OKI Samples - 2nd chip (neither OKI or rom is present, empty sockets) */
- /* not populared */
+ /* not populated */
ROM_REGION( 0x800000, "gfx1", 0 ) /* Sprite Tiles - decoded */
ROM_LOAD( "10", 0x000000, 0x200000, CRC(5822ef93) SHA1(8ce22c30f8027f35c5f72eb6ce57a74540dd55da) )
diff --git a/src/mame/drivers/drgnmst.cpp b/src/mame/drivers/drgnmst.cpp
index 67be3d857a5..5928ea8497c 100644
--- a/src/mame/drivers/drgnmst.cpp
+++ b/src/mame/drivers/drgnmst.cpp
@@ -373,11 +373,11 @@ void drgnmst_state::machine_reset()
m_oki_bank[0] = 0;
}
-MACHINE_CONFIG_START(drgnmst_state::drgnmst)
-
- MCFG_DEVICE_ADD("maincpu", M68000, 12_MHz_XTAL) /* Confirmed */
- MCFG_DEVICE_PROGRAM_MAP(drgnmst_main_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", drgnmst_state, irq2_line_hold)
+void drgnmst_state::drgnmst(machine_config &config)
+{
+ M68000(config, m_maincpu, 12_MHz_XTAL); /* Confirmed */
+ m_maincpu->set_addrmap(AS_PROGRAM, &drgnmst_state::drgnmst_main_map);
+ m_maincpu->set_vblank_int("screen", FUNC(drgnmst_state::irq2_line_hold));
PIC16C55(config, m_audiocpu, 32_MHz_XTAL / 8); /* 4MHz - Confirmed */
m_audiocpu->read_a().set(FUNC(drgnmst_state::pic16c5x_port0_r));
@@ -389,26 +389,26 @@ MACHINE_CONFIG_START(drgnmst_state::drgnmst)
GFXDECODE(config, m_gfxdecode, m_palette, gfx_drgnmst);
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(8*8, 56*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(drgnmst_state, screen_update)
- MCFG_SCREEN_PALETTE(m_palette)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(64*8, 32*8);
+ screen.set_visarea(8*8, 56*8-1, 2*8, 30*8-1);
+ screen.set_screen_update(FUNC(drgnmst_state::screen_update));
+ screen.set_palette(m_palette);
PALETTE(config, m_palette).set_format(2, &drgnmst_state::drgnmst_IIIIRRRRGGGGBBBB, 0x2000);
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("oki1", OKIM6295, 32_MHz_XTAL / 32, okim6295_device::PIN7_HIGH)
- MCFG_DEVICE_ADDRESS_MAP(0, drgnmst_oki1_map)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
+ OKIM6295(config, m_oki[0], 32_MHz_XTAL / 32, okim6295_device::PIN7_HIGH);
+ m_oki[0]->set_addrmap(0, &drgnmst_state::drgnmst_oki1_map);
+ m_oki[0]->add_route(ALL_OUTPUTS, "mono", 1.00);
- MCFG_DEVICE_ADD("oki2", OKIM6295, 32_MHz_XTAL / 32, okim6295_device::PIN7_HIGH)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
-MACHINE_CONFIG_END
+ OKIM6295(config, m_oki[1], 32_MHz_XTAL / 32, okim6295_device::PIN7_HIGH);
+ m_oki[1]->add_route(ALL_OUTPUTS, "mono", 1.00);
+}
ROM_START( drgnmst )
diff --git a/src/mame/drivers/dribling.cpp b/src/mame/drivers/dribling.cpp
index 736a9ed58fe..107dedfec10 100644
--- a/src/mame/drivers/dribling.cpp
+++ b/src/mame/drivers/dribling.cpp
@@ -268,13 +268,13 @@ void dribling_state::machine_reset()
}
-MACHINE_CONFIG_START(dribling_state::dribling)
-
+void dribling_state::dribling(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, 5000000)
- MCFG_DEVICE_PROGRAM_MAP(dribling_map)
- MCFG_DEVICE_IO_MAP(io_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", dribling_state, dribling_irq_gen)
+ Z80(config, m_maincpu, 20_MHz_XTAL / 4); // XTAL verified, divider not
+ m_maincpu->set_addrmap(AS_PROGRAM, &dribling_state::dribling_map);
+ m_maincpu->set_addrmap(AS_IO, &dribling_state::io_map);
+ m_maincpu->set_vblank_int("screen", FUNC(dribling_state::dribling_irq_gen));
I8255A(config, m_ppi8255_0);
m_ppi8255_0->in_pa_callback().set(FUNC(dribling_state::dsr_r));
@@ -290,19 +290,19 @@ MACHINE_CONFIG_START(dribling_state::dribling)
WATCHDOG_TIMER(config, m_watchdog);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
- MCFG_SCREEN_SIZE(256, 256)
- MCFG_SCREEN_VISIBLE_AREA(0, 255, 40, 255)
- MCFG_SCREEN_UPDATE_DRIVER(dribling_state, screen_update_dribling)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_video_attributes(VIDEO_UPDATE_BEFORE_VBLANK);
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */);
+ screen.set_size(256, 256);
+ screen.set_visarea(0, 255, 40, 255);
+ screen.set_screen_update(FUNC(dribling_state::screen_update_dribling));
+ screen.set_palette("palette");
PALETTE(config, "palette", FUNC(dribling_state::dribling_palette), 256);
/* sound hardware */
-MACHINE_CONFIG_END
+}
diff --git a/src/mame/drivers/drtomy.cpp b/src/mame/drivers/drtomy.cpp
index 35e0857e9cb..722585083db 100644
--- a/src/mame/drivers/drtomy.cpp
+++ b/src/mame/drivers/drtomy.cpp
@@ -306,22 +306,22 @@ void drtomy_state::machine_reset()
m_oki_bank = 0;
}
-MACHINE_CONFIG_START(drtomy_state::drtomy)
-
+void drtomy_state::drtomy(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000,24000000/2) /* ? MHz */
- MCFG_DEVICE_PROGRAM_MAP(drtomy_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", drtomy_state, irq6_line_hold)
+ M68000(config, m_maincpu, 24000000/2); /* ? MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &drtomy_state::drtomy_map);
+ m_maincpu->set_vblank_int("screen", FUNC(drtomy_state::irq6_line_hold));
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
- MCFG_SCREEN_SIZE(32*16, 32*16)
- MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 16, 256-1)
- MCFG_SCREEN_UPDATE_DRIVER(drtomy_state, screen_update_drtomy)
- MCFG_SCREEN_PALETTE(m_palette)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */);
+ screen.set_size(32*16, 32*16);
+ screen.set_visarea(0, 320-1, 16, 256-1);
+ screen.set_screen_update(FUNC(drtomy_state::screen_update_drtomy));
+ screen.set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_drtomy);
PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 1024);
@@ -329,9 +329,8 @@ MACHINE_CONFIG_START(drtomy_state::drtomy)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("oki", OKIM6295, 26000000/16, okim6295_device::PIN7_LOW)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.8)
-MACHINE_CONFIG_END
+ OKIM6295(config, m_oki, 26000000/16, okim6295_device::PIN7_LOW).add_route(ALL_OUTPUTS, "mono", 0.8);
+}
ROM_START( drtomy )
diff --git a/src/mame/drivers/drw80pkr.cpp b/src/mame/drivers/drw80pkr.cpp
index f3cd2adb424..4cbdce3e6f1 100644
--- a/src/mame/drivers/drw80pkr.cpp
+++ b/src/mame/drivers/drw80pkr.cpp
@@ -451,7 +451,8 @@ INPUT_PORTS_END
* Machine Driver *
*************************/
-MACHINE_CONFIG_START(drw80pkr_state::drw80pkr)
+void drw80pkr_state::drw80pkr(machine_config &config)
+{
// basic machine hardware
I8039(config, m_maincpu, CPU_CLOCK);
m_maincpu->set_addrmap(AS_PROGRAM, &drw80pkr_state::map);
@@ -468,13 +469,13 @@ MACHINE_CONFIG_START(drw80pkr_state::drw80pkr)
m_maincpu->set_vblank_int("screen", FUNC(drw80pkr_state::irq0_line_hold));
// video hardware
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE((31+1)*8, (31+1)*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 24*8-1, 0*8, 27*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(drw80pkr_state, screen_update)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size((31+1)*8, (31+1)*8);
+ screen.set_visarea(0*8, 24*8-1, 0*8, 27*8-1);
+ screen.set_screen_update(FUNC(drw80pkr_state::screen_update));
+ screen.set_palette("palette");
GFXDECODE(config, m_gfxdecode, "palette", gfx_drw80pkr);
PALETTE(config, "palette", FUNC(drw80pkr_state::drw80pkr_palette), 16 * 16);
@@ -485,7 +486,7 @@ MACHINE_CONFIG_START(drw80pkr_state::drw80pkr)
SPEAKER(config, "mono").front_center();
AY8912(config, m_aysnd, 20000000/12).add_route(ALL_OUTPUTS, "mono", 0.75);
-MACHINE_CONFIG_END
+}
/*************************
* Rom Load *
diff --git a/src/mame/drivers/dual68.cpp b/src/mame/drivers/dual68.cpp
index e17ff9fb232..e49dbf70b65 100644
--- a/src/mame/drivers/dual68.cpp
+++ b/src/mame/drivers/dual68.cpp
@@ -93,24 +93,25 @@ void dual68_state::kbd_put(u8 data)
//m_term_data = data;
}
-MACHINE_CONFIG_START(dual68_state::dual68)
+void dual68_state::dual68(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, 16_MHz_XTAL / 2) // MC68000L8
- MCFG_DEVICE_PROGRAM_MAP(dual68_mem)
+ M68000(config, m_maincpu, 16_MHz_XTAL / 2); // MC68000L8
+ m_maincpu->set_addrmap(AS_PROGRAM, &dual68_state::dual68_mem);
- MCFG_DEVICE_ADD("siocpu", I8085A, 9.8304_MHz_XTAL) // NEC D8085AC-2
- MCFG_DEVICE_PROGRAM_MAP(sio4_mem)
- MCFG_DEVICE_IO_MAP(sio4_io)
+ i8085a_cpu_device &siocpu(I8085A(config, "siocpu", 9.8304_MHz_XTAL)); // NEC D8085AC-2
+ siocpu.set_addrmap(AS_PROGRAM, &dual68_state::sio4_mem);
+ siocpu.set_addrmap(AS_IO, &dual68_state::sio4_io);
/* video hardware */
GENERIC_TERMINAL(config, m_terminal, 0);
m_terminal->set_keyboard_callback(FUNC(dual68_state::kbd_put));
- MCFG_DEVICE_ADD("usart1", MC2661, 9.8304_MHz_XTAL / 2) // SCN2661B
- MCFG_DEVICE_ADD("usart2", MC2661, 9.8304_MHz_XTAL / 2) // SCN2661B
- MCFG_DEVICE_ADD("usart3", MC2661, 9.8304_MHz_XTAL / 2) // SCN2661B
- MCFG_DEVICE_ADD("usart4", MC2661, 9.8304_MHz_XTAL / 2) // SCN2661B
-MACHINE_CONFIG_END
+ MC2661(config, "usart1", 9.8304_MHz_XTAL / 2); // SCN2661B
+ MC2661(config, "usart2", 9.8304_MHz_XTAL / 2); // SCN2661B
+ MC2661(config, "usart3", 9.8304_MHz_XTAL / 2); // SCN2661B
+ MC2661(config, "usart4", 9.8304_MHz_XTAL / 2); // SCN2661B
+}
/* ROM definition */
ROM_START( dual68 )
diff --git a/src/mame/drivers/duet16.cpp b/src/mame/drivers/duet16.cpp
index 07f469bf14e..a0d31db2481 100644
--- a/src/mame/drivers/duet16.cpp
+++ b/src/mame/drivers/duet16.cpp
@@ -353,7 +353,8 @@ static DEVICE_INPUT_DEFAULTS_START(keyboard)
DEVICE_INPUT_DEFAULTS( "RS232_STOPBITS", 0xff, RS232_STOPBITS_2 )
DEVICE_INPUT_DEFAULTS_END
-MACHINE_CONFIG_START(duet16_state::duet16)
+void duet16_state::duet16(machine_config &config)
+{
I8086(config, m_maincpu, 24_MHz_XTAL / 3);
m_maincpu->set_addrmap(AS_PROGRAM, &duet16_state::duet16_mem);
m_maincpu->set_addrmap(AS_IO, &duet16_state::duet16_io);
@@ -423,16 +424,16 @@ MACHINE_CONFIG_START(duet16_state::duet16)
crtc.set_char_width(8);
crtc.set_update_row_callback(FUNC(duet16_state::crtc_update_row), this);
- MCFG_PALETTE_ADD("palette", 8)
+ PALETTE(config, m_pal).set_entries(8);
PALETTE(config, m_chrpal, palette_device::BRG_3BIT);
GFXDECODE(config, "gfxdecode", m_chrpal, gfx_duet16);
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_SIZE(640, 480)
- MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
- MCFG_SCREEN_UPDATE_DEVICE("crtc", h46505_device, screen_update)
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_refresh_hz(60);
+ m_screen->set_size(640, 480);
+ m_screen->set_visarea_full();
+ m_screen->set_screen_update("crtc", FUNC(h46505_device::screen_update));
MSM58321(config, m_rtc, 32768_Hz_XTAL);
m_rtc->d0_handler().set(FUNC(duet16_state::rtc_d0_w));
@@ -442,7 +443,7 @@ MACHINE_CONFIG_START(duet16_state::duet16)
m_rtc->busy_handler().set(FUNC(duet16_state::rtc_busy_w));
m_rtc->set_year0(1980);
m_rtc->set_default_24h(true);
-MACHINE_CONFIG_END
+}
ROM_START(duet16)
ROM_REGION(0x2000, "rom", 0)
diff --git a/src/mame/drivers/dunhuang.cpp b/src/mame/drivers/dunhuang.cpp
index 163ae690c7b..2ef9246b647 100644
--- a/src/mame/drivers/dunhuang.cpp
+++ b/src/mame/drivers/dunhuang.cpp
@@ -804,27 +804,27 @@ void dunhuang_state::machine_reset()
}
-MACHINE_CONFIG_START(dunhuang_state::dunhuang)
-
+void dunhuang_state::dunhuang(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80,12000000/2)
- MCFG_DEVICE_PROGRAM_MAP(dunhuang_map)
- MCFG_DEVICE_IO_MAP(dunhuang_io_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", dunhuang_state, irq0_line_hold)
+ Z80(config, m_maincpu, 12000000/2);
+ m_maincpu->set_addrmap(AS_PROGRAM, &dunhuang_state::dunhuang_map);
+ m_maincpu->set_addrmap(AS_IO, &dunhuang_state::dunhuang_io_map);
+ m_maincpu->set_vblank_int("screen", FUNC(dunhuang_state::irq0_line_hold));
WATCHDOG_TIMER(config, "watchdog").set_time(attotime::from_seconds(5));
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(512, 256)
- MCFG_SCREEN_VISIBLE_AREA(0+8, 512-8-1, 0+16, 256-16-1)
- MCFG_SCREEN_UPDATE_DRIVER(dunhuang_state, screen_update)
- MCFG_SCREEN_PALETTE("palette")
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_refresh_hz(60);
+ m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ m_screen->set_size(512, 256);
+ m_screen->set_visarea(0+8, 512-8-1, 0+16, 256-16-1);
+ m_screen->set_screen_update(FUNC(dunhuang_state::screen_update));
+ m_screen->set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_dunhuang);
- MCFG_PALETTE_ADD("palette", 0x100)
+ PALETTE(config, m_palette).set_entries(0x100);
ramdac_device &ramdac(RAMDAC(config, "ramdac", 0, m_palette)); // HMC HM86171 VGA 256 colour RAMDAC
ramdac.set_addrmap(0, &dunhuang_state::ramdac_map);
@@ -839,9 +839,8 @@ MACHINE_CONFIG_START(dunhuang_state::dunhuang)
ay8910.port_a_write_callback().set(FUNC(dunhuang_state::input_w));
ay8910.add_route(ALL_OUTPUTS, "mono", 0.30);
- MCFG_DEVICE_ADD("oki", OKIM6295, 12000000/8, okim6295_device::PIN7_HIGH)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
-MACHINE_CONFIG_END
+ OKIM6295(config, "oki", 12000000/8, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.80);
+}
/***************************************************************************
diff --git a/src/mame/drivers/dvk_kcgd.cpp b/src/mame/drivers/dvk_kcgd.cpp
index 68ad6b8f872..d654e026898 100644
--- a/src/mame/drivers/dvk_kcgd.cpp
+++ b/src/mame/drivers/dvk_kcgd.cpp
@@ -346,7 +346,8 @@ static GFXDECODE_START( gfx_kcgd )
GFXDECODE_ENTRY("maincpu", 0112236, kcgd_charlayout, 0, 1)
GFXDECODE_END
-MACHINE_CONFIG_START(kcgd_state::kcgd)
+void kcgd_state::kcgd(machine_config &config)
+{
K1801VM2(config, m_maincpu, XTAL(30'800'000)/4);
m_maincpu->set_addrmap(AS_PROGRAM, &kcgd_state::kcgd_mem);
m_maincpu->set_initial_mode(0100000);
@@ -355,12 +356,12 @@ MACHINE_CONFIG_START(kcgd_state::kcgd)
scantimer.configure_periodic(FUNC(kcgd_state::scanline_callback), attotime::from_hz(50*28*11)); // XXX verify
scantimer.set_start_delay(attotime::from_hz(XTAL(30'800'000)/KCGD_HORZ_START));
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_UPDATE_DRIVER(kcgd_state, screen_update)
- MCFG_SCREEN_RAW_PARAMS(XTAL(30'800'000), KCGD_TOTAL_HORZ, KCGD_HORZ_START,
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_screen_update(FUNC(kcgd_state::screen_update));
+ m_screen->set_raw(XTAL(30'800'000), KCGD_TOTAL_HORZ, KCGD_HORZ_START,
KCGD_HORZ_START+KCGD_DISP_HORZ, KCGD_TOTAL_VERT, KCGD_VERT_START,
KCGD_VERT_START+KCGD_DISP_VERT);
- MCFG_SCREEN_PALETTE(m_palette)
+ m_screen->set_palette(m_palette);
PALETTE(config, m_palette, FUNC(kcgd_state::kcgd_palette), 16);
@@ -372,7 +373,7 @@ MACHINE_CONFIG_START(kcgd_state::kcgd)
clock_device &keyboard_clock(CLOCK(config, "keyboard_clock", 4800*16));
keyboard_clock.signal_handler().set(FUNC(kcgd_state::write_keyboard_clock));
#endif
-MACHINE_CONFIG_END
+}
ROM_START( dvk_kcgd )
ROM_REGION16_BE(0x100000,"maincpu", ROMREGION_ERASE00)
diff --git a/src/mame/drivers/dvk_ksm.cpp b/src/mame/drivers/dvk_ksm.cpp
index 1dc84215d1a..a1e0b109afa 100644
--- a/src/mame/drivers/dvk_ksm.cpp
+++ b/src/mame/drivers/dvk_ksm.cpp
@@ -414,11 +414,12 @@ static GFXDECODE_START( gfx_ksm )
GFXDECODE_ENTRY("chargen", 0x0000, ksm_charlayout, 0, 1)
GFXDECODE_END
-MACHINE_CONFIG_START(ksm_state::ksm)
- MCFG_DEVICE_ADD("maincpu", I8080, XTAL(15'400'000)/10)
- MCFG_DEVICE_PROGRAM_MAP(ksm_mem)
- MCFG_DEVICE_IO_MAP(ksm_io)
- MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("pic8259", pic8259_device, inta_cb)
+void ksm_state::ksm(machine_config &config)
+{
+ I8080(config, m_maincpu, XTAL(15'400'000)/10);
+ m_maincpu->set_addrmap(AS_PROGRAM, &ksm_state::ksm_mem);
+ m_maincpu->set_addrmap(AS_IO, &ksm_state::ksm_io);
+ m_maincpu->set_irq_acknowledge_callback("pic8259", FUNC(pic8259_device::inta_cb));
TIMER(config, "scantimer").configure_scanline(FUNC(ksm_state::scanline_callback), "screen", 0, 1);
@@ -464,7 +465,7 @@ MACHINE_CONFIG_START(ksm_state::ksm)
// baud rate is supposed to be 4800 but keyboard is slightly faster
clock_device &keyboard_clock(CLOCK(config, "keyboard_clock", 4960*16));
keyboard_clock.signal_handler().set(FUNC(ksm_state::write_keyboard_clock));
-MACHINE_CONFIG_END
+}
ROM_START( dvk_ksm )
ROM_REGION(0x1000, "maincpu", ROMREGION_ERASE00)
diff --git a/src/mame/drivers/dynadice.cpp b/src/mame/drivers/dynadice.cpp
index 7456a37d451..73048c13abd 100644
--- a/src/mame/drivers/dynadice.cpp
+++ b/src/mame/drivers/dynadice.cpp
@@ -260,28 +260,28 @@ void dynadice_state::machine_reset()
m_ay_data = 0;
}
-MACHINE_CONFIG_START(dynadice_state::dynadice)
-
+void dynadice_state::dynadice(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD(m_maincpu, I8080, 18.432_MHz_XTAL / 8)
- MCFG_DEVICE_PROGRAM_MAP(dynadice_map)
- MCFG_DEVICE_IO_MAP(dynadice_io_map)
+ I8080(config, m_maincpu, 18.432_MHz_XTAL / 8);
+ m_maincpu->set_addrmap(AS_PROGRAM, &dynadice_state::dynadice_map);
+ m_maincpu->set_addrmap(AS_IO, &dynadice_state::dynadice_io_map);
- MCFG_DEVICE_ADD("audiocpu", Z80, 18.432_MHz_XTAL / 6)
- MCFG_DEVICE_PROGRAM_MAP(dynadice_sound_map)
- MCFG_DEVICE_IO_MAP(dynadice_sound_io_map)
+ z80_device &audiocpu(Z80(config, "audiocpu", 18.432_MHz_XTAL / 6));
+ audiocpu.set_addrmap(AS_PROGRAM, &dynadice_state::dynadice_sound_map);
+ audiocpu.set_addrmap(AS_IO, &dynadice_state::dynadice_sound_io_map);
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(256+16, 256)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 34*8-1, 3*8, 28*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(dynadice_state, screen_update)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(256+16, 256);
+ screen.set_visarea(0*8, 34*8-1, 3*8, 28*8-1);
+ screen.set_screen_update(FUNC(dynadice_state::screen_update));
+ screen.set_palette("palette");
GFXDECODE(config, m_gfxdecode, "palette", gfx_dynadice);
PALETTE(config, "palette", palette_device::BRG_3BIT);
@@ -291,7 +291,7 @@ MACHINE_CONFIG_START(dynadice_state::dynadice)
GENERIC_LATCH_8(config, "soundlatch");
AY8910(config, m_ay8910, 2000000).add_route(ALL_OUTPUTS, "mono", 1.0);
-MACHINE_CONFIG_END
+}
ROM_START( dynadice )
ROM_REGION( 0x10000, "maincpu", 0 )
diff --git a/src/mame/includes/dragrace.h b/src/mame/includes/dragrace.h
index 459d36ad141..5ee3b611cfb 100644
--- a/src/mame/includes/dragrace.h
+++ b/src/mame/includes/dragrace.h
@@ -77,7 +77,7 @@ private:
int m_gear[2];
/* devices */
- required_device<discrete_device> m_discrete;
+ required_device<discrete_sound_device> m_discrete;
required_device<cpu_device> m_maincpu;
required_device<watchdog_timer_device> m_watchdog;
required_device<gfxdecode_device> m_gfxdecode;