From 53d99d4190039db893bed8250e88301a7697b551 Mon Sep 17 00:00:00 2001 From: Ivan Vangelista Date: Mon, 21 Jan 2019 18:44:26 +0100 Subject: devices\machine\ticket, timer: removed MCFG macros (nw) --- src/devices/bus/acorn/cms/4080term.cpp | 18 ++++++----- src/devices/bus/acorn/cms/hires.cpp | 13 ++++---- src/devices/bus/acorn/system/cass.cpp | 9 +++--- src/devices/bus/cgenie/expansion/floppy.cpp | 2 +- src/devices/bus/isa/pgc.cpp | 6 ++-- src/devices/bus/newbrain/eim.cpp | 2 +- src/devices/machine/74165.cpp | 7 +++-- src/devices/machine/74166.cpp | 7 +++-- src/devices/machine/stvcd.cpp | 15 ++++----- src/devices/machine/ticket.h | 16 ---------- src/devices/machine/timer.h | 49 +++++++---------------------- src/mame/audio/cage.cpp | 41 ++++++++++-------------- src/mame/audio/cage.h | 3 +- src/mame/drivers/1942.cpp | 2 +- src/mame/drivers/3do.cpp | 4 +-- src/mame/drivers/abc80x.cpp | 4 +-- src/mame/drivers/acommand.cpp | 2 +- src/mame/drivers/acrnsys1.cpp | 4 +-- src/mame/drivers/agat.cpp | 4 +-- src/mame/drivers/airbustr.cpp | 2 +- src/mame/drivers/airraid.cpp | 2 +- src/mame/drivers/albazc.cpp | 2 +- src/mame/drivers/alphatro.cpp | 4 +-- src/mame/drivers/amusco.cpp | 2 +- src/mame/drivers/applix.cpp | 2 +- src/mame/drivers/astrcorp.cpp | 6 ++-- src/mame/drivers/astrof.cpp | 14 ++++----- src/mame/drivers/atari_s1.cpp | 4 +-- src/mame/drivers/atari_s2.cpp | 4 +-- src/mame/drivers/atarisy1.cpp | 6 ++-- src/mame/drivers/atom.cpp | 4 +-- src/mame/drivers/avigo.cpp | 4 +-- src/mame/drivers/badlands.cpp | 2 +- src/mame/drivers/badlandsbl.cpp | 2 +- src/mame/drivers/beathead.cpp | 2 +- src/mame/drivers/bionicc.cpp | 2 +- src/mame/drivers/bladestl.cpp | 2 +- src/mame/drivers/blitz68k.cpp | 2 +- src/mame/drivers/blockout.cpp | 2 +- src/mame/drivers/blw700i.cpp | 2 +- src/mame/drivers/bml3.cpp | 6 ++-- src/mame/drivers/bnstars.cpp | 2 +- src/mame/drivers/bsktball.cpp | 2 +- src/mame/drivers/btime.cpp | 2 +- src/mame/drivers/buggychl.cpp | 2 +- src/mame/drivers/bullet.cpp | 4 +-- src/mame/drivers/busicom.cpp | 2 +- src/mame/drivers/bw12.cpp | 2 +- src/mame/drivers/by17.cpp | 17 +++++----- src/mame/drivers/by35.cpp | 12 +++---- src/mame/drivers/by6803.cpp | 12 +++---- src/mame/drivers/byvid.cpp | 4 +-- src/mame/drivers/calcune.cpp | 4 +-- src/mame/drivers/capbowl.cpp | 2 +- src/mame/drivers/champbas.cpp | 5 +-- src/mame/drivers/champbwl.cpp | 2 +- src/mame/drivers/chesstrv.cpp | 2 +- src/mame/drivers/cischeat.cpp | 15 +++++---- src/mame/drivers/ckz80.cpp | 9 +++--- src/mame/drivers/clpoker.cpp | 2 +- src/mame/drivers/coolpool.cpp | 6 ++-- src/mame/drivers/coolridr.cpp | 4 +-- src/mame/drivers/cosmicos.cpp | 4 +-- src/mame/drivers/cps1.cpp | 3 +- src/mame/drivers/cps2.cpp | 2 +- src/mame/drivers/cxgz80.cpp | 16 +++++----- src/mame/drivers/d6800.cpp | 4 +-- src/mame/drivers/dambustr.cpp | 2 +- src/mame/drivers/darkmist.cpp | 2 +- src/mame/drivers/dblcrown.cpp | 2 +- src/mame/drivers/dbz.cpp | 2 +- src/mame/drivers/dccons.cpp | 2 +- src/mame/drivers/dcheese.cpp | 2 +- src/mame/drivers/ddealer.cpp | 2 +- src/mame/drivers/ddragon3.cpp | 4 +-- src/mame/drivers/deco_mlc.cpp | 4 +-- src/mame/drivers/decocass.cpp | 2 +- src/mame/drivers/dfruit.cpp | 2 +- src/mame/drivers/djboy.cpp | 2 +- src/mame/drivers/dooyong.cpp | 4 +-- src/mame/drivers/dotrikun.cpp | 6 ++-- src/mame/drivers/dragrace.cpp | 2 +- src/mame/drivers/dvk_kcgd.cpp | 5 +-- src/mame/drivers/dvk_ksm.cpp | 2 +- src/mame/drivers/e100.cpp | 2 +- src/mame/drivers/eacc.cpp | 4 +-- src/mame/drivers/einstein.cpp | 4 +-- src/mame/drivers/eolith16.cpp | 2 +- src/mame/drivers/espial.cpp | 2 +- src/mame/drivers/exedexes.cpp | 2 +- src/mame/drivers/expro02.cpp | 2 +- src/mame/drivers/exterm.cpp | 2 +- src/mame/drivers/fc100.cpp | 6 ++-- src/mame/drivers/feversoc.cpp | 2 +- src/mame/drivers/fidel68k.cpp | 27 +++++++++------- src/mame/drivers/fidelmcs48.cpp | 2 +- src/mame/drivers/finalizr.cpp | 2 +- src/mame/drivers/firefox.cpp | 2 +- src/mame/drivers/firetrk.cpp | 2 +- src/mame/drivers/fk1.cpp | 4 +-- src/mame/drivers/fp1100.cpp | 2 +- src/mame/drivers/fresh.cpp | 2 +- src/mame/drivers/funtech.cpp | 2 +- src/mame/drivers/galaxian.cpp | 16 +++++----- src/mame/drivers/galaxold.cpp | 2 +- src/mame/drivers/galgames.cpp | 2 +- src/mame/drivers/galpani2.cpp | 4 +-- src/mame/drivers/galpani3.cpp | 2 +- src/mame/drivers/galpanic.cpp | 2 +- src/mame/drivers/gberet.cpp | 2 +- src/mame/drivers/gcpinbal.cpp | 2 +- src/mame/drivers/gei.cpp | 6 ++-- src/mame/drivers/gimix.cpp | 2 +- src/mame/drivers/glasgow.cpp | 4 +-- src/mame/drivers/goldstar.cpp | 2 +- src/mame/drivers/gp_2.cpp | 7 +++-- src/mame/drivers/gundealr.cpp | 4 +-- src/mame/drivers/gunpey.cpp | 2 +- src/mame/drivers/halleys.cpp | 6 ++-- src/mame/drivers/hankin.cpp | 4 +-- src/mame/drivers/hh_melps4.cpp | 4 +-- src/mame/drivers/hideseek.cpp | 2 +- src/mame/drivers/higemaru.cpp | 2 +- src/mame/drivers/hp2640.cpp | 8 ++--- src/mame/drivers/hp64k.cpp | 6 ++-- src/mame/drivers/hp80.cpp | 10 +++--- src/mame/drivers/hp9845.cpp | 12 +++---- src/mame/drivers/huebler.cpp | 4 +-- src/mame/drivers/hvyunit.cpp | 2 +- src/mame/drivers/hyprduel.cpp | 4 +-- src/mame/drivers/igs017.cpp | 20 ++++++------ src/mame/drivers/igspoker.cpp | 2 +- src/mame/drivers/ikki.cpp | 2 +- src/mame/drivers/imolagp.cpp | 2 +- src/mame/drivers/iq151.cpp | 2 +- src/mame/drivers/iqblock.cpp | 2 +- src/mame/drivers/ironhors.cpp | 5 ++- src/mame/drivers/jalmah.cpp | 2 +- src/mame/drivers/jchan.cpp | 2 +- src/mame/drivers/jclub2.cpp | 18 +++++------ src/mame/drivers/jeutel.cpp | 2 +- src/mame/drivers/jpmimpct.cpp | 4 +-- src/mame/drivers/junior.cpp | 2 +- src/mame/drivers/jupace.cpp | 4 +-- src/mame/drivers/kaneko16.cpp | 14 ++++----- src/mame/drivers/kas89.cpp | 4 +-- src/mame/drivers/kc.cpp | 4 +-- src/mame/drivers/kdt6.cpp | 2 +- src/mame/drivers/kim1.cpp | 4 +-- src/mame/drivers/koftball.cpp | 2 +- src/mame/drivers/konmedal68k.cpp | 2 +- src/mame/drivers/laserbas.cpp | 2 +- src/mame/drivers/lastbank.cpp | 2 +- src/mame/drivers/lazercmd.cpp | 6 ++-- src/mame/drivers/lethalj.cpp | 2 +- src/mame/drivers/littlerb.cpp | 4 +-- src/mame/drivers/ltd.cpp | 2 +- src/mame/drivers/markham.cpp | 2 +- src/mame/drivers/maygay1b.cpp | 2 +- src/mame/drivers/mc10.cpp | 2 +- src/mame/drivers/mc1000.cpp | 14 +++++---- src/mame/drivers/mcr3.cpp | 2 +- src/mame/drivers/mcr68.cpp | 2 +- src/mame/drivers/mediagx.cpp | 2 +- src/mame/drivers/meijinsn.cpp | 2 +- src/mame/drivers/mekd2.cpp | 4 +-- src/mame/drivers/mephisto.cpp | 10 +++--- src/mame/drivers/mephisto_montec.cpp | 2 +- src/mame/drivers/metlfrzr.cpp | 2 +- src/mame/drivers/meyc8088.cpp | 2 +- src/mame/drivers/micropin.cpp | 2 +- src/mame/drivers/midvunit.cpp | 4 +-- src/mame/drivers/mjsenpu.cpp | 2 +- src/mame/drivers/mk1.cpp | 2 +- src/mame/drivers/mk2.cpp | 2 +- src/mame/drivers/modena.cpp | 7 +++-- src/mame/drivers/monzagp.cpp | 7 +++-- src/mame/drivers/mpf1.cpp | 6 ++-- src/mame/drivers/mrflea.cpp | 2 +- src/mame/drivers/ms32.cpp | 2 +- src/mame/drivers/mstation.cpp | 4 +-- src/mame/drivers/mtx.cpp | 4 +-- src/mame/drivers/multfish.cpp | 4 +-- src/mame/drivers/multi8.cpp | 2 +- src/mame/drivers/mustache.cpp | 2 +- src/mame/drivers/mycom.cpp | 2 +- src/mame/drivers/mz700.cpp | 4 +-- src/mame/drivers/mz80.cpp | 2 +- src/mame/drivers/nakajies.cpp | 2 +- src/mame/drivers/namcofl.cpp | 6 ++-- src/mame/drivers/namconb1.cpp | 8 ++--- src/mame/drivers/namcos2.cpp | 14 ++++----- src/mame/drivers/namcos21.cpp | 2 +- src/mame/drivers/namcos21_c67.cpp | 2 +- src/mame/drivers/namcos21_de.cpp | 2 +- src/mame/drivers/namcos22.cpp | 17 +++++----- src/mame/drivers/nanos.cpp | 2 +- src/mame/drivers/nc.cpp | 2 +- src/mame/drivers/nitedrvr.cpp | 2 +- src/mame/drivers/novag6502.cpp | 23 +++++++------- src/mame/drivers/novag68k.cpp | 9 +++--- src/mame/drivers/novagf8.cpp | 2 +- src/mame/drivers/novagmcs48.cpp | 2 +- src/mame/drivers/olibochu.cpp | 2 +- src/mame/drivers/orbit.cpp | 2 +- src/mame/drivers/panicr.cpp | 2 +- src/mame/drivers/pasogo.cpp | 2 +- src/mame/drivers/patapata.cpp | 2 +- src/mame/drivers/pc100.cpp | 8 ++--- src/mame/drivers/pc6001.cpp | 4 +-- src/mame/drivers/pc8401a.cpp | 4 +-- src/mame/drivers/pc8801.cpp | 2 +- src/mame/drivers/pce220.cpp | 6 ++-- src/mame/drivers/pcw16.cpp | 4 +-- src/mame/drivers/pegasus.cpp | 2 +- src/mame/drivers/photon2.cpp | 2 +- src/mame/drivers/pingpong.cpp | 5 ++- src/mame/drivers/playmark.cpp | 8 ++--- src/mame/drivers/pofo.cpp | 6 ++-- src/mame/drivers/popobear.cpp | 2 +- src/mame/drivers/prestige.cpp | 2 +- src/mame/drivers/pro80.cpp | 2 +- src/mame/drivers/proteus3.cpp | 4 +-- src/mame/drivers/psion.cpp | 5 ++- src/mame/drivers/px4.cpp | 6 ++-- src/mame/drivers/rad_eu3a14.cpp | 2 +- src/mame/drivers/rainbow.cpp | 2 +- src/mame/drivers/rbisland.cpp | 2 +- src/mame/drivers/rd110.cpp | 4 +-- src/mame/drivers/rex6000.cpp | 12 +++---- src/mame/drivers/rmt32.cpp | 4 +-- src/mame/drivers/rowamet.cpp | 2 +- src/mame/drivers/rulechan.cpp | 11 +++---- src/mame/drivers/rzone.cpp | 12 +++---- src/mame/drivers/s3.cpp | 2 +- src/mame/drivers/s4.cpp | 2 +- src/mame/drivers/sbowling.cpp | 2 +- src/mame/drivers/scobra.cpp | 4 +-- src/mame/drivers/scorpion.cpp | 2 +- src/mame/drivers/scramble.cpp | 4 +-- src/mame/drivers/scregg.cpp | 4 +-- src/mame/drivers/seta2.cpp | 6 ++-- src/mame/drivers/shadfrce.cpp | 2 +- src/mame/drivers/shaolins.cpp | 2 +- src/mame/drivers/sigmab98.cpp | 16 +++++----- src/mame/drivers/simple_st0016.cpp | 2 +- src/mame/drivers/skullxbo.cpp | 2 +- src/mame/drivers/skylncr.cpp | 2 +- src/mame/drivers/sliver.cpp | 2 +- src/mame/drivers/smc777.cpp | 2 +- src/mame/drivers/snk6502.cpp | 2 +- src/mame/drivers/spc1500.cpp | 2 +- src/mame/drivers/spirit76.cpp | 2 +- src/mame/drivers/sprcros2.cpp | 2 +- src/mame/drivers/sprint8.cpp | 3 +- src/mame/drivers/spyhuntertec.cpp | 2 +- src/mame/drivers/squale.cpp | 2 +- src/mame/drivers/srumbler.cpp | 2 +- src/mame/drivers/st_mp100.cpp | 4 +-- src/mame/drivers/st_mp200.cpp | 4 +-- src/mame/drivers/stratos.cpp | 2 +- src/mame/drivers/subsino.cpp | 10 +++--- src/mame/drivers/subsino2.cpp | 2 +- src/mame/drivers/sun3.cpp | 4 +-- src/mame/drivers/sun3x.cpp | 2 +- src/mame/drivers/suprnova.cpp | 17 +++++----- src/mame/drivers/svision.cpp | 7 +++-- src/mame/drivers/taito.cpp | 2 +- src/mame/drivers/taito_o.cpp | 2 +- src/mame/drivers/tapatune.cpp | 2 +- src/mame/drivers/tasman.cpp | 2 +- src/mame/drivers/tb303.cpp | 16 +++++----- src/mame/drivers/tek405x.cpp | 2 +- src/mame/drivers/thedealr.cpp | 2 +- src/mame/drivers/ti89.cpp | 2 +- src/mame/drivers/ticalc1x.cpp | 22 ++++++------- src/mame/drivers/tickee.cpp | 8 ++--- src/mame/drivers/tiki100.cpp | 4 +-- src/mame/drivers/tispellb.cpp | 4 +-- src/mame/drivers/tk2000.cpp | 2 +- src/mame/drivers/tm990189.cpp | 10 +++--- src/mame/drivers/tmaster.cpp | 2 +- src/mame/drivers/tr606.cpp | 17 +++++----- src/mame/drivers/trs80m2.cpp | 4 +-- src/mame/drivers/v1050.cpp | 6 ++-- src/mame/drivers/vball.cpp | 2 +- src/mame/drivers/vboy.cpp | 8 ++--- src/mame/drivers/vcs80.cpp | 7 +++-- src/mame/drivers/vd.cpp | 13 ++++---- src/mame/drivers/vg5k.cpp | 4 +-- src/mame/drivers/vicdual.cpp | 18 +++++------ src/mame/drivers/videopkr.cpp | 2 +- src/mame/drivers/viper.cpp | 2 +- src/mame/drivers/vixen.cpp | 2 +- src/mame/drivers/volfied.cpp | 2 +- src/mame/drivers/votrpss.cpp | 2 +- src/mame/drivers/wheelfir.cpp | 2 +- src/mame/drivers/wico.cpp | 4 +-- src/mame/drivers/williams.cpp | 15 ++++----- src/mame/drivers/witch.cpp | 2 +- src/mame/drivers/wmg.cpp | 4 +-- src/mame/drivers/wpc_95.cpp | 2 +- src/mame/drivers/wpc_dcs.cpp | 2 +- src/mame/drivers/wpc_s.cpp | 2 +- src/mame/drivers/wwfsstar.cpp | 2 +- src/mame/drivers/x07.cpp | 2 +- src/mame/drivers/x1.cpp | 4 +-- src/mame/drivers/x1twin.cpp | 4 +-- src/mame/drivers/xain.cpp | 2 +- src/mame/drivers/xerox820.cpp | 4 +-- src/mame/drivers/xmen.cpp | 4 +-- src/mame/drivers/xtheball.cpp | 2 +- src/mame/drivers/z9001.cpp | 2 +- src/mame/drivers/zaurus.cpp | 2 +- src/mame/machine/megacd.cpp | 8 ++--- src/mame/machine/megacdcd.cpp | 13 ++++---- src/mame/machine/megadriv.cpp | 7 +++-- src/mame/video/cgc7900.cpp | 2 +- src/mame/video/decodmd1.cpp | 2 +- src/mame/video/pcd.cpp | 7 +++-- src/mame/video/wpc_dmd.cpp | 2 +- 321 files changed, 753 insertions(+), 770 deletions(-) diff --git a/src/devices/bus/acorn/cms/4080term.cpp b/src/devices/bus/acorn/cms/4080term.cpp index 0bf9cf5a7ea..24d77b1ec36 100644 --- a/src/devices/bus/acorn/cms/4080term.cpp +++ b/src/devices/bus/acorn/cms/4080term.cpp @@ -68,22 +68,23 @@ DEVICE_INPUT_DEFAULTS_END // device_add_mconfig - add device configuration //------------------------------------------------- -MACHINE_CONFIG_START(cms_4080term_device::device_add_mconfig) +void cms_4080term_device::device_add_mconfig(machine_config &config) +{ /* video hardware */ - device = &SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); m_screen->set_refresh_hz(50); m_screen->set_size(768, 312); m_screen->set_visarea(0, 492 - 1, 0, 270 - 1); - MCFG_SCREEN_UPDATE_DEVICE("ef9345", ef9345_device, screen_update) + m_screen->set_screen_update("ef9345", FUNC(ef9345_device::screen_update)); - MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_cms_4080term) - MCFG_PALETTE_ADD("palette", 8) + GFXDECODE(config, "gfxdecode", "palette", gfx_cms_4080term); + PALETTE(config, "palette").set_entries(8); EF9345(config, m_ef9345, 0); m_ef9345->set_screen("screen"); m_ef9345->set_palette_tag("palette"); - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", cms_4080term_device, update_scanline, "screen", 0, 10) + TIMER(config, "scantimer").configure_scanline(FUNC(cms_4080term_device::update_scanline), "screen", 0, 10); VIA6522(config, m_via, 1_MHz_XTAL); m_via->writepa_handler().set("cent_data_out", FUNC(output_latch_device::bus_w)); @@ -107,8 +108,9 @@ MACHINE_CONFIG_START(cms_4080term_device::device_add_mconfig) /* printer */ CENTRONICS(config, m_centronics, centronics_devices, "printer"); m_centronics->ack_handler().set(m_via, FUNC(via6522_device::write_ca1)); - MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics") -MACHINE_CONFIG_END + output_latch_device ¢_data_out(OUTPUT_LATCH(config, "cent_data_out")); + m_centronics->set_output_latch(cent_data_out); +} const tiny_rom_entry *cms_4080term_device::device_rom_region() const diff --git a/src/devices/bus/acorn/cms/hires.cpp b/src/devices/bus/acorn/cms/hires.cpp index d15032bd30c..78dadf9aea8 100644 --- a/src/devices/bus/acorn/cms/hires.cpp +++ b/src/devices/bus/acorn/cms/hires.cpp @@ -25,23 +25,24 @@ DEFINE_DEVICE_TYPE(CMS_HIRES, cms_hires_device, "cms_hires", "CMS High Resolutio // device_add_mconfig - add device configuration //------------------------------------------------- -MACHINE_CONFIG_START(cms_hires_device::device_add_mconfig) +void cms_hires_device::device_add_mconfig(machine_config &config) +{ /* video hardware */ - device = &SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); m_screen->set_size(512, 312); m_screen->set_visarea(0, 512 - 1, 0, 256 - 1); m_screen->set_refresh_hz(50); - MCFG_SCREEN_UPDATE_DEVICE("ef9366", ef9365_device, screen_update) - MCFG_PALETTE_ADD("palette", 16) + m_screen->set_screen_update("ef9366", FUNC(ef9365_device::screen_update)); + PALETTE(config, "palette").set_entries(16); - MCFG_TIMER_DRIVER_ADD_PERIODIC("flash_rate", cms_hires_device, flash_rate, attotime::from_hz(3)) // from 555 timer (4.7uF, 100K, 470R) + TIMER(config, "flash_rate").configure_periodic(FUNC(cms_hires_device::flash_rate), attotime::from_hz(3)); // from 555 timer (4.7uF, 100K, 470R) EF9365(config, m_gdp, 14_MHz_XTAL / 8); m_gdp->set_screen("screen"); m_gdp->set_palette_tag("palette"); m_gdp->set_nb_bitplanes(4); m_gdp->set_display_mode(ef9365_device::DISPLAY_MODE_512x256); -MACHINE_CONFIG_END +} //************************************************************************** diff --git a/src/devices/bus/acorn/system/cass.cpp b/src/devices/bus/acorn/system/cass.cpp index 092a72f40a3..6e5b8faf40c 100644 --- a/src/devices/bus/acorn/system/cass.cpp +++ b/src/devices/bus/acorn/system/cass.cpp @@ -24,15 +24,16 @@ DEFINE_DEVICE_TYPE(ACORN_CASS, acorn_cass_device, "acorn_cass", "Acorn Cassette // device_add_mconfig - add device configuration //------------------------------------------------- -MACHINE_CONFIG_START(acorn_cass_device::device_add_mconfig) +void acorn_cass_device::device_add_mconfig(machine_config &config) +{ /* sound hardware */ SPEAKER(config, "mono").front_center(); WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25); CASSETTE(config, "cassette", 0); - MCFG_TIMER_DRIVER_ADD_PERIODIC("cass_c", acorn_cass_device, cass_c, attotime::from_hz(4800)) - MCFG_TIMER_DRIVER_ADD_PERIODIC("cass_p", acorn_cass_device, cass_p, attotime::from_hz(40000)) -MACHINE_CONFIG_END + TIMER(config, "cass_c").configure_periodic(FUNC(acorn_cass_device::cass_c), attotime::from_hz(4800)); + TIMER(config, "cass_p").configure_periodic(FUNC(acorn_cass_device::cass_p), attotime::from_hz(40000)); +} //************************************************************************** diff --git a/src/devices/bus/cgenie/expansion/floppy.cpp b/src/devices/bus/cgenie/expansion/floppy.cpp index 021f00e9f8d..56b0c668b6e 100644 --- a/src/devices/bus/cgenie/expansion/floppy.cpp +++ b/src/devices/bus/cgenie/expansion/floppy.cpp @@ -72,7 +72,7 @@ const tiny_rom_entry *cgenie_fdc_device::device_rom_region() const //------------------------------------------------- MACHINE_CONFIG_START(cgenie_fdc_device::device_add_mconfig) - MCFG_TIMER_DRIVER_ADD_PERIODIC("timer", cgenie_fdc_device, timer_callback, attotime::from_msec(25)) + TIMER(config, "timer").configure_periodic(FUNC(cgenie_fdc_device::timer_callback), attotime::from_msec(25)); FD1793(config, m_fdc, 1_MHz_XTAL); m_fdc->intrq_wr_callback().set(FUNC(cgenie_fdc_device::intrq_w)); diff --git a/src/devices/bus/isa/pgc.cpp b/src/devices/bus/isa/pgc.cpp index ab242877e01..96b3233a76f 100644 --- a/src/devices/bus/isa/pgc.cpp +++ b/src/devices/bus/isa/pgc.cpp @@ -158,9 +158,9 @@ MACHINE_CONFIG_START(isa8_pgc_device::device_add_mconfig) MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(isa8_pgc_device, irq_callback) #endif - MCFG_TIMER_DRIVER_ADD_PERIODIC("scantimer", isa8_pgc_device, scanline_callback, - attotime::from_hz(60*PGC_TOTAL_VERT)) - MCFG_TIMER_START_DELAY(attotime::from_hz(XTAL(50'000'000)/(2*PGC_HORZ_START))) + timer_device &scantimer(TIMER(config, "scantimer")); + scantimer.configure_periodic(FUNC(isa8_pgc_device::scanline_callback), attotime::from_hz(60*PGC_TOTAL_VERT)); + scantimer.set_start_delay(attotime::from_hz(XTAL(50'000'000)/(2*PGC_HORZ_START))); MCFG_SCREEN_ADD(PGC_SCREEN_NAME, RASTER) MCFG_SCREEN_RAW_PARAMS(XTAL(50'000'000)/2, diff --git a/src/devices/bus/newbrain/eim.cpp b/src/devices/bus/newbrain/eim.cpp index 2bafd008eb6..b3f7cf1a4cc 100644 --- a/src/devices/bus/newbrain/eim.cpp +++ b/src/devices/bus/newbrain/eim.cpp @@ -74,7 +74,7 @@ MACHINE_CONFIG_START(newbrain_eim_device::device_add_mconfig) m_ctc->zc_callback<1>().set(m_acia, FUNC(acia6850_device::write_txc)); m_ctc->zc_callback<2>().set(FUNC(newbrain_eim_device::ctc_z2_w)); - MCFG_TIMER_DRIVER_ADD_PERIODIC("z80ctc_c2", newbrain_eim_device, ctc_c2_tick, attotime::from_hz(XTAL(16'000'000)/4/13)) + TIMER(config, "z80ctc_c2").configure_periodic(FUNC(newbrain_eim_device::ctc_c2_tick), attotime::from_hz(XTAL(16'000'000)/4/13)); adc0809_device &adc(ADC0809(config, ADC0809_TAG, 500000)); adc.eoc_callback().set(FUNC(newbrain_eim_device::adc_eoc_w)); diff --git a/src/devices/machine/74165.cpp b/src/devices/machine/74165.cpp index d33033d5ab7..9ba4415d56c 100644 --- a/src/devices/machine/74165.cpp +++ b/src/devices/machine/74165.cpp @@ -22,9 +22,10 @@ DEFINE_DEVICE_TYPE(TTL165, ttl165_device, "ttl165", "SN54/74165") // device_add_mconfig - add device configuration //------------------------------------------------- -MACHINE_CONFIG_START(ttl165_device::device_add_mconfig) - MCFG_TIMER_DRIVER_ADD("timer", ttl165_device, qh_output) -MACHINE_CONFIG_END +void ttl165_device::device_add_mconfig(machine_config &config) +{ + TIMER(config, m_timer).configure_generic(FUNC(ttl165_device::qh_output)); +} //************************************************************************** diff --git a/src/devices/machine/74166.cpp b/src/devices/machine/74166.cpp index 07a9de653a5..1611b526762 100644 --- a/src/devices/machine/74166.cpp +++ b/src/devices/machine/74166.cpp @@ -22,9 +22,10 @@ DEFINE_DEVICE_TYPE(TTL166, ttl166_device, "ttl166", "SN54/74166") // device_add_mconfig - add device configuration //------------------------------------------------- -MACHINE_CONFIG_START(ttl166_device::device_add_mconfig) - MCFG_TIMER_DRIVER_ADD("timer", ttl166_device, qh_output) -MACHINE_CONFIG_END +void ttl166_device::device_add_mconfig(machine_config &config) +{ + TIMER(config, m_timer).configure_generic(FUNC(ttl166_device::qh_output)); +} //************************************************************************** diff --git a/src/devices/machine/stvcd.cpp b/src/devices/machine/stvcd.cpp index 154a17e895b..c4b7ada9b9f 100644 --- a/src/devices/machine/stvcd.cpp +++ b/src/devices/machine/stvcd.cpp @@ -78,16 +78,17 @@ stvcd_device::stvcd_device(const machine_config &mconfig, const char *tag, devic { } -MACHINE_CONFIG_START(stvcd_device::device_add_mconfig) +void stvcd_device::device_add_mconfig(machine_config &config) +{ CDROM(config, "cdrom").set_interface("sat_cdrom"); - MCFG_TIMER_DRIVER_ADD("sector_timer", stvcd_device, stv_sector_cb) - MCFG_TIMER_DRIVER_ADD("sh1_cmd", stvcd_device, stv_sh1_sim) + TIMER(config, m_sector_timer).configure_generic(FUNC(stvcd_device::stv_sector_cb)); + TIMER(config, m_sh1_timer).configure_generic(FUNC(stvcd_device::stv_sh1_sim)); - MCFG_DEVICE_ADD("cdda", CDDA) - MCFG_MIXER_ROUTE(0, *this, 1.0, 0) - MCFG_MIXER_ROUTE(1, *this, 1.0, 1) -MACHINE_CONFIG_END + CDDA(config, m_cdda); + m_cdda->add_route(0, *this, 1.0, AUTO_ALLOC_INPUT, 0); + m_cdda->add_route(1, *this, 1.0, AUTO_ALLOC_INPUT, 1); +} void stvcd_device::device_start() { diff --git a/src/devices/machine/ticket.h b/src/devices/machine/ticket.h index 813e27b95c1..7330ad3cb74 100644 --- a/src/devices/machine/ticket.h +++ b/src/devices/machine/ticket.h @@ -21,22 +21,6 @@ DECLARE_DEVICE_TYPE(TICKET_DISPENSER, ticket_dispenser_device) DECLARE_DEVICE_TYPE(HOPPER, hopper_device) - -//************************************************************************** -// DEVICE CONFIGURATION MACROS -//************************************************************************** - -// add/remove dispensers -#define MCFG_TICKET_DISPENSER_ADD(_tag, _period_in_msec, _motor_sense, _status_sense) \ - MCFG_DEVICE_ADD(_tag, TICKET_DISPENSER, 0) \ - downcast(*device).set_period(_period_in_msec); \ - downcast(*device).set_senses(_motor_sense, _status_sense, false); - -#define MCFG_HOPPER_ADD(_tag, _period_in_msec, _motor_sense, _status_sense) \ - MCFG_DEVICE_ADD(_tag, TICKET_DISPENSER, 0) \ - downcast(*device).set_period(_period_in_msec); \ - downcast(*device).set_senses(_motor_sense, _status_sense, true); - //************************************************************************** // CONSTANTS //************************************************************************** diff --git a/src/devices/machine/timer.h b/src/devices/machine/timer.h index e27c8a8cc53..a68718cea22 100644 --- a/src/devices/machine/timer.h +++ b/src/devices/machine/timer.h @@ -22,44 +22,6 @@ // macros for a timer callback functions #define TIMER_DEVICE_CALLBACK_MEMBER(name) void name(timer_device &timer, void *ptr, s32 param) -//************************************************************************** -// TIMER DEVICE CONFIGURATION MACROS -//************************************************************************** - -#define MCFG_TIMER_ADD_NONE(_tag) \ - MCFG_DEVICE_ADD(_tag, TIMER, 0) \ - downcast(*device).configure_generic(timer_device::expired_delegate()); -#define MCFG_TIMER_DRIVER_ADD(_tag, _class, _callback) \ - MCFG_DEVICE_ADD(_tag, TIMER, 0) \ - downcast(*device).configure_generic(timer_device::expired_delegate(&_class::_callback, #_class "::" #_callback, nullptr, (_class *)nullptr)); -#define MCFG_TIMER_DEVICE_ADD(_tag, _devtag, _class, _callback) \ - MCFG_DEVICE_ADD(_tag, TIMER, 0) \ - downcast(*device).configure_generic(timer_device::expired_delegate(&_class::_callback, #_class "::" #_callback, _devtag, (_class *)nullptr)); -#define MCFG_TIMER_DRIVER_ADD_PERIODIC(_tag, _class, _callback, _period) \ - MCFG_DEVICE_ADD(_tag, TIMER, 0) \ - downcast(*device).configure_periodic(timer_device::expired_delegate(&_class::_callback, #_class "::" #_callback, nullptr, (_class *)nullptr), _period); -#define MCFG_TIMER_DEVICE_ADD_PERIODIC(_tag, _devtag, _class, _callback, _period) \ - MCFG_DEVICE_ADD(_tag, TIMER, 0) \ - downcast(*device).configure_periodic(timer_device::expired_delegate(&_class::_callback, #_class "::" #_callback, _devtag, (_class *)nullptr), _period); -#define MCFG_TIMER_DRIVER_ADD_SCANLINE(_tag, _class, _callback, _screen, _first_vpos, _increment) \ - MCFG_DEVICE_ADD(_tag, TIMER, 0) \ - downcast(*device).configure_scanline(timer_device::expired_delegate(&_class::_callback, #_class "::" #_callback, nullptr, (_class *)nullptr), _screen, _first_vpos, _increment); -#define MCFG_TIMER_DEVICE_ADD_SCANLINE(_tag, _devtag, _class, _callback, _screen, _first_vpos, _increment) \ - MCFG_DEVICE_ADD(_tag, TIMER, 0) \ - downcast(*device).configure_scanline(timer_device::expired_delegate(&_class::_callback, #_class "::" #_callback, _devtag, (_class *)nullptr), _screen, _first_vpos, _increment); -#define MCFG_TIMER_MODIFY(_tag) \ - MCFG_DEVICE_MODIFY(_tag) - -#define MCFG_TIMER_DRIVER_CALLBACK(_class, _callback) \ - downcast(*device).set_callback(timer_device::expired_delegate(&_class::_callback, #_class "::" #_callback, nullptr, (_class *)nullptr)); -#define MCFG_TIMER_START_DELAY(_start_delay) \ - downcast(*device).set_start_delay(_start_delay); -#define MCFG_TIMER_PARAM(_param) \ - downcast(*device).config_param(_param); -#define MCFG_TIMER_PTR(_ptr) \ - downcast(*device).set_ptr((void *)(_ptr)); - - //************************************************************************** // TYPE DEFINITIONS //************************************************************************** @@ -86,6 +48,11 @@ public: configure_generic(expired_delegate(callback, name, nullptr, static_cast(nullptr))); } + template void configure_generic(const char *devname, void (FunctionClass::*callback)(timer_device &, void *, s32), const char *name) + { + configure_generic(expired_delegate(callback, name, devname, static_cast(nullptr))); + } + template void configure_periodic(Object &&cb, const attotime &period) { m_type = TIMER_TYPE_PERIODIC; @@ -98,6 +65,12 @@ public: configure_periodic(expired_delegate(callback, name, nullptr, static_cast(nullptr)), period); } + template void configure_periodic(const char *devname, void (FunctionClass::*callback)(timer_device &, void *, s32), + const char *name, const attotime &period) + { + configure_periodic(expired_delegate(callback, name, devname, static_cast(nullptr)), period); + } + template void configure_scanline(Object &&cb, const char *screen, int first_vpos, int increment) { m_type = TIMER_TYPE_SCANLINE; diff --git a/src/mame/audio/cage.cpp b/src/mame/audio/cage.cpp index 6d4167b254f..71be3313f6a 100644 --- a/src/mame/audio/cage.cpp +++ b/src/mame/audio/cage.cpp @@ -119,8 +119,8 @@ atari_cage_device::atari_cage_device(const machine_config &mconfig, const char * atari_cage_device::atari_cage_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : device_t(mconfig, type, tag, owner, clock), - m_cageram(*this, "cageram"), m_cpu(*this, "cpu"), + m_cageram(*this, "cageram"), m_soundlatch(*this, "soundlatch"), m_dma_timer(*this, "cage_dma_timer"), m_timer(*this, "cage_timer%u", 0U), @@ -612,16 +612,16 @@ void atari_cage_seattle_device::cage_map_seattle(address_map &map) // machine_add_config - add device configuration //------------------------------------------------- -MACHINE_CONFIG_START(atari_cage_device::device_add_mconfig) - +void atari_cage_device::device_add_mconfig(machine_config &config) +{ /* basic machine hardware */ TMS32031(config, m_cpu, 33868800); m_cpu->set_addrmap(AS_PROGRAM, &atari_cage_device::cage_map); m_cpu->set_mcbl_mode(true); - MCFG_TIMER_DEVICE_ADD("cage_dma_timer", DEVICE_SELF, atari_cage_device, dma_timer_callback) - MCFG_TIMER_DEVICE_ADD("cage_timer0", DEVICE_SELF, atari_cage_device, cage_timer_callback) - MCFG_TIMER_DEVICE_ADD("cage_timer1", DEVICE_SELF, atari_cage_device, cage_timer_callback) + TIMER(config, m_dma_timer).configure_generic(DEVICE_SELF, FUNC(atari_cage_device::dma_timer_callback)); + TIMER(config, m_timer[0]).configure_generic(DEVICE_SELF, FUNC(atari_cage_device::cage_timer_callback)); + TIMER(config, m_timer[1]).configure_generic(DEVICE_SELF, FUNC(atari_cage_device::cage_timer_callback)); /* sound hardware */ SPEAKER(config, "lspeaker").front_left(); @@ -630,25 +630,19 @@ MACHINE_CONFIG_START(atari_cage_device::device_add_mconfig) GENERIC_LATCH_16(config, m_soundlatch); #if (DAC_BUFFER_CHANNELS == 4) - MCFG_DEVICE_ADD("dac1", DMADAC) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.50) + DMADAC(config, m_dmadac[0]).add_route(ALL_OUTPUTS, "rspeaker", 0.50); - MCFG_DEVICE_ADD("dac2", DMADAC) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.50) + DMADAC(config, m_dmadac[1]).add_route(ALL_OUTPUTS, "lspeaker", 0.50); - MCFG_DEVICE_ADD("dac3", DMADAC) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.50) + DMADAC(config, m_dmadac[2]).add_route(ALL_OUTPUTS, "lspeaker", 0.50); - MCFG_DEVICE_ADD("dac4", DMADAC) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.50) + DMADAC(config, m_dmadac[3]).add_route(ALL_OUTPUTS, "rspeaker", 0.50); #else - MCFG_DEVICE_ADD("dac1", DMADAC) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) + DMADAC(config, m_dmadac[0]).add_route(ALL_OUTPUTS, "lspeaker", 1.0); - MCFG_DEVICE_ADD("dac2", DMADAC) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) + DMADAC(config, m_dmadac[1]).add_route(ALL_OUTPUTS, "rspeaker", 1.0); #endif -MACHINE_CONFIG_END +} DEFINE_DEVICE_TYPE(ATARI_CAGE_SEATTLE, atari_cage_seattle_device, "atari_cage_seattle", "Atari CAGE Seattle") @@ -669,10 +663,9 @@ atari_cage_seattle_device::atari_cage_seattle_device(const machine_config &mconf //------------------------------------------------- -MACHINE_CONFIG_START(atari_cage_seattle_device::device_add_mconfig) - +void atari_cage_seattle_device::device_add_mconfig(machine_config &config) +{ atari_cage_device::device_add_mconfig(config); - MCFG_DEVICE_MODIFY("cpu") - MCFG_DEVICE_PROGRAM_MAP(cage_map_seattle) -MACHINE_CONFIG_END + m_cpu->set_addrmap(AS_PROGRAM, &atari_cage_seattle_device::cage_map_seattle); +} diff --git a/src/mame/audio/cage.h b/src/mame/audio/cage.h index e8230aae377..66c86f06cba 100644 --- a/src/mame/audio/cage.h +++ b/src/mame/audio/cage.h @@ -64,9 +64,10 @@ protected: TIMER_DEVICE_CALLBACK_MEMBER( dma_timer_callback ); TIMER_DEVICE_CALLBACK_MEMBER( cage_timer_callback ); + required_device m_cpu; + private: required_shared_ptr m_cageram; - required_device m_cpu; required_device m_soundlatch; required_device m_dma_timer; required_device_array m_timer; diff --git a/src/mame/drivers/1942.cpp b/src/mame/drivers/1942.cpp index a063ee16ef9..02b98a77e63 100644 --- a/src/mame/drivers/1942.cpp +++ b/src/mame/drivers/1942.cpp @@ -568,7 +568,7 @@ MACHINE_CONFIG_START(_1942_state::_1942) /* basic machine hardware */ MCFG_DEVICE_ADD("maincpu", Z80, MAIN_CPU_CLOCK) /* 4 MHz ??? */ MCFG_DEVICE_PROGRAM_MAP(_1942_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", _1942_state, _1942_scanline, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(_1942_state::_1942_scanline), "screen", 0, 1); MCFG_DEVICE_ADD("audiocpu", Z80, SOUND_CPU_CLOCK) /* 3 MHz ??? */ MCFG_DEVICE_PROGRAM_MAP(sound_map) diff --git a/src/mame/drivers/3do.cpp b/src/mame/drivers/3do.cpp index 4171a87cda7..401d7ab40b1 100644 --- a/src/mame/drivers/3do.cpp +++ b/src/mame/drivers/3do.cpp @@ -162,7 +162,7 @@ MACHINE_CONFIG_START(_3do_state::_3do) NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_1); - MCFG_TIMER_DRIVER_ADD_PERIODIC("timer_x16", _3do_state, timer_x16_cb, attotime::from_hz(12000)) // TODO: timing + TIMER(config, "timer_x16").configure_periodic(FUNC(_3do_state::timer_x16_cb), attotime::from_hz(12000)); // TODO: timing MCFG_SCREEN_ADD(m_screen, RASTER) MCFG_SCREEN_RAW_PARAMS( X2_CLOCK_NTSC / 2, 1592, 254, 1534, 263, 22, 262 ) @@ -180,7 +180,7 @@ MACHINE_CONFIG_START(_3do_state::_3do_pal) NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_1); - MCFG_TIMER_DRIVER_ADD_PERIODIC("timer_x16", _3do_state, timer_x16_cb, attotime::from_hz(12000)) // TODO: timing + TIMER(config, "timer_x16").configure_periodic(FUNC(_3do_state::timer_x16_cb), attotime::from_hz(12000)); // TODO: timing MCFG_SCREEN_ADD(m_screen, RASTER) MCFG_SCREEN_RAW_PARAMS( X2_CLOCK_PAL / 2, 1592, 254, 1534, 263, 22, 262 ) // TODO: proper params diff --git a/src/mame/drivers/abc80x.cpp b/src/mame/drivers/abc80x.cpp index 2b5f0279ba1..8342418f444 100644 --- a/src/mame/drivers/abc80x.cpp +++ b/src/mame/drivers/abc80x.cpp @@ -1065,7 +1065,7 @@ MACHINE_CONFIG_START(abc800_state::common) m_ctc->zc_callback<1>().set(FUNC(abc800_state::ctc_z1_w)); m_ctc->zc_callback<2>().set(m_dart, FUNC(z80dart_device::rxca_w)); m_ctc->zc_callback<2>().append(m_dart, FUNC(z80dart_device::txca_w)); - MCFG_TIMER_DRIVER_ADD_PERIODIC(TIMER_CTC_TAG, abc800_state, ctc_tick, attotime::from_hz(ABC800_X01/2/2/2)) + TIMER(config, TIMER_CTC_TAG).configure_periodic(FUNC(abc800_state::ctc_tick), attotime::from_hz(ABC800_X01/2/2/2)); Z80SIO(config, m_sio, ABC800_X01/2/2); m_sio->out_txda_callback().set(RS232_B_TAG, FUNC(rs232_port_device::write_txd)); @@ -1085,7 +1085,7 @@ MACHINE_CONFIG_START(abc800_state::common) MCFG_CASSETTE_ADD(CASSETTE_TAG) MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_STOPPED | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_MUTED) - MCFG_TIMER_DRIVER_ADD_PERIODIC(TIMER_CASSETTE_TAG, abc800_state, cassette_input_tick, attotime::from_hz(44100)) + TIMER(config, TIMER_CASSETTE_TAG).configure_periodic(FUNC(abc800_state::cassette_input_tick), attotime::from_hz(44100)); rs232_port_device &rs232a(RS232_PORT(config, RS232_A_TAG, default_rs232_devices, nullptr)); rs232a.rxd_handler().set(m_dart, FUNC(z80dart_device::rxa_w)); diff --git a/src/mame/drivers/acommand.cpp b/src/mame/drivers/acommand.cpp index 2f3174ff42d..9864cbdb312 100644 --- a/src/mame/drivers/acommand.cpp +++ b/src/mame/drivers/acommand.cpp @@ -473,7 +473,7 @@ MACHINE_CONFIG_START(acommand_state::acommand) /* basic machine hardware */ MCFG_DEVICE_ADD("maincpu",M68000,12000000) MCFG_DEVICE_PROGRAM_MAP(acommand_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", acommand_state, acommand_scanline, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(acommand_state::acommand_scanline), "screen", 0, 1); /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/acrnsys1.cpp b/src/mame/drivers/acrnsys1.cpp index 0d33002b5b0..3067715fac0 100644 --- a/src/mame/drivers/acrnsys1.cpp +++ b/src/mame/drivers/acrnsys1.cpp @@ -285,8 +285,8 @@ MACHINE_CONFIG_START(acrnsys1_state::acrnsys1) MCFG_CASSETTE_ADD( "cassette" ) - MCFG_TIMER_DRIVER_ADD_PERIODIC("acrnsys1_c", acrnsys1_state, acrnsys1_c, attotime::from_hz(4800)) - MCFG_TIMER_DRIVER_ADD_PERIODIC("acrnsys1_p", acrnsys1_state, acrnsys1_p, attotime::from_hz(40000)) + TIMER(config, "acrnsys1_c").configure_periodic(FUNC(acrnsys1_state::acrnsys1_c), attotime::from_hz(4800)); + TIMER(config, "acrnsys1_p").configure_periodic(FUNC(acrnsys1_state::acrnsys1_p), attotime::from_hz(40000)); MACHINE_CONFIG_END diff --git a/src/mame/drivers/agat.cpp b/src/mame/drivers/agat.cpp index a0560a020af..bba408474a4 100644 --- a/src/mame/drivers/agat.cpp +++ b/src/mame/drivers/agat.cpp @@ -1081,7 +1081,7 @@ MACHINE_CONFIG_START(agat7_state::agat7) MCFG_DEVICE_PROGRAM_MAP(agat7_map) MCFG_DEVICE_VBLANK_INT_DRIVER(A7_VIDEO_TAG ":a7screen", agat7_state, agat_vblank) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", agat7_state, timer_irq, A7_VIDEO_TAG ":a7screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(agat7_state::timer_irq), A7_VIDEO_TAG ":a7screen", 0, 1); MCFG_DEVICE_ADD(m_video, AGAT7VIDEO, RAM_TAG, "gfx1") @@ -1112,7 +1112,7 @@ MACHINE_CONFIG_START(agat7_state::agat7) m_ay3600->ako().set(FUNC(agat7_state::ay3600_ako_w)); /* repeat timer. 10 Hz per Mymrin's book */ - MCFG_TIMER_DRIVER_ADD_PERIODIC("repttmr", agat7_state, ay3600_repeat, attotime::from_hz(10)) + TIMER(config, "repttmr").configure_periodic(FUNC(agat7_state::ay3600_repeat), attotime::from_hz(10)); /* * slot 0 is reserved for SECAM encoder or Apple II compat card. diff --git a/src/mame/drivers/airbustr.cpp b/src/mame/drivers/airbustr.cpp index 88294b4bdc4..0114ab2e3e6 100644 --- a/src/mame/drivers/airbustr.cpp +++ b/src/mame/drivers/airbustr.cpp @@ -568,7 +568,7 @@ MACHINE_CONFIG_START(airbustr_state::airbustr) MCFG_DEVICE_ADD("master", Z80, XTAL(12'000'000)/2) /* verified on pcb */ MCFG_DEVICE_PROGRAM_MAP(master_map) MCFG_DEVICE_IO_MAP(master_io_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", airbustr_state, airbustr_scanline, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(airbustr_state::airbustr_scanline), "screen", 0, 1); MCFG_DEVICE_ADD("slave", Z80, XTAL(12'000'000)/2) /* verified on pcb */ MCFG_DEVICE_PROGRAM_MAP(slave_map) diff --git a/src/mame/drivers/airraid.cpp b/src/mame/drivers/airraid.cpp index bf405a0441c..efcd04d37c0 100644 --- a/src/mame/drivers/airraid.cpp +++ b/src/mame/drivers/airraid.cpp @@ -394,7 +394,7 @@ MACHINE_CONFIG_START(airraid_state::airraid) /* basic machine hardware */ MCFG_DEVICE_ADD(m_maincpu, Z80,XTAL(12'000'000)/2) /* verified on pcb */ MCFG_DEVICE_PROGRAM_MAP(airraid_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", airraid_state, cshooter_scanline, "airraid_vid:screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(airraid_state::cshooter_scanline), "airraid_vid:screen", 0, 1); MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(14'318'181)/4) /* verified on pcb */ MCFG_DEVICE_PROGRAM_MAP(airraid_sound_map) diff --git a/src/mame/drivers/albazc.cpp b/src/mame/drivers/albazc.cpp index 35f5d547210..649759b1b68 100644 --- a/src/mame/drivers/albazc.cpp +++ b/src/mame/drivers/albazc.cpp @@ -284,7 +284,7 @@ MACHINE_CONFIG_START(albazc_state::hanaroku) NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); - MCFG_TICKET_DISPENSER_ADD("hopper", attotime::from_msec(50), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_HIGH ) + TICKET_DISPENSER(config, m_hopper, attotime::from_msec(50), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_HIGH ); /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/alphatro.cpp b/src/mame/drivers/alphatro.cpp index d173a2928c9..4c8fe4aeb54 100644 --- a/src/mame/drivers/alphatro.cpp +++ b/src/mame/drivers/alphatro.cpp @@ -785,8 +785,8 @@ MACHINE_CONFIG_START(alphatro_state::alphatro) MCFG_CASSETTE_INTERFACE("alphatro_cass") MCFG_SOFTWARE_LIST_ADD("cass_list","alphatro_cass") - MCFG_TIMER_DRIVER_ADD_PERIODIC("timer_c", alphatro_state, timer_c, attotime::from_hz(4800)) - MCFG_TIMER_DRIVER_ADD_PERIODIC("timer_p", alphatro_state, timer_p, attotime::from_hz(40000)) + TIMER(config, "timer_c").configure_periodic(FUNC(alphatro_state::timer_c), attotime::from_hz(4800)); + TIMER(config, "timer_p").configure_periodic(FUNC(alphatro_state::timer_p), attotime::from_hz(40000)); RAM(config, "ram").set_default_size("64K"); diff --git a/src/mame/drivers/amusco.cpp b/src/mame/drivers/amusco.cpp index 85bc8c13be9..d1caea3af5c 100644 --- a/src/mame/drivers/amusco.cpp +++ b/src/mame/drivers/amusco.cpp @@ -571,7 +571,7 @@ MACHINE_CONFIG_START(amusco_state::amusco) i8155b.in_pc_callback().set(m_rtc, FUNC(msm5832_device::data_r)); i8155b.out_pc_callback().set(m_rtc, FUNC(msm5832_device::data_w)); - MCFG_TICKET_DISPENSER_ADD("hopper", attotime::from_msec(30), TICKET_MOTOR_ACTIVE_LOW, TICKET_STATUS_ACTIVE_HIGH) + TICKET_DISPENSER(config, m_hopper, attotime::from_msec(30), TICKET_MOTOR_ACTIVE_LOW, TICKET_STATUS_ACTIVE_HIGH); /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/applix.cpp b/src/mame/drivers/applix.cpp index 2176f468202..2481a2707da 100644 --- a/src/mame/drivers/applix.cpp +++ b/src/mame/drivers/applix.cpp @@ -918,7 +918,7 @@ MACHINE_CONFIG_START(applix_state::applix) MCFG_FLOPPY_DRIVE_SOUND(true) MCFG_FLOPPY_DRIVE_ADD("fdc:1", applix_floppies, "35dd", applix_state::floppy_formats) MCFG_FLOPPY_DRIVE_SOUND(true) - MCFG_TIMER_DRIVER_ADD_PERIODIC("applix_c", applix_state, cass_timer, attotime::from_hz(100000)) + TIMER(config, "applix_c").configure_periodic(FUNC(applix_state::cass_timer), attotime::from_hz(100000)); MACHINE_CONFIG_END /* ROM definition */ diff --git a/src/mame/drivers/astrcorp.cpp b/src/mame/drivers/astrcorp.cpp index 9ed45d4c9ba..2185ad065ed 100644 --- a/src/mame/drivers/astrcorp.cpp +++ b/src/mame/drivers/astrcorp.cpp @@ -580,13 +580,13 @@ MACHINE_CONFIG_START(astrocorp_state::skilldrp) /* basic machine hardware */ MCFG_DEVICE_ADD("maincpu", M68000, XTAL(24'000'000) / 2) // JX-1689F1028N GRX586.V5 MCFG_DEVICE_PROGRAM_MAP(skilldrp_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", astrocorp_state, skilldrp_scanline, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(astrocorp_state::skilldrp_scanline), "screen", 0, 1); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); 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 ) + TICKET_DISPENSER(config, m_ticket, attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW ); + TICKET_DISPENSER(config, m_hopper, attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW ); /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/astrof.cpp b/src/mame/drivers/astrof.cpp index 954418c4465..44cb8ea63e4 100644 --- a/src/mame/drivers/astrof.cpp +++ b/src/mame/drivers/astrof.cpp @@ -913,17 +913,17 @@ INPUT_PORTS_END * *************************************/ -MACHINE_CONFIG_START(astrof_state::base) - +void astrof_state::base(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M6502, MAIN_CPU_CLOCK) - MCFG_TIMER_DRIVER_ADD_SCANLINE("vblank", astrof_state, irq_callback, "screen", VBSTART, 0) + M6502(config, m_maincpu, MAIN_CPU_CLOCK); + TIMER(config, "vblank").configure_scanline(FUNC(astrof_state::irq_callback), "screen", VBSTART, 0); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) -MACHINE_CONFIG_END + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_raw(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART); +} MACHINE_CONFIG_START(astrof_state::astrof) diff --git a/src/mame/drivers/atari_s1.cpp b/src/mame/drivers/atari_s1.cpp index f8d785178b0..f03a13e8663 100644 --- a/src/mame/drivers/atari_s1.cpp +++ b/src/mame/drivers/atari_s1.cpp @@ -468,8 +468,8 @@ MACHINE_CONFIG_START(atari_s1_state::atari_s1) /* Video */ config.set_default_layout(layout_atari_s1); - MCFG_TIMER_DRIVER_ADD_PERIODIC("nmi", atari_s1_state, nmi, attotime::from_hz(NMI_INT)) - MCFG_TIMER_DRIVER_ADD_PERIODIC("timer_s", atari_s1_state, timer_s, attotime::from_hz(AUDIO_CLK)) + TIMER(config, "nmi").configure_periodic(FUNC(atari_s1_state::nmi), attotime::from_hz(NMI_INT)); + TIMER(config, "timer_s").configure_periodic(FUNC(atari_s1_state::timer_s), attotime::from_hz(AUDIO_CLK)); MACHINE_CONFIG_END MACHINE_CONFIG_START(atari_s1_state::atarians) diff --git a/src/mame/drivers/atari_s2.cpp b/src/mame/drivers/atari_s2.cpp index ff198642ed3..f0e0cc7b714 100644 --- a/src/mame/drivers/atari_s2.cpp +++ b/src/mame/drivers/atari_s2.cpp @@ -499,8 +499,8 @@ MACHINE_CONFIG_START(atari_s2_state::atari_s2) /* Video */ config.set_default_layout(layout_atari_s2); - MCFG_TIMER_DRIVER_ADD_PERIODIC("irq", atari_s2_state, irq, attotime::from_hz(XTAL(4'000'000) / 8192)) - MCFG_TIMER_DRIVER_ADD_PERIODIC("timer_s", atari_s2_state, timer_s, attotime::from_hz(150000)) + TIMER(config, "irq").configure_periodic(FUNC(atari_s2_state::irq), attotime::from_hz(XTAL(4'000'000) / 8192)); + TIMER(config, "timer_s").configure_periodic(FUNC(atari_s2_state::timer_s), attotime::from_hz(150000)); MACHINE_CONFIG_END MACHINE_CONFIG_START(atari_s2_state::atari_s3) diff --git a/src/mame/drivers/atarisy1.cpp b/src/mame/drivers/atarisy1.cpp index 251ecf21fb5..2c56c093bb1 100644 --- a/src/mame/drivers/atarisy1.cpp +++ b/src/mame/drivers/atarisy1.cpp @@ -747,9 +747,9 @@ MACHINE_CONFIG_START(atarisy1_state::atarisy1) WATCHDOG_TIMER(config, "watchdog"); - MCFG_TIMER_DRIVER_ADD("scan_timer", atarisy1_state, atarisy1_int3_callback) - MCFG_TIMER_DRIVER_ADD("int3off_timer", atarisy1_state, atarisy1_int3off_callback) - MCFG_TIMER_DRIVER_ADD("yreset_timer", atarisy1_state, atarisy1_reset_yscroll_callback) + TIMER(config, m_scanline_timer).configure_generic(FUNC(atarisy1_state::atarisy1_int3_callback)); + TIMER(config, m_int3off_timer).configure_generic(FUNC(atarisy1_state::atarisy1_int3off_callback)); + TIMER(config, m_yscroll_reset_timer).configure_generic(FUNC(atarisy1_state::atarisy1_reset_yscroll_callback)); /* video hardware */ MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_atarisy1) diff --git a/src/mame/drivers/atom.cpp b/src/mame/drivers/atom.cpp index ca6e0a704b0..93f13d51719 100644 --- a/src/mame/drivers/atom.cpp +++ b/src/mame/drivers/atom.cpp @@ -726,7 +726,7 @@ MACHINE_CONFIG_START(atom_state::atom) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) /* devices */ - MCFG_TIMER_DRIVER_ADD_PERIODIC("hz2400", atom_state, cassette_output_tick, attotime::from_hz(4806)) + TIMER(config, "hz2400").configure_periodic(FUNC(atom_state::cassette_output_tick), attotime::from_hz(4806)); via6522_device &via(VIA6522(config, R6522_TAG, X2/4)); via.writepa_handler().set("cent_data_out", FUNC(output_latch_device::bus_w)); @@ -834,7 +834,7 @@ MACHINE_CONFIG_START(atom_state::atombb) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) /* devices */ - MCFG_TIMER_DRIVER_ADD_PERIODIC("hz2400", atom_state, cassette_output_tick, attotime::from_hz(4806)) + TIMER(config, "hz2400").configure_periodic(FUNC(atom_state::cassette_output_tick), attotime::from_hz(4806)); via6522_device &via(VIA6522(config, R6522_TAG, X2/4)); via.writepa_handler().set("cent_data_out", FUNC(output_latch_device::bus_w)); diff --git a/src/mame/drivers/avigo.cpp b/src/mame/drivers/avigo.cpp index 797564ebbf9..4fc83c27684 100644 --- a/src/mame/drivers/avigo.cpp +++ b/src/mame/drivers/avigo.cpp @@ -805,10 +805,10 @@ MACHINE_CONFIG_START(avigo_state::avigo) NVRAM(config, "nvram").set_custom_handler(FUNC(avigo_state::nvram_init)); // IRQ 1 is used for scan the pen and for cursor blinking - MCFG_TIMER_DRIVER_ADD_PERIODIC("scan_timer", avigo_state, avigo_scan_timer, attotime::from_hz(50)) + TIMER(config, "scan_timer").configure_periodic(FUNC(avigo_state::avigo_scan_timer), attotime::from_hz(50)); // IRQ 4 is generated every second, used for auto power off - MCFG_TIMER_DRIVER_ADD_PERIODIC("1hz_timer", avigo_state, avigo_1hz_timer, attotime::from_hz(1)) + TIMER(config, "1hz_timer").configure_periodic(FUNC(avigo_state::avigo_1hz_timer), attotime::from_hz(1)); /* quickload */ MCFG_QUICKLOAD_ADD("quickload", avigo_state, avigo, "app", 0) diff --git a/src/mame/drivers/badlands.cpp b/src/mame/drivers/badlands.cpp index 9c5eedaa968..544c71dde06 100644 --- a/src/mame/drivers/badlands.cpp +++ b/src/mame/drivers/badlands.cpp @@ -449,7 +449,7 @@ MACHINE_CONFIG_START(badlands_state::badlands) MCFG_DEVICE_ADD("audiocpu", M6502, ATARI_CLOCK_14MHz/8) MCFG_DEVICE_PROGRAM_MAP(audio_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", badlands_state, sound_scanline, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(badlands_state::sound_scanline), "screen", 0, 1); MCFG_MACHINE_START_OVERRIDE(badlands_state,badlands) MCFG_MACHINE_RESET_OVERRIDE(badlands_state,badlands) diff --git a/src/mame/drivers/badlandsbl.cpp b/src/mame/drivers/badlandsbl.cpp index a4c5acfd147..25b6f39e547 100644 --- a/src/mame/drivers/badlandsbl.cpp +++ b/src/mame/drivers/badlandsbl.cpp @@ -227,7 +227,7 @@ MACHINE_CONFIG_START(badlandsbl_state::badlandsb) MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(20'000'000)/12) /* Divisor estimated */ MCFG_DEVICE_PROGRAM_MAP(bootleg_audio_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", badlandsbl_state, bootleg_sound_scanline, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(badlandsbl_state::bootleg_sound_scanline), "screen", 0, 1); // MCFG_QUANTUM_PERFECT_CPU("maincpu") diff --git a/src/mame/drivers/beathead.cpp b/src/mame/drivers/beathead.cpp index 23456f11fdc..7bafc37d61e 100644 --- a/src/mame/drivers/beathead.cpp +++ b/src/mame/drivers/beathead.cpp @@ -343,7 +343,7 @@ MACHINE_CONFIG_START(beathead_state::beathead) WATCHDOG_TIMER(config, "watchdog"); - MCFG_TIMER_DRIVER_ADD(m_scan_timer, beathead_state, scanline_callback) + TIMER(config, m_scan_timer).configure_generic(FUNC(beathead_state::scanline_callback)); /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/bionicc.cpp b/src/mame/drivers/bionicc.cpp index 1c80379e0a9..c5afbeab2fd 100644 --- a/src/mame/drivers/bionicc.cpp +++ b/src/mame/drivers/bionicc.cpp @@ -393,7 +393,7 @@ MACHINE_CONFIG_START(bionicc_state::bionicc) /* basic machine hardware */ MCFG_DEVICE_ADD("maincpu", M68000, XTAL(24'000'000) / 2) /* 12 MHz - verified in schematics */ MCFG_DEVICE_PROGRAM_MAP(main_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", bionicc_state, scanline, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(bionicc_state::scanline), "screen", 0, 1); MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(14'318'181) / 4) /* EXO3 C,B=GND, A=5V ==> Divisor 2^2 */ diff --git a/src/mame/drivers/bladestl.cpp b/src/mame/drivers/bladestl.cpp index 8c64fb7ad7d..449d74bd02a 100644 --- a/src/mame/drivers/bladestl.cpp +++ b/src/mame/drivers/bladestl.cpp @@ -308,7 +308,7 @@ MACHINE_CONFIG_START(bladestl_state::bladestl) /* basic machine hardware */ MCFG_DEVICE_ADD(m_maincpu, HD6309E, XTAL(24'000'000) / 8) // divider not verified (from 007342 custom) MCFG_DEVICE_PROGRAM_MAP(main_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", bladestl_state, bladestl_scanline, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(bladestl_state::bladestl_scanline), "screen", 0, 1); MCFG_DEVICE_ADD(m_audiocpu, MC6809E, XTAL(24'000'000) / 16) MCFG_DEVICE_PROGRAM_MAP(sound_map) diff --git a/src/mame/drivers/blitz68k.cpp b/src/mame/drivers/blitz68k.cpp index 944a3cdd7c8..0ce1d248c3e 100644 --- a/src/mame/drivers/blitz68k.cpp +++ b/src/mame/drivers/blitz68k.cpp @@ -1783,7 +1783,7 @@ MACHINE_CONFIG_START(blitz68k_state::steaser) MCFG_DEVICE_PROGRAM_MAP(steaser_map) MCFG_DEVICE_VBLANK_INT_DRIVER("screen", blitz68k_state, irq5_line_hold) //3, 4 & 6 used, mcu comms? - MCFG_TIMER_DRIVER_ADD_PERIODIC("coinsim", blitz68k_state, steaser_mcu_sim, attotime::from_hz(10000)) + TIMER(config, "coinsim").configure_periodic(FUNC(blitz68k_state::steaser_mcu_sim), attotime::from_hz(10000)); MACHINE_CONFIG_END MACHINE_CONFIG_START(blitz68k_state::cjffruit) diff --git a/src/mame/drivers/blockout.cpp b/src/mame/drivers/blockout.cpp index 3249c589183..9ffdb8bde97 100644 --- a/src/mame/drivers/blockout.cpp +++ b/src/mame/drivers/blockout.cpp @@ -309,7 +309,7 @@ MACHINE_CONFIG_START(blockout_state::blockout) /* basic machine hardware */ MCFG_DEVICE_ADD("maincpu", M68000, MAIN_CLOCK) /* MRH - 8.76 makes gfx/adpcm samples sync better -- but 10 is correct speed*/ MCFG_DEVICE_PROGRAM_MAP(main_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", blockout_state, blockout_scanline, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(blockout_state::blockout_scanline), "screen", 0, 1); MCFG_DEVICE_ADD("audiocpu", Z80, AUDIO_CLOCK) /* 3.579545 MHz */ MCFG_DEVICE_PROGRAM_MAP(audio_map) diff --git a/src/mame/drivers/blw700i.cpp b/src/mame/drivers/blw700i.cpp index b0471c08b22..088a1d60ff0 100644 --- a/src/mame/drivers/blw700i.cpp +++ b/src/mame/drivers/blw700i.cpp @@ -272,7 +272,7 @@ MACHINE_CONFIG_START(lw700i_state::lw700i) MCFG_DEVICE_ADD("maincpu", H83003, XTAL(16'000'000)) MCFG_DEVICE_PROGRAM_MAP(main_map) MCFG_DEVICE_IO_MAP(io_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", lw700i_state, vbl_interrupt, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(lw700i_state::vbl_interrupt), "screen", 0, 1); MCFG_SCREEN_ADD("screen", LCD) MCFG_SCREEN_REFRESH_RATE(60) diff --git a/src/mame/drivers/bml3.cpp b/src/mame/drivers/bml3.cpp index 600ee5e2b3b..87df85d73aa 100644 --- a/src/mame/drivers/bml3.cpp +++ b/src/mame/drivers/bml3.cpp @@ -984,9 +984,9 @@ MACHINE_CONFIG_START(bml3_state::bml3_common) // fire once per scan of an individual key // According to the service manual (p.65), the keyboard timer is driven by the horizontal video sync clock. - MCFG_TIMER_DRIVER_ADD_PERIODIC("keyboard_timer", bml3_state, keyboard_callback, attotime::from_hz(H_CLOCK/2)) - MCFG_TIMER_DRIVER_ADD_PERIODIC("bml3_c", bml3_state, bml3_c, attotime::from_hz(4800)) - MCFG_TIMER_DRIVER_ADD_PERIODIC("bml3_p", bml3_state, bml3_p, attotime::from_hz(40000)) + TIMER(config, "keyboard_timer").configure_periodic(FUNC(bml3_state::keyboard_callback), attotime::from_hz(H_CLOCK/2)); + TIMER(config, "bml3_c").configure_periodic(FUNC(bml3_state::bml3_c), attotime::from_hz(4800)); + TIMER(config, "bml3_p").configure_periodic(FUNC(bml3_state::bml3_p), attotime::from_hz(40000)); pia6821_device &pia(PIA6821(config, "pia", 0)); pia.writepa_handler().set(FUNC(bml3_state::bml3_piaA_w)); diff --git a/src/mame/drivers/bnstars.cpp b/src/mame/drivers/bnstars.cpp index 00d1aaf266e..2da7d1868b3 100644 --- a/src/mame/drivers/bnstars.cpp +++ b/src/mame/drivers/bnstars.cpp @@ -816,7 +816,7 @@ MACHINE_CONFIG_START(bnstars_state::bnstars) MCFG_DEVICE_PROGRAM_MAP(bnstars_map) MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(ms32_state,irq_callback) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", bnstars_state, ms32_interrupt, "lscreen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(bnstars_state::ms32_interrupt), "lscreen", 0, 1); MCFG_DEVICE_ADD("audiocpu", Z80, 4000000) // Unverified; it's possibly higher than 4MHz MCFG_DEVICE_PROGRAM_MAP(bnstars_sound_map) diff --git a/src/mame/drivers/bsktball.cpp b/src/mame/drivers/bsktball.cpp index 14787c96615..e20d8bf040f 100644 --- a/src/mame/drivers/bsktball.cpp +++ b/src/mame/drivers/bsktball.cpp @@ -243,7 +243,7 @@ MACHINE_CONFIG_START(bsktball_state::bsktball) /* basic machine hardware */ MCFG_DEVICE_ADD("maincpu", M6502,750000) MCFG_DEVICE_PROGRAM_MAP(main_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", bsktball_state, bsktball_scanline, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(bsktball_state::bsktball_scanline), "screen", 0, 1); f9334_device &outlatch(F9334(config, "outlatch")); // M6 outlatch.q_out_cb<1>().set_nop(); // Coin Counter diff --git a/src/mame/drivers/btime.cpp b/src/mame/drivers/btime.cpp index 2cdb297dbe8..2998cf45386 100644 --- a/src/mame/drivers/btime.cpp +++ b/src/mame/drivers/btime.cpp @@ -1285,7 +1285,7 @@ MACHINE_CONFIG_START(btime_state::btime) MCFG_DEVICE_ADD("audiocpu", M6502, HCLK1/3/2) MCFG_DEVICE_PROGRAM_MAP(audio_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("8vck", btime_state, audio_nmi_gen, "screen", 0, 8) + TIMER(config, "8vck").configure_scanline(FUNC(btime_state::audio_nmi_gen), "screen", 0, 8); INPUT_MERGER_ALL_HIGH(config, "audionmi").output_handler().set_inputline(m_audiocpu, INPUT_LINE_NMI); diff --git a/src/mame/drivers/buggychl.cpp b/src/mame/drivers/buggychl.cpp index 475fe490f3d..1b3e25cc09a 100644 --- a/src/mame/drivers/buggychl.cpp +++ b/src/mame/drivers/buggychl.cpp @@ -520,7 +520,7 @@ void buggychl_state::buggychl(machine_config &config) Z80(config, m_audiocpu, 8_MHz_XTAL/2); /* 4 MHz according to schematics */ m_audiocpu->set_addrmap(AS_PROGRAM, &buggychl_state::sound_map); m_audiocpu->set_periodic_int(FUNC(buggychl_state::irq0_line_hold), attotime::from_hz(8_MHz_XTAL/2/2/256/64)); // timer irq - //MCFG_TIMER_DEVICE_ADD_PERIODIC("soundirq", "audiocpu", irq0_line_hold, 8_MHz_XTAL/2/2/256/64) + //TIMER(config, "soundirq").configure_periodic(m_audiocpu, FUNC(buggychl_state::irq0_line_hold), 8_MHz_XTAL/2/2/256/64); // The schematics (which are at least partly for the wrong sound board) show a configurable timer with rates of // 61.035Hz (8_MHz_XTAL/2/2/256/128) // or 122.0Hz (8_MHz_XTAL/2/2/256/64) diff --git a/src/mame/drivers/bullet.cpp b/src/mame/drivers/bullet.cpp index 9c487187e11..4e1e93a660b 100644 --- a/src/mame/drivers/bullet.cpp +++ b/src/mame/drivers/bullet.cpp @@ -1120,7 +1120,7 @@ MACHINE_CONFIG_START(bullet_state::bullet) m_ctc->zc_callback<1>().set(m_dart, FUNC(z80dart_device::rxtxcb_w)); m_ctc->zc_callback<2>().set(m_ctc, FUNC(z80ctc_device::trg3)); - MCFG_TIMER_DRIVER_ADD_PERIODIC("ctc", bullet_state, ctc_tick, attotime::from_hz(4.9152_MHz_XTAL /4)) + TIMER(config, "ctc").configure_periodic(FUNC(bullet_state::ctc_tick), attotime::from_hz(4.9152_MHz_XTAL / 4)); Z80DART(config, m_dart, 16_MHz_XTAL / 4); m_dart->out_txda_callback().set(RS232_A_TAG, FUNC(rs232_port_device::write_txd)); @@ -1199,7 +1199,7 @@ MACHINE_CONFIG_START(bulletf_state::bulletf) m_ctc->zc_callback<1>().set(m_dart, FUNC(z80dart_device::rxtxcb_w)); m_ctc->zc_callback<2>().set(m_ctc, FUNC(z80ctc_device::trg3)); - MCFG_TIMER_DRIVER_ADD_PERIODIC("ctc", bullet_state, ctc_tick, attotime::from_hz(4.9152_MHz_XTAL / 4)) + TIMER(config, "ctc").configure_periodic(FUNC(bullet_state::ctc_tick), attotime::from_hz(4.9152_MHz_XTAL / 4)); Z80DART(config, m_dart, 16_MHz_XTAL / 4); m_dart->out_txda_callback().set(RS232_A_TAG, FUNC(rs232_port_device::write_txd)); diff --git a/src/mame/drivers/busicom.cpp b/src/mame/drivers/busicom.cpp index 8ac487f27c4..63ab41c8e12 100644 --- a/src/mame/drivers/busicom.cpp +++ b/src/mame/drivers/busicom.cpp @@ -244,7 +244,7 @@ MACHINE_CONFIG_START(busicom_state::busicom) PALETTE(config, m_palette, FUNC(busicom_state::busicom_palette), 16); - MCFG_TIMER_DRIVER_ADD_PERIODIC("busicom_timer", busicom_state, timer_callback, attotime::from_msec(28*2)) + TIMER(config, "busicom_timer").configure_periodic(FUNC(busicom_state::timer_callback), attotime::from_msec(28*2)); MACHINE_CONFIG_END /* ROM definition */ diff --git a/src/mame/drivers/bw12.cpp b/src/mame/drivers/bw12.cpp index cd9f2ba1423..5da247d6ef4 100644 --- a/src/mame/drivers/bw12.cpp +++ b/src/mame/drivers/bw12.cpp @@ -579,7 +579,7 @@ MACHINE_CONFIG_START(bw12_state::common) MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT) /* devices */ - MCFG_TIMER_DRIVER_ADD(FLOPPY_TIMER_TAG, bw12_state, floppy_motor_off_tick) + TIMER(config, FLOPPY_TIMER_TAG).configure_generic(FUNC(bw12_state::floppy_motor_off_tick)); UPD765A(config, m_fdc, 8'000'000, false, true); PIA6821(config, m_pia, 0); diff --git a/src/mame/drivers/by17.cpp b/src/mame/drivers/by17.cpp index 63a46128e03..4c3b1f4c25f 100644 --- a/src/mame/drivers/by17.cpp +++ b/src/mame/drivers/by17.cpp @@ -993,10 +993,11 @@ void by17_state::machine_reset() -MACHINE_CONFIG_START(by17_state::by17) +void by17_state::by17(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M6800, 530000) // No xtal, just 2 chips forming a multivibrator oscillator around 530KHz - MCFG_DEVICE_PROGRAM_MAP(by17_map) + M6800(config, m_maincpu, 530000); // No xtal, just 2 chips forming a multivibrator oscillator around 530KHz + m_maincpu->set_addrmap(AS_PROGRAM, &by17_state::by17_map); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); // 'F' filled causes Credit Display to be blank on first startup @@ -1018,8 +1019,8 @@ MACHINE_CONFIG_START(by17_state::by17) m_pia_u10->cb2_handler().set(FUNC(by17_state::u10_cb2_w)); m_pia_u10->irqa_handler().set_inputline("maincpu", M6800_IRQ_LINE); m_pia_u10->irqb_handler().set_inputline("maincpu", M6800_IRQ_LINE); - MCFG_TIMER_DRIVER_ADD_PERIODIC("timer_z_freq", by17_state, timer_z_freq, attotime::from_hz(100)) // Mains Line Frequency * 2 - MCFG_TIMER_DRIVER_ADD(m_zero_crossing_active_timer, by17_state, timer_z_pulse) // Active pulse length from Zero Crossing detector + TIMER(config, "timer_z_freq").configure_periodic(FUNC(by17_state::timer_z_freq), attotime::from_hz(100)); // Mains Line Frequency * 2 + TIMER(config, m_zero_crossing_active_timer).configure_generic(FUNC(by17_state::timer_z_pulse)); // Active pulse length from Zero Crossing detector PIA6821(config, m_pia_u11, 0); m_pia_u11->readpa_handler().set(FUNC(by17_state::u11_a_r)); @@ -1031,9 +1032,9 @@ MACHINE_CONFIG_START(by17_state::by17) m_pia_u11->cb2_handler().set(FUNC(by17_state::u11_cb2_w)); m_pia_u11->irqa_handler().set_inputline("maincpu", M6800_IRQ_LINE); m_pia_u11->irqb_handler().set_inputline("maincpu", M6800_IRQ_LINE); - MCFG_TIMER_DRIVER_ADD_PERIODIC("timer_d_freq", by17_state, u11_timer, attotime::from_hz(317)) // 555 timer - MCFG_TIMER_DRIVER_ADD(m_display_refresh_timer, by17_state, timer_d_pulse) // 555 Active pulse length -MACHINE_CONFIG_END + TIMER(config, "timer_d_freq").configure_periodic(FUNC(by17_state::u11_timer), attotime::from_hz(317)); // 555 timer + TIMER(config, m_display_refresh_timer).configure_generic(FUNC(by17_state::timer_d_pulse)); // 555 Active pulse length +} diff --git a/src/mame/drivers/by35.cpp b/src/mame/drivers/by35.cpp index 4b4cb22de01..7ae2922d4e1 100644 --- a/src/mame/drivers/by35.cpp +++ b/src/mame/drivers/by35.cpp @@ -1117,8 +1117,8 @@ MACHINE_CONFIG_START(by35_state::by35) m_pia_u10->cb2_handler().set(FUNC(by35_state::u10_cb2_w)); m_pia_u10->irqa_handler().set_inputline("maincpu", M6800_IRQ_LINE); m_pia_u10->irqb_handler().set_inputline("maincpu", M6800_IRQ_LINE); - MCFG_TIMER_DRIVER_ADD_PERIODIC("timer_z_freq", by35_state, timer_z_freq, attotime::from_hz(100)) // Mains Line Frequency * 2 - MCFG_TIMER_DRIVER_ADD(m_zero_crossing_active_timer, by35_state, timer_z_pulse) // Active pulse length from Zero Crossing detector + TIMER(config, "timer_z_freq").configure_periodic(FUNC(by35_state::timer_z_freq), attotime::from_hz(100)); // Mains Line Frequency * 2 + TIMER(config, m_zero_crossing_active_timer).configure_generic(FUNC(by35_state::timer_z_pulse)); // Active pulse length from Zero Crossing detector PIA6821(config, m_pia_u11, 0); m_pia_u11->readpa_handler().set(FUNC(by35_state::u11_a_r)); @@ -1130,8 +1130,8 @@ MACHINE_CONFIG_START(by35_state::by35) m_pia_u11->cb2_handler().set(FUNC(by35_state::u11_cb2_w)); m_pia_u11->irqa_handler().set_inputline("maincpu", M6800_IRQ_LINE); m_pia_u11->irqb_handler().set_inputline("maincpu", M6800_IRQ_LINE); - MCFG_TIMER_DRIVER_ADD_PERIODIC("timer_d_freq", by35_state, u11_timer, attotime::from_hz(317)) // 555 timer - MCFG_TIMER_DRIVER_ADD(m_display_refresh_timer, by35_state, timer_d_pulse) // 555 Active pulse length + TIMER(config, "timer_d_freq").configure_periodic(FUNC(by35_state::u11_timer), attotime::from_hz(317)); // 555 timer + TIMER(config, m_display_refresh_timer).configure_generic(FUNC(by35_state::timer_d_pulse)); // 555 Active pulse length MACHINE_CONFIG_END MACHINE_CONFIG_START(as2888_state::as2888_audio) @@ -1142,8 +1142,8 @@ MACHINE_CONFIG_START(as2888_state::as2888_audio) m_pia_u11->writepb_handler().set(FUNC(as2888_state::u11_b_as2888_w)); m_pia_u11->cb2_handler().set(FUNC(as2888_state::u11_cb2_as2888_w)); - MCFG_TIMER_DRIVER_ADD_PERIODIC("timer_s_freq", as2888_state, timer_s, attotime::from_hz(353000)) // Inverter clock on AS-2888 sound board - MCFG_TIMER_DRIVER_ADD(m_snd_sustain_timer, as2888_state, timer_as2888) + TIMER(config, "timer_s_freq").configure_periodic(FUNC(as2888_state::timer_s), attotime::from_hz(353000)); // Inverter clock on AS-2888 sound board + TIMER(config, m_snd_sustain_timer).configure_generic(FUNC(as2888_state::timer_as2888)); MACHINE_CONFIG_END diff --git a/src/mame/drivers/by6803.cpp b/src/mame/drivers/by6803.cpp index 0ff8dfa170b..d5ca10888f6 100644 --- a/src/mame/drivers/by6803.cpp +++ b/src/mame/drivers/by6803.cpp @@ -375,7 +375,8 @@ TIMER_DEVICE_CALLBACK_MEMBER( by6803_state::pia0_timer ) m_pia0->cb1_w(m_pia0_timer); } -MACHINE_CONFIG_START(by6803_state::by6803) +void by6803_state::by6803(machine_config &config) +{ /* basic machine hardware */ M6803(config, m_maincpu, XTAL(3'579'545)); m_maincpu->set_addrmap(AS_PROGRAM, &by6803_state::by6803_map); @@ -402,7 +403,7 @@ MACHINE_CONFIG_START(by6803_state::by6803) m_pia0->cb2_handler().set(FUNC(by6803_state::pia0_cb2_w)); m_pia0->irqa_handler().set_inputline("maincpu", M6803_IRQ_LINE); m_pia0->irqb_handler().set_inputline("maincpu", M6803_IRQ_LINE); - MCFG_TIMER_DRIVER_ADD_PERIODIC("timer_z", by6803_state, pia0_timer, attotime::from_hz(120)) // mains freq*2 + TIMER(config, "timer_z").configure_periodic(FUNC(by6803_state::pia0_timer), attotime::from_hz(120)); // mains freq*2 PIA6821(config, m_pia1, 0); m_pia1->readpa_handler().set(FUNC(by6803_state::pia1_a_r)); @@ -410,10 +411,9 @@ MACHINE_CONFIG_START(by6803_state::by6803) m_pia1->writepb_handler().set(FUNC(by6803_state::pia1_b_w)); m_pia1->cb2_handler().set(FUNC(by6803_state::pia1_cb2_w)); - //MCFG_SPEAKER_STANDARD_MONO("speaker") - //MCFG_DEVICE_ADD("tcs", MIDWAY_TURBO_CHEAP_SQUEAK) // Cheap Squeak Turbo - //MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0) -MACHINE_CONFIG_END + //SPEAKER(config, "mono").front_center(); + //MIDWAY_TURBO_CHEAP_SQUEAK(config, "tcs").add_route(ALL_OUTPUTS, "speaker", 1.0); // Cheap Squeak Turbo +} /*----------------------------------------------------------- diff --git a/src/mame/drivers/byvid.cpp b/src/mame/drivers/byvid.cpp index 7799837e073..ad017774b79 100644 --- a/src/mame/drivers/byvid.cpp +++ b/src/mame/drivers/byvid.cpp @@ -781,7 +781,7 @@ MACHINE_CONFIG_START(by133_state::babypac) m_pia_u10->cb2_handler().set(FUNC(by133_state::u10_cb2_w)); m_pia_u10->irqa_handler().set_inputline("maincpu", M6800_IRQ_LINE); m_pia_u10->irqb_handler().set_inputline("maincpu", M6800_IRQ_LINE); - MCFG_TIMER_DRIVER_ADD_PERIODIC("babypac1", by133_state, u10_timer, attotime::from_hz(120)) // mains freq*2 + TIMER(config, "babypac1").configure_periodic(FUNC(by133_state::u10_timer), attotime::from_hz(120)); // mains freq*2 PIA6821(config, m_pia_u11, 0); m_pia_u11->readpa_handler().set(FUNC(by133_state::u11_a_r)); @@ -792,7 +792,7 @@ MACHINE_CONFIG_START(by133_state::babypac) m_pia_u11->cb2_handler().set(FUNC(by133_state::u11_cb2_w)); m_pia_u11->irqa_handler().set_inputline("maincpu", M6800_IRQ_LINE); m_pia_u11->irqb_handler().set_inputline("maincpu", M6800_IRQ_LINE); - MCFG_TIMER_DRIVER_ADD_PERIODIC("babypac2", by133_state, u11_timer, attotime::from_hz(634)) // 555 timer*2 + TIMER(config, "babypac2").configure_periodic(FUNC(by133_state::u11_timer), attotime::from_hz(634)); // 555 timer*2 /* video hardware */ TMS9928A(config, m_crtc, XTAL(10'738'635)).set_screen("screen"); diff --git a/src/mame/drivers/calcune.cpp b/src/mame/drivers/calcune.cpp index f76512a9929..30b07a721b9 100644 --- a/src/mame/drivers/calcune.cpp +++ b/src/mame/drivers/calcune.cpp @@ -290,8 +290,8 @@ MACHINE_CONFIG_START(calcune_state::calcune) m_vdp2->add_route(ALL_OUTPUTS, "lspeaker", 0.25); m_vdp2->add_route(ALL_OUTPUTS, "rspeaker", 0.25); - MCFG_TIMER_DEVICE_ADD_SCANLINE("scantimer", "gen_vdp", sega315_5313_device, megadriv_scanline_timer_callback_alt_timing, "megadriv", 0, 1) - MCFG_TIMER_DEVICE_ADD_SCANLINE("scantimer2", "gen_vdp2", sega315_5313_device, megadriv_scanline_timer_callback_alt_timing, "megadriv", 0, 1) + TIMER(config, "scantimer").configure_scanline("gen_vdp", FUNC(sega315_5313_device::megadriv_scanline_timer_callback_alt_timing), "megadriv", 0, 1); + TIMER(config, "scantimer2").configure_scanline("gen_vdp2", FUNC(sega315_5313_device::megadriv_scanline_timer_callback_alt_timing), "megadriv", 0, 1); MCFG_PALETTE_ADD("palette", 0xc0*2) diff --git a/src/mame/drivers/capbowl.cpp b/src/mame/drivers/capbowl.cpp index 119977a7291..6373deaf41b 100644 --- a/src/mame/drivers/capbowl.cpp +++ b/src/mame/drivers/capbowl.cpp @@ -332,7 +332,7 @@ MACHINE_CONFIG_START(capbowl_state::capbowl) NVRAM(config, "nvram", nvram_device::DEFAULT_RANDOM); - MCFG_TICKET_DISPENSER_ADD("ticket", attotime::from_msec(100), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW) + TICKET_DISPENSER(config, "ticket", attotime::from_msec(100), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW); /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/champbas.cpp b/src/mame/drivers/champbas.cpp index 0d928689e43..a880df6149f 100644 --- a/src/mame/drivers/champbas.cpp +++ b/src/mame/drivers/champbas.cpp @@ -691,8 +691,9 @@ MACHINE_CONFIG_START(exctsccr_state::exctsccr) MCFG_DEVICE_IO_MAP(exctsccr_sound_io_map) MCFG_DEVICE_PERIODIC_INT_DRIVER(exctsccr_state, nmi_line_pulse, 4000) // 4 kHz, updates the dac - MCFG_TIMER_DRIVER_ADD_PERIODIC("exc_snd_irq", exctsccr_state, exctsccr_sound_irq, attotime::from_hz(75)) // irq source unknown, determines music tempo - MCFG_TIMER_START_DELAY(attotime::from_hz(75)) + timer_device &exc_snd_irq(TIMER(config, "exc_snd_irq")); + exc_snd_irq.configure_periodic(FUNC(exctsccr_state::exctsccr_sound_irq), attotime::from_hz(75)); // irq source unknown, determines music tempo + exc_snd_irq.set_start_delay(attotime::from_hz(75)); MCFG_DEVICE_ADD("alpha_8201", ALPHA_8201, XTAL(18'432'000)/6/8) // note: 8302 rom, or 8303 on exctscc2 (same device!) MCFG_QUANTUM_PERFECT_CPU("alpha_8201:mcu") diff --git a/src/mame/drivers/champbwl.cpp b/src/mame/drivers/champbwl.cpp index 5ef96219ec0..bcba22c6383 100644 --- a/src/mame/drivers/champbwl.cpp +++ b/src/mame/drivers/champbwl.cpp @@ -565,7 +565,7 @@ MACHINE_CONFIG_START(champbwl_state::doraemon) SETA001_SPRITE(config, m_seta001, 0); m_seta001->set_gfxdecode_tag("gfxdecode"); - MCFG_TICKET_DISPENSER_ADD("hopper", attotime::from_msec(2000), TICKET_MOTOR_ACTIVE_LOW, TICKET_STATUS_ACTIVE_LOW ) + TICKET_DISPENSER(config, m_hopper, attotime::from_msec(2000), TICKET_MOTOR_ACTIVE_LOW, TICKET_STATUS_ACTIVE_LOW ); MCFG_MACHINE_START_OVERRIDE(champbwl_state,doraemon) diff --git a/src/mame/drivers/chesstrv.cpp b/src/mame/drivers/chesstrv.cpp index b7e97f1d7f0..f0f42f2265c 100644 --- a/src/mame/drivers/chesstrv.cpp +++ b/src/mame/drivers/chesstrv.cpp @@ -290,7 +290,7 @@ MACHINE_CONFIG_START(borisdpl_state::borisdpl) /* video hardware */ config.set_default_layout(layout_borisdpl); - //MCFG_TIMER_DRIVER_ADD_PERIODIC("timer_interrupt", borisdpl_state, timer_interrupt, attotime::from_hz(40)) + //TIMER(config, "timer_interrupt").configure_periodic(FUNC(borisdpl_state::timer_interrupt), attotime::from_hz(40)); MACHINE_CONFIG_END diff --git a/src/mame/drivers/cischeat.cpp b/src/mame/drivers/cischeat.cpp index f4366c78afd..8377781e5ba 100644 --- a/src/mame/drivers/cischeat.cpp +++ b/src/mame/drivers/cischeat.cpp @@ -1954,7 +1954,7 @@ MACHINE_CONFIG_START(cischeat_state::bigrun) /* basic machine hardware */ MCFG_DEVICE_ADD("cpu1", M68000, 10000000) MCFG_DEVICE_PROGRAM_MAP(bigrun_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", cischeat_state, bigrun_scanline, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(cischeat_state::bigrun_scanline), "screen", 0, 1); MCFG_DEVICE_ADD("cpu2", M68000, 10000000) MCFG_DEVICE_PROGRAM_MAP(bigrun_map2) @@ -2133,7 +2133,7 @@ MACHINE_CONFIG_START(cischeat_state::scudhamm) /* basic machine hardware */ MCFG_DEVICE_ADD("maincpu",M68000, 12000000) MCFG_DEVICE_PROGRAM_MAP(scudhamm_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", cischeat_state, scudhamm_scanline, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(cischeat_state::scudhamm_scanline), "screen", 0, 1); WATCHDOG_TIMER(config, m_watchdog); @@ -2189,8 +2189,7 @@ MACHINE_CONFIG_START(cischeat_state::armchmp2) /* basic machine hardware */ MCFG_DEVICE_MODIFY("maincpu") MCFG_DEVICE_PROGRAM_MAP(armchmp2_map) - MCFG_TIMER_MODIFY("scantimer") - MCFG_TIMER_DRIVER_CALLBACK(cischeat_state, armchamp2_scanline) + subdevice("scantimer")->set_callback(FUNC(cischeat_state::armchamp2_scanline)); MACHINE_CONFIG_END @@ -2221,9 +2220,9 @@ MACHINE_CONFIG_START(cischeat_state::captflag) /* basic machine hardware */ MCFG_DEVICE_ADD("maincpu",M68000, XTAL(24'000'000) / 2) // TMP68000P-12 MCFG_DEVICE_PROGRAM_MAP(captflag_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", cischeat_state, captflag_scanline, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(cischeat_state::captflag_scanline), "screen", 0, 1); - MCFG_TICKET_DISPENSER_ADD("hopper", attotime::from_msec(2000), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_HIGH ) + TICKET_DISPENSER(config, m_captflag_hopper, attotime::from_msec(2000), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_HIGH ); WATCHDOG_TIMER(config, m_watchdog); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); @@ -2246,8 +2245,8 @@ MACHINE_CONFIG_START(cischeat_state::captflag) MEGASYS1_TILEMAP(config, m_tmap[2], m_palette, 0x4e00/2); // Motors - MCFG_TIMER_ADD_NONE("motor_left") - MCFG_TIMER_ADD_NONE("motor_right") + TIMER(config, m_captflag_motor_left).configure_generic(timer_device::expired_delegate()); + TIMER(config, m_captflag_motor_right).configure_generic(timer_device::expired_delegate()); // Layout config.set_default_layout(layout_captflag); diff --git a/src/mame/drivers/ckz80.cpp b/src/mame/drivers/ckz80.cpp index 7e087426c20..e3487a47e4e 100644 --- a/src/mame/drivers/ckz80.cpp +++ b/src/mame/drivers/ckz80.cpp @@ -436,13 +436,14 @@ MACHINE_CONFIG_START(ckz80_state::master) /* basic machine hardware */ MCFG_DEVICE_ADD("maincpu", Z80, 8_MHz_XTAL/2) MCFG_DEVICE_PROGRAM_MAP(master_trampoline) - MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_on", ckz80_state, irq_on, attotime::from_hz(429)) // theoretical frequency from 555 timer (22nF, 150K, 1K5), measurement was 418Hz - MCFG_TIMER_START_DELAY(attotime::from_hz(429) - attotime::from_nsec(22870)) // active for 22.87us - MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_off", ckz80_state, irq_off, attotime::from_hz(429)) + timer_device &irq_on(TIMER(config, "irq_on")); + irq_on.configure_periodic(FUNC(ckz80_state::irq_on), attotime::from_hz(429)); // theoretical frequency from 555 timer (22nF, 150K, 1K5), measurement was 418Hz + irq_on.set_start_delay(attotime::from_hz(429) - attotime::from_nsec(22870)); // active for 22.87us + TIMER(config, "irq_off").configure_periodic(FUNC(ckz80_state::irq_off), attotime::from_hz(429)); ADDRESS_MAP_BANK(config, "master_map").set_map(&ckz80_state::master_map).set_options(ENDIANNESS_LITTLE, 8, 16); - MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", ckz80_state, display_decay_tick, attotime::from_msec(1)) + TIMER(config, "display_decay").configure_periodic(FUNC(ckz80_state::display_decay_tick), attotime::from_msec(1)); config.set_default_layout(layout_ck_master); /* sound hardware */ diff --git a/src/mame/drivers/clpoker.cpp b/src/mame/drivers/clpoker.cpp index 587e946bdfc..850152551e5 100644 --- a/src/mame/drivers/clpoker.cpp +++ b/src/mame/drivers/clpoker.cpp @@ -271,7 +271,7 @@ MACHINE_CONFIG_START(clpoker_state::clpoker) ppi_inputs.in_pb_callback().set_ioport("INB"); ppi_inputs.in_pc_callback().set_ioport("INC"); - MCFG_TICKET_DISPENSER_ADD("hopper", attotime::from_msec(60), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW) + TICKET_DISPENSER(config, m_hopper, attotime::from_msec(60), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW); MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) // wrong diff --git a/src/mame/drivers/coolpool.cpp b/src/mame/drivers/coolpool.cpp index 555e1a7f5b7..af17acdb246 100644 --- a/src/mame/drivers/coolpool.cpp +++ b/src/mame/drivers/coolpool.cpp @@ -731,7 +731,7 @@ MACHINE_CONFIG_START(coolpool_state::amerdart) dsp.set_addrmap(AS_IO, &coolpool_state::amerdart_dsp_io_map); dsp.bio().set(FUNC(coolpool_state::amerdart_dsp_bio_line_r)); - MCFG_TIMER_DRIVER_ADD_SCANLINE("audioint", coolpool_state, amerdart_audio_int_gen, "screen", 0, 1) + TIMER(config, "audioint").configure_scanline(FUNC(coolpool_state::amerdart_audio_int_gen), "screen", 0, 1); GENERIC_LATCH_16(config, m_main2dsp); GENERIC_LATCH_16(config, m_dsp2main); @@ -740,7 +740,7 @@ MACHINE_CONFIG_START(coolpool_state::amerdart) MCFG_MACHINE_RESET_OVERRIDE(coolpool_state,amerdart) NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); - MCFG_TIMER_DRIVER_ADD(m_nvram_timer, coolpool_state, nvram_write_timeout) + TIMER(config, m_nvram_timer).configure_generic(FUNC(coolpool_state::nvram_write_timeout)); /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -785,7 +785,7 @@ MACHINE_CONFIG_START(coolpool_state::coolpool) MCFG_MACHINE_RESET_OVERRIDE(coolpool_state,coolpool) NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); - MCFG_TIMER_DRIVER_ADD(m_nvram_timer, coolpool_state, nvram_write_timeout) + TIMER(config, m_nvram_timer).configure_generic(FUNC(coolpool_state::nvram_write_timeout)); /* video hardware */ TLC34076(config, m_tlc34076, tlc34076_device::TLC34076_6_BIT); diff --git a/src/mame/drivers/coolridr.cpp b/src/mame/drivers/coolridr.cpp index 5e0840bd651..8d4e292a40d 100644 --- a/src/mame/drivers/coolridr.cpp +++ b/src/mame/drivers/coolridr.cpp @@ -3222,14 +3222,14 @@ WRITE_LINE_MEMBER(coolridr_state::scsp2_to_sh1_irq) MACHINE_CONFIG_START(coolridr_state::coolridr) MCFG_DEVICE_ADD("maincpu", SH2, MAIN_CLOCK) // 28 MHz MCFG_DEVICE_PROGRAM_MAP(system_h1_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", coolridr_state, interrupt_main, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(coolridr_state::interrupt_main), "screen", 0, 1); MCFG_DEVICE_ADD("soundcpu", M68000, 22579000/2) // 22.579 MHz XTAL / 2 = 11.2895 MHz MCFG_DEVICE_PROGRAM_MAP(system_h1_sound_map) MCFG_DEVICE_ADD("sub", SH1, 16000000) // SH7032 HD6417032F20!! 16 MHz MCFG_DEVICE_PROGRAM_MAP(coolridr_submap) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer2", coolridr_state, interrupt_sub, "screen", 0, 1) + TIMER(config, "scantimer2").configure_scanline(FUNC(coolridr_state::interrupt_sub), "screen", 0, 1); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); diff --git a/src/mame/drivers/cosmicos.cpp b/src/mame/drivers/cosmicos.cpp index cc3929e4cdc..d07a0190604 100644 --- a/src/mame/drivers/cosmicos.cpp +++ b/src/mame/drivers/cosmicos.cpp @@ -525,8 +525,8 @@ MACHINE_CONFIG_START(cosmicos_state::cosmicos) /* video hardware */ config.set_default_layout(layout_cosmicos); DM9368(config, m_led, 0); - MCFG_TIMER_DRIVER_ADD_PERIODIC("digit", cosmicos_state, digit_tick, attotime::from_hz(100)) - MCFG_TIMER_DRIVER_ADD_PERIODIC("interrupt", cosmicos_state, int_tick, attotime::from_hz(1000)) + TIMER(config, "digit").configure_periodic(FUNC(cosmicos_state::digit_tick), attotime::from_hz(100)); + TIMER(config, "interrupt").configure_periodic(FUNC(cosmicos_state::int_tick), attotime::from_hz(1000)); SCREEN(config, SCREEN_TAG, SCREEN_TYPE_RASTER); diff --git a/src/mame/drivers/cps1.cpp b/src/mame/drivers/cps1.cpp index 888dc71291a..f8c3ddeef83 100644 --- a/src/mame/drivers/cps1.cpp +++ b/src/mame/drivers/cps1.cpp @@ -3452,8 +3452,7 @@ MACHINE_CONFIG_START(cps_state::ganbare) cps1_10MHz(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", cps_state, ganbare_interrupt, "screen", 0, 1) // need to investigate more + TIMER(config, "scantimer").configure_scanline(FUNC(cps_state::ganbare_interrupt), "screen", 0, 1); // need to investigate more MCFG_DEVICE_ADD("m48t35", M48T35, 0) MACHINE_CONFIG_END diff --git a/src/mame/drivers/cps2.cpp b/src/mame/drivers/cps2.cpp index 2f5ad6bd244..43339646889 100644 --- a/src/mame/drivers/cps2.cpp +++ b/src/mame/drivers/cps2.cpp @@ -1301,7 +1301,7 @@ MACHINE_CONFIG_START(cps2_state::cps2) MCFG_DEVICE_ADD("maincpu", M68000, XTAL(16'000'000)) MCFG_DEVICE_PROGRAM_MAP(cps2_map) MCFG_DEVICE_OPCODES_MAP(decrypted_opcodes_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", cps2_state, cps2_interrupt, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(cps2_state::cps2_interrupt), "screen", 0, 1); MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(8'000'000)) MCFG_DEVICE_PROGRAM_MAP(qsound_sub_map) diff --git a/src/mame/drivers/cxgz80.cpp b/src/mame/drivers/cxgz80.cpp index 32552430251..294fccc855d 100644 --- a/src/mame/drivers/cxgz80.cpp +++ b/src/mame/drivers/cxgz80.cpp @@ -396,17 +396,17 @@ INPUT_PORTS_END ******************************************************************************/ MACHINE_CONFIG_START(cxgz80_state::ch2001) - /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, 8_MHz_XTAL/2) - MCFG_DEVICE_PROGRAM_MAP(ch2001_map) - MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_on", cxgz80_state, irq_on, attotime::from_hz(484)) // theoretical frequency from 555 timer (22nF, 100K+33K, 1K2), measurement was 568Hz - MCFG_TIMER_START_DELAY(attotime::from_hz(484) - attotime::from_nsec(18300)) // active for 18.3us - MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_off", cxgz80_state, irq_off, attotime::from_hz(484)) + Z80(config, m_maincpu, 8_MHz_XTAL/2); + m_maincpu->set_addrmap(AS_PROGRAM, &cxgz80_state::ch2001_map); + timer_device &irq_on(TIMER(config, "irq_on")); + irq_on.configure_periodic(FUNC(cxgz80_state::irq_on), attotime::from_hz(484)); // theoretical frequency from 555 timer (22nF, 100K+33K, 1K2), measurement was 568Hz + irq_on.set_start_delay(attotime::from_hz(484) - attotime::from_nsec(18300)); // active for 18.3us + TIMER(config, "irq_off").configure_periodic(FUNC(cxgz80_state::irq_off), attotime::from_hz(484)); - MCFG_TIMER_DRIVER_ADD("speaker_off", cxgz80_state, speaker_off_callback) + TIMER(config, m_speaker_off_timer).configure_generic(FUNC(cxgz80_state::speaker_off_callback)); - MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", cxgz80_state, display_decay_tick, attotime::from_msec(1)) + TIMER(config, "display_decay").configure_periodic(FUNC(cxgz80_state::display_decay_tick), attotime::from_msec(1)); config.set_default_layout(layout_cxg_ch2001); /* sound hardware */ diff --git a/src/mame/drivers/d6800.cpp b/src/mame/drivers/d6800.cpp index d0776d1ee56..01f434cd65b 100644 --- a/src/mame/drivers/d6800.cpp +++ b/src/mame/drivers/d6800.cpp @@ -422,8 +422,8 @@ MACHINE_CONFIG_START(d6800_state::d6800) MCFG_CASSETTE_ADD("cassette") MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_MUTED) - MCFG_TIMER_DRIVER_ADD_PERIODIC("d6800_c", d6800_state, d6800_c, attotime::from_hz(4800)) - MCFG_TIMER_DRIVER_ADD_PERIODIC("d6800_p", d6800_state, d6800_p, attotime::from_hz(40000)) + TIMER(config, "d6800_c").configure_periodic(FUNC(d6800_state::d6800_c), attotime::from_hz(4800)); + TIMER(config, "d6800_p").configure_periodic(FUNC(d6800_state::d6800_p), attotime::from_hz(40000)); /* quickload */ MCFG_QUICKLOAD_ADD("quickload", d6800_state, d6800, "bin,c8,ch8", 1) diff --git a/src/mame/drivers/dambustr.cpp b/src/mame/drivers/dambustr.cpp index a2b7a52340a..42b6fdc1f75 100644 --- a/src/mame/drivers/dambustr.cpp +++ b/src/mame/drivers/dambustr.cpp @@ -271,7 +271,7 @@ MACHINE_CONFIG_START(dambustr_state::dambustr) TTL7474(config, "7474_9m_1", 0).output_cb().set(FUNC(dambustr_state::galaxold_7474_9m_1_callback)); TTL7474(config, "7474_9m_2", 0).comp_output_cb().set(FUNC(dambustr_state::galaxold_7474_9m_2_q_callback)); - MCFG_TIMER_DRIVER_ADD("int_timer", dambustr_state, galaxold_interrupt_timer) + TIMER(config, "int_timer").configure_generic(FUNC(dambustr_state::galaxold_interrupt_timer)); WATCHDOG_TIMER(config, "watchdog"); diff --git a/src/mame/drivers/darkmist.cpp b/src/mame/drivers/darkmist.cpp index fd2c10f808e..36306862d63 100644 --- a/src/mame/drivers/darkmist.cpp +++ b/src/mame/drivers/darkmist.cpp @@ -244,7 +244,7 @@ MACHINE_CONFIG_START(darkmist_state::darkmist) MCFG_DEVICE_ADD("maincpu", Z80,4000000) /* ? MHz */ MCFG_DEVICE_PROGRAM_MAP(memmap) MCFG_DEVICE_OPCODES_MAP(decrypted_opcodes_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", darkmist_state, scanline, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(darkmist_state::scanline), "screen", 0, 1); MCFG_DEVICE_ADD("t5182", T5182, 0) diff --git a/src/mame/drivers/dblcrown.cpp b/src/mame/drivers/dblcrown.cpp index 77399816668..3033a501309 100644 --- a/src/mame/drivers/dblcrown.cpp +++ b/src/mame/drivers/dblcrown.cpp @@ -605,7 +605,7 @@ MACHINE_CONFIG_START(dblcrown_state::dblcrown) MCFG_DEVICE_ADD("maincpu", Z80, CPU_CLOCK) MCFG_DEVICE_PROGRAM_MAP(dblcrown_map) MCFG_DEVICE_IO_MAP(dblcrown_io) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", dblcrown_state, dblcrown_irq_scanline, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(dblcrown_state::dblcrown_irq_scanline), "screen", 0, 1); WATCHDOG_TIMER(config, m_watchdog).set_time(attotime::from_msec(1000)); /* 1000 ms. (minimal of MAX693A watchdog long timeout period with internal oscillator) */ diff --git a/src/mame/drivers/dbz.cpp b/src/mame/drivers/dbz.cpp index 0044a9b50f5..392a6f667b7 100644 --- a/src/mame/drivers/dbz.cpp +++ b/src/mame/drivers/dbz.cpp @@ -329,7 +329,7 @@ MACHINE_CONFIG_START(dbz_state::dbz) /* basic machine hardware */ MCFG_DEVICE_ADD("maincpu", M68000, 16000000) MCFG_DEVICE_PROGRAM_MAP(dbz_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", dbz_state, dbz_scanline, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(dbz_state::dbz_scanline), "screen", 0, 1); MCFG_DEVICE_ADD("audiocpu", Z80, 4000000) MCFG_DEVICE_PROGRAM_MAP(dbz_sound_map) diff --git a/src/mame/drivers/dccons.cpp b/src/mame/drivers/dccons.cpp index e9e1be60cba..7b0f1c5827e 100644 --- a/src/mame/drivers/dccons.cpp +++ b/src/mame/drivers/dccons.cpp @@ -597,7 +597,7 @@ MACHINE_CONFIG_START(dc_cons_state::dc) m_maincpu->set_addrmap(AS_PROGRAM, &dc_cons_state::dc_map); m_maincpu->set_addrmap(AS_IO, &dc_cons_state::dc_port); - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", dc_state, dc_scanline, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(dc_state::dc_scanline), "screen", 0, 1); MCFG_DEVICE_ADD("soundcpu", ARM7, ((XTAL(33'868'800)*2)/3)/8) // AICA bus clock is 2/3rds * 33.8688. ARM7 gets 1 bus cycle out of each 8. MCFG_DEVICE_PROGRAM_MAP(dc_audio_map) diff --git a/src/mame/drivers/dcheese.cpp b/src/mame/drivers/dcheese.cpp index beda6b290d3..8993ba7b2ca 100644 --- a/src/mame/drivers/dcheese.cpp +++ b/src/mame/drivers/dcheese.cpp @@ -385,7 +385,7 @@ MACHINE_CONFIG_START(dcheese_state::dcheese) EEPROM_93C46_16BIT(config, "eeprom"); - MCFG_TICKET_DISPENSER_ADD("ticket", attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW) + TICKET_DISPENSER(config, "ticket", attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW); WATCHDOG_TIMER(config, "watchdog"); diff --git a/src/mame/drivers/ddealer.cpp b/src/mame/drivers/ddealer.cpp index 834f0a91ddf..e98802e3bde 100644 --- a/src/mame/drivers/ddealer.cpp +++ b/src/mame/drivers/ddealer.cpp @@ -649,7 +649,7 @@ MACHINE_CONFIG_START(ddealer_state::ddealer) PALETTE(config, m_palette).set_format(palette_device::RRRRGGGGBBBBRGBx, 0x200); - MCFG_TIMER_DRIVER_ADD_PERIODIC("coinsim", ddealer_state, mcu_sim, attotime::from_hz(10000)) + TIMER(config, "coinsim").configure_periodic(FUNC(ddealer_state::mcu_sim), attotime::from_hz(10000)); SPEAKER(config, "mono").front_center(); MCFG_DEVICE_ADD("ymsnd", YM2203, XTAL(6'000'000) / 8) /* 7.5KHz */ diff --git a/src/mame/drivers/ddragon3.cpp b/src/mame/drivers/ddragon3.cpp index deee7c6d491..88f096a3d5f 100644 --- a/src/mame/drivers/ddragon3.cpp +++ b/src/mame/drivers/ddragon3.cpp @@ -825,7 +825,7 @@ MACHINE_CONFIG_START(ddragon3_state::ddragon3) /* basic machine hardware */ MCFG_DEVICE_ADD("maincpu", M68000, 20_MHz_XTAL / 2) MCFG_DEVICE_PROGRAM_MAP(ddragon3_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", ddragon3_state, ddragon3_scanline, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(ddragon3_state::ddragon3_scanline), "screen", 0, 1); MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(3'579'545)) MCFG_DEVICE_PROGRAM_MAP(sound_map) @@ -901,7 +901,7 @@ MACHINE_CONFIG_START(wwfwfest_state::wwfwfest) /* basic machine hardware */ MCFG_DEVICE_ADD("maincpu", M68000, 24_MHz_XTAL / 2) /* 24 crystal, 12 rated chip */ MCFG_DEVICE_PROGRAM_MAP(main_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", ddragon3_state, ddragon3_scanline, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(ddragon3_state::ddragon3_scanline), "screen", 0, 1); MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(3'579'545)) MCFG_DEVICE_PROGRAM_MAP(sound_map) diff --git a/src/mame/drivers/deco_mlc.cpp b/src/mame/drivers/deco_mlc.cpp index 5215d5db27f..d902574728e 100644 --- a/src/mame/drivers/deco_mlc.cpp +++ b/src/mame/drivers/deco_mlc.cpp @@ -515,7 +515,7 @@ MACHINE_CONFIG_START(deco_mlc_state::avengrgs) EEPROM_93C46_16BIT(config, m_eeprom); /* Actually 93c45 */ - MCFG_TIMER_DRIVER_ADD(m_raster_irq_timer, deco_mlc_state, interrupt_gen) + TIMER(config, m_raster_irq_timer).configure_generic(FUNC(deco_mlc_state::interrupt_gen)); /* video hardware */ MCFG_SCREEN_ADD(m_screen, RASTER) @@ -547,7 +547,7 @@ MACHINE_CONFIG_START(deco_mlc_state::mlc) EEPROM_93C46_16BIT(config, m_eeprom); /* Actually 93c45 */ - MCFG_TIMER_DRIVER_ADD(m_raster_irq_timer, deco_mlc_state, interrupt_gen) + TIMER(config, m_raster_irq_timer).configure_generic(FUNC(deco_mlc_state::interrupt_gen)); /* video hardware */ MCFG_SCREEN_ADD(m_screen, RASTER) diff --git a/src/mame/drivers/decocass.cpp b/src/mame/drivers/decocass.cpp index 305ae5f7889..743f4601c19 100644 --- a/src/mame/drivers/decocass.cpp +++ b/src/mame/drivers/decocass.cpp @@ -958,7 +958,7 @@ MACHINE_CONFIG_START(decocass_state::decocass) MCFG_DEVICE_ADD("audiocpu", M6502, HCLK1/3/2) MCFG_DEVICE_PROGRAM_MAP(decocass_sound_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("audionmi", decocass_state, decocass_audio_nmi_gen, "screen", 0, 8) + TIMER(config, "audionmi").configure_scanline(FUNC(decocass_state::decocass_audio_nmi_gen), "screen", 0, 8); I8041(config, m_mcu, HCLK); m_mcu->p1_in_cb().set(FUNC(decocass_state::i8041_p1_r)); diff --git a/src/mame/drivers/dfruit.cpp b/src/mame/drivers/dfruit.cpp index 4e542240a84..d1b5a66f099 100644 --- a/src/mame/drivers/dfruit.cpp +++ b/src/mame/drivers/dfruit.cpp @@ -376,7 +376,7 @@ MACHINE_CONFIG_START(dfruit_state::dfruit) /* basic machine hardware */ MCFG_DEVICE_ADD("maincpu",Z80,MASTER_CLOCK/2) //!!! TC0091LVC !!! MCFG_DEVICE_PROGRAM_MAP(dfruit_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", dfruit_state, dfruit_irq_scanline, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(dfruit_state::dfruit_irq_scanline), "screen", 0, 1); //MCFG_MACHINE_START_OVERRIDE(dfruit_state,4enraya) //MCFG_MACHINE_RESET_OVERRIDE(dfruit_state,4enraya) diff --git a/src/mame/drivers/djboy.cpp b/src/mame/drivers/djboy.cpp index 0387de96fe4..c0e47b908f2 100644 --- a/src/mame/drivers/djboy.cpp +++ b/src/mame/drivers/djboy.cpp @@ -483,7 +483,7 @@ MACHINE_CONFIG_START(djboy_state::djboy) MCFG_DEVICE_ADD("mastercpu", Z80, 12_MHz_XTAL / 2) // 6.000MHz, verified MCFG_DEVICE_PROGRAM_MAP(mastercpu_am) MCFG_DEVICE_IO_MAP(mastercpu_port_am) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", djboy_state, djboy_scanline, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(djboy_state::djboy_scanline), "screen", 0, 1); MCFG_DEVICE_ADD("slavecpu", Z80, 12_MHz_XTAL / 2) // 6.000MHz, verified MCFG_DEVICE_PROGRAM_MAP(slavecpu_am) diff --git a/src/mame/drivers/dooyong.cpp b/src/mame/drivers/dooyong.cpp index 44b4c2aa5d8..e14fee57396 100644 --- a/src/mame/drivers/dooyong.cpp +++ b/src/mame/drivers/dooyong.cpp @@ -1730,7 +1730,7 @@ MACHINE_CONFIG_START(rshark_state::dooyong_68k) // basic machine hardware MCFG_DEVICE_ADD("maincpu", M68000, 8_MHz_XTAL) // 8MHz measured on Super-X - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", rshark_state, scanline, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(rshark_state::scanline), "screen", 0, 1); MCFG_DEVICE_ADD("audiocpu", Z80, 8_MHz_XTAL/2) // 4MHz measured on Super-X MCFG_DEVICE_PROGRAM_MAP(bluehawk_sound_map) @@ -1781,7 +1781,7 @@ MACHINE_CONFIG_START(popbingo_state::popbingo) // basic machine hardware MCFG_DEVICE_ADD("maincpu", M68000, 20_MHz_XTAL/2) // 10MHz measured MCFG_DEVICE_PROGRAM_MAP(popbingo_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", popbingo_state, scanline, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(popbingo_state::scanline), "screen", 0, 1); MCFG_DEVICE_ADD("audiocpu", Z80, 16_MHz_XTAL/4) // 4MHz measured MCFG_DEVICE_PROGRAM_MAP(bluehawk_sound_map) diff --git a/src/mame/drivers/dotrikun.cpp b/src/mame/drivers/dotrikun.cpp index 0a224a121e5..cc4a1a22bec 100644 --- a/src/mame/drivers/dotrikun.cpp +++ b/src/mame/drivers/dotrikun.cpp @@ -203,9 +203,9 @@ MACHINE_CONFIG_START(dotrikun_state::dotrikun) MCFG_DEVICE_ADD("maincpu", Z80, MASTER_CLOCK) MCFG_DEVICE_PROGRAM_MAP(dotrikun_map) MCFG_DEVICE_IO_MAP(io_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scanline_on", dotrikun_state, scanline_on, "screen", 0, 1) - MCFG_TIMER_DRIVER_ADD("scanline_off", dotrikun_state, scanline_off) - MCFG_TIMER_DRIVER_ADD("interrupt", dotrikun_state, interrupt) + TIMER(config, "scanline_on").configure_scanline(FUNC(dotrikun_state::scanline_on), "screen", 0, 1); + TIMER(config, m_scanline_off_timer).configure_generic(FUNC(dotrikun_state::scanline_off)); + TIMER(config, m_interrupt_timer).configure_generic(FUNC(dotrikun_state::interrupt)); /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/dragrace.cpp b/src/mame/drivers/dragrace.cpp index 6b79539e335..c18f42fab60 100644 --- a/src/mame/drivers/dragrace.cpp +++ b/src/mame/drivers/dragrace.cpp @@ -281,7 +281,7 @@ MACHINE_CONFIG_START(dragrace_state::dragrace) WATCHDOG_TIMER(config, m_watchdog).set_vblank_count("screen", 8); - MCFG_TIMER_DRIVER_ADD_PERIODIC("frame_timer", dragrace_state, dragrace_frame_callback, attotime::from_hz(60)) + TIMER(config, "frame_timer").configure_periodic(FUNC(dragrace_state::dragrace_frame_callback), attotime::from_hz(60)); /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/dvk_kcgd.cpp b/src/mame/drivers/dvk_kcgd.cpp index 40836bc3791..f09b7d2fd75 100644 --- a/src/mame/drivers/dvk_kcgd.cpp +++ b/src/mame/drivers/dvk_kcgd.cpp @@ -351,8 +351,9 @@ MACHINE_CONFIG_START(kcgd_state::kcgd) m_maincpu->set_addrmap(AS_PROGRAM, &kcgd_state::kcgd_mem); m_maincpu->set_initial_mode(0100000); - MCFG_TIMER_DRIVER_ADD_PERIODIC("scantimer", kcgd_state, scanline_callback, attotime::from_hz(50*28*11)) // XXX verify - MCFG_TIMER_START_DELAY(attotime::from_hz(XTAL(30'800'000)/KCGD_HORZ_START)) + timer_device &scantimer(TIMER(config, "scantimer")); + scantimer.configure_periodic(FUNC(kcgd_state::scanline_callback), attotime::from_hz(50*28*11)); // XXX verify + scantimer.set_start_delay(attotime::from_hz(XTAL(30'800'000)/KCGD_HORZ_START)); MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_UPDATE_DRIVER(kcgd_state, screen_update) diff --git a/src/mame/drivers/dvk_ksm.cpp b/src/mame/drivers/dvk_ksm.cpp index e7af7616f7a..9de0f5270ef 100644 --- a/src/mame/drivers/dvk_ksm.cpp +++ b/src/mame/drivers/dvk_ksm.cpp @@ -422,7 +422,7 @@ MACHINE_CONFIG_START(ksm_state::ksm) MCFG_DEVICE_IO_MAP(ksm_io) MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("pic8259", pic8259_device, inta_cb) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", ksm_state, scanline_callback, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(ksm_state::scanline_callback), "screen", 0, 1); MCFG_SCREEN_ADD_MONOCHROME("screen", RASTER, rgb_t::green()) MCFG_SCREEN_UPDATE_DRIVER(ksm_state, screen_update) diff --git a/src/mame/drivers/e100.cpp b/src/mame/drivers/e100.cpp index cd77707ade0..faffc4cebb0 100644 --- a/src/mame/drivers/e100.cpp +++ b/src/mame/drivers/e100.cpp @@ -596,7 +596,7 @@ MACHINE_CONFIG_START(e100_state::e100) PALETTE(config, "palette", palette_device::MONOCHROME); /* There is a 50Hz signal from the video circuit to CA1 which generates interrupts and drives a software RTC */ - MCFG_TIMER_DRIVER_ADD_PERIODIC("video50hz", e100_state, rtc_w, attotime::from_hz(100)) /* Will be divided by two through toggle in the handler */ + TIMER(config, "video50hz").configure_periodic(FUNC(e100_state::rtc_w), attotime::from_hz(100)); /* Will be divided by two through toggle in the handler */ MACHINE_CONFIG_END /* ROM sets from Didact was not versioned in general, so the numbering are just assumptions */ diff --git a/src/mame/drivers/eacc.cpp b/src/mame/drivers/eacc.cpp index 54f40da22c3..cad1434da44 100644 --- a/src/mame/drivers/eacc.cpp +++ b/src/mame/drivers/eacc.cpp @@ -264,8 +264,8 @@ MACHINE_CONFIG_START(eacc_state::eacc) m_pia->irqb_handler().set_inputline("maincpu", M6802_IRQ_LINE); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); - MCFG_TIMER_DRIVER_ADD_PERIODIC("eacc_nmi", eacc_state, eacc_nmi, attotime::from_hz(600)) - MCFG_TIMER_DRIVER_ADD_PERIODIC("eacc_cb1", eacc_state, eacc_cb1, attotime::from_hz(30)) + TIMER(config, "eacc_nmi").configure_periodic(FUNC(eacc_state::eacc_nmi), attotime::from_hz(600)); + TIMER(config, "eacc_cb1").configure_periodic(FUNC(eacc_state::eacc_cb1), attotime::from_hz(30)); MACHINE_CONFIG_END diff --git a/src/mame/drivers/einstein.cpp b/src/mame/drivers/einstein.cpp index 9b06d8bfd80..d9421a41483 100644 --- a/src/mame/drivers/einstein.cpp +++ b/src/mame/drivers/einstein.cpp @@ -585,7 +585,7 @@ MACHINE_CONFIG_START(einstein_state::einstein) /* this is actually clocked at the system clock 4 MHz, but this would be too fast for our driver. So we update at 50Hz and hope this is good enough. */ - MCFG_TIMER_DRIVER_ADD_PERIODIC("keyboard", einstein_state, keyboard_timer_callback, attotime::from_hz(50)) + TIMER(config, "keyboard").configure_periodic(FUNC(einstein_state::keyboard_timer_callback), attotime::from_hz(50)); z80pio_device& pio(Z80PIO(config, IC_I063, XTAL_X002 / 2)); pio.out_int_callback().set(FUNC(einstein_state::int_w<0>)); @@ -641,7 +641,7 @@ MACHINE_CONFIG_START(einstein_state::einstein) MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics") - MCFG_TIMER_DRIVER_ADD("strobe", einstein_state, strobe_callback) + TIMER(config, m_strobe_timer).configure_generic(FUNC(einstein_state::strobe_callback)); // uart i8251_device &ic_i060(I8251(config, IC_I060, XTAL_X002 / 4)); diff --git a/src/mame/drivers/eolith16.cpp b/src/mame/drivers/eolith16.cpp index d7b6bac7c49..6c125286c66 100644 --- a/src/mame/drivers/eolith16.cpp +++ b/src/mame/drivers/eolith16.cpp @@ -162,7 +162,7 @@ void eolith16_state::eolith16_palette(palette_device &palette) const MACHINE_CONFIG_START(eolith16_state::eolith16) MCFG_DEVICE_ADD("maincpu", E116T, XTAL(60'000'000)) /* no internal multiplier */ MCFG_DEVICE_PROGRAM_MAP(eolith16_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", eolith16_state, eolith_speedup, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(eolith16_state::eolith_speedup), "screen", 0, 1); EEPROM_93C66_8BIT(config, "eeprom"); diff --git a/src/mame/drivers/espial.cpp b/src/mame/drivers/espial.cpp index 47091a72620..ff4e9a4aa97 100644 --- a/src/mame/drivers/espial.cpp +++ b/src/mame/drivers/espial.cpp @@ -324,7 +324,7 @@ MACHINE_CONFIG_START(espial_state::espial) /* basic machine hardware */ MCFG_DEVICE_ADD("maincpu", Z80, 3072000) /* 3.072 MHz */ MCFG_DEVICE_PROGRAM_MAP(espial_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", espial_state, espial_scanline, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(espial_state::espial_scanline), "screen", 0, 1); MCFG_DEVICE_ADD("audiocpu", Z80, 3072000) /* 2 MHz?????? */ MCFG_DEVICE_PROGRAM_MAP(espial_sound_map) diff --git a/src/mame/drivers/exedexes.cpp b/src/mame/drivers/exedexes.cpp index d8214068174..9ec6ab53863 100644 --- a/src/mame/drivers/exedexes.cpp +++ b/src/mame/drivers/exedexes.cpp @@ -224,7 +224,7 @@ MACHINE_CONFIG_START(exedexes_state::exedexes) /* basic machine hardware */ MCFG_DEVICE_ADD("maincpu", Z80, 4000000) /* 4 MHz (?) */ MCFG_DEVICE_PROGRAM_MAP(exedexes_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", exedexes_state, exedexes_scanline, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(exedexes_state::exedexes_scanline), "screen", 0, 1); MCFG_DEVICE_ADD("audiocpu", Z80, 3000000) /* 3 MHz ??? */ MCFG_DEVICE_PROGRAM_MAP(sound_map) diff --git a/src/mame/drivers/expro02.cpp b/src/mame/drivers/expro02.cpp index 8e74739d4e0..cffdc9666ca 100644 --- a/src/mame/drivers/expro02.cpp +++ b/src/mame/drivers/expro02.cpp @@ -904,7 +904,7 @@ MACHINE_CONFIG_START(expro02_state::expro02) /* basic machine hardware */ MCFG_DEVICE_ADD("maincpu", M68000, 12000000) MCFG_DEVICE_PROGRAM_MAP(expro02_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", expro02_state, scanline, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(expro02_state::scanline), "screen", 0, 1); /* CALC01 MCU @ 16Mhz (unknown type, simulated) */ diff --git a/src/mame/drivers/exterm.cpp b/src/mame/drivers/exterm.cpp index 0ce68b6395a..125a2475e52 100644 --- a/src/mame/drivers/exterm.cpp +++ b/src/mame/drivers/exterm.cpp @@ -401,7 +401,7 @@ MACHINE_CONFIG_START(exterm_state::exterm) NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); - MCFG_TIMER_DRIVER_ADD(m_nmi_timer, exterm_state, master_sound_nmi_callback) + TIMER(config, m_nmi_timer).configure_generic(FUNC(exterm_state::master_sound_nmi_callback)); WATCHDOG_TIMER(config, "watchdog"); diff --git a/src/mame/drivers/fc100.cpp b/src/mame/drivers/fc100.cpp index 47e346a2b56..0eb4db312c1 100644 --- a/src/mame/drivers/fc100.cpp +++ b/src/mame/drivers/fc100.cpp @@ -554,9 +554,9 @@ MACHINE_CONFIG_START(fc100_state::fc100) uart_clock.signal_handler().set(m_uart, FUNC(i8251_device::write_txc)); uart_clock.signal_handler().append(m_uart, FUNC(i8251_device::write_rxc)); - MCFG_TIMER_DRIVER_ADD_PERIODIC("timer_c", fc100_state, timer_c, attotime::from_hz(4800)) // cass write - MCFG_TIMER_DRIVER_ADD_PERIODIC("timer_p", fc100_state, timer_p, attotime::from_hz(40000)) // cass read - MCFG_TIMER_DRIVER_ADD_PERIODIC("timer_k", fc100_state, timer_k, attotime::from_hz(300)) // keyb scan + TIMER(config, "timer_c").configure_periodic(FUNC(fc100_state::timer_c), attotime::from_hz(4800)); // cass write + TIMER(config, "timer_p").configure_periodic(FUNC(fc100_state::timer_p), attotime::from_hz(40000)); // cass read + TIMER(config, "timer_k").configure_periodic(FUNC(fc100_state::timer_k), attotime::from_hz(300)); // keyb scan MCFG_GENERIC_CARTSLOT_ADD("cartslot", generic_plain_slot, "fc100_cart") diff --git a/src/mame/drivers/feversoc.cpp b/src/mame/drivers/feversoc.cpp index db22fe0ba17..4414495574b 100644 --- a/src/mame/drivers/feversoc.cpp +++ b/src/mame/drivers/feversoc.cpp @@ -316,7 +316,7 @@ MACHINE_CONFIG_START(feversoc_state::feversoc) NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); - MCFG_TICKET_DISPENSER_ADD("hopper", attotime::from_msec(60), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_HIGH ) + TICKET_DISPENSER(config, m_hopper, attotime::from_msec(60), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_HIGH); MACHINE_CONFIG_END /*************************************************************************** diff --git a/src/mame/drivers/fidel68k.cpp b/src/mame/drivers/fidel68k.cpp index 7b8046f62cc..10338d351b9 100644 --- a/src/mame/drivers/fidel68k.cpp +++ b/src/mame/drivers/fidel68k.cpp @@ -567,11 +567,12 @@ MACHINE_CONFIG_START(fidel68k_state::fex68k) /* basic machine hardware */ MCFG_DEVICE_ADD("maincpu", M68000, 12_MHz_XTAL) // HD68HC000P12 MCFG_DEVICE_PROGRAM_MAP(fex68k_map) - MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_on", fidel68k_state, irq_on, attotime::from_hz(618)) // theoretical frequency from 556 timer (22nF, 91K + 20K POT @ 14.8K, 0.1K), measurement was 580Hz - MCFG_TIMER_START_DELAY(attotime::from_hz(618) - attotime::from_nsec(1525)) // active for 1.525us - MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_off", fidel68k_state, irq_off, attotime::from_hz(618)) + timer_device &irq_on(TIMER(config, "irq_on")); + irq_on.configure_periodic(FUNC(fidel68k_state::irq_on), attotime::from_hz(618)); // theoretical frequency from 556 timer (22nF, 91K + 20K POT @ 14.8K, 0.1K), measurement was 580Hz + irq_on.set_start_delay(attotime::from_hz(597) - attotime::from_nsec(1528)); // active for 1.525us + TIMER(config, "irq_off").configure_periodic(FUNC(fidel68k_state::irq_off), attotime::from_hz(618)); - MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", fidelbase_state, display_decay_tick, attotime::from_msec(1)) + TIMER(config, "display_decay").configure_periodic(FUNC(fidelbase_state::display_decay_tick), attotime::from_msec(1)); config.set_default_layout(layout_fidel_ex_68k); /* sound hardware */ @@ -603,11 +604,12 @@ MACHINE_CONFIG_START(fidel68k_state::fdes2265) /* basic machine hardware */ MCFG_DEVICE_ADD("maincpu", M68000, 16_MHz_XTAL) // MC68HC000P12F MCFG_DEVICE_PROGRAM_MAP(fdes2265_map) - MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_on", fidel68k_state, irq_on, attotime::from_hz(597)) // from 555 timer, measured - MCFG_TIMER_START_DELAY(attotime::from_hz(597) - attotime::from_nsec(6000)) // active for 6us - MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_off", fidel68k_state, irq_off, attotime::from_hz(597)) + timer_device &irq_on(TIMER(config, "irq_on")); + irq_on.configure_periodic(FUNC(fidel68k_state::irq_on), attotime::from_hz(597)); // from 555 timer, measured + irq_on.set_start_delay(attotime::from_hz(597) - attotime::from_nsec(6000)); // active for 6us + TIMER(config, "irq_off").configure_periodic(FUNC(fidel68k_state::irq_off), attotime::from_hz(597)); - MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", fidelbase_state, display_decay_tick, attotime::from_msec(1)) + TIMER(config, "display_decay").configure_periodic(FUNC(fidelbase_state::display_decay_tick), attotime::from_msec(1)); config.set_default_layout(layout_fidel_desdis_68kr); /* sound hardware */ @@ -632,13 +634,14 @@ MACHINE_CONFIG_START(fidel68k_state::eag_base) /* basic machine hardware */ MCFG_DEVICE_ADD("maincpu", M68000, 16_MHz_XTAL) MCFG_DEVICE_PROGRAM_MAP(eag_map) - MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_on", fidel68k_state, irq_on, attotime::from_hz(4.9152_MHz_XTAL/0x2000)) // 600Hz - MCFG_TIMER_START_DELAY(attotime::from_hz(4.9152_MHz_XTAL/0x2000) - attotime::from_nsec(8250)) // active for 8.25us - MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_off", fidel68k_state, irq_off, attotime::from_hz(4.9152_MHz_XTAL/0x2000)) + timer_device &irq_on(TIMER(config, "irq_on")); + irq_on.configure_periodic(FUNC(fidel68k_state::irq_on), attotime::from_hz(4.9152_MHz_XTAL/0x2000)); // 600Hz + irq_on.set_start_delay(attotime::from_hz(4.9152_MHz_XTAL/0x2000) - attotime::from_nsec(8250)); // active for 8.25us + TIMER(config, "irq_off").configure_periodic(FUNC(fidel68k_state::irq_off), attotime::from_hz(4.9152_MHz_XTAL/0x2000)); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_1); - MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", fidelbase_state, display_decay_tick, attotime::from_msec(1)) + TIMER(config, "display_decay").configure_periodic(FUNC(fidelbase_state::display_decay_tick), attotime::from_msec(1)); config.set_default_layout(layout_fidel_eag_68k); /* sound hardware */ diff --git a/src/mame/drivers/fidelmcs48.cpp b/src/mame/drivers/fidelmcs48.cpp index 7b49319751a..9eea50369c8 100644 --- a/src/mame/drivers/fidelmcs48.cpp +++ b/src/mame/drivers/fidelmcs48.cpp @@ -160,7 +160,7 @@ MACHINE_CONFIG_START(fidelmcs48_state::sc6) maincpu.t0_in_cb().set(FUNC(fidelmcs48_state::sc6_input6_r)); maincpu.t1_in_cb().set(FUNC(fidelmcs48_state::sc6_input7_r)); - MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", fidelbase_state, display_decay_tick, attotime::from_msec(1)) + TIMER(config, "display_decay").configure_periodic(FUNC(fidelbase_state::display_decay_tick), attotime::from_msec(1)); config.set_default_layout(layout_fidel_sc6); /* sound hardware */ diff --git a/src/mame/drivers/finalizr.cpp b/src/mame/drivers/finalizr.cpp index e4a2e9b6fbb..2fe257eb580 100644 --- a/src/mame/drivers/finalizr.cpp +++ b/src/mame/drivers/finalizr.cpp @@ -267,7 +267,7 @@ MACHINE_CONFIG_START(finalizr_state::finalizr) /* basic machine hardware */ MCFG_DEVICE_ADD("maincpu", KONAMI1, XTAL(18'432'000)/6) /* ??? */ MCFG_DEVICE_PROGRAM_MAP(main_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", finalizr_state, finalizr_scanline, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(finalizr_state::finalizr_scanline), "screen", 0, 1); I8039(config, m_audiocpu, XTAL(18'432'000)/2); /* 9.216MHz clkin ?? */ m_audiocpu->set_addrmap(AS_PROGRAM, &finalizr_state::sound_map); diff --git a/src/mame/drivers/firefox.cpp b/src/mame/drivers/firefox.cpp index e660eea76cb..c93b3e18a6b 100644 --- a/src/mame/drivers/firefox.cpp +++ b/src/mame/drivers/firefox.cpp @@ -653,7 +653,7 @@ MACHINE_CONFIG_START(firefox_state::firefox) MCFG_DEVICE_ADD("maincpu", MC6809E, MASTER_XTAL/8) // 68B09E MCFG_DEVICE_PROGRAM_MAP(main_map) /* interrupts count starting at end of VBLANK, which is 44, so add 44 */ - MCFG_TIMER_DRIVER_ADD_SCANLINE("32v", firefox_state, video_timer_callback, "screen", 96+44, 128) + TIMER(config, "32v").configure_scanline(FUNC(firefox_state::video_timer_callback), "screen", 96+44, 128); MCFG_DEVICE_ADD("audiocpu", M6502, MASTER_XTAL/8) MCFG_DEVICE_PROGRAM_MAP(audio_map) diff --git a/src/mame/drivers/firetrk.cpp b/src/mame/drivers/firetrk.cpp index 1c8fdba15b0..f5d6935ec57 100644 --- a/src/mame/drivers/firetrk.cpp +++ b/src/mame/drivers/firetrk.cpp @@ -859,7 +859,7 @@ MACHINE_CONFIG_START(firetrk_state::firetrk) /* basic machine hardware */ MCFG_DEVICE_ADD("maincpu", M6800, MASTER_CLOCK/12) /* 750Khz during service mode */ MCFG_DEVICE_PROGRAM_MAP(firetrk_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", firetrk_state, firetrk_scanline, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(firetrk_state::firetrk_scanline), "screen", 0, 1); WATCHDOG_TIMER(config, m_watchdog).set_vblank_count("screen", 5); diff --git a/src/mame/drivers/fk1.cpp b/src/mame/drivers/fk1.cpp index aa63afa7fac..c74e4e1edb8 100644 --- a/src/mame/drivers/fk1.cpp +++ b/src/mame/drivers/fk1.cpp @@ -466,8 +466,8 @@ MACHINE_CONFIG_START(fk1_state::fk1) /* internal ram */ RAM(config, RAM_TAG).set_default_size("80K"); // 64 + 16 - MCFG_TIMER_DRIVER_ADD_PERIODIC("keyboard_timer", fk1_state, keyboard_callback, attotime::from_hz(24000)) - MCFG_TIMER_DRIVER_ADD_PERIODIC("vsync_timer", fk1_state, vsync_callback, attotime::from_hz(50)) + TIMER(config, "keyboard_timer").configure_periodic(FUNC(fk1_state::keyboard_callback), attotime::from_hz(24000)); + TIMER(config, "vsync_timer").configure_periodic(FUNC(fk1_state::vsync_callback), attotime::from_hz(50)); MACHINE_CONFIG_END /* ROM definition */ diff --git a/src/mame/drivers/fp1100.cpp b/src/mame/drivers/fp1100.cpp index cfa68976a50..8f97bc8c50f 100644 --- a/src/mame/drivers/fp1100.cpp +++ b/src/mame/drivers/fp1100.cpp @@ -684,7 +684,7 @@ MACHINE_CONFIG_START(fp1100_state::fp1100) /* Cassette */ MCFG_CASSETTE_ADD("cassette") MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_PLAY | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_ENABLED) - MCFG_TIMER_DRIVER_ADD_PERIODIC("timer_c", fp1100_state, timer_c, attotime::from_hz(4800)) // cass write + TIMER(config, "timer_c").configure_periodic(FUNC(fp1100_state::timer_c), attotime::from_hz(4800)); // cass write MACHINE_CONFIG_END /* ROM definition */ diff --git a/src/mame/drivers/fresh.cpp b/src/mame/drivers/fresh.cpp index 7201533c326..9eaa98411e1 100644 --- a/src/mame/drivers/fresh.cpp +++ b/src/mame/drivers/fresh.cpp @@ -602,7 +602,7 @@ MACHINE_CONFIG_START(fresh_state::fresh) /* basic machine hardware */ MCFG_DEVICE_ADD("maincpu", M68000, 24000000/2 ) MCFG_DEVICE_PROGRAM_MAP(fresh_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", fresh_state, fake_scanline, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(fresh_state::fake_scanline), "screen", 0, 1); /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/funtech.cpp b/src/mame/drivers/funtech.cpp index 32e8d9949e7..01f1d63ba73 100644 --- a/src/mame/drivers/funtech.cpp +++ b/src/mame/drivers/funtech.cpp @@ -509,7 +509,7 @@ MACHINE_CONFIG_START(fun_tech_corp_state::funtech) NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_1); - MCFG_TICKET_DISPENSER_ADD("hopper", attotime::from_msec(50), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_HIGH) + TICKET_DISPENSER(config, m_hopper, attotime::from_msec(50), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_HIGH); /* sound hardware */ SPEAKER(config, "mono").front_center(); diff --git a/src/mame/drivers/galaxian.cpp b/src/mame/drivers/galaxian.cpp index 0c2c902a7c3..a53bf1b20b3 100644 --- a/src/mame/drivers/galaxian.cpp +++ b/src/mame/drivers/galaxian.cpp @@ -6099,13 +6099,14 @@ MACHINE_CONFIG_START(galaxian_state::konami_sound_2x_ay8910) MACHINE_CONFIG_END -MACHINE_CONFIG_START(galaxian_state::scramble_base) +void galaxian_state::scramble_base(machine_config &config) +{ konami_base(config); konami_sound_2x_ay8910(config); /* blinking frequency is determined by 555 counter with Ra=100k, Rb=10k, C=10uF */ - MCFG_TIMER_DRIVER_ADD_PERIODIC("stars", galaxian_state, scramble_stars_blink_timer, PERIOD_OF_555_ASTABLE(100000, 10000, 0.00001)) -MACHINE_CONFIG_END + TIMER(config, "stars").configure_periodic(FUNC(galaxian_state::scramble_stars_blink_timer), PERIOD_OF_555_ASTABLE(100000, 10000, 0.00001)); +} @@ -6271,11 +6272,12 @@ TIMER_DEVICE_CALLBACK_MEMBER(galaxian_state::timefgtr_scanline) } } -MACHINE_CONFIG_START(galaxian_state::timefgtr) +void galaxian_state::timefgtr(machine_config &config) +{ fantastc(config); - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", galaxian_state, timefgtr_scanline, "screen", 0, 1) -MACHINE_CONFIG_END + TIMER(config, "scantimer").configure_scanline(FUNC(galaxian_state::timefgtr_scanline), "screen", 0, 1); +} MACHINE_CONFIG_START(galaxian_state::jumpbug) @@ -6319,7 +6321,7 @@ MACHINE_CONFIG_START(galaxian_state::checkmaj) MCFG_DEVICE_ADD("audiocpu", Z80, 1620000) MCFG_DEVICE_PROGRAM_MAP(checkmaj_sound_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("irq0", galaxian_state, checkmaj_irq0_gen, "screen", 0, 8) + TIMER(config, "irq0").configure_scanline(FUNC(galaxian_state::checkmaj_irq0_gen), "screen", 0, 8); GENERIC_LATCH_8(config, m_soundlatch); diff --git a/src/mame/drivers/galaxold.cpp b/src/mame/drivers/galaxold.cpp index d3ead10ae53..d078c26ee1f 100644 --- a/src/mame/drivers/galaxold.cpp +++ b/src/mame/drivers/galaxold.cpp @@ -2267,7 +2267,7 @@ MACHINE_CONFIG_START(galaxold_state::galaxold_base) TTL7474(config, m_7474_9m_2, 0); m_7474_9m_2->comp_output_cb().set(FUNC(galaxold_state::galaxold_7474_9m_2_q_callback)); - MCFG_TIMER_DRIVER_ADD("int_timer", galaxold_state, galaxold_interrupt_timer) + TIMER(config, "int_timer").configure_generic(FUNC(galaxold_state::galaxold_interrupt_timer)); WATCHDOG_TIMER(config, "watchdog"); diff --git a/src/mame/drivers/galgames.cpp b/src/mame/drivers/galgames.cpp index e3f3c81f960..6f0057c209f 100644 --- a/src/mame/drivers/galgames.cpp +++ b/src/mame/drivers/galgames.cpp @@ -984,7 +984,7 @@ int galgames_compute_addr(uint16_t reg_low, uint16_t reg_mid, uint16_t reg_high) MACHINE_CONFIG_START(galgames_state::galgames_base) MCFG_DEVICE_ADD("maincpu", M68000, XTAL(24'000'000) / 2) MCFG_DEVICE_PROGRAM_MAP(galgames_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", galgames_state, scanline_interrupt, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(galgames_state::scanline_interrupt), "screen", 0, 1); WATCHDOG_TIMER(config, "watchdog"); MCFG_GALGAMES_SLOT_ADD("slot") diff --git a/src/mame/drivers/galpani2.cpp b/src/mame/drivers/galpani2.cpp index dde79ee7b85..327030760e5 100644 --- a/src/mame/drivers/galpani2.cpp +++ b/src/mame/drivers/galpani2.cpp @@ -627,12 +627,12 @@ MACHINE_CONFIG_START(galpani2_state::galpani2) /* basic machine hardware */ MCFG_DEVICE_ADD("maincpu", M68000, XTAL(27'000'000)/2) /* Confirmed on galpani2i PCB */ MCFG_DEVICE_PROGRAM_MAP(galpani2_mem1) - MCFG_TIMER_DRIVER_ADD_SCANLINE("m_scantimer", galpani2_state, galpani2_interrupt1, "screen", 0, 1) + TIMER(config, "m_scantimer").configure_scanline(FUNC(galpani2_state::galpani2_interrupt1), "screen", 0, 1); //MCFG_QUANTUM_PERFECT_CPU("maincpu") MCFG_DEVICE_ADD("sub", M68000, XTAL(27'000'000)/2) /* Confirmed on galpani2i PCB */ MCFG_DEVICE_PROGRAM_MAP(galpani2_mem2) - MCFG_TIMER_DRIVER_ADD_SCANLINE("s_scantimer", galpani2_state, galpani2_interrupt2, "screen", 0, 1) + TIMER(config, "s_scantimer").configure_scanline(FUNC(galpani2_state::galpani2_interrupt2), "screen", 0, 1); EEPROM_93C46_16BIT(config, "eeprom"); diff --git a/src/mame/drivers/galpani3.cpp b/src/mame/drivers/galpani3.cpp index 8e04a9e25f5..8e6f1a21a2d 100644 --- a/src/mame/drivers/galpani3.cpp +++ b/src/mame/drivers/galpani3.cpp @@ -453,7 +453,7 @@ void galpani3_state::galpani3_map(address_map &map) MACHINE_CONFIG_START(galpani3_state::galpani3) MCFG_DEVICE_ADD("maincpu", M68000, XTAL(28'636'363)/2) // Confirmed from PCB MCFG_DEVICE_PROGRAM_MAP(galpani3_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", galpani3_state, galpani3_vblank, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(galpani3_state::galpani3_vblank), "screen", 0, 1); MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) diff --git a/src/mame/drivers/galpanic.cpp b/src/mame/drivers/galpanic.cpp index 382c04155dd..fed37f72c0e 100644 --- a/src/mame/drivers/galpanic.cpp +++ b/src/mame/drivers/galpanic.cpp @@ -237,7 +237,7 @@ MACHINE_CONFIG_START(galpanic_state::galpanic) /* basic machine hardware */ MCFG_DEVICE_ADD("maincpu", M68000, XTAL(12'000'000)) /* verified on pcb */ MCFG_DEVICE_PROGRAM_MAP(galpanic_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", galpanic_state, scanline, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(galpanic_state::scanline), "screen", 0, 1); WATCHDOG_TIMER(config, "watchdog"); diff --git a/src/mame/drivers/gberet.cpp b/src/mame/drivers/gberet.cpp index 51f1e7048bb..cb73c2c16c7 100644 --- a/src/mame/drivers/gberet.cpp +++ b/src/mame/drivers/gberet.cpp @@ -413,7 +413,7 @@ MACHINE_CONFIG_START(gberet_state::gberet) /* basic machine hardware */ MCFG_DEVICE_ADD("maincpu", Z80, XTAL(18'432'000)/6) // X1S (generated by a custom IC) MCFG_DEVICE_PROGRAM_MAP(gberet_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", gberet_state, gberet_interrupt_tick, "screen", 0, 16) + TIMER(config, "scantimer").configure_scanline(FUNC(gberet_state::gberet_interrupt_tick), "screen", 0, 16); WATCHDOG_TIMER(config, "watchdog"); MCFG_MACHINE_START_OVERRIDE(gberet_state,gberet) diff --git a/src/mame/drivers/gcpinbal.cpp b/src/mame/drivers/gcpinbal.cpp index 9b02f4a3d76..5d3b5821f3f 100644 --- a/src/mame/drivers/gcpinbal.cpp +++ b/src/mame/drivers/gcpinbal.cpp @@ -358,7 +358,7 @@ MACHINE_CONFIG_START(gcpinbal_state::gcpinbal) MCFG_DEVICE_ADD("maincpu", M68000, 32_MHz_XTAL/2) /* 16 MHz */ MCFG_DEVICE_PROGRAM_MAP(gcpinbal_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", gcpinbal_state, scanline_cb, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(gcpinbal_state::scanline_cb), "screen", 0, 1); EEPROM_93C46_16BIT(config, "eeprom"); diff --git a/src/mame/drivers/gei.cpp b/src/mame/drivers/gei.cpp index 38935e17f2c..9f835ec7cc8 100644 --- a/src/mame/drivers/gei.cpp +++ b/src/mame/drivers/gei.cpp @@ -1006,7 +1006,7 @@ MACHINE_CONFIG_START(gei_state::getrivia) m_ppi[1]->out_pb_callback().set(FUNC(gei_state::lamps_w)); m_ppi[1]->out_pc_callback().set(FUNC(gei_state::lamps2_w)); - MCFG_TICKET_DISPENSER_ADD("ticket", attotime::from_msec(100), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_HIGH) + TICKET_DISPENSER(config, m_ticket, attotime::from_msec(100), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_HIGH); /* sound hardware */ SPEAKER(config, "speaker").front_center(); @@ -1039,7 +1039,7 @@ MACHINE_CONFIG_START(gei_state::gselect) /* basic machine hardware */ - MCFG_DEVICE_REMOVE("ticket") + config.device_remove("ticket"); MCFG_DEVICE_MODIFY("maincpu") MCFG_DEVICE_PROGRAM_MAP(gselect_map) @@ -1055,7 +1055,7 @@ MACHINE_CONFIG_START(gei_state::jokpokera) /* basic machine hardware */ - MCFG_DEVICE_REMOVE("ticket") + config.device_remove("ticket"); MCFG_DEVICE_MODIFY("maincpu") MCFG_DEVICE_PROGRAM_MAP(gselect_map) diff --git a/src/mame/drivers/gimix.cpp b/src/mame/drivers/gimix.cpp index ef390bc4d0e..9878d1905fc 100644 --- a/src/mame/drivers/gimix.cpp +++ b/src/mame/drivers/gimix.cpp @@ -563,7 +563,7 @@ MACHINE_CONFIG_START(gimix_state::gimix) // uncomment this timer to use a hack that generates a regular IRQ, this will get OS-9 to boot // for some unknown reason, OS-9 does not touch the 6840, and only clears/disables IRQs on the RTC - //MCFG_TIMER_DRIVER_ADD_PERIODIC("test_timer",gimix_state,test_timer_w,attotime::from_msec(100)) + //TIMER(config, "test_timer").configure_periodic(FUNC(gimix_state::test_timer_w), attotime::from_msec(100)); MACHINE_CONFIG_END ROM_START( gimix ) diff --git a/src/mame/drivers/glasgow.cpp b/src/mame/drivers/glasgow.cpp index b11fcb4368a..de24e2ddf58 100644 --- a/src/mame/drivers/glasgow.cpp +++ b/src/mame/drivers/glasgow.cpp @@ -325,7 +325,7 @@ MACHINE_CONFIG_START(glasgow_state::glasgow) MCFG_DEVICE_ADD("beeper", BEEP, 44) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) - MCFG_TIMER_DRIVER_ADD_PERIODIC("nmi_timer", glasgow_state, update_nmi, attotime::from_hz(50)) + TIMER(config, "nmi_timer").configure_periodic(FUNC(glasgow_state::update_nmi), attotime::from_hz(50)); MACHINE_CONFIG_END MACHINE_CONFIG_START(amsterd_state::amsterd) @@ -344,7 +344,7 @@ MACHINE_CONFIG_START(amsterd_state::dallas32) MCFG_DEVICE_PROGRAM_MAP(dallas32_mem) MCFG_DEVICE_REMOVE("nmi_timer") - MCFG_TIMER_DRIVER_ADD_PERIODIC("nmi_timer", amsterd_state, update_nmi32, attotime::from_hz(50)) + TIMER(config, "nmi_timer").configure_periodic(FUNC(amsterd_state::update_nmi32), attotime::from_hz(50)); MACHINE_CONFIG_END diff --git a/src/mame/drivers/goldstar.cpp b/src/mame/drivers/goldstar.cpp index f1faf69ce68..be48644e9e9 100644 --- a/src/mame/drivers/goldstar.cpp +++ b/src/mame/drivers/goldstar.cpp @@ -9388,7 +9388,7 @@ MACHINE_CONFIG_START(unkch_state::unkch) aysnd.add_route(ALL_OUTPUTS, "mono", 0.50); /* payout hardware */ - MCFG_TICKET_DISPENSER_ADD("tickets", attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW) + TICKET_DISPENSER(config, m_ticket_dispenser, attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW); MACHINE_CONFIG_END diff --git a/src/mame/drivers/gp_2.cpp b/src/mame/drivers/gp_2.cpp index 6056960d33a..394f44f5405 100644 --- a/src/mame/drivers/gp_2.cpp +++ b/src/mame/drivers/gp_2.cpp @@ -582,7 +582,8 @@ static const z80_daisy_config daisy_chain[] = { nullptr } }; -MACHINE_CONFIG_START(gp_2_state::gp_2) +void gp_2_state::gp_2(machine_config &config) +{ /* basic machine hardware */ Z80(config, m_maincpu, 2457600); m_maincpu->set_addrmap(AS_PROGRAM, &gp_2_state::gp_2_map); @@ -605,8 +606,8 @@ MACHINE_CONFIG_START(gp_2_state::gp_2) Z80CTC(config, m_ctc, 2457600); m_ctc->intr_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); // Todo: absence of ints will cause a watchdog reset - MCFG_TIMER_DRIVER_ADD_PERIODIC("gp1", gp_2_state, zero_timer, attotime::from_hz(120)) // mains freq*2 -MACHINE_CONFIG_END + TIMER(config, "gp1").configure_periodic(FUNC(gp_2_state::zero_timer), attotime::from_hz(120)); // mains freq*2 +} /*------------------------------------------------------------------- / Agents 777 (November 1984) - Model #770 diff --git a/src/mame/drivers/gundealr.cpp b/src/mame/drivers/gundealr.cpp index e1feee5a3f4..d101d091b55 100644 --- a/src/mame/drivers/gundealr.cpp +++ b/src/mame/drivers/gundealr.cpp @@ -444,7 +444,7 @@ MACHINE_CONFIG_START(gundealr_state::gundealr) MCFG_DEVICE_ADD("maincpu", Z80, XTAL(12'000'000)/2) /* 6 MHz verified for Yam! Yam!? */ MCFG_DEVICE_PROGRAM_MAP(gundealr_main_map) MCFG_DEVICE_IO_MAP(main_portmap) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", gundealr_state, scanline, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(gundealr_state::scanline), "screen", 0, 1); /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -534,7 +534,7 @@ MACHINE_CONFIG_START(gundealr_state::yamyam) MCFG_DEVICE_MODIFY("maincpu") MCFG_DEVICE_PROGRAM_MAP(yamyam_main_map) - MCFG_TIMER_DRIVER_ADD_PERIODIC("mcusim", gundealr_state, yamyam_mcu_sim, attotime::from_hz(6000000/60)) /* 6mhz confirmed */ + TIMER(config, "mcusim").configure_periodic(FUNC(gundealr_state::yamyam_mcu_sim), attotime::from_hz(6000000/60)); /* 6mhz confirmed */ MACHINE_CONFIG_END MACHINE_CONFIG_START(gundealr_state::gundealrbl) diff --git a/src/mame/drivers/gunpey.cpp b/src/mame/drivers/gunpey.cpp index edeb8d227db..9872e569937 100644 --- a/src/mame/drivers/gunpey.cpp +++ b/src/mame/drivers/gunpey.cpp @@ -1223,7 +1223,7 @@ MACHINE_CONFIG_START(gunpey_state::gunpey) MCFG_DEVICE_ADD("maincpu", V30, 57242400 / 4) MCFG_DEVICE_PROGRAM_MAP(mem_map) MCFG_DEVICE_IO_MAP(io_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", gunpey_state, scanline, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(gunpey_state::scanline), "screen", 0, 1); /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/halleys.cpp b/src/mame/drivers/halleys.cpp index f000894af47..02b075c3687 100644 --- a/src/mame/drivers/halleys.cpp +++ b/src/mame/drivers/halleys.cpp @@ -1933,7 +1933,7 @@ void halleys_state::machine_reset() MACHINE_CONFIG_START(halleys_state::halleys) MCFG_DEVICE_ADD("maincpu", MC6809E, XTAL(19'968'000)/12) /* verified on pcb */ MCFG_DEVICE_PROGRAM_MAP(halleys_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", halleys_state, halleys_scanline, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(halleys_state::halleys_scanline), "screen", 0, 1); MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(6'000'000)/2) /* verified on pcb */ MCFG_DEVICE_PROGRAM_MAP(sound_map) @@ -1973,8 +1973,8 @@ MACHINE_CONFIG_START(halleys_state::benberob) halleys(config); MCFG_DEVICE_MODIFY("maincpu") MCFG_DEVICE_CLOCK(XTAL(19'968'000)/12) /* not verified but pcb identical to halley's comet */ - MCFG_TIMER_MODIFY("scantimer") - MCFG_TIMER_DRIVER_CALLBACK(halleys_state, benberob_scanline) + + subdevice("scantimer")->set_callback(FUNC(halleys_state::benberob_scanline)); MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_UPDATE_DRIVER(halleys_state, screen_update_benberob) diff --git a/src/mame/drivers/hankin.cpp b/src/mame/drivers/hankin.cpp index 28746abb8cb..dc7d8294cc8 100644 --- a/src/mame/drivers/hankin.cpp +++ b/src/mame/drivers/hankin.cpp @@ -524,8 +524,8 @@ MACHINE_CONFIG_START(hankin_state::hankin) m_ic2->irqa_handler().set_inputline("audiocpu", M6802_IRQ_LINE); m_ic2->irqb_handler().set_inputline("audiocpu", M6802_IRQ_LINE); - MCFG_TIMER_DRIVER_ADD_PERIODIC("timer_x", hankin_state, timer_x, attotime::from_hz(120)) // mains freq*2 - MCFG_TIMER_DRIVER_ADD_PERIODIC("timer_s", hankin_state, timer_s, attotime::from_hz(94000)) // 555 on sound board*2 + TIMER(config, "timer_x").configure_periodic(FUNC(hankin_state::timer_x), attotime::from_hz(120)); // mains freq*2 + TIMER(config, "timer_s").configure_periodic(FUNC(hankin_state::timer_s), attotime::from_hz(94000)); // 555 on sound board*2 MACHINE_CONFIG_END /*-------------------------------- diff --git a/src/mame/drivers/hh_melps4.cpp b/src/mame/drivers/hh_melps4.cpp index 6b9f0e4f129..6f6f49451ce 100644 --- a/src/mame/drivers/hh_melps4.cpp +++ b/src/mame/drivers/hh_melps4.cpp @@ -310,7 +310,7 @@ MACHINE_CONFIG_START(cfrogger_state::cfrogger) MCFG_SCREEN_REFRESH_RATE(50) MCFG_SCREEN_SIZE(500, 1080) MCFG_SCREEN_VISIBLE_AREA(0, 500-1, 0, 1080-1) - MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_melps4_state, display_decay_tick, attotime::from_msec(1)) + TIMER(config, "display_decay").configure_periodic(FUNC(hh_melps4_state::display_decay_tick), attotime::from_msec(1)); /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -426,7 +426,7 @@ MACHINE_CONFIG_START(gjungler_state::gjungler) MCFG_SCREEN_REFRESH_RATE(50) MCFG_SCREEN_SIZE(481, 1080) MCFG_SCREEN_VISIBLE_AREA(0, 481-1, 0, 1080-1) - MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_melps4_state, display_decay_tick, attotime::from_msec(1)) + TIMER(config, "display_decay").configure_periodic(FUNC(hh_melps4_state::display_decay_tick), attotime::from_msec(1)); /* sound hardware */ SPEAKER(config, "mono").front_center(); diff --git a/src/mame/drivers/hideseek.cpp b/src/mame/drivers/hideseek.cpp index 0f5280a1e14..fd85859aee7 100644 --- a/src/mame/drivers/hideseek.cpp +++ b/src/mame/drivers/hideseek.cpp @@ -108,7 +108,7 @@ MACHINE_CONFIG_START(hideseek_state::hideseek) /* basic machine hardware */ MCFG_DEVICE_ADD("maincpu", SH2, 7372800 * 4 ) MCFG_DEVICE_PROGRAM_MAP(mem_map) -// MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", hideseek_state, hideseek_scanline, "screen", 0, 1) +// TIMER(config, "scantimer").configure_scanline(FUNC(hideseek_state::hideseek_scanline), "screen", 0, 1); /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/higemaru.cpp b/src/mame/drivers/higemaru.cpp index 22d52ab9337..0465404898a 100644 --- a/src/mame/drivers/higemaru.cpp +++ b/src/mame/drivers/higemaru.cpp @@ -168,7 +168,7 @@ MACHINE_CONFIG_START(higemaru_state::higemaru) /* basic machine hardware */ MCFG_DEVICE_ADD("maincpu", Z80, XTAL(12'000'000)/4) /* 3 MHz Sharp LH0080A Z80A-CPU-D */ MCFG_DEVICE_PROGRAM_MAP(higemaru_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", higemaru_state, higemaru_scanline, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(higemaru_state::higemaru_scanline), "screen", 0, 1); /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/hp2640.cpp b/src/mame/drivers/hp2640.cpp index adf45587cff..8f0059cdcc2 100644 --- a/src/mame/drivers/hp2640.cpp +++ b/src/mame/drivers/hp2640.cpp @@ -971,8 +971,8 @@ MACHINE_CONFIG_START(hp2645_state::hp2645) MCFG_DEVICE_IO_MAP(cpu_io_map) MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(hp2645_state , irq_callback) - MCFG_TIMER_DRIVER_ADD("timer_10ms" , hp2645_state , timer_10ms_exp) - MCFG_TIMER_DRIVER_ADD("timer_cursor_blink_inh" , hp2645_state , timer_cursor_blink_inh) + TIMER(config, m_timer_10ms).configure_generic(FUNC(hp2645_state::timer_10ms_exp)); + TIMER(config, m_timer_cursor_blink_inh).configure_generic(FUNC(hp2645_state::timer_cursor_blink_inh)); MCFG_SCREEN_ADD_MONOCHROME("screen" , RASTER , rgb_t::white()) // Actual pixel clock is half this value: 21.06 MHz @@ -982,7 +982,7 @@ MACHINE_CONFIG_START(hp2645_state::hp2645) VIDEO_TOT_COLS * VIDEO_CHAR_WIDTH * 2 , 0 , VIDEO_VIS_COLS * VIDEO_CHAR_WIDTH * 2 , VIDEO_TOT_ROWS * VIDEO_CHAR_HEIGHT , 0 , VIDEO_VIS_ROWS * VIDEO_CHAR_HEIGHT) MCFG_SCREEN_UPDATE_DRIVER(hp2645_state , screen_update) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", hp2645_state, scanline_timer, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(hp2645_state::scanline_timer), "screen", 0, 1); PALETTE(config, m_palette, palette_device::MONOCHROME_HIGHLIGHT); config.set_default_layout(layout_hp2640); @@ -999,7 +999,7 @@ MACHINE_CONFIG_START(hp2645_state::hp2645) // Beep SPEAKER(config, "mono").front_center(); BEEP(config, m_beep, BEEP_FREQUENCY).add_route(ALL_OUTPUTS, "mono", 1.00); - MCFG_TIMER_DRIVER_ADD("timer_beep" , hp2645_state , timer_beep_exp) + TIMER(config, m_timer_beep).configure_generic(FUNC(hp2645_state::timer_beep_exp)); MACHINE_CONFIG_END diff --git a/src/mame/drivers/hp64k.cpp b/src/mame/drivers/hp64k.cpp index d50086577ea..fb40e91fe4e 100644 --- a/src/mame/drivers/hp64k.cpp +++ b/src/mame/drivers/hp64k.cpp @@ -1384,10 +1384,10 @@ MACHINE_CONFIG_START(hp64k_state::hp64k) m_cpu->set_irq_acknowledge_callback(FUNC(hp64k_state::hp64k_irq_callback)); // Actual keyboard refresh rate should be between 1 and 2 kHz - MCFG_TIMER_DRIVER_ADD_PERIODIC("kb_timer", hp64k_state, hp64k_kb_scan, attotime::from_hz(100)) + TIMER(config, "kb_timer").configure_periodic(FUNC(hp64k_state::hp64k_kb_scan), attotime::from_hz(100)); // Line sync timer. A line frequency of 50 Hz is assumed. - MCFG_TIMER_DRIVER_ADD_PERIODIC("linesync_timer", hp64k_state, hp64k_line_sync, attotime::from_hz(50)) + TIMER(config, "linesync_timer").configure_periodic(FUNC(hp64k_state::hp64k_line_sync), attotime::from_hz(50)); // Clock = 25 MHz / 9 * (112/114) I8275(config, m_crtc, 2729045); @@ -1433,7 +1433,7 @@ MACHINE_CONFIG_START(hp64k_state::hp64k) SPEAKER(config, "mono").front_center(); BEEP(config, m_beeper, 2500).add_route(ALL_OUTPUTS, "mono", 1.00); - MCFG_TIMER_DRIVER_ADD("beep_timer", hp64k_state, hp64k_beeper_off); + TIMER(config, m_beep_timer).configure_generic(FUNC(hp64k_state::hp64k_beeper_off)); COM8116(config, m_baud_rate, 5.0688_MHz_XTAL); m_baud_rate->fr_handler().set(FUNC(hp64k_state::hp64k_baud_clk_w)); diff --git a/src/mame/drivers/hp80.cpp b/src/mame/drivers/hp80.cpp index 1c848d44f70..87a311a4b8c 100644 --- a/src/mame/drivers/hp80.cpp +++ b/src/mame/drivers/hp80.cpp @@ -1343,15 +1343,15 @@ MACHINE_CONFIG_START(hp85_state::hp85) MCFG_SCREEN_UPDATE_DRIVER(hp85_state , screen_update) MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, hp85_state, vblank_w)) PALETTE(config, m_palette, palette_device::MONOCHROME); - MCFG_TIMER_DRIVER_ADD("vm_timer", hp85_state, vm_timer) + TIMER(config, m_vm_timer).configure_generic(FUNC(hp85_state::vm_timer)); // No idea at all about the actual keyboard scan frequency - MCFG_TIMER_DRIVER_ADD_PERIODIC("kb_timer" , hp85_state , kb_scan , attotime::from_hz(100)) + TIMER(config, "kb_timer").configure_periodic(FUNC(hp85_state::kb_scan), attotime::from_hz(100)); // Hw timers are updated at 1 kHz rate - MCFG_TIMER_DRIVER_ADD_PERIODIC("hw_timer" , hp85_state , timer_update , attotime::from_hz(1000)) - MCFG_TIMER_DRIVER_ADD("clk_busy_timer", hp85_state, clk_busy_timer) - MCFG_TIMER_DRIVER_ADD("prt_busy_timer", hp85_state, prt_busy_timer) + TIMER(config, "hw_timer").configure_periodic(FUNC(hp85_state::timer_update), attotime::from_hz(1000)); + TIMER(config, m_clk_busy_timer).configure_generic(FUNC(hp85_state::clk_busy_timer)); + TIMER(config, m_prt_busy_timer).configure_generic(FUNC(hp85_state::prt_busy_timer)); // Beeper SPEAKER(config, "mono").front_center(); diff --git a/src/mame/drivers/hp9845.cpp b/src/mame/drivers/hp9845.cpp index 283ff3e6c90..0bb56a8377f 100644 --- a/src/mame/drivers/hp9845.cpp +++ b/src/mame/drivers/hp9845.cpp @@ -3648,17 +3648,17 @@ MACHINE_CONFIG_START(hp9845_base_state::hp9845_base) // video hardware MCFG_SCREEN_ADD("screen", RASTER) - MCFG_TIMER_DRIVER_ADD("gv_timer", hp9845_base_state, gv_timer) + TIMER(config, m_gv_timer).configure_generic(FUNC(hp9845_base_state::gv_timer)); // Actual keyboard refresh rate should be KEY_SCAN_OSCILLATOR / 128 (2560 Hz) - MCFG_TIMER_DRIVER_ADD_PERIODIC("kb_timer" , hp9845_base_state , kb_scan , attotime::from_hz(100)) + TIMER(config, "kb_timer").configure_periodic(FUNC(hp9845_base_state::kb_scan), attotime::from_hz(100)); // Beeper SPEAKER(config, "mono").front_center(); MCFG_DEVICE_ADD("beeper" , BEEP , KEY_SCAN_OSCILLATOR / 512) MCFG_SOUND_ROUTE(ALL_OUTPUTS , "mono" , 0.50) - MCFG_TIMER_DRIVER_ADD("beep_timer" , hp9845_base_state , beeper_off); + TIMER(config, m_beep_timer).configure_generic(FUNC(hp9845_base_state::beeper_off)); // Tape drives HP_TACO(config , m_t15 , 4000000); @@ -3721,7 +3721,7 @@ MACHINE_CONFIG_START(hp9845b_state::hp9845b) // These parameters are for alpha video MCFG_SCREEN_RAW_PARAMS(VIDEO_PIXEL_CLOCK , VIDEO_HTOTAL , 0 , VIDEO_HBSTART , VIDEO_VTOTAL , 0 , VIDEO_ACTIVE_SCANLINES) MCFG_PALETTE_ADD("palette", 4) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", hp9845b_state, scanline_timer, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(hp9845b_state::scanline_timer), "screen", 0, 1); config.set_default_layout(layout_hp9845b); @@ -3737,7 +3737,7 @@ MACHINE_CONFIG_START(hp9845c_state::hp9845c) MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, hp9845c_state, vblank_w)) MCFG_SCREEN_RAW_PARAMS(VIDEO_770_PIXEL_CLOCK , VIDEO_770_HTOTAL , VIDEO_770_HBEND , VIDEO_770_HBSTART , VIDEO_770_VTOTAL , VIDEO_770_VBEND , VIDEO_770_VBSTART) MCFG_PALETTE_ADD("palette", 24) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", hp9845c_state, scanline_timer, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(hp9845c_state::scanline_timer), "screen", 0, 1); MCFG_SOFTWARE_LIST_ADD("optrom_list", "hp9845b_rom") @@ -3752,7 +3752,7 @@ MACHINE_CONFIG_START(hp9845t_state::hp9845t) MCFG_SCREEN_COLOR(rgb_t::green()) MCFG_SCREEN_RAW_PARAMS(VIDEO_780_PIXEL_CLOCK , VIDEO_780_HTOTAL , VIDEO_780_HBEND , VIDEO_780_HBSTART , VIDEO_780_VTOTAL , VIDEO_780_VBEND , VIDEO_780_VBSTART) MCFG_PALETTE_ADD("palette", 5) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", hp9845t_state, scanline_timer, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(hp9845t_state::scanline_timer), "screen", 0, 1); MCFG_SOFTWARE_LIST_ADD("optrom_list", "hp9845b_rom") diff --git a/src/mame/drivers/huebler.cpp b/src/mame/drivers/huebler.cpp index ff273669060..00ed00369e6 100644 --- a/src/mame/drivers/huebler.cpp +++ b/src/mame/drivers/huebler.cpp @@ -318,7 +318,7 @@ MACHINE_CONFIG_START(amu880_state::amu880) m_maincpu->set_addrmap(AS_IO, &amu880_state::amu880_io); m_maincpu->set_daisy_config(amu880_daisy_chain); - MCFG_TIMER_DRIVER_ADD_PERIODIC("keyboard", amu880_state, keyboard_tick, attotime::from_hz(1500)) + TIMER(config, "keyboard").configure_periodic(FUNC(amu880_state::keyboard_tick), attotime::from_hz(1500)); /* video hardware */ MCFG_SCREEN_ADD(SCREEN_TAG, RASTER) @@ -348,7 +348,7 @@ MACHINE_CONFIG_START(amu880_state::amu880) MCFG_CASSETTE_ADD("cassette") MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_MUTED) - MCFG_TIMER_DRIVER_ADD_PERIODIC("tape", amu880_state, tape_tick, attotime::from_hz(44100)) + TIMER(config, "tape").configure_periodic(FUNC(amu880_state::tape_tick), attotime::from_hz(44100)); /* internal ram */ RAM(config, RAM_TAG).set_default_size("64K"); diff --git a/src/mame/drivers/hvyunit.cpp b/src/mame/drivers/hvyunit.cpp index 1f4b11a2dc7..24db9fdd943 100644 --- a/src/mame/drivers/hvyunit.cpp +++ b/src/mame/drivers/hvyunit.cpp @@ -623,7 +623,7 @@ MACHINE_CONFIG_START(hvyunit_state::hvyunit) MCFG_DEVICE_ADD("master", Z80, XTAL(12'000'000)/2) /* 6MHz verified on PCB */ MCFG_DEVICE_PROGRAM_MAP(master_memory) MCFG_DEVICE_IO_MAP(master_io) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", hvyunit_state, scanline, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(hvyunit_state::scanline), "screen", 0, 1); MCFG_DEVICE_ADD("slave", Z80, XTAL(12'000'000)/2) /* 6MHz verified on PCB */ MCFG_DEVICE_PROGRAM_MAP(slave_memory) diff --git a/src/mame/drivers/hyprduel.cpp b/src/mame/drivers/hyprduel.cpp index c956983534a..982b72ab30e 100644 --- a/src/mame/drivers/hyprduel.cpp +++ b/src/mame/drivers/hyprduel.cpp @@ -452,7 +452,7 @@ MACHINE_CONFIG_START(hyprduel_state::hyprduel) /* basic machine hardware */ MCFG_DEVICE_ADD("maincpu", M68000,20000000/2) /* 10MHz */ MCFG_DEVICE_PROGRAM_MAP(hyprduel_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", hyprduel_state, interrupt, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(hyprduel_state::interrupt), "screen", 0, 1); MCFG_DEVICE_ADD("sub", M68000,20000000/2) /* 10MHz */ MCFG_DEVICE_PROGRAM_MAP(hyprduel_map2) @@ -479,7 +479,7 @@ MACHINE_CONFIG_START(hyprduel_state::magerror) /* basic machine hardware */ MCFG_DEVICE_ADD("maincpu", M68000,20000000/2) /* 10MHz */ MCFG_DEVICE_PROGRAM_MAP(magerror_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", hyprduel_state, interrupt, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(hyprduel_state::interrupt), "screen", 0, 1); MCFG_DEVICE_ADD("sub", M68000,20000000/2) /* 10MHz */ MCFG_DEVICE_PROGRAM_MAP(magerror_map2) diff --git a/src/mame/drivers/igs017.cpp b/src/mame/drivers/igs017.cpp index 94d3949100b..544af85706b 100644 --- a/src/mame/drivers/igs017.cpp +++ b/src/mame/drivers/igs017.cpp @@ -3520,7 +3520,7 @@ MACHINE_CONFIG_START(igs017_state::iqblocka) MCFG_DEVICE_ADD("maincpu", Z180, XTAL(16'000'000) / 2) MCFG_DEVICE_PROGRAM_MAP(iqblocka_map) MCFG_DEVICE_IO_MAP(iqblocka_io) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", igs017_state, iqblocka_interrupt, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(igs017_state::iqblocka_interrupt), "screen", 0, 1); MCFG_MACHINE_RESET_OVERRIDE(igs017_state,iqblocka) @@ -3618,7 +3618,7 @@ MACHINE_RESET_MEMBER(igs017_state,mgcs) MACHINE_CONFIG_START(igs017_state::mgcs) MCFG_DEVICE_ADD("maincpu", M68000, XTAL(22'000'000) / 2) MCFG_DEVICE_PROGRAM_MAP(mgcs) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", igs017_state, mgcs_interrupt, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(igs017_state::mgcs_interrupt), "screen", 0, 1); MCFG_MACHINE_RESET_OVERRIDE(igs017_state,mgcs) @@ -3627,7 +3627,7 @@ MACHINE_CONFIG_START(igs017_state::mgcs) ppi.in_pa_callback().set_ioport("COINS"); ppi.in_pb_callback().set(FUNC(igs017_state::mgcs_keys_r)); - MCFG_TICKET_DISPENSER_ADD("hopper", attotime::from_msec(50), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW ) + TICKET_DISPENSER(config, m_hopperdev, attotime::from_msec(50), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW ); // video MCFG_SCREEN_ADD("screen", RASTER) @@ -3656,7 +3656,7 @@ MACHINE_CONFIG_END MACHINE_CONFIG_START(igs017_state::lhzb2) MCFG_DEVICE_ADD("maincpu", M68000, XTAL(22'000'000) / 2) MCFG_DEVICE_PROGRAM_MAP(lhzb2) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", igs017_state, mgcs_interrupt, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(igs017_state::mgcs_interrupt), "screen", 0, 1); MCFG_MACHINE_RESET_OVERRIDE(igs017_state,mgcs) @@ -3705,7 +3705,7 @@ MACHINE_RESET_MEMBER(igs017_state,lhzb2a) MACHINE_CONFIG_START(igs017_state::lhzb2a) MCFG_DEVICE_ADD("maincpu", M68000, XTAL(22'000'000)/2) MCFG_DEVICE_PROGRAM_MAP(lhzb2a) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", igs017_state, mgcs_interrupt, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(igs017_state::mgcs_interrupt), "screen", 0, 1); MCFG_MACHINE_RESET_OVERRIDE(igs017_state,lhzb2a) @@ -3750,7 +3750,7 @@ MACHINE_CONFIG_END MACHINE_CONFIG_START(igs017_state::slqz2) MCFG_DEVICE_ADD("maincpu", M68000, XTAL(22'000'000) / 2) MCFG_DEVICE_PROGRAM_MAP(slqz2) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", igs017_state, mgcs_interrupt, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(igs017_state::mgcs_interrupt), "screen", 0, 1); MCFG_MACHINE_RESET_OVERRIDE(igs017_state,mgcs) @@ -3793,7 +3793,7 @@ MACHINE_CONFIG_END MACHINE_CONFIG_START(igs017_state::sdmg2) MCFG_DEVICE_ADD("maincpu", M68000, XTAL(22'000'000)/2) MCFG_DEVICE_PROGRAM_MAP(sdmg2) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", igs017_state, mgcs_interrupt, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(igs017_state::mgcs_interrupt), "screen", 0, 1); MCFG_MACHINE_RESET_OVERRIDE(igs017_state,mgcs) @@ -3839,7 +3839,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(igs017_state::mgdh_interrupt) MACHINE_CONFIG_START(igs017_state::mgdha) MCFG_DEVICE_ADD("maincpu", M68000, XTAL(22'000'000) / 2) MCFG_DEVICE_PROGRAM_MAP(mgdha_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", igs017_state, mgdh_interrupt, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(igs017_state::mgdh_interrupt), "screen", 0, 1); MCFG_MACHINE_RESET_OVERRIDE(igs017_state,mgcs) @@ -3874,7 +3874,7 @@ MACHINE_CONFIG_START(igs017_state::tjsb) MCFG_DEVICE_ADD("maincpu", Z180, XTAL(16'000'000) / 2) MCFG_DEVICE_PROGRAM_MAP(tjsb_map) MCFG_DEVICE_IO_MAP(tjsb_io) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", igs017_state, iqblocka_interrupt, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(igs017_state::iqblocka_interrupt), "screen", 0, 1); MCFG_MACHINE_RESET_OVERRIDE(igs017_state,iqblocka) @@ -3915,7 +3915,7 @@ MACHINE_CONFIG_START(igs017_state::spkrform) MCFG_DEVICE_ADD("maincpu", Z180, XTAL(16'000'000) / 2) MCFG_DEVICE_PROGRAM_MAP(spkrform_map) MCFG_DEVICE_IO_MAP(spkrform_io) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", igs017_state, iqblocka_interrupt, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(igs017_state::iqblocka_interrupt), "screen", 0, 1); MCFG_MACHINE_RESET_OVERRIDE(igs017_state,iqblocka) diff --git a/src/mame/drivers/igspoker.cpp b/src/mame/drivers/igspoker.cpp index 993dcd9c373..95e7766f590 100644 --- a/src/mame/drivers/igspoker.cpp +++ b/src/mame/drivers/igspoker.cpp @@ -1927,7 +1927,7 @@ MACHINE_CONFIG_START(igspoker_state::igspoker) MCFG_DEVICE_ADD("maincpu",Z80, 3579545) MCFG_DEVICE_PROGRAM_MAP(igspoker_prg_map) MCFG_DEVICE_IO_MAP(igspoker_io_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", igspoker_state, igs_interrupt, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(igspoker_state::igs_interrupt), "screen", 0, 1); i8255_device &ppi(I8255A(config, "ppi")); ppi.out_pa_callback().set(FUNC(igspoker_state::igs_nmi_and_coins_w)); diff --git a/src/mame/drivers/ikki.cpp b/src/mame/drivers/ikki.cpp index 8e160984c03..a4c00f29472 100644 --- a/src/mame/drivers/ikki.cpp +++ b/src/mame/drivers/ikki.cpp @@ -258,7 +258,7 @@ MACHINE_CONFIG_START(ikki_state::ikki) /* basic machine hardware */ MCFG_DEVICE_ADD("maincpu", Z80,CPU_CLOCK/2) /* 4.000MHz */ MCFG_DEVICE_PROGRAM_MAP(ikki_cpu1) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", ikki_state, ikki_irq, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(ikki_state::ikki_irq), "screen", 0, 1); MCFG_DEVICE_ADD("sub", Z80,CPU_CLOCK/2) /* 4.000MHz */ MCFG_DEVICE_PROGRAM_MAP(ikki_cpu2) diff --git a/src/mame/drivers/imolagp.cpp b/src/mame/drivers/imolagp.cpp index 082886e45a5..99eb1230e90 100644 --- a/src/mame/drivers/imolagp.cpp +++ b/src/mame/drivers/imolagp.cpp @@ -518,7 +518,7 @@ MACHINE_CONFIG_START(imolagp_state::imolagp) MCFG_DEVICE_ADD("maincpu", Z80, 3000000) // ? (assume slower than slave) MCFG_DEVICE_PROGRAM_MAP(imolagp_master_map) MCFG_DEVICE_IO_MAP(imolagp_master_io) - MCFG_TIMER_DRIVER_ADD("pot", imolagp_state, imolagp_pot_callback) // maincpu nmi + TIMER(config, m_steer_pot_timer).configure_generic(FUNC(imolagp_state::imolagp_pot_callback)); // maincpu nmi MCFG_DEVICE_ADD("slave", Z80, 4000000) // ? MCFG_DEVICE_PROGRAM_MAP(imolagp_slave_map) diff --git a/src/mame/drivers/iq151.cpp b/src/mame/drivers/iq151.cpp index 7574b6fb4ec..63a076bcbe3 100644 --- a/src/mame/drivers/iq151.cpp +++ b/src/mame/drivers/iq151.cpp @@ -425,7 +425,7 @@ MACHINE_CONFIG_START(iq151_state::iq151) MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_STOPPED) MCFG_CASSETTE_INTERFACE("iq151_cass") - MCFG_TIMER_DRIVER_ADD_PERIODIC("cassette_timer", iq151_state, cassette_timer, attotime::from_hz(2000)) + TIMER(config, "cassette_timer").configure_periodic(FUNC(iq151_state::cassette_timer), attotime::from_hz(2000)); /* cartridge */ MCFG_DEVICE_ADD("slot1", IQ151CART_SLOT, 0) diff --git a/src/mame/drivers/iqblock.cpp b/src/mame/drivers/iqblock.cpp index a8f5fa8192a..247aeb87183 100644 --- a/src/mame/drivers/iqblock.cpp +++ b/src/mame/drivers/iqblock.cpp @@ -346,7 +346,7 @@ MACHINE_CONFIG_START(iqblock_state::iqblock) MCFG_DEVICE_ADD("maincpu", Z80,12000000/2) /* 6 MHz */ MCFG_DEVICE_PROGRAM_MAP(main_map) MCFG_DEVICE_IO_MAP(main_portmap) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", iqblock_state, irq, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(iqblock_state::irq), "screen", 0, 1); i8255_device &ppi(I8255A(config, "ppi8255")); ppi.in_pa_callback().set_ioport("P1"); diff --git a/src/mame/drivers/ironhors.cpp b/src/mame/drivers/ironhors.cpp index 0c39d8a1c4d..8b9616d816e 100644 --- a/src/mame/drivers/ironhors.cpp +++ b/src/mame/drivers/ironhors.cpp @@ -383,7 +383,7 @@ MACHINE_CONFIG_START(ironhors_state::ironhors) /* basic machine hardware */ MCFG_DEVICE_ADD("maincpu", MC6809E, 18432000/6) /* 3.072 MHz??? mod by Shingo Suzuki 1999/10/15 */ MCFG_DEVICE_PROGRAM_MAP(master_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", ironhors_state, ironhors_scanline_tick, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(ironhors_state::ironhors_scanline_tick), "screen", 0, 1); MCFG_DEVICE_ADD("soundcpu", Z80, 18432000/6) /* 3.072 MHz */ MCFG_DEVICE_PROGRAM_MAP(slave_map) @@ -447,8 +447,7 @@ MACHINE_CONFIG_START(ironhors_state::farwest) MCFG_DEVICE_MODIFY("maincpu") MCFG_DEVICE_PROGRAM_MAP(farwest_master_map) - MCFG_DEVICE_MODIFY("scantimer") - MCFG_TIMER_DRIVER_CALLBACK(ironhors_state, farwest_scanline_tick) + subdevice("scantimer")->set_callback(FUNC(ironhors_state::farwest_scanline_tick)); MCFG_DEVICE_MODIFY("soundcpu") MCFG_DEVICE_PROGRAM_MAP(farwest_slave_map) diff --git a/src/mame/drivers/jalmah.cpp b/src/mame/drivers/jalmah.cpp index 64d63283345..92a2b710603 100644 --- a/src/mame/drivers/jalmah.cpp +++ b/src/mame/drivers/jalmah.cpp @@ -1105,7 +1105,7 @@ MACHINE_CONFIG_START(jalmah_state::jalmah) PALETTE(config, m_palette).set_format(palette_device::RRRRGGGGBBBBRGBx, 0x400); - MCFG_TIMER_DRIVER_ADD_PERIODIC("mcusim", jalmah_state, mcu_sim, attotime::from_hz(10000)) + TIMER(config, "mcusim").configure_periodic(FUNC(jalmah_state::mcu_sim), attotime::from_hz(10000)); SPEAKER(config, "mono").front_center(); MCFG_DEVICE_ADD("oki", OKIM6295, 4000000, okim6295_device::PIN7_LOW) diff --git a/src/mame/drivers/jchan.cpp b/src/mame/drivers/jchan.cpp index 25d45bfa545..33e5cf4a321 100644 --- a/src/mame/drivers/jchan.cpp +++ b/src/mame/drivers/jchan.cpp @@ -607,7 +607,7 @@ MACHINE_CONFIG_START(jchan_state::jchan) MCFG_DEVICE_ADD("maincpu", M68000, 16000000) MCFG_DEVICE_PROGRAM_MAP(jchan_main) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", jchan_state, vblank, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(jchan_state::vblank), "screen", 0, 1); MCFG_DEVICE_ADD("sub", M68000, 16000000) MCFG_DEVICE_PROGRAM_MAP(jchan_sub) diff --git a/src/mame/drivers/jclub2.cpp b/src/mame/drivers/jclub2.cpp index 57dc4d26b5d..a511e6a6a7e 100644 --- a/src/mame/drivers/jclub2.cpp +++ b/src/mame/drivers/jclub2.cpp @@ -1134,7 +1134,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(common_state::scanline_irq) MACHINE_CONFIG_START(jclub2o_state::jclub2o) MCFG_DEVICE_ADD("maincpu", M68EC020, 12000000) MCFG_DEVICE_PROGRAM_MAP(jclub2o_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", common_state, scanline_irq, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(common_state::scanline_irq), "screen", 0, 1); MCFG_DEVICE_ADD("soundcpu",ST0016_CPU, 8000000) MCFG_DEVICE_PROGRAM_MAP(st0016_mem) @@ -1145,8 +1145,8 @@ MACHINE_CONFIG_START(jclub2o_state::jclub2o) EEPROM_S29290_16BIT(config, "eeprom"); WATCHDOG_TIMER(config, "watchdog"); - MCFG_TICKET_DISPENSER_ADD("hopper1", attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_HIGH) - MCFG_TICKET_DISPENSER_ADD("hopper2", attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_HIGH) + TICKET_DISPENSER(config, m_hopper1, attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_HIGH); + TICKET_DISPENSER(config, m_hopper2, attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_HIGH); // video hardware MCFG_SCREEN_ADD("screen", RASTER) @@ -1172,14 +1172,14 @@ MACHINE_CONFIG_END MACHINE_CONFIG_START(jclub2_state::jclub2) MCFG_DEVICE_ADD("maincpu", M68EC020, 12000000) MCFG_DEVICE_PROGRAM_MAP(jclub2_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", common_state, scanline_irq, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(common_state::scanline_irq), "screen", 0, 1); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); EEPROM_93C46_8BIT(config, "eeprom"); WATCHDOG_TIMER(config, "watchdog"); - MCFG_TICKET_DISPENSER_ADD("hopper1", attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_HIGH) - MCFG_TICKET_DISPENSER_ADD("hopper2", attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_HIGH) + TICKET_DISPENSER(config, m_hopper1, attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_HIGH); + TICKET_DISPENSER(config, m_hopper2, attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_HIGH); // video hardware MCFG_SCREEN_ADD("screen", RASTER) @@ -1206,14 +1206,14 @@ MACHINE_CONFIG_END MACHINE_CONFIG_START(darkhors_state::darkhors) MCFG_DEVICE_ADD("maincpu", M68EC020, 12000000) // 36MHz/3 ?? MCFG_DEVICE_PROGRAM_MAP(darkhors_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", common_state, scanline_irq, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(common_state::scanline_irq), "screen", 0, 1); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); EEPROM_93C46_8BIT(config, "eeprom"); WATCHDOG_TIMER(config, "watchdog"); - MCFG_TICKET_DISPENSER_ADD("hopper1", attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_HIGH) - MCFG_TICKET_DISPENSER_ADD("hopper2", attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_HIGH) + TICKET_DISPENSER(config, m_hopper1, attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_HIGH); + TICKET_DISPENSER(config, m_hopper2, attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_HIGH); // video hardware MCFG_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/jeutel.cpp b/src/mame/drivers/jeutel.cpp index 175737bc586..3dff8566ab2 100644 --- a/src/mame/drivers/jeutel.cpp +++ b/src/mame/drivers/jeutel.cpp @@ -252,7 +252,7 @@ MACHINE_CONFIG_START(jeutel_state::jeutel) //ppi2.in_pc_callback().set_ioport("EXTRA"); //ppi2.out_pc_callback().set(FUNC(jeutel_state::ppi2c_w)); - MCFG_TIMER_DRIVER_ADD_PERIODIC("timer_a", jeutel_state, timer_a, attotime::from_hz(120)) + TIMER(config, "timer_a").configure_periodic(FUNC(jeutel_state::timer_a), attotime::from_hz(120)); MACHINE_CONFIG_END /*-------------------------------- diff --git a/src/mame/drivers/jpmimpct.cpp b/src/mame/drivers/jpmimpct.cpp index 1cc9c691cfd..84ba4e11d69 100644 --- a/src/mame/drivers/jpmimpct.cpp +++ b/src/mame/drivers/jpmimpct.cpp @@ -858,7 +858,7 @@ MACHINE_CONFIG_START(jpmimpct_state::jpmimpct) MCFG_MACHINE_RESET_OVERRIDE(jpmimpct_state,jpmimpct) NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); - MCFG_TIMER_DRIVER_ADD("duart_1_timer", jpmimpct_state, duart_1_timer_event) + TIMER(config, m_duart_1_timer).configure_generic(FUNC(jpmimpct_state::duart_1_timer_event)); MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(40000000/4, 156*4, 0, 100*4, 328, 0, 300) @@ -1327,7 +1327,7 @@ MACHINE_CONFIG_START(jpmimpct_state::impctawp) ppi.in_pc_callback().set(FUNC(jpmimpct_state::hopper_c_r)); ppi.out_pc_callback().set(FUNC(jpmimpct_state::display_c_w)); - MCFG_TIMER_DRIVER_ADD("duart_1_timer", jpmimpct_state, duart_1_timer_event) + TIMER(config, m_duart_1_timer).configure_generic(FUNC(jpmimpct_state::duart_1_timer_event)); SPEAKER(config, "mono").front_center(); MCFG_DEVICE_ADD("upd",UPD7759) diff --git a/src/mame/drivers/junior.cpp b/src/mame/drivers/junior.cpp index 83072d16866..771bca1c347 100644 --- a/src/mame/drivers/junior.cpp +++ b/src/mame/drivers/junior.cpp @@ -243,7 +243,7 @@ MACHINE_CONFIG_START(junior_state::junior) m_riot->irq_wr_callback().set_inputline(m_maincpu, M6502_IRQ_LINE); - MCFG_TIMER_DRIVER_ADD_PERIODIC("led_timer", junior_state, junior_update_leds, attotime::from_hz(50)) + TIMER(config, "led_timer").configure_periodic(FUNC(junior_state::junior_update_leds), attotime::from_hz(50)); MACHINE_CONFIG_END diff --git a/src/mame/drivers/jupace.cpp b/src/mame/drivers/jupace.cpp index 8b551db5d1f..12eadf3e305 100644 --- a/src/mame/drivers/jupace.cpp +++ b/src/mame/drivers/jupace.cpp @@ -767,8 +767,8 @@ MACHINE_CONFIG_START(ace_state::ace) MCFG_SCREEN_RAW_PARAMS(XTAL(6'500'000), 416, 0, 336, 312, 0, 304) MCFG_SCREEN_PALETTE("palette") - MCFG_TIMER_DRIVER_ADD_SCANLINE("set_irq", ace_state, set_irq, SCREEN_TAG, 31*8, 264) - MCFG_TIMER_DRIVER_ADD_SCANLINE("clear_irq", ace_state, clear_irq, SCREEN_TAG, 32*8, 264) + TIMER(config, "set_irq").configure_scanline(FUNC(ace_state::set_irq), SCREEN_TAG, 31*8, 264); + TIMER(config, "clear_irq").configure_scanline(FUNC(ace_state::clear_irq), SCREEN_TAG, 32*8, 264); PALETTE(config, "palette", palette_device::MONOCHROME); diff --git a/src/mame/drivers/kaneko16.cpp b/src/mame/drivers/kaneko16.cpp index 9e166ea1560..48d46d876d9 100644 --- a/src/mame/drivers/kaneko16.cpp +++ b/src/mame/drivers/kaneko16.cpp @@ -1773,7 +1773,7 @@ MACHINE_CONFIG_START(kaneko16_berlwall_state::berlwall) /* basic machine hardware */ M68000(config, m_maincpu, 12000000); /* MC68000P12 */ m_maincpu->set_addrmap(AS_PROGRAM, &kaneko16_berlwall_state::berlwall_map); - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", kaneko16_state, kaneko16_interrupt, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(kaneko16_state::kaneko16_interrupt), "screen", 0, 1); WATCHDOG_TIMER(config, m_watchdog); @@ -1835,7 +1835,7 @@ MACHINE_CONFIG_START(kaneko16_state::bakubrkr) /* basic machine hardware */ M68000(config, m_maincpu, XTAL(12'000'000)); /* verified on pcb */ m_maincpu->set_addrmap(AS_PROGRAM, &kaneko16_state::bakubrkr_map); - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", kaneko16_state, kaneko16_interrupt, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(kaneko16_state::kaneko16_interrupt), "screen", 0, 1); MCFG_MACHINE_RESET_OVERRIDE(kaneko16_state,gtmr) EEPROM_93C46_16BIT(config, m_eeprom); @@ -1907,7 +1907,7 @@ MACHINE_CONFIG_START(kaneko16_state::blazeon) /* basic machine hardware */ M68000(config, m_maincpu, 12000000); /* TMP68HC000-12 */ m_maincpu->set_addrmap(AS_PROGRAM, &kaneko16_state::blazeon_map); - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", kaneko16_state, kaneko16_interrupt, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(kaneko16_state::kaneko16_interrupt), "screen", 0, 1); Z80(config, m_audiocpu, 4000000); /* D780C-2 (6 MHz) */ m_audiocpu->set_addrmap(AS_PROGRAM, &kaneko16_state::blazeon_soundmem); @@ -1962,7 +1962,7 @@ MACHINE_CONFIG_START(kaneko16_state::wingforc) /* basic machine hardware */ M68000(config, m_maincpu, XTAL(16'000'000)); /* TMP68HC000N-16 */ m_maincpu->set_addrmap(AS_PROGRAM, &kaneko16_state::blazeon_map); - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", kaneko16_state, kaneko16_interrupt, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(kaneko16_state::kaneko16_interrupt), "screen", 0, 1); Z80(config, m_audiocpu, XTAL(16'000'000)/4); /* D780C-2 (6 MHz) */ m_audiocpu->set_addrmap(AS_PROGRAM, &kaneko16_state::blazeon_soundmem); @@ -2040,7 +2040,7 @@ MACHINE_CONFIG_START(kaneko16_gtmr_state::gtmr) /* basic machine hardware */ M68000(config, m_maincpu, XTAL(16'000'000)); /* verified on pcb */ m_maincpu->set_addrmap(AS_PROGRAM, &kaneko16_gtmr_state::gtmr_map); - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", kaneko16_state, kaneko16_interrupt, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(kaneko16_state::kaneko16_interrupt), "screen", 0, 1); MCFG_MACHINE_RESET_OVERRIDE(kaneko16_gtmr_state,gtmr) @@ -2148,7 +2148,7 @@ MACHINE_CONFIG_START(kaneko16_state::mgcrystl) /* basic machine hardware */ M68000(config, m_maincpu, XTAL(12'000'000)); /* verified on pcb, TMP68HC000N-12 @U31 and X2 is 12MHz */ m_maincpu->set_addrmap(AS_PROGRAM, &kaneko16_state::mgcrystl_map); - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", kaneko16_state, kaneko16_interrupt, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(kaneko16_state::kaneko16_interrupt), "screen", 0, 1); MCFG_MACHINE_RESET_OVERRIDE(kaneko16_state,mgcrystl) @@ -2266,7 +2266,7 @@ MACHINE_CONFIG_START(kaneko16_shogwarr_state::shogwarr) /* basic machine hardware */ M68000(config, m_maincpu, XTAL(12'000'000)); m_maincpu->set_addrmap(AS_PROGRAM, &kaneko16_shogwarr_state::shogwarr_map); - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", kaneko16_shogwarr_state, shogwarr_interrupt, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(kaneko16_shogwarr_state::shogwarr_interrupt), "screen", 0, 1); MCFG_MACHINE_RESET_OVERRIDE(kaneko16_shogwarr_state,mgcrystl) diff --git a/src/mame/drivers/kas89.cpp b/src/mame/drivers/kas89.cpp index fffa09cd05e..557be24145f 100644 --- a/src/mame/drivers/kas89.cpp +++ b/src/mame/drivers/kas89.cpp @@ -773,12 +773,12 @@ MACHINE_CONFIG_START(kas89_state::kas89) MCFG_DEVICE_ADD("maincpu", Z80, MASTER_CLOCK/6) /* Confirmed */ MCFG_DEVICE_PROGRAM_MAP(kas89_map) MCFG_DEVICE_IO_MAP(kas89_io) - MCFG_TIMER_DRIVER_ADD_PERIODIC("kas89_nmi", kas89_state, kas89_nmi_cb, attotime::from_hz(138)) + TIMER(config, "kas89_nmi").configure_periodic(FUNC(kas89_state::kas89_nmi_cb), attotime::from_hz(138)); MCFG_DEVICE_ADD("audiocpu", Z80, MASTER_CLOCK/6) /* Confirmed */ MCFG_DEVICE_PROGRAM_MAP(audio_map) MCFG_DEVICE_IO_MAP(audio_io) - MCFG_TIMER_DRIVER_ADD_PERIODIC("kas89_snmi", kas89_state, kas89_sound_nmi_cb, attotime::from_hz(138)) + TIMER(config, "kas89_snmi").configure_periodic(FUNC(kas89_state::kas89_sound_nmi_cb), attotime::from_hz(138)); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); diff --git a/src/mame/drivers/kc.cpp b/src/mame/drivers/kc.cpp index 7fbf8fed1ec..7456eacfe32 100644 --- a/src/mame/drivers/kc.cpp +++ b/src/mame/drivers/kc.cpp @@ -125,7 +125,7 @@ MACHINE_CONFIG_START(kc_state::kc85_3) MCFG_SCREEN_RAW_PARAMS(XTAL(28'375'160)/2, 908, 0, 320, 312, 0, 256) MCFG_SCREEN_UPDATE_DRIVER(kc_state, screen_update) MCFG_SCREEN_PALETTE("palette") - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", kc_state, kc_scanline, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(kc_state::kc_scanline), "screen", 0, 1); PALETTE(config, "palette", FUNC(kc_state::kc85_palette), KC85_PALETTE_SIZE); @@ -205,7 +205,7 @@ MACHINE_CONFIG_START(kc85_4_state::kc85_4) MCFG_SCREEN_RAW_PARAMS(XTAL(28'375'160)/2, 908, 0, 320, 312, 0, 256) MCFG_SCREEN_UPDATE_DRIVER(kc85_4_state, screen_update) MCFG_SCREEN_PALETTE("palette") - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", kc85_4_state, kc_scanline, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(kc85_4_state::kc_scanline), "screen", 0, 1); PALETTE(config, "palette", FUNC(kc85_4_state::kc85_palette), KC85_PALETTE_SIZE); diff --git a/src/mame/drivers/kdt6.cpp b/src/mame/drivers/kdt6.cpp index 9ca94a8bb09..8b2591e040c 100644 --- a/src/mame/drivers/kdt6.cpp +++ b/src/mame/drivers/kdt6.cpp @@ -644,7 +644,7 @@ MACHINE_CONFIG_START(kdt6_state::psi98) m_beeper->add_route(ALL_OUTPUTS, "mono", 0.50); SPEAKER_SOUND(config, "speaker").add_route(ALL_OUTPUTS, "mono", 0.50); - MCFG_TIMER_DRIVER_ADD("beep_timer", kdt6_state, beeper_off) + TIMER(config, m_beep_timer).configure_generic(FUNC(kdt6_state::beeper_off)); Z80DMA(config, m_dma, 16_MHz_XTAL / 4); m_dma->out_busreq_callback().set(FUNC(kdt6_state::busreq_w)); diff --git a/src/mame/drivers/kim1.cpp b/src/mame/drivers/kim1.cpp index b88b53d004e..28e65781edd 100644 --- a/src/mame/drivers/kim1.cpp +++ b/src/mame/drivers/kim1.cpp @@ -263,8 +263,8 @@ MACHINE_CONFIG_START(kim1_state::kim1) MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_STOPPED) MCFG_CASSETTE_INTERFACE ("kim1_cass") - MCFG_TIMER_DRIVER_ADD_PERIODIC("led_timer", kim1_state, kim1_update_leds, attotime::from_hz(60)) - MCFG_TIMER_DRIVER_ADD_PERIODIC("cassette_timer", kim1_state, kim1_cassette_input, attotime::from_hz(44100)) + TIMER(config, "led_timer").configure_periodic(FUNC(kim1_state::kim1_update_leds), attotime::from_hz(60)); + TIMER(config, "cassette_timer").configure_periodic(FUNC(kim1_state::kim1_cassette_input), attotime::from_hz(44100)); // software list MCFG_SOFTWARE_LIST_ADD ("cass_list", "kim1_cass") diff --git a/src/mame/drivers/koftball.cpp b/src/mame/drivers/koftball.cpp index 05b82ee4fa7..929b392539e 100644 --- a/src/mame/drivers/koftball.cpp +++ b/src/mame/drivers/koftball.cpp @@ -241,7 +241,7 @@ GFXDECODE_END MACHINE_CONFIG_START(koftball_state::koftball) MCFG_DEVICE_ADD("maincpu", M68000, XTAL(21'477'272) / 2) MCFG_DEVICE_PROGRAM_MAP(koftball_mem) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", koftball_state, bmc_interrupt, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(koftball_state::bmc_interrupt), "screen", 0, 1); MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) diff --git a/src/mame/drivers/konmedal68k.cpp b/src/mame/drivers/konmedal68k.cpp index 4bc346fc4c2..38286a57418 100644 --- a/src/mame/drivers/konmedal68k.cpp +++ b/src/mame/drivers/konmedal68k.cpp @@ -298,7 +298,7 @@ MACHINE_CONFIG_START(konmedal68k_state::kzaurus) /* basic machine hardware */ MCFG_DEVICE_ADD("maincpu", M68000, XTAL(33'868'800)/4 ) // 33.8688 MHz crystal verified on PCB MCFG_DEVICE_PROGRAM_MAP(kzaurus_main) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", konmedal68k_state, scanline, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(konmedal68k_state::scanline), "screen", 0, 1); /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/laserbas.cpp b/src/mame/drivers/laserbas.cpp index 0df02156860..cb5cae08506 100644 --- a/src/mame/drivers/laserbas.cpp +++ b/src/mame/drivers/laserbas.cpp @@ -373,7 +373,7 @@ MACHINE_CONFIG_START(laserbas_state::laserbas) MCFG_DEVICE_ADD("maincpu", Z80, CLOCK / 4) MCFG_DEVICE_PROGRAM_MAP(laserbas_memory) MCFG_DEVICE_IO_MAP(laserbas_io) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", laserbas_state, laserbas_scanline, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(laserbas_state::laserbas_scanline), "screen", 0, 1); /* TODO: clocks aren't known */ pit8253_device &pit0(PIT8253(config, "pit0", 0)); diff --git a/src/mame/drivers/lastbank.cpp b/src/mame/drivers/lastbank.cpp index 1942d977b20..77ade1e9f19 100644 --- a/src/mame/drivers/lastbank.cpp +++ b/src/mame/drivers/lastbank.cpp @@ -517,7 +517,7 @@ MACHINE_CONFIG_START(lastbank_state::lastbank) /* basic machine hardware */ MCFG_DEVICE_ADD("maincpu",Z80,MASTER_CLOCK/4) //!!! TC0091LVC !!! MCFG_DEVICE_PROGRAM_MAP(lastbank_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", lastbank_state, irq_scanline, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(lastbank_state::irq_scanline), "screen", 0, 1); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); diff --git a/src/mame/drivers/lazercmd.cpp b/src/mame/drivers/lazercmd.cpp index 376cc587bd0..24f56591a0c 100644 --- a/src/mame/drivers/lazercmd.cpp +++ b/src/mame/drivers/lazercmd.cpp @@ -636,7 +636,7 @@ MACHINE_CONFIG_START(lazercmd_state::lazercmd) thus requiring an extra loading of approx 3-5 */ MCFG_DEVICE_PROGRAM_MAP(lazercmd_map) MCFG_DEVICE_DATA_MAP(lazercmd_portmap) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", lazercmd_state, lazercmd_timer, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(lazercmd_state::lazercmd_timer), "screen", 0, 1); /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -674,7 +674,7 @@ MACHINE_CONFIG_START(lazercmd_state::medlanes) thus requiring an extra loading of approx 3-5 */ MCFG_DEVICE_PROGRAM_MAP(medlanes_map) MCFG_DEVICE_DATA_MAP(lazercmd_portmap) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", lazercmd_state, lazercmd_timer, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(lazercmd_state::lazercmd_timer), "screen", 0, 1); /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -708,7 +708,7 @@ MACHINE_CONFIG_START(lazercmd_state::bbonk) thus requiring an extra loading of approx 3-5 */ MCFG_DEVICE_PROGRAM_MAP(bbonk_map) MCFG_DEVICE_DATA_MAP(lazercmd_portmap) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", lazercmd_state, bbonk_timer, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(lazercmd_state::bbonk_timer), "screen", 0, 1); /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/lethalj.cpp b/src/mame/drivers/lethalj.cpp index d21465b8ddc..ea921617b48 100644 --- a/src/mame/drivers/lethalj.cpp +++ b/src/mame/drivers/lethalj.cpp @@ -641,7 +641,7 @@ MACHINE_CONFIG_START(lethalj_state::gameroom) m_maincpu->set_pixels_per_clock(1); m_maincpu->set_scanline_ind16_callback(FUNC(lethalj_state::scanline_update)); - MCFG_TICKET_DISPENSER_ADD("ticket", attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_HIGH) + TICKET_DISPENSER(config, m_ticket, attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_HIGH); /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/littlerb.cpp b/src/mame/drivers/littlerb.cpp index 4573075593e..a2522b810e8 100644 --- a/src/mame/drivers/littlerb.cpp +++ b/src/mame/drivers/littlerb.cpp @@ -294,8 +294,8 @@ MACHINE_CONFIG_START(littlerb_state::littlerb) INDER_VIDEO(config, m_indervid, 0); // XTAL(40'000'000) // TODO: not accurate - driven by XTAL(6'000'000)? - MCFG_TIMER_DRIVER_ADD_PERIODIC("step_timer", littlerb_state, littlerb_sound_step_cb, attotime::from_hz(7500/150)) - MCFG_TIMER_DRIVER_ADD_PERIODIC("sound_timer", littlerb_state, littlerb_sound_cb, attotime::from_hz(7500)) + TIMER(config, "step_timer").configure_periodic(FUNC(littlerb_state::littlerb_sound_step_cb), attotime::from_hz(7500/150)); + TIMER(config, "sound_timer").configure_periodic(FUNC(littlerb_state::littlerb_sound_cb), attotime::from_hz(7500)); SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); diff --git a/src/mame/drivers/ltd.cpp b/src/mame/drivers/ltd.cpp index 7e7ef9404e9..91987649b08 100644 --- a/src/mame/drivers/ltd.cpp +++ b/src/mame/drivers/ltd.cpp @@ -536,7 +536,7 @@ MACHINE_CONFIG_START(ltd_state::ltd3) /* Sound */ genpin_audio(config); - MCFG_TIMER_DRIVER_ADD_PERIODIC("timer_r", ltd_state, timer_r, attotime::from_hz(500)) + TIMER(config, "timer_r").configure_periodic(FUNC(ltd_state::timer_r), attotime::from_hz(500)); MACHINE_CONFIG_END MACHINE_CONFIG_START(ltd_state::ltd4) diff --git a/src/mame/drivers/markham.cpp b/src/mame/drivers/markham.cpp index 5d7039eceec..f9e1e002b16 100644 --- a/src/mame/drivers/markham.cpp +++ b/src/mame/drivers/markham.cpp @@ -582,7 +582,7 @@ MACHINE_CONFIG_START(markham_state::strnskil) MCFG_DEVICE_REMOVE("maincpu") MCFG_DEVICE_ADD("maincpu", Z80, CPU_CLOCK/2) /* 4.000MHz */ MCFG_DEVICE_PROGRAM_MAP(strnskil_master_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", markham_state, strnskil_scanline, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(markham_state::strnskil_scanline), "screen", 0, 1); MCFG_DEVICE_REMOVE("subcpu") MCFG_DEVICE_ADD("subcpu", Z80, CPU_CLOCK/2) /* 4.000MHz */ diff --git a/src/mame/drivers/maygay1b.cpp b/src/mame/drivers/maygay1b.cpp index 90905c42dfd..972831831ef 100644 --- a/src/mame/drivers/maygay1b.cpp +++ b/src/mame/drivers/maygay1b.cpp @@ -809,7 +809,7 @@ MACHINE_CONFIG_START(maygay1b_state::maygay_m1) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) - MCFG_TIMER_DRIVER_ADD_PERIODIC("nmitimer", maygay1b_state, maygay1b_nmitimer_callback, attotime::from_hz(75)) // freq? + TIMER(config, "nmitimer").configure_periodic(FUNC(maygay1b_state::maygay1b_nmitimer_callback), attotime::from_hz(75)); // freq? i8279_device &kbdc(I8279(config, "i8279", M1_MASTER_CLOCK/4)); // unknown clock kbdc.out_sl_callback().set(FUNC(maygay1b_state::scanlines_w)); // scan SL lines diff --git a/src/mame/drivers/mc10.cpp b/src/mame/drivers/mc10.cpp index d5bc972e713..a889e16281a 100644 --- a/src/mame/drivers/mc10.cpp +++ b/src/mame/drivers/mc10.cpp @@ -559,7 +559,7 @@ MACHINE_CONFIG_START(mc10_state::alice32) EF9345(config, m_ef9345, 0); m_ef9345->set_palette_tag("palette"); - MCFG_TIMER_DRIVER_ADD_SCANLINE("alice32_sl", mc10_state, alice32_scanline, "screen", 0, 10) + TIMER(config, "alice32_sl").configure_scanline(FUNC(mc10_state::alice32_scanline), "screen", 0, 10); /* sound hardware */ SPEAKER(config, "speaker").front_center(); diff --git a/src/mame/drivers/mc1000.cpp b/src/mame/drivers/mc1000.cpp index 47af53b1a2b..adf287844a5 100644 --- a/src/mame/drivers/mc1000.cpp +++ b/src/mame/drivers/mc1000.cpp @@ -550,12 +550,14 @@ MACHINE_CONFIG_START(mc1000_state::mc1000) MCFG_DEVICE_IO_MAP(mc1000_io) /* timers */ - MCFG_TIMER_DRIVER_ADD_PERIODIC("ne555clear", mc1000_state, ne555_tick, attotime::from_hz(MC1000_NE555_FREQ)) - MCFG_TIMER_PARAM(CLEAR_LINE) - - MCFG_TIMER_DRIVER_ADD_PERIODIC("ne555assert", mc1000_state, ne555_tick, attotime::from_hz(MC1000_NE555_FREQ)) - MCFG_TIMER_START_DELAY(attotime::from_hz(MC1000_NE555_FREQ * 100 / MC1000_NE555_DUTY_CYCLE)) - MCFG_TIMER_PARAM(ASSERT_LINE) + timer_device &ne555clear(TIMER(config, "ne555clear")); + ne555clear.configure_periodic(FUNC(mc1000_state::ne555_tick), attotime::from_hz(MC1000_NE555_FREQ)); + ne555clear.config_param(CLEAR_LINE); + + timer_device &ne555assert(TIMER(config, "ne555assert")); + ne555assert.configure_periodic(FUNC(mc1000_state::ne555_tick), attotime::from_hz(MC1000_NE555_FREQ)); + ne555assert.set_start_delay(attotime::from_hz(MC1000_NE555_FREQ * 100 / MC1000_NE555_DUTY_CYCLE)); + ne555assert.config_param(ASSERT_LINE); /* video hardware */ SCREEN(config, SCREEN_TAG, SCREEN_TYPE_RASTER); diff --git a/src/mame/drivers/mcr3.cpp b/src/mame/drivers/mcr3.cpp index a40a55a245e..0822ae5f749 100644 --- a/src/mame/drivers/mcr3.cpp +++ b/src/mame/drivers/mcr3.cpp @@ -1085,7 +1085,7 @@ MACHINE_CONFIG_START(mcr3_state::mcrmono) m_maincpu->set_addrmap(AS_IO, &mcr3_state::mcrmono_portmap); m_maincpu->set_daisy_config(mcr_daisy_chain); - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", mcr3_state, mcr_interrupt, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(mcr3_state::mcr_interrupt), "screen", 0, 1); Z80CTC(config, m_ctc, MASTER_CLOCK/4 /* same as "maincpu" */); m_ctc->intr_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); diff --git a/src/mame/drivers/mcr68.cpp b/src/mame/drivers/mcr68.cpp index 859c316cff7..867d4a21705 100644 --- a/src/mame/drivers/mcr68.cpp +++ b/src/mame/drivers/mcr68.cpp @@ -918,7 +918,7 @@ MACHINE_CONFIG_START(mcr68_state::mcr68) MCFG_SCREEN_UPDATE_DRIVER(mcr68_state, screen_update_mcr68) MCFG_SCREEN_PALETTE("palette") - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", mcr68_state, scanline_cb, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(mcr68_state::scanline_cb), "screen", 0, 1); GFXDECODE(config, m_gfxdecode, "palette", gfx_mcr68); PALETTE(config, "palette").set_format(palette_device::xRBG_333, 64); diff --git a/src/mame/drivers/mediagx.cpp b/src/mame/drivers/mediagx.cpp index a6460ad57af..5da1280767e 100644 --- a/src/mame/drivers/mediagx.cpp +++ b/src/mame/drivers/mediagx.cpp @@ -896,7 +896,7 @@ MACHINE_CONFIG_START(mediagx_state::mediagx) ide_controller_32_device &ide(IDE_CONTROLLER_32(config, "ide").options(ata_devices, "hdd", nullptr, true)); ide.irq_handler().set(m_pic8259_2, FUNC(pic8259_device::ir6_w)); - MCFG_TIMER_DRIVER_ADD("sound_timer", mediagx_state, sound_timer_callback) + TIMER(config, "sound_timer").configure_generic(FUNC(mediagx_state::sound_timer_callback)); RAMDAC(config, m_ramdac, 0, m_palette); m_ramdac->set_addrmap(0, &mediagx_state::ramdac_map); diff --git a/src/mame/drivers/meijinsn.cpp b/src/mame/drivers/meijinsn.cpp index 9cc06506945..fc911c71e69 100644 --- a/src/mame/drivers/meijinsn.cpp +++ b/src/mame/drivers/meijinsn.cpp @@ -362,7 +362,7 @@ MACHINE_CONFIG_START(meijinsn_state::meijinsn) /* basic machine hardware */ MCFG_DEVICE_ADD("maincpu", M68000, 9000000 ) MCFG_DEVICE_PROGRAM_MAP(meijinsn_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", meijinsn_state, meijinsn_interrupt, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(meijinsn_state::meijinsn_interrupt), "screen", 0, 1); MCFG_DEVICE_ADD("audiocpu", Z80, 4000000) MCFG_DEVICE_PROGRAM_MAP(meijinsn_sound_map) diff --git a/src/mame/drivers/mekd2.cpp b/src/mame/drivers/mekd2.cpp index 868a42de83e..c8434fcb899 100644 --- a/src/mame/drivers/mekd2.cpp +++ b/src/mame/drivers/mekd2.cpp @@ -411,8 +411,8 @@ MACHINE_CONFIG_START(mekd2_state::mekd2) clock_device &acia_rx_clock(CLOCK(config, "acia_rx_clock", 300)); // toggled by cassette circuit acia_rx_clock.signal_handler().set(m_acia, FUNC(acia6850_device::write_rxc)); - MCFG_TIMER_DRIVER_ADD_PERIODIC("mekd2_c", mekd2_state, mekd2_c, attotime::from_hz(4800)) - MCFG_TIMER_DRIVER_ADD_PERIODIC("mekd2_p", mekd2_state, mekd2_p, attotime::from_hz(40000)) + TIMER(config, "mekd2_c").configure_periodic(FUNC(mekd2_state::mekd2_c), attotime::from_hz(4800)); + TIMER(config, "mekd2_p").configure_periodic(FUNC(mekd2_state::mekd2_p), attotime::from_hz(40000)); MCFG_QUICKLOAD_ADD("quickload", mekd2_state, mekd2_quik, "d2", 1) MACHINE_CONFIG_END diff --git a/src/mame/drivers/mephisto.cpp b/src/mame/drivers/mephisto.cpp index 21191fce122..cb7b19f0f2b 100644 --- a/src/mame/drivers/mephisto.cpp +++ b/src/mame/drivers/mephisto.cpp @@ -319,7 +319,7 @@ MACHINE_CONFIG_START(mephisto_state::mephisto) MCFG_DEVICE_ADD("beeper", BEEP, 3250) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MCFG_TIMER_DRIVER_ADD_PERIODIC("nmi_timer", mephisto_state, update_nmi, attotime::from_hz(600)) + TIMER(config, "nmi_timer").configure_periodic(FUNC(mephisto_state::update_nmi), attotime::from_hz(600)); MEPHISTO_SENSORS_BOARD(config, "board", 0); config.set_default_layout(layout_mephisto); @@ -330,8 +330,8 @@ MACHINE_CONFIG_START(mephisto_state::rebel5) /* basic machine hardware */ MCFG_DEVICE_MODIFY("maincpu") MCFG_DEVICE_PROGRAM_MAP(rebel5_mem) - MCFG_DEVICE_REMOVE("nmi_timer") - MCFG_TIMER_DRIVER_ADD_PERIODIC("nmi_timer_r5", mephisto_state, update_nmi_r5, attotime::from_hz(600)) + config.device_remove("nmi_timer"); + TIMER(config, "nmi_timer_r5").configure_periodic(FUNC(mephisto_state::update_nmi_r5), attotime::from_hz(600)); MACHINE_CONFIG_END @@ -341,8 +341,8 @@ MACHINE_CONFIG_START(mephisto_state::mm2) MCFG_DEVICE_PROGRAM_MAP(mm2_mem) MCFG_MACHINE_START_OVERRIDE(mephisto_state, mm2 ) - MCFG_DEVICE_REMOVE("nmi_timer") - MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_timer", mephisto_state, update_irq, attotime::from_hz(450)) + config.device_remove("nmi_timer"); + TIMER(config, "irq_timer").configure_periodic(FUNC(mephisto_state::update_irq), attotime::from_hz(450)); MACHINE_CONFIG_END MACHINE_CONFIG_START(mephisto_state::mm4tk) diff --git a/src/mame/drivers/mephisto_montec.cpp b/src/mame/drivers/mephisto_montec.cpp index 20829ed2950..a23a3a492aa 100644 --- a/src/mame/drivers/mephisto_montec.cpp +++ b/src/mame/drivers/mephisto_montec.cpp @@ -500,7 +500,7 @@ MACHINE_CONFIG_START(mephisto_montec_state::mondial2) MCFG_DEVICE_PROGRAM_MAP(mondial2_mem) MCFG_DEVICE_PERIODIC_INT_DRIVER(mephisto_montec_state, nmi_line_pulse, XTAL(2'000'000) / (1 << 12)) - MCFG_TIMER_DRIVER_ADD_PERIODIC("refresh_leds", mephisto_montec_state, refresh_leds, attotime::from_hz(10)) + TIMER(config, "refresh_leds").configure_periodic(FUNC(mephisto_montec_state::refresh_leds), attotime::from_hz(10)); config.set_default_layout(layout_mephisto_mondial2); MACHINE_CONFIG_END diff --git a/src/mame/drivers/metlfrzr.cpp b/src/mame/drivers/metlfrzr.cpp index 2cd3986f02f..c01abc0cfa0 100644 --- a/src/mame/drivers/metlfrzr.cpp +++ b/src/mame/drivers/metlfrzr.cpp @@ -372,7 +372,7 @@ MACHINE_CONFIG_START(metlfrzr_state::metlfrzr) MCFG_DEVICE_ADD("maincpu", Z80, XTAL(12'000'000) / 2) MCFG_DEVICE_PROGRAM_MAP(metlfrzr_map) MCFG_DEVICE_OPCODES_MAP(decrypted_opcodes_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", metlfrzr_state, scanline, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(metlfrzr_state::scanline), "screen", 0, 1); MCFG_DEVICE_ADD("t5182", T5182, 0) diff --git a/src/mame/drivers/meyc8088.cpp b/src/mame/drivers/meyc8088.cpp index 11fe7a0df0f..30f907e5b72 100644 --- a/src/mame/drivers/meyc8088.cpp +++ b/src/mame/drivers/meyc8088.cpp @@ -386,7 +386,7 @@ MACHINE_CONFIG_START(meyc8088_state::meyc8088) NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); - MCFG_TIMER_DRIVER_ADD("heartbeat", meyc8088_state, heartbeat_callback) + TIMER(config, m_heartbeat).configure_generic(FUNC(meyc8088_state::heartbeat_callback)); /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/micropin.cpp b/src/mame/drivers/micropin.cpp index c0c01f897e5..67286741bd5 100644 --- a/src/mame/drivers/micropin.cpp +++ b/src/mame/drivers/micropin.cpp @@ -332,7 +332,7 @@ MACHINE_CONFIG_START(micropin_state::micropin) //m_pia51->ca2_handler().set(FUNC(micropin_state::p51ca2_w)); //m_pia51->cb2_handler().set(FUNC(micropin_state::p51cb2_w)); - MCFG_TIMER_DRIVER_ADD_PERIODIC("timer_a", micropin_state, timer_a, attotime::from_hz(100)) + TIMER(config, "timer_a").configure_periodic(FUNC(micropin_state::timer_a), attotime::from_hz(100)); MACHINE_CONFIG_END MACHINE_CONFIG_START(micropin_state::pentacup2) diff --git a/src/mame/drivers/midvunit.cpp b/src/mame/drivers/midvunit.cpp index 43dc19af1cf..53e18a7f9d3 100644 --- a/src/mame/drivers/midvunit.cpp +++ b/src/mame/drivers/midvunit.cpp @@ -1063,8 +1063,8 @@ MACHINE_CONFIG_START(midvunit_state::midvcommon) NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_1); - MCFG_TIMER_ADD_NONE("timer0") - MCFG_TIMER_ADD_NONE("timer1") + TIMER(config, "timer0").configure_generic(timer_device::expired_delegate()); + TIMER(config, "timer1").configure_generic(timer_device::expired_delegate()); WATCHDOG_TIMER(config, m_watchdog); diff --git a/src/mame/drivers/mjsenpu.cpp b/src/mame/drivers/mjsenpu.cpp index b79a85f8765..fae721c1710 100644 --- a/src/mame/drivers/mjsenpu.cpp +++ b/src/mame/drivers/mjsenpu.cpp @@ -474,7 +474,7 @@ MACHINE_CONFIG_START(mjsenpu_state::mjsenpu) NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_1); // more likely coins out? - MCFG_TICKET_DISPENSER_ADD("hopper", attotime::from_msec(50), TICKET_MOTOR_ACTIVE_LOW, TICKET_STATUS_ACTIVE_HIGH) + TICKET_DISPENSER(config, m_hopper, attotime::from_msec(50), TICKET_MOTOR_ACTIVE_LOW, TICKET_STATUS_ACTIVE_HIGH); /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/mk1.cpp b/src/mame/drivers/mk1.cpp index d9f6bee12d2..556d55c5e59 100644 --- a/src/mame/drivers/mk1.cpp +++ b/src/mame/drivers/mk1.cpp @@ -198,7 +198,7 @@ MACHINE_CONFIG_START(mk1_state::mk1) /* video hardware */ config.set_default_layout(layout_mk1); - MCFG_TIMER_DRIVER_ADD_PERIODIC("led_timer", mk1_state, mk1_update_leds, attotime::from_hz(30)) + TIMER(config, "led_timer").configure_periodic(FUNC(mk1_state::mk1_update_leds), attotime::from_hz(30)); MACHINE_CONFIG_END diff --git a/src/mame/drivers/mk2.cpp b/src/mame/drivers/mk2.cpp index 98cf04d7481..1b961bd787f 100644 --- a/src/mame/drivers/mk2.cpp +++ b/src/mame/drivers/mk2.cpp @@ -220,7 +220,7 @@ MACHINE_CONFIG_START(mk2_state::mk2) MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) - MCFG_TIMER_DRIVER_ADD_PERIODIC("led_timer", mk2_state, update_leds, attotime::from_hz(60)) + TIMER(config, "led_timer").configure_periodic(FUNC(mk2_state::update_leds), attotime::from_hz(60)); MACHINE_CONFIG_END diff --git a/src/mame/drivers/modena.cpp b/src/mame/drivers/modena.cpp index fb72cbee78d..36154d8faed 100644 --- a/src/mame/drivers/modena.cpp +++ b/src/mame/drivers/modena.cpp @@ -141,9 +141,10 @@ void mephisto_modena_state::machine_reset() MACHINE_CONFIG_START(mephisto_modena_state::modena) MCFG_DEVICE_ADD("maincpu", M65C02, XTAL(4'194'304)) // W65C02SP MCFG_DEVICE_PROGRAM_MAP(modena_mem) - MCFG_TIMER_DRIVER_ADD_PERIODIC("nmi_on", mephisto_modena_state, nmi_on, attotime::from_hz(XTAL(4'194'304) / (1 << 13))) - MCFG_TIMER_START_DELAY(attotime::from_hz(XTAL(4'194'304) / (1 << 13)) - attotime::from_usec(975)) // active for 975us - MCFG_TIMER_DRIVER_ADD_PERIODIC("nmi_off", mephisto_modena_state, nmi_off, attotime::from_hz(XTAL(4'194'304) / (1 << 13))) + timer_device &nmi_on(TIMER(config, "nmi_on")); + nmi_on.configure_periodic(FUNC(mephisto_modena_state::nmi_on), attotime::from_hz(XTAL(4'194'304) / (1 << 13))); + nmi_on.set_start_delay(attotime::from_hz(XTAL(4'194'304) / (1 << 13)) - attotime::from_usec(975)); // active for 975us + TIMER(config, "nmi_off").configure_periodic(FUNC(mephisto_modena_state::nmi_off), attotime::from_hz(XTAL(4'194'304) / (1 << 13))); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); diff --git a/src/mame/drivers/monzagp.cpp b/src/mame/drivers/monzagp.cpp index 43c4d2dfea0..a62001a871b 100644 --- a/src/mame/drivers/monzagp.cpp +++ b/src/mame/drivers/monzagp.cpp @@ -504,7 +504,8 @@ static GFXDECODE_START( gfx_monzagp ) GFXDECODE_ENTRY( "gfx3", 0x0000, tile_layout, 0, 8 ) GFXDECODE_END -MACHINE_CONFIG_START(monzagp_state::monzagp) +void monzagp_state::monzagp(machine_config &config) +{ I8035(config, m_maincpu, 12000000/4); /* 400KHz ??? - Main board Crystal is 12MHz */ m_maincpu->set_addrmap(AS_PROGRAM, &monzagp_state::monzagp_map); m_maincpu->set_addrmap(AS_IO, &monzagp_state::monzagp_io); @@ -526,10 +527,10 @@ MACHINE_CONFIG_START(monzagp_state::monzagp) PALETTE(config, m_palette, FUNC(monzagp_state::monzagp_palette), 0x200); GFXDECODE(config, m_gfxdecode, m_palette, gfx_monzagp); - MCFG_TIMER_DRIVER_ADD_PERIODIC("time_tick_timer", monzagp_state, time_tick_timer, attotime::from_hz(4)) + TIMER(config, "time_tick_timer").configure_periodic(FUNC(monzagp_state::time_tick_timer), attotime::from_hz(4)); NVRAM(config, "nvram", nvram_device::DEFAULT_NONE); -MACHINE_CONFIG_END +} ROM_START( monzagp ) ROM_REGION( 0x1000, "maincpu", 0 ) diff --git a/src/mame/drivers/mpf1.cpp b/src/mame/drivers/mpf1.cpp index 6eb4640def3..b7de2be907e 100644 --- a/src/mame/drivers/mpf1.cpp +++ b/src/mame/drivers/mpf1.cpp @@ -387,7 +387,7 @@ MACHINE_CONFIG_START(mpf1_state::mpf1) MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) - MCFG_TIMER_DRIVER_ADD_PERIODIC("halt_timer", mpf1_state, check_halt_callback, attotime::from_hz(1)) + TIMER(config, "halt_timer").configure_periodic(FUNC(mpf1_state::check_halt_callback), attotime::from_hz(1)); MACHINE_CONFIG_END MACHINE_CONFIG_START(mpf1_state::mpf1b) @@ -424,7 +424,7 @@ MACHINE_CONFIG_START(mpf1_state::mpf1b) MCFG_DEVICE_ADD(TMS5220_TAG, TMS5220, 680000L) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) - MCFG_TIMER_DRIVER_ADD_PERIODIC("halt_timer", mpf1_state, check_halt_callback, attotime::from_hz(1)) + TIMER(config, "halt_timer").configure_periodic(FUNC(mpf1_state::check_halt_callback), attotime::from_hz(1)); MACHINE_CONFIG_END MACHINE_CONFIG_START(mpf1_state::mpf1p) @@ -458,7 +458,7 @@ MACHINE_CONFIG_START(mpf1_state::mpf1p) MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) - MCFG_TIMER_DRIVER_ADD_PERIODIC("halt_timer", mpf1_state, check_halt_callback, attotime::from_hz(1)) + TIMER(config, "halt_timer").configure_periodic(FUNC(mpf1_state::check_halt_callback), attotime::from_hz(1)); MACHINE_CONFIG_END /* ROMs */ diff --git a/src/mame/drivers/mrflea.cpp b/src/mame/drivers/mrflea.cpp index b7f5f795d2d..e14f2a15f37 100644 --- a/src/mame/drivers/mrflea.cpp +++ b/src/mame/drivers/mrflea.cpp @@ -266,7 +266,7 @@ MACHINE_CONFIG_START(mrflea_state::mrflea) MCFG_DEVICE_ADD("subcpu", Z80, 6000000) // runs in IM 1, so doesn't use 8259 INTA MCFG_DEVICE_PROGRAM_MAP(mrflea_slave_map) MCFG_DEVICE_IO_MAP(mrflea_slave_io_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", mrflea_state, mrflea_slave_interrupt, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(mrflea_state::mrflea_slave_interrupt), "screen", 0, 1); MCFG_QUANTUM_TIME(attotime::from_hz(6000)) diff --git a/src/mame/drivers/ms32.cpp b/src/mame/drivers/ms32.cpp index b25f282b41d..09d690b76b8 100644 --- a/src/mame/drivers/ms32.cpp +++ b/src/mame/drivers/ms32.cpp @@ -1707,7 +1707,7 @@ MACHINE_CONFIG_START(ms32_state::ms32) MCFG_DEVICE_PROGRAM_MAP(ms32_map) MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(ms32_state,irq_callback) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", ms32_state, ms32_interrupt, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(ms32_state::ms32_interrupt), "screen", 0, 1); MCFG_DEVICE_ADD("audiocpu", Z80, 8000000) // Z0840008PSC, Clock from notes MCFG_DEVICE_PROGRAM_MAP(ms32_sound_map) diff --git a/src/mame/drivers/mstation.cpp b/src/mame/drivers/mstation.cpp index 767fcbcc163..19d20a75ea8 100644 --- a/src/mame/drivers/mstation.cpp +++ b/src/mame/drivers/mstation.cpp @@ -467,10 +467,10 @@ MACHINE_CONFIG_START(mstation_state::mstation) SST_28SF040(config, "flash1"); // IRQ 4 is generated every second, used for auto power off - MCFG_TIMER_DRIVER_ADD_PERIODIC("1hz_timer", mstation_state, mstation_1hz_timer, attotime::from_hz(1)) + TIMER(config, "1hz_timer").configure_periodic(FUNC(mstation_state::mstation_1hz_timer), attotime::from_hz(1)); // IRQ 1 is used for scan the kb and for cursor blinking - MCFG_TIMER_DRIVER_ADD_PERIODIC("kb_timer", mstation_state, mstation_kb_timer, attotime::from_hz(50)) + TIMER(config, "kb_timer").configure_periodic(FUNC(mstation_state::mstation_kb_timer), attotime::from_hz(50)); rp5c01_device &rtc(RP5C01(config, "rtc", XTAL(32'768))); rtc.out_alarm_callback().set(FUNC(mstation_state::rtc_irq)); diff --git a/src/mame/drivers/mtx.cpp b/src/mame/drivers/mtx.cpp index 72b4d4f84b9..ba38a8440e1 100644 --- a/src/mame/drivers/mtx.cpp +++ b/src/mame/drivers/mtx.cpp @@ -312,7 +312,7 @@ MACHINE_CONFIG_START(mtx_state::mtx512) m_z80ctc->zc_callback<1>().set(FUNC(mtx_state::ctc_trg1_w)); m_z80ctc->zc_callback<2>().set(FUNC(mtx_state::ctc_trg2_w)); - MCFG_TIMER_DRIVER_ADD_PERIODIC("z80ctc_timer", mtx_state, ctc_tick, attotime::from_hz(XTAL(4'000'000)/13)) + TIMER(config, "z80ctc_timer").configure_periodic(FUNC(mtx_state::ctc_tick), attotime::from_hz(XTAL(4'000'000)/13)); MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer") MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(*this, mtx_state, write_centronics_busy)) @@ -327,7 +327,7 @@ MACHINE_CONFIG_START(mtx_state::mtx512) MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_PLAY | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_MUTED) MCFG_CASSETTE_INTERFACE("mtx_cass") - MCFG_TIMER_DRIVER_ADD_PERIODIC("cassette_timer", mtx_state, cassette_tick, attotime::from_hz(44100)) + TIMER(config, "cassette_timer").configure_periodic(FUNC(mtx_state::cassette_tick), attotime::from_hz(44100)); /* internal ram */ RAM(config, m_ram).set_default_size("64K").set_extra_options("96K,128K,192K,320K,448K,512K"); diff --git a/src/mame/drivers/multfish.cpp b/src/mame/drivers/multfish.cpp index b3365965d1e..12bcbdf881f 100644 --- a/src/mame/drivers/multfish.cpp +++ b/src/mame/drivers/multfish.cpp @@ -1050,8 +1050,8 @@ MACHINE_CONFIG_START(igrosoft_gamble_state::igrosoft_gamble) SPEAKER(config, "mono").front_center(); AY8910(config, "aysnd", 6000000/4).add_route(ALL_OUTPUTS, "mono", 0.30); - MCFG_DEVICE_ADD("m48t35", M48T35, 0) - MCFG_HOPPER_ADD("hopper", attotime::from_msec(100), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_HIGH) + M48T35(config, m_m48t35, 0); + HOPPER(config, m_hopper, attotime::from_msec(100), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_HIGH); MACHINE_CONFIG_END MACHINE_CONFIG_START(igrosoft_gamble_state::rollfr) diff --git a/src/mame/drivers/multi8.cpp b/src/mame/drivers/multi8.cpp index e205ed3e2ad..7fdfc39de01 100644 --- a/src/mame/drivers/multi8.cpp +++ b/src/mame/drivers/multi8.cpp @@ -592,7 +592,7 @@ MACHINE_CONFIG_START(multi8_state::multi8) MCFG_SOUND_ROUTE(ALL_OUTPUTS,"mono",0.50) /* devices */ - MCFG_TIMER_DRIVER_ADD_PERIODIC("keyboard_timer", multi8_state, keyboard_callback, attotime::from_hz(240/32)) + TIMER(config, "keyboard_timer").configure_periodic(FUNC(multi8_state::keyboard_callback), attotime::from_hz(240/32)); H46505(config, m_crtc, XTAL(3'579'545)/2); /* unknown clock, hand tuned to get ~60 fps */ m_crtc->set_screen("screen"); diff --git a/src/mame/drivers/mustache.cpp b/src/mame/drivers/mustache.cpp index eae1abaf643..8feae0b24ac 100644 --- a/src/mame/drivers/mustache.cpp +++ b/src/mame/drivers/mustache.cpp @@ -185,7 +185,7 @@ MACHINE_CONFIG_START(mustache_state::mustache) MCFG_DEVICE_ADD("maincpu", Z80, CPU_CLOCK) MCFG_DEVICE_PROGRAM_MAP(memmap) MCFG_DEVICE_OPCODES_MAP(decrypted_opcodes_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", mustache_state, scanline, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(mustache_state::scanline), "screen", 0, 1); SEI80BU(config, "sei80bu", 0).set_device_rom_tag("maincpu"); diff --git a/src/mame/drivers/mycom.cpp b/src/mame/drivers/mycom.cpp index e4a7e440c27..3ff21c80436 100644 --- a/src/mame/drivers/mycom.cpp +++ b/src/mame/drivers/mycom.cpp @@ -565,7 +565,7 @@ MACHINE_CONFIG_START(mycom_state::mycom) MCFG_FLOPPY_DRIVE_ADD("fdc:1", mycom_floppies, "525sd", floppy_image_device::default_floppy_formats) MCFG_FLOPPY_DRIVE_SOUND(true) - MCFG_TIMER_DRIVER_ADD_PERIODIC("keyboard_timer", mycom_state, mycom_kbd, attotime::from_hz(20)) + TIMER(config, "keyboard_timer").configure_periodic(FUNC(mycom_state::mycom_kbd), attotime::from_hz(20)); MACHINE_CONFIG_END /* ROM definition */ diff --git a/src/mame/drivers/mz700.cpp b/src/mame/drivers/mz700.cpp index c7b8c520c32..e213d905d2f 100644 --- a/src/mame/drivers/mz700.cpp +++ b/src/mame/drivers/mz700.cpp @@ -397,8 +397,8 @@ MACHINE_CONFIG_START(mz_state::mz700) SPEAKER_SOUND(config, "speaker").add_route(ALL_OUTPUTS, "mono", 0.50); /* ne556 timers */ - MCFG_TIMER_DRIVER_ADD_PERIODIC("cursor", mz_state, ne556_cursor_callback, attotime::from_hz(1.5)) - MCFG_TIMER_DRIVER_ADD_PERIODIC("other", mz_state, ne556_other_callback, attotime::from_hz(34.5)) + TIMER(config, "cursor").configure_periodic(FUNC(mz_state::ne556_cursor_callback), attotime::from_hz(1.5)); + TIMER(config, "other").configure_periodic(FUNC(mz_state::ne556_other_callback), attotime::from_hz(34.5)); /* devices */ PIT8253(config, m_pit, 0); diff --git a/src/mame/drivers/mz80.cpp b/src/mame/drivers/mz80.cpp index 78d00a062b7..ac4c703cbb2 100644 --- a/src/mame/drivers/mz80.cpp +++ b/src/mame/drivers/mz80.cpp @@ -317,7 +317,7 @@ MACHINE_CONFIG_START(mz80_state::mz80k) m_pit->set_clk<2>(0); m_pit->out_handler<2>().set(FUNC(mz80_state::pit_out2_changed)); - MCFG_TIMER_DRIVER_ADD_PERIODIC("tempo", mz80_state, ne555_tempo_callback, attotime::from_hz(34)) + TIMER(config, "tempo").configure_periodic(FUNC(mz80_state::ne555_tempo_callback), attotime::from_hz(34)); MCFG_CASSETTE_ADD( "cassette" ) MCFG_CASSETTE_FORMATS(mz700_cassette_formats) MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED) diff --git a/src/mame/drivers/nakajies.cpp b/src/mame/drivers/nakajies.cpp index 3066db4fdeb..8a387980089 100644 --- a/src/mame/drivers/nakajies.cpp +++ b/src/mame/drivers/nakajies.cpp @@ -772,7 +772,7 @@ MACHINE_CONFIG_START(nakajies_state::nakajies210) /* rtc */ RP5C01(config, "rtc", XTAL(32'768)); - MCFG_TIMER_DRIVER_ADD_PERIODIC("kb_timer", nakajies_state, kb_timer, attotime::from_hz(250)) + TIMER(config, "kb_timer").configure_periodic(FUNC(nakajies_state::kb_timer), attotime::from_hz(250)); MACHINE_CONFIG_END void nakajies_state::dator3k(machine_config &config) diff --git a/src/mame/drivers/namcofl.cpp b/src/mame/drivers/namcofl.cpp index 62e2f0b45fb..fce15000f5b 100644 --- a/src/mame/drivers/namcofl.cpp +++ b/src/mame/drivers/namcofl.cpp @@ -561,9 +561,9 @@ MACHINE_CONFIG_START(namcofl_state::namcofl) MCFG_DEVICE_PROGRAM_MAP(namcoc75_am) MCFG_DEVICE_IO_MAP(namcoc75_io) /* TODO: irq generation for these */ - MCFG_TIMER_DRIVER_ADD_PERIODIC("mcu_irq0", namcofl_state, mcu_irq0_cb, attotime::from_hz(60)) - MCFG_TIMER_DRIVER_ADD_PERIODIC("mcu_irq2", namcofl_state, mcu_irq2_cb, attotime::from_hz(60)) - MCFG_TIMER_DRIVER_ADD_PERIODIC("mcu_adc", namcofl_state, mcu_adc_cb, attotime::from_hz(60)) + TIMER(config, "mcu_irq0").configure_periodic(FUNC(namcofl_state::mcu_irq0_cb), attotime::from_hz(60)); + TIMER(config, "mcu_irq2").configure_periodic(FUNC(namcofl_state::mcu_irq2_cb), attotime::from_hz(60)); + TIMER(config, "mcu_adc").configure_periodic(FUNC(namcofl_state::mcu_adc_cb), attotime::from_hz(60)); MCFG_MACHINE_START_OVERRIDE(namcofl_state,namcofl) MCFG_MACHINE_RESET_OVERRIDE(namcofl_state,namcofl) diff --git a/src/mame/drivers/namconb1.cpp b/src/mame/drivers/namconb1.cpp index eacff54e35a..f27c7c9a35a 100644 --- a/src/mame/drivers/namconb1.cpp +++ b/src/mame/drivers/namconb1.cpp @@ -1046,12 +1046,12 @@ MACHINE_CONFIG_START(namconb1_state::namconb1) EEPROM_2816(config, "eeprom"); - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", namconb1_state, scantimer, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(namconb1_state::scantimer), "screen", 0, 1); // has to be 60 hz or music will go crazy in nebulray, vshoot, gslugrs* - MCFG_TIMER_DRIVER_ADD_PERIODIC("mcu_irq0", namconb1_state, mcu_irq0_cb, attotime::from_hz(60)) - MCFG_TIMER_DRIVER_ADD_PERIODIC("mcu_irq2", namconb1_state, mcu_irq2_cb, attotime::from_hz(60)) - MCFG_TIMER_DRIVER_ADD_PERIODIC("mcu_adc", namconb1_state, mcu_adc_cb, attotime::from_hz(60)) + TIMER(config, "mcu_irq0").configure_periodic(FUNC(namconb1_state::mcu_irq0_cb), attotime::from_hz(60)); + TIMER(config, "mcu_irq2").configure_periodic(FUNC(namconb1_state::mcu_irq2_cb), attotime::from_hz(60)); + TIMER(config, "mcu_adc").configure_periodic(FUNC(namconb1_state::mcu_adc_cb), attotime::from_hz(60)); SCREEN(config, m_screen, SCREEN_TYPE_RASTER); m_screen->set_raw(MASTER_CLOCK/8, 384, 0, 288, 264, 0, 224); diff --git a/src/mame/drivers/namcos2.cpp b/src/mame/drivers/namcos2.cpp index 80279914f30..9770d2f804c 100644 --- a/src/mame/drivers/namcos2.cpp +++ b/src/mame/drivers/namcos2.cpp @@ -1780,7 +1780,7 @@ void namcos2_state::configure_c123tmap_standard(machine_config &config) MACHINE_CONFIG_START(namcos2_state::base_noio) MCFG_DEVICE_ADD("maincpu", M68000, M68K_CPU_CLOCK) /* 12.288MHz (49.152MHz OSC/4) */ MCFG_DEVICE_PROGRAM_MAP(master_default_am) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", namcos2_state, screen_scanline, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(namcos2_state::screen_scanline), "screen", 0, 1); MCFG_DEVICE_ADD("slave", M68000, M68K_CPU_CLOCK) /* 12.288MHz (49.152MHz OSC/4) */ MCFG_DEVICE_PROGRAM_MAP(slave_default_am) @@ -1869,7 +1869,7 @@ void namcos2_state::base3(machine_config &config) MACHINE_CONFIG_START(namcos2_state::gollygho) MCFG_DEVICE_ADD("maincpu", M68000, M68K_CPU_CLOCK) /* 12.288MHz (49.152MHz OSC/4) */ MCFG_DEVICE_PROGRAM_MAP(master_default_am) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", namcos2_state, screen_scanline, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(namcos2_state::screen_scanline), "screen", 0, 1); MCFG_DEVICE_ADD("slave", M68000, M68K_CPU_CLOCK) /* 12.288MHz (49.152MHz OSC/4) */ MCFG_DEVICE_PROGRAM_MAP(slave_default_am) @@ -1923,7 +1923,7 @@ MACHINE_CONFIG_END MACHINE_CONFIG_START(namcos2_state::finallap_noio) MCFG_DEVICE_ADD("maincpu", M68000, M68K_CPU_CLOCK) /* 12.288MHz (49.152MHz OSC/4) */ MCFG_DEVICE_PROGRAM_MAP(master_finallap_am) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", namcos2_state, screen_scanline, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(namcos2_state::screen_scanline), "screen", 0, 1); MCFG_DEVICE_ADD("slave", M68000, M68K_CPU_CLOCK) /* 12.288MHz (49.152MHz OSC/4) */ MCFG_DEVICE_PROGRAM_MAP(slave_finallap_am) @@ -1997,7 +1997,7 @@ MACHINE_CONFIG_END MACHINE_CONFIG_START(namcos2_state::sgunner) MCFG_DEVICE_ADD("maincpu", M68000, M68K_CPU_CLOCK) /* 12.288MHz (49.152MHz OSC/4) */ MCFG_DEVICE_PROGRAM_MAP(master_sgunner_am) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", namcos2_state, screen_scanline, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(namcos2_state::screen_scanline), "screen", 0, 1); MCFG_DEVICE_ADD("slave", M68000, M68K_CPU_CLOCK) /* 12.288MHz (49.152MHz OSC/4) */ MCFG_DEVICE_PROGRAM_MAP(slave_sgunner_am) @@ -2051,7 +2051,7 @@ MACHINE_CONFIG_END MACHINE_CONFIG_START(namcos2_state::sgunner2) MCFG_DEVICE_ADD("maincpu", M68000, M68K_CPU_CLOCK) /* 12.288MHz (49.152MHz OSC/4) */ MCFG_DEVICE_PROGRAM_MAP(master_sgunner_am) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", namcos2_state, screen_scanline, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(namcos2_state::screen_scanline), "screen", 0, 1); MCFG_DEVICE_ADD("slave", M68000, M68K_CPU_CLOCK) /* 12.288MHz (49.152MHz OSC/4) */ MCFG_DEVICE_PROGRAM_MAP(slave_sgunner_am) @@ -2105,7 +2105,7 @@ MACHINE_CONFIG_END MACHINE_CONFIG_START(namcos2_state::suzuka8h) MCFG_DEVICE_ADD("maincpu", M68000, M68K_CPU_CLOCK) /* 12.288MHz (49.152MHz OSC/4) */ MCFG_DEVICE_PROGRAM_MAP(master_suzuka8h_am) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", namcos2_state, screen_scanline, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(namcos2_state::screen_scanline), "screen", 0, 1); MCFG_DEVICE_ADD("slave", M68000, M68K_CPU_CLOCK) /* 12.288MHz (49.152MHz OSC/4) */ MCFG_DEVICE_PROGRAM_MAP(slave_suzuka8h_am) @@ -2180,7 +2180,7 @@ MACHINE_CONFIG_END MACHINE_CONFIG_START(namcos2_state::metlhawk) MCFG_DEVICE_ADD("maincpu", M68000, M68K_CPU_CLOCK) /* 12.288MHz (49.152MHz OSC/4) */ MCFG_DEVICE_PROGRAM_MAP(master_metlhawk_am) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", namcos2_state, screen_scanline, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(namcos2_state::screen_scanline), "screen", 0, 1); MCFG_DEVICE_ADD("slave", M68000, M68K_CPU_CLOCK) /* 12.288MHz (49.152MHz OSC/4) */ MCFG_DEVICE_PROGRAM_MAP(slave_metlhawk_am) diff --git a/src/mame/drivers/namcos21.cpp b/src/mame/drivers/namcos21.cpp index 656a683bc33..0594bea5f3b 100644 --- a/src/mame/drivers/namcos21.cpp +++ b/src/mame/drivers/namcos21.cpp @@ -861,7 +861,7 @@ void namcos21_state::configure_c148_standard(machine_config &config) MACHINE_CONFIG_START(namcos21_state::winrun) MCFG_DEVICE_ADD("maincpu", M68000,12288000) /* Master */ MCFG_DEVICE_PROGRAM_MAP(winrun_master_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", namcos21_state, screen_scanline, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(namcos21_state::screen_scanline), "screen", 0, 1); MCFG_DEVICE_ADD("slave", M68000,12288000) /* Slave */ MCFG_DEVICE_PROGRAM_MAP(winrun_slave_map) diff --git a/src/mame/drivers/namcos21_c67.cpp b/src/mame/drivers/namcos21_c67.cpp index dc2c5a0adbb..da0b1f3de38 100644 --- a/src/mame/drivers/namcos21_c67.cpp +++ b/src/mame/drivers/namcos21_c67.cpp @@ -813,7 +813,7 @@ void namcos21_c67_state::configure_c148_standard(machine_config &config) MACHINE_CONFIG_START(namcos21_c67_state::namcos21) MCFG_DEVICE_ADD("maincpu", M68000,12288000) /* Master */ MCFG_DEVICE_PROGRAM_MAP(master_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", namcos21_c67_state, screen_scanline, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(namcos21_c67_state::screen_scanline), "screen", 0, 1); MCFG_DEVICE_ADD("slave", M68000,12288000) /* Slave */ MCFG_DEVICE_PROGRAM_MAP(slave_map) diff --git a/src/mame/drivers/namcos21_de.cpp b/src/mame/drivers/namcos21_de.cpp index f06353186cd..be23f0fd203 100644 --- a/src/mame/drivers/namcos21_de.cpp +++ b/src/mame/drivers/namcos21_de.cpp @@ -186,7 +186,7 @@ GFXDECODE_END MACHINE_CONFIG_START(namco_de_pcbstack_device::device_add_mconfig) MCFG_DEVICE_ADD("maincpu", M68000,12288000) /* Master */ MCFG_DEVICE_PROGRAM_MAP(driveyes_master_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", namco_de_pcbstack_device, screen_scanline, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(namco_de_pcbstack_device::screen_scanline), "screen", 0, 1); MCFG_DEVICE_ADD("slave", M68000,12288000) /* Slave */ MCFG_DEVICE_PROGRAM_MAP(driveyes_slave_map) diff --git a/src/mame/drivers/namcos22.cpp b/src/mame/drivers/namcos22.cpp index 9fdb6eeeed2..7b70bba6833 100644 --- a/src/mame/drivers/namcos22.cpp +++ b/src/mame/drivers/namcos22.cpp @@ -3894,7 +3894,7 @@ MACHINE_CONFIG_START(namcos22_state::namcos22) master.xf_out_cb().set(FUNC(namcos22_state::dsp_xf_output_w)); master.dr_in_cb().set(FUNC(namcos22_state::master_serial_io_r)); master.set_vblank_int("screen", FUNC(namcos22_state::dsp_vblank_irq)); - MCFG_TIMER_DRIVER_ADD_PERIODIC("dsp_serial", namcos22_state, dsp_serial_pulse, attotime::from_hz(SERIAL_IO_PERIOD)) + TIMER(config, "dsp_serial").configure_periodic(FUNC(namcos22_state::dsp_serial_pulse), attotime::from_hz(SERIAL_IO_PERIOD)); tms32025_device& slave(TMS32025(config, m_slave, 40_MHz_XTAL)); slave.set_addrmap(AS_PROGRAM, &namcos22_state::slave_dsp_program); @@ -3958,7 +3958,7 @@ MACHINE_CONFIG_START(namcos22_state::namcos22s) MCFG_DEVICE_REPLACE("mcu", M37710S4, 49.152_MHz_XTAL/3) MCFG_DEVICE_PROGRAM_MAP(mcu_program) MCFG_DEVICE_IO_MAP(mcu_io) - MCFG_TIMER_DRIVER_ADD_SCANLINE("mcu_irq", namcos22_state, mcu_irq, "screen", 0, 240) + TIMER(config, "mcu_irq").configure_scanline(FUNC(namcos22_state::mcu_irq), "screen", 0, 240); MCFG_QUANTUM_TIME(attotime::from_hz(9000)) // erratic inputs otherwise, probably mcu vs maincpu shareram MCFG_DEVICE_REMOVE("iomcu") @@ -3988,7 +3988,7 @@ MACHINE_CONFIG_START(namcos22_state::alpine) MCFG_DEVICE_MODIFY("mcu") MCFG_DEVICE_IO_MAP(alpine_io_map) - MCFG_TIMER_DRIVER_ADD("motor_timer", namcos22_state, alpine_steplock_callback) + TIMER(config, m_motor_timer).configure_generic(FUNC(namcos22_state::alpine_steplock_callback)); MACHINE_CONFIG_END MACHINE_CONFIG_START(namcos22_state::alpinesa) @@ -4034,12 +4034,13 @@ MACHINE_CONFIG_START(namcos22_state::tokyowar) MCFG_SOUND_ROUTE(3, "seat", 1.00) MACHINE_CONFIG_END -MACHINE_CONFIG_START(namcos22_state::propcycl) +void namcos22_state::propcycl(machine_config &config) +{ namcos22s(config); - MCFG_TIMER_DRIVER_ADD_PERIODIC("pc_p_upd", namcos22_state, propcycl_pedal_update, attotime::from_msec(20)) - MCFG_TIMER_DRIVER_ADD("pc_p_int", namcos22_state, propcycl_pedal_interrupt) -MACHINE_CONFIG_END + TIMER(config, "pc_p_upd").configure_periodic(FUNC(namcos22_state::propcycl_pedal_update), attotime::from_msec(20)); + TIMER(config, m_pc_pedal_interrupt).configure_generic(FUNC(namcos22_state::propcycl_pedal_interrupt)); +} MACHINE_START_MEMBER(namcos22_state,adillor) { @@ -4052,7 +4053,7 @@ MACHINE_START_MEMBER(namcos22_state,adillor) MACHINE_CONFIG_START(namcos22_state::adillor) namcos22s(config); - MCFG_TIMER_DRIVER_ADD_PERIODIC("ar_tb_upd", namcos22_state, adillor_trackball_update, attotime::from_msec(20)) + TIMER(config, "ar_tb_upd").configure_periodic(FUNC(namcos22_state::adillor_trackball_update), attotime::from_msec(20)); MCFG_MACHINE_START_OVERRIDE(namcos22_state,adillor) MACHINE_CONFIG_END diff --git a/src/mame/drivers/nanos.cpp b/src/mame/drivers/nanos.cpp index a2198847cad..70e3f63bf9b 100644 --- a/src/mame/drivers/nanos.cpp +++ b/src/mame/drivers/nanos.cpp @@ -522,7 +522,7 @@ MACHINE_CONFIG_START(nanos_state::nanos) /* internal ram */ RAM(config, RAM_TAG).set_default_size("64K"); - MCFG_TIMER_DRIVER_ADD_PERIODIC("keyboard_timer", nanos_state, keyboard_callback, attotime::from_hz(24000)) + TIMER(config, "keyboard_timer").configure_periodic(FUNC(nanos_state::keyboard_callback), attotime::from_hz(24000)); MACHINE_CONFIG_END /* ROM definition */ diff --git a/src/mame/drivers/nc.cpp b/src/mame/drivers/nc.cpp index 0bfa84aba27..79d3778c172 100644 --- a/src/mame/drivers/nc.cpp +++ b/src/mame/drivers/nc.cpp @@ -1419,7 +1419,7 @@ MACHINE_CONFIG_START(nc_state::nc_base) NVRAM(config, "nvram", nvram_device::DEFAULT_NONE); /* dummy timer */ - MCFG_TIMER_DRIVER_ADD_PERIODIC("dummy_timer", nc_state, dummy_timer_callback, attotime::from_hz(50)) + TIMER(config, "dummy_timer").configure_periodic(FUNC(nc_state::dummy_timer_callback), attotime::from_hz(50)); MACHINE_CONFIG_END MACHINE_CONFIG_START(nc100_state::nc100) diff --git a/src/mame/drivers/nitedrvr.cpp b/src/mame/drivers/nitedrvr.cpp index 9d8a10441bf..eae9445e74f 100644 --- a/src/mame/drivers/nitedrvr.cpp +++ b/src/mame/drivers/nitedrvr.cpp @@ -149,7 +149,7 @@ MACHINE_CONFIG_START(nitedrvr_state::nitedrvr) WATCHDOG_TIMER(config, "watchdog").set_vblank_count("screen", 3); - MCFG_TIMER_DRIVER_ADD_PERIODIC("crash_timer", nitedrvr_state, nitedrvr_crash_toggle_callback, PERIOD_OF_555_ASTABLE(RES_K(180), 330, CAP_U(1))) + TIMER(config, "crash_timer").configure_periodic(FUNC(nitedrvr_state::nitedrvr_crash_toggle_callback), PERIOD_OF_555_ASTABLE(RES_K(180), 330, CAP_U(1))); /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/novag6502.cpp b/src/mame/drivers/novag6502.cpp index efcdc10cff5..5854ecede2d 100644 --- a/src/mame/drivers/novag6502.cpp +++ b/src/mame/drivers/novag6502.cpp @@ -880,7 +880,7 @@ MACHINE_CONFIG_START(novag6502_state::supercon) NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_1); - MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", novag6502_state, display_decay_tick, attotime::from_msec(1)) + TIMER(config, "display_decay").configure_periodic(FUNC(novag6502_state::display_decay_tick), attotime::from_msec(1)); config.set_default_layout(layout_novag_supercon); /* sound hardware */ @@ -894,9 +894,10 @@ MACHINE_CONFIG_START(novag6502_state::cforte) /* basic machine hardware */ MCFG_DEVICE_ADD("maincpu", R65C02, 10_MHz_XTAL/2) MCFG_DEVICE_PROGRAM_MAP(cforte_map) - MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_on", novag6502_state, irq_on, attotime::from_hz(32.768_kHz_XTAL/128)) // 256Hz - MCFG_TIMER_START_DELAY(attotime::from_hz(32.768_kHz_XTAL/128) - attotime::from_usec(11)) // active for 11us - MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_off", novag6502_state, irq_off, attotime::from_hz(32.768_kHz_XTAL/128)) + timer_device &irq_on(TIMER(config, "irq_on")); + irq_on.configure_periodic(FUNC(novag6502_state::irq_on), attotime::from_hz(32.768_kHz_XTAL/128)); // 256Hz + irq_on.set_start_delay(attotime::from_hz(32.768_kHz_XTAL/128) - attotime::from_usec(11)); // active for 11us + TIMER(config, "irq_off").configure_periodic(FUNC(novag6502_state::irq_off), attotime::from_hz(32.768_kHz_XTAL/128)); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_1); @@ -904,7 +905,7 @@ MACHINE_CONFIG_START(novag6502_state::cforte) HLCD0538(config, m_hlcd0538, 0); m_hlcd0538->write_cols_callback().set(FUNC(novag6502_state::cforte_lcd_output_w)); - MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", novag6502_state, display_decay_tick, attotime::from_msec(1)) + TIMER(config, "display_decay").configure_periodic(FUNC(novag6502_state::display_decay_tick), attotime::from_msec(1)); config.set_default_layout(layout_novag_cforte); /* sound hardware */ @@ -918,9 +919,10 @@ MACHINE_CONFIG_START(novag6502_state::sexpert) /* basic machine hardware */ MCFG_DEVICE_ADD("maincpu", M65C02, 10_MHz_XTAL/2) // or 12_MHz_XTAL/2 MCFG_DEVICE_PROGRAM_MAP(sexpert_map) - MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_on", novag6502_state, irq_on, attotime::from_hz(32.768_kHz_XTAL/128)) // 256Hz - MCFG_TIMER_START_DELAY(attotime::from_hz(32.768_kHz_XTAL/128) - attotime::from_nsec(21500)) // active for 21.5us - MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_off", novag6502_state, irq_off, attotime::from_hz(32.768_kHz_XTAL/128)) + timer_device &irq_on(TIMER(config, "irq_on")); + irq_on.configure_periodic(FUNC(novag6502_state::irq_on), attotime::from_hz(32.768_kHz_XTAL/128)); // 256Hz + irq_on.set_start_delay(attotime::from_hz(32.768_kHz_XTAL/128) - attotime::from_nsec(21500)); // active for 21.5us + TIMER(config, "irq_off").configure_periodic(FUNC(novag6502_state::irq_off), attotime::from_hz(32.768_kHz_XTAL/128)); mos6551_device &acia(MOS6551(config, "acia", 0)); // R65C51P2 - RTS to CTS, DCD to GND acia.set_xtal(1.8432_MHz_XTAL); @@ -951,7 +953,7 @@ MACHINE_CONFIG_START(novag6502_state::sexpert) m_lcd->set_lcd_size(2, 8); m_lcd->set_pixel_update_cb(FUNC(novag6502_state::novag_lcd_pixel_update), this); - MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", novag6502_state, display_decay_tick, attotime::from_msec(1)) + TIMER(config, "display_decay").configure_periodic(FUNC(novag6502_state::display_decay_tick), attotime::from_msec(1)); config.set_default_layout(layout_novag_sexpert); /* sound hardware */ @@ -966,8 +968,7 @@ MACHINE_CONFIG_START(novag6502_state::sforte) /* basic machine hardware */ MCFG_DEVICE_MODIFY("maincpu") MCFG_DEVICE_PROGRAM_MAP(sforte_map) - MCFG_TIMER_MODIFY("irq_on") - MCFG_TIMER_START_DELAY(attotime::from_hz(32.768_kHz_XTAL/128) - attotime::from_usec(11)) // active for ?us (assume same as cforte) + subdevice("irq_on")->set_start_delay(attotime::from_hz(32.768_kHz_XTAL/128) - attotime::from_usec(11)); // active for ?us (assume same as cforte) config.set_default_layout(layout_novag_sforte); MACHINE_CONFIG_END diff --git a/src/mame/drivers/novag68k.cpp b/src/mame/drivers/novag68k.cpp index 5af1d566b54..8e93e285e13 100644 --- a/src/mame/drivers/novag68k.cpp +++ b/src/mame/drivers/novag68k.cpp @@ -240,9 +240,10 @@ MACHINE_CONFIG_START(novag68k_state::diablo68k) /* basic machine hardware */ MCFG_DEVICE_ADD("maincpu", M68000, 16_MHz_XTAL) MCFG_DEVICE_PROGRAM_MAP(diablo68k_map) - MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_on", novag68k_state, irq_on, attotime::from_hz(32.768_kHz_XTAL/128)) // 256Hz - MCFG_TIMER_START_DELAY(attotime::from_hz(32.768_kHz_XTAL/128) - attotime::from_nsec(1100)) // active for 1.1us - MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_off", novag68k_state, irq_off, attotime::from_hz(32.768_kHz_XTAL/128)) + timer_device &irq_on(TIMER(config, "irq_on")); + irq_on.configure_periodic(FUNC(novag68k_state::irq_on), attotime::from_hz(32.768_kHz_XTAL/128)); // 256Hz + irq_on.set_start_delay(attotime::from_hz(32.768_kHz_XTAL/128) - attotime::from_nsec(1100)); // active for 1.1us + TIMER(config, "irq_off").configure_periodic(FUNC(novag68k_state::irq_off), attotime::from_hz(32.768_kHz_XTAL/128)); mos6551_device &acia(MOS6551(config, "acia", 0)); acia.set_xtal(1.8432_MHz_XTAL); @@ -263,7 +264,7 @@ MACHINE_CONFIG_START(novag68k_state::diablo68k) m_lcd->set_lcd_size(2, 8); m_lcd->set_pixel_update_cb(FUNC(novag68k_state::novag_lcd_pixel_update), this); - MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", novag68k_state, display_decay_tick, attotime::from_msec(1)) + TIMER(config, "display_decay").configure_periodic(FUNC(novag68k_state::display_decay_tick), attotime::from_msec(1)); config.set_default_layout(layout_novag_diablo68k); /* sound hardware */ diff --git a/src/mame/drivers/novagf8.cpp b/src/mame/drivers/novagf8.cpp index 37f5553ec80..a355c4278e2 100644 --- a/src/mame/drivers/novagf8.cpp +++ b/src/mame/drivers/novagf8.cpp @@ -196,7 +196,7 @@ MACHINE_CONFIG_START(novagf8_state::delta1) f3853_device &f3853(F3853(config, "f3853", 2000000)); f3853.int_req_callback().set_inputline("maincpu", F8_INPUT_LINE_INT_REQ); - MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", novagf8_state, display_decay_tick, attotime::from_msec(1)) + TIMER(config, "display_decay").configure_periodic(FUNC(novagf8_state::display_decay_tick), attotime::from_msec(1)); config.set_default_layout(layout_novag_delta1); MACHINE_CONFIG_END diff --git a/src/mame/drivers/novagmcs48.cpp b/src/mame/drivers/novagmcs48.cpp index 6066c821f14..ffd5d81ec9e 100644 --- a/src/mame/drivers/novagmcs48.cpp +++ b/src/mame/drivers/novagmcs48.cpp @@ -155,7 +155,7 @@ MACHINE_CONFIG_START(novagmcs48_state::presto) maincpu.p2_out_cb().set(FUNC(novagmcs48_state::presto_control_w)); maincpu.bus_out_cb().set(FUNC(novagmcs48_state::presto_mux_w)); - MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", novagmcs48_state, display_decay_tick, attotime::from_msec(1)) + TIMER(config, "display_decay").configure_periodic(FUNC(novagmcs48_state::display_decay_tick), attotime::from_msec(1)); config.set_default_layout(layout_novag_presto); /* sound hardware */ diff --git a/src/mame/drivers/olibochu.cpp b/src/mame/drivers/olibochu.cpp index c2e3866edd9..4f5b5d6db11 100644 --- a/src/mame/drivers/olibochu.cpp +++ b/src/mame/drivers/olibochu.cpp @@ -464,7 +464,7 @@ MACHINE_CONFIG_START(olibochu_state::olibochu) /* basic machine hardware */ MCFG_DEVICE_ADD("maincpu", Z80, 4000000) /* 4 MHz ?? */ MCFG_DEVICE_PROGRAM_MAP(olibochu_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", olibochu_state, olibochu_scanline, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(olibochu_state::olibochu_scanline), "screen", 0, 1); MCFG_DEVICE_ADD("audiocpu", Z80, 4000000) /* 4 MHz ?? */ MCFG_DEVICE_PROGRAM_MAP(olibochu_sound_map) diff --git a/src/mame/drivers/orbit.cpp b/src/mame/drivers/orbit.cpp index 41097621386..a5bf7ed7f05 100644 --- a/src/mame/drivers/orbit.cpp +++ b/src/mame/drivers/orbit.cpp @@ -272,7 +272,7 @@ MACHINE_CONFIG_START(orbit_state::orbit) MCFG_DEVICE_PROGRAM_MAP(main_map) MCFG_DEVICE_VBLANK_INT_DRIVER("screen", orbit_state, interrupt) - MCFG_TIMER_DRIVER_ADD_SCANLINE("32v", orbit_state, nmi_32v, "screen", 0, 32) + TIMER(config, "32v").configure_scanline(FUNC(orbit_state::nmi_32v), "screen", 0, 32); F9334(config, m_latch); // M6 /* BIT0 => UNUSED */ diff --git a/src/mame/drivers/panicr.cpp b/src/mame/drivers/panicr.cpp index a4cef282692..b80c1171430 100644 --- a/src/mame/drivers/panicr.cpp +++ b/src/mame/drivers/panicr.cpp @@ -605,7 +605,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(panicr_state::scanline) MACHINE_CONFIG_START(panicr_state::panicr) MCFG_DEVICE_ADD("maincpu", V20,MASTER_CLOCK/2) /* Sony 8623h9 CXQ70116D-8 (V20 compatible) */ MCFG_DEVICE_PROGRAM_MAP(panicr_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", panicr_state, scanline, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(panicr_state::scanline), "screen", 0, 1); MCFG_DEVICE_ADD("t5182", T5182, 0) diff --git a/src/mame/drivers/pasogo.cpp b/src/mame/drivers/pasogo.cpp index a5058fa31aa..c0ba16e4033 100644 --- a/src/mame/drivers/pasogo.cpp +++ b/src/mame/drivers/pasogo.cpp @@ -574,7 +574,7 @@ MACHINE_CONFIG_START(pasogo_state::pasogo) MCFG_SOFTWARE_LIST_ADD("cart_list","pasogo") - MCFG_TIMER_DRIVER_ADD_PERIODIC("vg230_timer", pasogo_state, vg230_timer, attotime::from_hz(1)) + TIMER(config, "vg230_timer").configure_periodic(FUNC(pasogo_state::vg230_timer), attotime::from_hz(1)); MACHINE_CONFIG_END ROM_START( pasogo ) diff --git a/src/mame/drivers/patapata.cpp b/src/mame/drivers/patapata.cpp index 21386d69fa7..09230083e13 100644 --- a/src/mame/drivers/patapata.cpp +++ b/src/mame/drivers/patapata.cpp @@ -290,7 +290,7 @@ MACHINE_CONFIG_START(patapata_state::patapata) MCFG_DEVICE_ADD("maincpu", M68000, 16_MHz_XTAL) // 16 MHz XTAL, 16 MHz CPU MCFG_DEVICE_PROGRAM_MAP(main_map) MCFG_DEVICE_VBLANK_INT_DRIVER("screen", patapata_state, irq4_line_hold) // 1 + 4 valid? (4 main VBL) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", patapata_state, scanline, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(patapata_state::scanline), "screen", 0, 1); MCFG_DEVICE_ADD(m_gfxdecode, GFXDECODE, "palette", gfx_patapata) diff --git a/src/mame/drivers/pc100.cpp b/src/mame/drivers/pc100.cpp index 7265582525e..fd8bd3e33ab 100644 --- a/src/mame/drivers/pc100.cpp +++ b/src/mame/drivers/pc100.cpp @@ -642,10 +642,10 @@ MACHINE_CONFIG_START(pc100_state::pc100) m_maincpu->set_vblank_int("screen", FUNC(pc100_state::pc100_vblank_irq)); m_maincpu->set_irq_acknowledge_callback("pic8259", FUNC(pic8259_device::inta_cb)); - MCFG_TIMER_DRIVER_ADD_PERIODIC("600hz", pc100_state, pc100_600hz_irq, attotime::from_hz(MASTER_CLOCK/600)) - MCFG_TIMER_DRIVER_ADD_PERIODIC("100hz", pc100_state, pc100_100hz_irq, attotime::from_hz(MASTER_CLOCK/100)) - MCFG_TIMER_DRIVER_ADD_PERIODIC("50hz", pc100_state, pc100_50hz_irq, attotime::from_hz(MASTER_CLOCK/50)) - MCFG_TIMER_DRIVER_ADD_PERIODIC("10hz", pc100_state, pc100_10hz_irq, attotime::from_hz(MASTER_CLOCK/10)) + TIMER(config, "600hz").configure_periodic(FUNC(pc100_state::pc100_600hz_irq), attotime::from_hz(MASTER_CLOCK/600)); + TIMER(config, "100hz").configure_periodic(FUNC(pc100_state::pc100_100hz_irq), attotime::from_hz(MASTER_CLOCK/100)); + TIMER(config, "50hz").configure_periodic(FUNC(pc100_state::pc100_50hz_irq), attotime::from_hz(MASTER_CLOCK/50)); + TIMER(config, "10hz").configure_periodic(FUNC(pc100_state::pc100_10hz_irq), attotime::from_hz(MASTER_CLOCK/10)); i8255_device &ppi1(I8255(config, "ppi8255_1")); ppi1.out_pa_callback().set(FUNC(pc100_state::rtc_porta_w)); diff --git a/src/mame/drivers/pc6001.cpp b/src/mame/drivers/pc6001.cpp index 47d35daf5cf..343c78dd63a 100644 --- a/src/mame/drivers/pc6001.cpp +++ b/src/mame/drivers/pc6001.cpp @@ -1528,8 +1528,8 @@ MACHINE_CONFIG_START(pc6001_state::pc6001) // WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25); /* TODO: accurate timing on this */ - MCFG_TIMER_DRIVER_ADD_PERIODIC("keyboard_timer", pc6001_state, keyboard_callback, attotime::from_hz(250)) - MCFG_TIMER_DRIVER_ADD_PERIODIC("cassette_timer", pc6001_state, cassette_callback, attotime::from_hz(1200/12)) + TIMER(config, "keyboard_timer").configure_periodic(FUNC(pc6001_state::keyboard_callback), attotime::from_hz(250)); + TIMER(config, "cassette_timer").configure_periodic(FUNC(pc6001_state::cassette_callback), attotime::from_hz(1200/12)); MACHINE_CONFIG_END diff --git a/src/mame/drivers/pc8401a.cpp b/src/mame/drivers/pc8401a.cpp index aa97d5b96c9..860a4677947 100644 --- a/src/mame/drivers/pc8401a.cpp +++ b/src/mame/drivers/pc8401a.cpp @@ -577,7 +577,7 @@ MACHINE_CONFIG_START(pc8401a_state::pc8401a) MCFG_DEVICE_IO_MAP(pc8401a_io) /* fake keyboard */ - MCFG_TIMER_DRIVER_ADD_PERIODIC("keyboard", pc8401a_state, pc8401a_keyboard_tick, attotime::from_hz(64)) + TIMER(config, "keyboard").configure_periodic(FUNC(pc8401a_state::pc8401a_keyboard_tick), attotime::from_hz(64)); /* devices */ UPD1990A(config, m_rtc); @@ -617,7 +617,7 @@ MACHINE_CONFIG_START(pc8500_state::pc8500) MCFG_DEVICE_IO_MAP(pc8500_io) /* fake keyboard */ - MCFG_TIMER_DRIVER_ADD_PERIODIC("keyboard", pc8401a_state, pc8401a_keyboard_tick, attotime::from_hz(64)) + TIMER(config, "keyboard").configure_periodic(FUNC(pc8401a_state::pc8401a_keyboard_tick), attotime::from_hz(64)); /* devices */ UPD1990A(config, m_rtc); diff --git a/src/mame/drivers/pc8801.cpp b/src/mame/drivers/pc8801.cpp index 874ffa4b93d..c2b228dfc45 100644 --- a/src/mame/drivers/pc8801.cpp +++ b/src/mame/drivers/pc8801.cpp @@ -2417,7 +2417,7 @@ MACHINE_CONFIG_START(pc8801_state::pc8801) MCFG_DEVICE_ADD("beeper", BEEP, 2400) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10) - MCFG_TIMER_DRIVER_ADD_PERIODIC("rtc_timer", pc8801_state, pc8801_rtc_irq, attotime::from_hz(600)) + TIMER(config, "rtc_timer").configure_periodic(FUNC(pc8801_state::pc8801_rtc_irq), attotime::from_hz(600)); MACHINE_CONFIG_END MACHINE_CONFIG_START(pc8801_state::pc8801fh) diff --git a/src/mame/drivers/pce220.cpp b/src/mame/drivers/pce220.cpp index fbc1dee727b..7e4bba2462a 100644 --- a/src/mame/drivers/pce220.cpp +++ b/src/mame/drivers/pce220.cpp @@ -966,7 +966,7 @@ MACHINE_CONFIG_START(pce220_state::pce220) SPEAKER(config, "mono").front_center(); BEEP(config, m_beep, 3250).add_route(ALL_OUTPUTS, "mono", 0.50); - MCFG_TIMER_DRIVER_ADD_PERIODIC("pce220_timer", pce220_state, pce220_timer_callback, attotime::from_msec(468)) + TIMER(config, "pce220_timer").configure_periodic(FUNC(pce220_state::pce220_timer_callback), attotime::from_msec(468)); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); @@ -998,7 +998,7 @@ MACHINE_CONFIG_START(pcg850v_state::pcg815) SPEAKER(config, "mono").front_center(); BEEP(config, m_beep, 3250).add_route(ALL_OUTPUTS, "mono", 0.50); - MCFG_TIMER_DRIVER_ADD_PERIODIC("pce220_timer", pcg850v_state, pce220_timer_callback, attotime::from_msec(468)) + TIMER(config, "pce220_timer").configure_periodic(FUNC(pcg850v_state::pce220_timer_callback), attotime::from_msec(468)); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); @@ -1030,7 +1030,7 @@ MACHINE_CONFIG_START(pcg850v_state::pcg850v) SPEAKER(config, "mono").front_center(); BEEP(config, m_beep, 3250).add_route(ALL_OUTPUTS, "mono", 0.50); - MCFG_TIMER_DRIVER_ADD_PERIODIC("pce220_timer", pcg850v_state, pce220_timer_callback, attotime::from_msec(468)) + TIMER(config, "pce220_timer").configure_periodic(FUNC(pcg850v_state::pce220_timer_callback), attotime::from_msec(468)); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); diff --git a/src/mame/drivers/pcw16.cpp b/src/mame/drivers/pcw16.cpp index c527eb293d7..4be85dacdf2 100644 --- a/src/mame/drivers/pcw16.cpp +++ b/src/mame/drivers/pcw16.cpp @@ -1077,9 +1077,9 @@ MACHINE_CONFIG_START(pcw16_state::pcw16) MCFG_AT_KEYB_ADD("at_keyboard", 3, WRITELINE(*this, pcw16_state, pcw16_keyboard_callback)) /* video ints */ - MCFG_TIMER_DRIVER_ADD_PERIODIC("video_timer", pcw16_state, pcw16_timer_callback, attotime::from_usec(5830)) + TIMER(config, "video_timer").configure_periodic(FUNC(pcw16_state::pcw16_timer_callback), attotime::from_usec(5830)); /* rtc timer */ - MCFG_TIMER_DRIVER_ADD_PERIODIC("rtc_timer", pcw16_state, rtc_timer_callback, attotime::from_hz(256)) + TIMER(config, "rtc_timer").configure_periodic(FUNC(pcw16_state::rtc_timer_callback), attotime::from_hz(256)); MACHINE_CONFIG_END /*************************************************************************** diff --git a/src/mame/drivers/pegasus.cpp b/src/mame/drivers/pegasus.cpp index 74bce94db65..1ab5f7726a7 100644 --- a/src/mame/drivers/pegasus.cpp +++ b/src/mame/drivers/pegasus.cpp @@ -493,7 +493,7 @@ MACHINE_CONFIG_START(pegasus_state::pegasus) MCFG_DEVICE_ADD("maincpu", MC6809, XTAL(4'000'000)) // actually a 6809C - 4MHZ clock coming in, 1MHZ internally MCFG_DEVICE_PROGRAM_MAP(pegasus_mem) - MCFG_TIMER_DRIVER_ADD_PERIODIC("pegasus_firq", pegasus_state, pegasus_firq, attotime::from_hz(400)) + TIMER(config, "pegasus_firq").configure_periodic(FUNC(pegasus_state::pegasus_firq), attotime::from_hz(400)); /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/photon2.cpp b/src/mame/drivers/photon2.cpp index 2ca17daaecf..8ee9d4094ba 100644 --- a/src/mame/drivers/photon2.cpp +++ b/src/mame/drivers/photon2.cpp @@ -363,7 +363,7 @@ MACHINE_CONFIG_START(photon2_state::photon2) MCFG_DEVICE_ADD("maincpu", Z80, 3500000) /* 3.5 MHz */ MCFG_DEVICE_PROGRAM_MAP(spectrum_mem) MCFG_DEVICE_IO_MAP(spectrum_io) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", photon2_state, spec_interrupt_hack, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(photon2_state::spec_interrupt_hack), "screen", 0, 1); /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/pingpong.cpp b/src/mame/drivers/pingpong.cpp index 9f03d6454fb..dc96c3bb143 100644 --- a/src/mame/drivers/pingpong.cpp +++ b/src/mame/drivers/pingpong.cpp @@ -453,7 +453,7 @@ MACHINE_CONFIG_START(pingpong_state::pingpong) /* basic machine hardware */ MCFG_DEVICE_ADD("maincpu",Z80,18432000/6) /* 3.072 MHz (probably) */ MCFG_DEVICE_PROGRAM_MAP(pingpong_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", pingpong_state, pingpong_interrupt, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(pingpong_state::pingpong_interrupt), "screen", 0, 1); WATCHDOG_TIMER(config, "watchdog"); /* video hardware */ @@ -480,8 +480,7 @@ MACHINE_CONFIG_START(pingpong_state::merlinmm) pingpong(config); MCFG_DEVICE_MODIFY("maincpu") MCFG_DEVICE_PROGRAM_MAP(merlinmm_map) - MCFG_TIMER_MODIFY("scantimer") - MCFG_TIMER_DRIVER_CALLBACK(pingpong_state, merlinmm_interrupt) + subdevice("scantimer")->set_callback(FUNC(pingpong_state::merlinmm_interrupt)); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); MACHINE_CONFIG_END diff --git a/src/mame/drivers/playmark.cpp b/src/mame/drivers/playmark.cpp index 818ab320eff..fa581a0627b 100644 --- a/src/mame/drivers/playmark.cpp +++ b/src/mame/drivers/playmark.cpp @@ -1273,8 +1273,8 @@ MACHINE_CONFIG_START(playmark_state::hotmind) MCFG_VIDEO_START_OVERRIDE(playmark_state,hotmind) - MCFG_TICKET_DISPENSER_ADD("ticket", attotime::from_msec(350), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_HIGH ) - MCFG_TICKET_DISPENSER_ADD("token", attotime::from_msec(350), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_HIGH ) + TICKET_DISPENSER(config, m_ticket, attotime::from_msec(350), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_HIGH); + TICKET_DISPENSER(config, m_token, attotime::from_msec(350), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_HIGH); /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -1317,8 +1317,8 @@ MACHINE_CONFIG_START(playmark_state::luckboomh) MCFG_VIDEO_START_OVERRIDE(playmark_state,luckboomh) - MCFG_TICKET_DISPENSER_ADD("ticket", attotime::from_msec(350), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_HIGH ) - MCFG_TICKET_DISPENSER_ADD("token", attotime::from_msec(350), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_HIGH ) + TICKET_DISPENSER(config, m_ticket, attotime::from_msec(350), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_HIGH); + TICKET_DISPENSER(config, m_token, attotime::from_msec(350), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_HIGH); /* sound hardware */ SPEAKER(config, "mono").front_center(); diff --git a/src/mame/drivers/pofo.cpp b/src/mame/drivers/pofo.cpp index 55c0a21f919..e561916fbec 100644 --- a/src/mame/drivers/pofo.cpp +++ b/src/mame/drivers/pofo.cpp @@ -1051,11 +1051,11 @@ MACHINE_CONFIG_START(portfolio_state::portfolio) MCFG_PORTFOLIO_EXPANSION_SLOT_NMIO_CALLBACK(INPUTLINE(M80C88A_TAG, INPUT_LINE_NMI)) MCFG_PORTFOLIO_EXPANSION_SLOT_WAKE_CALLBACK(WRITELINE(*this, portfolio_state, wake_w)) - MCFG_TIMER_DRIVER_ADD_PERIODIC("counter", portfolio_state, counter_tick, attotime::from_hz(XTAL(32'768)/16384)) - MCFG_TIMER_DRIVER_ADD_PERIODIC(TIMER_TICK_TAG, portfolio_state, system_tick, attotime::from_hz(XTAL(32'768)/32768)) + TIMER(config, "counter").configure_periodic(FUNC(portfolio_state::counter_tick), attotime::from_hz(XTAL(32'768)/16384)); + TIMER(config, TIMER_TICK_TAG).configure_periodic(FUNC(portfolio_state::system_tick), attotime::from_hz(XTAL(32'768)/32768)); // fake keyboard - MCFG_TIMER_DRIVER_ADD_PERIODIC("keyboard", portfolio_state, keyboard_tick, attotime::from_usec(2500)) + TIMER(config, "keyboard").configure_periodic(FUNC(portfolio_state::keyboard_tick), attotime::from_usec(2500)); // software list MCFG_SOFTWARE_LIST_ADD("cart_list", "pofo") diff --git a/src/mame/drivers/popobear.cpp b/src/mame/drivers/popobear.cpp index a9f1823e99c..52f28ccca92 100644 --- a/src/mame/drivers/popobear.cpp +++ b/src/mame/drivers/popobear.cpp @@ -648,7 +648,7 @@ MACHINE_CONFIG_START(popobear_state::popobear) // levels 2,3,5 look interesting //MCFG_DEVICE_VBLANK_INT_DRIVER("screen", popobear_state, irq5_line_assert) //MCFG_DEVICE_PERIODIC_INT_DRIVER(popobear_state, irq2_line_assert, 120) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", popobear_state, irq, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(popobear_state::irq), "screen", 0, 1); MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) diff --git a/src/mame/drivers/prestige.cpp b/src/mame/drivers/prestige.cpp index fbc565d4fd6..ebea2c78cce 100644 --- a/src/mame/drivers/prestige.cpp +++ b/src/mame/drivers/prestige.cpp @@ -750,7 +750,7 @@ MACHINE_CONFIG_START(prestige_state::prestige_base) MCFG_DEVICE_IO_MAP(prestige_io) MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(prestige_state,prestige_int_ack) - MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_timer", prestige_state, irq_timer, attotime::from_hz(200)) + TIMER(config, "irq_timer").configure_periodic(FUNC(prestige_state::irq_timer), attotime::from_hz(200)); /* video hardware */ MCFG_SCREEN_ADD("screen", LCD) diff --git a/src/mame/drivers/pro80.cpp b/src/mame/drivers/pro80.cpp index 67643c7a06a..857593676d8 100644 --- a/src/mame/drivers/pro80.cpp +++ b/src/mame/drivers/pro80.cpp @@ -191,7 +191,7 @@ MACHINE_CONFIG_START(pro80_state::pro80) /* Devices */ MCFG_CASSETTE_ADD( "cassette" ) Z80PIO(config, "pio", XTAL(4'000'000) / 2); - MCFG_TIMER_DRIVER_ADD_PERIODIC("timer_p", pro80_state, timer_p, attotime::from_hz(40000)) // cass read + TIMER(config, "timer_p").configure_periodic(FUNC(pro80_state::timer_p), attotime::from_hz(40000)); // cass read MACHINE_CONFIG_END /* ROM definition */ diff --git a/src/mame/drivers/proteus3.cpp b/src/mame/drivers/proteus3.cpp index f6d8a4bb0af..aac578e8a34 100644 --- a/src/mame/drivers/proteus3.cpp +++ b/src/mame/drivers/proteus3.cpp @@ -413,8 +413,8 @@ MACHINE_CONFIG_START(proteus3_state::proteus3) MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_PLAY | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED) SPEAKER(config, "mono").front_center(); WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25); - MCFG_TIMER_DRIVER_ADD_PERIODIC("timer_c", proteus3_state, timer_c, attotime::from_hz(4800)) - MCFG_TIMER_DRIVER_ADD_PERIODIC("timer_p", proteus3_state, timer_p, attotime::from_hz(40000)) + TIMER(config, "timer_c").configure_periodic(FUNC(proteus3_state::timer_c), attotime::from_hz(4800)); + TIMER(config, "timer_p").configure_periodic(FUNC(proteus3_state::timer_p), attotime::from_hz(40000)); // optional tty keyboard ACIA6850(config, m_acia2, 0); diff --git a/src/mame/drivers/psion.cpp b/src/mame/drivers/psion.cpp index 09119c03684..84da42b4ae5 100644 --- a/src/mame/drivers/psion.cpp +++ b/src/mame/drivers/psion.cpp @@ -595,7 +595,7 @@ MACHINE_CONFIG_START(psion_state::psion_2lines) NVRAM(config, "nvram1").set_custom_handler(FUNC(psion_state::nvram_init)); // sys_regs NVRAM(config, "nvram2", nvram_device::DEFAULT_ALL_0); // RAM - MCFG_TIMER_DRIVER_ADD_PERIODIC("nmi_timer", psion_state, nmi_timer, attotime::from_seconds(1)) + TIMER(config, "nmi_timer").configure_periodic(FUNC(psion_state::nmi_timer), attotime::from_seconds(1)); /* Datapack */ PSION_DATAPACK(config, m_pack1, 0); @@ -622,8 +622,7 @@ MACHINE_CONFIG_START(psion1_state::psion1) MCFG_DEVICE_MODIFY("maincpu") MCFG_DEVICE_PROGRAM_MAP(psion1_mem) - MCFG_DEVICE_MODIFY("nmi_timer") - MCFG_TIMER_START_DELAY(attotime::from_seconds(1)) + subdevice("nmi_timer")->set_start_delay(attotime::from_seconds(1)); MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_SIZE(6*16, 1*8) diff --git a/src/mame/drivers/px4.cpp b/src/mame/drivers/px4.cpp index e3df0086904..f5ff8450691 100644 --- a/src/mame/drivers/px4.cpp +++ b/src/mame/drivers/px4.cpp @@ -1507,8 +1507,8 @@ MACHINE_CONFIG_START(px4_state::px4) SPEAKER(config, "mono").front_center(); SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 1.0); - MCFG_TIMER_DRIVER_ADD_PERIODIC("one_sec", px4_state, upd7508_1sec_callback, attotime::from_seconds(1)) - MCFG_TIMER_DRIVER_ADD_PERIODIC("frc", px4_state, frc_tick, attotime::from_hz(XTAL(7'372'800) / 2 / 6)) + TIMER(config, "one_sec").configure_periodic(FUNC(px4_state::upd7508_1sec_callback), attotime::from_seconds(1)); + TIMER(config, "frc").configure_periodic(FUNC(px4_state::frc_tick), attotime::from_hz(XTAL(7'372'800) / 2 / 6)); // internal ram RAM(config, RAM_TAG).set_default_size("64K"); @@ -1525,7 +1525,7 @@ MACHINE_CONFIG_START(px4_state::px4) MCFG_CASSETTE_ADD("extcas") MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_PLAY | CASSETTE_SPEAKER_ENABLED | CASSETTE_MOTOR_DISABLED) - MCFG_TIMER_DRIVER_ADD("extcas_timer", px4_state, ext_cassette_read) + TIMER(config, m_ext_cas_timer).configure_generic(FUNC(px4_state::ext_cassette_read)); // sio port MCFG_EPSON_SIO_ADD("sio", nullptr) diff --git a/src/mame/drivers/rad_eu3a14.cpp b/src/mame/drivers/rad_eu3a14.cpp index 25d0c4af2ae..8a2903f78fe 100644 --- a/src/mame/drivers/rad_eu3a14.cpp +++ b/src/mame/drivers/rad_eu3a14.cpp @@ -1291,7 +1291,7 @@ MACHINE_CONFIG_END MACHINE_CONFIG_START(radica_eu3a14_state::radica_eu3a14_adc) radica_eu3a14(config); - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", radica_eu3a14_state, scanline_cb, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(radica_eu3a14_state::scanline_cb), "screen", 0, 1); MACHINE_CONFIG_END diff --git a/src/mame/drivers/rainbow.cpp b/src/mame/drivers/rainbow.cpp index 440f474545b..3e7a65e0496 100644 --- a/src/mame/drivers/rainbow.cpp +++ b/src/mame/drivers/rainbow.cpp @@ -3335,7 +3335,7 @@ MACHINE_CONFIG_START(rainbow_state::rainbow) prtbrg.set_stages(8); prtbrg.count_out_cb().set(FUNC(rainbow_state::bitrate_counter_w)); - MCFG_TIMER_DRIVER_ADD_PERIODIC("motor", rainbow_state, hd_motor_tick, attotime::from_hz(60)) + TIMER(config, "motor").configure_periodic(FUNC(rainbow_state::hd_motor_tick), attotime::from_hz(60)); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); MACHINE_CONFIG_END diff --git a/src/mame/drivers/rbisland.cpp b/src/mame/drivers/rbisland.cpp index 38a9e8f2cc8..fa77624b239 100644 --- a/src/mame/drivers/rbisland.cpp +++ b/src/mame/drivers/rbisland.cpp @@ -670,7 +670,7 @@ MACHINE_CONFIG_START(rbisland_state::rbisland) m_cchip->in_ad_callback().set_ioport("80000D"); m_cchip->out_pb_callback().set(FUNC(rbisland_state::counters_w)); - MCFG_TIMER_DRIVER_ADD("cchip_irq_clear", rbisland_state, cchip_irq_clear_cb) + TIMER(config, m_cchip_irq_clear).configure_generic(FUNC(rbisland_state::cchip_irq_clear_cb)); MCFG_QUANTUM_TIME(attotime::from_hz(600)) /* 10 CPU slices per frame - enough for the sound CPU to read all commands */ diff --git a/src/mame/drivers/rd110.cpp b/src/mame/drivers/rd110.cpp index b31568faed3..a51994b7ef5 100644 --- a/src/mame/drivers/rd110.cpp +++ b/src/mame/drivers/rd110.cpp @@ -259,9 +259,9 @@ MACHINE_CONFIG_START(d110_state::d110) MSM6222B_01(config, m_lcd, 0); - MCFG_TIMER_DRIVER_ADD( m_midi_timer, d110_state, midi_timer_cb ) + TIMER(config, m_midi_timer).configure_generic(FUNC(d110_state::midi_timer_cb)); - MCFG_TIMER_DRIVER_ADD_PERIODIC( "samples_timer", d110_state, samples_timer_cb, attotime::from_hz(32000*2) ) + TIMER(config, "samples_timer").configure_periodic(FUNC(d110_state::samples_timer_cb), attotime::from_hz(32000*2) ); MACHINE_CONFIG_END ROM_START( d110 ) diff --git a/src/mame/drivers/rex6000.cpp b/src/mame/drivers/rex6000.cpp index 43c3a8b6209..5b4b64c9597 100644 --- a/src/mame/drivers/rex6000.cpp +++ b/src/mame/drivers/rex6000.cpp @@ -901,9 +901,9 @@ MACHINE_CONFIG_START(rex6000_state::rex6000) MCFG_DEVICE_PROGRAM_MAP(rex6000_mem) MCFG_DEVICE_IO_MAP(rex6000_io) - MCFG_TIMER_DRIVER_ADD_PERIODIC("sec_timer", rex6000_state, sec_timer, attotime::from_hz(1)) - MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_timer1", rex6000_state, irq_timer1, attotime::from_hz(32)) - MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_timer2", rex6000_state, irq_timer2, attotime::from_hz(4096)) + TIMER(config, "sec_timer").configure_periodic(FUNC(rex6000_state::sec_timer), attotime::from_hz(1)); + TIMER(config, "irq_timer1").configure_periodic(FUNC(rex6000_state::irq_timer1), attotime::from_hz(32)); + TIMER(config, "irq_timer2").configure_periodic(FUNC(rex6000_state::irq_timer2), attotime::from_hz(4096)); /* video hardware */ MCFG_SCREEN_ADD("screen", LCD) @@ -966,9 +966,9 @@ MACHINE_CONFIG_START(oz750_state::oz750) MCFG_DEVICE_PROGRAM_MAP(rex6000_mem) MCFG_DEVICE_IO_MAP(oz750_io) - MCFG_TIMER_DRIVER_ADD_PERIODIC("sec_timer", rex6000_state, sec_timer, attotime::from_hz(1)) - MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_timer1", rex6000_state, irq_timer1, attotime::from_hz(64)) - MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_timer2", rex6000_state, irq_timer2, attotime::from_hz(8192)) + TIMER(config, "sec_timer").configure_periodic(FUNC(rex6000_state::sec_timer), attotime::from_hz(1)); + TIMER(config, "irq_timer1").configure_periodic(FUNC(rex6000_state::irq_timer1), attotime::from_hz(64)); + TIMER(config, "irq_timer2").configure_periodic(FUNC(rex6000_state::irq_timer2), attotime::from_hz(8192)); NS16550(config, m_uart, XTAL(9'830'400) / 4); m_uart->out_tx_callback().set("serport", FUNC(rs232_port_device::write_txd)); diff --git a/src/mame/drivers/rmt32.cpp b/src/mame/drivers/rmt32.cpp index c7ffd6c2224..f325012954e 100644 --- a/src/mame/drivers/rmt32.cpp +++ b/src/mame/drivers/rmt32.cpp @@ -370,9 +370,9 @@ MACHINE_CONFIG_START(mt32_state::mt32) SED1200D0A(config, lcd, 0); - MCFG_TIMER_DRIVER_ADD( "midi_timer", mt32_state, midi_timer_cb ) + TIMER(config, midi_timer).configure_generic(FUNC(mt32_state::midi_timer_cb)); - MCFG_TIMER_DRIVER_ADD_PERIODIC( "samples_timer", mt32_state, samples_timer_cb, attotime::from_hz(32000*2) ) + TIMER(config, "samples_timer").configure_periodic(FUNC(mt32_state::samples_timer_cb), attotime::from_hz(32000*2)); MACHINE_CONFIG_END ROM_START( mt32 ) diff --git a/src/mame/drivers/rowamet.cpp b/src/mame/drivers/rowamet.cpp index 19b6f39b9af..ffabaf12ac0 100644 --- a/src/mame/drivers/rowamet.cpp +++ b/src/mame/drivers/rowamet.cpp @@ -229,7 +229,7 @@ MACHINE_CONFIG_START(rowamet_state::rowamet) MCFG_DEVICE_ADD("cpu2", Z80, 1888888) MCFG_DEVICE_PROGRAM_MAP(rowamet_sub_map) MCFG_DEVICE_IO_MAP(rowamet_sub_io) - MCFG_TIMER_DRIVER_ADD_PERIODIC("timer_a", rowamet_state, timer_a, attotime::from_hz(200)) + TIMER(config, "timer_a").configure_periodic(FUNC(rowamet_state::timer_a), attotime::from_hz(200)); /* Video */ config.set_default_layout(layout_rowamet); diff --git a/src/mame/drivers/rulechan.cpp b/src/mame/drivers/rulechan.cpp index c421cf10508..08b2ed382e6 100644 --- a/src/mame/drivers/rulechan.cpp +++ b/src/mame/drivers/rulechan.cpp @@ -727,8 +727,8 @@ INPUT_PORTS_END * Machine Driver * **************************************/ -MACHINE_CONFIG_START(rulechan_state::rulechan) - +void rulechan_state::rulechan(machine_config &config) +{ /* basic machine hardware */ Z80(config, m_maincpu, CPU_CLOCK); m_maincpu->set_addrmap(AS_PROGRAM, &rulechan_state::main_map); @@ -741,8 +741,8 @@ MACHINE_CONFIG_START(rulechan_state::rulechan) /* eeprom */ EEPROM_93C46_8BIT(config, "eeprom"); - MCFG_TIMER_DRIVER_ADD_PERIODIC("ball_speed", rulechan_state, ball_speed, attotime::from_hz(60)) - MCFG_TIMER_DRIVER_ADD_PERIODIC("wheel_speed", rulechan_state, wheel_speed, attotime::from_hz(60)) + TIMER(config, "ball_speed").configure_periodic(FUNC(rulechan_state::ball_speed), attotime::from_hz(60)); + TIMER(config, "wheel_speed").configure_periodic(FUNC(rulechan_state::wheel_speed), attotime::from_hz(60)); /* video hardware */ v9938_device &v9938(V9938(config, "v9938", VID_CLOCK)); @@ -757,8 +757,7 @@ MACHINE_CONFIG_START(rulechan_state::rulechan) ay_re900.port_a_read_callback().set(FUNC(rulechan_state::psg_portA_r)); ay_re900.port_b_read_callback().set(FUNC(rulechan_state::psg_portB_r)); ay_re900.add_route(ALL_OUTPUTS, "mono", 0.5); - -MACHINE_CONFIG_END +} /************************************** diff --git a/src/mame/drivers/rzone.cpp b/src/mame/drivers/rzone.cpp index 32142bbd63a..9af532c90b2 100644 --- a/src/mame/drivers/rzone.cpp +++ b/src/mame/drivers/rzone.cpp @@ -257,8 +257,8 @@ MACHINE_CONFIG_START(rzone_state::rzbatfor) MCFG_SCREEN_SIZE(1368, 1080) MCFG_SCREEN_VISIBLE_AREA(0, 1368-1, 0, 1080-1) - MCFG_TIMER_DRIVER_ADD("led_off", rzone_state, led_off_callback) - MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_sm510_state, display_decay_tick, attotime::from_msec(1)) + TIMER(config, m_led_off).configure_generic(FUNC(rzone_state::led_off_callback)); + TIMER(config, "display_decay").configure_periodic(FUNC(hh_sm510_state::display_decay_tick), attotime::from_msec(1)); config.set_default_layout(layout_rzone); /* sound hardware */ @@ -283,8 +283,8 @@ MACHINE_CONFIG_START(rzone_state::rztoshden) MCFG_SCREEN_SIZE(1392, 1080) MCFG_SCREEN_VISIBLE_AREA(0, 1392-1, 0, 1080-1) - MCFG_TIMER_DRIVER_ADD("led_off", rzone_state, led_off_callback) - MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_sm510_state, display_decay_tick, attotime::from_msec(1)) + TIMER(config, m_led_off).configure_generic(FUNC(rzone_state::led_off_callback)); + TIMER(config, "display_decay").configure_periodic(FUNC(hh_sm510_state::display_decay_tick), attotime::from_msec(1)); config.set_default_layout(layout_rzone); /* sound hardware */ @@ -309,8 +309,8 @@ MACHINE_CONFIG_START(rzone_state::rzindy500) MCFG_SCREEN_SIZE(1425, 1080) MCFG_SCREEN_VISIBLE_AREA(0, 1425-1, 0, 1080-1) - MCFG_TIMER_DRIVER_ADD("led_off", rzone_state, led_off_callback) - MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_sm510_state, display_decay_tick, attotime::from_msec(1)) + TIMER(config, m_led_off).configure_generic(FUNC(rzone_state::led_off_callback)); + TIMER(config, "display_decay").configure_periodic(FUNC(hh_sm510_state::display_decay_tick), attotime::from_msec(1)); config.set_default_layout(layout_rzone); /* sound hardware */ diff --git a/src/mame/drivers/s3.cpp b/src/mame/drivers/s3.cpp index 3c0b7261150..f3bf86966f1 100644 --- a/src/mame/drivers/s3.cpp +++ b/src/mame/drivers/s3.cpp @@ -440,7 +440,7 @@ MACHINE_CONFIG_START(s3_state::s3) /* basic machine hardware */ MCFG_DEVICE_ADD("maincpu", M6800, 3580000) MCFG_DEVICE_PROGRAM_MAP(s3_main_map) - MCFG_TIMER_DRIVER_ADD_PERIODIC("irq", s3_state, irq, attotime::from_hz(250)) + TIMER(config, "irq").configure_periodic(FUNC(s3_state::irq), attotime::from_hz(250)); MCFG_MACHINE_RESET_OVERRIDE(s3_state, s3) /* Video */ diff --git a/src/mame/drivers/s4.cpp b/src/mame/drivers/s4.cpp index d20a91c419c..ba1f296c4c9 100644 --- a/src/mame/drivers/s4.cpp +++ b/src/mame/drivers/s4.cpp @@ -434,7 +434,7 @@ MACHINE_CONFIG_START(s4_state::s4) /* basic machine hardware */ MCFG_DEVICE_ADD("maincpu", M6800, 3580000) MCFG_DEVICE_PROGRAM_MAP(s4_main_map) - MCFG_TIMER_DRIVER_ADD_PERIODIC("irq", s4_state, irq, attotime::from_hz(250)) + TIMER(config, "irq").configure_periodic(FUNC(s4_state::irq), attotime::from_hz(250)); MCFG_MACHINE_RESET_OVERRIDE(s4_state, s4) /* Video */ diff --git a/src/mame/drivers/sbowling.cpp b/src/mame/drivers/sbowling.cpp index cbdb28da395..8ae7deaa9b5 100644 --- a/src/mame/drivers/sbowling.cpp +++ b/src/mame/drivers/sbowling.cpp @@ -416,7 +416,7 @@ MACHINE_CONFIG_START(sbowling_state::sbowling) MCFG_DEVICE_ADD("maincpu", I8080, XTAL(19'968'000)/10) /* ? */ MCFG_DEVICE_PROGRAM_MAP(main_map) MCFG_DEVICE_IO_MAP(port_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", sbowling_state, interrupt, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(sbowling_state::interrupt), "screen", 0, 1); WATCHDOG_TIMER(config, "watchdog"); diff --git a/src/mame/drivers/scobra.cpp b/src/mame/drivers/scobra.cpp index 3dc34b18c06..8ae0988fa1c 100644 --- a/src/mame/drivers/scobra.cpp +++ b/src/mame/drivers/scobra.cpp @@ -897,7 +897,7 @@ MACHINE_CONFIG_START(scobra_state::type1) ttl7474_device &ttl7474_9m_2(TTL7474(config, "7474_9m_2", 0)); ttl7474_9m_2.comp_output_cb().set(FUNC(scobra_state::galaxold_7474_9m_2_q_callback)); - MCFG_TIMER_DRIVER_ADD("int_timer", scobra_state, galaxold_interrupt_timer) + TIMER(config, "int_timer").configure_generic(FUNC(scobra_state::galaxold_interrupt_timer)); WATCHDOG_TIMER(config, "watchdog"); @@ -1058,7 +1058,7 @@ MACHINE_CONFIG_START(scobra_state::hustler) ttl7474_device &ttl7474_9m_2(TTL7474(config, "7474_9m_2", 0)); ttl7474_9m_2.comp_output_cb().set(FUNC(scobra_state::galaxold_7474_9m_2_q_callback)); - MCFG_TIMER_DRIVER_ADD("int_timer", scobra_state, galaxold_interrupt_timer) + TIMER(config, "int_timer").configure_generic(FUNC(scobra_state::galaxold_interrupt_timer)); WATCHDOG_TIMER(config, "watchdog"); diff --git a/src/mame/drivers/scorpion.cpp b/src/mame/drivers/scorpion.cpp index 4aab54a3b56..b8b054b01c8 100644 --- a/src/mame/drivers/scorpion.cpp +++ b/src/mame/drivers/scorpion.cpp @@ -309,7 +309,7 @@ MACHINE_CONFIG_START(scorpion_state::scorpion) /* internal ram */ m_ram->set_default_size("256K"); - MCFG_TIMER_DRIVER_ADD_PERIODIC("nmi_timer", scorpion_state, nmi_check_callback, attotime::from_hz(50)) + TIMER(config, "nmi_timer").configure_periodic(FUNC(scorpion_state::nmi_check_callback), attotime::from_hz(50)); config.device_remove("exp"); MACHINE_CONFIG_END diff --git a/src/mame/drivers/scramble.cpp b/src/mame/drivers/scramble.cpp index de587f7de68..7ff3f630e95 100644 --- a/src/mame/drivers/scramble.cpp +++ b/src/mame/drivers/scramble.cpp @@ -1322,7 +1322,7 @@ MACHINE_CONFIG_START(scramble_state::scramble) ttl7474_device &konami_7474(TTL7474(config, "konami_7474", 0)); konami_7474.comp_output_cb().set(FUNC(scramble_state::scramble_sh_7474_q_callback)); - MCFG_TIMER_DRIVER_ADD("int_timer", scramble_state, galaxold_interrupt_timer) + TIMER(config, "int_timer").configure_generic(FUNC(scramble_state::galaxold_interrupt_timer)); WATCHDOG_TIMER(config, "watchdog"); @@ -1578,7 +1578,7 @@ MACHINE_CONFIG_START(scramble_state::ad2083) ttl7474_device &konami_7474(TTL7474(config, "konami_7474", 0)); konami_7474.comp_output_cb().set(FUNC(scramble_state::scramble_sh_7474_q_callback)); - MCFG_TIMER_DRIVER_ADD("int_timer", scramble_state, galaxold_interrupt_timer) + TIMER(config, "int_timer").configure_generic(FUNC(scramble_state::galaxold_interrupt_timer)); WATCHDOG_TIMER(config, "watchdog"); diff --git a/src/mame/drivers/scregg.cpp b/src/mame/drivers/scregg.cpp index b7a536a629e..2786d4e2d77 100644 --- a/src/mame/drivers/scregg.cpp +++ b/src/mame/drivers/scregg.cpp @@ -274,7 +274,7 @@ MACHINE_CONFIG_START(scregg_state::dommy) /* basic machine hardware */ MCFG_DEVICE_ADD("maincpu", M6502, XTAL(12'000'000)/8) MCFG_DEVICE_PROGRAM_MAP(dommy_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("irq", scregg_state, scregg_interrupt, "screen", 0, 8) + TIMER(config, "irq").configure_scanline(FUNC(scregg_state::scregg_interrupt), "screen", 0, 8); MCFG_MACHINE_START_OVERRIDE(scregg_state,scregg) MCFG_MACHINE_RESET_OVERRIDE(scregg_state,scregg) @@ -302,7 +302,7 @@ MACHINE_CONFIG_START(scregg_state::scregg) /* basic machine hardware */ MCFG_DEVICE_ADD("maincpu", M6502, XTAL(12'000'000)/8) MCFG_DEVICE_PROGRAM_MAP(eggs_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("irq", scregg_state, scregg_interrupt, "screen", 0, 8) + TIMER(config, "irq").configure_scanline(FUNC(scregg_state::scregg_interrupt), "screen", 0, 8); MCFG_MACHINE_START_OVERRIDE(scregg_state,scregg) MCFG_MACHINE_RESET_OVERRIDE(scregg_state,scregg) diff --git a/src/mame/drivers/seta2.cpp b/src/mame/drivers/seta2.cpp index f72664fd60d..b624190a8b8 100644 --- a/src/mame/drivers/seta2.cpp +++ b/src/mame/drivers/seta2.cpp @@ -2430,7 +2430,7 @@ MACHINE_CONFIG_START(seta2_state::reelquak) m_tmp68301->out_parallel_callback().set(FUNC(seta2_state::reelquak_leds_w)); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); - MCFG_TICKET_DISPENSER_ADD("dispenser", attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW) + TICKET_DISPENSER(config, m_dispenser, attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW); MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_VISIBLE_AREA(0x00, 0x140-1, 0x000, 0x0f0-1) @@ -2479,7 +2479,7 @@ MACHINE_CONFIG_START(seta2_state::telpacfl) EEPROM_93C46_16BIT(config, "eeprom"); // not hooked up, seems unused NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); - MCFG_HOPPER_ADD("dispenser", attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW) + HOPPER(config, m_dispenser, attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW); // video hardware MCFG_SCREEN_MODIFY("screen") @@ -2519,7 +2519,7 @@ MACHINE_CONFIG_START(funcube_state::funcube) MCFG_DEVICE_ADD("maincpu", MCF5206E, XTAL(25'447'000)) MCFG_DEVICE_PROGRAM_MAP(funcube_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", funcube_state, funcube_interrupt, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(funcube_state::funcube_interrupt), "screen", 0, 1); MCFG_DEVICE_ADD("sub", H83007, FUNCUBE_SUB_CPU_CLOCK) MCFG_DEVICE_PROGRAM_MAP(funcube_sub_map) diff --git a/src/mame/drivers/shadfrce.cpp b/src/mame/drivers/shadfrce.cpp index 4cada653a05..3a9e4d4e407 100644 --- a/src/mame/drivers/shadfrce.cpp +++ b/src/mame/drivers/shadfrce.cpp @@ -539,7 +539,7 @@ MACHINE_CONFIG_START(shadfrce_state::shadfrce) MCFG_DEVICE_ADD("maincpu", M68000, XTAL(28'000'000) / 2) /* verified on pcb */ MCFG_DEVICE_PROGRAM_MAP(shadfrce_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", shadfrce_state, scanline, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(shadfrce_state::scanline), "screen", 0, 1); MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(3'579'545)) /* verified on pcb */ MCFG_DEVICE_PROGRAM_MAP(shadfrce_sound_map) diff --git a/src/mame/drivers/shaolins.cpp b/src/mame/drivers/shaolins.cpp index a5ef43474c1..28fd15264ca 100644 --- a/src/mame/drivers/shaolins.cpp +++ b/src/mame/drivers/shaolins.cpp @@ -198,7 +198,7 @@ MACHINE_CONFIG_START(shaolins_state::shaolins) /* basic machine hardware */ MCFG_DEVICE_ADD("maincpu", MC6809E, MASTER_CLOCK/12) /* verified on pcb */ MCFG_DEVICE_PROGRAM_MAP(shaolins_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", shaolins_state, interrupt, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(shaolins_state::interrupt), "screen", 0, 1); WATCHDOG_TIMER(config, "watchdog"); /* video hardware */ diff --git a/src/mame/drivers/sigmab98.cpp b/src/mame/drivers/sigmab98.cpp index f752e4e9c1b..e93b056a7cb 100644 --- a/src/mame/drivers/sigmab98.cpp +++ b/src/mame/drivers/sigmab98.cpp @@ -2852,7 +2852,7 @@ MACHINE_CONFIG_START(sigmab98_state::sigmab98) NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); EEPROM_93C46_16BIT(config, "eeprom"); - MCFG_TICKET_DISPENSER_ADD("hopper", attotime::from_msec(200), TICKET_MOTOR_ACTIVE_LOW, TICKET_STATUS_ACTIVE_LOW ) + TICKET_DISPENSER(config, m_hopper, attotime::from_msec(200), TICKET_MOTOR_ACTIVE_LOW, TICKET_STATUS_ACTIVE_LOW ); // video hardware MCFG_SCREEN_ADD("screen", RASTER) @@ -2928,7 +2928,7 @@ MACHINE_CONFIG_START(lufykzku_state::lufykzku) MCFG_DEVICE_ADD("maincpu", Z80, XTAL(20'000'000) / 2) // !! TAXAN KY-80, clock @X1? !! MCFG_DEVICE_PROGRAM_MAP(lufykzku_mem_map) MCFG_DEVICE_IO_MAP(lufykzku_io_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", lufykzku_state, lufykzku_irq, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(lufykzku_state::lufykzku_irq), "screen", 0, 1); MCFG_MACHINE_RESET_OVERRIDE(lufykzku_state, lufykzku) @@ -2936,7 +2936,7 @@ MACHINE_CONFIG_START(lufykzku_state::lufykzku) // No EEPROM MCFG_DEVICE_ADD("watchdog_mb3773", MB3773, 0) - MCFG_TICKET_DISPENSER_ADD("hopper", attotime::from_msec(200), TICKET_MOTOR_ACTIVE_LOW, TICKET_STATUS_ACTIVE_LOW ) + TICKET_DISPENSER(config, m_hopper, attotime::from_msec(200), TICKET_MOTOR_ACTIVE_LOW, TICKET_STATUS_ACTIVE_LOW ); // 2 x 8-bit parallel/serial converters TTL165(config, m_dsw_shifter[0]); @@ -2998,14 +2998,14 @@ MACHINE_CONFIG_START(sigmab98_state::sammymdl) MCFG_DEVICE_ADD("maincpu", Z80, XTAL(20'000'000) / 2) // !! KL5C80A120FP @ 10MHz? (actually 4 times faster than Z80) !! MCFG_DEVICE_PROGRAM_MAP( animalc_map ) MCFG_DEVICE_IO_MAP( animalc_io ) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", sigmab98_state, sammymdl_irq, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(sigmab98_state::sammymdl_irq), "screen", 0, 1); MCFG_MACHINE_RESET_OVERRIDE(sigmab98_state, sammymdl ) NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); // battery backed RAM EEPROM_93C46_8BIT(config, "eeprom"); - MCFG_TICKET_DISPENSER_ADD("hopper", attotime::from_msec(200), TICKET_MOTOR_ACTIVE_LOW, TICKET_STATUS_ACTIVE_LOW ) + TICKET_DISPENSER(config, m_hopper, attotime::from_msec(200), TICKET_MOTOR_ACTIVE_LOW, TICKET_STATUS_ACTIVE_LOW ); WATCHDOG_TIMER(config, "watchdog"); @@ -3047,9 +3047,9 @@ MACHINE_CONFIG_START(sigmab98_state::gocowboy) MCFG_DEVICE_PROGRAM_MAP( gocowboy_map ) MCFG_DEVICE_IO_MAP( gocowboy_io ) - MCFG_DEVICE_REMOVE("hopper") - MCFG_TICKET_DISPENSER_ADD("hopper_small", attotime::from_msec(1000), TICKET_MOTOR_ACTIVE_LOW, TICKET_STATUS_ACTIVE_LOW ) - MCFG_TICKET_DISPENSER_ADD("hopper_large", attotime::from_msec(1000), TICKET_MOTOR_ACTIVE_LOW, TICKET_STATUS_ACTIVE_LOW ) + config.device_remove("hopper"); + TICKET_DISPENSER(config, m_hopper_small, attotime::from_msec(1000), TICKET_MOTOR_ACTIVE_LOW, TICKET_STATUS_ACTIVE_LOW ); + TICKET_DISPENSER(config, m_hopper_large, attotime::from_msec(1000), TICKET_MOTOR_ACTIVE_LOW, TICKET_STATUS_ACTIVE_LOW ); MACHINE_CONFIG_END MACHINE_CONFIG_START(sigmab98_state::haekaka) diff --git a/src/mame/drivers/simple_st0016.cpp b/src/mame/drivers/simple_st0016.cpp index a9218cb746c..9f50f6ec473 100644 --- a/src/mame/drivers/simple_st0016.cpp +++ b/src/mame/drivers/simple_st0016.cpp @@ -472,7 +472,7 @@ MACHINE_CONFIG_START(st0016_state::st0016) MCFG_DEVICE_ADD("maincpu",ST0016_CPU,8000000) /* 8 MHz ? */ MCFG_DEVICE_PROGRAM_MAP(st0016_mem) MCFG_DEVICE_IO_MAP(st0016_io) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", st0016_state, st0016_int, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(st0016_state::st0016_int), "screen", 0, 1); /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/skullxbo.cpp b/src/mame/drivers/skullxbo.cpp index 9a7ffb11a17..ba3ac589ea2 100644 --- a/src/mame/drivers/skullxbo.cpp +++ b/src/mame/drivers/skullxbo.cpp @@ -232,7 +232,7 @@ MACHINE_CONFIG_START(skullxbo_state::skullxbo) MCFG_DEVICE_ADD("maincpu", M68000, ATARI_CLOCK_14MHz/2) MCFG_DEVICE_PROGRAM_MAP(main_map) - MCFG_TIMER_DRIVER_ADD("scan_timer", skullxbo_state, scanline_timer) + TIMER(config, m_scanline_timer).configure_generic(FUNC(skullxbo_state::scanline_timer)); EEPROM_2816(config, "eeprom").lock_after_write(true); diff --git a/src/mame/drivers/skylncr.cpp b/src/mame/drivers/skylncr.cpp index 9da28fad07b..1cf7408a14d 100644 --- a/src/mame/drivers/skylncr.cpp +++ b/src/mame/drivers/skylncr.cpp @@ -1666,7 +1666,7 @@ MACHINE_CONFIG_START(skylncr_state::skylncr) ppi1.in_pb_callback().set_ioport("IN3"); ppi1.in_pc_callback().set_ioport("IN4"); - MCFG_TICKET_DISPENSER_ADD("hopper", attotime::from_msec(HOPPER_PULSE), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_HIGH) + TICKET_DISPENSER(config, m_hopper, attotime::from_msec(HOPPER_PULSE), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_HIGH); /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/sliver.cpp b/src/mame/drivers/sliver.cpp index 28621979a7c..377798306a6 100644 --- a/src/mame/drivers/sliver.cpp +++ b/src/mame/drivers/sliver.cpp @@ -520,7 +520,7 @@ MACHINE_CONFIG_START(sliver_state::sliver) MCFG_DEVICE_ADD("maincpu", M68000, 12000000) MCFG_DEVICE_PROGRAM_MAP(sliver_map) MCFG_DEVICE_VBLANK_INT_DRIVER("screen", sliver_state, irq4_line_hold) - MCFG_TIMER_DRIVER_ADD_PERIODIC("obj_actel", sliver_state, obj_irq_cb, attotime::from_hz(60)) /* unknown clock, causes "obj actel ready error" without this */ + TIMER(config, "obj_actel").configure_periodic(FUNC(sliver_state::obj_irq_cb), attotime::from_hz(60)); /* unknown clock, causes "obj actel ready error" without this */ // irq 2 valid but not used? I8051(config, m_audiocpu, 8000000); diff --git a/src/mame/drivers/smc777.cpp b/src/mame/drivers/smc777.cpp index f1849557425..883bd9e5659 100644 --- a/src/mame/drivers/smc777.cpp +++ b/src/mame/drivers/smc777.cpp @@ -1067,7 +1067,7 @@ MACHINE_CONFIG_START(smc777_state::smc777) BEEP(config, m_beeper, 300); // TODO: correct frequency m_beeper->add_route(ALL_OUTPUTS, "mono", 0.50); - MCFG_TIMER_DRIVER_ADD_PERIODIC("keyboard_timer", smc777_state, keyboard_callback, attotime::from_hz(240/32)) + TIMER(config, "keyboard_timer").configure_periodic(FUNC(smc777_state::keyboard_callback), attotime::from_hz(240/32)); MACHINE_CONFIG_END /* ROM definition */ diff --git a/src/mame/drivers/snk6502.cpp b/src/mame/drivers/snk6502.cpp index 0e6504de149..67fd625ff91 100644 --- a/src/mame/drivers/snk6502.cpp +++ b/src/mame/drivers/snk6502.cpp @@ -830,7 +830,7 @@ MACHINE_CONFIG_START(snk6502_state::sasuke) crtc.set_show_border_area(false); crtc.set_char_width(8); - MCFG_TIMER_DRIVER_ADD_PERIODIC("sasuke_timer", snk6502_state, sasuke_update_counter, attotime::from_hz(MASTER_CLOCK / 8)) + TIMER(config, "sasuke_timer").configure_periodic(FUNC(snk6502_state::sasuke_update_counter), attotime::from_hz(MASTER_CLOCK / 8)); // sound hardware MCFG_DEVICE_ADD("snk6502", SASUKE_SOUND, 0) diff --git a/src/mame/drivers/spc1500.cpp b/src/mame/drivers/spc1500.cpp index c7860f951c6..8cbed428c56 100644 --- a/src/mame/drivers/spc1500.cpp +++ b/src/mame/drivers/spc1500.cpp @@ -911,7 +911,7 @@ MACHINE_CONFIG_START(spc1500_state::spc1500) m_pio->out_pb_callback().set(FUNC(spc1500_state::portb_w)); m_pio->out_pc_callback().set(FUNC(spc1500_state::portc_w)); - MCFG_TIMER_DRIVER_ADD_PERIODIC("1hz", spc1500_state, timer, attotime::from_hz(1)) + TIMER(config, "1hz").configure_periodic(FUNC(spc1500_state::timer), attotime::from_hz(1)); /* sound hardware */ SPEAKER(config, "mono").front_center(); diff --git a/src/mame/drivers/spirit76.cpp b/src/mame/drivers/spirit76.cpp index 327a4eba9c5..5ef00d55cd1 100644 --- a/src/mame/drivers/spirit76.cpp +++ b/src/mame/drivers/spirit76.cpp @@ -125,7 +125,7 @@ MACHINE_CONFIG_START(spirit76_state::spirit76) /* basic machine hardware */ MCFG_DEVICE_ADD("maincpu", M6800, 500000) MCFG_DEVICE_PROGRAM_MAP(maincpu_map) - MCFG_TIMER_DRIVER_ADD_PERIODIC("irq", spirit76_state, irq, attotime::from_hz(120)) + TIMER(config, "irq").configure_periodic(FUNC(spirit76_state::irq), attotime::from_hz(120)); /* video hardware */ //MCFG_DEFAULT_LAYOUT() diff --git a/src/mame/drivers/sprcros2.cpp b/src/mame/drivers/sprcros2.cpp index 1f10dc36802..cca98c6b5c0 100644 --- a/src/mame/drivers/sprcros2.cpp +++ b/src/mame/drivers/sprcros2.cpp @@ -459,7 +459,7 @@ MACHINE_CONFIG_START(sprcros2_state::sprcros2) MCFG_DEVICE_PROGRAM_MAP(master_map) MCFG_DEVICE_IO_MAP(master_io) MCFG_DEVICE_VBLANK_INT_DRIVER("screen", sprcros2_state, master_vblank_irq) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", sprcros2_state, master_scanline, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(sprcros2_state::master_scanline), "screen", 0, 1); MCFG_DEVICE_ADD("slave_cpu",Z80,MAIN_CLOCK/4) MCFG_DEVICE_PROGRAM_MAP(slave_map) diff --git a/src/mame/drivers/sprint8.cpp b/src/mame/drivers/sprint8.cpp index c952722d2e2..5408ab3526b 100644 --- a/src/mame/drivers/sprint8.cpp +++ b/src/mame/drivers/sprint8.cpp @@ -462,8 +462,7 @@ MACHINE_CONFIG_START(sprint8_state::sprint8) MCFG_DEVICE_ADD("maincpu", M6800, 11055000 / 11) /* ? */ MCFG_DEVICE_PROGRAM_MAP(sprint8_map) - - MCFG_TIMER_DRIVER_ADD_PERIODIC("input_timer", sprint8_state, input_callback, attotime::from_hz(60)) + TIMER(config, "input_timer").configure_periodic(FUNC(sprint8_state::input_callback), attotime::from_hz(60)); /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/spyhuntertec.cpp b/src/mame/drivers/spyhuntertec.cpp index 5e554220c9c..029ae54f680 100644 --- a/src/mame/drivers/spyhuntertec.cpp +++ b/src/mame/drivers/spyhuntertec.cpp @@ -679,7 +679,7 @@ MACHINE_CONFIG_START(spyhuntertec_state::spyhuntertec) MCFG_DEVICE_PROGRAM_MAP(spyhuntertec_map) MCFG_DEVICE_IO_MAP(spyhuntertec_portmap) MCFG_DEVICE_VBLANK_INT_DRIVER("screen", spyhuntertec_state, irq0_line_hold) - MCFG_TIMER_DRIVER_ADD("analog_timer", spyhuntertec_state, analog_count_callback) + TIMER(config, m_analog_timer).configure_generic(FUNC(spyhuntertec_state::analog_count_callback)); /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/squale.cpp b/src/mame/drivers/squale.cpp index ca6cfd65a0f..d85f993cee1 100644 --- a/src/mame/drivers/squale.cpp +++ b/src/mame/drivers/squale.cpp @@ -828,7 +828,7 @@ MACHINE_CONFIG_START(squale_state::squale) m_ef9365->set_palette_tag("palette"); m_ef9365->set_nb_bitplanes(4); m_ef9365->set_display_mode(ef9365_device::DISPLAY_MODE_256x256); - MCFG_TIMER_DRIVER_ADD_SCANLINE("squale_sl", squale_state, squale_scanline, "screen", 0, 10) + TIMER(config, "squale_sl").configure_scanline(FUNC(squale_state::squale_scanline), "screen", 0, 10); /* Floppy */ WD1770(config, m_fdc, 8_MHz_XTAL); diff --git a/src/mame/drivers/srumbler.cpp b/src/mame/drivers/srumbler.cpp index 1eb3d4490a0..dc2e2ac91b7 100644 --- a/src/mame/drivers/srumbler.cpp +++ b/src/mame/drivers/srumbler.cpp @@ -250,7 +250,7 @@ MACHINE_CONFIG_START(srumbler_state::srumbler) /* basic machine hardware */ MCFG_DEVICE_ADD("maincpu", MC6809, 6000000) /* HD68B09P at 6 MHz (?) */ MCFG_DEVICE_PROGRAM_MAP(srumbler_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", srumbler_state, interrupt, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(srumbler_state::interrupt), "screen", 0, 1); MCFG_DEVICE_ADD("audiocpu", Z80, 3000000) /* 3 MHz ??? */ MCFG_DEVICE_PROGRAM_MAP(srumbler_sound_map) diff --git a/src/mame/drivers/st_mp100.cpp b/src/mame/drivers/st_mp100.cpp index 720ee21fece..15b68ba07ed 100644 --- a/src/mame/drivers/st_mp100.cpp +++ b/src/mame/drivers/st_mp100.cpp @@ -732,7 +732,7 @@ MACHINE_CONFIG_START(st_mp100_state::st_mp100) m_pia_u10->cb2_handler().set(FUNC(st_mp100_state::u10_cb2_w)); m_pia_u10->irqa_handler().set_inputline("maincpu", M6800_IRQ_LINE); m_pia_u10->irqb_handler().set_inputline("maincpu", M6800_IRQ_LINE); - MCFG_TIMER_DRIVER_ADD_PERIODIC("timer_x", st_mp100_state, timer_x, attotime::from_hz(120)) // mains freq*2 + TIMER(config, "timer_x").configure_periodic(FUNC(st_mp100_state::timer_x), attotime::from_hz(120)); // mains freq*2 PIA6821(config, m_pia_u11, 0); m_pia_u11->readpa_handler().set(FUNC(st_mp100_state::u11_a_r)); @@ -742,7 +742,7 @@ MACHINE_CONFIG_START(st_mp100_state::st_mp100) m_pia_u11->cb2_handler().set(FUNC(st_mp100_state::u11_cb2_w)); m_pia_u11->irqa_handler().set_inputline("maincpu", M6800_IRQ_LINE); m_pia_u11->irqb_handler().set_inputline("maincpu", M6800_IRQ_LINE); - MCFG_TIMER_DRIVER_ADD_PERIODIC("timer_d", st_mp100_state, u11_timer, attotime::from_hz(634)) // 555 timer*2 + TIMER(config, "timer_d").configure_periodic(FUNC(st_mp100_state::u11_timer), attotime::from_hz(634)); // 555 timer*2 MACHINE_CONFIG_END diff --git a/src/mame/drivers/st_mp200.cpp b/src/mame/drivers/st_mp200.cpp index d26b452066d..9da481e4fcb 100644 --- a/src/mame/drivers/st_mp200.cpp +++ b/src/mame/drivers/st_mp200.cpp @@ -603,7 +603,7 @@ MACHINE_CONFIG_START(st_mp200_state::st_mp200) m_pia_u10->cb2_handler().set(FUNC(st_mp200_state::u10_cb2_w)); m_pia_u10->irqa_handler().set_inputline("maincpu", M6800_IRQ_LINE); m_pia_u10->irqb_handler().set_inputline("maincpu", M6800_IRQ_LINE); - MCFG_TIMER_DRIVER_ADD_PERIODIC("timer_x", st_mp200_state, timer_x, attotime::from_hz(120)) // mains freq*2 + TIMER(config, "timer_x").configure_periodic(FUNC(st_mp200_state::timer_x), attotime::from_hz(120)); // mains freq*2 PIA6821(config, m_pia_u11, 0); m_pia_u11->readpa_handler().set(FUNC(st_mp200_state::u11_a_r)); @@ -613,7 +613,7 @@ MACHINE_CONFIG_START(st_mp200_state::st_mp200) m_pia_u11->cb2_handler().set(FUNC(st_mp200_state::u11_cb2_w)); m_pia_u11->irqa_handler().set_inputline("maincpu", M6800_IRQ_LINE); m_pia_u11->irqb_handler().set_inputline("maincpu", M6800_IRQ_LINE); - MCFG_TIMER_DRIVER_ADD_PERIODIC("timer_d", st_mp200_state, u11_timer, attotime::from_hz(634)) // 555 timer*2 + TIMER(config, "timer_d").configure_periodic(FUNC(st_mp200_state::u11_timer), attotime::from_hz(634)); // 555 timer*2 MACHINE_CONFIG_END MACHINE_CONFIG_START(st_mp200_state::st_mp201) diff --git a/src/mame/drivers/stratos.cpp b/src/mame/drivers/stratos.cpp index 1c4cb161ce3..14a2e243d1c 100644 --- a/src/mame/drivers/stratos.cpp +++ b/src/mame/drivers/stratos.cpp @@ -359,7 +359,7 @@ MACHINE_CONFIG_START(stratos_state::stratos) MCFG_SCREEN_VISIBLE_AREA(0, 239, 0, 63) MCFG_SCREEN_UPDATE_DRIVER(stratos_state, screen_update) - MCFG_TIMER_DRIVER_ADD_PERIODIC("irq", stratos_state, irq_timer, attotime::from_hz(1000)) + TIMER(config, "irq").configure_periodic(FUNC(stratos_state::irq_timer), attotime::from_hz(1000)); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); MACHINE_CONFIG_END diff --git a/src/mame/drivers/subsino.cpp b/src/mame/drivers/subsino.cpp index 0a55731dfaa..185cee34300 100644 --- a/src/mame/drivers/subsino.cpp +++ b/src/mame/drivers/subsino.cpp @@ -2717,7 +2717,7 @@ MACHINE_CONFIG_START(subsino_state::victor21) ppi.tri_pb_callback().set_constant(0); ppi.in_pc_callback().set_ioport("INC"); - MCFG_TICKET_DISPENSER_ADD("hopper", attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW) + TICKET_DISPENSER(config, m_hopper, attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW); /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -2760,7 +2760,7 @@ MACHINE_CONFIG_START(subsino_state::crsbingo) MCFG_DEVICE_PROGRAM_MAP(crsbingo_map) MCFG_DEVICE_IO_MAP(subsino_iomap) - MCFG_TICKET_DISPENSER_ADD("hopper", attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW) + TICKET_DISPENSER(config, m_hopper, attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW); /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -2801,7 +2801,7 @@ MACHINE_CONFIG_START(subsino_state::srider) ppi2.in_pb_callback().set_ioport("INA"); ppi2.in_pc_callback().set_ioport("INB"); - MCFG_TICKET_DISPENSER_ADD("hopper", attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW) + TICKET_DISPENSER(config, m_hopper, attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW); /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -2853,7 +2853,7 @@ MACHINE_CONFIG_START(subsino_state::tisub) ppi2.in_pb_callback().set_ioport("INA"); ppi2.in_pc_callback().set_ioport("INB"); - MCFG_TICKET_DISPENSER_ADD("hopper", attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW) + TICKET_DISPENSER(config, m_hopper, attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW); /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -2894,7 +2894,7 @@ MACHINE_CONFIG_START(subsino_state::stbsub) ppi2.in_pc_callback().set_ioport("INA"); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); - MCFG_TICKET_DISPENSER_ADD("hopper", attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW) + TICKET_DISPENSER(config, m_hopper, attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW); /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/subsino2.cpp b/src/mame/drivers/subsino2.cpp index 13b9903abe6..caa1dc759b4 100644 --- a/src/mame/drivers/subsino2.cpp +++ b/src/mame/drivers/subsino2.cpp @@ -2390,7 +2390,7 @@ MACHINE_CONFIG_START(subsino2_state::bishjan) MCFG_DEVICE_VBLANK_INT_DRIVER("screen", subsino2_state, irq0_line_hold) NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); - MCFG_TICKET_DISPENSER_ADD("hopper", attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_HIGH) + TICKET_DISPENSER(config, m_hopper, attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_HIGH); // video hardware MCFG_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/sun3.cpp b/src/mame/drivers/sun3.cpp index 68a5c9863f1..8d62c3439d8 100644 --- a/src/mame/drivers/sun3.cpp +++ b/src/mame/drivers/sun3.cpp @@ -1035,7 +1035,7 @@ MACHINE_CONFIG_START(sun3_state::sun3) // MMU Type 3 device space ADDRESS_MAP_BANK(config, "type3").set_map(&sun3_state::vmetype3space_map).set_options(ENDIANNESS_BIG, 32, 32, 0x80000000); - MCFG_TIMER_DRIVER_ADD_PERIODIC("timer", sun3_state, sun3_timer, attotime::from_hz(100)) + TIMER(config, "timer").configure_periodic(FUNC(sun3_state::sun3_timer), attotime::from_hz(100)); SCC8530N(config, m_scc1, 4.9152_MHz_XTAL); m_scc1->out_txda_callback().set(KEYBOARD_TAG, FUNC(sun_keyboard_port_device::write_txd)); @@ -1124,7 +1124,7 @@ MACHINE_CONFIG_START(sun3_state::sun3_50) NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); - MCFG_TIMER_DRIVER_ADD_PERIODIC("timer", sun3_state, sun3_timer, attotime::from_hz(100)) + TIMER(config, "timer").configure_periodic(FUNC(sun3_state::sun3_timer), attotime::from_hz(100)); RAM(config, m_ram).set_default_size("4M").set_default_value(0x00); diff --git a/src/mame/drivers/sun3x.cpp b/src/mame/drivers/sun3x.cpp index 6fb4a9d82a1..9942f46ce8c 100644 --- a/src/mame/drivers/sun3x.cpp +++ b/src/mame/drivers/sun3x.cpp @@ -630,7 +630,7 @@ MACHINE_CONFIG_START(sun3x_state::sun3_80) MCFG_FLOPPY_DRIVE_ADD("fdc:0", sun_floppies, "35hd", sun3x_state::floppy_formats) // the timekeeper has no interrupt output, so 3/80 includes a dedicated timer circuit - MCFG_TIMER_DRIVER_ADD_PERIODIC("timer", sun3x_state, sun380_timer, attotime::from_hz(100)) + TIMER(config, "timer").configure_periodic(FUNC(sun3x_state::sun380_timer), attotime::from_hz(100)); MCFG_SCREEN_ADD("bwtwo", RASTER) MCFG_SCREEN_UPDATE_DRIVER(sun3x_state, bw2_update) diff --git a/src/mame/drivers/suprnova.cpp b/src/mame/drivers/suprnova.cpp index acf1867aaa3..186b6141cc7 100644 --- a/src/mame/drivers/suprnova.cpp +++ b/src/mame/drivers/suprnova.cpp @@ -790,18 +790,21 @@ GFXDECODE_END MACHINE_CONFIG_START(skns_state::skns) MCFG_DEVICE_ADD("maincpu", SH2,28638000) MCFG_DEVICE_PROGRAM_MAP(skns_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", skns_state, irq, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(skns_state::irq), "screen", 0, 1); MSM6242(config, "rtc", XTAL(32'768)); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_1); - MCFG_TIMER_DRIVER_ADD_PERIODIC("int15_timer", skns_state, interrupt_callback, attotime::from_msec(2)) - MCFG_TIMER_PARAM(15) - MCFG_TIMER_DRIVER_ADD_PERIODIC("int11_timer", skns_state, interrupt_callback, attotime::from_msec(8)) - MCFG_TIMER_PARAM(11) - MCFG_TIMER_DRIVER_ADD_PERIODIC("int9_timer", skns_state, interrupt_callback, attotime::from_hz(28638000/1824)) - MCFG_TIMER_PARAM(9) + timer_device &int15_timer(TIMER(config, "int15_timer")); + int15_timer.configure_periodic(FUNC(skns_state::interrupt_callback), attotime::from_msec(2)); + int15_timer.config_param(15); + timer_device &int11_timer(TIMER(config, "int11_timer")); + int11_timer.configure_periodic(FUNC(skns_state::interrupt_callback), attotime::from_msec(8)); + int11_timer.config_param(11); + timer_device &int9_timer(TIMER(config, "int9_timer")); + int9_timer.configure_periodic(FUNC(skns_state::interrupt_callback), attotime::from_hz(28638000/1824)); + int9_timer.config_param(9); MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE) diff --git a/src/mame/drivers/svision.cpp b/src/mame/drivers/svision.cpp index f58246bd9b0..52871446dcb 100644 --- a/src/mame/drivers/svision.cpp +++ b/src/mame/drivers/svision.cpp @@ -529,10 +529,11 @@ MACHINE_CONFIG_START(svision_state::svision) PALETTE(config, m_palette, FUNC(svision_state::svision_palette), ARRAY_LENGTH(svision_pens)); MACHINE_CONFIG_END -MACHINE_CONFIG_START(svision_state::svisions) +void svision_state::svisions(machine_config &config) +{ svision(config); - MCFG_TIMER_DRIVER_ADD_PERIODIC("pet_timer", svision_state, svision_pet_timer_dev, attotime::from_seconds(8)) -MACHINE_CONFIG_END + TIMER(config, "pet_timer").configure_periodic(FUNC(svision_state::svision_pet_timer_dev), attotime::from_seconds(8)); +} MACHINE_CONFIG_START(svision_state::svisionp) svision(config); diff --git a/src/mame/drivers/taito.cpp b/src/mame/drivers/taito.cpp index 2a0c0e31438..451e141ca5b 100644 --- a/src/mame/drivers/taito.cpp +++ b/src/mame/drivers/taito.cpp @@ -379,7 +379,7 @@ MACHINE_CONFIG_START(taito_state::taito) m_pia->irqa_handler().set_inputline(m_cpu2, INPUT_LINE_NMI); m_pia->irqb_handler().set_inputline(m_cpu2, M6802_IRQ_LINE); - MCFG_TIMER_DRIVER_ADD_PERIODIC("timer_a", taito_state, timer_a, attotime::from_hz(200)) + TIMER(config, "timer_a").configure_periodic(FUNC(taito_state::timer_a), attotime::from_hz(200)); MACHINE_CONFIG_END void taito_state::shock(machine_config &config) diff --git a/src/mame/drivers/taito_o.cpp b/src/mame/drivers/taito_o.cpp index 06f1a166ba3..637beb44e70 100644 --- a/src/mame/drivers/taito_o.cpp +++ b/src/mame/drivers/taito_o.cpp @@ -237,7 +237,7 @@ MACHINE_CONFIG_START(taitoo_state::parentj) MCFG_DEVICE_ADD("maincpu", M68000,12000000 ) /*?? MHz */ MCFG_DEVICE_PROGRAM_MAP(parentj_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", taitoo_state, parentj_interrupt, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(taitoo_state::parentj_interrupt), "screen", 0, 1); WATCHDOG_TIMER(config, m_watchdog); diff --git a/src/mame/drivers/tapatune.cpp b/src/mame/drivers/tapatune.cpp index fdf098e40a9..9363ee91bd6 100644 --- a/src/mame/drivers/tapatune.cpp +++ b/src/mame/drivers/tapatune.cpp @@ -531,7 +531,7 @@ MACHINE_CONFIG_START(tapatune_state::tapatune_base) NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); - MCFG_TICKET_DISPENSER_ADD("ticket", attotime::from_msec(100), TICKET_MOTOR_ACTIVE_LOW, TICKET_STATUS_ACTIVE_LOW) + TICKET_DISPENSER(config, "ticket", attotime::from_msec(100), TICKET_MOTOR_ACTIVE_LOW, TICKET_STATUS_ACTIVE_LOW); /* sound hardware */ SPEAKER(config, "lspeaker").front_left(); diff --git a/src/mame/drivers/tasman.cpp b/src/mame/drivers/tasman.cpp index 9d43ffbc680..53a6beac5b6 100644 --- a/src/mame/drivers/tasman.cpp +++ b/src/mame/drivers/tasman.cpp @@ -648,7 +648,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(kongambl_state::kongambl_vblank) MACHINE_CONFIG_START(kongambl_state::kongambl) MCFG_DEVICE_ADD("maincpu", M68EC020, 25000000) MCFG_DEVICE_PROGRAM_MAP(kongambl_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", kongambl_state, kongambl_vblank, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(kongambl_state::kongambl_vblank), "screen", 0, 1); MCFG_DEVICE_ADD("sndcpu", M68000, 16000000) MCFG_DEVICE_PROGRAM_MAP(kongamaud_map) diff --git a/src/mame/drivers/tb303.cpp b/src/mame/drivers/tb303.cpp index 8fb797b5e9d..569a133ac2d 100644 --- a/src/mame/drivers/tb303.cpp +++ b/src/mame/drivers/tb303.cpp @@ -249,8 +249,8 @@ void tb303_state::machine_start() save_item(NAME(m_ram_we)); } -MACHINE_CONFIG_START(tb303_state::tb303) - +void tb303_state::tb303(machine_config &config) +{ /* basic machine hardware */ NEC_D650(config, m_maincpu, TP2_HZ); m_maincpu->read_a().set(FUNC(tb303_state::input_r)); @@ -264,16 +264,18 @@ MACHINE_CONFIG_START(tb303_state::tb303) m_maincpu->write_h().set(FUNC(tb303_state::switch_w)); m_maincpu->write_i().set(FUNC(tb303_state::strobe_w)); - MCFG_TIMER_DRIVER_ADD_PERIODIC("tp3_clock", tb303_state, tp3_clock, TP3_PERIOD) - MCFG_TIMER_START_DELAY(TP3_PERIOD - TP3_LOW) - MCFG_TIMER_DRIVER_ADD_PERIODIC("tp3_clear", tb303_state, tp3_clear, TP3_PERIOD) + timer_device &tp3_clock(TIMER(config, "tp3_clock")); + tp3_clock.configure_periodic(FUNC(tb303_state::tp3_clock), TP3_PERIOD); + tp3_clock.set_start_delay(TP3_PERIOD - TP3_LOW); + TIMER(config, "tp3_clear").configure_periodic(FUNC(tb303_state::tp3_clear), TP3_PERIOD); + + TIMER(config, "display_decay").configure_periodic(FUNC(hh_ucom4_state::display_decay_tick), attotime::from_msec(1)); - MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_ucom4_state, display_decay_tick, attotime::from_msec(1)) config.set_default_layout(layout_tb303); /* sound hardware */ // discrete... -MACHINE_CONFIG_END +} diff --git a/src/mame/drivers/tek405x.cpp b/src/mame/drivers/tek405x.cpp index 89a2fb38c3f..0b882c75a77 100644 --- a/src/mame/drivers/tek405x.cpp +++ b/src/mame/drivers/tek405x.cpp @@ -1022,7 +1022,7 @@ MACHINE_CONFIG_START(tek4051_state::tek4051) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) // devices - MCFG_TIMER_DRIVER_ADD_PERIODIC("keyboard", tek4051_state, keyboard_tick, attotime::from_hz(XTAL(12'500'000)/15/4)) + TIMER(config, "keyboard").configure_periodic(FUNC(tek4051_state::keyboard_tick), attotime::from_hz(XTAL(12'500'000)/15/4)); pia6821_device &piax(PIA6821(config, MC6820_X_TAG, 0)); piax.readpa_handler().set(FUNC(tek4051_state::x_pia_pa_r)); diff --git a/src/mame/drivers/thedealr.cpp b/src/mame/drivers/thedealr.cpp index 17c6c56ee5f..8b3c140d685 100644 --- a/src/mame/drivers/thedealr.cpp +++ b/src/mame/drivers/thedealr.cpp @@ -545,7 +545,7 @@ MACHINE_CONFIG_START(thedealr_state::thedealr) // basic machine hardware MCFG_DEVICE_ADD("maincpu", R65C02, XTAL(16'000'000)/8) // 2 MHz? MCFG_DEVICE_PROGRAM_MAP(thedealr) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", thedealr_state, thedealr_interrupt, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(thedealr_state::thedealr_interrupt), "screen", 0, 1); MCFG_DEVICE_ADD("subcpu", R65C02, XTAL(16'000'000)/8) // 2 MHz? MCFG_DEVICE_PROGRAM_MAP(thedealr_sub) diff --git a/src/mame/drivers/ti89.cpp b/src/mame/drivers/ti89.cpp index da531355256..43c6b444b5a 100644 --- a/src/mame/drivers/ti89.cpp +++ b/src/mame/drivers/ti89.cpp @@ -539,7 +539,7 @@ MACHINE_CONFIG_START(ti68k_state::ti89) SHARP_UNK128MBIT(config, "flash"); //should be LH28F320 for ti89t and v200 and LH28F160S3T for other models - MCFG_TIMER_DRIVER_ADD_PERIODIC("ti68k_timer", ti68k_state, ti68k_timer_callback, attotime::from_hz(1<<14)) + TIMER(config, "ti68k_timer").configure_periodic(FUNC(ti68k_state::ti68k_timer_callback), attotime::from_hz(1<<14)); MACHINE_CONFIG_END diff --git a/src/mame/drivers/ticalc1x.cpp b/src/mame/drivers/ticalc1x.cpp index 11f782fcd89..bf3942b485d 100644 --- a/src/mame/drivers/ticalc1x.cpp +++ b/src/mame/drivers/ticalc1x.cpp @@ -195,7 +195,7 @@ MACHINE_CONFIG_START(cmulti8_state::cmulti8) m_maincpu->o().set(FUNC(cmulti8_state::write_o)); m_maincpu->r().set(FUNC(cmulti8_state::write_r)); - MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_tms1k_state, display_decay_tick, attotime::from_msec(1)) + TIMER(config, "display_decay").configure_periodic(FUNC(hh_tms1k_state::display_decay_tick), attotime::from_msec(1)); config.set_default_layout(layout_cmulti8); /* no sound! */ @@ -412,7 +412,7 @@ MACHINE_CONFIG_START(tisr16_state::tisr16) m_maincpu->o().set(FUNC(tisr16_state::write_o)); m_maincpu->r().set(FUNC(tisr16_state::write_r)); - MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_tms1k_state, display_decay_tick, attotime::from_msec(1)) + TIMER(config, "display_decay").configure_periodic(FUNC(hh_tms1k_state::display_decay_tick), attotime::from_msec(1)); config.set_default_layout(layout_tisr16); /* no sound! */ @@ -554,7 +554,7 @@ MACHINE_CONFIG_START(ti1250_state::ti1250) m_maincpu->o().set(FUNC(ti1250_state::write_o)); m_maincpu->r().set(FUNC(ti1250_state::write_r)); - MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_tms1k_state, display_decay_tick, attotime::from_msec(1)) + TIMER(config, "display_decay").configure_periodic(FUNC(hh_tms1k_state::display_decay_tick), attotime::from_msec(1)); config.set_default_layout(layout_ti1250); /* no sound! */ @@ -684,7 +684,7 @@ MACHINE_CONFIG_START(ti25503_state::ti25503) m_maincpu->o().set(FUNC(ti25503_state::write_o)); m_maincpu->r().set(FUNC(ti25503_state::write_r)); - MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_tms1k_state, display_decay_tick, attotime::from_msec(1)) + TIMER(config, "display_decay").configure_periodic(FUNC(hh_tms1k_state::display_decay_tick), attotime::from_msec(1)); config.set_default_layout(layout_ti25503); /* no sound! */ @@ -787,7 +787,7 @@ MACHINE_CONFIG_START(ti1000_state::ti1000) m_maincpu->o().set(FUNC(ti1000_state::write_o)); m_maincpu->r().set(FUNC(ti1000_state::write_r)); - MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_tms1k_state, display_decay_tick, attotime::from_msec(1)) + TIMER(config, "display_decay").configure_periodic(FUNC(hh_tms1k_state::display_decay_tick), attotime::from_msec(1)); config.set_default_layout(layout_ti1270); /* no sound! */ @@ -889,7 +889,7 @@ MACHINE_CONFIG_START(wizatron_state::wizatron) m_maincpu->o().set(FUNC(wizatron_state::write_o)); m_maincpu->r().set(FUNC(wizatron_state::write_r)); - MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_tms1k_state, display_decay_tick, attotime::from_msec(1)) + TIMER(config, "display_decay").configure_periodic(FUNC(hh_tms1k_state::display_decay_tick), attotime::from_msec(1)); config.set_default_layout(layout_wizatron); /* no sound! */ @@ -966,7 +966,7 @@ MACHINE_CONFIG_START(lilprof_state::lilprof) m_maincpu->o().set(FUNC(lilprof_state::write_o)); m_maincpu->r().set(FUNC(wizatron_state::write_r)); - MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_tms1k_state, display_decay_tick, attotime::from_msec(1)) + TIMER(config, "display_decay").configure_periodic(FUNC(hh_tms1k_state::display_decay_tick), attotime::from_msec(1)); config.set_default_layout(layout_wizatron); /* no sound! */ @@ -1079,7 +1079,7 @@ MACHINE_CONFIG_START(lilprof78_state::lilprof78) m_maincpu->o().set(FUNC(lilprof78_state::write_o)); m_maincpu->r().set(FUNC(lilprof78_state::write_r)); - MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_tms1k_state, display_decay_tick, attotime::from_msec(1)) + TIMER(config, "display_decay").configure_periodic(FUNC(hh_tms1k_state::display_decay_tick), attotime::from_msec(1)); config.set_default_layout(layout_wizatron); /* no sound! */ @@ -1194,7 +1194,7 @@ MACHINE_CONFIG_START(dataman_state::dataman) m_maincpu->r().set(FUNC(dataman_state::write_r)); m_maincpu->power_off().set(FUNC(hh_tms1k_state::auto_power_off)); - MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_tms1k_state, display_decay_tick, attotime::from_msec(1)) + TIMER(config, "display_decay").configure_periodic(FUNC(hh_tms1k_state::display_decay_tick), attotime::from_msec(1)); config.set_default_layout(layout_dataman); /* no sound! */ @@ -1264,7 +1264,7 @@ MACHINE_CONFIG_START(mathmarv_state::mathmarv) m_maincpu->r().set(FUNC(mathmarv_state::write_r)); m_maincpu->power_off().set(FUNC(hh_tms1k_state::auto_power_off)); - MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_tms1k_state, display_decay_tick, attotime::from_msec(1)) + TIMER(config, "display_decay").configure_periodic(FUNC(hh_tms1k_state::display_decay_tick), attotime::from_msec(1)); config.set_default_layout(layout_mathmarv); /* sound hardware */ @@ -1527,7 +1527,7 @@ MACHINE_CONFIG_START(ti30_state::ti30) m_maincpu->r().set(FUNC(ti30_state::write_r)); m_maincpu->power_off().set(FUNC(hh_tms1k_state::auto_power_off)); - MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_tms1k_state, display_decay_tick, attotime::from_msec(1)) + TIMER(config, "display_decay").configure_periodic(FUNC(hh_tms1k_state::display_decay_tick), attotime::from_msec(1)); config.set_default_layout(layout_ti30); /* no sound! */ diff --git a/src/mame/drivers/tickee.cpp b/src/mame/drivers/tickee.cpp index 267bb2bad2c..433b3287496 100644 --- a/src/mame/drivers/tickee.cpp +++ b/src/mame/drivers/tickee.cpp @@ -771,8 +771,8 @@ MACHINE_CONFIG_START(tickee_state::tickee) MCFG_MACHINE_RESET_OVERRIDE(tickee_state,tickee) NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_1); - MCFG_TICKET_DISPENSER_ADD("ticket1", attotime::from_msec(100), TICKET_MOTOR_ACTIVE_LOW, TICKET_STATUS_ACTIVE_HIGH) - MCFG_TICKET_DISPENSER_ADD("ticket2", attotime::from_msec(100), TICKET_MOTOR_ACTIVE_LOW, TICKET_STATUS_ACTIVE_HIGH) + TICKET_DISPENSER(config, m_ticket[0], attotime::from_msec(100), TICKET_MOTOR_ACTIVE_LOW, TICKET_STATUS_ACTIVE_HIGH); + TICKET_DISPENSER(config, m_ticket[1], attotime::from_msec(100), TICKET_MOTOR_ACTIVE_LOW, TICKET_STATUS_ACTIVE_HIGH); /* video hardware */ TLC34076(config, m_tlc34076, tlc34076_device::TLC34076_6_BIT); @@ -854,8 +854,8 @@ MACHINE_CONFIG_START(tickee_state::mouseatk) MCFG_MACHINE_RESET_OVERRIDE(tickee_state,tickee) NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_1); - MCFG_TICKET_DISPENSER_ADD("ticket1", attotime::from_msec(100), TICKET_MOTOR_ACTIVE_LOW, TICKET_STATUS_ACTIVE_HIGH) - MCFG_TICKET_DISPENSER_ADD("ticket2", attotime::from_msec(100), TICKET_MOTOR_ACTIVE_LOW, TICKET_STATUS_ACTIVE_HIGH) + TICKET_DISPENSER(config, m_ticket[0], attotime::from_msec(100), TICKET_MOTOR_ACTIVE_LOW, TICKET_STATUS_ACTIVE_HIGH); + TICKET_DISPENSER(config, m_ticket[1], attotime::from_msec(100), TICKET_MOTOR_ACTIVE_LOW, TICKET_STATUS_ACTIVE_HIGH); /* video hardware */ TLC34076(config, m_tlc34076, tlc34076_device::TLC34076_6_BIT); diff --git a/src/mame/drivers/tiki100.cpp b/src/mame/drivers/tiki100.cpp index ff6955d30b2..585a6c1c348 100644 --- a/src/mame/drivers/tiki100.cpp +++ b/src/mame/drivers/tiki100.cpp @@ -746,7 +746,7 @@ MACHINE_CONFIG_START(tiki100_state::tiki100) m_ctc->zc_callback<1>().set(m_dart, FUNC(z80dart_device::rxtxcb_w)); m_ctc->zc_callback<2>().set(FUNC(tiki100_state::bar2_w)); - MCFG_TIMER_DRIVER_ADD_PERIODIC("ctc", tiki100_state, ctc_tick, attotime::from_hz(8_MHz_XTAL / 4)) + TIMER(config, "ctc").configure_periodic(FUNC(tiki100_state::ctc_tick), attotime::from_hz(8_MHz_XTAL / 4)); FD1797(config, m_fdc, 8_MHz_XTAL / 8); // FD1767PL-02 or FD1797-PL MCFG_FLOPPY_DRIVE_ADD(FD1797_TAG":0", tiki100_floppies, "525qd", tiki100_state::floppy_formats) @@ -770,7 +770,7 @@ MACHINE_CONFIG_START(tiki100_state::tiki100) MCFG_CASSETTE_ADD(CASSETTE_TAG) MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_STOPPED | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_MUTED) - MCFG_TIMER_DRIVER_ADD_PERIODIC("tape", tiki100_state, tape_tick, attotime::from_hz(44100)) + TIMER(config, "tape").configure_periodic(FUNC(tiki100_state::tape_tick), attotime::from_hz(44100)); /* sound hardware */ SPEAKER(config, "mono").front_center(); diff --git a/src/mame/drivers/tispellb.cpp b/src/mame/drivers/tispellb.cpp index 837a253f775..b91cd58736b 100644 --- a/src/mame/drivers/tispellb.cpp +++ b/src/mame/drivers/tispellb.cpp @@ -362,7 +362,7 @@ MACHINE_CONFIG_START(tispellb_state::rev1) MCFG_QUANTUM_PERFECT_CPU("maincpu") - MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_tms1k_state, display_decay_tick, attotime::from_msec(1)) + TIMER(config, "display_decay").configure_periodic(FUNC(hh_tms1k_state::display_decay_tick), attotime::from_msec(1)); config.set_default_layout(layout_spellb); /* no sound! */ @@ -382,7 +382,7 @@ MACHINE_CONFIG_START(tispellb_state::rev2) TMS6100(config, m_tms6100, 350000); m_tms6100->enable_4bit_mode(true); - MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_tms1k_state, display_decay_tick, attotime::from_msec(1)) + TIMER(config, "display_decay").configure_periodic(FUNC(hh_tms1k_state::display_decay_tick), attotime::from_msec(1)); config.set_default_layout(layout_spellb); /* sound hardware */ diff --git a/src/mame/drivers/tk2000.cpp b/src/mame/drivers/tk2000.cpp index 19727c5a6d8..e254f09a54d 100644 --- a/src/mame/drivers/tk2000.cpp +++ b/src/mame/drivers/tk2000.cpp @@ -570,7 +570,7 @@ MACHINE_CONFIG_START(tk2000_state::tk2000) /* basic machine hardware */ MCFG_DEVICE_ADD(A2_CPU_TAG, M6502, 1021800) /* close to actual CPU frequency of 1.020484 MHz */ MCFG_DEVICE_PROGRAM_MAP(apple2_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", tk2000_state, apple2_interrupt, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(tk2000_state::apple2_interrupt), "screen", 0, 1); MCFG_QUANTUM_TIME(attotime::from_hz(60)) APPLE2_VIDEO(config, m_video, XTAL(14'318'181)); diff --git a/src/mame/drivers/tm990189.cpp b/src/mame/drivers/tm990189.cpp index 9be9ae43432..30faffb571e 100644 --- a/src/mame/drivers/tm990189.cpp +++ b/src/mame/drivers/tm990189.cpp @@ -872,10 +872,11 @@ MACHINE_CONFIG_START(tm990189_state::tm990_189) m_tms9902->xmit_cb().set(FUNC(tm990189_state::xmit_callback)); // called when a character is transmitted TM990_189_RS232(config, "rs232", 0, m_tms9902); - MCFG_TIMER_DRIVER_ADD_PERIODIC("display_timer", tm990189_state, display_callback, attotime::from_hz(30)) + timer_device &display_timer(TIMER(config, "display_timer")); + display_timer.configure_periodic(FUNC(tm990189_state::display_callback), attotime::from_hz(30)); // Need to delay the timer, or it will spoil the initial LOAD // TODO: Fix this, probably inside CPU - MCFG_TIMER_START_DELAY(attotime::from_msec(150)) + display_timer.set_start_delay(attotime::from_msec(150)); MACHINE_CONFIG_END MACHINE_CONFIG_START(tm990189_state::tm990_189_v) @@ -934,8 +935,9 @@ MACHINE_CONFIG_START(tm990189_state::tm990_189_v) m_tms9902->xmit_cb().set(FUNC(tm990189_state::xmit_callback)); // called when a character is transmitted; TM990_189_RS232(config, "rs232", 0, m_tms9902); - MCFG_TIMER_DRIVER_ADD_PERIODIC("display_timer", tm990189_state, display_callback, attotime::from_hz(30)) - MCFG_TIMER_START_DELAY(attotime::from_msec(150)) + timer_device &display_timer(TIMER(config, "display_timer")); + display_timer.configure_periodic(FUNC(tm990189_state::display_callback), attotime::from_hz(30)); + display_timer.set_start_delay(attotime::from_msec(150)); MACHINE_CONFIG_END diff --git a/src/mame/drivers/tmaster.cpp b/src/mame/drivers/tmaster.cpp index 8f3d4e76e39..9a3038b569e 100644 --- a/src/mame/drivers/tmaster.cpp +++ b/src/mame/drivers/tmaster.cpp @@ -369,7 +369,7 @@ int tmaster_compute_addr(uint16_t reg_low, uint16_t reg_mid, uint16_t reg_high) MACHINE_CONFIG_START(tmaster_state::tm) MCFG_DEVICE_ADD("maincpu", M68000, XTAL(24'000'000) / 2) /* 12MHz */ MCFG_DEVICE_PROGRAM_MAP(tmaster_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", tmaster_state, scanline_interrupt, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(tmaster_state::scanline_interrupt), "screen", 0, 1); MC68681(config, m_duart, XTAL(8'664'000) / 2 /*??*/); m_duart->irq_cb().set(FUNC(tmaster_state::duart_irq_handler)); diff --git a/src/mame/drivers/tr606.cpp b/src/mame/drivers/tr606.cpp index 6eeb292ea30..f31c9b701c3 100644 --- a/src/mame/drivers/tr606.cpp +++ b/src/mame/drivers/tr606.cpp @@ -80,21 +80,22 @@ void tr606_state::machine_start() // register for savestates } -MACHINE_CONFIG_START(tr606_state::tr606) - +void tr606_state::tr606(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", NEC_D650, TP2_HZ) + NEC_D650(config, m_maincpu, TP2_HZ); - MCFG_TIMER_DRIVER_ADD_PERIODIC("tp3_clock", tr606_state, tp3_clock, TP3_PERIOD) - MCFG_TIMER_START_DELAY(TP3_PERIOD - TP3_LOW) - MCFG_TIMER_DRIVER_ADD_PERIODIC("tp3_clear", tr606_state, tp3_clear, TP3_PERIOD) + timer_device &tp3_clock(TIMER(config, "tp3_clock")); + tp3_clock.configure_periodic(FUNC(tr606_state::tp3_clock), TP3_PERIOD); + tp3_clock.set_start_delay(TP3_PERIOD - TP3_LOW); + TIMER(config, "tp3_clear").configure_periodic(FUNC(tr606_state::tp3_clear), TP3_PERIOD); - MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_ucom4_state, display_decay_tick, attotime::from_msec(1)) + TIMER(config, "display_decay").configure_periodic(FUNC(hh_ucom4_state::display_decay_tick), attotime::from_msec(1)); config.set_default_layout(layout_tr606); /* sound hardware */ // discrete... -MACHINE_CONFIG_END +} diff --git a/src/mame/drivers/trs80m2.cpp b/src/mame/drivers/trs80m2.cpp index f65f965be68..a4f4f9876a6 100644 --- a/src/mame/drivers/trs80m2.cpp +++ b/src/mame/drivers/trs80m2.cpp @@ -747,7 +747,7 @@ MACHINE_CONFIG_START(trs80m2_state::trs80m2) m_ctc->zc_callback<1>().set(Z80SIO_TAG, FUNC(z80dart_device::txca_w)); m_ctc->zc_callback<2>().set(Z80SIO_TAG, FUNC(z80dart_device::rxtxcb_w)); - MCFG_TIMER_DRIVER_ADD_PERIODIC("ctc", trs80m2_state, ctc_tick, attotime::from_hz(8_MHz_XTAL / 2 / 2)) + TIMER(config, "ctc").configure_periodic(FUNC(trs80m2_state::ctc_tick), attotime::from_hz(8_MHz_XTAL / 2 / 2)); Z80DMA(config, m_dmac, 8_MHz_XTAL / 2); m_dmac->out_busreq_callback().set_inputline(m_maincpu, INPUT_LINE_HALT); @@ -836,7 +836,7 @@ MACHINE_CONFIG_START(trs80m16_state::trs80m16) m_ctc->zc_callback<1>().set(Z80SIO_TAG, FUNC(z80dart_device::txca_w)); m_ctc->zc_callback<2>().set(Z80SIO_TAG, FUNC(z80dart_device::rxtxcb_w)); - MCFG_TIMER_DRIVER_ADD_PERIODIC("ctc", trs80m2_state, ctc_tick, attotime::from_hz(8_MHz_XTAL / 2 / 2)) + TIMER(config, "ctc").configure_periodic(FUNC(trs80m2_state::ctc_tick), attotime::from_hz(8_MHz_XTAL / 2 / 2)); Z80DMA(config, m_dmac, 8_MHz_XTAL / 2); m_dmac->out_busreq_callback().set_inputline(m_maincpu, INPUT_LINE_HALT); diff --git a/src/mame/drivers/v1050.cpp b/src/mame/drivers/v1050.cpp index f68e6dad1cc..43423291fb2 100644 --- a/src/mame/drivers/v1050.cpp +++ b/src/mame/drivers/v1050.cpp @@ -1036,7 +1036,7 @@ MACHINE_CONFIG_START(v1050_state::v1050) MCFG_QUANTUM_PERFECT_CPU(M6502_TAG) // keyboard HACK - MCFG_TIMER_DRIVER_ADD_PERIODIC("keyboard", v1050_state, v1050_keyboard_tick, attotime::from_hz(60)) + TIMER(config, "keyboard").configure_periodic(FUNC(v1050_state::v1050_keyboard_tick), attotime::from_hz(60)); // video hardware v1050_video(config); @@ -1120,8 +1120,8 @@ MACHINE_CONFIG_START(v1050_state::v1050) MCFG_DEVICE_ADD("scsi_data_in", INPUT_BUFFER, 0) MCFG_DEVICE_ADD("scsi_ctrl_in", INPUT_BUFFER, 0) - MCFG_TIMER_DRIVER_ADD(TIMER_ACK_TAG, v1050_state, sasi_ack_tick) - MCFG_TIMER_DRIVER_ADD(TIMER_RST_TAG, v1050_state, sasi_rst_tick) + TIMER(config, m_timer_ack).configure_generic(FUNC(v1050_state::sasi_ack_tick)); + TIMER(config, m_timer_rst).configure_generic(FUNC(v1050_state::sasi_rst_tick)); // software lists MCFG_SOFTWARE_LIST_ADD("flop_list", "v1050_flop") diff --git a/src/mame/drivers/vball.cpp b/src/mame/drivers/vball.cpp index 263e7f746a8..8ffcac894b1 100644 --- a/src/mame/drivers/vball.cpp +++ b/src/mame/drivers/vball.cpp @@ -401,7 +401,7 @@ MACHINE_CONFIG_START(vball_state::vball) /* basic machine hardware */ MCFG_DEVICE_ADD("maincpu", M6502, CPU_CLOCK) /* 2 MHz - measured by guru but it makes the game far far too slow ?! */ MCFG_DEVICE_PROGRAM_MAP(main_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", vball_state, vball_scanline, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(vball_state::vball_scanline), "screen", 0, 1); MCFG_DEVICE_ADD("audiocpu", Z80, 3579545) /* 3.579545 MHz */ MCFG_DEVICE_PROGRAM_MAP(sound_map) diff --git a/src/mame/drivers/vboy.cpp b/src/mame/drivers/vboy.cpp index 76d8d9df2b7..7028b7c30ab 100644 --- a/src/mame/drivers/vboy.cpp +++ b/src/mame/drivers/vboy.cpp @@ -1311,14 +1311,14 @@ MACHINE_CONFIG_START(vboy_state::vboy) MCFG_DEVICE_ADD( "maincpu", V810, XTAL(20'000'000) ) MCFG_DEVICE_PROGRAM_MAP(vboy_mem) MCFG_DEVICE_IO_MAP(vboy_io) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer_l", vboy_state, vboy_scanlineL, "3dleft", 0, 1) - //MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer_r", vboy_state, vboy_scanlineR, "3dright", 0, 1) + TIMER(config, "scantimer_l").configure_scanline(FUNC(vboy_state::vboy_scanlineL), "3dleft", 0, 1); + //TIMER(config, "scantimer_r").configure_scanline(FUNC(vboy_state::vboy_scanlineR), "3dright", 0, 1); // programmable timer - MCFG_TIMER_DRIVER_ADD("timer_main", vboy_state, timer_main_tick) + TIMER(config, m_maintimer).configure_generic(FUNC(vboy_state::timer_main_tick)); // pad ready, which should be once per VBL - MCFG_TIMER_DRIVER_ADD_PERIODIC("timer_pad", vboy_state, timer_pad_tick, attotime::from_hz(50.038029f)) + TIMER(config, "timer_pad").configure_periodic(FUNC(vboy_state::timer_pad_tick), attotime::from_hz(50.038029f)); /* video hardware */ config.set_default_layout(layout_vboy); diff --git a/src/mame/drivers/vcs80.cpp b/src/mame/drivers/vcs80.cpp index 638560b9d28..c1e7dc5d051 100644 --- a/src/mame/drivers/vcs80.cpp +++ b/src/mame/drivers/vcs80.cpp @@ -213,7 +213,8 @@ void vcs80_state::machine_start() /* Machine Driver */ -MACHINE_CONFIG_START(vcs80_state::vcs80) +void vcs80_state::vcs80(machine_config &config) +{ /* basic machine hardware */ Z80(config, m_maincpu, XTAL(5'000'000)/2); /* U880D */ m_maincpu->set_addrmap(AS_PROGRAM, &vcs80_state::vcs80_mem); @@ -221,7 +222,7 @@ MACHINE_CONFIG_START(vcs80_state::vcs80) m_maincpu->set_daisy_config(vcs80_daisy_chain); /* keyboard timer */ - MCFG_TIMER_DRIVER_ADD_PERIODIC("keyboard", vcs80_state, vcs80_keyboard_tick, attotime::from_hz(1000)) + TIMER(config, "keyboard").configure_periodic(FUNC(vcs80_state::vcs80_keyboard_tick), attotime::from_hz(1000)); /* video hardware */ config.set_default_layout(layout_vcs80); @@ -237,7 +238,7 @@ MACHINE_CONFIG_START(vcs80_state::vcs80) /* bankdev */ ADDRESS_MAP_BANK(config, "bdmem").set_map(&vcs80_state::vcs80_bd_mem).set_options(ENDIANNESS_BIG, 8, 32, 0x10000); -MACHINE_CONFIG_END +} /* ROMs */ diff --git a/src/mame/drivers/vd.cpp b/src/mame/drivers/vd.cpp index 2d56a9afaa8..e06b9053ff7 100644 --- a/src/mame/drivers/vd.cpp +++ b/src/mame/drivers/vd.cpp @@ -186,12 +186,13 @@ void vd_state::machine_reset() m_t_c = 0; } -MACHINE_CONFIG_START(vd_state::vd) +void vd_state::vd(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, 4000000) - MCFG_DEVICE_PROGRAM_MAP(vd_map) - MCFG_DEVICE_IO_MAP(vd_io) - MCFG_TIMER_DRIVER_ADD_PERIODIC("irq", vd_state, irq, attotime::from_hz(484)) + Z80(config, m_maincpu, 4000000); + m_maincpu->set_addrmap(AS_PROGRAM, &vd_state::vd_map); + m_maincpu->set_addrmap(AS_IO, &vd_state::vd_io); + TIMER(config, "irq").configure_periodic(FUNC(vd_state::irq), attotime::from_hz(484)); /* Sound */ genpin_audio(config); @@ -207,7 +208,7 @@ MACHINE_CONFIG_START(vd_state::vd) /* Video */ config.set_default_layout(layout_vd); -MACHINE_CONFIG_END +} /*------------------------------------------------------------------- / Break '86 (1986) diff --git a/src/mame/drivers/vg5k.cpp b/src/mame/drivers/vg5k.cpp index dcdf054f68a..c8932324251 100644 --- a/src/mame/drivers/vg5k.cpp +++ b/src/mame/drivers/vg5k.cpp @@ -373,9 +373,9 @@ MACHINE_CONFIG_START(vg5k_state::vg5k) MCFG_DEVICE_PROGRAM_MAP(vg5k_mem) MCFG_DEVICE_IO_MAP(vg5k_io) - MCFG_TIMER_DRIVER_ADD_SCANLINE("vg5k_scanline", vg5k_state, vg5k_scanline, "screen", 0, 10) + TIMER(config, "vg5k_scanline").configure_scanline(FUNC(vg5k_state::vg5k_scanline), "screen", 0, 10); - MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_timer", vg5k_state, z80_irq, attotime::from_msec(20)) + TIMER(config, "irq_timer").configure_periodic(FUNC(vg5k_state::z80_irq), attotime::from_msec(20)); EF9345(config, m_ef9345, 0); m_ef9345->set_palette_tag("palette"); diff --git a/src/mame/drivers/vicdual.cpp b/src/mame/drivers/vicdual.cpp index d639d393048..9e2fed23382 100644 --- a/src/mame/drivers/vicdual.cpp +++ b/src/mame/drivers/vicdual.cpp @@ -267,17 +267,17 @@ void vicdual_state::machine_start() } -MACHINE_CONFIG_START(vicdual_state::vicdual_root) - +void vicdual_state::vicdual_root(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, VICDUAL_MAIN_CPU_CLOCK) + Z80(config, m_maincpu, VICDUAL_MAIN_CPU_CLOCK); - MCFG_TIMER_DRIVER_ADD("coinstate", vicdual_state, clear_coin_status) + TIMER(config, m_coinstate_timer).configure_generic(FUNC(vicdual_state::clear_coin_status)); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(VICDUAL_PIXEL_CLOCK, VICDUAL_HTOTAL, VICDUAL_HBEND, VICDUAL_HBSTART, VICDUAL_VTOTAL, VICDUAL_VBEND, VICDUAL_VBSTART) -MACHINE_CONFIG_END + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_raw(VICDUAL_PIXEL_CLOCK, VICDUAL_HTOTAL, VICDUAL_HBEND, VICDUAL_HBSTART, VICDUAL_VTOTAL, VICDUAL_VBEND, VICDUAL_VBSTART); +} @@ -2599,8 +2599,8 @@ MACHINE_CONFIG_START(nsub_state::nsub) MCFG_DEVICE_PROGRAM_MAP(nsub_map) MCFG_DEVICE_IO_MAP(nsub_io_map) - MCFG_TIMER_DRIVER_ADD("coinstate", nsub_state, clear_coin_status) - MCFG_TIMER_DRIVER_ADD("nsub_coin", nsub_state, nsub_coin_pulse) + TIMER(config, m_coinstate_timer).configure_generic(FUNC(nsub_state::clear_coin_status)); + TIMER(config, m_nsub_coinage_timer).configure_generic(FUNC(nsub_state::nsub_coin_pulse)); /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/videopkr.cpp b/src/mame/drivers/videopkr.cpp index bcf005e0c81..16b8bcf1381 100644 --- a/src/mame/drivers/videopkr.cpp +++ b/src/mame/drivers/videopkr.cpp @@ -1243,7 +1243,7 @@ MACHINE_CONFIG_START(videopkr_state::videopkr) NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); - MCFG_TIMER_DRIVER_ADD_PERIODIC("t1_timer", videopkr_state, sound_t1_callback, attotime::from_hz(50)) + TIMER(config, "t1_timer").configure_periodic(FUNC(videopkr_state::sound_t1_callback), attotime::from_hz(50)); /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/viper.cpp b/src/mame/drivers/viper.cpp index a7449ea872d..4b230f339d4 100644 --- a/src/mame/drivers/viper.cpp +++ b/src/mame/drivers/viper.cpp @@ -2425,7 +2425,7 @@ MACHINE_CONFIG_START(viper_state::viper) PALETTE(config, "palette").set_entries(65536); TIMER(config, "ds2430_timer2", 0); - //MCFG_TIMER_ADD_NONE("ds2430_timer2") + //TIMER(config, "ds2430_timer2").configure_generic(timer_device::expired_delegate()); /* sound hardware */ SPEAKER(config, "lspeaker").front_left(); diff --git a/src/mame/drivers/vixen.cpp b/src/mame/drivers/vixen.cpp index 91ac5b72c39..362f8911ab5 100644 --- a/src/mame/drivers/vixen.cpp +++ b/src/mame/drivers/vixen.cpp @@ -753,7 +753,7 @@ MACHINE_CONFIG_START(vixen_state::vixen) MCFG_SCREEN_UPDATE_DRIVER(vixen_state, screen_update) MCFG_SCREEN_RAW_PARAMS(23.9616_MHz_XTAL / 2, 96*8, 0*8, 81*8, 27*10, 0*10, 26*10) - MCFG_TIMER_DRIVER_ADD_SCANLINE("vsync", vixen_state, vsync_tick, SCREEN_TAG, 26*10, 27*10) + TIMER(config, "vsync").configure_scanline(FUNC(vixen_state::vsync_tick), SCREEN_TAG, 26*10, 27*10); PALETTE(config, m_palette, palette_device::MONOCHROME); diff --git a/src/mame/drivers/volfied.cpp b/src/mame/drivers/volfied.cpp index 47b4f066e11..deaee227a64 100644 --- a/src/mame/drivers/volfied.cpp +++ b/src/mame/drivers/volfied.cpp @@ -258,7 +258,7 @@ MACHINE_CONFIG_START(volfied_state::volfied) MCFG_QUANTUM_TIME(attotime::from_hz(1200)) - MCFG_TIMER_DRIVER_ADD("cchip_irq_clear", volfied_state, cchip_irq_clear_cb) + TIMER(config, m_cchip_irq_clear).configure_generic(FUNC(volfied_state::cchip_irq_clear_cb)); /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/votrpss.cpp b/src/mame/drivers/votrpss.cpp index 756d567936b..7fe077f6043 100644 --- a/src/mame/drivers/votrpss.cpp +++ b/src/mame/drivers/votrpss.cpp @@ -291,7 +291,7 @@ MACHINE_CONFIG_START(votrpss_state::votrpss) m_ppi->out_pb_callback().set(FUNC(votrpss_state::ppi_pb_w)); m_ppi->out_pc_callback().set(FUNC(votrpss_state::ppi_pc_w)); - MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_timer", votrpss_state, irq_timer, attotime::from_msec(10)) + TIMER(config, "irq_timer").configure_periodic(FUNC(votrpss_state::irq_timer), attotime::from_msec(10)); MACHINE_CONFIG_END diff --git a/src/mame/drivers/wheelfir.cpp b/src/mame/drivers/wheelfir.cpp index f669e0027a9..3dbf27768b5 100644 --- a/src/mame/drivers/wheelfir.cpp +++ b/src/mame/drivers/wheelfir.cpp @@ -748,7 +748,7 @@ MACHINE_CONFIG_START(wheelfir_state::wheelfir) adc.in_callback<1>().set_ioport("ACCELERATOR"); adc.in_callback<2>().set_ioport("BRAKE"); - MCFG_TIMER_DRIVER_ADD_SCANLINE("scan_timer", wheelfir_state, scanline_timer_callback, "screen", 0, 1) + TIMER(config, "scan_timer").configure_scanline(FUNC(wheelfir_state::scanline_timer_callback), "screen", 0, 1); MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) diff --git a/src/mame/drivers/wico.cpp b/src/mame/drivers/wico.cpp index 2e7e76b078e..a3db68312a7 100644 --- a/src/mame/drivers/wico.cpp +++ b/src/mame/drivers/wico.cpp @@ -446,8 +446,8 @@ MACHINE_CONFIG_START(wico_state::wico) MCFG_DEVICE_PROGRAM_MAP(ccpu_map) MCFG_DEVICE_ADD("hcpu", MC6809E, XTAL(10'000'000) / 8) // MC68A09EP @ U24 MCFG_DEVICE_PROGRAM_MAP(hcpu_map) - MCFG_TIMER_DRIVER_ADD_PERIODIC("irq", wico_state, irq_housekeeping, attotime::from_hz(120)) // zero crossing - MCFG_TIMER_DRIVER_ADD_PERIODIC("firq", wico_state, firq_housekeeping, attotime::from_hz(750)) // time generator + TIMER(config, "irq").configure_periodic(FUNC(wico_state::irq_housekeeping), attotime::from_hz(120)); // zero crossing + TIMER(config, "firq").configure_periodic(FUNC(wico_state::firq_housekeeping), attotime::from_hz(750)); // time generator NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); /* Video */ diff --git a/src/mame/drivers/williams.cpp b/src/mame/drivers/williams.cpp index f8891d46ceb..73c659ed1f2 100644 --- a/src/mame/drivers/williams.cpp +++ b/src/mame/drivers/williams.cpp @@ -1495,10 +1495,10 @@ MACHINE_CONFIG_START(williams_state::williams) NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); // 5101 (Defender), 5114 or 6514 (later games) + battery // set a timer to go off every 32 scanlines, to toggle the VA11 line and update the screen - MCFG_TIMER_DRIVER_ADD_SCANLINE("scan_timer", williams_state, williams_va11_callback, "screen", 0, 32) + TIMER(config, "scan_timer").configure_scanline(FUNC(williams_state::williams_va11_callback), "screen", 0, 32); // also set a timer to go off on scanline 240 - MCFG_TIMER_DRIVER_ADD_SCANLINE("240_timer", williams_state, williams_count240_callback, "screen", 0, 240) + TIMER(config, "240_timer").configure_scanline(FUNC(williams_state::williams_count240_callback), "screen", 0, 240); WATCHDOG_TIMER(config, m_watchdog); @@ -1607,7 +1607,8 @@ MACHINE_CONFIG_START(spdball_state::spdball) MACHINE_CONFIG_END -MACHINE_CONFIG_START(williams_state::lottofun) +void williams_state::lottofun(machine_config &config) +{ williams(config); /* basic machine hardware */ @@ -1616,8 +1617,8 @@ MACHINE_CONFIG_START(williams_state::lottofun) m_pia[0]->writepa_handler().set("ticket", FUNC(ticket_dispenser_device::motor_w)).bit(7); m_pia[0]->ca2_handler().set(FUNC(williams_state::lottofun_coin_lock_w)); - MCFG_TICKET_DISPENSER_ADD("ticket", attotime::from_msec(70), TICKET_MOTOR_ACTIVE_LOW, TICKET_STATUS_ACTIVE_HIGH) -MACHINE_CONFIG_END + TICKET_DISPENSER(config, "ticket", attotime::from_msec(70), TICKET_MOTOR_ACTIVE_LOW, TICKET_STATUS_ACTIVE_HIGH); +} MACHINE_CONFIG_START(williams_state::sinistar) @@ -1749,10 +1750,10 @@ MACHINE_CONFIG_START(williams2_state::williams2) NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); // 5114 + battery // set a timer to go off every 32 scanlines, to toggle the VA11 line and update the screen - MCFG_TIMER_DRIVER_ADD_SCANLINE("scan_timer", williams2_state, williams2_va11_callback, "screen", 0, 32) + TIMER(config, "scan_timer").configure_scanline(FUNC(williams2_state::williams2_va11_callback), "screen", 0, 32); // also set a timer to go off on scanline 254 - MCFG_TIMER_DRIVER_ADD_SCANLINE("254_timer", williams2_state, williams2_endscreen_callback, "screen", 8, 246) + TIMER(config, "254_timer").configure_scanline(FUNC(williams2_state::williams2_endscreen_callback), "screen", 8, 246); WATCHDOG_TIMER(config, m_watchdog); diff --git a/src/mame/drivers/witch.cpp b/src/mame/drivers/witch.cpp index 7cf072ecbf6..82bc8fc8c98 100644 --- a/src/mame/drivers/witch.cpp +++ b/src/mame/drivers/witch.cpp @@ -969,7 +969,7 @@ MACHINE_CONFIG_START(witch_state::witch) NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); - MCFG_TICKET_DISPENSER_ADD("hopper", attotime::from_msec(HOPPER_PULSE), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_HIGH) + TICKET_DISPENSER(config, m_hopper, attotime::from_msec(HOPPER_PULSE), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_HIGH); // 82C255 (actual chip on PCB) is equivalent to two 8255s I8255(config, m_ppi[0]); diff --git a/src/mame/drivers/wmg.cpp b/src/mame/drivers/wmg.cpp index afd1d7d8de3..e16fbcef082 100644 --- a/src/mame/drivers/wmg.cpp +++ b/src/mame/drivers/wmg.cpp @@ -529,10 +529,10 @@ MACHINE_CONFIG_START(wmg_state::wmg) ADDRESS_MAP_BANK(config, "bankc000").set_map(&wmg_state::wmg_banked_map).set_options(ENDIANNESS_BIG, 8, 16, 0x1000); // set a timer to go off every 32 scanlines, to toggle the VA11 line and update the screen - MCFG_TIMER_DRIVER_ADD_SCANLINE("scan_timer", williams_state, williams_va11_callback, "screen", 0, 32) + TIMER(config, "scan_timer").configure_scanline(FUNC(williams_state::williams_va11_callback), "screen", 0, 32); // also set a timer to go off on scanline 240 - MCFG_TIMER_DRIVER_ADD_SCANLINE("240_timer", williams_state, williams_count240_callback, "screen", 0, 240) + TIMER(config, "240_timer").configure_scanline(FUNC(williams_state::williams_count240_callback), "screen", 0, 240); WATCHDOG_TIMER(config, "watchdog"); diff --git a/src/mame/drivers/wpc_95.cpp b/src/mame/drivers/wpc_95.cpp index 42312011bc5..c02f0c51ffa 100644 --- a/src/mame/drivers/wpc_95.cpp +++ b/src/mame/drivers/wpc_95.cpp @@ -2254,7 +2254,7 @@ MACHINE_CONFIG_START(wpc_95_state::wpc_95) MCFG_DEVICE_ADD("maincpu", MC6809E, XTAL(8'000'000)/4) // 68B09E MCFG_DEVICE_PROGRAM_MAP(wpc_95_map) MCFG_DEVICE_PERIODIC_INT_DRIVER(wpc_95_state, irq0_line_assert, XTAL(8'000'000)/8192.0) - MCFG_TIMER_DRIVER_ADD_PERIODIC("zero_crossing", wpc_95_state, zc_timer, attotime::from_hz(120)) // Mains power zero crossing + TIMER(config, "zero_crossing").configure_periodic(FUNC(wpc_95_state::zc_timer), attotime::from_hz(120)); // Mains power zero crossing MCFG_DEVICE_ADD("pic", WPC_PIC, 0) MCFG_DEVICE_ADD("lamp", WPC_LAMP, 0) diff --git a/src/mame/drivers/wpc_dcs.cpp b/src/mame/drivers/wpc_dcs.cpp index a1b988f0bba..30217fb9dc4 100644 --- a/src/mame/drivers/wpc_dcs.cpp +++ b/src/mame/drivers/wpc_dcs.cpp @@ -430,7 +430,7 @@ MACHINE_CONFIG_START(wpc_dcs_state::wpc_dcs) MCFG_DEVICE_PROGRAM_MAP(wpc_dcs_map) MCFG_DEVICE_PERIODIC_INT_DRIVER(wpc_dcs_state, irq0_line_assert, XTAL(8'000'000)/8192.0) - MCFG_TIMER_DRIVER_ADD_PERIODIC("zero_crossing", wpc_dcs_state, zc_timer, attotime::from_hz(120)) // Mains power zero crossing + TIMER(config, "zero_crossing").configure_periodic(FUNC(wpc_dcs_state::zc_timer), attotime::from_hz(120)); // Mains power zero crossing MCFG_DEVICE_ADD("lamp", WPC_LAMP, 0) MCFG_DEVICE_ADD("out", WPC_OUT, 0, 3) diff --git a/src/mame/drivers/wpc_s.cpp b/src/mame/drivers/wpc_s.cpp index be54001da58..e61fd98592e 100644 --- a/src/mame/drivers/wpc_s.cpp +++ b/src/mame/drivers/wpc_s.cpp @@ -1976,7 +1976,7 @@ MACHINE_CONFIG_START(wpc_s_state::wpc_s) MCFG_DEVICE_ADD("maincpu", MC6809E, XTAL(8'000'000)/4) MCFG_DEVICE_PROGRAM_MAP(wpc_s_map) MCFG_DEVICE_PERIODIC_INT_DRIVER(wpc_s_state, irq0_line_assert, XTAL(8'000'000)/8192.0) - MCFG_TIMER_DRIVER_ADD_PERIODIC("zero_crossing", wpc_s_state, zc_timer, attotime::from_hz(120)) // Mains power zero crossing + TIMER(config, "zero_crossing").configure_periodic(FUNC(wpc_s_state::zc_timer), attotime::from_hz(120)); // Mains power zero crossing MCFG_DEVICE_ADD("shift", WPC_SHIFT, 0) MCFG_DEVICE_ADD("pic", WPC_PIC, 0) diff --git a/src/mame/drivers/wwfsstar.cpp b/src/mame/drivers/wwfsstar.cpp index 4402d630f96..d853f4a128f 100644 --- a/src/mame/drivers/wwfsstar.cpp +++ b/src/mame/drivers/wwfsstar.cpp @@ -418,7 +418,7 @@ MACHINE_CONFIG_START(wwfsstar_state::wwfsstar) /* basic machine hardware */ MCFG_DEVICE_ADD("maincpu", M68000, CPU_CLOCK) MCFG_DEVICE_PROGRAM_MAP(main_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", wwfsstar_state, scanline, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(wwfsstar_state::scanline), "screen", 0, 1); MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(3'579'545)) MCFG_DEVICE_PROGRAM_MAP(sound_map) diff --git a/src/mame/drivers/x07.cpp b/src/mame/drivers/x07.cpp index cab05b9f357..62df0f9eeeb 100644 --- a/src/mame/drivers/x07.cpp +++ b/src/mame/drivers/x07.cpp @@ -1506,7 +1506,7 @@ MACHINE_CONFIG_START(x07_state::x07) /* printer */ MCFG_DEVICE_ADD("printer", PRINTER, 0) - MCFG_TIMER_DRIVER_ADD_PERIODIC("blink_timer", x07_state, blink_timer, attotime::from_msec(300)) + TIMER(config, "blink_timer").configure_periodic(FUNC(x07_state::blink_timer), attotime::from_msec(300)); NVRAM(config, "nvram1").set_custom_handler(FUNC(x07_state::nvram_init)); // t6834 RAM NVRAM(config, "nvram2", nvram_device::DEFAULT_ALL_0); // RAM banks diff --git a/src/mame/drivers/x1.cpp b/src/mame/drivers/x1.cpp index 0a41b7f62e3..25d0fc89e49 100644 --- a/src/mame/drivers/x1.cpp +++ b/src/mame/drivers/x1.cpp @@ -2272,8 +2272,8 @@ MACHINE_CONFIG_START(x1_state::x1) MCFG_SOFTWARE_LIST_ADD("cass_list","x1_cass") - MCFG_TIMER_DRIVER_ADD_PERIODIC("keyboard_timer", x1_state, x1_keyboard_callback, attotime::from_hz(250)) - MCFG_TIMER_DRIVER_ADD_PERIODIC("cmt_wind_timer", x1_state, x1_cmt_wind_timer, attotime::from_hz(16)) + TIMER(config, "keyboard_timer").configure_periodic(FUNC(x1_state::x1_keyboard_callback), attotime::from_hz(250)); + TIMER(config, "cmt_wind_timer").configure_periodic(FUNC(x1_state::x1_cmt_wind_timer), attotime::from_hz(16)); MACHINE_CONFIG_END MACHINE_CONFIG_START(x1_state::x1turbo) diff --git a/src/mame/drivers/x1twin.cpp b/src/mame/drivers/x1twin.cpp index a12b96eb0a6..3676fd09c8e 100644 --- a/src/mame/drivers/x1twin.cpp +++ b/src/mame/drivers/x1twin.cpp @@ -515,8 +515,8 @@ MACHINE_CONFIG_START(x1twin_state::x1twin) MCFG_SOFTWARE_LIST_ADD("cass_list","x1_cass") - MCFG_TIMER_DRIVER_ADD_PERIODIC("keyboard_timer", x1twin_state, x1_keyboard_callback, attotime::from_hz(250)) - MCFG_TIMER_DRIVER_ADD_PERIODIC("cmt_wind_timer", x1twin_state, x1_cmt_wind_timer, attotime::from_hz(16)) + TIMER(config, "keyboard_timer").configure_periodic(FUNC(x1twin_state::x1_keyboard_callback), attotime::from_hz(250)); + TIMER(config, "cmt_wind_timer").configure_periodic(FUNC(x1twin_state::x1_cmt_wind_timer), attotime::from_hz(16)); MACHINE_CONFIG_END ROM_START( x1twin ) diff --git a/src/mame/drivers/xain.cpp b/src/mame/drivers/xain.cpp index 6d97b221b56..74eae071c24 100644 --- a/src/mame/drivers/xain.cpp +++ b/src/mame/drivers/xain.cpp @@ -476,7 +476,7 @@ MACHINE_CONFIG_START(xain_state::xsleena) // basic machine hardware MCFG_DEVICE_ADD(m_maincpu, MC6809E, CPU_CLOCK) // 68B09E MCFG_DEVICE_PROGRAM_MAP(main_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", xain_state, scanline, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(xain_state::scanline), "screen", 0, 1); MCFG_DEVICE_ADD(m_subcpu, MC6809E, CPU_CLOCK) // 68B09E MCFG_DEVICE_PROGRAM_MAP(cpu_map_B) diff --git a/src/mame/drivers/xerox820.cpp b/src/mame/drivers/xerox820.cpp index 5e8703bacf0..9d8af676c7a 100644 --- a/src/mame/drivers/xerox820.cpp +++ b/src/mame/drivers/xerox820.cpp @@ -630,7 +630,7 @@ MACHINE_CONFIG_START(xerox820_state::xerox820) m_ctc->intr_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); m_ctc->zc_callback<0>().set(m_ctc, FUNC(z80ctc_device::trg1)); m_ctc->zc_callback<2>().set(m_ctc, FUNC(z80ctc_device::trg3)); - //MCFG_TIMER_DRIVER_ADD_PERIODIC("ctc", xerox820_state, ctc_tick, attotime::from_hz(20_MHz_XTAL / 8)) + //TIMER(config, "ctc").configure_periodic(FUNC(xerox820_state::ctc_tick), attotime::from_hz(20_MHz_XTAL / 8)); FD1771(config, m_fdc, 20_MHz_XTAL / 20); m_fdc->intrq_wr_callback().set(FUNC(xerox820_state::fdc_intrq_w)); @@ -719,7 +719,7 @@ MACHINE_CONFIG_START(xerox820ii_state::xerox820ii) m_ctc->intr_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); m_ctc->zc_callback<0>().set(m_ctc, FUNC(z80ctc_device::trg1)); m_ctc->zc_callback<2>().set(m_ctc, FUNC(z80ctc_device::trg3)); - //MCFG_TIMER_DRIVER_ADD_PERIODIC("ctc", xerox820_state, ctc_tick, attotime::from_hz(16_MHz_XTAL / 4)) + //TIMER(config, "ctc").configure_periodic(FUNC(xerox820_state::ctc_tick), attotime::from_hz(16_MHz_XTAL / 4)); FD1797(config, m_fdc, 16_MHz_XTAL / 8); m_fdc->intrq_wr_callback().set(FUNC(xerox820_state::fdc_intrq_w)); diff --git a/src/mame/drivers/xmen.cpp b/src/mame/drivers/xmen.cpp index 53008a8cc55..c1f6e4ee3b7 100644 --- a/src/mame/drivers/xmen.cpp +++ b/src/mame/drivers/xmen.cpp @@ -303,7 +303,7 @@ MACHINE_CONFIG_START(xmen_state::xmen) /* basic machine hardware */ MCFG_DEVICE_ADD("maincpu", M68000, XTAL(16'000'000)) /* verified on pcb */ MCFG_DEVICE_PROGRAM_MAP(main_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", xmen_state, xmen_scanline, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(xmen_state::xmen_scanline), "screen", 0, 1); MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(16'000'000)/2) /* verified on pcb */ MCFG_DEVICE_PROGRAM_MAP(sound_map) @@ -352,7 +352,7 @@ MACHINE_CONFIG_START(xmen_state::xmen6p) /* basic machine hardware */ MCFG_DEVICE_ADD("maincpu", M68000, XTAL(16'000'000)) MCFG_DEVICE_PROGRAM_MAP(_6p_main_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", xmen_state, xmen_scanline, "screen", 0, 1) + TIMER(config, "scantimer").configure_scanline(FUNC(xmen_state::xmen_scanline), "screen", 0, 1); MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(16'000'000)/2) MCFG_DEVICE_PROGRAM_MAP(sound_map) diff --git a/src/mame/drivers/xtheball.cpp b/src/mame/drivers/xtheball.cpp index 663a8395e38..f4b33174a6d 100644 --- a/src/mame/drivers/xtheball.cpp +++ b/src/mame/drivers/xtheball.cpp @@ -318,7 +318,7 @@ MACHINE_CONFIG_START(xtheball_state::xtheball) latch3.q_out_cb<3>().set(FUNC(xtheball_state::foreground_mode_w)); // Q3 = video foreground control? - MCFG_TICKET_DISPENSER_ADD("ticket", attotime::from_msec(100), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_HIGH) + TICKET_DISPENSER(config, m_ticket, attotime::from_msec(100), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_HIGH); WATCHDOG_TIMER(config, m_watchdog); diff --git a/src/mame/drivers/z9001.cpp b/src/mame/drivers/z9001.cpp index e29df35bee0..7b4002efff6 100644 --- a/src/mame/drivers/z9001.cpp +++ b/src/mame/drivers/z9001.cpp @@ -233,7 +233,7 @@ MACHINE_CONFIG_START(z9001_state::z9001) /* Devices */ generic_keyboard_device &keyboard(GENERIC_KEYBOARD(config, "keyboard", 0)); keyboard.set_keyboard_callback(FUNC(z9001_state::kbd_put)); - MCFG_TIMER_DRIVER_ADD_PERIODIC("z9001_timer", z9001_state, timer_callback, attotime::from_msec(10)) + TIMER(config, "z9001_timer").configure_periodic(FUNC(z9001_state::timer_callback), attotime::from_msec(10)); z80pio_device& pio1(Z80PIO(config, "z80pio1", XTAL(9'830'400) / 4)); pio1.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); diff --git a/src/mame/drivers/zaurus.cpp b/src/mame/drivers/zaurus.cpp index 1479def5177..7be6ae5d832 100644 --- a/src/mame/drivers/zaurus.cpp +++ b/src/mame/drivers/zaurus.cpp @@ -1525,7 +1525,7 @@ MACHINE_CONFIG_START(zaurus_state::zaurus) MCFG_DEVICE_ADD(m_maincpu,PXA255,MAIN_CLOCK) MCFG_DEVICE_PROGRAM_MAP(zaurus_map) - MCFG_TIMER_DRIVER_ADD_PERIODIC("rtc_timer", zaurus_state, rtc_irq_callback, attotime::from_hz(XTAL(32'768))) + TIMER(config, "rtc_timer").configure_periodic(FUNC(zaurus_state::rtc_irq_callback), attotime::from_hz(XTAL(32'768))); /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/machine/megacd.cpp b/src/mame/machine/megacd.cpp index 24aad56af20..b5f5a996e73 100644 --- a/src/mame/machine/megacd.cpp +++ b/src/mame/machine/megacd.cpp @@ -305,10 +305,10 @@ MACHINE_CONFIG_START(sega_segacd_device::device_add_mconfig) m_lc89510_temp->set_cdc_do_dma_callback(FUNC(sega_segacd_device::SegaCD_CDC_Do_DMA), this); // hack - MCFG_TIMER_ADD_NONE("sw_timer") //stopwatch timer - MCFG_TIMER_DRIVER_ADD("stamp_timer", sega_segacd_device, stamp_timer_callback) - MCFG_TIMER_DRIVER_ADD("irq3_timer", sega_segacd_device, irq3_timer_callback) - MCFG_TIMER_DRIVER_ADD("dma_timer", sega_segacd_device, dma_timer_callback) + TIMER(config, m_stopwatch_timer).configure_generic(timer_device::expired_delegate()); //stopwatch timer + TIMER(config, m_stamp_timer).configure_generic(FUNC(sega_segacd_device::stamp_timer_callback)); + TIMER(config, m_irq3_timer).configure_generic(FUNC(sega_segacd_device::irq3_timer_callback)); + TIMER(config, m_dma_timer).configure_generic(FUNC(sega_segacd_device::dma_timer_callback)); config.set_default_layout(layout_megacd); diff --git a/src/mame/machine/megacdcd.cpp b/src/mame/machine/megacdcd.cpp index 5620ab2f25c..dd5739a809f 100644 --- a/src/mame/machine/megacdcd.cpp +++ b/src/mame/machine/megacdcd.cpp @@ -1154,13 +1154,14 @@ TIMER_DEVICE_CALLBACK_MEMBER( lc89510_temp_device::segacd_access_timer_callback } -MACHINE_CONFIG_START(lc89510_temp_device::device_add_mconfig) - MCFG_TIMER_DRIVER_ADD_PERIODIC("hock_timer", lc89510_temp_device, segacd_access_timer_callback, attotime::from_hz(75)) +void lc89510_temp_device::device_add_mconfig(machine_config &config) +{ + TIMER(config, "hock_timer").configure_periodic(FUNC(lc89510_temp_device::segacd_access_timer_callback), attotime::from_hz(75)); - MCFG_DEVICE_ADD( "cdda", CDDA ) - MCFG_SOUND_ROUTE( 0, ":lspeaker", 0.50 ) // TODO: accurate volume balance - MCFG_SOUND_ROUTE( 1, ":rspeaker", 0.50 ) -MACHINE_CONFIG_END + cdda_device &cdda(CDDA(config, "cdda")); + cdda.add_route(0, ":lspeaker", 0.50); // TODO: accurate volume balance + cdda.add_route(1, ":rspeaker", 0.50); +} diff --git a/src/mame/machine/megadriv.cpp b/src/mame/machine/megadriv.cpp index b913863b3e5..ea7984977a0 100644 --- a/src/mame/machine/megadriv.cpp +++ b/src/mame/machine/megadriv.cpp @@ -877,9 +877,10 @@ IRQ_CALLBACK_MEMBER(md_base_state::genesis_int_callback) return (0x60+irqline*4)/4; // vector address } -MACHINE_CONFIG_START(md_base_state::megadriv_timers) - MCFG_TIMER_DEVICE_ADD(m_scan_timer, "gen_vdp", sega315_5313_device, megadriv_scanline_timer_callback) -MACHINE_CONFIG_END +void md_base_state::megadriv_timers(machine_config &config) +{ + TIMER(config, m_scan_timer).configure_generic("gen_vdp", FUNC(sega315_5313_device::megadriv_scanline_timer_callback)); +} MACHINE_CONFIG_START(md_base_state::md_ntsc) diff --git a/src/mame/video/cgc7900.cpp b/src/mame/video/cgc7900.cpp index 5668b63a75f..41e56d568ca 100644 --- a/src/mame/video/cgc7900.cpp +++ b/src/mame/video/cgc7900.cpp @@ -239,5 +239,5 @@ MACHINE_CONFIG_START(cgc7900_state::cgc7900_video) MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, m_palette, gfx_cgc7900) PALETTE(config, m_palette, FUNC(cgc7900_state::cgc7900_palette), 8); - MCFG_TIMER_DRIVER_ADD_PERIODIC("blink", cgc7900_state, blink_tick, attotime::from_hz(XTAL(28'480'000)/7500000)) + TIMER(config, "blink").configure_periodic(FUNC(cgc7900_state::blink_tick), attotime::from_hz(XTAL(28'480'000)/7500000)); MACHINE_CONFIG_END diff --git a/src/mame/video/decodmd1.cpp b/src/mame/video/decodmd1.cpp index 1553fcbb137..3467d4801da 100644 --- a/src/mame/video/decodmd1.cpp +++ b/src/mame/video/decodmd1.cpp @@ -203,7 +203,7 @@ MACHINE_CONFIG_START(decodmd_type1_device::device_add_mconfig) MCFG_QUANTUM_TIME(attotime::from_hz(50)) - MCFG_TIMER_DRIVER_ADD_PERIODIC("nmi_timer", decodmd_type1_device, dmd_nmi, attotime::from_hz(2000)) // seems a lot + TIMER(config, "nmi_timer").configure_periodic(FUNC(decodmd_type1_device::dmd_nmi), attotime::from_hz(2000)); // seems a lot MCFG_SCREEN_ADD("dmd", LCD) MCFG_SCREEN_SIZE(128, 16) diff --git a/src/mame/video/pcd.cpp b/src/mame/video/pcd.cpp index 2b3a4fe8604..722b60068a6 100644 --- a/src/mame/video/pcd.cpp +++ b/src/mame/video/pcd.cpp @@ -99,7 +99,8 @@ ioport_constructor pcd_video_device::device_input_ports() const return INPUT_PORTS_NAME(pcd_mouse); } -MACHINE_CONFIG_START(pcd_video_device::device_add_mconfig) +void pcd_video_device::device_add_mconfig(machine_config &config) +{ i8741_device &mcu(I8741(config, "graphics", 16_MHz_XTAL / 2)); mcu.p1_in_cb().set(FUNC(pcd_video_device::p1_r)); mcu.p2_out_cb().set(FUNC(pcd_video_device::p2_w)); @@ -117,8 +118,8 @@ MACHINE_CONFIG_START(pcd_video_device::device_add_mconfig) m_crtc->set_display_callback(FUNC(pcd_video_device::display_pixels)); m_crtc->set_screen("screen"); - MCFG_TIMER_DRIVER_ADD_PERIODIC("mouse_timer", pcd_video_device, mouse_timer, attotime::from_hz(15000)) // guess -MACHINE_CONFIG_END + TIMER(config, "mouse_timer").configure_periodic(FUNC(pcd_video_device::mouse_timer), attotime::from_hz(15000)); // guess +} void pcx_video_device::pcx_vid_map(address_map &map) { diff --git a/src/mame/video/wpc_dmd.cpp b/src/mame/video/wpc_dmd.cpp index 683ee65e407..8ab7b1c9d31 100644 --- a/src/mame/video/wpc_dmd.cpp +++ b/src/mame/video/wpc_dmd.cpp @@ -43,7 +43,7 @@ MACHINE_CONFIG_START(wpc_dmd_device::device_add_mconfig) MCFG_SCREEN_SIZE(128*4, 32*4) MCFG_SCREEN_VISIBLE_AREA(0, 128*4-1, 0, 32*4-1) - MCFG_TIMER_DRIVER_ADD_PERIODIC("scanline", wpc_dmd_device, scanline_timer, attotime::from_hz(60*4*32)) + TIMER(config, "scanline").configure_periodic(FUNC(wpc_dmd_device::scanline_timer), attotime::from_hz(60*4*32)); MACHINE_CONFIG_END void wpc_dmd_device::device_start() -- cgit v1.2.3