diff options
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 |
commit | 1e6d972d74f2839858aabf12443567b038709ff5 (patch) | |
tree | 4afb1e94d6b79b217d05786e28754a737b9b8c7b | |
parent | e2f3b86caa46b960b8ec045a8a4428260ada6b7d (diff) |
src\mame: removed most MCFG and MACHINE_CONFIG macros from drivers starting with d (nw)
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; |