summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers
diff options
context:
space:
mode:
author Vas Crabb <vas@vastheman.com>2019-11-01 00:47:41 +1100
committer Vas Crabb <vas@vastheman.com>2019-11-01 00:47:41 +1100
commit6f4c1f6e5b2525ac8b700b3a0754f5e99c4223e1 (patch)
tree4b0e0ac5cf1c3a7fd518a7d8f4d12f39291b2629 /src/mame/drivers
parent0be348c7fbc8c0478f724ba098dabeb9eb3aab8c (diff)
Spring cleaning:
* Changed emu_fatalerror to use util::string_format semantics * Fixed some incorrectly marked up stuff in build scripts * Make internal layout compression type a scoped enum (only zlib is supported still, but at least the values aren't magic numbers now) * Fixed memory leaks in Xbox USB * There can only be one "perfect quantum" device - enforce that only the root machine can set it, as allowing subdevices to will cause weird issues with slot cards overiding it * Allow multiple devices to set maximum quantum and use the most restrictive one (it's maximum quantum, it would be minimum interleave) * Got rid of device_slot_card_interface as it wasn't providing value * Added a helper template to reduce certain kinds of boilerplate in slots/buses * Cleaned up some particularly bad slot code (plenty more of that to do), and made some slots more idiomatic
Diffstat (limited to 'src/mame/drivers')
-rw-r--r--src/mame/drivers/40love.cpp2
-rw-r--r--src/mame/drivers/adam.cpp34
-rw-r--r--src/mame/drivers/airbustr.cpp2
-rw-r--r--src/mame/drivers/airraid.cpp2
-rw-r--r--src/mame/drivers/ajax.cpp2
-rw-r--r--src/mame/drivers/alphatpx.cpp6
-rw-r--r--src/mame/drivers/amspdwy.cpp2
-rw-r--r--src/mame/drivers/amstrad.cpp6
-rw-r--r--src/mame/drivers/angelkds.cpp2
-rw-r--r--src/mame/drivers/apollo.cpp8
-rw-r--r--src/mame/drivers/apple2.cpp2
-rw-r--r--src/mame/drivers/apple2e.cpp2
-rw-r--r--src/mame/drivers/apple2gs.cpp2
-rw-r--r--src/mame/drivers/apple3.cpp2
-rw-r--r--src/mame/drivers/arabian.cpp2
-rw-r--r--src/mame/drivers/arcadia.cpp2
-rw-r--r--src/mame/drivers/argus.cpp6
-rw-r--r--src/mame/drivers/arkanoid.cpp2
-rw-r--r--src/mame/drivers/artmagic.cpp2
-rw-r--r--src/mame/drivers/astrohome.cpp2
-rw-r--r--src/mame/drivers/asuka.cpp10
-rw-r--r--src/mame/drivers/at.cpp14
-rw-r--r--src/mame/drivers/attache.cpp6
-rw-r--r--src/mame/drivers/avigo.cpp2
-rw-r--r--src/mame/drivers/balsente.cpp2
-rw-r--r--src/mame/drivers/baraduke.cpp2
-rw-r--r--src/mame/drivers/battlane.cpp2
-rw-r--r--src/mame/drivers/bbc.cpp18
-rw-r--r--src/mame/drivers/bebox.cpp2
-rw-r--r--src/mame/drivers/bfm_sc2.cpp4
-rw-r--r--src/mame/drivers/bigevglf.cpp2
-rw-r--r--src/mame/drivers/bking.cpp2
-rw-r--r--src/mame/drivers/bladestl.cpp2
-rw-r--r--src/mame/drivers/blueprnt.cpp2
-rw-r--r--src/mame/drivers/bml3.cpp25
-rw-r--r--src/mame/drivers/bnstars.cpp2
-rw-r--r--src/mame/drivers/bublbobl.cpp4
-rw-r--r--src/mame/drivers/bwing.cpp2
-rw-r--r--src/mame/drivers/c128.cpp24
-rw-r--r--src/mame/drivers/c64.cpp15
-rw-r--r--src/mame/drivers/cabal.cpp2
-rw-r--r--src/mame/drivers/cave.cpp2
-rw-r--r--src/mame/drivers/cbm2.cpp13
-rw-r--r--src/mame/drivers/cedar_magnet.cpp2
-rw-r--r--src/mame/drivers/chaknpop.cpp2
-rw-r--r--src/mame/drivers/champbas.cpp8
-rw-r--r--src/mame/drivers/chihiro.cpp26
-rw-r--r--src/mame/drivers/chinagat.cpp6
-rw-r--r--src/mame/drivers/chqflag.cpp2
-rw-r--r--src/mame/drivers/cischeat.cpp4
-rw-r--r--src/mame/drivers/cloak.cpp2
-rw-r--r--src/mame/drivers/cmi.cpp3
-rw-r--r--src/mame/drivers/cntsteer.cpp5
-rw-r--r--src/mame/drivers/cobra.cpp2
-rw-r--r--src/mame/drivers/combatsc.cpp4
-rw-r--r--src/mame/drivers/concept.cpp2
-rw-r--r--src/mame/drivers/contra.cpp2
-rw-r--r--src/mame/drivers/crgolf.cpp2
-rw-r--r--src/mame/drivers/cubeqst.cpp2
-rw-r--r--src/mame/drivers/cyberbal.cpp2
-rw-r--r--src/mame/drivers/cybertnk.cpp2
-rw-r--r--src/mame/drivers/dai.cpp2
-rw-r--r--src/mame/drivers/darius.cpp2
-rw-r--r--src/mame/drivers/dassault.cpp4
-rw-r--r--src/mame/drivers/dblewing.cpp2
-rw-r--r--src/mame/drivers/ddayjlc.cpp2
-rw-r--r--src/mame/drivers/ddragon.cpp6
-rw-r--r--src/mame/drivers/ddribble.cpp2
-rw-r--r--src/mame/drivers/deadang.cpp2
-rw-r--r--src/mame/drivers/dec0.cpp8
-rw-r--r--src/mame/drivers/dec8.cpp12
-rw-r--r--src/mame/drivers/deco32.cpp4
-rw-r--r--src/mame/drivers/deco_ld.cpp2
-rw-r--r--src/mame/drivers/decocass.cpp2
-rw-r--r--src/mame/drivers/dectalk.cpp2
-rw-r--r--src/mame/drivers/digel804.cpp2
-rw-r--r--src/mame/drivers/divebomb.cpp2
-rw-r--r--src/mame/drivers/djboy.cpp2
-rw-r--r--src/mame/drivers/dmndrby.cpp2
-rw-r--r--src/mame/drivers/dmv.cpp2
-rw-r--r--src/mame/drivers/dogfgt.cpp2
-rw-r--r--src/mame/drivers/dpb7000.cpp2
-rw-r--r--src/mame/drivers/drmicro.cpp2
-rw-r--r--src/mame/drivers/dynduke.cpp2
-rw-r--r--src/mame/drivers/eolith.cpp2
-rw-r--r--src/mame/drivers/eprom.cpp6
-rw-r--r--src/mame/drivers/equites.cpp5
-rw-r--r--src/mame/drivers/esripsys.cpp2
-rw-r--r--src/mame/drivers/europc.cpp2
-rw-r--r--src/mame/drivers/exelv.cpp4
-rw-r--r--src/mame/drivers/exidy.cpp4
-rw-r--r--src/mame/drivers/exprraid.cpp2
-rw-r--r--src/mame/drivers/exterm.cpp2
-rw-r--r--src/mame/drivers/exzisus.cpp2
-rw-r--r--src/mame/drivers/f1gp.cpp4
-rw-r--r--src/mame/drivers/fantland.cpp2
-rw-r--r--src/mame/drivers/fidel_card.cpp2
-rw-r--r--src/mame/drivers/fidel_eag68k.cpp2
-rw-r--r--src/mame/drivers/firefox.cpp2
-rw-r--r--src/mame/drivers/firetrap.cpp2
-rw-r--r--src/mame/drivers/flkatck.cpp2
-rw-r--r--src/mame/drivers/flower.cpp2
-rw-r--r--src/mame/drivers/flstory.cpp2
-rw-r--r--src/mame/drivers/fm7.cpp15
-rw-r--r--src/mame/drivers/gaelco.cpp6
-rw-r--r--src/mame/drivers/gaelco2.cpp1
-rw-r--r--src/mame/drivers/gaelco3d.cpp2
-rw-r--r--src/mame/drivers/gal3.cpp2
-rw-r--r--src/mame/drivers/galaga.cpp8
-rw-r--r--src/mame/drivers/gamecom.cpp2
-rw-r--r--src/mame/drivers/gaplus.cpp2
-rw-r--r--src/mame/drivers/gladiatr.cpp4
-rw-r--r--src/mame/drivers/glass.cpp1
-rw-r--r--src/mame/drivers/gradius3.cpp2
-rw-r--r--src/mame/drivers/grchamp.cpp2
-rw-r--r--src/mame/drivers/gsword.cpp4
-rw-r--r--src/mame/drivers/gticlub.cpp4
-rw-r--r--src/mame/drivers/gyruss.cpp2
-rw-r--r--src/mame/drivers/harddriv.cpp8
-rw-r--r--src/mame/drivers/hazeltin.cpp2
-rw-r--r--src/mame/drivers/hh_hmcs40.cpp6
-rw-r--r--src/mame/drivers/homedata.cpp8
-rw-r--r--src/mame/drivers/hornet.cpp2
-rw-r--r--src/mame/drivers/hp9825.cpp2
-rw-r--r--src/mame/drivers/hvyunit.cpp2
-rw-r--r--src/mame/drivers/ikki.cpp3
-rw-r--r--src/mame/drivers/imds2.cpp2
-rw-r--r--src/mame/drivers/imolagp.cpp2
-rw-r--r--src/mame/drivers/intv.cpp4
-rw-r--r--src/mame/drivers/itech32.cpp2
-rw-r--r--src/mame/drivers/jackal.cpp2
-rw-r--r--src/mame/drivers/jedi.cpp2
-rw-r--r--src/mame/drivers/jpmimpct.cpp4
-rw-r--r--src/mame/drivers/junior.cpp2
-rw-r--r--src/mame/drivers/jupace.cpp2
-rw-r--r--src/mame/drivers/kc.cpp114
-rw-r--r--src/mame/drivers/kenseim.cpp2
-rw-r--r--src/mame/drivers/kickgoal.cpp2
-rw-r--r--src/mame/drivers/kim1.cpp2
-rw-r--r--src/mame/drivers/kingdrby.cpp2
-rw-r--r--src/mame/drivers/kingobox.cpp4
-rw-r--r--src/mame/drivers/konamigx.cpp2
-rw-r--r--src/mame/drivers/ksayakyu.cpp2
-rw-r--r--src/mame/drivers/kyugo.cpp2
-rw-r--r--src/mame/drivers/ladyfrog.cpp2
-rw-r--r--src/mame/drivers/lasso.cpp2
-rw-r--r--src/mame/drivers/lastbank.cpp2
-rw-r--r--src/mame/drivers/liberate.cpp6
-rw-r--r--src/mame/drivers/lisa.cpp2
-rw-r--r--src/mame/drivers/lockon.cpp2
-rw-r--r--src/mame/drivers/lsasquad.cpp4
-rw-r--r--src/mame/drivers/lviv.cpp2
-rw-r--r--src/mame/drivers/lynx.cpp2
-rw-r--r--src/mame/drivers/m68705prg.cpp2
-rw-r--r--src/mame/drivers/mac.cpp6
-rw-r--r--src/mame/drivers/mac128.cpp2
-rw-r--r--src/mame/drivers/macpci.cpp2
-rw-r--r--src/mame/drivers/magmax.cpp2
-rw-r--r--src/mame/drivers/mappy.cpp6
-rw-r--r--src/mame/drivers/markham.cpp2
-rw-r--r--src/mame/drivers/matmania.cpp4
-rw-r--r--src/mame/drivers/mbc55x.cpp4
-rw-r--r--src/mame/drivers/meadows.cpp4
-rw-r--r--src/mame/drivers/megadriv.cpp12
-rw-r--r--src/mame/drivers/megaphx.cpp2
-rw-r--r--src/mame/drivers/megaplay.cpp2
-rw-r--r--src/mame/drivers/megasys1.cpp2
-rw-r--r--src/mame/drivers/megazone.cpp2
-rw-r--r--src/mame/drivers/mephisto_polgar.cpp2
-rw-r--r--src/mame/drivers/mexico86.cpp2
-rw-r--r--src/mame/drivers/micro3d.cpp2
-rw-r--r--src/mame/drivers/microvsn.cpp2
-rw-r--r--src/mame/drivers/mikromik.cpp2
-rw-r--r--src/mame/drivers/mindset.cpp2
-rw-r--r--src/mame/drivers/missb2.cpp2
-rw-r--r--src/mame/drivers/mlanding.cpp2
-rw-r--r--src/mame/drivers/model2.cpp2
-rw-r--r--src/mame/drivers/model3.cpp2
-rw-r--r--src/mame/drivers/mpu4vid.cpp2
-rw-r--r--src/mame/drivers/mrflea.cpp2
-rw-r--r--src/mame/drivers/ms32.cpp2
-rw-r--r--src/mame/drivers/msx.cpp6
-rw-r--r--src/mame/drivers/mystwarr.cpp2
-rw-r--r--src/mame/drivers/mz3500.cpp2
-rw-r--r--src/mame/drivers/n64.cpp2
-rw-r--r--src/mame/drivers/namcond1.cpp2
-rw-r--r--src/mame/drivers/namcos1.cpp2
-rw-r--r--src/mame/drivers/namcos12.cpp6
-rw-r--r--src/mame/drivers/namcos2.cpp16
-rw-r--r--src/mame/drivers/namcos21.cpp2
-rw-r--r--src/mame/drivers/namcos21_c67.cpp2
-rw-r--r--src/mame/drivers/namcos21_de.cpp2
-rw-r--r--src/mame/drivers/namcos22.cpp2
-rw-r--r--src/mame/drivers/namcos23.cpp6
-rw-r--r--src/mame/drivers/namcos86.cpp2
-rw-r--r--src/mame/drivers/nascom1.cpp20
-rw-r--r--src/mame/drivers/nc.cpp2
-rw-r--r--src/mame/drivers/ncd68k.cpp76
-rw-r--r--src/mame/drivers/neogeo.cpp43
-rw-r--r--src/mame/drivers/nightgal.cpp2
-rw-r--r--src/mame/drivers/ninjaw.cpp4
-rw-r--r--src/mame/drivers/nova2001.cpp4
-rw-r--r--src/mame/drivers/novag_savant.cpp2
-rw-r--r--src/mame/drivers/nss.cpp2
-rw-r--r--src/mame/drivers/nwk-tr.cpp2
-rw-r--r--src/mame/drivers/nycaptor.cpp6
-rw-r--r--src/mame/drivers/odyssey2.cpp8
-rw-r--r--src/mame/drivers/opwolf.cpp4
-rw-r--r--src/mame/drivers/oric.cpp2
-rw-r--r--src/mame/drivers/overdriv.cpp2
-rw-r--r--src/mame/drivers/p2000t.cpp2
-rw-r--r--src/mame/drivers/pacland.cpp2
-rw-r--r--src/mame/drivers/palm.cpp2
-rw-r--r--src/mame/drivers/pandoras.cpp2
-rw-r--r--src/mame/drivers/paranoia.cpp2
-rw-r--r--src/mame/drivers/pc.cpp6
-rw-r--r--src/mame/drivers/pc1512.cpp4
-rw-r--r--src/mame/drivers/pc8801.cpp4
-rw-r--r--src/mame/drivers/pce.cpp4
-rw-r--r--src/mame/drivers/pcw.cpp4
-rw-r--r--src/mame/drivers/pcw16.cpp2
-rw-r--r--src/mame/drivers/pitnrun.cpp2
-rw-r--r--src/mame/drivers/plus4.cpp7
-rw-r--r--src/mame/drivers/plygonet.cpp2
-rw-r--r--src/mame/drivers/pmd85.cpp2
-rw-r--r--src/mame/drivers/pocketc.cpp2
-rw-r--r--src/mame/drivers/pokemini.cpp2
-rw-r--r--src/mame/drivers/polepos.cpp4
-rw-r--r--src/mame/drivers/popper.cpp2
-rw-r--r--src/mame/drivers/prof80.cpp10
-rw-r--r--src/mame/drivers/progolf.cpp2
-rw-r--r--src/mame/drivers/ps2.cpp4
-rw-r--r--src/mame/drivers/ps2sony.cpp2
-rw-r--r--src/mame/drivers/psychic5.cpp4
-rw-r--r--src/mame/drivers/qix.cpp6
-rw-r--r--src/mame/drivers/quasar.cpp2
-rw-r--r--src/mame/drivers/qvt102.cpp6
-rw-r--r--src/mame/drivers/r9751.cpp2
-rw-r--r--src/mame/drivers/raiden.cpp2
-rw-r--r--src/mame/drivers/rastan.cpp2
-rw-r--r--src/mame/drivers/rbisland.cpp4
-rw-r--r--src/mame/drivers/retofinv.cpp2
-rw-r--r--src/mame/drivers/rollext.cpp2
-rw-r--r--src/mame/drivers/rungun.cpp2
-rw-r--r--src/mame/drivers/rvoice.cpp2
-rw-r--r--src/mame/drivers/s11b.cpp2
-rw-r--r--src/mame/drivers/segahang.cpp2
-rw-r--r--src/mame/drivers/segajw.cpp2
-rw-r--r--src/mame/drivers/segaorun.cpp2
-rw-r--r--src/mame/drivers/segas16b.cpp2
-rw-r--r--src/mame/drivers/segas24.cpp2
-rw-r--r--src/mame/drivers/segaxbd.cpp2
-rw-r--r--src/mame/drivers/segaybd.cpp2
-rw-r--r--src/mame/drivers/seibuspi.cpp2
-rw-r--r--src/mame/drivers/seicross.cpp2
-rw-r--r--src/mame/drivers/sfcbox.cpp2
-rw-r--r--src/mame/drivers/sfkick.cpp2
-rw-r--r--src/mame/drivers/shanghai.cpp2
-rw-r--r--src/mame/drivers/shangkid.cpp2
-rw-r--r--src/mame/drivers/shougi.cpp2
-rw-r--r--src/mame/drivers/sidearms.cpp2
-rw-r--r--src/mame/drivers/simple_st0016.cpp2
-rw-r--r--src/mame/drivers/skykid.cpp2
-rw-r--r--src/mame/drivers/slapfght.cpp6
-rw-r--r--src/mame/drivers/slapshot.cpp4
-rw-r--r--src/mame/drivers/sms.cpp10
-rw-r--r--src/mame/drivers/sms_bootleg.cpp2
-rw-r--r--src/mame/drivers/smsmcorp.cpp2
-rw-r--r--src/mame/drivers/snes.cpp4
-rw-r--r--src/mame/drivers/snesb.cpp2
-rw-r--r--src/mame/drivers/snk.cpp12
-rw-r--r--src/mame/drivers/socrates.cpp4
-rw-r--r--src/mame/drivers/softbox.cpp2
-rw-r--r--src/mame/drivers/sothello.cpp2
-rw-r--r--src/mame/drivers/spacefb.cpp2
-rw-r--r--src/mame/drivers/spdheat.cpp2
-rw-r--r--src/mame/drivers/spec128.cpp2
-rw-r--r--src/mame/drivers/spectrum.cpp2
-rw-r--r--src/mame/drivers/speglsht.cpp2
-rw-r--r--src/mame/drivers/sprcros2.cpp2
-rw-r--r--src/mame/drivers/srmp5.cpp2
-rw-r--r--src/mame/drivers/sshangha.cpp2
-rw-r--r--src/mame/drivers/ssv.cpp6
-rw-r--r--src/mame/drivers/stfight.cpp2
-rw-r--r--src/mame/drivers/suna16.cpp8
-rw-r--r--src/mame/drivers/superchs.cpp2
-rw-r--r--src/mame/drivers/supracan.cpp3
-rw-r--r--src/mame/drivers/system1.cpp2
-rw-r--r--src/mame/drivers/taito_b.cpp34
-rw-r--r--src/mame/drivers/taito_h.cpp6
-rw-r--r--src/mame/drivers/taito_l.cpp8
-rw-r--r--src/mame/drivers/taito_x.cpp8
-rw-r--r--src/mame/drivers/taito_z.cpp14
-rw-r--r--src/mame/drivers/taitoair.cpp2
-rw-r--r--src/mame/drivers/taitojc.cpp2
-rw-r--r--src/mame/drivers/taitopjc.cpp2
-rw-r--r--src/mame/drivers/taitosj.cpp2
-rw-r--r--src/mame/drivers/taitotz.cpp2
-rw-r--r--src/mame/drivers/tandy1t.cpp4
-rw-r--r--src/mame/drivers/tankbust.cpp2
-rw-r--r--src/mame/drivers/tapatune.cpp2
-rw-r--r--src/mame/drivers/targeth.cpp1
-rw-r--r--src/mame/drivers/tatsumi.cpp6
-rw-r--r--src/mame/drivers/taxidriv.cpp2
-rw-r--r--src/mame/drivers/tbowl.cpp2
-rw-r--r--src/mame/drivers/tceptor.cpp2
-rw-r--r--src/mame/drivers/tecmo16.cpp2
-rw-r--r--src/mame/drivers/tehkanwc.cpp2
-rw-r--r--src/mame/drivers/thedeep.cpp2
-rw-r--r--src/mame/drivers/thunderj.cpp2
-rw-r--r--src/mame/drivers/tigeroad.cpp2
-rw-r--r--src/mame/drivers/tiki100.cpp6
-rw-r--r--src/mame/drivers/timelimt.cpp2
-rw-r--r--src/mame/drivers/timex.cpp2
-rw-r--r--src/mame/drivers/tispellb.cpp2
-rw-r--r--src/mame/drivers/tk2000.cpp2
-rw-r--r--src/mame/drivers/tmc600.cpp2
-rw-r--r--src/mame/drivers/tnzs.cpp2
-rw-r--r--src/mame/drivers/toaplan1.cpp18
-rw-r--r--src/mame/drivers/toaplan2.cpp16
-rw-r--r--src/mame/drivers/tomcat.cpp2
-rw-r--r--src/mame/drivers/tosh1000.cpp2
-rw-r--r--src/mame/drivers/tourvis.cpp2
-rw-r--r--src/mame/drivers/tp84.cpp2
-rw-r--r--src/mame/drivers/triforce.cpp2
-rw-r--r--src/mame/drivers/trs80.cpp4
-rw-r--r--src/mame/drivers/tubep.cpp2
-rw-r--r--src/mame/drivers/turbo.cpp2
-rw-r--r--src/mame/drivers/tvcapcom.cpp2
-rw-r--r--src/mame/drivers/twin16.cpp6
-rw-r--r--src/mame/drivers/twincobr.cpp2
-rw-r--r--src/mame/drivers/uapce.cpp2
-rw-r--r--src/mame/drivers/ultraman.cpp2
-rw-r--r--src/mame/drivers/undrfire.cpp2
-rw-r--r--src/mame/drivers/unichamp.cpp2
-rw-r--r--src/mame/drivers/v1050.cpp4
-rw-r--r--src/mame/drivers/vastar.cpp2
-rw-r--r--src/mame/drivers/vcombat.cpp2
-rw-r--r--src/mame/drivers/vic10.cpp7
-rw-r--r--src/mame/drivers/vicdual.cpp2
-rw-r--r--src/mame/drivers/vidbrain.cpp2
-rw-r--r--src/mame/drivers/volfied.cpp2
-rw-r--r--src/mame/drivers/vsnes.cpp2
-rw-r--r--src/mame/drivers/vtech2.cpp2
-rw-r--r--src/mame/drivers/wangpc.cpp12
-rw-r--r--src/mame/drivers/wardner.cpp2
-rw-r--r--src/mame/drivers/wecleman.cpp4
-rw-r--r--src/mame/drivers/wgp.cpp4
-rw-r--r--src/mame/drivers/wheelfir.cpp2
-rw-r--r--src/mame/drivers/witch.cpp2
-rw-r--r--src/mame/drivers/wrally.cpp1
-rw-r--r--src/mame/drivers/wswan.cpp2
-rw-r--r--src/mame/drivers/wyvernf0.cpp2
-rw-r--r--src/mame/drivers/x68k.cpp2
-rw-r--r--src/mame/drivers/xain.cpp2
-rw-r--r--src/mame/drivers/xexex.cpp2
-rw-r--r--src/mame/drivers/xorworld.cpp2
-rw-r--r--src/mame/drivers/xxmissio.cpp2
-rw-r--r--src/mame/drivers/z100.cpp4
-rw-r--r--src/mame/drivers/zaccaria.cpp2
-rw-r--r--src/mame/drivers/zerozone.cpp2
-rw-r--r--src/mame/drivers/zn.cpp2
-rw-r--r--src/mame/drivers/zr107.cpp4
363 files changed, 756 insertions, 788 deletions
diff --git a/src/mame/drivers/40love.cpp b/src/mame/drivers/40love.cpp
index 5b370d8ea4a..b58e57c888e 100644
--- a/src/mame/drivers/40love.cpp
+++ b/src/mame/drivers/40love.cpp
@@ -690,7 +690,7 @@ void fortyl_state::common(machine_config &config)
TAITO68705_MCU(config, m_bmcu, 18432000/6); /* OK */
- config.m_minimum_quantum = attotime::from_hz(6000); /* high interleave to ensure proper synchronization of CPUs */
+ config.set_maximum_quantum(attotime::from_hz(6000)); /* high interleave to ensure proper synchronization of CPUs */
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
diff --git a/src/mame/drivers/adam.cpp b/src/mame/drivers/adam.cpp
index f9eb9b979e2..9db2280b9be 100644
--- a/src/mame/drivers/adam.cpp
+++ b/src/mame/drivers/adam.cpp
@@ -1042,7 +1042,7 @@ void adam_state::adam(machine_config &config)
m_netcpu->out_p3_cb().set(FUNC(adam_state::m6801_p3_w));
m_netcpu->out_p4_cb().set(FUNC(adam_state::m6801_p4_w));
m_netcpu->out_sc2_cb().set(FUNC(adam_state::os3_w));
- config.m_perfect_cpu_quantum = subtag(M6801_TAG);
+ config.set_perfect_quantum(m_netcpu);
// video hardware
TMS9928A(config, m_vdc, XTAL(10'738'635)).set_screen("screen");
@@ -1058,22 +1058,22 @@ void adam_state::adam(machine_config &config)
//m_psg->ready_cb().set_inputline(m_maincpu, Z80_INPUT_LINE_WAIT).invert();
// devices
- ADAMNET(config, ADAMNET_TAG, 0);
- ADAMNET_SLOT(config, "net1", adamnet_devices, "kb");
- ADAMNET_SLOT(config, "net2", adamnet_devices, "prn");
- ADAMNET_SLOT(config, "net3", adamnet_devices, "ddp");
- ADAMNET_SLOT(config, "net4", adamnet_devices, "fdc");
- ADAMNET_SLOT(config, "net5", adamnet_devices, "fdc").set_option_device_input_defaults("fdc", device_iptdef_drive2);
- ADAMNET_SLOT(config, "net6", adamnet_devices, nullptr);
- ADAMNET_SLOT(config, "net7", adamnet_devices, nullptr);
- ADAMNET_SLOT(config, "net8", adamnet_devices, nullptr);
- ADAMNET_SLOT(config, "net9", adamnet_devices, nullptr);
- ADAMNET_SLOT(config, "net10", adamnet_devices, nullptr);
- ADAMNET_SLOT(config, "net11", adamnet_devices, nullptr);
- ADAMNET_SLOT(config, "net12", adamnet_devices, nullptr);
- ADAMNET_SLOT(config, "net13", adamnet_devices, nullptr);
- ADAMNET_SLOT(config, "net14", adamnet_devices, nullptr);
- ADAMNET_SLOT(config, "net15", adamnet_devices, nullptr);
+ ADAMNET(config, m_adamnet, 0);
+ ADAMNET_SLOT(config, "net1", m_adamnet, adamnet_devices, "kb");
+ ADAMNET_SLOT(config, "net2", m_adamnet, adamnet_devices, "prn");
+ ADAMNET_SLOT(config, "net3", m_adamnet, adamnet_devices, "ddp");
+ ADAMNET_SLOT(config, "net4", m_adamnet, adamnet_devices, "fdc");
+ ADAMNET_SLOT(config, "net5", m_adamnet, adamnet_devices, "fdc").set_option_device_input_defaults("fdc", device_iptdef_drive2);
+ ADAMNET_SLOT(config, "net6", m_adamnet, adamnet_devices, nullptr);
+ ADAMNET_SLOT(config, "net7", m_adamnet, adamnet_devices, nullptr);
+ ADAMNET_SLOT(config, "net8", m_adamnet, adamnet_devices, nullptr);
+ ADAMNET_SLOT(config, "net9", m_adamnet, adamnet_devices, nullptr);
+ ADAMNET_SLOT(config, "net10", m_adamnet, adamnet_devices, nullptr);
+ ADAMNET_SLOT(config, "net11", m_adamnet, adamnet_devices, nullptr);
+ ADAMNET_SLOT(config, "net12", m_adamnet, adamnet_devices, nullptr);
+ ADAMNET_SLOT(config, "net13", m_adamnet, adamnet_devices, nullptr);
+ ADAMNET_SLOT(config, "net14", m_adamnet, adamnet_devices, nullptr);
+ ADAMNET_SLOT(config, "net15", m_adamnet, adamnet_devices, nullptr);
COLECOVISION_CARTRIDGE_SLOT(config, m_cart, colecovision_cartridges, nullptr);
ADAM_EXPANSION_SLOT(config, m_slot1, XTAL(7'159'090)/2, adam_slot1_devices, "adamlink");
diff --git a/src/mame/drivers/airbustr.cpp b/src/mame/drivers/airbustr.cpp
index 448908773d0..9c757d3f2e5 100644
--- a/src/mame/drivers/airbustr.cpp
+++ b/src/mame/drivers/airbustr.cpp
@@ -551,7 +551,7 @@ void airbustr_state::airbustr(machine_config &config)
m_audiocpu->set_addrmap(AS_PROGRAM, &airbustr_state::sound_map);
m_audiocpu->set_addrmap(AS_IO, &airbustr_state::sound_io_map);
- config.m_minimum_quantum = attotime::from_hz(6000); // Palette RAM is filled by sub cpu with data supplied by main cpu
+ config.set_maximum_quantum(attotime::from_hz(6000)); // Palette RAM is filled by sub cpu with data supplied by main cpu
// Maybe a high value is safer in order to avoid glitches
WATCHDOG_TIMER(config, m_watchdog).set_time(attotime::from_seconds(3)); /* a guess, and certainly wrong */
diff --git a/src/mame/drivers/airraid.cpp b/src/mame/drivers/airraid.cpp
index f8ca047b6fa..24b588d9d04 100644
--- a/src/mame/drivers/airraid.cpp
+++ b/src/mame/drivers/airraid.cpp
@@ -400,7 +400,7 @@ void airraid_state::airraid(machine_config &config)
audiocpu.set_addrmap(AS_OPCODES, &airraid_state::airraid_sound_decrypted_opcodes_map);
audiocpu.set_irq_acknowledge_callback("seibu_sound", FUNC(seibu_sound_device::im0_vector_cb));
- config.m_perfect_cpu_quantum = subtag("maincpu");
+ config.set_perfect_quantum(m_maincpu);
PALETTE(config, m_palette).set_format(palette_device::xBGR_444, 0x100);
diff --git a/src/mame/drivers/ajax.cpp b/src/mame/drivers/ajax.cpp
index 2d810660aab..1d984639dcc 100644
--- a/src/mame/drivers/ajax.cpp
+++ b/src/mame/drivers/ajax.cpp
@@ -182,7 +182,7 @@ void ajax_state::ajax(machine_config &config)
Z80(config, m_audiocpu, 3579545); /* 3.58 MHz */
m_audiocpu->set_addrmap(AS_PROGRAM, &ajax_state::ajax_sound_map);
- config.m_minimum_quantum = attotime::from_hz(600);
+ config.set_maximum_quantum(attotime::from_hz(600));
WATCHDOG_TIMER(config, m_watchdog);
diff --git a/src/mame/drivers/alphatpx.cpp b/src/mame/drivers/alphatpx.cpp
index d6bcdc91558..6fe53e44309 100644
--- a/src/mame/drivers/alphatpx.cpp
+++ b/src/mame/drivers/alphatpx.cpp
@@ -1210,7 +1210,7 @@ void alphatp_12_state::alphatp2(machine_config &config)
maincpu.set_addrmap(AS_PROGRAM, &alphatp_12_state::alphatp2_mem);
maincpu.set_addrmap(AS_IO, &alphatp_12_state::alphatp2_io);
- config.m_perfect_cpu_quantum = subtag("maincpu");
+ config.set_perfect_quantum("maincpu");
I8041A(config, m_kbdmcu, 12.8544_MHz_XTAL / 2);
m_kbdmcu->t0_in_cb().set(FUNC(alphatp_12_state::kbd_matrix_r));
@@ -1288,9 +1288,9 @@ void alphatp_34_state::alphatp3(machine_config &config)
maincpu.set_addrmap(AS_PROGRAM, &alphatp_34_state::alphatp3_mem);
maincpu.set_addrmap(AS_IO, &alphatp_34_state::alphatp3_io);
- config.m_perfect_cpu_quantum = subtag("maincpu");
+ config.set_perfect_quantum("maincpu");
- I8041A(config, m_kbdmcu, 12.8544_MHz_XTAL /2);
+ I8041A(config, m_kbdmcu, 12.8544_MHz_XTAL / 2);
m_kbdmcu->t0_in_cb().set(FUNC(alphatp_34_state::kbd_matrix_r));
m_kbdmcu->p1_out_cb().set(FUNC(alphatp_34_state::kbd_matrix_w));
m_kbdmcu->p2_in_cb().set(FUNC(alphatp_34_state::kbd_port2_r));
diff --git a/src/mame/drivers/amspdwy.cpp b/src/mame/drivers/amspdwy.cpp
index fa1d73b987d..c25682bca61 100644
--- a/src/mame/drivers/amspdwy.cpp
+++ b/src/mame/drivers/amspdwy.cpp
@@ -258,7 +258,7 @@ void amspdwy_state::amspdwy(machine_config &config)
Z80(config, m_audiocpu, 3000000);
m_audiocpu->set_addrmap(AS_PROGRAM, &amspdwy_state::amspdwy_sound_map);
- config.m_perfect_cpu_quantum = subtag("maincpu");
+ config.set_perfect_quantum(m_maincpu);
/* video hardware */
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
diff --git a/src/mame/drivers/amstrad.cpp b/src/mame/drivers/amstrad.cpp
index 94f51d99d95..349e2a50b81 100644
--- a/src/mame/drivers/amstrad.cpp
+++ b/src/mame/drivers/amstrad.cpp
@@ -914,7 +914,7 @@ void amstrad_state::amstrad_base(machine_config &config)
m_maincpu->set_addrmap(AS_IO, &amstrad_state::amstrad_io);
m_maincpu->set_irq_acknowledge_callback(FUNC(amstrad_state::amstrad_cpu_acknowledge_int));
- config.m_minimum_quantum = attotime::from_hz(60);
+ config.set_maximum_quantum(attotime::from_hz(60));
MCFG_MACHINE_START_OVERRIDE(amstrad_state, amstrad )
MCFG_MACHINE_RESET_OVERRIDE(amstrad_state, amstrad )
@@ -1040,7 +1040,7 @@ void amstrad_state::cpcplus(machine_config &config)
m_maincpu->set_addrmap(AS_IO, &amstrad_state::amstrad_io);
m_maincpu->set_irq_acknowledge_callback(FUNC(amstrad_state::amstrad_cpu_acknowledge_int));
- config.m_minimum_quantum = attotime::from_hz(60);
+ config.set_maximum_quantum(attotime::from_hz(60));
MCFG_MACHINE_START_OVERRIDE(amstrad_state, plus )
MCFG_MACHINE_RESET_OVERRIDE(amstrad_state, plus )
@@ -1119,7 +1119,7 @@ void amstrad_state::gx4000(machine_config &config)
m_maincpu->set_addrmap(AS_IO, &amstrad_state::amstrad_io);
m_maincpu->set_irq_acknowledge_callback(FUNC(amstrad_state::amstrad_cpu_acknowledge_int));
- config.m_minimum_quantum = attotime::from_hz(60);
+ config.set_maximum_quantum(attotime::from_hz(60));
MCFG_MACHINE_START_OVERRIDE(amstrad_state, gx4000 )
MCFG_MACHINE_RESET_OVERRIDE(amstrad_state, gx4000 )
diff --git a/src/mame/drivers/angelkds.cpp b/src/mame/drivers/angelkds.cpp
index e0f25bd9269..638202663d2 100644
--- a/src/mame/drivers/angelkds.cpp
+++ b/src/mame/drivers/angelkds.cpp
@@ -541,7 +541,7 @@ void angelkds_state::angelkds(machine_config &config)
ppi1.in_pb_callback().set_ioport("I81");
ppi1.in_pc_callback().set_ioport("I82");
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
diff --git a/src/mame/drivers/apollo.cpp b/src/mame/drivers/apollo.cpp
index f0e9366b0c6..c5516e030f4 100644
--- a/src/mame/drivers/apollo.cpp
+++ b/src/mame/drivers/apollo.cpp
@@ -1052,7 +1052,7 @@ void apollo_state::dn3500(machine_config &config)
m_maincpu->set_addrmap(AS_PROGRAM, &apollo_state::dn3500_map);
m_maincpu->set_addrmap(m68000_base_device::AS_CPU_SPACE, &apollo_state::cpu_space_map);
- config.m_minimum_quantum = attotime::from_hz(60);
+ config.set_maximum_quantum(attotime::from_hz(60));
apollo(config);
@@ -1070,7 +1070,7 @@ void apollo_state::dsp3500(machine_config &config)
M68030(config, m_maincpu, 25000000); /* 25 MHz 68030 */
m_maincpu->set_addrmap(AS_PROGRAM, &apollo_state::dsp3500_map);
m_maincpu->set_addrmap(m68000_base_device::AS_CPU_SPACE, &apollo_state::cpu_space_map);
- config.m_minimum_quantum = attotime::from_hz(60);
+ config.set_maximum_quantum(attotime::from_hz(60));
apollo_terminal(config);
@@ -1119,7 +1119,7 @@ void apollo_state::dsp3000(machine_config &config)
M68020PMMU(config, m_maincpu, 12000000); /* 12 MHz */
m_maincpu->set_addrmap(m68000_base_device::AS_CPU_SPACE, &apollo_state::cpu_space_map);
m_maincpu->set_addrmap(AS_PROGRAM, &apollo_state::dsp3000_map);
- config.m_minimum_quantum = attotime::from_hz(60);
+ config.set_maximum_quantum(attotime::from_hz(60));
apollo_terminal(config);
@@ -1164,7 +1164,7 @@ void apollo_state::dsp5500(machine_config &config)
M68040(config, m_maincpu, 25000000); /* 25 MHz */
m_maincpu->set_addrmap(AS_PROGRAM, &apollo_state::dsp5500_map);
m_maincpu->set_addrmap(m68000_base_device::AS_CPU_SPACE, &apollo_state::cpu_space_map);
- config.m_minimum_quantum = attotime::from_hz(60);
+ config.set_maximum_quantum(attotime::from_hz(60));
apollo_terminal(config);
diff --git a/src/mame/drivers/apple2.cpp b/src/mame/drivers/apple2.cpp
index f24eda24da6..1a60331ceae 100644
--- a/src/mame/drivers/apple2.cpp
+++ b/src/mame/drivers/apple2.cpp
@@ -1276,7 +1276,7 @@ void apple2_state::apple2_common(machine_config &config)
TIMER(config, m_scantimer, 0);
m_scantimer->configure_scanline(FUNC(apple2_state::apple2_interrupt), "screen", 0, 1);
- config.m_minimum_quantum = attotime::from_hz(60);
+ config.set_maximum_quantum(attotime::from_hz(60));
APPLE2_VIDEO(config, m_video, XTAL(14'318'181)).set_screen(m_screen);
APPLE2_COMMON(config, m_a2common, XTAL(14'318'181));
diff --git a/src/mame/drivers/apple2e.cpp b/src/mame/drivers/apple2e.cpp
index 6ba64a2bb6e..5bfcd4c7721 100644
--- a/src/mame/drivers/apple2e.cpp
+++ b/src/mame/drivers/apple2e.cpp
@@ -4226,7 +4226,7 @@ void apple2e_state::apple2e(machine_config &config)
TIMER(config, m_scantimer, 0);
m_scantimer->configure_scanline(FUNC(apple2e_state::apple2_interrupt), "screen", 0, 1);
- config.m_minimum_quantum = attotime::from_hz(60);
+ config.set_maximum_quantum(attotime::from_hz(60));
APPLE2_VIDEO(config, m_video, XTAL(14'318'181)).set_screen(m_screen);
APPLE2_COMMON(config, m_a2common, XTAL(14'318'181));
diff --git a/src/mame/drivers/apple2gs.cpp b/src/mame/drivers/apple2gs.cpp
index 78a9622c1c0..1a91c65e713 100644
--- a/src/mame/drivers/apple2gs.cpp
+++ b/src/mame/drivers/apple2gs.cpp
@@ -4536,7 +4536,7 @@ void apple2gs_state::apple2gs(machine_config &config)
m_maincpu->set_dasm_override(FUNC(apple2gs_state::dasm_trampoline));
TIMER(config, m_scantimer, 0);
m_scantimer->configure_scanline(FUNC(apple2gs_state::apple2_interrupt), "screen", 0, 1);
- config.m_minimum_quantum = attotime::from_hz(60);
+ config.set_maximum_quantum(attotime::from_hz(60));
M50741(config, m_adbmicro, A2GS_MASTER_CLOCK/8);
m_adbmicro->read_p<0>().set(FUNC(apple2gs_state::adbmicro_p0_in));
diff --git a/src/mame/drivers/apple3.cpp b/src/mame/drivers/apple3.cpp
index deedcef9e42..f55b434478c 100644
--- a/src/mame/drivers/apple3.cpp
+++ b/src/mame/drivers/apple3.cpp
@@ -64,7 +64,7 @@ void apple3_state::apple3(machine_config &config)
m_maincpu->sync_cb().set(FUNC(apple3_state::apple3_sync_w));
m_maincpu->set_addrmap(AS_PROGRAM, &apple3_state::apple3_map);
- config.m_minimum_quantum = attotime::from_hz(60);
+ config.set_maximum_quantum(attotime::from_hz(60));
input_merger_device &mainirq(INPUT_MERGER_ANY_HIGH(config, "mainirq"));
mainirq.output_handler().set_inputline(m_maincpu, m6502_device::IRQ_LINE);
diff --git a/src/mame/drivers/arabian.cpp b/src/mame/drivers/arabian.cpp
index b667760b5cf..716cfa67eb6 100644
--- a/src/mame/drivers/arabian.cpp
+++ b/src/mame/drivers/arabian.cpp
@@ -375,7 +375,7 @@ void arabian_state::arabian(machine_config &config)
m_mcu->read_r<3>().set(FUNC(arabian_state::mcu_port_r3_r));
m_mcu->write_r<3>().set(FUNC(arabian_state::mcu_port_r3_w));
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
diff --git a/src/mame/drivers/arcadia.cpp b/src/mame/drivers/arcadia.cpp
index aab239326d2..70c0080c646 100644
--- a/src/mame/drivers/arcadia.cpp
+++ b/src/mame/drivers/arcadia.cpp
@@ -479,7 +479,7 @@ void arcadia_state::arcadia(machine_config &config)
m_maincpu->sense_handler().set(FUNC(arcadia_state::vsync_r));
m_maincpu->set_periodic_int(FUNC(arcadia_state::video_line), attotime::from_hz(262*60));
- config.m_minimum_quantum = attotime::from_hz(60);
+ config.set_maximum_quantum(attotime::from_hz(60));
/* video hardware */
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
diff --git a/src/mame/drivers/argus.cpp b/src/mame/drivers/argus.cpp
index ba98379d5c0..f503e2f5fb4 100644
--- a/src/mame/drivers/argus.cpp
+++ b/src/mame/drivers/argus.cpp
@@ -487,7 +487,7 @@ void argus_state::argus(machine_config &config)
m_audiocpu->set_addrmap(AS_PROGRAM, &argus_state::sound_map_a);
m_audiocpu->set_addrmap(AS_IO, &argus_state::sound_portmap_1);
- config.m_minimum_quantum = attotime::from_hz(600);
+ config.set_maximum_quantum(attotime::from_hz(600));
/* video hardware */
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
@@ -526,7 +526,7 @@ void valtric_state::valtric(machine_config &config)
m_audiocpu->set_addrmap(AS_PROGRAM, &valtric_state::sound_map_a);
m_audiocpu->set_addrmap(AS_IO, &valtric_state::sound_portmap_2);
- config.m_minimum_quantum = attotime::from_hz(600);
+ config.set_maximum_quantum(attotime::from_hz(600));
/* video hardware */
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
@@ -571,7 +571,7 @@ void butasan_state::butasan(machine_config &config)
m_audiocpu->set_addrmap(AS_PROGRAM, &butasan_state::sound_map_b);
m_audiocpu->set_addrmap(AS_IO, &butasan_state::sound_portmap_2);
- config.m_minimum_quantum = attotime::from_hz(600);
+ config.set_maximum_quantum(attotime::from_hz(600));
/* video hardware */
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
diff --git a/src/mame/drivers/arkanoid.cpp b/src/mame/drivers/arkanoid.cpp
index 8652d093d82..0af2be3c662 100644
--- a/src/mame/drivers/arkanoid.cpp
+++ b/src/mame/drivers/arkanoid.cpp
@@ -1350,7 +1350,7 @@ void arkanoid_state::arkanoid(machine_config &config)
ARKANOID_68705P5(config, m_mcuintf, 12_MHz_XTAL / 4); // verified on PCB
m_mcuintf->portb_r_cb().set(FUNC(arkanoid_state::input_mux_r));
- config.m_minimum_quantum = attotime::from_hz(6000); // 100 CPU slices per second to synchronize between the MCU and the main CPU
+ config.set_maximum_quantum(attotime::from_hz(6000)); // 100 CPU slices per second to synchronize between the MCU and the main CPU
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
diff --git a/src/mame/drivers/artmagic.cpp b/src/mame/drivers/artmagic.cpp
index 7ffc6833055..cebde8ce792 100644
--- a/src/mame/drivers/artmagic.cpp
+++ b/src/mame/drivers/artmagic.cpp
@@ -820,7 +820,7 @@ void artmagic_state::artmagic(machine_config &config)
m_tms->set_shiftreg_in_callback(FUNC(artmagic_state::to_shiftreg));
m_tms->set_shiftreg_out_callback(FUNC(artmagic_state::from_shiftreg));
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
EEPROM_2816(config, "eeprom").write_time(attotime::from_usec(1)); // FIXME: false-readback polling should make this unnecessary
diff --git a/src/mame/drivers/astrohome.cpp b/src/mame/drivers/astrohome.cpp
index 947561e662f..dddcea45f54 100644
--- a/src/mame/drivers/astrohome.cpp
+++ b/src/mame/drivers/astrohome.cpp
@@ -184,7 +184,7 @@ void astrocde_home_state::astrocde(machine_config &config)
m_maincpu->set_addrmap(AS_PROGRAM, &astrocde_home_state::astrocade_mem);
m_maincpu->set_addrmap(AS_IO, &astrocde_home_state::astrocade_io);
- config.m_perfect_cpu_quantum = subtag("maincpu");
+ config.set_perfect_quantum(m_maincpu);
MCFG_MACHINE_START_OVERRIDE(astrocde_home_state, astrocde)
diff --git a/src/mame/drivers/asuka.cpp b/src/mame/drivers/asuka.cpp
index af14a96f464..09a8402a188 100644
--- a/src/mame/drivers/asuka.cpp
+++ b/src/mame/drivers/asuka.cpp
@@ -822,7 +822,7 @@ void asuka_state::bonzeadv(machine_config &config)
TIMER(config, "cchip_irq_clear").configure_generic(FUNC(asuka_state::cchip_irq_clear_cb));
- config.m_minimum_quantum = attotime::from_hz(600);
+ config.set_maximum_quantum(attotime::from_hz(600));
WATCHDOG_TIMER(config, "watchdog");
@@ -870,7 +870,7 @@ void asuka_state::asuka(machine_config &config)
Z80(config, m_audiocpu, XTAL(16'000'000)/4); /* verified on pcb */
m_audiocpu->set_addrmap(AS_PROGRAM, &asuka_state::z80_map);
- config.m_minimum_quantum = attotime::from_hz(600);
+ config.set_maximum_quantum(attotime::from_hz(600));
TC0220IOC(config, m_tc0220ioc, 0);
m_tc0220ioc->read_0_callback().set_ioport("DSWA");
@@ -937,7 +937,7 @@ void asuka_state::cadash(machine_config &config)
subcpu.set_addrmap(AS_PROGRAM, &asuka_state::cadash_sub_map);
subcpu.set_addrmap(AS_IO, &asuka_state::cadash_sub_io);
- config.m_minimum_quantum = attotime::from_hz(600);
+ config.set_maximum_quantum(attotime::from_hz(600));
TC0220IOC(config, m_tc0220ioc, 0);
m_tc0220ioc->read_0_callback().set_ioport("DSWA");
@@ -993,7 +993,7 @@ void asuka_state::mofflott(machine_config &config)
Z80(config, m_audiocpu, 4000000); /* 4 MHz ??? */
m_audiocpu->set_addrmap(AS_PROGRAM, &asuka_state::z80_map);
- config.m_minimum_quantum = attotime::from_hz(600);
+ config.set_maximum_quantum(attotime::from_hz(600));
TC0220IOC(config, m_tc0220ioc, 0);
m_tc0220ioc->read_0_callback().set_ioport("DSWA");
@@ -1056,7 +1056,7 @@ void asuka_state::eto(machine_config &config)
Z80(config, m_audiocpu, 4000000); /* 4 MHz ??? */
m_audiocpu->set_addrmap(AS_PROGRAM, &asuka_state::cadash_z80_map);
- config.m_minimum_quantum = attotime::from_hz(600);
+ config.set_maximum_quantum(attotime::from_hz(600));
TC0220IOC(config, m_tc0220ioc, 0);
m_tc0220ioc->read_0_callback().set_ioport("DSWA");
diff --git a/src/mame/drivers/at.cpp b/src/mame/drivers/at.cpp
index 70edc599b38..279836c16aa 100644
--- a/src/mame/drivers/at.cpp
+++ b/src/mame/drivers/at.cpp
@@ -464,13 +464,13 @@ void at_vrom_fix_state::machine_start()
void at_state::cfg_single_1200K(device_t *device)
{
dynamic_cast<device_slot_interface &>(*device->subdevice("fdc:0")).set_default_option("525hd");
- dynamic_cast<device_slot_interface &>(*device->subdevice("fdc:1")).set_default_option("");
+ dynamic_cast<device_slot_interface &>(*device->subdevice("fdc:1")).set_default_option(nullptr);
}
void at_state::cfg_single_360K(device_t *device)
{
dynamic_cast<device_slot_interface &>(*device->subdevice("fdc:0")).set_default_option("525dd");
- dynamic_cast<device_slot_interface &>(*device->subdevice("fdc:1")).set_default_option("");
+ dynamic_cast<device_slot_interface &>(*device->subdevice("fdc:1")).set_default_option(nullptr);
}
static void pci_devices(device_slot_interface &device)
@@ -488,7 +488,7 @@ void at_state::ibm5170(machine_config &config)
maincpu.shutdown_callback().set("mb", FUNC(at_mb_device::shutdown));
AT_MB(config, m_mb, 0);
- config.m_minimum_quantum = attotime::from_hz(60);
+ config.set_maximum_quantum(attotime::from_hz(60));
m_mb->at_softlists(config);
@@ -593,7 +593,7 @@ void at_state::at386(machine_config &config)
AT_MB(config, m_mb, 0).at_softlists(config);
- config.m_minimum_quantum = attotime::from_hz(60);
+ config.set_maximum_quantum(attotime::from_hz(60));
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
@@ -768,7 +768,7 @@ void at_vrom_fix_state::megapcpla(machine_config &config)
AT_MB(config, m_mb, 0).at_softlists(config);
- config.m_minimum_quantum = attotime::from_hz(60);
+ config.set_maximum_quantum(attotime::from_hz(60));
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
@@ -800,7 +800,7 @@ void at_state::ficpio2(machine_config &config)
maincpu.set_irq_acknowledge_callback("mb:pic8259_master", FUNC(pic8259_device::inta_cb));
AT_MB(config, m_mb, 0).at_softlists(config);
- config.m_minimum_quantum = attotime::from_hz(60);
+ config.set_maximum_quantum(attotime::from_hz(60));
ds12885_device &rtc(DS12885(config.replace(), "mb:rtc"));
rtc.irq().set("mb:pic8259_slave", FUNC(pic8259_device::ir0_w)); // this is in :mb
@@ -843,7 +843,7 @@ void at_state::comportiii(machine_config &config)
maincpu.shutdown_callback().set("mb", FUNC(at_mb_device::shutdown));
AT_MB(config, m_mb, 0).at_softlists(config);
- config.m_minimum_quantum = attotime::from_hz(60);
+ config.set_maximum_quantum(attotime::from_hz(60));
// FIXME: determine ISA bus clock
ISA16_SLOT(config, "board1", 0, "mb:isabus", pc_isa16_cards, "fdc", true).set_option_machine_config("fdc", cfg_single_1200K);
diff --git a/src/mame/drivers/attache.cpp b/src/mame/drivers/attache.cpp
index 090677ccf6e..c0038c6a572 100644
--- a/src/mame/drivers/attache.cpp
+++ b/src/mame/drivers/attache.cpp
@@ -1128,7 +1128,7 @@ void attache_state::attache(machine_config &config)
m_maincpu->set_addrmap(AS_IO, &attache_state::attache_io);
m_maincpu->set_daisy_config(attache_daisy_chain);
- config.m_minimum_quantum = attotime::from_hz(60);
+ config.set_maximum_quantum(attotime::from_hz(60));
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER, rgb_t::green()));
screen.set_raw(12.324_MHz_XTAL, 784, 0, 640, 262, 0, 240);
@@ -1205,12 +1205,12 @@ void attache816_state::attache816(machine_config &config)
m_maincpu->set_addrmap(AS_IO, &attache816_state::attache_io);
m_maincpu->set_daisy_config(attache_daisy_chain);
- config.m_minimum_quantum = attotime::from_hz(60);
+ config.set_maximum_quantum(attotime::from_hz(60));
I8086(config, m_extcpu, 24_MHz_XTAL / 3);
m_extcpu->set_addrmap(AS_PROGRAM, &attache816_state::attache_x86_map);
m_extcpu->set_addrmap(AS_IO, &attache816_state::attache_x86_io);
- config.m_perfect_cpu_quantum = subtag("extcpu");
+ config.set_perfect_quantum(m_extcpu);
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER, rgb_t::green()));
screen.set_raw(12.324_MHz_XTAL, 784, 0, 640, 262, 0, 240);
diff --git a/src/mame/drivers/avigo.cpp b/src/mame/drivers/avigo.cpp
index a3942391265..7488b860100 100644
--- a/src/mame/drivers/avigo.cpp
+++ b/src/mame/drivers/avigo.cpp
@@ -755,7 +755,7 @@ void avigo_state::avigo(machine_config &config)
Z80(config, m_maincpu, 4000000);
m_maincpu->set_addrmap(AS_PROGRAM, &avigo_state::avigo_mem);
m_maincpu->set_addrmap(AS_IO, &avigo_state::avigo_io);
- config.m_minimum_quantum = attotime::from_hz(60);
+ config.set_maximum_quantum(attotime::from_hz(60));
NS16550(config, m_uart, XTAL(1'843'200));
m_uart->out_tx_callback().set(m_serport, FUNC(rs232_port_device::write_txd));
diff --git a/src/mame/drivers/balsente.cpp b/src/mame/drivers/balsente.cpp
index 2da3342872b..96dc660c8b4 100644
--- a/src/mame/drivers/balsente.cpp
+++ b/src/mame/drivers/balsente.cpp
@@ -1419,7 +1419,7 @@ void balsente_state::shrike(machine_config &config)
M68000(config, m_68k, 8000000);
m_68k->set_addrmap(AS_PROGRAM, &balsente_state::shrike68k_map);
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
}
diff --git a/src/mame/drivers/baraduke.cpp b/src/mame/drivers/baraduke.cpp
index 2bcdb32d38c..b6fe401ccfa 100644
--- a/src/mame/drivers/baraduke.cpp
+++ b/src/mame/drivers/baraduke.cpp
@@ -376,7 +376,7 @@ void baraduke_state::baraduke(machine_config &config)
m_mcu->in_p2_cb().set_constant(0xff); /* leds won't work otherwise */
m_mcu->out_p2_cb().set(FUNC(baraduke_state::baraduke_lamps_w)); /* lamps */
- config.m_minimum_quantum = attotime::from_hz(6000); /* we need heavy synch */
+ config.set_maximum_quantum(attotime::from_hz(6000)); /* we need heavy synch */
WATCHDOG_TIMER(config, "watchdog");
diff --git a/src/mame/drivers/battlane.cpp b/src/mame/drivers/battlane.cpp
index 943394da42d..56ba430372c 100644
--- a/src/mame/drivers/battlane.cpp
+++ b/src/mame/drivers/battlane.cpp
@@ -282,7 +282,7 @@ void battlane_state::battlane(machine_config &config)
MC6809E(config, m_subcpu, 1500000);
m_subcpu->set_addrmap(AS_PROGRAM, &battlane_state::battlane_map);
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
diff --git a/src/mame/drivers/bbc.cpp b/src/mame/drivers/bbc.cpp
index 761a78a0f9b..9f9f270e524 100644
--- a/src/mame/drivers/bbc.cpp
+++ b/src/mame/drivers/bbc.cpp
@@ -829,7 +829,7 @@ void bbc_state::bbca(machine_config &config)
M6502(config, m_maincpu, 16_MHz_XTAL / 8);
m_maincpu->set_addrmap(AS_PROGRAM, &bbc_state::bbca_mem);
m_maincpu->set_periodic_int(FUNC(bbc_state::bbcb_keyscan), attotime::from_hz(1000)); /* scan keyboard */
- config.m_minimum_quantum = attotime::from_hz(60);
+ config.set_maximum_quantum(attotime::from_hz(60));
INPUT_MERGER_ANY_HIGH(config, m_irqs).output_handler().set_inputline(m_maincpu, M6502_IRQ_LINE);
@@ -1081,7 +1081,7 @@ void bbc_state::torchh10(machine_config &config)
{
torchf(config);
/* fdc */
- m_i8271->subdevice<floppy_connector>("1")->set_default_option("");
+ m_i8271->subdevice<floppy_connector>("1")->set_default_option(nullptr);
/* 10MB HDD */
@@ -1092,7 +1092,7 @@ void bbc_state::torchh21(machine_config &config)
{
torchf(config);
/* fdc */
- m_i8271->subdevice<floppy_connector>("1")->set_default_option("");
+ m_i8271->subdevice<floppy_connector>("1")->set_default_option(nullptr);
/* 21MB HDD */
@@ -1162,7 +1162,7 @@ void bbcbp_state::abc110(machine_config &config)
{
bbcbp(config);
/* fdc */
- m_wd1770->subdevice<floppy_connector>("1")->set_default_option("");
+ m_wd1770->subdevice<floppy_connector>("1")->set_default_option(nullptr);
/* Acorn Z80 co-processor */
m_tube->set_default_option("z80");
@@ -1184,7 +1184,7 @@ void bbcbp_state::acw443(machine_config &config)
{
bbcbp(config);
/* fdc */
- m_wd1770->subdevice<floppy_connector>("1")->set_default_option("");
+ m_wd1770->subdevice<floppy_connector>("1")->set_default_option(nullptr);
/* 32016 co-processor */
//m_tube->set_default_option("32016");
@@ -1211,7 +1211,7 @@ void bbcbp_state::abc310(machine_config &config)
{
bbcbp(config);
/* fdc */
- m_wd1770->subdevice<floppy_connector>("1")->set_default_option("");
+ m_wd1770->subdevice<floppy_connector>("1")->set_default_option(nullptr);
/* Acorn 80286 co-processor */
m_tube->set_default_option("80286");
@@ -1317,7 +1317,7 @@ void bbcm_state::bbcm(machine_config &config)
m_maincpu->set_addrmap(AS_PROGRAM, &bbcm_state::bbcm_mem);
m_maincpu->set_addrmap(AS_OPCODES, &bbcm_state::bbcm_fetch);
m_maincpu->set_periodic_int(FUNC(bbc_state::bbcb_keyscan), attotime::from_hz(1000)); /* scan keyboard */
- config.m_minimum_quantum = attotime::from_hz(60);
+ config.set_maximum_quantum(attotime::from_hz(60));
ADDRESS_MAP_BANK(config, m_bankdev).set_map(&bbcm_state::bbcm_bankdev).set_options(ENDIANNESS_LITTLE, 8, 16, 0x0400);
@@ -1608,8 +1608,8 @@ void bbcm_state::cfa3000(machine_config &config)
bbcm(config);
/* fdc */
- m_wd1770->subdevice<floppy_connector>("0")->set_default_option("");
- m_wd1770->subdevice<floppy_connector>("1")->set_default_option("");
+ m_wd1770->subdevice<floppy_connector>("0")->set_default_option(nullptr);
+ m_wd1770->subdevice<floppy_connector>("1")->set_default_option(nullptr);
/* keyboard */
m_userport->set_default_option("cfa3000kbd");
diff --git a/src/mame/drivers/bebox.cpp b/src/mame/drivers/bebox.cpp
index 31e6187d35d..f5a8a05ec49 100644
--- a/src/mame/drivers/bebox.cpp
+++ b/src/mame/drivers/bebox.cpp
@@ -146,7 +146,7 @@ pci_connector_device &bebox_state::add_pci_slot(machine_config &config, const ch
void bebox_state::bebox_peripherals(machine_config &config)
{
- config.m_minimum_quantum = attotime::from_hz(60);
+ config.set_maximum_quantum(attotime::from_hz(60));
PIT8254(config, m_pit8254, 0);
m_pit8254->set_clk<0>(4772720/4); /* heartbeat IRQ */
diff --git a/src/mame/drivers/bfm_sc2.cpp b/src/mame/drivers/bfm_sc2.cpp
index e035ee6c95a..404c53eb117 100644
--- a/src/mame/drivers/bfm_sc2.cpp
+++ b/src/mame/drivers/bfm_sc2.cpp
@@ -2282,7 +2282,7 @@ void bfm_sc2_vid_state::scorpion2_vid(machine_config &config)
MC6809(config, m_maincpu, MASTER_CLOCK); // MC68B09P (2 MHz bus)
m_maincpu->set_addrmap(AS_PROGRAM, &bfm_sc2_vid_state::memmap_vid); // setup scorpion2 board memorymap
m_maincpu->set_periodic_int(FUNC(bfm_sc2_vid_state::timer_irq), attotime::from_hz(1000)); // generate 1000 IRQ's per second
- config.m_minimum_quantum = attotime::from_hz(960); // needed for serial communication !!
+ config.set_maximum_quantum(attotime::from_hz(960)); // needed for serial communication !!
WATCHDOG_TIMER(config, "watchdog").set_time(PERIOD_OF_555_MONOSTABLE(120000,100e-9));
@@ -3808,7 +3808,7 @@ void bfm_sc2_awp_state::scorpion3(machine_config &config)
/* machine driver for scorpion2 board + matrix board */
void bfm_sc2_dmd_state::scorpion2_dm01(machine_config &config)
{
- config.m_minimum_quantum = attotime::from_hz(960); // needed for serial communication !!
+ config.set_maximum_quantum(attotime::from_hz(960)); // needed for serial communication !!
MC6809(config, m_maincpu, MASTER_CLOCK); // MC68B09P (2 MHz bus)
m_maincpu->set_addrmap(AS_PROGRAM, &bfm_sc2_dmd_state::memmap_no_vid);
m_maincpu->set_periodic_int(FUNC(bfm_sc2_dmd_state::timer_irq), attotime::from_hz(1000));
diff --git a/src/mame/drivers/bigevglf.cpp b/src/mame/drivers/bigevglf.cpp
index b1db2003440..ce0aa3614f9 100644
--- a/src/mame/drivers/bigevglf.cpp
+++ b/src/mame/drivers/bigevglf.cpp
@@ -405,7 +405,7 @@ void bigevglf_state::bigevglf(machine_config &config)
TAITO68705_MCU(config, m_bmcu, 2000000); /* ??? */
- config.m_minimum_quantum = attotime::from_hz(600); /* 10 CPU slices per frame - interleaving is forced on the fly */
+ config.set_maximum_quantum(attotime::from_hz(600)); /* 10 CPU slices per frame - interleaving is forced on the fly */
/* video hardware */
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
diff --git a/src/mame/drivers/bking.cpp b/src/mame/drivers/bking.cpp
index 8eaa3814e21..da97855d14c 100644
--- a/src/mame/drivers/bking.cpp
+++ b/src/mame/drivers/bking.cpp
@@ -452,7 +452,7 @@ void bking_state::bking3(machine_config &config)
MCFG_MACHINE_START_OVERRIDE(bking_state,bking3)
MCFG_MACHINE_RESET_OVERRIDE(bking_state,bking3)
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
}
diff --git a/src/mame/drivers/bladestl.cpp b/src/mame/drivers/bladestl.cpp
index 490a09ffc21..94ebb553f50 100644
--- a/src/mame/drivers/bladestl.cpp
+++ b/src/mame/drivers/bladestl.cpp
@@ -313,7 +313,7 @@ void bladestl_state::bladestl(machine_config &config)
MC6809E(config, m_audiocpu, XTAL(24'000'000) / 16);
m_audiocpu->set_addrmap(AS_PROGRAM, &bladestl_state::sound_map);
- config.m_minimum_quantum = attotime::from_hz(600);
+ config.set_maximum_quantum(attotime::from_hz(600));
WATCHDOG_TIMER(config, "watchdog");
diff --git a/src/mame/drivers/blueprnt.cpp b/src/mame/drivers/blueprnt.cpp
index b99d4516e5b..54b7007b4c5 100644
--- a/src/mame/drivers/blueprnt.cpp
+++ b/src/mame/drivers/blueprnt.cpp
@@ -359,7 +359,7 @@ void blueprnt_state::blueprnt(machine_config &config)
m_audiocpu->set_periodic_int(FUNC(blueprnt_state::irq0_line_hold), attotime::from_hz(4*60)); // IRQs connected to 32V
// NMIs are caused by the main CPU
- config.m_perfect_cpu_quantum = subtag("maincpu");
+ config.set_perfect_quantum(m_maincpu);
WATCHDOG_TIMER(config, "watchdog");
diff --git a/src/mame/drivers/bml3.cpp b/src/mame/drivers/bml3.cpp
index b7d5bafe055..2132ee2a9cc 100644
--- a/src/mame/drivers/bml3.cpp
+++ b/src/mame/drivers/bml3.cpp
@@ -970,22 +970,21 @@ void bml3_state::bml3_common(machine_config &config)
m_cass->add_route(ALL_OUTPUTS, "mono", 0.05);
/* slot devices */
- bml3bus_device &bus(BML3BUS(config, "bml3bus", 0));
- bus.set_space(m_maincpu, AS_PROGRAM);
- bus.nmi_callback().set_inputline(m_maincpu, INPUT_LINE_NMI);
- bus.irq_callback().set_inputline(m_maincpu, M6809_IRQ_LINE);
- bus.firq_callback().set_inputline(m_maincpu, M6809_FIRQ_LINE);
- /* Default to MP-1805 disk (3" or 5.25" SS/SD), as our MB-6892 ROM dump includes
- the MP-1805 ROM.
+ BML3BUS(config, m_bml3bus, 0);
+ m_bml3bus->set_space(m_maincpu, AS_PROGRAM);
+ m_bml3bus->nmi_callback().set_inputline(m_maincpu, INPUT_LINE_NMI);
+ m_bml3bus->irq_callback().set_inputline(m_maincpu, M6809_IRQ_LINE);
+ m_bml3bus->firq_callback().set_inputline(m_maincpu, M6809_FIRQ_LINE);
+ /* Default to MP-1805 disk (3" or 5.25" SS/SD), as our MB-6892 ROM dump includes the MP-1805 ROM.
User may want to switch this to MP-1802 (5.25" DS/DD).
Note it isn't feasible to use both, as they each place boot ROM at F800.
*/
- BML3BUS_SLOT(config, "sl1", "bml3bus", bml3_cards, "bml3mp1805");
- BML3BUS_SLOT(config, "sl2", "bml3bus", bml3_cards, nullptr);
- BML3BUS_SLOT(config, "sl3", "bml3bus", bml3_cards, nullptr);
- BML3BUS_SLOT(config, "sl4", "bml3bus", bml3_cards, nullptr);
- BML3BUS_SLOT(config, "sl5", "bml3bus", bml3_cards, nullptr);
- BML3BUS_SLOT(config, "sl6", "bml3bus", bml3_cards, "bml3kanji");
+ BML3BUS_SLOT(config, "sl1", m_bml3bus, bml3_cards, "bml3mp1805");
+ BML3BUS_SLOT(config, "sl2", m_bml3bus, bml3_cards, nullptr);
+ BML3BUS_SLOT(config, "sl3", m_bml3bus, bml3_cards, nullptr);
+ BML3BUS_SLOT(config, "sl4", m_bml3bus, bml3_cards, nullptr);
+ BML3BUS_SLOT(config, "sl5", m_bml3bus, bml3_cards, nullptr);
+ BML3BUS_SLOT(config, "sl6", m_bml3bus, bml3_cards, "bml3kanji");
}
void bml3_state::bml3(machine_config &config)
diff --git a/src/mame/drivers/bnstars.cpp b/src/mame/drivers/bnstars.cpp
index dd1f1a6c771..70422cf4541 100644
--- a/src/mame/drivers/bnstars.cpp
+++ b/src/mame/drivers/bnstars.cpp
@@ -853,7 +853,7 @@ void bnstars_state::bnstars(machine_config &config)
Z80(config, m_audiocpu, 4000000); // Unverified; it's possibly higher than 4MHz
m_audiocpu->set_addrmap(AS_PROGRAM, &bnstars_state::bnstars_sound_map);
- config.m_minimum_quantum = attotime::from_hz(60000);
+ config.set_maximum_quantum(attotime::from_hz(60000));
GFXDECODE(config, m_gfxdecode, m_palette, gfx_bnstars);
diff --git a/src/mame/drivers/bublbobl.cpp b/src/mame/drivers/bublbobl.cpp
index 87704cf3b5c..6c83bed34f2 100644
--- a/src/mame/drivers/bublbobl.cpp
+++ b/src/mame/drivers/bublbobl.cpp
@@ -863,7 +863,7 @@ void bublbobl_state::tokio(machine_config &config)
TAITO68705_MCU(config, "bmcu", MAIN_XTAL/8); // 3 Mhz
- config.m_perfect_cpu_quantum = subtag("maincpu"); // is this necessary?
+ config.set_perfect_quantum(m_maincpu); // is this necessary?
WATCHDOG_TIMER(config, "watchdog").set_vblank_count("screen", 128); // 74LS393, counts 128 vblanks before firing watchdog; same circuit as taitosj uses
@@ -972,7 +972,7 @@ void bublbobl_state::bublbobl_nomcu(machine_config &config)
Z80(config, m_audiocpu, MAIN_XTAL/8); // 3 MHz
m_audiocpu->set_addrmap(AS_PROGRAM, &bublbobl_state::sound_map); // IRQs are triggered by the YM2203
- config.m_minimum_quantum = attotime::from_hz(6000); // 100 CPU slices per frame - a high value to ensure proper synchronization of the CPUs
+ config.set_maximum_quantum(attotime::from_hz(6000)); // 100 CPU slices per frame - a high value to ensure proper synchronization of the CPUs
WATCHDOG_TIMER(config, "watchdog").set_vblank_count("screen", 128); // 74LS393, counts 128 vblanks before firing watchdog; same circuit as taitosj uses
diff --git a/src/mame/drivers/bwing.cpp b/src/mame/drivers/bwing.cpp
index b7c493e2dc9..3b1b4570df8 100644
--- a/src/mame/drivers/bwing.cpp
+++ b/src/mame/drivers/bwing.cpp
@@ -377,7 +377,7 @@ void bwing_state::bwing(machine_config &config)
m_audiocpu->set_addrmap(AS_IO, &bwing_state::bwp3_io_map);
m_audiocpu->set_periodic_int(FUNC(bwing_state::bwp3_interrupt), attotime::from_hz(1000));
- config.m_minimum_quantum = attotime::from_hz(18000); // high enough?
+ config.set_maximum_quantum(attotime::from_hz(18000)); // high enough?
ADDRESS_MAP_BANK(config, "vrambank").set_map(&bwing_state::bank_map).set_options(ENDIANNESS_BIG, 8, 15, 0x2000);
diff --git a/src/mame/drivers/c128.cpp b/src/mame/drivers/c128.cpp
index 0aaf87a0966..f3502b4caf2 100644
--- a/src/mame/drivers/c128.cpp
+++ b/src/mame/drivers/c128.cpp
@@ -34,42 +34,36 @@
#include "video/mc6845.h"
#include "video/mos6566.h"
-#define Z80A_TAG "u10"
#define M8502_TAG "u6"
#define MOS8563_TAG "u22"
#define MOS8564_TAG "u21"
#define MOS8566_TAG "u21"
-#define MOS6581_TAG "u5"
-#define MOS6526_1_TAG "u1"
-#define MOS6526_2_TAG "u4"
#define MOS8721_TAG "u11"
-#define MOS8722_TAG "u7"
#define SCREEN_VIC_TAG "screen"
#define SCREEN_VDC_TAG "screen80"
#define CONTROL1_TAG "joy1"
#define CONTROL2_TAG "joy2"
-#define PET_USER_PORT_TAG "user"
class c128_state : public driver_device
{
public:
c128_state(const machine_config &mconfig, device_type type, const char *tag) :
driver_device(mconfig, type, tag),
- m_maincpu(*this, Z80A_TAG),
+ m_maincpu(*this, "u10"),
m_subcpu(*this, M8502_TAG),
m_nmi(*this, "nmi"),
- m_mmu(*this, MOS8722_TAG),
+ m_mmu(*this, "u7"),
m_pla(*this, MOS8721_TAG),
m_vdc(*this, MOS8563_TAG),
m_vic(*this, MOS8564_TAG),
- m_sid(*this, MOS6581_TAG),
- m_cia1(*this, MOS6526_1_TAG),
- m_cia2(*this, MOS6526_2_TAG),
+ m_sid(*this, "u5"),
+ m_cia1(*this, "u1"),
+ m_cia2(*this, "u4"),
m_iec(*this, CBM_IEC_TAG),
m_joy1(*this, CONTROL1_TAG),
m_joy2(*this, CONTROL2_TAG),
m_exp(*this, "exp"),
- m_user(*this, PET_USER_PORT_TAG),
+ m_user(*this, "user"),
m_ram(*this, RAM_TAG),
m_cassette(*this, PET_DATASSETTE_PORT_TAG),
m_from(*this, "from"),
@@ -1638,7 +1632,6 @@ void c128_state::ntsc(machine_config &config)
Z80(config, m_maincpu, XTAL(14'318'181)*2/3.5/2);
m_maincpu->set_addrmap(AS_PROGRAM, &c128_state::z80_mem);
m_maincpu->set_addrmap(AS_IO, &c128_state::z80_io);
- config.m_perfect_cpu_quantum = subtag(Z80A_TAG);
M8502(config, m_subcpu, XTAL(14'318'181)*2/3.5/8);
m_subcpu->disable_cache(); // address decoding is 100% dynamic, no RAM/ROM banks
@@ -1646,7 +1639,7 @@ void c128_state::ntsc(machine_config &config)
m_subcpu->write_callback().set(FUNC(c128_state::cpu_w));
m_subcpu->set_pulls(0x07, 0x20);
m_subcpu->set_addrmap(AS_PROGRAM, &c128_state::m8502_mem);
- config.m_perfect_cpu_quantum = subtag(M8502_TAG);
+ config.set_perfect_quantum(m_subcpu);
input_merger_device &irq(INPUT_MERGER_ANY_HIGH(config, "irq"));
irq.output_handler().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
@@ -1825,7 +1818,6 @@ void c128_state::pal(machine_config &config)
Z80(config, m_maincpu, XTAL(17'734'472)*2/4.5/2);
m_maincpu->set_addrmap(AS_PROGRAM, &c128_state::z80_mem);
m_maincpu->set_addrmap(AS_IO, &c128_state::z80_io);
- config.m_perfect_cpu_quantum = subtag(Z80A_TAG);
M8502(config, m_subcpu, XTAL(17'734'472)*2/4.5/8);
m_subcpu->disable_cache(); // address decoding is 100% dynamic, no RAM/ROM banks
@@ -1833,7 +1825,7 @@ void c128_state::pal(machine_config &config)
m_subcpu->write_callback().set(FUNC(c128_state::cpu_w));
m_subcpu->set_pulls(0x07, 0x20);
m_subcpu->set_addrmap(AS_PROGRAM, &c128_state::m8502_mem);
- config.m_perfect_cpu_quantum = subtag(M8502_TAG);
+ config.set_perfect_quantum(m_subcpu);
input_merger_device &irq(INPUT_MERGER_ANY_HIGH(config, "irq"));
irq.output_handler().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
diff --git a/src/mame/drivers/c64.cpp b/src/mame/drivers/c64.cpp
index da55973cb2e..417b8799f94 100644
--- a/src/mame/drivers/c64.cpp
+++ b/src/mame/drivers/c64.cpp
@@ -34,7 +34,6 @@
#include "sound/mos6581.h"
#include "video/mos6566.h"
-#define M6510_TAG "u7"
#define MOS6567_TAG "u19"
#define MOS6569_TAG "u19"
#define MOS6581_TAG "u18"
@@ -51,7 +50,7 @@ class c64_state : public driver_device
public:
c64_state(const machine_config &mconfig, device_type type, const char *tag) :
driver_device(mconfig, type, tag),
- m_maincpu(*this, M6510_TAG),
+ m_maincpu(*this, "u7"),
m_nmi(*this, "nmi"),
m_pla(*this, PLA_TAG),
m_vic(*this, MOS6569_TAG),
@@ -1447,7 +1446,7 @@ void c64_state::ntsc(machine_config &config)
m_maincpu->write_callback().set(FUNC(c64_state::cpu_w));
m_maincpu->set_pulls(0x17, 0xc8);
m_maincpu->set_dasm_override(FUNC(c64_state::dasm_override));
- config.m_perfect_cpu_quantum = subtag(M6510_TAG);
+ config.set_perfect_quantum(m_maincpu);
input_merger_device &irq(INPUT_MERGER_ANY_HIGH(config, "irq"));
irq.output_handler().set_inputline(m_maincpu, m6510_device::IRQ_LINE);
@@ -1457,7 +1456,7 @@ void c64_state::ntsc(machine_config &config)
// video hardware
mos6567_device &mos6567(MOS6567(config, MOS6567_TAG, XTAL(14'318'181)/14));
- mos6567.set_cpu(M6510_TAG);
+ mos6567.set_cpu(m_maincpu);
mos6567.irq_callback().set("irq", FUNC(input_merger_device::in_w<1>));
mos6567.set_screen(SCREEN_TAG);
mos6567.set_addrmap(0, &c64_state::vic_videoram_map);
@@ -1619,7 +1618,7 @@ void c64_state::pal(machine_config &config)
m_maincpu->write_callback().set(FUNC(c64_state::cpu_w));
m_maincpu->set_pulls(0x17, 0xc8);
m_maincpu->set_dasm_override(FUNC(c64_state::dasm_override));
- config.m_perfect_cpu_quantum = subtag(M6510_TAG);
+ config.set_perfect_quantum(m_maincpu);
input_merger_device &irq(INPUT_MERGER_ANY_HIGH(config, "irq"));
irq.output_handler().set_inputline(m_maincpu, m6510_device::IRQ_LINE);
@@ -1629,7 +1628,7 @@ void c64_state::pal(machine_config &config)
// video hardware
mos6569_device &mos6569(MOS6569(config, MOS6569_TAG, XTAL(17'734'472)/18));
- mos6569.set_cpu(M6510_TAG);
+ mos6569.set_cpu(m_maincpu);
mos6569.irq_callback().set("irq", FUNC(input_merger_device::in_w<1>));
mos6569.set_screen(SCREEN_TAG);
mos6569.set_addrmap(0, &c64_state::vic_videoram_map);
@@ -1767,7 +1766,7 @@ void c64gs_state::pal_gs(machine_config &config)
m_maincpu->write_callback().set(FUNC(c64gs_state::cpu_w));
m_maincpu->set_pulls(0x07, 0xc0);
m_maincpu->set_dasm_override(FUNC(c64_state::dasm_override));
- config.m_perfect_cpu_quantum = subtag(M6510_TAG);
+ config.set_perfect_quantum(m_maincpu);
input_merger_device &irq(INPUT_MERGER_ANY_HIGH(config, "irq"));
irq.output_handler().set_inputline(m_maincpu, m6510_device::IRQ_LINE);
@@ -1777,7 +1776,7 @@ void c64gs_state::pal_gs(machine_config &config)
// video hardware
mos8565_device &mos8565(MOS8565(config, MOS6569_TAG, XTAL(17'734'472)/18));
- mos8565.set_cpu(M6510_TAG);
+ mos8565.set_cpu(m_maincpu);
mos8565.irq_callback().set("irq", FUNC(input_merger_device::in_w<1>));
mos8565.set_screen(SCREEN_TAG);
mos8565.set_addrmap(0, &c64_state::vic_videoram_map);
diff --git a/src/mame/drivers/cabal.cpp b/src/mame/drivers/cabal.cpp
index 3b8ecee8592..07d91102288 100644
--- a/src/mame/drivers/cabal.cpp
+++ b/src/mame/drivers/cabal.cpp
@@ -590,7 +590,7 @@ void cabal_state::cabalbl(machine_config &config)
adpcm_2.set_addrmap(AS_IO, &cabal_state::cabalbl_talk2_portmap);
adpcm_2.set_periodic_int(FUNC(cabal_state::irq0_line_hold), attotime::from_hz(8000));
- config.m_minimum_quantum = attotime::from_hz(600);
+ config.set_maximum_quantum(attotime::from_hz(600));
MCFG_MACHINE_START_OVERRIDE(cabal_state,cabalbl)
MCFG_MACHINE_RESET_OVERRIDE(cabal_state,cabalbl)
diff --git a/src/mame/drivers/cave.cpp b/src/mame/drivers/cave.cpp
index 49fcd7371fc..ecf26c46e4f 100644
--- a/src/mame/drivers/cave.cpp
+++ b/src/mame/drivers/cave.cpp
@@ -2491,7 +2491,7 @@ void cave_state::sailormn(machine_config &config)
m_audiocpu->set_addrmap(AS_PROGRAM, &cave_state::sailormn_sound_map);
m_audiocpu->set_addrmap(AS_IO, &cave_state::sailormn_sound_portmap);
-// config.m_minimum_quantum = attotime::from_hz(600);
+// config.set_maximum_quantum(attotime::from_hz(600));
MCFG_MACHINE_RESET_OVERRIDE(cave_state,sailormn)
EEPROM_93C46_16BIT(config, m_eeprom);
diff --git a/src/mame/drivers/cbm2.cpp b/src/mame/drivers/cbm2.cpp
index cdfe8850ea5..317a5047c9d 100644
--- a/src/mame/drivers/cbm2.cpp
+++ b/src/mame/drivers/cbm2.cpp
@@ -37,7 +37,6 @@
#include "video/mc6845.h"
#include "video/mos6566.h"
-#define M6509_TAG "u13"
#define PLA1_TAG "u78"
#define PLA2_TAG "u88"
#define MOS6567_TAG "u23"
@@ -67,7 +66,7 @@ class cbm2_state : public driver_device
public:
cbm2_state(const machine_config &mconfig, device_type type, const char *tag) :
driver_device(mconfig, type, tag),
- m_maincpu(*this, M6509_TAG),
+ m_maincpu(*this, "u13"),
m_pla1(*this, PLA1_TAG),
m_crtc(*this, MC68B45_TAG),
m_palette(*this, "palette"),
@@ -2251,13 +2250,13 @@ void p500_state::p500_ntsc(machine_config &config)
M6509(config, m_maincpu, XTAL(14'318'181)/14);
m_maincpu->disable_cache(); // address decoding is 100% dynamic, no RAM/ROM banks
m_maincpu->set_addrmap(AS_PROGRAM, &p500_state::p500_mem);
- config.m_perfect_cpu_quantum = subtag(M6509_TAG);
+ config.set_perfect_quantum(m_maincpu);
INPUT_MERGER_ANY_HIGH(config, "mainirq").output_handler().set_inputline(m_maincpu, m6509_device::IRQ_LINE);
// video hardware
mos6567_device &mos6567(MOS6567(config, MOS6567_TAG, XTAL(14'318'181)/14));
- mos6567.set_cpu(M6509_TAG);
+ mos6567.set_cpu(m_maincpu);
mos6567.irq_callback().set("mainirq", FUNC(input_merger_device::in_w<0>));
mos6567.set_screen(SCREEN_TAG);
mos6567.set_addrmap(0, &p500_state::vic_videoram_map);
@@ -2385,13 +2384,13 @@ void p500_state::p500_pal(machine_config &config)
M6509(config, m_maincpu, XTAL(17'734'472)/18);
m_maincpu->disable_cache(); // address decoding is 100% dynamic, no RAM/ROM banks
m_maincpu->set_addrmap(AS_PROGRAM, &p500_state::p500_mem);
- config.m_perfect_cpu_quantum = subtag(M6509_TAG);
+ config.set_perfect_quantum(m_maincpu);
INPUT_MERGER_ANY_HIGH(config, "mainirq").output_handler().set_inputline(m_maincpu, m6509_device::IRQ_LINE);
// video hardware
mos6569_device &mos6569(MOS6569(config, MOS6569_TAG, XTAL(17'734'472)/18));
- mos6569.set_cpu(M6509_TAG);
+ mos6569.set_cpu(m_maincpu);
mos6569.irq_callback().set("mainirq", FUNC(input_merger_device::in_w<0>));
mos6569.set_screen(SCREEN_TAG);
mos6569.set_addrmap(0, &p500_state::vic_videoram_map);
@@ -2516,7 +2515,7 @@ void cbm2_state::cbm2lp_ntsc(machine_config &config)
M6509(config, m_maincpu, XTAL(18'000'000)/9);
m_maincpu->disable_cache(); // address decoding is 100% dynamic, no RAM/ROM banks
m_maincpu->set_addrmap(AS_PROGRAM, &cbm2_state::cbm2_mem);
- config.m_perfect_cpu_quantum = subtag(M6509_TAG);
+ config.set_perfect_quantum(m_maincpu);
INPUT_MERGER_ANY_HIGH(config, "mainirq").output_handler().set_inputline(m_maincpu, m6509_device::IRQ_LINE);
diff --git a/src/mame/drivers/cedar_magnet.cpp b/src/mame/drivers/cedar_magnet.cpp
index ef1eae39cea..a4f3271358a 100644
--- a/src/mame/drivers/cedar_magnet.cpp
+++ b/src/mame/drivers/cedar_magnet.cpp
@@ -813,7 +813,7 @@ void cedar_magnet_state::cedar_magnet(machine_config &config)
CEDAR_MAGNET_FLOP(config, "flop", 0);
- config.m_perfect_cpu_quantum = subtag("maincpu");
+ config.set_perfect_quantum(m_maincpu);
}
diff --git a/src/mame/drivers/chaknpop.cpp b/src/mame/drivers/chaknpop.cpp
index 01feb17a84e..35e562ca90d 100644
--- a/src/mame/drivers/chaknpop.cpp
+++ b/src/mame/drivers/chaknpop.cpp
@@ -370,7 +370,7 @@ void chaknpop_state::chaknpop(machine_config &config)
m_maincpu->set_vblank_int("screen", FUNC(chaknpop_state::irq0_line_hold));
TAITO68705_MCU(config, m_bmcu, XTAL(18'000'000) / 6); // Verified on PCB
- config.m_minimum_quantum = attotime::from_hz(6000); // 100 CPU slices per frame - a high value to ensure proper synchronization of the CPUs
+ config.set_maximum_quantum(attotime::from_hz(6000)); // 100 CPU slices per frame - a high value to ensure proper synchronization of the CPUs
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
diff --git a/src/mame/drivers/champbas.cpp b/src/mame/drivers/champbas.cpp
index fdd72fad564..5068d265c6e 100644
--- a/src/mame/drivers/champbas.cpp
+++ b/src/mame/drivers/champbas.cpp
@@ -536,7 +536,7 @@ void champbas_state::talbot(machine_config &config)
m_mainlatch->q_out_cb<7>().set(FUNC(champbas_state::mcu_switch_w));
ALPHA_8201(config, m_alpha_8201, XTAL(18'432'000)/6/8);
- config.m_perfect_cpu_quantum = subtag("alpha_8201:mcu");
+ config.set_perfect_quantum("alpha_8201:mcu");
WATCHDOG_TIMER(config, m_watchdog).set_vblank_count("screen", 0x10);
@@ -618,7 +618,7 @@ void champbas_state::champbasj(machine_config &config)
m_mainlatch->q_out_cb<7>().set(FUNC(champbas_state::mcu_switch_w));
ALPHA_8201(config, m_alpha_8201, XTAL(18'432'000)/6/8); // note: 8302 rom on champbb2 (same device!)
- config.m_perfect_cpu_quantum = subtag("alpha_8201:mcu");
+ config.set_perfect_quantum("alpha_8201:mcu");
}
@@ -689,7 +689,7 @@ void exctsccr_state::exctsccr(machine_config &config)
exc_snd_irq.set_start_delay(attotime::from_hz(75));
ALPHA_8201(config, m_alpha_8201, XTAL(18'432'000)/6/8); // note: 8302 rom, or 8303 on exctscc2 (same device!)
- config.m_perfect_cpu_quantum = subtag("alpha_8201:mcu");
+ config.set_perfect_quantum("alpha_8201:mcu");
WATCHDOG_TIMER(config, m_watchdog).set_vblank_count("screen", 0x10);
@@ -747,7 +747,7 @@ void exctsccr_state::exctsccrb(machine_config &config)
m_audiocpu->set_addrmap(AS_PROGRAM, &exctsccr_state::champbas_sound_map);
ALPHA_8201(config, m_alpha_8201, XTAL(18'432'000)/6/8); // champbasj 8201 on pcb, though unused
- config.m_perfect_cpu_quantum = subtag("alpha_8201:mcu");
+ config.set_perfect_quantum("alpha_8201:mcu");
WATCHDOG_TIMER(config, m_watchdog).set_vblank_count("screen", 0x10);
diff --git a/src/mame/drivers/chihiro.cpp b/src/mame/drivers/chihiro.cpp
index 9b789fcb629..d4de95909e8 100644
--- a/src/mame/drivers/chihiro.cpp
+++ b/src/mame/drivers/chihiro.cpp
@@ -511,11 +511,11 @@ int jvs_master::received_packet(uint8_t *buffer)
DECLARE_DEVICE_TYPE(OHCI_HLEAN2131QC, ohci_hlean2131qc_device)
-class ohci_hlean2131qc_device : public device_t, public ohci_function, public device_slot_card_interface
+class ohci_hlean2131qc_device : public device_t, public device_usb_ohci_function_interface
{
public:
ohci_hlean2131qc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- void initialize(running_machine &machine) override;
+ void initialize() override;
int handle_nonstandard_request(int endpoint, USBSetupPacket *setup) override;
int handle_bulk_pid(int endpoint, int pid, uint8_t *buffer, int size) override;
void set_region_base(uint8_t *data);
@@ -569,11 +569,11 @@ DEFINE_DEVICE_TYPE(OHCI_HLEAN2131QC, ohci_hlean2131qc_device, "ohci_hlean2131qc"
DECLARE_DEVICE_TYPE(OHCI_HLEAN2131SC, ohci_hlean2131sc_device)
-class ohci_hlean2131sc_device : public device_t, public ohci_function, public device_slot_card_interface
+class ohci_hlean2131sc_device : public device_t, public device_usb_ohci_function_interface
{
public:
ohci_hlean2131sc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- void initialize(running_machine &machine) override;
+ void initialize() override;
int handle_nonstandard_request(int endpoint, USBSetupPacket *setup) override;
int handle_bulk_pid(int endpoint, int pid, uint8_t *buffer, int size) override;
void set_region_base(uint8_t *data);
@@ -876,8 +876,7 @@ const uint8_t ohci_hlean2131qc_device::strdesc2[] = { 0x0E,0x03,0x42,0x00,0x41,0
ohci_hlean2131qc_device::ohci_hlean2131qc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: device_t(mconfig, OHCI_HLEAN2131QC, tag, owner, clock)
- , ohci_function()
- , device_slot_card_interface(mconfig, *this)
+ , device_usb_ohci_function_interface(mconfig, *this)
, m_jvs_master(*this, "^^^^jvs_master")
{
maximum_send = 0;
@@ -889,9 +888,9 @@ ohci_hlean2131qc_device::ohci_hlean2131qc_device(const machine_config &mconfig,
jvs.buffer_out_packets = 0;
}
-void ohci_hlean2131qc_device::initialize(running_machine &machine)
+void ohci_hlean2131qc_device::initialize()
{
- ohci_function::initialize(machine);
+ device_usb_ohci_function_interface::initialize();
add_device_descriptor(devdesc);
add_configuration_descriptor(condesc);
add_interface_descriptor(intdesc);
@@ -1184,7 +1183,7 @@ void ohci_hlean2131qc_device::process_jvs_packet()
void ohci_hlean2131qc_device::device_start()
{
- initialize(machine());
+ initialize();
if (region_tag)
set_region_base(memregion(region_tag)->base() + region_offset);
}
@@ -1205,8 +1204,7 @@ const uint8_t ohci_hlean2131sc_device::strdesc2[] = { 0x0E,0x03,0x42,0x00,0x41,0
ohci_hlean2131sc_device::ohci_hlean2131sc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: device_t(mconfig, OHCI_HLEAN2131SC, tag, owner, clock)
- , ohci_function()
- , device_slot_card_interface(mconfig, *this)
+ , device_usb_ohci_function_interface(mconfig, *this)
{
region = nullptr;
region_tag = nullptr;
@@ -1227,9 +1225,9 @@ void ohci_hlean2131sc_device::set_region(const char *_region_tag, int _region_of
region_offset = _region_offset;
}
-void ohci_hlean2131sc_device::initialize(running_machine &machine)
+void ohci_hlean2131sc_device::initialize()
{
- ohci_function::initialize(machine);
+ device_usb_ohci_function_interface::initialize();
add_device_descriptor(devdesc);
add_configuration_descriptor(condesc);
add_interface_descriptor(intdesc);
@@ -1516,7 +1514,7 @@ void ohci_hlean2131sc_device::process_packet()
void ohci_hlean2131sc_device::device_start()
{
- initialize(machine());
+ initialize();
if (region_tag)
set_region_base(memregion(region_tag)->base() + region_offset);
}
diff --git a/src/mame/drivers/chinagat.cpp b/src/mame/drivers/chinagat.cpp
index 82ee3379f5d..6b9b2080801 100644
--- a/src/mame/drivers/chinagat.cpp
+++ b/src/mame/drivers/chinagat.cpp
@@ -758,7 +758,7 @@ void chinagat_state::chinagat(machine_config &config)
Z80(config, m_soundcpu, XTAL(3'579'545)); /* 3.579545 MHz */
m_soundcpu->set_addrmap(AS_PROGRAM, &chinagat_state::sound_map);
- config.m_minimum_quantum = attotime::from_hz(6000); /* heavy interleaving to sync up sprite<->main cpu's */
+ config.set_maximum_quantum(attotime::from_hz(6000)); /* heavy interleaving to sync up sprite<->main cpu's */
/* video hardware */
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
@@ -805,7 +805,7 @@ void chinagat_state::saiyugoub1(machine_config &config)
mcu.p1_out_cb().set(FUNC(chinagat_state::saiyugoub1_adpcm_rom_addr_w));
mcu.p2_out_cb().set(FUNC(chinagat_state::saiyugoub1_adpcm_control_w));
- config.m_minimum_quantum = attotime::from_hz(6000); /* heavy interleaving to sync up sprite<->main cpu's */
+ config.set_maximum_quantum(attotime::from_hz(6000)); /* heavy interleaving to sync up sprite<->main cpu's */
/* video hardware */
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
@@ -846,7 +846,7 @@ void chinagat_state::saiyugoub2(machine_config &config)
Z80(config, m_soundcpu, XTAL(3'579'545)); /* 3.579545 MHz oscillator */
m_soundcpu->set_addrmap(AS_PROGRAM, &chinagat_state::ym2203c_sound_map);
- config.m_minimum_quantum = attotime::from_hz(6000); /* heavy interleaving to sync up sprite<->main cpu's */
+ config.set_maximum_quantum(attotime::from_hz(6000)); /* heavy interleaving to sync up sprite<->main cpu's */
/* video hardware */
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
diff --git a/src/mame/drivers/chqflag.cpp b/src/mame/drivers/chqflag.cpp
index 0a55ecf795d..d5a94d0f287 100644
--- a/src/mame/drivers/chqflag.cpp
+++ b/src/mame/drivers/chqflag.cpp
@@ -327,7 +327,7 @@ void chqflag_state::chqflag(machine_config &config)
ADDRESS_MAP_BANK(config, m_bank1000).set_map(&chqflag_state::bank1000_map).set_options(ENDIANNESS_BIG, 8, 13, 0x1000);
- config.m_minimum_quantum = attotime::from_hz(600);
+ config.set_maximum_quantum(attotime::from_hz(600));
WATCHDOG_TIMER(config, "watchdog");
diff --git a/src/mame/drivers/cischeat.cpp b/src/mame/drivers/cischeat.cpp
index aca6f21c8cc..0dffc3ef63e 100644
--- a/src/mame/drivers/cischeat.cpp
+++ b/src/mame/drivers/cischeat.cpp
@@ -1934,7 +1934,7 @@ void cischeat_state::bigrun(machine_config &config)
// timing set by the YM irqhandler
// m_soundcpu->set_periodic_int(FUNC(cischeat_state::irq4_line_hold), attotime::from_hz(16*30));
- config.m_minimum_quantum = attotime::from_hz(1200);
+ config.set_maximum_quantum(attotime::from_hz(1200));
/* video hardware */
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
@@ -2051,7 +2051,7 @@ void cischeat_state::f1gpstr2(machine_config &config)
M68000(config, m_cpu5, 10000000);
m_cpu5->set_addrmap(AS_PROGRAM, &cischeat_state::f1gpstr2_io_map);
- config.m_minimum_quantum = attotime::from_hz(12000);
+ config.set_maximum_quantum(attotime::from_hz(12000));
}
diff --git a/src/mame/drivers/cloak.cpp b/src/mame/drivers/cloak.cpp
index 12380e6dfde..3a9606f1cbb 100644
--- a/src/mame/drivers/cloak.cpp
+++ b/src/mame/drivers/cloak.cpp
@@ -324,7 +324,7 @@ void cloak_state::cloak(machine_config &config)
m_slave->set_addrmap(AS_PROGRAM, &cloak_state::slave_map);
m_slave->set_periodic_int(FUNC(cloak_state::irq0_line_hold), attotime::from_hz(2*60));
- config.m_minimum_quantum = attotime::from_hz(1000);
+ config.set_maximum_quantum(attotime::from_hz(1000));
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
diff --git a/src/mame/drivers/cmi.cpp b/src/mame/drivers/cmi.cpp
index db1adbf9dd8..db105420969 100644
--- a/src/mame/drivers/cmi.cpp
+++ b/src/mame/drivers/cmi.cpp
@@ -1626,12 +1626,11 @@ void cmi_state::cmi2x(machine_config &config)
MC6809E(config, m_maincpu1, Q209_CPU_CLOCK);
m_maincpu1->set_addrmap(AS_PROGRAM, &cmi_state::maincpu1_map);
m_maincpu1->set_irq_acknowledge_callback(FUNC(cmi_state::cpu1_interrupt_callback));
- config.m_perfect_cpu_quantum = subtag("maincpu1");
+ config.set_perfect_quantum(m_maincpu1);
MC6809E(config, m_maincpu2, Q209_CPU_CLOCK);
m_maincpu2->set_addrmap(AS_PROGRAM, &cmi_state::maincpu2_map);
m_maincpu2->set_irq_acknowledge_callback(FUNC(cmi_state::cpu2_interrupt_callback));
- config.m_perfect_cpu_quantum = subtag("maincpu2");
M68000(config, m_midicpu, 20_MHz_XTAL / 2);
m_midicpu->set_addrmap(AS_PROGRAM, &cmi_state::midicpu_map);
diff --git a/src/mame/drivers/cntsteer.cpp b/src/mame/drivers/cntsteer.cpp
index 1323717d2ae..7865876e996 100644
--- a/src/mame/drivers/cntsteer.cpp
+++ b/src/mame/drivers/cntsteer.cpp
@@ -1004,8 +1004,7 @@ void cntsteer_state::cntsteer(machine_config &config)
screen.screen_vblank().set_inputline(m_maincpu, INPUT_LINE_NMI); // ?
screen.screen_vblank().append(FUNC(cntsteer_state::subcpu_vblank_irq)); // ?
- config.m_perfect_cpu_quantum = subtag("maincpu");
- config.m_perfect_cpu_quantum = subtag("subcpu");
+ config.set_perfect_quantum(m_subcpu);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_cntsteer);
PALETTE(config, m_palette, FUNC(cntsteer_state::cntsteer_palette), 256);
@@ -1042,7 +1041,7 @@ void cntsteer_state::zerotrgt(machine_config &config)
m_audiocpu->set_addrmap(AS_PROGRAM, &cntsteer_state::sound_map);
m_audiocpu->set_periodic_int(FUNC(cntsteer_state::sound_interrupt), attotime::from_hz(480));
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
MCFG_MACHINE_START_OVERRIDE(cntsteer_state,zerotrgt)
MCFG_MACHINE_RESET_OVERRIDE(cntsteer_state,zerotrgt)
diff --git a/src/mame/drivers/cobra.cpp b/src/mame/drivers/cobra.cpp
index adc7b603c27..3c2339d98b8 100644
--- a/src/mame/drivers/cobra.cpp
+++ b/src/mame/drivers/cobra.cpp
@@ -3295,7 +3295,7 @@ void cobra_state::cobra(machine_config &config)
m_gfxcpu->set_bus_frequency(XTAL(66'666'700)); /* Multiplier 1.5, Bus = 66MHz, Core = 100MHz */
m_gfxcpu->set_addrmap(AS_PROGRAM, &cobra_state::cobra_gfx_map);
- config.m_minimum_quantum = attotime::from_hz(15005);
+ config.set_maximum_quantum(attotime::from_hz(15005));
PCI_BUS_LEGACY(config, m_legacy_pci, 0, 0);
m_legacy_pci->set_device(0, FUNC(cobra_state::mpc106_pci_r), FUNC(cobra_state::mpc106_pci_w));
diff --git a/src/mame/drivers/combatsc.cpp b/src/mame/drivers/combatsc.cpp
index 24c92c6fc82..6a8ba7d7c92 100644
--- a/src/mame/drivers/combatsc.cpp
+++ b/src/mame/drivers/combatsc.cpp
@@ -710,7 +710,7 @@ void combatsc_state::combatsc(machine_config &config)
Z80(config, m_audiocpu, 3579545); /* 3.579545 MHz */
m_audiocpu->set_addrmap(AS_PROGRAM, &combatsc_state::combatsc_sound_map);
- config.m_minimum_quantum = attotime::from_hz(1200);
+ config.set_maximum_quantum(attotime::from_hz(1200));
MCFG_MACHINE_START_OVERRIDE(combatsc_state,combatsc)
@@ -762,7 +762,7 @@ void combatsc_state::combatscb(machine_config &config)
Z80(config, m_audiocpu, 3579545); /* 3.579545 MHz */
m_audiocpu->set_addrmap(AS_PROGRAM, &combatsc_state::combatscb_sound_map);
- config.m_minimum_quantum = attotime::from_hz(1200);
+ config.set_maximum_quantum(attotime::from_hz(1200));
MCFG_MACHINE_START_OVERRIDE(combatsc_state,combatscb)
diff --git a/src/mame/drivers/concept.cpp b/src/mame/drivers/concept.cpp
index ebd7edca544..be1c48b03b1 100644
--- a/src/mame/drivers/concept.cpp
+++ b/src/mame/drivers/concept.cpp
@@ -213,7 +213,7 @@ void concept_state::concept(machine_config &config)
M68000(config, m_maincpu, 16.364_MHz_XTAL / 2);
m_maincpu->set_addrmap(AS_PROGRAM, &concept_state::concept_memmap);
- config.m_minimum_quantum = attotime::from_hz(60);
+ config.set_maximum_quantum(attotime::from_hz(60));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
diff --git a/src/mame/drivers/contra.cpp b/src/mame/drivers/contra.cpp
index 4c13d4b0a6e..085acf4903b 100644
--- a/src/mame/drivers/contra.cpp
+++ b/src/mame/drivers/contra.cpp
@@ -215,7 +215,7 @@ void contra_state::contra(machine_config &config)
MC6809E(config, m_audiocpu, XTAL(24'000'000)/8); /* 3000000? (HD68B09EP) */
m_audiocpu->set_addrmap(AS_PROGRAM, &contra_state::sound_map);
- config.m_minimum_quantum = attotime::from_hz(6000); /* enough for the sound CPU to read all commands */
+ config.set_maximum_quantum(attotime::from_hz(6000)); /* enough for the sound CPU to read all commands */
/* video hardware */
diff --git a/src/mame/drivers/crgolf.cpp b/src/mame/drivers/crgolf.cpp
index e44dcaa034b..b576db312ed 100644
--- a/src/mame/drivers/crgolf.cpp
+++ b/src/mame/drivers/crgolf.cpp
@@ -476,7 +476,7 @@ void crgolf_state::crgolf(machine_config &config)
m_audiocpu->set_addrmap(AS_PROGRAM, &crgolf_state::sound_map);
m_audiocpu->set_vblank_int("screen", FUNC(crgolf_state::irq0_line_hold));
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
ls259_device &mainlatch(LS259(config, "mainlatch")); // 1H
mainlatch.q_out_cb<3>().set(FUNC(crgolf_state::color_select_w));
diff --git a/src/mame/drivers/cubeqst.cpp b/src/mame/drivers/cubeqst.cpp
index 02b404339d9..86b0ff13303 100644
--- a/src/mame/drivers/cubeqst.cpp
+++ b/src/mame/drivers/cubeqst.cpp
@@ -542,7 +542,7 @@ void cubeqst_state::cubeqst(machine_config &config)
m_soundcpu->dac_w().set(FUNC(cubeqst_state::sound_dac_w));
m_soundcpu->set_sound_region("soundproms");
- config.m_minimum_quantum = attotime::from_hz(48000);
+ config.set_maximum_quantum(attotime::from_hz(48000));
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
diff --git a/src/mame/drivers/cyberbal.cpp b/src/mame/drivers/cyberbal.cpp
index dc1bb096aa3..90ebdc47c27 100644
--- a/src/mame/drivers/cyberbal.cpp
+++ b/src/mame/drivers/cyberbal.cpp
@@ -409,7 +409,7 @@ void cyberbal_state::cyberbal_base(machine_config &config)
m_daccpu->set_addrmap(AS_PROGRAM, &cyberbal_state::sound_68k_map);
m_daccpu->set_periodic_int(FUNC(cyberbal_state::sound_68k_irq_gen), attotime::from_hz(10000));
- config.m_minimum_quantum = attotime::from_hz(600);
+ config.set_maximum_quantum(attotime::from_hz(600));
WATCHDOG_TIMER(config, "watchdog");
diff --git a/src/mame/drivers/cybertnk.cpp b/src/mame/drivers/cybertnk.cpp
index 87dd4c34787..ea23f66f52d 100644
--- a/src/mame/drivers/cybertnk.cpp
+++ b/src/mame/drivers/cybertnk.cpp
@@ -833,7 +833,7 @@ void cybertnk_state::cybertnk(machine_config &config)
Z80(config, m_audiocpu, XTAL(3'579'545));
m_audiocpu->set_addrmap(AS_PROGRAM, &cybertnk_state::sound_mem);
- config.m_minimum_quantum = attotime::from_hz(60000); //arbitrary value, needed to get the communication to work
+ config.set_maximum_quantum(attotime::from_hz(60000)); //arbitrary value, needed to get the communication to work
/* video hardware */
config.set_default_layout(layout_dualhsxs);
diff --git a/src/mame/drivers/dai.cpp b/src/mame/drivers/dai.cpp
index cf083900922..7bc2af9a8e2 100644
--- a/src/mame/drivers/dai.cpp
+++ b/src/mame/drivers/dai.cpp
@@ -194,7 +194,7 @@ void dai_state::dai(machine_config &config)
m_maincpu->set_addrmap(AS_PROGRAM, &dai_state::dai_mem);
m_maincpu->set_addrmap(AS_IO, &dai_state::dai_io);
m_maincpu->set_irq_acknowledge_callback(FUNC(dai_state::int_ack));
- config.m_minimum_quantum = attotime::from_hz(60);
+ config.set_maximum_quantum(attotime::from_hz(60));
PIT8253(config, m_pit, 0);
m_pit->set_clk<0>(2000000);
diff --git a/src/mame/drivers/darius.cpp b/src/mame/drivers/darius.cpp
index 6f73450b235..89067a67306 100644
--- a/src/mame/drivers/darius.cpp
+++ b/src/mame/drivers/darius.cpp
@@ -705,7 +705,7 @@ void darius_state::darius(machine_config &config)
m_adpcm->set_addrmap(AS_PROGRAM, &darius_state::darius_sound2_map);
m_adpcm->set_addrmap(AS_IO, &darius_state::darius_sound2_io_map);
- config.m_minimum_quantum = attotime::from_hz(600); /* 10 CPU slices per frame ? */
+ config.set_maximum_quantum(attotime::from_hz(600)); /* 10 CPU slices per frame ? */
WATCHDOG_TIMER(config, "watchdog");
diff --git a/src/mame/drivers/dassault.cpp b/src/mame/drivers/dassault.cpp
index 4795bae0eda..0097d2fe67d 100644
--- a/src/mame/drivers/dassault.cpp
+++ b/src/mame/drivers/dassault.cpp
@@ -538,8 +538,8 @@ void dassault_state::dassault(machine_config &config)
m_audiocpu->add_route(ALL_OUTPUTS, "lspeaker", 0); // internal sound unused
m_audiocpu->add_route(ALL_OUTPUTS, "rspeaker", 0);
-// config.m_minimum_quantum = attotime::from_hz(8400); /* 140 CPU slices per frame */
- config.m_perfect_cpu_quantum = subtag("maincpu"); // I was seeing random lockups.. let's see if this helps
+// config.set_maximum_quantum(attotime::from_hz(8400)); /* 140 CPU slices per frame */
+ config.set_perfect_quantum(m_maincpu); // I was seeing random lockups.. let's see if this helps
mb8421_mb8431_16_device &sharedram(MB8421_MB8431_16BIT(config, "sharedram"));
sharedram.intl_callback().set_inputline("maincpu", M68K_IRQ_5);
diff --git a/src/mame/drivers/dblewing.cpp b/src/mame/drivers/dblewing.cpp
index 4b9230db575..53febd006ad 100644
--- a/src/mame/drivers/dblewing.cpp
+++ b/src/mame/drivers/dblewing.cpp
@@ -352,7 +352,7 @@ void dblewing_state::dblewing(machine_config &config)
INPUT_MERGER_ANY_HIGH(config, "soundirq").output_handler().set_inputline(m_audiocpu, 0);
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
/* video hardware */
diff --git a/src/mame/drivers/ddayjlc.cpp b/src/mame/drivers/ddayjlc.cpp
index 0f3523be9e8..37903e032fa 100644
--- a/src/mame/drivers/ddayjlc.cpp
+++ b/src/mame/drivers/ddayjlc.cpp
@@ -609,7 +609,7 @@ void ddayjlc_state::ddayjlc(machine_config &config)
Z80(config, m_audiocpu, 12000000/4);
m_audiocpu->set_addrmap(AS_PROGRAM, &ddayjlc_state::sound_map);
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
diff --git a/src/mame/drivers/ddragon.cpp b/src/mame/drivers/ddragon.cpp
index d9f13ffd2b0..01f72a7197b 100644
--- a/src/mame/drivers/ddragon.cpp
+++ b/src/mame/drivers/ddragon.cpp
@@ -954,7 +954,7 @@ void ddragon_state::ddragon(machine_config &config)
MC6809(config, m_soundcpu, MAIN_CLOCK / 2); /* HD68A09P, 6 MHz / 4 internally */
m_soundcpu->set_addrmap(AS_PROGRAM, &ddragon_state::sound_map);
- config.m_minimum_quantum = attotime::from_hz(60000); /* heavy interleaving to sync up sprite<->main CPUs */
+ config.set_maximum_quantum(attotime::from_hz(60000)); /* heavy interleaving to sync up sprite<->main CPUs */
MCFG_MACHINE_START_OVERRIDE(ddragon_state,ddragon)
MCFG_MACHINE_RESET_OVERRIDE(ddragon_state,ddragon)
@@ -1025,7 +1025,7 @@ void ddragon_state::ddragon6809(machine_config &config)
MC6809E(config, m_soundcpu, MAIN_CLOCK / 8); /* 1.5 MHz */
m_soundcpu->set_addrmap(AS_PROGRAM, &ddragon_state::sound_map);
- config.m_minimum_quantum = attotime::from_hz(60000); /* heavy interleaving to sync up sprite<->main CPUs */
+ config.set_maximum_quantum(attotime::from_hz(60000)); /* heavy interleaving to sync up sprite<->main CPUs */
MCFG_MACHINE_START_OVERRIDE(ddragon_state,ddragon)
MCFG_MACHINE_RESET_OVERRIDE(ddragon_state,ddragon)
@@ -1076,7 +1076,7 @@ void ddragon_state::ddragon2(machine_config &config)
Z80(config, m_soundcpu, 3579545);
m_soundcpu->set_addrmap(AS_PROGRAM, &ddragon_state::dd2_sound_map);
- config.m_minimum_quantum = attotime::from_hz(60000); /* heavy interleaving to sync up sprite<->main CPUs */
+ config.set_maximum_quantum(attotime::from_hz(60000)); /* heavy interleaving to sync up sprite<->main CPUs */
MCFG_MACHINE_START_OVERRIDE(ddragon_state,ddragon)
MCFG_MACHINE_RESET_OVERRIDE(ddragon_state,ddragon)
diff --git a/src/mame/drivers/ddribble.cpp b/src/mame/drivers/ddribble.cpp
index e632afca03c..0d2a055b07e 100644
--- a/src/mame/drivers/ddribble.cpp
+++ b/src/mame/drivers/ddribble.cpp
@@ -269,7 +269,7 @@ void ddribble_state::ddribble(machine_config &config)
mc6809e_device &cpu2(MC6809E(config, "cpu2", XTAL(18'432'000)/12)); /* verified on pcb */
cpu2.set_addrmap(AS_PROGRAM, &ddribble_state::cpu2_map);
- config.m_minimum_quantum = attotime::from_hz(6000); /* we need heavy synch */
+ config.set_maximum_quantum(attotime::from_hz(6000)); /* we need heavy synch */
WATCHDOG_TIMER(config, "watchdog");
diff --git a/src/mame/drivers/deadang.cpp b/src/mame/drivers/deadang.cpp
index 4668803308a..69d4f137a3b 100644
--- a/src/mame/drivers/deadang.cpp
+++ b/src/mame/drivers/deadang.cpp
@@ -371,7 +371,7 @@ void deadang_state::deadang(machine_config &config)
SEI80BU(config, "sei80bu", 0).set_device_rom_tag("audiocpu");
- config.m_minimum_quantum = attotime::from_hz(60); // the game stops working with higher interleave rates..
+ config.set_maximum_quantum(attotime::from_hz(60)); // the game stops working with higher interleave rates..
WATCHDOG_TIMER(config, "watchdog");
diff --git a/src/mame/drivers/dec0.cpp b/src/mame/drivers/dec0.cpp
index 8d7304198ad..8c7050aa4e3 100644
--- a/src/mame/drivers/dec0.cpp
+++ b/src/mame/drivers/dec0.cpp
@@ -2045,7 +2045,7 @@ void dec0_state::birdtry(machine_config &config)
m_maincpu->set_addrmap(AS_PROGRAM, &dec0_state::dec0_tb_map);
// needs a tight sync with the mcu
- config.m_perfect_cpu_quantum = subtag("maincpu");
+ config.set_perfect_quantum(m_maincpu);
i8751_device &mcu(I8751(config, m_mcu, XTAL(8'000'000)));
mcu.port_in_cb<0>().set(FUNC(dec0_state::dec0_mcu_port0_r));
@@ -2076,7 +2076,7 @@ void dec0_state::robocop(machine_config &config)
m_subcpu->set_addrmap(AS_PROGRAM, &dec0_state::robocop_sub_map);
m_subcpu->add_route(ALL_OUTPUTS, "mono", 0); // internal sound unused
- config.m_minimum_quantum = attotime::from_hz(3000); /* Interleave between HuC6280 & 68000 */
+ config.set_maximum_quantum(attotime::from_hz(3000)); /* Interleave between HuC6280 & 68000 */
/* video hardware */
m_screen->set_screen_update(FUNC(dec0_state::screen_update_robocop));
@@ -2102,7 +2102,7 @@ void dec0_state::hippodrm(machine_config &config)
m_subcpu->set_addrmap(AS_PROGRAM, &dec0_state::hippodrm_sub_map);
m_subcpu->add_route(ALL_OUTPUTS, "mono", 0); // internal sound unused
- config.m_minimum_quantum = attotime::from_hz(300); /* Interleave between H6280 & 68000 */
+ config.set_maximum_quantum(attotime::from_hz(300)); /* Interleave between H6280 & 68000 */
/* video hardware */
m_screen->set_screen_update(FUNC(dec0_state::screen_update_hippodrm));
@@ -2118,7 +2118,7 @@ void dec0_state::ffantasybl(machine_config &config)
// m_subcpu->set_addrmap(AS_PROGRAM, &dec0_state::hippodrm_sub_map);
// m_subcpu->add_route(ALL_OUTPUTS, "mono", 0); // internal sound unused
-// config.m_minimum_quantum = attotime::from_hz(300); /* Interleave between H6280 & 68000 */
+// config.set_maximum_quantum(attotime::from_hz(300)); /* Interleave between H6280 & 68000 */
/* video hardware */
m_screen->set_screen_update(FUNC(dec0_state::screen_update_hippodrm));
diff --git a/src/mame/drivers/dec8.cpp b/src/mame/drivers/dec8.cpp
index 09927ceef9a..700c205cbf1 100644
--- a/src/mame/drivers/dec8.cpp
+++ b/src/mame/drivers/dec8.cpp
@@ -1904,7 +1904,7 @@ void dec8_state::lastmisn(machine_config &config)
m_mcu->port_out_cb<2>().set(FUNC(dec8_state::shackled_mcu_to_main_w));
m_mcu->port_in_cb<3>().set_ioport("I8751");
- config.m_minimum_quantum = attotime::from_hz(12000);
+ config.set_maximum_quantum(attotime::from_hz(12000));
INPUT_MERGER_ANY_LOW(config, "coin").output_handler().set(FUNC(dec8_state::shackled_coin_irq));
@@ -1963,8 +1963,8 @@ void dec8_state::shackled(machine_config &config)
m_mcu->port_out_cb<2>().set(FUNC(dec8_state::shackled_mcu_to_main_w));
m_mcu->port_in_cb<3>().set_ioport("I8751");
-// config.m_minimum_quantum = attotime::from_hz(100000);
- config.m_perfect_cpu_quantum = subtag("maincpu"); // needs heavy sync, otherwise one of the two CPUs will miss an IRQ and cause the game to hang
+// config.set_maximum_quantum(attotime::from_hz(100000));
+ config.set_perfect_quantum(m_maincpu); // needs heavy sync, otherwise one of the two CPUs will miss an IRQ and cause the game to hang
INPUT_MERGER_ANY_LOW(config, "coin").output_handler().set(FUNC(dec8_state::shackled_coin_irq));
@@ -2194,7 +2194,7 @@ void dec8_state::csilver(machine_config &config)
M6502(config, m_audiocpu, XTAL(12'000'000)/8); /* verified on pcb */
m_audiocpu->set_addrmap(AS_PROGRAM, &dec8_state::csilver_s_map); /* NMIs are caused by the main CPU */
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
/* video hardware */
BUFFERED_SPRITERAM8(config, m_spriteram);
@@ -2249,7 +2249,7 @@ void dec8_state::oscar(machine_config &config)
DECO_222(config, m_audiocpu, XTAL(12'000'000)/8); // IC labeled "C10707-1"
m_audiocpu->set_addrmap(AS_PROGRAM, &dec8_state::oscar_s_map); /* NMIs are caused by the main CPU */
- config.m_minimum_quantum = attotime::from_hz(2400); /* 40 CPU slices per frame */
+ config.set_maximum_quantum(attotime::from_hz(2400)); /* 40 CPU slices per frame */
INPUT_MERGER_ANY_LOW(config, "coin").output_handler().set(FUNC(dec8_state::oscar_coin_irq)); // 1S1588 x3 (D1-D3) + RCDM-I5
@@ -2308,7 +2308,7 @@ void dec8_state::srdarwin(machine_config &config)
m_mcu->port_out_cb<2>().set(FUNC(dec8_state::srdarwin_mcu_to_main_w));
m_mcu->port_in_cb<3>().set_ioport("I8751");
- config.m_perfect_cpu_quantum = subtag("maincpu"); /* needed for stability with emulated MCU or sometimes commands get missed and game crashes at bosses */
+ config.set_perfect_quantum(m_maincpu); /* needed for stability with emulated MCU or sometimes commands get missed and game crashes at bosses */
/* video hardware */
BUFFERED_SPRITERAM8(config, m_spriteram);
diff --git a/src/mame/drivers/deco32.cpp b/src/mame/drivers/deco32.cpp
index 15467e651c0..0a1ec977be0 100644
--- a/src/mame/drivers/deco32.cpp
+++ b/src/mame/drivers/deco32.cpp
@@ -2176,7 +2176,7 @@ void dragngun_state::lockload(machine_config &config)
m_deco_irq->vblank_irq_callback().set("irq_merger", FUNC(input_merger_any_high_device::in_w<1>));
m_deco_irq->lightgun_irq_callback().set("irq_merger", FUNC(input_merger_any_high_device::in_w<2>));
- config.m_minimum_quantum = attotime::from_hz(6000); /* to improve main<->audio comms */
+ config.set_maximum_quantum(attotime::from_hz(6000)); /* to improve main<->audio comms */
EEPROM_93C46_16BIT(config, m_eeprom);
@@ -2332,7 +2332,7 @@ void nslasher_state::nslasher(machine_config &config)
INPUT_MERGER_ANY_HIGH(config, "sound_irq_merger").output_handler().set_inputline("audiocpu", INPUT_LINE_IRQ0);
- config.m_minimum_quantum = attotime::from_hz(6000); /* to improve main<->audio comms */
+ config.set_maximum_quantum(attotime::from_hz(6000)); /* to improve main<->audio comms */
EEPROM_93C46_16BIT(config, m_eeprom);
diff --git a/src/mame/drivers/deco_ld.cpp b/src/mame/drivers/deco_ld.cpp
index eaf854cb359..4bd6956bff9 100644
--- a/src/mame/drivers/deco_ld.cpp
+++ b/src/mame/drivers/deco_ld.cpp
@@ -471,7 +471,7 @@ void deco_ld_state::rblaster(machine_config &config)
m_audiocpu->set_addrmap(AS_PROGRAM, &deco_ld_state::rblaster_sound_map);
m_audiocpu->set_periodic_int(FUNC(deco_ld_state::sound_interrupt), attotime::from_hz(640));
-// config.m_minimum_quantum = attotime::from_hz(6000);
+// config.set_maximum_quantum(attotime::from_hz(6000));
SONY_LDP1000(config, m_laserdisc, 0);
m_laserdisc->set_overlay(256, 256, FUNC(deco_ld_state::screen_update_rblaster));
diff --git a/src/mame/drivers/decocass.cpp b/src/mame/drivers/decocass.cpp
index d33582d19e4..ff4197d2a33 100644
--- a/src/mame/drivers/decocass.cpp
+++ b/src/mame/drivers/decocass.cpp
@@ -966,7 +966,7 @@ void decocass_state::decocass(machine_config &config)
m_mcu->p2_in_cb().set(FUNC(decocass_state::i8041_p2_r));
m_mcu->p2_out_cb().set(FUNC(decocass_state::i8041_p2_w));
- config.m_minimum_quantum = attotime::from_hz(4200); /* interleave CPUs */
+ config.set_maximum_quantum(attotime::from_hz(4200)); /* interleave CPUs */
WATCHDOG_TIMER(config, m_watchdog);
diff --git a/src/mame/drivers/dectalk.cpp b/src/mame/drivers/dectalk.cpp
index 87b4fe182cc..8351036a2b0 100644
--- a/src/mame/drivers/dectalk.cpp
+++ b/src/mame/drivers/dectalk.cpp
@@ -893,7 +893,7 @@ void dectalk_state::dectalk(machine_config &config)
m_dsp->bio().set(FUNC(dectalk_state::spc_semaphore_r)); //read infifo-has-data-in-it fifo readable status
#ifdef USE_LOOSE_TIMING
- config.m_minimum_quantum = attotime::from_hz(100);
+ config.set_maximum_quantum(attotime::from_hz(100));
#else
config.m_perfect_cpu_quantum = subtag("dsp");
#endif
diff --git a/src/mame/drivers/digel804.cpp b/src/mame/drivers/digel804.cpp
index 86241497f25..f041ebcb882 100644
--- a/src/mame/drivers/digel804.cpp
+++ b/src/mame/drivers/digel804.cpp
@@ -637,7 +637,7 @@ void digel804_state::digel804(machine_config &config)
Z80(config, m_maincpu, 3.6864_MHz_XTAL/2); /* Z80A, X1(aka E0 on schematics): 3.6864Mhz */
m_maincpu->set_addrmap(AS_PROGRAM, &digel804_state::z80_mem_804_1_4);
m_maincpu->set_addrmap(AS_IO, &digel804_state::z80_io_1_4);
- config.m_minimum_quantum = attotime::from_hz(60);
+ config.set_maximum_quantum(attotime::from_hz(60));
ROC10937(config, m_vfd); // RIGHT_TO_LEFT
diff --git a/src/mame/drivers/divebomb.cpp b/src/mame/drivers/divebomb.cpp
index b4c598e5135..48f4a2bc4bd 100644
--- a/src/mame/drivers/divebomb.cpp
+++ b/src/mame/drivers/divebomb.cpp
@@ -400,7 +400,7 @@ void divebomb_state::divebomb(machine_config &config)
m_rozcpu->set_addrmap(AS_PROGRAM, &divebomb_state::divebomb_rozcpu_map);
m_rozcpu->set_addrmap(AS_IO, &divebomb_state::divebomb_rozcpu_iomap);
- config.m_perfect_cpu_quantum = subtag("fgcpu");
+ config.set_perfect_quantum(m_fgcpu);
INPUT_MERGER_ANY_HIGH(config, m_fgcpu_irq).output_handler().set_inputline(m_fgcpu, INPUT_LINE_IRQ0);
diff --git a/src/mame/drivers/djboy.cpp b/src/mame/drivers/djboy.cpp
index 39a035f90b1..edd0580fc6b 100644
--- a/src/mame/drivers/djboy.cpp
+++ b/src/mame/drivers/djboy.cpp
@@ -493,7 +493,7 @@ void djboy_state::djboy(machine_config &config)
m_beast->port_in_cb<3>().set(FUNC(djboy_state::beast_p3_r));
m_beast->port_out_cb<3>().set(FUNC(djboy_state::beast_p3_w));
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
GENERIC_LATCH_8(config, m_slavelatch);
diff --git a/src/mame/drivers/dmndrby.cpp b/src/mame/drivers/dmndrby.cpp
index 68a557fdf4a..93be2638d18 100644
--- a/src/mame/drivers/dmndrby.cpp
+++ b/src/mame/drivers/dmndrby.cpp
@@ -547,7 +547,7 @@ void dmndrby_state::dderby(machine_config &config)
Z80(config, m_audiocpu, 4000000); /* verified on schematics */
m_audiocpu->set_addrmap(AS_PROGRAM, &dmndrby_state::dderby_sound_map);
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
/* video hardware */
diff --git a/src/mame/drivers/dmv.cpp b/src/mame/drivers/dmv.cpp
index 4ac34f5f940..64a31db58b6 100644
--- a/src/mame/drivers/dmv.cpp
+++ b/src/mame/drivers/dmv.cpp
@@ -803,7 +803,7 @@ void dmv_state::dmv(machine_config &config)
kbmcu.p1_out_cb().set(FUNC(dmv_state::kb_mcu_port1_w)); // bit 1 data to kb
kbmcu.p2_out_cb().set(FUNC(dmv_state::kb_mcu_port2_w));
- config.m_perfect_cpu_quantum = subtag("maincpu");
+ config.set_perfect_quantum(m_maincpu);
DMV_KEYBOARD(config, m_keyboard, 0);
diff --git a/src/mame/drivers/dogfgt.cpp b/src/mame/drivers/dogfgt.cpp
index 63c4326567d..2932100f5b8 100644
--- a/src/mame/drivers/dogfgt.cpp
+++ b/src/mame/drivers/dogfgt.cpp
@@ -237,7 +237,7 @@ void dogfgt_state::dogfgt(machine_config &config)
M6502(config, m_subcpu, 1500000); /* 1.5 MHz ???? */
m_subcpu->set_addrmap(AS_PROGRAM, &dogfgt_state::sub_map);
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
/* video hardware */
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
diff --git a/src/mame/drivers/dpb7000.cpp b/src/mame/drivers/dpb7000.cpp
index b57a3857b44..138a47cf9de 100644
--- a/src/mame/drivers/dpb7000.cpp
+++ b/src/mame/drivers/dpb7000.cpp
@@ -1136,7 +1136,7 @@ void dpb7000_state::dpb7000(machine_config &config)
RS232_PORT(config, m_fdd_serial, default_rs232_devices, nullptr);
m_fdd_serial->rxd_handler().set(FUNC(dpb7000_state::fddcpu_debug_rx));
- config.m_perfect_cpu_quantum = subtag("fddcpu");
+ config.set_perfect_quantum(m_fddcpu);
// Filter Card
TDC1008(config, m_filter_cd);
diff --git a/src/mame/drivers/drmicro.cpp b/src/mame/drivers/drmicro.cpp
index 5dff7a2e260..0ce6a473e28 100644
--- a/src/mame/drivers/drmicro.cpp
+++ b/src/mame/drivers/drmicro.cpp
@@ -248,7 +248,7 @@ void drmicro_state::drmicro(machine_config &config)
m_maincpu->set_addrmap(AS_IO, &drmicro_state::io_map);
m_maincpu->set_vblank_int("screen", FUNC(drmicro_state::drmicro_interrupt));
- config.m_minimum_quantum = attotime::from_hz(60);
+ config.set_maximum_quantum(attotime::from_hz(60));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
diff --git a/src/mame/drivers/dynduke.cpp b/src/mame/drivers/dynduke.cpp
index 48a9cefe1ec..1a84348a6fa 100644
--- a/src/mame/drivers/dynduke.cpp
+++ b/src/mame/drivers/dynduke.cpp
@@ -331,7 +331,7 @@ void dynduke_state::dynduke(machine_config &config)
sei80bu_device &sei80bu(SEI80BU(config, "sei80bu", 0));
sei80bu.set_addrmap(AS_PROGRAM, &dynduke_state::sei80bu_encrypted_full_map);
- config.m_minimum_quantum = attotime::from_hz(3600);
+ config.set_maximum_quantum(attotime::from_hz(3600));
// video hardware
BUFFERED_SPRITERAM16(config, m_spriteram);
diff --git a/src/mame/drivers/eolith.cpp b/src/mame/drivers/eolith.cpp
index 32abd745d10..c39c8c23e61 100644
--- a/src/mame/drivers/eolith.cpp
+++ b/src/mame/drivers/eolith.cpp
@@ -558,7 +558,7 @@ void eolith_state::eolith45(machine_config &config)
// for testing sound sync
// config.m_perfect_cpu_quantum = subtag("maincpu");
-// config.m_minimum_quantum = attotime::from_hz(6000);
+// config.set_maximum_quantum(attotime::from_hz(6000));
/* video hardware */
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
diff --git a/src/mame/drivers/eprom.cpp b/src/mame/drivers/eprom.cpp
index 96171d3cde2..1d073519eea 100644
--- a/src/mame/drivers/eprom.cpp
+++ b/src/mame/drivers/eprom.cpp
@@ -375,7 +375,7 @@ void eprom_state::eprom(machine_config &config)
M68000(config, m_extra, ATARI_CLOCK_14MHz/2);
m_extra->set_addrmap(AS_PROGRAM, &eprom_state::extra_map);
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
ADC0809(config, m_adc, ATARI_CLOCK_14MHz/16);
m_adc->in_callback<0>().set_ioport("ADC0");
@@ -425,7 +425,7 @@ void eprom_state::klaxp(machine_config &config)
M68000(config, m_maincpu, ATARI_CLOCK_14MHz/2);
m_maincpu->set_addrmap(AS_PROGRAM, &eprom_state::main_map);
- config.m_minimum_quantum = attotime::from_hz(600);
+ config.set_maximum_quantum(attotime::from_hz(600));
EEPROM_2804(config, "eeprom").lock_after_write(true);
@@ -468,7 +468,7 @@ void eprom_state::guts(machine_config &config)
M68000(config, m_maincpu, ATARI_CLOCK_14MHz/2);
m_maincpu->set_addrmap(AS_PROGRAM, &eprom_state::guts_map);
- config.m_minimum_quantum = attotime::from_hz(600);
+ config.set_maximum_quantum(attotime::from_hz(600));
ADC0809(config, m_adc, ATARI_CLOCK_14MHz/16);
m_adc->in_callback<0>().set_ioport("ADC0");
diff --git a/src/mame/drivers/equites.cpp b/src/mame/drivers/equites.cpp
index dc9e2e8b818..a6f634c9f35 100644
--- a/src/mame/drivers/equites.cpp
+++ b/src/mame/drivers/equites.cpp
@@ -1168,8 +1168,7 @@ void equites_state::equites(machine_config &config)
common_sound(config);
ALPHA_8201(config, m_alpha_8201, 4000000/8); // 8303 or 8304 (same device!)
-
- config.m_perfect_cpu_quantum = subtag("alpha_8201:mcu");
+ config.set_perfect_quantum("alpha_8201:mcu");
WATCHDOG_TIMER(config, "watchdog");
@@ -1225,7 +1224,7 @@ void splndrbt_state::splndrbt(machine_config &config)
common_sound(config);
ALPHA_8201(config, m_alpha_8201, 4000000/8); // 8303 or 8304 (same device!)
- config.m_perfect_cpu_quantum = subtag("alpha_8201:mcu");
+ config.set_perfect_quantum("alpha_8201:mcu");
/* video hardware */
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
diff --git a/src/mame/drivers/esripsys.cpp b/src/mame/drivers/esripsys.cpp
index 40b749ceae8..6c6b0885775 100644
--- a/src/mame/drivers/esripsys.cpp
+++ b/src/mame/drivers/esripsys.cpp
@@ -670,7 +670,7 @@ void esripsys_state::esripsys(machine_config &config)
m_gamecpu->set_addrmap(AS_PROGRAM, &esripsys_state::game_cpu_map);
m_gamecpu->set_vblank_int("screen", FUNC(esripsys_state::esripsys_vblank_irq));
- config.m_perfect_cpu_quantum = subtag("game_cpu");
+ config.set_perfect_quantum(m_gamecpu);
MC6809E(config, m_framecpu, XTAL(8'000'000) / 4);
m_framecpu->set_addrmap(AS_PROGRAM, &esripsys_state::frame_cpu_map);
diff --git a/src/mame/drivers/europc.cpp b/src/mame/drivers/europc.cpp
index aa1bd6efea2..ae73b5331fc 100644
--- a/src/mame/drivers/europc.cpp
+++ b/src/mame/drivers/europc.cpp
@@ -544,7 +544,7 @@ void europc_fdc_device::device_add_mconfig(machine_config &config)
fdc.drq_wr_callback().set(FUNC(isa8_fdc_device::drq_w));
// single built-in 3.5" 720K drive, connector for optional external 3.5" or 5.25" drive
FLOPPY_CONNECTOR(config, "fdc:0", pc_dd_floppies, "35dd", isa8_fdc_device::floppy_formats).set_fixed(true);
- FLOPPY_CONNECTOR(config, "fdc:1", pc_dd_floppies, "", isa8_fdc_device::floppy_formats);
+ FLOPPY_CONNECTOR(config, "fdc:1", pc_dd_floppies, nullptr, isa8_fdc_device::floppy_formats);
}
static void europc_fdc(device_slot_interface &device)
diff --git a/src/mame/drivers/exelv.cpp b/src/mame/drivers/exelv.cpp
index 87648346998..810f49d83e5 100644
--- a/src/mame/drivers/exelv.cpp
+++ b/src/mame/drivers/exelv.cpp
@@ -500,7 +500,7 @@ void exelv_state::exl100(machine_config &config)
subcpu.in_portd().set(FUNC(exelv_state::tms7041_portd_r));
subcpu.out_portd().set(FUNC(exelv_state::tms7041_portd_w));
- config.m_perfect_cpu_quantum = subtag("maincpu");
+ config.set_perfect_quantum(m_maincpu);
TMS3556(config, m_tms3556);
@@ -554,7 +554,7 @@ void exelv_state::exeltel(machine_config &config)
subcpu.in_portd().set(FUNC(exelv_state::tms7041_portd_r));
subcpu.out_portd().set(FUNC(exelv_state::tms7041_portd_w));
- config.m_perfect_cpu_quantum = subtag("maincpu");
+ config.set_perfect_quantum(m_maincpu);
TMS3556(config, m_tms3556);
diff --git a/src/mame/drivers/exidy.cpp b/src/mame/drivers/exidy.cpp
index 923554137f8..c21b1a10c9b 100644
--- a/src/mame/drivers/exidy.cpp
+++ b/src/mame/drivers/exidy.cpp
@@ -908,7 +908,7 @@ void exidy_state::venture(machine_config &config)
/* basic machine hardware */
m_maincpu->set_addrmap(AS_PROGRAM, &exidy_state::venture_map);
- config.m_minimum_quantum = attotime::from_hz(600);
+ config.set_maximum_quantum(attotime::from_hz(600));
/* audio hardware */
pia6821_device &pia(PIA6821(config, "pia", 0));
@@ -943,7 +943,7 @@ void exidy_state::mtrap(machine_config &config)
/* basic machine hardware */
m_maincpu->set_addrmap(AS_PROGRAM, &exidy_state::mtrap_map);
- config.m_minimum_quantum = attotime::from_hz(1920);
+ config.set_maximum_quantum(attotime::from_hz(1920));
/* audio hardware */
pia6821_device &pia(PIA6821(config, "pia", 0));
diff --git a/src/mame/drivers/exprraid.cpp b/src/mame/drivers/exprraid.cpp
index 0d3300198cc..86bef728304 100644
--- a/src/mame/drivers/exprraid.cpp
+++ b/src/mame/drivers/exprraid.cpp
@@ -501,7 +501,7 @@ void exprraid_state::exprraid(machine_config &config)
m_slave->set_addrmap(AS_PROGRAM, &exprraid_state::slave_map);
/* IRQs are caused by the YM3526 */
- config.m_minimum_quantum = attotime::from_hz(12000);
+ config.set_maximum_quantum(attotime::from_hz(12000));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
diff --git a/src/mame/drivers/exterm.cpp b/src/mame/drivers/exterm.cpp
index efec37848dc..8087f879b44 100644
--- a/src/mame/drivers/exterm.cpp
+++ b/src/mame/drivers/exterm.cpp
@@ -395,7 +395,7 @@ void exterm_state::exterm(machine_config &config)
GENERIC_LATCH_8(config, m_soundlatch[0]).data_pending_callback().set_inputline(m_audiocpu, M6502_IRQ_LINE);
GENERIC_LATCH_8(config, m_soundlatch[1]).data_pending_callback().set_inputline(m_audioslave, M6502_IRQ_LINE);
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
diff --git a/src/mame/drivers/exzisus.cpp b/src/mame/drivers/exzisus.cpp
index 5b9d2da76b1..6863903338e 100644
--- a/src/mame/drivers/exzisus.cpp
+++ b/src/mame/drivers/exzisus.cpp
@@ -247,7 +247,7 @@ void exzisus_state::exzisus(machine_config &config)
z80_device &audiocpu(Z80(config, "audiocpu", 4000000));
audiocpu.set_addrmap(AS_PROGRAM, &exzisus_state::sound_map);
- config.m_minimum_quantum = attotime::from_hz(600); /* 10 CPU slices per frame - enough for the sound CPU to read all commands */
+ config.set_maximum_quantum(attotime::from_hz(600)); /* 10 CPU slices per frame - enough for the sound CPU to read all commands */
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
diff --git a/src/mame/drivers/f1gp.cpp b/src/mame/drivers/f1gp.cpp
index 610726ea419..fe659012122 100644
--- a/src/mame/drivers/f1gp.cpp
+++ b/src/mame/drivers/f1gp.cpp
@@ -375,7 +375,7 @@ void f1gp_state::f1gp(machine_config &config)
m_audiocpu->set_addrmap(AS_PROGRAM, &f1gp_state::sound_map);
m_audiocpu->set_addrmap(AS_IO, &f1gp_state::sound_io_map);
- config.m_minimum_quantum = attotime::from_hz(6000); /* 100 CPU slices per frame */
+ config.set_maximum_quantum(attotime::from_hz(6000)); /* 100 CPU slices per frame */
ACIA6850(config, m_acia, 0);
m_acia->irq_handler().set_inputline("sub", M68K_IRQ_3);
@@ -442,7 +442,7 @@ void f1gp_state::f1gpb(machine_config &config)
sub.set_vblank_int("screen", FUNC(f1gp_state::irq1_line_hold));
/* NO sound CPU */
- config.m_minimum_quantum = attotime::from_hz(6000); /* 100 CPU slices per frame */
+ config.set_maximum_quantum(attotime::from_hz(6000)); /* 100 CPU slices per frame */
ACIA6850(config, m_acia, 0);
m_acia->irq_handler().set_inputline("sub", M68K_IRQ_3);
diff --git a/src/mame/drivers/fantland.cpp b/src/mame/drivers/fantland.cpp
index 21fce64c7a3..4d1dba4c150 100644
--- a/src/mame/drivers/fantland.cpp
+++ b/src/mame/drivers/fantland.cpp
@@ -820,7 +820,7 @@ void fantland_state::fantland(machine_config &config)
m_audiocpu->set_periodic_int(FUNC(fantland_state::fantland_sound_irq), attotime::from_hz(8000));
// NMI when soundlatch is written
- config.m_minimum_quantum = attotime::from_hz(8000); // sound irq must feed the DAC at 8kHz
+ config.set_maximum_quantum(attotime::from_hz(8000)); // sound irq must feed the DAC at 8kHz
/* video hardware */
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
diff --git a/src/mame/drivers/fidel_card.cpp b/src/mame/drivers/fidel_card.cpp
index 75f154bc7d5..5487f2f1083 100644
--- a/src/mame/drivers/fidel_card.cpp
+++ b/src/mame/drivers/fidel_card.cpp
@@ -565,7 +565,7 @@ void card_state::brc_base(machine_config &config)
Z80(config, m_maincpu, 5_MHz_XTAL/2);
m_maincpu->set_addrmap(AS_PROGRAM, &card_state::main_map);
m_maincpu->set_addrmap(AS_IO, &card_state::main_io);
- config.m_perfect_cpu_quantum = subtag("maincpu");
+ config.set_perfect_quantum(m_maincpu);
I8041A(config, m_mcu, 5_MHz_XTAL);
m_mcu->p1_out_cb().set(FUNC(card_state::mcu_p1_w));
diff --git a/src/mame/drivers/fidel_eag68k.cpp b/src/mame/drivers/fidel_eag68k.cpp
index 298d1f5e80a..4f2005efd70 100644
--- a/src/mame/drivers/fidel_eag68k.cpp
+++ b/src/mame/drivers/fidel_eag68k.cpp
@@ -660,7 +660,7 @@ void eagv5_state::eagv5(machine_config &config)
// gen_latch syncs on write, but this is still needed with tight cpu comms
// (not that it locks up or anything, but it will calculate moves much slower if timing is off)
- config.m_perfect_cpu_quantum = subtag("maincpu");
+ config.set_perfect_quantum(m_maincpu);
}
void eag_state::eagv7(machine_config &config)
diff --git a/src/mame/drivers/firefox.cpp b/src/mame/drivers/firefox.cpp
index cf7f0999715..5cef1cb90c1 100644
--- a/src/mame/drivers/firefox.cpp
+++ b/src/mame/drivers/firefox.cpp
@@ -644,7 +644,7 @@ void firefox_state::firefox(machine_config &config)
M6502(config, m_audiocpu, MASTER_XTAL/8);
m_audiocpu->set_addrmap(AS_PROGRAM, &firefox_state::audio_map);
- config.m_minimum_quantum = attotime::from_hz(60000);
+ config.set_maximum_quantum(attotime::from_hz(60000));
adc0809_device &adc(ADC0809(config, "adc", MASTER_XTAL/16)); // nominally 900 kHz
adc.in_callback<0>().set_ioport("PITCH");
diff --git a/src/mame/drivers/firetrap.cpp b/src/mame/drivers/firetrap.cpp
index a99e04ede61..088815b8eeb 100644
--- a/src/mame/drivers/firetrap.cpp
+++ b/src/mame/drivers/firetrap.cpp
@@ -577,7 +577,7 @@ void firetrap_state::firetrap(machine_config &config)
m_mcu->port_out_cb<3>().set(FUNC(firetrap_state::mcu_p3_w));
// needs a tight sync with the mcu
- config.m_perfect_cpu_quantum = subtag("maincpu");
+ config.set_perfect_quantum(m_maincpu);
TIMER(config, "scantimer", 0).configure_scanline(FUNC(firetrap_state::interrupt), "screen", 0, 1);
diff --git a/src/mame/drivers/flkatck.cpp b/src/mame/drivers/flkatck.cpp
index 6867404a04a..a184903a2be 100644
--- a/src/mame/drivers/flkatck.cpp
+++ b/src/mame/drivers/flkatck.cpp
@@ -225,7 +225,7 @@ void flkatck_state::flkatck(machine_config &config)
Z80(config, m_audiocpu, 3.579545_MHz_XTAL); /* NEC D780C-1, 3.579545MHz */
m_audiocpu->set_addrmap(AS_PROGRAM, &flkatck_state::flkatck_sound_map);
- config.m_minimum_quantum = attotime::from_hz(600);
+ config.set_maximum_quantum(attotime::from_hz(600));
WATCHDOG_TIMER(config, m_watchdog);
diff --git a/src/mame/drivers/flower.cpp b/src/mame/drivers/flower.cpp
index daf156ea303..405c3f15730 100644
--- a/src/mame/drivers/flower.cpp
+++ b/src/mame/drivers/flower.cpp
@@ -509,7 +509,7 @@ void flower_state::flower(machine_config &config)
m_audiocpu->set_addrmap(AS_PROGRAM, &flower_state::audio_map);
m_audiocpu->set_periodic_int(FUNC(flower_state::irq0_line_hold), attotime::from_hz(90));
- config.m_perfect_cpu_quantum = subtag("mastercpu");
+ config.set_perfect_quantum(m_mastercpu);
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
m_screen->set_screen_update(FUNC(flower_state::screen_update));
diff --git a/src/mame/drivers/flstory.cpp b/src/mame/drivers/flstory.cpp
index aaef422b2b8..a23c62fc645 100644
--- a/src/mame/drivers/flstory.cpp
+++ b/src/mame/drivers/flstory.cpp
@@ -744,7 +744,7 @@ void flstory_state::common(machine_config &config)
m_audiocpu->set_periodic_int(FUNC(flstory_state::irq0_line_hold), attotime::from_hz(2*60));
/* 100 CPU slices per frame - a high value to ensure proper synchronization of the CPUs */
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
diff --git a/src/mame/drivers/fm7.cpp b/src/mame/drivers/fm7.cpp
index c8243e199f2..30fe9cfb9d9 100644
--- a/src/mame/drivers/fm7.cpp
+++ b/src/mame/drivers/fm7.cpp
@@ -2036,12 +2036,11 @@ void fm7_state::fm7(machine_config &config)
MC6809(config, m_maincpu, 16.128_MHz_XTAL / 2);
m_maincpu->set_addrmap(AS_PROGRAM, &fm7_state::fm7_mem);
m_maincpu->set_irq_acknowledge_callback(FUNC(fm7_state::fm7_irq_ack));
- config.m_perfect_cpu_quantum = subtag("maincpu");
MC6809(config, m_sub, 16.128_MHz_XTAL / 2);
m_sub->set_addrmap(AS_PROGRAM, &fm7_state::fm7_sub_mem);
m_sub->set_irq_acknowledge_callback(FUNC(fm7_state::fm7_sub_irq_ack));
- config.m_perfect_cpu_quantum = subtag("sub");
+ config.set_perfect_quantum(m_sub);
SPEAKER(config, "mono").front_center();
AY8910(config, m_psg, 4.9152_MHz_XTAL / 4).add_route(ALL_OUTPUTS,"mono", 1.00);
@@ -2090,12 +2089,11 @@ void fm7_state::fm8(machine_config &config)
MC6809(config, m_maincpu, 4.9152_MHz_XTAL); // 1.2MHz 68A09
m_maincpu->set_addrmap(AS_PROGRAM, &fm7_state::fm8_mem);
m_maincpu->set_irq_acknowledge_callback(FUNC(fm7_state::fm7_irq_ack));
- config.m_perfect_cpu_quantum = subtag("maincpu");
MC6809(config, m_sub, 16.128_MHz_XTAL / 2);
m_sub->set_addrmap(AS_PROGRAM, &fm7_state::fm7_sub_mem);
m_sub->set_irq_acknowledge_callback(FUNC(fm7_state::fm7_sub_irq_ack));
- config.m_perfect_cpu_quantum = subtag("sub");
+ config.set_perfect_quantum(m_sub);
SPEAKER(config, "mono").front_center();
BEEP(config, m_beeper, 1200).add_route(ALL_OUTPUTS, "mono", 0.50);
@@ -2138,12 +2136,11 @@ void fm7_state::fm77av(machine_config &config)
MC6809E(config, m_maincpu, 16.128_MHz_XTAL / 8);
m_maincpu->set_addrmap(AS_PROGRAM, &fm7_state::fm77av_mem);
m_maincpu->set_irq_acknowledge_callback(FUNC(fm7_state::fm7_irq_ack));
- config.m_perfect_cpu_quantum = subtag("maincpu");
MC6809E(config, m_sub, 16.128_MHz_XTAL / 8);
m_sub->set_addrmap(AS_PROGRAM, &fm7_state::fm77av_sub_mem);
m_sub->set_irq_acknowledge_callback(FUNC(fm7_state::fm7_sub_irq_ack));
- config.m_perfect_cpu_quantum = subtag("sub");
+ config.set_perfect_quantum(m_sub);
SPEAKER(config, "mono").front_center();
YM2203(config, m_ym, 4.9152_MHz_XTAL / 4);
@@ -2202,12 +2199,11 @@ void fm7_state::fm11(machine_config &config)
MC6809E(config, m_maincpu, 2000000); // 2MHz 68B09E
m_maincpu->set_addrmap(AS_PROGRAM, &fm7_state::fm11_mem);
m_maincpu->set_irq_acknowledge_callback(FUNC(fm7_state::fm7_irq_ack));
- config.m_perfect_cpu_quantum = subtag("maincpu");
MC6809(config, m_sub, 8000000); // 2MHz 68B09
m_sub->set_addrmap(AS_PROGRAM, &fm7_state::fm11_sub_mem);
m_sub->set_irq_acknowledge_callback(FUNC(fm7_state::fm7_sub_irq_ack));
- config.m_perfect_cpu_quantum = subtag("sub");
+ config.set_perfect_quantum(m_sub);
I8088(config, m_x86, 8000000); // 8MHz i8088
m_x86->set_addrmap(AS_PROGRAM, &fm7_state::fm11_x86_mem);
@@ -2259,12 +2255,11 @@ void fm7_state::fm16beta(machine_config &config)
I8086(config, m_maincpu, 8000000); // 8MHz i8086
m_maincpu->set_addrmap(AS_PROGRAM, &fm7_state::fm16_mem);
m_maincpu->set_addrmap(AS_IO, &fm7_state::fm16_io);
- config.m_perfect_cpu_quantum = subtag("maincpu");
MC6809(config, m_sub, 8000000);
m_sub->set_irq_acknowledge_callback(FUNC(fm7_state::fm7_sub_irq_ack));
m_sub->set_addrmap(AS_PROGRAM, &fm7_state::fm16_sub_mem);
- config.m_perfect_cpu_quantum = subtag("sub");
+ config.set_perfect_quantum(m_sub);
SPEAKER(config, "mono").front_center();
BEEP(config, m_beeper, 1200).add_route(ALL_OUTPUTS, "mono", 0.50);
diff --git a/src/mame/drivers/gaelco.cpp b/src/mame/drivers/gaelco.cpp
index 922cdb47320..8c5ea2d5cf2 100644
--- a/src/mame/drivers/gaelco.cpp
+++ b/src/mame/drivers/gaelco.cpp
@@ -646,7 +646,7 @@ void gaelco_state::bigkarnk(machine_config &config)
MC6809E(config, m_audiocpu, XTAL(8'000'000)/4); /* 68B09EP, 2 MHz? */
m_audiocpu->set_addrmap(AS_PROGRAM, &gaelco_state::bigkarnk_snd_map);
- config.m_minimum_quantum = attotime::from_hz(600);
+ config.set_maximum_quantum(attotime::from_hz(600));
LS259(config, m_outlatch);
m_outlatch->q_out_cb<0>().set(FUNC(gaelco_state::coin1_lockout_w)).invert();
@@ -715,7 +715,7 @@ void gaelco_state::squash(machine_config &config)
m_maincpu->set_addrmap(AS_PROGRAM, &gaelco_state::squash_map);
m_maincpu->set_vblank_int("screen", FUNC(gaelco_state::irq6_line_hold));
- config.m_minimum_quantum = attotime::from_hz(600);
+ config.set_maximum_quantum(attotime::from_hz(600));
LS259(config, m_outlatch); // B8
m_outlatch->q_out_cb<0>().set(FUNC(gaelco_state::coin1_lockout_w)).invert();
@@ -753,7 +753,7 @@ void gaelco_state::thoop(machine_config &config)
m_maincpu->set_addrmap(AS_PROGRAM, &gaelco_state::thoop_map);
m_maincpu->set_vblank_int("screen", FUNC(gaelco_state::irq6_line_hold));
- config.m_minimum_quantum = attotime::from_hz(600);
+ config.set_maximum_quantum(attotime::from_hz(600));
LS259(config, m_outlatch); // B8
m_outlatch->q_out_cb<0>().set(FUNC(gaelco_state::coin1_lockout_w)); // not inverted
diff --git a/src/mame/drivers/gaelco2.cpp b/src/mame/drivers/gaelco2.cpp
index d1b8397cb1b..aec05304c0e 100644
--- a/src/mame/drivers/gaelco2.cpp
+++ b/src/mame/drivers/gaelco2.cpp
@@ -210,6 +210,7 @@ void gaelco2_state::maniacsq_d5002fp(machine_config &config)
{
maniacsq(config);
GAELCO_DS5002FP(config, "gaelco_ds5002fp", XTAL(24'000'000) / 2).set_addrmap(0, &gaelco2_state::mcu_hostmem_map); // clock unknown
+ config.set_perfect_quantum("gaelco_ds5002fp:mcu");
}
diff --git a/src/mame/drivers/gaelco3d.cpp b/src/mame/drivers/gaelco3d.cpp
index cb84e65c477..b95f7fe6778 100644
--- a/src/mame/drivers/gaelco3d.cpp
+++ b/src/mame/drivers/gaelco3d.cpp
@@ -916,7 +916,7 @@ void gaelco3d_state::gaelco3d(machine_config &config)
EEPROM_93C66_16BIT(config, m_eeprom, eeprom_serial_streaming::ENABLE);
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
TIMER(config, "adsp_timer").configure_generic(FUNC(gaelco3d_state::adsp_autobuffer_irq));
diff --git a/src/mame/drivers/gal3.cpp b/src/mame/drivers/gal3.cpp
index 36ef19dbc85..e2da6e5432a 100644
--- a/src/mame/drivers/gal3.cpp
+++ b/src/mame/drivers/gal3.cpp
@@ -605,7 +605,7 @@ void gal3_state::gal3(machine_config &config)
m68000_device &psn_b3_cpu(M68000(config, "psn_b3_cpu", 12000000)); // ??
psn_b3_cpu.set_addrmap(AS_PROGRAM, &gal3_state::psn_b1_cpu_map);
*/
- config.m_minimum_quantum = attotime::from_hz(60*8000); /* 8000 CPU slices per frame */
+ config.set_maximum_quantum(attotime::from_hz(60*8000)); /* 8000 CPU slices per frame */
NVRAM(config, "nvmem", nvram_device::DEFAULT_ALL_0);
diff --git a/src/mame/drivers/galaga.cpp b/src/mame/drivers/galaga.cpp
index e32aa6b07fc..7599628a202 100644
--- a/src/mame/drivers/galaga.cpp
+++ b/src/mame/drivers/galaga.cpp
@@ -1651,7 +1651,7 @@ void bosco_state::bosco(machine_config &config)
WATCHDOG_TIMER(config, "watchdog").set_vblank_count(m_screen, 8);
- config.m_minimum_quantum = attotime::from_hz(6000); /* 100 CPU slices per frame - a high value to ensure proper synchronization of the CPUs */
+ config.set_maximum_quantum(attotime::from_hz(6000)); /* 100 CPU slices per frame - a high value to ensure proper synchronization of the CPUs */
/* video hardware */
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
@@ -1721,7 +1721,7 @@ void galaga_state::galaga(machine_config &config)
WATCHDOG_TIMER(config, "watchdog").set_vblank_count(m_screen, 8);
- config.m_minimum_quantum = attotime::from_hz(6000); /* 100 CPU slices per frame - a high value to ensure proper synchronization of the CPUs */
+ config.set_maximum_quantum(attotime::from_hz(6000)); /* 100 CPU slices per frame - a high value to ensure proper synchronization of the CPUs */
/* video hardware */
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
@@ -1823,7 +1823,7 @@ void xevious_state::xevious(machine_config &config)
WATCHDOG_TIMER(config, "watchdog").set_vblank_count(m_screen, 8);
- config.m_minimum_quantum = attotime::from_hz(60000); /* 1000 CPU slices per frame - a high value to ensure proper synchronization of the CPUs */
+ config.set_maximum_quantum(attotime::from_hz(60000)); /* 1000 CPU slices per frame - a high value to ensure proper synchronization of the CPUs */
/* video hardware */
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
@@ -1931,7 +1931,7 @@ void digdug_state::digdug(machine_config &config)
m_videolatch->q_out_cb<3>().set(FUNC(digdug_state::bg_disable_w));
m_videolatch->q_out_cb<7>().set(FUNC(digdug_state::flip_screen_w));
- config.m_minimum_quantum = attotime::from_hz(6000); /* 100 CPU slices per frame - a high value to ensure proper synchronization of the CPUs */
+ config.set_maximum_quantum(attotime::from_hz(6000)); /* 100 CPU slices per frame - a high value to ensure proper synchronization of the CPUs */
ER2055(config, m_earom);
diff --git a/src/mame/drivers/gamecom.cpp b/src/mame/drivers/gamecom.cpp
index db8c9d155f6..3cef1677970 100644
--- a/src/mame/drivers/gamecom.cpp
+++ b/src/mame/drivers/gamecom.cpp
@@ -264,7 +264,7 @@ void gamecom_state::gamecom(machine_config &config)
m_maincpu->timer_cb().set(FUNC(gamecom_state::gamecom_update_timers));
m_maincpu->set_vblank_int("screen", FUNC(gamecom_state::gamecom_interrupt));
- config.m_minimum_quantum = attotime::from_hz(60);
+ config.set_maximum_quantum(attotime::from_hz(60));
//NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
diff --git a/src/mame/drivers/gaplus.cpp b/src/mame/drivers/gaplus.cpp
index b575d8737ab..8c0630c1db3 100644
--- a/src/mame/drivers/gaplus.cpp
+++ b/src/mame/drivers/gaplus.cpp
@@ -526,7 +526,7 @@ void gaplus_base_state::gaplus_base(machine_config &config)
MC6809E(config, m_subcpu2, XTAL(24'576'000) / 16); /* 1.536 MHz */
m_subcpu2->set_addrmap(AS_PROGRAM, &gaplus_base_state::cpu3_map);
- config.m_minimum_quantum = attotime::from_hz(6000); /* a high value to ensure proper synchronization of the CPUs */
+ config.set_maximum_quantum(attotime::from_hz(6000)); /* a high value to ensure proper synchronization of the CPUs */
WATCHDOG_TIMER(config, "watchdog");
diff --git a/src/mame/drivers/gladiatr.cpp b/src/mame/drivers/gladiatr.cpp
index 4e10db1e31e..48b0e3ae56e 100644
--- a/src/mame/drivers/gladiatr.cpp
+++ b/src/mame/drivers/gladiatr.cpp
@@ -954,7 +954,7 @@ void ppking_state::ppking(machine_config &config)
MC6809(config, m_audiocpu, 12_MHz_XTAL/4); /* verified on pcb */
m_audiocpu->set_addrmap(AS_PROGRAM, &ppking_state::ppking_cpu3_map);
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
MCFG_MACHINE_RESET_OVERRIDE(ppking_state, ppking)
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
@@ -1056,7 +1056,7 @@ void gladiatr_state::gladiatr(machine_config &config)
m_csnd->t1_in_cb().set(FUNC(gladiatr_state::csnd_t1_r));
/* lazy way to make polled serial between MCUs work */
- config.m_perfect_cpu_quantum = subtag("ucpu");
+ config.set_perfect_quantum(m_ucpu);
CLOCK(config, "tclk", 12_MHz_XTAL/8/128/2) /* verified on pcb */
.signal_handler().set(FUNC(gladiatr_state::tclk_w));
diff --git a/src/mame/drivers/glass.cpp b/src/mame/drivers/glass.cpp
index 935c82b1529..b9030b7de37 100644
--- a/src/mame/drivers/glass.cpp
+++ b/src/mame/drivers/glass.cpp
@@ -259,6 +259,7 @@ void glass_state::glass_ds5002fp(machine_config &config)
glass(config);
gaelco_ds5002fp_device &ds5002fp(GAELCO_DS5002FP(config, "gaelco_ds5002fp", XTAL(24'000'000) / 2)); /* verified on pcb */
ds5002fp.set_addrmap(0, &glass_state::mcu_hostmem_map);
+ config.set_perfect_quantum("gaelco_ds5002fp:mcu");
}
ROM_START( glass ) /* Version 1.1 */
diff --git a/src/mame/drivers/gradius3.cpp b/src/mame/drivers/gradius3.cpp
index e2d4a955b6f..cb92013b72e 100644
--- a/src/mame/drivers/gradius3.cpp
+++ b/src/mame/drivers/gradius3.cpp
@@ -272,7 +272,7 @@ void gradius3_state::gradius3(machine_config &config)
Z80(config, m_audiocpu, 3579545);
m_audiocpu->set_addrmap(AS_PROGRAM, &gradius3_state::gradius3_s_map);
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
WATCHDOG_TIMER(config, "watchdog");
diff --git a/src/mame/drivers/grchamp.cpp b/src/mame/drivers/grchamp.cpp
index f81460c0491..7d73f813c80 100644
--- a/src/mame/drivers/grchamp.cpp
+++ b/src/mame/drivers/grchamp.cpp
@@ -756,7 +756,7 @@ void grchamp_state::grchamp(machine_config &config)
m_audiocpu->set_periodic_int(FUNC(grchamp_state::irq0_line_hold), attotime::from_hz((double)SOUND_CLOCK/4/16/16/10/16));
WATCHDOG_TIMER(config, m_watchdog).set_vblank_count(m_screen, 8);
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
/* video hardware */
GFXDECODE(config, m_gfxdecode, m_palette, gfx_grchamp);
diff --git a/src/mame/drivers/gsword.cpp b/src/mame/drivers/gsword.cpp
index 33a00ef862d..8ec1b6c680c 100644
--- a/src/mame/drivers/gsword.cpp
+++ b/src/mame/drivers/gsword.cpp
@@ -955,7 +955,7 @@ void gsword_state::gsword(machine_config &config)
CLOCK(config, "tclk", 12'000'000/8/128/2).signal_handler().set([this] (int state) { m_tclk_val = state != 0; });
// lazy way to ensure communication works
- config.m_perfect_cpu_quantum = subtag("mcu1");
+ config.set_perfect_quantum("mcu1");
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
@@ -1019,7 +1019,7 @@ void josvolly_state::josvolly(machine_config &config)
ppi.in_pc_callback().set_ioport("IN0"); // START
// the second MCU polls the first MCU's outputs, so it needs tight sync
- config.m_perfect_cpu_quantum = subtag("mcu2");
+ config.set_perfect_quantum("mcu2");
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
diff --git a/src/mame/drivers/gticlub.cpp b/src/mame/drivers/gticlub.cpp
index 5976d5e07e5..50cf2e0339c 100644
--- a/src/mame/drivers/gticlub.cpp
+++ b/src/mame/drivers/gticlub.cpp
@@ -948,7 +948,7 @@ void gticlub_state::gticlub(machine_config &config)
m_dsp->set_boot_mode(adsp21062_device::BOOT_MODE_EPROM);
m_dsp->set_addrmap(AS_DATA, &gticlub_state::sharc_map);
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
EEPROM_93C56_16BIT(config, "eeprom");
@@ -1050,7 +1050,7 @@ void gticlub_state::hangplt(machine_config &config)
m_dsp2->set_boot_mode(adsp21062_device::BOOT_MODE_EPROM);
m_dsp2->set_addrmap(AS_DATA, &gticlub_state::hangplt_sharc1_map);
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
EEPROM_93C56_16BIT(config, "eeprom");
diff --git a/src/mame/drivers/gyruss.cpp b/src/mame/drivers/gyruss.cpp
index eb714825d9a..198a7707af5 100644
--- a/src/mame/drivers/gyruss.cpp
+++ b/src/mame/drivers/gyruss.cpp
@@ -492,7 +492,7 @@ void gyruss_state::gyruss(machine_config &config)
m_audiocpu_2->p1_out_cb().set(FUNC(gyruss_state::gyruss_dac_w));
m_audiocpu_2->p2_out_cb().set(FUNC(gyruss_state::gyruss_irq_clear_w));
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
ls259_device &mainlatch(LS259(config, "mainlatch")); // 3C
mainlatch.q_out_cb<0>().set(FUNC(gyruss_state::master_nmi_mask_w));
diff --git a/src/mame/drivers/harddriv.cpp b/src/mame/drivers/harddriv.cpp
index ead95b0f795..ea120954021 100644
--- a/src/mame/drivers/harddriv.cpp
+++ b/src/mame/drivers/harddriv.cpp
@@ -1482,7 +1482,7 @@ void harddriv_state::driver_nomsp(machine_config &config)
m_gsp->set_shiftreg_out_callback(FUNC(harddriv_state::hdgsp_read_from_shiftreg));
m_gsp->set_screen("screen");
- config.m_minimum_quantum = attotime::from_hz(30000);
+ config.set_maximum_quantum(attotime::from_hz(30000));
M48T02(config, m_200e, 0);
@@ -1600,7 +1600,7 @@ void harddriv_state::ds3(machine_config &config)
m_adsp->set_addrmap(AS_PROGRAM, &harddriv_state::ds3_program_map);
m_adsp->set_addrmap(AS_DATA, &harddriv_state::ds3_data_map);
- config.m_minimum_quantum = attotime::from_hz(60000);
+ config.set_maximum_quantum(attotime::from_hz(60000));
ADSP2105(config, m_ds3sdsp, XTAL(10'000'000));
m_ds3sdsp->sport_rx().set(FUNC(harddriv_state::hdds3sdsp_serial_rx_callback));
@@ -2089,14 +2089,14 @@ void harddriv_new_state::racedriv_panorama_machine(machine_config &config)
RACEDRIVC_PANORAMA_SIDE_BOARD(config, "leftpcb", 0);
RACEDRIVC_PANORAMA_SIDE_BOARD(config, "rightpcb", 0);
-// config.m_minimum_quantum = attotime::from_hz(100000);
+// config.set_maximum_quantum(attotime::from_hz(100000));
subdevice<mc68681_device>("mainpcb:duartn68681")->a_tx_cb().set(FUNC(harddriv_new_state::tx_a));
// boots with 'PROGRAM OK' when using standard Hard Drivin' board type (needs 137412-115 slapstic)
subdevice<atari_slapstic_device>("mainpcb:slapstic")->set_chipnum(115);
TIMER(config, "hack_timer").configure_periodic(FUNC(harddriv_new_state::hack_timer), attotime::from_hz(60));
-// config.m_minimum_quantum = attotime::from_hz(60000);
+// config.set_maximum_quantum(attotime::from_hz(60000));
}
// this is an ugly hack, otherwise MAME's core can't seem to handle partial updates if you have multiple screens with different update frequencies.
diff --git a/src/mame/drivers/hazeltin.cpp b/src/mame/drivers/hazeltin.cpp
index 6df6ba1a5b5..827ac527939 100644
--- a/src/mame/drivers/hazeltin.cpp
+++ b/src/mame/drivers/hazeltin.cpp
@@ -699,7 +699,7 @@ void hazl1500_state::hazl1500(machine_config &config)
I8080(config, m_maincpu, XTAL(18'000'000)/9); // 18MHz crystal on schematics, using an i8224 clock gen/driver IC
m_maincpu->set_addrmap(AS_PROGRAM, &hazl1500_state::hazl1500_mem);
m_maincpu->set_addrmap(AS_IO, &hazl1500_state::hazl1500_io);
- config.m_perfect_cpu_quantum = subtag(CPU_TAG);
+ config.set_perfect_quantum(m_maincpu);
INPUT_MERGER_ANY_HIGH(config, "mainint").output_handler().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
diff --git a/src/mame/drivers/hh_hmcs40.cpp b/src/mame/drivers/hh_hmcs40.cpp
index a1acddaf38b..67122745788 100644
--- a/src/mame/drivers/hh_hmcs40.cpp
+++ b/src/mame/drivers/hh_hmcs40.cpp
@@ -1721,7 +1721,7 @@ void pairmtch_state::pairmtch(machine_config &config)
m_audiocpu->read_r<2>().set(m_soundlatch[0], FUNC(generic_latch_8_device::read));
m_audiocpu->write_d().set(FUNC(pairmtch_state::speaker_w));
- config.m_perfect_cpu_quantum = subtag("maincpu");
+ config.set_perfect_quantum(m_maincpu);
/* video hardware */
PWM_DISPLAY(config, m_display).set_size(6, 12);
@@ -2977,7 +2977,7 @@ void eturtles_state::eturtles(machine_config &config)
m_audiocpu->read_l().set(FUNC(eturtles_state::cop_latch_r));
m_audiocpu->read_g().set(FUNC(eturtles_state::cop_ack_r));
- config.m_perfect_cpu_quantum = subtag("maincpu");
+ config.set_perfect_quantum(m_maincpu);
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG));
@@ -3099,7 +3099,7 @@ void estargte_state::estargte(machine_config &config)
m_audiocpu->write_d().set(FUNC(eturtles_state::cop_irq_w));
m_audiocpu->read_l().set(FUNC(estargte_state::cop_data_r));
- config.m_perfect_cpu_quantum = subtag("maincpu");
+ config.set_perfect_quantum(m_maincpu);
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG));
diff --git a/src/mame/drivers/homedata.cpp b/src/mame/drivers/homedata.cpp
index 1f4c4a9020e..8331cef3813 100644
--- a/src/mame/drivers/homedata.cpp
+++ b/src/mame/drivers/homedata.cpp
@@ -1325,7 +1325,7 @@ void homedata_state::reikaids(machine_config &config)
audiocpu.pc_out_cb().set(FUNC(homedata_state::reikaids_upd7807_portc_w));
audiocpu.pt_in_cb().set(m_soundlatch, FUNC(generic_latch_8_device::read));
- config.m_minimum_quantum = attotime::from_hz(30000); // very high interleave required to sync for startup tests
+ config.set_maximum_quantum(attotime::from_hz(30000)); // very high interleave required to sync for startup tests
MCFG_MACHINE_START_OVERRIDE(homedata_state,reikaids)
MCFG_MACHINE_RESET_OVERRIDE(homedata_state,reikaids)
@@ -1384,7 +1384,7 @@ void homedata_state::pteacher(machine_config &config)
audiocpu.pc_out_cb().set(FUNC(homedata_state::pteacher_upd7807_portc_w));
audiocpu.pt_in_cb().set(FUNC(homedata_state::pteacher_keyboard_r));
- config.m_minimum_quantum = attotime::from_hz(6000); // should be enough
+ config.set_maximum_quantum(attotime::from_hz(6000)); // should be enough
MCFG_MACHINE_START_OVERRIDE(homedata_state,pteacher)
MCFG_MACHINE_RESET_OVERRIDE(homedata_state,pteacher)
@@ -1453,7 +1453,7 @@ void homedata_state::mjikaga(machine_config &config)
m_maincpu->set_addrmap(AS_PROGRAM, &homedata_state::mjikaga_map);
m_audiocpu->set_addrmap(AS_PROGRAM, &homedata_state::mjikaga_upd7807_map);
- config.m_minimum_quantum = attotime::from_hz(9000); // boost synch a bit more, otherwise the game fails to start
+ config.set_maximum_quantum(attotime::from_hz(9000)); // boost synch a bit more, otherwise the game fails to start
}
static INPUT_PORTS_START( mirderby )
@@ -1579,7 +1579,7 @@ void homedata_state::mirderby(machine_config &config)
cpu1.set_disable();
//cpu1.set_vblank_int("screen", FUNC(homedata_state::mirderby_irq));
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
diff --git a/src/mame/drivers/hornet.cpp b/src/mame/drivers/hornet.cpp
index f3241347a3c..9a927618eda 100644
--- a/src/mame/drivers/hornet.cpp
+++ b/src/mame/drivers/hornet.cpp
@@ -1150,7 +1150,7 @@ void hornet_state::hornet(machine_config &config)
m_dsp->set_boot_mode(adsp21062_device::BOOT_MODE_EPROM);
m_dsp->set_addrmap(AS_DATA, &hornet_state::sharc0_map);
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
WATCHDOG_TIMER(config, m_watchdog);
diff --git a/src/mame/drivers/hp9825.cpp b/src/mame/drivers/hp9825.cpp
index 021ae268e1b..b90b60d7431 100644
--- a/src/mame/drivers/hp9825.cpp
+++ b/src/mame/drivers/hp9825.cpp
@@ -639,7 +639,7 @@ void hp9825_state::hp9825_base(machine_config &config)
m_cpu->pa_changed_cb().set(m_io_sys , FUNC(hp98x5_io_sys_device::pa_w));
// Needed when 98035 RTC module is connected or time advances at about 1/4 the correct speed (NP misses a lot of 1kHz interrupts)
- config.m_minimum_quantum = attotime::from_hz(5000);
+ config.set_maximum_quantum(attotime::from_hz(5000));
HP98X5_IO_SYS(config , m_io_sys , 0);
m_io_sys->irl().set_inputline(m_cpu, HPHYBRID_IRL);
diff --git a/src/mame/drivers/hvyunit.cpp b/src/mame/drivers/hvyunit.cpp
index 1802a0edf3b..396d449d205 100644
--- a/src/mame/drivers/hvyunit.cpp
+++ b/src/mame/drivers/hvyunit.cpp
@@ -634,7 +634,7 @@ void hvyunit_state::hvyunit(machine_config &config)
GENERIC_LATCH_8(config, m_slavelatch);
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
screen.set_refresh_hz(58);
diff --git a/src/mame/drivers/ikki.cpp b/src/mame/drivers/ikki.cpp
index 7496dec9f9a..d08a5402be5 100644
--- a/src/mame/drivers/ikki.cpp
+++ b/src/mame/drivers/ikki.cpp
@@ -265,8 +265,7 @@ void ikki_state::ikki(machine_config &config)
m_subcpu->set_addrmap(AS_PROGRAM, &ikki_state::ikki_cpu2);
m_subcpu->set_periodic_int(FUNC(ikki_state::irq0_line_hold), attotime::from_hz(2*(PIXEL_CLOCK/HTOTAL/VTOTAL)));
- config.m_perfect_cpu_quantum = subtag("maincpu");
-
+ config.set_perfect_quantum(m_maincpu);
/* video hardware */
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
diff --git a/src/mame/drivers/imds2.cpp b/src/mame/drivers/imds2.cpp
index e56387de96c..be7837d6272 100644
--- a/src/mame/drivers/imds2.cpp
+++ b/src/mame/drivers/imds2.cpp
@@ -253,7 +253,7 @@ void imds2_state::imds2(machine_config &config)
m_ipccpu->set_addrmap(AS_PROGRAM, &imds2_state::ipc_mem_map);
m_ipccpu->set_addrmap(AS_IO, &imds2_state::ipc_io_map);
m_ipccpu->set_irq_acknowledge_callback("ipcsyspic", FUNC(pic8259_device::inta_cb));
- //config.m_minimum_quantum = attotime::from_hz(100);
+ //config.set_maximum_quantum(attotime::from_hz(100));
PIC8259(config, m_ipcsyspic, 0);
m_ipcsyspic->out_int_callback().set(FUNC(imds2_state::ipc_intr_w));
diff --git a/src/mame/drivers/imolagp.cpp b/src/mame/drivers/imolagp.cpp
index 6be206e3c60..a9c59145341 100644
--- a/src/mame/drivers/imolagp.cpp
+++ b/src/mame/drivers/imolagp.cpp
@@ -524,7 +524,7 @@ void imolagp_state::imolagp(machine_config &config)
m_slavecpu->set_addrmap(AS_PROGRAM, &imolagp_state::imolagp_slave_map);
m_slavecpu->set_addrmap(AS_IO, &imolagp_state::imolagp_slave_io);
- config.m_perfect_cpu_quantum = subtag("maincpu");
+ config.set_perfect_quantum(m_maincpu);
i8255_device &ppi(I8255A(config, "ppi8255", 0));
// mode $91 - ports A & C-lower as input, ports B & C-upper as output
diff --git a/src/mame/drivers/intv.cpp b/src/mame/drivers/intv.cpp
index a1c8e62edac..27586249d85 100644
--- a/src/mame/drivers/intv.cpp
+++ b/src/mame/drivers/intv.cpp
@@ -463,7 +463,7 @@ void intv_state::intv(machine_config &config)
CP1610(config, m_maincpu, XTAL(3'579'545)/4); /* Colorburst/4 */
m_maincpu->set_addrmap(AS_PROGRAM, &intv_state::intv_mem);
m_maincpu->set_vblank_int("screen", FUNC(intv_state::intv_interrupt));
- config.m_minimum_quantum = attotime::from_hz(60);
+ config.set_maximum_quantum(attotime::from_hz(60));
/* video hardware */
STIC(config, m_stic, XTAL(3'579'545));
@@ -542,7 +542,7 @@ void intv_state::intvkbd(machine_config &config)
m_keyboard->set_addrmap(AS_PROGRAM, &intv_state::intvkbd2_mem);
m_keyboard->set_vblank_int("screen", FUNC(intv_state::intv_interrupt2));
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
/* video hardware */
GFXDECODE(config, m_gfxdecode, m_palette, gfx_intvkbd);
diff --git a/src/mame/drivers/itech32.cpp b/src/mame/drivers/itech32.cpp
index 3cd7a902dbf..f8b2289da76 100644
--- a/src/mame/drivers/itech32.cpp
+++ b/src/mame/drivers/itech32.cpp
@@ -1739,7 +1739,7 @@ void drivedge_state::drivedge(machine_config &config)
// M6803(config, "comm", 8000000/4); -- network CPU
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
m_screen->screen_vblank().set_nop(); // interrupt not used?
diff --git a/src/mame/drivers/jackal.cpp b/src/mame/drivers/jackal.cpp
index 7b1cbfb2ce1..2c11e8fa7c4 100644
--- a/src/mame/drivers/jackal.cpp
+++ b/src/mame/drivers/jackal.cpp
@@ -366,7 +366,7 @@ void jackal_state::jackal(machine_config &config)
MC6809E(config, m_slavecpu, MASTER_CLOCK/12); // verified on pcb
m_slavecpu->set_addrmap(AS_PROGRAM, &jackal_state::slave_map);
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
WATCHDOG_TIMER(config, "watchdog");
diff --git a/src/mame/drivers/jedi.cpp b/src/mame/drivers/jedi.cpp
index eb177b62da1..9d0cf14ef59 100644
--- a/src/mame/drivers/jedi.cpp
+++ b/src/mame/drivers/jedi.cpp
@@ -326,7 +326,7 @@ void jedi_state::jedi(machine_config &config)
M6502(config, m_maincpu, JEDI_MAIN_CPU_CLOCK);
m_maincpu->set_addrmap(AS_PROGRAM, &jedi_state::main_map);
- config.m_minimum_quantum = attotime::from_hz(240);
+ config.set_maximum_quantum(attotime::from_hz(240));
X2212(config, "novram12b");
X2212(config, "novram12c");
diff --git a/src/mame/drivers/jpmimpct.cpp b/src/mame/drivers/jpmimpct.cpp
index 20d3f4e0c84..7513719a1c6 100644
--- a/src/mame/drivers/jpmimpct.cpp
+++ b/src/mame/drivers/jpmimpct.cpp
@@ -853,7 +853,7 @@ void jpmimpct_state::jpmimpct(machine_config &config)
m_dsp->set_shiftreg_in_callback(FUNC(jpmimpct_state::to_shiftreg));
m_dsp->set_shiftreg_out_callback(FUNC(jpmimpct_state::from_shiftreg));
- config.m_minimum_quantum = attotime::from_hz(30000);
+ config.set_maximum_quantum(attotime::from_hz(30000));
MCFG_MACHINE_START_OVERRIDE(jpmimpct_state,jpmimpct)
MCFG_MACHINE_RESET_OVERRIDE(jpmimpct_state,jpmimpct)
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
@@ -1314,7 +1314,7 @@ void jpmimpct_state::impctawp(machine_config &config)
M68000(config, m_maincpu, 8000000);
m_maincpu->set_addrmap(AS_PROGRAM, &jpmimpct_state::awp68k_program_map);
- config.m_minimum_quantum = attotime::from_hz(30000);
+ config.set_maximum_quantum(attotime::from_hz(30000));
S16LF01(config, m_vfd);
MCFG_MACHINE_START_OVERRIDE(jpmimpct_state,impctawp)
diff --git a/src/mame/drivers/junior.cpp b/src/mame/drivers/junior.cpp
index 8f96880d78f..fc161fa3611 100644
--- a/src/mame/drivers/junior.cpp
+++ b/src/mame/drivers/junior.cpp
@@ -230,7 +230,7 @@ void junior_state::junior(machine_config &config)
/* basic machine hardware */
M6502(config, m_maincpu, 1_MHz_XTAL);
m_maincpu->set_addrmap(AS_PROGRAM, &junior_state::junior_mem);
- config.m_minimum_quantum = attotime::from_hz(50);
+ config.set_maximum_quantum(attotime::from_hz(50));
/* video hardware */
config.set_default_layout(layout_junior);
diff --git a/src/mame/drivers/jupace.cpp b/src/mame/drivers/jupace.cpp
index 842900a6ec3..89fd060eaca 100644
--- a/src/mame/drivers/jupace.cpp
+++ b/src/mame/drivers/jupace.cpp
@@ -759,7 +759,7 @@ void ace_state::ace(machine_config &config)
Z80(config, m_maincpu, XTAL(6'500'000)/2);
m_maincpu->set_addrmap(AS_PROGRAM, &ace_state::ace_mem);
m_maincpu->set_addrmap(AS_IO, &ace_state::ace_io);
- config.m_minimum_quantum = attotime::from_hz(60);
+ config.set_maximum_quantum(attotime::from_hz(60));
// video hardware
screen_device &screen(SCREEN(config, SCREEN_TAG, SCREEN_TYPE_RASTER));
diff --git a/src/mame/drivers/kc.cpp b/src/mame/drivers/kc.cpp
index 439fa3150f1..cdb0069591f 100644
--- a/src/mame/drivers/kc.cpp
+++ b/src/mame/drivers/kc.cpp
@@ -17,6 +17,7 @@
#include "emu.h"
#include "includes/kc.h"
+#include "machine/input_merger.h"
#include "softlist.h"
#include "screen.h"
#include "speaker.h"
@@ -96,6 +97,47 @@ void kc85_exp(device_slot_interface &device)
}
+void kc_state::kc85_slots(machine_config &config)
+{
+ /* devices */
+ QUICKLOAD(config, "quickload", "kcc", attotime::from_seconds(2)).set_load_callback(FUNC(kc_state::quickload_cb));
+
+ CASSETTE(config, m_cassette);
+ m_cassette->set_formats(kc_cassette_formats);
+ m_cassette->set_default_state(CASSETTE_PLAY);
+ m_cassette->add_route(ALL_OUTPUTS, "mono", 0.05);
+ m_cassette->set_interface("kc_cass");
+
+ INPUT_MERGER_ANY_HIGH(config, "irq").output_handler().set_inputline(m_maincpu, 0);
+ INPUT_MERGER_ANY_HIGH(config, "nmi").output_handler().set_inputline(m_maincpu, INPUT_LINE_NMI);
+ INPUT_MERGER_ANY_HIGH(config, "halt").output_handler().set_inputline(m_maincpu, INPUT_LINE_HALT);
+
+ /* cartridge slot */
+ KCCART_SLOT(config, m_expansions[0], kc85_cart, "m011");
+ m_expansions[0]->set_next_slot(m_expansions[1]);
+ m_expansions[0]->irq().set("irq", FUNC(input_merger_device::in_w<0>));
+ m_expansions[0]->nmi().set("nmi", FUNC(input_merger_device::in_w<0>));
+ m_expansions[0]->halt().set("halt", FUNC(input_merger_device::in_w<0>));
+
+ KCCART_SLOT(config, m_expansions[1], kc85_cart, nullptr);
+ m_expansions[1]->set_next_slot(m_expansions[2]);
+ m_expansions[1]->irq().set("irq", FUNC(input_merger_device::in_w<1>));
+ m_expansions[1]->nmi().set("nmi", FUNC(input_merger_device::in_w<1>));
+ m_expansions[1]->halt().set("halt", FUNC(input_merger_device::in_w<1>));
+
+ /* expansion interface */
+ KCEXP_SLOT(config, m_expansions[2], kc85_exp, nullptr);
+ m_expansions[2]->irq().set("irq", FUNC(input_merger_device::in_w<2>));
+ m_expansions[2]->nmi().set("nmi", FUNC(input_merger_device::in_w<2>));
+ m_expansions[2]->halt().set("halt", FUNC(input_merger_device::in_w<2>));
+
+ /* Software lists */
+ SOFTWARE_LIST(config, "cart_list").set_original("kc_cart");
+ SOFTWARE_LIST(config, "flop_list").set_original("kc_flop");
+ SOFTWARE_LIST(config, "cass_list").set_original("kc_cass");
+}
+
+
void kc_state::kc85_3(machine_config &config)
{
/* basic machine hardware */
@@ -104,7 +146,7 @@ void kc_state::kc85_3(machine_config &config)
m_maincpu->set_addrmap(AS_IO, &kc_state::kc85_3_io);
m_maincpu->set_daisy_config(kc85_daisy_chain);
- config.m_minimum_quantum = attotime::from_hz(60);
+ config.set_maximum_quantum(attotime::from_hz(60));
Z80PIO(config, m_z80pio, KC85_3_CLOCK);
m_z80pio->out_int_callback().set_inputline(m_maincpu, 0);
@@ -137,39 +179,7 @@ void kc_state::kc85_3(machine_config &config)
SPEAKER(config, "mono").front_center();
SPEAKER_SOUND(config, "speaker").add_route(ALL_OUTPUTS, "mono", 0.50);
- /* devices */
- QUICKLOAD(config, "quickload", "kcc", attotime::from_seconds(2)).set_load_callback(FUNC(kc_state::quickload_cb));
-
- CASSETTE(config, m_cassette);
- m_cassette->set_formats(kc_cassette_formats);
- m_cassette->set_default_state(CASSETTE_PLAY);
- m_cassette->add_route(ALL_OUTPUTS, "mono", 0.05);
- m_cassette->set_interface("kc_cass");
-
- /* cartridge slot */
- KCCART_SLOT(config, m_expansions[0], kc85_cart, "m011");
- m_expansions[0]->set_next_slot("mc");
- m_expansions[0]->irq().set_inputline(m_maincpu, 0);
- m_expansions[0]->nmi().set_inputline(m_maincpu, INPUT_LINE_NMI);
- m_expansions[0]->halt().set_inputline(m_maincpu, INPUT_LINE_HALT);
-
- KCCART_SLOT(config, m_expansions[1], kc85_cart, nullptr);
- m_expansions[1]->set_next_slot("exp");
- m_expansions[1]->irq().set_inputline(m_maincpu, 0);
- m_expansions[1]->nmi().set_inputline(m_maincpu, INPUT_LINE_NMI);
- m_expansions[1]->halt().set_inputline(m_maincpu, INPUT_LINE_HALT);
-
- /* expansion interface */
- KCEXP_SLOT(config, m_expansions[2], kc85_exp, nullptr);
- m_expansions[2]->set_next_slot(nullptr);
- m_expansions[2]->irq().set_inputline(m_maincpu, 0);
- m_expansions[2]->nmi().set_inputline(m_maincpu, INPUT_LINE_NMI);
- m_expansions[2]->halt().set_inputline(m_maincpu, INPUT_LINE_HALT);
-
- /* Software lists */
- SOFTWARE_LIST(config, "cart_list").set_original("kc_cart");
- SOFTWARE_LIST(config, "flop_list").set_original("kc_flop");
- SOFTWARE_LIST(config, "cass_list").set_original("kc_cass");
+ kc85_slots(config);
/* internal ram */
RAM(config, m_ram).set_default_size("16K");
@@ -182,7 +192,7 @@ void kc85_4_state::kc85_4(machine_config &config)
m_maincpu->set_addrmap(AS_PROGRAM, &kc85_4_state::kc85_4_mem);
m_maincpu->set_addrmap(AS_IO, &kc85_4_state::kc85_4_io);
m_maincpu->set_daisy_config(kc85_daisy_chain);
- config.m_minimum_quantum = attotime::from_hz(60);
+ config.set_maximum_quantum(attotime::from_hz(60));
Z80PIO(config, m_z80pio, KC85_4_CLOCK);
m_z80pio->out_int_callback().set_inputline(m_maincpu, 0);
@@ -215,39 +225,7 @@ void kc85_4_state::kc85_4(machine_config &config)
SPEAKER(config, "mono").front_center();
SPEAKER_SOUND(config, "speaker").add_route(ALL_OUTPUTS, "mono", 0.50);
- /* devices */
- QUICKLOAD(config, "quickload", "kcc", attotime::from_seconds(2)).set_load_callback(FUNC(kc_state::quickload_cb));
-
- CASSETTE(config, m_cassette);
- m_cassette->set_formats(kc_cassette_formats);
- m_cassette->set_default_state(CASSETTE_PLAY);
- m_cassette->add_route(ALL_OUTPUTS, "mono", 0.05);
- m_cassette->set_interface("kc_cass");
-
- /* cartridge slot */
- KCCART_SLOT(config, m_expansions[0], kc85_cart, "m011");
- m_expansions[0]->set_next_slot("mc");
- m_expansions[0]->irq().set_inputline(m_maincpu, 0);
- m_expansions[0]->nmi().set_inputline(m_maincpu, INPUT_LINE_NMI);
- m_expansions[0]->halt().set_inputline(m_maincpu, INPUT_LINE_HALT);
-
- KCCART_SLOT(config, m_expansions[1], kc85_cart, nullptr);
- m_expansions[1]->set_next_slot("exp");
- m_expansions[1]->irq().set_inputline(m_maincpu, 0);
- m_expansions[1]->nmi().set_inputline(m_maincpu, INPUT_LINE_NMI);
- m_expansions[1]->halt().set_inputline(m_maincpu, INPUT_LINE_HALT);
-
- /* expansion interface */
- KCEXP_SLOT(config, m_expansions[2], kc85_exp, nullptr);
- m_expansions[2]->set_next_slot(nullptr);
- m_expansions[2]->irq().set_inputline(m_maincpu, 0);
- m_expansions[2]->nmi().set_inputline(m_maincpu, INPUT_LINE_NMI);
- m_expansions[2]->halt().set_inputline(m_maincpu, INPUT_LINE_HALT);
-
- /* Software lists */
- SOFTWARE_LIST(config, "cart_list").set_original("kc_cart");
- SOFTWARE_LIST(config, "flop_list").set_original("kc_flop");
- SOFTWARE_LIST(config, "cass_list").set_original("kc_cass");
+ kc85_slots(config);
/* internal ram */
RAM(config, m_ram).set_default_size("64K");
diff --git a/src/mame/drivers/kenseim.cpp b/src/mame/drivers/kenseim.cpp
index 4bf9f1f66f5..abdaee4e91a 100644
--- a/src/mame/drivers/kenseim.cpp
+++ b/src/mame/drivers/kenseim.cpp
@@ -504,7 +504,7 @@ void kenseim_state::kenseim(machine_config &config)
ppi_x2.in_pe().set_ioport("MOLEB");
ppi_x2.out_pf().set(FUNC(kenseim_state::mb8936_portf_w));
- config.m_perfect_cpu_quantum = subtag("maincpu");
+ config.set_perfect_quantum(m_maincpu);
}
static INPUT_PORTS_START( kenseim )
diff --git a/src/mame/drivers/kickgoal.cpp b/src/mame/drivers/kickgoal.cpp
index d7c2db20317..c74508becf6 100644
--- a/src/mame/drivers/kickgoal.cpp
+++ b/src/mame/drivers/kickgoal.cpp
@@ -399,7 +399,7 @@ void kickgoal_state::kickgoal(machine_config &config)
m_audiocpu->read_c().set(FUNC(kickgoal_state::soundio_port_c_r));
m_audiocpu->write_c().set(FUNC(kickgoal_state::soundio_port_c_w));
- config.m_perfect_cpu_quantum = subtag("maincpu");
+ config.set_perfect_quantum(m_maincpu);
EEPROM_93C46_16BIT(config, "eeprom").default_data(kickgoal_default_eeprom_type1, 128);
diff --git a/src/mame/drivers/kim1.cpp b/src/mame/drivers/kim1.cpp
index bbd30ef8a5c..3a5c1ceee3d 100644
--- a/src/mame/drivers/kim1.cpp
+++ b/src/mame/drivers/kim1.cpp
@@ -246,7 +246,7 @@ void kim1_state::kim1(machine_config &config)
// basic machine hardware
M6502(config, m_maincpu, 1000000); /* 1 MHz */
m_maincpu->set_addrmap(AS_PROGRAM, &kim1_state::kim1_map);
- config.m_minimum_quantum = attotime::from_hz(60);
+ config.set_maximum_quantum(attotime::from_hz(60));
// video hardware
config.set_default_layout(layout_kim1);
diff --git a/src/mame/drivers/kingdrby.cpp b/src/mame/drivers/kingdrby.cpp
index 75da9697672..e6039a808e6 100644
--- a/src/mame/drivers/kingdrby.cpp
+++ b/src/mame/drivers/kingdrby.cpp
@@ -982,7 +982,7 @@ void kingdrby_state::kingdrby(machine_config &config)
m_soundcpu->set_addrmap(AS_IO, &kingdrby_state::sound_io_map);
m_soundcpu->set_periodic_int(FUNC(kingdrby_state::irq0_line_hold), attotime::from_hz(1000)); /* guess, controls ay8910 tempo.*/
- config.m_perfect_cpu_quantum = subtag("master");
+ config.set_perfect_quantum("master");
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
diff --git a/src/mame/drivers/kingobox.cpp b/src/mame/drivers/kingobox.cpp
index 8e620ca8845..370912478d8 100644
--- a/src/mame/drivers/kingobox.cpp
+++ b/src/mame/drivers/kingobox.cpp
@@ -485,7 +485,7 @@ void kingofb_state::kingofb(machine_config &config)
CLOCK(config, "soundnmi", 6000).signal_handler().set_inputline(m_audiocpu, INPUT_LINE_NMI);
- config.m_minimum_quantum = attotime::from_hz(6000); // We really need heavy synching among the processors
+ config.set_maximum_quantum(attotime::from_hz(6000)); // We really need heavy synching among the processors
/* video hardware */
@@ -542,7 +542,7 @@ void kingofb_state::ringking(machine_config &config)
CLOCK(config, "soundnmi", 6000).signal_handler().set_inputline(m_audiocpu, INPUT_LINE_NMI);
- config.m_minimum_quantum = attotime::from_hz(6000); // We really need heavy synching among the processors
+ config.set_maximum_quantum(attotime::from_hz(6000)); // We really need heavy synching among the processors
/* video hardware */
diff --git a/src/mame/drivers/konamigx.cpp b/src/mame/drivers/konamigx.cpp
index 396e66ec69b..bece7338b8b 100644
--- a/src/mame/drivers/konamigx.cpp
+++ b/src/mame/drivers/konamigx.cpp
@@ -1620,7 +1620,7 @@ void konamigx_state::konamigx(machine_config &config)
m_k053252->int2_ack().set(FUNC(konamigx_state::hblank_irq_ack_w));
m_k053252->set_screen("screen");
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
MCFG_MACHINE_START_OVERRIDE(konamigx_state,konamigx)
MCFG_MACHINE_RESET_OVERRIDE(konamigx_state,konamigx)
diff --git a/src/mame/drivers/ksayakyu.cpp b/src/mame/drivers/ksayakyu.cpp
index 2bb6b96cad4..09536e424a2 100644
--- a/src/mame/drivers/ksayakyu.cpp
+++ b/src/mame/drivers/ksayakyu.cpp
@@ -268,7 +268,7 @@ void ksayakyu_state::ksayakyu(machine_config &config)
audiocpu.set_addrmap(AS_PROGRAM, &ksayakyu_state::soundcpu_map);
audiocpu.set_periodic_int(FUNC(ksayakyu_state::irq0_line_hold), attotime::from_hz(60)); //guess, controls music tempo
- config.m_minimum_quantum = attotime::from_hz(60000);
+ config.set_maximum_quantum(attotime::from_hz(60000));
/* video hardware */
diff --git a/src/mame/drivers/kyugo.cpp b/src/mame/drivers/kyugo.cpp
index d0c96f25d20..9852b5cbbd1 100644
--- a/src/mame/drivers/kyugo.cpp
+++ b/src/mame/drivers/kyugo.cpp
@@ -532,7 +532,7 @@ void kyugo_state::kyugo_base(machine_config &config)
m_subcpu->set_addrmap(AS_IO, &kyugo_state::gyrodine_sub_portmap);
m_subcpu->set_periodic_int(FUNC(kyugo_state::irq0_line_hold), attotime::from_hz(4*60));
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
ls259_device &mainlatch(LS259(config, "mainlatch"));
mainlatch.q_out_cb<0>().set(FUNC(kyugo_state::nmi_mask_w));
diff --git a/src/mame/drivers/ladyfrog.cpp b/src/mame/drivers/ladyfrog.cpp
index 8bbe47e89fa..4d3d2b18ea7 100644
--- a/src/mame/drivers/ladyfrog.cpp
+++ b/src/mame/drivers/ladyfrog.cpp
@@ -299,7 +299,7 @@ void ladyfrog_state::ladyfrog(machine_config &config)
m_audiocpu->set_addrmap(AS_PROGRAM, &ladyfrog_state::ladyfrog_sound_map);
m_audiocpu->set_periodic_int(FUNC(ladyfrog_state::irq0_line_hold), attotime::from_hz(2*60));
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
diff --git a/src/mame/drivers/lasso.cpp b/src/mame/drivers/lasso.cpp
index 2b4be527c75..5e8da97b532 100644
--- a/src/mame/drivers/lasso.cpp
+++ b/src/mame/drivers/lasso.cpp
@@ -501,7 +501,7 @@ void lasso_state::base(machine_config &config)
M6502(config, m_audiocpu, 600000);
m_audiocpu->set_addrmap(AS_PROGRAM, &lasso_state::lasso_audio_map);
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
diff --git a/src/mame/drivers/lastbank.cpp b/src/mame/drivers/lastbank.cpp
index d6403343398..413e868e505 100644
--- a/src/mame/drivers/lastbank.cpp
+++ b/src/mame/drivers/lastbank.cpp
@@ -413,7 +413,7 @@ void lastbank_state::lastbank(machine_config &config)
audiocpu.set_addrmap(AS_IO, &lastbank_state::lastbank_audio_io);
// yes, we have no interrupts
- config.m_perfect_cpu_quantum = subtag("maincpu");
+ config.set_perfect_quantum(m_maincpu);
//MCFG_MACHINE_START_OVERRIDE(lastbank_state,lastbank)
//MCFG_MACHINE_RESET_OVERRIDE(lastbank_state,lastbank)
diff --git a/src/mame/drivers/liberate.cpp b/src/mame/drivers/liberate.cpp
index ced0d21aa19..0dc6b06c023 100644
--- a/src/mame/drivers/liberate.cpp
+++ b/src/mame/drivers/liberate.cpp
@@ -753,7 +753,7 @@ void liberate_state::liberate_base(machine_config &config)
m_audiocpu->set_addrmap(AS_PROGRAM, &liberate_state::liberate_sound_map);
m_audiocpu->set_periodic_int(FUNC(liberate_state::nmi_line_pulse), attotime::from_hz(16*60)); /* ??? */
- config.m_minimum_quantum = attotime::from_hz(12000);
+ config.set_maximum_quantum(attotime::from_hz(12000));
MCFG_MACHINE_START_OVERRIDE(liberate_state,liberate)
MCFG_MACHINE_RESET_OVERRIDE(liberate_state,liberate)
@@ -818,7 +818,7 @@ void liberate_state::prosoccr(machine_config &config)
m_audiocpu->set_clock(10000000/8); //xtal is 12 Mhz, divider is unknown
m_audiocpu->set_addrmap(AS_PROGRAM, &liberate_state::prosoccr_sound_map);
- config.m_minimum_quantum = attotime::from_hz(12000);
+ config.set_maximum_quantum(attotime::from_hz(12000));
subdevice<screen_device>("screen")->set_visarea(1*8, 31*8-1, 0*8, 32*8-1);
subdevice<screen_device>("screen")->set_screen_update(FUNC(liberate_state::screen_update_prosoccr));
@@ -839,7 +839,7 @@ void liberate_state::prosport(machine_config &config)
m_audiocpu->set_addrmap(AS_PROGRAM, &liberate_state::liberate_sound_map);
m_audiocpu->set_periodic_int(FUNC(liberate_state::nmi_line_pulse), attotime::from_hz(16*60)); /* ??? */
-// config.m_minimum_quantum = attotime::from_hz(12000);
+// config.set_maximum_quantum(attotime::from_hz(12000));
MCFG_MACHINE_START_OVERRIDE(liberate_state,liberate)
MCFG_MACHINE_RESET_OVERRIDE(liberate_state,liberate)
diff --git a/src/mame/drivers/lisa.cpp b/src/mame/drivers/lisa.cpp
index 13f5228c6a6..ab12a6d5a98 100644
--- a/src/mame/drivers/lisa.cpp
+++ b/src/mame/drivers/lisa.cpp
@@ -117,7 +117,7 @@ void lisa_state::lisa(machine_config &config)
M6504(config, m_fdc_cpu, 2000000); /* 16.000 MHz / 8 in when DIS asserted, 16.000 MHz / 9 otherwise (?) */
m_fdc_cpu->set_addrmap(AS_PROGRAM, &lisa_state::lisa_fdc_map);
- config.m_minimum_quantum = attotime::from_hz(60);
+ config.set_maximum_quantum(attotime::from_hz(60));
LS259(config, m_latch); // U4E (CPU board)
m_latch->q_out_cb<0>().set(FUNC(lisa_state::diag1_w));
diff --git a/src/mame/drivers/lockon.cpp b/src/mame/drivers/lockon.cpp
index abedbe9ead4..8a38382647b 100644
--- a/src/mame/drivers/lockon.cpp
+++ b/src/mame/drivers/lockon.cpp
@@ -477,7 +477,7 @@ void lockon_state::lockon(machine_config &config)
m_audiocpu->set_addrmap(AS_IO, &lockon_state::sound_io);
WATCHDOG_TIMER(config, m_watchdog).set_time(PERIOD_OF_555_ASTABLE(10000, 4700, 10000e-12) * 4096);
- config.m_minimum_quantum = attotime::from_hz(600);
+ config.set_maximum_quantum(attotime::from_hz(600));
m58990_device &adc(M58990(config, "adc", 16_MHz_XTAL / 16));
adc.in_callback<0>().set_ioport("ADC_BANK");
diff --git a/src/mame/drivers/lsasquad.cpp b/src/mame/drivers/lsasquad.cpp
index 08436c78a2d..2328fde0742 100644
--- a/src/mame/drivers/lsasquad.cpp
+++ b/src/mame/drivers/lsasquad.cpp
@@ -568,7 +568,7 @@ void lsasquad_state::lsasquad(machine_config &config)
TAITO68705_MCU(config, m_bmcu, MASTER_CLOCK / 8);
- config.m_minimum_quantum = attotime::from_hz(30000); /* 500 CPU slices per frame - a high value to ensure proper */
+ config.set_maximum_quantum(attotime::from_hz(30000)); /* 500 CPU slices per frame - a high value to ensure proper */
/* synchronization of the CPUs */
/* main<->sound synchronization depends on this */
@@ -633,7 +633,7 @@ void lsasquad_state::daikaiju(machine_config &config)
TAITO68705_MCU(config, m_bmcu, MASTER_CLOCK / 8);
- config.m_minimum_quantum = attotime::from_hz(30000); /* 500 CPU slices per frame - a high value to ensure proper */
+ config.set_maximum_quantum(attotime::from_hz(30000)); /* 500 CPU slices per frame - a high value to ensure proper */
/* synchronization of the CPUs */
/* main<->sound synchronization depends on this */
diff --git a/src/mame/drivers/lviv.cpp b/src/mame/drivers/lviv.cpp
index 6ea1c7e75ad..258960825a0 100644
--- a/src/mame/drivers/lviv.cpp
+++ b/src/mame/drivers/lviv.cpp
@@ -426,7 +426,7 @@ void lviv_state::lviv(machine_config &config)
I8080(config, m_maincpu, 2500000);
m_maincpu->set_addrmap(AS_PROGRAM, &lviv_state::mem_map);
m_maincpu->set_addrmap(AS_IO, &lviv_state::io_map);
- config.m_minimum_quantum = attotime::from_hz(60);
+ config.set_maximum_quantum(attotime::from_hz(60));
I8255(config, m_ppi[0]);
m_ppi[0]->in_pa_callback().set(FUNC(lviv_state::ppi_0_porta_r));
diff --git a/src/mame/drivers/lynx.cpp b/src/mame/drivers/lynx.cpp
index 272587ffcaa..0a93825049a 100644
--- a/src/mame/drivers/lynx.cpp
+++ b/src/mame/drivers/lynx.cpp
@@ -79,7 +79,7 @@ void lynx_state::lynx(machine_config &config)
/* basic machine hardware */
M65SC02(config, m_maincpu, 4000000); /* vti core, integrated in vlsi, stz, but not bbr bbs */
m_maincpu->set_addrmap(AS_PROGRAM, &lynx_state::lynx_mem);
- config.m_minimum_quantum = attotime::from_hz(60);
+ config.set_maximum_quantum(attotime::from_hz(60));
ADDRESS_MAP_BANK(config, "bank_fc00").set_map(&lynx_state::lynx_fc00_mem).set_options(ENDIANNESS_LITTLE, 8, 9, 0x100);
ADDRESS_MAP_BANK(config, "bank_fd00").set_map(&lynx_state::lynx_fd00_mem).set_options(ENDIANNESS_LITTLE, 8, 9, 0x100);
diff --git a/src/mame/drivers/m68705prg.cpp b/src/mame/drivers/m68705prg.cpp
index 0f4a23fa273..77b080f65a7 100644
--- a/src/mame/drivers/m68705prg.cpp
+++ b/src/mame/drivers/m68705prg.cpp
@@ -229,7 +229,7 @@ INPUT_PORTS_END
void m68705prg_state_base::m68705prg(machine_config &config)
{
- config.m_perfect_cpu_quantum = subtag("mcu");
+ config.set_perfect_quantum("mcu");
GENERIC_SOCKET(config, m_eprom_image, generic_plain_slot, "eprom", "bin,rom");
m_eprom_image->set_device_load(FUNC(m68705prg_state_base::eprom_load));
diff --git a/src/mame/drivers/mac.cpp b/src/mame/drivers/mac.cpp
index 018bc8d8290..4576c4b34aa 100644
--- a/src/mame/drivers/mac.cpp
+++ b/src/mame/drivers/mac.cpp
@@ -984,7 +984,7 @@ void mac_state::add_egret(machine_config &config, int type)
m_egret->linechange_callback().set(FUNC(mac_state::adb_linechange_w));
m_egret->via_clock_callback().set(m_via1, FUNC(via6522_device::write_cb1));
m_egret->via_data_callback().set(m_via1, FUNC(via6522_device::write_cb2));
- config.m_perfect_cpu_quantum = subtag("maincpu");
+ config.set_perfect_quantum(m_maincpu);
}
void mac_state::add_cuda(machine_config &config, int type)
@@ -1040,7 +1040,7 @@ void mac_state::mac512ke_base(machine_config &config)
M68000(config, m_maincpu, C7M); /* 7.8336 MHz */
m_maincpu->set_addrmap(AS_PROGRAM, &mac_state::mac512ke_map);
m_maincpu->set_dasm_override(FUNC(mac_state::mac_dasm_override));
- config.m_minimum_quantum = attotime::from_hz(60);
+ config.set_maximum_quantum(attotime::from_hz(60));
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
m_screen->set_raw(C7M*2, MAC_H_TOTAL, 0, MAC_H_VIS, MAC_V_TOTAL, 0, MAC_V_VIS);
@@ -1174,7 +1174,7 @@ void mac_state::macprtb(machine_config &config)
m_maincpu->set_addrmap(AS_PROGRAM, &mac_state::macprtb_map);
m_maincpu->set_dasm_override(FUNC(mac_state::mac_dasm_override));
- config.m_minimum_quantum = attotime::from_hz(60);
+ config.set_maximum_quantum(attotime::from_hz(60));
add_pb1xx_screen(config);
m_screen->set_screen_update(FUNC(mac_state::screen_update_macprtb));
diff --git a/src/mame/drivers/mac128.cpp b/src/mame/drivers/mac128.cpp
index 76d0e6c5ca1..e1558b518d3 100644
--- a/src/mame/drivers/mac128.cpp
+++ b/src/mame/drivers/mac128.cpp
@@ -1349,7 +1349,7 @@ void mac128_state::mac512ke(machine_config &config)
/* basic machine hardware */
M68000(config, m_maincpu, C7M); /* 7.8336 MHz */
m_maincpu->set_addrmap(AS_PROGRAM, &mac128_state::mac512ke_map);
- config.m_minimum_quantum = attotime::from_hz(60);
+ config.set_maximum_quantum(attotime::from_hz(60));
/* video hardware */
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
diff --git a/src/mame/drivers/macpci.cpp b/src/mame/drivers/macpci.cpp
index 19b8e213538..bf347dcfa06 100644
--- a/src/mame/drivers/macpci.cpp
+++ b/src/mame/drivers/macpci.cpp
@@ -139,7 +139,7 @@ void macpci_state::pippin(machine_config &config)
m_cuda->linechange_callback().set(FUNC(macpci_state::cuda_adb_linechange_w));
m_cuda->via_clock_callback().set(m_via1, FUNC(via6522_device::write_cb1));
m_cuda->via_data_callback().set(m_via1, FUNC(via6522_device::write_cb2));
- config.m_perfect_cpu_quantum = subtag("maincpu");
+ config.set_perfect_quantum(m_maincpu);
}
/* ROM definition */
diff --git a/src/mame/drivers/magmax.cpp b/src/mame/drivers/magmax.cpp
index 0b3aef9ecb9..2e39e219489 100644
--- a/src/mame/drivers/magmax.cpp
+++ b/src/mame/drivers/magmax.cpp
@@ -336,7 +336,7 @@ void magmax_state::magmax(machine_config &config)
m_audiocpu->set_addrmap(AS_PROGRAM, &magmax_state::sound_map);
m_audiocpu->set_addrmap(AS_IO, &magmax_state::sound_io_map);
- config.m_minimum_quantum = attotime::from_hz(600);
+ config.set_maximum_quantum(attotime::from_hz(600));
/* video hardware */
diff --git a/src/mame/drivers/mappy.cpp b/src/mame/drivers/mappy.cpp
index d3b62a7774f..1847673a668 100644
--- a/src/mame/drivers/mappy.cpp
+++ b/src/mame/drivers/mappy.cpp
@@ -1334,7 +1334,7 @@ void mappy_state::superpac_common(machine_config &config)
WATCHDOG_TIMER(config, "watchdog").set_vblank_count("screen", 8);
- config.m_minimum_quantum = attotime::from_hz(6000); // 100 CPU slices per frame - a high value to ensure proper synchronization of the CPUs
+ config.set_maximum_quantum(attotime::from_hz(6000)); // 100 CPU slices per frame - a high value to ensure proper synchronization of the CPUs
ls157_device &dipmux(LS157(config, "dipmux"));
dipmux.a_in_callback().set_ioport("DSW2");
@@ -1445,7 +1445,7 @@ void mappy_state::phozon(machine_config &config)
WATCHDOG_TIMER(config, "watchdog").set_vblank_count("screen", 8);
- config.m_minimum_quantum = attotime::from_hz(6000); // 100 CPU slices per frame - a high value to ensure proper synchronization of the CPUs
+ config.set_maximum_quantum(attotime::from_hz(6000)); // 100 CPU slices per frame - a high value to ensure proper synchronization of the CPUs
NAMCO_58XX(config, m_namcoio[0], 0);
m_namcoio[0]->in_callback<0>().set_ioport("COINS");
@@ -1504,7 +1504,7 @@ void mappy_state::mappy_common(machine_config &config)
WATCHDOG_TIMER(config, "watchdog").set_vblank_count("screen", 8);
- config.m_minimum_quantum = attotime::from_hz(6000); // 100 CPU slices per frame - a high value to ensure proper synchronization of the CPUs
+ config.set_maximum_quantum(attotime::from_hz(6000)); // 100 CPU slices per frame - a high value to ensure proper synchronization of the CPUs
ls157_device &dipmux(LS157(config, "dipmux"));
dipmux.a_in_callback().set_ioport("DSW2");
diff --git a/src/mame/drivers/markham.cpp b/src/mame/drivers/markham.cpp
index b4c59511bc7..6bf26f788ad 100644
--- a/src/mame/drivers/markham.cpp
+++ b/src/mame/drivers/markham.cpp
@@ -580,7 +580,7 @@ void markham_state::markham(machine_config &config)
m_subcpu->set_addrmap(AS_PROGRAM, &markham_state::markham_slave_map);
m_subcpu->set_vblank_int("screen", FUNC(markham_state::irq0_line_hold));
- config.m_minimum_quantum = attotime::from_hz(CPU_CLOCK/256);
+ config.set_maximum_quantum(attotime::from_hz(CPU_CLOCK/256));
/* video hardware */
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
diff --git a/src/mame/drivers/matmania.cpp b/src/mame/drivers/matmania.cpp
index 4b75f814977..6d8f8f0c62d 100644
--- a/src/mame/drivers/matmania.cpp
+++ b/src/mame/drivers/matmania.cpp
@@ -310,7 +310,7 @@ void matmania_state::matmania(machine_config &config)
m_audiocpu->set_addrmap(AS_PROGRAM, &matmania_state::matmania_sound_map);
m_audiocpu->set_periodic_int(FUNC(matmania_state::nmi_line_pulse), attotime::from_hz(15*60)); /* ???? */
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
/* video hardware */
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
@@ -350,7 +350,7 @@ void matmania_state::maniach(machine_config &config)
TAITO68705_MCU(config, m_mcu, 1500000*2); /* (don't know really how fast, but it doesn't need to even be this fast) */
- config.m_minimum_quantum = attotime::from_hz(6000); /* 100 CPU slice per frame - high interleaving to sync main and mcu */
+ config.set_maximum_quantum(attotime::from_hz(6000)); /* 100 CPU slice per frame - high interleaving to sync main and mcu */
/* video hardware */
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
diff --git a/src/mame/drivers/mbc55x.cpp b/src/mame/drivers/mbc55x.cpp
index 4cab6e24bae..8389e69c5a4 100644
--- a/src/mame/drivers/mbc55x.cpp
+++ b/src/mame/drivers/mbc55x.cpp
@@ -333,8 +333,8 @@ void mbc55x_state::mbc55x(machine_config &config)
FLOPPY_CONNECTOR(config, m_floppy[0], mbc55x_floppies, "qd", mbc55x_state::floppy_formats);
FLOPPY_CONNECTOR(config, m_floppy[1], mbc55x_floppies, "qd", mbc55x_state::floppy_formats);
- FLOPPY_CONNECTOR(config, m_floppy[2], mbc55x_floppies, "", mbc55x_state::floppy_formats);
- FLOPPY_CONNECTOR(config, m_floppy[3], mbc55x_floppies, "", mbc55x_state::floppy_formats);
+ FLOPPY_CONNECTOR(config, m_floppy[2], mbc55x_floppies, nullptr, mbc55x_state::floppy_formats);
+ FLOPPY_CONNECTOR(config, m_floppy[3], mbc55x_floppies, nullptr, mbc55x_state::floppy_formats);
/* Software list */
SOFTWARE_LIST(config, "disk_list").set_original("mbc55x");
diff --git a/src/mame/drivers/meadows.cpp b/src/mame/drivers/meadows.cpp
index 54c4d003c0e..424591c3f0b 100644
--- a/src/mame/drivers/meadows.cpp
+++ b/src/mame/drivers/meadows.cpp
@@ -631,7 +631,7 @@ void meadows_state::meadows(machine_config &config)
m_audiocpu->set_addrmap(AS_PROGRAM, &meadows_state::audio_map);
m_audiocpu->set_periodic_int(FUNC(meadows_state::audio_interrupt), attotime::from_hz((double)5000000/131072));
- config.m_minimum_quantum = attotime::from_hz(600);
+ config.set_maximum_quantum(attotime::from_hz(600));
/* video hardware */
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
@@ -691,7 +691,7 @@ void meadows_state::bowl3d(machine_config &config)
m_audiocpu->set_addrmap(AS_PROGRAM, &meadows_state::audio_map);
m_audiocpu->set_periodic_int(FUNC(meadows_state::audio_interrupt), attotime::from_hz((double)5000000/131072));
- config.m_minimum_quantum = attotime::from_hz(600);
+ config.set_maximum_quantum(attotime::from_hz(600));
/* video hardware */
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
diff --git a/src/mame/drivers/megadriv.cpp b/src/mame/drivers/megadriv.cpp
index 723bd131193..d3da3941779 100644
--- a/src/mame/drivers/megadriv.cpp
+++ b/src/mame/drivers/megadriv.cpp
@@ -749,6 +749,8 @@ void md_cons_state::genesis_scd(machine_config &config)
m_segacd->set_hostcpu(m_maincpu);
m_segacd->set_screen("megadriv");
+ config.set_perfect_quantum("segacd:segacd_68k"); // perfect sync to the fastest cpu
+
CDROM(config, "cdrom").set_interface("scd_cdrom");
SOFTWARE_LIST(config, "cd_list").set_original("segacd");
@@ -768,6 +770,8 @@ void md_cons_state::md_scd(machine_config &config)
m_segacd->set_hostcpu(m_maincpu);
m_segacd->set_screen("megadriv");
+ config.set_perfect_quantum("segacd:segacd_68k"); // perfect sync to the fastest cpu
+
CDROM(config, "cdrom").set_interface("scd_cdrom");
SOFTWARE_LIST(config, "cd_list").set_original("megacd");
@@ -787,6 +791,8 @@ void md_cons_state::mdj_scd(machine_config &config)
m_segacd->set_hostcpu(m_maincpu);
m_segacd->set_screen("megadriv");
+ config.set_perfect_quantum("segacd:segacd_68k"); // perfect sync to the fastest cpu
+
CDROM(config, "cdrom").set_interface("scd_cdrom");
SOFTWARE_LIST(config, "cd_list").set_original("megacdj");
@@ -803,6 +809,8 @@ void md_cons_state::genesis_32x_scd(machine_config &config)
m_segacd->set_hostcpu(m_maincpu);
m_segacd->set_screen("megadriv");
+ config.set_perfect_quantum("segacd:segacd_68k"); // perfect sync to the fastest cpu
+
CDROM(config, "cdrom").set_interface("scd_cdrom");
MCFG_MACHINE_START_OVERRIDE(md_cons_state, ms_megacd)
@@ -823,6 +831,8 @@ void md_cons_state::md_32x_scd(machine_config &config)
m_segacd->set_hostcpu(m_maincpu);
m_segacd->set_screen("megadriv");
+ config.set_perfect_quantum("segacd:segacd_68k"); // perfect sync to the fastest cpu
+
CDROM(config, "cdrom").set_interface("scd_cdrom");
MCFG_MACHINE_START_OVERRIDE(md_cons_state, ms_megacd)
@@ -843,6 +853,8 @@ void md_cons_state::mdj_32x_scd(machine_config &config)
m_segacd->set_hostcpu(m_maincpu);
m_segacd->set_screen("megadriv");
+ config.set_perfect_quantum("segacd:segacd_68k"); // perfect sync to the fastest cpu
+
CDROM(config, "cdrom").set_interface("scd_cdrom");
MCFG_MACHINE_START_OVERRIDE(md_cons_state, ms_megacd)
diff --git a/src/mame/drivers/megaphx.cpp b/src/mame/drivers/megaphx.cpp
index f6b5f253cea..03a671239c1 100644
--- a/src/mame/drivers/megaphx.cpp
+++ b/src/mame/drivers/megaphx.cpp
@@ -395,7 +395,7 @@ void megaphx_state::megaphx(machine_config &config)
pic.read_b().set(FUNC(megaphx_state::pic_portb_r));
pic.write_b().set(FUNC(megaphx_state::pic_portb_w));
- config.m_perfect_cpu_quantum = subtag("maincpu");
+ config.set_perfect_quantum(m_maincpu);
TTL166(config, m_dsw_shifter[0]);
m_dsw_shifter[0]->data_callback().set_ioport("DSW1");
diff --git a/src/mame/drivers/megaplay.cpp b/src/mame/drivers/megaplay.cpp
index b1a136b3c40..8d7f3e71099 100644
--- a/src/mame/drivers/megaplay.cpp
+++ b/src/mame/drivers/megaplay.cpp
@@ -677,7 +677,7 @@ void mplay_state::megaplay(machine_config &config)
m_bioscpu->set_addrmap(AS_PROGRAM, &mplay_state::megaplay_bios_map);
m_bioscpu->set_addrmap(AS_IO, &mplay_state::megaplay_bios_io_map);
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
cxd1095_device &io1(CXD1095(config, "io1"));
io1.in_porta_cb().set_ioport("DSW0");
diff --git a/src/mame/drivers/megasys1.cpp b/src/mame/drivers/megasys1.cpp
index 0090c681377..130af99e70c 100644
--- a/src/mame/drivers/megasys1.cpp
+++ b/src/mame/drivers/megasys1.cpp
@@ -1705,7 +1705,7 @@ void megasys1_state::system_A(machine_config &config)
M68000(config, m_audiocpu, SOUND_CPU_CLOCK); /* 7MHz verified */
m_audiocpu->set_addrmap(AS_PROGRAM, &megasys1_state::megasys1A_sound_map);
- config.m_minimum_quantum = attotime::from_hz(120000);
+ config.set_maximum_quantum(attotime::from_hz(120000));
MCFG_MACHINE_RESET_OVERRIDE(megasys1_state,megasys1)
diff --git a/src/mame/drivers/megazone.cpp b/src/mame/drivers/megazone.cpp
index 52548698b5e..70c3e70d790 100644
--- a/src/mame/drivers/megazone.cpp
+++ b/src/mame/drivers/megazone.cpp
@@ -309,7 +309,7 @@ void megazone_state::megazone(machine_config &config)
m_daccpu->p1_out_cb().set("dac", FUNC(dac_byte_interface::data_w));
m_daccpu->p2_out_cb().set(FUNC(megazone_state::i8039_irqen_and_status_w));
- config.m_minimum_quantum = attotime::from_hz(900);
+ config.set_maximum_quantum(attotime::from_hz(900));
ls259_device &mainlatch(LS259(config, "mainlatch")); // 13A
mainlatch.q_out_cb<0>().set(FUNC(megazone_state::coin_counter_2_w));
diff --git a/src/mame/drivers/mephisto_polgar.cpp b/src/mame/drivers/mephisto_polgar.cpp
index 363a46e2e4e..838314807c5 100644
--- a/src/mame/drivers/mephisto_polgar.cpp
+++ b/src/mame/drivers/mephisto_polgar.cpp
@@ -331,7 +331,7 @@ void mephisto_risc_state::mrisc(machine_config &config)
maincpu.set_periodic_int(FUNC(mephisto_risc_state::irq0_line_hold), attotime::from_hz(XTAL(10'000'000) / (1 << 14)));
CHESSMACHINE(config, m_chessm, 14'000'000); // Tasc ChessMachine EC PCB, Mephisto manual says 14MHz (no XTAL)
- config.m_perfect_cpu_quantum = subtag("maincpu");
+ config.set_perfect_quantum("maincpu");
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
diff --git a/src/mame/drivers/mexico86.cpp b/src/mame/drivers/mexico86.cpp
index 85e1b05bd55..60890eebd34 100644
--- a/src/mame/drivers/mexico86.cpp
+++ b/src/mame/drivers/mexico86.cpp
@@ -445,7 +445,7 @@ void mexico86_state::mexico86(machine_config &config)
m_subcpu->set_vblank_int("screen", FUNC(mexico86_state::irq0_line_hold));
/* 100 CPU slices per frame - high value to ensure proper synchronization of the CPUs */
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
/* video hardware */
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
diff --git a/src/mame/drivers/micro3d.cpp b/src/mame/drivers/micro3d.cpp
index ed60e443656..9ffdcd847d7 100644
--- a/src/mame/drivers/micro3d.cpp
+++ b/src/mame/drivers/micro3d.cpp
@@ -354,7 +354,7 @@ void micro3d_state::micro3d(machine_config &config)
mfp.out_tco_cb().set("mfp", FUNC(mc68901_device::tbi_w));
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
- config.m_minimum_quantum = attotime::from_hz(3000);
+ config.set_maximum_quantum(attotime::from_hz(3000));
PALETTE(config, m_palette).set_format(palette_device::BRGx_555, 4096);
diff --git a/src/mame/drivers/microvsn.cpp b/src/mame/drivers/microvsn.cpp
index 9f07c04fef1..eb72798d1ab 100644
--- a/src/mame/drivers/microvsn.cpp
+++ b/src/mame/drivers/microvsn.cpp
@@ -648,7 +648,7 @@ void microvision_state::microvision(machine_config &config)
m_tms1100->o().set(FUNC(microvision_state::tms1100_write_o));
m_tms1100->r().set(FUNC(microvision_state::tms1100_write_r));
- config.m_minimum_quantum = attotime::from_hz(60);
+ config.set_maximum_quantum(attotime::from_hz(60));
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD));
screen.set_refresh_hz(60);
diff --git a/src/mame/drivers/mikromik.cpp b/src/mame/drivers/mikromik.cpp
index 043c2c50188..2de5455e601 100644
--- a/src/mame/drivers/mikromik.cpp
+++ b/src/mame/drivers/mikromik.cpp
@@ -435,7 +435,7 @@ void mm1_state::mm1(machine_config &config)
m_maincpu->in_sid_func().set(FUNC(mm1_state::dsra_r));
m_maincpu->out_sod_func().set(KB_TAG, FUNC(mm1_keyboard_device::bell_w));
- config.m_perfect_cpu_quantum = subtag(I8085A_TAG);
+ config.set_perfect_quantum(m_maincpu);
// peripheral hardware
ADDRESS_MAP_BANK(config, m_io);
diff --git a/src/mame/drivers/mindset.cpp b/src/mame/drivers/mindset.cpp
index e886f5003f5..cffba194b09 100644
--- a/src/mame/drivers/mindset.cpp
+++ b/src/mame/drivers/mindset.cpp
@@ -1312,7 +1312,7 @@ static void mindset_modules(device_slot_interface &device)
void mindset_state::mindset(machine_config &config)
{
- config.m_perfect_cpu_quantum = ":syscpu";
+ config.set_perfect_quantum(m_syscpu);
config.set_default_layout(layout_mindset);
I80186(config, m_maincpu, 12_MHz_XTAL); // Divides internally by 2 to produce a clkout of 6MHz
diff --git a/src/mame/drivers/missb2.cpp b/src/mame/drivers/missb2.cpp
index 4cbc681c8db..94fb1414a08 100644
--- a/src/mame/drivers/missb2.cpp
+++ b/src/mame/drivers/missb2.cpp
@@ -481,7 +481,7 @@ void missb2_state::missb2(machine_config &config)
m_audiocpu->set_addrmap(AS_PROGRAM, &missb2_state::sound_map);
m_audiocpu->set_vblank_int("screen", FUNC(missb2_state::irq0_line_hold));
- config.m_minimum_quantum = attotime::from_hz(6000); // 100 CPU slices per frame - a high value to ensure proper synchronization of the CPUs
+ config.set_maximum_quantum(attotime::from_hz(6000)); // 100 CPU slices per frame - a high value to ensure proper synchronization of the CPUs
WATCHDOG_TIMER(config, "watchdog").set_vblank_count("screen", 128);
diff --git a/src/mame/drivers/mlanding.cpp b/src/mame/drivers/mlanding.cpp
index b4d53d3f304..4023fda0f15 100644
--- a/src/mame/drivers/mlanding.cpp
+++ b/src/mame/drivers/mlanding.cpp
@@ -971,7 +971,7 @@ void mlanding_state::mlanding(machine_config &config)
ciu.set_master_tag(m_maincpu);
ciu.set_slave_tag(m_audiocpu);
- config.m_minimum_quantum = attotime::from_hz(600);
+ config.set_maximum_quantum(attotime::from_hz(600));
TAITOIO_YOKE(config, m_yoke, 0);
diff --git a/src/mame/drivers/model2.cpp b/src/mame/drivers/model2.cpp
index 5cc7e44f6f3..cac1948c3d2 100644
--- a/src/mame/drivers/model2.cpp
+++ b/src/mame/drivers/model2.cpp
@@ -2809,7 +2809,7 @@ void model2b_state::model2b(machine_config &config)
//m_dsp2->set_boot_mode(adsp21062_device::BOOT_MODE_HOST);
//m_dsp2->set_addrmap(AS_DATA, &model2b_state::geo_sharc_map);
- config.m_minimum_quantum = attotime::from_hz(18000);
+ config.set_maximum_quantum(attotime::from_hz(18000));
GENERIC_FIFO_U32(config, m_copro_fifo_in, 0);
GENERIC_FIFO_U32(config, m_copro_fifo_out, 0);
diff --git a/src/mame/drivers/model3.cpp b/src/mame/drivers/model3.cpp
index 5c3becdccf5..1d814bde944 100644
--- a/src/mame/drivers/model3.cpp
+++ b/src/mame/drivers/model3.cpp
@@ -5987,7 +5987,7 @@ void model3_state::model3_10(machine_config &config)
add_base_devices(config);
add_scsi_devices(config);
- config.m_minimum_quantum = attotime::from_hz(600);
+ config.set_maximum_quantum(attotime::from_hz(600));
MCFG_MACHINE_START_OVERRIDE(model3_state,model3_10)
MCFG_MACHINE_RESET_OVERRIDE(model3_state,model3_10)
diff --git a/src/mame/drivers/mpu4vid.cpp b/src/mame/drivers/mpu4vid.cpp
index 3e22aa97128..d29e1fb6681 100644
--- a/src/mame/drivers/mpu4vid.cpp
+++ b/src/mame/drivers/mpu4vid.cpp
@@ -1300,7 +1300,7 @@ void mpu4vid_state::mpu4_vid(machine_config &config)
m_videocpu->set_addrmap(AS_PROGRAM, &mpu4vid_state::mpu4_68k_map);
m_videocpu->set_reset_callback(FUNC(mpu4vid_state::mpu_video_reset));
-// config.m_minimum_quantum = attotime::from_hz(960);
+// config.set_maximum_quantum(attotime::from_hz(960));
PALETTE(config, m_palette).set_entries(ef9369_device::NUMCOLORS);
diff --git a/src/mame/drivers/mrflea.cpp b/src/mame/drivers/mrflea.cpp
index c9020ed39ec..7253545d3c0 100644
--- a/src/mame/drivers/mrflea.cpp
+++ b/src/mame/drivers/mrflea.cpp
@@ -268,7 +268,7 @@ void mrflea_state::mrflea(machine_config &config)
m_subcpu->set_addrmap(AS_IO, &mrflea_state::mrflea_slave_io_map);
TIMER(config, "scantimer").configure_scanline(FUNC(mrflea_state::mrflea_slave_interrupt), "screen", 0, 1);
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
i8255_device &mainppi(I8255(config, "mainppi", 0));
mainppi.in_pb_callback().set("subppi", FUNC(i8255_device::pb_r));
diff --git a/src/mame/drivers/ms32.cpp b/src/mame/drivers/ms32.cpp
index ff2ea701a26..2a443b7d5d9 100644
--- a/src/mame/drivers/ms32.cpp
+++ b/src/mame/drivers/ms32.cpp
@@ -1746,7 +1746,7 @@ void ms32_state::ms32(machine_config &config)
Z80(config, m_audiocpu, 8000000); // Z0840008PSC, Clock from notes
m_audiocpu->set_addrmap(AS_PROGRAM, &ms32_state::ms32_sound_map);
- config.m_minimum_quantum = attotime::from_hz(60000);
+ config.set_maximum_quantum(attotime::from_hz(60000));
/* video hardware */
diff --git a/src/mame/drivers/msx.cpp b/src/mame/drivers/msx.cpp
index 9e5aac585d4..e8ec92473e8 100644
--- a/src/mame/drivers/msx.cpp
+++ b/src/mame/drivers/msx.cpp
@@ -1357,7 +1357,7 @@ void msx_state::msx(machine_config &config)
m_maincpu->set_addrmap(AS_PROGRAM, &msx_state::msx_memory_map);
m_maincpu->set_addrmap(AS_IO, &msx_state::msx_io_map);
m_maincpu->set_vblank_int("screen", FUNC(msx_state::msx_interrupt)); /* Needed for mouse updates */
- config.m_minimum_quantum = attotime::from_hz(60);
+ config.set_maximum_quantum(attotime::from_hz(60));
INPUT_MERGER_ANY_HIGH(config, "mainirq").output_handler().set_inputline("maincpu", INPUT_LINE_IRQ0);
@@ -1422,7 +1422,7 @@ void msx2_state::msx2(machine_config &config)
Z80(config, m_maincpu, 21.477272_MHz_XTAL / 6); /* 3.579545 MHz */
m_maincpu->set_addrmap(AS_PROGRAM, &msx2_state::msx_memory_map);
m_maincpu->set_addrmap(AS_IO, &msx2_state::msx2_io_map);
- config.m_minimum_quantum = attotime::from_hz(60);
+ config.set_maximum_quantum(attotime::from_hz(60));
INPUT_MERGER_ANY_HIGH(config, "mainirq").output_handler().set_inputline("maincpu", INPUT_LINE_IRQ0);
@@ -1485,7 +1485,7 @@ void msx2_state::msx2p(machine_config &config)
Z80(config, m_maincpu, 21.477272_MHz_XTAL / 6); /* 3.579545 MHz */
m_maincpu->set_addrmap(AS_PROGRAM, &msx2_state::msx_memory_map);
m_maincpu->set_addrmap(AS_IO, &msx2_state::msx2p_io_map);
- config.m_minimum_quantum = attotime::from_hz(60);
+ config.set_maximum_quantum(attotime::from_hz(60));
INPUT_MERGER_ANY_HIGH(config, "mainirq").output_handler().set_inputline("maincpu", INPUT_LINE_IRQ0);
diff --git a/src/mame/drivers/mystwarr.cpp b/src/mame/drivers/mystwarr.cpp
index e06b365278c..5bed1b52102 100644
--- a/src/mame/drivers/mystwarr.cpp
+++ b/src/mame/drivers/mystwarr.cpp
@@ -932,7 +932,7 @@ void mystwarr_state::mystwarr(machine_config &config)
Z80(config, m_soundcpu, 8000000);
m_soundcpu->set_addrmap(AS_PROGRAM, &mystwarr_state::mystwarr_sound_map);
- config.m_minimum_quantum = attotime::from_hz(1920);
+ config.set_maximum_quantum(attotime::from_hz(1920));
EEPROM_ER5911_8BIT(config, "eeprom");
diff --git a/src/mame/drivers/mz3500.cpp b/src/mame/drivers/mz3500.cpp
index 53de3d3810d..cbc069208b3 100644
--- a/src/mame/drivers/mz3500.cpp
+++ b/src/mame/drivers/mz3500.cpp
@@ -820,7 +820,7 @@ void mz3500_state::mz3500(machine_config &config)
m_slave->set_addrmap(AS_PROGRAM, &mz3500_state::mz3500_slave_map);
m_slave->set_addrmap(AS_IO, &mz3500_state::mz3500_slave_io);
- config.m_perfect_cpu_quantum = subtag("master");
+ config.set_perfect_quantum(m_master);
i8255_device &ppi(I8255A(config, "i8255"));
ppi.out_pa_callback().set(FUNC(mz3500_state::mz3500_pa_w));
diff --git a/src/mame/drivers/n64.cpp b/src/mame/drivers/n64.cpp
index 27c787f774b..9735619262c 100644
--- a/src/mame/drivers/n64.cpp
+++ b/src/mame/drivers/n64.cpp
@@ -447,7 +447,7 @@ void n64_mess_state::n64(machine_config &config)
m_rsp->status_set().set(m_rcp_periphs, FUNC(n64_periphs::sp_set_status));
m_rsp->set_addrmap(AS_PROGRAM, &n64_mess_state::rsp_map);
- config.m_minimum_quantum = attotime::from_hz(500000);
+ config.set_maximum_quantum(attotime::from_hz(500000));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
diff --git a/src/mame/drivers/namcond1.cpp b/src/mame/drivers/namcond1.cpp
index f86996ee325..4feaa584b22 100644
--- a/src/mame/drivers/namcond1.cpp
+++ b/src/mame/drivers/namcond1.cpp
@@ -379,7 +379,7 @@ void namcond1_state::namcond1(machine_config &config)
m_mcu->set_addrmap(AS_IO, &namcond1_state::nd1h8iomap);
m_mcu->set_vblank_int("screen", FUNC(namcond1_state::mcu_interrupt));
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
YGV608(config, m_ygv608, 0);
m_ygv608->vblank_callback().set(FUNC(namcond1_state::vblank_irq_w));
diff --git a/src/mame/drivers/namcos1.cpp b/src/mame/drivers/namcos1.cpp
index 1287ffb2ad5..f6544716c89 100644
--- a/src/mame/drivers/namcos1.cpp
+++ b/src/mame/drivers/namcos1.cpp
@@ -1027,7 +1027,7 @@ void namcos1_state::ns1(machine_config &config)
m_c117->subres_cb().set(FUNC(namcos1_state::subres_w));
// heavy sync required to prevent CPUs from fighting for video RAM access and going into deadlocks
- config.m_minimum_quantum = attotime::from_hz(38400);
+ config.set_maximum_quantum(attotime::from_hz(38400));
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
diff --git a/src/mame/drivers/namcos12.cpp b/src/mame/drivers/namcos12.cpp
index 264a663547d..e0ce39f1a64 100644
--- a/src/mame/drivers/namcos12.cpp
+++ b/src/mame/drivers/namcos12.cpp
@@ -1836,7 +1836,7 @@ void namcos12_boothack_state::truckk(machine_config &config)
subdevice<h8_sci_device>("iocpu:sci0")->tx_handler().set("sub:sci0", FUNC(h8_sci_device::rx_w));
subdevice<h8_sci_device>("sub:sci0")->tx_handler().set("iocpu:sci0", FUNC(h8_sci_device::rx_w));
- config.m_minimum_quantum = attotime::from_hz(2*115200);
+ config.set_maximum_quantum(attotime::from_hz(2*115200));
}
READ16_MEMBER(namcos12_state::iob_p4_r)
@@ -1912,7 +1912,7 @@ void namcos12_boothack_state::technodr(machine_config &config)
subdevice<h8_sci_device>("iocpu:sci0")->tx_handler().set("sub:sci0", FUNC(h8_sci_device::rx_w));
subdevice<h8_sci_device>("sub:sci0")->tx_handler().set("iocpu:sci0", FUNC(h8_sci_device::rx_w));
- config.m_minimum_quantum = attotime::from_hz(2*115200);
+ config.set_maximum_quantum(attotime::from_hz(2*115200));
}
void namcos12_boothack_state::aplarail(machine_config &config)
@@ -1932,7 +1932,7 @@ void namcos12_boothack_state::aplarail(machine_config &config)
subdevice<h8_sci_device>("iocpu:sci0")->tx_handler().set("sub:sci0", FUNC(h8_sci_device::rx_w));
subdevice<h8_sci_device>("sub:sci0")->tx_handler().set("iocpu:sci0", FUNC(h8_sci_device::rx_w));
- config.m_minimum_quantum = attotime::from_hz(2*115200);
+ config.set_maximum_quantum(attotime::from_hz(2*115200));
}
static INPUT_PORTS_START( namcos12 )
diff --git a/src/mame/drivers/namcos2.cpp b/src/mame/drivers/namcos2.cpp
index adf6dc37661..e102559892e 100644
--- a/src/mame/drivers/namcos2.cpp
+++ b/src/mame/drivers/namcos2.cpp
@@ -1757,7 +1757,7 @@ void namcos2_state::base_noio(machine_config &config)
m_audiocpu->set_addrmap(AS_PROGRAM, &namcos2_state::sound_default_am);
m_audiocpu->set_periodic_int(FUNC(namcos2_state::irq0_line_hold), attotime::from_hz(2*60));
- config.m_minimum_quantum = attotime::from_hz(12000); /* CPU slices per frame */
+ config.set_maximum_quantum(attotime::from_hz(12000)); /* CPU slices per frame */
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_1);
@@ -1822,7 +1822,7 @@ void namcos2_state::assaultp(machine_config &config)
{
base2(config);
- config.m_minimum_quantum = attotime::from_hz(12000*8); /* CPU slices per frame - boosted (along with MCU speed) so that the Mode Select works */
+ config.set_maximum_quantum(attotime::from_hz(12000*8)); /* CPU slices per frame - boosted (along with MCU speed) so that the Mode Select works */
}
void namcos2_state::base3(machine_config &config)
@@ -1851,7 +1851,7 @@ void namcos2_state::gollygho(machine_config &config)
configure_c65_standard(config);
- config.m_minimum_quantum = attotime::from_hz(6000); /* CPU slices per frame */
+ config.set_maximum_quantum(attotime::from_hz(6000)); /* CPU slices per frame */
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_1);
@@ -1904,7 +1904,7 @@ void namcos2_state::finallap_noio(machine_config &config)
m_audiocpu->set_addrmap(AS_PROGRAM, &namcos2_state::sound_default_am);
m_audiocpu->set_periodic_int(FUNC(namcos2_state::irq0_line_hold), attotime::from_hz(2*60));
- config.m_minimum_quantum = attotime::from_hz(6000); /* CPU slices per frame */
+ config.set_maximum_quantum(attotime::from_hz(6000)); /* CPU slices per frame */
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_1);
@@ -1985,7 +1985,7 @@ void namcos2_state::sgunner(machine_config &config)
configure_c65_standard(config);
- config.m_minimum_quantum = attotime::from_hz(6000); /* CPU slices per frame */
+ config.set_maximum_quantum(attotime::from_hz(6000)); /* CPU slices per frame */
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_1);
@@ -2038,7 +2038,7 @@ void namcos2_state::sgunner2(machine_config &config)
configure_c68_standard(config);
- config.m_minimum_quantum = attotime::from_hz(6000); /* CPU slices per frame */
+ config.set_maximum_quantum(attotime::from_hz(6000)); /* CPU slices per frame */
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_1);
@@ -2091,7 +2091,7 @@ void namcos2_state::suzuka8h(machine_config &config)
configure_c68_standard(config);
- config.m_minimum_quantum = attotime::from_hz(6000); /* CPU slices per frame */
+ config.set_maximum_quantum(attotime::from_hz(6000)); /* CPU slices per frame */
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_1);
@@ -2163,7 +2163,7 @@ void namcos2_state::metlhawk(machine_config &config)
configure_c65_standard(config);
- config.m_minimum_quantum = attotime::from_hz(6000); /* CPU slices per frame */
+ config.set_maximum_quantum(attotime::from_hz(6000)); /* CPU slices per frame */
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_1);
diff --git a/src/mame/drivers/namcos21.cpp b/src/mame/drivers/namcos21.cpp
index 9ab76cc6887..d1adcfca02a 100644
--- a/src/mame/drivers/namcos21.cpp
+++ b/src/mame/drivers/namcos21.cpp
@@ -878,7 +878,7 @@ void namcos21_state::winrun(machine_config &config)
NAMCO_C148(config, m_gpu_intc, 0, "gpu", false);
NAMCO_C139(config, m_sci, 0);
- config.m_minimum_quantum = attotime::from_hz(6000); /* 100 CPU slices per frame */
+ config.set_maximum_quantum(attotime::from_hz(6000)); /* 100 CPU slices per frame */
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_1);
diff --git a/src/mame/drivers/namcos21_c67.cpp b/src/mame/drivers/namcos21_c67.cpp
index b9d2fda5150..4b05303a602 100644
--- a/src/mame/drivers/namcos21_c67.cpp
+++ b/src/mame/drivers/namcos21_c67.cpp
@@ -796,7 +796,7 @@ void namcos21_c67_state::namcos21(machine_config &config)
NAMCOS21_DSP_C67(config, m_namcos21_dsp_c67, 0);
m_namcos21_dsp_c67->set_renderer_tag("namcos21_3d");
- config.m_minimum_quantum = attotime::from_hz(12000);
+ config.set_maximum_quantum(attotime::from_hz(12000));
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_1);
diff --git a/src/mame/drivers/namcos21_de.cpp b/src/mame/drivers/namcos21_de.cpp
index f75a54b2abf..cb0f209acb8 100644
--- a/src/mame/drivers/namcos21_de.cpp
+++ b/src/mame/drivers/namcos21_de.cpp
@@ -170,7 +170,7 @@ void namco_de_pcbstack_device::device_add_mconfig(machine_config &config)
NAMCOS21_DSP(config, m_namcos21_dsp, 0);
m_namcos21_dsp->set_renderer_tag("namcos21_3d");
- config.m_minimum_quantum = attotime::from_hz(6000); /* 100 CPU slices per frame */
+ config.set_maximum_quantum(attotime::from_hz(6000)); /* 100 CPU slices per frame */
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_1);
diff --git a/src/mame/drivers/namcos22.cpp b/src/mame/drivers/namcos22.cpp
index c354fc475f5..40a8e642693 100644
--- a/src/mame/drivers/namcos22.cpp
+++ b/src/mame/drivers/namcos22.cpp
@@ -3949,7 +3949,7 @@ void namcos22s_state::namcos22s(machine_config &config)
m_mcu->an2_cb().set(FUNC(namcos22s_state::mcu_adc_r<2>));
m_mcu->an3_cb().set(FUNC(namcos22s_state::mcu_adc_r<3>));
TIMER(config, "mcu_irq").configure_scanline(FUNC(namcos22s_state::mcu_irq), "screen", 0, 240);
- config.m_minimum_quantum = attotime::from_hz(9000); // erratic inputs otherwise, probably mcu vs maincpu shareram
+ config.set_maximum_quantum(attotime::from_hz(9000)); // erratic inputs otherwise, probably mcu vs maincpu shareram
config.device_remove("iomcu");
diff --git a/src/mame/drivers/namcos23.cpp b/src/mame/drivers/namcos23.cpp
index 1a3b81ded51..addc1f813fa 100644
--- a/src/mame/drivers/namcos23.cpp
+++ b/src/mame/drivers/namcos23.cpp
@@ -3618,7 +3618,7 @@ void namcos23_state::gorgon(machine_config &config)
m_iocpu->subdevice<h8_sci_device>("sci0")->tx_handler().set("subcpu:sci0", FUNC(h8_sci_device::rx_w));
m_subcpu->subdevice<h8_sci_device>("sci0")->tx_handler().set("iocpu:sci0", FUNC(h8_sci_device::rx_w));
- config.m_minimum_quantum = attotime::from_hz(2*115200);
+ config.set_maximum_quantum(attotime::from_hz(2*115200));
NAMCO_SETTINGS(config, m_settings, 0);
@@ -3683,7 +3683,7 @@ void namcos23_state::s23(machine_config &config)
m_iocpu->subdevice<h8_sci_device>("sci0")->tx_handler().set("subcpu:sci0", FUNC(h8_sci_device::rx_w));
m_subcpu->subdevice<h8_sci_device>("sci0")->tx_handler().set("iocpu:sci0", FUNC(h8_sci_device::rx_w));
- config.m_minimum_quantum = attotime::from_hz(2*115200);
+ config.set_maximum_quantum(attotime::from_hz(2*115200));
NAMCO_SETTINGS(config, m_settings, 0);
@@ -3762,7 +3762,7 @@ void namcos23_state::ss23(machine_config &config)
// Timer at 115200*16 for the jvs serial clock
m_subcpu->subdevice<h8_sci_device>("sci0")->set_external_clock_period(attotime::from_hz(JVSCLOCK/8));
- config.m_minimum_quantum = attotime::from_hz(2*115200);
+ config.set_maximum_quantum(attotime::from_hz(2*115200));
NAMCO_SETTINGS(config, m_settings, 0);
diff --git a/src/mame/drivers/namcos86.cpp b/src/mame/drivers/namcos86.cpp
index 130d85a7ecc..fc4cc690188 100644
--- a/src/mame/drivers/namcos86.cpp
+++ b/src/mame/drivers/namcos86.cpp
@@ -1065,7 +1065,7 @@ void namcos86_state::hopmappy(machine_config &config)
m_mcu->out_p2_cb().set(FUNC(namcos86_state::led_w));
m_mcu->set_vblank_int("screen", FUNC(namcos86_state::irq0_line_hold)); /* ??? */
- config.m_minimum_quantum = attotime::from_hz(48000); /* heavy interleaving needed to avoid hangs in rthunder */
+ config.set_maximum_quantum(attotime::from_hz(48000)); /* heavy interleaving needed to avoid hangs in rthunder */
WATCHDOG_TIMER(config, m_watchdog);
diff --git a/src/mame/drivers/nascom1.cpp b/src/mame/drivers/nascom1.cpp
index 26831fe30bd..d3eb65fd42b 100644
--- a/src/mame/drivers/nascom1.cpp
+++ b/src/mame/drivers/nascom1.cpp
@@ -132,7 +132,7 @@ public:
nascom2_state(const machine_config &mconfig, device_type type, const char *tag)
: nascom_state(mconfig, type, tag)
, m_clock(*this, "uart_clock")
- , m_nasbus(*this, NASBUS_TAG)
+ , m_nasbus(*this, "nasbus")
, m_socket1(*this, "socket1")
, m_socket2(*this, "socket2")
, m_lsw1(*this, "lsw1")
@@ -855,14 +855,14 @@ void nascom2_state::nascom2(machine_config &config)
m_socket2->set_device_load(FUNC(nascom2_state::socket2_load));
// nasbus expansion bus
- nasbus_device &nasbus(NASBUS(config, NASBUS_TAG));
- nasbus.ram_disable().set(FUNC(nascom2_state::ram_disable_w));
- nasbus.set_program_space(m_maincpu, AS_PROGRAM);
- nasbus.set_io_space(m_maincpu, AS_IO);
- NASBUS_SLOT(config, "nasbus1", nasbus_slot_cards, nullptr);
- NASBUS_SLOT(config, "nasbus2", nasbus_slot_cards, nullptr);
- NASBUS_SLOT(config, "nasbus3", nasbus_slot_cards, nullptr);
- NASBUS_SLOT(config, "nasbus4", nasbus_slot_cards, nullptr);
+ NASBUS(config, m_nasbus);
+ m_nasbus->ram_disable().set(FUNC(nascom2_state::ram_disable_w));
+ m_nasbus->set_program_space(m_maincpu, AS_PROGRAM);
+ m_nasbus->set_io_space(m_maincpu, AS_IO);
+ NASBUS_SLOT(config, "nasbus1", m_nasbus, nasbus_slot_cards, nullptr);
+ NASBUS_SLOT(config, "nasbus2", m_nasbus, nasbus_slot_cards, nullptr);
+ NASBUS_SLOT(config, "nasbus3", m_nasbus, nasbus_slot_cards, nullptr);
+ NASBUS_SLOT(config, "nasbus4", m_nasbus, nasbus_slot_cards, nullptr);
// software
SOFTWARE_LIST(config, "snap_list").set_original("nascom_snap").set_filter("NASCOM2");
@@ -882,7 +882,7 @@ void nascom2_state::nascom2c(machine_config &config)
m_ram->set_default_size("60K");
- subdevice<nasbus_device>(NASBUS_TAG)->ram_disable().set(FUNC(nascom2_state::ram_disable_cpm_w));
+ m_nasbus->ram_disable().set(FUNC(nascom2_state::ram_disable_cpm_w));
subdevice<nasbus_slot_device>("nasbus1")->set_default_option("floppy");
}
diff --git a/src/mame/drivers/nc.cpp b/src/mame/drivers/nc.cpp
index 1103ba80a3b..eea21d91613 100644
--- a/src/mame/drivers/nc.cpp
+++ b/src/mame/drivers/nc.cpp
@@ -1381,7 +1381,7 @@ void nc_state::nc_base(machine_config &config)
/* basic machine hardware */
Z80(config, m_maincpu, /*6000000*/ 4606000); /* Russell Marks says this is more accurate */
m_maincpu->set_addrmap(AS_PROGRAM, &nc_state::nc_map);
- config.m_minimum_quantum = attotime::from_hz(60);
+ config.set_maximum_quantum(attotime::from_hz(60));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD));
diff --git a/src/mame/drivers/ncd68k.cpp b/src/mame/drivers/ncd68k.cpp
index e1a4e99e3fb..7e4ef1b22cf 100644
--- a/src/mame/drivers/ncd68k.cpp
+++ b/src/mame/drivers/ncd68k.cpp
@@ -505,18 +505,18 @@ void ncd16_state::configure(machine_config &config)
common(config);
m_duart->outport_cb().set(
- [this](u8 data)
- {
- m_serial[0]->write_rts(BIT(data, 0));
- m_serial[1]->write_rts(BIT(data, 1));
- m_serial[0]->write_dtr(BIT(data, 2));
- m_serial[1]->write_dtr(BIT(data, 3));
- m_bert->set_qlc_mode(BIT(data, 5));
-
- // TODO: bit 4 - usually set
- // TODO: bit 6 - usually set
- // TODO: bit 7 - set/cleared continuously
- });
+ [this] (u8 data)
+ {
+ m_serial[0]->write_rts(BIT(data, 0));
+ m_serial[1]->write_rts(BIT(data, 1));
+ m_serial[0]->write_dtr(BIT(data, 2));
+ m_serial[1]->write_dtr(BIT(data, 3));
+ m_bert->set_qlc_mode(BIT(data, 5));
+
+ // TODO: bit 4 - usually set
+ // TODO: bit 6 - usually set
+ // TODO: bit 7 - set/cleared continuously
+ });
}
void ncd17c_state::configure(machine_config &config)
@@ -590,7 +590,7 @@ void ncd19_state::configure(machine_config &config)
void ncd68k_state::common(machine_config &config)
{
// HACK: this makes the ncd16 and ncd19 keyboard work
- config.m_perfect_cpu_quantum = subtag("mcu");
+ config.set_perfect_quantum(m_mcu);
// mcu ports
m_mcu->porta_w().set(FUNC(ncd68k_state::mcu_porta_w));
@@ -604,13 +604,13 @@ void ncd68k_state::common(machine_config &config)
PC_KBDC(config, m_kbd_con, 0);
m_kbd_con->out_clock_cb().set_inputline(m_mcu, M6805_IRQ_LINE).invert();
m_kbd_con->out_data_cb().set(
- [this](int state)
- {
- if (state)
- m_porta_in |= 0x01;
- else
- m_porta_in &= ~0x01;
- });
+ [this] (int state)
+ {
+ if (state)
+ m_porta_in |= 0x01;
+ else
+ m_porta_in &= ~0x01;
+ });
// keyboard port
pc_kbdc_slot_device &kbd(PC_KBDC_SLOT(config, "kbd", pc_at_keyboards, STR_KBD_MICROSOFT_NATURAL));
@@ -618,30 +618,30 @@ void ncd68k_state::common(machine_config &config)
// mouse and auxiliary ports
RS232_PORT(config, m_serial[0],
- [](device_slot_interface &device)
- {
- default_rs232_devices(device);
- device.option_add("mouse", LOGITECH_HLE_SERIAL_MOUSE);
- },
- "mouse");
+ [] (device_slot_interface &device)
+ {
+ default_rs232_devices(device);
+ device.option_add("mouse", LOGITECH_HLE_SERIAL_MOUSE);
+ },
+ "mouse");
RS232_PORT(config, m_serial[1], default_rs232_devices, nullptr);
// duart outputs
m_duart->a_tx_cb().set(m_serial[0], FUNC(rs232_port_device::write_txd));
m_duart->b_tx_cb().set(m_serial[1], FUNC(rs232_port_device::write_txd));
m_duart->outport_cb().set(
- [this](u8 data)
- {
- m_serial[0]->write_rts(BIT(data, 0));
- m_serial[1]->write_rts(BIT(data, 1));
- m_serial[0]->write_dtr(BIT(data, 2));
- m_serial[1]->write_dtr(BIT(data, 3));
-
- // TODO: bit 4 - usually set
- // TODO: bit 5 - usually clear
- // TODO: bit 6 - usually set
- // TODO: bit 7 - set/cleared continuously
- });
+ [this] (u8 data)
+ {
+ m_serial[0]->write_rts(BIT(data, 0));
+ m_serial[1]->write_rts(BIT(data, 1));
+ m_serial[0]->write_dtr(BIT(data, 2));
+ m_serial[1]->write_dtr(BIT(data, 3));
+
+ // TODO: bit 4 - usually set
+ // TODO: bit 5 - usually clear
+ // TODO: bit 6 - usually set
+ // TODO: bit 7 - set/cleared continuously
+ });
// duart inputs
// FIXME: rts/dsr external loopback test fails - dsr might not be correct?
diff --git a/src/mame/drivers/neogeo.cpp b/src/mame/drivers/neogeo.cpp
index 5f01170e228..0e522a1b3c4 100644
--- a/src/mame/drivers/neogeo.cpp
+++ b/src/mame/drivers/neogeo.cpp
@@ -893,22 +893,22 @@ WRITE8_MEMBER(neogeo_base_state::audio_cpu_enable_nmi_w)
READ16_MEMBER(ngarcade_base_state::in0_edge_r)
{
- return (m_edge->in0_r(space, offset) << 8) | m_dsw->read();
+ return (m_edge->in0_r() << 8) | m_dsw->read();
}
READ16_MEMBER(ngarcade_base_state::in0_edge_joy_r)
{
- return ((m_edge->in0_r(space, offset) & m_ctrl1->ctrl_r(space, offset)) << 8) | m_dsw->read();
+ return ((m_edge->in0_r() & m_ctrl1->read_ctrl()) << 8) | m_dsw->read();
}
READ16_MEMBER(ngarcade_base_state::in1_edge_r)
{
- return (m_edge->in1_r(space, offset) << 8) | 0xff;
+ return (m_edge->in1_r() << 8) | 0xff;
}
READ16_MEMBER(ngarcade_base_state::in1_edge_joy_r)
{
- return ((m_edge->in1_r(space, offset) & m_ctrl2->ctrl_r(space, offset)) << 8) | 0xff;
+ return ((m_edge->in1_r() & m_ctrl2->read_ctrl()) << 8) | 0xff;
}
CUSTOM_INPUT_MEMBER(ngarcade_base_state::startsel_edge_joy_r)
@@ -1737,9 +1737,9 @@ void aes_base_state::aes_base_main_map(address_map &map)
{
base_main_map(map);
- map(0x300000, 0x300000).mirror(0x01fffe).r(m_ctrl1, FUNC(neogeo_control_port_device::ctrl_r));
+ map(0x300000, 0x300000).mirror(0x01fffe).r(m_ctrl1, FUNC(neogeo_control_port_device::read_ctrl));
map(0x320000, 0x320001).mirror(0x01fffe).portr("AUDIO");
- map(0x340000, 0x340000).mirror(0x01fffe).r(m_ctrl2, FUNC(neogeo_control_port_device::ctrl_r));
+ map(0x340000, 0x340000).mirror(0x01fffe).r(m_ctrl2, FUNC(neogeo_control_port_device::read_ctrl));
map(0x380000, 0x380001).mirror(0x01fffe).r(FUNC(aes_base_state::aes_in2_r));
}
@@ -2004,8 +2004,8 @@ void mvs_led_state::mv1(machine_config &config)
NEOGEO_CTRL_EDGE_CONNECTOR(config, m_edge, neogeo_arc_edge, "joy", false);
- NEOGEO_CONTROL_PORT(config, m_ctrl1, neogeo_arc_pin15, "", false);
- NEOGEO_CONTROL_PORT(config, m_ctrl2, neogeo_arc_pin15, "", false);
+ NEOGEO_CONTROL_PORT(config, m_ctrl1, neogeo_arc_pin15, nullptr, false);
+ NEOGEO_CONTROL_PORT(config, m_ctrl2, neogeo_arc_pin15, nullptr, false);
cartslot_config(config, 1);
@@ -2019,8 +2019,8 @@ void mvs_led_state::mv1f(machine_config &config)
NEOGEO_CTRL_EDGE_CONNECTOR(config, m_edge, neogeo_arc_edge, "joy", false);
- NEOGEO_CONTROL_PORT(config, m_ctrl1, neogeo_arc_pin15, "", false);
- NEOGEO_CONTROL_PORT(config, m_ctrl2, neogeo_arc_pin15, "", false);
+ NEOGEO_CONTROL_PORT(config, m_ctrl1, neogeo_arc_pin15, nullptr, false);
+ NEOGEO_CONTROL_PORT(config, m_ctrl2, neogeo_arc_pin15, nullptr, false);
cartslot_config(config, 1);
@@ -2048,8 +2048,8 @@ void mvs_led_el_state::mv2f(machine_config &config)
NEOGEO_CTRL_EDGE_CONNECTOR(config, m_edge, neogeo_arc_edge, "joy", false);
- NEOGEO_CONTROL_PORT(config, m_ctrl1, neogeo_arc_pin15, "", false);
- NEOGEO_CONTROL_PORT(config, m_ctrl2, neogeo_arc_pin15, "", false);
+ NEOGEO_CONTROL_PORT(config, m_ctrl1, neogeo_arc_pin15, nullptr, false);
+ NEOGEO_CONTROL_PORT(config, m_ctrl2, neogeo_arc_pin15, nullptr, false);
cartslot_config(config, 2);
@@ -2065,8 +2065,8 @@ void mvs_led_el_state::mv4f(machine_config &config)
NEOGEO_CTRL_EDGE_CONNECTOR(config, m_edge, neogeo_arc_edge, "joy", false);
- NEOGEO_CONTROL_PORT(config, m_ctrl1, neogeo_arc_pin15, "", false);
- NEOGEO_CONTROL_PORT(config, m_ctrl2, neogeo_arc_pin15, "", false);
+ NEOGEO_CONTROL_PORT(config, m_ctrl1, neogeo_arc_pin15, nullptr, false);
+ NEOGEO_CONTROL_PORT(config, m_ctrl2, neogeo_arc_pin15, nullptr, false);
cartslot_config(config, 4);
@@ -2082,8 +2082,8 @@ void mvs_led_el_state::mv6f(machine_config &config)
NEOGEO_CTRL_EDGE_CONNECTOR(config, m_edge, neogeo_arc_edge, "joy", false);
- NEOGEO_CONTROL_PORT(config, m_ctrl1, neogeo_arc_pin15, "", false);
- NEOGEO_CONTROL_PORT(config, m_ctrl2, neogeo_arc_pin15, "", false);
+ NEOGEO_CONTROL_PORT(config, m_ctrl1, neogeo_arc_pin15, nullptr, false);
+ NEOGEO_CONTROL_PORT(config, m_ctrl2, neogeo_arc_pin15, nullptr, false);
cartslot_config(config, 6);
@@ -2099,8 +2099,8 @@ void mvs_led_state::mv1_fixed(machine_config &config)
NEOGEO_CTRL_EDGE_CONNECTOR(config, m_edge, neogeo_arc_edge, "joy", true);
- NEOGEO_CONTROL_PORT(config, m_ctrl1, neogeo_arc_pin15, "", true);
- NEOGEO_CONTROL_PORT(config, m_ctrl2, neogeo_arc_pin15, "", true);
+ NEOGEO_CONTROL_PORT(config, m_ctrl1, neogeo_arc_pin15, nullptr, true);
+ NEOGEO_CONTROL_PORT(config, m_ctrl2, neogeo_arc_pin15, nullptr, true);
}
@@ -2736,7 +2736,7 @@ void mvs_led_state::neogeo_mj(machine_config &config)
set_default_bios_tag("japan");
// no joystick panel
- m_edge->set_default_option("");
+ m_edge->set_default_option(nullptr);
m_edge->set_fixed(false);
// P1 mahjong controller
@@ -2778,9 +2778,10 @@ void mvs_led_state::pnyaa(machine_config &config)
void mvs_led_state::popbounc(machine_config &config)
{
- mv1_fixed(config);
+ neogeo_arcade(config);
+ neogeo_mono(config);
- NEOGEO_CTRL_EDGE_CONNECTOR(config.replace(), m_edge, neogeo_arc_edge_fixed, "dial", true);
+ NEOGEO_CTRL_EDGE_CONNECTOR(config, m_edge, neogeo_arc_edge_fixed, "dial", true);
cartslot_fixed(config, "rom");
}
diff --git a/src/mame/drivers/nightgal.cpp b/src/mame/drivers/nightgal.cpp
index 801e60a48b1..8a941df5353 100644
--- a/src/mame/drivers/nightgal.cpp
+++ b/src/mame/drivers/nightgal.cpp
@@ -799,7 +799,7 @@ void nightgal_state::royalqn(machine_config &config)
NSC8105(config, m_subcpu, MASTER_CLOCK / 8);
m_subcpu->set_addrmap(AS_PROGRAM, &nightgal_state::royalqn_nsc_map);
- config.m_perfect_cpu_quantum = subtag("maincpu");
+ config.set_perfect_quantum(m_maincpu);
JANGOU_BLITTER(config, m_blitter, MASTER_CLOCK/4);
diff --git a/src/mame/drivers/ninjaw.cpp b/src/mame/drivers/ninjaw.cpp
index ae243f6cd0f..6045f8daf5e 100644
--- a/src/mame/drivers/ninjaw.cpp
+++ b/src/mame/drivers/ninjaw.cpp
@@ -714,7 +714,7 @@ void ninjaw_state::ninjaw(machine_config &config)
// TODO: if CPUs are unsynched then seldomly stages loads up with no enemies
// Let's use a better timer (was 6000 before) based off actual CPU timing.
// Might as well bump the divider in case the bug still occurs before resorting to perfect CPU.
- config.m_minimum_quantum = attotime::from_hz(16000000/1024); /* CPU slices */
+ config.set_maximum_quantum(attotime::from_hz(16000000/1024)); /* CPU slices */
//config.m_perfect_cpu_quantum = subtag("maincpu");
tc0040ioc_device &tc0040ioc(TC0040IOC(config, "tc0040ioc", 0));
@@ -820,7 +820,7 @@ void ninjaw_state::darius2(machine_config &config)
m_subcpu->set_addrmap(AS_PROGRAM, &ninjaw_state::darius2_slave_map);
m_subcpu->set_vblank_int("lscreen", FUNC(ninjaw_state::irq4_line_hold));
- config.m_minimum_quantum = attotime::from_hz(16000000/1024); /* CPU slices */
+ config.set_maximum_quantum(attotime::from_hz(16000000/1024)); /* CPU slices */
//config.m_perfect_cpu_quantum = subtag("maincpu");
tc0040ioc_device &tc0040ioc(TC0040IOC(config, "tc0040ioc", 0));
diff --git a/src/mame/drivers/nova2001.cpp b/src/mame/drivers/nova2001.cpp
index d8ebe5cb5d2..1606ab79d3e 100644
--- a/src/mame/drivers/nova2001.cpp
+++ b/src/mame/drivers/nova2001.cpp
@@ -688,7 +688,7 @@ void nova2001_state::ninjakun(machine_config &config)
subcpu.set_addrmap(AS_PROGRAM, &nova2001_state::ninjakun_cpu2_map);
subcpu.set_periodic_int(FUNC(nova2001_state::irq0_line_hold), attotime::from_hz(4*60)); /* ? */
- config.m_minimum_quantum = attotime::from_hz(6000); /* 100 CPU slices per frame */
+ config.set_maximum_quantum(attotime::from_hz(6000)); /* 100 CPU slices per frame */
MCFG_MACHINE_START_OVERRIDE(nova2001_state,ninjakun)
@@ -766,7 +766,7 @@ void nova2001_state::raiders5(machine_config &config)
subcpu.set_addrmap(AS_PROGRAM, &nova2001_state::raiders5_cpu2_map);
subcpu.set_periodic_int(FUNC(nova2001_state::irq0_line_hold), attotime::from_hz(4*60)); /* ? */
- config.m_minimum_quantum = attotime::from_hz(24000);
+ config.set_maximum_quantum(attotime::from_hz(24000));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
diff --git a/src/mame/drivers/novag_savant.cpp b/src/mame/drivers/novag_savant.cpp
index 0d0eb6697f1..b701cfd832d 100644
--- a/src/mame/drivers/novag_savant.cpp
+++ b/src/mame/drivers/novag_savant.cpp
@@ -373,7 +373,7 @@ void savant_state::savant(machine_config &config)
m_psu->write_a().set(FUNC(savant_state::lcd_w));
m_psu->read_b().set(FUNC(savant_state::input_r));
- config.m_perfect_cpu_quantum = subtag("mcu");
+ config.set_perfect_quantum(m_mcu);
SENSORBOARD(config, m_board).set_type(sensorboard_device::BUTTONS);
m_board->set_ui_enable(false); // no chesspieces
diff --git a/src/mame/drivers/nss.cpp b/src/mame/drivers/nss.cpp
index a0d1f495d85..0b7ba823977 100644
--- a/src/mame/drivers/nss.cpp
+++ b/src/mame/drivers/nss.cpp
@@ -842,7 +842,7 @@ void nss_state::nss(machine_config &config)
SPC700(config, m_soundcpu, XTAL(24'576'000) / 12);
m_soundcpu->set_addrmap(AS_PROGRAM, &nss_state::spc_mem);
- config.m_perfect_cpu_quantum = subtag("maincpu");
+ config.set_perfect_quantum(m_maincpu);
/* nss hardware */
Z80(config, m_bioscpu, 4000000);
diff --git a/src/mame/drivers/nwk-tr.cpp b/src/mame/drivers/nwk-tr.cpp
index 65b86d0310c..0c882968841 100644
--- a/src/mame/drivers/nwk-tr.cpp
+++ b/src/mame/drivers/nwk-tr.cpp
@@ -865,7 +865,7 @@ void nwktr_state::nwktr(machine_config &config)
m_dsp2->set_boot_mode(adsp21062_device::BOOT_MODE_EPROM);
m_dsp2->set_addrmap(AS_DATA, &nwktr_state::sharc1_map);
- config.m_minimum_quantum = attotime::from_hz(9000);
+ config.set_maximum_quantum(attotime::from_hz(9000));
M48T58(config, "m48t58", 0);
diff --git a/src/mame/drivers/nycaptor.cpp b/src/mame/drivers/nycaptor.cpp
index 7a55bf8bd4d..f9d5cd23170 100644
--- a/src/mame/drivers/nycaptor.cpp
+++ b/src/mame/drivers/nycaptor.cpp
@@ -749,7 +749,7 @@ void nycaptor_state::nycaptor(machine_config &config)
TAITO68705_MCU(config, m_bmcu, 2000000);
- config.m_minimum_quantum = attotime::from_hz(6000); /* 100 CPU slices per frame - a high value to ensure proper synchronization of the CPUs */
+ config.set_maximum_quantum(attotime::from_hz(6000)); /* 100 CPU slices per frame - a high value to ensure proper synchronization of the CPUs */
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
@@ -821,7 +821,7 @@ void nycaptor_state::cyclshtg(machine_config &config)
TAITO68705_MCU(config, m_bmcu, 2000000);
#endif
- config.m_minimum_quantum = attotime::from_hz(60);
+ config.set_maximum_quantum(attotime::from_hz(60));
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
screen.set_refresh_hz(60);
@@ -888,7 +888,7 @@ void nycaptor_state::bronx(machine_config &config)
m_audiocpu->set_addrmap(AS_PROGRAM, &nycaptor_state::sound_map);
m_audiocpu->set_periodic_int(FUNC(nycaptor_state::irq0_line_hold), attotime::from_hz(2*60));
- config.m_minimum_quantum = attotime::from_hz(120);
+ config.set_maximum_quantum(attotime::from_hz(120));
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
screen.set_refresh_hz(60);
diff --git a/src/mame/drivers/odyssey2.cpp b/src/mame/drivers/odyssey2.cpp
index edd3f07a9b8..12f8bfd084a 100644
--- a/src/mame/drivers/odyssey2.cpp
+++ b/src/mame/drivers/odyssey2.cpp
@@ -696,7 +696,7 @@ void odyssey2_state::odyssey2(machine_config &config)
m_maincpu->t0_in_cb().set("cartslot", FUNC(o2_cart_slot_device::t0_read));
m_maincpu->t1_in_cb().set(FUNC(odyssey2_state::t1_read));
- config.m_minimum_quantum = attotime::from_hz(60);
+ config.set_maximum_quantum(attotime::from_hz(60));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
@@ -733,7 +733,7 @@ void odyssey2_state::videopac(machine_config &config)
m_maincpu->t0_in_cb().set("cartslot", FUNC(o2_cart_slot_device::t0_read));
m_maincpu->t1_in_cb().set(FUNC(odyssey2_state::t1_read));
- config.m_minimum_quantum = attotime::from_hz(60);
+ config.set_maximum_quantum(attotime::from_hz(60));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
@@ -771,7 +771,7 @@ void g7400_state::g7400(machine_config &config)
m_maincpu->t1_in_cb().set(FUNC(g7400_state::t1_read));
m_maincpu->prog_out_cb().set(m_i8243, FUNC(i8243_device::prog_w));
- config.m_minimum_quantum = attotime::from_hz(60);
+ config.set_maximum_quantum(attotime::from_hz(60));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
@@ -818,7 +818,7 @@ void g7400_state::odyssey3(machine_config &config)
m_maincpu->t1_in_cb().set(FUNC(g7400_state::t1_read));
m_maincpu->prog_out_cb().set(m_i8243, FUNC(i8243_device::prog_w));
- config.m_minimum_quantum = attotime::from_hz(60);
+ config.set_maximum_quantum(attotime::from_hz(60));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
diff --git a/src/mame/drivers/opwolf.cpp b/src/mame/drivers/opwolf.cpp
index 03159113b4e..36a5af75c02 100644
--- a/src/mame/drivers/opwolf.cpp
+++ b/src/mame/drivers/opwolf.cpp
@@ -908,7 +908,7 @@ void opwolf_state::opwolf(machine_config &config)
TIMER(config, "cchip_irq_clear").configure_generic(FUNC(opwolf_state::cchip_irq_clear_cb));
- config.m_minimum_quantum = attotime::from_hz(600); /* 10 CPU slices per frame - enough for the sound CPU to read all commands */
+ config.set_maximum_quantum(attotime::from_hz(600)); /* 10 CPU slices per frame - enough for the sound CPU to read all commands */
MCFG_MACHINE_RESET_OVERRIDE(opwolf_state,opwolf)
@@ -984,7 +984,7 @@ void opwolf_state::opwolfb(machine_config &config) /* OSC clocks unknown for the
sub.set_addrmap(AS_PROGRAM, &opwolf_state::opwolfb_sub_z80_map);
sub.set_vblank_int("screen", FUNC(opwolf_state::irq0_line_hold));
- config.m_minimum_quantum = attotime::from_hz(600); /* 10 CPU slices per frame - enough for the sound CPU to read all commands */
+ config.set_maximum_quantum(attotime::from_hz(600)); /* 10 CPU slices per frame - enough for the sound CPU to read all commands */
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
diff --git a/src/mame/drivers/oric.cpp b/src/mame/drivers/oric.cpp
index 5451f6e1dd9..9dbc6a40e38 100644
--- a/src/mame/drivers/oric.cpp
+++ b/src/mame/drivers/oric.cpp
@@ -789,7 +789,7 @@ void oric_state::oric(machine_config &config, bool add_ext)
M6502(config, m_maincpu, 12_MHz_XTAL / 12);
m_maincpu->set_addrmap(AS_PROGRAM, &oric_state::oric_mem);
- config.m_minimum_quantum = attotime::from_hz(60);
+ config.set_maximum_quantum(attotime::from_hz(60));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
diff --git a/src/mame/drivers/overdriv.cpp b/src/mame/drivers/overdriv.cpp
index b61be4c5beb..a36620e2f82 100644
--- a/src/mame/drivers/overdriv.cpp
+++ b/src/mame/drivers/overdriv.cpp
@@ -341,7 +341,7 @@ void overdriv_state::overdriv(machine_config &config)
/* This might just mean that the video refresh rate is less than */
/* 60 fps, that's how I fixed it for now. */
- config.m_minimum_quantum = attotime::from_hz(12000);
+ config.set_maximum_quantum(attotime::from_hz(12000));
EEPROM_ER5911_16BIT(config, "eeprom").default_data(overdriv_default_eeprom, 128);
diff --git a/src/mame/drivers/p2000t.cpp b/src/mame/drivers/p2000t.cpp
index 743b228ca79..7cf4ae6624b 100644
--- a/src/mame/drivers/p2000t.cpp
+++ b/src/mame/drivers/p2000t.cpp
@@ -256,7 +256,7 @@ void p2000m_state::p2000m(machine_config &config)
m_maincpu->set_addrmap(AS_PROGRAM, &p2000m_state::p2000m_mem);
m_maincpu->set_addrmap(AS_IO, &p2000m_state::p2000t_io);
m_maincpu->set_vblank_int("screen", FUNC(p2000m_state::p2000_interrupt));
- config.m_minimum_quantum = attotime::from_hz(60);
+ config.set_maximum_quantum(attotime::from_hz(60));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
diff --git a/src/mame/drivers/pacland.cpp b/src/mame/drivers/pacland.cpp
index 79d5851b8e1..625dd23e4a0 100644
--- a/src/mame/drivers/pacland.cpp
+++ b/src/mame/drivers/pacland.cpp
@@ -426,7 +426,7 @@ void pacland_state::pacland(machine_config &config)
m_mcu->in_p2_cb().set_constant(0xff); /* leds won't work otherwise */
m_mcu->out_p2_cb().set(FUNC(pacland_state::led_w));
- config.m_minimum_quantum = attotime::from_hz(6000); /* we need heavy synching between the MCU and the CPU */
+ config.set_maximum_quantum(attotime::from_hz(6000)); /* we need heavy synching between the MCU and the CPU */
WATCHDOG_TIMER(config, "watchdog");
diff --git a/src/mame/drivers/palm.cpp b/src/mame/drivers/palm.cpp
index a86ccdef4be..b8c3e99a032 100644
--- a/src/mame/drivers/palm.cpp
+++ b/src/mame/drivers/palm.cpp
@@ -189,7 +189,7 @@ void palm_state::palm(machine_config &config)
m_maincpu->in_spim().set(FUNC(palm_state::palm_spim_in));
m_maincpu->spim_xch_trigger().set(FUNC(palm_state::palm_spim_exchange));
- config.m_minimum_quantum = attotime::from_hz(60);
+ config.set_maximum_quantum(attotime::from_hz(60));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD));
diff --git a/src/mame/drivers/pandoras.cpp b/src/mame/drivers/pandoras.cpp
index 1e1b8090d31..e822b3b8390 100644
--- a/src/mame/drivers/pandoras.cpp
+++ b/src/mame/drivers/pandoras.cpp
@@ -323,7 +323,7 @@ void pandoras_state::pandoras(machine_config &config)
m_mcu->p1_out_cb().set("dac", FUNC(dac_byte_interface::data_w));
m_mcu->p2_out_cb().set(FUNC(pandoras_state::i8039_irqen_and_status_w));
- config.m_minimum_quantum = attotime::from_hz(6000); /* 100 CPU slices per frame - needed for correct synchronization of the sound CPUs */
+ config.set_maximum_quantum(attotime::from_hz(6000)); /* 100 CPU slices per frame - needed for correct synchronization of the sound CPUs */
ls259_device &mainlatch(LS259(config, "mainlatch")); // C3
mainlatch.q_out_cb<0>().set(FUNC(pandoras_state::cpua_irq_enable_w)); // ENA
diff --git a/src/mame/drivers/paranoia.cpp b/src/mame/drivers/paranoia.cpp
index affe48db73e..0220da15862 100644
--- a/src/mame/drivers/paranoia.cpp
+++ b/src/mame/drivers/paranoia.cpp
@@ -176,7 +176,7 @@ void paranoia_state::paranoia(machine_config &config)
m_maincpu->add_route(0, "lspeaker", 1.00);
m_maincpu->add_route(1, "rspeaker", 1.00);
- config.m_minimum_quantum = attotime::from_hz(60);
+ config.set_maximum_quantum(attotime::from_hz(60));
i8085a_cpu_device &sub(I8085A(config, "sub", 18000000/3));
sub.set_addrmap(AS_PROGRAM, &paranoia_state::paranoia_8085_map);
diff --git a/src/mame/drivers/pc.cpp b/src/mame/drivers/pc.cpp
index 0461f45a095..7c1094c2313 100644
--- a/src/mame/drivers/pc.cpp
+++ b/src/mame/drivers/pc.cpp
@@ -185,14 +185,14 @@ void pc_state::cfg_single_360K(device_t *device)
{
dynamic_cast<device_slot_interface &>(*device->subdevice("fdc:0")).set_default_option("525dd");
dynamic_cast<device_slot_interface &>(*device->subdevice("fdc:0")).set_fixed(true);
- dynamic_cast<device_slot_interface &>(*device->subdevice("fdc:1")).set_default_option("");
+ dynamic_cast<device_slot_interface &>(*device->subdevice("fdc:1")).set_default_option(nullptr);
}
void pc_state::cfg_single_720K(device_t *device)
{
dynamic_cast<device_slot_interface &>(*device->subdevice("fdc:0")).set_default_option("35dd");
dynamic_cast<device_slot_interface &>(*device->subdevice("fdc:0")).set_fixed(true);
- dynamic_cast<device_slot_interface &>(*device->subdevice("fdc:1")).set_default_option("");
+ dynamic_cast<device_slot_interface &>(*device->subdevice("fdc:1")).set_default_option(nullptr);
}
void pc_state::pccga(machine_config &config)
@@ -797,7 +797,7 @@ void pc_state::olytext30(machine_config &config)
maincpu.set_irq_acknowledge_callback("mb:pic8259", FUNC(pic8259_device::inta_cb));
subdevice<isa8_slot_device>("isa2")->set_option_machine_config("fdc_xt", cfg_single_720K);
- subdevice<isa8_slot_device>("isa3")->set_default_option("");
+ subdevice<isa8_slot_device>("isa3")->set_default_option(nullptr);
subdevice<isa8_slot_device>("isa5")->set_default_option("hdc");
subdevice<ram_device>(RAM_TAG)->set_default_size("768K");
}
diff --git a/src/mame/drivers/pc1512.cpp b/src/mame/drivers/pc1512.cpp
index 3be30bddb8d..f7a018b5099 100644
--- a/src/mame/drivers/pc1512.cpp
+++ b/src/mame/drivers/pc1512.cpp
@@ -1174,7 +1174,7 @@ void pc1512_state::pc1512(machine_config &config)
m_kb->clock_wr_callback().set(FUNC(pc1512_state::kbclk_w));
m_kb->data_wr_callback().set(FUNC(pc1512_state::kbdata_w));
- pc1512_mouse_port_device &mouse(PC1512_MOUSE_PORT(config, PC1512_MOUSE_PORT_TAG, pc1512_mouse_port_devices, "mouse"));
+ pc1512_mouse_port_device &mouse(PC1512_MOUSE_PORT(config, "mous", pc1512_mouse_port_devices, "mouse"));
mouse.x_wr_callback().set(FUNC(pc1512_base_state::mouse_x_w));
mouse.y_wr_callback().set(FUNC(pc1512_base_state::mouse_y_w));
mouse.m1_wr_callback().set(m_kb, FUNC(pc1512_keyboard_device::m1_w));
@@ -1309,7 +1309,7 @@ void pc1640_state::pc1640(machine_config &config)
m_kb->clock_wr_callback().set(FUNC(pc1512_base_state::kbclk_w));
m_kb->data_wr_callback().set(FUNC(pc1512_base_state::kbdata_w));
- pc1512_mouse_port_device &mouse(PC1512_MOUSE_PORT(config, PC1512_MOUSE_PORT_TAG, pc1512_mouse_port_devices, "mouse"));
+ pc1512_mouse_port_device &mouse(PC1512_MOUSE_PORT(config, "mous", pc1512_mouse_port_devices, "mouse"));
mouse.x_wr_callback().set(FUNC(pc1512_base_state::mouse_x_w));
mouse.y_wr_callback().set(FUNC(pc1512_base_state::mouse_y_w));
mouse.m1_wr_callback().set(m_kb, FUNC(pc1512_keyboard_device::m1_w));
diff --git a/src/mame/drivers/pc8801.cpp b/src/mame/drivers/pc8801.cpp
index 3a974bdef71..051fa711d0c 100644
--- a/src/mame/drivers/pc8801.cpp
+++ b/src/mame/drivers/pc8801.cpp
@@ -2354,8 +2354,8 @@ void pc8801_state::pc8801(machine_config &config)
m_fdccpu->set_addrmap(AS_PROGRAM, &pc8801_state::pc8801fdc_mem);
m_fdccpu->set_addrmap(AS_IO, &pc8801_state::pc8801fdc_io);
- //config.m_minimum_quantum = attotime::from_hz(300000);
- config.m_perfect_cpu_quantum = subtag("maincpu");
+ //config.set_maximum_quantum(attotime::from_hz(300000));
+ config.set_perfect_quantum(m_maincpu);
i8255_device &d8255_master(I8255(config, "d8255_master"));
d8255_master.in_pa_callback().set("d8255_slave", FUNC(i8255_device::pb_r));
diff --git a/src/mame/drivers/pce.cpp b/src/mame/drivers/pce.cpp
index 974deae34ac..0f5462da29c 100644
--- a/src/mame/drivers/pce.cpp
+++ b/src/mame/drivers/pce.cpp
@@ -317,7 +317,7 @@ void pce_state::pce_common(machine_config &config)
m_maincpu->add_route(0, "lspeaker", 1.00);
m_maincpu->add_route(1, "rspeaker", 1.00);
- config.m_minimum_quantum = attotime::from_hz(60);
+ config.set_maximum_quantum(attotime::from_hz(60));
MCFG_MACHINE_START_OVERRIDE(pce_state, pce )
MCFG_MACHINE_RESET_OVERRIDE(pce_state, mess_pce )
@@ -374,7 +374,7 @@ void pce_state::sgx(machine_config &config)
m_maincpu->add_route(0, "lspeaker", 1.00);
m_maincpu->add_route(1, "rspeaker", 1.00);
- config.m_minimum_quantum = attotime::from_hz(60);
+ config.set_maximum_quantum(attotime::from_hz(60));
MCFG_MACHINE_START_OVERRIDE(pce_state, pce )
MCFG_MACHINE_RESET_OVERRIDE(pce_state, mess_pce )
diff --git a/src/mame/drivers/pcw.cpp b/src/mame/drivers/pcw.cpp
index 93bb6a14139..370639c1611 100644
--- a/src/mame/drivers/pcw.cpp
+++ b/src/mame/drivers/pcw.cpp
@@ -1266,8 +1266,8 @@ void pcw_state::pcw(machine_config &config)
m_keyboard_mcu->t0_in_cb().set(FUNC(pcw_state::mcu_kb_t0_r));
m_keyboard_mcu->bus_in_cb().set(FUNC(pcw_state::mcu_kb_data_r));
-// config.m_minimum_quantum = attotime::from_hz(50);
- config.m_perfect_cpu_quantum = subtag("maincpu");
+// config.set_maximum_quantum(attotime::from_hz(50));
+ config.set_perfect_quantum(m_maincpu);
/* video hardware */
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
diff --git a/src/mame/drivers/pcw16.cpp b/src/mame/drivers/pcw16.cpp
index 58d7340d28e..f1772001a3b 100644
--- a/src/mame/drivers/pcw16.cpp
+++ b/src/mame/drivers/pcw16.cpp
@@ -1016,7 +1016,7 @@ void pcw16_state::pcw16(machine_config &config)
Z80(config, m_maincpu, 16000000);
m_maincpu->set_addrmap(AS_PROGRAM, &pcw16_state::pcw16_map);
m_maincpu->set_addrmap(AS_IO, &pcw16_state::pcw16_io);
- config.m_minimum_quantum = attotime::from_hz(60);
+ config.set_maximum_quantum(attotime::from_hz(60));
ns16550_device &uart1(NS16550(config, "ns16550_1", XTAL(1'843'200))); /* TODO: Verify uart model */
uart1.out_tx_callback().set("serport1", FUNC(rs232_port_device::write_txd));
diff --git a/src/mame/drivers/pitnrun.cpp b/src/mame/drivers/pitnrun.cpp
index e60c11f38e2..f050458529b 100644
--- a/src/mame/drivers/pitnrun.cpp
+++ b/src/mame/drivers/pitnrun.cpp
@@ -298,7 +298,7 @@ void pitnrun_state::pitnrun(machine_config &config)
WATCHDOG_TIMER(config, "watchdog");
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
diff --git a/src/mame/drivers/plus4.cpp b/src/mame/drivers/plus4.cpp
index 4ad7ddbb1e4..c03bc5b0fd7 100644
--- a/src/mame/drivers/plus4.cpp
+++ b/src/mame/drivers/plus4.cpp
@@ -34,7 +34,6 @@
#include "sound/mos7360.h"
#include "sound/t6721a.h"
-#define MOS7501_TAG "u2"
#define MOS7360_TAG "u1"
#define MOS6551_TAG "u3"
#define MOS6529_USER_TAG "u5"
@@ -52,7 +51,7 @@ class plus4_state : public driver_device
public:
plus4_state(const machine_config &mconfig, device_type type, const char *tag) :
driver_device(mconfig, type, tag),
- m_maincpu(*this, MOS7501_TAG),
+ m_maincpu(*this, "u2"),
m_pla(*this, PLA_TAG),
m_ted(*this, MOS7360_TAG),
m_acia(*this, MOS6551_TAG),
@@ -849,7 +848,7 @@ void plus4_state::plus4(machine_config &config)
m_maincpu->read_callback().set(FUNC(plus4_state::cpu_r));
m_maincpu->write_callback().set(FUNC(plus4_state::cpu_w));
m_maincpu->set_pulls(0x00, 0xc0);
- config.m_perfect_cpu_quantum = subtag(MOS7501_TAG);
+ config.set_perfect_quantum(m_maincpu);
INPUT_MERGER_ANY_HIGH(config, "mainirq").output_handler().set_inputline(m_maincpu, m7501_device::IRQ_LINE);
@@ -928,7 +927,7 @@ void plus4_state::plus4(machine_config &config)
m_exp->irq_wr_callback().set("mainirq", FUNC(input_merger_device::in_w<2>));
m_exp->cd_rd_callback().set(FUNC(plus4_state::read));
m_exp->cd_wr_callback().set(FUNC(plus4_state::write));
- m_exp->aec_wr_callback().set_inputline(MOS7501_TAG, INPUT_LINE_HALT);
+ m_exp->aec_wr_callback().set_inputline(m_maincpu, INPUT_LINE_HALT);
QUICKLOAD(config, "quickload", "p00,prg", CBM_QUICKLOAD_DELAY).set_load_callback(FUNC(plus4_state::quickload_c16));
diff --git a/src/mame/drivers/plygonet.cpp b/src/mame/drivers/plygonet.cpp
index caba37690bf..ec85d37681a 100644
--- a/src/mame/drivers/plygonet.cpp
+++ b/src/mame/drivers/plygonet.cpp
@@ -565,7 +565,7 @@ void polygonet_state::plygonet(machine_config &config)
Z80(config, m_audiocpu, 8000000);
m_audiocpu->set_addrmap(AS_PROGRAM, &polygonet_state::sound_map);
- config.m_perfect_cpu_quantum = subtag("maincpu"); /* TODO: TEMPORARY! UNTIL A MORE LOCALIZED SYNC CAN BE MADE */
+ config.set_perfect_quantum(m_maincpu); /* TODO: TEMPORARY! UNTIL A MORE LOCALIZED SYNC CAN BE MADE */
EEPROM_ER5911_8BIT(config, m_eeprom);
diff --git a/src/mame/drivers/pmd85.cpp b/src/mame/drivers/pmd85.cpp
index d2d9b5a4bf8..cd048925706 100644
--- a/src/mame/drivers/pmd85.cpp
+++ b/src/mame/drivers/pmd85.cpp
@@ -624,7 +624,7 @@ void pmd85_state::pmd85(machine_config &config, bool with_uart)
I8080(config, m_maincpu, XTAL(18'432'000)/9);
m_maincpu->set_addrmap(AS_PROGRAM, &pmd85_state::pmd85_mem);
m_maincpu->set_addrmap(AS_IO, &pmd85_state::pmd85_io_map);
- config.m_minimum_quantum = attotime::from_hz(60);
+ config.set_maximum_quantum(attotime::from_hz(60));
/*******************************************************************************
diff --git a/src/mame/drivers/pocketc.cpp b/src/mame/drivers/pocketc.cpp
index 50ba0cb0d7a..32248a0cbf2 100644
--- a/src/mame/drivers/pocketc.cpp
+++ b/src/mame/drivers/pocketc.cpp
@@ -721,7 +721,7 @@ GFXDECODE_END
void pocketc_state::pocketc_base(machine_config &config)
{
- config.m_minimum_quantum = attotime::from_hz(60);
+ config.set_maximum_quantum(attotime::from_hz(60));
NVRAM(config, "cpu_nvram", nvram_device::DEFAULT_ALL_0);
NVRAM(config, "ram_nvram", nvram_device::DEFAULT_ALL_0);
diff --git a/src/mame/drivers/pokemini.cpp b/src/mame/drivers/pokemini.cpp
index df99ab5e72b..39ed4cf2eda 100644
--- a/src/mame/drivers/pokemini.cpp
+++ b/src/mame/drivers/pokemini.cpp
@@ -1768,7 +1768,7 @@ void pokemini_state::pokemini(machine_config &config)
MINX(config, m_maincpu, 4000000);
m_maincpu->set_addrmap(AS_PROGRAM, &pokemini_state::pokemini_mem_map);
- config.m_minimum_quantum = attotime::from_hz(60);
+ config.set_maximum_quantum(attotime::from_hz(60));
I2CMEM(config, m_i2cmem, 0).set_data_size(0x2000);
diff --git a/src/mame/drivers/polepos.cpp b/src/mame/drivers/polepos.cpp
index 58ac0c71d59..96c0da3cf42 100644
--- a/src/mame/drivers/polepos.cpp
+++ b/src/mame/drivers/polepos.cpp
@@ -898,7 +898,7 @@ void polepos_state::polepos(machine_config &config)
WATCHDOG_TIMER(config, "watchdog").set_vblank_count(m_screen, 16); // 128V clocks the same as VBLANK
- config.m_minimum_quantum = attotime::from_hz(6000); /* some interleaving */
+ config.set_maximum_quantum(attotime::from_hz(6000)); /* some interleaving */
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_1);
@@ -1007,7 +1007,7 @@ void polepos_state::topracern(machine_config &config)
WATCHDOG_TIMER(config, "watchdog").set_vblank_count(m_screen, 16); // 128V clocks the same as VBLANK
- config.m_minimum_quantum = attotime::from_hz(6000); /* some interleaving */
+ config.set_maximum_quantum(attotime::from_hz(6000)); /* some interleaving */
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_1);
diff --git a/src/mame/drivers/popper.cpp b/src/mame/drivers/popper.cpp
index ae442d5eb6c..afcd98b76a1 100644
--- a/src/mame/drivers/popper.cpp
+++ b/src/mame/drivers/popper.cpp
@@ -543,7 +543,7 @@ void popper_state::popper(machine_config &config)
Z80(config, m_subcpu, XTAL(18'432'000)/3/2);
m_subcpu->set_addrmap(AS_PROGRAM, &popper_state::sub_map);
- config.m_perfect_cpu_quantum = subtag("maincpu");
+ config.set_perfect_quantum(m_maincpu);
// video hardware
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
diff --git a/src/mame/drivers/prof80.cpp b/src/mame/drivers/prof80.cpp
index 826f8a35665..e9e1c6b917f 100644
--- a/src/mame/drivers/prof80.cpp
+++ b/src/mame/drivers/prof80.cpp
@@ -494,11 +494,11 @@ void prof80_state::prof80(machine_config &config)
// ECB bus
ECBBUS(config, m_ecb);
- ECBBUS_SLOT(config, "ecb_1", 1, ecbbus_cards, "grip21");
- ECBBUS_SLOT(config, "ecb_2", 2, ecbbus_cards, nullptr);
- ECBBUS_SLOT(config, "ecb_3", 3, ecbbus_cards, nullptr);
- ECBBUS_SLOT(config, "ecb_4", 4, ecbbus_cards, nullptr);
- ECBBUS_SLOT(config, "ecb_5", 5, ecbbus_cards, nullptr);
+ ECBBUS_SLOT(config, "ecb_1", m_ecb, 1, ecbbus_cards, "grip21");
+ ECBBUS_SLOT(config, "ecb_2", m_ecb, 2, ecbbus_cards, nullptr);
+ ECBBUS_SLOT(config, "ecb_3", m_ecb, 3, ecbbus_cards, nullptr);
+ ECBBUS_SLOT(config, "ecb_4", m_ecb, 4, ecbbus_cards, nullptr);
+ ECBBUS_SLOT(config, "ecb_5", m_ecb, 5, ecbbus_cards, nullptr);
// V24
RS232_PORT(config, m_rs232a, default_rs232_devices, nullptr);
diff --git a/src/mame/drivers/progolf.cpp b/src/mame/drivers/progolf.cpp
index c07a07d0020..5551c4f048e 100644
--- a/src/mame/drivers/progolf.cpp
+++ b/src/mame/drivers/progolf.cpp
@@ -427,7 +427,7 @@ void progolf_state::progolf(machine_config &config)
M6502(config, m_audiocpu, 500000);
m_audiocpu->set_addrmap(AS_PROGRAM, &progolf_state::sound_cpu);
- config.m_perfect_cpu_quantum = subtag("maincpu");
+ config.set_perfect_quantum(m_maincpu);
generic_latch_8_device &soundlatch(GENERIC_LATCH_8(config, "soundlatch"));
soundlatch.data_pending_callback().set_inputline(m_audiocpu, 0);
diff --git a/src/mame/drivers/ps2.cpp b/src/mame/drivers/ps2.cpp
index bdc4e186a31..2358702dbb1 100644
--- a/src/mame/drivers/ps2.cpp
+++ b/src/mame/drivers/ps2.cpp
@@ -98,7 +98,7 @@ void ps2_state::ps2m30286(machine_config &config)
AT_MB(config, m_mb, 0);
- config.m_minimum_quantum = attotime::from_hz(60);
+ config.set_maximum_quantum(attotime::from_hz(60));
at_softlists(config);
@@ -122,7 +122,7 @@ void ps2_state::ps2386(machine_config &config)
AT_MB(config, m_mb, 0);
- config.m_minimum_quantum = attotime::from_hz(60);
+ config.set_maximum_quantum(attotime::from_hz(60));
at_softlists(config);
// on board devices
diff --git a/src/mame/drivers/ps2sony.cpp b/src/mame/drivers/ps2sony.cpp
index 6d3bf45ba8b..d4134b558ca 100644
--- a/src/mame/drivers/ps2sony.cpp
+++ b/src/mame/drivers/ps2sony.cpp
@@ -758,7 +758,7 @@ void ps2sony_state::ps2sony(machine_config &config)
SONYPS2_IOP(config, m_iop, XTAL(67'737'600)/2);
m_iop->set_addrmap(AS_PROGRAM, &ps2sony_state::iop_map);
- config.m_perfect_cpu_quantum = subtag("iop");
+ config.set_perfect_quantum(m_iop);
SONYPS2_PAD(config, m_pad[0]);
SONYPS2_PAD(config, m_pad[1]);
diff --git a/src/mame/drivers/psychic5.cpp b/src/mame/drivers/psychic5.cpp
index 888a5dd062c..723f791b6ab 100644
--- a/src/mame/drivers/psychic5.cpp
+++ b/src/mame/drivers/psychic5.cpp
@@ -733,7 +733,7 @@ void psychic5_state::psychic5(machine_config &config)
m_audiocpu->set_addrmap(AS_PROGRAM, &psychic5_state::psychic5_sound_map);
m_audiocpu->set_addrmap(AS_IO, &psychic5_state::psychic5_soundport_map);
- config.m_minimum_quantum = attotime::from_hz(600); /* Allow time for 2nd cpu to interleave */
+ config.set_maximum_quantum(attotime::from_hz(600)); /* Allow time for 2nd cpu to interleave */
MCFG_MACHINE_START_OVERRIDE(psychic5_state,psychic5)
@@ -781,7 +781,7 @@ void psychic5_state::bombsa(machine_config &config)
m_audiocpu->set_addrmap(AS_PROGRAM, &psychic5_state::bombsa_sound_map);
m_audiocpu->set_addrmap(AS_IO, &psychic5_state::bombsa_soundport_map);
- config.m_minimum_quantum = attotime::from_hz(600);
+ config.set_maximum_quantum(attotime::from_hz(600));
MCFG_MACHINE_START_OVERRIDE(psychic5_state,bombsa)
diff --git a/src/mame/drivers/qix.cpp b/src/mame/drivers/qix.cpp
index 3f79f330486..e307300eff0 100644
--- a/src/mame/drivers/qix.cpp
+++ b/src/mame/drivers/qix.cpp
@@ -607,9 +607,9 @@ void qix_state::qix_base(machine_config &config)
MC6809E(config, m_maincpu, MAIN_CLOCK_OSC/4/4); /* 1.25 MHz */
m_maincpu->set_addrmap(AS_PROGRAM, &qix_state::main_map);
- /* high interleave needed to ensure correct text in service mode */
- /* Zookeeper settings and high score table seem especially sensitive to this */
- config.m_perfect_cpu_quantum = subtag("maincpu");
+ // high interleave needed to ensure correct text in service mode
+ // Zookeeper settings and high score table seem especially sensitive to this
+ config.set_perfect_quantum(m_maincpu);
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
diff --git a/src/mame/drivers/quasar.cpp b/src/mame/drivers/quasar.cpp
index c2d192ee433..abc220960fb 100644
--- a/src/mame/drivers/quasar.cpp
+++ b/src/mame/drivers/quasar.cpp
@@ -314,7 +314,7 @@ void quasar_state::quasar(machine_config &config)
soundcpu.t1_in_cb().set(FUNC(quasar_state::audio_t1_r));
soundcpu.p1_out_cb().set("dac", FUNC(dac_byte_interface::data_w));
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
/* video hardware */
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
diff --git a/src/mame/drivers/qvt102.cpp b/src/mame/drivers/qvt102.cpp
index 833450d2996..ebb8b658c8f 100644
--- a/src/mame/drivers/qvt102.cpp
+++ b/src/mame/drivers/qvt102.cpp
@@ -43,8 +43,8 @@
class qvt102_state : public driver_device
{
public:
- qvt102_state(const machine_config &mconfig, device_type type, const char *tag)
- : driver_device(mconfig, type, tag),
+ qvt102_state(const machine_config &mconfig, device_type type, const char *tag) :
+ driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"),
m_irqs(*this, "irqs"),
m_kbdmcu(*this, "kbdmcu"),
@@ -610,7 +610,7 @@ void qvt102_state::qvt102(machine_config &config)
m_maincpu->set_addrmap(AS_PROGRAM, &qvt102_state::mem_map);
// needs a tight sync with the keyboard cpu
- config.m_perfect_cpu_quantum = subtag("maincpu");
+ config.set_perfect_quantum(m_maincpu);
INPUT_MERGER_ANY_HIGH(config, m_irqs).output_handler().set_inputline(m_maincpu, M6800_IRQ_LINE);
diff --git a/src/mame/drivers/r9751.cpp b/src/mame/drivers/r9751.cpp
index f58e35fc041..bcda02f7285 100644
--- a/src/mame/drivers/r9751.cpp
+++ b/src/mame/drivers/r9751.cpp
@@ -978,7 +978,7 @@ void r9751_state::r9751(machine_config &config)
/* basic machine hardware */
M68030(config, m_maincpu, 20000000);
m_maincpu->set_addrmap(AS_PROGRAM, &r9751_state::r9751_mem);
- config.m_minimum_quantum = attotime::from_hz(1000);
+ config.set_maximum_quantum(attotime::from_hz(1000));
/* i/o hardware */
SMIOC(config, m_smioc, 0);
diff --git a/src/mame/drivers/raiden.cpp b/src/mame/drivers/raiden.cpp
index 4644c7dadb2..7b578816954 100644
--- a/src/mame/drivers/raiden.cpp
+++ b/src/mame/drivers/raiden.cpp
@@ -347,7 +347,7 @@ void raiden_state::raiden(machine_config &config)
audiocpu.set_addrmap(AS_PROGRAM, &raiden_state::seibu_sound_map);
audiocpu.set_irq_acknowledge_callback("seibu_sound", FUNC(seibu_sound_device::im0_vector_cb));
- config.m_minimum_quantum = attotime::from_hz(12000);
+ config.set_maximum_quantum(attotime::from_hz(12000));
/* video hardware */
BUFFERED_SPRITERAM16(config, m_spriteram);
diff --git a/src/mame/drivers/rastan.cpp b/src/mame/drivers/rastan.cpp
index 355e9235aec..e81fbcb0e75 100644
--- a/src/mame/drivers/rastan.cpp
+++ b/src/mame/drivers/rastan.cpp
@@ -349,7 +349,7 @@ void rastan_state::rastan(machine_config &config)
Z80(config, m_audiocpu, XTAL(16'000'000)/4); /* verified on pcb */
m_audiocpu->set_addrmap(AS_PROGRAM, &rastan_state::sound_map);
- config.m_minimum_quantum = attotime::from_hz(600); /* 10 CPU slices per frame - enough for the sound CPU to read all commands */
+ config.set_maximum_quantum(attotime::from_hz(600)); /* 10 CPU slices per frame - enough for the sound CPU to read all commands */
WATCHDOG_TIMER(config, "watchdog");
diff --git a/src/mame/drivers/rbisland.cpp b/src/mame/drivers/rbisland.cpp
index 7a2610b476a..a7ffd52fc0b 100644
--- a/src/mame/drivers/rbisland.cpp
+++ b/src/mame/drivers/rbisland.cpp
@@ -648,7 +648,7 @@ void rbisland_state::rbisland(machine_config &config)
TIMER(config, m_cchip_irq_clear).configure_generic(FUNC(rbisland_state::cchip_irq_clear_cb));
- config.m_minimum_quantum = attotime::from_hz(600); /* 10 CPU slices per frame - enough for the sound CPU to read all commands */
+ config.set_maximum_quantum(attotime::from_hz(600)); /* 10 CPU slices per frame - enough for the sound CPU to read all commands */
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
@@ -696,7 +696,7 @@ void rbisland_state::jumping(machine_config &config)
Z80(config, m_audiocpu, XTAL(24'000'000)/4); /* verified on pcb */
m_audiocpu->set_addrmap(AS_PROGRAM, &rbisland_state::jumping_sound_map);
- config.m_minimum_quantum = attotime::from_hz(600); /* 10 CPU slices per frame - enough unless otherwise */
+ config.set_maximum_quantum(attotime::from_hz(600)); /* 10 CPU slices per frame - enough unless otherwise */
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
diff --git a/src/mame/drivers/retofinv.cpp b/src/mame/drivers/retofinv.cpp
index ae43a4d88f9..cdd9cc85b8b 100644
--- a/src/mame/drivers/retofinv.cpp
+++ b/src/mame/drivers/retofinv.cpp
@@ -424,7 +424,7 @@ void retofinv_state::retofinv(machine_config &config)
TAITO68705_MCU(config, m_68705, XTAL(18'432'000)/6); /* XTAL and divider verified, 3.072 MHz */
- config.m_minimum_quantum = attotime::from_hz(6000); /* 100 CPU slices per frame - enough for the sound CPU to read all commands */
+ config.set_maximum_quantum(attotime::from_hz(6000)); /* 100 CPU slices per frame - enough for the sound CPU to read all commands */
LS259(config, m_mainlatch); // IC72 - probably shared between CPUs
m_mainlatch->q_out_cb<0>().set(FUNC(retofinv_state::irq0_ack_w));
diff --git a/src/mame/drivers/rollext.cpp b/src/mame/drivers/rollext.cpp
index ae604a52d6e..e9e6de54676 100644
--- a/src/mame/drivers/rollext.cpp
+++ b/src/mame/drivers/rollext.cpp
@@ -554,7 +554,7 @@ void rollext_state::rollext(machine_config &config)
tms32082_pp_device &pp0(TMS32082_PP(config, "pp0", 60000000));
pp0.set_addrmap(AS_PROGRAM, &rollext_state::memmap);
- config.m_minimum_quantum = attotime::from_hz(100);
+ config.set_maximum_quantum(attotime::from_hz(100));
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
m_screen->set_refresh_hz(60);
diff --git a/src/mame/drivers/rungun.cpp b/src/mame/drivers/rungun.cpp
index fc07c720cb7..3f1fc5317d3 100644
--- a/src/mame/drivers/rungun.cpp
+++ b/src/mame/drivers/rungun.cpp
@@ -397,7 +397,7 @@ void rungun_state::rng(machine_config &config)
Z80(config, m_soundcpu, 8000000);
m_soundcpu->set_addrmap(AS_PROGRAM, &rungun_state::rungun_sound_map);
- config.m_minimum_quantum = attotime::from_hz(6000); // higher if sound stutters
+ config.set_maximum_quantum(attotime::from_hz(6000)); // higher if sound stutters
GFXDECODE(config, m_gfxdecode, m_palette, gfx_rungun);
diff --git a/src/mame/drivers/rvoice.cpp b/src/mame/drivers/rvoice.cpp
index b8d8c3e6c93..967605323bf 100644
--- a/src/mame/drivers/rvoice.cpp
+++ b/src/mame/drivers/rvoice.cpp
@@ -369,7 +369,7 @@ void rvoice_state::rvoicepc(machine_config &config)
//hd63701_cpu_device &playercpu(HD63701(config "playercpu", XTAL(7'372'800))); // not dumped yet
//playercpu.set_addrmap(AS_PROGRAM, &rvoice_state::hd63701_slave_mem);
//playercpu.set_addrmap(AS_PROGRAM, &rvoice_state::hd63701_slave_io);
- config.m_minimum_quantum = attotime::from_hz(60);
+ config.set_maximum_quantum(attotime::from_hz(60));
mos6551_device &acia(MOS6551(config, "acia65c51", 0));
acia.set_xtal(1.8432_MHz_XTAL);
diff --git a/src/mame/drivers/s11b.cpp b/src/mame/drivers/s11b.cpp
index 939228f6cc3..cf4b8effcb2 100644
--- a/src/mame/drivers/s11b.cpp
+++ b/src/mame/drivers/s11b.cpp
@@ -336,7 +336,7 @@ void s11b_state::s11b(machine_config &config)
/* Add the background music card */
MC6809E(config, m_bgcpu, XTAL(8'000'000) / 4); // MC68B09E
m_bgcpu->set_addrmap(AS_PROGRAM, &s11b_state::s11b_bg_map);
- config.m_minimum_quantum = attotime::from_hz(50);
+ config.set_maximum_quantum(attotime::from_hz(50));
SPEAKER(config, "bg").front_center();
YM2151(config, m_ym, 3580000);
diff --git a/src/mame/drivers/segahang.cpp b/src/mame/drivers/segahang.cpp
index 665da5653f1..3e2d08d1653 100644
--- a/src/mame/drivers/segahang.cpp
+++ b/src/mame/drivers/segahang.cpp
@@ -704,7 +704,7 @@ void segahang_state::shared_base(machine_config &config)
M68000(config, m_subcpu, MASTER_CLOCK_25MHz/4);
m_subcpu->set_addrmap(AS_PROGRAM, &segahang_state::sub_map);
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
I8255(config, m_i8255_1);
m_i8255_1->out_pa_callback().set("soundlatch", FUNC(generic_latch_8_device::write));
diff --git a/src/mame/drivers/segajw.cpp b/src/mame/drivers/segajw.cpp
index e25c8f8f578..6eba9fb6db0 100644
--- a/src/mame/drivers/segajw.cpp
+++ b/src/mame/drivers/segajw.cpp
@@ -381,7 +381,7 @@ void segajw_state::segajw(machine_config &config)
m_audiocpu->set_addrmap(AS_PROGRAM, &segajw_state::segajw_audiocpu_map);
m_audiocpu->set_addrmap(AS_IO, &segajw_state::segajw_audiocpu_io_map);
- config.m_minimum_quantum = attotime::from_hz(2000);
+ config.set_maximum_quantum(attotime::from_hz(2000));
NVRAM(config, "nvram", nvram_device::DEFAULT_NONE);
diff --git a/src/mame/drivers/segaorun.cpp b/src/mame/drivers/segaorun.cpp
index 71a32914c80..2669b2498e3 100644
--- a/src/mame/drivers/segaorun.cpp
+++ b/src/mame/drivers/segaorun.cpp
@@ -1167,7 +1167,7 @@ void segaorun_state::outrun_base(machine_config &config)
m_soundcpu->set_addrmap(AS_PROGRAM, &segaorun_state::sound_map);
m_soundcpu->set_addrmap(AS_IO, &segaorun_state::sound_portmap);
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
WATCHDOG_TIMER(config, m_watchdog);
diff --git a/src/mame/drivers/segas16b.cpp b/src/mame/drivers/segas16b.cpp
index b80a25dd44e..54576497867 100644
--- a/src/mame/drivers/segas16b.cpp
+++ b/src/mame/drivers/segas16b.cpp
@@ -3992,7 +3992,7 @@ void segas16b_state::system16b_i8751(machine_config &config)
m_mcu->port_in_cb<1>().set_ioport("SERVICE");
m_mcu->port_out_cb<1>().set(FUNC(segas16b_state::spin_68k_w));
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
m_screen->screen_vblank().set_inputline(m_mcu, INPUT_LINE_IRQ0);
}
diff --git a/src/mame/drivers/segas24.cpp b/src/mame/drivers/segas24.cpp
index d99eef46c24..19ae04fa85b 100644
--- a/src/mame/drivers/segas24.cpp
+++ b/src/mame/drivers/segas24.cpp
@@ -1921,7 +1921,7 @@ void segas24_state::system24(machine_config &config)
M68000(config, m_subcpu, MASTER_CLOCK/2);
m_subcpu->set_addrmap(AS_PROGRAM, &segas24_state::cpu2_map);
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
sega_315_5296_device &io(SEGA_315_5296(config, "io", VIDEO_CLOCK/2));
io.in_pa_callback().set_ioport("P1");
diff --git a/src/mame/drivers/segaxbd.cpp b/src/mame/drivers/segaxbd.cpp
index 18e06a456f5..caf6927064c 100644
--- a/src/mame/drivers/segaxbd.cpp
+++ b/src/mame/drivers/segaxbd.cpp
@@ -1680,7 +1680,7 @@ void segaxbd_state::xboard_base_mconfig(machine_config &config)
NVRAM(config, "backup1", nvram_device::DEFAULT_ALL_0);
NVRAM(config, "backup2", nvram_device::DEFAULT_ALL_0);
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
MB3773(config, "watchdog");
diff --git a/src/mame/drivers/segaybd.cpp b/src/mame/drivers/segaybd.cpp
index 567d367dca6..3136860a984 100644
--- a/src/mame/drivers/segaybd.cpp
+++ b/src/mame/drivers/segaybd.cpp
@@ -1289,7 +1289,7 @@ void segaybd_state::yboard(machine_config &config)
m_soundcpu->set_addrmap(AS_IO, &segaybd_state::sound_portmap);
NVRAM(config, "backupram", nvram_device::DEFAULT_ALL_0);
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
MB3773(config, "watchdog"); // IC95
diff --git a/src/mame/drivers/seibuspi.cpp b/src/mame/drivers/seibuspi.cpp
index e91b737477c..44d6e2cc614 100644
--- a/src/mame/drivers/seibuspi.cpp
+++ b/src/mame/drivers/seibuspi.cpp
@@ -1790,7 +1790,7 @@ void seibuspi_state::spi(machine_config &config)
Z80(config, m_audiocpu, 28.636363_MHz_XTAL / 4); // Z84C0008PEC, 7.159MHz
m_audiocpu->set_addrmap(AS_PROGRAM, &seibuspi_state::spi_soundmap);
- config.m_minimum_quantum = attotime::from_hz(12000);
+ config.set_maximum_quantum(attotime::from_hz(12000));
MCFG_MACHINE_RESET_OVERRIDE(seibuspi_state, spi)
diff --git a/src/mame/drivers/seicross.cpp b/src/mame/drivers/seicross.cpp
index 5bf453541af..6b6e6571f32 100644
--- a/src/mame/drivers/seicross.cpp
+++ b/src/mame/drivers/seicross.cpp
@@ -406,7 +406,7 @@ void seicross_state::no_nvram(machine_config &config)
NSC8105(config, m_mcu, XTAL(18'432'000) / 6); /* ??? */
m_mcu->set_addrmap(AS_PROGRAM, &seicross_state::mcu_no_nvram_map);
- config.m_minimum_quantum = attotime::from_hz(1200); /* 20 CPU slices per frame - a high value to ensure proper */
+ config.set_maximum_quantum(attotime::from_hz(1200)); /* 20 CPU slices per frame - a high value to ensure proper */
/* synchronization of the CPUs */
WATCHDOG_TIMER(config, "watchdog");
diff --git a/src/mame/drivers/sfcbox.cpp b/src/mame/drivers/sfcbox.cpp
index 82bb0cecbbb..fdc7d6f0f17 100644
--- a/src/mame/drivers/sfcbox.cpp
+++ b/src/mame/drivers/sfcbox.cpp
@@ -466,7 +466,7 @@ void sfcbox_state::sfcbox(machine_config &config)
SPC700(config, m_soundcpu, XTAL(24'576'000) / 12);
m_soundcpu->set_addrmap(AS_PROGRAM, &sfcbox_state::spc_mem);
- config.m_perfect_cpu_quantum = subtag("maincpu");
+ config.set_perfect_quantum(m_maincpu);
/* sfcbox hardware */
Z80180(config, m_bios, XTAL(12'000'000)); /* HD64180RF6X */
diff --git a/src/mame/drivers/sfkick.cpp b/src/mame/drivers/sfkick.cpp
index 1d1400042f2..3baff492897 100644
--- a/src/mame/drivers/sfkick.cpp
+++ b/src/mame/drivers/sfkick.cpp
@@ -597,7 +597,7 @@ void sfkick_state::sfkick(machine_config &config)
m_maincpu->set_addrmap(AS_PROGRAM, &sfkick_state::sfkick_map);
m_maincpu->set_addrmap(AS_IO, &sfkick_state::sfkick_io_map);
- config.m_minimum_quantum = attotime::from_hz(60000);
+ config.set_maximum_quantum(attotime::from_hz(60000));
Z80(config, m_soundcpu, MASTER_CLOCK/6);
m_soundcpu->set_addrmap(AS_PROGRAM, &sfkick_state::sfkick_sound_map);
diff --git a/src/mame/drivers/shanghai.cpp b/src/mame/drivers/shanghai.cpp
index 9c842d4e1d8..a1203ce93f4 100644
--- a/src/mame/drivers/shanghai.cpp
+++ b/src/mame/drivers/shanghai.cpp
@@ -477,7 +477,7 @@ void shanghai_state::kothello(machine_config &config)
audiocpu.set_addrmap(AS_PROGRAM, &shanghai_state::kothello_sound_map);
audiocpu.set_irq_acknowledge_callback("seibu_sound", FUNC(seibu_sound_device::im0_vector_cb));
- config.m_minimum_quantum = attotime::from_hz(12000);
+ config.set_maximum_quantum(attotime::from_hz(12000));
/* video hardware */
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
diff --git a/src/mame/drivers/shangkid.cpp b/src/mame/drivers/shangkid.cpp
index 8c631b7ac43..6f026e94110 100644
--- a/src/mame/drivers/shangkid.cpp
+++ b/src/mame/drivers/shangkid.cpp
@@ -400,7 +400,7 @@ void shangkid_state::chinhero(machine_config &config)
mainlatch.q_out_cb<6>().set(FUNC(shangkid_state::coin_counter_1_w));
mainlatch.q_out_cb<7>().set(FUNC(shangkid_state::coin_counter_2_w));
- config.m_minimum_quantum = attotime::from_hz(600);
+ config.set_maximum_quantum(attotime::from_hz(600));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
diff --git a/src/mame/drivers/shougi.cpp b/src/mame/drivers/shougi.cpp
index 51928319502..4926fcdc147 100644
--- a/src/mame/drivers/shougi.cpp
+++ b/src/mame/drivers/shougi.cpp
@@ -391,7 +391,7 @@ void shougi_state::shougi(machine_config &config)
mainlatch.q_out_cb<4>().set(m_alpha_8201, FUNC(alpha_8201_device::bus_dir_w)).invert(); // ALPHA-8201 shared RAM bus direction: 0: mcu, 1: maincpu
mainlatch.q_out_cb<7>().set_nop(); // nothing? connected to +5v via resistor
- config.m_perfect_cpu_quantum = subtag("maincpu");
+ config.set_perfect_quantum(m_maincpu);
WATCHDOG_TIMER(config, "watchdog").set_vblank_count("screen", 0x10); // assuming it's the same as champbas
diff --git a/src/mame/drivers/sidearms.cpp b/src/mame/drivers/sidearms.cpp
index 5a689b8d816..a0c5f0c73f1 100644
--- a/src/mame/drivers/sidearms.cpp
+++ b/src/mame/drivers/sidearms.cpp
@@ -702,7 +702,7 @@ void sidearms_state::whizz(machine_config &config)
m_audiocpu->set_addrmap(AS_PROGRAM, &sidearms_state::whizz_sound_map);
m_audiocpu->set_addrmap(AS_IO, &sidearms_state::whizz_io_map);
- config.m_minimum_quantum = attotime::from_hz(60000);
+ config.set_maximum_quantum(attotime::from_hz(60000));
WATCHDOG_TIMER(config, "watchdog");
diff --git a/src/mame/drivers/simple_st0016.cpp b/src/mame/drivers/simple_st0016.cpp
index 3ce47822f9c..b00b95dfa3a 100644
--- a/src/mame/drivers/simple_st0016.cpp
+++ b/src/mame/drivers/simple_st0016.cpp
@@ -498,7 +498,7 @@ void st0016_state::mayjinsn(machine_config &config)
V810(config, m_subcpu, 10000000); //25 Mhz ?
m_subcpu->set_addrmap(AS_PROGRAM, &st0016_state::v810_mem);
- config.m_minimum_quantum = attotime::from_hz(60);
+ config.set_maximum_quantum(attotime::from_hz(60));
}
void st0016_state::renju(machine_config &config)
diff --git a/src/mame/drivers/skykid.cpp b/src/mame/drivers/skykid.cpp
index 85f79d17059..ee328fd9341 100644
--- a/src/mame/drivers/skykid.cpp
+++ b/src/mame/drivers/skykid.cpp
@@ -434,7 +434,7 @@ void skykid_state::skykid(machine_config &config)
m_mcu->in_p2_cb().set_constant(0xff); /* leds won't work otherwise */
m_mcu->out_p2_cb().set(FUNC(skykid_state::skykid_led_w)); /* lamps */
- config.m_minimum_quantum = attotime::from_hz(6000); /* we need heavy synch */
+ config.set_maximum_quantum(attotime::from_hz(6000)); /* we need heavy synch */
WATCHDOG_TIMER(config, "watchdog");
diff --git a/src/mame/drivers/slapfght.cpp b/src/mame/drivers/slapfght.cpp
index a556c08901a..0534bb87727 100644
--- a/src/mame/drivers/slapfght.cpp
+++ b/src/mame/drivers/slapfght.cpp
@@ -906,7 +906,7 @@ void slapfght_state::perfrman(machine_config &config)
m_audiocpu->set_addrmap(AS_PROGRAM, &slapfght_state::perfrman_sound_map);
m_audiocpu->set_periodic_int(FUNC(slapfght_state::sound_nmi), attotime::from_hz(240)); // music speed, verified
- config.m_perfect_cpu_quantum = subtag("maincpu");
+ config.set_perfect_quantum(m_maincpu);
/* video hardware */
BUFFERED_SPRITERAM8(config, m_spriteram);
@@ -958,7 +958,7 @@ void slapfght_state::tigerh(machine_config &config)
TAITO68705_MCU_TIGER(config, m_bmcu, 36_MHz_XTAL/12); // 3MHz
- config.m_perfect_cpu_quantum = subtag("maincpu");
+ config.set_perfect_quantum(m_maincpu);
/* video hardware */
BUFFERED_SPRITERAM8(config, m_spriteram);
@@ -1044,7 +1044,7 @@ void slapfght_state::slapfigh(machine_config &config)
TAITO68705_MCU(config, m_bmcu, 36_MHz_XTAL/12); // 3MHz
m_bmcu->aux_strobe_cb().set(FUNC(slapfght_state::scroll_from_mcu_w));
- config.m_perfect_cpu_quantum = subtag("maincpu");
+ config.set_perfect_quantum(m_maincpu);
/* video hardware */
BUFFERED_SPRITERAM8(config, m_spriteram);
diff --git a/src/mame/drivers/slapshot.cpp b/src/mame/drivers/slapshot.cpp
index f9c0708d87a..8fd07c58bcc 100644
--- a/src/mame/drivers/slapshot.cpp
+++ b/src/mame/drivers/slapshot.cpp
@@ -414,7 +414,7 @@ void slapshot_state::slapshot(machine_config &config)
z80_device &audiocpu(Z80(config, "audiocpu", 32000000/8)); /* 4 MHz */
audiocpu.set_addrmap(AS_PROGRAM, &slapshot_state::sound_map);
- config.m_minimum_quantum = attotime::from_hz(600);
+ config.set_maximum_quantum(attotime::from_hz(600));
TC0640FIO(config, m_tc0640fio, 0);
m_tc0640fio->read_1_callback().set_ioport("COINS");
@@ -473,7 +473,7 @@ void slapshot_state::opwolf3(machine_config &config)
z80_device &audiocpu(Z80(config, "audiocpu", 32000000/8)); /* 4 MHz */
audiocpu.set_addrmap(AS_PROGRAM, &slapshot_state::sound_map);
- config.m_minimum_quantum = attotime::from_hz(600);
+ config.set_maximum_quantum(attotime::from_hz(600));
adc0809_device &adc(ADC0809(config, "adc", 500000)); // unknown clock
adc.eoc_ff_callback().set_inputline("maincpu", 3);
diff --git a/src/mame/drivers/sms.cpp b/src/mame/drivers/sms.cpp
index 436e5c82351..661a7bb27b4 100644
--- a/src/mame/drivers/sms.cpp
+++ b/src/mame/drivers/sms.cpp
@@ -517,7 +517,7 @@ void sms_state::sms_ntsc_base(machine_config &config)
m_maincpu->set_addrmap(AS_PROGRAM, &sms_state::sms_mem);
m_maincpu->set_addrmap(AS_IO, &sms_state::sms_io);
- config.m_minimum_quantum = attotime::from_hz(60);
+ config.set_maximum_quantum(attotime::from_hz(60));
}
/*
@@ -665,7 +665,7 @@ void sms_state::sms_pal_base(machine_config &config)
m_maincpu->set_addrmap(AS_PROGRAM, &sms_state::sms_mem);
m_maincpu->set_addrmap(AS_IO, &sms_state::sms_io);
- config.m_minimum_quantum = attotime::from_hz(50);
+ config.set_maximum_quantum(attotime::from_hz(50));
}
void sms_state::sms2_pal(machine_config &config)
@@ -734,7 +734,7 @@ void sms_state::sms_paln_base(machine_config &config)
m_maincpu->set_addrmap(AS_PROGRAM, &sms_state::sms_mem);
m_maincpu->set_addrmap(AS_IO, &sms_state::sms_io);
- config.m_minimum_quantum = attotime::from_hz(50);
+ config.set_maximum_quantum(attotime::from_hz(50));
}
void sms_state::sms3_paln(machine_config &config)
@@ -804,7 +804,7 @@ void sms_state::sms_br_base(machine_config &config)
m_maincpu->set_addrmap(AS_IO, &sms_state::sms_io);
// PAL-M has near the same frequency of NTSC
- config.m_minimum_quantum = attotime::from_hz(60);
+ config.set_maximum_quantum(attotime::from_hz(60));
}
void sms_state::sms3_br(machine_config &config)
@@ -952,7 +952,7 @@ void gamegear_state::gamegear(machine_config &config)
m_maincpu->set_addrmap(AS_PROGRAM, &gamegear_state::sms_mem);
m_maincpu->set_addrmap(AS_IO, &gamegear_state::gg_io);
- config.m_minimum_quantum = attotime::from_hz(60);
+ config.set_maximum_quantum(attotime::from_hz(60));
/* video hardware */
SCREEN(config, m_main_scr, SCREEN_TYPE_LCD);
diff --git a/src/mame/drivers/sms_bootleg.cpp b/src/mame/drivers/sms_bootleg.cpp
index 86ece08634c..1c3fdd580ae 100644
--- a/src/mame/drivers/sms_bootleg.cpp
+++ b/src/mame/drivers/sms_bootleg.cpp
@@ -280,7 +280,7 @@ void smsbootleg_state::sms_supergame(machine_config &config)
m_maincpu->set_addrmap(AS_PROGRAM, &smsbootleg_state::sms_supergame_map);
m_maincpu->set_addrmap(AS_IO, &smsbootleg_state::sms_supergame_io);
- config.m_minimum_quantum = attotime::from_hz(60);
+ config.set_maximum_quantum(attotime::from_hz(60));
/* sound hardware */
SPEAKER(config, "mono").front_center();
diff --git a/src/mame/drivers/smsmcorp.cpp b/src/mame/drivers/smsmcorp.cpp
index 6839e4c8286..7138dd742c2 100644
--- a/src/mame/drivers/smsmcorp.cpp
+++ b/src/mame/drivers/smsmcorp.cpp
@@ -559,7 +559,7 @@ void smsmfg_state::sms(machine_config &config)
z80_device &soundcpu(Z80(config, "soundcpu", XTAL(16'000'000)/8));
soundcpu.set_addrmap(AS_PROGRAM, &smsmfg_state::sub_map);
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
i8255_device &ppi0(I8255A(config, "ppi8255_0"));
ppi0.out_pa_callback().set(FUNC(smsmfg_state::ppi0_a_w));
diff --git a/src/mame/drivers/snes.cpp b/src/mame/drivers/snes.cpp
index dc12b34e97b..dc622fdbd55 100644
--- a/src/mame/drivers/snes.cpp
+++ b/src/mame/drivers/snes.cpp
@@ -1345,8 +1345,8 @@ void snes_console_state::snes(machine_config &config)
SPC700(config, m_soundcpu, XTAL(24'576'000) / 12);
m_soundcpu->set_addrmap(AS_PROGRAM, &snes_console_state::spc_map);
- //config.m_minimum_quantum = attotime::from_hz(48000);
- config.m_perfect_cpu_quantum = subtag("maincpu");
+ //config.set_maximum_quantum(attotime::from_hz(48000));
+ config.set_perfect_quantum(m_maincpu);
/* video hardware */
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
diff --git a/src/mame/drivers/snesb.cpp b/src/mame/drivers/snesb.cpp
index 27ff7b6cc57..8d3f6e3e62b 100644
--- a/src/mame/drivers/snesb.cpp
+++ b/src/mame/drivers/snesb.cpp
@@ -764,7 +764,7 @@ void snesb_state::kinstb(machine_config &config)
SPC700(config, m_soundcpu, XTAL(24'576'000) / 12);
m_soundcpu->set_addrmap(AS_PROGRAM, &snesb_state::spc_mem);
- config.m_perfect_cpu_quantum = subtag("maincpu");
+ config.set_perfect_quantum(m_maincpu);
/* video hardware */
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
diff --git a/src/mame/drivers/snk.cpp b/src/mame/drivers/snk.cpp
index d9a3f6970df..cf511f2d217 100644
--- a/src/mame/drivers/snk.cpp
+++ b/src/mame/drivers/snk.cpp
@@ -3622,7 +3622,7 @@ void snk_state::marvins(machine_config &config)
m_audiocpu->set_addrmap(AS_IO, &snk_state::marvins_sound_portmap);
m_audiocpu->set_periodic_int(FUNC(snk_state::nmi_line_assert), attotime::from_hz(244)); // schematics show a separate 244Hz timer
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
/* video hardware */
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
@@ -3684,7 +3684,7 @@ void snk_state::jcross(machine_config &config)
m_audiocpu->set_addrmap(AS_IO, &snk_state::jcross_sound_portmap);
m_audiocpu->set_periodic_int(FUNC(snk_state::irq0_line_assert), attotime::from_hz(244)); // Marvin's frequency, sounds ok
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
/* video hardware */
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
@@ -3755,7 +3755,7 @@ void snk_state::tnk3(machine_config &config)
Z80(config, m_audiocpu, XTAL(8'000'000)/2); /* verified on pcb */
m_audiocpu->set_addrmap(AS_PROGRAM, &snk_state::tnk3_YM3526_sound_map);
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
/* video hardware */
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
@@ -3848,7 +3848,7 @@ void snk_state::ikari(machine_config &config)
Z80(config, m_audiocpu, XTAL(8'000'000)/2); /* verified on pcb */
m_audiocpu->set_addrmap(AS_PROGRAM, &snk_state::YM3526_YM3526_sound_map);
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
/* video hardware */
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
@@ -3905,7 +3905,7 @@ void snk_state::bermudat(machine_config &config)
Z80(config, m_audiocpu, XTAL(8'000'000)/2); /* verified on pcb */
m_audiocpu->set_addrmap(AS_PROGRAM, &snk_state::YM3526_Y8950_sound_map);
- config.m_minimum_quantum = attotime::from_hz(24000);
+ config.set_maximum_quantum(attotime::from_hz(24000));
/* video hardware */
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
@@ -3988,7 +3988,7 @@ void snk_state::tdfever(machine_config &config)
Z80(config, m_audiocpu, 4000000);
m_audiocpu->set_addrmap(AS_PROGRAM, &snk_state::YM3526_Y8950_sound_map);
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
/* video hardware */
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
diff --git a/src/mame/drivers/socrates.cpp b/src/mame/drivers/socrates.cpp
index cdc5d4af696..cbabcfb7a09 100644
--- a/src/mame/drivers/socrates.cpp
+++ b/src/mame/drivers/socrates.cpp
@@ -1489,7 +1489,7 @@ void socrates_state::socrates(machine_config &config)
m_maincpu->set_addrmap(AS_PROGRAM, &socrates_state::socrates_mem);
m_maincpu->set_addrmap(AS_IO, &socrates_state::socrates_io);
m_maincpu->set_vblank_int("screen", FUNC(socrates_state::assert_irq));
- config.m_minimum_quantum = attotime::from_hz(60);
+ config.set_maximum_quantum(attotime::from_hz(60));
ADDRESS_MAP_BANK(config, "rombank1").set_map(&socrates_state::socrates_rombank_map).set_options(ENDIANNESS_LITTLE, 8, 32, 0x4000);
ADDRESS_MAP_BANK(config, "rambank1").set_map(&socrates_state::socrates_rambank_map).set_options(ENDIANNESS_LITTLE, 8, 32, 0x4000);
@@ -1522,7 +1522,7 @@ void socrates_state::socrates_pal(machine_config &config)
m_maincpu->set_clock(XTAL(26'601'712)/8); // XTAL verified, divider NOT verified; this is a later ASIC so the divider may be different
- config.m_minimum_quantum = attotime::from_hz(50);
+ config.set_maximum_quantum(attotime::from_hz(50));
m_screen->set_refresh_hz(50);
m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); // not accurate
diff --git a/src/mame/drivers/softbox.cpp b/src/mame/drivers/softbox.cpp
index 634bb426a93..1d9d7cb6ef2 100644
--- a/src/mame/drivers/softbox.cpp
+++ b/src/mame/drivers/softbox.cpp
@@ -397,7 +397,7 @@ void softbox_state::softbox(machine_config &config)
HARDDISK(config, "harddisk3", "corvus_hdd");
HARDDISK(config, "harddisk4", "corvus_hdd");
- imi7000_bus_device::add_config(config, "imi5000h", nullptr, nullptr, nullptr);
+ IMI7000_BUS(config, "imi7000").set_slot_default_options("imi5000h", nullptr, nullptr, nullptr);
// software lists
SOFTWARE_LIST(config, "flop_list").set_original("softbox");
diff --git a/src/mame/drivers/sothello.cpp b/src/mame/drivers/sothello.cpp
index a02039dd890..450af20c0c8 100644
--- a/src/mame/drivers/sothello.cpp
+++ b/src/mame/drivers/sothello.cpp
@@ -368,7 +368,7 @@ void sothello_state::sothello(machine_config &config)
MC6809(config, m_subcpu, XTAL(8'000'000)); // divided by 4 internally
m_subcpu->set_addrmap(AS_PROGRAM, &sothello_state::subcpu_mem_map);
- config.m_minimum_quantum = attotime::from_hz(600);
+ config.set_maximum_quantum(attotime::from_hz(600));
/* video hardware */
v9938_device &v9938(V9938(config, "v9938", XTAL(21'477'272)));
diff --git a/src/mame/drivers/spacefb.cpp b/src/mame/drivers/spacefb.cpp
index fb22b3b12a7..4ec3050251c 100644
--- a/src/mame/drivers/spacefb.cpp
+++ b/src/mame/drivers/spacefb.cpp
@@ -344,7 +344,7 @@ void spacefb_state::spacefb(machine_config &config)
m_audiocpu->t0_in_cb().set(FUNC(spacefb_state::audio_t0_r));
m_audiocpu->t1_in_cb().set(FUNC(spacefb_state::audio_t1_r));
- config.m_minimum_quantum = attotime::from_hz(180);
+ config.set_maximum_quantum(attotime::from_hz(180));
/* video hardware */
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
diff --git a/src/mame/drivers/spdheat.cpp b/src/mame/drivers/spdheat.cpp
index 8b8066ee9b6..29d32f4b51b 100644
--- a/src/mame/drivers/spdheat.cpp
+++ b/src/mame/drivers/spdheat.cpp
@@ -689,7 +689,7 @@ void spdheat_state::spdheat(machine_config &config)
m_subcpu->set_addrmap(AS_PROGRAM, &spdheat_state::sub_map);
m_subcpu->set_addrmap(AS_IO, &spdheat_state::sub_io_map);
- config.m_minimum_quantum = attotime::from_hz(600);
+ config.set_maximum_quantum(attotime::from_hz(600));
/* video hardware */
GFXDECODE(config, m_gfxdecode, m_palette0, gfx_spdheat); // TODO?
diff --git a/src/mame/drivers/spec128.cpp b/src/mame/drivers/spec128.cpp
index 30c3cff92b9..79db8d0b487 100644
--- a/src/mame/drivers/spec128.cpp
+++ b/src/mame/drivers/spec128.cpp
@@ -323,7 +323,7 @@ void spectrum_state::spectrum_128(machine_config &config)
m_maincpu->set_addrmap(AS_IO, &spectrum_state::spectrum_128_io);
m_maincpu->set_addrmap(AS_OPCODES, &spectrum_state::spectrum_128_fetch);
m_maincpu->set_vblank_int("screen", FUNC(spectrum_state::spec_interrupt));
- config.m_minimum_quantum = attotime::from_hz(60);
+ config.set_maximum_quantum(attotime::from_hz(60));
MCFG_MACHINE_RESET_OVERRIDE(spectrum_state, spectrum_128 )
diff --git a/src/mame/drivers/spectrum.cpp b/src/mame/drivers/spectrum.cpp
index 56acc9e4696..07ab5e8ce22 100644
--- a/src/mame/drivers/spectrum.cpp
+++ b/src/mame/drivers/spectrum.cpp
@@ -710,7 +710,7 @@ void spectrum_state::spectrum_common(machine_config &config)
ADDRESS_MAP_BANK(config, m_specmem).set_map(&spectrum_state::spectrum_map).set_options(ENDIANNESS_LITTLE, 8, 16, 0x10000);
- config.m_minimum_quantum = attotime::from_hz(60);
+ config.set_maximum_quantum(attotime::from_hz(60));
MCFG_MACHINE_RESET_OVERRIDE(spectrum_state, spectrum )
diff --git a/src/mame/drivers/speglsht.cpp b/src/mame/drivers/speglsht.cpp
index 468036d75a6..417d9d38c1b 100644
--- a/src/mame/drivers/speglsht.cpp
+++ b/src/mame/drivers/speglsht.cpp
@@ -426,7 +426,7 @@ void speglsht_state::speglsht(machine_config &config)
m_subcpu->set_addrmap(AS_PROGRAM, &speglsht_state::speglsht_mem);
m_subcpu->set_vblank_int("screen", FUNC(speglsht_state::irq4_line_assert));
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
MCFG_MACHINE_RESET_OVERRIDE(speglsht_state,speglsht)
/* video hardware */
diff --git a/src/mame/drivers/sprcros2.cpp b/src/mame/drivers/sprcros2.cpp
index 91a6caefa6b..2dc6805389c 100644
--- a/src/mame/drivers/sprcros2.cpp
+++ b/src/mame/drivers/sprcros2.cpp
@@ -467,7 +467,7 @@ void sprcros2_state::sprcros2(machine_config &config)
m_slave_cpu->set_addrmap(AS_IO, &sprcros2_state::slave_io);
m_slave_cpu->set_vblank_int("screen", FUNC(sprcros2_state::slave_vblank_irq));
- config.m_perfect_cpu_quantum = subtag("master_cpu");
+ config.set_perfect_quantum(m_master_cpu);
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
diff --git a/src/mame/drivers/srmp5.cpp b/src/mame/drivers/srmp5.cpp
index 8e22cfc6548..050c8520655 100644
--- a/src/mame/drivers/srmp5.cpp
+++ b/src/mame/drivers/srmp5.cpp
@@ -579,7 +579,7 @@ void srmp5_state::srmp5(machine_config &config)
m_soundcpu->set_addrmap(AS_IO, &srmp5_state::st0016_io);
m_soundcpu->set_vblank_int("screen", FUNC(srmp5_state::irq0_line_hold));
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
diff --git a/src/mame/drivers/sshangha.cpp b/src/mame/drivers/sshangha.cpp
index 673de4f8907..6a820da2c52 100644
--- a/src/mame/drivers/sshangha.cpp
+++ b/src/mame/drivers/sshangha.cpp
@@ -421,7 +421,7 @@ void sshangha_state::sshangha(machine_config &config)
m_audiocpu->set_addrmap(AS_PROGRAM, &sshangha_state::sound_map);
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
screen_device& screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
screen.set_refresh_hz(60);
diff --git a/src/mame/drivers/ssv.cpp b/src/mame/drivers/ssv.cpp
index d06c841ee26..19495b28dce 100644
--- a/src/mame/drivers/ssv.cpp
+++ b/src/mame/drivers/ssv.cpp
@@ -2624,7 +2624,7 @@ void ssv_state::drifto94(machine_config &config)
m_dsp->set_addrmap(AS_PROGRAM, &ssv_state::dsp_prg_map);
m_dsp->set_addrmap(AS_DATA, &ssv_state::dsp_data_map);
- config.m_perfect_cpu_quantum = subtag("maincpu");
+ config.set_perfect_quantum(m_maincpu);
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
@@ -2798,7 +2798,7 @@ void ssv_state::stmblade(machine_config &config)
m_dsp->set_addrmap(AS_DATA, &ssv_state::dsp_data_map);
/* don't need this, game just does a simple check at boot then the DSP stalls into a tight loop. */
- //config.m_perfect_cpu_quantum = subtag("maincpu");
+ //config.set_perfect_quantum(m_maincpu);
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
@@ -2907,7 +2907,7 @@ void ssv_state::twineag2(machine_config &config)
m_dsp->set_addrmap(AS_PROGRAM, &ssv_state::dsp_prg_map);
m_dsp->set_addrmap(AS_DATA, &ssv_state::dsp_data_map);
- config.m_perfect_cpu_quantum = subtag("maincpu");
+ config.set_perfect_quantum(m_maincpu);
WATCHDOG_TIMER(config, "watchdog");
diff --git a/src/mame/drivers/stfight.cpp b/src/mame/drivers/stfight.cpp
index aced326840d..114a87388b6 100644
--- a/src/mame/drivers/stfight.cpp
+++ b/src/mame/drivers/stfight.cpp
@@ -476,7 +476,7 @@ void stfight_state::stfight_base(machine_config &config)
m_mcu->portb_w().set(FUNC(stfight_state::stfight_68705_port_b_w));
m_mcu->portc_w().set(FUNC(stfight_state::stfight_68705_port_c_w));
- config.m_minimum_quantum = attotime::from_hz(600);
+ config.set_maximum_quantum(attotime::from_hz(600));
PALETTE(config, "palette").set_format(palette_device::xBRG_444, 256);
diff --git a/src/mame/drivers/suna16.cpp b/src/mame/drivers/suna16.cpp
index fd7d424ab66..c7f862a76de 100644
--- a/src/mame/drivers/suna16.cpp
+++ b/src/mame/drivers/suna16.cpp
@@ -834,7 +834,7 @@ void suna16_state::bssoccer(machine_config &config)
m_pcm2->set_addrmap(AS_PROGRAM, &suna16_state::bssoccer_pcm_2_map);
m_pcm2->set_addrmap(AS_IO, &suna16_state::bssoccer_pcm_2_io_map);
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
MCFG_MACHINE_START_OVERRIDE(suna16_state,bssoccer)
@@ -898,7 +898,7 @@ void suna16_state::uballoon(machine_config &config)
/* 2nd PCM Z80 missing */
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
MCFG_MACHINE_START_OVERRIDE(suna16_state,uballoon)
MCFG_MACHINE_RESET_OVERRIDE(suna16_state,uballoon)
@@ -956,7 +956,7 @@ void suna16_state::sunaq(machine_config &config)
/* 2nd PCM Z80 missing */
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
MCFG_MACHINE_START_OVERRIDE(suna16_state,uballoon)
MCFG_MACHINE_RESET_OVERRIDE(suna16_state,uballoon)
@@ -1019,7 +1019,7 @@ void suna16_state::bestbest(machine_config &config)
/* 2nd PCM Z80 missing */
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
MCFG_MACHINE_START_OVERRIDE(suna16_state, bestbest)
diff --git a/src/mame/drivers/superchs.cpp b/src/mame/drivers/superchs.cpp
index cb9598c0481..b566d1244fc 100644
--- a/src/mame/drivers/superchs.cpp
+++ b/src/mame/drivers/superchs.cpp
@@ -210,7 +210,7 @@ void superchs_state::superchs(machine_config &config)
m_subcpu->set_addrmap(AS_PROGRAM, &superchs_state::superchs_cpub_map);
m_subcpu->set_vblank_int("screen", FUNC(superchs_state::irq4_line_hold));
- config.m_minimum_quantum = attotime::from_hz(480); /* Need to interleave CPU 1 & 3 */
+ config.set_maximum_quantum(attotime::from_hz(480)); /* Need to interleave CPU 1 & 3 */
EEPROM_93C46_16BIT(config, "eeprom");
diff --git a/src/mame/drivers/supracan.cpp b/src/mame/drivers/supracan.cpp
index 8203aae4d12..16665d42813 100644
--- a/src/mame/drivers/supracan.cpp
+++ b/src/mame/drivers/supracan.cpp
@@ -2074,8 +2074,7 @@ void supracan_state::supracan(machine_config &config)
m_soundcpu->set_addrmap(AS_PROGRAM, &supracan_state::supracan_sound_mem);
m_soundcpu->set_vblank_int("screen", FUNC(supracan_state::sound_irq));
- config.m_perfect_cpu_quantum = subtag("maincpu");
- config.m_perfect_cpu_quantum = subtag("soundcpu");
+ config.set_perfect_quantum(m_soundcpu);
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
m_screen->set_raw(XTAL(10'738'635)/2, 348, 0, 256, 256, 0, 240); /* No idea if this is correct */
diff --git a/src/mame/drivers/system1.cpp b/src/mame/drivers/system1.cpp
index b970cf7f7e6..58cb939e2e0 100644
--- a/src/mame/drivers/system1.cpp
+++ b/src/mame/drivers/system1.cpp
@@ -2173,7 +2173,7 @@ void system1_state::sys1ppi(machine_config &config)
TIMER(config, "soundirq", 0).configure_scanline(FUNC(system1_state::soundirq_gen), "screen", 32, 64);
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
I8255A(config, m_ppi8255);
m_ppi8255->out_pa_callback().set(FUNC(system1_state::soundport_w));
diff --git a/src/mame/drivers/taito_b.cpp b/src/mame/drivers/taito_b.cpp
index 9ead813b58a..36954a57171 100644
--- a/src/mame/drivers/taito_b.cpp
+++ b/src/mame/drivers/taito_b.cpp
@@ -1738,7 +1738,7 @@ void taitob_state::rastsag2(machine_config &config)
Z80(config, m_audiocpu, 16_MHz_XTAL / 4); /* 4 MHz */
m_audiocpu->set_addrmap(AS_PROGRAM, &taitob_state::sound_map);
- config.m_minimum_quantum = attotime::from_hz(600);
+ config.set_maximum_quantum(attotime::from_hz(600));
TC0220IOC(config, m_tc0220ioc, 0);
m_tc0220ioc->read_0_callback().set_ioport("DSWA");
@@ -1792,7 +1792,7 @@ void taitob_state::masterw(machine_config &config)
Z80(config, m_audiocpu, 24_MHz_XTAL / 4); /* 6 MHz Z80B */
m_audiocpu->set_addrmap(AS_PROGRAM, &taitob_state::masterw_sound_map);
- config.m_minimum_quantum = attotime::from_hz(600);
+ config.set_maximum_quantum(attotime::from_hz(600));
tc0040ioc_device &tc0040ioc(TC0040IOC(config, "tc0040ioc", 0));
tc0040ioc.read_0_callback().set_ioport("DSWA");
@@ -1863,7 +1863,7 @@ void taitob_state::ashura(machine_config &config)
Z80(config, m_audiocpu, 16_MHz_XTAL / 4); /* 4 MHz */
m_audiocpu->set_addrmap(AS_PROGRAM, &taitob_state::sound_map);
- config.m_minimum_quantum = attotime::from_hz(600);
+ config.set_maximum_quantum(attotime::from_hz(600));
TC0220IOC(config, m_tc0220ioc, 0);
m_tc0220ioc->read_0_callback().set_ioport("DSWA");
@@ -1917,7 +1917,7 @@ void taitob_state::crimec(machine_config &config)
Z80(config, m_audiocpu, 16_MHz_XTAL / 4); /* 4 MHz */
m_audiocpu->set_addrmap(AS_PROGRAM, &taitob_state::sound_map);
- config.m_minimum_quantum = attotime::from_hz(600);
+ config.set_maximum_quantum(attotime::from_hz(600));
TC0220IOC(config, m_tc0220ioc, 0);
m_tc0220ioc->read_0_callback().set_ioport("DSWA");
@@ -1971,7 +1971,7 @@ void hitice_state::hitice(machine_config &config)
Z80(config, m_audiocpu, 24_MHz_XTAL / 4); /* 6 MHz Z80B */
m_audiocpu->set_addrmap(AS_PROGRAM, &hitice_state::viofight_sound_map);
- config.m_minimum_quantum = attotime::from_hz(600);
+ config.set_maximum_quantum(attotime::from_hz(600));
TC0220IOC(config, m_tc0220ioc, 0);
m_tc0220ioc->read_0_callback().set_ioport("DSWA");
@@ -2030,7 +2030,7 @@ void taitob_state::rambo3p(machine_config &config)
Z80(config, m_audiocpu, 16_MHz_XTAL / 4); /* verified on pcb */
m_audiocpu->set_addrmap(AS_PROGRAM, &taitob_state::sound_map);
- config.m_minimum_quantum = attotime::from_hz(600);
+ config.set_maximum_quantum(attotime::from_hz(600));
TC0220IOC(config, m_tc0220ioc, 0);
m_tc0220ioc->read_0_callback().set_ioport("DSWA");
@@ -2084,7 +2084,7 @@ void taitob_state::rambo3(machine_config &config)
Z80(config, m_audiocpu, 16_MHz_XTAL / 4); /* 4MHz verified on pcb */
m_audiocpu->set_addrmap(AS_PROGRAM, &taitob_state::sound_map);
- config.m_minimum_quantum = attotime::from_hz(600);
+ config.set_maximum_quantum(attotime::from_hz(600));
TC0220IOC(config, m_tc0220ioc, 0);
m_tc0220ioc->read_0_callback().set_ioport("DSWA");
@@ -2138,7 +2138,7 @@ void taitob_state::pbobble(machine_config &config)
Z80(config, m_audiocpu, 16_MHz_XTAL / 2); /* 4 MHz */
m_audiocpu->set_addrmap(AS_PROGRAM, &taitob_state::sound_map);
- config.m_minimum_quantum = attotime::from_hz(600);
+ config.set_maximum_quantum(attotime::from_hz(600));
EEPROM_93C46_16BIT(config, "eeprom");
@@ -2197,7 +2197,7 @@ void taitob_state::spacedx(machine_config &config)
Z80(config, m_audiocpu, 16_MHz_XTAL / 4); /* 4 MHz */
m_audiocpu->set_addrmap(AS_PROGRAM, &taitob_state::sound_map);
- config.m_minimum_quantum = attotime::from_hz(600);
+ config.set_maximum_quantum(attotime::from_hz(600));
EEPROM_93C46_16BIT(config, "eeprom");
@@ -2256,7 +2256,7 @@ void taitob_state::spacedxo(machine_config &config)
Z80(config, m_audiocpu, 16_MHz_XTAL / 4); /* 4 MHz */
m_audiocpu->set_addrmap(AS_PROGRAM, &taitob_state::sound_map);
- config.m_minimum_quantum = attotime::from_hz(600);
+ config.set_maximum_quantum(attotime::from_hz(600));
TC0220IOC(config, m_tc0220ioc, 0);
m_tc0220ioc->read_0_callback().set_ioport("DSWA");
@@ -2310,7 +2310,7 @@ void taitob_state::qzshowby(machine_config &config)
Z80(config, m_audiocpu, 4000000); /* 4 MHz */
m_audiocpu->set_addrmap(AS_PROGRAM, &taitob_state::sound_map);
- config.m_minimum_quantum = attotime::from_hz(600);
+ config.set_maximum_quantum(attotime::from_hz(600));
EEPROM_93C46_16BIT(config, "eeprom");
@@ -2369,7 +2369,7 @@ void taitob_state::viofight(machine_config &config)
Z80(config, m_audiocpu, 24_MHz_XTAL / 4); /* 6 MHz verified */
m_audiocpu->set_addrmap(AS_PROGRAM, &taitob_state::viofight_sound_map);
- config.m_minimum_quantum = attotime::from_hz(600);
+ config.set_maximum_quantum(attotime::from_hz(600));
TC0220IOC(config, m_tc0220ioc, 0);
m_tc0220ioc->read_0_callback().set_ioport("DSWA");
@@ -2428,7 +2428,7 @@ void taitob_state::silentd(machine_config &config)
Z80(config, m_audiocpu, 16_MHz_XTAL / 4); /* 4 MHz */
m_audiocpu->set_addrmap(AS_PROGRAM, &taitob_state::sound_map);
- config.m_minimum_quantum = attotime::from_hz(600);
+ config.set_maximum_quantum(attotime::from_hz(600));
TC0220IOC(config, m_tc0220ioc, 0);
m_tc0220ioc->read_0_callback().set_ioport("DSWA");
@@ -2482,7 +2482,7 @@ void taitob_state::selfeena(machine_config &config)
Z80(config, m_audiocpu, 16_MHz_XTAL / 4); /* 4 MHz */
m_audiocpu->set_addrmap(AS_PROGRAM, &taitob_state::sound_map);
- config.m_minimum_quantum = attotime::from_hz(600);
+ config.set_maximum_quantum(attotime::from_hz(600));
TC0220IOC(config, m_tc0220ioc, 0);
m_tc0220ioc->read_0_callback().set_ioport("DSWA");
@@ -2545,7 +2545,7 @@ void taitob_state::ryujin(machine_config &config)
Z80(config, m_audiocpu, 16_MHz_XTAL / 4); /* 4 MHz */
m_audiocpu->set_addrmap(AS_PROGRAM, &taitob_state::sound_map);
- config.m_minimum_quantum = attotime::from_hz(600);
+ config.set_maximum_quantum(attotime::from_hz(600));
TC0220IOC(config, m_tc0220ioc, 0);
m_tc0220ioc->read_0_callback().set_ioport("DSWA");
@@ -2606,7 +2606,7 @@ void taitob_state::sbm(machine_config &config)
Z80(config, m_audiocpu, 4000000); /* 4 MHz */
m_audiocpu->set_addrmap(AS_PROGRAM, &taitob_state::sound_map);
- config.m_minimum_quantum = attotime::from_hz(600);
+ config.set_maximum_quantum(attotime::from_hz(600));
TC0510NIO(config, m_tc0510nio, 0);
m_tc0510nio->read_0_callback().set_ioport("DSWA");
@@ -2660,7 +2660,7 @@ void taitob_c_state::realpunc(machine_config &config)
Z80(config, m_audiocpu, 6000000);
m_audiocpu->set_addrmap(AS_PROGRAM, &taitob_c_state::sound_map);
- config.m_minimum_quantum = attotime::from_hz(600);
+ config.set_maximum_quantum(attotime::from_hz(600));
TC0510NIO(config, m_tc0510nio, 0);
m_tc0510nio->read_0_callback().set_ioport("DSWA");
diff --git a/src/mame/drivers/taito_h.cpp b/src/mame/drivers/taito_h.cpp
index 1abb6acd715..0753d2d71b1 100644
--- a/src/mame/drivers/taito_h.cpp
+++ b/src/mame/drivers/taito_h.cpp
@@ -609,7 +609,7 @@ void taitoh_state::syvalion(machine_config &config)
Z80(config, m_audiocpu, XTAL(8'000'000) / 2); /* 4 MHz ??? */
m_audiocpu->set_addrmap(AS_PROGRAM, &taitoh_state::sound_map);
- config.m_minimum_quantum = attotime::from_hz(600);
+ config.set_maximum_quantum(attotime::from_hz(600));
TC0040IOC(config, m_tc0040ioc, 0);
m_tc0040ioc->read_0_callback().set_ioport("DSWA");
@@ -659,7 +659,7 @@ void taitoh_state::recordbr(machine_config &config)
Z80(config, m_audiocpu, XTAL(8'000'000) / 2); /* 4 MHz */
m_audiocpu->set_addrmap(AS_PROGRAM, &taitoh_state::sound_map);
- config.m_minimum_quantum = attotime::from_hz(600);
+ config.set_maximum_quantum(attotime::from_hz(600));
TC0040IOC(config, m_tc0040ioc, 0);
m_tc0040ioc->read_0_callback().set_ioport("DSWA");
@@ -719,7 +719,7 @@ void taitoh_state::dleague(machine_config &config)
Z80(config, m_audiocpu, XTAL(8'000'000) / 2); /* 4 MHz ??? */
m_audiocpu->set_addrmap(AS_PROGRAM, &taitoh_state::sound_map);
- config.m_minimum_quantum = attotime::from_hz(600);
+ config.set_maximum_quantum(attotime::from_hz(600));
tc0220ioc_device &tc0220ioc(TC0220IOC(config, "tc0220ioc", 0));
tc0220ioc.read_0_callback().set_ioport("DSWA");
diff --git a/src/mame/drivers/taito_l.cpp b/src/mame/drivers/taito_l.cpp
index 07dcadbe3c7..ea1f93ea2b9 100644
--- a/src/mame/drivers/taito_l.cpp
+++ b/src/mame/drivers/taito_l.cpp
@@ -1488,7 +1488,7 @@ void fhawk_state::fhawk(machine_config &config)
slave.set_addrmap(AS_PROGRAM, &fhawk_state::fhawk_2_map);
slave.set_vblank_int("screen", FUNC(taitol_state::irq0_line_hold));
- config.m_perfect_cpu_quantum = subtag("maincpu");
+ config.set_perfect_quantum(m_main_cpu);
tc0220ioc_device &tc0220ioc(TC0220IOC(config, "tc0220ioc", 0));
tc0220ioc.read_0_callback().set_ioport("DSWA");
@@ -1553,7 +1553,7 @@ void taitol_2cpu_state::raimais(machine_config &config)
slave.set_addrmap(AS_PROGRAM, &taitol_2cpu_state::raimais_2_map);
slave.set_vblank_int("screen", FUNC(taitol_state::irq0_line_hold));
- config.m_perfect_cpu_quantum = subtag("maincpu");
+ config.set_perfect_quantum(m_main_cpu);
tc0040ioc_device &tc0040ioc(TC0040IOC(config, "tc0040ioc", 0));
tc0040ioc.read_0_callback().set_ioport("DSWA");
@@ -1596,7 +1596,7 @@ void taitol_2cpu_state::kurikint(machine_config &config)
m_audio_cpu->set_addrmap(AS_PROGRAM, &taitol_2cpu_state::kurikint_2_map);
m_audio_cpu->set_vblank_int("screen", FUNC(taitol_state::irq0_line_hold));
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
tc0040ioc_device &tc0040ioc(TC0040IOC(config, "tc0040ioc", 0));
tc0040ioc.read_0_callback().set_ioport("DSWA");
@@ -1739,7 +1739,7 @@ void taitol_2cpu_state::evilston(machine_config &config)
m_audio_cpu->set_addrmap(AS_PROGRAM, &taitol_2cpu_state::evilston_2_map);
m_audio_cpu->set_vblank_int("screen", FUNC(taitol_state::irq0_line_hold));
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
tc0510nio_device &tc0510nio(TC0510NIO(config, "tc0510nio", 0));
tc0510nio.read_0_callback().set_ioport("DSWA");
diff --git a/src/mame/drivers/taito_x.cpp b/src/mame/drivers/taito_x.cpp
index ad85b76df94..49f5906ad7e 100644
--- a/src/mame/drivers/taito_x.cpp
+++ b/src/mame/drivers/taito_x.cpp
@@ -822,7 +822,7 @@ void taitox_state::superman(machine_config &config)
TIMER(config, "cchip_irq_clear").configure_generic(FUNC(taitox_state::cchip_irq_clear_cb));
- config.m_minimum_quantum = attotime::from_hz(600); /* 10 CPU slices per frame - enough for the sound CPU to read all commands */
+ config.set_maximum_quantum(attotime::from_hz(600)); /* 10 CPU slices per frame - enough for the sound CPU to read all commands */
MCFG_MACHINE_START_OVERRIDE(taitox_state,taitox)
@@ -869,7 +869,7 @@ void taitox_state::daisenpu(machine_config &config)
Z80(config, m_audiocpu, XTAL(16'000'000)/4); /* verified on pcb */
m_audiocpu->set_addrmap(AS_PROGRAM, &taitox_state::daisenpu_sound_map);
- config.m_minimum_quantum = attotime::from_hz(600); /* 10 CPU slices per frame - enough for the sound CPU to read all commands */
+ config.set_maximum_quantum(attotime::from_hz(600)); /* 10 CPU slices per frame - enough for the sound CPU to read all commands */
MCFG_MACHINE_START_OVERRIDE(taitox_state,taitox)
@@ -914,7 +914,7 @@ void taitox_state::gigandes(machine_config &config)
Z80(config, m_audiocpu, 4000000); /* 4 MHz ??? */
m_audiocpu->set_addrmap(AS_PROGRAM, &taitox_state::sound_map);
- config.m_minimum_quantum = attotime::from_hz(600); /* 10 CPU slices per frame - enough for the sound CPU to read all commands */
+ config.set_maximum_quantum(attotime::from_hz(600)); /* 10 CPU slices per frame - enough for the sound CPU to read all commands */
MCFG_MACHINE_START_OVERRIDE(taitox_state,taitox)
@@ -961,7 +961,7 @@ void taitox_state::ballbros(machine_config &config)
Z80(config, m_audiocpu, 4000000); /* 4 MHz ??? */
m_audiocpu->set_addrmap(AS_PROGRAM, &taitox_state::sound_map);
- config.m_minimum_quantum = attotime::from_hz(600); /* 10 CPU slices per frame - enough for the sound CPU to read all commands */
+ config.set_maximum_quantum(attotime::from_hz(600)); /* 10 CPU slices per frame - enough for the sound CPU to read all commands */
MCFG_MACHINE_START_OVERRIDE(taitox_state,taitox)
diff --git a/src/mame/drivers/taito_z.cpp b/src/mame/drivers/taito_z.cpp
index 4855ffb9dec..365883db565 100644
--- a/src/mame/drivers/taito_z.cpp
+++ b/src/mame/drivers/taito_z.cpp
@@ -3282,7 +3282,7 @@ void taitoz_state::enforce(machine_config &config)
m_subcpu->set_addrmap(AS_PROGRAM, &taitoz_state::enforce_cpub_map);
m_subcpu->set_vblank_int("screen", FUNC(taitoz_state::irq6_line_hold));
- config.m_minimum_quantum = attotime::from_hz(600);
+ config.set_maximum_quantum(attotime::from_hz(600));
TC0040IOC(config, m_tc0040ioc, 0);
m_tc0040ioc->read_0_callback().set_ioport("DSWA");
@@ -3346,7 +3346,7 @@ void taitoz_state::bshark_base(machine_config &config)
m_subcpu->set_addrmap(AS_PROGRAM, &taitoz_state::bshark_cpub_map);
m_subcpu->set_vblank_int("screen", FUNC(taitoz_state::irq4_line_hold));
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
TC0220IOC(config, m_tc0220ioc, 0);
m_tc0220ioc->read_0_callback().set_ioport("DSWA");
@@ -3427,7 +3427,7 @@ void taitoz_state::sci(machine_config &config)
m_subcpu->set_addrmap(AS_PROGRAM, &taitoz_state::sci_cpub_map);
m_subcpu->set_vblank_int("screen", FUNC(taitoz_state::irq4_line_hold));
- config.m_minimum_quantum = attotime::from_hz(3000);
+ config.set_maximum_quantum(attotime::from_hz(3000));
TC0220IOC(config, m_tc0220ioc, 0);
m_tc0220ioc->read_0_callback().set_ioport("DSWA");
@@ -3493,7 +3493,7 @@ void taitoz_state::nightstr(machine_config &config)
m_subcpu->set_addrmap(AS_PROGRAM, &taitoz_state::nightstr_cpub_map);
m_subcpu->set_vblank_int("screen", FUNC(taitoz_state::irq4_line_hold));
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
adc0809_device &adc(ADC0809(config, "adc", 500000)); // clock unknown
adc.eoc_ff_callback().set_inputline("maincpu", 6);
@@ -3567,7 +3567,7 @@ void taitoz_state::aquajack(machine_config &config)
m_subcpu->set_addrmap(AS_PROGRAM, &taitoz_state::aquajack_cpub_map);
m_subcpu->set_vblank_int("screen", FUNC(taitoz_state::irq4_line_hold));
- config.m_minimum_quantum = attotime::from_hz(30000);
+ config.set_maximum_quantum(attotime::from_hz(30000));
TC0220IOC(config, m_tc0220ioc, 0);
m_tc0220ioc->read_0_callback().set_ioport("DSWA");
@@ -3700,7 +3700,7 @@ void taitoz_state::dblaxle(machine_config &config)
m_subcpu->set_vblank_int("screen", FUNC(taitoz_state::irq4_line_hold));
// make quantum time to be a multiple of the xtal (fixes road layer stuck on continue)
- config.m_minimum_quantum = attotime::from_hz(XTAL(32'000'000)/1024);
+ config.set_maximum_quantum(attotime::from_hz(XTAL(32'000'000)/1024));
TC0510NIO(config, m_tc0510nio, 0);
m_tc0510nio->read_0_callback().set_ioport("DSWA");
@@ -3767,7 +3767,7 @@ void taitoz_state::racingb(machine_config &config)
m_subcpu->set_addrmap(AS_PROGRAM, &taitoz_state::racingb_cpub_map);
m_subcpu->set_vblank_int("screen", FUNC(taitoz_state::irq4_line_hold));
- config.m_minimum_quantum = attotime::from_hz(600);
+ config.set_maximum_quantum(attotime::from_hz(600));
TC0510NIO(config, m_tc0510nio, 0);
m_tc0510nio->read_0_callback().set_ioport("DSWA");
diff --git a/src/mame/drivers/taitoair.cpp b/src/mame/drivers/taitoair.cpp
index 61970748df6..f9d14be6eee 100644
--- a/src/mame/drivers/taitoair.cpp
+++ b/src/mame/drivers/taitoair.cpp
@@ -687,7 +687,7 @@ void taitoair_state::airsys(machine_config &config)
m_dsp->hold_in_cb().set(FUNC(taitoair_state::dsp_HOLD_signal_r));
m_dsp->hold_ack_out_cb().set(FUNC(taitoair_state::dsp_HOLDA_signal_w));
- config.m_perfect_cpu_quantum = subtag("maincpu");
+ config.set_perfect_quantum(m_maincpu);
TC0220IOC(config, m_tc0220ioc, 0);
m_tc0220ioc->read_0_callback().set_ioport("DSWA");
diff --git a/src/mame/drivers/taitojc.cpp b/src/mame/drivers/taitojc.cpp
index fcd4f265752..dfc20c5491e 100644
--- a/src/mame/drivers/taitojc.cpp
+++ b/src/mame/drivers/taitojc.cpp
@@ -1100,7 +1100,7 @@ void taitojc_state::taitojc(machine_config &config)
m_dsp->set_addrmap(AS_PROGRAM, &taitojc_state::tms_program_map);
m_dsp->set_addrmap(AS_DATA, &taitojc_state::tms_data_map);
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
EEPROM_93C46_16BIT(config, "eeprom");
diff --git a/src/mame/drivers/taitopjc.cpp b/src/mame/drivers/taitopjc.cpp
index 2f8aa81665f..265f44160b7 100644
--- a/src/mame/drivers/taitopjc.cpp
+++ b/src/mame/drivers/taitopjc.cpp
@@ -797,7 +797,7 @@ void taitopjc_state::taitopjc(machine_config &config)
MN1020012A(config, m_soundcpu, 10000000); /* MN1020819DA sound CPU - NOTE: May have 64kB internal ROM */
m_soundcpu->set_addrmap(AS_PROGRAM, &taitopjc_state::mn10200_map);
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
diff --git a/src/mame/drivers/taitosj.cpp b/src/mame/drivers/taitosj.cpp
index bd637167fa3..5fc84fca1e8 100644
--- a/src/mame/drivers/taitosj.cpp
+++ b/src/mame/drivers/taitosj.cpp
@@ -1856,7 +1856,7 @@ void taitosj_state::mcu(machine_config &config)
m_mcu->m68intrq_cb().set(FUNC(taitosj_state::mcu_intrq_w));
m_mcu->busrq_cb().set(FUNC(taitosj_state::mcu_busrq_w));
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
}
diff --git a/src/mame/drivers/taitotz.cpp b/src/mame/drivers/taitotz.cpp
index 8d86d78168e..ec05ac2a020 100644
--- a/src/mame/drivers/taitotz.cpp
+++ b/src/mame/drivers/taitotz.cpp
@@ -2596,7 +2596,7 @@ void taitotz_state::taitotz(machine_config &config)
/* MN1020819DA sound CPU */
- config.m_minimum_quantum = attotime::from_hz(120);
+ config.set_maximum_quantum(attotime::from_hz(120));
ata_interface_device &ata(ATA_INTERFACE(config, "ata").options(ata_devices, "hdd", nullptr, true));
ata.irq_handler().set(FUNC(taitotz_state::ide_interrupt));
diff --git a/src/mame/drivers/tandy1t.cpp b/src/mame/drivers/tandy1t.cpp
index 432f967a9f4..8af3a78fbdb 100644
--- a/src/mame/drivers/tandy1t.cpp
+++ b/src/mame/drivers/tandy1t.cpp
@@ -645,13 +645,13 @@ void tandy1000_state::cfg_fdc_35(device_t *device)
{
dynamic_cast<device_slot_interface &>(*device->subdevice("fdc:0")).set_default_option("35dd");
dynamic_cast<device_slot_interface &>(*device->subdevice("fdc:0")).set_fixed(true);
- dynamic_cast<device_slot_interface &>(*device->subdevice("fdc:1")).set_default_option("");
+ dynamic_cast<device_slot_interface &>(*device->subdevice("fdc:1")).set_default_option(nullptr);
}
void tandy1000_state::cfg_fdc_525(device_t *device)
{
dynamic_cast<device_slot_interface &>(*device->subdevice("fdc:0")).set_fixed(true);
- dynamic_cast<device_slot_interface &>(*device->subdevice("fdc:1")).set_default_option("");
+ dynamic_cast<device_slot_interface &>(*device->subdevice("fdc:1")).set_default_option(nullptr);
}
static GFXDECODE_START( gfx_t1000 )
diff --git a/src/mame/drivers/tankbust.cpp b/src/mame/drivers/tankbust.cpp
index 5476548e37b..dc01c97d400 100644
--- a/src/mame/drivers/tankbust.cpp
+++ b/src/mame/drivers/tankbust.cpp
@@ -341,7 +341,7 @@ void tankbust_state::tankbust(machine_config &config)
m_subcpu->set_addrmap(AS_PROGRAM, &tankbust_state::map_cpu2);
m_subcpu->set_addrmap(AS_IO, &tankbust_state::port_map_cpu2);
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
/* video hardware */
diff --git a/src/mame/drivers/tapatune.cpp b/src/mame/drivers/tapatune.cpp
index c87b667425f..97af2505ce2 100644
--- a/src/mame/drivers/tapatune.cpp
+++ b/src/mame/drivers/tapatune.cpp
@@ -552,7 +552,7 @@ void tapatune_state::tapatune(machine_config &config)
M68000(config, m_videocpu, XTAL(24'000'000) / 2);
m_videocpu->set_addrmap(AS_PROGRAM, &tapatune_state::video_map);
- config.m_perfect_cpu_quantum = subtag("videocpu");
+ config.set_perfect_quantum(m_videocpu);
hd6845s_device &crtc(HD6845S(config, "crtc", XTAL(24'000'000) / 16));
crtc.set_screen("screen");
diff --git a/src/mame/drivers/targeth.cpp b/src/mame/drivers/targeth.cpp
index 1a2fd35e41a..7a5857d8e0e 100644
--- a/src/mame/drivers/targeth.cpp
+++ b/src/mame/drivers/targeth.cpp
@@ -277,6 +277,7 @@ void targeth_state::targeth(machine_config &config)
gaelco_ds5002fp_device &ds5002fp(GAELCO_DS5002FP(config, "gaelco_ds5002fp", XTAL(24'000'000) / 2));
ds5002fp.set_addrmap(0, &targeth_state::mcu_hostmem_map);
+ config.set_perfect_quantum("gaelco_ds5002fp:mcu");
LS259(config, m_outlatch);
m_outlatch->q_out_cb<2>().set(FUNC(targeth_state::coin1_counter_w));
diff --git a/src/mame/drivers/tatsumi.cpp b/src/mame/drivers/tatsumi.cpp
index 05d25ff202f..3f1f4469d11 100644
--- a/src/mame/drivers/tatsumi.cpp
+++ b/src/mame/drivers/tatsumi.cpp
@@ -882,7 +882,7 @@ void apache3_state::apache3(machine_config &config)
m_subcpu2->set_addrmap(AS_PROGRAM, &apache3_state::apache3_z80_map);
m_subcpu2->set_vblank_int("screen", FUNC(apache3_state::irq0_line_hold));
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
MCFG_MACHINE_RESET_OVERRIDE(apache3_state, apache3)
@@ -942,7 +942,7 @@ void roundup5_state::roundup5(machine_config &config)
Z80(config, m_audiocpu, CLOCK_1 / 4);
m_audiocpu->set_addrmap(AS_PROGRAM, &roundup5_state::roundup5_z80_map);
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
i8255_device &ppi(I8255(config, "ppi"));
ppi.in_pa_callback().set_ioport("IN0");
@@ -1015,7 +1015,7 @@ void cyclwarr_state::cyclwarr(machine_config &config)
m_audiocpu->set_addrmap(AS_PROGRAM, &cyclwarr_state::sound_map);
// saner sync value (avoids crashing after crediting)
- config.m_minimum_quantum = attotime::from_hz(CLOCK_2 / 1024);
+ config.set_maximum_quantum(attotime::from_hz(CLOCK_2 / 1024));
cxd1095_device &io1(CXD1095(config, "io1"));
io1.in_portb_cb().set_ioport("SERVICE");
diff --git a/src/mame/drivers/taxidriv.cpp b/src/mame/drivers/taxidriv.cpp
index 0afed3f42b1..bc720f2d429 100644
--- a/src/mame/drivers/taxidriv.cpp
+++ b/src/mame/drivers/taxidriv.cpp
@@ -347,7 +347,7 @@ void taxidriv_state::taxidriv(machine_config &config)
audiocpu.set_addrmap(AS_IO, &taxidriv_state::cpu3_port_map);
audiocpu.set_vblank_int("screen", FUNC(taxidriv_state::irq0_line_hold)); /* ??? */
- config.m_minimum_quantum = attotime::from_hz(6000); /* 100 CPU slices per frame - a high value to ensure proper */
+ config.set_maximum_quantum(attotime::from_hz(6000)); /* 100 CPU slices per frame - a high value to ensure proper */
/* synchronization of the CPUs */
i8255_device &ppi0(I8255A(config, "ppi8255_0"));
diff --git a/src/mame/drivers/tbowl.cpp b/src/mame/drivers/tbowl.cpp
index 2aeef2b04a6..1963ecfba4a 100644
--- a/src/mame/drivers/tbowl.cpp
+++ b/src/mame/drivers/tbowl.cpp
@@ -445,7 +445,7 @@ void tbowl_state::tbowl(machine_config &config)
Z80(config, m_audiocpu, 4000000); /* Actual Z80 */
m_audiocpu->set_addrmap(AS_PROGRAM, &tbowl_state::_6206A_map);
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
/* video hardware */
GFXDECODE(config, m_gfxdecode, m_palette, gfx_tbowl);
diff --git a/src/mame/drivers/tceptor.cpp b/src/mame/drivers/tceptor.cpp
index 103e81d7186..f9ea224dd4e 100644
--- a/src/mame/drivers/tceptor.cpp
+++ b/src/mame/drivers/tceptor.cpp
@@ -331,7 +331,7 @@ void tceptor_state::tceptor(machine_config &config)
HD63701(config, m_mcu, XTAL(49'152'000)/8); // or compatible 6808 with extra instructions
m_mcu->set_addrmap(AS_PROGRAM, &tceptor_state::mcu_map);
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_1);
diff --git a/src/mame/drivers/tecmo16.cpp b/src/mame/drivers/tecmo16.cpp
index a6cd1649785..ccdece3afc2 100644
--- a/src/mame/drivers/tecmo16.cpp
+++ b/src/mame/drivers/tecmo16.cpp
@@ -342,7 +342,7 @@ void tecmo16_state::fstarfrc(machine_config &config)
Z80(config, m_audiocpu, MASTER_CLOCK/6); /* 4MHz */
m_audiocpu->set_addrmap(AS_PROGRAM, &tecmo16_state::sound_map);
/* NMIs are triggered by the main CPU */
- config.m_minimum_quantum = attotime::from_hz(600);
+ config.set_maximum_quantum(attotime::from_hz(600));
/* video hardware */
BUFFERED_SPRITERAM16(config, m_spriteram);
diff --git a/src/mame/drivers/tehkanwc.cpp b/src/mame/drivers/tehkanwc.cpp
index d7270c31dd7..66566360155 100644
--- a/src/mame/drivers/tehkanwc.cpp
+++ b/src/mame/drivers/tehkanwc.cpp
@@ -681,7 +681,7 @@ void tehkanwc_state::tehkanwc(machine_config &config)
m_audiocpu->set_addrmap(AS_IO, &tehkanwc_state::sound_port);
m_audiocpu->set_vblank_int("screen", FUNC(tehkanwc_state::irq0_line_hold));
- config.m_minimum_quantum = attotime::from_hz(600); /* 10 CPU slices per frame - seems enough to keep the CPUs in sync */
+ config.set_maximum_quantum(attotime::from_hz(600)); /* 10 CPU slices per frame - seems enough to keep the CPUs in sync */
WATCHDOG_TIMER(config, "watchdog");
diff --git a/src/mame/drivers/thedeep.cpp b/src/mame/drivers/thedeep.cpp
index 1933eec9b16..e0fcb7c29cb 100644
--- a/src/mame/drivers/thedeep.cpp
+++ b/src/mame/drivers/thedeep.cpp
@@ -347,7 +347,7 @@ void thedeep_state::thedeep(machine_config &config)
/* IRQ by YM2203, NMI by when sound latch written by main cpu */
// needs a tight sync with the mcu
- config.m_perfect_cpu_quantum = subtag("maincpu");
+ config.set_perfect_quantum(m_maincpu);
// Intel C8751H-88 @ 8 MHz
I8751(config, m_mcu, 8_MHz_XTAL);
diff --git a/src/mame/drivers/thunderj.cpp b/src/mame/drivers/thunderj.cpp
index 53403e0eaa3..99a39eeccac 100644
--- a/src/mame/drivers/thunderj.cpp
+++ b/src/mame/drivers/thunderj.cpp
@@ -255,7 +255,7 @@ void thunderj_state::thunderj(machine_config &config)
WATCHDOG_TIMER(config, "watchdog");
/* perfect synchronization due to shared RAM */
- config.m_perfect_cpu_quantum = subtag("maincpu");
+ config.set_perfect_quantum(m_maincpu);
/* video hardware */
GFXDECODE(config, "gfxdecode", "palette", gfx_thunderj);
diff --git a/src/mame/drivers/tigeroad.cpp b/src/mame/drivers/tigeroad.cpp
index dde71784ede..d8b1ee271a0 100644
--- a/src/mame/drivers/tigeroad.cpp
+++ b/src/mame/drivers/tigeroad.cpp
@@ -714,7 +714,7 @@ void tigeroad_state::f1dream_comad(machine_config &config)
m_audiocpu->set_addrmap(AS_PROGRAM, &tigeroad_state::comad_sound_map);
m_audiocpu->set_addrmap(AS_IO, &tigeroad_state::comad_sound_io_map);
- config.m_minimum_quantum = attotime::from_hz(3600);
+ config.set_maximum_quantum(attotime::from_hz(3600));
/* video hardware */
BUFFERED_SPRITERAM16(config, "spriteram");
diff --git a/src/mame/drivers/tiki100.cpp b/src/mame/drivers/tiki100.cpp
index a2bfdd22b00..e5adc75bd1d 100644
--- a/src/mame/drivers/tiki100.cpp
+++ b/src/mame/drivers/tiki100.cpp
@@ -720,9 +720,9 @@ void tiki100_state::tiki100(machine_config &config)
m_exp->busrq_wr_callback().set(FUNC(tiki100_state::busrq_w));
m_exp->mrq_rd_callback().set(FUNC(tiki100_state::mrq_r));
m_exp->mrq_wr_callback().set(FUNC(tiki100_state::mrq_w));
- TIKI100_BUS_SLOT(config, "slot1", tiki100_cards, "8088");
- TIKI100_BUS_SLOT(config, "slot2", tiki100_cards, "hdc");
- TIKI100_BUS_SLOT(config, "slot3", tiki100_cards, nullptr);
+ TIKI100_BUS_SLOT(config, "slot1", m_exp, tiki100_cards, "8088");
+ TIKI100_BUS_SLOT(config, "slot2", m_exp, tiki100_cards, "hdc");
+ TIKI100_BUS_SLOT(config, "slot3", m_exp, tiki100_cards, nullptr);
/* devices */
Z80DART(config, m_dart, 8_MHz_XTAL / 4);
diff --git a/src/mame/drivers/timelimt.cpp b/src/mame/drivers/timelimt.cpp
index c6593f263c0..942bcb502a7 100644
--- a/src/mame/drivers/timelimt.cpp
+++ b/src/mame/drivers/timelimt.cpp
@@ -235,7 +235,7 @@ void timelimt_state::timelimt(machine_config &config)
m_audiocpu->set_addrmap(AS_IO, &timelimt_state::sound_io_map);
m_audiocpu->set_vblank_int("screen", FUNC(timelimt_state::irq0_line_hold)); /* ? */
- config.m_minimum_quantum = attotime::from_hz(3000);
+ config.set_maximum_quantum(attotime::from_hz(3000));
ls259_device &mainlatch(LS259(config, "mainlatch")); // IC15
mainlatch.q_out_cb<0>().set(FUNC(timelimt_state::nmi_enable_w));
diff --git a/src/mame/drivers/timex.cpp b/src/mame/drivers/timex.cpp
index f15b772541c..98eadbe3c61 100644
--- a/src/mame/drivers/timex.cpp
+++ b/src/mame/drivers/timex.cpp
@@ -694,7 +694,7 @@ void timex_state::ts2068(machine_config &config)
m_maincpu->set_addrmap(AS_PROGRAM, &timex_state::ts2068_mem);
m_maincpu->set_addrmap(AS_IO, &timex_state::ts2068_io);
m_maincpu->set_vblank_int("screen", FUNC(timex_state::spec_interrupt));
- config.m_minimum_quantum = attotime::from_hz(60);
+ config.set_maximum_quantum(attotime::from_hz(60));
MCFG_MACHINE_RESET_OVERRIDE(timex_state, ts2068 )
diff --git a/src/mame/drivers/tispellb.cpp b/src/mame/drivers/tispellb.cpp
index c5cac48d6c9..195fe8bbb19 100644
--- a/src/mame/drivers/tispellb.cpp
+++ b/src/mame/drivers/tispellb.cpp
@@ -353,7 +353,7 @@ void tispellb_state::rev1(machine_config &config)
m_subcpu->o().set(FUNC(tispellb_state::sub_write_o));
m_subcpu->r().set(FUNC(tispellb_state::sub_write_r));
- config.m_perfect_cpu_quantum = subtag("maincpu");
+ config.set_perfect_quantum(m_maincpu);
/* video hardware */
PWM_DISPLAY(config, m_display).set_size(16, 16);
diff --git a/src/mame/drivers/tk2000.cpp b/src/mame/drivers/tk2000.cpp
index 3fb7ead0559..43ec5d7dc57 100644
--- a/src/mame/drivers/tk2000.cpp
+++ b/src/mame/drivers/tk2000.cpp
@@ -582,7 +582,7 @@ void tk2000_state::tk2000(machine_config &config)
m_maincpu->set_addrmap(AS_PROGRAM, &tk2000_state::apple2_map);
TIMER(config, "scantimer").configure_scanline(FUNC(tk2000_state::apple2_interrupt), "screen", 0, 1);
- config.m_minimum_quantum = attotime::from_hz(60);
+ config.set_maximum_quantum(attotime::from_hz(60));
APPLE2_VIDEO(config, m_video, XTAL(14'318'181)).set_screen(m_screen);
diff --git a/src/mame/drivers/tmc600.cpp b/src/mame/drivers/tmc600.cpp
index 3d6a8bcf61a..9de92459107 100644
--- a/src/mame/drivers/tmc600.cpp
+++ b/src/mame/drivers/tmc600.cpp
@@ -298,7 +298,7 @@ void tmc600_state::tmc600(machine_config &config)
m_cassette->set_default_state(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED);
// expansion bus connector
- TMC600_EURO_BUS_SLOT(config, m_bus, tmc600_euro_bus_cards, nullptr);
+ TMC600_EUROBUS_SLOT(config, m_bus, tmc600_eurobus_cards, nullptr);
// internal RAM
RAM(config, RAM_TAG).set_default_size("8K");
diff --git a/src/mame/drivers/tnzs.cpp b/src/mame/drivers/tnzs.cpp
index 6705f45e3ba..a873128fab1 100644
--- a/src/mame/drivers/tnzs.cpp
+++ b/src/mame/drivers/tnzs.cpp
@@ -1542,7 +1542,7 @@ void tnzs_base_state::tnzs_base(machine_config &config)
tnzs_mainbank(config);
- config.m_perfect_cpu_quantum = subtag("maincpu");
+ config.set_perfect_quantum(m_maincpu);
/* video hardware */
SETA001_SPRITE(config, m_seta001, 0);
diff --git a/src/mame/drivers/toaplan1.cpp b/src/mame/drivers/toaplan1.cpp
index 88ad2105c34..430659b4411 100644
--- a/src/mame/drivers/toaplan1.cpp
+++ b/src/mame/drivers/toaplan1.cpp
@@ -1940,7 +1940,7 @@ void toaplan1_rallybik_state::rallybik(machine_config &config)
m_audiocpu->set_addrmap(AS_PROGRAM, &toaplan1_rallybik_state::sound_map);
m_audiocpu->set_addrmap(AS_IO, &toaplan1_rallybik_state::rallybik_sound_io_map);
- config.m_minimum_quantum = attotime::from_hz(600);
+ config.set_maximum_quantum(attotime::from_hz(600));
ls259_device &coinlatch(LS259(config, "coinlatch")); // 19L
coinlatch.q_out_cb<4>().set(FUNC(toaplan1_rallybik_state::coin_counter_1_w));
@@ -1980,7 +1980,7 @@ void toaplan1_state::truxton(machine_config &config)
m_audiocpu->set_addrmap(AS_PROGRAM, &toaplan1_state::sound_map);
m_audiocpu->set_addrmap(AS_IO, &toaplan1_state::truxton_sound_io_map);
- config.m_minimum_quantum = attotime::from_hz(600);
+ config.set_maximum_quantum(attotime::from_hz(600));
/* video hardware */
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
@@ -2010,7 +2010,7 @@ void toaplan1_state::hellfire(machine_config &config)
m_audiocpu->set_addrmap(AS_PROGRAM, &toaplan1_state::sound_map);
m_audiocpu->set_addrmap(AS_IO, &toaplan1_state::hellfire_sound_io_map);
- config.m_minimum_quantum = attotime::from_hz(600);
+ config.set_maximum_quantum(attotime::from_hz(600));
/* video hardware */
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
@@ -2040,7 +2040,7 @@ void toaplan1_state::zerowing(machine_config &config)
m_audiocpu->set_addrmap(AS_PROGRAM, &toaplan1_state::sound_map);
m_audiocpu->set_addrmap(AS_IO, &toaplan1_state::zerowing_sound_io_map);
- config.m_minimum_quantum = attotime::from_hz(600);
+ config.set_maximum_quantum(attotime::from_hz(600));
MCFG_MACHINE_RESET_OVERRIDE(toaplan1_state,zerowing)
@@ -2077,7 +2077,7 @@ void toaplan1_demonwld_state::demonwld(machine_config &config)
m_dsp->set_addrmap(AS_IO, &toaplan1_demonwld_state::dsp_io_map);
m_dsp->bio().set(FUNC(toaplan1_demonwld_state::bio_r));
- config.m_minimum_quantum = attotime::from_hz(600);
+ config.set_maximum_quantum(attotime::from_hz(600));
/* video hardware */
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
@@ -2108,7 +2108,7 @@ void toaplan1_samesame_state::samesame(machine_config &config)
audiocpu.set_addrmap(AS_IO, &toaplan1_samesame_state::hd647180_io_map);
audiocpu.in_pd_callback().set(FUNC(toaplan1_samesame_state::cmdavailable_r));
- config.m_perfect_cpu_quantum = subtag("maincpu");
+ config.set_perfect_quantum(m_maincpu);
MCFG_MACHINE_RESET_OVERRIDE(toaplan1_samesame_state,zerowing)
@@ -2140,7 +2140,7 @@ void toaplan1_state::outzone(machine_config &config)
m_audiocpu->set_addrmap(AS_PROGRAM, &toaplan1_state::sound_map);
m_audiocpu->set_addrmap(AS_IO, &toaplan1_state::outzone_sound_io_map);
- config.m_minimum_quantum = attotime::from_hz(600);
+ config.set_maximum_quantum(attotime::from_hz(600));
MCFG_MACHINE_RESET_OVERRIDE(toaplan1_state,zerowing)
@@ -2172,7 +2172,7 @@ void toaplan1_state::outzonecv(machine_config &config)
m_audiocpu->set_addrmap(AS_PROGRAM, &toaplan1_state::sound_map);
m_audiocpu->set_addrmap(AS_IO, &toaplan1_state::zerowing_sound_io_map);
- config.m_minimum_quantum = attotime::from_hz(600);
+ config.set_maximum_quantum(attotime::from_hz(600));
MCFG_MACHINE_RESET_OVERRIDE(toaplan1_state,zerowing)
@@ -2206,7 +2206,7 @@ void toaplan1_state::vimana(machine_config &config)
audiocpu.in_pa_callback().set(FUNC(toaplan1_state::vimana_dswb_invert_r)); // note these inputs seem to be inverted, unlike the DSWA ones.
audiocpu.in_pg_callback().set(FUNC(toaplan1_state::vimana_tjump_invert_r)); // note these inputs seem to be inverted, unlike the DSWA ones.
- config.m_minimum_quantum = attotime::from_hz(600);
+ config.set_maximum_quantum(attotime::from_hz(600));
MCFG_MACHINE_RESET_OVERRIDE(toaplan1_state,zerowing)
diff --git a/src/mame/drivers/toaplan2.cpp b/src/mame/drivers/toaplan2.cpp
index d4df4d84480..b12c7805def 100644
--- a/src/mame/drivers/toaplan2.cpp
+++ b/src/mame/drivers/toaplan2.cpp
@@ -3212,7 +3212,7 @@ void toaplan2_state::tekipaki(machine_config &config)
audiocpu.set_addrmap(AS_IO, &toaplan2_state::hd647180_io_map);
audiocpu.in_pa_callback().set(FUNC(toaplan2_state::tekipaki_cmdavailable_r));
- config.m_minimum_quantum = attotime::from_hz(600);
+ config.set_maximum_quantum(attotime::from_hz(600));
MCFG_MACHINE_RESET_OVERRIDE(toaplan2_state,toaplan2)
@@ -3254,7 +3254,7 @@ void toaplan2_state::ghox(machine_config &config)
HD647180X(config, m_audiocpu, 10_MHz_XTAL);
m_audiocpu->set_addrmap(AS_PROGRAM, &toaplan2_state::ghox_hd647180_mem_map);
- config.m_minimum_quantum = attotime::from_hz(600);
+ config.set_maximum_quantum(attotime::from_hz(600));
MCFG_MACHINE_RESET_OVERRIDE(toaplan2_state,ghox)
@@ -3509,7 +3509,7 @@ void toaplan2_state::pipibibs(machine_config &config)
Z80(config, m_audiocpu, 27_MHz_XTAL/8); // verified on PCB
m_audiocpu->set_addrmap(AS_PROGRAM, &toaplan2_state::pipibibs_sound_z80_mem);
- config.m_minimum_quantum = attotime::from_hz(600);
+ config.set_maximum_quantum(attotime::from_hz(600));
MCFG_MACHINE_RESET_OVERRIDE(toaplan2_state,toaplan2)
@@ -3551,7 +3551,7 @@ void toaplan2_state::pipibibsbl(machine_config &config)
Z80(config, m_audiocpu, 12_MHz_XTAL / 2); // GoldStar Z8400B; clock source and divider unknown
m_audiocpu->set_addrmap(AS_PROGRAM, &toaplan2_state::pipibibs_sound_z80_mem);
- config.m_minimum_quantum = attotime::from_hz(600);
+ config.set_maximum_quantum(attotime::from_hz(600));
MCFG_MACHINE_RESET_OVERRIDE(toaplan2_state,toaplan2)
@@ -3921,7 +3921,7 @@ void toaplan2_state::mahoudai(machine_config &config)
Z80(config, m_audiocpu, 32_MHz_XTAL/8); // 4MHz, 32MHz Oscillator
m_audiocpu->set_addrmap(AS_PROGRAM, &toaplan2_state::raizing_sound_z80_mem);
- config.m_minimum_quantum = attotime::from_hz(600);
+ config.set_maximum_quantum(attotime::from_hz(600));
MCFG_MACHINE_RESET_OVERRIDE(toaplan2_state,toaplan2)
@@ -3971,7 +3971,7 @@ void toaplan2_state::bgaregga(machine_config &config)
Z80(config, m_audiocpu, 32_MHz_XTAL/8); // 4MHz, 32MHz Oscillator
m_audiocpu->set_addrmap(AS_PROGRAM, &toaplan2_state::bgaregga_sound_z80_mem);
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
MCFG_MACHINE_RESET_OVERRIDE(toaplan2_state,bgaregga)
@@ -4028,7 +4028,7 @@ void toaplan2_state::batrider(machine_config &config)
m_audiocpu->set_addrmap(AS_PROGRAM, &toaplan2_state::batrider_sound_z80_mem);
m_audiocpu->set_addrmap(AS_IO, &toaplan2_state::batrider_sound_z80_port);
- config.m_minimum_quantum = attotime::from_hz(600);
+ config.set_maximum_quantum(attotime::from_hz(600));
MCFG_MACHINE_RESET_OVERRIDE(toaplan2_state,bgaregga)
@@ -4092,7 +4092,7 @@ void toaplan2_state::bbakraid(machine_config &config)
m_audiocpu->set_addrmap(AS_IO, &toaplan2_state::bbakraid_sound_z80_port);
m_audiocpu->set_periodic_int(FUNC(toaplan2_state::bbakraid_snd_interrupt), attotime::from_hz(448));
- config.m_minimum_quantum = attotime::from_hz(600);
+ config.set_maximum_quantum(attotime::from_hz(600));
MCFG_MACHINE_RESET_OVERRIDE(toaplan2_state,toaplan2)
diff --git a/src/mame/drivers/tomcat.cpp b/src/mame/drivers/tomcat.cpp
index a7933a14a57..c8b1e3503d5 100644
--- a/src/mame/drivers/tomcat.cpp
+++ b/src/mame/drivers/tomcat.cpp
@@ -343,7 +343,7 @@ void tomcat_state::tomcat(machine_config &config)
// OUTB PB0 - PB7 OUTPUT Speech Data
// IRQ CB connected to IRQ line of 6502
- config.m_minimum_quantum = attotime::from_hz(4000);
+ config.set_maximum_quantum(attotime::from_hz(4000));
LS259(config, m_mainlatch);
m_mainlatch->q_out_cb<0>().set_output("led1").invert();
diff --git a/src/mame/drivers/tosh1000.cpp b/src/mame/drivers/tosh1000.cpp
index 741f31563b8..643ddc26a00 100644
--- a/src/mame/drivers/tosh1000.cpp
+++ b/src/mame/drivers/tosh1000.cpp
@@ -250,7 +250,7 @@ void tosh1000_state::cfg_fdc_35(device_t *device)
{
dynamic_cast<device_slot_interface &>(*device->subdevice("fdc:0")).set_default_option("35dd");
dynamic_cast<device_slot_interface &>(*device->subdevice("fdc:0")).set_fixed(true);
- dynamic_cast<device_slot_interface &>(*device->subdevice("fdc:1")).set_default_option("");
+ dynamic_cast<device_slot_interface &>(*device->subdevice("fdc:1")).set_default_option(nullptr);
}
void tosh1000_state::tosh1000(machine_config &config)
diff --git a/src/mame/drivers/tourvis.cpp b/src/mame/drivers/tourvis.cpp
index 010719b1e3e..0bacaae49da 100644
--- a/src/mame/drivers/tourvis.cpp
+++ b/src/mame/drivers/tourvis.cpp
@@ -402,7 +402,7 @@ void tourvision_state::tourvision(machine_config &config)
m_maincpu->add_route(0, "lspeaker", 1.00);
m_maincpu->add_route(1, "rspeaker", 1.00);
- config.m_minimum_quantum = attotime::from_hz(60);
+ config.set_maximum_quantum(attotime::from_hz(60));
I8085A(config, m_subcpu, 18000000/3 /*?*/);
m_subcpu->set_addrmap(AS_PROGRAM, &tourvision_state::tourvision_8085_map);
diff --git a/src/mame/drivers/tp84.cpp b/src/mame/drivers/tp84.cpp
index 78c85607318..11ee5986988 100644
--- a/src/mame/drivers/tp84.cpp
+++ b/src/mame/drivers/tp84.cpp
@@ -341,7 +341,7 @@ void tp84_state::tp84(machine_config &config)
Z80(config, m_audiocpu, XTAL(14'318'181)/4); /* verified on pcb */
m_audiocpu->set_addrmap(AS_PROGRAM, &tp84_state::audio_map);
- config.m_minimum_quantum = attotime::from_hz(6000); /* 100 CPU slices per frame - a high value to ensure proper */
+ config.set_maximum_quantum(attotime::from_hz(6000)); /* 100 CPU slices per frame - a high value to ensure proper */
/* synchronization of the CPUs */
ls259_device &mainlatch(LS259(config, "mainlatch", 0)); // 3B
diff --git a/src/mame/drivers/triforce.cpp b/src/mame/drivers/triforce.cpp
index 47842072b49..919c0c10414 100644
--- a/src/mame/drivers/triforce.cpp
+++ b/src/mame/drivers/triforce.cpp
@@ -592,7 +592,7 @@ void triforce_state::triforce_base(machine_config &config)
PPC603(config, m_maincpu, 64000000); /* Correct CPU is a PowerPC 750 (what Apple called "G3") with paired-single vector instructions added */
m_maincpu->set_addrmap(AS_PROGRAM, &triforce_state::gc_map);
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
/* video hardware */
diff --git a/src/mame/drivers/trs80.cpp b/src/mame/drivers/trs80.cpp
index 6c77c12ecf0..152a18ed283 100644
--- a/src/mame/drivers/trs80.cpp
+++ b/src/mame/drivers/trs80.cpp
@@ -546,8 +546,8 @@ void trs80_state::model1(machine_config &config) // model I, level II
FLOPPY_CONNECTOR(config, "fdc:0", trs80_floppies, "sssd", trs80_state::floppy_formats).enable_sound(true);
FLOPPY_CONNECTOR(config, "fdc:1", trs80_floppies, "sssd", trs80_state::floppy_formats).enable_sound(true);
- FLOPPY_CONNECTOR(config, "fdc:2", trs80_floppies, "", trs80_state::floppy_formats).enable_sound(true);
- FLOPPY_CONNECTOR(config, "fdc:3", trs80_floppies, "", trs80_state::floppy_formats).enable_sound(true);
+ FLOPPY_CONNECTOR(config, "fdc:2", trs80_floppies, nullptr, trs80_state::floppy_formats).enable_sound(true);
+ FLOPPY_CONNECTOR(config, "fdc:3", trs80_floppies, nullptr, trs80_state::floppy_formats).enable_sound(true);
CENTRONICS(config, m_centronics, centronics_devices, "printer");
m_centronics->busy_handler().set(m_cent_status_in, FUNC(input_buffer_device::write_bit7));
diff --git a/src/mame/drivers/tubep.cpp b/src/mame/drivers/tubep.cpp
index 0796a90ba95..b5508786479 100644
--- a/src/mame/drivers/tubep.cpp
+++ b/src/mame/drivers/tubep.cpp
@@ -838,7 +838,7 @@ void tubep_state::tubep(machine_config &config)
NSC8105(config, m_mcu, 6000000); /* 6 MHz Xtal - divided internally ??? */
m_mcu->set_addrmap(AS_PROGRAM, &tubep_state::nsc_map);
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
ls259_device &mainlatch(LS259(config, "mainlatch"));
mainlatch.q_out_cb<0>().set(FUNC(tubep_state::coin1_counter_w));
diff --git a/src/mame/drivers/turbo.cpp b/src/mame/drivers/turbo.cpp
index 80e6d144308..7836095a08b 100644
--- a/src/mame/drivers/turbo.cpp
+++ b/src/mame/drivers/turbo.cpp
@@ -948,7 +948,7 @@ void turbo_state::buckrog(machine_config &config)
m_subcpu->set_addrmap(AS_PROGRAM, &turbo_state::buckrog_cpu2_map);
m_subcpu->set_addrmap(AS_IO, &turbo_state::buckrog_cpu2_portmap);
- config.m_minimum_quantum = attotime::from_hz(600);
+ config.set_maximum_quantum(attotime::from_hz(600));
MCFG_MACHINE_RESET_OVERRIDE(turbo_state,buckrog)
I8255(config, m_i8255_0);
diff --git a/src/mame/drivers/tvcapcom.cpp b/src/mame/drivers/tvcapcom.cpp
index d4254f72348..8e010cd477e 100644
--- a/src/mame/drivers/tvcapcom.cpp
+++ b/src/mame/drivers/tvcapcom.cpp
@@ -62,7 +62,7 @@ void tvcapcom_state::tvcapcom(machine_config &config)
m_maincpu->set_addrmap(AS_PROGRAM, &tvcapcom_state::gc_map);
m_maincpu->set_disable();
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
/* video hardware */
diff --git a/src/mame/drivers/twin16.cpp b/src/mame/drivers/twin16.cpp
index 3f9f925f1d8..47b834326ed 100644
--- a/src/mame/drivers/twin16.cpp
+++ b/src/mame/drivers/twin16.cpp
@@ -661,7 +661,7 @@ void twin16_state::twin16(machine_config &config)
Z80(config, m_audiocpu, XTAL(3'579'545));
m_audiocpu->set_addrmap(AS_PROGRAM, &twin16_state::sound_map);
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
WATCHDOG_TIMER(config, "watchdog");
@@ -703,7 +703,7 @@ void twin16_state::twin16(machine_config &config)
void twin16_state::devilw(machine_config &config)
{
twin16(config);
- config.m_minimum_quantum = attotime::from_hz(60000); // watchdog reset otherwise
+ config.set_maximum_quantum(attotime::from_hz(60000)); // watchdog reset otherwise
}
void fround_state::fround(machine_config &config)
@@ -715,7 +715,7 @@ void fround_state::fround(machine_config &config)
Z80(config, m_audiocpu, XTAL(3'579'545));
m_audiocpu->set_addrmap(AS_PROGRAM, &fround_state::sound_map);
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
WATCHDOG_TIMER(config, "watchdog");
diff --git a/src/mame/drivers/twincobr.cpp b/src/mame/drivers/twincobr.cpp
index 06dbc21765e..c0d46a67623 100644
--- a/src/mame/drivers/twincobr.cpp
+++ b/src/mame/drivers/twincobr.cpp
@@ -665,7 +665,7 @@ void twincobr_state::twincobr(machine_config &config)
m_dsp->set_addrmap(AS_IO, &twincobr_state::dsp_io_map);
m_dsp->bio().set(FUNC(twincobr_state::twincobr_bio_r));
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
LS259(config, m_mainlatch);
m_mainlatch->q_out_cb<2>().set(FUNC(twincobr_state::int_enable_w));
diff --git a/src/mame/drivers/uapce.cpp b/src/mame/drivers/uapce.cpp
index 7c400fd56d2..e12a0f34254 100644
--- a/src/mame/drivers/uapce.cpp
+++ b/src/mame/drivers/uapce.cpp
@@ -335,7 +335,7 @@ void uapce_state::uapce(machine_config &config)
z80_device &sub(Z80(config, "sub", 1400000));
sub.set_addrmap(AS_PROGRAM, &uapce_state::z80_map);
- config.m_minimum_quantum = attotime::from_hz(60);
+ config.set_maximum_quantum(attotime::from_hz(60));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
diff --git a/src/mame/drivers/ultraman.cpp b/src/mame/drivers/ultraman.cpp
index 059da36369f..29e35c0df30 100644
--- a/src/mame/drivers/ultraman.cpp
+++ b/src/mame/drivers/ultraman.cpp
@@ -186,7 +186,7 @@ void ultraman_state::ultraman(machine_config &config)
INPUT_MERGER_ALL_HIGH(config, "soundnmi").output_handler().set_inputline(m_audiocpu, INPUT_LINE_NMI);
- config.m_minimum_quantum = attotime::from_hz(600);
+ config.set_maximum_quantum(attotime::from_hz(600));
WATCHDOG_TIMER(config, "watchdog");
diff --git a/src/mame/drivers/undrfire.cpp b/src/mame/drivers/undrfire.cpp
index 197366c9332..69525f6e4e9 100644
--- a/src/mame/drivers/undrfire.cpp
+++ b/src/mame/drivers/undrfire.cpp
@@ -569,7 +569,7 @@ void undrfire_state::cbombers(machine_config &config)
m_subcpu->set_addrmap(AS_PROGRAM, &undrfire_state::cbombers_cpub_map);
m_subcpu->set_vblank_int("screen", FUNC(undrfire_state::irq4_line_hold));
- config.m_minimum_quantum = attotime::from_hz(480); /* CPU slices - Need to interleave Cpu's 1 & 3 */
+ config.set_maximum_quantum(attotime::from_hz(480)); /* CPU slices - Need to interleave Cpu's 1 & 3 */
EEPROM_93C46_16BIT(config, "eeprom");
diff --git a/src/mame/drivers/unichamp.cpp b/src/mame/drivers/unichamp.cpp
index 66d3b3870af..55579643f12 100644
--- a/src/mame/drivers/unichamp.cpp
+++ b/src/mame/drivers/unichamp.cpp
@@ -255,7 +255,7 @@ void unichamp_state::unichamp(machine_config &config)
m_maincpu->set_addrmap(AS_PROGRAM, &unichamp_state::unichamp_mem);
m_maincpu->bext().set(FUNC(unichamp_state::bext_r));
- config.m_minimum_quantum = attotime::from_hz(60);
+ config.set_maximum_quantum(attotime::from_hz(60));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
diff --git a/src/mame/drivers/v1050.cpp b/src/mame/drivers/v1050.cpp
index b88992449c0..cc335788828 100644
--- a/src/mame/drivers/v1050.cpp
+++ b/src/mame/drivers/v1050.cpp
@@ -1030,11 +1030,9 @@ void v1050_state::v1050(machine_config &config)
m_maincpu->set_addrmap(AS_IO, &v1050_state::v1050_io);
m_maincpu->set_irq_acknowledge_callback(FUNC(v1050_state::v1050_int_ack));
- config.m_perfect_cpu_quantum = subtag(Z80_TAG);
-
M6502(config, m_subcpu, 15.36_MHz_XTAL/16);
m_subcpu->set_addrmap(AS_PROGRAM, &v1050_state::v1050_crt_mem);
- config.m_perfect_cpu_quantum = subtag(M6502_TAG);
+ config.set_perfect_quantum(m_subcpu);
// keyboard HACK
TIMER(config, "keyboard").configure_periodic(FUNC(v1050_state::v1050_keyboard_tick), attotime::from_hz(60));
diff --git a/src/mame/drivers/vastar.cpp b/src/mame/drivers/vastar.cpp
index 454c01aaa57..98d9cfd4801 100644
--- a/src/mame/drivers/vastar.cpp
+++ b/src/mame/drivers/vastar.cpp
@@ -439,7 +439,7 @@ void vastar_common_state::common(machine_config &config)
m_subcpu->set_addrmap(AS_IO, &vastar_common_state::cpu2_port_map);
m_subcpu->set_periodic_int(FUNC(vastar_common_state::irq0_line_hold), attotime::from_hz(242)); /* 4 * vsync_freq(60.58) measured, it is not known yet how long it is asserted so we'll use HOLD_LINE for now */
- config.m_minimum_quantum = attotime::from_hz(600); /* 10 CPU slices per frame - seems enough to ensure proper synchronization of the CPUs */
+ config.set_maximum_quantum(attotime::from_hz(600)); /* 10 CPU slices per frame - seems enough to ensure proper synchronization of the CPUs */
ls259_device &mainlatch(LS259(config, "mainlatch"));
mainlatch.q_out_cb<0>().set(FUNC(vastar_common_state::nmi_mask_w));
diff --git a/src/mame/drivers/vcombat.cpp b/src/mame/drivers/vcombat.cpp
index 81ebf34076c..ca7f75c7033 100644
--- a/src/mame/drivers/vcombat.cpp
+++ b/src/mame/drivers/vcombat.cpp
@@ -581,7 +581,7 @@ void vcombat_state::vcombat(machine_config &config)
/* Temporary hack for experimenting with timing. */
#if 0
- //config.m_minimum_quantum = attotime::from_hz(1200);
+ //config.set_maximum_quantum(attotime::from_hz(1200));
config.m_perfect_cpu_quantum = subtag("maincpu");
#endif
diff --git a/src/mame/drivers/vic10.cpp b/src/mame/drivers/vic10.cpp
index 68f8d95a13e..3d84931f474 100644
--- a/src/mame/drivers/vic10.cpp
+++ b/src/mame/drivers/vic10.cpp
@@ -23,7 +23,6 @@
#include "sound/mos6581.h"
#include "video/mos6566.h"
-#define M6510_TAG "u3"
#define MOS6566_TAG "u2"
#define MOS6581_TAG "u6"
#define MOS6526_TAG "u9"
@@ -37,7 +36,7 @@ class vic10_state : public driver_device
public:
vic10_state(const machine_config &mconfig, device_type type, const char *tag) :
driver_device(mconfig, type, tag),
- m_maincpu(*this, M6510_TAG),
+ m_maincpu(*this, "u3"),
m_vic(*this, MOS6566_TAG),
m_sid(*this, MOS6581_TAG),
m_cia(*this, MOS6526_TAG),
@@ -649,13 +648,13 @@ void vic10_state::vic10(machine_config &config)
m_maincpu->read_callback().set(FUNC(vic10_state::cpu_r));
m_maincpu->write_callback().set(FUNC(vic10_state::cpu_w));
m_maincpu->set_pulls(0x10, 0x20);
- config.m_perfect_cpu_quantum = subtag(M6510_TAG);
+ config.set_perfect_quantum(m_maincpu);
INPUT_MERGER_ANY_HIGH(config, "mainirq").output_handler().set_inputline(m_maincpu, m6510_device::IRQ_LINE);
// video hardware
mos8566_device &mos8566(MOS8566(config, MOS6566_TAG, XTAL(8'000'000)/8));
- mos8566.set_cpu(M6510_TAG);
+ mos8566.set_cpu(m_maincpu);
mos8566.irq_callback().set("mainirq", FUNC(input_merger_device::in_w<1>));
mos8566.set_screen(SCREEN_TAG);
mos8566.set_addrmap(0, &vic10_state::vic_videoram_map);
diff --git a/src/mame/drivers/vicdual.cpp b/src/mame/drivers/vicdual.cpp
index 9c1cda94826..990e0ff8aeb 100644
--- a/src/mame/drivers/vicdual.cpp
+++ b/src/mame/drivers/vicdual.cpp
@@ -2233,7 +2233,7 @@ void carnival_state::carnival(machine_config &config)
/* basic machine hardware */
m_maincpu->set_addrmap(AS_IO, &carnival_state::carnival_io_map);
- config.m_perfect_cpu_quantum = subtag("maincpu");
+ config.set_perfect_quantum(m_maincpu);
/* audio hardware */
SPEAKER(config, "mono").front_center();
diff --git a/src/mame/drivers/vidbrain.cpp b/src/mame/drivers/vidbrain.cpp
index 71af674ae38..7aa51a7b7ed 100644
--- a/src/mame/drivers/vidbrain.cpp
+++ b/src/mame/drivers/vidbrain.cpp
@@ -427,7 +427,7 @@ void vidbrain_state::vidbrain(machine_config &config)
m_smi->int_req_callback().set_inputline(m_maincpu, F8_INPUT_LINE_INT_REQ);
// cartridge
- VIDEOBRAIN_EXPANSION_SLOT(config, VIDEOBRAIN_EXPANSION_SLOT_TAG, vidbrain_expansion_cards, nullptr);
+ VIDEOBRAIN_EXPANSION_SLOT(config, m_exp, vidbrain_expansion_cards, nullptr);
// software lists
SOFTWARE_LIST(config, "cart_list").set_original("vidbrain");
diff --git a/src/mame/drivers/volfied.cpp b/src/mame/drivers/volfied.cpp
index fd66e5825d5..b4abf90255f 100644
--- a/src/mame/drivers/volfied.cpp
+++ b/src/mame/drivers/volfied.cpp
@@ -237,7 +237,7 @@ void volfied_state::volfied(machine_config &config)
m_cchip->in_ad_callback().set_ioport("F0000D");
m_cchip->out_pb_callback().set(FUNC(volfied_state::counters_w));
- config.m_minimum_quantum = attotime::from_hz(1200);
+ config.set_maximum_quantum(attotime::from_hz(1200));
TIMER(config, m_cchip_irq_clear).configure_generic(FUNC(volfied_state::cchip_irq_clear_cb));
diff --git a/src/mame/drivers/vsnes.cpp b/src/mame/drivers/vsnes.cpp
index 1eb5d61eee5..e324e0cf148 100644
--- a/src/mame/drivers/vsnes.cpp
+++ b/src/mame/drivers/vsnes.cpp
@@ -1837,7 +1837,7 @@ void vsnes_state::vsdual(machine_config &config)
void vsnes_state::vsdual_pi(machine_config &config)
{
vsdual(config);
- config.m_perfect_cpu_quantum = subtag("maincpu");
+ config.set_perfect_quantum(m_maincpu);
// need high level of interleave to keep screens in sync in Balloon Fight.
// however vsmahjng doesn't like perfect interleave? you end up needing to reset it to boot? maybe something in a bad default state? watchdog?
// as the board would always be running in 'perfect interleave' the fact the Mahjong game doesn't work like this needs investigating.
diff --git a/src/mame/drivers/vtech2.cpp b/src/mame/drivers/vtech2.cpp
index 2bcc22a415a..c41a8bf9593 100644
--- a/src/mame/drivers/vtech2.cpp
+++ b/src/mame/drivers/vtech2.cpp
@@ -490,7 +490,7 @@ void vtech2_state::laser350(machine_config &config)
m_maincpu->set_addrmap(AS_PROGRAM, &vtech2_state::mem_map);
m_maincpu->set_addrmap(AS_IO, &vtech2_state::io_map);
m_maincpu->set_vblank_int("screen", FUNC(vtech2_state::vtech2_interrupt));
- config.m_minimum_quantum = attotime::from_hz(60);
+ config.set_maximum_quantum(attotime::from_hz(60));
ADDRESS_MAP_BANK(config, "banka").set_map(&vtech2_state::m_map350).set_options(ENDIANNESS_LITTLE, 8, 18, 0x4000);
ADDRESS_MAP_BANK(config, "bankb").set_map(&vtech2_state::m_map350).set_options(ENDIANNESS_LITTLE, 8, 18, 0x4000);
diff --git a/src/mame/drivers/wangpc.cpp b/src/mame/drivers/wangpc.cpp
index 4fbc008f3f1..dbe6d36d98f 100644
--- a/src/mame/drivers/wangpc.cpp
+++ b/src/mame/drivers/wangpc.cpp
@@ -70,7 +70,7 @@ public:
m_centronics(*this, CENTRONICS_TAG),
m_cent_data_in(*this, "cent_data_in"),
m_cent_data_out(*this, "cent_data_out"),
- m_bus(*this, WANGPC_BUS_TAG),
+ m_bus(*this, "wangpcbus"),
m_sw(*this, "SW"),
m_led_diagnostic(*this, LED_DIAGNOSTIC),
m_timer2_irq(1),
@@ -1363,11 +1363,11 @@ void wangpc_state::wangpc(machine_config &config)
m_bus->drq2_wr_callback().set(m_dmac, FUNC(am9517a_device::dreq2_w));
m_bus->drq3_wr_callback().set(m_dmac, FUNC(am9517a_device::dreq3_w));
m_bus->ioerror_wr_callback().set_inputline(m_maincpu, INPUT_LINE_NMI);
- WANGPC_BUS_SLOT(config, "slot1", wangpc_cards, nullptr, 1);
- WANGPC_BUS_SLOT(config, "slot2", wangpc_cards, "mvc", 2);
- WANGPC_BUS_SLOT(config, "slot3", wangpc_cards, nullptr, 3);
- WANGPC_BUS_SLOT(config, "slot4", wangpc_cards, nullptr, 4);
- WANGPC_BUS_SLOT(config, "slot5", wangpc_cards, nullptr, 5);
+ WANGPC_BUS_SLOT(config, "slot1", m_bus, wangpc_cards, nullptr, 1);
+ WANGPC_BUS_SLOT(config, "slot2", m_bus, wangpc_cards, "mvc", 2);
+ WANGPC_BUS_SLOT(config, "slot3", m_bus, wangpc_cards, nullptr, 3);
+ WANGPC_BUS_SLOT(config, "slot4", m_bus, wangpc_cards, nullptr, 4);
+ WANGPC_BUS_SLOT(config, "slot5", m_bus, wangpc_cards, nullptr, 5);
// internal ram
RAM(config, RAM_TAG).set_default_size("128K");
diff --git a/src/mame/drivers/wardner.cpp b/src/mame/drivers/wardner.cpp
index 860a012324d..95efd91bf72 100644
--- a/src/mame/drivers/wardner.cpp
+++ b/src/mame/drivers/wardner.cpp
@@ -398,7 +398,7 @@ void wardner_state::wardner(machine_config &config)
m_dsp->set_addrmap(AS_IO, &wardner_state::dsp_io_map);
m_dsp->bio().set(FUNC(wardner_state::twincobr_bio_r));
- config.m_minimum_quantum = attotime::from_hz(6000); /* 100 CPU slices per frame */
+ config.set_maximum_quantum(attotime::from_hz(6000)); /* 100 CPU slices per frame */
ls259_device &mainlatch(LS259(config, "mainlatch"));
mainlatch.q_out_cb<2>().set(FUNC(wardner_state::int_enable_w));
diff --git a/src/mame/drivers/wecleman.cpp b/src/mame/drivers/wecleman.cpp
index c15e1d40b32..1b2b5e46a53 100644
--- a/src/mame/drivers/wecleman.cpp
+++ b/src/mame/drivers/wecleman.cpp
@@ -1063,7 +1063,7 @@ void wecleman_state::wecleman(machine_config &config)
Z80(config, m_audiocpu, 3579545);
m_audiocpu->set_addrmap(AS_PROGRAM, &wecleman_state::wecleman_sound_map);
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
MCFG_MACHINE_START_OVERRIDE(wecleman_state, wecleman)
MCFG_MACHINE_RESET_OVERRIDE(wecleman_state, wecleman)
@@ -1142,7 +1142,7 @@ void wecleman_state::hotchase(machine_config &config)
m_audiocpu->set_addrmap(AS_PROGRAM, &wecleman_state::hotchase_sound_map);
m_audiocpu->set_periodic_int(FUNC(wecleman_state::hotchase_sound_timer), attotime::from_hz(496));
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
MCFG_MACHINE_RESET_OVERRIDE(wecleman_state, hotchase)
MCFG_MACHINE_START_OVERRIDE(wecleman_state, hotchase)
diff --git a/src/mame/drivers/wgp.cpp b/src/mame/drivers/wgp.cpp
index 6d849bc8f0d..18be11575c4 100644
--- a/src/mame/drivers/wgp.cpp
+++ b/src/mame/drivers/wgp.cpp
@@ -871,7 +871,7 @@ void wgp_state::wgp(machine_config &config)
m_subcpu->set_addrmap(AS_PROGRAM, &wgp_state::cpu2_map);
m_subcpu->set_vblank_int("screen", FUNC(wgp_state::cpub_interrupt));
- config.m_minimum_quantum = attotime::from_hz(30000);
+ config.set_maximum_quantum(attotime::from_hz(30000));
TC0220IOC(config, m_tc0220ioc, 0);
m_tc0220ioc->read_0_callback().set_ioport("DSWA");
@@ -925,7 +925,7 @@ void wgp_state::wgp2(machine_config &config)
{
wgp(config);
- config.m_minimum_quantum = attotime::from_hz(12000);
+ config.set_maximum_quantum(attotime::from_hz(12000));
/* video hardware */
MCFG_VIDEO_START_OVERRIDE(wgp_state, wgp2)
diff --git a/src/mame/drivers/wheelfir.cpp b/src/mame/drivers/wheelfir.cpp
index 8dfe7f1f130..560c0a889f1 100644
--- a/src/mame/drivers/wheelfir.cpp
+++ b/src/mame/drivers/wheelfir.cpp
@@ -740,7 +740,7 @@ void wheelfir_state::wheelfir(machine_config &config)
M68000(config, m_subcpu, 32000000/2);
m_subcpu->set_addrmap(AS_PROGRAM, &wheelfir_state::wheelfir_sub);
- //config.m_minimum_quantum = attotime::from_hz(12000);
+ //config.set_maximum_quantum(attotime::from_hz(12000));
adc0808_device &adc(ADC0808(config, "adc", 500000)); // unknown clock
adc.eoc_ff_callback().set(FUNC(wheelfir_state::adc_eoc_w));
diff --git a/src/mame/drivers/witch.cpp b/src/mame/drivers/witch.cpp
index 393f322e618..5d7478d21f8 100644
--- a/src/mame/drivers/witch.cpp
+++ b/src/mame/drivers/witch.cpp
@@ -939,7 +939,7 @@ void witch_state::witch(machine_config &config)
m_subcpu->set_addrmap(AS_PROGRAM, &witch_state::witch_sub_map);
m_subcpu->set_vblank_int("screen", FUNC(witch_state::irq0_line_assert));
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
diff --git a/src/mame/drivers/wrally.cpp b/src/mame/drivers/wrally.cpp
index 2c11a2f5f86..810c7dc07ba 100644
--- a/src/mame/drivers/wrally.cpp
+++ b/src/mame/drivers/wrally.cpp
@@ -270,6 +270,7 @@ void wrally_state::wrally(machine_config &config)
gaelco_ds5002fp_device &ds5002(GAELCO_DS5002FP(config, "gaelco_ds5002fp", XTAL(24'000'000) / 2)); /* verified on pcb */
ds5002.set_addrmap(0, &wrally_state::mcu_hostmem_map);
+ config.set_perfect_quantum("gaelco_ds5002fp:mcu");
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
diff --git a/src/mame/drivers/wswan.cpp b/src/mame/drivers/wswan.cpp
index 8234e882520..af411c7fb78 100644
--- a/src/mame/drivers/wswan.cpp
+++ b/src/mame/drivers/wswan.cpp
@@ -141,7 +141,7 @@ void wswan_state::wswan(machine_config &config)
config.set_default_layout(layout_wswan);
- config.m_minimum_quantum = attotime::from_hz(60);
+ config.set_maximum_quantum(attotime::from_hz(60));
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_1);
diff --git a/src/mame/drivers/wyvernf0.cpp b/src/mame/drivers/wyvernf0.cpp
index 9dcb260eb8f..772ad7fccbb 100644
--- a/src/mame/drivers/wyvernf0.cpp
+++ b/src/mame/drivers/wyvernf0.cpp
@@ -643,7 +643,7 @@ void wyvernf0_state::wyvernf0(machine_config &config)
TAITO68705_MCU(config, m_bmcu, 48_MHz_XTAL/16); // 3MHz - Clock verified
/* 100 CPU slices per frame - a high value to ensure proper synchronization of the CPUs */
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
// video hardware
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
diff --git a/src/mame/drivers/x68k.cpp b/src/mame/drivers/x68k.cpp
index 01d2c56fe34..3d190dc1d5a 100644
--- a/src/mame/drivers/x68k.cpp
+++ b/src/mame/drivers/x68k.cpp
@@ -1625,7 +1625,7 @@ static void keyboard_devices(device_slot_interface &device)
void x68k_state::x68000_base(machine_config &config)
{
- config.m_minimum_quantum = attotime::from_hz(60);
+ config.set_maximum_quantum(attotime::from_hz(60));
/* device hardware */
MC68901(config, m_mfpdev, 16_MHz_XTAL / 4);
diff --git a/src/mame/drivers/xain.cpp b/src/mame/drivers/xain.cpp
index 85cc2e224d2..8e569c4801d 100644
--- a/src/mame/drivers/xain.cpp
+++ b/src/mame/drivers/xain.cpp
@@ -487,7 +487,7 @@ void xain_state::xsleena(machine_config &config)
TAITO68705_MCU(config, m_mcu, MCU_CLOCK);
- config.m_perfect_cpu_quantum = subtag("maincpu");
+ config.set_perfect_quantum(m_maincpu);
// video hardware
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
diff --git a/src/mame/drivers/xexex.cpp b/src/mame/drivers/xexex.cpp
index 68f4ed0b716..8c72bbf94f3 100644
--- a/src/mame/drivers/xexex.cpp
+++ b/src/mame/drivers/xexex.cpp
@@ -481,7 +481,7 @@ void xexex_state::xexex(machine_config &config)
Z80(config, m_audiocpu, XTAL(32'000'000)/4); // Z80E 8Mhz
m_audiocpu->set_addrmap(AS_PROGRAM, &xexex_state::sound_map);
- config.m_minimum_quantum = attotime::from_hz(1920);
+ config.set_maximum_quantum(attotime::from_hz(1920));
EEPROM_ER5911_8BIT(config, "eeprom");
diff --git a/src/mame/drivers/xorworld.cpp b/src/mame/drivers/xorworld.cpp
index 83969a77bb2..d82992cd4ae 100644
--- a/src/mame/drivers/xorworld.cpp
+++ b/src/mame/drivers/xorworld.cpp
@@ -163,7 +163,7 @@ void xorworld_state::xorworld(machine_config &config)
m_maincpu->set_vblank_int("screen", FUNC(xorworld_state::irq2_line_assert)); // irq 4 or 6
m_maincpu->set_periodic_int(FUNC(xorworld_state::irq6_line_assert), attotime::from_hz(3*60)); //timed irq, unknown timing
- config.m_minimum_quantum = attotime::from_hz(60);
+ config.set_maximum_quantum(attotime::from_hz(60));
EEPROM_93C46_16BIT(config, m_eeprom);
diff --git a/src/mame/drivers/xxmissio.cpp b/src/mame/drivers/xxmissio.cpp
index 5d54fc27d26..f55a213efa8 100644
--- a/src/mame/drivers/xxmissio.cpp
+++ b/src/mame/drivers/xxmissio.cpp
@@ -275,7 +275,7 @@ void xxmissio_state::xxmissio(machine_config &config)
m_subcpu->set_addrmap(AS_PROGRAM, &xxmissio_state::map2);
m_subcpu->set_periodic_int(FUNC(xxmissio_state::interrupt_s), attotime::from_hz(2*60));
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
diff --git a/src/mame/drivers/z100.cpp b/src/mame/drivers/z100.cpp
index af25f34942e..1236ef20407 100644
--- a/src/mame/drivers/z100.cpp
+++ b/src/mame/drivers/z100.cpp
@@ -852,8 +852,8 @@ void z100_state::z100(machine_config &config)
FLOPPY_CONNECTOR(config, m_floppies[0], z100_floppies, "dd", floppy_image_device::default_floppy_formats);
FLOPPY_CONNECTOR(config, m_floppies[1], z100_floppies, "dd", floppy_image_device::default_floppy_formats);
- FLOPPY_CONNECTOR(config, m_floppies[2], z100_floppies, "", floppy_image_device::default_floppy_formats);
- FLOPPY_CONNECTOR(config, m_floppies[3], z100_floppies, "", floppy_image_device::default_floppy_formats);
+ FLOPPY_CONNECTOR(config, m_floppies[2], z100_floppies, nullptr, floppy_image_device::default_floppy_formats);
+ FLOPPY_CONNECTOR(config, m_floppies[3], z100_floppies, nullptr, floppy_image_device::default_floppy_formats);
MC2661(config, m_epci[0], 4.9152_MHz_XTAL); // First 2661-2 serial port (printer)
m_epci[0]->txrdy_handler().set("epci0int", FUNC(input_merger_device::in_w<0>));
diff --git a/src/mame/drivers/zaccaria.cpp b/src/mame/drivers/zaccaria.cpp
index 56d50686bc4..4fd27e18d8d 100644
--- a/src/mame/drivers/zaccaria.cpp
+++ b/src/mame/drivers/zaccaria.cpp
@@ -336,7 +336,7 @@ void zaccaria_state::zaccaria(machine_config &config)
Z80(config, m_maincpu, XTAL(18'432'000)/6); /* verified on pcb */
m_maincpu->set_addrmap(AS_PROGRAM, &zaccaria_state::main_map);
-// config.m_minimum_quantum = attotime::from_hz(1000000);
+// config.set_maximum_quantum(attotime::from_hz(1000000));
WATCHDOG_TIMER(config, "watchdog");
diff --git a/src/mame/drivers/zerozone.cpp b/src/mame/drivers/zerozone.cpp
index 28f87efbf60..dc6358684ad 100644
--- a/src/mame/drivers/zerozone.cpp
+++ b/src/mame/drivers/zerozone.cpp
@@ -187,7 +187,7 @@ void zerozone_state::zerozone(machine_config &config)
Z80(config, m_audiocpu, 1000000); /* 1 MHz ??? */
m_audiocpu->set_addrmap(AS_PROGRAM, &zerozone_state::sound_map);
- config.m_minimum_quantum = attotime::from_hz(600);
+ config.set_maximum_quantum(attotime::from_hz(600));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
diff --git a/src/mame/drivers/zn.cpp b/src/mame/drivers/zn.cpp
index e13afe82cac..8ac1db8e4f7 100644
--- a/src/mame/drivers/zn.cpp
+++ b/src/mame/drivers/zn.cpp
@@ -2721,7 +2721,7 @@ void zn_state::coh1002msnd(machine_config &config)
IDT7202(config, m_cbaj_fifo[0]); // LH540202
IDT7202(config, m_cbaj_fifo[1]); // "
- config.m_minimum_quantum = attotime::from_hz(6000);
+ config.set_maximum_quantum(attotime::from_hz(6000));
/* sound hardware */
ymz280b_device &ymz(YMZ280B(config, "ymz", XTAL(16'934'400)));
diff --git a/src/mame/drivers/zr107.cpp b/src/mame/drivers/zr107.cpp
index be176b00fb5..fe195392abe 100644
--- a/src/mame/drivers/zr107.cpp
+++ b/src/mame/drivers/zr107.cpp
@@ -809,7 +809,7 @@ void midnrun_state::midnrun(machine_config &config)
zr107(config);
m_maincpu->set_addrmap(AS_PROGRAM, &midnrun_state::main_memmap);
- config.m_minimum_quantum = attotime::from_hz(750000); // Very high sync needed to prevent lockups - why?
+ config.set_maximum_quantum(attotime::from_hz(750000)); // Very high sync needed to prevent lockups - why?
/* video hardware */
m_screen->set_screen_update(FUNC(midnrun_state::screen_update));
@@ -825,7 +825,7 @@ void jetwave_state::jetwave(machine_config &config)
zr107(config);
m_maincpu->set_addrmap(AS_PROGRAM, &jetwave_state::main_memmap);
- config.m_minimum_quantum = attotime::from_hz(2000000); // Very high sync needed to prevent lockups - why?
+ config.set_maximum_quantum(attotime::from_hz(2000000)); // Very high sync needed to prevent lockups - why?
/* video hardware */
m_screen->set_screen_update(FUNC(jetwave_state::screen_update));