summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Ivan Vangelista <mesgnet@yahoo.it>2018-12-10 19:56:44 +0100
committer Ivan Vangelista <mesgnet@yahoo.it>2018-12-10 19:56:44 +0100
commite0eaf02d224c75ae4a8d85baaf08d51921edbc38 (patch)
treedcd6621d9b5aabf84d5119681dec0d6a48c3c97e
parentb1fbd379eee1453f4cf4fbfa9b59a1ce744f1ecb (diff)
src/mame: more MCFG removal (nw)
-rw-r--r--src/mame/drivers/cyclemb.cpp1
-rw-r--r--src/mame/drivers/dec8.cpp28
-rw-r--r--src/mame/drivers/ep64.cpp11
-rw-r--r--src/mame/drivers/hyhoo.cpp12
-rw-r--r--src/mame/drivers/karnov.cpp8
-rw-r--r--src/mame/drivers/ksys573.cpp153
-rw-r--r--src/mame/drivers/nbmj8688.cpp238
-rw-r--r--src/mame/drivers/nbmj8891.cpp119
-rw-r--r--src/mame/drivers/nbmj8900.cpp6
-rw-r--r--src/mame/drivers/nbmj8991.cpp100
-rw-r--r--src/mame/drivers/ngp.cpp8
-rw-r--r--src/mame/drivers/pastelg.cpp5
-rw-r--r--src/mame/drivers/prof80.cpp3
-rw-r--r--src/mame/drivers/segaorun.cpp7
-rw-r--r--src/mame/drivers/segas16b.cpp24
-rw-r--r--src/mame/drivers/segas18.cpp13
-rw-r--r--src/mame/drivers/segaxbd.cpp8
-rw-r--r--src/mame/drivers/segaybd.cpp12
-rw-r--r--src/mame/drivers/sorcerer.cpp4
-rw-r--r--src/mame/machine/315-5881_crypt.h3
-rw-r--r--src/mame/machine/k573cass.h46
-rw-r--r--src/mame/machine/micropolis.h27
-rw-r--r--src/mame/machine/naomim2.cpp9
-rw-r--r--src/mame/machine/nb1413m3.h13
-rw-r--r--src/mame/machine/prof80mmu.h12
-rw-r--r--src/mame/machine/segaic16.h41
-rw-r--r--src/mame/machine/tait8741.h33
-rw-r--r--src/mame/video/decrmc3.h37
-rw-r--r--src/mame/video/k1ge.h32
-rw-r--r--src/mame/video/nick.h24
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<konami573_cassette_y_device &>(*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<konami573_cassette_y_device &>(*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<konami573_cassette_y_device &>(*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<konami573_cassette_slot_device>("cassette")->option_add( "game", KONAMI573_CASSETTE_X );
+ subdevice<konami573_cassette_slot_device>("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<konami573_cassette_slot_device>("cassette")->option_add( "game", KONAMI573_CASSETTE_XI );
+ subdevice<konami573_cassette_slot_device>("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<konami573_cassette_slot_device>("cassette")->option_add( "game", KONAMI573_CASSETTE_Y );
+ subdevice<konami573_cassette_slot_device>("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<konami573_cassette_slot_device>("cassette")->option_add( "game", KONAMI573_CASSETTE_YI );
+ subdevice<konami573_cassette_slot_device>("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<konami573_cassette_slot_device>("cassette")->option_add( "game", KONAMI573_CASSETTE_YI );
+ subdevice<konami573_cassette_slot_device>("cassette")->option_add( "install", KONAMI573_CASSETTE_YI );
+ subdevice<konami573_cassette_slot_device>("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<konami573_cassette_slot_device>("cassette")->option_add( "game", KONAMI573_CASSETTE_ZI );
+ subdevice<konami573_cassette_slot_device>("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<konami573_cassette_slot_device>("cassette")->option_add( "game", KONAMI573_CASSETTE_ZI );
+ subdevice<konami573_cassette_slot_device>("cassette")->option_add( "install", KONAMI573_CASSETTE_XI );
+ subdevice<konami573_cassette_slot_device>("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<konami573_cassette_slot_device>("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<konami573_cassette_slot_device>("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<konami573_cassette_slot_device>("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<konami573_cassette_slot_device>("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<uint16_t (uint32_t)> sega_m2_read_delegate;
DECLARE_DEVICE_TYPE(SEGA315_5881_CRYPT, sega_315_5881_crypt_device)
-#define MCFG_SET_READ_CALLBACK( _class, _method) \
- downcast<sega_315_5881_crypt_device &>(*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<konami573_cassette_slot_device &>(*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 <class Object> devcb_base &set_dsr_handler(Object &&cb) { return m_dsr_handler.set_callback(std::forward<Object>(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<konami573_cassette_y_device &>(*device).set_d0_handler(DEVCB_##_devcb);
-
-#define MCFG_KONAMI573_CASSETTE_Y_D1_HANDLER(_devcb) \
- downcast<konami573_cassette_y_device &>(*device).set_d1_handler(DEVCB_##_devcb);
-
-#define MCFG_KONAMI573_CASSETTE_Y_D2_HANDLER(_devcb) \
- downcast<konami573_cassette_y_device &>(*device).set_d2_handler(DEVCB_##_devcb);
-
-#define MCFG_KONAMI573_CASSETTE_Y_D3_HANDLER(_devcb) \
- downcast<konami573_cassette_y_device &>(*device).set_d3_handler(DEVCB_##_devcb);
-
-#define MCFG_KONAMI573_CASSETTE_Y_D4_HANDLER(_devcb) \
- downcast<konami573_cassette_y_device &>(*device).set_d4_handler(DEVCB_##_devcb);
-
-#define MCFG_KONAMI573_CASSETTE_Y_D5_HANDLER(_devcb) \
- downcast<konami573_cassette_y_device &>(*device).set_d5_handler(DEVCB_##_devcb);
-
-#define MCFG_KONAMI573_CASSETTE_Y_D6_HANDLER(_devcb) \
- downcast<konami573_cassette_y_device &>(*device).set_d6_handler(DEVCB_##_devcb);
-
-#define MCFG_KONAMI573_CASSETTE_Y_D7_HANDLER(_devcb) \
- downcast<konami573_cassette_y_device &>(*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 <class Object> devcb_base &set_d0_handler(Object &&cb) { return m_d0_handler.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_d1_handler(Object &&cb) { return m_d1_handler.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_d2_handler(Object &&cb) { return m_d2_handler.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_d3_handler(Object &&cb) { return m_d3_handler.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_d4_handler(Object &&cb) { return m_d4_handler.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_d5_handler(Object &&cb) { return m_d5_handler.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_d6_handler(Object &&cb) { return m_d6_handler.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_d7_handler(Object &&cb) { return m_d7_handler.set_callback(std::forward<Object>(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
@@ -18,25 +18,6 @@
/***************************************************************************
- TYPE DEFINITIONS
-***************************************************************************/
-
-#define MCFG_MICROPOLIS_DRIVE_TAGS(_tag1, _tag2, _tag3, _tag4) \
- downcast<micropolis_device &>(*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<micropolis_device &>(*device).set_dden_rd_callback(DEVCB_##_read);
-
-#define MCFG_MICROPOLIS_INTRQ_CALLBACK(_write) \
- downcast<micropolis_device &>(*device).set_intrq_wr_callback(DEVCB_##_write);
-
-#define MCFG_MICROPOLIS_DRQ_CALLBACK(_write) \
- downcast<micropolis_device &>(*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 <class Object> devcb_base &set_dden_rd_callback(Object &&cb) { return m_read_dden.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_intrq_wr_callback(Object &&cb) { return m_write_intrq.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_drq_wr_callback(Object &&cb) { return m_write_drq.set_callback(std::forward<Object>(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<nb1413m3_device &>(*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
@@ -19,26 +19,6 @@
//**************************************************************************
-// INTERFACE CONFIGURATION MACROS
-//**************************************************************************
-
-#define MCFG_SEGA_315_5195_CPU(_cputag) \
- downcast<sega_315_5195_mapper_device &>(*device).set_cputag(_cputag);
-#define MCFG_SEGA_315_5195_MAPPER_HANDLER(_class, _mapper) \
- downcast<sega_315_5195_mapper_device &>(*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<sega_315_5195_mapper_device &>(*device).set_pbf_callback(DEVCB_##_devcb);
-#define MCFG_SEGA_315_5195_MCU_INT_CALLBACK(_devcb) \
- downcast<sega_315_5195_mapper_device &>(*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<uint16_t> 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 <class FunctionClass> 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<FunctionClass *>(nullptr)));
- }
- template <class FunctionClass> 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<FunctionClass *>(nullptr)));
- }
+ template <typename... T> void set_mapper(T &&... args) { m_mapper = mapper_delegate(std::forward<T>(args)...); }
- template<class Object> devcb_base &set_pbf_callback(Object &&object) { return m_pbf_callback.set_callback(std::forward<Object>(object)); }
- template<class Object> devcb_base &set_mcu_int_callback(Object &&object) { return m_mcu_int_callback.set_callback(std::forward<Object>(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<taito8741_4pack_device &>(*device).set_port_handler_0_callback(DEVCB_##_devcb0); \
- downcast<taito8741_4pack_device &>(*device).set_port_handler_1_callback(DEVCB_##_devcb1); \
- downcast<taito8741_4pack_device &>(*device).set_port_handler_2_callback(DEVCB_##_devcb2); \
- downcast<taito8741_4pack_device &>(*device).set_port_handler_3_callback(DEVCB_##_devcb3);
-
-#define MCFG_TAITO8741_MODES(_mode0, _mode1, _mode2, _mode3) \
- downcast<taito8741_4pack_device &>(*device).set_mode(0, _mode0); \
- downcast<taito8741_4pack_device &>(*device).set_mode(1, _mode1); \
- downcast<taito8741_4pack_device &>(*device).set_mode(2, _mode2); \
- downcast<taito8741_4pack_device &>(*device).set_mode(3, _mode3);
-
-
-#define MCFG_TAITO8741_CONNECT(_con0, _con1, _con2, _con3) \
- downcast<taito8741_4pack_device &>(*device).set_connect(0, _con0); \
- downcast<taito8741_4pack_device &>(*device).set_connect(1, _con1); \
- downcast<taito8741_4pack_device &>(*device).set_connect(2, _con2); \
- downcast<taito8741_4pack_device &>(*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 <class Object> devcb_base &set_port_handler_0_callback(Object &&cb) { return m_port_handler_0_r.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_port_handler_1_callback(Object &&cb) { return m_port_handler_1_r.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_port_handler_2_callback(Object &&cb) { return m_port_handler_2_r.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_port_handler_3_callback(Object &&cb) { return m_port_handler_3_r.set_callback(std::forward<Object>(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<deco_rmc3_device &>(*device).set_entries(_entries);
-
-#define MCFG_DECO_RMC3_INDIRECT_ENTRIES(_entries) \
- downcast<deco_rmc3_device &>(*device).set_indirect_entries( _entries);
-
-// other standard palettes
-#define MCFG_DECO_RMC3_ADD_PROMS(_tag, _region, _entries) \
- MCFG_DECO_RMC3_ADD(_tag, _entries) \
- downcast<deco_rmc3_device &>(*device).set_prom_region(_region); \
- downcast<deco_rmc3_device &>(*device).set_init(deco_rmc3_palette_init_delegate(FUNC(deco_rmc3_device::palette_init_proms), downcast<deco_rmc3_device *>(device)));
-
-//#define MCFG_DECO_RMC3_INIT_OWNER(_class, _method)
-// downcast<deco_rmc3_device &>(*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 <class FunctionClass> 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<FunctionClass *>(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 <typename T> void set_prom_region(T &&tag) { m_prom_region.set_tag(std::forward<T>(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<k1ge_device &>(*device).set_vblank_callback(DEVCB_##_vblank ); \
- downcast<k1ge_device &>(*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<k1ge_device &>(*device).set_vblank_callback(DEVCB_##_vblank ); \
- downcast<k1ge_device &>(*device).set_hblank_callback(DEVCB_##_hblank );
-
-
class k1ge_device : public device_t, public device_video_interface
{
public:
+ template <typename T>
+ 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<T>(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 <class Object> devcb_base &set_vblank_callback(Object &&cb) { return m_vblank_pin_w.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_hblank_callback(Object &&cb) { return m_hblank_pin_w.set_callback(std::forward<Object>(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 <typename T>
+ 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<T>(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<nick_device &>(*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 <typename T>
+ 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<T>(screen_tag));
+ }
+
nick_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- template <class Object> devcb_base &set_virq_wr_callback(Object &&cb) { return m_write_virq.set_callback(std::forward<Object>(cb)); }
+ auto virq_wr_callback() { return m_write_virq.bind(); }
virtual void vram_map(address_map &map);
virtual void vio_map(address_map &map);