summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame')
-rw-r--r--src/mame/audio/atarijsa.cpp9
-rw-r--r--src/mame/drivers/20pacgal.cpp2
-rw-r--r--src/mame/drivers/39in1.cpp2
-rw-r--r--src/mame/drivers/8080bw.cpp2
-rw-r--r--src/mame/drivers/albazg.cpp2
-rw-r--r--src/mame/drivers/apple2e.cpp3
-rw-r--r--src/mame/drivers/arcadecl.cpp3
-rw-r--r--src/mame/drivers/aristmk5.cpp4
-rw-r--r--src/mame/drivers/aristmk6.cpp3
-rw-r--r--src/mame/drivers/artmagic.cpp4
-rw-r--r--src/mame/drivers/asterix.cpp2
-rw-r--r--src/mame/drivers/astrcorp.cpp6
-rw-r--r--src/mame/drivers/atarig1.cpp3
-rw-r--r--src/mame/drivers/atarig42.cpp3
-rw-r--r--src/mame/drivers/atarigt.cpp3
-rw-r--r--src/mame/drivers/atarigx2.cpp3
-rw-r--r--src/mame/drivers/atarisy1.cpp6
-rw-r--r--src/mame/drivers/atarisy2.cpp4
-rw-r--r--src/mame/drivers/atetris.cpp129
-rw-r--r--src/mame/drivers/backfire.cpp2
-rw-r--r--src/mame/drivers/badlands.cpp6
-rw-r--r--src/mame/drivers/badlandsbl.cpp3
-rw-r--r--src/mame/drivers/batman.cpp3
-rw-r--r--src/mame/drivers/beathead.cpp3
-rw-r--r--src/mame/drivers/blstroid.cpp3
-rw-r--r--src/mame/drivers/bpmmicro.cpp13
-rw-r--r--src/mame/drivers/cave.cpp32
-rw-r--r--src/mame/drivers/cbasebal.cpp2
-rw-r--r--src/mame/drivers/cbm2.cpp120
-rw-r--r--src/mame/drivers/centiped.cpp2
-rw-r--r--src/mame/drivers/cps1.cpp16
-rw-r--r--src/mame/drivers/cps2.cpp2
-rw-r--r--src/mame/drivers/cyberbal.cpp150
-rw-r--r--src/mame/drivers/cybstorm.cpp3
-rw-r--r--src/mame/drivers/dcheese.cpp2
-rw-r--r--src/mame/drivers/deco156.cpp4
-rw-r--r--src/mame/drivers/deco32.cpp10
-rw-r--r--src/mame/drivers/deco_mlc.cpp4
-rw-r--r--src/mame/drivers/dkong.cpp26
-rw-r--r--src/mame/drivers/dreambal.cpp2
-rw-r--r--src/mame/drivers/dynamoah.cpp2
-rw-r--r--src/mame/drivers/eolith.cpp6
-rw-r--r--src/mame/drivers/eolith16.cpp2
-rw-r--r--src/mame/drivers/eprom.cpp9
-rw-r--r--src/mame/drivers/esd16.cpp2
-rw-r--r--src/mame/drivers/f-32.cpp12
-rw-r--r--src/mame/drivers/fcrash.cpp8
-rw-r--r--src/mame/drivers/feversoc.cpp2
-rw-r--r--src/mame/drivers/fireball.cpp2
-rw-r--r--src/mame/drivers/fortecar.cpp3
-rw-r--r--src/mame/drivers/fromanc2.cpp6
-rw-r--r--src/mame/drivers/gaelco2.cpp6
-rw-r--r--src/mame/drivers/gaelco3d.cpp2
-rw-r--r--src/mame/drivers/galastrm.cpp2
-rw-r--r--src/mame/drivers/galgames.cpp11
-rw-r--r--src/mame/drivers/galpani2.cpp2
-rw-r--r--src/mame/drivers/galpani3.cpp2
-rw-r--r--src/mame/drivers/gauntlet.cpp6
-rw-r--r--src/mame/drivers/gcpinbal.cpp2
-rw-r--r--src/mame/drivers/gijoe.cpp2
-rw-r--r--src/mame/drivers/groundfx.cpp2
-rw-r--r--src/mame/drivers/gticlub.cpp4
-rw-r--r--src/mame/drivers/gunbustr.cpp2
-rw-r--r--src/mame/drivers/harddriv.cpp7
-rw-r--r--src/mame/drivers/hornet.cpp11
-rw-r--r--src/mame/drivers/indigo.cpp2
-rw-r--r--src/mame/drivers/inufuku.cpp2
-rw-r--r--src/mame/drivers/invqix.cpp3
-rw-r--r--src/mame/drivers/jackpool.cpp2
-rw-r--r--src/mame/drivers/jaguar.cpp2
-rw-r--r--src/mame/drivers/jchan.cpp2
-rw-r--r--src/mame/drivers/jclub2.cpp6
-rw-r--r--src/mame/drivers/joystand.cpp2
-rw-r--r--src/mame/drivers/kaneko16.cpp16
-rw-r--r--src/mame/drivers/kickgoal.cpp6
-rw-r--r--src/mame/drivers/klax.cpp3
-rw-r--r--src/mame/drivers/konamigq.cpp4
-rw-r--r--src/mame/drivers/konamigv.cpp2
-rw-r--r--src/mame/drivers/konamigx.cpp2
-rw-r--r--src/mame/drivers/konendev.cpp2
-rw-r--r--src/mame/drivers/leland.cpp4
-rw-r--r--src/mame/drivers/lethal.cpp2
-rw-r--r--src/mame/drivers/limenko.cpp4
-rw-r--r--src/mame/drivers/lordgun.cpp4
-rw-r--r--src/mame/drivers/mastboy.cpp2
-rw-r--r--src/mame/drivers/metro.cpp6
-rw-r--r--src/mame/drivers/mhavoc.cpp2
-rw-r--r--src/mame/drivers/microterm.cpp6
-rw-r--r--src/mame/drivers/midas.cpp4
-rw-r--r--src/mame/drivers/mirage.cpp2
-rw-r--r--src/mame/drivers/mitchell.cpp8
-rw-r--r--src/mame/drivers/model2.cpp6
-rw-r--r--src/mame/drivers/model3.cpp2
-rw-r--r--src/mame/drivers/moo.cpp4
-rw-r--r--src/mame/drivers/mystwarr.cpp2
-rw-r--r--src/mame/drivers/namcona1.cpp107
-rw-r--r--src/mame/drivers/namconb1.cpp2
-rw-r--r--src/mame/drivers/namcos22.cpp4
-rw-r--r--src/mame/drivers/naomi.cpp5
-rw-r--r--src/mame/drivers/offtwall.cpp3
-rw-r--r--src/mame/drivers/othunder.cpp2
-rw-r--r--src/mame/drivers/overdriv.cpp3
-rw-r--r--src/mame/drivers/pasha2.cpp2
-rw-r--r--src/mame/drivers/photoply.cpp6
-rw-r--r--src/mame/drivers/pirates.cpp2
-rw-r--r--src/mame/drivers/playmark.cpp6
-rw-r--r--src/mame/drivers/plygonet.cpp2
-rw-r--r--src/mame/drivers/pntnpuzl.cpp2
-rw-r--r--src/mame/drivers/policetr.cpp2
-rw-r--r--src/mame/drivers/popeye.cpp2
-rw-r--r--src/mame/drivers/powerbal.cpp3
-rw-r--r--src/mame/drivers/psikyo4.cpp4
-rw-r--r--src/mame/drivers/psikyosh.cpp3
-rw-r--r--src/mame/drivers/pve500.cpp2
-rw-r--r--src/mame/drivers/pzletime.cpp2
-rw-r--r--src/mame/drivers/quizpun2.cpp2
-rw-r--r--src/mame/drivers/r2dx_v33.cpp4
-rw-r--r--src/mame/drivers/rabbit.cpp2
-rw-r--r--src/mame/drivers/rainbow.cpp2
-rw-r--r--src/mame/drivers/rampart.cpp3
-rw-r--r--src/mame/drivers/rbmk.cpp3
-rw-r--r--src/mame/drivers/relief.cpp3
-rw-r--r--src/mame/drivers/rltennis.cpp2
-rw-r--r--src/mame/drivers/rmnimbus.cpp2
-rw-r--r--src/mame/drivers/rungun.cpp2
-rw-r--r--src/mame/drivers/segas32.cpp4
-rw-r--r--src/mame/drivers/segasp.cpp4
-rw-r--r--src/mame/drivers/seibucats.cpp2
-rw-r--r--src/mame/drivers/seibuspi.cpp14
-rw-r--r--src/mame/drivers/seta2.cpp4
-rw-r--r--src/mame/drivers/shuuz.cpp3
-rw-r--r--src/mame/drivers/sigmab98.cpp4
-rw-r--r--src/mame/drivers/simpl156.cpp2
-rw-r--r--src/mame/drivers/simpsons.cpp2
-rw-r--r--src/mame/drivers/skullxbo.cpp3
-rw-r--r--src/mame/drivers/splash.cpp2
-rw-r--r--src/mame/drivers/spool99.cpp2
-rw-r--r--src/mame/drivers/ssv.cpp2
-rw-r--r--src/mame/drivers/stlforce.cpp2
-rw-r--r--src/mame/drivers/stv.cpp10
-rw-r--r--src/mame/drivers/superchs.cpp2
-rw-r--r--src/mame/drivers/taito_b.cpp6
-rw-r--r--src/mame/drivers/taito_f3.cpp118
-rw-r--r--src/mame/drivers/taito_z.cpp3
-rw-r--r--src/mame/drivers/taitojc.cpp2
-rw-r--r--src/mame/drivers/tasman.cpp2
-rw-r--r--src/mame/drivers/tecmosys.cpp2
-rw-r--r--src/mame/drivers/thunderj.cpp3
-rw-r--r--src/mame/drivers/timetrv.cpp2
-rw-r--r--src/mame/drivers/tmmjprd.cpp2
-rw-r--r--src/mame/drivers/tmnt.cpp12
-rw-r--r--src/mame/drivers/toaplan2.cpp4
-rw-r--r--src/mame/drivers/toobin.cpp3
-rw-r--r--src/mame/drivers/tti.cpp3
-rw-r--r--src/mame/drivers/ultrsprt.cpp2
-rw-r--r--src/mame/drivers/undrfire.cpp4
-rw-r--r--src/mame/drivers/unico.cpp2
-rw-r--r--src/mame/drivers/v102.cpp2
-rw-r--r--src/mame/drivers/vamphalf.cpp8
-rw-r--r--src/mame/drivers/vendetta.cpp2
-rw-r--r--src/mame/drivers/vindictr.cpp5
-rw-r--r--src/mame/drivers/wheelfir.cpp2
-rw-r--r--src/mame/drivers/xexex.cpp2
-rw-r--r--src/mame/drivers/xmen.cpp4
-rw-r--r--src/mame/drivers/xorworld.cpp2
-rw-r--r--src/mame/drivers/xybots.cpp7
-rw-r--r--src/mame/drivers/zr107.cpp4
-rw-r--r--src/mame/includes/atetris.h5
-rw-r--r--src/mame/includes/cyberbal.h17
-rw-r--r--src/mame/includes/namcona1.h20
-rw-r--r--src/mame/includes/taito_f3.h4
-rw-r--r--src/mame/machine/atarigen.cpp16
-rw-r--r--src/mame/machine/atarigen.h25
-rw-r--r--src/mame/machine/iteagle_fpga.cpp9
-rw-r--r--src/mame/machine/model1io.cpp2
-rw-r--r--src/mame/machine/model1io2.cpp2
-rw-r--r--src/mame/video/atarimo.h4
-rw-r--r--src/mame/video/cyberbal.cpp24
178 files changed, 710 insertions, 707 deletions
diff --git a/src/mame/audio/atarijsa.cpp b/src/mame/audio/atarijsa.cpp
index 0e58d0db7cc..d40cf12332f 100644
--- a/src/mame/audio/atarijsa.cpp
+++ b/src/mame/audio/atarijsa.cpp
@@ -704,7 +704,8 @@ MACHINE_CONFIG_START(atari_jsa_i_device::device_add_mconfig)
MCFG_DEVICE_PERIODIC_INT_DEVICE("soundcomm", atari_sound_comm_device, sound_irq_gen, JSA_MASTER_CLOCK/4/16/16/14)
// sound hardware
- MCFG_ATARI_SOUND_COMM_ADD("soundcomm", "cpu", WRITELINE(*this, atari_jsa_base_device, main_int_write_line))
+ ATARI_SOUND_COMM(config, "soundcomm", "cpu")
+ .int_callback().set(FUNC(atari_jsa_base_device::main_int_write_line));
MCFG_DEVICE_ADD("ym2151", YM2151, JSA_MASTER_CLOCK)
MCFG_YM2151_IRQ_HANDLER(WRITELINE("soundcomm", atari_sound_comm_device, ym2151_irq_gen))
@@ -834,7 +835,8 @@ MACHINE_CONFIG_START(atari_jsa_ii_device::device_add_mconfig)
MCFG_DEVICE_PERIODIC_INT_DEVICE("soundcomm", atari_sound_comm_device, sound_irq_gen, JSA_MASTER_CLOCK/4/16/16/14)
// sound hardware
- MCFG_ATARI_SOUND_COMM_ADD("soundcomm", "cpu", WRITELINE(*this, atari_jsa_base_device, main_int_write_line))
+ ATARI_SOUND_COMM(config, "soundcomm", "cpu")
+ .int_callback().set(FUNC(atari_jsa_base_device::main_int_write_line));
MCFG_DEVICE_ADD("ym2151", YM2151, JSA_MASTER_CLOCK)
MCFG_YM2151_IRQ_HANDLER(WRITELINE("soundcomm", atari_sound_comm_device, ym2151_irq_gen))
@@ -916,7 +918,8 @@ MACHINE_CONFIG_START(atari_jsa_iii_device::device_add_mconfig)
MCFG_DEVICE_PERIODIC_INT_DEVICE("soundcomm", atari_sound_comm_device, sound_irq_gen, JSA_MASTER_CLOCK/4/16/16/14)
// sound hardware
- MCFG_ATARI_SOUND_COMM_ADD("soundcomm", "cpu", WRITELINE(*this, atari_jsa_base_device, main_int_write_line))
+ ATARI_SOUND_COMM(config, "soundcomm", "cpu")
+ .int_callback().set(FUNC(atari_jsa_base_device::main_int_write_line));
MCFG_DEVICE_ADD("ym2151", YM2151, JSA_MASTER_CLOCK)
MCFG_YM2151_IRQ_HANDLER(WRITELINE("soundcomm", atari_sound_comm_device, ym2151_irq_gen))
diff --git a/src/mame/drivers/20pacgal.cpp b/src/mame/drivers/20pacgal.cpp
index 802435b8be4..fa4f81ff81b 100644
--- a/src/mame/drivers/20pacgal.cpp
+++ b/src/mame/drivers/20pacgal.cpp
@@ -404,7 +404,7 @@ MACHINE_CONFIG_START(_20pacgal_state::_20pacgal)
MCFG_DEVICE_PROGRAM_MAP(_20pacgal_map)
MCFG_DEVICE_IO_MAP(_20pacgal_io_map)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_8BIT)
+ EEPROM_93C46_8BIT(config, "eeprom");
MCFG_WATCHDOG_ADD("watchdog")
diff --git a/src/mame/drivers/39in1.cpp b/src/mame/drivers/39in1.cpp
index 9ad3688eefa..56fc7fd143b 100644
--- a/src/mame/drivers/39in1.cpp
+++ b/src/mame/drivers/39in1.cpp
@@ -277,7 +277,7 @@ MACHINE_CONFIG_START(_39in1_state::_39in1)
MCFG_DEVICE_ADD("maincpu", PXA255, 200000000)
MCFG_DEVICE_PROGRAM_MAP(_39in1_map)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C66_16BIT)
+ EEPROM_93C66_16BIT(config, "eeprom");
MCFG_DEVICE_ADD("pxa_periphs", PXA255_PERIPHERALS, 200000000, "maincpu")
MCFG_PXA255_GPIO0_SET_CALLBACK(WRITE32(*this, _39in1_state, eeprom_set_w))
diff --git a/src/mame/drivers/8080bw.cpp b/src/mame/drivers/8080bw.cpp
index c8e1adc1d26..1327878733c 100644
--- a/src/mame/drivers/8080bw.cpp
+++ b/src/mame/drivers/8080bw.cpp
@@ -3524,7 +3524,7 @@ MACHINE_CONFIG_START(_8080bw_state::invmulti)
MCFG_DEVICE_MODIFY("maincpu")
MCFG_DEVICE_PROGRAM_MAP(invmulti_map)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_8BIT)
+ EEPROM_93C46_8BIT(config, "eeprom");
MCFG_MACHINE_RESET_OVERRIDE(_8080bw_state, mw8080bw)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/albazg.cpp b/src/mame/drivers/albazg.cpp
index 37a75ccf01f..99211bc5d87 100644
--- a/src/mame/drivers/albazg.cpp
+++ b/src/mame/drivers/albazg.cpp
@@ -367,7 +367,7 @@ MACHINE_CONFIG_START(albazg_state::yumefuda)
MCFG_DEVICE_IO_MAP(port_map)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", albazg_state, irq0_line_hold)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
MCFG_WATCHDOG_ADD("watchdog")
MCFG_WATCHDOG_VBLANK_INIT("screen", 8) // timing is unknown
diff --git a/src/mame/drivers/apple2e.cpp b/src/mame/drivers/apple2e.cpp
index 47df7c50b2e..1ac7da5dcf4 100644
--- a/src/mame/drivers/apple2e.cpp
+++ b/src/mame/drivers/apple2e.cpp
@@ -3994,8 +3994,7 @@ MACHINE_CONFIG_START(apple2e_state::apple2e)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
/* DS1315 for no-slot clock */
- MCFG_DS1315_ADD("nsc")
- MCFG_DS1315_BACKING_HANDLER(READ8(*this, apple2e_state, nsc_backing_r))
+ DS1315(config, m_ds1315, 0).read_backing().set(FUNC(apple2e_state::nsc_backing_r));
/* RAM */
RAM(config, m_ram).set_default_size("64K").set_default_value(0);
diff --git a/src/mame/drivers/arcadecl.cpp b/src/mame/drivers/arcadecl.cpp
index 38e49cd625b..6a444c6711b 100644
--- a/src/mame/drivers/arcadecl.cpp
+++ b/src/mame/drivers/arcadecl.cpp
@@ -325,8 +325,7 @@ MACHINE_CONFIG_START(sparkz_state::sparkz)
MCFG_DEVICE_ADD("maincpu", M68000, MASTER_CLOCK)
MCFG_DEVICE_PROGRAM_MAP(main_map)
- MCFG_EEPROM_2804_ADD("eeprom")
- MCFG_EEPROM_28XX_LOCK_AFTER_WRITE(true)
+ EEPROM_2804(config, "eeprom").lock_after_write(true);
MCFG_WATCHDOG_ADD("watchdog")
diff --git a/src/mame/drivers/aristmk5.cpp b/src/mame/drivers/aristmk5.cpp
index 03f7d6bdf2e..432e4035bb3 100644
--- a/src/mame/drivers/aristmk5.cpp
+++ b/src/mame/drivers/aristmk5.cpp
@@ -2054,8 +2054,8 @@ MACHINE_CONFIG_START(aristmk5_state::aristmk5)
MCFG_PALETTE_ADD("palette", 0x200)
- MCFG_DEVICE_ADD("eeprom0", EEPROM_SERIAL_93C56_16BIT)
- MCFG_DEVICE_ADD("eeprom1", EEPROM_SERIAL_93C56_16BIT)
+ EEPROM_93C56_16BIT(config, "eeprom0");
+ EEPROM_93C56_16BIT(config, "eeprom1");
MCFG_NVRAM_ADD_NO_FILL("nvram")
diff --git a/src/mame/drivers/aristmk6.cpp b/src/mame/drivers/aristmk6.cpp
index 303c87813fe..9af3ce62959 100644
--- a/src/mame/drivers/aristmk6.cpp
+++ b/src/mame/drivers/aristmk6.cpp
@@ -353,8 +353,7 @@ MACHINE_CONFIG_START(aristmk6_state::aristmk6)
MCFG_DEVICE_ADD( "uart0", NS16550, 8_MHz_XTAL )
MCFG_DEVICE_ADD( "uart1", NS16550, 8_MHz_XTAL )
- MCFG_DEVICE_ADD("eeprom0", EEPROM_SERIAL_93C56_16BIT)
- MCFG_EEPROM_DEFAULT_VALUE(0xFF)
+ EEPROM_93C56_16BIT(config, m_eeprom0).default_value(0xff);
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/artmagic.cpp b/src/mame/drivers/artmagic.cpp
index 8a686bd980e..ebcbe513bd7 100644
--- a/src/mame/drivers/artmagic.cpp
+++ b/src/mame/drivers/artmagic.cpp
@@ -823,8 +823,8 @@ MACHINE_CONFIG_START(artmagic_state::artmagic)
MCFG_TMS340X0_FROM_SHIFTREG_CB(artmagic_state, from_shiftreg) /* read from shiftreg function */
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
- MCFG_EEPROM_2816_ADD("eeprom")
- MCFG_EEPROM_WRITE_TIME(attotime::from_usec(1)) // FIXME: false-readback polling should make this unnecessary
+
+ EEPROM_2816(config, "eeprom").write_time(attotime::from_usec(1)); // FIXME: false-readback polling should make this unnecessary
/* video hardware */
MCFG_TLC34076_ADD("tlc34076", TLC34076_6_BIT)
diff --git a/src/mame/drivers/asterix.cpp b/src/mame/drivers/asterix.cpp
index 0d5b845667b..b43a526d2a2 100644
--- a/src/mame/drivers/asterix.cpp
+++ b/src/mame/drivers/asterix.cpp
@@ -270,7 +270,7 @@ MACHINE_CONFIG_START(asterix_state::asterix)
MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(32'000'000)/4) // 8MHz Z80E ??
MCFG_DEVICE_PROGRAM_MAP(sound_map)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_ER5911_8BIT)
+ EEPROM_ER5911_8BIT(config, "eeprom");
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/astrcorp.cpp b/src/mame/drivers/astrcorp.cpp
index 81c6bd5bd36..72a398ec767 100644
--- a/src/mame/drivers/astrcorp.cpp
+++ b/src/mame/drivers/astrcorp.cpp
@@ -531,8 +531,8 @@ MACHINE_CONFIG_START(astrocorp_state::showhand)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", astrocorp_state, irq4_line_hold)
MCFG_NVRAM_ADD_0FILL("nvram")
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
- MCFG_EEPROM_DATA(showhand_default_eeprom, sizeof(showhand_default_eeprom))
+
+ EEPROM_93C46_16BIT(config, "eeprom").default_data(showhand_default_eeprom, sizeof(showhand_default_eeprom));
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -584,7 +584,7 @@ MACHINE_CONFIG_START(astrocorp_state::skilldrp)
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", astrocorp_state, skilldrp_scanline, "screen", 0, 1)
MCFG_NVRAM_ADD_0FILL("nvram")
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
MCFG_TICKET_DISPENSER_ADD("ticket", attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW )
MCFG_TICKET_DISPENSER_ADD("hopper", attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW )
diff --git a/src/mame/drivers/atarig1.cpp b/src/mame/drivers/atarig1.cpp
index 787d6f79701..57893e61545 100644
--- a/src/mame/drivers/atarig1.cpp
+++ b/src/mame/drivers/atarig1.cpp
@@ -404,8 +404,7 @@ MACHINE_CONFIG_START(atarig1_state::atarig1)
MCFG_MACHINE_START_OVERRIDE(atarig1_state,atarig1)
MCFG_MACHINE_RESET_OVERRIDE(atarig1_state,atarig1)
- MCFG_EEPROM_2816_ADD("eeprom")
- MCFG_EEPROM_28XX_LOCK_AFTER_WRITE(true)
+ EEPROM_2816(config, "eeprom").lock_after_write(true);
MCFG_WATCHDOG_ADD("watchdog")
diff --git a/src/mame/drivers/atarig42.cpp b/src/mame/drivers/atarig42.cpp
index da7617ef0cb..740bf904e30 100644
--- a/src/mame/drivers/atarig42.cpp
+++ b/src/mame/drivers/atarig42.cpp
@@ -519,8 +519,7 @@ MACHINE_CONFIG_START(atarig42_state::atarig42)
MCFG_DEVICE_ADD("maincpu", M68000, ATARI_CLOCK_14MHz)
MCFG_DEVICE_PROGRAM_MAP(main_map)
- MCFG_EEPROM_2816_ADD("eeprom")
- MCFG_EEPROM_28XX_LOCK_AFTER_WRITE(true)
+ EEPROM_2816(config, "eeprom").lock_after_write(true);
MCFG_WATCHDOG_ADD("watchdog")
diff --git a/src/mame/drivers/atarigt.cpp b/src/mame/drivers/atarigt.cpp
index 21696f40a7e..c5cba11ebf4 100644
--- a/src/mame/drivers/atarigt.cpp
+++ b/src/mame/drivers/atarigt.cpp
@@ -800,8 +800,7 @@ MACHINE_CONFIG_START(atarigt_state::atarigt)
MCFG_MACHINE_RESET_OVERRIDE(atarigt_state,atarigt)
- MCFG_EEPROM_2816_ADD("eeprom")
- MCFG_EEPROM_28XX_LOCK_AFTER_WRITE(true)
+ EEPROM_2816(config, "eeprom").lock_after_write(true);
/* video hardware */
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_atarigt)
diff --git a/src/mame/drivers/atarigx2.cpp b/src/mame/drivers/atarigx2.cpp
index cbbe656e632..024ae7d833d 100644
--- a/src/mame/drivers/atarigx2.cpp
+++ b/src/mame/drivers/atarigx2.cpp
@@ -1500,8 +1500,7 @@ MACHINE_CONFIG_START(atarigx2_state::atarigx2)
m_adc->in_callback<6>().set_ioport("A2D6");
m_adc->in_callback<7>().set_ioport("A2D7");
- MCFG_EEPROM_2816_ADD("eeprom")
- MCFG_EEPROM_28XX_LOCK_AFTER_WRITE(true)
+ EEPROM_2816(config, "eeprom").lock_after_write(true);
/* video hardware */
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_atarigx2)
diff --git a/src/mame/drivers/atarisy1.cpp b/src/mame/drivers/atarisy1.cpp
index a47aca6214a..11d68ff2fcd 100644
--- a/src/mame/drivers/atarisy1.cpp
+++ b/src/mame/drivers/atarisy1.cpp
@@ -736,8 +736,7 @@ MACHINE_CONFIG_START(atarisy1_state::atarisy1)
MCFG_MACHINE_START_OVERRIDE(atarisy1_state,atarisy1)
MCFG_MACHINE_RESET_OVERRIDE(atarisy1_state,atarisy1)
- MCFG_EEPROM_2804_ADD("eeprom")
- MCFG_EEPROM_28XX_LOCK_AFTER_WRITE(true)
+ EEPROM_2804(config, "eeprom").lock_after_write(true);
LS259(config, m_outlatch); // 15H (TTL) or 14F (LSI)
m_outlatch->q_out_cb<0>().set("ymsnd", FUNC(ym2151_device::reset_w));
@@ -776,7 +775,8 @@ MACHINE_CONFIG_START(atarisy1_state::atarisy1)
MCFG_VIDEO_START_OVERRIDE(atarisy1_state,atarisy1)
/* sound hardware */
- MCFG_ATARI_SOUND_COMM_ADD("soundcomm", "audiocpu", INPUTLINE("maincpu", M68K_IRQ_6))
+ ATARI_SOUND_COMM(config, "soundcomm", "audiocpu")
+ .int_callback().set_inputline("maincpu", M68K_IRQ_6);
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
diff --git a/src/mame/drivers/atarisy2.cpp b/src/mame/drivers/atarisy2.cpp
index ff2e60b1c02..61d06c0e105 100644
--- a/src/mame/drivers/atarisy2.cpp
+++ b/src/mame/drivers/atarisy2.cpp
@@ -1206,7 +1206,7 @@ MACHINE_CONFIG_START(atarisy2_state::atarisy2)
// IN6 = J102 pin 2 (unused)
// IN7 = J102 pin 3 (unused)
- MCFG_EEPROM_2804_ADD("eeprom")
+ EEPROM_2804(config, "eeprom");
MCFG_WATCHDOG_ADD("watchdog")
@@ -1233,7 +1233,7 @@ MACHINE_CONFIG_START(atarisy2_state::atarisy2)
MCFG_VIDEO_START_OVERRIDE(atarisy2_state,atarisy2)
/* sound hardware */
- MCFG_ATARI_SOUND_COMM_ADD("soundcomm", "audiocpu", NOOP)
+ ATARI_SOUND_COMM(config, "soundcomm", "audiocpu").int_callback().set_nop();
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
MCFG_DEVICE_ADD("ymsnd", YM2151, SOUND_CLOCK/4)
diff --git a/src/mame/drivers/atetris.cpp b/src/mame/drivers/atetris.cpp
index daad366a61c..3640ee05bdf 100644
--- a/src/mame/drivers/atetris.cpp
+++ b/src/mame/drivers/atetris.cpp
@@ -118,8 +118,8 @@ void atetris_state::machine_start()
void atetris_state::machine_reset()
{
/* reset the slapstic */
- m_slapstic_device->slapstic_reset();
- m_current_bank = m_slapstic_device->slapstic_bank() & 1;
+ m_slapstic->slapstic_reset();
+ m_current_bank = m_slapstic->slapstic_bank() & 1;
reset_bank();
/* start interrupts going (32V clocked by 16V) */
@@ -137,7 +137,7 @@ void atetris_state::machine_reset()
READ8_MEMBER(atetris_state::slapstic_r)
{
int result = m_slapstic_base[0x2000 + offset];
- int new_bank = m_slapstic_device->slapstic_tweak(space, offset) & 1;
+ int new_bank = m_slapstic->slapstic_tweak(space, offset) & 1;
/* update for the new bank */
if (new_bank != m_current_bank)
@@ -341,103 +341,88 @@ GFXDECODE_END
*
*************************************/
-MACHINE_CONFIG_START(atetris_state::atetris)
-
+void atetris_state::atetris_base(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M6502,MASTER_CLOCK/8)
- MCFG_DEVICE_PROGRAM_MAP(main_map)
-
- MCFG_DEVICE_ADD("slapstic", SLAPSTIC, 101, false)
+ M6502(config, m_maincpu, MASTER_CLOCK/8);
+ m_maincpu->set_addrmap(AS_PROGRAM, &atetris_state::main_map);
- MCFG_DEVICE_ADD("eeprom", EEPROM_PARALLEL_2804, 0)
- MCFG_EEPROM_28XX_LOCK_AFTER_WRITE(true)
+ SLAPSTIC(config, m_slapstic, 101, false);
- MCFG_WATCHDOG_ADD("watchdog")
+ WATCHDOG_TIMER(config, "watchdog");
/* video hardware */
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_atetris)
+ GFXDECODE(config, m_gfxdecode, "palette", gfx_atetris);
- MCFG_PALETTE_ADD("palette", 256)
- MCFG_PALETTE_FORMAT(RRRGGGBB)
+ PALETTE(config, "palette", 256).set_format(PALETTE_FORMAT_RRRGGGBB);
- MCFG_SCREEN_ADD("screen", RASTER)
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
/* note: these parameters are from published specs, not derived */
/* the board uses an SOS-2 chip to generate video signals */
- MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/2, 456, 0, 336, 262, 0, 240)
- MCFG_SCREEN_UPDATE_DRIVER(atetris_state, screen_update)
- MCFG_SCREEN_PALETTE("palette")
-
+ m_screen->set_raw(MASTER_CLOCK/2, 456, 0, 336, 262, 0, 240);
+ m_screen->set_screen_update(FUNC(atetris_state::screen_update));
+ m_screen->set_palette("palette");
/* sound hardware */
SPEAKER(config, "mono").front_center();
+}
- MCFG_DEVICE_ADD("pokey1", POKEY, MASTER_CLOCK/8)
- MCFG_POKEY_ALLPOT_R_CB(IOPORT("IN0"))
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
-
- MCFG_DEVICE_ADD("pokey2", POKEY, MASTER_CLOCK/8)
- MCFG_POKEY_ALLPOT_R_CB(IOPORT("IN1"))
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
-MACHINE_CONFIG_END
-
-
-MACHINE_CONFIG_START(atetris_state::atetrisb2)
- atetris(config);
-
- /* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_CLOCK(BOOTLEG_CLOCK/8)
- MCFG_DEVICE_PROGRAM_MAP(atetrisb2_map)
+void atetris_state::atetris(machine_config &config)
+{
+ atetris_base(config);
- MCFG_DEVICE_REMOVE("pokey1")
- MCFG_DEVICE_REMOVE("pokey2")
+ EEPROM_2804(config, "eeprom").lock_after_write(true);
- MCFG_DEVICE_ADD("sn1", SN76489A, BOOTLEG_CLOCK/8)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
+ pokey_device &pokey1(POKEY(config, "pokey1", MASTER_CLOCK/8));
+ pokey1.allpot_r().set_ioport("IN0");
+ pokey1.add_route(ALL_OUTPUTS, "mono", 0.50);
- MCFG_DEVICE_ADD("sn2", SN76489A, BOOTLEG_CLOCK/8)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
+ pokey_device &pokey2(POKEY(config, "pokey2", MASTER_CLOCK/8));
+ pokey2.allpot_r().set_ioport("IN1");
+ pokey2.add_route(ALL_OUTPUTS, "mono", 0.50);
+}
- MCFG_DEVICE_ADD("sn3", SN76489, BOOTLEG_CLOCK/8)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
-MACHINE_CONFIG_END
+void atetris_state::atetrisb2(machine_config &config)
+{
+ atetris_base(config);
-MACHINE_CONFIG_START(atetris_mcu_state::atetrisb3)
- atetris(config);
+ EEPROM_2804(config, "eeprom").lock_after_write(true);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(atetrisb3_map)
+ /* basic machine hardware */
+ m_maincpu->set_clock(BOOTLEG_CLOCK/8);
+ m_maincpu->set_addrmap(AS_PROGRAM, &atetris_state::atetrisb2_map);
- MCFG_DEVICE_REPLACE("eeprom", EEPROM_PARALLEL_2816, 0)
- MCFG_EEPROM_28XX_LOCK_AFTER_WRITE(true)
+ SN76489A(config, "sn1", BOOTLEG_CLOCK/8).add_route(ALL_OUTPUTS, "mono", 0.50);
+ SN76489A(config, "sn2", BOOTLEG_CLOCK/8).add_route(ALL_OUTPUTS, "mono", 0.50);
+ SN76489(config, "sn3", BOOTLEG_CLOCK/8).add_route(ALL_OUTPUTS, "mono", 0.50);
+}
- MCFG_DEVICE_REMOVE("pokey1")
- MCFG_DEVICE_REMOVE("pokey2")
- MCFG_DEVICE_ADD("mcu", I8749, 10_MHz_XTAL)
- MCFG_MCS48_PORT_BUS_IN_CB(READ8(*this, atetris_mcu_state, mcu_bus_r))
- MCFG_MCS48_PORT_BUS_OUT_CB(WRITE8("soundlatch1", generic_latch_8_device, acknowledge_w))
- MCFG_MCS48_PORT_P2_OUT_CB(WRITE8(*this, atetris_mcu_state, mcu_p2_w))
+void atetris_mcu_state::atetrisb3(machine_config &config)
+{
+ atetris_base(config);
- MCFG_GENERIC_LATCH_8_ADD("soundlatch1")
- MCFG_GENERIC_LATCH_DATA_PENDING_CB(INPUTLINE("mcu", MCS48_INPUT_IRQ))
- MCFG_GENERIC_LATCH_SEPARATE_ACKNOWLEDGE(true)
+ m_maincpu->set_addrmap(AS_PROGRAM, &atetris_mcu_state::atetrisb3_map);
- MCFG_GENERIC_LATCH_8_ADD("soundlatch2")
+ EEPROM_2816(config, "eeprom").lock_after_write(true);
- MCFG_DEVICE_ADD("sn1", SN76489A, 4000000)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
+ I8749(config, m_mcu, 10_MHz_XTAL);
+ m_mcu->bus_in_cb().set(FUNC(atetris_mcu_state::mcu_bus_r));
+ m_mcu->bus_out_cb().set(m_soundlatch[0], FUNC(generic_latch_8_device::acknowledge_w));
+ m_mcu->p2_out_cb().set(FUNC(atetris_mcu_state::mcu_p2_w));
- MCFG_DEVICE_ADD("sn2", SN76489A, 4000000)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
+ GENERIC_LATCH_8(config, m_soundlatch[0]);
+ m_soundlatch[0]->data_pending_callback().set_inputline(m_mcu, MCS48_INPUT_IRQ);
+ m_soundlatch[0]->set_separate_acknowledge(true);
- MCFG_DEVICE_ADD("sn3", SN76489A, 4000000)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
+ GENERIC_LATCH_8(config, m_soundlatch[1]);
- MCFG_DEVICE_ADD("sn4", SN76489A, 4000000)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
-MACHINE_CONFIG_END
+ for (int i = 0; i < 4; i++)
+ {
+ SN76489A(config, m_sn[i], 4000000).add_route(ALL_OUTPUTS, "mono", 0.50);
+ }
+}
@@ -589,7 +574,7 @@ void atetris_state::init_atetris()
{
uint8_t *rgn = memregion("maincpu")->base();
- m_slapstic_device->slapstic_init();
+ m_slapstic->slapstic_init();
m_slapstic_source = &rgn[0x10000];
m_slapstic_base = &rgn[0x04000];
}
diff --git a/src/mame/drivers/backfire.cpp b/src/mame/drivers/backfire.cpp
index 218236e7494..df90cc54542 100644
--- a/src/mame/drivers/backfire.cpp
+++ b/src/mame/drivers/backfire.cpp
@@ -426,7 +426,7 @@ MACHINE_CONFIG_START(backfire_state::backfire)
MCFG_DEVICE_ADD("maincpu", ARM, 28000000/4) /* Unconfirmed */
MCFG_DEVICE_PROGRAM_MAP(backfire_map)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
ADC0808(config, m_adc, 1000000); // unknown clock
m_adc->in_callback<0>().set_ioport("PADDLE0");
diff --git a/src/mame/drivers/badlands.cpp b/src/mame/drivers/badlands.cpp
index d50894949f1..2b3a80fd2cb 100644
--- a/src/mame/drivers/badlands.cpp
+++ b/src/mame/drivers/badlands.cpp
@@ -454,8 +454,7 @@ MACHINE_CONFIG_START(badlands_state::badlands)
MCFG_MACHINE_START_OVERRIDE(badlands_state,badlands)
MCFG_MACHINE_RESET_OVERRIDE(badlands_state,badlands)
- MCFG_EEPROM_2816_ADD("eeprom")
- MCFG_EEPROM_28XX_LOCK_AFTER_WRITE(true)
+ EEPROM_2816(config, "eeprom").lock_after_write(true);
MCFG_WATCHDOG_ADD("watchdog")
@@ -480,7 +479,8 @@ MACHINE_CONFIG_START(badlands_state::badlands)
MCFG_VIDEO_START_OVERRIDE(badlands_state,badlands)
/* sound hardware */
- MCFG_ATARI_SOUND_COMM_ADD("soundcomm", "audiocpu", INPUTLINE("maincpu", M68K_IRQ_2))
+ ATARI_SOUND_COMM(config, "soundcomm", "audiocpu")
+ .int_callback().set_inputline("maincpu", M68K_IRQ_2);
SPEAKER(config, "mono").front_center();
MCFG_DEVICE_ADD("ymsnd", YM2151, ATARI_CLOCK_14MHz/4)
diff --git a/src/mame/drivers/badlandsbl.cpp b/src/mame/drivers/badlandsbl.cpp
index 477da52a411..c82eb0a28cd 100644
--- a/src/mame/drivers/badlandsbl.cpp
+++ b/src/mame/drivers/badlandsbl.cpp
@@ -232,8 +232,7 @@ MACHINE_CONFIG_START(badlandsbl_state::badlandsb)
MCFG_MACHINE_START_OVERRIDE(badlands_state,badlands)
- MCFG_EEPROM_2816_ADD("eeprom")
- MCFG_EEPROM_28XX_LOCK_AFTER_WRITE(true)
+ EEPROM_2816(config, "eeprom").lock_after_write(true);
/* video hardware */
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_badlandsb)
diff --git a/src/mame/drivers/batman.cpp b/src/mame/drivers/batman.cpp
index 41196856dc9..784462e4b4f 100644
--- a/src/mame/drivers/batman.cpp
+++ b/src/mame/drivers/batman.cpp
@@ -189,8 +189,7 @@ MACHINE_CONFIG_START(batman_state::batman)
MCFG_DEVICE_ADD("maincpu", M68000, ATARI_CLOCK_14MHz)
MCFG_DEVICE_PROGRAM_MAP(main_map)
- MCFG_EEPROM_2816_ADD("eeprom")
- MCFG_EEPROM_28XX_LOCK_AFTER_WRITE(true)
+ EEPROM_2816(config, "eeprom").lock_after_write(true);
MCFG_WATCHDOG_ADD("watchdog")
diff --git a/src/mame/drivers/beathead.cpp b/src/mame/drivers/beathead.cpp
index a19f842a5f7..7b8b8b86db0 100644
--- a/src/mame/drivers/beathead.cpp
+++ b/src/mame/drivers/beathead.cpp
@@ -342,8 +342,7 @@ MACHINE_CONFIG_START(beathead_state::beathead)
MCFG_DEVICE_ADD("maincpu", ASAP, ATARI_CLOCK_14MHz)
MCFG_DEVICE_PROGRAM_MAP(main_map)
- MCFG_EEPROM_2804_ADD("eeprom")
- MCFG_EEPROM_28XX_LOCK_AFTER_WRITE(true)
+ EEPROM_2804(config, "eeprom").lock_after_write(true);
MCFG_WATCHDOG_ADD("watchdog")
diff --git a/src/mame/drivers/blstroid.cpp b/src/mame/drivers/blstroid.cpp
index 805258be642..3871338fe03 100644
--- a/src/mame/drivers/blstroid.cpp
+++ b/src/mame/drivers/blstroid.cpp
@@ -180,8 +180,7 @@ MACHINE_CONFIG_START(blstroid_state::blstroid)
MCFG_DEVICE_ADD("maincpu", M68000, ATARI_CLOCK_14MHz/2)
MCFG_DEVICE_PROGRAM_MAP(main_map)
- MCFG_EEPROM_2804_ADD("eeprom")
- MCFG_EEPROM_28XX_LOCK_AFTER_WRITE(true)
+ EEPROM_2804(config, "eeprom").lock_after_write(true);
MCFG_WATCHDOG_ADD("watchdog")
diff --git a/src/mame/drivers/bpmmicro.cpp b/src/mame/drivers/bpmmicro.cpp
index 51c75ab1302..9fca813f82f 100644
--- a/src/mame/drivers/bpmmicro.cpp
+++ b/src/mame/drivers/bpmmicro.cpp
@@ -362,14 +362,15 @@ INPUT_PORTS_END
Machine Drivers
******************************************************************************/
-MACHINE_CONFIG_START(bpmmicro_state::bpmmicro)
+void bpmmicro_state::bpmmicro(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", I80286, XTAL(32'000'000)/4) /* divider is guessed, cpu is an AMD N80L286-16/S part */
- MCFG_DEVICE_PROGRAM_MAP(i286_mem)
- MCFG_DEVICE_IO_MAP(i286_io)
+ I80286(config, m_maincpu, XTAL(32'000'000)/4); /* divider is guessed, cpu is an AMD N80L286-16/S part */
+ m_maincpu->set_addrmap(AS_PROGRAM, &bpmmicro_state::i286_mem);
+ m_maincpu->set_addrmap(AS_IO, &bpmmicro_state::i286_io);
- MCFG_DEVICE_ADD("eeprom_u38", EEPROM_SERIAL_93C46_16BIT)
-MACHINE_CONFIG_END
+ EEPROM_93C46_16BIT(config, "eeprom_u38");
+}
diff --git a/src/mame/drivers/cave.cpp b/src/mame/drivers/cave.cpp
index 31ba73bfd19..b2cf78c0d05 100644
--- a/src/mame/drivers/cave.cpp
+++ b/src/mame/drivers/cave.cpp
@@ -2103,7 +2103,7 @@ MACHINE_CONFIG_START(cave_state::dfeveron)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", cave_state, cave_interrupt)
MCFG_MACHINE_RESET_OVERRIDE(cave_state,cave)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
MCFG_TIMER_DRIVER_ADD("int_timer", cave_state, cave_vblank_start)
@@ -2143,7 +2143,7 @@ MACHINE_CONFIG_START(cave_state::ddonpach)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", cave_state, cave_interrupt)
MCFG_MACHINE_RESET_OVERRIDE(cave_state,cave)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
MCFG_TIMER_DRIVER_ADD("int_timer", cave_state, cave_vblank_start)
@@ -2182,7 +2182,7 @@ MACHINE_CONFIG_START(cave_state::donpachi)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", cave_state, cave_interrupt)
MCFG_MACHINE_RESET_OVERRIDE(cave_state,cave)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
MCFG_TIMER_DRIVER_ADD("int_timer", cave_state, cave_vblank_start)
@@ -2228,7 +2228,7 @@ MACHINE_CONFIG_START(cave_state::esprade)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", cave_state, cave_interrupt)
MCFG_MACHINE_RESET_OVERRIDE(cave_state,cave)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
MCFG_TIMER_DRIVER_ADD("int_timer", cave_state, cave_vblank_start)
@@ -2307,7 +2307,7 @@ MACHINE_CONFIG_START(cave_state::guwange)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", cave_state, cave_interrupt)
MCFG_MACHINE_RESET_OVERRIDE(cave_state,cave)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
MCFG_TIMER_DRIVER_ADD("int_timer", cave_state, cave_vblank_start)
@@ -2349,7 +2349,7 @@ MACHINE_CONFIG_START(cave_state::hotdogst)
MCFG_DEVICE_IO_MAP(hotdogst_sound_portmap)
MCFG_MACHINE_RESET_OVERRIDE(cave_state,cave)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
MCFG_TIMER_DRIVER_ADD("int_timer", cave_state, cave_vblank_start)
@@ -2398,7 +2398,7 @@ MACHINE_CONFIG_START(cave_state::korokoro)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", cave_state, cave_interrupt)
MCFG_MACHINE_RESET_OVERRIDE(cave_state,cave)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_8BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
MCFG_TIMER_DRIVER_ADD("int_timer", cave_state, cave_vblank_start)
@@ -2450,7 +2450,7 @@ MACHINE_CONFIG_START(cave_state::mazinger)
MCFG_WATCHDOG_TIME_INIT(attotime::from_seconds(3)) /* a guess, and certainly wrong */
MCFG_MACHINE_RESET_OVERRIDE(cave_state,cave)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
MCFG_TIMER_DRIVER_ADD("int_timer", cave_state, cave_vblank_start)
@@ -2506,7 +2506,7 @@ MACHINE_CONFIG_START(cave_state::metmqstr)
MCFG_WATCHDOG_TIME_INIT(attotime::from_seconds(3)) /* a guess, and certainly wrong */
MCFG_MACHINE_RESET_OVERRIDE(cave_state,cave) /* start with the watchdog armed */
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
MCFG_TIMER_DRIVER_ADD("int_timer", cave_state, cave_vblank_start)
@@ -2562,7 +2562,7 @@ MACHINE_CONFIG_START(cave_state::pacslot)
MCFG_MACHINE_RESET_OVERRIDE(cave_state,cave)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT, eeprom_serial_streaming::ENABLE)
+ EEPROM_93C46_16BIT(config, "eeprom", eeprom_serial_streaming::ENABLE);
MCFG_TIMER_DRIVER_ADD("int_timer", cave_state, cave_vblank_start)
@@ -2619,7 +2619,7 @@ MACHINE_CONFIG_START(cave_state::ppsatan)
MCFG_WATCHDOG_TIME_INIT(attotime::from_seconds(1)) /* a guess, and certainly wrong */
MCFG_MACHINE_RESET_OVERRIDE(cave_state,cave)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
MCFG_TIMER_DRIVER_ADD_PERIODIC("timer_lev2", cave_state, timer_lev2_cb, attotime::from_hz(60))
@@ -2683,7 +2683,7 @@ MACHINE_CONFIG_START(cave_state::pwrinst2)
MCFG_DEVICE_IO_MAP(pwrinst2_sound_portmap)
MCFG_MACHINE_RESET_OVERRIDE(cave_state,cave)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
MCFG_TIMER_DRIVER_ADD("int_timer", cave_state, cave_vblank_start)
@@ -2758,7 +2758,7 @@ MACHINE_CONFIG_START(cave_state::sailormn)
// MCFG_QUANTUM_TIME(attotime::from_hz(600))
MCFG_MACHINE_RESET_OVERRIDE(cave_state,sailormn)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
MCFG_TIMER_DRIVER_ADD("int_timer", cave_state, cave_vblank_start)
@@ -2816,7 +2816,7 @@ MACHINE_CONFIG_START(cave_state::tekkencw)
MCFG_MACHINE_RESET_OVERRIDE(cave_state,cave)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT, eeprom_serial_streaming::ENABLE)
+ EEPROM_93C46_16BIT(config, "eeprom", eeprom_serial_streaming::ENABLE);
MCFG_TIMER_DRIVER_ADD("int_timer", cave_state, cave_vblank_start)
@@ -2870,7 +2870,7 @@ MACHINE_CONFIG_START(cave_state::tjumpman)
MCFG_MACHINE_RESET_OVERRIDE(cave_state,cave)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT, eeprom_serial_streaming::ENABLE)
+ EEPROM_93C46_16BIT(config, "eeprom", eeprom_serial_streaming::ENABLE);
MCFG_TIMER_DRIVER_ADD("int_timer", cave_state, cave_vblank_start)
@@ -2911,7 +2911,7 @@ MACHINE_CONFIG_START(cave_state::uopoko)
MCFG_DEVICE_PROGRAM_MAP(uopoko_map)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", cave_state, cave_interrupt)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
MCFG_TIMER_DRIVER_ADD("int_timer", cave_state, cave_vblank_start)
diff --git a/src/mame/drivers/cbasebal.cpp b/src/mame/drivers/cbasebal.cpp
index 57770eb3973..2a0cfa56650 100644
--- a/src/mame/drivers/cbasebal.cpp
+++ b/src/mame/drivers/cbasebal.cpp
@@ -270,7 +270,7 @@ MACHINE_CONFIG_START(cbasebal_state::cbasebal)
MCFG_DEVICE_OPCODES_MAP(decrypted_opcodes_map)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", cbasebal_state, irq0_line_hold) /* ??? */
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/cbm2.cpp b/src/mame/drivers/cbm2.cpp
index a269635cb87..d79d7bffc87 100644
--- a/src/mame/drivers/cbm2.cpp
+++ b/src/mame/drivers/cbm2.cpp
@@ -2313,25 +2313,27 @@ MACHINE_CONFIG_START(p500_state::p500_ntsc)
MCFG_MOS6526_PB_OUTPUT_CALLBACK(WRITE8(USER_PORT_TAG, cbm2_user_port_device, d2_w))
MCFG_MOS6526_PC_CALLBACK(WRITELINE(USER_PORT_TAG, cbm2_user_port_device, pc_w))
- MCFG_DS75160A_ADD(DS75160A_TAG, READ8(IEEE488_TAG, ieee488_device, dio_r), WRITE8(IEEE488_TAG, ieee488_device, host_dio_w))
-
- MCFG_DEVICE_ADD(DS75161A_TAG, DS75161A, 0)
- MCFG_DS75161A_IN_REN_CB(READLINE(IEEE488_TAG, ieee488_device, ren_r))
- MCFG_DS75161A_IN_IFC_CB(READLINE(IEEE488_TAG, ieee488_device, ifc_r))
- MCFG_DS75161A_IN_NDAC_CB(READLINE(IEEE488_TAG, ieee488_device, ndac_r))
- MCFG_DS75161A_IN_NRFD_CB(READLINE(IEEE488_TAG, ieee488_device, nrfd_r))
- MCFG_DS75161A_IN_DAV_CB(READLINE(IEEE488_TAG, ieee488_device, dav_r))
- MCFG_DS75161A_IN_EOI_CB(READLINE(IEEE488_TAG, ieee488_device, eoi_r))
- MCFG_DS75161A_IN_ATN_CB(READLINE(IEEE488_TAG, ieee488_device, atn_r))
- MCFG_DS75161A_IN_SRQ_CB(READLINE(IEEE488_TAG, ieee488_device, srq_r))
- MCFG_DS75161A_OUT_REN_CB(WRITELINE(IEEE488_TAG, ieee488_device, host_ren_w))
- MCFG_DS75161A_OUT_IFC_CB(WRITELINE(IEEE488_TAG, ieee488_device, host_ifc_w))
- MCFG_DS75161A_OUT_NDAC_CB(WRITELINE(IEEE488_TAG, ieee488_device, host_ndac_w))
- MCFG_DS75161A_OUT_NRFD_CB(WRITELINE(IEEE488_TAG, ieee488_device, host_nrfd_w))
- MCFG_DS75161A_OUT_DAV_CB(WRITELINE(IEEE488_TAG, ieee488_device, host_dav_w))
- MCFG_DS75161A_OUT_EOI_CB(WRITELINE(IEEE488_TAG, ieee488_device, host_eoi_w))
- MCFG_DS75161A_OUT_ATN_CB(WRITELINE(IEEE488_TAG, ieee488_device, host_atn_w))
- MCFG_DS75161A_OUT_SRQ_CB(WRITELINE(IEEE488_TAG, ieee488_device, host_srq_w))
+ DS75160A(config, m_ieee1, 0);
+ m_ieee1->read_callback().set(IEEE488_TAG, FUNC(ieee488_device::dio_r));
+ m_ieee1->write_callback().set(IEEE488_TAG, FUNC(ieee488_device::host_dio_w));
+
+ DS75161A(config, m_ieee2, 0);
+ m_ieee2->in_ren().set(IEEE488_TAG, FUNC(ieee488_device::ren_r));
+ m_ieee2->in_ifc().set(IEEE488_TAG, FUNC(ieee488_device::ifc_r));
+ m_ieee2->in_ndac().set(IEEE488_TAG, FUNC(ieee488_device::ndac_r));
+ m_ieee2->in_nrfd().set(IEEE488_TAG, FUNC(ieee488_device::nrfd_r));
+ m_ieee2->in_dav().set(IEEE488_TAG, FUNC(ieee488_device::dav_r));
+ m_ieee2->in_eoi().set(IEEE488_TAG, FUNC(ieee488_device::eoi_r));
+ m_ieee2->in_atn().set(IEEE488_TAG, FUNC(ieee488_device::atn_r));
+ m_ieee2->in_srq().set(IEEE488_TAG, FUNC(ieee488_device::srq_r));
+ m_ieee2->out_ren().set(IEEE488_TAG, FUNC(ieee488_device::host_ren_w));
+ m_ieee2->out_ifc().set(IEEE488_TAG, FUNC(ieee488_device::host_ifc_w));
+ m_ieee2->out_ndac().set(IEEE488_TAG, FUNC(ieee488_device::host_ndac_w));
+ m_ieee2->out_nrfd().set(IEEE488_TAG, FUNC(ieee488_device::host_nrfd_w));
+ m_ieee2->out_dav().set(IEEE488_TAG, FUNC(ieee488_device::host_dav_w));
+ m_ieee2->out_eoi().set(IEEE488_TAG, FUNC(ieee488_device::host_eoi_w));
+ m_ieee2->out_atn().set(IEEE488_TAG, FUNC(ieee488_device::host_atn_w));
+ m_ieee2->out_srq().set(IEEE488_TAG, FUNC(ieee488_device::host_srq_w));
MCFG_CBM_IEEE488_ADD("c8050")
MCFG_IEEE488_SRQ_CALLBACK(WRITELINE(MOS6525_1_TAG, tpi6525_device, i1_w))
@@ -2441,25 +2443,27 @@ MACHINE_CONFIG_START(p500_state::p500_pal)
MCFG_MOS6526_PB_OUTPUT_CALLBACK(WRITE8(USER_PORT_TAG, cbm2_user_port_device, d2_w))
MCFG_MOS6526_PC_CALLBACK(WRITELINE(USER_PORT_TAG, cbm2_user_port_device, pc_w))
- MCFG_DS75160A_ADD(DS75160A_TAG, READ8(IEEE488_TAG, ieee488_device, dio_r), WRITE8(IEEE488_TAG, ieee488_device, host_dio_w))
-
- MCFG_DEVICE_ADD(DS75161A_TAG, DS75161A, 0)
- MCFG_DS75161A_IN_REN_CB(READLINE(IEEE488_TAG, ieee488_device, ren_r))
- MCFG_DS75161A_IN_IFC_CB(READLINE(IEEE488_TAG, ieee488_device, ifc_r))
- MCFG_DS75161A_IN_NDAC_CB(READLINE(IEEE488_TAG, ieee488_device, ndac_r))
- MCFG_DS75161A_IN_NRFD_CB(READLINE(IEEE488_TAG, ieee488_device, nrfd_r))
- MCFG_DS75161A_IN_DAV_CB(READLINE(IEEE488_TAG, ieee488_device, dav_r))
- MCFG_DS75161A_IN_EOI_CB(READLINE(IEEE488_TAG, ieee488_device, eoi_r))
- MCFG_DS75161A_IN_ATN_CB(READLINE(IEEE488_TAG, ieee488_device, atn_r))
- MCFG_DS75161A_IN_SRQ_CB(READLINE(IEEE488_TAG, ieee488_device, srq_r))
- MCFG_DS75161A_OUT_REN_CB(WRITELINE(IEEE488_TAG, ieee488_device, host_ren_w))
- MCFG_DS75161A_OUT_IFC_CB(WRITELINE(IEEE488_TAG, ieee488_device, host_ifc_w))
- MCFG_DS75161A_OUT_NDAC_CB(WRITELINE(IEEE488_TAG, ieee488_device, host_ndac_w))
- MCFG_DS75161A_OUT_NRFD_CB(WRITELINE(IEEE488_TAG, ieee488_device, host_nrfd_w))
- MCFG_DS75161A_OUT_DAV_CB(WRITELINE(IEEE488_TAG, ieee488_device, host_dav_w))
- MCFG_DS75161A_OUT_EOI_CB(WRITELINE(IEEE488_TAG, ieee488_device, host_eoi_w))
- MCFG_DS75161A_OUT_ATN_CB(WRITELINE(IEEE488_TAG, ieee488_device, host_atn_w))
- MCFG_DS75161A_OUT_SRQ_CB(WRITELINE(IEEE488_TAG, ieee488_device, host_srq_w))
+ DS75160A(config, m_ieee1, 0);
+ m_ieee1->read_callback().set(IEEE488_TAG, FUNC(ieee488_device::dio_r));
+ m_ieee1->write_callback().set(IEEE488_TAG, FUNC(ieee488_device::host_dio_w));
+
+ DS75161A(config, m_ieee2, 0);
+ m_ieee2->in_ren().set(IEEE488_TAG, FUNC(ieee488_device::ren_r));
+ m_ieee2->in_ifc().set(IEEE488_TAG, FUNC(ieee488_device::ifc_r));
+ m_ieee2->in_ndac().set(IEEE488_TAG, FUNC(ieee488_device::ndac_r));
+ m_ieee2->in_nrfd().set(IEEE488_TAG, FUNC(ieee488_device::nrfd_r));
+ m_ieee2->in_dav().set(IEEE488_TAG, FUNC(ieee488_device::dav_r));
+ m_ieee2->in_eoi().set(IEEE488_TAG, FUNC(ieee488_device::eoi_r));
+ m_ieee2->in_atn().set(IEEE488_TAG, FUNC(ieee488_device::atn_r));
+ m_ieee2->in_srq().set(IEEE488_TAG, FUNC(ieee488_device::srq_r));
+ m_ieee2->out_ren().set(IEEE488_TAG, FUNC(ieee488_device::host_ren_w));
+ m_ieee2->out_ifc().set(IEEE488_TAG, FUNC(ieee488_device::host_ifc_w));
+ m_ieee2->out_ndac().set(IEEE488_TAG, FUNC(ieee488_device::host_ndac_w));
+ m_ieee2->out_nrfd().set(IEEE488_TAG, FUNC(ieee488_device::host_nrfd_w));
+ m_ieee2->out_dav().set(IEEE488_TAG, FUNC(ieee488_device::host_dav_w));
+ m_ieee2->out_eoi().set(IEEE488_TAG, FUNC(ieee488_device::host_eoi_w));
+ m_ieee2->out_atn().set(IEEE488_TAG, FUNC(ieee488_device::host_atn_w));
+ m_ieee2->out_srq().set(IEEE488_TAG, FUNC(ieee488_device::host_srq_w));
MCFG_CBM_IEEE488_ADD("c8050")
MCFG_IEEE488_SRQ_CALLBACK(WRITELINE(MOS6525_1_TAG, tpi6525_device, i1_w))
@@ -2567,25 +2571,27 @@ MACHINE_CONFIG_START(cbm2_state::cbm2lp_ntsc)
MCFG_MOS6526_PB_OUTPUT_CALLBACK(WRITE8(USER_PORT_TAG, cbm2_user_port_device, d2_w))
MCFG_MOS6526_PC_CALLBACK(WRITELINE(USER_PORT_TAG, cbm2_user_port_device, pc_w))
- MCFG_DS75160A_ADD(DS75160A_TAG, READ8(IEEE488_TAG, ieee488_device, dio_r), WRITE8(IEEE488_TAG, ieee488_device, host_dio_w))
-
- MCFG_DEVICE_ADD(DS75161A_TAG, DS75161A, 0)
- MCFG_DS75161A_IN_REN_CB(READLINE(IEEE488_TAG, ieee488_device, ren_r))
- MCFG_DS75161A_IN_IFC_CB(READLINE(IEEE488_TAG, ieee488_device, ifc_r))
- MCFG_DS75161A_IN_NDAC_CB(READLINE(IEEE488_TAG, ieee488_device, ndac_r))
- MCFG_DS75161A_IN_NRFD_CB(READLINE(IEEE488_TAG, ieee488_device, nrfd_r))
- MCFG_DS75161A_IN_DAV_CB(READLINE(IEEE488_TAG, ieee488_device, dav_r))
- MCFG_DS75161A_IN_EOI_CB(READLINE(IEEE488_TAG, ieee488_device, eoi_r))
- MCFG_DS75161A_IN_ATN_CB(READLINE(IEEE488_TAG, ieee488_device, atn_r))
- MCFG_DS75161A_IN_SRQ_CB(READLINE(IEEE488_TAG, ieee488_device, srq_r))
- MCFG_DS75161A_OUT_REN_CB(WRITELINE(IEEE488_TAG, ieee488_device, host_ren_w))
- MCFG_DS75161A_OUT_IFC_CB(WRITELINE(IEEE488_TAG, ieee488_device, host_ifc_w))
- MCFG_DS75161A_OUT_NDAC_CB(WRITELINE(IEEE488_TAG, ieee488_device, host_ndac_w))
- MCFG_DS75161A_OUT_NRFD_CB(WRITELINE(IEEE488_TAG, ieee488_device, host_nrfd_w))
- MCFG_DS75161A_OUT_DAV_CB(WRITELINE(IEEE488_TAG, ieee488_device, host_dav_w))
- MCFG_DS75161A_OUT_EOI_CB(WRITELINE(IEEE488_TAG, ieee488_device, host_eoi_w))
- MCFG_DS75161A_OUT_ATN_CB(WRITELINE(IEEE488_TAG, ieee488_device, host_atn_w))
- MCFG_DS75161A_OUT_SRQ_CB(WRITELINE(IEEE488_TAG, ieee488_device, host_srq_w))
+ DS75160A(config, m_ieee1, 0);
+ m_ieee1->read_callback().set(IEEE488_TAG, FUNC(ieee488_device::dio_r));
+ m_ieee1->write_callback().set(IEEE488_TAG, FUNC(ieee488_device::host_dio_w));
+
+ DS75161A(config, m_ieee2, 0);
+ m_ieee2->in_ren().set(IEEE488_TAG, FUNC(ieee488_device::ren_r));
+ m_ieee2->in_ifc().set(IEEE488_TAG, FUNC(ieee488_device::ifc_r));
+ m_ieee2->in_ndac().set(IEEE488_TAG, FUNC(ieee488_device::ndac_r));
+ m_ieee2->in_nrfd().set(IEEE488_TAG, FUNC(ieee488_device::nrfd_r));
+ m_ieee2->in_dav().set(IEEE488_TAG, FUNC(ieee488_device::dav_r));
+ m_ieee2->in_eoi().set(IEEE488_TAG, FUNC(ieee488_device::eoi_r));
+ m_ieee2->in_atn().set(IEEE488_TAG, FUNC(ieee488_device::atn_r));
+ m_ieee2->in_srq().set(IEEE488_TAG, FUNC(ieee488_device::srq_r));
+ m_ieee2->out_ren().set(IEEE488_TAG, FUNC(ieee488_device::host_ren_w));
+ m_ieee2->out_ifc().set(IEEE488_TAG, FUNC(ieee488_device::host_ifc_w));
+ m_ieee2->out_ndac().set(IEEE488_TAG, FUNC(ieee488_device::host_ndac_w));
+ m_ieee2->out_nrfd().set(IEEE488_TAG, FUNC(ieee488_device::host_nrfd_w));
+ m_ieee2->out_dav().set(IEEE488_TAG, FUNC(ieee488_device::host_dav_w));
+ m_ieee2->out_eoi().set(IEEE488_TAG, FUNC(ieee488_device::host_eoi_w));
+ m_ieee2->out_atn().set(IEEE488_TAG, FUNC(ieee488_device::host_atn_w));
+ m_ieee2->out_srq().set(IEEE488_TAG, FUNC(ieee488_device::host_srq_w));
MCFG_CBM_IEEE488_ADD("c8050")
MCFG_IEEE488_SRQ_CALLBACK(WRITELINE(MOS6525_1_TAG, tpi6525_device, i1_w))
diff --git a/src/mame/drivers/centiped.cpp b/src/mame/drivers/centiped.cpp
index 4061bfe3379..161d67fa83f 100644
--- a/src/mame/drivers/centiped.cpp
+++ b/src/mame/drivers/centiped.cpp
@@ -1898,7 +1898,7 @@ MACHINE_CONFIG_START(centiped_state::multiped)
MCFG_DEVICE_PROGRAM_MAP(multiped_map)
MCFG_DEVICE_REMOVE("earom")
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_8BIT)
+ EEPROM_93C46_8BIT(config, "eeprom");
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/cps1.cpp b/src/mame/drivers/cps1.cpp
index b3ff0541096..1da56494129 100644
--- a/src/mame/drivers/cps1.cpp
+++ b/src/mame/drivers/cps1.cpp
@@ -3440,12 +3440,13 @@ MACHINE_CONFIG_START(cps_state::cps1_12MHz)
MCFG_DEVICE_CLOCK( XTAL(12'000'000) ) /* verified on pcb */
MACHINE_CONFIG_END
-MACHINE_CONFIG_START(cps_state::pang3)
+void cps_state::pang3(machine_config &config)
+{
cps1_12MHz(config);
/* basic machine hardware */
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
-MACHINE_CONFIG_END
+ EEPROM_93C46_16BIT(config, "eeprom");
+}
MACHINE_CONFIG_START(cps_state::ganbare)
cps1_10MHz(config);
@@ -3473,7 +3474,7 @@ MACHINE_CONFIG_START(cps_state::qsound)
MCFG_MACHINE_START_OVERRIDE(cps_state, qsound)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_8BIT)
+ EEPROM_93C46_8BIT(config, "eeprom");
/* sound hardware */
MCFG_DEVICE_REMOVE("mono")
@@ -3490,12 +3491,13 @@ MACHINE_CONFIG_START(cps_state::qsound)
MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
MACHINE_CONFIG_END
-MACHINE_CONFIG_START(cps_state::wofhfh)
+void cps_state::wofhfh(machine_config &config)
+{
cps1_12MHz(config);
/* basic machine hardware */
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_8BIT)
-MACHINE_CONFIG_END
+ EEPROM_93C46_8BIT(config, "eeprom");
+}
MACHINE_CONFIG_START(cps_state::sf2m3)
cps1_12MHz(config);
diff --git a/src/mame/drivers/cps2.cpp b/src/mame/drivers/cps2.cpp
index ad887e5fce1..a3dcc202f16 100644
--- a/src/mame/drivers/cps2.cpp
+++ b/src/mame/drivers/cps2.cpp
@@ -1316,7 +1316,7 @@ MACHINE_CONFIG_START(cps2_state::cps2)
MCFG_MACHINE_START_OVERRIDE(cps2_state, cps2)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/cyberbal.cpp b/src/mame/drivers/cyberbal.cpp
index 5d7b4bdf589..6944d51d177 100644
--- a/src/mame/drivers/cyberbal.cpp
+++ b/src/mame/drivers/cyberbal.cpp
@@ -27,6 +27,7 @@
#include "machine/eeprompar.h"
#include "machine/watchdog.h"
#include "sound/volt_reg.h"
+#include "diexec.h"
#include "speaker.h"
#include "rendlay.h"
@@ -133,8 +134,8 @@ void cyberbal_state::main_map(address_map &map)
map(0xfe1000, 0xfe1fff).portr("IN1");
map(0xfe8000, 0xfe8fff).ram().w("rpalette", FUNC(palette_device::write16)).share("rpalette");
map(0xfec000, 0xfecfff).ram().w("lpalette", FUNC(palette_device::write16)).share("lpalette");
- map(0xff0000, 0xff1fff).ram().w(m_playfield2_tilemap, FUNC(tilemap_device::write16)).share("playfield2");
- map(0xff2000, 0xff2fff).ram().w(m_alpha2_tilemap, FUNC(tilemap_device::write16)).share("alpha2");
+ map(0xff0000, 0xff1fff).ram().w(m_playfield2, FUNC(tilemap_device::write16)).share("playfield2");
+ map(0xff2000, 0xff2fff).ram().w(m_alpha2, FUNC(tilemap_device::write16)).share("alpha2");
map(0xff3000, 0xff37ff).ram().share("mob2");
map(0xff3800, 0xff3fff).ram().share("ff3800");
map(0xff4000, 0xff5fff).ram().w("playfield", FUNC(tilemap_device::write16)).share("playfield");
@@ -161,8 +162,8 @@ void cyberbal_state::extra_map(address_map &map)
map(0xfe1000, 0xfe1fff).portr("IN1");
map(0xfe8000, 0xfe8fff).ram().w("rpalette", FUNC(palette_device::write16)).share("rpalette");
map(0xfec000, 0xfecfff).ram().w("lpalette", FUNC(palette_device::write16)).share("lpalette");
- map(0xff0000, 0xff1fff).ram().w(m_playfield2_tilemap, FUNC(tilemap_device::write16)).share("playfield2");
- map(0xff2000, 0xff2fff).ram().w(m_alpha2_tilemap, FUNC(tilemap_device::write16)).share("alpha2");
+ map(0xff0000, 0xff1fff).ram().w(m_playfield2, FUNC(tilemap_device::write16)).share("playfield2");
+ map(0xff2000, 0xff2fff).ram().w(m_alpha2, FUNC(tilemap_device::write16)).share("alpha2");
map(0xff3000, 0xff37ff).ram().share("mob2");
map(0xff3800, 0xff3fff).ram().share("ff3800");
map(0xff4000, 0xff5fff).ram().w("playfield", FUNC(tilemap_device::write16)).share("playfield");
@@ -392,92 +393,101 @@ GFXDECODE_END
*
*************************************/
-MACHINE_CONFIG_START(cyberbal_state::cyberbal)
+MACHINE_CONFIG_START(cyberbal_state::cyberbal_base)
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, ATARI_CLOCK_14MHz/2)
- MCFG_DEVICE_PROGRAM_MAP(main_map)
+ M68000(config, m_maincpu, ATARI_CLOCK_14MHz/2);
+ m_maincpu->set_addrmap(AS_PROGRAM, &cyberbal_state::main_map);
- MCFG_DEVICE_ADD("audiocpu", M6502, ATARI_CLOCK_14MHz/8)
- MCFG_DEVICE_PROGRAM_MAP(sound_map)
- MCFG_DEVICE_PERIODIC_INT_DEVICE("soundcomm", atari_sound_comm_device, sound_irq_gen, ATARI_CLOCK_14MHz/4/4/16/16/14)
+ M6502(config, m_audiocpu, ATARI_CLOCK_14MHz/8);
+ m_audiocpu->set_addrmap(AS_PROGRAM, &cyberbal_state::sound_map);
+ m_audiocpu->set_periodic_int("soundcomm", FUNC(atari_sound_comm_device::sound_irq_gen), attotime::from_hz(ATARI_CLOCK_14MHz/4/4/16/16/14));
- MCFG_DEVICE_ADD("extra", M68000, ATARI_CLOCK_14MHz/2)
- MCFG_DEVICE_PROGRAM_MAP(extra_map)
+ M68000(config, m_extracpu, ATARI_CLOCK_14MHz/2);
+ m_extracpu->set_addrmap(AS_PROGRAM, &cyberbal_state::extra_map);
MCFG_DEVICE_ADD("dac", M68000, ATARI_CLOCK_14MHz/2)
MCFG_DEVICE_PROGRAM_MAP(sound_68k_map)
MCFG_DEVICE_PERIODIC_INT_DRIVER(cyberbal_state, sound_68k_irq_gen, 10000)
- MCFG_QUANTUM_TIME(attotime::from_hz(600))
-
- MCFG_EEPROM_2804_ADD("eeprom")
- MCFG_EEPROM_28XX_LOCK_AFTER_WRITE(true)
+ config.m_minimum_quantum = attotime::from_hz(600);
- MCFG_WATCHDOG_ADD("watchdog")
+ WATCHDOG_TIMER(config, "watchdog");
/* video hardware */
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "lpalette", gfx_interleaved)
-
- MCFG_PALETTE_ADD("lpalette", 2048)
- MCFG_PALETTE_FORMAT(IRRRRRGGGGGBBBBB)
- MCFG_PALETTE_ADD("rpalette", 2048)
- MCFG_PALETTE_FORMAT(IRRRRRGGGGGBBBBB)
-
- MCFG_TILEMAP_ADD_STANDARD("playfield", "gfxdecode", 2, cyberbal_state, get_playfield_tile_info, 16,8, SCAN_ROWS, 64,64)
- MCFG_TILEMAP_ADD_STANDARD_TRANSPEN("alpha", "gfxdecode", 2, cyberbal_state, get_alpha_tile_info, 16,8, SCAN_ROWS, 64,32, 0)
- MCFG_ATARI_MOTION_OBJECTS_ADD("mob", "lscreen", cyberbal_state::s_mob_config)
- MCFG_ATARI_MOTION_OBJECTS_GFXDECODE("gfxdecode")
-
- MCFG_TILEMAP_ADD_STANDARD("playfield2", "gfxdecode", 2, cyberbal_state, get_playfield2_tile_info, 16,8, SCAN_ROWS, 64,64)
- MCFG_TILEMAP_ADD_STANDARD_TRANSPEN("alpha2", "gfxdecode", 2, cyberbal_state, get_alpha2_tile_info, 16,8, SCAN_ROWS, 64,32, 0)
- MCFG_ATARI_MOTION_OBJECTS_ADD("mob2", "rscreen", cyberbal_state::s_mob_config)
- MCFG_ATARI_MOTION_OBJECTS_GFXDECODE("gfxdecode")
-
- MCFG_SCREEN_ADD("lscreen", RASTER)
- MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
+ GFXDECODE(config, m_gfxdecode, "lpalette", gfx_interleaved);
+
+ PALETTE(config, "lpalette", 2048).set_format(PALETTE_FORMAT_IRRRRRGGGGGBBBBB);
+ PALETTE(config, "rpalette", 2048).set_format(PALETTE_FORMAT_IRRRRRGGGGGBBBBB);
+
+ TILEMAP(config, m_playfield, "gfxdecode", 2, 16,8, TILEMAP_SCAN_ROWS, 64,64)
+ .set_info_callback(FUNC(cyberbal_state::get_playfield_tile_info));
+ TILEMAP(config, m_alpha, "gfxdecode", 2, 16,8, TILEMAP_SCAN_ROWS, 64,32, 0)
+ .set_info_callback(FUNC(cyberbal_state::get_alpha_tile_info));
+ ATARI_MOTION_OBJECTS(config, m_mob, 0).set_screen("lscreen");
+ m_mob->set_config(cyberbal_state::s_mob_config);
+ m_mob->set_gfxdecode("gfxdecode");
+
+ TILEMAP(config, m_playfield2, "gfxdecode", 2, 16,8, TILEMAP_SCAN_ROWS, 64,64)
+ .set_info_callback(FUNC(cyberbal_state::get_playfield2_tile_info));
+ TILEMAP(config, m_alpha2, "gfxdecode", 2, 16,8, TILEMAP_SCAN_ROWS, 64,32, 0)
+ .set_info_callback(FUNC(cyberbal_state::get_alpha2_tile_info));
+ ATARI_MOTION_OBJECTS(config, m_mob2, 0).set_screen("rscreen");
+ m_mob2->set_config(cyberbal_state::s_mob_config);
+ m_mob2->set_gfxdecode("gfxdecode");
+
+ SCREEN(config, m_lscreen, SCREEN_TYPE_RASTER);
+ m_lscreen->set_video_attributes(VIDEO_UPDATE_BEFORE_VBLANK);
/* note: these parameters are from published specs, not derived */
/* the board uses an SOS-2 chip to generate video signals */
- MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz, 456*2, 0, 336*2, 262, 0, 240)
- MCFG_SCREEN_UPDATE_DRIVER(cyberbal_state, screen_update_cyberbal_left)
- MCFG_SCREEN_PALETTE("lpalette")
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, cyberbal_state, video_int_write_line)) /* or is it "right?" */
+ m_lscreen->set_raw(ATARI_CLOCK_14MHz, 456*2, 0, 336*2, 262, 0, 240);
+ m_lscreen->set_screen_update(FUNC(cyberbal_state::screen_update_cyberbal_left));
+ m_lscreen->set_palette("lpalette");
+ m_lscreen->screen_vblank().set(FUNC(cyberbal_state::video_int_write_line)); /* or is it "right?" har, har! */
- MCFG_SCREEN_ADD("rscreen", RASTER)
- MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
+ SCREEN(config, m_rscreen, SCREEN_TYPE_RASTER);
+ m_rscreen->set_video_attributes(VIDEO_UPDATE_BEFORE_VBLANK);
/* note: these parameters are from published specs, not derived */
/* the board uses an SOS-2 chip to generate video signals */
- MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz, 456*2, 0, 336*2, 262, 0, 240)
- MCFG_SCREEN_UPDATE_DRIVER(cyberbal_state, screen_update_cyberbal_right)
- MCFG_SCREEN_PALETTE("rpalette")
+ m_rscreen->set_raw(ATARI_CLOCK_14MHz, 456*2, 0, 336*2, 262, 0, 240);
+ m_rscreen->set_screen_update(FUNC(cyberbal_state::screen_update_cyberbal_right));
+ m_rscreen->set_palette("rpalette");
/* sound hardware */
- MCFG_ATARI_SOUND_COMM_ADD("soundcomm", "audiocpu", INPUTLINE("maincpu", M68K_IRQ_1))
+ ATARI_SOUND_COMM(config, m_soundcomm, "audiocpu")
+ .int_callback().set_inputline("maincpu", M68K_IRQ_1);
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
- MCFG_DEVICE_ADD("ymsnd", YM2151, ATARI_CLOCK_14MHz/4)
- MCFG_YM2151_IRQ_HANDLER(WRITELINE("soundcomm", atari_sound_comm_device, ym2151_irq_gen))
- MCFG_SOUND_ROUTE(0, "lspeaker", 0.60)
- MCFG_SOUND_ROUTE(1, "rspeaker", 0.60)
-
- MCFG_DEVICE_ADD("rdac", AM6012, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.5) // AM6012.6j
- MCFG_DEVICE_ADD("ldac", AM6012, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.5) // AM6012.6j
- MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE(0, "rdac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "rdac", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE(0, "ldac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "ldac", -1.0, DAC_VREF_NEG_INPUT)
+ YM2151(config, m_ymsnd, ATARI_CLOCK_14MHz/4);
+ m_ymsnd->irq_handler().set("soundcomm", FUNC(atari_sound_comm_device::ym2151_irq_gen));
+ m_ymsnd->add_route(0, "lspeaker", 0.60);
+ m_ymsnd->add_route(1, "rspeaker", 0.60);
+
+ AM6012(config, m_rdac, 0).add_route(ALL_OUTPUTS, "rspeaker", 0.5); // AM6012.6j
+ AM6012(config, m_ldac, 0).add_route(ALL_OUTPUTS, "lspeaker", 0.5); // AM6012.6j
+ voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref", 0));
+ vref.set_output(5.0);
+ vref.add_route(0, "rdac", 1.0, DAC_VREF_POS_INPUT);
+ vref.add_route(0, "rdac", -1.0, DAC_VREF_NEG_INPUT);
+ vref.add_route(0, "ldac", 1.0, DAC_VREF_POS_INPUT);
+ vref.add_route(0, "ldac", -1.0, DAC_VREF_NEG_INPUT);
MACHINE_CONFIG_END
+void cyberbal_state::cyberbal(machine_config &config)
+{
+ cyberbal_base(config);
-MACHINE_CONFIG_START(cyberbal_state::cyberbalt)
- cyberbal(config);
- MCFG_DEVICE_REMOVE("eeprom")
- MCFG_EEPROM_2816_ADD("eeprom")
- MCFG_EEPROM_28XX_LOCK_AFTER_WRITE(true)
+ EEPROM_2804(config, "eeprom").lock_after_write(true);
+}
- MCFG_DEVICE_ADD("slapstic", SLAPSTIC, 116, true)
-MACHINE_CONFIG_END
+void cyberbal_state::cyberbalt(machine_config &config)
+{
+ cyberbal_base(config);
+ EEPROM_2816(config, "eeprom").lock_after_write(true);
+ SLAPSTIC(config, "slapstic", 116, true);
+}
MACHINE_CONFIG_START(cyberbal2p_state::cyberbal2p)
@@ -485,8 +495,7 @@ MACHINE_CONFIG_START(cyberbal2p_state::cyberbal2p)
MCFG_DEVICE_ADD("maincpu", M68000, ATARI_CLOCK_14MHz/2)
MCFG_DEVICE_PROGRAM_MAP(cyberbal2p_map)
- MCFG_EEPROM_2816_ADD("eeprom")
- MCFG_EEPROM_28XX_LOCK_AFTER_WRITE(true)
+ EEPROM_2816(config, "eeprom").lock_after_write(true);
MCFG_WATCHDOG_ADD("watchdog")
@@ -495,10 +504,13 @@ MACHINE_CONFIG_START(cyberbal2p_state::cyberbal2p)
MCFG_PALETTE_ADD("palette", 2048)
MCFG_PALETTE_FORMAT(IRRRRRGGGGGBBBBB)
- MCFG_TILEMAP_ADD_STANDARD("playfield", "gfxdecode", 2, cyberbal2p_state, get_playfield_tile_info, 16,8, SCAN_ROWS, 64,64)
- MCFG_TILEMAP_ADD_STANDARD_TRANSPEN("alpha", "gfxdecode", 2, cyberbal2p_state, get_alpha_tile_info, 16,8, SCAN_ROWS, 64,32, 0)
- MCFG_ATARI_MOTION_OBJECTS_ADD("mob", "screen", cyberbal2p_state::s_mob_config)
- MCFG_ATARI_MOTION_OBJECTS_GFXDECODE("gfxdecode")
+ TILEMAP(config, m_playfield, "gfxdecode", 2, 16,8, TILEMAP_SCAN_ROWS, 64,64)
+ .set_info_callback(FUNC(cyberbal2p_state::get_playfield_tile_info));
+ TILEMAP(config, m_alpha, "gfxdecode", 2, 16,8, TILEMAP_SCAN_ROWS, 64,32, 0)
+ .set_info_callback(FUNC(cyberbal2p_state::get_alpha_tile_info));
+ ATARI_MOTION_OBJECTS(config, m_mob, 0).set_screen("screen");
+ m_mob->set_config(cyberbal2p_state::s_mob_config);
+ m_mob->set_gfxdecode("gfxdecode");
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
diff --git a/src/mame/drivers/cybstorm.cpp b/src/mame/drivers/cybstorm.cpp
index 9541786e529..9e3b7b2b903 100644
--- a/src/mame/drivers/cybstorm.cpp
+++ b/src/mame/drivers/cybstorm.cpp
@@ -227,8 +227,7 @@ MACHINE_CONFIG_START(cybstorm_state::round2)
MCFG_DEVICE_ADD("maincpu", M68EC020, ATARI_CLOCK_14MHz)
MCFG_DEVICE_PROGRAM_MAP(main_map)
- MCFG_EEPROM_2816_ADD("eeprom")
- MCFG_EEPROM_28XX_LOCK_AFTER_WRITE(true)
+ EEPROM_2816(config, "eeprom").lock_after_write(true);
MCFG_WATCHDOG_ADD("watchdog")
diff --git a/src/mame/drivers/dcheese.cpp b/src/mame/drivers/dcheese.cpp
index 702698379cc..b9a2487b3f7 100644
--- a/src/mame/drivers/dcheese.cpp
+++ b/src/mame/drivers/dcheese.cpp
@@ -384,7 +384,7 @@ MACHINE_CONFIG_START(dcheese_state::dcheese)
MCFG_DEVICE_PROGRAM_MAP(sound_cpu_map)
MCFG_DEVICE_PERIODIC_INT_DRIVER(dcheese_state, irq1_line_hold, 480) /* accurate for fredmem */
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
MCFG_TICKET_DISPENSER_ADD("ticket", attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW)
diff --git a/src/mame/drivers/deco156.cpp b/src/mame/drivers/deco156.cpp
index 8235b22c3d0..7a5de2512b5 100644
--- a/src/mame/drivers/deco156.cpp
+++ b/src/mame/drivers/deco156.cpp
@@ -338,7 +338,7 @@ MACHINE_CONFIG_START(deco156_state::hvysmsh)
MCFG_DEVICE_PROGRAM_MAP(hvysmsh_map)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", deco156_state, deco32_vbl_interrupt)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(58)
@@ -392,7 +392,7 @@ MACHINE_CONFIG_START(deco156_state::wcvol95)
MCFG_DEVICE_PROGRAM_MAP(wcvol95_map)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", deco156_state, deco32_vbl_interrupt)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(58)
diff --git a/src/mame/drivers/deco32.cpp b/src/mame/drivers/deco32.cpp
index ba3914169eb..ef427c25260 100644
--- a/src/mame/drivers/deco32.cpp
+++ b/src/mame/drivers/deco32.cpp
@@ -1963,7 +1963,7 @@ MACHINE_CONFIG_START(fghthist_state::fghthist)
audiocpu.add_route(ALL_OUTPUTS, "lspeaker", 0); // internal sound unused
audiocpu.add_route(ALL_OUTPUTS, "rspeaker", 0);
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(XTAL(28'000'000) / 4, 442, 0, 320, 274, 8, 248)
@@ -2095,7 +2095,7 @@ MACHINE_CONFIG_START(dragngun_state::dragngun)
MCFG_DECO_IRQ_RASTER2_IRQ_CB(WRITELINE("irq_merger", input_merger_any_high_device, in_w<0>))
MCFG_DECO_IRQ_VBLANK_IRQ_CB(WRITELINE("irq_merger", input_merger_any_high_device, in_w<1>))
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -2229,7 +2229,7 @@ MACHINE_CONFIG_START(dragngun_state::lockload)
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* to improve main<->audio comms */
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -2315,7 +2315,7 @@ MACHINE_CONFIG_START(nslasher_state::tattass)
MCFG_DEVICE_PROGRAM_MAP(tattass_map)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", deco32_state, irq0_line_assert)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C76_8BIT)
+ EEPROM_93C76_8BIT(config, "eeprom");
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(XTAL(28'000'000) / 4, 442, 0, 320, 274, 8, 248)
@@ -2394,7 +2394,7 @@ MACHINE_CONFIG_START(nslasher_state::nslasher)
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* to improve main<->audio comms */
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(XTAL(28'322'000) / 4, 442, 0, 320, 274, 8, 248)
diff --git a/src/mame/drivers/deco_mlc.cpp b/src/mame/drivers/deco_mlc.cpp
index a8aec9602c7..ac76f7d9094 100644
--- a/src/mame/drivers/deco_mlc.cpp
+++ b/src/mame/drivers/deco_mlc.cpp
@@ -513,7 +513,7 @@ MACHINE_CONFIG_START(deco_mlc_state::avengrgs)
MCFG_DEVICE_ADD(m_maincpu, SH2, 42000000/2) /* 21 MHz clock confirmed on real board */
MCFG_DEVICE_PROGRAM_MAP(avengrgs_map)
- MCFG_DEVICE_ADD(m_eeprom, EEPROM_SERIAL_93C46_16BIT) /* Actually 93c45 */
+ EEPROM_93C46_16BIT(config, m_eeprom); /* Actually 93c45 */
MCFG_TIMER_DRIVER_ADD(m_raster_irq_timer, deco_mlc_state, interrupt_gen)
@@ -546,7 +546,7 @@ MACHINE_CONFIG_START(deco_mlc_state::mlc)
MCFG_DEVICE_ADD(m_maincpu, ARM,42000000/6) /* 42 MHz -> 7MHz clock confirmed on real board */
MCFG_DEVICE_PROGRAM_MAP(decomlc_map)
- MCFG_DEVICE_ADD(m_eeprom, EEPROM_SERIAL_93C46_16BIT) /* Actually 93c45 */
+ EEPROM_93C46_16BIT(config, m_eeprom); /* Actually 93c45 */
MCFG_TIMER_DRIVER_ADD(m_raster_irq_timer, deco_mlc_state, interrupt_gen)
diff --git a/src/mame/drivers/dkong.cpp b/src/mame/drivers/dkong.cpp
index c8e760fb189..f97d0483899 100644
--- a/src/mame/drivers/dkong.cpp
+++ b/src/mame/drivers/dkong.cpp
@@ -1764,29 +1764,33 @@ MACHINE_CONFIG_START(dkong_state::dkong2b)
MCFG_WATCHDOG_ADD("watchdog")
MACHINE_CONFIG_END
-MACHINE_CONFIG_START(dkong_state::dk_braze)
+void dkong_state::dk_braze(machine_config &config)
+{
dkong2b(config);
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_8BIT)
-MACHINE_CONFIG_END
+ EEPROM_93C46_8BIT(config, "eeprom");
+}
-MACHINE_CONFIG_START(dkong_state::dkj_braze)
+void dkong_state::dkj_braze(machine_config &config)
+{
dkongjr(config);
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_8BIT)
-MACHINE_CONFIG_END
+ EEPROM_93C46_8BIT(config, "eeprom");
+}
-MACHINE_CONFIG_START(dkong_state::ddk_braze)
+void dkong_state::ddk_braze(machine_config &config)
+{
dkj_braze(config);
MCFG_MACHINE_RESET_OVERRIDE(dkong_state,ddk)
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(dkong_state::dk3_braze)
+void dkong_state::dk3_braze(machine_config &config)
+{
dkong3(config);
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_8BIT)
-MACHINE_CONFIG_END
+ EEPROM_93C46_8BIT(config, "eeprom");
+}
MACHINE_CONFIG_START(dkong_state::dkong3)
diff --git a/src/mame/drivers/dreambal.cpp b/src/mame/drivers/dreambal.cpp
index 58ad56e82c8..924510beee4 100644
--- a/src/mame/drivers/dreambal.cpp
+++ b/src/mame/drivers/dreambal.cpp
@@ -331,7 +331,7 @@ MACHINE_CONFIG_START(dreambal_state::dreambal)
MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_dreambal)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT) // 93lc46b
+ EEPROM_93C46_16BIT(config, "eeprom"); // 93lc46b
DECO104PROT(config, m_deco104, 0);
m_deco104->port_a_cb().set_ioport("INPUTS");
diff --git a/src/mame/drivers/dynamoah.cpp b/src/mame/drivers/dynamoah.cpp
index a3046fba105..432e4aff599 100644
--- a/src/mame/drivers/dynamoah.cpp
+++ b/src/mame/drivers/dynamoah.cpp
@@ -87,7 +87,7 @@ void dynamoah_state::dynamoah(machine_config &config)
maincpu.port_out_cb<1>().append(FUNC(dynamoah_state::p1_w)).mask(0x1f);
maincpu.port_out_cb<3>().set(FUNC(dynamoah_state::p3_w));
- EEPROM_SERIAL_93C46_16BIT(config, "eeprom");
+ EEPROM_93C46_16BIT(config, "eeprom");
}
static INPUT_PORTS_START(dynamoah)
diff --git a/src/mame/drivers/eolith.cpp b/src/mame/drivers/eolith.cpp
index 931c2056844..91a603af74f 100644
--- a/src/mame/drivers/eolith.cpp
+++ b/src/mame/drivers/eolith.cpp
@@ -551,9 +551,9 @@ MACHINE_CONFIG_START(eolith_state::eolith45)
MCFG_MACHINE_RESET_OVERRIDE(eolith_state,eolith)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C66_8BIT)
- MCFG_EEPROM_ERASE_TIME(attotime::from_usec(250))
- MCFG_EEPROM_WRITE_TIME(attotime::from_usec(250))
+ EEPROM_93C66_8BIT(config, "eeprom")
+ .erase_time(attotime::from_usec(250))
+ .write_time(attotime::from_usec(250));
// for testing sound sync
// MCFG_QUANTUM_PERFECT_CPU("maincpu")
diff --git a/src/mame/drivers/eolith16.cpp b/src/mame/drivers/eolith16.cpp
index 3c024fc014d..0f96db14d53 100644
--- a/src/mame/drivers/eolith16.cpp
+++ b/src/mame/drivers/eolith16.cpp
@@ -164,7 +164,7 @@ MACHINE_CONFIG_START(eolith16_state::eolith16)
MCFG_DEVICE_PROGRAM_MAP(eolith16_map)
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", eolith16_state, eolith_speedup, "screen", 0, 1)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C66_8BIT)
+ EEPROM_93C66_8BIT(config, "eeprom");
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/eprom.cpp b/src/mame/drivers/eprom.cpp
index fee4ddc90c5..969d14c8f2e 100644
--- a/src/mame/drivers/eprom.cpp
+++ b/src/mame/drivers/eprom.cpp
@@ -397,8 +397,7 @@ MACHINE_CONFIG_START(eprom_state::eprom)
m_adc->in_callback<2>().set_ioport("ADC2");
m_adc->in_callback<3>().set_ioport("ADC3");
- MCFG_EEPROM_2804_ADD("eeprom")
- MCFG_EEPROM_28XX_LOCK_AFTER_WRITE(true)
+ EEPROM_2804(config, "eeprom").lock_after_write(true);
MCFG_WATCHDOG_ADD("watchdog")
@@ -440,8 +439,7 @@ MACHINE_CONFIG_START(eprom_state::klaxp)
MCFG_QUANTUM_TIME(attotime::from_hz(600))
- MCFG_EEPROM_2804_ADD("eeprom")
- MCFG_EEPROM_28XX_LOCK_AFTER_WRITE(true)
+ EEPROM_2804(config, "eeprom").lock_after_write(true);
MCFG_WATCHDOG_ADD("watchdog")
@@ -488,8 +486,7 @@ MACHINE_CONFIG_START(eprom_state::guts)
m_adc->in_callback<2>().set_ioport("ADC2");
m_adc->in_callback<3>().set_ioport("ADC3");
- MCFG_EEPROM_2804_ADD("eeprom")
- MCFG_EEPROM_28XX_LOCK_AFTER_WRITE(true)
+ EEPROM_2804(config, "eeprom").lock_after_write(true);
MCFG_WATCHDOG_ADD("watchdog")
diff --git a/src/mame/drivers/esd16.cpp b/src/mame/drivers/esd16.cpp
index bb36f857c24..9d6edcb8d34 100644
--- a/src/mame/drivers/esd16.cpp
+++ b/src/mame/drivers/esd16.cpp
@@ -706,7 +706,7 @@ MACHINE_CONFIG_START(esd16_state::hedpanio)
MCFG_DEVICE_MODIFY("maincpu")
MCFG_DEVICE_PROGRAM_MAP(hedpanic_map)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
MACHINE_CONFIG_END
/* The ESD 08-26-1999 PCBs take that further and modify the sprite offsets */
diff --git a/src/mame/drivers/f-32.cpp b/src/mame/drivers/f-32.cpp
index d8d328b591e..979a48f7b19 100644
--- a/src/mame/drivers/f-32.cpp
+++ b/src/mame/drivers/f-32.cpp
@@ -175,9 +175,9 @@ MACHINE_CONFIG_START(mosaicf2_state::mosaicf2)
MCFG_DEVICE_IO_MAP(mosaicf2_io)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", mosaicf2_state, irq0_line_hold)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
- MCFG_EEPROM_ERASE_TIME(attotime::from_usec(1))
- MCFG_EEPROM_WRITE_TIME(attotime::from_usec(1))
+ EEPROM_93C46_16BIT(config, "eeprom")
+ .erase_time(attotime::from_usec(1))
+ .write_time(attotime::from_usec(1));
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -254,9 +254,9 @@ MACHINE_CONFIG_START(mosaicf2_state::royalpk2)
MCFG_DEVICE_IO_MAP(royalpk2_io)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", mosaicf2_state, irq1_line_hold)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
- MCFG_EEPROM_ERASE_TIME(attotime::from_usec(1))
- MCFG_EEPROM_WRITE_TIME(attotime::from_usec(1))
+ EEPROM_93C46_16BIT(config, "eeprom")
+ .erase_time(attotime::from_usec(1))
+ .write_time(attotime::from_usec(1));
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/fcrash.cpp b/src/mame/drivers/fcrash.cpp
index a235c88e07c..97d98393e6b 100644
--- a/src/mame/drivers/fcrash.cpp
+++ b/src/mame/drivers/fcrash.cpp
@@ -2167,7 +2167,7 @@ MACHINE_CONFIG_START(cps_state::dinopic)
MCFG_MACHINE_START_OVERRIDE(cps_state, dinopic)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_8BIT)
+ EEPROM_93C46_8BIT(config, "eeprom");
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -2337,7 +2337,7 @@ MACHINE_CONFIG_START(cps_state::sgyxz)
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_cps1)
MCFG_PALETTE_ADD("palette", 0xc00)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_8BIT)
+ EEPROM_93C46_8BIT(config, "eeprom");
/* sound hardware */
SPEAKER(config, "mono").front_center();
@@ -2449,7 +2449,7 @@ MACHINE_CONFIG_START(cps_state::punipic)
MCFG_MACHINE_START_OVERRIDE(cps_state, punipic)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_8BIT)
+ EEPROM_93C46_8BIT(config, "eeprom");
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -3019,7 +3019,7 @@ MACHINE_CONFIG_START(cps_state::slampic)
MCFG_MACHINE_START_OVERRIDE(cps_state, slampic)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_8BIT)
+ EEPROM_93C46_8BIT(config, "eeprom");
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/feversoc.cpp b/src/mame/drivers/feversoc.cpp
index 59627ff3afd..2191159a966 100644
--- a/src/mame/drivers/feversoc.cpp
+++ b/src/mame/drivers/feversoc.cpp
@@ -311,7 +311,7 @@ MACHINE_CONFIG_START(feversoc_state::feversoc)
MCFG_DEVICE_ADD("oki", OKIM6295, MASTER_CLOCK/16, okim6295_device::PIN7_LOW) //pin 7 & frequency not verified (clock should be 28,6363 / n)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.6)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C56_16BIT)
+ EEPROM_93C56_16BIT(config, "eeprom");
MCFG_JRC6355E_ADD("rtc", XTAL(32'768))
diff --git a/src/mame/drivers/fireball.cpp b/src/mame/drivers/fireball.cpp
index 32acd4d2e01..24e9f7e7d72 100644
--- a/src/mame/drivers/fireball.cpp
+++ b/src/mame/drivers/fireball.cpp
@@ -503,7 +503,7 @@ MACHINE_CONFIG_START(fireball_state::fireball)
MCFG_MCS51_PORT_P3_OUT_CB(WRITE8(*this, fireball_state, p3_w))
MCFG_TIMER_DRIVER_ADD_PERIODIC("int_0", fireball_state, int_0, attotime::from_hz(555)) //9ms from scope reading 111Hz take care of this in the handler
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_X24C44_16BIT)
+ EEPROM_X24C44_16BIT(config, "eeprom");
/* sound hardware */
SPEAKER(config, "mono").front_center();
diff --git a/src/mame/drivers/fortecar.cpp b/src/mame/drivers/fortecar.cpp
index 1cd84c14245..062d9c18398 100644
--- a/src/mame/drivers/fortecar.cpp
+++ b/src/mame/drivers/fortecar.cpp
@@ -701,8 +701,7 @@ MACHINE_CONFIG_START(fortecar_state::fortecar)
MCFG_SCREEN_UPDATE_DRIVER(fortecar_state, screen_update)
MCFG_SCREEN_PALETTE("palette")
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C56_16BIT)
- MCFG_EEPROM_DEFAULT_VALUE(0)
+ EEPROM_93C56_16BIT(config, "eeprom").default_value(0);
MCFG_DEVICE_ADD("fcppi0", I8255A, 0)
/* Init with 0x9a... A, B and high C as input
diff --git a/src/mame/drivers/fromanc2.cpp b/src/mame/drivers/fromanc2.cpp
index 13b2e4f8e80..8cc1008c5ee 100644
--- a/src/mame/drivers/fromanc2.cpp
+++ b/src/mame/drivers/fromanc2.cpp
@@ -518,7 +518,7 @@ MACHINE_CONFIG_START(fromanc2_state::fromanc2)
MCFG_MACHINE_START_OVERRIDE(fromanc2_state,fromanc2)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
/* video hardware */
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "lpalette", gfx_fromanc2)
@@ -578,7 +578,7 @@ MACHINE_CONFIG_START(fromanc2_state::fromancr)
MCFG_MACHINE_START_OVERRIDE(fromanc2_state,fromanc2)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
/* video hardware */
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "lpalette", gfx_fromancr)
@@ -634,7 +634,7 @@ MACHINE_CONFIG_START(fromanc2_state::fromanc4)
MCFG_MACHINE_START_OVERRIDE(fromanc2_state,fromanc4)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
MCFG_DEVICE_ADD("uart", NS16550, 2000000) // actual type is TL16C550CFN; clock unknown
MCFG_INS8250_OUT_INT_CB(INPUTLINE("maincpu", M68K_IRQ_2))
diff --git a/src/mame/drivers/gaelco2.cpp b/src/mame/drivers/gaelco2.cpp
index c4aa69b9b8c..9023804abdb 100644
--- a/src/mame/drivers/gaelco2.cpp
+++ b/src/mame/drivers/gaelco2.cpp
@@ -710,7 +710,7 @@ MACHINE_CONFIG_START(bang_state::bang)
MCFG_DEVICE_PROGRAM_MAP(bang_map)
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", bang_state, bang_irq, "screen", 0, 1)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C66_16BIT)
+ EEPROM_93C66_16BIT(config, "eeprom");
LS259(config, m_mainlatch);
m_mainlatch->q_out_cb<0>().set(FUNC(gaelco2_state::coin1_counter_w));
@@ -1560,7 +1560,7 @@ MACHINE_CONFIG_START(gaelco2_state::snowboar)
MCFG_DEVICE_PROGRAM_MAP(snowboar_map)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", gaelco2_state, irq6_line_hold)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C66_16BIT)
+ EEPROM_93C66_16BIT(config, "eeprom");
LS259(config, m_mainlatch);
m_mainlatch->q_out_cb<0>().set(FUNC(gaelco2_state::coin1_counter_w));
@@ -1603,7 +1603,7 @@ MACHINE_CONFIG_START(gaelco2_state::maniacsqs)
MCFG_DEVICE_PROGRAM_MAP(snowboar_map)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", gaelco2_state, irq6_line_hold)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C66_16BIT)
+ EEPROM_93C66_16BIT(config, "eeprom");
LS259(config, m_mainlatch);
m_mainlatch->q_out_cb<0>().set(FUNC(gaelco2_state::coin1_counter_w));
diff --git a/src/mame/drivers/gaelco3d.cpp b/src/mame/drivers/gaelco3d.cpp
index 61a28c5c54e..67b676f657a 100644
--- a/src/mame/drivers/gaelco3d.cpp
+++ b/src/mame/drivers/gaelco3d.cpp
@@ -939,7 +939,7 @@ MACHINE_CONFIG_START(gaelco3d_state::gaelco3d)
MCFG_DEVICE_PROGRAM_MAP(adsp_program_map)
MCFG_DEVICE_DATA_MAP(adsp_data_map)
- MCFG_DEVICE_ADD(m_eeprom, EEPROM_SERIAL_93C66_16BIT, eeprom_serial_streaming::ENABLE)
+ EEPROM_93C66_16BIT(config, m_eeprom, eeprom_serial_streaming::ENABLE);
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
diff --git a/src/mame/drivers/galastrm.cpp b/src/mame/drivers/galastrm.cpp
index ee7a9f682f3..1dd4d969252 100644
--- a/src/mame/drivers/galastrm.cpp
+++ b/src/mame/drivers/galastrm.cpp
@@ -206,7 +206,7 @@ MACHINE_CONFIG_START(galastrm_state::galastrm)
MCFG_DEVICE_PROGRAM_MAP(galastrm_map)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", galastrm_state, galastrm_interrupt) /* VBL */
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
adc0809_device &adc(ADC0809(config, "adc", 500000)); // unknown clock
adc.eoc_ff_callback().set_inputline("maincpu", 6);
diff --git a/src/mame/drivers/galgames.cpp b/src/mame/drivers/galgames.cpp
index 065f6706fdd..a831ffb081c 100644
--- a/src/mame/drivers/galgames.cpp
+++ b/src/mame/drivers/galgames.cpp
@@ -158,9 +158,10 @@ protected:
DEFINE_DEVICE_TYPE(GALGAMES_BIOS_CART, galgames_bios_cart_device, "galgames_bios_cart", "Galaxy Games BIOS Cartridge")
-MACHINE_CONFIG_START(galgames_bios_cart_device::device_add_mconfig)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C76_8BIT)
-MACHINE_CONFIG_END
+void galgames_bios_cart_device::device_add_mconfig(machine_config &config)
+{
+ EEPROM_93C76_8BIT(config, "eeprom");
+}
#define MCFG_GALGAMES_BIOS_CART_ADD(_tag, _cart) \
MCFG_DEVICE_ADD(_tag, GALGAMES_BIOS_CART, 0) \
@@ -189,7 +190,7 @@ MACHINE_CONFIG_START(galgames_starpak2_cart_device::device_add_mconfig)
MCFG_PIC16C5x_READ_B_CB( READ8( *this, galgames_cart_device, int_pic_data_r))
MCFG_PIC16C5x_WRITE_B_CB(WRITE8(*this, galgames_cart_device, int_pic_data_w))
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C76_8BIT)
+ EEPROM_93C76_8BIT(config, "eeprom");
MACHINE_CONFIG_END
#define MCFG_GALGAMES_STARPAK2_CART_ADD(_tag, _cart) \
@@ -221,7 +222,7 @@ MACHINE_CONFIG_START(galgames_starpak3_cart_device::device_add_mconfig)
MCFG_PIC16C5x_READ_B_CB( READ8( *this, galgames_cart_device, int_pic_data_r))
MCFG_PIC16C5x_WRITE_B_CB(WRITE8(*this, galgames_cart_device, int_pic_data_w))
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C76_8BIT)
+ EEPROM_93C76_8BIT(config, "eeprom");
MACHINE_CONFIG_END
#define MCFG_GALGAMES_STARPAK3_CART_ADD(_tag, _cart) \
diff --git a/src/mame/drivers/galpani2.cpp b/src/mame/drivers/galpani2.cpp
index b5524cff1e5..a7e135cc1d5 100644
--- a/src/mame/drivers/galpani2.cpp
+++ b/src/mame/drivers/galpani2.cpp
@@ -634,7 +634,7 @@ MACHINE_CONFIG_START(galpani2_state::galpani2)
MCFG_DEVICE_PROGRAM_MAP(galpani2_mem2)
MCFG_TIMER_DRIVER_ADD_SCANLINE("s_scantimer", galpani2_state, galpani2_interrupt2, "screen", 0, 1)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/galpani3.cpp b/src/mame/drivers/galpani3.cpp
index a5dbe5e8289..d37c32598af 100644
--- a/src/mame/drivers/galpani3.cpp
+++ b/src/mame/drivers/galpani3.cpp
@@ -463,7 +463,7 @@ MACHINE_CONFIG_START(galpani3_state::galpani3)
//MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 64*8-1)
MCFG_SCREEN_UPDATE_DRIVER(galpani3_state, screen_update_galpani3)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
MCFG_WATCHDOG_ADD("watchdog")
diff --git a/src/mame/drivers/gauntlet.cpp b/src/mame/drivers/gauntlet.cpp
index a23bf45ef7d..5b07a3cb922 100644
--- a/src/mame/drivers/gauntlet.cpp
+++ b/src/mame/drivers/gauntlet.cpp
@@ -496,8 +496,7 @@ MACHINE_CONFIG_START(gauntlet_state::gauntlet_base)
MCFG_DEVICE_ADD("audiocpu", M6502, ATARI_CLOCK_14MHz/8)
MCFG_DEVICE_PROGRAM_MAP(sound_map)
- MCFG_EEPROM_2804_ADD("eeprom")
- MCFG_EEPROM_28XX_LOCK_AFTER_WRITE(true)
+ EEPROM_2804(config, "eeprom").lock_after_write(true);
MCFG_WATCHDOG_ADD("watchdog")
@@ -522,7 +521,8 @@ MACHINE_CONFIG_START(gauntlet_state::gauntlet_base)
MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, gauntlet_state, video_int_write_line))
/* sound hardware */
- MCFG_ATARI_SOUND_COMM_ADD("soundcomm", "audiocpu", INPUTLINE("maincpu", M68K_IRQ_6))
+ ATARI_SOUND_COMM(config, "soundcomm", "audiocpu")
+ .int_callback().set_inputline("maincpu", M68K_IRQ_6);
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
diff --git a/src/mame/drivers/gcpinbal.cpp b/src/mame/drivers/gcpinbal.cpp
index 065dfe1543f..c866984fa59 100644
--- a/src/mame/drivers/gcpinbal.cpp
+++ b/src/mame/drivers/gcpinbal.cpp
@@ -369,7 +369,7 @@ MACHINE_CONFIG_START(gcpinbal_state::gcpinbal)
MCFG_DEVICE_PROGRAM_MAP(gcpinbal_map)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", gcpinbal_state, gcpinbal_interrupt)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
MCFG_DEVICE_ADD("watchdog", MB3773, 0)
diff --git a/src/mame/drivers/gijoe.cpp b/src/mame/drivers/gijoe.cpp
index abefb68e384..8438d5c839b 100644
--- a/src/mame/drivers/gijoe.cpp
+++ b/src/mame/drivers/gijoe.cpp
@@ -301,7 +301,7 @@ MACHINE_CONFIG_START(gijoe_state::gijoe)
MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(32'000'000)/4) /* Amuse & confirmed. Z80E at 8MHz */
MCFG_DEVICE_PROGRAM_MAP(sound_map)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_ER5911_8BIT)
+ EEPROM_ER5911_8BIT(config, "eeprom");
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/groundfx.cpp b/src/mame/drivers/groundfx.cpp
index a31365ff99f..7972bfbf788 100644
--- a/src/mame/drivers/groundfx.cpp
+++ b/src/mame/drivers/groundfx.cpp
@@ -242,7 +242,7 @@ MACHINE_CONFIG_START(groundfx_state::groundfx)
MCFG_DEVICE_PROGRAM_MAP(groundfx_map)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", groundfx_state, interrupt)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
adc0809_device &adc(ADC0809(config, "adc", 500000)); // unknown clock
adc.eoc_ff_callback().set_inputline("maincpu", 5);
diff --git a/src/mame/drivers/gticlub.cpp b/src/mame/drivers/gticlub.cpp
index 3d3802a6dd8..23d689a92ea 100644
--- a/src/mame/drivers/gticlub.cpp
+++ b/src/mame/drivers/gticlub.cpp
@@ -968,7 +968,7 @@ MACHINE_CONFIG_START(gticlub_state::gticlub)
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C56_16BIT)
+ EEPROM_93C56_16BIT(config, "eeprom");
MCFG_MACHINE_START_OVERRIDE(gticlub_state,gticlub)
MCFG_MACHINE_RESET_OVERRIDE(gticlub_state,gticlub)
@@ -1076,7 +1076,7 @@ MACHINE_CONFIG_START(gticlub_state::hangplt)
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C56_16BIT)
+ EEPROM_93C56_16BIT(config, "eeprom");
MCFG_MACHINE_START_OVERRIDE(gticlub_state,gticlub)
MCFG_MACHINE_RESET_OVERRIDE(gticlub_state,hangplt)
diff --git a/src/mame/drivers/gunbustr.cpp b/src/mame/drivers/gunbustr.cpp
index 9db657775f0..f1beed7a5d4 100644
--- a/src/mame/drivers/gunbustr.cpp
+++ b/src/mame/drivers/gunbustr.cpp
@@ -235,7 +235,7 @@ MACHINE_CONFIG_START(gunbustr_state::gunbustr)
MCFG_DEVICE_PROGRAM_MAP(gunbustr_map)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", gunbustr_state, gunbustr_interrupt) /* VBL */
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
tc0510nio_device &tc0510nio(TC0510NIO(config, "tc0510nio", 0));
tc0510nio.read_0_callback().set_ioport("EXTRA");
diff --git a/src/mame/drivers/harddriv.cpp b/src/mame/drivers/harddriv.cpp
index 977fcbc266e..024a6c59118 100644
--- a/src/mame/drivers/harddriv.cpp
+++ b/src/mame/drivers/harddriv.cpp
@@ -1489,7 +1489,8 @@ MACHINE_CONFIG_START(harddriv_state::driver_nomsp)
MCFG_QUANTUM_TIME(attotime::from_hz(30000))
MCFG_DEVICE_ADD("200e", M48T02, 0)
- MCFG_EEPROM_2816_ADD("210e") // MK48Z02
+
+ EEPROM_2816(config, "210e"); // MK48Z02
MCFG_DEVICE_ADD("duartn68681", MC68681, XTAL(3'686'400))
MCFG_MC68681_IRQ_CALLBACK(WRITELINE(*this, harddriv_state, harddriv_duart_irq_handler))
@@ -1651,8 +1652,8 @@ MACHINE_CONFIG_START(harddriv_state::dsk)
MCFG_DSP32C_OUTPUT_CALLBACK(WRITE32(*this, harddriv_state,hddsk_update_pif))
MCFG_DEVICE_PROGRAM_MAP(dsk_dsp32_map)
- MCFG_EEPROM_2816_ADD("dsk_10c") // MK48Z02
- MCFG_EEPROM_2816_ADD("dsk_30c") // MK48Z02
+ EEPROM_2816(config, "dsk_10c"); // MK48Z02
+ EEPROM_2816(config, "dsk_30c"); // MK48Z02
/* ASIC65 */
MCFG_ASIC65_ADD("asic65", ASIC65_STANDARD)
diff --git a/src/mame/drivers/hornet.cpp b/src/mame/drivers/hornet.cpp
index b51945dcf0d..33e5ba1befb 100644
--- a/src/mame/drivers/hornet.cpp
+++ b/src/mame/drivers/hornet.cpp
@@ -1082,7 +1082,7 @@ MACHINE_CONFIG_START(hornet_state::hornet)
MCFG_WATCHDOG_ADD("watchdog")
// PCB description at top doesn't mention any EEPROM on the base board...
-// MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+// EEPROM_93C46_16BIT(config, "eeprom");
MCFG_DEVICE_ADD("voodoo0", VOODOO_1, STD_VOODOO_1_CLOCK)
MCFG_VOODOO_FBMEM(2)
@@ -1210,12 +1210,13 @@ MACHINE_CONFIG_START(hornet_state::hornet_2board_v2)
MCFG_VOODOO_VBLANK_CB(WRITELINE(*this, hornet_state,voodoo_vblank_1))
MACHINE_CONFIG_END
-MACHINE_CONFIG_START(hornet_state::sscope2)
+void hornet_state::sscope2(machine_config &config)
+{
hornet_2board_v2(config);
- MCFG_DEVICE_ADD("lan_serial_id", DS2401)
- MCFG_DEVICE_ADD("lan_eeprom", EEPROM_SERIAL_93C46_16BIT)
-MACHINE_CONFIG_END
+ DS2401(config, "lan_serial_id");
+ EEPROM_93C46_16BIT(config, "lan_eeprom");
+}
/*****************************************************************************/
diff --git a/src/mame/drivers/indigo.cpp b/src/mame/drivers/indigo.cpp
index 4281179f99b..e856147d46c 100644
--- a/src/mame/drivers/indigo.cpp
+++ b/src/mame/drivers/indigo.cpp
@@ -613,7 +613,7 @@ MACHINE_CONFIG_START(indigo_state::indigo3k)
MCFG_LEGACY_SCSI_PORT("scsi")
MCFG_WD33C93_IRQ_CB(WRITELINE(*this, indigo_state, scsi_irq)) /* command completion IRQ */
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C56_16BIT)
+ EEPROM_93C56_16BIT(config, "eeprom");
MACHINE_CONFIG_END
MACHINE_CONFIG_START(indigo_state::indigo4k)
diff --git a/src/mame/drivers/inufuku.cpp b/src/mame/drivers/inufuku.cpp
index 8611fd52628..28425002790 100644
--- a/src/mame/drivers/inufuku.cpp
+++ b/src/mame/drivers/inufuku.cpp
@@ -346,7 +346,7 @@ MACHINE_CONFIG_START(inufuku_state::inufuku)
/* IRQs are triggered by the YM2610 */
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/invqix.cpp b/src/mame/drivers/invqix.cpp
index 02b865e8a79..c3476c39b4f 100644
--- a/src/mame/drivers/invqix.cpp
+++ b/src/mame/drivers/invqix.cpp
@@ -357,8 +357,7 @@ MACHINE_CONFIG_START(invqix_state::invqix)
MCFG_SOUND_ROUTE(0, "lspeaker", 0.80)
MCFG_SOUND_ROUTE(1, "rspeaker", 0.80)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
- MCFG_EEPROM_DEFAULT_VALUE(0)
+ EEPROM_93C46_16BIT(config, "eeprom").default_value(0);
MACHINE_CONFIG_END
ROM_START( invqix )
diff --git a/src/mame/drivers/jackpool.cpp b/src/mame/drivers/jackpool.cpp
index e97ebc18b91..6a745594303 100644
--- a/src/mame/drivers/jackpool.cpp
+++ b/src/mame/drivers/jackpool.cpp
@@ -266,7 +266,7 @@ MACHINE_CONFIG_START(jackpool_state::jackpool)
latch3.q_out_cb<1>().set("eeprom", FUNC(eeprom_serial_93cxx_device::clk_write));
latch3.q_out_cb<2>().set("eeprom", FUNC(eeprom_serial_93cxx_device::di_write));
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
MCFG_DEVICE_ADD("uart", NS16550, 1843200) // exact type and clock unknown
diff --git a/src/mame/drivers/jaguar.cpp b/src/mame/drivers/jaguar.cpp
index 99f643a799b..d6506e366fc 100644
--- a/src/mame/drivers/jaguar.cpp
+++ b/src/mame/drivers/jaguar.cpp
@@ -1944,7 +1944,7 @@ MACHINE_CONFIG_START(jaguar_state::jaguar)
/* software lists */
MCFG_SOFTWARE_LIST_ADD("cart_list","jaguar")
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
MACHINE_CONFIG_END
MACHINE_CONFIG_START(jaguar_state::jaguarcd)
diff --git a/src/mame/drivers/jchan.cpp b/src/mame/drivers/jchan.cpp
index cb32e894893..dc089330f62 100644
--- a/src/mame/drivers/jchan.cpp
+++ b/src/mame/drivers/jchan.cpp
@@ -637,7 +637,7 @@ MACHINE_CONFIG_START(jchan_state::jchan)
MCFG_DEVICE_ADD("toybox", KANEKO_TOYBOX, "eeprom", "DSW1", "mcuram", "mcudata")
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
/* sound hardware */
SPEAKER(config, "lspeaker").front_left();
diff --git a/src/mame/drivers/jclub2.cpp b/src/mame/drivers/jclub2.cpp
index 0ce848b2cb2..6d0391eea04 100644
--- a/src/mame/drivers/jclub2.cpp
+++ b/src/mame/drivers/jclub2.cpp
@@ -1142,7 +1142,7 @@ MACHINE_CONFIG_START(jclub2o_state::jclub2o)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", jclub2o_state, irq0_line_hold)
MCFG_NVRAM_ADD_0FILL("nvram")
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_S29290_16BIT)
+ EEPROM_S29290_16BIT(config, "eeprom");
MCFG_WATCHDOG_ADD("watchdog")
MCFG_TICKET_DISPENSER_ADD("hopper1", attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_HIGH)
@@ -1176,7 +1176,7 @@ MACHINE_CONFIG_START(jclub2_state::jclub2)
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", common_state, scanline_irq, "screen", 0, 1)
MCFG_NVRAM_ADD_0FILL("nvram")
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_8BIT) // 93C46 ( 8 bits)
+ EEPROM_93C46_8BIT(config, "eeprom");
MCFG_WATCHDOG_ADD("watchdog")
MCFG_TICKET_DISPENSER_ADD("hopper1", attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_HIGH)
@@ -1211,7 +1211,7 @@ MACHINE_CONFIG_START(darkhors_state::darkhors)
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", common_state, scanline_irq, "screen", 0, 1)
MCFG_NVRAM_ADD_0FILL("nvram")
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_8BIT)
+ EEPROM_93C46_8BIT(config, "eeprom");
MCFG_WATCHDOG_ADD("watchdog")
MCFG_TICKET_DISPENSER_ADD("hopper1", attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_HIGH)
diff --git a/src/mame/drivers/joystand.cpp b/src/mame/drivers/joystand.cpp
index 5a600622a73..80879683cec 100644
--- a/src/mame/drivers/joystand.cpp
+++ b/src/mame/drivers/joystand.cpp
@@ -635,7 +635,7 @@ MACHINE_CONFIG_START(joystand_state::joystand)
MCFG_TMS_29F040_ADD("cart.u12")
// devices
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
MCFG_DEVICE_ADD("rtc", MSM6242, XTAL(32'768))
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/kaneko16.cpp b/src/mame/drivers/kaneko16.cpp
index 396ee105c1e..b706ffaedab 100644
--- a/src/mame/drivers/kaneko16.cpp
+++ b/src/mame/drivers/kaneko16.cpp
@@ -1841,7 +1841,7 @@ MACHINE_CONFIG_START(kaneko16_state::bakubrkr)
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", kaneko16_state, kaneko16_interrupt, "screen", 0, 1)
MCFG_MACHINE_RESET_OVERRIDE(kaneko16_state,gtmr)
- MCFG_DEVICE_ADD(m_eeprom, EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, m_eeprom);
WATCHDOG_TIMER(config, m_watchdog);
@@ -2050,7 +2050,7 @@ MACHINE_CONFIG_START(kaneko16_gtmr_state::gtmr)
MCFG_MACHINE_RESET_OVERRIDE(kaneko16_gtmr_state,gtmr)
- EEPROM_SERIAL_93C46_16BIT(config, m_eeprom);
+ EEPROM_93C46_16BIT(config, m_eeprom);
WATCHDOG_TIMER(config, m_watchdog);
@@ -2159,7 +2159,7 @@ MACHINE_CONFIG_START(kaneko16_state::mgcrystl)
MCFG_MACHINE_RESET_OVERRIDE(kaneko16_state,mgcrystl)
- EEPROM_SERIAL_93C46_16BIT(config, m_eeprom);
+ EEPROM_93C46_16BIT(config, m_eeprom);
WATCHDOG_TIMER(config, m_watchdog);
@@ -2278,8 +2278,7 @@ MACHINE_CONFIG_START(kaneko16_shogwarr_state::shogwarr)
MCFG_MACHINE_RESET_OVERRIDE(kaneko16_shogwarr_state,mgcrystl)
- EEPROM_SERIAL_93C46_16BIT(config, m_eeprom);
- m_eeprom->set_default_data(shogwarr_default_eeprom, 128);
+ EEPROM_93C46_16BIT(config, m_eeprom).default_data(shogwarr_default_eeprom, 128);
WATCHDOG_TIMER(config, m_watchdog);
@@ -2346,12 +2345,13 @@ void kaneko16_shogwarr_state::brapboys_oki2_map(address_map &map)
map(0x20000, 0x3ffff).bankr("okibank2");
}
-MACHINE_CONFIG_START(kaneko16_shogwarr_state::brapboys)
+void kaneko16_shogwarr_state::brapboys(machine_config &config)
+{
shogwarr(config);
m_oki[1]->set_addrmap(0, &kaneko16_shogwarr_state::brapboys_oki2_map);
m_kaneko_hit->set_type(2);
- m_eeprom->set_default_data(brapboys_default_eeprom, 128);
-MACHINE_CONFIG_END
+ m_eeprom->default_data(brapboys_default_eeprom, 128);
+}
/***************************************************************************
diff --git a/src/mame/drivers/kickgoal.cpp b/src/mame/drivers/kickgoal.cpp
index 4f0fd31529b..70b4c5bca19 100644
--- a/src/mame/drivers/kickgoal.cpp
+++ b/src/mame/drivers/kickgoal.cpp
@@ -645,8 +645,7 @@ MACHINE_CONFIG_START(kickgoal_state::kickgoal)
MCFG_DEVICE_DISABLE() /* Disabled since the internal rom isn't dumped */
/* Program and Data Maps are internal to the MCU */
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
- MCFG_EEPROM_DATA(kickgoal_default_eeprom_type1, 128)
+ EEPROM_93C46_16BIT(config, "eeprom").default_data(kickgoal_default_eeprom_type1, 128);
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -684,8 +683,7 @@ MACHINE_CONFIG_START(kickgoal_state::actionhw)
MCFG_DEVICE_DISABLE() /* Disabled since the internal rom isn't dumped */
/* Program and Data Maps are internal to the MCU */
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
- MCFG_EEPROM_DATA(kickgoal_default_eeprom_type1, 128)
+ EEPROM_93C46_16BIT(config, "eeprom").default_data(kickgoal_default_eeprom_type1, 128);
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/klax.cpp b/src/mame/drivers/klax.cpp
index 1cc01ddb2a4..fa504b03876 100644
--- a/src/mame/drivers/klax.cpp
+++ b/src/mame/drivers/klax.cpp
@@ -199,8 +199,7 @@ MACHINE_CONFIG_START(klax_state::klax)
MCFG_DEVICE_ADD("maincpu", M68000, ATARI_CLOCK_14MHz/2)
MCFG_DEVICE_PROGRAM_MAP(klax_map)
- MCFG_EEPROM_2816_ADD("eeprom")
- MCFG_EEPROM_28XX_LOCK_AFTER_WRITE(true)
+ EEPROM_2816(config, "eeprom").lock_after_write(true);
MCFG_WATCHDOG_ADD("watchdog")
diff --git a/src/mame/drivers/konamigq.cpp b/src/mame/drivers/konamigq.cpp
index 807ff4b0b1e..f590cf520c9 100644
--- a/src/mame/drivers/konamigq.cpp
+++ b/src/mame/drivers/konamigq.cpp
@@ -350,8 +350,8 @@ MACHINE_CONFIG_START(konamigq_state::konamigq)
MCFG_MACHINE_RESET_OVERRIDE(konamigq_state, konamigq)
MCFG_DEVICE_ADD("mb89371", MB89371, 0)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
- MCFG_EEPROM_DATA(konamigq_def_eeprom, 128)
+
+ EEPROM_93C46_16BIT(config, "eeprom").default_data(konamigq_def_eeprom, 128);
MCFG_DEVICE_ADD("scsi", SCSI_PORT, 0)
MCFG_SCSIDEV_ADD("scsi:" SCSI_PORT_DEVICE1, "harddisk", SCSIHD, SCSI_ID_0)
diff --git a/src/mame/drivers/konamigv.cpp b/src/mame/drivers/konamigv.cpp
index a0be81f1f04..6ee5ded6032 100644
--- a/src/mame/drivers/konamigv.cpp
+++ b/src/mame/drivers/konamigv.cpp
@@ -364,7 +364,7 @@ MACHINE_CONFIG_START(konamigv_state::konamigv)
MCFG_PSX_DMA_CHANNEL_WRITE( "maincpu", 5, psxdma_device::write_delegate(&konamigv_state::scsi_dma_write, this ) )
MCFG_DEVICE_ADD("mb89371", MB89371, 0)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
MCFG_DEVICE_ADD("scsi", SCSI_PORT, 0)
MCFG_SCSIDEV_ADD("scsi:" SCSI_PORT_DEVICE1, "cdrom", SCSICD, SCSI_ID_4)
diff --git a/src/mame/drivers/konamigx.cpp b/src/mame/drivers/konamigx.cpp
index dd0d64da26d..b050d8bb613 100644
--- a/src/mame/drivers/konamigx.cpp
+++ b/src/mame/drivers/konamigx.cpp
@@ -1633,7 +1633,7 @@ MACHINE_CONFIG_START(konamigx_state::konamigx)
MCFG_MACHINE_START_OVERRIDE(konamigx_state,konamigx)
MCFG_MACHINE_RESET_OVERRIDE(konamigx_state,konamigx)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/konendev.cpp b/src/mame/drivers/konendev.cpp
index c7778e1a663..76f296e0a11 100644
--- a/src/mame/drivers/konendev.cpp
+++ b/src/mame/drivers/konendev.cpp
@@ -327,7 +327,7 @@ MACHINE_CONFIG_START(konendev_state::konendev)
MCFG_NVRAM_ADD_0FILL("nvram0")
MCFG_NVRAM_ADD_0FILL("nvram1")
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C56_16BIT)
+ EEPROM_93C56_16BIT(config, "eeprom");
/* sound hardware */
SPEAKER(config, "lspeaker").front_left();
diff --git a/src/mame/drivers/leland.cpp b/src/mame/drivers/leland.cpp
index ec4ee28d01e..7a23e78e4b6 100644
--- a/src/mame/drivers/leland.cpp
+++ b/src/mame/drivers/leland.cpp
@@ -990,7 +990,7 @@ MACHINE_CONFIG_START(leland_state::leland)
MCFG_DEVICE_PROGRAM_MAP(slave_small_map_program)
MCFG_DEVICE_IO_MAP(slave_map_io)
- MCFG_DEVICE_ADD(m_eeprom, EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, m_eeprom);
MCFG_NVRAM_ADD_0FILL("battery")
/* video hardware */
@@ -1061,7 +1061,7 @@ MACHINE_CONFIG_START(ataxx_state::ataxx)
MCFG_DEVICE_PROGRAM_MAP(slave_map_program)
MCFG_DEVICE_IO_MAP(slave_map_io_2)
- MCFG_DEVICE_ADD(m_eeprom, EEPROM_SERIAL_93C56_16BIT, eeprom_serial_streaming::ENABLE)
+ EEPROM_93C56_16BIT(config, m_eeprom, eeprom_serial_streaming::ENABLE);
MCFG_NVRAM_ADD_0FILL("battery")
diff --git a/src/mame/drivers/lethal.cpp b/src/mame/drivers/lethal.cpp
index 4640b3d577b..4fef5090a29 100644
--- a/src/mame/drivers/lethal.cpp
+++ b/src/mame/drivers/lethal.cpp
@@ -501,7 +501,7 @@ MACHINE_CONFIG_START(lethal_state::lethalen)
ADDRESS_MAP_BANK(config, "bank4000").set_map(&lethal_state::bank4000_map).set_options(ENDIANNESS_BIG, 8, 16, 0x4000);
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_ER5911_8BIT)
+ EEPROM_ER5911_8BIT(config, "eeprom");
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/limenko.cpp b/src/mame/drivers/limenko.cpp
index 1a1661d8e81..675301cda37 100644
--- a/src/mame/drivers/limenko.cpp
+++ b/src/mame/drivers/limenko.cpp
@@ -711,7 +711,7 @@ MACHINE_CONFIG_START(limenko_state::limenko)
MCFG_DEVICE_IO_MAP(limenko_io_map)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", limenko_state, irq0_line_hold)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -756,7 +756,7 @@ MACHINE_CONFIG_START(limenko_state::spotty)
MCFG_MCS51_PORT_P3_IN_CB(READ8(*this, limenko_state, spotty_sound_cmd_r))
MCFG_MCS51_PORT_P3_OUT_CB(WRITE8(*this, limenko_state, spotty_sound_cmd_w)) //not sure about anything...
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/lordgun.cpp b/src/mame/drivers/lordgun.cpp
index dd646a77d8f..e85126c0dca 100644
--- a/src/mame/drivers/lordgun.cpp
+++ b/src/mame/drivers/lordgun.cpp
@@ -662,7 +662,7 @@ MACHINE_CONFIG_START(lordgun_state::lordgun)
MCFG_I8255_IN_PORTC_CB(IOPORT("COIN"))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, lordgun_state, fake_w))
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
@@ -714,7 +714,7 @@ MACHINE_CONFIG_START(lordgun_state::aliencha)
MCFG_I8255_IN_PORTC_CB(IOPORT("COIN"))
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, lordgun_state, fake_w))
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
diff --git a/src/mame/drivers/mastboy.cpp b/src/mame/drivers/mastboy.cpp
index 17bc8e9f872..816492a6d9f 100644
--- a/src/mame/drivers/mastboy.cpp
+++ b/src/mame/drivers/mastboy.cpp
@@ -813,7 +813,7 @@ MACHINE_CONFIG_START(mastboy_state::mastboy)
MCFG_DEVICE_PROGRAM_MAP(mastboy_map)
MCFG_DEVICE_IO_MAP(mastboy_io_map)
- MCFG_EEPROM_2816_ADD("earom")
+ EEPROM_2816(config, "earom");
LS259(config, m_outlatch); // IC17
m_outlatch->q_out_cb<0>().set(FUNC(mastboy_state::irq0_ack_w));
diff --git a/src/mame/drivers/metro.cpp b/src/mame/drivers/metro.cpp
index b604a922d67..db553296ae9 100644
--- a/src/mame/drivers/metro.cpp
+++ b/src/mame/drivers/metro.cpp
@@ -3446,7 +3446,7 @@ MACHINE_CONFIG_START(metro_state::dokyusp)
MCFG_DEVICE_PROGRAM_MAP(dokyusp_map)
MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(metro_state,metro_irq_callback)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
MCFG_WATCHDOG_ADD("watchdog")
@@ -3474,7 +3474,7 @@ MACHINE_CONFIG_START(metro_state::gakusai)
MCFG_DEVICE_PROGRAM_MAP(gakusai_map)
MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(metro_state,metro_irq_callback)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
MCFG_WATCHDOG_ADD("watchdog")
@@ -3503,7 +3503,7 @@ MACHINE_CONFIG_START(metro_state::gakusai2)
MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(metro_state,metro_irq_callback)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
MCFG_WATCHDOG_ADD("watchdog")
diff --git a/src/mame/drivers/mhavoc.cpp b/src/mame/drivers/mhavoc.cpp
index 3c012bcf564..d6e952a1619 100644
--- a/src/mame/drivers/mhavoc.cpp
+++ b/src/mame/drivers/mhavoc.cpp
@@ -525,7 +525,7 @@ MACHINE_CONFIG_START(mhavoc_state::mhavoc)
MCFG_DEVICE_ADD("gamma", M6502, MHAVOC_CLOCK_1_25M) /* 1.25 MHz */
MCFG_DEVICE_PROGRAM_MAP(gamma_map)
- MCFG_EEPROM_2804_ADD("eeprom")
+ EEPROM_2804(config, "eeprom");
MCFG_TIMER_DRIVER_ADD_PERIODIC("5k_timer", mhavoc_state, mhavoc_cpu_irq_clock, attotime::from_hz(MHAVOC_CLOCK_5K))
diff --git a/src/mame/drivers/microterm.cpp b/src/mame/drivers/microterm.cpp
index d8e00c718d5..beb1785ff17 100644
--- a/src/mame/drivers/microterm.cpp
+++ b/src/mame/drivers/microterm.cpp
@@ -107,7 +107,7 @@ MACHINE_CONFIG_START(microterm_state::mt420)
MC2661(config, "aci", XTAL(3'686'400)); // SCN2641
- EEPROM_SERIAL_93C46_16BIT(config, "eeprom").do_callback().set("duart", FUNC(scn2681_device::ip6_w));
+ EEPROM_93C46_16BIT(config, "eeprom").do_callback().set("duart", FUNC(scn2681_device::ip6_w));
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(XTAL(9'877'680), 612, 0, 480, 269, 0, 250)
@@ -136,9 +136,9 @@ MACHINE_CONFIG_START(microterm_state::mt5510)
duart.outport_cb().append("eeprom1", FUNC(eeprom_serial_93cxx_device::clk_write)).bit(3);
duart.outport_cb().append("eeprom2", FUNC(eeprom_serial_93cxx_device::clk_write)).bit(3);
- EEPROM_SERIAL_93C46_16BIT(config, "eeprom1").do_callback().set("duart", FUNC(scn2681_device::ip6_w));
+ EEPROM_93C46_16BIT(config, "eeprom1").do_callback().set("duart", FUNC(scn2681_device::ip6_w));
- EEPROM_SERIAL_93C46_16BIT(config, "eeprom2").do_callback().set("duart", FUNC(scn2681_device::ip5_w));
+ EEPROM_93C46_16BIT(config, "eeprom2").do_callback().set("duart", FUNC(scn2681_device::ip5_w));
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(XTAL(45'830'400) / 2, 1120, 0, 960, 341, 0, 300) // wild guess at resolution
diff --git a/src/mame/drivers/midas.cpp b/src/mame/drivers/midas.cpp
index 3ac21029920..02c607cee10 100644
--- a/src/mame/drivers/midas.cpp
+++ b/src/mame/drivers/midas.cpp
@@ -639,7 +639,7 @@ MACHINE_CONFIG_START(midas_state::livequiz)
MCFG_DEVICE_PROGRAM_MAP(livequiz_map)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", midas_state, irq1_line_hold)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -668,7 +668,7 @@ MACHINE_CONFIG_START(midas_state::hammer)
MCFG_DEVICE_PROGRAM_MAP(hammer_map)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", midas_state, irq1_line_hold)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
MCFG_TICKET_DISPENSER_ADD("prize1", attotime::from_msec(1000*5), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW )
MCFG_TICKET_DISPENSER_ADD("prize2", attotime::from_msec(1000*5), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW )
diff --git a/src/mame/drivers/mirage.cpp b/src/mame/drivers/mirage.cpp
index 363c5ba2f33..46f77095dfa 100644
--- a/src/mame/drivers/mirage.cpp
+++ b/src/mame/drivers/mirage.cpp
@@ -298,7 +298,7 @@ MACHINE_CONFIG_START(miragemj_state::mirage)
MCFG_DEVICE_PROGRAM_MAP(mirage_map)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", miragemj_state, irq6_line_hold)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT) // 93C45
+ EEPROM_93C46_16BIT(config, "eeprom"); // 93C45
/* video hardware */
MCFG_DEVICE_ADD("spriteram", BUFFERED_SPRITERAM16)
diff --git a/src/mame/drivers/mitchell.cpp b/src/mame/drivers/mitchell.cpp
index 827a9013c2d..a868a9e5c99 100644
--- a/src/mame/drivers/mitchell.cpp
+++ b/src/mame/drivers/mitchell.cpp
@@ -1172,7 +1172,7 @@ MACHINE_CONFIG_START(mitchell_state::mgakuen)
MCFG_MACHINE_START_OVERRIDE(mitchell_state,mitchell)
MCFG_MACHINE_RESET_OVERRIDE(mitchell_state,mitchell)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1213,7 +1213,7 @@ MACHINE_CONFIG_START(mitchell_state::pang)
MCFG_MACHINE_START_OVERRIDE(mitchell_state,mitchell)
MCFG_MACHINE_RESET_OVERRIDE(mitchell_state,mitchell)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1368,7 +1368,7 @@ MACHINE_CONFIG_START(mitchell_state::marukin)
MCFG_DEVICE_OPCODES_MAP(decrypted_opcodes_map)
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", mitchell_state, mitchell_irq, "screen", 0, 1)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1423,7 +1423,7 @@ MACHINE_CONFIG_START(mitchell_state::pkladiesbl)
MCFG_DEVICE_OPCODES_MAP(decrypted_opcodes_map)
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", mitchell_state, mitchell_irq, "screen", 0, 1)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/model2.cpp b/src/mame/drivers/model2.cpp
index de38ea467a5..3f330f4192a 100644
--- a/src/mame/drivers/model2.cpp
+++ b/src/mame/drivers/model2.cpp
@@ -2653,7 +2653,7 @@ MACHINE_CONFIG_START(model2a_state::model2a)
MCFG_MACHINE_START_OVERRIDE(model2_tgp_state,model2_tgp)
MCFG_MACHINE_RESET_OVERRIDE(model2a_state,model2a)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
MCFG_NVRAM_ADD_1FILL("backup1")
sega_315_5649_device &io(SEGA_315_5649(config, "io", 0));
@@ -2778,7 +2778,7 @@ MACHINE_CONFIG_START(model2b_state::model2b)
MCFG_MACHINE_START_OVERRIDE(model2b_state,model2b)
MCFG_MACHINE_RESET_OVERRIDE(model2b_state,model2b)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
MCFG_NVRAM_ADD_1FILL("backup1")
sega_315_5649_device &io(SEGA_315_5649(config, "io", 0));
@@ -2901,7 +2901,7 @@ MACHINE_CONFIG_START(model2c_state::model2c)
MCFG_MACHINE_START_OVERRIDE(model2c_state,model2c)
MCFG_MACHINE_RESET_OVERRIDE(model2c_state,model2c)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
MCFG_NVRAM_ADD_1FILL("backup1")
sega_315_5649_device &io(SEGA_315_5649(config, "io", 0));
diff --git a/src/mame/drivers/model3.cpp b/src/mame/drivers/model3.cpp
index 7af0b626045..8e31ee66491 100644
--- a/src/mame/drivers/model3.cpp
+++ b/src/mame/drivers/model3.cpp
@@ -5501,7 +5501,7 @@ void model3_state::add_base_devices(machine_config &config)
M68000(config, m_audiocpu, 12000000);
m_audiocpu->set_addrmap(AS_PROGRAM, &model3_state::model3_snd);
- EEPROM_SERIAL_93C46_16BIT(config, m_eeprom);
+ EEPROM_93C46_16BIT(config, m_eeprom);
NVRAM(config, "backup", nvram_device::DEFAULT_ALL_1);
RTC72421(config, m_rtc, XTAL(32'768)); // internal oscillator
diff --git a/src/mame/drivers/moo.cpp b/src/mame/drivers/moo.cpp
index 0f3fda2896a..6e18fbe8f27 100644
--- a/src/mame/drivers/moo.cpp
+++ b/src/mame/drivers/moo.cpp
@@ -507,7 +507,7 @@ MACHINE_CONFIG_START(moo_state::moo)
MCFG_MACHINE_START_OVERRIDE(moo_state,moo)
MCFG_MACHINE_RESET_OVERRIDE(moo_state,moo)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_ER5911_8BIT)
+ EEPROM_ER5911_8BIT(config, "eeprom");
MCFG_DEVICE_ADD("k053252", K053252, XTAL(32'000'000)/4) // 8MHz
MCFG_K053252_OFFSETS(40, 16)
@@ -567,7 +567,7 @@ MACHINE_CONFIG_START(moo_state::moobl)
MCFG_MACHINE_START_OVERRIDE(moo_state,moo)
MCFG_MACHINE_RESET_OVERRIDE(moo_state,moo)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_ER5911_8BIT)
+ EEPROM_ER5911_8BIT(config, "eeprom");
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/mystwarr.cpp b/src/mame/drivers/mystwarr.cpp
index ef14d0efdd9..d1b78246187 100644
--- a/src/mame/drivers/mystwarr.cpp
+++ b/src/mame/drivers/mystwarr.cpp
@@ -952,7 +952,7 @@ MACHINE_CONFIG_START(mystwarr_state::mystwarr)
MCFG_QUANTUM_TIME(attotime::from_hz(1920))
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_ER5911_8BIT)
+ EEPROM_ER5911_8BIT(config, "eeprom");
MCFG_DEVICE_ADD("k053252", K053252, 6000000) // 6 MHz?
MCFG_K053252_OFFSETS(24, 16)
diff --git a/src/mame/drivers/namcona1.cpp b/src/mame/drivers/namcona1.cpp
index 043732a1d09..a093999e048 100644
--- a/src/mame/drivers/namcona1.cpp
+++ b/src/mame/drivers/namcona1.cpp
@@ -730,6 +730,8 @@ void namcona1_state::machine_start()
save_item(NAME(m_mcu_port5));
save_item(NAME(m_mcu_port6));
save_item(NAME(m_mcu_port8));
+
+ m_scan_timer = timer_alloc(TIMER_SCANLINE);
}
// the MCU boots the 68000
@@ -739,6 +741,8 @@ void namcona1_state::machine_reset()
m_mcu_port4 = 0;
m_mcu_port5 = 1;
+
+ m_scan_timer->adjust(m_screen->scan_period(), 0, m_screen->scan_period());
}
// each bit of player 3's inputs is split across one of the 8 analog input ports
@@ -931,9 +935,8 @@ GFXDECODE_END
// IRQ 1 =>
// IRQ 2 =>
-TIMER_DEVICE_CALLBACK_MEMBER(namcona1_state::interrupt)
+void namcona1_state::scanline_interrupt(int scanline)
{
- int scanline = param;
int enabled = m_mEnableInterrupts ? ~m_vreg[0x1a/2] : 0;
// adc (timing guessed, when does this trigger?)
@@ -960,35 +963,41 @@ TIMER_DEVICE_CALLBACK_MEMBER(namcona1_state::interrupt)
}
}
-/* cropped at sides */
-MACHINE_CONFIG_START(namcona1_state::namcona1)
-
- /* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, MASTER_CLOCK/4)
- MCFG_DEVICE_PROGRAM_MAP(namcona1_main_map)
-
- MCFG_DEVICE_ADD("mcu", NAMCO_C69, MASTER_CLOCK/4)
- MCFG_DEVICE_PROGRAM_MAP(namcona1_mcu_map)
- MCFG_DEVICE_IO_MAP( namcona1_mcu_io_map)
+void namcona1_state::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr)
+{
+ if (id == TIMER_SCANLINE)
+ {
+ scanline_interrupt(m_screen->vpos());
+ }
+}
- MCFG_TIMER_DRIVER_ADD_SCANLINE("scan_main", namcona1_state, interrupt, "screen", 0, 1)
+void namcona1_state::c69(machine_config &config)
+{
+ NAMCO_C69(config, m_mcu, MASTER_CLOCK/4);
+ m_mcu->set_addrmap(AS_PROGRAM, &namcona1_state::namcona1_mcu_map);
+ m_mcu->set_addrmap(AS_IO, &namcona1_state::namcona1_mcu_io_map);
+}
- MCFG_EEPROM_2816_ADD("eeprom")
+/* cropped at sides */
+void namcona1_state::namcona_base(machine_config &config)
+{
+ /* basic machine hardware */
+ M68000(config, m_maincpu, MASTER_CLOCK/4);
+ m_maincpu->set_addrmap(AS_PROGRAM, &namcona1_state::namcona1_main_map);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
- MCFG_SCREEN_SIZE(40*8, 32*8)
-// MCFG_SCREEN_VISIBLE_AREA(8, 38*8-1-8, 4*8, 32*8-1)
- MCFG_SCREEN_VISIBLE_AREA(0, 38*8-1, 4*8, 32*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(namcona1_state, screen_update)
- MCFG_SCREEN_PALETTE("palette")
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_refresh_hz(60);
+ m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ m_screen->set_size(40*8, 32*8);
+// m_screen->set_visarea(8, 38*8-1-8, 4*8, 32*8-1);
+ m_screen->set_visarea(0, 38*8-1, 4*8, 32*8-1);
+ m_screen->set_screen_update(FUNC(namcona1_state::screen_update));
+ m_screen->set_palette("palette");
- MCFG_PALETTE_ADD("palette", 0x2000)
- MCFG_PALETTE_ENABLE_SHADOWS()
+ PALETTE(config, m_palette, 0x2000).enable_shadows();
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_namcona1)
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_namcona1);
/* sound hardware */
SPEAKER(config, "lspeaker").front_left();
@@ -999,31 +1008,43 @@ MACHINE_CONFIG_START(namcona1_state::namcona1)
m_c140->set_addrmap(0, &namcona1_state::namcona1_c140_map);
m_c140->add_route(0, "rspeaker", 1.00);
m_c140->add_route(1, "lspeaker", 1.00);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(namcona2_state::namcona2)
- namcona1(config);
+void namcona1_state::namcona1(machine_config &config)
+{
+ namcona_base(config);
+ c69(config);
+ EEPROM_2816(config, "eeprom");
+}
- /* basic machine hardware */
-// MCFG_DEVICE_MODIFY("maincpu")
-// MCFG_DEVICE_PROGRAM_MAP(namcona2_main_map)
+void namcona2_state::c70(machine_config &config)
+{
+ NAMCO_C70(config, m_mcu, MASTER_CLOCK/4);
+ m_mcu->set_addrmap(AS_PROGRAM, &namcona1_state::namcona1_mcu_map);
+ m_mcu->set_addrmap(AS_IO, &namcona1_state::namcona1_mcu_io_map);
+}
- MCFG_DEVICE_REPLACE("mcu", NAMCO_C70, MASTER_CLOCK/4)
- MCFG_DEVICE_PROGRAM_MAP(namcona1_mcu_map)
- MCFG_DEVICE_IO_MAP( namcona1_mcu_io_map)
-MACHINE_CONFIG_END
+void namcona2_state::namcona2(machine_config &config)
+{
+ namcona_base(config);
+ c70(config);
+ EEPROM_2816(config, "eeprom");
+
+// m_maincpu->set_addrmap(AS_PROGRAM, &namcona2_state::namcona2_main_map);
+}
-MACHINE_CONFIG_START(xday2_namcona2_state::xday2)
- namcona2(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(xday2_main_map)
+void xday2_namcona2_state::xday2(machine_config &config)
+{
+ namcona_base(config);
+ c70(config);
+
+ m_maincpu->set_addrmap(AS_PROGRAM, &xday2_namcona2_state::xday2_main_map);
- MCFG_DEVICE_REMOVE("eeprom")
- MCFG_EEPROM_2864_ADD("eeprom")
+ EEPROM_2864(config, "eeprom");
// TODO: unknown sub type
- MCFG_DEVICE_ADD("rtc", MSM6242, XTAL(32'768))
-MACHINE_CONFIG_END
+ MSM6242(config,"rtc", XTAL(32'768));
+}
/* NA-1 Hardware */
void namcona1_state::init_bkrtmaq() { m_gametype = NAMCO_BKRTMAQ; }
diff --git a/src/mame/drivers/namconb1.cpp b/src/mame/drivers/namconb1.cpp
index bbf3ab6c264..077b2be5e2f 100644
--- a/src/mame/drivers/namconb1.cpp
+++ b/src/mame/drivers/namconb1.cpp
@@ -1076,7 +1076,7 @@ MACHINE_CONFIG_START(namconb1_state::namconb1)
MCFG_DEVICE_PROGRAM_MAP(namcoc75_am)
MCFG_DEVICE_IO_MAP(namcoc75_io)
- MCFG_EEPROM_2816_ADD("eeprom")
+ EEPROM_2816(config, "eeprom");
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", namconb1_state, scantimer, "screen", 0, 1)
diff --git a/src/mame/drivers/namcos22.cpp b/src/mame/drivers/namcos22.cpp
index e1da5b35f88..f093f33c549 100644
--- a/src/mame/drivers/namcos22.cpp
+++ b/src/mame/drivers/namcos22.cpp
@@ -3789,7 +3789,7 @@ MACHINE_CONFIG_START(namcos22_state::namcos22)
MCFG_DEVICE_PROGRAM_MAP( iomcu_s22_program)
MCFG_DEVICE_IO_MAP( iomcu_s22_io)
- MCFG_EEPROM_2864_ADD("eeprom")
+ EEPROM_2864(config, "eeprom");
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -3857,7 +3857,7 @@ MACHINE_CONFIG_START(namcos22_state::namcos22s)
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
// MCFG_QUANTUM_PERFECT_CPU("maincpu")
- MCFG_EEPROM_2864_ADD("eeprom")
+ EEPROM_2864(config, "eeprom");
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/naomi.cpp b/src/mame/drivers/naomi.cpp
index 247a02715e2..5fa939828b7 100644
--- a/src/mame/drivers/naomi.cpp
+++ b/src/mame/drivers/naomi.cpp
@@ -2942,8 +2942,7 @@ MACHINE_CONFIG_START(naomi_state::naomi_base)
MCFG_DEVICE_PROGRAM_MAP(naomi_map)
MCFG_DEVICE_IO_MAP(naomi_port)
- MCFG_DEVICE_ADD("main_eeprom", EEPROM_SERIAL_93C46_16BIT)
- MCFG_EEPROM_DEFAULT_VALUE(0)
+ EEPROM_93C46_16BIT(config, "main_eeprom").default_value(0);
// high probable this MCU uses one of "fast Z80" cores, like ASCII R800, Kawasaki KC80 or similar, where clocks per instructions is much different from regular Z80.
// was made few attempts to measure CPU core clock using different methods (in term of "regular Z80" clock and cycles):
@@ -2953,7 +2952,7 @@ MACHINE_CONFIG_START(naomi_state::naomi_base)
// for now we use higher clock, otherwise earlier NAOMI BIOS revisions will not boot (see MT#06552).
MCFG_MIE_ADD("mie", 16000000, "maple_dc", 0, nullptr, nullptr, nullptr, ":MIE.3", nullptr, ":MIE.5", nullptr, nullptr)
MCFG_SEGA_837_13551_DEVICE_ADD("837_13551", "mie", ":TILT", ":P1", ":P2", ":A0", ":A1", ":A2", ":A3", ":A4", ":A5", ":A6", ":A7", ":OUTPUT")
- MCFG_DEVICE_ADD("mie_eeprom", EEPROM_SERIAL_93C46_8BIT)
+ EEPROM_93C46_8BIT(config, "mie_eeprom");
MCFG_X76F100_ADD("naomibd_eeprom")
MCFG_M3COMM_ADD("comm_board")
diff --git a/src/mame/drivers/offtwall.cpp b/src/mame/drivers/offtwall.cpp
index a24796a8cfb..42dc51800a2 100644
--- a/src/mame/drivers/offtwall.cpp
+++ b/src/mame/drivers/offtwall.cpp
@@ -341,8 +341,7 @@ MACHINE_CONFIG_START(offtwall_state::offtwall)
MCFG_DEVICE_ADD("maincpu", M68000, ATARI_CLOCK_14MHz/2)
MCFG_DEVICE_PROGRAM_MAP(main_map)
- MCFG_EEPROM_2816_ADD("eeprom")
- MCFG_EEPROM_28XX_LOCK_AFTER_WRITE(true)
+ EEPROM_2816(config, "eeprom").lock_after_write(true);
MCFG_WATCHDOG_ADD("watchdog")
diff --git a/src/mame/drivers/othunder.cpp b/src/mame/drivers/othunder.cpp
index f7232c6c7c2..412f2cd8223 100644
--- a/src/mame/drivers/othunder.cpp
+++ b/src/mame/drivers/othunder.cpp
@@ -613,7 +613,7 @@ MACHINE_CONFIG_START(othunder_state::othunder)
MCFG_DEVICE_ADD("audiocpu", Z80, 16_MHz_XTAL/2/2)
MCFG_DEVICE_PROGRAM_MAP(z80_sound_map)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
adc0808_device &adc(ADC0808(config, "adc", 16_MHz_XTAL/2/2/8));
adc.eoc_callback().set(FUNC(othunder_state::adc_eoc_w));
diff --git a/src/mame/drivers/overdriv.cpp b/src/mame/drivers/overdriv.cpp
index c9094d69ff9..8657115fdf7 100644
--- a/src/mame/drivers/overdriv.cpp
+++ b/src/mame/drivers/overdriv.cpp
@@ -345,8 +345,7 @@ MACHINE_CONFIG_START(overdriv_state::overdriv)
MCFG_QUANTUM_TIME(attotime::from_hz(12000))
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_ER5911_16BIT)
- MCFG_EEPROM_DATA(overdriv_default_eeprom, 128)
+ EEPROM_ER5911_16BIT(config, "eeprom").default_data(overdriv_default_eeprom, 128);
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/pasha2.cpp b/src/mame/drivers/pasha2.cpp
index d258c446ea6..664e65ccaef 100644
--- a/src/mame/drivers/pasha2.cpp
+++ b/src/mame/drivers/pasha2.cpp
@@ -409,7 +409,7 @@ MACHINE_CONFIG_START(pasha2_state::pasha2)
MCFG_DEVICE_ADD("audiocpu", AT89C52, 12000000) /* clock from docs */
/* TODO : ports are unimplemented; P0,P1,P2,P3 and Serial Port Used */
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/photoply.cpp b/src/mame/drivers/photoply.cpp
index eab794054d8..9d911acd4fb 100644
--- a/src/mame/drivers/photoply.cpp
+++ b/src/mame/drivers/photoply.cpp
@@ -327,9 +327,9 @@ MACHINE_CONFIG_START(photoply_state::photoply)
MCFG_DEVICE_ADD("vga", CIRRUS_GD5446, 0)
MCFG_VIDEO_SET_SCREEN("screen")
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
- MCFG_EEPROM_WRITE_TIME(attotime::from_usec(1))
- MCFG_EEPROM_ERASE_ALL_TIME(attotime::from_usec(10))
+ EEPROM_93C46_16BIT(config, "eeprom")
+ .write_time(attotime::from_usec(1))
+ .erase_all_time(attotime::from_usec(10));
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/pirates.cpp b/src/mame/drivers/pirates.cpp
index 54d4074c4b0..31bcbfcc393 100644
--- a/src/mame/drivers/pirates.cpp
+++ b/src/mame/drivers/pirates.cpp
@@ -257,7 +257,7 @@ MACHINE_CONFIG_START(pirates_state::pirates)
MCFG_DEVICE_PROGRAM_MAP(pirates_map)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", pirates_state, irq1_line_hold)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_pirates)
diff --git a/src/mame/drivers/playmark.cpp b/src/mame/drivers/playmark.cpp
index c00865ac865..b61af5390ea 100644
--- a/src/mame/drivers/playmark.cpp
+++ b/src/mame/drivers/playmark.cpp
@@ -1136,8 +1136,7 @@ MACHINE_CONFIG_START(playmark_state::wbeachvl)
MCFG_PIC16C5x_WRITE_C_CB(WRITE8(*this, playmark_state, playmark_snd_control_w))
// MCFG_PIC16C5x_WRITE_C_CB(WRITE8(*this, playmark_state, hrdtimes_snd_control_w)) // probably closer to this, but this only supports 2 sample bank bits
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
- MCFG_EEPROM_DEFAULT_VALUE(0)
+ EEPROM_93C46_16BIT(config, "eeprom").default_value(0);
MCFG_MACHINE_START_OVERRIDE(playmark_state,playmark)
MCFG_MACHINE_RESET_OVERRIDE(playmark_state,playmark)
@@ -1260,8 +1259,7 @@ MACHINE_CONFIG_START(playmark_state::hotmind)
MCFG_PIC16C5x_READ_C_CB(READ8(*this, playmark_state, playmark_snd_flag_r))
MCFG_PIC16C5x_WRITE_C_CB(WRITE8(*this, playmark_state, hrdtimes_snd_control_w))
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
- MCFG_EEPROM_DEFAULT_VALUE(0)
+ EEPROM_93C46_16BIT(config, "eeprom").default_value(0);
MCFG_MACHINE_START_OVERRIDE(playmark_state,playmark)
MCFG_MACHINE_RESET_OVERRIDE(playmark_state,playmark)
diff --git a/src/mame/drivers/plygonet.cpp b/src/mame/drivers/plygonet.cpp
index 8a083e38eb0..223f9a387bb 100644
--- a/src/mame/drivers/plygonet.cpp
+++ b/src/mame/drivers/plygonet.cpp
@@ -567,7 +567,7 @@ MACHINE_CONFIG_START(polygonet_state::plygonet)
MCFG_QUANTUM_PERFECT_CPU("maincpu") /* TODO: TEMPORARY! UNTIL A MORE LOCALIZED SYNC CAN BE MADE */
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_ER5911_8BIT)
+ EEPROM_ER5911_8BIT(config, "eeprom");
MCFG_WATCHDOG_ADD("watchdog")
diff --git a/src/mame/drivers/pntnpuzl.cpp b/src/mame/drivers/pntnpuzl.cpp
index 6b349b46325..120e642ceb1 100644
--- a/src/mame/drivers/pntnpuzl.cpp
+++ b/src/mame/drivers/pntnpuzl.cpp
@@ -357,7 +357,7 @@ MACHINE_CONFIG_START(pntnpuzl_state::pntnpuzl)
MCFG_DEVICE_ADD("maincpu", M68000, XTAL(12'000'000))
MCFG_DEVICE_PROGRAM_MAP(pntnpuzl_map)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
VIA6522(config, m_via, 12_MHz_XTAL / 10);
m_via->readpa_handler().set_ioport("IN2");
diff --git a/src/mame/drivers/policetr.cpp b/src/mame/drivers/policetr.cpp
index fcb336a38a2..67a7cccfe47 100644
--- a/src/mame/drivers/policetr.cpp
+++ b/src/mame/drivers/policetr.cpp
@@ -410,7 +410,7 @@ void policetr_state::policetr(machine_config &config)
m_maincpu->set_endianness(ENDIANNESS_BIG);
m_maincpu->set_addrmap(AS_PROGRAM, &policetr_state::mem);
- EEPROM_SERIAL_93C66_16BIT(config, m_eeprom);
+ EEPROM_93C66_16BIT(config, m_eeprom);
/* video hardware */
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
diff --git a/src/mame/drivers/popeye.cpp b/src/mame/drivers/popeye.cpp
index 7f8362c992e..fb8b4158e36 100644
--- a/src/mame/drivers/popeye.cpp
+++ b/src/mame/drivers/popeye.cpp
@@ -310,7 +310,7 @@ public:
virtual void config(machine_config &config) override
{
T::config(config);
- EEPROM_SERIAL_93C46_8BIT(config, "eeprom");
+ EEPROM_93C46_8BIT(config, "eeprom");
}
protected:
diff --git a/src/mame/drivers/powerbal.cpp b/src/mame/drivers/powerbal.cpp
index 7d7868d15be..6af4771b3a0 100644
--- a/src/mame/drivers/powerbal.cpp
+++ b/src/mame/drivers/powerbal.cpp
@@ -665,8 +665,7 @@ MACHINE_CONFIG_START(powerbal_state::magicstk)
MCFG_DEVICE_PROGRAM_MAP(magicstk_main_map)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", powerbal_state, irq2_line_hold)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
- MCFG_EEPROM_DEFAULT_VALUE(0)
+ EEPROM_93C46_16BIT(config, "eeprom").default_value(0);
MCFG_MACHINE_START_OVERRIDE(powerbal_state,powerbal)
MCFG_MACHINE_RESET_OVERRIDE(powerbal_state,powerbal)
diff --git a/src/mame/drivers/psikyo4.cpp b/src/mame/drivers/psikyo4.cpp
index 6b2978ef199..5cc4dc7dd81 100644
--- a/src/mame/drivers/psikyo4.cpp
+++ b/src/mame/drivers/psikyo4.cpp
@@ -658,9 +658,7 @@ MACHINE_CONFIG_START(psikyo4_state::ps4big)
MCFG_DEVICE_PROGRAM_MAP(ps4_map)
MCFG_DEVICE_VBLANK_INT_DRIVER("lscreen", psikyo4_state, psikyosh_interrupt)
-
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C56_8BIT)
- MCFG_EEPROM_DEFAULT_VALUE(0)
+ EEPROM_93C56_8BIT(config, "eeprom").default_value(0);
/* video hardware */
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "lpalette", gfx_ps4)
diff --git a/src/mame/drivers/psikyosh.cpp b/src/mame/drivers/psikyosh.cpp
index d0e491edde9..b358c0ae0a1 100644
--- a/src/mame/drivers/psikyosh.cpp
+++ b/src/mame/drivers/psikyosh.cpp
@@ -786,8 +786,7 @@ MACHINE_CONFIG_START(psikyosh_state::psikyo3v1)
MCFG_WATCHDOG_ADD("watchdog")
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C56_8BIT)
- MCFG_EEPROM_DEFAULT_VALUE(0)
+ EEPROM_93C56_8BIT(config, "eeprom").default_value(0);
/* video hardware */
MCFG_DEVICE_ADD("spriteram", BUFFERED_SPRITERAM32) /* If using alpha */
diff --git a/src/mame/drivers/pve500.cpp b/src/mame/drivers/pve500.cpp
index 4478849bf3f..8bd673128cb 100644
--- a/src/mame/drivers/pve500.cpp
+++ b/src/mame/drivers/pve500.cpp
@@ -408,7 +408,7 @@ MACHINE_CONFIG_START(pve500_state::pve500)
/* Serial EEPROM (128 bytes, 8-bit data organization) */
/* The EEPROM stores the setup data */
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_MSM16911_8BIT)
+ EEPROM_MSM16911_8BIT(config, "eeprom");
/* FIX-ME: These are actually RS422 ports (except EDL IN/OUT which is indeed an RS232 port)*/
MCFG_DEVICE_ADD("recorder", RS232_PORT, default_rs232_devices, nullptr)
diff --git a/src/mame/drivers/pzletime.cpp b/src/mame/drivers/pzletime.cpp
index 880bf328feb..35ada89f340 100644
--- a/src/mame/drivers/pzletime.cpp
+++ b/src/mame/drivers/pzletime.cpp
@@ -357,7 +357,7 @@ MACHINE_CONFIG_START(pzletime_state::pzletime)
MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
MCFG_PALETTE_INIT_OWNER(pzletime_state, pzletime)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
/* sound hardware */
diff --git a/src/mame/drivers/quizpun2.cpp b/src/mame/drivers/quizpun2.cpp
index 4e7dff56402..3ccd16c1343 100644
--- a/src/mame/drivers/quizpun2.cpp
+++ b/src/mame/drivers/quizpun2.cpp
@@ -598,7 +598,7 @@ MACHINE_CONFIG_START(quizpun2_state::quizpun2)
MCFG_COP400_WRITE_SO_CB(WRITELINE("eeprom", eeprom_serial_93cxx_device, di_write))
MCFG_COP400_WRITE_SK_CB(WRITELINE("eeprom", eeprom_serial_93cxx_device, clk_write))
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/r2dx_v33.cpp b/src/mame/drivers/r2dx_v33.cpp
index 08b149fed56..fd71408d937 100644
--- a/src/mame/drivers/r2dx_v33.cpp
+++ b/src/mame/drivers/r2dx_v33.cpp
@@ -792,7 +792,7 @@ MACHINE_CONFIG_START(r2dx_v33_state::rdx_v33)
MCFG_MACHINE_RESET_OVERRIDE(r2dx_v33_state,r2dx_v33)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK)
@@ -873,7 +873,7 @@ MACHINE_CONFIG_START(r2dx_v33_state::zerotm2k)
MCFG_DEVICE_MODIFY("maincpu")
MCFG_DEVICE_PROGRAM_MAP(zerotm2k_map)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
MACHINE_CONFIG_END
void r2dx_v33_state::init_rdx_v33()
diff --git a/src/mame/drivers/rabbit.cpp b/src/mame/drivers/rabbit.cpp
index 0e14872956c..2b14095c96b 100644
--- a/src/mame/drivers/rabbit.cpp
+++ b/src/mame/drivers/rabbit.cpp
@@ -906,7 +906,7 @@ MACHINE_CONFIG_START(rabbit_state::rabbit)
MCFG_DEVICE_PROGRAM_MAP(rabbit_map)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", rabbit_state, vblank_interrupt)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_rabbit)
diff --git a/src/mame/drivers/rainbow.cpp b/src/mame/drivers/rainbow.cpp
index bfad477aca4..05c95badf11 100644
--- a/src/mame/drivers/rainbow.cpp
+++ b/src/mame/drivers/rainbow.cpp
@@ -3304,7 +3304,7 @@ MACHINE_CONFIG_START(rainbow_state::rainbow)
MCFG_HARDDISK_ADD("harddisk4")
MCFG_HARDDISK_INTERFACE("corvus_hdd")
- MCFG_DS1315_ADD("rtc") // DS1315 (ClikClok for DEC-100 B) * OPTIONAL *
+ DS1315(config, m_rtc, 0); // DS1315 (ClikClok for DEC-100 B) * OPTIONAL *
COM8116_003(config, m_dbrg, 24.0734_MHz_XTAL / 4); // 6.01835 MHz (nominally 6 MHz)
m_dbrg->fr_handler().set(FUNC(rainbow_state::dbrg_fr_w));
diff --git a/src/mame/drivers/rampart.cpp b/src/mame/drivers/rampart.cpp
index ffeb0a6ec8f..396afcc951f 100644
--- a/src/mame/drivers/rampart.cpp
+++ b/src/mame/drivers/rampart.cpp
@@ -345,8 +345,7 @@ MACHINE_CONFIG_START(rampart_state::rampart)
MCFG_DEVICE_ADD("slapstic", SLAPSTIC, 118, true)
- MCFG_EEPROM_2816_ADD("eeprom")
- MCFG_EEPROM_28XX_LOCK_AFTER_WRITE(true)
+ EEPROM_2816(config, "eeprom").lock_after_write(true);
MCFG_WATCHDOG_ADD("watchdog")
MCFG_WATCHDOG_VBLANK_INIT("screen", 8)
diff --git a/src/mame/drivers/rbmk.cpp b/src/mame/drivers/rbmk.cpp
index 68cf8b6f803..0d803d2c4bc 100644
--- a/src/mame/drivers/rbmk.cpp
+++ b/src/mame/drivers/rbmk.cpp
@@ -588,8 +588,7 @@ MACHINE_CONFIG_START(rbmk_state::rbmk)
MCFG_PALETTE_ADD("palette", 0x800)
MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
-
+ EEPROM_93C46_16BIT(config, "eeprom");
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
diff --git a/src/mame/drivers/relief.cpp b/src/mame/drivers/relief.cpp
index 01b1cd7e67a..d671d581be0 100644
--- a/src/mame/drivers/relief.cpp
+++ b/src/mame/drivers/relief.cpp
@@ -275,8 +275,7 @@ MACHINE_CONFIG_START(relief_state::relief)
MCFG_DEVICE_ADD("maincpu", M68000, ATARI_CLOCK_14MHz/2)
MCFG_DEVICE_PROGRAM_MAP(main_map)
- MCFG_EEPROM_2816_ADD("eeprom")
- MCFG_EEPROM_28XX_LOCK_AFTER_WRITE(true)
+ EEPROM_2816(config, "eeprom").lock_after_write(true);
MCFG_WATCHDOG_ADD("watchdog")
diff --git a/src/mame/drivers/rltennis.cpp b/src/mame/drivers/rltennis.cpp
index f1da035c15a..88980fa6275 100644
--- a/src/mame/drivers/rltennis.cpp
+++ b/src/mame/drivers/rltennis.cpp
@@ -196,7 +196,7 @@ MACHINE_CONFIG_START(rltennis_state::rltennis)
MCFG_PALETTE_ADD("palette", 256)
- MCFG_EEPROM_2864_ADD("eeprom")
+ EEPROM_2864(config, "eeprom");
MCFG_RAMDAC_ADD("ramdac", ramdac_map, "palette")
MCFG_RAMDAC_SPLIT_READ(1)
diff --git a/src/mame/drivers/rmnimbus.cpp b/src/mame/drivers/rmnimbus.cpp
index b28c37109a2..c7888ca9722 100644
--- a/src/mame/drivers/rmnimbus.cpp
+++ b/src/mame/drivers/rmnimbus.cpp
@@ -183,7 +183,7 @@ void rmnimbus_state::nimbus(machine_config &config)
rs232b.ri_handler().set(Z80SIO_TAG, FUNC(z80dart_device::rib_w));
rs232b.cts_handler().set(Z80SIO_TAG, FUNC(z80dart_device::ctsb_w));
- EEPROM_SERIAL_93C06_16BIT(config, m_eeprom);
+ EEPROM_93C06_16BIT(config, m_eeprom);
VIA6522(config, m_via, 1000000);
m_via->writepa_handler().set("cent_data_out", FUNC(output_latch_device::bus_w));
diff --git a/src/mame/drivers/rungun.cpp b/src/mame/drivers/rungun.cpp
index c44b1890d48..493344aefcb 100644
--- a/src/mame/drivers/rungun.cpp
+++ b/src/mame/drivers/rungun.cpp
@@ -411,7 +411,7 @@ MACHINE_CONFIG_START(rungun_state::rng)
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_rungun)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_ER5911_8BIT)
+ EEPROM_ER5911_8BIT(config, "eeprom");
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/segas32.cpp b/src/mame/drivers/segas32.cpp
index 6d23cb523c9..f613b4e9f5c 100644
--- a/src/mame/drivers/segas32.cpp
+++ b/src/mame/drivers/segas32.cpp
@@ -2227,7 +2227,7 @@ MACHINE_CONFIG_START(segas32_state::device_add_mconfig)
io_chip.out_cnt1_callback().set(FUNC(segas32_state::display_enable_0_w));
io_chip.out_cnt2_callback().set_inputline(m_soundcpu, INPUT_LINE_RESET).invert();
- EEPROM_SERIAL_93C46_16BIT(config, "eeprom");
+ EEPROM_93C46_16BIT(config, "eeprom");
MCFG_TIMER_DRIVER_ADD("v60_irq0", segas32_state, signal_v60_irq_callback)
MCFG_TIMER_DRIVER_ADD("v60_irq1", segas32_state, signal_v60_irq_callback)
@@ -2550,7 +2550,7 @@ MACHINE_CONFIG_START(sega_multi32_state::device_add_mconfig)
io_chip_1.out_ph_callback().append("eeprom", FUNC(eeprom_serial_93cxx_device::clk_write)).bit(6);
io_chip_1.out_cnt1_callback().set(FUNC(segas32_state::display_enable_1_w));
- EEPROM_SERIAL_93C46_16BIT(config, "eeprom");
+ EEPROM_93C46_16BIT(config, "eeprom");
MCFG_TIMER_DRIVER_ADD("v60_irq0", segas32_state, signal_v60_irq_callback)
MCFG_TIMER_DRIVER_ADD("v60_irq1", segas32_state, signal_v60_irq_callback)
diff --git a/src/mame/drivers/segasp.cpp b/src/mame/drivers/segasp.cpp
index 51edcb4fe0d..e59d70942b4 100644
--- a/src/mame/drivers/segasp.cpp
+++ b/src/mame/drivers/segasp.cpp
@@ -304,8 +304,8 @@ MACHINE_CONFIG_START(segasp_state::segasp)
MCFG_DEVICE_PROGRAM_MAP(segasp_map)
MCFG_DEVICE_IO_MAP(onchip_port)
- MCFG_DEVICE_ADD("main_eeprom", EEPROM_SERIAL_93C46_16BIT)
- MCFG_DEVICE_ADD("sp_eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "main_eeprom");
+ EEPROM_93C46_16BIT(config, "sp_eeprom");
// todo, not exactly NaomiM4 (see notes at top of driver) use custom board type here instead
MCFG_X76F100_ADD("naomibd_eeprom") // actually not present
diff --git a/src/mame/drivers/seibucats.cpp b/src/mame/drivers/seibucats.cpp
index 25c998fc9c0..7e29e907ea1 100644
--- a/src/mame/drivers/seibucats.cpp
+++ b/src/mame/drivers/seibucats.cpp
@@ -303,7 +303,7 @@ MACHINE_CONFIG_START(seibucats_state::seibucats)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", seibuspi_state, spi_interrupt)
MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(seibuspi_state, spi_irq_callback)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
//MCFG_JRC6355E_ADD("rtc", XTAL(32'768))
diff --git a/src/mame/drivers/seibuspi.cpp b/src/mame/drivers/seibuspi.cpp
index bde81d03ae4..5d7e02879d6 100644
--- a/src/mame/drivers/seibuspi.cpp
+++ b/src/mame/drivers/seibuspi.cpp
@@ -1875,10 +1875,10 @@ MACHINE_CONFIG_START(seibuspi_state::spi)
MCFG_MACHINE_RESET_OVERRIDE(seibuspi_state, spi)
- MCFG_DEVICE_ADD("ds2404", DS2404, 32.768_kHz_XTAL)
- MCFG_DS2404_REF_YEAR(1995)
- MCFG_DS2404_REF_MONTH(1)
- MCFG_DS2404_REF_DAY(1)
+ ds2404_device &rtc(DS2404(config, "ds2404", 32.768_kHz_XTAL));
+ rtc.ref_year(1995);
+ rtc.ref_month(1);
+ rtc.ref_day(1);
MCFG_INTEL_E28F008SA_ADD("soundflash1") // Sharp LH28F008 on newer mainboard revision
MCFG_INTEL_E28F008SA_ADD("soundflash2") // "
@@ -1976,7 +1976,7 @@ MACHINE_CONFIG_START(seibuspi_state::sxx2f)
MCFG_DEVICE_REMOVE("ds2404")
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
// Z80 is Z84C0006PCS instead of Z84C0008PEC
// clock is unknown, possibly slower than 7.159MHz
@@ -2010,7 +2010,7 @@ MACHINE_CONFIG_START(seibuspi_state::sys386i)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", seibuspi_state, spi_interrupt)
MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(seibuspi_state,spi_irq_callback)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -2066,7 +2066,7 @@ MACHINE_CONFIG_START(seibuspi_state::sys386f)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", seibuspi_state, spi_interrupt)
MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(seibuspi_state,spi_irq_callback)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/seta2.cpp b/src/mame/drivers/seta2.cpp
index eea00517916..51e0ccb96ee 100644
--- a/src/mame/drivers/seta2.cpp
+++ b/src/mame/drivers/seta2.cpp
@@ -2617,7 +2617,7 @@ MACHINE_CONFIG_START(seta2_state::gundamex)
MCFG_TMP68301_IN_PARALLEL_CB(READ16(*this, seta2_state, gundamex_eeprom_r))
MCFG_TMP68301_OUT_PARALLEL_CB(WRITE16(*this, seta2_state, gundamex_eeprom_w))
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
// video hardware
MCFG_SCREEN_MODIFY("screen")
@@ -2753,7 +2753,7 @@ MACHINE_CONFIG_START(seta2_state::telpacfl)
MCFG_DEVICE_MODIFY("tmp68301")
MCFG_TMP68301_IN_PARALLEL_CB(IOPORT("KNOB"))
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT) // not hooked up, seems unused
+ EEPROM_93C46_16BIT(config, "eeprom"); // not hooked up, seems unused
MCFG_NVRAM_ADD_0FILL("nvram")
MCFG_HOPPER_ADD("dispenser", attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW)
diff --git a/src/mame/drivers/shuuz.cpp b/src/mame/drivers/shuuz.cpp
index 108fdff5e82..19c1e1a9acf 100644
--- a/src/mame/drivers/shuuz.cpp
+++ b/src/mame/drivers/shuuz.cpp
@@ -238,8 +238,7 @@ MACHINE_CONFIG_START(shuuz_state::shuuz)
MCFG_DEVICE_ADD("maincpu", M68000, ATARI_CLOCK_14MHz/2)
MCFG_DEVICE_PROGRAM_MAP(main_map)
- MCFG_EEPROM_2816_ADD("eeprom")
- MCFG_EEPROM_28XX_LOCK_AFTER_WRITE(true)
+ EEPROM_2816(config, "eeprom").lock_after_write(true);
MCFG_WATCHDOG_ADD("watchdog")
diff --git a/src/mame/drivers/sigmab98.cpp b/src/mame/drivers/sigmab98.cpp
index 09978546c14..5660792b6f1 100644
--- a/src/mame/drivers/sigmab98.cpp
+++ b/src/mame/drivers/sigmab98.cpp
@@ -2850,7 +2850,7 @@ MACHINE_CONFIG_START(sigmab98_state::sigmab98)
MCFG_MACHINE_RESET_OVERRIDE(sigmab98_state, sigmab98)
MCFG_NVRAM_ADD_0FILL("nvram")
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
MCFG_TICKET_DISPENSER_ADD("hopper", attotime::from_msec(200), TICKET_MOTOR_ACTIVE_LOW, TICKET_STATUS_ACTIVE_LOW )
@@ -3005,7 +3005,7 @@ MACHINE_CONFIG_START(sigmab98_state::sammymdl)
MCFG_MACHINE_RESET_OVERRIDE(sigmab98_state, sammymdl )
MCFG_NVRAM_ADD_0FILL("nvram") // battery backed RAM
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_8BIT)
+ EEPROM_93C46_8BIT(config, "eeprom");
MCFG_TICKET_DISPENSER_ADD("hopper", attotime::from_msec(200), TICKET_MOTOR_ACTIVE_LOW, TICKET_STATUS_ACTIVE_LOW )
diff --git a/src/mame/drivers/simpl156.cpp b/src/mame/drivers/simpl156.cpp
index 8b1de28b022..ca533ef0d32 100644
--- a/src/mame/drivers/simpl156.cpp
+++ b/src/mame/drivers/simpl156.cpp
@@ -408,7 +408,7 @@ MACHINE_CONFIG_START(simpl156_state::chainrec)
MCFG_DEVICE_PROGRAM_MAP(chainrec_map)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", simpl156_state, simpl156_vbl_interrupt)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT) // 93C45
+ EEPROM_93C46_16BIT(config, "eeprom"); // 93C45
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/simpsons.cpp b/src/mame/drivers/simpsons.cpp
index 74f110e2b10..54ee4ba8505 100644
--- a/src/mame/drivers/simpsons.cpp
+++ b/src/mame/drivers/simpsons.cpp
@@ -336,7 +336,7 @@ MACHINE_CONFIG_START(simpsons_state::simpsons)
ADDRESS_MAP_BANK(config, "bank0000").set_map(&simpsons_state::bank0000_map).set_options(ENDIANNESS_BIG, 8, 13, 0x1000);
ADDRESS_MAP_BANK(config, "bank2000").set_map(&simpsons_state::bank2000_map).set_options(ENDIANNESS_BIG, 8, 14, 0x2000);
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_ER5911_8BIT)
+ EEPROM_ER5911_8BIT(config, "eeprom");
MCFG_WATCHDOG_ADD("watchdog")
diff --git a/src/mame/drivers/skullxbo.cpp b/src/mame/drivers/skullxbo.cpp
index e651bf15a41..37bcb7aa9b4 100644
--- a/src/mame/drivers/skullxbo.cpp
+++ b/src/mame/drivers/skullxbo.cpp
@@ -233,8 +233,7 @@ MACHINE_CONFIG_START(skullxbo_state::skullxbo)
MCFG_TIMER_DRIVER_ADD("scan_timer", skullxbo_state, scanline_timer)
- MCFG_EEPROM_2816_ADD("eeprom")
- MCFG_EEPROM_28XX_LOCK_AFTER_WRITE(true)
+ EEPROM_2816(config, "eeprom").lock_after_write(true);
MCFG_WATCHDOG_ADD("watchdog")
diff --git a/src/mame/drivers/splash.cpp b/src/mame/drivers/splash.cpp
index 7504b20bf27..ee4ee49bd2f 100644
--- a/src/mame/drivers/splash.cpp
+++ b/src/mame/drivers/splash.cpp
@@ -652,7 +652,7 @@ MACHINE_CONFIG_START(funystrp_state::funystrp)
MCFG_DEVICE_PROGRAM_MAP(funystrp_sound_map)
MCFG_DEVICE_IO_MAP(funystrp_sound_io_map)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/spool99.cpp b/src/mame/drivers/spool99.cpp
index 00226e2535c..7def914dbef 100644
--- a/src/mame/drivers/spool99.cpp
+++ b/src/mame/drivers/spool99.cpp
@@ -384,7 +384,7 @@ MACHINE_CONFIG_START(spool99_state::spool99)
MCFG_PALETTE_ADD("palette", 0x200)
MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
SPEAKER(config, "lspeaker").front_left();
diff --git a/src/mame/drivers/ssv.cpp b/src/mame/drivers/ssv.cpp
index 6eb9c62fd66..64dd8929298 100644
--- a/src/mame/drivers/ssv.cpp
+++ b/src/mame/drivers/ssv.cpp
@@ -2606,7 +2606,7 @@ MACHINE_CONFIG_START(ssv_state::gdfs)
MCFG_DEVICE_MODIFY("maincpu")
MCFG_DEVICE_PROGRAM_MAP(gdfs_map)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
ADC0809(config, m_adc, 1000000); // unknown clock
m_adc->in_callback<0>().set_ioport("GUNX1");
diff --git a/src/mame/drivers/stlforce.cpp b/src/mame/drivers/stlforce.cpp
index e316e7c1b14..db02de52c1e 100644
--- a/src/mame/drivers/stlforce.cpp
+++ b/src/mame/drivers/stlforce.cpp
@@ -200,7 +200,7 @@ MACHINE_CONFIG_START(stlforce_state::stlforce)
MCFG_DEVICE_PROGRAM_MAP(stlforce_map)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", stlforce_state, irq4_line_hold)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/stv.cpp b/src/mame/drivers/stv.cpp
index 54cee57ec33..74be7f00983 100644
--- a/src/mame/drivers/stv.cpp
+++ b/src/mame/drivers/stv.cpp
@@ -982,13 +982,13 @@ WRITE32_MEMBER(stv_state::decathlt_prot_srcaddr_w)
else if ((offs & 0x7fffff) == 0x7FFFF4)
{
m_5838crypt->data_w(space, offset, data, mem_mask);
- }
+ }
}
void stv_state::init_decathlt()
{
m_maincpu->space(AS_PROGRAM).install_write_handler(0x2000000, 0x37fffff, write32_delegate(FUNC(stv_state::decathlt_prot_srcaddr_w), this)); // set compressed data source address, write data
-
+
// really needs installing over the whole range, with fallbacks to read rom if device is disabled or isn't accessed on given address
m_maincpu->space(AS_PROGRAM).install_read_handler(0x27ffff8, 0x27ffffb, read32_delegate(FUNC(stv_state::decathlt_prot_r), this)); // read decompressed data
m_maincpu->space(AS_PROGRAM).install_read_handler(0x2fffff8, 0x2fffffb, read32_delegate(FUNC(stv_state::decathlt_prot_r), this)); // ^
@@ -998,9 +998,9 @@ void stv_state::init_decathlt()
m_protbank->configure_entry(1, memregion("cart")->base() + 0x0800000);
m_protbank->configure_entry(2, memregion("cart")->base() + 0x1000000);
//m_protbank->configure_entry(3, memregion("cart")->base() + 0x1800000);
-
+
m_protbank->set_entry(0);
-
+
m_newprotection_element = false;
init_stv();
@@ -1160,7 +1160,7 @@ MACHINE_CONFIG_START(stv_state::stv)
MCFG_MACHINE_START_OVERRIDE(stv_state,stv)
MCFG_MACHINE_RESET_OVERRIDE(stv_state,stv)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT) /* Actually AK93C45F */
+ EEPROM_93C46_16BIT(config, "eeprom"); /* Actually AK93C45F */
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/superchs.cpp b/src/mame/drivers/superchs.cpp
index 97e421658bb..fb8b3229fda 100644
--- a/src/mame/drivers/superchs.cpp
+++ b/src/mame/drivers/superchs.cpp
@@ -236,7 +236,7 @@ MACHINE_CONFIG_START(superchs_state::superchs)
MCFG_QUANTUM_TIME(attotime::from_hz(480)) /* Need to interleave CPU 1 & 3 */
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
adc0809_device &adc(ADC0809(config, "adc", 500000)); // unknown clock
adc.eoc_ff_callback().set_inputline("maincpu", 3);
diff --git a/src/mame/drivers/taito_b.cpp b/src/mame/drivers/taito_b.cpp
index d6a56729cac..7b957615713 100644
--- a/src/mame/drivers/taito_b.cpp
+++ b/src/mame/drivers/taito_b.cpp
@@ -2193,7 +2193,7 @@ MACHINE_CONFIG_START(taitob_state::pbobble)
MCFG_QUANTUM_TIME(attotime::from_hz(600))
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
TC0640FIO(config, m_tc0640fio, 0);
m_tc0640fio->read_0_callback().set_ioport("SERVICE");
@@ -2257,7 +2257,7 @@ MACHINE_CONFIG_START(taitob_state::spacedx)
MCFG_QUANTUM_TIME(attotime::from_hz(600))
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
TC0640FIO(config, m_tc0640fio, 0);
m_tc0640fio->read_0_callback().set_ioport("SERVICE");
@@ -2379,7 +2379,7 @@ MACHINE_CONFIG_START(taitob_state::qzshowby)
MCFG_QUANTUM_TIME(attotime::from_hz(600))
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
TC0640FIO(config, m_tc0640fio, 0);
m_tc0640fio->read_0_callback().set_ioport("SERVICE");
diff --git a/src/mame/drivers/taito_f3.cpp b/src/mame/drivers/taito_f3.cpp
index 46fdb820873..85142f48d8e 100644
--- a/src/mame/drivers/taito_f3.cpp
+++ b/src/mame/drivers/taito_f3.cpp
@@ -35,7 +35,6 @@
#include "includes/taito_f3.h"
#include "cpu/m68000/m68000.h"
-#include "machine/eepromser.h"
#include "sound/es5506.h"
#include "sound/okim6295.h"
#include "speaker.h"
@@ -457,72 +456,68 @@ void taito_f3_state::machine_reset()
m_audiocpu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
}
-MACHINE_CONFIG_START(taito_f3_state::f3)
-
+void taito_f3_state::f3(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68EC020, XTAL(16'000'000))
- MCFG_DEVICE_PROGRAM_MAP(f3_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", taito_f3_state, f3_interrupt2)
+ M68EC020(config, m_maincpu, XTAL(16'000'000));
+ m_maincpu->set_addrmap(AS_PROGRAM, &taito_f3_state::f3_map);
+ m_maincpu->set_vblank_int("screen", FUNC(taito_f3_state::f3_interrupt2));
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, m_eeprom);
- MCFG_WATCHDOG_ADD("watchdog")
+ WATCHDOG_TIMER(config, m_watchdog);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(58.97)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(624) /* 58.97 Hz, 624us vblank time */)
- MCFG_SCREEN_SIZE(40*8+48*2, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(46, 40*8-1 + 46, 24, 24+232-1)
- MCFG_SCREEN_UPDATE_DRIVER(taito_f3_state, screen_update_f3)
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, taito_f3_state, screen_vblank_f3))
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_refresh_hz(58.97);
+ m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(624)); /* 58.97 Hz, 624us vblank time */
+ m_screen->set_size(40*8+48*2, 32*8);
+ m_screen->set_visarea(46, 40*8-1 + 46, 24, 24+232-1);
+ m_screen->set_screen_update(FUNC(taito_f3_state::screen_update_f3));
+ m_screen->screen_vblank().set(FUNC(taito_f3_state::screen_vblank_f3));
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_taito_f3)
- MCFG_PALETTE_ADD("palette", 0x2000)
+ GFXDECODE(config, m_gfxdecode, "palette", gfx_taito_f3);
+ PALETTE(config, m_palette, 0x2000);
/* sound hardware */
- MCFG_DEVICE_ADD("taito_en", TAITO_EN, 0)
-MACHINE_CONFIG_END
+ TAITO_EN(config, m_taito_en, 0);
+}
/* These games reprogram the video output registers to display different scanlines,
we can't change our screen display at runtime, so we do it here instead. None
of the games change the registers during the game (to do so would probably require
monitor recalibration.)
*/
-MACHINE_CONFIG_START(taito_f3_state::f3_224a)
+void taito_f3_state::f3_224a(machine_config &config)
+{
f3(config);
- MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_VISIBLE_AREA(46, 40*8-1 + 46, 31, 31+224-1)
-MACHINE_CONFIG_END
+ m_screen->set_visarea(46, 40*8-1 + 46, 31, 31+224-1);
+}
-MACHINE_CONFIG_START(taito_f3_state::f3_224b)
+void taito_f3_state::f3_224b(machine_config &config)
+{
f3(config);
- MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_VISIBLE_AREA(46, 40*8-1 + 46, 32, 32+224-1)
-MACHINE_CONFIG_END
+ m_screen->set_visarea(46, 40*8-1 + 46, 32, 32+224-1);
+}
-MACHINE_CONFIG_START(taito_f3_state::f3_224c)
+void taito_f3_state::f3_224c(machine_config &config)
+{
f3(config);
- MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_VISIBLE_AREA(46, 40*8-1 + 46, 24, 24+224-1)
-MACHINE_CONFIG_END
+ m_screen->set_visarea(46, 40*8-1 + 46, 24, 24+224-1);
+}
/* recalh and gseeker need a default EEPROM to work */
-MACHINE_CONFIG_START(taito_f3_state::f3_eeprom)
+void taito_f3_state::f3_eeprom(machine_config &config)
+{
f3(config);
+ m_eeprom->default_data(recalh_eeprom, 128); //TODO: convert this into ROM
+}
- MCFG_DEVICE_REMOVE("eeprom")
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
- MCFG_EEPROM_DATA(recalh_eeprom, 128) //TODO: convert this into ROM
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(taito_f3_state::f3_224b_eeprom)
+void taito_f3_state::f3_224b_eeprom(machine_config &config)
+{
f3_224b(config);
-
- MCFG_DEVICE_REMOVE("eeprom")
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
- MCFG_EEPROM_DATA(recalh_eeprom, 128) //TODO: convert this into ROM
-MACHINE_CONFIG_END
+ m_eeprom->default_data(recalh_eeprom, 128); //TODO: convert this into ROM
+}
static const gfx_layout bubsympb_sprite_layout =
{
@@ -554,34 +549,35 @@ static GFXDECODE_START( gfx_bubsympb )
GFXDECODE_ENTRY( nullptr, 0x000000, pivotlayout, 0, 64 ) /* Dynamically modified */
GFXDECODE_END
-MACHINE_CONFIG_START(taito_f3_state::bubsympb)
+void taito_f3_state::bubsympb(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68EC020, XTAL(16'000'000))
- MCFG_DEVICE_PROGRAM_MAP(bubsympb_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", taito_f3_state, f3_interrupt2)
+ M68EC020(config, m_maincpu, XTAL(16'000'000));
+ m_maincpu->set_addrmap(AS_PROGRAM, &taito_f3_state::bubsympb_map);
+ m_maincpu->set_vblank_int("screen", FUNC(taito_f3_state::f3_interrupt2));
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, m_eeprom);
- MCFG_WATCHDOG_ADD("watchdog")
+ WATCHDOG_TIMER(config, m_watchdog);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(58.97)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(624) /* 58.97 Hz, 624us vblank time */)
- MCFG_SCREEN_SIZE(40*8+48*2, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(46, 40*8-1 + 46, 31, 31+224-1)
- MCFG_SCREEN_UPDATE_DRIVER(taito_f3_state, screen_update_f3)
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, taito_f3_state, screen_vblank_f3))
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_refresh_hz(58.97);
+ m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(624)); /* 58.97 Hz, 624us vblank time */
+ m_screen->set_size(40*8+48*2, 32*8);
+ m_screen->set_visarea(46, 40*8-1 + 46, 31, 31+224-1);
+ m_screen->set_screen_update(FUNC(taito_f3_state::screen_update_f3));
+ m_screen->screen_vblank().set(FUNC(taito_f3_state::screen_vblank_f3));
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_bubsympb)
- MCFG_PALETTE_ADD("palette", 8192)
+ GFXDECODE(config, m_gfxdecode, "palette", gfx_bubsympb);
+ PALETTE(config, m_palette, 0x2000);
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("oki", OKIM6295, 1000000 , okim6295_device::PIN7_HIGH) // not verified
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
-MACHINE_CONFIG_END
+ OKIM6295(config, m_oki, 1000000, okim6295_device::PIN7_HIGH); // not verified
+ m_oki->add_route(ALL_OUTPUTS, "mono", 1.0);
+}
/******************************************************************************/
diff --git a/src/mame/drivers/taito_z.cpp b/src/mame/drivers/taito_z.cpp
index 9e850cf8f28..fedcbba4d64 100644
--- a/src/mame/drivers/taito_z.cpp
+++ b/src/mame/drivers/taito_z.cpp
@@ -3733,8 +3733,7 @@ MACHINE_CONFIG_START(taitoz_state::spacegun)
MCFG_MACHINE_START_OVERRIDE(taitoz_state,bshark)
MCFG_MACHINE_RESET_OVERRIDE(taitoz_state,taitoz)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
- MCFG_EEPROM_DATA(spacegun_default_eeprom, 128)
+ EEPROM_93C46_16BIT(config, "eeprom").default_data(spacegun_default_eeprom, 128);
adc0809_device &adc(ADC0809(config, "adc", 500000)); // clock unknown
adc.eoc_ff_callback().set_inputline("sub", 5);
diff --git a/src/mame/drivers/taitojc.cpp b/src/mame/drivers/taitojc.cpp
index 73f29e6c121..5197bc9ef31 100644
--- a/src/mame/drivers/taitojc.cpp
+++ b/src/mame/drivers/taitojc.cpp
@@ -1095,7 +1095,7 @@ MACHINE_CONFIG_START(taitojc_state::taitojc)
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
TC0640FIO(config, m_tc0640fio, 0);
m_tc0640fio->read_0_callback().set_ioport("SERVICE");
diff --git a/src/mame/drivers/tasman.cpp b/src/mame/drivers/tasman.cpp
index df0b0e2f689..d05d8fc44f7 100644
--- a/src/mame/drivers/tasman.cpp
+++ b/src/mame/drivers/tasman.cpp
@@ -660,7 +660,7 @@ MACHINE_CONFIG_START(kongambl_state::kongambl)
MCFG_K053252_INT2_ACK_CB(WRITELINE(*this, kongambl_state, hblank_irq_ack_w))
MCFG_VIDEO_SET_SCREEN("screen")
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(25000000, 288+16+32+48, 0, 287, 224+16+8+16, 0, 223) // fake, they'll be changed by CCU anyway, TBD
diff --git a/src/mame/drivers/tecmosys.cpp b/src/mame/drivers/tecmosys.cpp
index f64d5b73168..3d18f17a53d 100644
--- a/src/mame/drivers/tecmosys.cpp
+++ b/src/mame/drivers/tecmosys.cpp
@@ -468,7 +468,7 @@ MACHINE_CONFIG_START(tecmosys_state::tecmosys)
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_tecmosys)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT, eeprom_serial_streaming::ENABLE)
+ EEPROM_93C46_16BIT(config, "eeprom", eeprom_serial_streaming::ENABLE);
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK)
diff --git a/src/mame/drivers/thunderj.cpp b/src/mame/drivers/thunderj.cpp
index 2d8d231716f..b328ae34754 100644
--- a/src/mame/drivers/thunderj.cpp
+++ b/src/mame/drivers/thunderj.cpp
@@ -249,8 +249,7 @@ MACHINE_CONFIG_START(thunderj_state::thunderj)
MCFG_DEVICE_ADD("extra", M68000, ATARI_CLOCK_14MHz/2)
MCFG_DEVICE_PROGRAM_MAP(extra_map)
- MCFG_EEPROM_2816_ADD("eeprom")
- MCFG_EEPROM_28XX_LOCK_AFTER_WRITE(true)
+ EEPROM_2816(config, "eeprom").lock_after_write(true);
MCFG_WATCHDOG_ADD("watchdog")
diff --git a/src/mame/drivers/timetrv.cpp b/src/mame/drivers/timetrv.cpp
index a77bf2b0793..34f5efea15b 100644
--- a/src/mame/drivers/timetrv.cpp
+++ b/src/mame/drivers/timetrv.cpp
@@ -149,7 +149,7 @@ MACHINE_CONFIG_START(timetrv_state::timetrv)
MCFG_DEVICE_IO_MAP(timetrv_io)
// interrupts are generated by internally-driven timers
- MCFG_EEPROM_2816_ADD("eeprom")
+ EEPROM_2816(config, "eeprom");
MCFG_DEVICE_ADD("ppi1", I8255, 0)
MCFG_I8255_IN_PORTA_CB(READ8(*this, timetrv_state, test1_r)) //inputs
diff --git a/src/mame/drivers/tmmjprd.cpp b/src/mame/drivers/tmmjprd.cpp
index 3c7124b731a..d46e4fbe90f 100644
--- a/src/mame/drivers/tmmjprd.cpp
+++ b/src/mame/drivers/tmmjprd.cpp
@@ -744,7 +744,7 @@ MACHINE_CONFIG_START(tmmjprd_state::tmpdoki)
MCFG_DEVICE_PROGRAM_MAP(main_map)
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", tmmjprd_state, scanline, "lscreen", 0, 1)
- MCFG_DEVICE_ADD(m_eeprom, EEPROM_SERIAL_93C46_16BIT, eeprom_serial_streaming::ENABLE)
+ EEPROM_93C46_16BIT(config, m_eeprom, eeprom_serial_streaming::ENABLE);
MCFG_DEVICE_ADD(m_gfxdecode, GFXDECODE, m_palette, gfx_tmmjprd)
diff --git a/src/mame/drivers/tmnt.cpp b/src/mame/drivers/tmnt.cpp
index 2ba01d4ba28..7cf0e02771b 100644
--- a/src/mame/drivers/tmnt.cpp
+++ b/src/mame/drivers/tmnt.cpp
@@ -2224,7 +2224,7 @@ MACHINE_CONFIG_START(tmnt_state::blswhstl)
MCFG_MACHINE_START_OVERRIDE(tmnt_state,common)
MCFG_MACHINE_RESET_OVERRIDE(tmnt_state,common)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_ER5911_8BIT)
+ EEPROM_ER5911_8BIT(config, "eeprom");
MCFG_WATCHDOG_ADD("watchdog")
@@ -2370,7 +2370,7 @@ MACHINE_CONFIG_START(tmnt_state::prmrsocr)
MCFG_MACHINE_START_OVERRIDE(tmnt_state,prmrsocr)
MCFG_MACHINE_RESET_OVERRIDE(tmnt_state,common)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_ER5911_8BIT)
+ EEPROM_ER5911_8BIT(config, "eeprom");
MCFG_WATCHDOG_ADD("watchdog")
@@ -2440,7 +2440,7 @@ MACHINE_CONFIG_START(tmnt_state::tmnt2)
MCFG_MACHINE_START_OVERRIDE(tmnt_state,common)
MCFG_MACHINE_RESET_OVERRIDE(tmnt_state,common)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_ER5911_8BIT)
+ EEPROM_ER5911_8BIT(config, "eeprom");
MCFG_WATCHDOG_ADD("watchdog")
@@ -2500,7 +2500,7 @@ MACHINE_CONFIG_START(tmnt_state::ssriders)
MCFG_MACHINE_START_OVERRIDE(tmnt_state,common)
MCFG_MACHINE_RESET_OVERRIDE(tmnt_state,common)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_ER5911_8BIT)
+ EEPROM_ER5911_8BIT(config, "eeprom");
MCFG_WATCHDOG_ADD("watchdog")
@@ -2556,7 +2556,7 @@ MACHINE_CONFIG_START(tmnt_state::sunsetbl)
MCFG_MACHINE_START_OVERRIDE(tmnt_state,common)
MCFG_MACHINE_RESET_OVERRIDE(tmnt_state,common)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_ER5911_8BIT)
+ EEPROM_ER5911_8BIT(config, "eeprom");
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -2607,7 +2607,7 @@ MACHINE_CONFIG_START(tmnt_state::thndrx2)
MCFG_MACHINE_START_OVERRIDE(tmnt_state,common)
MCFG_MACHINE_RESET_OVERRIDE(tmnt_state,common)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_ER5911_8BIT)
+ EEPROM_ER5911_8BIT(config, "eeprom");
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/toaplan2.cpp b/src/mame/drivers/toaplan2.cpp
index f3bcc76e8ba..8bb69223a7d 100644
--- a/src/mame/drivers/toaplan2.cpp
+++ b/src/mame/drivers/toaplan2.cpp
@@ -3636,7 +3636,7 @@ MACHINE_CONFIG_START(toaplan2_state::fixeight)
audiocpu.p0_in_cb().set_ioport("EEPROM");
audiocpu.p0_out_cb().set_ioport("EEPROM");
- EEPROM_SERIAL_93C46_16BIT(config, m_eeprom);
+ EEPROM_93C46_16BIT(config, m_eeprom);
/* video hardware */
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
@@ -4149,7 +4149,7 @@ MACHINE_CONFIG_START(toaplan2_state::bbakraid)
MCFG_MACHINE_RESET_OVERRIDE(toaplan2_state,toaplan2)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C66_8BIT)
+ EEPROM_93C66_8BIT(config, "eeprom");
ADDRESS_MAP_BANK(config, m_dma_space, 0);
m_dma_space->set_addrmap(0, &toaplan2_state::batrider_dma_mem);
diff --git a/src/mame/drivers/toobin.cpp b/src/mame/drivers/toobin.cpp
index 167da4736be..a14f7e4a0d1 100644
--- a/src/mame/drivers/toobin.cpp
+++ b/src/mame/drivers/toobin.cpp
@@ -209,8 +209,7 @@ MACHINE_CONFIG_START(toobin_state::toobin)
MCFG_DEVICE_ADD("maincpu", M68010, MASTER_CLOCK/4)
MCFG_DEVICE_PROGRAM_MAP(main_map)
- MCFG_EEPROM_2804_ADD("eeprom")
- MCFG_EEPROM_28XX_LOCK_AFTER_WRITE(true)
+ EEPROM_2804(config, "eeprom").lock_after_write(true);
MCFG_WATCHDOG_ADD("watchdog")
MCFG_WATCHDOG_VBLANK_INIT("screen", 8)
diff --git a/src/mame/drivers/tti.cpp b/src/mame/drivers/tti.cpp
index 1ded05ab12d..b0cdd64be79 100644
--- a/src/mame/drivers/tti.cpp
+++ b/src/mame/drivers/tti.cpp
@@ -73,8 +73,7 @@ MACHINE_CONFIG_START(tti_state::tti)
MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, "terminal")
MCFG_RS232_RXD_HANDLER(WRITELINE("mfp", mc68901_device, write_rx))
- MCFG_DEVICE_ADD("novram", EEPROM_SERIAL_X24C44_16BIT)
- MCFG_EEPROM_SERIAL_DO_CALLBACK(WRITELINE("mfp", mc68901_device, i0_w))
+ EEPROM_X24C44_16BIT(config, "novram").do_callback().set("mfp", FUNC(mc68901_device::i0_w));
ls259_device &bitlatch(LS259(config, "bitlatch")); // U17
bitlatch.q_out_cb<0>().set("novram", FUNC(eeprom_serial_x24c44_device::di_write));
diff --git a/src/mame/drivers/ultrsprt.cpp b/src/mame/drivers/ultrsprt.cpp
index 1f63af875ca..5f2b09f50f4 100644
--- a/src/mame/drivers/ultrsprt.cpp
+++ b/src/mame/drivers/ultrsprt.cpp
@@ -245,7 +245,7 @@ MACHINE_CONFIG_START(ultrsprt_state::ultrsprt)
MCFG_DEVICE_ADD("audiocpu", M68000, 8000000) // Unconfirmed
MCFG_DEVICE_PROGRAM_MAP(sound_map)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
MCFG_DEVICE_ADD("upd1", UPD4701A, 0)
MCFG_UPD4701_PORTX("P1X")
diff --git a/src/mame/drivers/undrfire.cpp b/src/mame/drivers/undrfire.cpp
index b3694ee459f..673823c25fb 100644
--- a/src/mame/drivers/undrfire.cpp
+++ b/src/mame/drivers/undrfire.cpp
@@ -571,7 +571,7 @@ MACHINE_CONFIG_START(undrfire_state::undrfire)
MCFG_DEVICE_PROGRAM_MAP(undrfire_map)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", undrfire_state, undrfire_interrupt)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
tc0510nio_device &tc0510nio(TC0510NIO(config, "tc0510nio", 0));
tc0510nio.read_0_callback().set_ioport("INPUTS0");
@@ -630,7 +630,7 @@ MACHINE_CONFIG_START(undrfire_state::cbombers)
MCFG_QUANTUM_TIME(attotime::from_hz(480)) /* CPU slices - Need to interleave Cpu's 1 & 3 */
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
adc0809_device &adc(ADC0809(config, "adc", 500000)); // unknown clock
adc.eoc_ff_callback().set_inputline("maincpu", 5);
diff --git a/src/mame/drivers/unico.cpp b/src/mame/drivers/unico.cpp
index 046c3360327..501962cf5c4 100644
--- a/src/mame/drivers/unico.cpp
+++ b/src/mame/drivers/unico.cpp
@@ -660,7 +660,7 @@ MACHINE_CONFIG_START(zeropnt2_state::zeropnt2)
MCFG_DEVICE_PROGRAM_MAP(zeropnt2_map)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", unico_state, irq2_line_hold)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_8BIT)
+ EEPROM_93C46_8BIT(config, "eeprom");
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/v102.cpp b/src/mame/drivers/v102.cpp
index 8e86e3fd662..de8d3508eeb 100644
--- a/src/mame/drivers/v102.cpp
+++ b/src/mame/drivers/v102.cpp
@@ -91,7 +91,7 @@ MACHINE_CONFIG_START(v102_state::v102)
//MCFG_DEVICE_ADD("vpac", CRT9007, CRTC_CLOCK)
//MCFG_CRT9007_CHARACTER_WIDTH(6 or 10)
- MCFG_EEPROM_2804_ADD("eeprom")
+ EEPROM_2804(config, "eeprom");
MCFG_DEVICE_ADD("mpsc", UPD7201_NEW, XTAL(18'575'000) / 5) // divider not verified
MCFG_Z80SIO_OUT_INT_CB(WRITELINE("mainirq", input_merger_device, in_w<0>))
diff --git a/src/mame/drivers/vamphalf.cpp b/src/mame/drivers/vamphalf.cpp
index 145483ad75b..b6327eeee98 100644
--- a/src/mame/drivers/vamphalf.cpp
+++ b/src/mame/drivers/vamphalf.cpp
@@ -1110,10 +1110,10 @@ MACHINE_CONFIG_START(vamphalf_state::common)
MCFG_DEVICE_PROGRAM_MAP(common_map)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", vamphalf_state, irq1_line_hold)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
// various games require fast timing to save settings, probably because our Hyperstone core timings are incorrect
- MCFG_EEPROM_ERASE_TIME(attotime::from_usec(1))
- MCFG_EEPROM_WRITE_TIME(attotime::from_usec(1))
+ EEPROM_93C46_16BIT(config, "eeprom")
+ .erase_time(attotime::from_usec(1))
+ .write_time(attotime::from_usec(1));
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1300,7 +1300,7 @@ MACHINE_CONFIG_START(vamphalf_state::aoh)
MCFG_DEVICE_IO_MAP(aoh_io)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", vamphalf_state, irq1_line_hold)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/vendetta.cpp b/src/mame/drivers/vendetta.cpp
index 746c1856fdd..25b99533779 100644
--- a/src/mame/drivers/vendetta.cpp
+++ b/src/mame/drivers/vendetta.cpp
@@ -442,7 +442,7 @@ MACHINE_CONFIG_START(vendetta_state::vendetta)
MCFG_DEVICE_PROGRAM_MAP(sound_map)
/* interrupts are triggered by the main CPU */
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_ER5911_8BIT)
+ EEPROM_ER5911_8BIT(config, "eeprom");
MCFG_WATCHDOG_ADD("watchdog")
diff --git a/src/mame/drivers/vindictr.cpp b/src/mame/drivers/vindictr.cpp
index cdfdd1c85b0..cf8e550b45b 100644
--- a/src/mame/drivers/vindictr.cpp
+++ b/src/mame/drivers/vindictr.cpp
@@ -188,10 +188,9 @@ MACHINE_CONFIG_START(vindictr_state::vindictr)
MCFG_DEVICE_ADD("maincpu", M68010, ATARI_CLOCK_14MHz/2)
MCFG_DEVICE_PROGRAM_MAP(main_map)
- MCFG_EEPROM_2804_ADD("eeprom")
- MCFG_EEPROM_28XX_LOCK_AFTER_WRITE(true)
+ EEPROM_2804(config, "eeprom").lock_after_write(true);
- MCFG_WATCHDOG_ADD("watchdog")
+ WATCHDOG_TIMER(config, "watchdog");
/* video hardware */
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_vindictr)
diff --git a/src/mame/drivers/wheelfir.cpp b/src/mame/drivers/wheelfir.cpp
index 902439f8b6b..190e8ad59f7 100644
--- a/src/mame/drivers/wheelfir.cpp
+++ b/src/mame/drivers/wheelfir.cpp
@@ -761,7 +761,7 @@ MACHINE_CONFIG_START(wheelfir_state::wheelfir)
MCFG_PALETTE_ADD("palette", NUM_COLORS)
MCFG_RAMDAC_ADD("ramdac", ramdac_map, "palette")
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
MCFG_GENERIC_LATCH_16_ADD("soundlatch")
diff --git a/src/mame/drivers/xexex.cpp b/src/mame/drivers/xexex.cpp
index 0c9d63533ff..45db683606c 100644
--- a/src/mame/drivers/xexex.cpp
+++ b/src/mame/drivers/xexex.cpp
@@ -482,7 +482,7 @@ MACHINE_CONFIG_START(xexex_state::xexex)
MCFG_QUANTUM_TIME(attotime::from_hz(1920))
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_ER5911_8BIT)
+ EEPROM_ER5911_8BIT(config, "eeprom");
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/xmen.cpp b/src/mame/drivers/xmen.cpp
index c36b927e333..d11a02fbc78 100644
--- a/src/mame/drivers/xmen.cpp
+++ b/src/mame/drivers/xmen.cpp
@@ -308,7 +308,7 @@ MACHINE_CONFIG_START(xmen_state::xmen)
MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(16'000'000)/2) /* verified on pcb */
MCFG_DEVICE_PROGRAM_MAP(sound_map)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_ER5911_8BIT)
+ EEPROM_ER5911_8BIT(config, "eeprom");
MCFG_WATCHDOG_ADD("watchdog")
@@ -361,7 +361,7 @@ MACHINE_CONFIG_START(xmen_state::xmen6p)
MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(16'000'000)/2)
MCFG_DEVICE_PROGRAM_MAP(sound_map)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_ER5911_8BIT)
+ EEPROM_ER5911_8BIT(config, "eeprom");
MCFG_WATCHDOG_ADD("watchdog")
diff --git a/src/mame/drivers/xorworld.cpp b/src/mame/drivers/xorworld.cpp
index 8296111aa99..c707d30200f 100644
--- a/src/mame/drivers/xorworld.cpp
+++ b/src/mame/drivers/xorworld.cpp
@@ -164,7 +164,7 @@ MACHINE_CONFIG_START(xorworld_state::xorworld)
MCFG_QUANTUM_TIME(attotime::from_hz(60))
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
ls259_device &mainlatch(LS259(config, "mainlatch"));
mainlatch.q_out_cb<4>().set("eeprom", FUNC(eeprom_serial_93cxx_device::cs_write)); // CS (active low)
diff --git a/src/mame/drivers/xybots.cpp b/src/mame/drivers/xybots.cpp
index 0398aaaba5d..e2776e33491 100644
--- a/src/mame/drivers/xybots.cpp
+++ b/src/mame/drivers/xybots.cpp
@@ -180,12 +180,11 @@ MACHINE_CONFIG_START(xybots_state::xybots)
MCFG_DEVICE_ADD("maincpu", M68000, ATARI_CLOCK_14MHz/2)
MCFG_DEVICE_PROGRAM_MAP(main_map)
- MCFG_DEVICE_ADD("slapstic", SLAPSTIC, 107, true)
+ SLAPSTIC(config, "slapstic", 107, true);
- MCFG_EEPROM_2804_ADD("eeprom")
- MCFG_EEPROM_28XX_LOCK_AFTER_WRITE(true)
+ EEPROM_2804(config, "eeprom").lock_after_write(true);
- MCFG_WATCHDOG_ADD("watchdog")
+ WATCHDOG_TIMER(config, "watchdog");
/* video hardware */
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_xybots)
diff --git a/src/mame/drivers/zr107.cpp b/src/mame/drivers/zr107.cpp
index 5fe08734b60..2d1187effdf 100644
--- a/src/mame/drivers/zr107.cpp
+++ b/src/mame/drivers/zr107.cpp
@@ -784,7 +784,7 @@ MACHINE_CONFIG_START(zr107_state::zr107)
MCFG_QUANTUM_TIME(attotime::from_hz(750000))// Very high sync needed to prevent lockups - why?
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
MCFG_DEVICE_ADD("k056230", K056230, 0)
MCFG_K056230_CPU("maincpu")
@@ -855,7 +855,7 @@ MACHINE_CONFIG_START(zr107_state::jetwave)
MCFG_QUANTUM_TIME(attotime::from_hz(2000000)) // Very high sync needed to prevent lockups - why?
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
+ EEPROM_93C46_16BIT(config, "eeprom");
MCFG_DEVICE_ADD("k056230", K056230, 0)
MCFG_K056230_CPU("maincpu")
diff --git a/src/mame/includes/atetris.h b/src/mame/includes/atetris.h
index 7fdd8fd4bd7..0f23296f613 100644
--- a/src/mame/includes/atetris.h
+++ b/src/mame/includes/atetris.h
@@ -20,10 +20,11 @@ public:
m_maincpu(*this, "maincpu"),
m_gfxdecode(*this, "gfxdecode"),
m_screen(*this, "screen"),
- m_slapstic_device(*this, "slapstic"),
+ m_slapstic(*this, "slapstic"),
m_videoram(*this, "videoram")
{ }
+ void atetris_base(machine_config &config);
void atetris(machine_config &config);
void atetrisb2(machine_config &config);
@@ -37,7 +38,7 @@ protected:
required_device<cpu_device> m_maincpu;
required_device<gfxdecode_device> m_gfxdecode;
required_device<screen_device> m_screen;
- optional_device<atari_slapstic_device> m_slapstic_device;
+ optional_device<atari_slapstic_device> m_slapstic;
required_shared_ptr<uint8_t> m_videoram;
diff --git a/src/mame/includes/cyberbal.h b/src/mame/includes/cyberbal.h
index 5dd31f9c7df..103772c5a14 100644
--- a/src/mame/includes/cyberbal.h
+++ b/src/mame/includes/cyberbal.h
@@ -24,8 +24,8 @@ class cyberbal_base_state : public atarigen_state
protected:
cyberbal_base_state(const machine_config &mconfig, device_type type, const char *tag) :
atarigen_state(mconfig, type, tag),
- m_playfield_tilemap(*this, "playfield"),
- m_alpha_tilemap(*this, "alpha"),
+ m_playfield(*this, "playfield"),
+ m_alpha(*this, "alpha"),
m_mob(*this, "mob")
{ }
@@ -39,8 +39,8 @@ protected:
static const atari_motion_objects_config s_mob_config;
- required_device<tilemap_device> m_playfield_tilemap;
- required_device<tilemap_device> m_alpha_tilemap;
+ required_device<tilemap_device> m_playfield;
+ required_device<tilemap_device> m_alpha;
required_device<atari_motion_objects_device> m_mob;
uint16_t m_current_slip[2];
@@ -91,8 +91,8 @@ public:
m_ldac(*this, "ldac"),
m_soundcomm(*this, "soundcomm"),
m_ymsnd(*this, "ymsnd"),
- m_playfield2_tilemap(*this, "playfield2"),
- m_alpha2_tilemap(*this, "alpha2"),
+ m_playfield2(*this, "playfield2"),
+ m_alpha2(*this, "alpha2"),
m_mob2(*this, "mob2"),
m_lscreen(*this, "lscreen"),
m_rscreen(*this, "rscreen")
@@ -100,6 +100,7 @@ public:
void init_cyberbalt();
void cyberbal(machine_config &config);
+ void cyberbal_base(machine_config &config);
void cyberbalt(machine_config &config);
protected:
@@ -143,8 +144,8 @@ private:
required_device<dac_word_interface> m_ldac;
required_device<atari_sound_comm_device> m_soundcomm;
required_device<ym2151_device> m_ymsnd;
- required_device<tilemap_device> m_playfield2_tilemap;
- required_device<tilemap_device> m_alpha2_tilemap;
+ required_device<tilemap_device> m_playfield2;
+ required_device<tilemap_device> m_alpha2;
required_device<atari_motion_objects_device> m_mob2;
required_device<screen_device> m_lscreen;
required_device<screen_device> m_rscreen;
diff --git a/src/mame/includes/namcona1.h b/src/mame/includes/namcona1.h
index 697fa5accbf..b9e8392e034 100644
--- a/src/mame/includes/namcona1.h
+++ b/src/mame/includes/namcona1.h
@@ -35,9 +35,12 @@ public:
m_scroll(*this, "scroll"),
m_spriteram(*this, "spriteram"),
m_prgrom(*this, "maincpu"),
- m_maskrom(*this, "maskrom")
+ m_maskrom(*this, "maskrom"),
+ m_scan_timer(nullptr)
{ }
+ void namcona_base(machine_config &config);
+ void c69(machine_config &config);
void namcona1(machine_config &config);
void init_bkrtmaq();
@@ -49,6 +52,9 @@ public:
void init_emeraldj();
void init_swcourtb();
+ void namcona1_mcu_io_map(address_map &map);
+ void namcona1_mcu_map(address_map &map);
+
protected:
DECLARE_READ16_MEMBER(custom_key_r);
DECLARE_WRITE16_MEMBER(custom_key_w);
@@ -76,13 +82,12 @@ protected:
DECLARE_READ16_MEMBER(snd_r);
DECLARE_WRITE16_MEMBER(snd_w);
+ virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
- TIMER_DEVICE_CALLBACK_MEMBER(interrupt);
+ void scanline_interrupt(int scanline);
void namcona1_main_map(address_map &map);
- void namcona1_mcu_io_map(address_map &map);
- void namcona1_mcu_map(address_map &map);
void namcona1_c140_map(address_map &map);
virtual void machine_start() override;
@@ -105,6 +110,11 @@ protected:
NAMCO_SWCOURTB
};
+ enum
+ {
+ TIMER_SCANLINE
+ };
+
int m_gametype;
required_device<cpu_device> m_maincpu;
@@ -128,6 +138,7 @@ protected:
required_region_ptr<uint16_t> m_prgrom;
required_region_ptr<uint16_t> m_maskrom;
+ emu_timer * m_scan_timer;
// this has to be uint8_t to be in the right byte order for the tilemap system
std::vector<uint8_t> m_shaperam;
@@ -172,6 +183,7 @@ public:
: namcona1_state(mconfig, type, tag)
{}
+ void c70(machine_config &config);
void namcona2(machine_config &config);
void init_knckhead();
diff --git a/src/mame/includes/taito_f3.h b/src/mame/includes/taito_f3.h
index d72543ecff8..148137d3f22 100644
--- a/src/mame/includes/taito_f3.h
+++ b/src/mame/includes/taito_f3.h
@@ -1,6 +1,8 @@
// license:BSD-3-Clause
// copyright-holders:Bryan McPhail
+
#include "audio/taito_en.h"
+#include "machine/eepromser.h"
#include "machine/watchdog.h"
#include "sound/okim6295.h"
#include "emupal.h"
@@ -61,6 +63,7 @@ public:
m_gfxdecode(*this, "gfxdecode"),
m_screen(*this, "screen"),
m_palette(*this, "palette"),
+ m_eeprom(*this, "eeprom"),
m_f3_ram(*this,"f3_ram"),
m_paletteram32(*this, "paletteram"),
m_input(*this, "IN.%u", 0),
@@ -133,6 +136,7 @@ protected:
required_device<gfxdecode_device> m_gfxdecode;
required_device<screen_device> m_screen;
required_device<palette_device> m_palette;
+ optional_device<eeprom_serial_base_device> m_eeprom;
optional_shared_ptr<uint32_t> m_f3_ram;
optional_shared_ptr<uint32_t> m_paletteram32;
diff --git a/src/mame/machine/atarigen.cpp b/src/mame/machine/atarigen.cpp
index 6f875a7e47a..d050b486cfc 100644
--- a/src/mame/machine/atarigen.cpp
+++ b/src/mame/machine/atarigen.cpp
@@ -56,9 +56,8 @@ DEFINE_DEVICE_TYPE(ATARI_SOUND_COMM, atari_sound_comm_device, "atarscom", "Atari
atari_sound_comm_device::atari_sound_comm_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: device_t(mconfig, ATARI_SOUND_COMM, tag, owner, clock),
- m_sound_cpu_tag(nullptr),
m_main_int_cb(*this),
- m_sound_cpu(nullptr),
+ m_sound_cpu(*this, finder_base::DUMMY_TAG),
m_main_to_sound_ready(false),
m_sound_to_main_ready(false),
m_main_to_sound_data(0),
@@ -75,13 +74,6 @@ atari_sound_comm_device::atari_sound_comm_device(const machine_config &mconfig,
void atari_sound_comm_device::device_start()
{
- // find the sound CPU
- if (m_sound_cpu_tag == nullptr)
- throw emu_fatalerror("No sound CPU specified!");
- m_sound_cpu = siblingdevice<m6502_device>(m_sound_cpu_tag);
- if (m_sound_cpu == nullptr)
- throw emu_fatalerror("Sound CPU '%s' not found!", m_sound_cpu_tag);
-
// resolve callbacks
m_main_int_cb.resolve_safe();
@@ -142,11 +134,15 @@ void atari_sound_comm_device::device_timer(emu_timer &timer, device_timer_id id,
INTERRUPT_GEN_MEMBER(atari_sound_comm_device::sound_irq_gen)
{
+ sound_irq();
+}
+
+void atari_sound_comm_device::sound_irq()
+{
m_timed_int = 1;
update_sound_irq();
}
-
//-------------------------------------------------
// sound_irq_ack_r: Resets the IRQ signal to the
// 6502 sound processor. Both reads and writes
diff --git a/src/mame/machine/atarigen.h b/src/mame/machine/atarigen.h
index f7a17481c2a..e60c624d323 100644
--- a/src/mame/machine/atarigen.h
+++ b/src/mame/machine/atarigen.h
@@ -29,17 +29,6 @@
//**************************************************************************
-// DEVICE CONFIGURATION MACROS
-//**************************************************************************
-
-#define MCFG_ATARI_SOUND_COMM_ADD(_tag, _soundcpu, _intcb) \
- MCFG_DEVICE_ADD(_tag, ATARI_SOUND_COMM, 0) \
- downcast<atari_sound_comm_device &>(*device).set_sound_cpu(_soundcpu); \
- downcast<atari_sound_comm_device &>(*device).set_main_int_cb(DEVCB_##_intcb);
-
-
-
-//**************************************************************************
// TYPE DEFINITIONS
//**************************************************************************
@@ -59,11 +48,17 @@ class atari_sound_comm_device : public device_t
{
public:
// construction/destruction
+ template <typename T>
+ atari_sound_comm_device(const machine_config &mconfig, const char *tag, device_t *owner, T &&cputag)
+ : atari_sound_comm_device(mconfig, tag, owner, (uint32_t)0)
+ {
+ m_sound_cpu.set_tag(std::forward<T>(cputag));
+ }
+
atari_sound_comm_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// configuration helpers
- void set_sound_cpu(const char *cputag) { m_sound_cpu_tag = cputag; }
- template <class Object> devcb_base &set_main_int_cb(Object &&cb) { return m_main_int_cb.set_callback(std::forward<Object>(cb)); }
+ auto int_callback() { return m_main_int_cb.bind(); }
// getters
DECLARE_READ_LINE_MEMBER(main_to_sound_ready) { return m_main_to_sound_ready ? ASSERT_LINE : CLEAR_LINE; }
@@ -81,6 +76,7 @@ public:
DECLARE_WRITE8_MEMBER(sound_irq_ack_w);
DECLARE_READ8_MEMBER(sound_irq_ack_r);
INTERRUPT_GEN_MEMBER(sound_irq_gen);
+ void sound_irq();
// additional helpers
DECLARE_WRITE_LINE_MEMBER(ym2151_irq_gen);
@@ -107,11 +103,10 @@ private:
};
// configuration state
- const char * m_sound_cpu_tag;
devcb_write_line m_main_int_cb;
// internal state
- m6502_device * m_sound_cpu;
+ required_device<m6502_device> m_sound_cpu;
bool m_main_to_sound_ready;
bool m_sound_to_main_ready;
uint8_t m_main_to_sound_data;
diff --git a/src/mame/machine/iteagle_fpga.cpp b/src/mame/machine/iteagle_fpga.cpp
index 748f939d77e..d59bd508738 100644
--- a/src/mame/machine/iteagle_fpga.cpp
+++ b/src/mame/machine/iteagle_fpga.cpp
@@ -670,9 +670,10 @@ void iteagle_eeprom_device::eeprom_map(address_map &map)
map(0x0000, 0x000F).rw(FUNC(iteagle_eeprom_device::eeprom_r), FUNC(iteagle_eeprom_device::eeprom_w));
}
-MACHINE_CONFIG_START(iteagle_eeprom_device::device_add_mconfig)
- MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
-MACHINE_CONFIG_END
+void iteagle_eeprom_device::device_add_mconfig(machine_config &config)
+{
+ EEPROM_93C46_16BIT(config, "eeprom");
+}
iteagle_eeprom_device::iteagle_eeprom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: pci_device(mconfig, ITEAGLE_EEPROM, tag, owner, clock)
@@ -714,7 +715,7 @@ void iteagle_eeprom_device::device_start()
}
m_iteagle_default_eeprom[0x3f] = checkSum;
- m_eeprom->set_default_data(m_iteagle_default_eeprom.data(), 0x80);
+ m_eeprom->default_data(m_iteagle_default_eeprom.data(), 0x80);
pci_device::device_start();
skip_map_regs(1);
diff --git a/src/mame/machine/model1io.cpp b/src/mame/machine/model1io.cpp
index 8fef843c855..ae48abdebd5 100644
--- a/src/mame/machine/model1io.cpp
+++ b/src/mame/machine/model1io.cpp
@@ -133,7 +133,7 @@ void model1io_device::device_add_mconfig(machine_config &config)
z80_device &iocpu(Z80(config, "iocpu", 32_MHz_XTAL/8));
iocpu.set_addrmap(AS_PROGRAM, &model1io_device::mem_map);
- EEPROM_SERIAL_93C46_16BIT(config, m_eeprom); // 93C45
+ EEPROM_93C46_16BIT(config, m_eeprom); // 93C45
sega_315_5338a_device &io(SEGA_315_5338A(config, "io", 32_MHz_XTAL));
io.read_callback().set(FUNC(model1io_device::io_r));
diff --git a/src/mame/machine/model1io2.cpp b/src/mame/machine/model1io2.cpp
index bc298ca0fa5..f1bac5e80bb 100644
--- a/src/mame/machine/model1io2.cpp
+++ b/src/mame/machine/model1io2.cpp
@@ -177,7 +177,7 @@ MACHINE_CONFIG_START( model1io2_device::device_add_mconfig )
io.out_pf_callback().set(FUNC(model1io2_device::io_pf_w));
io.out_pg_callback().set(FUNC(model1io2_device::io_pg_w));
- EEPROM_SERIAL_93C46_16BIT(config, m_eeprom); // 93C45
+ EEPROM_93C46_16BIT(config, m_eeprom); // 93C45
MB3773(config, m_watchdog, 0);
diff --git a/src/mame/video/atarimo.h b/src/mame/video/atarimo.h
index 01863bd1b4b..e14001a0075 100644
--- a/src/mame/video/atarimo.h
+++ b/src/mame/video/atarimo.h
@@ -24,7 +24,7 @@
downcast<atari_motion_objects_device &>(*device).set_config(_config);
#define MCFG_ATARI_MOTION_OBJECTS_GFXDECODE(_gfxtag) \
- downcast<atari_motion_objects_device &>(*device).set_gfxdecode_tag(_gfxtag);
+ downcast<atari_motion_objects_device &>(*device).set_gfxdecode(_gfxtag);
//**************************************************************************
@@ -86,7 +86,7 @@ public:
atari_motion_objects_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// configuration
- void set_gfxdecode_tag(const char *tag) { m_gfxdecode.set_tag(tag); }
+ template <typename T> void set_gfxdecode(T &&tag) { m_gfxdecode.set_tag(std::forward<T>(tag)); }
void set_config(const atari_motion_objects_config &config) { static_cast<atari_motion_objects_config &>(*this) = config; }
// getters
diff --git a/src/mame/video/cyberbal.cpp b/src/mame/video/cyberbal.cpp
index 0f470c6b7ff..742d133dac0 100644
--- a/src/mame/video/cyberbal.cpp
+++ b/src/mame/video/cyberbal.cpp
@@ -23,7 +23,7 @@
TILE_GET_INFO_MEMBER(cyberbal_base_state::get_alpha_tile_info)
{
- uint16_t data = m_alpha_tilemap->basemem_read(tile_index);
+ uint16_t data = m_alpha->basemem_read(tile_index);
int code = data & 0xfff;
int color = (data >> 12) & 0x07;
SET_TILE_INFO_MEMBER(2, code, color, (data >> 15) & 1);
@@ -32,7 +32,7 @@ TILE_GET_INFO_MEMBER(cyberbal_base_state::get_alpha_tile_info)
TILE_GET_INFO_MEMBER(cyberbal_state::get_alpha2_tile_info)
{
- uint16_t data = m_alpha2_tilemap->basemem_read(tile_index);
+ uint16_t data = m_alpha2->basemem_read(tile_index);
int code = data & 0xfff;
int color = (data >> 12) & 0x07;
SET_TILE_INFO_MEMBER(2, code, color, (data >> 15) & 1);
@@ -41,7 +41,7 @@ TILE_GET_INFO_MEMBER(cyberbal_state::get_alpha2_tile_info)
TILE_GET_INFO_MEMBER(cyberbal_base_state::get_playfield_tile_info)
{
- uint16_t data = m_playfield_tilemap->basemem_read(tile_index);
+ uint16_t data = m_playfield->basemem_read(tile_index);
int code = data & 0x1fff;
int color = (data >> 11) & 0x0f;
SET_TILE_INFO_MEMBER(0, code, color, (data >> 15) & 1);
@@ -50,7 +50,7 @@ TILE_GET_INFO_MEMBER(cyberbal_base_state::get_playfield_tile_info)
TILE_GET_INFO_MEMBER(cyberbal_state::get_playfield2_tile_info)
{
- uint16_t data = m_playfield2_tilemap->basemem_read(tile_index);
+ uint16_t data = m_playfield2->basemem_read(tile_index);
int code = data & 0x1fff;
int color = (data >> 11) & 0x0f;
SET_TILE_INFO_MEMBER(0, code, color, (data >> 15) & 1);
@@ -115,8 +115,8 @@ void cyberbal_base_state::video_start()
void cyberbal_state::video_start()
{
palette_device *rpalette = subdevice<palette_device>("rpalette");
- m_playfield2_tilemap->set_palette(*rpalette);
- m_alpha2_tilemap->set_palette(*rpalette);
+ m_playfield2->set_palette(*rpalette);
+ m_alpha2->set_palette(*rpalette);
cyberbal_base_state::video_start();
@@ -205,13 +205,13 @@ void cyberbal_base_state::scanline_update_one(screen_device &screen, int scanlin
void cyberbal_state::scanline_update(screen_device &screen, int scanline)
{
- scanline_update_one(*m_lscreen, scanline, 0, *m_playfield_tilemap, *m_alpha_tilemap);
- scanline_update_one(*m_rscreen, scanline, 1, *m_playfield2_tilemap, *m_alpha2_tilemap);
+ scanline_update_one(*m_lscreen, scanline, 0, *m_playfield, *m_alpha);
+ scanline_update_one(*m_rscreen, scanline, 1, *m_playfield2, *m_alpha2);
}
void cyberbal2p_state::scanline_update(screen_device &screen, int scanline)
{
- scanline_update_one(*m_screen, scanline, 0, *m_playfield_tilemap, *m_alpha_tilemap);
+ scanline_update_one(*m_screen, scanline, 0, *m_playfield, *m_alpha);
}
@@ -254,15 +254,15 @@ uint32_t cyberbal_base_state::update_one_screen(screen_device &screen, bitmap_in
uint32_t cyberbal_state::screen_update_cyberbal_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- return update_one_screen(screen, bitmap, cliprect, *m_mob, *m_playfield_tilemap, *m_alpha_tilemap);
+ return update_one_screen(screen, bitmap, cliprect, *m_mob, *m_playfield, *m_alpha);
}
uint32_t cyberbal_state::screen_update_cyberbal_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- return update_one_screen(screen, bitmap, cliprect, *m_mob2, *m_playfield2_tilemap, *m_alpha2_tilemap);
+ return update_one_screen(screen, bitmap, cliprect, *m_mob2, *m_playfield2, *m_alpha2);
}
uint32_t cyberbal2p_state::screen_update_cyberbal2p(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- return update_one_screen(screen, bitmap, cliprect, *m_mob, *m_playfield_tilemap, *m_alpha_tilemap);
+ return update_one_screen(screen, bitmap, cliprect, *m_mob, *m_playfield, *m_alpha);
}