From 3a0d2248f76ac2530078e09d93e0e53900a8508e Mon Sep 17 00:00:00 2001 From: Ivan Vangelista Date: Wed, 5 Dec 2018 23:15:44 +0100 Subject: src/mame: even more MCFG removal (nw) --- src/mame/drivers/apollo.cpp | 74 +++++++------ src/mame/drivers/atarig42.cpp | 4 +- src/mame/drivers/cop01.cpp | 4 +- src/mame/drivers/crshrace.cpp | 6 +- src/mame/drivers/dbz.cpp | 12 +-- src/mame/drivers/f1gp.cpp | 9 +- src/mame/drivers/galaga.cpp | 162 ++++++++++++++--------------- src/mame/drivers/galivan.cpp | 2 +- src/mame/drivers/gaplus.cpp | 99 +++++++++--------- src/mame/drivers/harddriv.cpp | 6 +- src/mame/drivers/igs017.cpp | 12 +-- src/mame/drivers/megadriv.cpp | 18 ++-- src/mame/drivers/metro.cpp | 7 +- src/mame/drivers/namcos12.cpp | 2 +- src/mame/drivers/namcos23.cpp | 6 +- src/mame/drivers/next.cpp | 14 +-- src/mame/drivers/pcd.cpp | 7 +- src/mame/drivers/pce.cpp | 4 +- src/mame/drivers/pce220.cpp | 6 +- src/mame/drivers/pgm2.cpp | 8 +- src/mame/drivers/plygonet.cpp | 2 +- src/mame/drivers/polepos.cpp | 24 ++--- src/mame/drivers/psx.cpp | 8 +- src/mame/drivers/ql.cpp | 4 +- src/mame/drivers/rad_eu3a05.cpp | 4 +- src/mame/drivers/rungun.cpp | 4 +- src/mame/drivers/suprslam.cpp | 6 +- src/mame/drivers/terracre.cpp | 2 +- src/mame/drivers/tmnt.cpp | 10 +- src/mame/drivers/toypop.cpp | 37 +++---- src/mame/drivers/v1050.cpp | 4 +- src/mame/drivers/xerox820.cpp | 8 +- src/mame/drivers/z88.cpp | 10 +- src/mame/includes/apollo.h | 59 +++-------- src/mame/machine/apollo.cpp | 36 ++++--- src/mame/machine/asic65.h | 12 ++- src/mame/machine/igs025.h | 5 +- src/mame/machine/mackbd.h | 22 ---- src/mame/machine/macrtc.h | 9 -- src/mame/machine/mega32x.h | 5 +- src/mame/machine/namco06.h | 63 +---------- src/mame/machine/namco51.h | 26 ----- src/mame/machine/namco62.h | 26 +---- src/mame/machine/namco_settings.h | 3 - src/mame/machine/namcoio.h | 62 ----------- src/mame/machine/nb1412m2.h | 15 +-- src/mame/machine/nextkbd.h | 15 +-- src/mame/machine/nextmo.h | 9 +- src/mame/machine/pcd_kbd.h | 4 +- src/mame/machine/pce220_ser.h | 3 - src/mame/machine/pce_cd.h | 9 -- src/mame/machine/pgm2_memcard.h | 7 -- src/mame/machine/pgmprot_igs025_igs012.cpp | 4 +- src/mame/machine/pgmprot_igs025_igs022.cpp | 6 +- src/mame/machine/pgmprot_igs025_igs028.cpp | 6 +- src/mame/machine/psxcd.h | 8 +- src/mame/machine/qimi.h | 13 +-- src/mame/machine/rad_eu3a05gpio.h | 15 +-- src/mame/machine/tosh1000_bram.h | 7 -- src/mame/machine/upd65031.h | 32 +----- src/mame/machine/v1050kb.h | 12 +-- src/mame/machine/x68k_hdc.h | 3 - src/mame/machine/x820kb.h | 12 +-- src/mame/video/apollo.cpp | 18 ++-- src/mame/video/k053936.h | 6 -- 65 files changed, 376 insertions(+), 741 deletions(-) diff --git a/src/mame/drivers/apollo.cpp b/src/mame/drivers/apollo.cpp index 969b845e321..1102f3cde86 100644 --- a/src/mame/drivers/apollo.cpp +++ b/src/mame/drivers/apollo.cpp @@ -701,11 +701,11 @@ void apollo_state::dn3500_map(address_map &map) // AM_RANGE(DN3500_RAM_BASE, DN3500_RAM_END) AM_RAM /* 8MB RAM */ map(DN3500_RAM_BASE, DN3500_RAM_END).ram().w(FUNC(apollo_state::ram_with_parity_w)).share(RAM_TAG); - map(0x05d800, 0x05dc07).rw(APOLLO_SCREEN_TAG, FUNC(apollo_graphics_15i::apollo_mcr_r), FUNC(apollo_graphics_15i::apollo_mcr_w)); - map(0xfa0000, 0xfdffff).rw(APOLLO_SCREEN_TAG, FUNC(apollo_graphics_15i::apollo_mgm_r), FUNC(apollo_graphics_15i::apollo_mgm_w)); + map(0x05d800, 0x05dc07).rw(m_graphics, FUNC(apollo_graphics_15i::apollo_mcr_r), FUNC(apollo_graphics_15i::apollo_mcr_w)); + map(0xfa0000, 0xfdffff).rw(m_graphics, FUNC(apollo_graphics_15i::apollo_mgm_r), FUNC(apollo_graphics_15i::apollo_mgm_w)); - map(0x05e800, 0x05ec07).rw(APOLLO_SCREEN_TAG, FUNC(apollo_graphics_15i::apollo_ccr_r), FUNC(apollo_graphics_15i::apollo_ccr_w)); - map(0x0a0000, 0x0bffff).rw(APOLLO_SCREEN_TAG, FUNC(apollo_graphics_15i::apollo_cgm_r), FUNC(apollo_graphics_15i::apollo_cgm_w)); + map(0x05e800, 0x05ec07).rw(m_graphics, FUNC(apollo_graphics_15i::apollo_ccr_r), FUNC(apollo_graphics_15i::apollo_ccr_w)); + map(0x0a0000, 0x0bffff).rw(m_graphics, FUNC(apollo_graphics_15i::apollo_cgm_r), FUNC(apollo_graphics_15i::apollo_cgm_w)); // AM_RANGE(0x03020000, 0x0303ffff) Cache Tag Store (DN4500 only) // AM_RANGE(0x04000000, 0x0400ffff) Cache Tag Data (DN4500 only) @@ -773,11 +773,11 @@ void apollo_state::dn3000_map(address_map &map) // AM_RANGE(DN3000_RAM_BASE, DN3000_RAM_END) AM_RAM /* 8MB RAM */ map(DN3000_RAM_BASE, DN3000_RAM_END).ram().w(FUNC(apollo_state::ram_with_parity_w)).share(RAM_TAG); - map(0x05d800, 0x05dc07).rw(APOLLO_SCREEN_TAG, FUNC(apollo_graphics_15i::apollo_mcr_r), FUNC(apollo_graphics_15i::apollo_mcr_w)); - map(0xfa0000, 0xfdffff).rw(APOLLO_SCREEN_TAG, FUNC(apollo_graphics_15i::apollo_mgm_r), FUNC(apollo_graphics_15i::apollo_mgm_w)); + map(0x05d800, 0x05dc07).rw(m_graphics, FUNC(apollo_graphics_15i::apollo_mcr_r), FUNC(apollo_graphics_15i::apollo_mcr_w)); + map(0xfa0000, 0xfdffff).rw(m_graphics, FUNC(apollo_graphics_15i::apollo_mgm_r), FUNC(apollo_graphics_15i::apollo_mgm_w)); - map(0x05e800, 0x05ec07).rw(APOLLO_SCREEN_TAG, FUNC(apollo_graphics_15i::apollo_ccr_r), FUNC(apollo_graphics_15i::apollo_ccr_w)); - map(0x0a0000, 0x0bffff).rw(APOLLO_SCREEN_TAG, FUNC(apollo_graphics_15i::apollo_cgm_r), FUNC(apollo_graphics_15i::apollo_cgm_w)); + map(0x05e800, 0x05ec07).rw(m_graphics, FUNC(apollo_graphics_15i::apollo_ccr_r), FUNC(apollo_graphics_15i::apollo_ccr_w)); + map(0x0a0000, 0x0bffff).rw(m_graphics, FUNC(apollo_graphics_15i::apollo_cgm_r), FUNC(apollo_graphics_15i::apollo_cgm_w)); } void apollo_state::dsp3000_map(address_map &map) @@ -843,11 +843,11 @@ void apollo_state::dn5500_map(address_map &map) // AM_RANGE(DN3500_RAM_BASE, DN3500_RAM_END) AM_RAM /* 8MB RAM */ map(DN5500_RAM_BASE, DN5500_RAM_END).ram().w(FUNC(apollo_state::ram_with_parity_w)).share(RAM_TAG); - map(0x05d800, 0x05dc07).rw(APOLLO_SCREEN_TAG, FUNC(apollo_graphics_15i::apollo_mcr_r), FUNC(apollo_graphics_15i::apollo_mcr_w)); - map(0xfa0000, 0xfdffff).rw(APOLLO_SCREEN_TAG, FUNC(apollo_graphics_15i::apollo_mgm_r), FUNC(apollo_graphics_15i::apollo_mgm_w)); + map(0x05d800, 0x05dc07).rw(m_graphics, FUNC(apollo_graphics_15i::apollo_mcr_r), FUNC(apollo_graphics_15i::apollo_mcr_w)); + map(0xfa0000, 0xfdffff).rw(m_graphics, FUNC(apollo_graphics_15i::apollo_mgm_r), FUNC(apollo_graphics_15i::apollo_mgm_w)); - map(0x05e800, 0x05ec07).rw(APOLLO_SCREEN_TAG, FUNC(apollo_graphics_15i::apollo_ccr_r), FUNC(apollo_graphics_15i::apollo_ccr_w)); - map(0x0a0000, 0x0bffff).rw(APOLLO_SCREEN_TAG, FUNC(apollo_graphics_15i::apollo_cgm_r), FUNC(apollo_graphics_15i::apollo_cgm_w)); + map(0x05e800, 0x05ec07).rw(m_graphics, FUNC(apollo_graphics_15i::apollo_ccr_r), FUNC(apollo_graphics_15i::apollo_ccr_w)); + map(0x0a0000, 0x0bffff).rw(m_graphics, FUNC(apollo_graphics_15i::apollo_cgm_r), FUNC(apollo_graphics_15i::apollo_cgm_w)); // AM_RANGE(0x03020000, 0x0303ffff) Cache Tag Store (DN4500 only) // AM_RANGE(0x04000000, 0x0400ffff) Cache Tag Data (DN4500 only) @@ -1063,8 +1063,8 @@ MACHINE_CONFIG_START(apollo_state::dn3500) RAM(config, m_ram).set_default_size("8M").set_extra_options("4M,8M,16M,32M"); #ifdef APOLLO_XXL - MCFG_DEVICE_ADD(APOLLO_STDIO_TAG, APOLLO_STDIO, 0) - MCFG_APOLLO_STDIO_TX_CALLBACK(WRITELINE(APOLLO_SIO_TAG, apollo_sio, rx_b_w)) + apollo_stdio_device &stdio(APOLLO_STDIO(config, APOLLO_STDIO_TAG, 0)); + stdio.tx_callback().set(m_sio, FUNC(apollo_sio::rx_b_w)); #endif MACHINE_CONFIG_END @@ -1088,30 +1088,32 @@ MACHINE_CONFIG_START(apollo_state::dsp3500) config.set_default_layout(layout_apollo_dsp); MACHINE_CONFIG_END -MACHINE_CONFIG_START(apollo_state::dn3500_19i) +void apollo_state::dn3500_19i(machine_config &config) +{ dn3500(config); /* video hardware 19" monochrome */ - MCFG_APOLLO_MONO19I_ADD(APOLLO_SCREEN_TAG) + APOLLO_MONO19I(config, m_graphics, 0); APOLLO_KBD(config, m_keyboard, 0); m_keyboard->tx_cb().set(m_sio, FUNC(apollo_sio::rx_a_w)); m_keyboard->german_cb().set(FUNC(apollo_state::apollo_kbd_is_german)); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(apollo_state::dn3500_15i) +void apollo_state::dn3500_15i(machine_config &config) +{ dn3500(config); /* video hardware is 15" monochrome or color */ - MCFG_APOLLO_GRAPHICS_ADD(APOLLO_SCREEN_TAG) + APOLLO_GRAPHICS(config, m_graphics, 0); APOLLO_KBD(config, m_keyboard, 0); m_keyboard->tx_cb().set(m_sio, FUNC(apollo_sio::rx_a_w)); m_keyboard->german_cb().set(FUNC(apollo_state::apollo_kbd_is_german)); -MACHINE_CONFIG_END +} MACHINE_CONFIG_START(apollo_state::dn3000) dn3500(config); MCFG_DEVICE_REPLACE(MAINCPU, M68020PMMU, 12000000) /* 12 MHz */ MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(apollo_state,apollo_irq_acknowledge) MCFG_DEVICE_PROGRAM_MAP(dn3000_map) - MCFG_DEVICE_REMOVE( APOLLO_SIO2_TAG ) + config.device_remove( APOLLO_SIO2_TAG ); m_ram->set_default_size("8M").set_extra_options("4M"); // FIXME: is this interrupt really only connected on DN3000? @@ -1134,29 +1136,31 @@ MACHINE_CONFIG_START(apollo_state::dsp3000) /* internal ram */ RAM(config, m_ram).set_default_size("8M").set_extra_options("4M"); - MCFG_DEVICE_REMOVE( APOLLO_SIO2_TAG ) + config.device_remove( APOLLO_SIO2_TAG ); /* terminal hardware */ config.set_default_layout(layout_apollo_dsp); MACHINE_CONFIG_END -MACHINE_CONFIG_START(apollo_state::dn3000_19i) +void apollo_state::dn3000_19i(machine_config &config) +{ dn3000(config); /* video hardware 19" monochrome */ - MCFG_APOLLO_MONO19I_ADD(APOLLO_SCREEN_TAG) + APOLLO_MONO19I(config, m_graphics, 0); APOLLO_KBD(config, m_keyboard, 0); m_keyboard->tx_cb().set(m_sio, FUNC(apollo_sio::rx_a_w)); m_keyboard->german_cb().set(FUNC(apollo_state::apollo_kbd_is_german)); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(apollo_state::dn3000_15i) +void apollo_state::dn3000_15i(machine_config &config) +{ dn3000(config); /* video hardware 15" monochrome */ - MCFG_APOLLO_GRAPHICS_ADD(APOLLO_SCREEN_TAG) + APOLLO_GRAPHICS(config, m_graphics, 0); APOLLO_KBD(config, m_keyboard, 0); m_keyboard->tx_cb().set(m_sio, FUNC(apollo_sio::rx_a_w)); m_keyboard->german_cb().set(FUNC(apollo_state::apollo_kbd_is_german)); -MACHINE_CONFIG_END +} MACHINE_CONFIG_START(apollo_state::dn5500) dn3500(config); @@ -1185,23 +1189,25 @@ MACHINE_CONFIG_START(apollo_state::dsp5500) config.set_default_layout(layout_apollo_dsp); MACHINE_CONFIG_END -MACHINE_CONFIG_START(apollo_state::dn5500_19i) +void apollo_state::dn5500_19i(machine_config &config) +{ dn5500(config); /* video hardware 19" monochrome */ - MCFG_APOLLO_MONO19I_ADD(APOLLO_SCREEN_TAG) + APOLLO_MONO19I(config, m_graphics, 0); APOLLO_KBD(config, m_keyboard, 0); m_keyboard->tx_cb().set(m_sio, FUNC(apollo_sio::rx_a_w)); m_keyboard->german_cb().set(FUNC(apollo_state::apollo_kbd_is_german)); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(apollo_state::dn5500_15i) +void apollo_state::dn5500_15i(machine_config &config) +{ dn5500(config); /* video hardware 15" monochrome */ - MCFG_APOLLO_GRAPHICS_ADD(APOLLO_SCREEN_TAG) + APOLLO_GRAPHICS(config, m_graphics, 0); APOLLO_KBD(config, m_keyboard, 0); m_keyboard->tx_cb().set(m_sio, FUNC(apollo_sio::rx_a_w)); m_keyboard->german_cb().set(FUNC(apollo_state::apollo_kbd_is_german)); -MACHINE_CONFIG_END +} /*************************************************************************** ROM Definitions diff --git a/src/mame/drivers/atarig42.cpp b/src/mame/drivers/atarig42.cpp index c1eee3b258b..3ff8c45b96a 100644 --- a/src/mame/drivers/atarig42.cpp +++ b/src/mame/drivers/atarig42.cpp @@ -561,7 +561,7 @@ MACHINE_CONFIG_START(atarig42_0x200_state::atarig42_0x200) m_adc->in_callback<1>().set_ioport("A2D1"); /* ASIC65 */ - MCFG_ASIC65_ADD("asic65", ASIC65_ROMBASED) + ASIC65(config, m_asic65, 0, ASIC65_ROMBASED); MACHINE_CONFIG_END MACHINE_CONFIG_START(atarig42_0x400_state::atarig42_0x400) @@ -569,7 +569,7 @@ MACHINE_CONFIG_START(atarig42_0x400_state::atarig42_0x400) MCFG_ATARIRLE_ADD("rle", modesc_0x400) /* ASIC65 */ - MCFG_ASIC65_ADD("asic65", ASIC65_GUARDIANS) + ASIC65(config, m_asic65, 0, ASIC65_GUARDIANS); MACHINE_CONFIG_END diff --git a/src/mame/drivers/cop01.cpp b/src/mame/drivers/cop01.cpp index 99ab4c862c4..d305611a6c9 100644 --- a/src/mame/drivers/cop01.cpp +++ b/src/mame/drivers/cop01.cpp @@ -497,8 +497,8 @@ MACHINE_CONFIG_START(mightguy_state::mightguy) MCFG_DEVICE_PROGRAM_MAP(sound_map) MCFG_DEVICE_IO_MAP(mightguy_audio_io_map) - MCFG_DEVICE_ADD("prot_chip", NB1412M2, XTAL(8'000'000)/2) // divided by 2 maybe - MCFG_NB1412M2_DAC_CB(WRITE8("dac", dac_byte_interface, data_w)) + NB1412M2(config, m_prot, XTAL(8'000'000)/2); // divided by 2 maybe + m_prot->dac_callback().set("dac", FUNC(dac_byte_interface::data_w)); /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/crshrace.cpp b/src/mame/drivers/crshrace.cpp index de8c17e0de1..2a4d2d84083 100644 --- a/src/mame/drivers/crshrace.cpp +++ b/src/mame/drivers/crshrace.cpp @@ -436,9 +436,9 @@ MACHINE_CONFIG_START(crshrace_state::crshrace) MCFG_DEVICE_ADD("spriteram", BUFFERED_SPRITERAM16) MCFG_DEVICE_ADD("spriteram2", BUFFERED_SPRITERAM16) - MCFG_DEVICE_ADD("k053936", K053936, 0) - MCFG_K053936_WRAP(1) - MCFG_K053936_OFFSETS(-48, -21) + K053936(config, m_k053936, 0); + m_k053936->set_wrap(1); + m_k053936->set_offsets(-48, -21); /* sound hardware */ SPEAKER(config, "lspeaker").front_left(); diff --git a/src/mame/drivers/dbz.cpp b/src/mame/drivers/dbz.cpp index b318a591adc..097fa5cb891 100644 --- a/src/mame/drivers/dbz.cpp +++ b/src/mame/drivers/dbz.cpp @@ -366,13 +366,13 @@ MACHINE_CONFIG_START(dbz_state::dbz) K053251(config, m_k053251, 0); - MCFG_DEVICE_ADD("k053936_1", K053936, 0) - MCFG_K053936_WRAP(1) - MCFG_K053936_OFFSETS(-46, -16) + K053936(config, m_k053936_1, 0); + m_k053936_1->set_wrap(1); + m_k053936_1->set_offsets(-46, -16); - MCFG_DEVICE_ADD("k053936_2", K053936, 0) - MCFG_K053936_WRAP(1) - MCFG_K053936_OFFSETS(-46, -16) + K053936(config, m_k053936_2, 0); + m_k053936_2->set_wrap(1); + m_k053936_2->set_offsets(-46, -16); K053252(config, m_k053252, 16000000/2); m_k053252->int1_ack().set(FUNC(dbz_state::dbz_irq2_ack_w)); diff --git a/src/mame/drivers/f1gp.cpp b/src/mame/drivers/f1gp.cpp index 00070eb5403..b1f717592bf 100644 --- a/src/mame/drivers/f1gp.cpp +++ b/src/mame/drivers/f1gp.cpp @@ -444,9 +444,9 @@ MACHINE_CONFIG_START(f1gp_state::f1gp) m_spr_old[1]->set_pritype(2); m_spr_old[1]->set_gfxdecode_tag(m_gfxdecode); - MCFG_DEVICE_ADD("k053936", K053936, 0) - MCFG_K053936_WRAP(1) - MCFG_K053936_OFFSETS(-58, -2) + K053936(config, m_k053936, 0); + m_k053936->set_wrap(1); + m_k053936->set_offsets(-58, -2); /* sound hardware */ SPEAKER(config, "lspeaker").front_left(); @@ -530,8 +530,7 @@ MACHINE_CONFIG_START(f1gp2_state::f1gp2) m_spr->set_gfx_region(1); m_spr->set_gfxdecode_tag(m_gfxdecode); - MCFG_DEVICE_MODIFY("k053936") - MCFG_K053936_OFFSETS(-48, -21) + m_k053936->set_offsets(-48, -21); MACHINE_CONFIG_END diff --git a/src/mame/drivers/galaga.cpp b/src/mame/drivers/galaga.cpp index c5deb9401eb..22ca1a5cb55 100644 --- a/src/mame/drivers/galaga.cpp +++ b/src/mame/drivers/galaga.cpp @@ -1607,14 +1607,14 @@ MACHINE_CONFIG_START(bosco_state::bosco) NAMCO_50XX(config, "50xx_1", MASTER_CLOCK/6/2); /* 1.536 MHz */ NAMCO_50XX(config, "50xx_2", MASTER_CLOCK/6/2); /* 1.536 MHz */ - MCFG_NAMCO_51XX_ADD("51xx", MASTER_CLOCK/6/2) /* 1.536 MHz */ - MCFG_NAMCO_51XX_SCREEN("screen") - MCFG_NAMCO_51XX_INPUT_0_CB(IOPORT("IN0L")) - MCFG_NAMCO_51XX_INPUT_1_CB(IOPORT("IN0H")) - MCFG_NAMCO_51XX_INPUT_2_CB(IOPORT("IN1L")) - MCFG_NAMCO_51XX_INPUT_3_CB(IOPORT("IN1H")) - MCFG_NAMCO_51XX_OUTPUT_0_CB(WRITE8(*this, galaga_state,out_0)) - MCFG_NAMCO_51XX_OUTPUT_1_CB(WRITE8(*this, galaga_state,out_1)) + namco_51xx_device &n51xx(NAMCO_51XX(config, "51xx", MASTER_CLOCK/6/2)); /* 1.536 MHz */ + n51xx.set_screen_tag(m_screen); + n51xx.input_callback<0>().set_ioport("IN0L"); + n51xx.input_callback<1>().set_ioport("IN0H"); + n51xx.input_callback<2>().set_ioport("IN1L"); + n51xx.input_callback<3>().set_ioport("IN1H"); + n51xx.output_callback<0>().set(FUNC(galaga_state::out_0)); + n51xx.output_callback<1>().set(FUNC(galaga_state::out_1)); namco_52xx_device &n52xx(NAMCO_52XX(config, "52xx", MASTER_CLOCK/6/2)); /* 1.536 MHz */ n52xx.set_discrete("discrete"); @@ -1627,21 +1627,21 @@ MACHINE_CONFIG_START(bosco_state::bosco) n54xx.set_discrete("discrete"); n54xx.set_basenote(NODE_01); - MCFG_NAMCO_06XX_ADD("06xx_0", MASTER_CLOCK/6/64) - MCFG_NAMCO_06XX_MAINCPU("maincpu") - MCFG_NAMCO_06XX_READ_0_CB(READ8("51xx", namco_51xx_device, read)) - MCFG_NAMCO_06XX_WRITE_0_CB(WRITE8("51xx", namco_51xx_device, write)) - MCFG_NAMCO_06XX_READ_2_CB(READ8("50xx_1", namco_50xx_device, read)) - MCFG_NAMCO_06XX_READ_REQUEST_2_CB(WRITELINE("50xx_1", namco_50xx_device, read_request)) - MCFG_NAMCO_06XX_WRITE_2_CB(WRITE8("50xx_1", namco_50xx_device, write)) - MCFG_NAMCO_06XX_WRITE_3_CB(WRITE8("54xx", namco_54xx_device, write)) - - MCFG_NAMCO_06XX_ADD("06xx_1", MASTER_CLOCK/6/64) - MCFG_NAMCO_06XX_MAINCPU("sub") - MCFG_NAMCO_06XX_READ_0_CB(READ8("50xx_2", namco_50xx_device, read)) - MCFG_NAMCO_06XX_READ_REQUEST_0_CB(WRITELINE("50xx_2", namco_50xx_device, read_request)) - MCFG_NAMCO_06XX_WRITE_0_CB(WRITE8("50xx_2", namco_50xx_device, write)) - MCFG_NAMCO_06XX_WRITE_1_CB(WRITE8("52xx", namco_52xx_device, write)) + namco_06xx_device &n06xx_0(NAMCO_06XX(config, "06xx_0", MASTER_CLOCK/6/64)); + n06xx_0.set_maincpu(m_maincpu); + n06xx_0.read_callback<0>().set("51xx", FUNC(namco_51xx_device::read)); + n06xx_0.write_callback<0>().set("51xx", FUNC(namco_51xx_device::write)); + n06xx_0.read_callback<2>().set("50xx_1", FUNC(namco_50xx_device::read)); + n06xx_0.read_request_callback<2>().set("50xx_1", FUNC(namco_50xx_device::read_request)); + n06xx_0.write_callback<2>().set("50xx_1", FUNC(namco_50xx_device::write)); + n06xx_0.write_callback<3>().set("54xx", FUNC(namco_54xx_device::write)); + + namco_06xx_device &n06xx_1(NAMCO_06XX(config, "06xx_1", MASTER_CLOCK/6/64)); + n06xx_1.set_maincpu(m_subcpu); + n06xx_1.read_callback<0>().set("50xx_2", FUNC(namco_50xx_device::read)); + n06xx_1.read_request_callback<0>().set("50xx_2", FUNC(namco_50xx_device::read_request)); + n06xx_1.write_callback<0>().set("50xx_2", FUNC(namco_50xx_device::write)); + n06xx_1.write_callback<1>().set("52xx", FUNC(namco_52xx_device::write)); LS259(config, m_videolatch); // 1B on video board m_videolatch->q_out_cb<0>().set(FUNC(galaga_state::flip_screen_w)).invert(); @@ -1698,24 +1698,24 @@ MACHINE_CONFIG_START(galaga_state::galaga) misclatch.q_out_cb<3>().set_inputline("sub", INPUT_LINE_RESET).invert(); misclatch.q_out_cb<3>().append_inputline("sub2", INPUT_LINE_RESET).invert(); - MCFG_NAMCO_51XX_ADD("51xx", MASTER_CLOCK/6/2) /* 1.536 MHz */ - MCFG_NAMCO_51XX_SCREEN("screen") - MCFG_NAMCO_51XX_INPUT_0_CB(IOPORT("IN0L")) - MCFG_NAMCO_51XX_INPUT_1_CB(IOPORT("IN0H")) - MCFG_NAMCO_51XX_INPUT_2_CB(IOPORT("IN1L")) - MCFG_NAMCO_51XX_INPUT_3_CB(IOPORT("IN1H")) - MCFG_NAMCO_51XX_OUTPUT_0_CB(WRITE8(*this, galaga_state,out_0)) - MCFG_NAMCO_51XX_OUTPUT_1_CB(WRITE8(*this, galaga_state,out_1)) + namco_51xx_device &n51xx(NAMCO_51XX(config, "51xx", MASTER_CLOCK/6/2)); /* 1.536 MHz */ + n51xx.set_screen_tag(m_screen); + n51xx.input_callback<0>().set_ioport("IN0L"); + n51xx.input_callback<1>().set_ioport("IN0H"); + n51xx.input_callback<2>().set_ioport("IN1L"); + n51xx.input_callback<3>().set_ioport("IN1H"); + n51xx.output_callback<0>().set(FUNC(galaga_state::out_0)); + n51xx.output_callback<1>().set(FUNC(galaga_state::out_1)); namco_54xx_device &n54xx(NAMCO_54XX(config, "54xx", MASTER_CLOCK/6/2)); /* 1.536 MHz */ n54xx.set_discrete("discrete"); n54xx.set_basenote(NODE_01); - MCFG_NAMCO_06XX_ADD("06xx", MASTER_CLOCK/6/64) - MCFG_NAMCO_06XX_MAINCPU("maincpu") - MCFG_NAMCO_06XX_READ_0_CB(READ8("51xx", namco_51xx_device, read)) - MCFG_NAMCO_06XX_WRITE_0_CB(WRITE8("51xx", namco_51xx_device, write)) - MCFG_NAMCO_06XX_WRITE_3_CB(WRITE8("54xx", namco_54xx_device, write)) + namco_06xx_device &n06xx(NAMCO_06XX(config, "06xx", MASTER_CLOCK/6/64)); + n06xx.set_maincpu(m_maincpu); + n06xx.read_callback<0>().set("51xx", FUNC(namco_51xx_device::read)); + n06xx.write_callback<0>().set("51xx", FUNC(namco_51xx_device::write)); + n06xx.write_callback<3>().set("54xx", FUNC(namco_54xx_device::write)); LS259(config, m_videolatch); // 5K on video board // Q0-Q5 to 05XX for starfield control @@ -1756,20 +1756,20 @@ MACHINE_CONFIG_START(galaga_state::galagab) /* basic machine hardware */ - MCFG_DEVICE_REMOVE("54xx") - MCFG_DEVICE_REMOVE("06xx") + config.device_remove("54xx"); + config.device_remove("06xx"); /* FIXME: bootlegs should not have any Namco custom chip. However, this workaround is needed atm */ - MCFG_NAMCO_06XX_ADD("06xx", MASTER_CLOCK/6/64) - MCFG_NAMCO_06XX_MAINCPU("maincpu") - MCFG_NAMCO_06XX_READ_0_CB(READ8("51xx", namco_51xx_device, read)) - MCFG_NAMCO_06XX_WRITE_0_CB(WRITE8("51xx", namco_51xx_device, write)) + namco_06xx_device &n06xx(NAMCO_06XX(config, "06xx", MASTER_CLOCK/6/64)); + n06xx.set_maincpu(m_maincpu); + n06xx.read_callback<0>().set("51xx", FUNC(namco_51xx_device::read)); + n06xx.write_callback<0>().set("51xx", FUNC(namco_51xx_device::write)); MCFG_DEVICE_ADD("sub3", Z80, MASTER_CLOCK/6) /* 3.072 MHz */ MCFG_DEVICE_PROGRAM_MAP(galaga_mem4) /* sound hardware */ - MCFG_DEVICE_REMOVE("discrete") + config.device_remove("discrete"); MACHINE_CONFIG_END MACHINE_CONFIG_START(galaga_state::gatsbee) @@ -1802,27 +1802,27 @@ MACHINE_CONFIG_START(xevious_state::xevious) NAMCO_50XX(config, "50xx", MASTER_CLOCK/6/2); /* 1.536 MHz */ - MCFG_NAMCO_51XX_ADD("51xx", MASTER_CLOCK/6/2) /* 1.536 MHz */ - MCFG_NAMCO_51XX_SCREEN("screen") - MCFG_NAMCO_51XX_INPUT_0_CB(IOPORT("IN0L")) - MCFG_NAMCO_51XX_INPUT_1_CB(IOPORT("IN0H")) - MCFG_NAMCO_51XX_INPUT_2_CB(IOPORT("IN1L")) - MCFG_NAMCO_51XX_INPUT_3_CB(IOPORT("IN1H")) - MCFG_NAMCO_51XX_OUTPUT_0_CB(WRITE8(*this, galaga_state,out_0)) - MCFG_NAMCO_51XX_OUTPUT_1_CB(WRITE8(*this, galaga_state,out_1)) + namco_51xx_device &n51xx(NAMCO_51XX(config, "51xx", MASTER_CLOCK/6/2)); /* 1.536 MHz */ + n51xx.set_screen_tag(m_screen); + n51xx.input_callback<0>().set_ioport("IN0L"); + n51xx.input_callback<1>().set_ioport("IN0H"); + n51xx.input_callback<2>().set_ioport("IN1L"); + n51xx.input_callback<3>().set_ioport("IN1H"); + n51xx.output_callback<0>().set(FUNC(galaga_state::out_0)); + n51xx.output_callback<1>().set(FUNC(galaga_state::out_1)); namco_54xx_device &n54xx(NAMCO_54XX(config, "54xx", MASTER_CLOCK/6/2)); /* 1.536 MHz */ n54xx.set_discrete("discrete"); n54xx.set_basenote(NODE_01); - MCFG_NAMCO_06XX_ADD("06xx", MASTER_CLOCK/6/64) - MCFG_NAMCO_06XX_MAINCPU("maincpu") - MCFG_NAMCO_06XX_READ_0_CB(READ8("51xx", namco_51xx_device, read)) - MCFG_NAMCO_06XX_WRITE_0_CB(WRITE8("51xx", namco_51xx_device, write)) - MCFG_NAMCO_06XX_READ_2_CB(READ8("50xx", namco_50xx_device, read)) - MCFG_NAMCO_06XX_READ_REQUEST_2_CB(WRITELINE("50xx", namco_50xx_device, read_request)) - MCFG_NAMCO_06XX_WRITE_2_CB(WRITE8("50xx", namco_50xx_device, write)) - MCFG_NAMCO_06XX_WRITE_3_CB(WRITE8("54xx", namco_54xx_device, write)) + namco_06xx_device &n06xx(NAMCO_06XX(config, "06xx", MASTER_CLOCK/6/64)); + n06xx.set_maincpu(m_maincpu); + n06xx.read_callback<0>().set("51xx", FUNC(namco_51xx_device::read)); + n06xx.write_callback<0>().set("51xx", FUNC(namco_51xx_device::write)); + n06xx.read_callback<2>().set("50xx", FUNC(namco_50xx_device::read)); + n06xx.read_request_callback<2>().set("50xx", FUNC(namco_50xx_device::read_request)); + n06xx.write_callback<2>().set("50xx", FUNC(namco_50xx_device::write)); + n06xx.write_callback<3>().set("54xx", FUNC(namco_54xx_device::write)); WATCHDOG_TIMER(config, "watchdog").set_vblank_count(m_screen, 8); MCFG_QUANTUM_TIME(attotime::from_hz(60000)) /* 1000 CPU slices per frame - an high value to ensure proper */ @@ -1857,15 +1857,15 @@ MACHINE_CONFIG_START(battles_state::battles) xevious(config); /* basic machine hardware */ - MCFG_DEVICE_REMOVE("50xx") - MCFG_DEVICE_REMOVE("54xx") - MCFG_DEVICE_REMOVE("06xx") + config.device_remove("50xx"); + config.device_remove("54xx"); + config.device_remove("06xx"); /* FIXME: bootlegs should not have any Namco custom chip. However, this workaround is needed atm */ - MCFG_NAMCO_06XX_ADD("06xx", MASTER_CLOCK/6/64) - MCFG_NAMCO_06XX_MAINCPU("maincpu") - MCFG_NAMCO_06XX_READ_0_CB(READ8("51xx", namco_51xx_device, read)) - MCFG_NAMCO_06XX_WRITE_0_CB(WRITE8("51xx", namco_51xx_device, write)) + namco_06xx_device &n06xx(NAMCO_06XX(config, "06xx", MASTER_CLOCK/6/64)); + n06xx.set_maincpu(m_maincpu); + n06xx.read_callback<0>().set("51xx", FUNC(namco_51xx_device::read)); + n06xx.write_callback<0>().set("51xx", FUNC(namco_51xx_device::write)); MCFG_DEVICE_ADD("sub3", Z80, MASTER_CLOCK/6) /* 3.072 MHz */ MCFG_DEVICE_PROGRAM_MAP(battles_mem4) @@ -1875,7 +1875,7 @@ MACHINE_CONFIG_START(battles_state::battles) MCFG_TIMER_DRIVER_ADD("nmi", battles_state, nmi_generate) /* sound hardware */ - MCFG_DEVICE_REMOVE("discrete") + config.device_remove("discrete"); MCFG_DEVICE_ADD("samples", SAMPLES) MCFG_SAMPLES_CHANNELS(1) @@ -1903,14 +1903,14 @@ MACHINE_CONFIG_START(digdug_state::digdug) misclatch.q_out_cb<3>().append_inputline("sub2", INPUT_LINE_RESET).invert(); // Q5-Q7 also used (see below) - MCFG_NAMCO_51XX_ADD("51xx", MASTER_CLOCK/6/2) /* 1.536 MHz */ - MCFG_NAMCO_51XX_SCREEN("screen") - MCFG_NAMCO_51XX_INPUT_0_CB(IOPORT("IN0L")) - MCFG_NAMCO_51XX_INPUT_1_CB(IOPORT("IN0H")) - MCFG_NAMCO_51XX_INPUT_2_CB(IOPORT("IN1L")) - MCFG_NAMCO_51XX_INPUT_3_CB(IOPORT("IN1H")) - MCFG_NAMCO_51XX_OUTPUT_0_CB(WRITE8(*this, galaga_state,out_0)) - MCFG_NAMCO_51XX_OUTPUT_1_CB(WRITE8(*this, galaga_state,out_1)) + namco_51xx_device &n51xx(NAMCO_51XX(config, "51xx", MASTER_CLOCK/6/2)); /* 1.536 MHz */ + n51xx.set_screen_tag(m_screen); + n51xx.input_callback<0>().set_ioport("IN0L"); + n51xx.input_callback<1>().set_ioport("IN0H"); + n51xx.input_callback<2>().set_ioport("IN1L"); + n51xx.input_callback<3>().set_ioport("IN1H"); + n51xx.output_callback<0>().set(FUNC(galaga_state::out_0)); + n51xx.output_callback<1>().set(FUNC(galaga_state::out_1)); namco_53xx_device &n53xx(NAMCO_53XX(config, "53xx", MASTER_CLOCK/6/2)); /* 1.536 MHz */ n53xx.k_port_callback().set("misclatch", FUNC(ls259_device::q7_r)).lshift(3); // MOD 2 = K3 @@ -1922,12 +1922,12 @@ MACHINE_CONFIG_START(digdug_state::digdug) n53xx.input_callback<2>().set_ioport("DSWB").mask(0x0f); n53xx.input_callback<3>().set_ioport("DSWB").rshift(4); - MCFG_NAMCO_06XX_ADD("06xx", MASTER_CLOCK/6/64) - MCFG_NAMCO_06XX_MAINCPU("maincpu") - MCFG_NAMCO_06XX_READ_0_CB(READ8("51xx", namco_51xx_device, read)) - MCFG_NAMCO_06XX_WRITE_0_CB(WRITE8("51xx", namco_51xx_device, write)) - MCFG_NAMCO_06XX_READ_1_CB(READ8("53xx", namco_53xx_device, read)) - MCFG_NAMCO_06XX_READ_REQUEST_1_CB(WRITELINE("53xx", namco_53xx_device, read_request)) + namco_06xx_device &n06xx(NAMCO_06XX(config, "06xx", MASTER_CLOCK/6/64)); + n06xx.set_maincpu(m_maincpu); + n06xx.read_callback<0>().set("51xx", FUNC(namco_51xx_device::read)); + n06xx.write_callback<0>().set("51xx", FUNC(namco_51xx_device::write)); + n06xx.read_callback<1>().set("53xx", FUNC(namco_53xx_device::read)); + n06xx.read_request_callback<1>().set("53xx", FUNC(namco_53xx_device::read_request)); LS259(config, m_videolatch); // 5R m_videolatch->parallel_out_cb().set(FUNC(digdug_state::bg_select_w)).mask(0x33); diff --git a/src/mame/drivers/galivan.cpp b/src/mame/drivers/galivan.cpp index c48aecdf6c0..392d98d0bc9 100644 --- a/src/mame/drivers/galivan.cpp +++ b/src/mame/drivers/galivan.cpp @@ -484,7 +484,7 @@ MACHINE_CONFIG_START(dangarj_state::dangarj) MCFG_DEVICE_MODIFY("maincpu") MCFG_DEVICE_IO_MAP(dangarj_io_map) - MCFG_DEVICE_ADD("prot_chip", NB1412M2, XTAL(8'000'000)) // divided by 2 maybe + NB1412M2(config, m_prot, XTAL(8'000'000)); // divided by 2 maybe MACHINE_CONFIG_END MACHINE_CONFIG_START(galivan_state::ninjemak) diff --git a/src/mame/drivers/gaplus.cpp b/src/mame/drivers/gaplus.cpp index db9c7435619..1d16b83d33e 100644 --- a/src/mame/drivers/gaplus.cpp +++ b/src/mame/drivers/gaplus.cpp @@ -529,13 +529,13 @@ MACHINE_CONFIG_START(gaplus_base_state::gaplus_base) WATCHDOG_TIMER(config, "watchdog"); - MCFG_NAMCO_62XX_ADD("62xx", 24576000 / 6 / 2) /* totally made up - TODO: fix */ - //MCFG_NAMCO_62XX_INPUT_0_CB(IOPORT("IN0L")) - //MCFG_NAMCO_62XX_INPUT_1_CB(IOPORT("IN0H")) - //MCFG_NAMCO_62XX_INPUT_2_CB(IOPORT("IN1L")) - //MCFG_NAMCO_62XX_INPUT_3_CB(IOPORT("IN1H")) - //MCFG_NAMCO_62XX_OUTPUT_0_CB(WRITE8(*this, gaplus_base_state,out_0)) - //MCFG_NAMCO_62XX_OUTPUT_1_CB(WRITE8(*this, gaplus_base_state,out_1)) + NAMCO_62XX(config, "62xx", 24576000 / 6 / 2); /* totally made up - TODO: fix */ + //n62xx.input_callback<0>().set_ioport("IN0L"); + //n62xx.input_callback<1>().set_ioport("IN0H"); + //n62xx.input_callback<2>().set_ioport("IN1L"); + //n62xx.input_callback<3>().set_ioport("IN1H"); + //n62xx.output_callback<0>().set(FUNC(gaplus_base_state::out_0)); + //n62xx.output_callback<1>().set(FUNC(gaplus_base_state::out_1)); /* video hardware */ SCREEN(config, m_screen, SCREEN_TYPE_RASTER); @@ -566,59 +566,62 @@ MACHINE_CONFIG_START(gaplus_base_state::gaplus_base) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) MACHINE_CONFIG_END -MACHINE_CONFIG_START(gaplus_state::gaplus) +void gaplus_state::gaplus(machine_config &config) +{ gaplus_base(config); - MCFG_DEVICE_ADD("namcoio_1", NAMCO_56XX, 0) - MCFG_NAMCO56XX_IN_0_CB(IOPORT("COINS")) - MCFG_NAMCO56XX_IN_1_CB(IOPORT("P1")) - MCFG_NAMCO56XX_IN_2_CB(IOPORT("P2")) - MCFG_NAMCO56XX_IN_3_CB(IOPORT("BUTTONS")) - MCFG_NAMCO56XX_OUT_0_CB(WRITE8(*this, gaplus_state, out_lamps0)) - MCFG_NAMCO56XX_OUT_1_CB(WRITE8(*this, gaplus_state, out_lamps1)) - - MCFG_DEVICE_ADD("namcoio_2", NAMCO_58XX, 0) - MCFG_NAMCO58XX_IN_0_CB(IOPORT("DSWA_HIGH")) - MCFG_NAMCO58XX_IN_1_CB(IOPORT("DSWB_LOW")) - MCFG_NAMCO58XX_IN_2_CB(IOPORT("DSWB_HIGH")) - MCFG_NAMCO58XX_IN_3_CB(IOPORT("DSWA_LOW")) -MACHINE_CONFIG_END + NAMCO_56XX(config, m_namco56xx, 0); + m_namco56xx->in_callback<0>().set_ioport("COINS"); + m_namco56xx->in_callback<1>().set_ioport("P1"); + m_namco56xx->in_callback<2>().set_ioport("P2"); + m_namco56xx->in_callback<3>().set_ioport("BUTTONS"); + m_namco56xx->out_callback<0>().set(FUNC(gaplus_state::out_lamps0)); + m_namco56xx->out_callback<1>().set(FUNC(gaplus_state::out_lamps1)); + + NAMCO_58XX(config, m_namco58xx, 0); + m_namco58xx->in_callback<0>().set_ioport("DSWA_HIGH"); + m_namco58xx->in_callback<1>().set_ioport("DSWB_LOW"); + m_namco58xx->in_callback<2>().set_ioport("DSWB_HIGH"); + m_namco58xx->in_callback<3>().set_ioport("DSWA_LOW"); +} -MACHINE_CONFIG_START(gaplusd_state::gaplusd) +void gaplusd_state::gaplusd(machine_config &config) +{ gaplus_base(config); - MCFG_DEVICE_ADD("namcoio_1", NAMCO_58XX, 0) - MCFG_NAMCO58XX_IN_0_CB(IOPORT("COINS")) - MCFG_NAMCO58XX_IN_1_CB(IOPORT("P1")) - MCFG_NAMCO58XX_IN_2_CB(IOPORT("P2")) - MCFG_NAMCO58XX_IN_3_CB(IOPORT("BUTTONS")) - - MCFG_DEVICE_ADD("namcoio_2", NAMCO_56XX, 0) - MCFG_NAMCO56XX_IN_0_CB(IOPORT("DSWA_HIGH")) - MCFG_NAMCO56XX_IN_1_CB(IOPORT("DSWB_LOW")) - MCFG_NAMCO56XX_IN_2_CB(IOPORT("DSWB_HIGH")) - MCFG_NAMCO56XX_IN_3_CB(IOPORT("DSWA_LOW")) -MACHINE_CONFIG_END + NAMCO_58XX(config, m_namco58xx, 0); + m_namco58xx->in_callback<0>().set_ioport("COINS"); + m_namco58xx->in_callback<1>().set_ioport("P1"); + m_namco58xx->in_callback<2>().set_ioport("P2"); + m_namco58xx->in_callback<3>().set_ioport("BUTTONS"); + + NAMCO_56XX(config, m_namco56xx, 0); + m_namco56xx->in_callback<0>().set_ioport("DSWA_HIGH"); + m_namco56xx->in_callback<1>().set_ioport("DSWB_LOW"); + m_namco56xx->in_callback<2>().set_ioport("DSWB_HIGH"); + m_namco56xx->in_callback<3>().set_ioport("DSWA_LOW"); +} -MACHINE_CONFIG_START(gapluso_state::gapluso) +void gapluso_state::gapluso(machine_config &config) +{ gaplus_base(config); /* basic machine hardware */ m_screen->screen_vblank().set(FUNC(gaplus_base_state::screen_vblank)); m_screen->screen_vblank().append(FUNC(gapluso_state::vblank_irq)); - MCFG_DEVICE_ADD("namcoio_1", NAMCO_56XX, 0) - MCFG_NAMCO56XX_IN_0_CB(IOPORT("COINS")) - MCFG_NAMCO56XX_IN_1_CB(IOPORT("P1")) - MCFG_NAMCO56XX_IN_2_CB(IOPORT("P2")) - MCFG_NAMCO56XX_IN_3_CB(IOPORT("BUTTONS")) - - MCFG_DEVICE_ADD("namcoio_2", NAMCO_58XX, 0) - MCFG_NAMCO58XX_IN_0_CB(IOPORT("DSWA_HIGH")) - MCFG_NAMCO58XX_IN_1_CB(IOPORT("DSWB_LOW")) - MCFG_NAMCO58XX_IN_2_CB(IOPORT("DSWB_HIGH")) - MCFG_NAMCO58XX_IN_3_CB(IOPORT("DSWA_LOW")) -MACHINE_CONFIG_END + NAMCO_56XX(config, m_namco56xx, 0); + m_namco56xx->in_callback<0>().set_ioport("COINS"); + m_namco56xx->in_callback<1>().set_ioport("P1"); + m_namco56xx->in_callback<2>().set_ioport("P2"); + m_namco56xx->in_callback<3>().set_ioport("BUTTONS"); + + NAMCO_58XX(config, m_namco58xx, 0); + m_namco58xx->in_callback<0>().set_ioport("DSWA_HIGH"); + m_namco58xx->in_callback<1>().set_ioport("DSWB_LOW"); + m_namco58xx->in_callback<2>().set_ioport("DSWB_HIGH"); + m_namco58xx->in_callback<3>().set_ioport("DSWA_LOW"); +} diff --git a/src/mame/drivers/harddriv.cpp b/src/mame/drivers/harddriv.cpp index 560f20931d7..56be52b9f79 100644 --- a/src/mame/drivers/harddriv.cpp +++ b/src/mame/drivers/harddriv.cpp @@ -1654,7 +1654,7 @@ MACHINE_CONFIG_START(harddriv_state::dsk) EEPROM_2816(config, "dsk_30c"); // MK48Z02 /* ASIC65 */ - MCFG_ASIC65_ADD("asic65", ASIC65_STANDARD) + ASIC65(config, m_asic65, 0, ASIC65_STANDARD); MACHINE_CONFIG_END @@ -1667,7 +1667,7 @@ MACHINE_CONFIG_START(harddriv_state::dsk2) MCFG_DEVICE_PROGRAM_MAP(dsk2_dsp32_map) /* ASIC65 */ - MCFG_ASIC65_ADD("asic65", ASIC65_STANDARD) + ASIC65(config, m_asic65, 0, ASIC65_STANDARD); MACHINE_CONFIG_END @@ -1933,7 +1933,7 @@ MACHINE_CONFIG_START(steeltal_board_device_state::device_add_mconfig) config.device_remove("lspeaker"); config.device_remove("rspeaker"); - MCFG_ASIC65_ADD("asic65", ASIC65_STEELTAL) /* ASIC65 on DSPCOM board */ + ASIC65(config, m_asic65, 0, ASIC65_STEELTAL); /* ASIC65 on DSPCOM board */ /* sund hardware */ SPEAKER(config, "mono").front_center(); diff --git a/src/mame/drivers/igs017.cpp b/src/mame/drivers/igs017.cpp index 83a839725c7..2224ce4d93d 100644 --- a/src/mame/drivers/igs017.cpp +++ b/src/mame/drivers/igs017.cpp @@ -3669,10 +3669,10 @@ MACHINE_CONFIG_START(igs017_state::lhzb2) ppi.in_pc_callback().set_ioport("DSW2"); // protection - MCFG_DEVICE_ADD("igs025", IGS025, 0) - MCFG_IGS025_SET_EXTERNAL_EXECUTE( igs017_state, igs025_to_igs022_callback ) + IGS025(config, m_igs025, 0); + m_igs025->set_external_cb(FUNC(igs017_state::igs025_to_igs022_callback), this); - MCFG_DEVICE_ADD("igs022", IGS022, 0) + IGS022(config, m_igs022, 0); // video MCFG_SCREEN_ADD("screen", RASTER) @@ -3765,10 +3765,10 @@ MACHINE_CONFIG_START(igs017_state::slqz2) ppi.in_pc_callback().set_ioport("DSW2"); // protection - MCFG_DEVICE_ADD("igs025", IGS025, 0) - MCFG_IGS025_SET_EXTERNAL_EXECUTE( igs017_state, igs025_to_igs022_callback ) + IGS025(config, m_igs025, 0); + m_igs025->set_external_cb(FUNC(igs017_state::igs025_to_igs022_callback), this); - MCFG_DEVICE_ADD("igs022", IGS022, 0) + IGS022(config, m_igs022, 0); // video MCFG_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/megadriv.cpp b/src/mame/drivers/megadriv.cpp index 7469144511c..d6a7c70cfda 100644 --- a/src/mame/drivers/megadriv.cpp +++ b/src/mame/drivers/megadriv.cpp @@ -612,14 +612,14 @@ MACHINE_CONFIG_START(md_cons_state::genesis_32x) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", (0.25)/2) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", (0.25)/2) - MCFG_DEVICE_ADD("sega32x", SEGA_32X_NTSC, (MASTER_CLOCK_NTSC * 3) / 7, m_maincpu, m_scan_timer) - MCFG_SEGA_32X_PALETTE("gen_vdp:palette") + SEGA_32X_NTSC(config, m_32x, (MASTER_CLOCK_NTSC * 3) / 7, m_maincpu, m_scan_timer); + m_32x->set_palette_tag("gen_vdp:palette"); MCFG_SCREEN_MODIFY("megadriv") MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, md_cons_state, screen_vblank_console)) // we need to remove and re-add the YM because the balance is different - // due to MAME / MESS having severe issues if the dac output is > 0.40? (sound is corrupted even if DAC is slient?!) + // due to MAME / MESS having severe issues if the dac output is > 0.40? (sound is corrupted even if DAC is silent?!) MCFG_DEVICE_REMOVE("ymsnd") MCFG_DEVICE_ADD("ymsnd", YM2612, MASTER_CLOCK_NTSC/7) @@ -650,14 +650,14 @@ MACHINE_CONFIG_START(md_cons_state::mdj_32x) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", (0.25)/2) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", (0.25)/2) - MCFG_DEVICE_ADD("sega32x", SEGA_32X_NTSC, (MASTER_CLOCK_NTSC * 3) / 7, m_maincpu, m_scan_timer) - MCFG_SEGA_32X_PALETTE("gen_vdp:palette") + SEGA_32X_NTSC(config, m_32x, (MASTER_CLOCK_NTSC * 3) / 7, m_maincpu, m_scan_timer); + m_32x->set_palette_tag("gen_vdp:palette"); MCFG_SCREEN_MODIFY("megadriv") MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, md_cons_state, screen_vblank_console)) // we need to remove and re-add the sound system because the balance is different - // due to MAME / MESS having severe issues if the dac output is > 0.40? (sound is corrupted even if DAC is slient?!) + // due to MAME / MESS having severe issues if the dac output is > 0.40? (sound is corrupted even if DAC is silent?!) MCFG_DEVICE_REMOVE("ymsnd") MCFG_DEVICE_ADD("ymsnd", YM2612, MASTER_CLOCK_NTSC/7) @@ -688,14 +688,14 @@ MACHINE_CONFIG_START(md_cons_state::md_32x) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", (0.25)/2) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", (0.25)/2) - MCFG_DEVICE_ADD("sega32x", SEGA_32X_PAL, (MASTER_CLOCK_PAL * 3) / 7, m_maincpu, m_scan_timer) - MCFG_SEGA_32X_PALETTE("gen_vdp:palette") + SEGA_32X_PAL(config, m_32x, (MASTER_CLOCK_PAL * 3) / 7, m_maincpu, m_scan_timer); + m_32x->set_palette_tag("gen_vdp:palette"); MCFG_SCREEN_MODIFY("megadriv") MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, md_cons_state, screen_vblank_console)) // we need to remove and re-add the sound system because the balance is different - // due to MAME / MESS having severe issues if the dac output is > 0.40? (sound is corrupted even if DAC is slient?!) + // due to MAME / MESS having severe issues if the dac output is > 0.40? (sound is corrupted even if DAC is silent?!) MCFG_DEVICE_REMOVE("ymsnd") MCFG_DEVICE_ADD("ymsnd", YM2612, MASTER_CLOCK_NTSC/7) diff --git a/src/mame/drivers/metro.cpp b/src/mame/drivers/metro.cpp index 8ac503eecf2..4c8978d1015 100644 --- a/src/mame/drivers/metro.cpp +++ b/src/mame/drivers/metro.cpp @@ -3682,8 +3682,8 @@ MACHINE_CONFIG_START(metro_state::blzntrnd) MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "vdp2:palette", gfx_blzntrnd) - MCFG_DEVICE_ADD("k053936", K053936, 0) - MCFG_K053936_OFFSETS(-77, -21) + K053936(config, m_k053936, 0); + m_k053936->set_offsets(-77, -21); /* sound hardware */ // HUM-002 PCB Configuration : Stereo output with second speaker connector @@ -3706,8 +3706,7 @@ MACHINE_CONFIG_START(metro_state::gstrik2) MCFG_GFXDECODE_MODIFY("gfxdecode", gfx_gstrik2) MCFG_VIDEO_START_OVERRIDE(metro_state,gstrik2) - MCFG_DEVICE_MODIFY("k053936") - MCFG_K053936_OFFSETS(-77, -19) + m_k053936->set_offsets(-77, -19); m_vdp2->set_tmap_xoffsets(0,-8,0); diff --git a/src/mame/drivers/namcos12.cpp b/src/mame/drivers/namcos12.cpp index 737f4ece210..b02df573a32 100644 --- a/src/mame/drivers/namcos12.cpp +++ b/src/mame/drivers/namcos12.cpp @@ -1731,7 +1731,7 @@ MACHINE_CONFIG_START(namcos12_state::namcos12_mobo) MCFG_DEVICE_PROGRAM_MAP(s12h8rwmap) MCFG_DEVICE_IO_MAP(s12h8iomap) - MCFG_NAMCO_SETTINGS_ADD("namco_settings") + NAMCO_SETTINGS(config, m_settings, 0); RTC4543(config, m_rtc, XTAL(32'768)); m_rtc->data_cb().set("sub:sci1", FUNC(h8_sci_device::rx_w)); diff --git a/src/mame/drivers/namcos23.cpp b/src/mame/drivers/namcos23.cpp index 94651f1734e..88d54d326ea 100644 --- a/src/mame/drivers/namcos23.cpp +++ b/src/mame/drivers/namcos23.cpp @@ -3622,7 +3622,7 @@ MACHINE_CONFIG_START(namcos23_state::gorgon) MCFG_QUANTUM_TIME(attotime::from_hz(2*115200)) - MCFG_NAMCO_SETTINGS_ADD("namco_settings") + NAMCO_SETTINGS(config, m_settings, 0); RTC4543(config, m_rtc, XTAL(32'768)); m_rtc->data_cb().set("subcpu:sci1", FUNC(h8_sci_device::rx_w)); @@ -3690,7 +3690,7 @@ MACHINE_CONFIG_START(namcos23_state::s23) MCFG_QUANTUM_TIME(attotime::from_hz(2*115200)) - MCFG_NAMCO_SETTINGS_ADD("namco_settings") + NAMCO_SETTINGS(config, m_settings, 0); RTC4543(config, m_rtc, XTAL(32'768)); m_rtc->data_cb().set("subcpu:sci1", FUNC(h8_sci_device::rx_w)); @@ -3771,7 +3771,7 @@ MACHINE_CONFIG_START(namcos23_state::ss23) MCFG_QUANTUM_TIME(attotime::from_hz(2*115200)) - MCFG_NAMCO_SETTINGS_ADD("namco_settings") + NAMCO_SETTINGS(config, m_settings, 0); RTC4543(config, m_rtc, XTAL(32'768)); m_rtc->data_cb().set("subcpu:sci1", FUNC(h8_sci_device::rx_w)); diff --git a/src/mame/drivers/next.cpp b/src/mame/drivers/next.cpp index bc962a26910..c35c99d64dd 100644 --- a/src/mame/drivers/next.cpp +++ b/src/mame/drivers/next.cpp @@ -1021,10 +1021,10 @@ MACHINE_CONFIG_START(next_state::next_base) SCC8530(config, scc, XTAL(25'000'000)); scc->intrq_callback().set(FUNC(next_state::scc_irq)); - MCFG_DEVICE_ADD("keyboard", NEXTKBD, 0) - MCFG_NEXTKBD_INT_CHANGE_CALLBACK(WRITELINE(*this, next_state, keyboard_irq)) - MCFG_NEXTKBD_INT_POWER_CALLBACK(WRITELINE(*this, next_state, power_irq)) - MCFG_NEXTKBD_INT_NMI_CALLBACK(WRITELINE(*this, next_state, nmi_irq)) + NEXTKBD(config, keyboard, 0); + keyboard->int_change_wr_callback().set(FUNC(next_state::keyboard_irq)); + keyboard->int_power_wr_callback().set(FUNC(next_state::power_irq)); + keyboard->int_nmi_wr_callback().set(FUNC(next_state::nmi_irq)); MCFG_NSCSI_ADD("scsibus:0", next_scsi_devices, "harddisk", false) MCFG_NSCSI_ADD("scsibus:1", next_scsi_devices, "cdrom", false) @@ -1042,9 +1042,9 @@ MACHINE_CONFIG_START(next_state::next_base) net->tx_drq().set(FUNC(next_state::net_tx_drq)); net->rx_drq().set(FUNC(next_state::net_rx_drq)); - MCFG_DEVICE_ADD("mo", NEXTMO, 0) - MCFG_NEXTMO_IRQ_CALLBACK(WRITELINE(*this, next_state, mo_irq)) - MCFG_NEXTMO_DRQ_CALLBACK(WRITELINE(*this, next_state, mo_drq)) + NEXTMO(config, mo, 0); + mo->irq_wr_callback().set(FUNC(next_state::mo_irq)); + mo->drq_wr_callback().set(FUNC(next_state::mo_drq)); MACHINE_CONFIG_END MACHINE_CONFIG_START(next_state::next) diff --git a/src/mame/drivers/pcd.cpp b/src/mame/drivers/pcd.cpp index 127530249c7..c95dc57f70a 100644 --- a/src/mame/drivers/pcd.cpp +++ b/src/mame/drivers/pcd.cpp @@ -566,8 +566,8 @@ MACHINE_CONFIG_START(pcd_state::pcd) m_rtc->set_epoch(1900); m_rtc->set_24hrs(true); - MCFG_DEVICE_ADD("keyboard", PCD_KEYBOARD, 0) - MCFG_PCD_KEYBOARD_OUT_TX_HANDLER(WRITELINE(m_usart[1], mc2661_device, rx_w)) + pcd_keyboard_device &keyboard(PCD_KEYBOARD(config, "keyboard", 0)); + keyboard.out_tx_handler().set(m_usart[1], FUNC(mc2661_device::rx_w)); MCFG_DEVICE_ADD("scsi", SCSI_PORT, 0) MCFG_SCSI_DATA_INPUT_BUFFER("scsi_data_in") @@ -590,8 +590,7 @@ MACHINE_CONFIG_START(pcd_state::pcx) pcx_video_device &video(PCX_VIDEO(config.replace(), "video", 0)); video.txd_handler().set("keyboard", FUNC(pcd_keyboard_device::t0_w)); - MCFG_DEVICE_MODIFY("keyboard") - MCFG_PCD_KEYBOARD_OUT_TX_HANDLER(WRITELINE("video", pcx_video_device, rx_w)) + subdevice("keyboard")->out_tx_handler().set("video", FUNC(pcx_video_device::rx_w)); m_usart[1]->txd_handler().set_nop(); MACHINE_CONFIG_END diff --git a/src/mame/drivers/pce.cpp b/src/mame/drivers/pce.cpp index 82470364102..36d86941249 100644 --- a/src/mame/drivers/pce.cpp +++ b/src/mame/drivers/pce.cpp @@ -339,7 +339,7 @@ MACHINE_CONFIG_START(pce_state::pce_common) SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); - MCFG_PCE_CD_ADD("pce_cd") + PCE_CD(config, m_cd, 0); MCFG_SOFTWARE_LIST_ADD("cd_list","pcecd") MACHINE_CONFIG_END @@ -412,7 +412,7 @@ MACHINE_CONFIG_START(pce_state::sgx) MCFG_SOFTWARE_LIST_ADD("cart_list","sgx") MCFG_SOFTWARE_LIST_COMPATIBLE_ADD("pce_list","pce") - MCFG_PCE_CD_ADD("pce_cd") + PCE_CD(config, m_cd, 0); MCFG_SOFTWARE_LIST_ADD("cd_list","pcecd") MACHINE_CONFIG_END diff --git a/src/mame/drivers/pce220.cpp b/src/mame/drivers/pce220.cpp index 0d5ce207e93..3e494d389a4 100644 --- a/src/mame/drivers/pce220.cpp +++ b/src/mame/drivers/pce220.cpp @@ -974,7 +974,7 @@ MACHINE_CONFIG_START(pce220_state::pce220) /* internal ram */ RAM(config, RAM_TAG).set_default_size("64K"); // 32K internal + 32K external card - MCFG_PCE220_SERIAL_ADD(PCE220SERIAL_TAG) + PCE220SERIAL(config, m_serial, 0); MACHINE_CONFIG_END MACHINE_CONFIG_START(pcg850v_state::pcg815) @@ -1008,7 +1008,7 @@ MACHINE_CONFIG_START(pcg850v_state::pcg815) /* internal ram */ RAM(config, RAM_TAG).set_default_size("64K"); // 32K internal + 32K external card - MCFG_PCE220_SERIAL_ADD(PCE220SERIAL_TAG) + PCE220SERIAL(config, m_serial, 0); MACHINE_CONFIG_END MACHINE_CONFIG_START(pcg850v_state::pcg850v) @@ -1042,7 +1042,7 @@ MACHINE_CONFIG_START(pcg850v_state::pcg850v) /* internal ram */ RAM(config, RAM_TAG).set_default_size("64K"); // 32K internal + 32K external card - MCFG_PCE220_SERIAL_ADD(PCE220SERIAL_TAG) + PCE220SERIAL(config, m_serial, 0); MACHINE_CONFIG_END /* ROM definition */ diff --git a/src/mame/drivers/pgm2.cpp b/src/mame/drivers/pgm2.cpp index f41a2839172..81741667e96 100644 --- a/src/mame/drivers/pgm2.cpp +++ b/src/mame/drivers/pgm2.cpp @@ -812,10 +812,10 @@ MACHINE_CONFIG_START(pgm2_state::pgm2) MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) - MCFG_PGM2_MEMCARD_ADD("memcard_p1") - MCFG_PGM2_MEMCARD_ADD("memcard_p2") - MCFG_PGM2_MEMCARD_ADD("memcard_p3") - MCFG_PGM2_MEMCARD_ADD("memcard_p4") + PGM2_MEMCARD(config, m_memcard[0], 0); + PGM2_MEMCARD(config, m_memcard[1], 0); + PGM2_MEMCARD(config, m_memcard[2], 0); + PGM2_MEMCARD(config, m_memcard[3], 0); MACHINE_CONFIG_END // not strictly needed as the video code supports changing on the fly, but makes recording easier etc. diff --git a/src/mame/drivers/plygonet.cpp b/src/mame/drivers/plygonet.cpp index 75c7a6dd25f..93cba3d29d2 100644 --- a/src/mame/drivers/plygonet.cpp +++ b/src/mame/drivers/plygonet.cpp @@ -585,7 +585,7 @@ MACHINE_CONFIG_START(polygonet_state::plygonet) MCFG_PALETTE_ADD("palette", 32768) MCFG_PALETTE_FORMAT(XRGB) - MCFG_DEVICE_ADD("k053936", K053936, 0) + K053936(config, m_k053936, 0); /* sound hardware */ SPEAKER(config, "lspeaker").front_left(); diff --git a/src/mame/drivers/polepos.cpp b/src/mame/drivers/polepos.cpp index 763d1abb9d5..c966a3479d3 100644 --- a/src/mame/drivers/polepos.cpp +++ b/src/mame/drivers/polepos.cpp @@ -888,14 +888,14 @@ MACHINE_CONFIG_START(polepos_state::polepos) n54xx.set_discrete("discrete"); n54xx.set_basenote(NODE_01); - MCFG_NAMCO_06XX_ADD("06xx", MASTER_CLOCK/8/64) - MCFG_NAMCO_06XX_MAINCPU("maincpu") - MCFG_NAMCO_06XX_READ_0_CB(READ8("51xx", namco_51xx_device, read)) - MCFG_NAMCO_06XX_WRITE_0_CB(WRITE8("51xx", namco_51xx_device, write)) - MCFG_NAMCO_06XX_READ_1_CB(READ8("53xx", namco_53xx_device, read)) - MCFG_NAMCO_06XX_READ_REQUEST_1_CB(WRITELINE("53xx", namco_53xx_device, read_request)) - MCFG_NAMCO_06XX_WRITE_2_CB(WRITE8("52xx", namco_52xx_device, write)) - MCFG_NAMCO_06XX_WRITE_3_CB(WRITE8("54xx", namco_54xx_device, write)) + namco_06xx_device &n06xx(NAMCO_06XX(config, "06xx", MASTER_CLOCK/8/64)); + n06xx.set_maincpu(m_maincpu); + n06xx.read_callback<0>().set("51xx", FUNC(namco_51xx_device::read)); + n06xx.write_callback<0>().set("51xx", FUNC(namco_51xx_device::write)); + n06xx.read_callback<1>().set("53xx", FUNC(namco_53xx_device::read)); + n06xx.read_request_callback<1>().set("53xx", FUNC(namco_53xx_device::read_request)); + n06xx.write_callback<2>().set("52xx", FUNC(namco_52xx_device::write)); + n06xx.write_callback<3>().set("54xx", FUNC(namco_54xx_device::write)); WATCHDOG_TIMER(config, "watchdog").set_vblank_count(m_screen, 16); // 128V clocks the same as VBLANK @@ -1001,10 +1001,10 @@ MACHINE_CONFIG_START(polepos_state::topracern) n51xx.set_screen_tag(m_screen); n51xx.input_callback<1>().set_ioport("IN0").rshift(4); - MCFG_NAMCO_06XX_ADD("06xx", MASTER_CLOCK/8/64) - MCFG_NAMCO_06XX_MAINCPU("maincpu") - MCFG_NAMCO_06XX_READ_0_CB(READ8("51xx", namco_51xx_device, read)) - MCFG_NAMCO_06XX_WRITE_0_CB(WRITE8("51xx", namco_51xx_device, write)) + namco_06xx_device &n06xx(NAMCO_06XX(config, "06xx", MASTER_CLOCK/8/64)); + n06xx.set_maincpu(m_maincpu); + n06xx.read_callback<0>().set("51xx", FUNC(namco_51xx_device::read)); + n06xx.write_callback<0>().set("51xx", FUNC(namco_51xx_device::write)); WATCHDOG_TIMER(config, "watchdog").set_vblank_count(m_screen, 16); // 128V clocks the same as VBLANK diff --git a/src/mame/drivers/psx.cpp b/src/mame/drivers/psx.cpp index 15f9e6f6adf..63cd2c96f85 100644 --- a/src/mame/drivers/psx.cpp +++ b/src/mame/drivers/psx.cpp @@ -558,8 +558,8 @@ MACHINE_CONFIG_START(psx1_state::psj) MCFG_PSX_CD_READ_HANDLER( READ8( PSXCD_TAG, psxcd_device, read ) ) MCFG_PSX_CD_WRITE_HANDLER( WRITE8( PSXCD_TAG, psxcd_device, write ) ) - MCFG_DEVICE_ADD(PSXCD_TAG, PSXCD, "maincpu", "spu") - MCFG_PSXCD_IRQ_HANDLER(WRITELINE("maincpu:irq", psxirq_device, intin2)) + PSXCD(config, m_psxcd, m_maincpu, "spu"); + m_psxcd->irq_handler().set("maincpu:irq", FUNC(psxirq_device::intin2)); MCFG_PSX_DMA_CHANNEL_READ( "maincpu", 3, psxdma_device::read_delegate(&psx1_state::cd_dma_read, this ) ) MCFG_PSX_DMA_CHANNEL_WRITE( "maincpu", 3, psxdma_device::write_delegate(&psx1_state::cd_dma_write, this ) ) MACHINE_CONFIG_END @@ -612,8 +612,8 @@ MACHINE_CONFIG_START(psx1_state::pse) MCFG_PSX_CD_READ_HANDLER( READ8( PSXCD_TAG, psxcd_device, read ) ) MCFG_PSX_CD_WRITE_HANDLER( WRITE8( PSXCD_TAG, psxcd_device, write ) ) - MCFG_DEVICE_ADD(PSXCD_TAG, PSXCD, "maincpu", "spu") - MCFG_PSXCD_IRQ_HANDLER(WRITELINE("maincpu:irq", psxirq_device, intin2)) + PSXCD(config, m_psxcd, m_maincpu, "spu"); + m_psxcd->irq_handler().set("maincpu:irq", FUNC(psxirq_device::intin2)); MCFG_PSX_DMA_CHANNEL_READ( "maincpu", 3, psxdma_device::read_delegate(&psx1_state::cd_dma_read, this ) ) MCFG_PSX_DMA_CHANNEL_WRITE( "maincpu", 3, psxdma_device::write_delegate(&psx1_state::cd_dma_write, this ) ) MACHINE_CONFIG_END diff --git a/src/mame/drivers/ql.cpp b/src/mame/drivers/ql.cpp index b6a738e3f02..824b67b4fbd 100644 --- a/src/mame/drivers/ql.cpp +++ b/src/mame/drivers/ql.cpp @@ -962,8 +962,8 @@ MACHINE_CONFIG_START(ql_state::ql) MCFG_DEVICE_ADD("rom", QL_ROM_CARTRIDGE_SLOT, ql_rom_cartridge_cards, nullptr) - MCFG_DEVICE_ADD(QIMI_TAG, QIMI, 0) - MCFG_QIMI_EXTINT_CALLBACK(WRITELINE(*this, ql_state, qimi_extintl_w)) + QIMI(config, m_qimi, 0); + m_qimi->extint_wr_callback().set(FUNC(ql_state::qimi_extintl_w)); // software lists MCFG_SOFTWARE_LIST_ADD("cart_list", "ql_cart") diff --git a/src/mame/drivers/rad_eu3a05.cpp b/src/mame/drivers/rad_eu3a05.cpp index 3023e666128..b2f7b73f1b0 100644 --- a/src/mame/drivers/rad_eu3a05.cpp +++ b/src/mame/drivers/rad_eu3a05.cpp @@ -1168,8 +1168,8 @@ MACHINE_CONFIG_START(radica_eu3a05_state::radicasi) MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_radicasi_fake) - MCFG_DEVICE_ADD("gpio", RADICA6502_GPIO, 0) - MCFG_RADICA6502_GPIO_READ_PORT0_CB(IOPORT("IN0")) + radica6502_gpio_device &gpio(RADICA6502_GPIO(config, "gpio", 0)); + gpio.read_0_callback().set_ioport("IN0"); /* sound hardware */ SPEAKER(config, "mono").front_center(); diff --git a/src/mame/drivers/rungun.cpp b/src/mame/drivers/rungun.cpp index 0e20d49a50a..cb332f098f0 100644 --- a/src/mame/drivers/rungun.cpp +++ b/src/mame/drivers/rungun.cpp @@ -425,8 +425,8 @@ MACHINE_CONFIG_START(rungun_state::rng) MCFG_PALETTE_ENABLE_SHADOWS() MCFG_PALETTE_ENABLE_HILIGHTS() - MCFG_DEVICE_ADD("k053936", K053936, 0) - MCFG_K053936_OFFSETS(34, 9) + K053936(config, m_k053936, 0); + m_k053936->set_offsets(34, 9); K055673(config, m_k055673, 0); m_k055673->set_sprite_callback(FUNC(rungun_state::sprite_callback), this); diff --git a/src/mame/drivers/suprslam.cpp b/src/mame/drivers/suprslam.cpp index a1bdecb19d3..3b1395c6615 100644 --- a/src/mame/drivers/suprslam.cpp +++ b/src/mame/drivers/suprslam.cpp @@ -305,9 +305,9 @@ MACHINE_CONFIG_START(suprslam_state::suprslam) m_spr->set_gfx_region(1); m_spr->set_gfxdecode_tag(m_gfxdecode); - MCFG_DEVICE_ADD("k053936", K053936, 0) - MCFG_K053936_WRAP(1) - MCFG_K053936_OFFSETS(-45, -21) + K053936(config, m_k053936, 0); + m_k053936->set_wrap(1); + m_k053936->set_offsets(-45, -21); SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); diff --git a/src/mame/drivers/terracre.cpp b/src/mame/drivers/terracre.cpp index bea8a9ae9ec..e778c30452b 100644 --- a/src/mame/drivers/terracre.cpp +++ b/src/mame/drivers/terracre.cpp @@ -519,7 +519,7 @@ MACHINE_CONFIG_START(amazon_state::amazon_1412m2) MCFG_DEVICE_MODIFY("maincpu") MCFG_DEVICE_PROGRAM_MAP(amazon_1412m2_map) - MCFG_DEVICE_ADD("prot_chip", NB1412M2, XTAL(16'000'000)) // divided by 4 maybe + NB1412M2(config, m_prot, XTAL(16'000'000)); // divided by 4 maybe MACHINE_CONFIG_END diff --git a/src/mame/drivers/tmnt.cpp b/src/mame/drivers/tmnt.cpp index f38b62c01a0..00b69ab716b 100644 --- a/src/mame/drivers/tmnt.cpp +++ b/src/mame/drivers/tmnt.cpp @@ -2321,9 +2321,9 @@ MACHINE_CONFIG_START(tmnt_state::glfgreat) m_k053245->set_palette(m_palette); m_k053245->set_sprite_callback(FUNC(tmnt_state::lgtnfght_sprite_callback), this); - MCFG_DEVICE_ADD("k053936", K053936, 0) - MCFG_K053936_WRAP(1) - MCFG_K053936_OFFSETS(85, 0) + K053936(config, m_k053936, 0); + m_k053936->set_wrap(1); + m_k053936->set_offsets(85, 0); K053251(config, m_k053251, 0); @@ -2389,8 +2389,8 @@ MACHINE_CONFIG_START(tmnt_state::prmrsocr) m_k053245->set_palette(m_palette); m_k053245->set_sprite_callback(FUNC(tmnt_state::prmrsocr_sprite_callback), this); - MCFG_DEVICE_ADD("k053936", K053936, 0) - MCFG_K053936_OFFSETS(85, 1) + K053936(config, m_k053936, 0); + m_k053936->set_offsets(85, 1); K053251(config, m_k053251, 0); diff --git a/src/mame/drivers/toypop.cpp b/src/mame/drivers/toypop.cpp index a09a5ba2c9f..7a59813ea1b 100644 --- a/src/mame/drivers/toypop.cpp +++ b/src/mame/drivers/toypop.cpp @@ -703,24 +703,25 @@ MACHINE_CONFIG_START(namcos16_state::liblrabl) MCFG_DEVICE_PROGRAM_MAP(sound_map) MCFG_DEVICE_PERIODIC_INT_DRIVER(namcos16_state, irq0_line_hold, 60) - - MCFG_DEVICE_ADD("58xx", NAMCO_58XX, 0) - MCFG_NAMCO58XX_IN_0_CB(IOPORT("COINS")) - MCFG_NAMCO58XX_IN_1_CB(IOPORT("P1_RIGHT")) - MCFG_NAMCO58XX_IN_2_CB(IOPORT("P2_RIGHT")) - MCFG_NAMCO58XX_IN_3_CB(IOPORT("BUTTONS")) - - MCFG_DEVICE_ADD("56xx_1", NAMCO_56XX, 0) - MCFG_NAMCO56XX_IN_0_CB(READ8(*this, namcos16_state, dipA_h)) - MCFG_NAMCO56XX_IN_1_CB(READ8(*this, namcos16_state, dipB_l)) - MCFG_NAMCO56XX_IN_2_CB(READ8(*this, namcos16_state, dipB_h)) - MCFG_NAMCO56XX_IN_3_CB(READ8(*this, namcos16_state, dipA_l)) - MCFG_NAMCO56XX_OUT_0_CB(WRITE8(*this, namcos16_state, flip)) - - MCFG_DEVICE_ADD("56xx_2", NAMCO_56XX, 0) - MCFG_NAMCO56XX_IN_1_CB(IOPORT("P1_LEFT")) - MCFG_NAMCO56XX_IN_2_CB(IOPORT("P2_LEFT")) - MCFG_NAMCO56XX_IN_3_CB(IOPORT("SERVICE")) + + NAMCO_58XX(config, m_namco58xx, 0); + m_namco58xx->in_callback<0>().set_ioport("COINS"); + m_namco58xx->in_callback<1>().set_ioport("P1_RIGHT"); + m_namco58xx->in_callback<2>().set_ioport("P2_RIGHT"); + m_namco58xx->in_callback<3>().set_ioport("BUTTONS"); + + + NAMCO_56XX(config, m_namco56xx_1, 0); + m_namco56xx_1->in_callback<0>().set(FUNC(namcos16_state::dipA_h)); + m_namco56xx_1->in_callback<1>().set(FUNC(namcos16_state::dipB_l)); + m_namco56xx_1->in_callback<2>().set(FUNC(namcos16_state::dipB_h)); + m_namco56xx_1->in_callback<3>().set(FUNC(namcos16_state::dipA_l)); + m_namco56xx_1->out_callback<0>().set(FUNC(namcos16_state::flip)); + + NAMCO_56XX(config, m_namco56xx_2, 0); + m_namco56xx_2->in_callback<1>().set_ioport("P1_LEFT"); + m_namco56xx_2->in_callback<2>().set_ioport("P2_LEFT"); + m_namco56xx_2->in_callback<3>().set_ioport("SERVICE"); MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK,384,0,288,264,0,224) // derived from Galaxian HW, 60.606060 diff --git a/src/mame/drivers/v1050.cpp b/src/mame/drivers/v1050.cpp index 2508cb7be57..fb66d34e6f7 100644 --- a/src/mame/drivers/v1050.cpp +++ b/src/mame/drivers/v1050.cpp @@ -1081,8 +1081,8 @@ MACHINE_CONFIG_START(v1050_state::v1050) MCFG_CLOCK_SIGNAL_HANDLER(WRITELINE(*this, v1050_state, write_keyboard_clock)) // keyboard - MCFG_DEVICE_ADD(V1050_KEYBOARD_TAG, V1050_KEYBOARD, 0) - MCFG_V1050_KEYBOARD_OUT_TX_HANDLER(WRITELINE(I8251A_KB_TAG, i8251_device, write_rxd)) + v1050_keyboard_device &keyboard(V1050_KEYBOARD(config, V1050_KEYBOARD_TAG, 0)); + keyboard.out_tx_handler().set(m_uart_kb, FUNC(i8251_device::write_rxd)); I8251(config, m_uart_sio, 0/*16_MHz_XTAL/8,*/); m_uart_sio->txd_handler().set(RS232_TAG, FUNC(rs232_port_device::write_txd)); diff --git a/src/mame/drivers/xerox820.cpp b/src/mame/drivers/xerox820.cpp index d169429bb69..babdbcab929 100644 --- a/src/mame/drivers/xerox820.cpp +++ b/src/mame/drivers/xerox820.cpp @@ -658,8 +658,8 @@ MACHINE_CONFIG_START(xerox820_state::xerox820) dbrg.fr_handler().append(m_sio, FUNC(z80dart_device::txca_w)); dbrg.ft_handler().set(m_sio, FUNC(z80dart_device::rxtxcb_w)); - MCFG_DEVICE_ADD(KEYBOARD_TAG, XEROX_820_KEYBOARD, 0) - MCFG_XEROX_820_KEYBOARD_KBSTB_CALLBACK(WRITELINE(m_kbpio, z80pio_device, strobe_b)) + XEROX_820_KEYBOARD(config, m_kb, 0); + m_kb->kbstb_wr_callback().set(m_kbpio, FUNC(z80pio_device::strobe_b)); /* internal ram */ RAM(config, m_ram).set_default_size("64K"); @@ -747,8 +747,8 @@ MACHINE_CONFIG_START(xerox820ii_state::xerox820ii) dbrg.fr_handler().append(m_sio, FUNC(z80dart_device::txca_w)); dbrg.ft_handler().set(m_sio, FUNC(z80dart_device::rxtxcb_w)); - MCFG_DEVICE_ADD(KEYBOARD_TAG, XEROX_820_KEYBOARD, 0) - MCFG_XEROX_820_KEYBOARD_KBSTB_CALLBACK(WRITELINE(m_kbpio, z80pio_device, strobe_b)) + XEROX_820_KEYBOARD(config, m_kb, 0); + m_kb->kbstb_wr_callback().set(m_kbpio, FUNC(z80pio_device::strobe_b)); // SASI bus SCSI_PORT(config, m_sasibus, 0); diff --git a/src/mame/drivers/z88.cpp b/src/mame/drivers/z88.cpp index 813853b6730..429c3c28b61 100644 --- a/src/mame/drivers/z88.cpp +++ b/src/mame/drivers/z88.cpp @@ -603,24 +603,24 @@ MACHINE_CONFIG_START(z88_state::z88) m_maincpu->set_addrmap(AS_IO, &z88_state::z88_io); /* video hardware */ - device = &SCREEN(config, m_screen, SCREEN_TYPE_LCD); + SCREEN(config, m_screen, SCREEN_TYPE_LCD); m_screen->set_refresh_hz(50); m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0)); m_screen->set_size(Z88_SCREEN_WIDTH, Z88_SCREEN_HEIGHT); m_screen->set_visarea(0, (Z88_SCREEN_WIDTH - 1), 0, (Z88_SCREEN_HEIGHT - 1)); m_screen->set_palette(m_palette); - MCFG_SCREEN_UPDATE_DEVICE("blink", upd65031_device, screen_update) + m_screen->set_screen_update("blink", FUNC(upd65031_device::screen_update)); device = &PALETTE(config, m_palette, Z88_NUM_COLOURS); MCFG_PALETTE_INIT_OWNER(z88_state, z88) - device = &UPD65031(config, m_blink, XTAL(9'830'400)); + UPD65031(config, m_blink, XTAL(9'830'400)); m_blink->kb_rd_callback().set(FUNC(z88_state::kb_r)); m_blink->int_wr_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); m_blink->nmi_wr_callback().set_inputline(m_maincpu, INPUT_LINE_NMI); m_blink->spkr_wr_callback().set("speaker", FUNC(speaker_sound_device::level_w)); - MCFG_UPD65031_SCR_UPDATE_CB(z88_state, lcd_update) - MCFG_UPD65031_MEM_UPDATE_CB(z88_state, bankswitch_update) + m_blink->set_screen_update_callback(FUNC(z88_state::lcd_update), this); + m_blink->set_memory_update_callback(FUNC(z88_state::bankswitch_update), this); /* sound hardware */ SPEAKER(config, "mono").front_center(); diff --git a/src/mame/includes/apollo.h b/src/mame/includes/apollo.h index 7428196a9ca..6c817b4799e 100644 --- a/src/mame/includes/apollo.h +++ b/src/mame/includes/apollo.h @@ -64,7 +64,7 @@ // Do *not* report any issues on Mametesters if this is enabled! // #define APOLLO_XXL -/*----------- drivers/apollo.c -----------*/ +/*----------- drivers/apollo.cpp -----------*/ // return the current CPU context for log file entries std::string apollo_cpu_context(running_machine &machine); @@ -97,7 +97,7 @@ int apollo_instruction_hook(m68000_base_device *device, offs_t curpc); void apollo_set_cache_status_register(device_t *device,uint8_t mask, uint8_t data); -/*----------- machine/apollo.c -----------*/ +/*----------- machine/apollo.cpp -----------*/ #define APOLLO_CONF_TAG "conf" #define APOLLO_DMA1_TAG "dma8237_1" @@ -270,8 +270,6 @@ public: void common(machine_config &config); void apollo(machine_config &config); void apollo_terminal(machine_config &config); - void apollo_graphics(machine_config &config); - void apollo_mono19i(machine_config &config); void dn3500(machine_config &config); void dn5500_19i(machine_config &config); void dn3000(machine_config &config); @@ -297,7 +295,7 @@ private: bool m_cur_eop; }; -/*----------- machine/apollo_config.c -----------*/ +/*----------- machine/apollo_config.cpp -----------*/ // configuration bit definitions @@ -322,7 +320,7 @@ int apollo_config(int mask); INPUT_PORTS_EXTERN(apollo_config); -/*----------- machine/apollo_csr.c -----------*/ +/*----------- machine/apollo_csr.cpp -----------*/ #define APOLLO_CSR_SR_SERVICE 0x0001 #define APOLLO_CSR_SR_ATBUS_IO_TIMEOUT 0x0002 @@ -344,22 +342,7 @@ uint16_t apollo_csr_get_control_register(void); uint16_t apollo_csr_get_status_register(void); void apollo_csr_set_status_register(uint16_t mask, uint16_t data); -/*----------- machine/apollo_sio.c -----------*/ - -#define MCFG_APOLLO_SIO_ADD(_tag, _clock) \ - MCFG_DEVICE_ADD(_tag, APOLLO_SIO, _clock) - -#define MCFG_APOLLO_SIO_IRQ_CALLBACK(_cb) \ - downcast(*device).set_irq_cb(DEVCB_##_cb); - -#define MCFG_APOLLO_SIO_A_TX_CALLBACK(_cb) \ - downcast(*device).set_a_tx_cb(DEVCB_##_cb); - -#define MCFG_APOLLO_SIO_B_TX_CALLBACK(_cb) \ - downcast(*device).set_b_tx_cb(DEVCB_##_cb); - -#define MCFG_APOLLO_SIO_OUTPORT_CALLBACK(_cb) \ - downcast(*device).set_outport_cb(DEVCB_##_cb); +/*----------- machine/apollo_sio.cpp -----------*/ class apollo_sio: public duart_base_device { @@ -378,10 +361,8 @@ private: DECLARE_DEVICE_TYPE(APOLLO_SIO, apollo_sio) -/*----------- machine/apollo_ni.c -----------*/ +/*----------- machine/apollo_ni.cpp -----------*/ -#define MCFG_APOLLO_NI_ADD(_tag, _xtal) \ - MCFG_DEVICE_ADD(_tag, APOLLO_NI, _xtal) /*** Apollo Node ID device ***/ @@ -428,7 +409,7 @@ private: // device type definition DECLARE_DEVICE_TYPE(APOLLO_NI, apollo_ni) -/*----------- video/apollo.c -----------*/ +/*----------- video/apollo.cpp -----------*/ class apollo_graphics_15i : public device_t { @@ -468,6 +449,7 @@ protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; + virtual void device_add_mconfig(machine_config &config) override; protected: class lut_fifo; @@ -666,9 +648,6 @@ private: DECLARE_DEVICE_TYPE(APOLLO_GRAPHICS, apollo_graphics_15i) -#define MCFG_APOLLO_GRAPHICS_ADD( _tag) \ - apollo_graphics(config); \ - MCFG_DEVICE_ADD(_tag, APOLLO_GRAPHICS, 0) class apollo_graphics_19i : public apollo_graphics_15i { @@ -678,6 +657,7 @@ protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; + virtual void device_add_mconfig(machine_config &config) override; private: // internal state @@ -685,20 +665,10 @@ private: DECLARE_DEVICE_TYPE(APOLLO_MONO19I, apollo_graphics_19i) -#define MCFG_APOLLO_MONO19I_ADD(_tag) \ - apollo_mono19i(config); \ - MCFG_DEVICE_ADD(_tag, APOLLO_MONO19I, 0) - #ifdef APOLLO_XXL -/*----------- machine/apollo_stdio.c -----------*/ +/*----------- machine/apollo_stdio.cpp -----------*/ -//************************************************************************** -// DEVICE CONFIGURATION MACROS -//************************************************************************** - -#define MCFG_APOLLO_STDIO_TX_CALLBACK(_cb) \ - downcast(*device).set_tx_cb(DEVCB_##_cb); //************************************************************************** // TYPE DEFINITIONS @@ -713,12 +683,7 @@ public: apollo_stdio_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template devcb_base &set_tx_cb(Object &&object) - { - return m_tx_w.set_callback(std::forward(object)); - } - - devcb_write_line m_tx_w; + auto tx_cb() { return m_tx_w.bind(); } private: // device-level overrides @@ -741,6 +706,8 @@ private: bool m_tx_busy; emu_timer* m_poll_timer; + + devcb_write_line m_tx_w; }; // device type definition diff --git a/src/mame/machine/apollo.cpp b/src/mame/machine/apollo.cpp index 9a80fae2563..a76920b279a 100644 --- a/src/mame/machine/apollo.cpp +++ b/src/mame/machine/apollo.cpp @@ -1108,10 +1108,10 @@ MACHINE_CONFIG_START(apollo_state::common) m_rtc->set_24hrs(false); m_rtc->set_epoch(0); - MCFG_APOLLO_NI_ADD(APOLLO_NI_TAG, 0) + APOLLO_NI(config, m_node_id, 0); - MCFG_APOLLO_SIO_ADD(APOLLO_SIO2_TAG, 3.6864_MHz_XTAL) - MCFG_APOLLO_SIO_IRQ_CALLBACK(WRITELINE(*this, apollo_state, sio2_irq_handler)) + APOLLO_SIO(config, m_sio2, 3.6864_MHz_XTAL); + m_sio2->irq_cb().set(FUNC(apollo_state::sio2_irq_handler)); ISA16(config, m_isa, 0); m_isa->set_cputag(MAINCPU); @@ -1147,17 +1147,18 @@ MACHINE_CONFIG_START(apollo_state::common) MACHINE_CONFIG_END // for machines with the keyboard and a graphics head -MACHINE_CONFIG_START(apollo_state::apollo) +void apollo_state::apollo(machine_config &config) +{ common(config); - MCFG_APOLLO_SIO_ADD(APOLLO_SIO_TAG, 3.6864_MHz_XTAL) - MCFG_APOLLO_SIO_IRQ_CALLBACK(WRITELINE(*this, apollo_state, sio_irq_handler)) - MCFG_APOLLO_SIO_OUTPORT_CALLBACK(WRITE8(*this, apollo_state, sio_output)) - MCFG_APOLLO_SIO_A_TX_CALLBACK(WRITELINE(m_keyboard, apollo_kbd_device, rx_w)) + APOLLO_SIO(config, m_sio, 3.6864_MHz_XTAL); + m_sio->irq_cb().set(FUNC(apollo_state::sio_irq_handler)); + m_sio->outport_cb().set(FUNC(apollo_state::sio_output)); + m_sio->a_tx_cb().set(m_keyboard, FUNC(apollo_kbd_device::rx_w)); #ifdef APOLLO_XXL - MCFG_APOLLO_SIO_B_TX_CALLBACK(WRITELINE(APOLLO_STDIO_TAG, apollo_stdio_device, rx_w)) + m_sio->b_tx_cb().set(APOLLO_STDIO_TAG, FUNC(apollo_stdio_device::rx_w)); #endif -MACHINE_CONFIG_END +} static DEVICE_INPUT_DEFAULTS_START( apollo_terminal ) DEVICE_INPUT_DEFAULTS( "RS232_TXBAUD", 0xff, RS232_BAUD_9600 ) @@ -1169,17 +1170,18 @@ static DEVICE_INPUT_DEFAULTS_START( apollo_terminal ) DEVICE_INPUT_DEFAULTS_END // for headless machines using a serial console -MACHINE_CONFIG_START(apollo_state::apollo_terminal) +void apollo_state::apollo_terminal(machine_config &config) +{ common(config); - MCFG_APOLLO_SIO_ADD(APOLLO_SIO_TAG, 3.6864_MHz_XTAL) - MCFG_APOLLO_SIO_IRQ_CALLBACK(WRITELINE(*this, apollo_state, sio_irq_handler)) - MCFG_APOLLO_SIO_OUTPORT_CALLBACK(WRITE8(*this, apollo_state, sio_output)) - MCFG_APOLLO_SIO_B_TX_CALLBACK(WRITELINE("rs232", rs232_port_device, write_txd)) + APOLLO_SIO(config, m_sio, 3.6864_MHz_XTAL); + m_sio->irq_cb().set(FUNC(apollo_state::sio_irq_handler)); + m_sio->outport_cb().set(FUNC(apollo_state::sio_output)); + m_sio->b_tx_cb().set("rs232", FUNC(rs232_port_device::write_txd)); rs232_port_device &rs232(RS232_PORT(config, "rs232", default_rs232_devices, "terminal")); - rs232.rxd_handler().set(APOLLO_SIO_TAG, FUNC(apollo_sio::rx_b_w)); + rs232.rxd_handler().set(m_sio, FUNC(apollo_sio::rx_b_w)); rs232.set_option_device_input_defaults("terminal", DEVICE_INPUT_DEFAULTS_NAME(apollo_terminal)); -MACHINE_CONFIG_END +} void apollo_state::init_apollo() { diff --git a/src/mame/machine/asic65.h b/src/mame/machine/asic65.h index 877bcaaf284..441c26ce17b 100644 --- a/src/mame/machine/asic65.h +++ b/src/mame/machine/asic65.h @@ -22,10 +22,16 @@ enum { class asic65_device : public device_t { public: + asic65_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock, uint8_t type) + : asic65_device(mconfig, tag, owner, clock) + { + set_type(type); + } + asic65_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // configuration helpers - void set_type(int type) { m_asic65_type = type; } + void set_type(uint8_t type) { m_asic65_type = type; } void reset_line(int state); DECLARE_WRITE16_MEMBER( data_w ); @@ -77,8 +83,4 @@ private: DECLARE_DEVICE_TYPE(ASIC65, asic65_device) -#define MCFG_ASIC65_ADD(_tag, _type) \ - MCFG_DEVICE_ADD(_tag, ASIC65, 0) \ - downcast(*device).set_type(_type); - #endif // MAME_MACHINE_ASIC65_H diff --git a/src/mame/machine/igs025.h b/src/mame/machine/igs025.h index 30e0c911ad8..6c00548d8e3 100644 --- a/src/mame/machine/igs025.h +++ b/src/mame/machine/igs025.h @@ -9,9 +9,6 @@ // used to connect the 022 typedef device_delegate igs025_execute_external; -#define MCFG_IGS025_SET_EXTERNAL_EXECUTE( _class, _method) \ - downcast(*device).set_external_cb(igs025_execute_external(&_class::_method, #_class "::" #_method, nullptr, (_class *)nullptr)); - class igs025_device : public device_t { public: @@ -23,7 +20,7 @@ public: uint32_t m_kb_game_id; uint32_t m_kb_region; - template void set_external_cb(Object &&newcb) { m_execute_external = std::forward(newcb); } + template void set_external_cb(T &&... args) { m_execute_external = igs025_execute_external(std::forward(args)...); } DECLARE_WRITE16_MEMBER( olds_w ); DECLARE_WRITE16_MEMBER( drgw2_d80000_protection_w ); diff --git a/src/mame/machine/mackbd.h b/src/mame/machine/mackbd.h index f91d6a14d00..ec6f7a061dc 100644 --- a/src/mame/machine/mackbd.h +++ b/src/mame/machine/mackbd.h @@ -6,26 +6,6 @@ #pragma once - -//************************************************************************** -// INTERFACE CONFIGURATION MACROS -//************************************************************************** - -#define MCFG_MACKBD_ADD(_tag) \ - MCFG_DEVICE_ADD(_tag, MACKBD, 0) - -#define MCFG_MACKBD_REPLACE(_tag) \ - MCFG_DEVICE_REPLACE(_tag, MACKBD, 0) - -#define MCFG_MACKBD_REMOVE(_tag) \ - MCFG_DEVICE_REMOVE(_tag) - -#define MCFG_MACKBD_CLKOUT_HANDLER(_devcb) \ - devcb = downcast(*device).set_clkout_handler(DEVCB_##_devcb); - -#define MCFG_MACKBD_DATAOUT_HANDLER(_devcb) \ - downcast(*device).set_dataout_handler(DEVCB_##_devcb); - //************************************************************************** // TYPE DEFINITIONS //************************************************************************** @@ -36,8 +16,6 @@ class mackbd_device : public device_t { public: // config helper - template devcb_base &set_clkout_handler(Object &&cb) { return m_clkout_handler.set_callback(std::forward(cb)); } - template devcb_base &set_dataout_handler(Object &&cb) { return m_dataout_handler.set_callback(std::forward(cb)); } auto clkout_handler() { return m_clkout_handler.bind(); } auto dataout_handler() { return m_dataout_handler.bind(); } diff --git a/src/mame/machine/macrtc.h b/src/mame/machine/macrtc.h index 01fba185e20..df8dfce0ff1 100644 --- a/src/mame/machine/macrtc.h +++ b/src/mame/machine/macrtc.h @@ -15,15 +15,6 @@ #include "dirtc.h" -//************************************************************************** -// INTERFACE CONFIGURATION MACROS -//************************************************************************** - -#define MCFG_RTC3430042_ADD(_tag, _clock) \ - MCFG_DEVICE_ADD(_tag, RTC3430042, _clock) - - - //************************************************************************** // TYPE DEFINITIONS //************************************************************************** diff --git a/src/mame/machine/mega32x.h b/src/mame/machine/mega32x.h index ed68d3e4d87..e8dc32e465e 100644 --- a/src/mame/machine/mega32x.h +++ b/src/mame/machine/mega32x.h @@ -31,7 +31,7 @@ public: } // configuration - void set_palette_tag(const char *tag) { m_palette.set_tag(tag); } + template void set_palette_tag(T &&tag) { m_palette.set_tag(std::forward(tag)); } DECLARE_READ32_MEMBER( _32x_sh2_master_4000_common_4002_r ); DECLARE_READ32_MEMBER( _32x_sh2_slave_4000_common_4002_r ); @@ -247,7 +247,4 @@ protected: DECLARE_DEVICE_TYPE(SEGA_32X_NTSC, sega_32x_ntsc_device) DECLARE_DEVICE_TYPE(SEGA_32X_PAL, sega_32x_pal_device) -#define MCFG_SEGA_32X_PALETTE(_palette_tag) \ - downcast(*device).set_palette_tag(_palette_tag); - #endif // MAME_MACHINE_MEGA32X_H diff --git a/src/mame/machine/namco06.h b/src/mame/machine/namco06.h index bce93495248..f3bc2db42c2 100644 --- a/src/mame/machine/namco06.h +++ b/src/mame/machine/namco06.h @@ -6,74 +6,19 @@ #pragma once -struct namco_06xx_config -{ - const char *nmicpu; - const char *chip0; - const char *chip1; - const char *chip2; - const char *chip3; -}; - - -#define MCFG_NAMCO_06XX_ADD(_tag, _clock) \ - MCFG_DEVICE_ADD(_tag, NAMCO_06XX, _clock) - -#define MCFG_NAMCO_06XX_MAINCPU(_tag) \ - downcast(*device).set_maincpu(_tag); - -#define MCFG_NAMCO_06XX_READ_0_CB(_devcb) \ - downcast(*device).set_read_callback<0>(DEVCB_##_devcb); - -#define MCFG_NAMCO_06XX_READ_1_CB(_devcb) \ - downcast(*device).set_read_callback<1>(DEVCB_##_devcb); - -#define MCFG_NAMCO_06XX_READ_2_CB(_devcb) \ - downcast(*device).set_read_callback<2>(DEVCB_##_devcb); - -#define MCFG_NAMCO_06XX_READ_3_CB(_devcb) \ - downcast(*device).set_read_callback<3>(DEVCB_##_devcb); - - -#define MCFG_NAMCO_06XX_READ_REQUEST_0_CB(_devcb) \ - downcast(*device).set_read_request_callback<0>(DEVCB_##_devcb); - -#define MCFG_NAMCO_06XX_READ_REQUEST_1_CB(_devcb) \ - downcast(*device).set_read_request_callback<1>(DEVCB_##_devcb); - -#define MCFG_NAMCO_06XX_READ_REQUEST_2_CB(_devcb) \ - downcast(*device).set_read_request_callback<2>(DEVCB_##_devcb); - -#define MCFG_NAMCO_06XX_READ_REQUEST_3_CB(_devcb) \ - downcast(*device).set_read_request_callback<3>(DEVCB_##_devcb); - - -#define MCFG_NAMCO_06XX_WRITE_0_CB(_devcb) \ - downcast(*device).set_write_callback<0>(DEVCB_##_devcb); - -#define MCFG_NAMCO_06XX_WRITE_1_CB(_devcb) \ - downcast(*device).set_write_callback<1>(DEVCB_##_devcb); - -#define MCFG_NAMCO_06XX_WRITE_2_CB(_devcb) \ - downcast(*device).set_write_callback<2>(DEVCB_##_devcb); - -#define MCFG_NAMCO_06XX_WRITE_3_CB(_devcb) \ - downcast(*device).set_write_callback<3>(DEVCB_##_devcb); - - /* device get info callback */ class namco_06xx_device : public device_t { public: namco_06xx_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - void set_maincpu(const char *tag) { m_nmicpu.set_tag(tag); } + template void set_maincpu(T &&tag) { m_nmicpu.set_tag(std::forward(tag)); } - template devcb_base &set_read_callback(Object &&cb) { return m_read[N].set_callback(std::forward(cb)); } + template auto read_callback() { return m_read[N].bind(); } - template devcb_base &set_read_request_callback(Object &&cb) { return m_readreq[N].set_callback(std::forward(cb)); } + template auto read_request_callback() { return m_readreq[N].bind(); } - template devcb_base &set_write_callback(Object &&cb) { return m_write[N].set_callback(std::forward(cb)); } + template auto write_callback() { return m_write[N].bind(); } DECLARE_READ8_MEMBER( data_r ); DECLARE_WRITE8_MEMBER( data_w ); diff --git a/src/mame/machine/namco51.h b/src/mame/machine/namco51.h index 0ee64727137..67eafc3a026 100644 --- a/src/mame/machine/namco51.h +++ b/src/mame/machine/namco51.h @@ -8,38 +8,12 @@ #include "cpu/mb88xx/mb88xx.h" -#define MCFG_NAMCO_51XX_ADD(_tag, _clock) \ - MCFG_DEVICE_ADD(_tag, NAMCO_51XX, _clock) - -#define MCFG_NAMCO_51XX_SCREEN(screen_tag) \ - downcast(*device).set_screen_tag(screen_tag); - -#define MCFG_NAMCO_51XX_INPUT_0_CB(_devcb) \ - downcast(*device).set_input_callback<0>(DEVCB_##_devcb); - -#define MCFG_NAMCO_51XX_INPUT_1_CB(_devcb) \ - downcast(*device).set_input_callback<1>(DEVCB_##_devcb); - -#define MCFG_NAMCO_51XX_INPUT_2_CB(_devcb) \ - downcast(*device).set_input_callback<2>(DEVCB_##_devcb); - -#define MCFG_NAMCO_51XX_INPUT_3_CB(_devcb) \ - downcast(*device).set_input_callback<3>(DEVCB_##_devcb); - -#define MCFG_NAMCO_51XX_OUTPUT_0_CB(_devcb) \ - downcast(*device).set_output_callback<0>(DEVCB_##_devcb); - -#define MCFG_NAMCO_51XX_OUTPUT_1_CB(_devcb) \ - downcast(*device).set_output_callback<1>(DEVCB_##_devcb); - class namco_51xx_device : public device_t { public: namco_51xx_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); template void set_screen_tag(T &&tag) { m_screen.set_tag(std::forward(tag)); } - template devcb_base &set_input_callback(Object &&cb) { return m_in[N].set_callback(std::forward(cb)); } - template devcb_base &set_output_callback(Object &&cb) { return m_out[N].set_callback(std::forward(cb)); } template auto input_callback() { return m_in[N].bind(); } template auto output_callback() { return m_out[N].bind(); } diff --git a/src/mame/machine/namco62.h b/src/mame/machine/namco62.h index 5a2778ec572..7a6f5dae463 100644 --- a/src/mame/machine/namco62.h +++ b/src/mame/machine/namco62.h @@ -5,36 +5,14 @@ #include "cpu/mb88xx/mb88xx.h" -#define MCFG_NAMCO_62XX_ADD(_tag, _clock) \ - MCFG_DEVICE_ADD(_tag, NAMCO_62XX, _clock) - -#define MCFG_NAMCO_62XX_INPUT_0_CB(_devcb) \ - downcast(*device).set_input_callback<0>(DEVCB_##_devcb); - -#define MCFG_NAMCO_62XX_INPUT_1_CB(_devcb) \ - downcast(*device).set_input_callback<1>(DEVCB_##_devcb); - -#define MCFG_NAMCO_62XX_INPUT_2_CB(_devcb) \ - downcast(*device).set_input_callback<2>(DEVCB_##_devcb); - -#define MCFG_NAMCO_62XX_INPUT_3_CB(_devcb) \ - downcast(*device).set_input_callback<3>(DEVCB_##_devcb); - -#define MCFG_NAMCO_62XX_OUTPUT_0_CB(_devcb) \ - downcast(*device).set_output_callback<0>(DEVCB_##_devcb); - -#define MCFG_NAMCO_62XX_OUTPUT_1_CB(_devcb) \ - downcast(*device).set_output_callback<1>(DEVCB_##_devcb); - - class namco_62xx_device : public device_t { public: namco_62xx_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template devcb_base &set_input_callback(Object &&cb) { return m_in[N].set_callback(std::forward(cb)); } + template auto input_callback() { return m_in[N].bind(); } - template devcb_base &set_output_callback(Object &&cb) { return m_out[N].set_callback(std::forward(cb)); } + template auto output_callback() { return m_out[N].bind(); } protected: // device-level overrides diff --git a/src/mame/machine/namco_settings.h b/src/mame/machine/namco_settings.h index bc25f7db48e..f41166a6610 100644 --- a/src/mame/machine/namco_settings.h +++ b/src/mame/machine/namco_settings.h @@ -8,9 +8,6 @@ #pragma once -#define MCFG_NAMCO_SETTINGS_ADD(_tag) \ - MCFG_DEVICE_ADD(_tag, NAMCO_SETTINGS, 0) - class namco_settings_device : public device_t { public: namco_settings_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); diff --git a/src/mame/machine/namcoio.h b/src/mame/machine/namcoio.h index b788fd452a6..7f92e741043 100644 --- a/src/mame/machine/namcoio.h +++ b/src/mame/machine/namcoio.h @@ -11,8 +11,6 @@ class namcoio_device : public device_t { public: - template devcb_base &set_in_callback(Object &&cb) { return m_in_cb[N].set_callback(std::forward(cb)); } - template devcb_base &set_out_callback(Object &&cb) { return m_out_cb[N].set_callback(std::forward(cb)); } template auto in_callback() { return m_in_cb[N].bind(); } template auto out_callback() { return m_out_cb[N].bind(); } @@ -85,64 +83,4 @@ DECLARE_DEVICE_TYPE(NAMCO_56XX, namco56xx_device) DECLARE_DEVICE_TYPE(NAMCO_58XX, namco58xx_device) DECLARE_DEVICE_TYPE(NAMCO_59XX, namco59xx_device) -/*************************************************************************** - DEVICE CONFIGURATION MACROS -***************************************************************************/ - -#define MCFG_NAMCO56XX_IN_0_CB(_devcb) \ - downcast(*device).set_in_callback<0>(DEVCB_##_devcb); - -#define MCFG_NAMCO56XX_IN_1_CB(_devcb) \ - downcast(*device).set_in_callback<1>(DEVCB_##_devcb); - -#define MCFG_NAMCO56XX_IN_2_CB(_devcb) \ - downcast(*device).set_in_callback<2>(DEVCB_##_devcb); - -#define MCFG_NAMCO56XX_IN_3_CB(_devcb) \ - downcast(*device).set_in_callback<3>(DEVCB_##_devcb); - -#define MCFG_NAMCO56XX_OUT_0_CB(_devcb) \ - downcast(*device).set_out_callback<0>(DEVCB_##_devcb); - -#define MCFG_NAMCO56XX_OUT_1_CB(_devcb) \ - downcast(*device).set_out_callback<1>(DEVCB_##_devcb); - - -#define MCFG_NAMCO58XX_IN_0_CB(_devcb) \ - downcast(*device).set_in_callback<0>(DEVCB_##_devcb); - -#define MCFG_NAMCO58XX_IN_1_CB(_devcb) \ - downcast(*device).set_in_callback<1>(DEVCB_##_devcb); - -#define MCFG_NAMCO58XX_IN_2_CB(_devcb) \ - downcast(*device).set_in_callback<2>(DEVCB_##_devcb); - -#define MCFG_NAMCO58XX_IN_3_CB(_devcb) \ - downcast(*device).set_in_callback<3>(DEVCB_##_devcb); - -#define MCFG_NAMCO58XX_OUT_0_CB(_devcb) \ - downcast(*device).set_out_callback<0>(DEVCB_##_devcb); - -#define MCFG_NAMCO58XX_OUT_1_CB(_devcb) \ - downcast(*device).set_out_callback<1>(DEVCB_##_devcb); - - -#define MCFG_NAMCO59XX_IN_0_CB(_devcb) \ - downcast(*device).set_in_callback<0>(DEVCB_##_devcb); - -#define MCFG_NAMCO59XX_IN_1_CB(_devcb) \ - downcast(*device).set_in_callback<1>(DEVCB_##_devcb); - -#define MCFG_NAMCO59XX_IN_2_CB(_devcb) \ - downcast(*device).set_in_callback<2>(DEVCB_##_devcb); - -#define MCFG_NAMCO59XX_IN_3_CB(_devcb) \ - downcast(*device).set_in_callback<3>(DEVCB_##_devcb); - -#define MCFG_NAMCO59XX_OUT_0_CB(_devcb) \ - downcast(*device).set_out_callback<0>(DEVCB_##_devcb); - -#define MCFG_NAMCO59XX_OUT_1_CB(_devcb) \ - downcast(*device).set_out_callback<1>(DEVCB_##_devcb); - #endif // MAME_MACHINE_NAMCOIO_H diff --git a/src/mame/machine/nb1412m2.h b/src/mame/machine/nb1412m2.h index ae57cf2a1bb..e53ec036148 100644 --- a/src/mame/machine/nb1412m2.h +++ b/src/mame/machine/nb1412m2.h @@ -12,18 +12,6 @@ Nichibutsu 1412M2 device emulation #pragma once - -//************************************************************************** -// INTERFACE CONFIGURATION MACROS -//************************************************************************** - -#define MCFG_NB1412M2_ADD(tag, freq) \ - MCFG_DEVICE_ADD((tag), NB1412M2, (freq)) - -#define MCFG_NB1412M2_DAC_CB(_devcb) \ - downcast(*device).set_dac_callback(DEVCB_##_devcb); - - //************************************************************************** // TYPE DEFINITIONS //************************************************************************** @@ -53,8 +41,7 @@ public: DECLARE_WRITE8_MEMBER( dac_address_w ); DECLARE_WRITE8_MEMBER( dac_timer_w ); - template devcb_base &set_dac_callback(Object &&cb) - { return m_dac_cb.set_callback(std::forward(cb)); } + auto dac_callback() { return m_dac_cb.bind(); } void nb1412m2_map(address_map &map); diff --git a/src/mame/machine/nextkbd.h b/src/mame/machine/nextkbd.h index 7ec98122c56..ebf3e6615a4 100644 --- a/src/mame/machine/nextkbd.h +++ b/src/mame/machine/nextkbd.h @@ -6,22 +6,13 @@ #pragma once -#define MCFG_NEXTKBD_INT_CHANGE_CALLBACK(_write) \ - downcast(*device).set_int_change_wr_callback(DEVCB_##_write); - -#define MCFG_NEXTKBD_INT_POWER_CALLBACK(_write) \ - downcast(*device).set_int_power_wr_callback(DEVCB_##_write); - -#define MCFG_NEXTKBD_INT_NMI_CALLBACK(_write) \ - downcast(*device).set_int_nmi_wr_callback(DEVCB_##_write); - class nextkbd_device : public device_t { public: nextkbd_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template devcb_base &set_int_change_wr_callback(Object &&cb) { return int_change_cb.set_callback(std::forward(cb)); } - template devcb_base &set_int_power_wr_callback(Object &&cb) { return int_power_cb.set_callback(std::forward(cb)); } - template devcb_base &set_int_nmi_wr_callback(Object &&cb) { return int_nmi_cb.set_callback(std::forward(cb)); } + auto int_change_wr_callback() { return int_change_cb.bind(); } + auto int_power_wr_callback() { return int_power_cb.bind(); } + auto int_nmi_wr_callback() { return int_nmi_cb.bind(); } void amap(address_map &map); diff --git a/src/mame/machine/nextmo.h b/src/mame/machine/nextmo.h index af88f690f9d..543b37a3022 100644 --- a/src/mame/machine/nextmo.h +++ b/src/mame/machine/nextmo.h @@ -5,19 +5,14 @@ #pragma once -#define MCFG_NEXTMO_IRQ_CALLBACK(_write) \ - downcast(*device).set_irq_wr_callback(DEVCB_##_write); - -#define MCFG_NEXTMO_DRQ_CALLBACK(_write) \ - downcast(*device).set_drq_wr_callback(DEVCB_##_write); class nextmo_device : public device_t { public: nextmo_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template devcb_base &set_irq_wr_callback(Object &&cb) { return irq_cb.set_callback(std::forward(cb)); } - template devcb_base &set_drq_wr_callback(Object &&cb) { return drq_cb.set_callback(std::forward(cb)); } + auto irq_wr_callback() { return irq_cb.bind(); } + auto drq_wr_callback() { return drq_cb.bind(); } void map(address_map &map); diff --git a/src/mame/machine/pcd_kbd.h b/src/mame/machine/pcd_kbd.h index 2fce6e8e31e..46c1de5b739 100644 --- a/src/mame/machine/pcd_kbd.h +++ b/src/mame/machine/pcd_kbd.h @@ -5,15 +5,13 @@ #pragma once -#define MCFG_PCD_KEYBOARD_OUT_TX_HANDLER(_devcb) \ - downcast(*device).set_out_tx_handler(DEVCB_##_devcb); class pcd_keyboard_device : public device_t { public: pcd_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template devcb_base &set_out_tx_handler(Object &&cb) { return m_out_tx_handler.set_callback(std::forward(cb)); } + auto out_tx_handler() { return m_out_tx_handler.bind(); } DECLARE_WRITE_LINE_MEMBER( t0_w ); diff --git a/src/mame/machine/pce220_ser.h b/src/mame/machine/pce220_ser.h index f8ff2257e58..d80b31a7e38 100644 --- a/src/mame/machine/pce220_ser.h +++ b/src/mame/machine/pce220_ser.h @@ -89,7 +89,4 @@ DECLARE_DEVICE_TYPE(PCE220SERIAL, pce220_serial_device) ***************************************************************************/ #define PCE220SERIAL_TAG "serial" -#define MCFG_PCE220_SERIAL_ADD(_tag) \ - MCFG_DEVICE_ADD(_tag, PCE220SERIAL, 0) - #endif // MAME_MACHINE_PCE220_SER_H diff --git a/src/mame/machine/pce_cd.h b/src/mame/machine/pce_cd.h index c256aec9f14..7932ff88e6e 100644 --- a/src/mame/machine/pce_cd.h +++ b/src/mame/machine/pce_cd.h @@ -178,13 +178,4 @@ private: // device type definition DECLARE_DEVICE_TYPE(PCE_CD, pce_cd_device) - -/*************************************************************************** - DEVICE CONFIGURATION MACROS - ***************************************************************************/ - -#define MCFG_PCE_CD_ADD(_tag) \ - MCFG_DEVICE_ADD(_tag, PCE_CD, 0) - - #endif // MAME_MACHINE_PCE_CD_H diff --git a/src/mame/machine/pgm2_memcard.h b/src/mame/machine/pgm2_memcard.h index cf1dac556f3..6068e7c4482 100644 --- a/src/mame/machine/pgm2_memcard.h +++ b/src/mame/machine/pgm2_memcard.h @@ -14,13 +14,6 @@ #pragma once -//************************************************************************** -// INTERFACE CONFIGURATION MACROS -//************************************************************************** - -#define MCFG_PGM2_MEMCARD_ADD(_tag) \ - MCFG_DEVICE_ADD(_tag, PGM2_MEMCARD, 0) - /*************************************************************************** FUNCTION PROTOTYPES ***************************************************************************/ diff --git a/src/mame/machine/pgmprot_igs025_igs012.cpp b/src/mame/machine/pgmprot_igs025_igs012.cpp index 617b6c70f11..a188ce5bc95 100644 --- a/src/mame/machine/pgmprot_igs025_igs012.cpp +++ b/src/mame/machine/pgmprot_igs025_igs012.cpp @@ -139,8 +139,8 @@ MACHINE_CONFIG_START(pgm_012_025_state::pgm_012_025_drgw2) MCFG_DEVICE_MODIFY("maincpu") MCFG_DEVICE_PROGRAM_MAP(drgw2_mem) - MCFG_DEVICE_ADD("igs025", IGS025, 0) - //MCFG_IGS025_SET_EXTERNAL_EXECUTE( pgm_022_025_state, igs025_to_igs012_callback ) + IGS025(config, m_igs025, 0); + //m_igs025->set_external_cb(FUNC(pgm_022_025_state::igs025_to_igs012_callback), this); MCFG_MACHINE_RESET_OVERRIDE(pgm_012_025_state,drgw2) MACHINE_CONFIG_END diff --git a/src/mame/machine/pgmprot_igs025_igs022.cpp b/src/mame/machine/pgmprot_igs025_igs022.cpp index e1f485ad9cf..1fa7ac4a75e 100644 --- a/src/mame/machine/pgmprot_igs025_igs022.cpp +++ b/src/mame/machine/pgmprot_igs025_igs022.cpp @@ -381,10 +381,10 @@ MACHINE_CONFIG_START(pgm_022_025_state::pgm_022_025) MCFG_DEVICE_MODIFY("maincpu") MCFG_DEVICE_PROGRAM_MAP(killbld_mem) - MCFG_DEVICE_ADD("igs025", IGS025, 0) - MCFG_IGS025_SET_EXTERNAL_EXECUTE( pgm_022_025_state, igs025_to_igs022_callback ) + IGS025(config, m_igs025, 0); + m_igs025->set_external_cb(FUNC(pgm_022_025_state::igs025_to_igs022_callback), this); - MCFG_DEVICE_ADD("igs022", IGS022, 0) + IGS022(config, m_igs022, 0); MACHINE_CONFIG_END diff --git a/src/mame/machine/pgmprot_igs025_igs028.cpp b/src/mame/machine/pgmprot_igs025_igs028.cpp index 1577a627897..cc95946766d 100644 --- a/src/mame/machine/pgmprot_igs025_igs028.cpp +++ b/src/mame/machine/pgmprot_igs025_igs028.cpp @@ -192,10 +192,10 @@ MACHINE_CONFIG_START(pgm_028_025_state::pgm_028_025_ol) MCFG_DEVICE_MODIFY("maincpu") MCFG_DEVICE_PROGRAM_MAP(olds_mem) - MCFG_DEVICE_ADD("igs025", IGS025, 0) - MCFG_IGS025_SET_EXTERNAL_EXECUTE( pgm_028_025_state, igs025_to_igs028_callback ) + IGS025(config, m_igs025, 0); + m_igs025->set_external_cb(FUNC(pgm_028_025_state::igs025_to_igs028_callback), this); - MCFG_DEVICE_ADD("igs028", IGS028, 0) + IGS028(config, m_igs028, 0); MCFG_MACHINE_RESET_OVERRIDE(pgm_028_025_state,olds) MACHINE_CONFIG_END diff --git a/src/mame/machine/psxcd.h b/src/mame/machine/psxcd.h index 2a32e094ff9..1c9b0f6f110 100644 --- a/src/mame/machine/psxcd.h +++ b/src/mame/machine/psxcd.h @@ -8,12 +8,6 @@ #include "imagedev/chd_cd.h" #include "sound/spu.h" -//************************************************************************** -// INTERFACE CONFIGURATION MACROS -//************************************************************************** - -#define MCFG_PSXCD_IRQ_HANDLER(_devcb) \ - downcast(*device).set_irq_handler(DEVCB_##_devcb); class psxcd_device : public cdrom_image_device { @@ -29,7 +23,7 @@ public: psxcd_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // configuration helpers - template devcb_base &set_irq_handler(Object &&cb) { return m_irq_handler.set_callback(std::forward(cb)); } + auto irq_handler() { return m_irq_handler.bind(); } virtual image_init_result call_load() override; virtual void call_unload() override; diff --git a/src/mame/machine/qimi.h b/src/mame/machine/qimi.h index 0ebfad9a8a5..1c4f89dff55 100644 --- a/src/mame/machine/qimi.h +++ b/src/mame/machine/qimi.h @@ -12,17 +12,6 @@ #pragma once - - -//************************************************************************** -// INTERFACE CONFIGURATION MACROS -//************************************************************************** - -#define MCFG_QIMI_EXTINT_CALLBACK(_write) \ - downcast(*device).set_exting_wr_callback(DEVCB_##_write); - - - //************************************************************************** // TYPE DEFINITIONS //************************************************************************** @@ -35,7 +24,7 @@ public: // construction/destruction qimi_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template devcb_base &set_exting_wr_callback(Object &&cb) { return m_write_extint.set_callback(std::forward(cb)); } + auto extint_wr_callback() { return m_write_extint.bind(); } // optional information overrides virtual ioport_constructor device_input_ports() const override; diff --git a/src/mame/machine/rad_eu3a05gpio.h b/src/mame/machine/rad_eu3a05gpio.h index 329ac588940..b7d55ad2ef4 100644 --- a/src/mame/machine/rad_eu3a05gpio.h +++ b/src/mame/machine/rad_eu3a05gpio.h @@ -4,24 +4,15 @@ #ifndef MAME_AUDIO_RAD_EU3A05GPIO_H #define MAME_AUDIO_RAD_EU3A05GPIO_H -#define MCFG_RADICA6502_GPIO_READ_PORT0_CB(_devcb) \ - downcast(*device).set_gpio_read_0_callback(DEVCB_##_devcb); - -#define MCFG_RADICA6502_GPIO_READ_PORT1_CB(_devcb) \ - downcast(*device).set_gpio_read_1_callback(DEVCB_##_devcb); - -#define MCFG_RADICA6502_GPIO_READ_PORT2_CB(_devcb) \ - downcast(*device).set_gpio_read_2_callback(DEVCB_##_devcb); - class radica6502_gpio_device : public device_t { public: radica6502_gpio_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template devcb_base &set_gpio_read_0_callback(Object &&cb) { return m_space_read0_cb.set_callback(std::forward(cb)); } - template devcb_base &set_gpio_read_1_callback(Object &&cb) { return m_space_read1_cb.set_callback(std::forward(cb)); } - template devcb_base &set_gpio_read_2_callback(Object &&cb) { return m_space_read2_cb.set_callback(std::forward(cb)); } + auto read_0_callback() { return m_space_read0_cb.bind(); } + auto read_1_callback() { return m_space_read1_cb.bind(); } + auto read_2_callback() { return m_space_read2_cb.bind(); } DECLARE_READ8_MEMBER(gpio_r); DECLARE_WRITE8_MEMBER(gpio_w); diff --git a/src/mame/machine/tosh1000_bram.h b/src/mame/machine/tosh1000_bram.h index 9387b3e65c8..56673f68113 100644 --- a/src/mame/machine/tosh1000_bram.h +++ b/src/mame/machine/tosh1000_bram.h @@ -13,13 +13,6 @@ #pragma once -/*************************************************************************** - DEVICE CONFIGURATION MACROS -***************************************************************************/ - -#define MCFG_TOSH1000_BRAM_ADD(_tag) \ - MCFG_DEVICE_ADD(_tag, TOSH1000_BRAM, 0) - // ======================> tosh1000_bram_device diff --git a/src/mame/machine/upd65031.h b/src/mame/machine/upd65031.h index 490772f4777..e6c1b6d927c 100644 --- a/src/mame/machine/upd65031.h +++ b/src/mame/machine/upd65031.h @@ -12,30 +12,6 @@ #pragma once - -//************************************************************************** -// INTERFACE CONFIGURATION MACROS -//************************************************************************** - -#define MCFG_UPD65031_KB_CALLBACK(_read) \ - downcast(*device).set_kb_rd_callback(DEVCB_##_read); - -#define MCFG_UPD65031_INT_CALLBACK(_write) \ - downcast(*device).set_int_wr_callback(DEVCB_##_write); - -#define MCFG_UPD65031_NMI_CALLBACK(_write) \ - downcast(*device).set_nmi_wr_callback(DEVCB_##_write); - -#define MCFG_UPD65031_SPKR_CALLBACK(_write) \ - downcast(*device).set_spkr_wr_callback(DEVCB_##_write); - -#define MCFG_UPD65031_SCR_UPDATE_CB(_class, _method) \ - downcast(*device).set_screen_update_callback(upd65031_screen_update_delegate(&_class::_method, #_class "::" #_method, this)); - -#define MCFG_UPD65031_MEM_UPDATE_CB(_class, _method) \ - downcast(*device).set_memory_update_callback(upd65031_memory_update_delegate(&_class::_method, #_class "::" #_method, this)); - - //************************************************************************** // TYPE DEFINITIONS //************************************************************************** @@ -55,17 +31,13 @@ public: // construction/destruction upd65031_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template devcb_base &set_kb_rd_callback(Object &&cb) { return m_read_kb.set_callback(std::forward(cb)); } - template devcb_base &set_int_wr_callback(Object &&cb) { return m_write_int.set_callback(std::forward(cb)); } - template devcb_base &set_nmi_wr_callback(Object &&cb) { return m_write_nmi.set_callback(std::forward(cb)); } - template devcb_base &set_spkr_wr_callback(Object &&cb) { return m_write_spkr.set_callback(std::forward(cb)); } auto kb_rd_callback() { return m_read_kb.bind(); } auto int_wr_callback() { return m_write_int.bind(); } auto nmi_wr_callback() { return m_write_nmi.bind(); } auto spkr_wr_callback() { return m_write_spkr.bind(); } - template void set_screen_update_callback(Object &&cb) { m_screen_update_cb = std::forward(cb); } - template void set_memory_update_callback(Object &&cb) { m_out_mem_cb = std::forward(cb); } + template void set_screen_update_callback(T &&... args) { m_screen_update_cb = upd65031_screen_update_delegate(std::forward(args)...); } + template void set_memory_update_callback(T &&... args) { m_out_mem_cb = upd65031_memory_update_delegate(std::forward(args)...); } DECLARE_READ8_MEMBER( read ); DECLARE_WRITE8_MEMBER( write ); diff --git a/src/mame/machine/v1050kb.h b/src/mame/machine/v1050kb.h index a36280bb425..349766a08e4 100644 --- a/src/mame/machine/v1050kb.h +++ b/src/mame/machine/v1050kb.h @@ -15,16 +15,6 @@ #include "sound/discrete.h" - -//************************************************************************** -// INTERFACE CONFIGURATION MACROS -//************************************************************************** - -#define MCFG_V1050_KEYBOARD_OUT_TX_HANDLER(_devcb) \ - downcast(*device).set_out_tx_handler(DEVCB_##_devcb); - - - //************************************************************************** // TYPE DEFINITIONS //************************************************************************** @@ -40,7 +30,7 @@ public: // device flags static constexpr feature_type imperfect_features() { return feature::KEYBOARD; } - template devcb_base &set_out_tx_handler(Object &&cb) { return m_out_tx_handler.set_callback(std::forward(cb)); } + auto out_tx_handler() { return m_out_tx_handler.bind(); } DECLARE_WRITE_LINE_MEMBER( si_w ); diff --git a/src/mame/machine/x68k_hdc.h b/src/mame/machine/x68k_hdc.h index 2c499d7e4c8..728043447c3 100644 --- a/src/mame/machine/x68k_hdc.h +++ b/src/mame/machine/x68k_hdc.h @@ -133,7 +133,4 @@ private: // device type definition DECLARE_DEVICE_TYPE(X68KHDC, x68k_hdc_image_device) -#define MCFG_X68KHDC_ADD(_tag) \ - MCFG_DEVICE_ADD(_tag, X68KHDC, 0) - #endif // MAME_MACHINE_X68K_HDC_H diff --git a/src/mame/machine/x820kb.h b/src/mame/machine/x820kb.h index e3000fe415a..3e6fe6283ee 100644 --- a/src/mame/machine/x820kb.h +++ b/src/mame/machine/x820kb.h @@ -14,16 +14,6 @@ #include "cpu/mcs48/mcs48.h" - -//************************************************************************** -// INTERFACE CONFIGURATION MACROS -//************************************************************************** - -#define MCFG_XEROX_820_KEYBOARD_KBSTB_CALLBACK(_devcb) \ - downcast(*device).set_kbstb_wr_callback(DEVCB_##_devcb); - - - //************************************************************************** // TYPE DEFINITIONS //************************************************************************** @@ -36,7 +26,7 @@ public: // construction/destruction xerox_820_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template devcb_base &set_kbstb_wr_callback(Object &&cb) { return m_kbstb_cb.set_callback(std::forward(cb)); } + auto kbstb_wr_callback() { return m_kbstb_cb.bind(); } uint8_t read() { return m_bus; } diff --git a/src/mame/video/apollo.cpp b/src/mame/video/apollo.cpp index 08cae067368..b75ecfeaab3 100644 --- a/src/mame/video/apollo.cpp +++ b/src/mame/video/apollo.cpp @@ -1712,19 +1712,19 @@ void apollo_graphics_15i::register_vblank_callback() MACHINE DRIVERS ***************************************************************************/ -MACHINE_CONFIG_START(apollo_state::apollo_graphics) +MACHINE_CONFIG_START(apollo_graphics_15i::device_add_mconfig) config.set_default_layout(layout_apollo_15i); - MCFG_SCREEN_ADD(VIDEO_SCREEN_TAG, RASTER) + MCFG_SCREEN_ADD(m_screen, RASTER) MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK) MCFG_SCREEN_RAW_PARAMS(68000000, 1346, 0, 1024, 841, 0, 800) - MCFG_SCREEN_UPDATE_DEVICE(APOLLO_SCREEN_TAG, apollo_graphics_15i, screen_update) + MCFG_SCREEN_UPDATE_DEVICE(DEVICE_SELF, apollo_graphics_15i, screen_update) MACHINE_CONFIG_END DEFINE_DEVICE_TYPE(APOLLO_GRAPHICS, apollo_graphics_15i, "apollo_graphics_15i", "Apollo Screen") apollo_graphics_15i::apollo_graphics_15i(const machine_config &mconfig,const char *tag, device_t *owner, uint32_t clock) : device_t(mconfig, APOLLO_GRAPHICS, tag, owner, clock), - m_screen(*this, "^" VIDEO_SCREEN_TAG), + m_screen(*this, VIDEO_SCREEN_TAG), m_lut_fifo(nullptr), m_bt458(nullptr) { @@ -1732,7 +1732,7 @@ apollo_graphics_15i::apollo_graphics_15i(const machine_config &mconfig,const cha apollo_graphics_15i::apollo_graphics_15i(const machine_config &mconfig,const char *tag, device_t *owner, uint32_t clock, device_type type) : device_t(mconfig, type, tag, owner, clock), - m_screen(*this, "^" VIDEO_SCREEN_TAG), + m_screen(*this, VIDEO_SCREEN_TAG), m_lut_fifo(nullptr), m_bt458(nullptr) { @@ -1884,14 +1884,14 @@ void apollo_graphics_15i::device_reset() //------------------------------------------------- -MACHINE_CONFIG_START(apollo_state::apollo_mono19i) +MACHINE_CONFIG_START(apollo_graphics_19i::device_add_mconfig) config.set_default_layout(layout_apollo); MCFG_PALETTE_ADD_MONOCHROME("palette") - MCFG_SCREEN_ADD(VIDEO_SCREEN_TAG, RASTER) + MCFG_SCREEN_ADD(m_screen, RASTER) MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK) MCFG_SCREEN_RAW_PARAMS(120000000, 1728, 0, 1280, 1066, 0, 1024) - MCFG_SCREEN_UPDATE_DEVICE(APOLLO_SCREEN_TAG, apollo_graphics_19i, screen_update) - MACHINE_CONFIG_END + MCFG_SCREEN_UPDATE_DEVICE(DEVICE_SELF, apollo_graphics_19i, screen_update) +MACHINE_CONFIG_END DEFINE_DEVICE_TYPE(APOLLO_MONO19I, apollo_graphics_19i, "apollo_graphics_19i", "Apollo 19\" Monochrome Screen") diff --git a/src/mame/video/k053936.h b/src/mame/video/k053936.h index 32bf566e182..e19ce7165d5 100644 --- a/src/mame/video/k053936.h +++ b/src/mame/video/k053936.h @@ -55,10 +55,4 @@ private: DECLARE_DEVICE_TYPE(K053936, k053936_device) -#define MCFG_K053936_WRAP(_wrap) \ - downcast(*device).set_wrap(_wrap); - -#define MCFG_K053936_OFFSETS(_xoffs, _yoffs) \ - downcast(*device).set_offsets(_xoffs, _yoffs); - #endif // MAME_VIDEO_K053936_H -- cgit v1.2.3