From e0eaf02d224c75ae4a8d85baaf08d51921edbc38 Mon Sep 17 00:00:00 2001 From: Ivan Vangelista Date: Mon, 10 Dec 2018 19:56:44 +0100 Subject: src/mame: more MCFG removal (nw) --- src/mame/drivers/cyclemb.cpp | 1 - src/mame/drivers/dec8.cpp | 28 ++--- src/mame/drivers/ep64.cpp | 11 +- src/mame/drivers/hyhoo.cpp | 12 +- src/mame/drivers/karnov.cpp | 8 +- src/mame/drivers/ksys573.cpp | 153 ++++++++++++------------ src/mame/drivers/nbmj8688.cpp | 238 ++++++++++++++++++-------------------- src/mame/drivers/nbmj8891.cpp | 119 ++++++++----------- src/mame/drivers/nbmj8900.cpp | 6 +- src/mame/drivers/nbmj8991.cpp | 100 +++++++--------- src/mame/drivers/ngp.cpp | 8 +- src/mame/drivers/pastelg.cpp | 5 +- src/mame/drivers/prof80.cpp | 3 +- src/mame/drivers/segaorun.cpp | 7 +- src/mame/drivers/segas16b.cpp | 24 ++-- src/mame/drivers/segas18.cpp | 13 +-- src/mame/drivers/segaxbd.cpp | 8 +- src/mame/drivers/segaybd.cpp | 12 +- src/mame/drivers/sorcerer.cpp | 4 +- src/mame/machine/315-5881_crypt.h | 3 - src/mame/machine/k573cass.h | 46 ++------ src/mame/machine/micropolis.h | 27 +---- src/mame/machine/naomim2.cpp | 9 +- src/mame/machine/nb1413m3.h | 13 +-- src/mame/machine/prof80mmu.h | 12 -- src/mame/machine/segaic16.h | 41 +------ src/mame/machine/tait8741.h | 33 +----- src/mame/video/decrmc3.h | 37 ++---- src/mame/video/k1ge.h | 32 ++--- src/mame/video/nick.h | 24 ++-- 30 files changed, 424 insertions(+), 613 deletions(-) diff --git a/src/mame/drivers/cyclemb.cpp b/src/mame/drivers/cyclemb.cpp index a3eb91ea9b1..6b6bcf6c84c 100644 --- a/src/mame/drivers/cyclemb.cpp +++ b/src/mame/drivers/cyclemb.cpp @@ -72,7 +72,6 @@ Dumped by Chack'n ****************************************************************************************************/ #include "emu.h" -#include "machine/tait8741.h" #include "cpu/z80/z80.h" #include "machine/gen_latch.h" diff --git a/src/mame/drivers/dec8.cpp b/src/mame/drivers/dec8.cpp index 5ae9ad1aba1..c0cbaa5bd2b 100644 --- a/src/mame/drivers/dec8.cpp +++ b/src/mame/drivers/dec8.cpp @@ -1972,8 +1972,7 @@ MACHINE_CONFIG_START(dec8_state::lastmisn) MCFG_SCREEN_PALETTE("palette") MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_shackled) - MCFG_DEVICE_ADD("palette", DECO_RMC3, 0) // xxxxBBBBGGGGRRRR with custom weighting - MCFG_DECO_RMC3_SET_PALETTE_SIZE(1024) + DECO_RMC3(config, m_palette, 0, 1024); // xxxxBBBBGGGGRRRR with custom weighting MCFG_VIDEO_START_OVERRIDE(dec8_state,lastmisn) @@ -2037,8 +2036,7 @@ MACHINE_CONFIG_START(dec8_state::shackled) MCFG_SCREEN_PALETTE("palette") MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_shackled) - MCFG_DEVICE_ADD("palette", DECO_RMC3, 0) // xxxxBBBBGGGGRRRR with custom weighting - MCFG_DECO_RMC3_SET_PALETTE_SIZE(1024) + DECO_RMC3(config, m_palette, 0, 1024); // xxxxBBBBGGGGRRRR with custom weighting MCFG_VIDEO_START_OVERRIDE(dec8_state,shackled) @@ -2097,8 +2095,7 @@ MACHINE_CONFIG_START(dec8_state::gondo) INPUT_MERGER_ALL_HIGH(config, m_nmigate).output_handler().set_inputline(m_maincpu, INPUT_LINE_NMI); MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_gondo) - MCFG_DEVICE_ADD("palette", DECO_RMC3, 0) // xxxxBBBBGGGGRRRR with custom weighting - MCFG_DECO_RMC3_SET_PALETTE_SIZE(1024) + DECO_RMC3(config, m_palette, 0, 1024); // xxxxBBBBGGGGRRRR with custom weighting MCFG_VIDEO_START_OVERRIDE(dec8_state,gondo) @@ -2157,8 +2154,7 @@ MACHINE_CONFIG_START(dec8_state::garyoret) INPUT_MERGER_ALL_HIGH(config, m_nmigate).output_handler().set_inputline(m_maincpu, INPUT_LINE_NMI); MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_gondo) - MCFG_DEVICE_ADD("palette", DECO_RMC3, 0) // xxxxBBBBGGGGRRRR with custom weighting - MCFG_DECO_RMC3_SET_PALETTE_SIZE(1024) + DECO_RMC3(config, m_palette, 0, 1024); // xxxxBBBBGGGGRRRR with custom weighting MCFG_VIDEO_START_OVERRIDE(dec8_state,garyoret) @@ -2219,7 +2215,9 @@ MACHINE_CONFIG_START(dec8_state::ghostb) screen.set_palette("palette"); MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_ghostb) - MCFG_DECO_RMC3_ADD_PROMS("palette","proms",1024) // xxxxBBBBGGGGRRRR with custom weighting + DECO_RMC3(config, m_palette, 0, 1024); // xxxxBBBBGGGGRRRR with custom weighting + m_palette->set_prom_region("proms"); + m_palette->set_init("palette", FUNC(deco_rmc3_device::palette_init_proms)); MCFG_VIDEO_START_OVERRIDE(dec8_state,ghostb) /* sound hardware */ @@ -2277,8 +2275,7 @@ MACHINE_CONFIG_START(dec8_state::csilver) MCFG_SCREEN_VBLANK_CALLBACK(INPUTLINE("sub", INPUT_LINE_NMI)) MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_shackled) - MCFG_DEVICE_ADD("palette", DECO_RMC3, 0) // xxxxBBBBGGGGRRRR with custom weighting - MCFG_DECO_RMC3_SET_PALETTE_SIZE(1024) + DECO_RMC3(config, m_palette, 0, 1024); // xxxxBBBBGGGGRRRR with custom weighting MCFG_VIDEO_START_OVERRIDE(dec8_state,lastmisn) @@ -2341,8 +2338,7 @@ MACHINE_CONFIG_START(dec8_state::oscar) MCFG_SCREEN_PALETTE("palette") MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_oscar) - MCFG_DEVICE_ADD("palette", DECO_RMC3, 0) // xxxxBBBBGGGGRRRR with custom weighting - MCFG_DECO_RMC3_SET_PALETTE_SIZE(1024) + DECO_RMC3(config, m_palette, 0, 1024); // xxxxBBBBGGGGRRRR with custom weighting MCFG_VIDEO_START_OVERRIDE(dec8_state,oscar) @@ -2395,8 +2391,7 @@ MACHINE_CONFIG_START(dec8_state::srdarwin) MCFG_SCREEN_VBLANK_CALLBACK(INPUTLINE("maincpu", INPUT_LINE_NMI)) MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_srdarwin) - MCFG_DEVICE_ADD("palette", DECO_RMC3, 0) // xxxxBBBBGGGGRRRR with custom weighting - MCFG_DECO_RMC3_SET_PALETTE_SIZE(144) + DECO_RMC3(config, m_palette, 0, 144); // xxxxBBBBGGGGRRRR with custom weighting MCFG_VIDEO_START_OVERRIDE(dec8_state,srdarwin) @@ -2452,8 +2447,7 @@ MACHINE_CONFIG_START(dec8_state::cobracom) MCFG_SCREEN_VBLANK_CALLBACK(INPUTLINE("maincpu", INPUT_LINE_NMI)) MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_cobracom) - MCFG_DEVICE_ADD("palette", DECO_RMC3, 0) // xxxxBBBBGGGGRRRR with custom weighting - MCFG_DECO_RMC3_SET_PALETTE_SIZE(256) + DECO_RMC3(config, m_palette, 0, 256); // xxxxBBBBGGGGRRRR with custom weighting MCFG_VIDEO_START_OVERRIDE(dec8_state,cobracom) diff --git a/src/mame/drivers/ep64.cpp b/src/mame/drivers/ep64.cpp index 5f6dc493815..f008fe97d2a 100644 --- a/src/mame/drivers/ep64.cpp +++ b/src/mame/drivers/ep64.cpp @@ -577,8 +577,15 @@ MACHINE_CONFIG_START(ep64_state::ep64) MCFG_DEVICE_IO_MAP(ep64_io) // video hardware - MCFG_NICK_ADD(NICK_TAG, SCREEN_TAG, XTAL(8'000'000)) - MCFG_NICK_VIRQ_CALLBACK(WRITELINE(m_dave, dave_device, int1_w)) + screen_device& screen(SCREEN(config, SCREEN_TAG, SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); + screen.set_size(ENTERPRISE_SCREEN_WIDTH, ENTERPRISE_SCREEN_HEIGHT); + screen.set_visarea(0, ENTERPRISE_SCREEN_WIDTH-1, 0, ENTERPRISE_SCREEN_HEIGHT-1); + screen.set_screen_update(NICK_TAG, FUNC(nick_device::screen_update)); + + NICK(config, m_nick, XTAL(8'000'000), SCREEN_TAG); + m_nick->virq_wr_callback().set(m_dave, FUNC(dave_device::int1_w)); // sound hardware MCFG_DAVE_ADD(m_dave, XTAL(8'000'000), dave_64k_mem, dave_io) diff --git a/src/mame/drivers/hyhoo.cpp b/src/mame/drivers/hyhoo.cpp index acb753dd0d0..7e207e19d47 100644 --- a/src/mame/drivers/hyhoo.cpp +++ b/src/mame/drivers/hyhoo.cpp @@ -244,9 +244,7 @@ MACHINE_CONFIG_START(hyhoo_state::hyhoo) MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 16, 240-1) MCFG_SCREEN_UPDATE_DRIVER(hyhoo_state, screen_update_hyhoo) - MCFG_NB1413M3_ADD("nb1413m3") - MCFG_NB1413M3_TYPE( NB1413M3_HYHOO ) - + NB1413M3(config, m_nb1413m3, 0, NB1413M3_HYHOO); /* sound hardware */ SPEAKER(config, "speaker").front_center(); @@ -262,11 +260,11 @@ MACHINE_CONFIG_START(hyhoo_state::hyhoo) MACHINE_CONFIG_END -MACHINE_CONFIG_START(hyhoo_state::hyhoo2) +void hyhoo_state::hyhoo2(machine_config &config) +{ hyhoo(config); - MCFG_DEVICE_MODIFY("nb1413m3") - MCFG_NB1413M3_TYPE( NB1413M3_HYHOO2 ) -MACHINE_CONFIG_END + m_nb1413m3->set_type(NB1413M3_HYHOO2); +} ROM_START( hyhoo ) diff --git a/src/mame/drivers/karnov.cpp b/src/mame/drivers/karnov.cpp index bfd08cd9e87..1e009092a5e 100644 --- a/src/mame/drivers/karnov.cpp +++ b/src/mame/drivers/karnov.cpp @@ -789,7 +789,9 @@ MACHINE_CONFIG_START(karnov_state::karnov) MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, karnov_state, vbint_w)) MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_karnov) - MCFG_DECO_RMC3_ADD_PROMS("palette","proms",1024) // xxxxBBBBGGGGRRRR with custom weighting + DECO_RMC3(config, m_palette, 0, 1024); // xxxxBBBBGGGGRRRR with custom weighting + m_palette->set_prom_region("proms"); + m_palette->set_init("palette", FUNC(deco_rmc3_device::palette_init_proms)); DECO_KARNOVSPRITES(config, m_spritegen, 0); m_spritegen->set_gfx_region(2); @@ -867,7 +869,9 @@ MACHINE_CONFIG_START(karnov_state::wndrplnt) MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, karnov_state, vbint_w)) MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_karnov) - MCFG_DECO_RMC3_ADD_PROMS("palette","proms",1024) // xxxxBBBBGGGGRRRR with custom weighting + DECO_RMC3(config, m_palette, 0, 1024); // xxxxBBBBGGGGRRRR with custom weighting + m_palette->set_prom_region("proms"); + m_palette->set_init("palette", FUNC(deco_rmc3_device::palette_init_proms)); DECO_KARNOVSPRITES(config, m_spritegen, 0); m_spritegen->set_gfx_region(2); diff --git a/src/mame/drivers/ksys573.cpp b/src/mame/drivers/ksys573.cpp index e5ef2bf3779..7d38ba861bb 100644 --- a/src/mame/drivers/ksys573.cpp +++ b/src/mame/drivers/ksys573.cpp @@ -1578,11 +1578,11 @@ WRITE_LINE_MEMBER( ksys573_state::salarymc_lamp_clk ) void ksys573_state::salarymc_cassette_install(device_t *device) { - devcb_base *devcb; - (void)devcb; - MCFG_KONAMI573_CASSETTE_Y_D5_HANDLER( WRITELINE( *this, ksys573_state, salarymc_lamp_clk ) ) - MCFG_KONAMI573_CASSETTE_Y_D6_HANDLER( WRITELINE( *this, ksys573_state, salarymc_lamp_rst ) ) - MCFG_KONAMI573_CASSETTE_Y_D7_HANDLER( WRITELINE( *this, ksys573_state, salarymc_lamp_d ) ) + konami573_cassette_y_device &cassette = downcast(*device); + + cassette.d5_handler().set(*this, FUNC(ksys573_state::salarymc_lamp_clk)); + cassette.d6_handler().set(*this, FUNC(ksys573_state::salarymc_lamp_rst)); + cassette.d7_handler().set(*this, FUNC(ksys573_state::salarymc_lamp_d)); } void ksys573_state::init_salarymc() @@ -1661,26 +1661,26 @@ WRITE_LINE_MEMBER( ksys573_state::hyperbbc_lamp_strobe3 ) void ksys573_state::hyperbbc_cassette_install(device_t *device) { - devcb_base *devcb; - (void)devcb; - MCFG_KONAMI573_CASSETTE_Y_D0_HANDLER( WRITELINE( *this, ksys573_state, hyperbbc_lamp_strobe3 ) ) // line shared with x76f100 sda - MCFG_KONAMI573_CASSETTE_Y_D1_HANDLER( WRITELINE( *this, ksys573_state, hyperbbc_lamp_strobe2 ) ) // line shared with x76f100 scl - MCFG_KONAMI573_CASSETTE_Y_D3_HANDLER( WRITELINE( *this, ksys573_state, hyperbbc_lamp_strobe1 ) ) // line shared with x76f100 rst - MCFG_KONAMI573_CASSETTE_Y_D4_HANDLER( WRITELINE( *this, ksys573_state, hyperbbc_lamp_green ) ) - MCFG_KONAMI573_CASSETTE_Y_D5_HANDLER( WRITELINE( *this, ksys573_state, hyperbbc_lamp_blue ) ) - MCFG_KONAMI573_CASSETTE_Y_D6_HANDLER( WRITELINE( *this, ksys573_state, hyperbbc_lamp_red ) ) - MCFG_KONAMI573_CASSETTE_Y_D7_HANDLER( WRITELINE( *this, ksys573_state, hyperbbc_lamp_start ) ) + konami573_cassette_y_device &cassette = downcast(*device); + + cassette.d0_handler().set(*this, FUNC(ksys573_state::hyperbbc_lamp_strobe3)); // line shared with x76f100 sda + cassette.d1_handler().set(*this, FUNC(ksys573_state::hyperbbc_lamp_strobe2)); // line shared with x76f100 scl + cassette.d3_handler().set(*this, FUNC(ksys573_state::hyperbbc_lamp_strobe1)); // line shared with x76f100 rst + cassette.d4_handler().set(*this, FUNC(ksys573_state::hyperbbc_lamp_green)); + cassette.d5_handler().set(*this, FUNC(ksys573_state::hyperbbc_lamp_blue)); + cassette.d6_handler().set(*this, FUNC(ksys573_state::hyperbbc_lamp_red)); + cassette.d7_handler().set(*this, FUNC(ksys573_state::hyperbbc_lamp_start)); } void ksys573_state::hypbbc2p_cassette_install(device_t *device) { - devcb_base *devcb; - (void)devcb; - MCFG_KONAMI573_CASSETTE_Y_D0_HANDLER( WRITELINE( *this, ksys573_state, hyperbbc_lamp_strobe2 ) ) // line shared with x76f100 sda - MCFG_KONAMI573_CASSETTE_Y_D3_HANDLER( WRITELINE( *this, ksys573_state, hyperbbc_lamp_strobe1 ) ) // line shared with x76f100 rst - MCFG_KONAMI573_CASSETTE_Y_D4_HANDLER( WRITELINE( *this, ksys573_state, hyperbbc_lamp_green ) ) - MCFG_KONAMI573_CASSETTE_Y_D5_HANDLER( WRITELINE( *this, ksys573_state, hyperbbc_lamp_blue ) ) - MCFG_KONAMI573_CASSETTE_Y_D6_HANDLER( WRITELINE( *this, ksys573_state, hyperbbc_lamp_red ) ) + konami573_cassette_y_device &cassette = downcast(*device); + + cassette.d0_handler().set(*this, FUNC(ksys573_state::hyperbbc_lamp_strobe2)); // line shared with x76f100 sda + cassette.d3_handler().set(*this, FUNC(ksys573_state::hyperbbc_lamp_strobe1)); // line shared with x76f100 rst + cassette.d4_handler().set(*this, FUNC(ksys573_state::hyperbbc_lamp_green)); + cassette.d5_handler().set(*this, FUNC(ksys573_state::hyperbbc_lamp_blue)); + cassette.d6_handler().set(*this, FUNC(ksys573_state::hyperbbc_lamp_red)); } void ksys573_state::init_hyperbbc() @@ -2108,8 +2108,8 @@ MACHINE_CONFIG_START(ksys573_state::konami573) MCFG_SLOT_OPTION_MACHINE_CONFIG( "cr589", cr589_config ) MCFG_SLOT_DEFAULT_OPTION( "cr589" ) - MCFG_DEVICE_ADD( "cassette", KONAMI573_CASSETTE_SLOT, 0 ) - MCFG_KONAMI573_CASSETTE_DSR_HANDLER(WRITELINE( "maincpu:sio1", psxsio1_device, write_dsr ) ) + konami573_cassette_slot_device &cassette(KONAMI573_CASSETTE_SLOT(config, "cassette", 0)); + cassette.dsr_handler().set("maincpu:sio1", FUNC(psxsio1_device::write_dsr)); // onboard flash FUJITSU_29F016A( config, "29f016a.31m" ); @@ -2196,49 +2196,49 @@ MACHINE_CONFIG_END // // Up to two carts can be used -MACHINE_CONFIG_START(ksys573_state::cassx) - MCFG_DEVICE_MODIFY( "cassette" ) - MCFG_SLOT_OPTION_ADD( "game", KONAMI573_CASSETTE_X ) - MCFG_SLOT_DEFAULT_OPTION( "game" ) -MACHINE_CONFIG_END +void ksys573_state::cassx(machine_config &config) +{ + subdevice("cassette")->option_add( "game", KONAMI573_CASSETTE_X ); + subdevice("cassette")->set_default_option( "game" ); +} -MACHINE_CONFIG_START(ksys573_state::cassxi) - MCFG_DEVICE_MODIFY( "cassette" ) - MCFG_SLOT_OPTION_ADD( "game", KONAMI573_CASSETTE_XI ) - MCFG_SLOT_DEFAULT_OPTION( "game" ) -MACHINE_CONFIG_END +void ksys573_state::cassxi(machine_config &config) +{ + subdevice("cassette")->option_add( "game", KONAMI573_CASSETTE_XI ); + subdevice("cassette")->set_default_option( "game" ); +} -MACHINE_CONFIG_START(ksys573_state::cassy) - MCFG_DEVICE_MODIFY( "cassette" ) - MCFG_SLOT_OPTION_ADD( "game", KONAMI573_CASSETTE_Y ) - MCFG_SLOT_DEFAULT_OPTION( "game" ) -MACHINE_CONFIG_END +void ksys573_state::cassy(machine_config &config) +{ + subdevice("cassette")->option_add( "game", KONAMI573_CASSETTE_Y ); + subdevice("cassette")->set_default_option( "game" ); +} -MACHINE_CONFIG_START(ksys573_state::cassyi) - MCFG_DEVICE_MODIFY( "cassette" ) - MCFG_SLOT_OPTION_ADD( "game", KONAMI573_CASSETTE_YI ) - MCFG_SLOT_DEFAULT_OPTION( "game" ) -MACHINE_CONFIG_END +void ksys573_state::cassyi(machine_config &config) +{ + subdevice("cassette")->option_add( "game", KONAMI573_CASSETTE_YI ); + subdevice("cassette")->set_default_option( "game" ); +} -MACHINE_CONFIG_START(ksys573_state::cassyyi) - MCFG_DEVICE_MODIFY( "cassette" ) - MCFG_SLOT_OPTION_ADD( "game", KONAMI573_CASSETTE_YI ) - MCFG_SLOT_OPTION_ADD( "install", KONAMI573_CASSETTE_YI ) - MCFG_SLOT_DEFAULT_OPTION( "game" ) -MACHINE_CONFIG_END +void ksys573_state::cassyyi(machine_config &config) +{ + subdevice("cassette")->option_add( "game", KONAMI573_CASSETTE_YI ); + subdevice("cassette")->option_add( "install", KONAMI573_CASSETTE_YI ); + subdevice("cassette")->set_default_option( "game" ); +} -MACHINE_CONFIG_START(ksys573_state::casszi) - MCFG_DEVICE_MODIFY( "cassette" ) - MCFG_SLOT_OPTION_ADD( "game", KONAMI573_CASSETTE_ZI ) - MCFG_SLOT_DEFAULT_OPTION( "game" ) -MACHINE_CONFIG_END +void ksys573_state::casszi(machine_config &config) +{ + subdevice("cassette")->option_add( "game", KONAMI573_CASSETTE_ZI ); + subdevice("cassette")->set_default_option( "game" ); +} -MACHINE_CONFIG_START(ksys573_state::cassxzi) - MCFG_DEVICE_MODIFY( "cassette" ) - MCFG_SLOT_OPTION_ADD( "game", KONAMI573_CASSETTE_ZI ) - MCFG_SLOT_OPTION_ADD( "install", KONAMI573_CASSETTE_XI ) - MCFG_SLOT_DEFAULT_OPTION( "game" ) -MACHINE_CONFIG_END +void ksys573_state::cassxzi(machine_config &config) +{ + subdevice("cassette")->option_add( "game", KONAMI573_CASSETTE_ZI ); + subdevice("cassette")->option_add( "install", KONAMI573_CASSETTE_XI ); + subdevice("cassette")->set_default_option( "game" ); +} // Dance Dance Revolution @@ -2434,29 +2434,29 @@ void ksys573_state::fbaitbc(machine_config & config) cassx(config); } -MACHINE_CONFIG_START(ksys573_state::hyperbbc) +void ksys573_state::hyperbbc(machine_config &config) +{ konami573(config); cassy(config); // The game doesn't check the security chip - MCFG_DEVICE_MODIFY( "cassette" ) - MCFG_SLOT_OPTION_MACHINE_CONFIG( "game", [this] (device_t *device) { hyperbbc_cassette_install(device); } ) -MACHINE_CONFIG_END + subdevice("cassette")->set_option_machine_config( "game", [this] (device_t *device) { hyperbbc_cassette_install(device); } ); +} -MACHINE_CONFIG_START(ksys573_state::hypbbc2p) +void ksys573_state::hypbbc2p(machine_config &config) +{ konami573(config); cassy(config); - MCFG_DEVICE_MODIFY( "cassette" ) - MCFG_SLOT_OPTION_MACHINE_CONFIG( "game", [this] (device_t *device) { hypbbc2p_cassette_install(device); } ) -MACHINE_CONFIG_END + subdevice("cassette")->set_option_machine_config( "game", [this] (device_t *device) { hypbbc2p_cassette_install(device); } ); +} -MACHINE_CONFIG_START(ksys573_state::salarymc) +void ksys573_state::salarymc(machine_config &config) +{ konami573(config); cassyi(config); - MCFG_DEVICE_MODIFY( "cassette" ) - MCFG_SLOT_OPTION_MACHINE_CONFIG( "game", [this] (device_t *device) { salarymc_cassette_install(device); } ) -MACHINE_CONFIG_END + subdevice("cassette")->set_option_machine_config( "game", [this] (device_t *device) { salarymc_cassette_install(device); } ); +} void ksys573_state::gchgchmp(machine_config &config) { @@ -2465,16 +2465,17 @@ void ksys573_state::gchgchmp(machine_config &config) cassx(config); } -MACHINE_CONFIG_START(ksys573_state::pnchmn) +void ksys573_state::pnchmn(machine_config &config) +{ + konami573(config); m_maincpu->set_addrmap(AS_PROGRAM, &ksys573_state::konami573a_map); cassxi(config); pccard1_32mb(config); - MCFG_DEVICE_MODIFY( "cassette" ) - MCFG_SLOT_OPTION_MACHINE_CONFIG( "game", [this] (device_t *device) { punchmania_cassette_install(device); } ) -MACHINE_CONFIG_END + subdevice("cassette")->set_option_machine_config( "game", [this] (device_t *device) { punchmania_cassette_install(device); } ); +} void ksys573_state::pnchmn2(machine_config &config) { diff --git a/src/mame/drivers/nbmj8688.cpp b/src/mame/drivers/nbmj8688.cpp index 5a2f465b868..9dedd89aea4 100644 --- a/src/mame/drivers/nbmj8688.cpp +++ b/src/mame/drivers/nbmj8688.cpp @@ -2459,7 +2459,7 @@ MACHINE_CONFIG_START(nbmj8688_state::NBMJDRV_4096) MCFG_DEVICE_ADD("maincpu", Z80, 5000000) /* 5.00 MHz */ MCFG_DEVICE_VBLANK_INT_DRIVER("screen", nbmj8688_state, irq0_line_hold) - MCFG_NB1413M3_ADD("nb1413m3") + NB1413M3(config, m_nb1413m3, 0); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); /* video hardware */ @@ -2526,23 +2526,22 @@ MACHINE_CONFIG_START(nbmj8688_state::crystalg) MCFG_DEVICE_PROGRAM_MAP(secolove_map) MCFG_DEVICE_IO_MAP(crystalg_io_map) - MCFG_DEVICE_MODIFY("nb1413m3") - MCFG_NB1413M3_TYPE( NB1413M3_CRYSTALG ) + m_nb1413m3->set_type(NB1413M3_CRYSTALG); MACHINE_CONFIG_END -MACHINE_CONFIG_START(nbmj8688_state::crystal2) +void nbmj8688_state::crystal2(machine_config &config) +{ crystalg(config); - MCFG_DEVICE_MODIFY("nb1413m3") - MCFG_NB1413M3_TYPE( NB1413M3_CRYSTAL2 ) -MACHINE_CONFIG_END + m_nb1413m3->set_type(NB1413M3_CRYSTAL2); +} -MACHINE_CONFIG_START(nbmj8688_state::nightlov) +void nbmj8688_state::nightlov(machine_config &config) +{ crystalg(config); - MCFG_DEVICE_MODIFY("nb1413m3") - MCFG_NB1413M3_TYPE( NB1413M3_NIGHTLOV ) -MACHINE_CONFIG_END + m_nb1413m3->set_type(NB1413M3_NIGHTLOV); +} MACHINE_CONFIG_START(nbmj8688_state::apparel) NBMJDRV_256(config); @@ -2552,8 +2551,7 @@ MACHINE_CONFIG_START(nbmj8688_state::apparel) MCFG_DEVICE_PROGRAM_MAP(secolove_map) MCFG_DEVICE_IO_MAP(secolove_io_map) - MCFG_DEVICE_MODIFY("nb1413m3") - MCFG_NB1413M3_TYPE( NB1413M3_APPAREL ) + m_nb1413m3->set_type(NB1413M3_APPAREL); MACHINE_CONFIG_END MACHINE_CONFIG_START(nbmj8688_state::mbmj_h12bit) @@ -2568,26 +2566,26 @@ MACHINE_CONFIG_START(nbmj8688_state::mbmj_h12bit) MCFG_VIDEO_START_OVERRIDE(nbmj8688_state,mbmj8688_hybrid_12bit) MACHINE_CONFIG_END -MACHINE_CONFIG_START(nbmj8688_state::citylove) +void nbmj8688_state::citylove(machine_config &config) +{ mbmj_h12bit(config); - MCFG_DEVICE_MODIFY("nb1413m3") - MCFG_NB1413M3_TYPE( NB1413M3_CITYLOVE ) -MACHINE_CONFIG_END + m_nb1413m3->set_type(NB1413M3_CITYLOVE); +} -MACHINE_CONFIG_START(nbmj8688_state::mcitylov) +void nbmj8688_state::mcitylov(machine_config &config) +{ mbmj_h12bit(config); - MCFG_DEVICE_MODIFY("nb1413m3") - MCFG_NB1413M3_TYPE( NB1413M3_MCITYLOV ) -MACHINE_CONFIG_END + m_nb1413m3->set_type(NB1413M3_MCITYLOV); +} -MACHINE_CONFIG_START(nbmj8688_state::secolove) +void nbmj8688_state::secolove(machine_config &config) +{ mbmj_h12bit(config); - MCFG_DEVICE_MODIFY("nb1413m3") - MCFG_NB1413M3_TYPE( NB1413M3_SECOLOVE ) -MACHINE_CONFIG_END + m_nb1413m3->set_type(NB1413M3_SECOLOVE); +} /*Same as h12bit HW with different sound HW + NMI enable bit*/ MACHINE_CONFIG_START(nbmj8688_state::barline) @@ -2597,14 +2595,13 @@ MACHINE_CONFIG_START(nbmj8688_state::barline) MCFG_DEVICE_MODIFY("maincpu") MCFG_DEVICE_IO_MAP(barline_io_map) - MCFG_DEVICE_MODIFY("nb1413m3") - MCFG_NB1413M3_TYPE( NB1413M3_BARLINE ) + m_nb1413m3->set_type(NB1413M3_BARLINE); MCFG_DEVICE_REPLACE("psg", YM3812, 20000000/8) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.35) - MCFG_DEVICE_REMOVE("dac") - MCFG_DEVICE_REMOVE("vref") + config.device_remove("dac"); + config.device_remove("vref"); MACHINE_CONFIG_END MACHINE_CONFIG_START(nbmj8688_state::mbmj_p16bit) @@ -2628,7 +2625,7 @@ MACHINE_CONFIG_START(nbmj8688_state::mbmj_p16bit_LCD) MCFG_DEVICE_IO_MAP(secolove_io_map) MCFG_DEVICE_IO_MAP(p16bit_LCD_io_map) - MCFG_NB1413M3_ADD("nb1413m3") + NB1413M3(config, m_nb1413m3, 0); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); /* video hardware */ @@ -2686,61 +2683,61 @@ MACHINE_CONFIG_START(nbmj8688_state::mbmj_p16bit_LCD) MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT) MACHINE_CONFIG_END -MACHINE_CONFIG_START(nbmj8688_state::bijokkoy) +void nbmj8688_state::bijokkoy(machine_config &config) +{ mbmj_p16bit_LCD(config); - MCFG_DEVICE_MODIFY("nb1413m3") - MCFG_NB1413M3_TYPE( NB1413M3_BIJOKKOY ) -MACHINE_CONFIG_END + m_nb1413m3->set_type(NB1413M3_BIJOKKOY); +} -MACHINE_CONFIG_START(nbmj8688_state::bijokkog) +void nbmj8688_state::bijokkog(machine_config &config) +{ mbmj_p16bit_LCD(config); - MCFG_DEVICE_MODIFY("nb1413m3") - MCFG_NB1413M3_TYPE( NB1413M3_BIJOKKOG ) -MACHINE_CONFIG_END + m_nb1413m3->set_type(NB1413M3_BIJOKKOG); +} -MACHINE_CONFIG_START(nbmj8688_state::housemnq) +void nbmj8688_state::housemnq(machine_config &config) +{ mbmj_p16bit_LCD(config); - MCFG_DEVICE_MODIFY("nb1413m3") - MCFG_NB1413M3_TYPE( NB1413M3_HOUSEMNQ ) -MACHINE_CONFIG_END + m_nb1413m3->set_type(NB1413M3_HOUSEMNQ); +} -MACHINE_CONFIG_START(nbmj8688_state::housemn2) +void nbmj8688_state::housemn2(machine_config &config) +{ mbmj_p16bit_LCD(config); - MCFG_DEVICE_MODIFY("nb1413m3") - MCFG_NB1413M3_TYPE( NB1413M3_HOUSEMN2 ) -MACHINE_CONFIG_END + m_nb1413m3->set_type(NB1413M3_HOUSEMN2); +} -MACHINE_CONFIG_START(nbmj8688_state::livegal) +void nbmj8688_state::livegal(machine_config &config) +{ mbmj_p16bit_LCD(config); - MCFG_DEVICE_MODIFY("nb1413m3") - MCFG_NB1413M3_TYPE( NB1413M3_LIVEGAL ) -MACHINE_CONFIG_END + m_nb1413m3->set_type(NB1413M3_LIVEGAL); +} -MACHINE_CONFIG_START(nbmj8688_state::orangec) +void nbmj8688_state::orangec(machine_config &config) +{ mbmj_p16bit(config); - MCFG_DEVICE_MODIFY("nb1413m3") - MCFG_NB1413M3_TYPE( NB1413M3_ORANGEC ) -MACHINE_CONFIG_END + m_nb1413m3->set_type(NB1413M3_ORANGEC); +} -MACHINE_CONFIG_START(nbmj8688_state::orangeci) +void nbmj8688_state::orangeci(machine_config &config) +{ mbmj_p16bit(config); - MCFG_DEVICE_MODIFY("nb1413m3") - MCFG_NB1413M3_TYPE( NB1413M3_ORANGECI ) -MACHINE_CONFIG_END + m_nb1413m3->set_type(NB1413M3_ORANGECI); +} -MACHINE_CONFIG_START(nbmj8688_state::vipclub) +void nbmj8688_state::vipclub(machine_config &config) +{ mbmj_p16bit(config); - MCFG_DEVICE_MODIFY("nb1413m3") - MCFG_NB1413M3_TYPE( NB1413M3_VIPCLUB ) -MACHINE_CONFIG_END + m_nb1413m3->set_type(NB1413M3_VIPCLUB); +} MACHINE_CONFIG_START(nbmj8688_state::seiha) NBMJDRV_65536(config); @@ -2750,16 +2747,15 @@ MACHINE_CONFIG_START(nbmj8688_state::seiha) MCFG_DEVICE_PROGRAM_MAP(secolove_map) MCFG_DEVICE_IO_MAP(seiha_io_map) - MCFG_DEVICE_MODIFY("nb1413m3") - MCFG_NB1413M3_TYPE( NB1413M3_SEIHA ) + m_nb1413m3->set_type(NB1413M3_SEIHA); MACHINE_CONFIG_END -MACHINE_CONFIG_START(nbmj8688_state::seiham) +void nbmj8688_state::seiham(machine_config &config) +{ seiha(config); - MCFG_DEVICE_MODIFY("nb1413m3") - MCFG_NB1413M3_TYPE( NB1413M3_SEIHAM ) -MACHINE_CONFIG_END + m_nb1413m3->set_type(NB1413M3_SEIHAM); +} MACHINE_CONFIG_START(nbmj8688_state::mjgaiden) NBMJDRV_4096(config); @@ -2770,8 +2766,7 @@ MACHINE_CONFIG_START(nbmj8688_state::mjgaiden) MCFG_DEVICE_PROGRAM_MAP(ojousan_map) MCFG_DEVICE_IO_MAP(mjgaiden_io_map) - MCFG_DEVICE_MODIFY("nb1413m3") - MCFG_NB1413M3_TYPE( NB1413M3_OJOUSAN ) + m_nb1413m3->set_type(NB1413M3_OJOUSAN); MACHINE_CONFIG_END MACHINE_CONFIG_START(nbmj8688_state::iemoto) @@ -2782,8 +2777,7 @@ MACHINE_CONFIG_START(nbmj8688_state::iemoto) MCFG_DEVICE_PROGRAM_MAP(secolove_map) MCFG_DEVICE_IO_MAP(iemoto_io_map) - MCFG_DEVICE_MODIFY("nb1413m3") - MCFG_NB1413M3_TYPE( NB1413M3_IEMOTO ) + m_nb1413m3->set_type(NB1413M3_IEMOTO); MACHINE_CONFIG_END MACHINE_CONFIG_START(nbmj8688_state::ojousan) @@ -2794,16 +2788,15 @@ MACHINE_CONFIG_START(nbmj8688_state::ojousan) MCFG_DEVICE_PROGRAM_MAP(ojousan_map) MCFG_DEVICE_IO_MAP(iemoto_io_map) - MCFG_DEVICE_MODIFY("nb1413m3") - MCFG_NB1413M3_TYPE( NB1413M3_OJOUSAN ) + m_nb1413m3->set_type(NB1413M3_OJOUSAN); MACHINE_CONFIG_END -MACHINE_CONFIG_START(nbmj8688_state::ojousanm) +void nbmj8688_state::ojousanm(machine_config &config) +{ ojousan(config); - MCFG_DEVICE_MODIFY("nb1413m3") - MCFG_NB1413M3_TYPE( NB1413M3_OJOUSANM ) -MACHINE_CONFIG_END + m_nb1413m3->set_type(NB1413M3_OJOUSANM); +} MACHINE_CONFIG_START(nbmj8688_state::swinggal) ojousan(config); @@ -2813,33 +2806,33 @@ MACHINE_CONFIG_START(nbmj8688_state::swinggal) MCFG_DEVICE_IO_MAP(iemoto_io_map) MACHINE_CONFIG_END -MACHINE_CONFIG_START(nbmj8688_state::iemotom) +void nbmj8688_state::iemotom(machine_config &config) +{ ojousan(config); - MCFG_DEVICE_MODIFY("nb1413m3") - MCFG_NB1413M3_TYPE( NB1413M3_IEMOTOM ) -MACHINE_CONFIG_END + m_nb1413m3->set_type(NB1413M3_IEMOTOM); +} -MACHINE_CONFIG_START(nbmj8688_state::ryuuha) +void nbmj8688_state::ryuuha(machine_config &config) +{ ojousan(config); - MCFG_DEVICE_MODIFY("nb1413m3") - MCFG_NB1413M3_TYPE( NB1413M3_RYUUHA ) -MACHINE_CONFIG_END + m_nb1413m3->set_type(NB1413M3_RYUUHA); +} -MACHINE_CONFIG_START(nbmj8688_state::korinai) +void nbmj8688_state::korinai(machine_config &config) +{ ojousan(config); - MCFG_DEVICE_MODIFY("nb1413m3") - MCFG_NB1413M3_TYPE( NB1413M3_KORINAI ) -MACHINE_CONFIG_END + m_nb1413m3->set_type(NB1413M3_KORINAI); +} -MACHINE_CONFIG_START(nbmj8688_state::korinaim) +void nbmj8688_state::korinaim(machine_config &config) +{ ojousan(config); - MCFG_DEVICE_MODIFY("nb1413m3") - MCFG_NB1413M3_TYPE( NB1413M3_KORINAIM ) -MACHINE_CONFIG_END + m_nb1413m3->set_type(NB1413M3_KORINAIM); +} MACHINE_CONFIG_START(nbmj8688_state::mbmj_p12bit) NBMJDRV_4096(config); @@ -2850,40 +2843,40 @@ MACHINE_CONFIG_START(nbmj8688_state::mbmj_p12bit) MCFG_DEVICE_IO_MAP(kaguya_io_map) MACHINE_CONFIG_END -MACHINE_CONFIG_START(nbmj8688_state::kaguya) +void nbmj8688_state::kaguya(machine_config &config) +{ mbmj_p12bit(config); - MCFG_DEVICE_MODIFY("nb1413m3") - MCFG_NB1413M3_TYPE( NB1413M3_KAGUYA ) -MACHINE_CONFIG_END + m_nb1413m3->set_type(NB1413M3_KAGUYA); +} -MACHINE_CONFIG_START(nbmj8688_state::kaguya2) +void nbmj8688_state::kaguya2(machine_config &config) +{ mbmj_p12bit(config); - MCFG_DEVICE_MODIFY("nb1413m3") - MCFG_NB1413M3_TYPE( NB1413M3_KAGUYA2 ) -MACHINE_CONFIG_END + m_nb1413m3->set_type(NB1413M3_KAGUYA2); +} -MACHINE_CONFIG_START(nbmj8688_state::kanatuen) +void nbmj8688_state::kanatuen(machine_config &config) +{ mbmj_p12bit(config); - MCFG_DEVICE_MODIFY("nb1413m3") - MCFG_NB1413M3_TYPE( NB1413M3_KANATUEN ) -MACHINE_CONFIG_END + m_nb1413m3->set_type(NB1413M3_KANATUEN); +} -MACHINE_CONFIG_START(nbmj8688_state::kyuhito) +void nbmj8688_state::kyuhito(machine_config &config) +{ mbmj_p12bit(config); - MCFG_DEVICE_MODIFY("nb1413m3") - MCFG_NB1413M3_TYPE( NB1413M3_KYUHITO ) -MACHINE_CONFIG_END + m_nb1413m3->set_type(NB1413M3_KYUHITO); +} -MACHINE_CONFIG_START(nbmj8688_state::idhimitu) +void nbmj8688_state::idhimitu(machine_config &config) +{ mbmj_p12bit(config); - MCFG_DEVICE_MODIFY("nb1413m3") - MCFG_NB1413M3_TYPE( NB1413M3_IDHIMITU ) -MACHINE_CONFIG_END + m_nb1413m3->set_type(NB1413M3_IDHIMITU); +} MACHINE_CONFIG_START(nbmj8688_state::mjsikaku) NBMJDRV_4096(config); @@ -2893,8 +2886,7 @@ MACHINE_CONFIG_START(nbmj8688_state::mjsikaku) MCFG_DEVICE_PROGRAM_MAP(mjsikaku_map) MCFG_DEVICE_IO_MAP(mjsikaku_io_map) - MCFG_DEVICE_MODIFY("nb1413m3") - MCFG_NB1413M3_TYPE( NB1413M3_MJSIKAKU ) + m_nb1413m3->set_type(NB1413M3_MJSIKAKU); /* sound hardware */ MCFG_DEVICE_REPLACE("psg", YM3812, 20000000/8) @@ -2909,8 +2901,7 @@ MACHINE_CONFIG_START(nbmj8688_state::mmsikaku) MCFG_DEVICE_PROGRAM_MAP(secolove_map) MCFG_DEVICE_IO_MAP(mmsikaku_io_map) - MCFG_DEVICE_MODIFY("nb1413m3") - MCFG_NB1413M3_TYPE( NB1413M3_MMSIKAKU ) + m_nb1413m3->set_type(NB1413M3_MMSIKAKU); MACHINE_CONFIG_END MACHINE_CONFIG_START(nbmj8688_state::otonano) @@ -2920,16 +2911,15 @@ MACHINE_CONFIG_START(nbmj8688_state::otonano) MCFG_DEVICE_MODIFY("maincpu") MCFG_DEVICE_IO_MAP(otonano_io_map) - MCFG_DEVICE_MODIFY("nb1413m3") - MCFG_NB1413M3_TYPE( NB1413M3_OTONANO ) + m_nb1413m3->set_type(NB1413M3_OTONANO); MACHINE_CONFIG_END -MACHINE_CONFIG_START(nbmj8688_state::mjcamera) +void nbmj8688_state::mjcamera(machine_config &config) +{ otonano(config); - MCFG_DEVICE_MODIFY("nb1413m3") - MCFG_NB1413M3_TYPE( NB1413M3_MJCAMERA ) -MACHINE_CONFIG_END + m_nb1413m3->set_type(NB1413M3_MJCAMERA); +} ROM_START( crystalg ) ROM_REGION( 0x10000, "maincpu", 0 ) /* program */ diff --git a/src/mame/drivers/nbmj8891.cpp b/src/mame/drivers/nbmj8891.cpp index bed6adeb6bb..233225b3b3e 100644 --- a/src/mame/drivers/nbmj8891.cpp +++ b/src/mame/drivers/nbmj8891.cpp @@ -2197,8 +2197,7 @@ MACHINE_CONFIG_START(nbmj8891_state::gionbana) MCFG_DEVICE_IO_MAP(gionbana_io_map) MCFG_DEVICE_VBLANK_INT_DRIVER("screen", nbmj8891_state, irq0_line_hold) - MCFG_NB1413M3_ADD("nb1413m3") - MCFG_NB1413M3_TYPE( NB1413M3_GIONBANA ) + NB1413M3(config, m_nb1413m3, 0, NB1413M3_GIONBANA); /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -2230,8 +2229,7 @@ MACHINE_CONFIG_START(nbmj8891_state::mgion) MCFG_DEVICE_PROGRAM_MAP(mgion_map) MCFG_DEVICE_IO_MAP(mgion_io_map) - MCFG_DEVICE_MODIFY("nb1413m3") - MCFG_NB1413M3_TYPE( NB1413M3_MGION ) + m_nb1413m3->set_type(NB1413M3_MGION); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); MACHINE_CONFIG_END @@ -2244,8 +2242,7 @@ MACHINE_CONFIG_START(nbmj8891_state::omotesnd) MCFG_DEVICE_PROGRAM_MAP(omotesnd_map) MCFG_DEVICE_IO_MAP(omotesnd_io_map) - MCFG_DEVICE_MODIFY("nb1413m3") - MCFG_NB1413M3_TYPE( NB1413M3_OMOTESND ) + m_nb1413m3->set_type(NB1413M3_OMOTESND); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); @@ -2256,12 +2253,12 @@ MACHINE_CONFIG_START(nbmj8891_state::omotesnd) fmsnd.add_route(ALL_OUTPUTS, "speaker", 0.35); MACHINE_CONFIG_END -MACHINE_CONFIG_START(nbmj8891_state::abunai) +void nbmj8891_state::abunai(machine_config &config) +{ gionbana(config); - MCFG_DEVICE_MODIFY("nb1413m3") - MCFG_NB1413M3_TYPE( NB1413M3_ABUNAI ) -MACHINE_CONFIG_END + m_nb1413m3->set_type(NB1413M3_ABUNAI); +} /* NBMJDRV2 */ MACHINE_CONFIG_START(nbmj8891_state::mjcamerb) @@ -2271,8 +2268,7 @@ MACHINE_CONFIG_START(nbmj8891_state::mjcamerb) MCFG_DEVICE_MODIFY("maincpu") MCFG_DEVICE_IO_MAP(hanamomo_io_map) - MCFG_DEVICE_MODIFY("nb1413m3") - MCFG_NB1413M3_TYPE( NB1413M3_MJCAMERB ) + m_nb1413m3->set_type(NB1413M3_MJCAMERB); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); @@ -2289,8 +2285,7 @@ MACHINE_CONFIG_START(nbmj8891_state::mmcamera) MCFG_DEVICE_MODIFY("maincpu") MCFG_DEVICE_IO_MAP(hanamomo_io_map) - MCFG_DEVICE_MODIFY("nb1413m3") - MCFG_NB1413M3_TYPE( NB1413M3_MMCAMERA ) + m_nb1413m3->set_type(NB1413M3_MMCAMERA); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); @@ -2308,8 +2303,7 @@ MACHINE_CONFIG_START(nbmj8891_state::hanamomo) MCFG_DEVICE_PROGRAM_MAP(hanamomo_map) MCFG_DEVICE_IO_MAP(hanamomo_io_map) - MCFG_DEVICE_MODIFY("nb1413m3") - MCFG_NB1413M3_TYPE( NB1413M3_HANAMOMO ) + m_nb1413m3->set_type(NB1413M3_HANAMOMO); /* video hardware */ MCFG_SCREEN_MODIFY("screen") @@ -2325,28 +2319,25 @@ MACHINE_CONFIG_START(nbmj8891_state::msjiken) MCFG_DEVICE_PROGRAM_MAP(gionbana_map) MCFG_DEVICE_IO_MAP(msjiken_io_map) - MCFG_DEVICE_MODIFY("nb1413m3") - MCFG_NB1413M3_TYPE( NB1413M3_MSJIKEN ) + m_nb1413m3->set_type(NB1413M3_MSJIKEN); MACHINE_CONFIG_END /* NBMJDRV3 */ MACHINE_CONFIG_START(nbmj8891_state::telmahjn) gionbana(config); - MCFG_DEVICE_MODIFY("nb1413m3") - MCFG_NB1413M3_TYPE( NB1413M3_TELMAHJN ) + m_nb1413m3->set_type(NB1413M3_TELMAHJN); /* video hardware */ MCFG_VIDEO_START_OVERRIDE(nbmj8891_state,_1layer) MACHINE_CONFIG_END -MACHINE_CONFIG_START(nbmj8891_state::mgmen89) +void nbmj8891_state::mgmen89(machine_config &config) +{ telmahjn(config); - MCFG_DEVICE_MODIFY("nb1413m3") - MCFG_NB1413M3_TYPE( NB1413M3_MGMEN89 ) - -MACHINE_CONFIG_END + m_nb1413m3->set_type(NB1413M3_MGMEN89); +} /* NBMJDRV4 */ MACHINE_CONFIG_START(nbmj8891_state::mjfocus) @@ -2354,26 +2345,25 @@ MACHINE_CONFIG_START(nbmj8891_state::mjfocus) /* basic machine hardware */ - MCFG_DEVICE_MODIFY("nb1413m3") - MCFG_NB1413M3_TYPE( NB1413M3_MJFOCUS ) + m_nb1413m3->set_type(NB1413M3_MJFOCUS); /* video hardware */ MCFG_VIDEO_START_OVERRIDE(nbmj8891_state,_1layer) MACHINE_CONFIG_END -MACHINE_CONFIG_START(nbmj8891_state::pairsnb) +void nbmj8891_state::pairsnb(machine_config &config) +{ gionbana(config); - MCFG_DEVICE_MODIFY("nb1413m3") - MCFG_NB1413M3_TYPE( NB1413M3_PAIRSNB ) -MACHINE_CONFIG_END + m_nb1413m3->set_type(NB1413M3_PAIRSNB); +} -MACHINE_CONFIG_START(nbmj8891_state::pairsten) +void nbmj8891_state::pairsten(machine_config &config) +{ gionbana(config); - MCFG_DEVICE_MODIFY("nb1413m3") - MCFG_NB1413M3_TYPE( NB1413M3_PAIRSTEN ) -MACHINE_CONFIG_END + m_nb1413m3->set_type(NB1413M3_PAIRSTEN); +} /* NBMJDRV5 */ MACHINE_CONFIG_START(nbmj8891_state::mjnanpas) @@ -2383,8 +2373,7 @@ MACHINE_CONFIG_START(nbmj8891_state::mjnanpas) MCFG_DEVICE_MODIFY("maincpu") MCFG_DEVICE_PROGRAM_MAP(club90s_map) - MCFG_DEVICE_MODIFY("nb1413m3") - MCFG_NB1413M3_TYPE( NB1413M3_MJNANPAS ) + m_nb1413m3->set_type(NB1413M3_MJNANPAS); MACHINE_CONFIG_END MACHINE_CONFIG_START(nbmj8891_state::maiko) @@ -2395,8 +2384,7 @@ MACHINE_CONFIG_START(nbmj8891_state::maiko) MCFG_DEVICE_PROGRAM_MAP(maiko_map) MCFG_DEVICE_IO_MAP(maiko_io_map) - MCFG_DEVICE_MODIFY("nb1413m3") - MCFG_NB1413M3_TYPE( NB1413M3_MAIKO ) + m_nb1413m3->set_type(NB1413M3_MAIKO); MACHINE_CONFIG_END MACHINE_CONFIG_START(nbmj8891_state::mmaiko) @@ -2406,8 +2394,7 @@ MACHINE_CONFIG_START(nbmj8891_state::mmaiko) MCFG_DEVICE_MODIFY("maincpu") MCFG_DEVICE_PROGRAM_MAP(mmaiko_map) - MCFG_DEVICE_MODIFY("nb1413m3") - MCFG_NB1413M3_TYPE( NB1413M3_MMAIKO ) + m_nb1413m3->set_type(NB1413M3_MMAIKO); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); MACHINE_CONFIG_END @@ -2420,8 +2407,7 @@ MACHINE_CONFIG_START(nbmj8891_state::lovehous) MCFG_DEVICE_PROGRAM_MAP(lovehous_map) MCFG_DEVICE_IO_MAP(lovehous_io_map) - MCFG_DEVICE_MODIFY("nb1413m3") - MCFG_NB1413M3_TYPE( NB1413M3_LOVEHOUS ) + m_nb1413m3->set_type(NB1413M3_LOVEHOUS); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); MACHINE_CONFIG_END @@ -2433,8 +2419,7 @@ MACHINE_CONFIG_START(nbmj8891_state::hanaoji) MCFG_DEVICE_MODIFY("maincpu") MCFG_DEVICE_PROGRAM_MAP(hanaoji_map) - MCFG_DEVICE_MODIFY("nb1413m3") - MCFG_NB1413M3_TYPE( NB1413M3_HANAOJI ) + m_nb1413m3->set_type(NB1413M3_HANAOJI); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); MACHINE_CONFIG_END @@ -2465,8 +2450,7 @@ MACHINE_CONFIG_START(nbmj8891_state::scandal) MCFG_DEVICE_PROGRAM_MAP(scandalm_map) MCFG_DEVICE_IO_MAP(scandal_io_map) - MCFG_DEVICE_MODIFY("nb1413m3") - MCFG_NB1413M3_TYPE( NB1413M3_SCANDAL ) + m_nb1413m3->set_type(NB1413M3_SCANDAL); MACHINE_CONFIG_END MACHINE_CONFIG_START(nbmj8891_state::bananadr) @@ -2477,32 +2461,31 @@ MACHINE_CONFIG_START(nbmj8891_state::bananadr) MCFG_DEVICE_PROGRAM_MAP(scandalm_map) MCFG_DEVICE_IO_MAP(bananadr_io_map) - MCFG_DEVICE_MODIFY("nb1413m3") - MCFG_NB1413M3_TYPE( NB1413M3_BANANADR ) + m_nb1413m3->set_type(NB1413M3_BANANADR); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); MACHINE_CONFIG_END -MACHINE_CONFIG_START(nbmj8891_state::club90s) +void nbmj8891_state::club90s(machine_config &config) +{ mjnanpas(config); - MCFG_DEVICE_MODIFY("nb1413m3") - MCFG_NB1413M3_TYPE( NB1413M3_CLUB90S ) -MACHINE_CONFIG_END + m_nb1413m3->set_type(NB1413M3_CLUB90S); +} -MACHINE_CONFIG_START(nbmj8891_state::mladyhtr) +void nbmj8891_state::mladyhtr(machine_config &config) +{ mjnanpas(config); - MCFG_DEVICE_MODIFY("nb1413m3") - MCFG_NB1413M3_TYPE( NB1413M3_MLADYHTR ) -MACHINE_CONFIG_END + m_nb1413m3->set_type(NB1413M3_MLADYHTR); +} -MACHINE_CONFIG_START(nbmj8891_state::chinmoku) +void nbmj8891_state::chinmoku(machine_config &config) +{ mjnanpas(config); - MCFG_DEVICE_MODIFY("nb1413m3") - MCFG_NB1413M3_TYPE( NB1413M3_CHINMOKU ) -MACHINE_CONFIG_END + m_nb1413m3->set_type(NB1413M3_CHINMOKU); +} /* NBMJDRV6 */ MACHINE_CONFIG_START(nbmj8891_state::mjfocusm) @@ -2513,8 +2496,7 @@ MACHINE_CONFIG_START(nbmj8891_state::mjfocusm) MCFG_DEVICE_PROGRAM_MAP(scandalm_map) MCFG_DEVICE_IO_MAP(scandalm_io_map) - MCFG_DEVICE_MODIFY("nb1413m3") - MCFG_NB1413M3_TYPE( NB1413M3_MJFOCUSM ) + m_nb1413m3->set_type(NB1413M3_MJFOCUSM); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); @@ -2530,12 +2512,12 @@ MACHINE_CONFIG_START(nbmj8891_state::mjfocusm) fmsnd.add_route(ALL_OUTPUTS, "speaker", 0.7); MACHINE_CONFIG_END -MACHINE_CONFIG_START(nbmj8891_state::scandalm) +void nbmj8891_state::scandalm(machine_config &config) +{ mjfocusm(config); - MCFG_DEVICE_MODIFY("nb1413m3") - MCFG_NB1413M3_TYPE( NB1413M3_SCANDALM ) -MACHINE_CONFIG_END + m_nb1413m3->set_type(NB1413M3_SCANDALM); +} MACHINE_CONFIG_START(nbmj8891_state::taiwanmb) gionbana(config); @@ -2546,8 +2528,7 @@ MACHINE_CONFIG_START(nbmj8891_state::taiwanmb) MCFG_DEVICE_IO_MAP(taiwanmb_io_map) // MCFG_DEVICE_VBLANK_INT_DRIVER("screen", nbmj8891_state, irq0_line_hold) - MCFG_DEVICE_MODIFY("nb1413m3") - MCFG_NB1413M3_TYPE( NB1413M3_TAIWANMB ) + m_nb1413m3->set_type(NB1413M3_TAIWANMB); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); diff --git a/src/mame/drivers/nbmj8900.cpp b/src/mame/drivers/nbmj8900.cpp index 16cecc8a9ff..1280f139ddc 100644 --- a/src/mame/drivers/nbmj8900.cpp +++ b/src/mame/drivers/nbmj8900.cpp @@ -312,8 +312,7 @@ MACHINE_CONFIG_START(nbmj8900_state::ohpaipee) MCFG_DEVICE_IO_MAP(ohpaipee_io_map) MCFG_DEVICE_VBLANK_INT_DRIVER("screen", nbmj8900_state, irq0_line_hold) - MCFG_NB1413M3_ADD("nb1413m3") - MCFG_NB1413M3_TYPE( NB1413M3_OHPAIPEE ) + NB1413M3(config, m_nb1413m3, 0, NB1413M3_OHPAIPEE); /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -345,8 +344,7 @@ MACHINE_CONFIG_START(nbmj8900_state::togenkyo) MCFG_DEVICE_MODIFY("maincpu") MCFG_DEVICE_PROGRAM_MAP(togenkyo_map) - MCFG_DEVICE_MODIFY("nb1413m3") - MCFG_NB1413M3_TYPE( NB1413M3_TOGENKYO ) + m_nb1413m3->set_type(NB1413M3_TOGENKYO); MACHINE_CONFIG_END diff --git a/src/mame/drivers/nbmj8991.cpp b/src/mame/drivers/nbmj8991.cpp index 4e94edc3c3f..5e0a6d0f0e2 100644 --- a/src/mame/drivers/nbmj8991.cpp +++ b/src/mame/drivers/nbmj8991.cpp @@ -1335,7 +1335,7 @@ MACHINE_CONFIG_START(nbmj8991_state::nbmjdrv1) // galkoku MCFG_DEVICE_IO_MAP(galkoku_io_map) MCFG_DEVICE_VBLANK_INT_DRIVER("screen", nbmj8991_state, irq0_line_hold) - MCFG_NB1413M3_ADD("nb1413m3") + NB1413M3(config, m_nb1413m3, 0); /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -1366,7 +1366,7 @@ MACHINE_CONFIG_START(nbmj8991_state::nbmjdrv2) // pstadium MCFG_DEVICE_IO_MAP(pstadium_io_map) MCFG_DEVICE_VBLANK_INT_DRIVER("screen", nbmj8991_state, irq0_line_hold) - MCFG_NB1413M3_ADD("nb1413m3") + NB1413M3(config, m_nb1413m3, 0); MCFG_DEVICE_ADD("audiocpu", Z80, 4000000) /* 4.00 MHz */ MCFG_DEVICE_PROGRAM_MAP(nbmj8991_sound_map) @@ -1414,13 +1414,12 @@ void nbmj8991_state::nbmjdrv3(machine_config &config) // --------------------------------------------------------------------- -MACHINE_CONFIG_START(nbmj8991_state::galkoku) +void nbmj8991_state::galkoku(machine_config &config) +{ nbmjdrv1(config); - /* basic machine hardware */ - MCFG_DEVICE_MODIFY("nb1413m3") - MCFG_NB1413M3_TYPE( NB1413M3_GALKOKU ) -MACHINE_CONFIG_END + m_nb1413m3->set_type(NB1413M3_GALKOKU); +} MACHINE_CONFIG_START(nbmj8991_state::galkaika) @@ -1430,8 +1429,7 @@ MACHINE_CONFIG_START(nbmj8991_state::galkaika) MCFG_DEVICE_MODIFY("maincpu") MCFG_DEVICE_PROGRAM_MAP(galkaika_map) - MCFG_DEVICE_MODIFY("nb1413m3") - MCFG_NB1413M3_TYPE( NB1413M3_GALKAIKA ) + m_nb1413m3->set_type(NB1413M3_GALKAIKA); MACHINE_CONFIG_END @@ -1442,8 +1440,7 @@ MACHINE_CONFIG_START(nbmj8991_state::tokyogal) MCFG_DEVICE_MODIFY("maincpu") MCFG_DEVICE_PROGRAM_MAP(tokyogal_map) - MCFG_DEVICE_MODIFY("nb1413m3") - MCFG_NB1413M3_TYPE( NB1413M3_TOKYOGAL ) + m_nb1413m3->set_type(NB1413M3_TOKYOGAL); MACHINE_CONFIG_END @@ -1454,29 +1451,26 @@ MACHINE_CONFIG_START(nbmj8991_state::tokimbsj) MCFG_DEVICE_MODIFY("maincpu") MCFG_DEVICE_PROGRAM_MAP(galkaika_map) - MCFG_DEVICE_MODIFY("nb1413m3") - MCFG_NB1413M3_TYPE( NB1413M3_TOKIMBSJ ) + m_nb1413m3->set_type(NB1413M3_TOKIMBSJ); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); MACHINE_CONFIG_END -MACHINE_CONFIG_START(nbmj8991_state::mcontest) +void nbmj8991_state::mcontest(machine_config &config) +{ nbmjdrv1(config); - /* basic machine hardware */ - MCFG_DEVICE_MODIFY("nb1413m3") - MCFG_NB1413M3_TYPE( NB1413M3_MCONTEST ) -MACHINE_CONFIG_END + m_nb1413m3->set_type(NB1413M3_MCONTEST); +} -MACHINE_CONFIG_START(nbmj8991_state::uchuuai) +void nbmj8991_state::uchuuai(machine_config &config) +{ nbmjdrv1(config); - /* basic machine hardware */ - MCFG_DEVICE_MODIFY("nb1413m3") - MCFG_NB1413M3_TYPE( NB1413M3_UCHUUAI ) -MACHINE_CONFIG_END + m_nb1413m3->set_type(NB1413M3_UCHUUAI); +} MACHINE_CONFIG_START(nbmj8991_state::hyouban) @@ -1486,20 +1480,18 @@ MACHINE_CONFIG_START(nbmj8991_state::hyouban) MCFG_DEVICE_MODIFY("maincpu") MCFG_DEVICE_IO_MAP(hyouban_io_map) - MCFG_DEVICE_MODIFY("nb1413m3") - MCFG_NB1413M3_TYPE( NB1413M3_HYOUBAN ) + m_nb1413m3->set_type(NB1413M3_HYOUBAN); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); MACHINE_CONFIG_END -MACHINE_CONFIG_START(nbmj8991_state::pstadium) +void nbmj8991_state::pstadium(machine_config &config) +{ nbmjdrv2(config); - /* basic machine hardware */ - MCFG_DEVICE_MODIFY("nb1413m3") - MCFG_NB1413M3_TYPE( NB1413M3_PSTADIUM ) -MACHINE_CONFIG_END + m_nb1413m3->set_type(NB1413M3_PSTADIUM); +} MACHINE_CONFIG_START(nbmj8991_state::triplew1) @@ -1509,8 +1501,7 @@ MACHINE_CONFIG_START(nbmj8991_state::triplew1) MCFG_DEVICE_MODIFY("maincpu") MCFG_DEVICE_PROGRAM_MAP(triplew1_map) - MCFG_DEVICE_MODIFY("nb1413m3") - MCFG_NB1413M3_TYPE( NB1413M3_TRIPLEW1 ) + m_nb1413m3->set_type(NB1413M3_TRIPLEW1); MACHINE_CONFIG_END @@ -1521,18 +1512,16 @@ MACHINE_CONFIG_START(nbmj8991_state::triplew2) MCFG_DEVICE_MODIFY("maincpu") MCFG_DEVICE_PROGRAM_MAP(triplew2_map) - MCFG_DEVICE_MODIFY("nb1413m3") - MCFG_NB1413M3_TYPE( NB1413M3_TRIPLEW2 ) + m_nb1413m3->set_type(NB1413M3_TRIPLEW2); MACHINE_CONFIG_END -MACHINE_CONFIG_START(nbmj8991_state::ntopstar) +void nbmj8991_state::ntopstar(machine_config &config) +{ nbmjdrv2(config); - /* basic machine hardware */ - MCFG_DEVICE_MODIFY("nb1413m3") - MCFG_NB1413M3_TYPE( NB1413M3_NTOPSTAR ) -MACHINE_CONFIG_END + m_nb1413m3->set_type(NB1413M3_NTOPSTAR); +} MACHINE_CONFIG_START(nbmj8991_state::mjlstory) @@ -1542,38 +1531,34 @@ MACHINE_CONFIG_START(nbmj8991_state::mjlstory) MCFG_DEVICE_MODIFY("maincpu") MCFG_DEVICE_PROGRAM_MAP(mjlstory_map) - MCFG_DEVICE_MODIFY("nb1413m3") - MCFG_NB1413M3_TYPE( NB1413M3_MJLSTORY ) + m_nb1413m3->set_type(NB1413M3_MJLSTORY); MACHINE_CONFIG_END -MACHINE_CONFIG_START(nbmj8991_state::vanilla) +void nbmj8991_state::vanilla(machine_config &config) +{ nbmjdrv2(config); - /* basic machine hardware */ - MCFG_DEVICE_MODIFY("nb1413m3") - MCFG_NB1413M3_TYPE( NB1413M3_VANILLA ) -MACHINE_CONFIG_END + m_nb1413m3->set_type(NB1413M3_VANILLA); +} MACHINE_CONFIG_START(nbmj8991_state::finalbny) nbmjdrv2(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("nb1413m3") - MCFG_NB1413M3_TYPE( NB1413M3_FINALBNY ) + m_nb1413m3->set_type(NB1413M3_FINALBNY); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); MACHINE_CONFIG_END -MACHINE_CONFIG_START(nbmj8991_state::qmhayaku) +void nbmj8991_state::qmhayaku(machine_config &config) +{ nbmjdrv2(config); - /* basic machine hardware */ - MCFG_DEVICE_MODIFY("nb1413m3") - MCFG_NB1413M3_TYPE( NB1413M3_QMHAYAKU ) -MACHINE_CONFIG_END + m_nb1413m3->set_type(NB1413M3_QMHAYAKU); +} MACHINE_CONFIG_START(nbmj8991_state::mjgottub) @@ -1583,8 +1568,7 @@ MACHINE_CONFIG_START(nbmj8991_state::mjgottub) MCFG_DEVICE_MODIFY("maincpu") MCFG_DEVICE_PROGRAM_MAP(triplew1_map) - MCFG_DEVICE_MODIFY("nb1413m3") - MCFG_NB1413M3_TYPE( NB1413M3_MJGOTTUB ) + m_nb1413m3->set_type(NB1413M3_MJGOTTUB); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); MACHINE_CONFIG_END @@ -1598,8 +1582,7 @@ MACHINE_CONFIG_START(nbmj8991_state::av2mj1bb) MCFG_DEVICE_PROGRAM_MAP(av2mj1bb_map) MCFG_DEVICE_IO_MAP(av2mj1bb_io_map) - MCFG_DEVICE_MODIFY("nb1413m3") - MCFG_NB1413M3_TYPE( NB1413M3_AV2MJ1BB ) + m_nb1413m3->set_type(NB1413M3_AV2MJ1BB); MACHINE_CONFIG_END @@ -1611,8 +1594,7 @@ MACHINE_CONFIG_START(nbmj8991_state::av2mj2rg) MCFG_DEVICE_PROGRAM_MAP(av2mj2rg_map) MCFG_DEVICE_IO_MAP(av2mj1bb_io_map) - MCFG_DEVICE_MODIFY("nb1413m3") - MCFG_NB1413M3_TYPE( NB1413M3_AV2MJ2RG ) + m_nb1413m3->set_type(NB1413M3_AV2MJ2RG); MACHINE_CONFIG_END diff --git a/src/mame/drivers/ngp.cpp b/src/mame/drivers/ngp.cpp index 287b7c884e3..2d383252057 100644 --- a/src/mame/drivers/ngp.cpp +++ b/src/mame/drivers/ngp.cpp @@ -860,7 +860,9 @@ MACHINE_CONFIG_END MACHINE_CONFIG_START(ngp_state::ngp) ngp_common(config); - MCFG_K1GE_ADD( "k1ge", 6.144_MHz_XTAL, "screen", WRITELINE( *this, ngp_state, ngp_vblank_pin_w ), WRITELINE( *this, ngp_state, ngp_hblank_pin_w ) ) + K1GE(config , m_k1ge, 6.144_MHz_XTAL, "screen"); + m_k1ge->vblank_callback().set(FUNC(ngp_state::ngp_vblank_pin_w)); + m_k1ge->hblank_callback().set(FUNC(ngp_state::ngp_hblank_pin_w)); MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_PALETTE("k1ge:palette") @@ -878,7 +880,9 @@ MACHINE_CONFIG_END MACHINE_CONFIG_START(ngp_state::ngpc) ngp_common(config); - MCFG_K2GE_ADD( "k1ge", 6.144_MHz_XTAL, "screen", WRITELINE( *this, ngp_state, ngp_vblank_pin_w ), WRITELINE( *this, ngp_state, ngp_hblank_pin_w ) ) + K2GE(config , m_k1ge, 6.144_MHz_XTAL, "screen"); + m_k1ge->vblank_callback().set(FUNC(ngp_state::ngp_vblank_pin_w)); + m_k1ge->hblank_callback().set(FUNC(ngp_state::ngp_hblank_pin_w)); MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_PALETTE("k1ge:palette") diff --git a/src/mame/drivers/pastelg.cpp b/src/mame/drivers/pastelg.cpp index 82625ffa55f..9bb5ed4c1df 100644 --- a/src/mame/drivers/pastelg.cpp +++ b/src/mame/drivers/pastelg.cpp @@ -405,8 +405,7 @@ MACHINE_CONFIG_START(pastelg_state::pastelg) MCFG_DEVICE_IO_MAP(pastelg_io_map) MCFG_DEVICE_VBLANK_INT_DRIVER("screen", pastelg_state, irq0_line_assert) // nmiclock not written, chip is 1411M1 instead of 1413M3 - MCFG_NB1413M3_ADD("nb1413m3") - MCFG_NB1413M3_TYPE( NB1413M3_PASTELG ) + NB1413M3(config, m_nb1413m3, 0, NB1413M3_PASTELG); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); @@ -466,7 +465,7 @@ MACHINE_CONFIG_START(pastelg_state::threeds) MCFG_DEVICE_IO_MAP(threeds_io_map) MCFG_DEVICE_VBLANK_INT_DRIVER("screen", pastelg_state, irq0_line_assert) - MCFG_NB1413M3_ADD("nb1413m3") + NB1413M3(config, m_nb1413m3, 0); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); /* video hardware */ diff --git a/src/mame/drivers/prof80.cpp b/src/mame/drivers/prof80.cpp index 11a596e0774..2d38f744002 100644 --- a/src/mame/drivers/prof80.cpp +++ b/src/mame/drivers/prof80.cpp @@ -457,7 +457,8 @@ MACHINE_CONFIG_START(prof80_state::prof80) MCFG_DEVICE_IO_MAP(prof80_io) // MMU - MCFG_PROF80_MMU_ADD(m_mmu, prof80_mmu) + PROF80_MMU(config, m_mmu, 0); + m_mmu->set_addrmap(AS_PROGRAM, &prof80_state::prof80_mmu); // RTC UPD1990A(config, m_rtc); diff --git a/src/mame/drivers/segaorun.cpp b/src/mame/drivers/segaorun.cpp index ebd5612ff92..d6cc081746e 100644 --- a/src/mame/drivers/segaorun.cpp +++ b/src/mame/drivers/segaorun.cpp @@ -1169,10 +1169,9 @@ MACHINE_CONFIG_START(segaorun_state::outrun_base) m_i8255->in_pc_callback().set(FUNC(segaorun_state::unknown_portc_r)); m_i8255->out_pc_callback().set(FUNC(segaorun_state::video_control_w)); - MCFG_DEVICE_ADD("mapper", SEGA_315_5195_MEM_MAPPER, MASTER_CLOCK/4) - MCFG_SEGA_315_5195_CPU("maincpu") - MCFG_SEGA_315_5195_MAPPER_HANDLER(segaorun_state, memory_mapper) - MCFG_SEGA_315_5195_PBF_CALLBACK(INPUTLINE("soundcpu", INPUT_LINE_NMI)) + SEGA_315_5195_MEM_MAPPER(config, m_mapper, MASTER_CLOCK/4, m_maincpu); + m_mapper->set_mapper(FUNC(segaorun_state::memory_mapper), this); + m_mapper->pbf().set_inputline(m_soundcpu, INPUT_LINE_NMI); // video hardware MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_segaorun) diff --git a/src/mame/drivers/segas16b.cpp b/src/mame/drivers/segas16b.cpp index 1bb18fc01a7..947cb7d5548 100644 --- a/src/mame/drivers/segas16b.cpp +++ b/src/mame/drivers/segas16b.cpp @@ -3725,8 +3725,8 @@ void segas16b_state::system16b(machine_config &config) NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); SEGA_315_5195_MEM_MAPPER(config, m_mapper, MASTER_CLOCK_10MHz, m_maincpu); - m_mapper->set_mapper(FUNC(segas16b_state::memory_mapper)); - m_mapper->pbf().set_inputline("soundcpu", 0); + m_mapper->set_mapper(FUNC(segas16b_state::memory_mapper), this); + m_mapper->pbf().set_inputline(m_soundcpu, 0); // video hardware GFXDECODE(config, m_gfxdecode, "palette", gfx_segas16b); @@ -3962,23 +3962,23 @@ MACHINE_CONFIG_END // GAME-SPECIFIC MACHINE DRIVERS //************************************************************************** -MACHINE_CONFIG_START(segas16b_state::atomicp) // 10MHz CPU Clock verified +void segas16b_state::atomicp(machine_config &config) // 10MHz CPU Clock verified +{ system16b(config); // basic machine hardware - MCFG_DEVICE_REMOVE("soundcpu") - MCFG_DEVICE_REMOVE("sprites") + config.device_remove("soundcpu"); + config.device_remove("sprites"); - MCFG_DEVICE_MODIFY("mapper") - MCFG_SEGA_315_5195_PBF_CALLBACK(NOOP) + m_mapper->pbf().set_nop(); // sound hardware - MCFG_DEVICE_REMOVE("ym2151") - MCFG_DEVICE_ADD("ym2413", YM2413, XTAL(20'000'000)/4) // 20MHz OSC divided by 4 (verified) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) + config.device_remove("ym2151"); + YM2413(config, m_ym2413, XTAL(20'000'000)/4); // 20MHz OSC divided by 4 (verified) + m_ym2413->add_route(ALL_OUTPUTS, "mono", 1.0); - MCFG_DEVICE_REMOVE("upd") -MACHINE_CONFIG_END + config.device_remove("upd"); +} MACHINE_CONFIG_START(segas16b_state::system16c) diff --git a/src/mame/drivers/segas18.cpp b/src/mame/drivers/segas18.cpp index 4d667a0b82c..1c160bd3e47 100644 --- a/src/mame/drivers/segas18.cpp +++ b/src/mame/drivers/segas18.cpp @@ -1320,10 +1320,9 @@ MACHINE_CONFIG_START(segas18_state::system18) NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); - MCFG_DEVICE_ADD("mapper", SEGA_315_5195_MEM_MAPPER, 10000000) - MCFG_SEGA_315_5195_CPU("maincpu") - MCFG_SEGA_315_5195_MAPPER_HANDLER(segas18_state, memory_mapper) - MCFG_SEGA_315_5195_PBF_CALLBACK(INPUTLINE("soundcpu", INPUT_LINE_NMI)) + SEGA_315_5195_MEM_MAPPER(config, m_mapper, 10000000, m_maincpu); + m_mapper->set_mapper(FUNC(segas18_state::memory_mapper), this); + m_mapper->pbf().set_inputline(m_soundcpu, INPUT_LINE_NMI); SEGA_315_5296(config, m_io, 16000000); m_io->in_pa_callback().set_ioport("P1"); @@ -1444,8 +1443,7 @@ MACHINE_CONFIG_START(segas18_state::system18_i8751) MCFG_DEVICE_MODIFY("maincpu") MCFG_DEVICE_VBLANK_INT_REMOVE() - MCFG_DEVICE_MODIFY("mapper") - MCFG_SEGA_315_5195_MCU_INT_CALLBACK(INPUTLINE("mcu", INPUT_LINE_IRQ1)) + m_mapper->mcu_int().set_inputline(m_mcu, INPUT_LINE_IRQ1); MCFG_DEVICE_ADD("mcu", I8751, 8000000) MCFG_DEVICE_IO_MAP(mcu_io_map) @@ -1459,8 +1457,7 @@ MACHINE_CONFIG_START(segas18_state::system18_fd1094_i8751) MCFG_DEVICE_MODIFY("maincpu") MCFG_DEVICE_VBLANK_INT_REMOVE() - MCFG_DEVICE_MODIFY("mapper") - MCFG_SEGA_315_5195_MCU_INT_CALLBACK(INPUTLINE("mcu", INPUT_LINE_IRQ1)) + m_mapper->mcu_int().set_inputline(m_mcu, INPUT_LINE_IRQ1); MCFG_DEVICE_ADD("mcu", I8751, 8000000) MCFG_DEVICE_IO_MAP(mcu_io_map) diff --git a/src/mame/drivers/segaxbd.cpp b/src/mame/drivers/segaxbd.cpp index 0bcaa287b21..02bf1f9eb00 100644 --- a/src/mame/drivers/segaxbd.cpp +++ b/src/mame/drivers/segaxbd.cpp @@ -1691,10 +1691,10 @@ MACHINE_CONFIG_START(segaxbd_state::xboard_base_mconfig ) MB3773(config, "watchdog"); - MCFG_SEGA_315_5248_MULTIPLIER_ADD("multiplier_main") - MCFG_SEGA_315_5248_MULTIPLIER_ADD("multiplier_subx") - MCFG_SEGA_315_5249_DIVIDER_ADD("divider_main") - MCFG_SEGA_315_5249_DIVIDER_ADD("divider_subx") + SEGA_315_5248_MULTIPLIER(config, "multiplier_main", 0); + SEGA_315_5248_MULTIPLIER(config, "multiplier_subx", 0); + SEGA_315_5249_DIVIDER(config, "divider_main", 0); + SEGA_315_5249_DIVIDER(config, "divider_subx", 0); SEGA_315_5250_COMPARE_TIMER(config, m_cmptimer_1, 0); m_cmptimer_1->m68kint_callback().set(FUNC(segaxbd_state::timer_irq_w)); diff --git a/src/mame/drivers/segaybd.cpp b/src/mame/drivers/segaybd.cpp index dcc68aa8236..f888407684c 100644 --- a/src/mame/drivers/segaybd.cpp +++ b/src/mame/drivers/segaybd.cpp @@ -1309,12 +1309,12 @@ MACHINE_CONFIG_START(segaybd_state::yboard) MCFG_MSM6253_IN2_ANALOG_PORT("ADC.2") MCFG_MSM6253_IN3_ANALOG_READ(segaybd_state, analog_mux) - MCFG_SEGA_315_5248_MULTIPLIER_ADD("multiplier_main") - MCFG_SEGA_315_5248_MULTIPLIER_ADD("multiplier_subx") - MCFG_SEGA_315_5248_MULTIPLIER_ADD("multiplier_suby") - MCFG_SEGA_315_5249_DIVIDER_ADD("divider_main") - MCFG_SEGA_315_5249_DIVIDER_ADD("divider_subx") - MCFG_SEGA_315_5249_DIVIDER_ADD("divider_suby") + SEGA_315_5248_MULTIPLIER(config, "multiplier_main", 0); + SEGA_315_5248_MULTIPLIER(config, "multiplier_subx", 0); + SEGA_315_5248_MULTIPLIER(config, "multiplier_suby", 0); + SEGA_315_5249_DIVIDER(config, "divider_main", 0); + SEGA_315_5249_DIVIDER(config, "divider_subx", 0); + SEGA_315_5249_DIVIDER(config, "divider_suby", 0); // video hardware MCFG_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/sorcerer.cpp b/src/mame/drivers/sorcerer.cpp index aada01930c0..0d611f2e7e9 100644 --- a/src/mame/drivers/sorcerer.cpp +++ b/src/mame/drivers/sorcerer.cpp @@ -484,8 +484,8 @@ MACHINE_CONFIG_START(sorcerer_state::sorcererd) MCFG_MACHINE_START_OVERRIDE(sorcerer_state, sorcererd ) - MCFG_DEVICE_ADD(m_fdc, MICROPOLIS, 0) - MCFG_MICROPOLIS_DEFAULT_DRIVE4_TAGS + MICROPOLIS(config, m_fdc, 0); + m_fdc->set_default_drive_tags(); MCFG_LEGACY_FLOPPY_4_DRIVES_ADD(sorcerer_floppy_interface) FD1793(config, m_fdc2, 8_MHz_XTAL / 8); // confirmed clock diff --git a/src/mame/machine/315-5881_crypt.h b/src/mame/machine/315-5881_crypt.h index 4e61c38066a..0d23b6d7527 100644 --- a/src/mame/machine/315-5881_crypt.h +++ b/src/mame/machine/315-5881_crypt.h @@ -10,9 +10,6 @@ typedef device_delegate sega_m2_read_delegate; DECLARE_DEVICE_TYPE(SEGA315_5881_CRYPT, sega_315_5881_crypt_device) -#define MCFG_SET_READ_CALLBACK( _class, _method) \ - downcast(*device).set_read_cb(sega_m2_read_delegate(&_class::_method, #_class "::" #_method, nullptr, (_class *)nullptr)); - class sega_315_5881_crypt_device : public device_t { diff --git a/src/mame/machine/k573cass.h b/src/mame/machine/k573cass.h index 0481b5c02fd..30423d5464f 100644 --- a/src/mame/machine/k573cass.h +++ b/src/mame/machine/k573cass.h @@ -16,9 +16,6 @@ #include "machine/x76f100.h" #include "machine/zs01.h" -#define MCFG_KONAMI573_CASSETTE_DSR_HANDLER(_devcb) \ - downcast(*device).set_dsr_handler(DEVCB_##_devcb); - DECLARE_DEVICE_TYPE(KONAMI573_CASSETTE_SLOT, konami573_cassette_slot_device) @@ -32,7 +29,7 @@ class konami573_cassette_slot_device : public device_t, public: konami573_cassette_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template devcb_base &set_dsr_handler(Object &&cb) { return m_dsr_handler.set_callback(std::forward(cb)); } + auto dsr_handler() { return m_dsr_handler.bind(); } DECLARE_WRITE_LINE_MEMBER(write_line_d0); DECLARE_WRITE_LINE_MEMBER(write_line_d1); @@ -140,31 +137,6 @@ private: DECLARE_DEVICE_TYPE(KONAMI573_CASSETTE_Y, konami573_cassette_y_device) - -#define MCFG_KONAMI573_CASSETTE_Y_D0_HANDLER(_devcb) \ - downcast(*device).set_d0_handler(DEVCB_##_devcb); - -#define MCFG_KONAMI573_CASSETTE_Y_D1_HANDLER(_devcb) \ - downcast(*device).set_d1_handler(DEVCB_##_devcb); - -#define MCFG_KONAMI573_CASSETTE_Y_D2_HANDLER(_devcb) \ - downcast(*device).set_d2_handler(DEVCB_##_devcb); - -#define MCFG_KONAMI573_CASSETTE_Y_D3_HANDLER(_devcb) \ - downcast(*device).set_d3_handler(DEVCB_##_devcb); - -#define MCFG_KONAMI573_CASSETTE_Y_D4_HANDLER(_devcb) \ - downcast(*device).set_d4_handler(DEVCB_##_devcb); - -#define MCFG_KONAMI573_CASSETTE_Y_D5_HANDLER(_devcb) \ - downcast(*device).set_d5_handler(DEVCB_##_devcb); - -#define MCFG_KONAMI573_CASSETTE_Y_D6_HANDLER(_devcb) \ - downcast(*device).set_d6_handler(DEVCB_##_devcb); - -#define MCFG_KONAMI573_CASSETTE_Y_D7_HANDLER(_devcb) \ - downcast(*device).set_d7_handler(DEVCB_##_devcb); - class konami573_cassette_y_device: public device_t, public konami573_cassette_interface { @@ -172,14 +144,14 @@ public: konami573_cassette_y_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // configuration helpers - template devcb_base &set_d0_handler(Object &&cb) { return m_d0_handler.set_callback(std::forward(cb)); } - template devcb_base &set_d1_handler(Object &&cb) { return m_d1_handler.set_callback(std::forward(cb)); } - template devcb_base &set_d2_handler(Object &&cb) { return m_d2_handler.set_callback(std::forward(cb)); } - template devcb_base &set_d3_handler(Object &&cb) { return m_d3_handler.set_callback(std::forward(cb)); } - template devcb_base &set_d4_handler(Object &&cb) { return m_d4_handler.set_callback(std::forward(cb)); } - template devcb_base &set_d5_handler(Object &&cb) { return m_d5_handler.set_callback(std::forward(cb)); } - template devcb_base &set_d6_handler(Object &&cb) { return m_d6_handler.set_callback(std::forward(cb)); } - template devcb_base &set_d7_handler(Object &&cb) { return m_d7_handler.set_callback(std::forward(cb)); } + auto d0_handler() { return m_d0_handler.bind(); } + auto d1_handler() { return m_d1_handler.bind(); } + auto d2_handler() { return m_d2_handler.bind(); } + auto d3_handler() { return m_d3_handler.bind(); } + auto d4_handler() { return m_d4_handler.bind(); } + auto d5_handler() { return m_d5_handler.bind(); } + auto d6_handler() { return m_d6_handler.bind(); } + auto d7_handler() { return m_d7_handler.bind(); } virtual DECLARE_READ_LINE_MEMBER(read_line_secflash_sda) override; virtual DECLARE_WRITE_LINE_MEMBER(write_line_d0) override; diff --git a/src/mame/machine/micropolis.h b/src/mame/machine/micropolis.h index 5f2dd3f7b08..7012690c5d8 100644 --- a/src/mame/machine/micropolis.h +++ b/src/mame/machine/micropolis.h @@ -17,25 +17,6 @@ #include "imagedev/flopdrv.h" -/*************************************************************************** - TYPE DEFINITIONS -***************************************************************************/ - -#define MCFG_MICROPOLIS_DRIVE_TAGS(_tag1, _tag2, _tag3, _tag4) \ - downcast(*device).set_drive_tags(_tag1, _tag2, _tag3, _tag4); - -#define MCFG_MICROPOLIS_DEFAULT_DRIVE4_TAGS \ - MCFG_MICROPOLIS_DRIVE_TAGS(FLOPPY_0, FLOPPY_1, FLOPPY_2, FLOPPY_3) - -#define MCFG_MICROPOLIS_DDEN_CALLBACK(_read) \ - downcast(*device).set_dden_rd_callback(DEVCB_##_read); - -#define MCFG_MICROPOLIS_INTRQ_CALLBACK(_write) \ - downcast(*device).set_intrq_wr_callback(DEVCB_##_write); - -#define MCFG_MICROPOLIS_DRQ_CALLBACK(_write) \ - downcast(*device).set_drq_wr_callback(DEVCB_##_write); - /*************************************************************************** MACROS ***************************************************************************/ @@ -45,9 +26,9 @@ class micropolis_device : public device_t public: micropolis_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template devcb_base &set_dden_rd_callback(Object &&cb) { return m_read_dden.set_callback(std::forward(cb)); } - template devcb_base &set_intrq_wr_callback(Object &&cb) { return m_write_intrq.set_callback(std::forward(cb)); } - template devcb_base &set_drq_wr_callback(Object &&cb) { return m_write_drq.set_callback(std::forward(cb)); } + auto dden_rd_callback() { return m_read_dden.bind(); } + auto intrq_wr_callback() { return m_write_intrq.bind(); } + auto drq_wr_callback() { return m_write_drq.bind(); } void set_drive_tags(const char *tag1, const char *tag2, const char *tag3, const char *tag4) { @@ -57,6 +38,8 @@ public: m_floppy_drive_tags[3] = tag4; } + void set_default_drive_tags() { set_drive_tags(FLOPPY_0, FLOPPY_1, FLOPPY_2, FLOPPY_3); } + void set_drive(uint8_t drive); // set current drive (0-3) DECLARE_READ8_MEMBER( status_r ); diff --git a/src/mame/machine/naomim2.cpp b/src/mame/machine/naomim2.cpp index 39e7b56c4fe..16368a77467 100644 --- a/src/mame/machine/naomim2.cpp +++ b/src/mame/machine/naomim2.cpp @@ -200,7 +200,8 @@ uint16_t naomi_m2_board::read_callback(uint32_t addr) } } -MACHINE_CONFIG_START(naomi_m2_board::device_add_mconfig) - MCFG_DEVICE_ADD("segam2crypt", SEGA315_5881_CRYPT, 0) - MCFG_SET_READ_CALLBACK(naomi_m2_board, read_callback) -MACHINE_CONFIG_END +void naomi_m2_board::device_add_mconfig(machine_config &config) +{ + SEGA315_5881_CRYPT(config, m_cryptdevice, 0); + m_cryptdevice->set_read_cb(FUNC(naomi_m2_board::read_callback)); +} diff --git a/src/mame/machine/nb1413m3.h b/src/mame/machine/nb1413m3.h index 3c2c8001edf..f730f87341b 100644 --- a/src/mame/machine/nb1413m3.h +++ b/src/mame/machine/nb1413m3.h @@ -124,12 +124,15 @@ enum { NB1413M3_PAIRSTEN }; -#define MCFG_NB1413M3_TYPE(_type) \ - downcast(*device).set_type(_type); - class nb1413m3_device : public device_t { public: + nb1413m3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock, int type) : + nb1413m3_device(mconfig, tag, owner, clock) + { + set_type(type); + } + nb1413m3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); ~nb1413m3_device() {} @@ -200,8 +203,4 @@ INPUT_PORTS_EXTERN( nbhf2_ctrl ); DECLARE_DEVICE_TYPE(NB1413M3, nb1413m3_device) - -#define MCFG_NB1413M3_ADD(_tag) \ - MCFG_DEVICE_ADD(_tag, NB1413M3, 0) - #endif // MAME_MACHINE_NB1413M3_H diff --git a/src/mame/machine/prof80mmu.h b/src/mame/machine/prof80mmu.h index 7c64f70cb5d..3ad54bb70dc 100644 --- a/src/mame/machine/prof80mmu.h +++ b/src/mame/machine/prof80mmu.h @@ -12,18 +12,6 @@ #pragma once - - -///************************************************************************* -// INTERFACE CONFIGURATION MACROS -///************************************************************************* - -#define MCFG_PROF80_MMU_ADD(_tag, _program_map) \ - MCFG_DEVICE_ADD(_tag, PROF80_MMU, 0) \ - MCFG_DEVICE_ADDRESS_MAP(AS_PROGRAM, _program_map) - - - ///************************************************************************* // TYPE DEFINITIONS ///************************************************************************* diff --git a/src/mame/machine/segaic16.h b/src/mame/machine/segaic16.h index 5739e85855f..beaed7a9b33 100644 --- a/src/mame/machine/segaic16.h +++ b/src/mame/machine/segaic16.h @@ -18,26 +18,6 @@ #include "screen.h" -//************************************************************************** -// INTERFACE CONFIGURATION MACROS -//************************************************************************** - -#define MCFG_SEGA_315_5195_CPU(_cputag) \ - downcast(*device).set_cputag(_cputag); -#define MCFG_SEGA_315_5195_MAPPER_HANDLER(_class, _mapper) \ - downcast(*device).set_mapper(sega_315_5195_mapper_device::mapper_delegate(&_class::_mapper, #_class "::" #_mapper, nullptr, (_class *)nullptr)); -#define MCFG_SEGA_315_5195_PBF_CALLBACK(_devcb) \ - downcast(*device).set_pbf_callback(DEVCB_##_devcb); -#define MCFG_SEGA_315_5195_MCU_INT_CALLBACK(_devcb) \ - downcast(*device).set_mcu_int_callback(DEVCB_##_devcb); - -#define MCFG_SEGA_315_5248_MULTIPLIER_ADD(_tag) \ - MCFG_DEVICE_ADD(_tag, SEGA_315_5248_MULTIPLIER, 0) - -#define MCFG_SEGA_315_5249_DIVIDER_ADD(_tag) \ - MCFG_DEVICE_ADD(_tag, SEGA_315_5249_DIVIDER, 0) - - //************************************************************************** // TYPE DEFINITIONS //************************************************************************** @@ -62,7 +42,7 @@ protected: // internal helpers void palette_init(); -public: // -- stupid system16.c +public: // -- stupid system16.cpp // memory pointers required_shared_ptr m_paletteram; protected: @@ -97,25 +77,8 @@ public: sega_315_5195_mapper_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // configuration helpers - void set_cputag(const char *cpu) - { - m_cpu.set_tag(cpu); - m_cpuregion.set_tag(cpu); - } - - void set_mapper(mapper_delegate callback) { m_mapper = callback; } - template void set_mapper(const char *devname - , void (FunctionClass::*callback)(sega_315_5195_mapper_device &, uint8_t), const char *name) - { - set_mapper(mapper_delegate(callback, name, devname, static_cast(nullptr))); - } - template void set_mapper(void (FunctionClass::*callback)(sega_315_5195_mapper_device &, uint8_t), const char *name) - { - set_mapper(mapper_delegate(callback, name, nullptr, static_cast(nullptr))); - } + template void set_mapper(T &&... args) { m_mapper = mapper_delegate(std::forward(args)...); } - template devcb_base &set_pbf_callback(Object &&object) { return m_pbf_callback.set_callback(std::forward(object)); } - template devcb_base &set_mcu_int_callback(Object &&object) { return m_mcu_int_callback.set_callback(std::forward(object)); } auto pbf() { return m_pbf_callback.bind(); } auto mcu_int() { return m_mcu_int_callback.bind(); } diff --git a/src/mame/machine/tait8741.h b/src/mame/machine/tait8741.h index ceb9b39e823..d80cc5649ea 100644 --- a/src/mame/machine/tait8741.h +++ b/src/mame/machine/tait8741.h @@ -6,7 +6,7 @@ #pragma once /**************************************************************************** - gladiatr and Great Swordsman set. + not used by anything. TODO: remove? ****************************************************************************/ /* NEC 8741 program mode */ @@ -14,38 +14,15 @@ #define TAITO8741_SLAVE 1 #define TAITO8741_PORT 2 -#define MCFG_TAITO8741_ADD(_tag) \ - MCFG_DEVICE_ADD(_tag, TAITO8741_4PACK, 0) - -#define MCFG_TAITO8741_PORT_HANDLERS(_devcb0, _devcb1, _devcb2, _devcb3) \ - downcast(*device).set_port_handler_0_callback(DEVCB_##_devcb0); \ - downcast(*device).set_port_handler_1_callback(DEVCB_##_devcb1); \ - downcast(*device).set_port_handler_2_callback(DEVCB_##_devcb2); \ - downcast(*device).set_port_handler_3_callback(DEVCB_##_devcb3); - -#define MCFG_TAITO8741_MODES(_mode0, _mode1, _mode2, _mode3) \ - downcast(*device).set_mode(0, _mode0); \ - downcast(*device).set_mode(1, _mode1); \ - downcast(*device).set_mode(2, _mode2); \ - downcast(*device).set_mode(3, _mode3); - - -#define MCFG_TAITO8741_CONNECT(_con0, _con1, _con2, _con3) \ - downcast(*device).set_connect(0, _con0); \ - downcast(*device).set_connect(1, _con1); \ - downcast(*device).set_connect(2, _con2); \ - downcast(*device).set_connect(3, _con3); - - class taito8741_4pack_device : public device_t { public: taito8741_4pack_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template devcb_base &set_port_handler_0_callback(Object &&cb) { return m_port_handler_0_r.set_callback(std::forward(cb)); } - template devcb_base &set_port_handler_1_callback(Object &&cb) { return m_port_handler_1_r.set_callback(std::forward(cb)); } - template devcb_base &set_port_handler_2_callback(Object &&cb) { return m_port_handler_2_r.set_callback(std::forward(cb)); } - template devcb_base &set_port_handler_3_callback(Object &&cb) { return m_port_handler_3_r.set_callback(std::forward(cb)); } + auto port_handler_0_callback() { return m_port_handler_0_r.bind(); } + auto port_handler_1_callback() { return m_port_handler_1_r.bind(); } + auto port_handler_2_callback() { return m_port_handler_2_r.bind(); } + auto port_handler_3_callback() { return m_port_handler_3_r.bind(); } void set_mode(int num, uint8_t mode) { m_taito8741[num].mode = mode; } void set_connect(int num, int conn) { m_taito8741[num].connect = conn; } diff --git a/src/mame/video/decrmc3.h b/src/mame/video/decrmc3.h index 11d12db7f32..5293c9c98a5 100644 --- a/src/mame/video/decrmc3.h +++ b/src/mame/video/decrmc3.h @@ -20,32 +20,6 @@ #pragma once - -//************************************************************************** -// DEVICE CONFIGURATION MACROS -//************************************************************************** - -#define MCFG_DECO_RMC3_ADD(_tag, _entries) \ - MCFG_DEVICE_ADD(_tag, DECO_RMC3, 0) \ - MCFG_DECO_RMC3_SET_PALETTE_SIZE(_entries) - -#define MCFG_DECO_RMC3_MODIFY MCFG_DEVICE_MODIFY - -#define MCFG_DECO_RMC3_SET_PALETTE_SIZE(_entries) \ - downcast(*device).set_entries(_entries); - -#define MCFG_DECO_RMC3_INDIRECT_ENTRIES(_entries) \ - downcast(*device).set_indirect_entries( _entries); - -// other standard palettes -#define MCFG_DECO_RMC3_ADD_PROMS(_tag, _region, _entries) \ - MCFG_DECO_RMC3_ADD(_tag, _entries) \ - downcast(*device).set_prom_region(_region); \ - downcast(*device).set_init(deco_rmc3_palette_init_delegate(FUNC(deco_rmc3_device::palette_init_proms), downcast(device))); - -//#define MCFG_DECO_RMC3_INIT_OWNER(_class, _method) -// downcast(*device).set_init(deco_rmc3_palette_init_delegate(&_class::PALETTE_INIT_NAME(_method), #_class "::palette_init_" #_method, this)); - //************************************************************************** // TYPE DEFINITIONS //************************************************************************** @@ -59,15 +33,26 @@ class deco_rmc3_device : public device_t, public device_palette_interface { public: // construction/destruction + deco_rmc3_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock, u32 entries) + : deco_rmc3_device(mconfig, tag, owner, clock) + { + set_entries(entries); + } + deco_rmc3_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); // configuration void set_init(deco_rmc3_palette_init_delegate init) { m_init = init; } + template void set_init(const char *devname, void (FunctionClass::*callback)(deco_rmc3_device &), const char *name) + { + set_init(deco_rmc3_palette_init_delegate(callback, name, devname, static_cast(nullptr))); + } // void set_membits(int membits); // void set_endianness(endianness_t endianness); void set_entries(u32 entries) { m_entries = entries; } void set_indirect_entries(u32 entries) { m_indirect_entries = entries; } void set_prom_region(const char *region) { m_prom_region.set_tag(region); } + template void set_prom_region(T &&tag) { m_prom_region.set_tag(std::forward(tag)); } // palette RAM accessors memory_array &basemem() { return m_paletteram; } diff --git a/src/mame/video/k1ge.h b/src/mame/video/k1ge.h index 1fcac610cf2..de314b98d9a 100644 --- a/src/mame/video/k1ge.h +++ b/src/mame/video/k1ge.h @@ -13,23 +13,16 @@ #include "emupal.h" - -#define MCFG_K1GE_ADD(_tag, _clock, _screen, _vblank, _hblank ) \ - MCFG_DEVICE_ADD( _tag, K1GE, _clock ) \ - MCFG_VIDEO_SET_SCREEN( _screen ) \ - downcast(*device).set_vblank_callback(DEVCB_##_vblank ); \ - downcast(*device).set_hblank_callback(DEVCB_##_hblank ); - -#define MCFG_K2GE_ADD(_tag, _clock, _screen, _vblank, _hblank ) \ - MCFG_DEVICE_ADD( _tag, K2GE, _clock ) \ - MCFG_VIDEO_SET_SCREEN( _screen ) \ - downcast(*device).set_vblank_callback(DEVCB_##_vblank ); \ - downcast(*device).set_hblank_callback(DEVCB_##_hblank ); - - class k1ge_device : public device_t, public device_video_interface { public: + template + k1ge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock, T &&screen_tag) + : k1ge_device(mconfig, tag, owner, clock) + { + set_screen(std::forward(screen_tag)); + } + k1ge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); DECLARE_READ8_MEMBER( read ); @@ -38,8 +31,8 @@ public: void update( bitmap_ind16 &bitmap, const rectangle &cliprect ); // Static methods - template devcb_base &set_vblank_callback(Object &&cb) { return m_vblank_pin_w.set_callback(std::forward(cb)); } - template devcb_base &set_hblank_callback(Object &&cb) { return m_hblank_pin_w.set_callback(std::forward(cb)); } + auto vblank_callback() { return m_vblank_pin_w.bind(); } + auto hblank_callback() { return m_hblank_pin_w.bind(); } static const int K1GE_SCREEN_HEIGHT = 199; @@ -75,6 +68,13 @@ private: class k2ge_device : public k1ge_device { public: + template + k2ge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock, T &&screen_tag) + : k2ge_device(mconfig, tag, owner, clock) + { + set_screen(std::forward(screen_tag)); + } + k2ge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); protected: diff --git a/src/mame/video/nick.h b/src/mame/video/nick.h index 3f2cc6452f2..a79493f2390 100644 --- a/src/mame/video/nick.h +++ b/src/mame/video/nick.h @@ -21,21 +21,6 @@ // INTERFACE CONFIGURATION MACROS ///************************************************************************* -#define MCFG_NICK_ADD(_tag, _screen_tag, _clock) \ - MCFG_SCREEN_ADD(_screen_tag, RASTER) \ - MCFG_SCREEN_REFRESH_RATE(50) \ - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) \ - MCFG_SCREEN_SIZE(ENTERPRISE_SCREEN_WIDTH, ENTERPRISE_SCREEN_HEIGHT) \ - MCFG_SCREEN_VISIBLE_AREA(0, ENTERPRISE_SCREEN_WIDTH-1, 0, ENTERPRISE_SCREEN_HEIGHT-1) \ - MCFG_SCREEN_UPDATE_DEVICE(_tag, nick_device, screen_update) \ - MCFG_DEVICE_ADD(_tag, NICK, _clock) \ - MCFG_VIDEO_SET_SCREEN(_screen_tag) - - -#define MCFG_NICK_VIRQ_CALLBACK(_write) \ - downcast(*device).set_virq_wr_callback(DEVCB_##_write); - - /* there are 64us per line, although in reality about 50 are visible. */ #define ENTERPRISE_SCREEN_WIDTH (50*16) @@ -73,9 +58,16 @@ class nick_device : public device_t, { public: // construction/destruction + template + nick_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock, T &&screen_tag) : + nick_device(mconfig, tag, owner, clock) + { + set_screen(std::forward(screen_tag)); + } + nick_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template devcb_base &set_virq_wr_callback(Object &&cb) { return m_write_virq.set_callback(std::forward(cb)); } + auto virq_wr_callback() { return m_write_virq.bind(); } virtual void vram_map(address_map &map); virtual void vio_map(address_map &map); -- cgit v1.2.3