summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame
diff options
context:
space:
mode:
author Vas Crabb <vas@vastheman.com>2019-10-26 12:47:04 +1100
committer Vas Crabb <vas@vastheman.com>2019-10-26 12:47:04 +1100
commitf81fbdb8d4356b7a526a902726463e2f1af00615 (patch)
treef73f8746dc3cd1feb81afdb3cb4e6b0b99141ea0 /src/mame
parentbc7c6ea17e1b38f6fb488177e01c63577fbbcf71 (diff)
Make devdelegate more like devcb for configuration. This is a
fundamental change to show device delegates are configured. Device delegates are now aware of the current device during configuration and will resolve string tags relative to it. This means that device delegates need a device to be supplied on construction so they can find the machine configuration object. There's a one-dimensional array helper to make it easier to construct arrays of device delegates with the same owner. (I didn't make an n-dimensional one because I didn't hit a use case, but it would be a simple addition.) There's no more bind_relative_to member - just call resolve() like you would for a devcb. There's also no need to cast nullptr when creating a late bind device delegate. The flip side is that for an overloaded or non-capturing lambda you'll need to cast to the desired type. There is one less conditional branch in the hot path for calls for delegates bound to a function pointer of member function pointer. This comes at the cost of one additional unconditional branch in the hot path for calls to delegates bound to functoids (lambdas, functions that don't take an object reference, other callable objects). This applies to all delegates, not just device delegates. Address spaces will now print an error message if a late bind error is encountered while installing a handler. This will give the range and address range, hopefully making it easier to guess which memory map is faulty. For the simple case of allowing a device_delegate member to be configured, use a member like this: template <typename... T> void set_foo(T &&...args) { m_foo_cb.set(std::forward<T>(args)...); } For a case where different delegates need to be used depending on the function signature, see src/emu/screen.h (the screen update function setters). Device delegates now take a target specification and function pointer. The target may be: * Target omitted, implying the current device being configured. This can only be used during configuration. It will work as long as the current device is not removed/replaced. * A tag string relative to the current device being configured. This can only be used during configuration. It will not be callable until .resolve() is called. It will work as long as the current device is not removed/replaced. * A device finder (required_device/optional_device). The delegate will late bind to the current target of the device finder. It will not be callable until .resolve() is called. It will work properly if the target device is replaced, as long as the device finder's base object isn't removed/replaced. * A reference to an object. It will be callable immediately. It will work as long as the target object is not removed/replaced. The target types and restrictions are pretty similar to what you already have on object finders and devcb, so it shouldn't cause any surprises. Note that dereferencing a device finder will changes the effect. To illustrate this: ... required_device<some_device> m_dev; ... m_dev(*this, "dev") ... // will late bind to "dev" relative to *this // will work if "dev" hasn't been created yet or is replaced later // won't work if *this is removed/replaced // won't be callable until resolve() is called cb1.set(m_dev, FUNC(some_device::w)); ... // will bind to current target of m_dev // will not work if m_dev is not resolved // will not work if "dev" is replaced later // will be callable immediately cb2.set(*m_dev, FUNC(some_device::w)); ... The order of the target and name has been reversed for functoids (lambdas and other callable objects). This allows the NAME macro to be used on lambdas and functoids. For example: foo.set_something(NAME([this] (u8 data) { m_something = data; })); I realise the diagnostic messages get ugly if you use NAME on a large lambda. You can still give a literal name, you just have to place it after the lambda rather than before. This is uglier, but it's intentional. I'm trying to drive developers away from a certain style. While it's nice that you can put half the driver code in the memory map, it detracts from readability. It's hard to visualise the memory range mappings if the memory map functions are punctuated by large lambdas. There's also slightly higher overhead for calling a delegate bound to a functoid. If the code is prettier for trivial lambdas but uglier for non-trivial lambdas in address maps, it will hopefully steer people away from putting non-trivial lambdas in memory maps. There were some devices that were converted from using plain delegates without adding bind_relative_to calls. I fixed some of them (e.g. LaserDisc) but I probably missed some. These will likely crash on unresolved delegate calls. There are some devices that reset delegates at configuration complete or start time, preventing them from being set up during configuration (e.g. src/devices/video/ppu2c0x.cpp and src/devices/machine/68307.cpp). This goes against the design principles of how device delegates should be used, but I didn't change them because I don't trust myself to find all the places they're used. I've definitely broken some stuff with this (I know about asterix), so report issues and bear with me until I get it all fixed.
Diffstat (limited to 'src/mame')
-rw-r--r--src/mame/audio/cage.cpp2
-rw-r--r--src/mame/audio/dcs.cpp11
-rw-r--r--src/mame/audio/jaguar.cpp2
-rw-r--r--src/mame/audio/leland.cpp4
-rw-r--r--src/mame/audio/lynx.cpp6
-rw-r--r--src/mame/audio/lynx.h2
-rw-r--r--src/mame/audio/midway.cpp58
-rw-r--r--src/mame/audio/midway.h17
-rw-r--r--src/mame/audio/segasnd.cpp5
-rw-r--r--src/mame/audio/sente6vb.cpp14
-rw-r--r--src/mame/drivers/1943.cpp8
-rw-r--r--src/mame/drivers/1945kiii.cpp2
-rw-r--r--src/mame/drivers/39in1.cpp2
-rw-r--r--src/mame/drivers/3x3puzzl.cpp6
-rw-r--r--src/mame/drivers/4dpi.cpp122
-rw-r--r--src/mame/drivers/4enlinea.cpp4
-rw-r--r--src/mame/drivers/5clown.cpp2
-rw-r--r--src/mame/drivers/88games.cpp6
-rw-r--r--src/mame/drivers/a2600.cpp38
-rw-r--r--src/mame/drivers/a7800.cpp105
-rw-r--r--src/mame/drivers/aa310.cpp2
-rw-r--r--src/mame/drivers/abc1600.cpp6
-rw-r--r--src/mame/drivers/abc80.cpp2
-rw-r--r--src/mame/drivers/abc80x.cpp2
-rw-r--r--src/mame/drivers/aci_ggm.cpp2
-rw-r--r--src/mame/drivers/adm23.cpp4
-rw-r--r--src/mame/drivers/aerofgt.cpp28
-rw-r--r--src/mame/drivers/aim65.cpp14
-rw-r--r--src/mame/drivers/airbustr.cpp2
-rw-r--r--src/mame/drivers/ajax.cpp6
-rw-r--r--src/mame/drivers/akkaarrh.cpp8
-rw-r--r--src/mame/drivers/albazg.cpp2
-rw-r--r--src/mame/drivers/alcat7100.cpp2
-rw-r--r--src/mame/drivers/alesis.cpp2
-rw-r--r--src/mame/drivers/aliens.cpp4
-rw-r--r--src/mame/drivers/alpha68k.cpp8
-rw-r--r--src/mame/drivers/alpha68k_n.cpp4
-rw-r--r--src/mame/drivers/alphasma.cpp2
-rw-r--r--src/mame/drivers/alphatro.cpp4
-rw-r--r--src/mame/drivers/altair.cpp2
-rw-r--r--src/mame/drivers/altos5.cpp2
-rw-r--r--src/mame/drivers/ambush.cpp6
-rw-r--r--src/mame/drivers/amstrad.cpp6
-rw-r--r--src/mame/drivers/amusco.cpp7
-rw-r--r--src/mame/drivers/amust.cpp2
-rw-r--r--src/mame/drivers/apf.cpp4
-rw-r--r--src/mame/drivers/apollo.cpp10
-rw-r--r--src/mame/drivers/apple1.cpp2
-rw-r--r--src/mame/drivers/apple2.cpp3
-rw-r--r--src/mame/drivers/apple2e.cpp2
-rw-r--r--src/mame/drivers/applix.cpp4
-rw-r--r--src/mame/drivers/apricot.cpp2
-rw-r--r--src/mame/drivers/apricotp.cpp2
-rw-r--r--src/mame/drivers/aquarium.cpp2
-rw-r--r--src/mame/drivers/arcadia.cpp12
-rw-r--r--src/mame/drivers/argo.cpp2
-rw-r--r--src/mame/drivers/arkanoid.cpp14
-rw-r--r--src/mame/drivers/armedf.cpp16
-rw-r--r--src/mame/drivers/artmagic.cpp2
-rw-r--r--src/mame/drivers/asterix.cpp4
-rw-r--r--src/mame/drivers/asteroid.cpp2
-rw-r--r--src/mame/drivers/astrof.cpp16
-rw-r--r--src/mame/drivers/astrohome.cpp6
-rw-r--r--src/mame/drivers/asuka.cpp10
-rw-r--r--src/mame/drivers/atari400.cpp56
-rw-r--r--src/mame/drivers/atarig1.cpp2
-rw-r--r--src/mame/drivers/atarig42.cpp4
-rw-r--r--src/mame/drivers/atarigt.cpp2
-rw-r--r--src/mame/drivers/atarigx2.cpp10
-rw-r--r--src/mame/drivers/atarist.cpp6
-rw-r--r--src/mame/drivers/atarittl.cpp2
-rw-r--r--src/mame/drivers/atom.cpp8
-rw-r--r--src/mame/drivers/attache.cpp2
-rw-r--r--src/mame/drivers/aussiebyte.cpp6
-rw-r--r--src/mame/drivers/ave_arb.cpp2
-rw-r--r--src/mame/drivers/avigo.cpp2
-rw-r--r--src/mame/drivers/avt.cpp2
-rw-r--r--src/mame/drivers/babbage.cpp2
-rw-r--r--src/mame/drivers/backfire.cpp14
-rw-r--r--src/mame/drivers/balsente.cpp4
-rw-r--r--src/mame/drivers/banctec.cpp4
-rw-r--r--src/mame/drivers/battlnts.cpp4
-rw-r--r--src/mame/drivers/bbc.cpp24
-rw-r--r--src/mame/drivers/bbcbc.cpp10
-rw-r--r--src/mame/drivers/berzerk.cpp8
-rw-r--r--src/mame/drivers/bestleag.cpp6
-rw-r--r--src/mame/drivers/beta.cpp4
-rw-r--r--src/mame/drivers/bfm_sc2.cpp4
-rw-r--r--src/mame/drivers/bfm_sc4.cpp8
-rw-r--r--src/mame/drivers/bigbord2.cpp2
-rw-r--r--src/mame/drivers/binbug.cpp2
-rw-r--r--src/mame/drivers/bionicc.cpp8
-rw-r--r--src/mame/drivers/bishi.cpp4
-rw-r--r--src/mame/drivers/blackt96.cpp4
-rw-r--r--src/mame/drivers/bladestl.cpp4
-rw-r--r--src/mame/drivers/blitz68k.cpp14
-rw-r--r--src/mame/drivers/blockade.cpp2
-rw-r--r--src/mame/drivers/blockhl.cpp4
-rw-r--r--src/mame/drivers/bloodbro.cpp2
-rw-r--r--src/mame/drivers/bmcpokr.cpp4
-rw-r--r--src/mame/drivers/bml3.cpp67
-rw-r--r--src/mame/drivers/bnstars.cpp16
-rw-r--r--src/mame/drivers/boogwing.cpp6
-rw-r--r--src/mame/drivers/bottom9.cpp6
-rw-r--r--src/mame/drivers/btime.cpp2
-rw-r--r--src/mame/drivers/bw12.cpp4
-rw-r--r--src/mame/drivers/bzone.cpp4
-rw-r--r--src/mame/drivers/c128.cpp4
-rw-r--r--src/mame/drivers/c2color.cpp2
-rw-r--r--src/mame/drivers/c64.cpp6
-rw-r--r--src/mame/drivers/cabaret.cpp4
-rw-r--r--src/mame/drivers/calchase.cpp14
-rw-r--r--src/mame/drivers/calcune.cpp4
-rw-r--r--src/mame/drivers/calorie.cpp4
-rw-r--r--src/mame/drivers/camplynx.cpp4
-rw-r--r--src/mame/drivers/cardline.cpp4
-rw-r--r--src/mame/drivers/carjmbre.cpp2
-rw-r--r--src/mame/drivers/casloopy.cpp2
-rw-r--r--src/mame/drivers/caswin.cpp2
-rw-r--r--src/mame/drivers/cat.cpp2
-rw-r--r--src/mame/drivers/cave.cpp2
-rw-r--r--src/mame/drivers/cb2001.cpp6
-rw-r--r--src/mame/drivers/cball.cpp2
-rw-r--r--src/mame/drivers/cbm2.cpp8
-rw-r--r--src/mame/drivers/cbuster.cpp10
-rw-r--r--src/mame/drivers/cc40.cpp4
-rw-r--r--src/mame/drivers/cd2650.cpp2
-rw-r--r--src/mame/drivers/cgc7900.cpp2
-rw-r--r--src/mame/drivers/cgenie.cpp10
-rw-r--r--src/mame/drivers/cham24.cpp2
-rw-r--r--src/mame/drivers/chanbara.cpp4
-rw-r--r--src/mame/drivers/chance32.cpp4
-rw-r--r--src/mame/drivers/channelf.cpp10
-rw-r--r--src/mame/drivers/chinagat.cpp4
-rw-r--r--src/mame/drivers/chinsan.cpp2
-rw-r--r--src/mame/drivers/chqflag.cpp6
-rw-r--r--src/mame/drivers/cinemat.cpp8
-rw-r--r--src/mame/drivers/cischeat.cpp4
-rw-r--r--src/mame/drivers/clickstart.cpp2
-rw-r--r--src/mame/drivers/clpoker.cpp4
-rw-r--r--src/mame/drivers/cmi.cpp63
-rw-r--r--src/mame/drivers/cninja.cpp40
-rw-r--r--src/mame/drivers/cntsteer.cpp8
-rw-r--r--src/mame/drivers/cobra.cpp11
-rw-r--r--src/mame/drivers/coinmstr.cpp2
-rw-r--r--src/mame/drivers/coleco.cpp2
-rw-r--r--src/mame/drivers/combatsc.cpp4
-rw-r--r--src/mame/drivers/comx35.cpp2
-rw-r--r--src/mame/drivers/coolridr.cpp4
-rw-r--r--src/mame/drivers/cosmic.cpp8
-rw-r--r--src/mame/drivers/cosmicos.cpp2
-rw-r--r--src/mame/drivers/cp1.cpp2
-rw-r--r--src/mame/drivers/cps1.cpp34
-rw-r--r--src/mame/drivers/cps2.cpp8
-rw-r--r--src/mame/drivers/cps3.cpp8
-rw-r--r--src/mame/drivers/crgolf.cpp2
-rw-r--r--src/mame/drivers/crimfght.cpp4
-rw-r--r--src/mame/drivers/crshrace.cpp2
-rw-r--r--src/mame/drivers/crvision.cpp4
-rw-r--r--src/mame/drivers/csplayh5.cpp6
-rw-r--r--src/mame/drivers/cswat.cpp6
-rw-r--r--src/mame/drivers/cultures.cpp10
-rw-r--r--src/mame/drivers/cv1k.cpp2
-rw-r--r--src/mame/drivers/cvs.cpp6
-rw-r--r--src/mame/drivers/cybertnk.cpp6
-rw-r--r--src/mame/drivers/cybiko.cpp4
-rw-r--r--src/mame/drivers/cz101.cpp2
-rw-r--r--src/mame/drivers/d6800.cpp2
-rw-r--r--src/mame/drivers/d6809.cpp2
-rw-r--r--src/mame/drivers/d9final.cpp2
-rw-r--r--src/mame/drivers/dacholer.cpp6
-rw-r--r--src/mame/drivers/dassault.cpp8
-rw-r--r--src/mame/drivers/dblewing.cpp6
-rw-r--r--src/mame/drivers/dbz.cpp6
-rw-r--r--src/mame/drivers/dccons.cpp4
-rw-r--r--src/mame/drivers/ddayjlc.cpp4
-rw-r--r--src/mame/drivers/ddealer.cpp4
-rw-r--r--src/mame/drivers/ddenlovr.cpp2
-rw-r--r--src/mame/drivers/deadang.cpp4
-rw-r--r--src/mame/drivers/dec0.cpp20
-rw-r--r--src/mame/drivers/dec8.cpp6
-rw-r--r--src/mame/drivers/deco156.cpp12
-rw-r--r--src/mame/drivers/deco32.cpp50
-rw-r--r--src/mame/drivers/deco_mlc.cpp2
-rw-r--r--src/mame/drivers/decocass.cpp8
-rw-r--r--src/mame/drivers/dectalk.cpp2
-rw-r--r--src/mame/drivers/dgn_beta.cpp2
-rw-r--r--src/mame/drivers/dietgo.cpp4
-rw-r--r--src/mame/drivers/dim68k.cpp2
-rw-r--r--src/mame/drivers/divebomb.cpp4
-rw-r--r--src/mame/drivers/djmain.cpp2
-rw-r--r--src/mame/drivers/dkong.cpp18
-rw-r--r--src/mame/drivers/dm7000.cpp4
-rw-r--r--src/mame/drivers/dmndrby.cpp2
-rw-r--r--src/mame/drivers/dmv.cpp2
-rw-r--r--src/mame/drivers/dooyong.cpp22
-rw-r--r--src/mame/drivers/dpb7000.cpp4
-rw-r--r--src/mame/drivers/dragon.cpp2
-rw-r--r--src/mame/drivers/dreambal.cpp4
-rw-r--r--src/mame/drivers/dreamwld.cpp10
-rw-r--r--src/mame/drivers/drtomy.cpp4
-rw-r--r--src/mame/drivers/drw80pkr.cpp2
-rw-r--r--src/mame/drivers/duet16.cpp2
-rw-r--r--src/mame/drivers/dunhuang.cpp4
-rw-r--r--src/mame/drivers/dynadice.cpp4
-rw-r--r--src/mame/drivers/dynax.cpp2
-rw-r--r--src/mame/drivers/ec65.cpp2
-rw-r--r--src/mame/drivers/ecoinfr.cpp3
-rw-r--r--src/mame/drivers/efdt.cpp4
-rw-r--r--src/mame/drivers/egghunt.cpp2
-rw-r--r--src/mame/drivers/eispc.cpp74
-rw-r--r--src/mame/drivers/elf.cpp4
-rw-r--r--src/mame/drivers/ep64.cpp2
-rw-r--r--src/mame/drivers/equites.cpp6
-rw-r--r--src/mame/drivers/esd16.cpp2
-rw-r--r--src/mame/drivers/esprit.cpp6
-rw-r--r--src/mame/drivers/eti660.cpp2
-rw-r--r--src/mame/drivers/ettrivia.cpp4
-rw-r--r--src/mame/drivers/excali64.cpp2
-rw-r--r--src/mame/drivers/exidy440.cpp10
-rw-r--r--src/mame/drivers/expro02.cpp2
-rw-r--r--src/mame/drivers/exprraid.cpp4
-rw-r--r--src/mame/drivers/f1gp.cpp7
-rw-r--r--src/mame/drivers/facit4440.cpp2
-rw-r--r--src/mame/drivers/falcots.cpp4
-rw-r--r--src/mame/drivers/famibox.cpp2
-rw-r--r--src/mame/drivers/fanucspmg.cpp4
-rw-r--r--src/mame/drivers/fastfred.cpp12
-rw-r--r--src/mame/drivers/fb01.cpp2
-rw-r--r--src/mame/drivers/fc100.cpp2
-rw-r--r--src/mame/drivers/fccpu30.cpp2
-rw-r--r--src/mame/drivers/fcrash.cpp12
-rw-r--r--src/mame/drivers/fidel_as12.cpp2
-rw-r--r--src/mame/drivers/fidel_cc1.cpp2
-rw-r--r--src/mame/drivers/fidel_eag68k.cpp2
-rw-r--r--src/mame/drivers/fidel_elite.cpp2
-rw-r--r--src/mame/drivers/fidel_sc12.cpp2
-rw-r--r--src/mame/drivers/fidel_sc6.cpp2
-rw-r--r--src/mame/drivers/fidel_sc9.cpp2
-rw-r--r--src/mame/drivers/fireball.cpp2
-rw-r--r--src/mame/drivers/firebeat.cpp16
-rw-r--r--src/mame/drivers/firefox.cpp2
-rw-r--r--src/mame/drivers/fitfight.cpp6
-rw-r--r--src/mame/drivers/flipjack.cpp2
-rw-r--r--src/mame/drivers/flower.cpp4
-rw-r--r--src/mame/drivers/flyball.cpp2
-rw-r--r--src/mame/drivers/fm7.cpp30
-rw-r--r--src/mame/drivers/force68k.cpp6
-rw-r--r--src/mame/drivers/fp1100.cpp4
-rw-r--r--src/mame/drivers/freeway.cpp2
-rw-r--r--src/mame/drivers/fresh.cpp4
-rw-r--r--src/mame/drivers/fs3216.cpp4
-rw-r--r--src/mame/drivers/funkball.cpp6
-rw-r--r--src/mame/drivers/funtech.cpp8
-rw-r--r--src/mame/drivers/fuukifg2.cpp2
-rw-r--r--src/mame/drivers/fuukifg3.cpp12
-rw-r--r--src/mame/drivers/gaelco.cpp6
-rw-r--r--src/mame/drivers/gaelco3d.cpp8
-rw-r--r--src/mame/drivers/galaga.cpp4
-rw-r--r--src/mame/drivers/galaxi.cpp10
-rw-r--r--src/mame/drivers/galaxian.cpp46
-rw-r--r--src/mame/drivers/galaxy.cpp4
-rw-r--r--src/mame/drivers/galivan.cpp10
-rw-r--r--src/mame/drivers/gamecom.cpp4
-rw-r--r--src/mame/drivers/gamecstl.cpp6
-rw-r--r--src/mame/drivers/gameking.cpp2
-rw-r--r--src/mame/drivers/gba.cpp34
-rw-r--r--src/mame/drivers/gcpinbal.cpp2
-rw-r--r--src/mame/drivers/geniusiq.cpp4
-rw-r--r--src/mame/drivers/ghosteo.cpp2
-rw-r--r--src/mame/drivers/giclassic.cpp6
-rw-r--r--src/mame/drivers/gijoe.cpp4
-rw-r--r--src/mame/drivers/gluck2.cpp2
-rw-r--r--src/mame/drivers/gmaster.cpp2
-rw-r--r--src/mame/drivers/goldngam.cpp4
-rw-r--r--src/mame/drivers/goldnpkr.cpp6
-rw-r--r--src/mame/drivers/goldstar.cpp40
-rw-r--r--src/mame/drivers/good.cpp4
-rw-r--r--src/mame/drivers/goodejan.cpp18
-rw-r--r--src/mame/drivers/gottlieb.cpp16
-rw-r--r--src/mame/drivers/goupil.cpp4
-rw-r--r--src/mame/drivers/gradius3.cpp4
-rw-r--r--src/mame/drivers/gridlee.cpp2
-rw-r--r--src/mame/drivers/groundfx.cpp2
-rw-r--r--src/mame/drivers/gstream.cpp6
-rw-r--r--src/mame/drivers/gstriker.cpp8
-rw-r--r--src/mame/drivers/gsword.cpp4
-rw-r--r--src/mame/drivers/gts3a.cpp2
-rw-r--r--src/mame/drivers/gunbustr.cpp2
-rw-r--r--src/mame/drivers/h19.cpp2
-rw-r--r--src/mame/drivers/h89.cpp6
-rw-r--r--src/mame/drivers/harddriv.cpp238
-rw-r--r--src/mame/drivers/hazeltin.cpp6
-rw-r--r--src/mame/drivers/headonb.cpp2
-rw-r--r--src/mame/drivers/hektor.cpp6
-rw-r--r--src/mame/drivers/hh_tms1k.cpp4
-rw-r--r--src/mame/drivers/hitme.cpp4
-rw-r--r--src/mame/drivers/hnayayoi.cpp4
-rw-r--r--src/mame/drivers/homelab.cpp6
-rw-r--r--src/mame/drivers/hornet.cpp6
-rw-r--r--src/mame/drivers/hotstuff.cpp55
-rw-r--r--src/mame/drivers/hp16500.cpp6
-rw-r--r--src/mame/drivers/hp64k.cpp2
-rw-r--r--src/mame/drivers/hp700.cpp10
-rw-r--r--src/mame/drivers/hp9825.cpp12
-rw-r--r--src/mame/drivers/hp9845.cpp4
-rw-r--r--src/mame/drivers/hp9k_3xx.cpp2
-rw-r--r--src/mame/drivers/hprot1.cpp2
-rw-r--r--src/mame/drivers/hunter16.cpp2
-rw-r--r--src/mame/drivers/hvyunit.cpp6
-rw-r--r--src/mame/drivers/hx20.cpp2
-rw-r--r--src/mame/drivers/hyprduel.cpp8
-rw-r--r--src/mame/drivers/i7000.cpp8
-rw-r--r--src/mame/drivers/ibmpcjr.cpp4
-rw-r--r--src/mame/drivers/icatel.cpp2
-rw-r--r--src/mame/drivers/icebox.cpp8
-rw-r--r--src/mame/drivers/icecold.cpp4
-rw-r--r--src/mame/drivers/igs009.cpp20
-rw-r--r--src/mame/drivers/igs011.cpp12
-rw-r--r--src/mame/drivers/igs017.cpp34
-rw-r--r--src/mame/drivers/igspoker.cpp6
-rw-r--r--src/mame/drivers/instruct.cpp2
-rw-r--r--src/mame/drivers/intellec4.cpp4
-rw-r--r--src/mame/drivers/intellect02.cpp2
-rw-r--r--src/mame/drivers/interpro.cpp10
-rw-r--r--src/mame/drivers/inufuku.cpp2
-rw-r--r--src/mame/drivers/ipds.cpp2
-rw-r--r--src/mame/drivers/iqblock.cpp4
-rw-r--r--src/mame/drivers/is48x.cpp2
-rw-r--r--src/mame/drivers/istrebiteli.cpp4
-rw-r--r--src/mame/drivers/itech32.cpp42
-rw-r--r--src/mame/drivers/itech8.cpp2
-rw-r--r--src/mame/drivers/itt1700.cpp2
-rw-r--r--src/mame/drivers/jackie.cpp8
-rw-r--r--src/mame/drivers/jaguar.cpp34
-rw-r--r--src/mame/drivers/jalmah.cpp26
-rw-r--r--src/mame/drivers/jangou.cpp2
-rw-r--r--src/mame/drivers/jazz.cpp42
-rw-r--r--src/mame/drivers/jchan.cpp4
-rw-r--r--src/mame/drivers/jclub2.cpp4
-rw-r--r--src/mame/drivers/jensen.cpp58
-rw-r--r--src/mame/drivers/jokrwild.cpp2
-rw-r--r--src/mame/drivers/jollyjgr.cpp2
-rw-r--r--src/mame/drivers/joystand.cpp4
-rw-r--r--src/mame/drivers/jr100.cpp2
-rw-r--r--src/mame/drivers/jtc.cpp2
-rw-r--r--src/mame/drivers/jubilee.cpp2
-rw-r--r--src/mame/drivers/juicebox.cpp34
-rw-r--r--src/mame/drivers/jupace.cpp2
-rw-r--r--src/mame/drivers/k28.cpp2
-rw-r--r--src/mame/drivers/kangaroo.cpp2
-rw-r--r--src/mame/drivers/karnov.cpp4
-rw-r--r--src/mame/drivers/kaypro.cpp6
-rw-r--r--src/mame/drivers/kc.cpp4
-rw-r--r--src/mame/drivers/kdt6.cpp6
-rw-r--r--src/mame/drivers/kenseim.cpp2
-rw-r--r--src/mame/drivers/kickgoal.cpp10
-rw-r--r--src/mame/drivers/kingdrby.cpp6
-rw-r--r--src/mame/drivers/koftball.cpp11
-rw-r--r--src/mame/drivers/koikoi.cpp2
-rw-r--r--src/mame/drivers/konamigx.cpp22
-rw-r--r--src/mame/drivers/konamim2.cpp8
-rw-r--r--src/mame/drivers/konin.cpp14
-rw-r--r--src/mame/drivers/konmedal.cpp8
-rw-r--r--src/mame/drivers/konmedal68k.cpp2
-rw-r--r--src/mame/drivers/ksys573.cpp2
-rw-r--r--src/mame/drivers/laserbas.cpp2
-rw-r--r--src/mame/drivers/lbeach.cpp4
-rw-r--r--src/mame/drivers/ldplayer.cpp4
-rw-r--r--src/mame/drivers/leapfrog_leappad.cpp4
-rw-r--r--src/mame/drivers/leapster.cpp2
-rw-r--r--src/mame/drivers/legionna.cpp48
-rw-r--r--src/mame/drivers/leland.cpp54
-rw-r--r--src/mame/drivers/lethal.cpp4
-rw-r--r--src/mame/drivers/lethalj.cpp6
-rw-r--r--src/mame/drivers/liberate.cpp6
-rw-r--r--src/mame/drivers/limenko.cpp14
-rw-r--r--src/mame/drivers/lola8a.cpp2
-rw-r--r--src/mame/drivers/looping.cpp4
-rw-r--r--src/mame/drivers/ltcasino.cpp4
-rw-r--r--src/mame/drivers/luckgrln.cpp8
-rw-r--r--src/mame/drivers/lviv.cpp2
-rw-r--r--src/mame/drivers/lwings.cpp4
-rw-r--r--src/mame/drivers/lynx.cpp8
-rw-r--r--src/mame/drivers/m14.cpp2
-rw-r--r--src/mame/drivers/m20.cpp2
-rw-r--r--src/mame/drivers/m3.cpp2
-rw-r--r--src/mame/drivers/m5.cpp16
-rw-r--r--src/mame/drivers/m63.cpp4
-rw-r--r--src/mame/drivers/m68705prg.cpp4
-rw-r--r--src/mame/drivers/m72.cpp16
-rw-r--r--src/mame/drivers/m90.cpp2
-rw-r--r--src/mame/drivers/macrossp.cpp4
-rw-r--r--src/mame/drivers/macs.cpp2
-rw-r--r--src/mame/drivers/magic10.cpp6
-rw-r--r--src/mame/drivers/magicfly.cpp4
-rw-r--r--src/mame/drivers/magictg.cpp12
-rw-r--r--src/mame/drivers/mainevt.cpp8
-rw-r--r--src/mame/drivers/majorpkr.cpp4
-rw-r--r--src/mame/drivers/mappy.cpp4
-rw-r--r--src/mame/drivers/marinedt.cpp2
-rw-r--r--src/mame/drivers/mastboyo.cpp2
-rw-r--r--src/mame/drivers/maygay1b.cpp2
-rw-r--r--src/mame/drivers/maygayv1.cpp2
-rw-r--r--src/mame/drivers/mbc200.cpp2
-rw-r--r--src/mame/drivers/mbc55x.cpp2
-rw-r--r--src/mame/drivers/mbee.cpp16
-rw-r--r--src/mame/drivers/mcatadv.cpp4
-rw-r--r--src/mame/drivers/mcr.cpp48
-rw-r--r--src/mame/drivers/mcr3.cpp46
-rw-r--r--src/mame/drivers/mcr68.cpp20
-rw-r--r--src/mame/drivers/mediagx.cpp66
-rw-r--r--src/mame/drivers/megadriv.cpp48
-rw-r--r--src/mame/drivers/megadriv_acbl.cpp30
-rw-r--r--src/mame/drivers/megadriv_rad.cpp4
-rw-r--r--src/mame/drivers/megaplay.cpp8
-rw-r--r--src/mame/drivers/megasys1.cpp28
-rw-r--r--src/mame/drivers/megatech.cpp36
-rw-r--r--src/mame/drivers/mekd2.cpp2
-rw-r--r--src/mame/drivers/mekd3.cpp2
-rw-r--r--src/mame/drivers/mekd4.cpp2
-rw-r--r--src/mame/drivers/merit.cpp4
-rw-r--r--src/mame/drivers/meritm.cpp6
-rw-r--r--src/mame/drivers/meritum.cpp2
-rw-r--r--src/mame/drivers/metro.cpp6
-rw-r--r--src/mame/drivers/mgames.cpp2
-rw-r--r--src/mame/drivers/mgavegas.cpp6
-rw-r--r--src/mame/drivers/mgolf.cpp2
-rw-r--r--src/mame/drivers/micro20.cpp7
-rw-r--r--src/mame/drivers/micro3d.cpp2
-rw-r--r--src/mame/drivers/microtan.cpp4
-rw-r--r--src/mame/drivers/microvsn.cpp2
-rw-r--r--src/mame/drivers/midqslvr.cpp6
-rw-r--r--src/mame/drivers/midvunit.cpp34
-rw-r--r--src/mame/drivers/midzeus.cpp10
-rw-r--r--src/mame/drivers/mikrosha.cpp4
-rw-r--r--src/mame/drivers/mil4000.cpp8
-rw-r--r--src/mame/drivers/mindset.cpp4
-rw-r--r--src/mame/drivers/miniboy7.cpp2
-rw-r--r--src/mame/drivers/mips.cpp65
-rw-r--r--src/mame/drivers/mirage.cpp4
-rw-r--r--src/mame/drivers/mjsenpu.cpp16
-rw-r--r--src/mame/drivers/ml20.cpp2
-rw-r--r--src/mame/drivers/mmm.cpp8
-rw-r--r--src/mame/drivers/model3.cpp86
-rw-r--r--src/mame/drivers/mogura.cpp2
-rw-r--r--src/mame/drivers/mole.cpp2
-rw-r--r--src/mame/drivers/monon_color.cpp2
-rw-r--r--src/mame/drivers/moo.cpp8
-rw-r--r--src/mame/drivers/mpu12wbk.cpp2
-rw-r--r--src/mame/drivers/mpu3.cpp5
-rw-r--r--src/mame/drivers/mpu4vid.cpp2
-rw-r--r--src/mame/drivers/mtx.cpp8
-rw-r--r--src/mame/drivers/multfish.cpp4
-rw-r--r--src/mame/drivers/multi16.cpp2
-rw-r--r--src/mame/drivers/multi8.cpp2
-rw-r--r--src/mame/drivers/multigam.cpp24
-rw-r--r--src/mame/drivers/munchmo.cpp2
-rw-r--r--src/mame/drivers/mx2178.cpp2
-rw-r--r--src/mame/drivers/myb3k.cpp2
-rw-r--r--src/mame/drivers/mycom.cpp2
-rw-r--r--src/mame/drivers/mystwarr.cpp24
-rw-r--r--src/mame/drivers/myvision.cpp4
-rw-r--r--src/mame/drivers/n64.cpp8
-rw-r--r--src/mame/drivers/namcona1.cpp6
-rw-r--r--src/mame/drivers/namcos11.cpp2
-rw-r--r--src/mame/drivers/namcos22.cpp6
-rw-r--r--src/mame/drivers/namcos23.cpp2
-rw-r--r--src/mame/drivers/naomi.cpp2
-rw-r--r--src/mame/drivers/nascom1.cpp8
-rw-r--r--src/mame/drivers/naughtyb.cpp8
-rw-r--r--src/mame/drivers/nc.cpp4
-rw-r--r--src/mame/drivers/neogeo.cpp208
-rw-r--r--src/mame/drivers/neogeocd.cpp6
-rw-r--r--src/mame/drivers/neopcb.cpp2
-rw-r--r--src/mame/drivers/nes.cpp26
-rw-r--r--src/mame/drivers/nes_vt.cpp12
-rw-r--r--src/mame/drivers/ngen.cpp10
-rw-r--r--src/mame/drivers/ngp.cpp8
-rw-r--r--src/mame/drivers/nibble.cpp2
-rw-r--r--src/mame/drivers/nightgal.cpp4
-rw-r--r--src/mame/drivers/ninjakd2.cpp2
-rw-r--r--src/mame/drivers/nmg5.cpp4
-rw-r--r--src/mame/drivers/nmk16.cpp62
-rw-r--r--src/mame/drivers/nokia_3310.cpp2
-rw-r--r--src/mame/drivers/novag_diablo.cpp2
-rw-r--r--src/mame/drivers/novag_sexpert.cpp2
-rw-r--r--src/mame/drivers/nsmpoker.cpp2
-rw-r--r--src/mame/drivers/nyny.cpp4
-rw-r--r--src/mame/drivers/offtwall.cpp12
-rw-r--r--src/mame/drivers/olibochu.cpp2
-rw-r--r--src/mame/drivers/olyboss.cpp2
-rw-r--r--src/mame/drivers/onetwo.cpp2
-rw-r--r--src/mame/drivers/onyx.cpp20
-rw-r--r--src/mame/drivers/opwolf.cpp4
-rw-r--r--src/mame/drivers/osborne1.cpp4
-rw-r--r--src/mame/drivers/othello.cpp2
-rw-r--r--src/mame/drivers/overdriv.cpp6
-rw-r--r--src/mame/drivers/pacman.cpp12
-rw-r--r--src/mame/drivers/palestra.cpp2
-rw-r--r--src/mame/drivers/panicr.cpp6
-rw-r--r--src/mame/drivers/paradise.cpp4
-rw-r--r--src/mame/drivers/parodius.cpp4
-rw-r--r--src/mame/drivers/partner.cpp2
-rw-r--r--src/mame/drivers/pasha2.cpp2
-rw-r--r--src/mame/drivers/pasopia.cpp2
-rw-r--r--src/mame/drivers/patapata.cpp8
-rw-r--r--src/mame/drivers/patinho_feio.cpp2
-rw-r--r--src/mame/drivers/pbaction.cpp8
-rw-r--r--src/mame/drivers/pc100.cpp5
-rw-r--r--src/mame/drivers/pc2000.cpp2
-rw-r--r--src/mame/drivers/pc6001.cpp2
-rw-r--r--src/mame/drivers/pc8001.cpp4
-rw-r--r--src/mame/drivers/pc9801.cpp4
-rw-r--r--src/mame/drivers/pcw.cpp4
-rw-r--r--src/mame/drivers/pcxt.cpp2
-rw-r--r--src/mame/drivers/pegasus.cpp20
-rw-r--r--src/mame/drivers/pencil2.cpp2
-rw-r--r--src/mame/drivers/pentagon.cpp4
-rw-r--r--src/mame/drivers/peoplepc.cpp2
-rw-r--r--src/mame/drivers/peplus.cpp4
-rw-r--r--src/mame/drivers/pet.cpp16
-rw-r--r--src/mame/drivers/pg685.cpp6
-rw-r--r--src/mame/drivers/pgm2.cpp14
-rw-r--r--src/mame/drivers/photoply.cpp7
-rw-r--r--src/mame/drivers/phunsy.cpp2
-rw-r--r--src/mame/drivers/piggypas.cpp6
-rw-r--r--src/mame/drivers/pinball2k.cpp3
-rw-r--r--src/mame/drivers/pingpong.cpp4
-rw-r--r--src/mame/drivers/pipbug.cpp2
-rw-r--r--src/mame/drivers/pipedrm.cpp2
-rw-r--r--src/mame/drivers/pipeline.cpp4
-rw-r--r--src/mame/drivers/pirates.cpp2
-rw-r--r--src/mame/drivers/piratesh.cpp6
-rw-r--r--src/mame/drivers/pkscram.cpp6
-rw-r--r--src/mame/drivers/pktgaldx.cpp4
-rw-r--r--src/mame/drivers/plus4.cpp2
-rw-r--r--src/mame/drivers/pockchal.cpp4
-rw-r--r--src/mame/drivers/pockstat.cpp2
-rw-r--r--src/mame/drivers/poisk1.cpp2
-rw-r--r--src/mame/drivers/pokemini.cpp2
-rw-r--r--src/mame/drivers/polepos.cpp2
-rw-r--r--src/mame/drivers/policetr.cpp2
-rw-r--r--src/mame/drivers/poly88.cpp2
-rw-r--r--src/mame/drivers/pong.cpp28
-rw-r--r--src/mame/drivers/popobear.cpp8
-rw-r--r--src/mame/drivers/popper.cpp4
-rw-r--r--src/mame/drivers/powerbal.cpp4
-rw-r--r--src/mame/drivers/powerins.cpp4
-rw-r--r--src/mame/drivers/ppmast93.cpp4
-rw-r--r--src/mame/drivers/prehisle.cpp12
-rw-r--r--src/mame/drivers/primo.cpp4
-rw-r--r--src/mame/drivers/psion.cpp4
-rw-r--r--src/mame/drivers/psx.cpp2
-rw-r--r--src/mame/drivers/pturn.cpp4
-rw-r--r--src/mame/drivers/pv1000.cpp4
-rw-r--r--src/mame/drivers/pv2000.cpp4
-rw-r--r--src/mame/drivers/pwrview.cpp2
-rw-r--r--src/mame/drivers/pyl601.cpp4
-rw-r--r--src/mame/drivers/pzletime.cpp4
-rw-r--r--src/mame/drivers/qdrmfgp.cpp4
-rw-r--r--src/mame/drivers/queen.cpp6
-rw-r--r--src/mame/drivers/quickpick5.cpp4
-rw-r--r--src/mame/drivers/quizpun2.cpp4
-rw-r--r--src/mame/drivers/quizshow.cpp2
-rw-r--r--src/mame/drivers/qvt102.cpp2
-rw-r--r--src/mame/drivers/qvt190.cpp2
-rw-r--r--src/mame/drivers/qx10.cpp2
-rw-r--r--src/mame/drivers/r2dtank.cpp2
-rw-r--r--src/mame/drivers/r2dx_v33.cpp6
-rw-r--r--src/mame/drivers/rabbit.cpp8
-rw-r--r--src/mame/drivers/radio86.cpp2
-rw-r--r--src/mame/drivers/raiden2.cpp18
-rw-r--r--src/mame/drivers/rainbow.cpp12
-rw-r--r--src/mame/drivers/rastan.cpp2
-rw-r--r--src/mame/drivers/rastersp.cpp4
-rw-r--r--src/mame/drivers/ravens.cpp4
-rw-r--r--src/mame/drivers/rbisland.cpp2
-rw-r--r--src/mame/drivers/rc702.cpp4
-rw-r--r--src/mame/drivers/rd100.cpp2
-rw-r--r--src/mame/drivers/rex6000.cpp4
-rw-r--r--src/mame/drivers/rmhaihai.cpp2
-rw-r--r--src/mame/drivers/rockrage.cpp4
-rw-r--r--src/mame/drivers/rohga.cpp40
-rw-r--r--src/mame/drivers/rollerg.cpp4
-rw-r--r--src/mame/drivers/rollext.cpp2
-rw-r--r--src/mame/drivers/ron.cpp2
-rw-r--r--src/mame/drivers/rt1715.cpp2
-rw-r--r--src/mame/drivers/rungun.cpp2
-rw-r--r--src/mame/drivers/rx78.cpp4
-rw-r--r--src/mame/drivers/rz1.cpp2
-rw-r--r--src/mame/drivers/safarir.cpp4
-rw-r--r--src/mame/drivers/sage2.cpp2
-rw-r--r--src/mame/drivers/saitek_corona.cpp2
-rw-r--r--src/mame/drivers/saitek_stratos.cpp2
-rw-r--r--src/mame/drivers/saitek_superstar.cpp2
-rw-r--r--src/mame/drivers/sangho.cpp2
-rw-r--r--src/mame/drivers/sanremo.cpp2
-rw-r--r--src/mame/drivers/sapi1.cpp2
-rw-r--r--src/mame/drivers/saturn.cpp62
-rw-r--r--src/mame/drivers/savquest.cpp9
-rw-r--r--src/mame/drivers/sbowling.cpp2
-rw-r--r--src/mame/drivers/sbrain.cpp2
-rw-r--r--src/mame/drivers/sbrkout.cpp2
-rw-r--r--src/mame/drivers/scopus.cpp2
-rw-r--r--src/mame/drivers/scorpion.cpp2
-rw-r--r--src/mame/drivers/seabattl.cpp2
-rw-r--r--src/mame/drivers/sega_beena.cpp2
-rw-r--r--src/mame/drivers/segac2.cpp61
-rw-r--r--src/mame/drivers/segag80r.cpp40
-rw-r--r--src/mame/drivers/segag80v.cpp58
-rw-r--r--src/mame/drivers/segaorun.cpp34
-rw-r--r--src/mame/drivers/segapico.cpp16
-rw-r--r--src/mame/drivers/segas16a.cpp18
-rw-r--r--src/mame/drivers/segas16b.cpp68
-rw-r--r--src/mame/drivers/segas18.cpp46
-rw-r--r--src/mame/drivers/segas24.cpp2
-rw-r--r--src/mame/drivers/segas32.cpp32
-rw-r--r--src/mame/drivers/segaxbd.cpp14
-rw-r--r--src/mame/drivers/seibuspi.cpp18
-rw-r--r--src/mame/drivers/seicupbl.cpp8
-rw-r--r--src/mame/drivers/sengokmj.cpp8
-rw-r--r--src/mame/drivers/seta.cpp118
-rw-r--r--src/mame/drivers/seta2.cpp2
-rw-r--r--src/mame/drivers/sfbonus.cpp10
-rw-r--r--src/mame/drivers/sg1000.cpp8
-rw-r--r--src/mame/drivers/silvmil.cpp4
-rw-r--r--src/mame/drivers/simpl156.cpp16
-rw-r--r--src/mame/drivers/simpsons.cpp4
-rw-r--r--src/mame/drivers/sk101bl.cpp2
-rw-r--r--src/mame/drivers/skyarmy.cpp2
-rw-r--r--src/mame/drivers/skylncr.cpp10
-rw-r--r--src/mame/drivers/slotcarn.cpp8
-rw-r--r--src/mame/drivers/sm1800.cpp2
-rw-r--r--src/mame/drivers/smc777.cpp2
-rw-r--r--src/mame/drivers/snes.cpp94
-rw-r--r--src/mame/drivers/snesb.cpp76
-rw-r--r--src/mame/drivers/snk68.cpp18
-rw-r--r--src/mame/drivers/snowbros.cpp8
-rw-r--r--src/mame/drivers/sorcerer.cpp4
-rw-r--r--src/mame/drivers/spartanxtec.cpp2
-rw-r--r--src/mame/drivers/spc1500.cpp4
-rw-r--r--src/mame/drivers/spdheat.cpp8
-rw-r--r--src/mame/drivers/spectrum.cpp4
-rw-r--r--src/mame/drivers/spiders.cpp2
-rw-r--r--src/mame/drivers/splash.cpp8
-rw-r--r--src/mame/drivers/spoker.cpp4
-rw-r--r--src/mame/drivers/spool99.cpp2
-rw-r--r--src/mame/drivers/sprint2.cpp4
-rw-r--r--src/mame/drivers/spy.cpp4
-rw-r--r--src/mame/drivers/spyhuntertec.cpp8
-rw-r--r--src/mame/drivers/squale.cpp2
-rw-r--r--src/mame/drivers/srmp2.cpp4
-rw-r--r--src/mame/drivers/ssem.cpp2
-rw-r--r--src/mame/drivers/sshangha.cpp4
-rw-r--r--src/mame/drivers/sshot.cpp2
-rw-r--r--src/mame/drivers/ssingles.cpp4
-rw-r--r--src/mame/drivers/stadhero.cpp2
-rw-r--r--src/mame/drivers/starfire.cpp8
-rw-r--r--src/mame/drivers/statriv2.cpp12
-rw-r--r--src/mame/drivers/storio.cpp2
-rw-r--r--src/mame/drivers/studio2.cpp12
-rw-r--r--src/mame/drivers/stuntair.cpp4
-rw-r--r--src/mame/drivers/stv.cpp40
-rw-r--r--src/mame/drivers/subsino.cpp16
-rw-r--r--src/mame/drivers/subsino2.cpp4
-rw-r--r--src/mame/drivers/supduck.cpp6
-rw-r--r--src/mame/drivers/super80.cpp6
-rw-r--r--src/mame/drivers/superchs.cpp4
-rw-r--r--src/mame/drivers/supercrd.cpp2
-rw-r--r--src/mame/drivers/superdq.cpp2
-rw-r--r--src/mame/drivers/superwng.cpp4
-rw-r--r--src/mame/drivers/supracan.cpp42
-rw-r--r--src/mame/drivers/suprgolf.cpp2
-rw-r--r--src/mame/drivers/suprnova.cpp30
-rw-r--r--src/mame/drivers/suprslam.cpp2
-rw-r--r--src/mame/drivers/surpratk.cpp4
-rw-r--r--src/mame/drivers/sv8000.cpp4
-rw-r--r--src/mame/drivers/svi318.cpp2
-rw-r--r--src/mame/drivers/svision.cpp2
-rw-r--r--src/mame/drivers/svmu.cpp2
-rw-r--r--src/mame/drivers/swtpc8212.cpp2
-rw-r--r--src/mame/drivers/sys9002.cpp2
-rw-r--r--src/mame/drivers/system1.cpp20
-rw-r--r--src/mame/drivers/system16.cpp4
-rw-r--r--src/mame/drivers/tail2nos.cpp2
-rw-r--r--src/mame/drivers/taito_f2.cpp2
-rw-r--r--src/mame/drivers/taito_l.cpp4
-rw-r--r--src/mame/drivers/taitojc.cpp6
-rw-r--r--src/mame/drivers/taitopjc.cpp4
-rw-r--r--src/mame/drivers/taitosj.cpp12
-rw-r--r--src/mame/drivers/taitowlf.cpp6
-rw-r--r--src/mame/drivers/tandy1t.cpp4
-rw-r--r--src/mame/drivers/taotaido.cpp2
-rw-r--r--src/mame/drivers/tapatune.cpp12
-rw-r--r--src/mame/drivers/tasman.cpp4
-rw-r--r--src/mame/drivers/tatsumi.cpp2
-rw-r--r--src/mame/drivers/tattack.cpp2
-rw-r--r--src/mame/drivers/tavernie.cpp2
-rw-r--r--src/mame/drivers/techno.cpp2
-rw-r--r--src/mame/drivers/testpat.cpp4
-rw-r--r--src/mame/drivers/thepit.cpp2
-rw-r--r--src/mame/drivers/thomson.cpp8
-rw-r--r--src/mame/drivers/thoop2.cpp2
-rw-r--r--src/mame/drivers/thunderx.cpp6
-rw-r--r--src/mame/drivers/ti74.cpp10
-rw-r--r--src/mame/drivers/ti85.cpp4
-rw-r--r--src/mame/drivers/ti89.cpp4
-rw-r--r--src/mame/drivers/tim100.cpp2
-rw-r--r--src/mame/drivers/timeplt.cpp2
-rw-r--r--src/mame/drivers/timex.cpp2
-rw-r--r--src/mame/drivers/tispeak.cpp12
-rw-r--r--src/mame/drivers/tmaster.cpp2
-rw-r--r--src/mame/drivers/tmc1800.cpp8
-rw-r--r--src/mame/drivers/tmnt.cpp54
-rw-r--r--src/mame/drivers/tmspoker.cpp2
-rw-r--r--src/mame/drivers/toaplan2.cpp22
-rw-r--r--src/mame/drivers/tomy_princ.cpp6
-rw-r--r--src/mame/drivers/tourvis.cpp2
-rw-r--r--src/mame/drivers/trackfld.cpp2
-rw-r--r--src/mame/drivers/travrusa.cpp2
-rw-r--r--src/mame/drivers/trs80.cpp2
-rw-r--r--src/mame/drivers/trs80dt1.cpp2
-rw-r--r--src/mame/drivers/trs80m2.cpp4
-rw-r--r--src/mame/drivers/trs80m3.cpp2
-rw-r--r--src/mame/drivers/trvmadns.cpp2
-rw-r--r--src/mame/drivers/ts803.cpp4
-rw-r--r--src/mame/drivers/tsamurai.cpp2
-rw-r--r--src/mame/drivers/tumbleb.cpp20
-rw-r--r--src/mame/drivers/tv910.cpp4
-rw-r--r--src/mame/drivers/tv950.cpp4
-rw-r--r--src/mame/drivers/tvc.cpp6
-rw-r--r--src/mame/drivers/twin16.cpp2
-rw-r--r--src/mame/drivers/ultraman.cpp8
-rw-r--r--src/mame/drivers/umipoker.cpp8
-rw-r--r--src/mame/drivers/unichamp.cpp4
-rw-r--r--src/mame/drivers/unior.cpp2
-rw-r--r--src/mame/drivers/unistar.cpp2
-rw-r--r--src/mame/drivers/usgames.cpp2
-rw-r--r--src/mame/drivers/uzebox.cpp4
-rw-r--r--src/mame/drivers/v6809.cpp4
-rw-r--r--src/mame/drivers/vamphalf.cpp68
-rw-r--r--src/mame/drivers/vaportra.cpp10
-rw-r--r--src/mame/drivers/vc4000.cpp40
-rw-r--r--src/mame/drivers/vector06.cpp6
-rw-r--r--src/mame/drivers/vendetta.cpp6
-rw-r--r--src/mame/drivers/vgmplay.cpp6
-rw-r--r--src/mame/drivers/vic20.cpp2
-rw-r--r--src/mame/drivers/victor9k.cpp2
-rw-r--r--src/mame/drivers/videopkr.cpp4
-rw-r--r--src/mame/drivers/vii.cpp8
-rw-r--r--src/mame/drivers/vip.cpp2
-rw-r--r--src/mame/drivers/viper.cpp26
-rw-r--r--src/mame/drivers/vis.cpp8
-rw-r--r--src/mame/drivers/vk100.cpp2
-rw-r--r--src/mame/drivers/vlc.cpp2
-rw-r--r--src/mame/drivers/volfied.cpp2
-rw-r--r--src/mame/drivers/voyager.cpp6
-rw-r--r--src/mame/drivers/vp60.cpp2
-rw-r--r--src/mame/drivers/vroulet.cpp2
-rw-r--r--src/mame/drivers/vtech1.cpp2
-rw-r--r--src/mame/drivers/vtech2.cpp10
-rw-r--r--src/mame/drivers/wallc.cpp6
-rw-r--r--src/mame/drivers/warpsped.cpp4
-rw-r--r--src/mame/drivers/wecleman.cpp4
-rw-r--r--src/mame/drivers/wicat.cpp2
-rw-r--r--src/mame/drivers/williams.cpp4
-rw-r--r--src/mame/drivers/wink.cpp2
-rw-r--r--src/mame/drivers/witch.cpp8
-rw-r--r--src/mame/drivers/wrally.cpp2
-rw-r--r--src/mame/drivers/wswan.cpp4
-rw-r--r--src/mame/drivers/wy100.cpp2
-rw-r--r--src/mame/drivers/wyvernf0.cpp4
-rw-r--r--src/mame/drivers/x07.cpp8
-rw-r--r--src/mame/drivers/x68k.cpp2
-rw-r--r--src/mame/drivers/xerox820.cpp4
-rw-r--r--src/mame/drivers/xexex.cpp4
-rw-r--r--src/mame/drivers/xmen.cpp8
-rw-r--r--src/mame/drivers/xor100.cpp6
-rw-r--r--src/mame/drivers/xtom3d.cpp6
-rw-r--r--src/mame/drivers/ymmu50.cpp8
-rw-r--r--src/mame/drivers/z100.cpp2
-rw-r--r--src/mame/drivers/z1013.cpp2
-rw-r--r--src/mame/drivers/z88.cpp12
-rw-r--r--src/mame/drivers/zaxxon.cpp2
-rw-r--r--src/mame/drivers/zorba.cpp2
-rw-r--r--src/mame/drivers/zr107.cpp2
-rw-r--r--src/mame/drivers/zrt80.cpp2
-rw-r--r--src/mame/drivers/zwackery.cpp4
-rw-r--r--src/mame/includes/decocass.h6
-rw-r--r--src/mame/includes/goldstar.h21
-rw-r--r--src/mame/includes/hp48.h46
-rw-r--r--src/mame/includes/megadriv.h4
-rw-r--r--src/mame/includes/newbrain.h2
-rw-r--r--src/mame/includes/segaorun.h14
-rw-r--r--src/mame/includes/segas16a.h2
-rw-r--r--src/mame/includes/segas16b.h2
-rw-r--r--src/mame/includes/segas18.h2
-rw-r--r--src/mame/includes/sprint2.h2
-rw-r--r--src/mame/includes/starfire.h21
-rw-r--r--src/mame/includes/zaxxon.h2
-rw-r--r--src/mame/machine/315-5881_crypt.cpp3
-rw-r--r--src/mame/machine/315-5881_crypt.h7
-rw-r--r--src/mame/machine/315_5195.cpp5
-rw-r--r--src/mame/machine/315_5195.h2
-rw-r--r--src/mame/machine/3dom2.cpp20
-rw-r--r--src/mame/machine/6883sam.cpp15
-rw-r--r--src/mame/machine/6883sam.h18
-rw-r--r--src/mame/machine/aim65.cpp14
-rw-r--r--src/mame/machine/amiga.cpp2
-rw-r--r--src/mame/machine/amstrad.cpp24
-rw-r--r--src/mame/machine/atarigen.cpp2
-rw-r--r--src/mame/machine/b2m.cpp8
-rw-r--r--src/mame/machine/bbc.cpp4
-rw-r--r--src/mame/machine/coco12.cpp10
-rw-r--r--src/mame/machine/decocass.cpp54
-rw-r--r--src/mame/machine/dgn_beta.cpp44
-rw-r--r--src/mame/machine/dragon.cpp6
-rw-r--r--src/mame/machine/fd1094.cpp6
-rw-r--r--src/mame/machine/gamepock.cpp17
-rw-r--r--src/mame/machine/gridkeyb.cpp4
-rw-r--r--src/mame/machine/gridkeyb.h7
-rw-r--r--src/mame/machine/hp48.cpp26
-rw-r--r--src/mame/machine/hp48_port.cpp8
-rw-r--r--src/mame/machine/hp48_port.h2
-rw-r--r--src/mame/machine/igs025.cpp4
-rw-r--r--src/mame/machine/igs025.h2
-rw-r--r--src/mame/machine/imds2ioc.cpp2
-rw-r--r--src/mame/machine/intv.cpp28
-rw-r--r--src/mame/machine/jazz_mct_adr.cpp126
-rw-r--r--src/mame/machine/kc.cpp32
-rw-r--r--src/mame/machine/konamigx.cpp2
-rw-r--r--src/mame/machine/mac.cpp4
-rw-r--r--src/mame/machine/mbee.cpp8
-rw-r--r--src/mame/machine/mega32x.cpp32
-rw-r--r--src/mame/machine/megacd.cpp40
-rw-r--r--src/mame/machine/megacdcd.cpp25
-rw-r--r--src/mame/machine/megacdcd.h25
-rw-r--r--src/mame/machine/megadriv.cpp6
-rw-r--r--src/mame/machine/mhavoc.cpp4
-rw-r--r--src/mame/machine/micro3d.cpp4
-rw-r--r--src/mame/machine/midtunit.cpp26
-rw-r--r--src/mame/machine/midwayic.cpp12
-rw-r--r--src/mame/machine/midwunit.cpp6
-rw-r--r--src/mame/machine/midxunit.cpp2
-rw-r--r--src/mame/machine/midyunit.cpp28
-rw-r--r--src/mame/machine/model1io2.cpp4
-rw-r--r--src/mame/machine/mpu4.cpp22
-rw-r--r--src/mame/machine/msx_systemflags.cpp4
-rw-r--r--src/mame/machine/mtx.cpp2
-rw-r--r--src/mame/machine/namcos1.cpp22
-rw-r--r--src/mame/machine/naomi.cpp28
-rw-r--r--src/mame/machine/nes.cpp34
-rw-r--r--src/mame/machine/ondra.cpp2
-rw-r--r--src/mame/machine/orion.cpp68
-rw-r--r--src/mame/machine/osborne1.cpp2
-rw-r--r--src/mame/machine/partner.cpp4
-rw-r--r--src/mame/machine/pce.cpp4
-rw-r--r--src/mame/machine/pecom.cpp8
-rw-r--r--src/mame/machine/pgmprot_igs025_igs012.cpp2
-rw-r--r--src/mame/machine/pgmprot_igs025_igs022.cpp6
-rw-r--r--src/mame/machine/pgmprot_igs025_igs028.cpp4
-rw-r--r--src/mame/machine/pgmprot_igs027a_type1.cpp52
-rw-r--r--src/mame/machine/pgmprot_igs027a_type2.cpp10
-rw-r--r--src/mame/machine/pgmprot_igs027a_type3.cpp17
-rw-r--r--src/mame/machine/pgmprot_orlegend.cpp2
-rw-r--r--src/mame/machine/playch10.cpp34
-rw-r--r--src/mame/machine/pp01.cpp43
-rw-r--r--src/mame/machine/rm380z.cpp2
-rw-r--r--src/mame/machine/samcoupe.cpp2
-rw-r--r--src/mame/machine/scramble.cpp28
-rw-r--r--src/mame/machine/sorcerer.cpp2
-rw-r--r--src/mame/machine/special.cpp4
-rw-r--r--src/mame/machine/st0016.cpp68
-rw-r--r--src/mame/machine/st0016.h2
-rw-r--r--src/mame/machine/stvprot.cpp2
-rw-r--r--src/mame/machine/thomson.cpp36
-rw-r--r--src/mame/machine/toaplan1.cpp2
-rw-r--r--src/mame/machine/upd65031.cpp12
-rw-r--r--src/mame/machine/upd65031.h14
-rw-r--r--src/mame/machine/vectrex.cpp4
-rw-r--r--src/mame/machine/vsnes.cpp46
-rw-r--r--src/mame/machine/wswan.cpp10
-rw-r--r--src/mame/machine/xbox_pci.cpp4
-rw-r--r--src/mame/video/1942.cpp8
-rw-r--r--src/mame/video/1943.cpp6
-rw-r--r--src/mame/video/40love.cpp2
-rw-r--r--src/mame/video/4enraya.cpp2
-rw-r--r--src/mame/video/abc1600.cpp71
-rw-r--r--src/mame/video/abc800.cpp2
-rw-r--r--src/mame/video/abc802.cpp2
-rw-r--r--src/mame/video/abc806.cpp12
-rw-r--r--src/mame/video/aeroboto.cpp2
-rw-r--r--src/mame/video/aerofgt.cpp16
-rw-r--r--src/mame/video/airbustr.cpp4
-rw-r--r--src/mame/video/airraid_dev.cpp8
-rw-r--r--src/mame/video/alpha68k.cpp2
-rw-r--r--src/mame/video/ampoker2.cpp4
-rw-r--r--src/mame/video/amspdwy.cpp2
-rw-r--r--src/mame/video/angelkds.cpp6
-rw-r--r--src/mame/video/appoooh.cpp4
-rw-r--r--src/mame/video/aquarium.cpp6
-rw-r--r--src/mame/video/aquarius.cpp2
-rw-r--r--src/mame/video/argus.cpp18
-rw-r--r--src/mame/video/arkanoid.cpp2
-rw-r--r--src/mame/video/armedf.cpp14
-rw-r--r--src/mame/video/ashnojoe.cpp12
-rw-r--r--src/mame/video/atarifb.cpp6
-rw-r--r--src/mame/video/atetris.cpp2
-rw-r--r--src/mame/video/bagman.cpp2
-rw-r--r--src/mame/video/bankp.cpp4
-rw-r--r--src/mame/video/baraduke.cpp6
-rw-r--r--src/mame/video/battlane.cpp2
-rw-r--r--src/mame/video/battlex.cpp4
-rw-r--r--src/mame/video/bbusters.cpp10
-rw-r--r--src/mame/video/bfm_adr2.cpp4
-rw-r--r--src/mame/video/bigstrkb.cpp6
-rw-r--r--src/mame/video/bking.cpp2
-rw-r--r--src/mame/video/blktiger.cpp6
-rw-r--r--src/mame/video/blmbycar.cpp4
-rw-r--r--src/mame/video/bloodbro.cpp6
-rw-r--r--src/mame/video/blueprnt.cpp2
-rw-r--r--src/mame/video/bogeyman.cpp4
-rw-r--r--src/mame/video/bombjack.cpp4
-rw-r--r--src/mame/video/bosco.cpp4
-rw-r--r--src/mame/video/brkthru.cpp4
-rw-r--r--src/mame/video/bsktball.cpp2
-rw-r--r--src/mame/video/bwing.cpp6
-rw-r--r--src/mame/video/c45.cpp4
-rw-r--r--src/mame/video/cabal.cpp4
-rw-r--r--src/mame/video/calomega.cpp2
-rw-r--r--src/mame/video/canyon.cpp2
-rw-r--r--src/mame/video/cbasebal.cpp4
-rw-r--r--src/mame/video/cclimber.cpp14
-rw-r--r--src/mame/video/centiped.cpp8
-rw-r--r--src/mame/video/chaknpop.cpp2
-rw-r--r--src/mame/video/champbas.cpp4
-rw-r--r--src/mame/video/cheekyms.cpp2
-rw-r--r--src/mame/video/circus.cpp2
-rw-r--r--src/mame/video/circusc.cpp2
-rw-r--r--src/mame/video/citycon.cpp4
-rw-r--r--src/mame/video/cloak.cpp2
-rw-r--r--src/mame/video/clshroad.cpp12
-rw-r--r--src/mame/video/combatsc.cpp12
-rw-r--r--src/mame/video/commando.cpp4
-rw-r--r--src/mame/video/compgolf.cpp4
-rw-r--r--src/mame/video/contra.cpp6
-rw-r--r--src/mame/video/cop01.cpp4
-rw-r--r--src/mame/video/cps1.cpp6
-rw-r--r--src/mame/video/crbaloon.cpp2
-rw-r--r--src/mame/video/crospang.cpp4
-rw-r--r--src/mame/video/crshrace.cpp4
-rw-r--r--src/mame/video/darius.cpp2
-rw-r--r--src/mame/video/darkmist.cpp6
-rw-r--r--src/mame/video/dbz.cpp4
-rw-r--r--src/mame/video/dcon.cpp8
-rw-r--r--src/mame/video/dday.cpp8
-rw-r--r--src/mame/video/ddragon.cpp4
-rw-r--r--src/mame/video/ddragon3.cpp7
-rw-r--r--src/mame/video/ddribble.cpp4
-rw-r--r--src/mame/video/deadang.cpp16
-rw-r--r--src/mame/video/dec8.cpp36
-rw-r--r--src/mame/video/decbac06.cpp24
-rw-r--r--src/mame/video/deckarn.cpp3
-rw-r--r--src/mame/video/deckarn.h8
-rw-r--r--src/mame/video/decmxc06.cpp3
-rw-r--r--src/mame/video/decmxc06.h8
-rw-r--r--src/mame/video/deco16ic.cpp66
-rw-r--r--src/mame/video/deco16ic.h47
-rw-r--r--src/mame/video/decocass.cpp6
-rw-r--r--src/mame/video/decodmd2.cpp4
-rw-r--r--src/mame/video/decodmd3.cpp4
-rw-r--r--src/mame/video/decospr.cpp28
-rw-r--r--src/mame/video/decospr.h4
-rw-r--r--src/mame/video/decrmc3.cpp14
-rw-r--r--src/mame/video/decrmc3.h6
-rw-r--r--src/mame/video/deniam.cpp6
-rw-r--r--src/mame/video/digdug.cpp4
-rw-r--r--src/mame/video/divebomb.cpp2
-rw-r--r--src/mame/video/djboy.cpp2
-rw-r--r--src/mame/video/dkong.cpp4
-rw-r--r--src/mame/video/docastle.cpp2
-rw-r--r--src/mame/video/dogfgt.cpp2
-rw-r--r--src/mame/video/dooyong.cpp7
-rw-r--r--src/mame/video/dooyong.h4
-rw-r--r--src/mame/video/dragrace.cpp2
-rw-r--r--src/mame/video/drgnmst.cpp6
-rw-r--r--src/mame/video/drmicro.cpp4
-rw-r--r--src/mame/video/dynduke.cpp6
-rw-r--r--src/mame/video/edevices.cpp8
-rw-r--r--src/mame/video/equites.cpp8
-rw-r--r--src/mame/video/esd16.cpp8
-rw-r--r--src/mame/video/espial.cpp4
-rw-r--r--src/mame/video/excellent_spr.cpp3
-rw-r--r--src/mame/video/excellent_spr.h8
-rw-r--r--src/mame/video/exedexes.cpp6
-rw-r--r--src/mame/video/exprraid.cpp4
-rw-r--r--src/mame/video/f1gp.cpp8
-rw-r--r--src/mame/video/fastfred.cpp8
-rw-r--r--src/mame/video/fastlane.cpp4
-rw-r--r--src/mame/video/fcombat.cpp2
-rw-r--r--src/mame/video/finalizr.cpp4
-rw-r--r--src/mame/video/firetrap.cpp6
-rw-r--r--src/mame/video/firetrk.cpp12
-rw-r--r--src/mame/video/fitfight.cpp6
-rw-r--r--src/mame/video/flkatck.cpp4
-rw-r--r--src/mame/video/flstory.cpp6
-rw-r--r--src/mame/video/freekick.cpp2
-rw-r--r--src/mame/video/fromanc2.cpp40
-rw-r--r--src/mame/video/fromance.cpp8
-rw-r--r--src/mame/video/funkybee.cpp2
-rw-r--r--src/mame/video/funworld.cpp8
-rw-r--r--src/mame/video/funybubl.cpp2
-rw-r--r--src/mame/video/fuukifg.cpp6
-rw-r--r--src/mame/video/fuukifg.h14
-rw-r--r--src/mame/video/fuukifg2.cpp6
-rw-r--r--src/mame/video/fuukifg3.cpp6
-rw-r--r--src/mame/video/gaelco.cpp12
-rw-r--r--src/mame/video/gaelco2.cpp8
-rw-r--r--src/mame/video/gaiden.cpp18
-rw-r--r--src/mame/video/galaga.cpp528
-rw-r--r--src/mame/video/galaxia.cpp4
-rw-r--r--src/mame/video/galaxian.cpp4
-rw-r--r--src/mame/video/galaxold.cpp14
-rw-r--r--src/mame/video/galivan.cpp8
-rw-r--r--src/mame/video/gaplus.cpp2
-rw-r--r--src/mame/video/gatron.cpp2
-rw-r--r--src/mame/video/gberet.cpp2
-rw-r--r--src/mame/video/gcpinbal.cpp6
-rw-r--r--src/mame/video/ginganin.cpp6
-rw-r--r--src/mame/video/gladiatr.cpp8
-rw-r--r--src/mame/video/glass.cpp4
-rw-r--r--src/mame/video/gng.cpp8
-rw-r--r--src/mame/video/goal92.cpp6
-rw-r--r--src/mame/video/goindol.cpp4
-rw-r--r--src/mame/video/goldstar.cpp46
-rw-r--r--src/mame/video/gomoku.cpp2
-rw-r--r--src/mame/video/gotcha.cpp7
-rw-r--r--src/mame/video/gottlieb.cpp4
-rw-r--r--src/mame/video/gotya.cpp2
-rw-r--r--src/mame/video/gp9001.cpp9
-rw-r--r--src/mame/video/gp9001.h5
-rw-r--r--src/mame/video/grchamp.cpp8
-rw-r--r--src/mame/video/gsword.cpp2
-rw-r--r--src/mame/video/gumbo.cpp4
-rw-r--r--src/mame/video/gundealr.cpp4
-rw-r--r--src/mame/video/gunsmoke.cpp4
-rw-r--r--src/mame/video/gyruss.cpp6
-rw-r--r--src/mame/video/hanaawas.cpp2
-rw-r--r--src/mame/video/hcastle.cpp4
-rw-r--r--src/mame/video/hexion.cpp4
-rw-r--r--src/mame/video/higemaru.cpp2
-rw-r--r--src/mame/video/himesiki.cpp2
-rw-r--r--src/mame/video/hng64.cpp24
-rw-r--r--src/mame/video/holeland.cpp4
-rw-r--r--src/mame/video/homedata.cpp48
-rw-r--r--src/mame/video/homerun.cpp2
-rw-r--r--src/mame/video/hyperspt.cpp4
-rw-r--r--src/mame/video/igs017_igs031.cpp10
-rw-r--r--src/mame/video/igs017_igs031.h19
-rw-r--r--src/mame/video/inufuku.cpp4
-rw-r--r--src/mame/video/iqblock.cpp4
-rw-r--r--src/mame/video/ironhors.cpp4
-rw-r--r--src/mame/video/jack.cpp4
-rw-r--r--src/mame/video/jackal.cpp2
-rw-r--r--src/mame/video/jailbrek.cpp2
-rw-r--r--src/mame/video/k001604.cpp12
-rw-r--r--src/mame/video/k007342.cpp16
-rw-r--r--src/mame/video/k007342.h8
-rw-r--r--src/mame/video/k007420.cpp3
-rw-r--r--src/mame/video/k007420.h8
-rw-r--r--src/mame/video/k037122.cpp13
-rw-r--r--src/mame/video/k051316.cpp21
-rw-r--r--src/mame/video/k051316.h7
-rw-r--r--src/mame/video/k051960.cpp3
-rw-r--r--src/mame/video/k051960.h7
-rw-r--r--src/mame/video/k052109.cpp9
-rw-r--r--src/mame/video/k052109.h7
-rw-r--r--src/mame/video/k053244_k053245.cpp7
-rw-r--r--src/mame/video/k053244_k053245.h9
-rw-r--r--src/mame/video/k053246_k053247_k055673.cpp11
-rw-r--r--src/mame/video/k053246_k053247_k055673.h8
-rw-r--r--src/mame/video/k054156_k054157_k056832.cpp39
-rw-r--r--src/mame/video/k054156_k054157_k056832.h7
-rw-r--r--src/mame/video/kaneko_tmap.cpp7
-rw-r--r--src/mame/video/kaneko_tmap.h5
-rw-r--r--src/mame/video/karnov.cpp8
-rw-r--r--src/mame/video/kchamp.cpp2
-rw-r--r--src/mame/video/kickgoal.cpp12
-rw-r--r--src/mame/video/kingobox.cpp8
-rw-r--r--src/mame/video/kncljoe.cpp2
-rw-r--r--src/mame/video/konamigx.cpp18
-rw-r--r--src/mame/video/kopunch.cpp4
-rw-r--r--src/mame/video/ksayakyu.cpp4
-rw-r--r--src/mame/video/kyugo.cpp4
-rw-r--r--src/mame/video/labyrunr.cpp4
-rw-r--r--src/mame/video/ladybug.cpp4
-rw-r--r--src/mame/video/ladyfrog.cpp2
-rw-r--r--src/mame/video/lasso.cpp8
-rw-r--r--src/mame/video/lastduel.cpp12
-rw-r--r--src/mame/video/legionna.cpp10
-rw-r--r--src/mame/video/leland.cpp4
-rw-r--r--src/mame/video/lemmings.cpp2
-rw-r--r--src/mame/video/liberate.cpp16
-rw-r--r--src/mame/video/lkage.cpp6
-rw-r--r--src/mame/video/lockon.cpp2
-rw-r--r--src/mame/video/lordgun.cpp8
-rw-r--r--src/mame/video/lucky74.cpp4
-rw-r--r--src/mame/video/lvcards.cpp2
-rw-r--r--src/mame/video/lwings.cpp14
-rw-r--r--src/mame/video/m10.cpp7
-rw-r--r--src/mame/video/m107.cpp2
-rw-r--r--src/mame/video/m52.cpp2
-rw-r--r--src/mame/video/m57.cpp2
-rw-r--r--src/mame/video/m58.cpp2
-rw-r--r--src/mame/video/m62.cpp66
-rw-r--r--src/mame/video/m72.cpp14
-rw-r--r--src/mame/video/m90.cpp8
-rw-r--r--src/mame/video/m92.cpp4
-rw-r--r--src/mame/video/macrossp.cpp8
-rw-r--r--src/mame/video/madalien.cpp23
-rw-r--r--src/mame/video/mainsnk.cpp4
-rw-r--r--src/mame/video/mappy.cpp6
-rw-r--r--src/mame/video/marineb.cpp2
-rw-r--r--src/mame/video/mario.cpp2
-rw-r--r--src/mame/video/markham.cpp2
-rw-r--r--src/mame/video/mb60553.cpp2
-rw-r--r--src/mame/video/mcd212.cpp3
-rw-r--r--src/mame/video/mcd212.h11
-rw-r--r--src/mame/video/mcr.cpp58
-rw-r--r--src/mame/video/mcr3.cpp6
-rw-r--r--src/mame/video/mcr68.cpp2
-rw-r--r--src/mame/video/meadows.cpp2
-rw-r--r--src/mame/video/mermaid.cpp4
-rw-r--r--src/mame/video/metlclsh.cpp4
-rw-r--r--src/mame/video/metro.cpp4
-rw-r--r--src/mame/video/microtan.cpp2
-rw-r--r--src/mame/video/mikie.cpp2
-rw-r--r--src/mame/video/mikromik.cpp2
-rw-r--r--src/mame/video/mitchell.cpp2
-rw-r--r--src/mame/video/mjkjidai.cpp2
-rw-r--r--src/mame/video/model3.cpp16
-rw-r--r--src/mame/video/mosaic.cpp4
-rw-r--r--src/mame/video/mrdo.cpp4
-rw-r--r--src/mame/video/mrjong.cpp2
-rw-r--r--src/mame/video/ms1_tmap.cpp32
-rw-r--r--src/mame/video/ms32.cpp10
-rw-r--r--src/mame/video/msisaac.cpp6
-rw-r--r--src/mame/video/mugsmash.cpp4
-rw-r--r--src/mame/video/mustache.cpp2
-rw-r--r--src/mame/video/mystston.cpp4
-rw-r--r--src/mame/video/mystwarr.cpp4
-rw-r--r--src/mame/video/namco_c123tmap.cpp18
-rw-r--r--src/mame/video/namco_c169roz.cpp16
-rw-r--r--src/mame/video/namcona1.cpp10
-rw-r--r--src/mame/video/namcos22.cpp2
-rw-r--r--src/mame/video/namcos2_roz.cpp2
-rw-r--r--src/mame/video/namcos86.cpp10
-rw-r--r--src/mame/video/nemesis.cpp4
-rw-r--r--src/mame/video/nes.cpp2
-rw-r--r--src/mame/video/newbrain.cpp8
-rw-r--r--src/mame/video/news.cpp4
-rw-r--r--src/mame/video/ninjakd2.cpp20
-rw-r--r--src/mame/video/nmk16.cpp28
-rw-r--r--src/mame/video/nmk16spr.cpp6
-rw-r--r--src/mame/video/nmk16spr.h8
-rw-r--r--src/mame/video/nova2001.cpp14
-rw-r--r--src/mame/video/nycaptor.cpp2
-rw-r--r--src/mame/video/ohmygod.cpp2
-rw-r--r--src/mame/video/ojankohs.cpp4
-rw-r--r--src/mame/video/oneshot.cpp6
-rw-r--r--src/mame/video/orbit.cpp2
-rw-r--r--src/mame/video/orca40c.cpp6
-rw-r--r--src/mame/video/pacland.cpp4
-rw-r--r--src/mame/video/pacman.cpp8
-rw-r--r--src/mame/video/pandoras.cpp2
-rw-r--r--src/mame/video/paradise.cpp15
-rw-r--r--src/mame/video/pass.cpp4
-rw-r--r--src/mame/video/pbaction.cpp4
-rw-r--r--src/mame/video/pc080sn.cpp8
-rw-r--r--src/mame/video/pc090oj.cpp3
-rw-r--r--src/mame/video/pc090oj.h10
-rw-r--r--src/mame/video/pc1512.cpp2
-rw-r--r--src/mame/video/pc_t1t.cpp4
-rw-r--r--src/mame/video/pcd.cpp6
-rw-r--r--src/mame/video/pgm.cpp4
-rw-r--r--src/mame/video/pgm2.cpp4
-rw-r--r--src/mame/video/phoenix.cpp4
-rw-r--r--src/mame/video/pingpong.cpp2
-rw-r--r--src/mame/video/pirates.cpp8
-rw-r--r--src/mame/video/pitnrun.cpp4
-rw-r--r--src/mame/video/playch10.cpp4
-rw-r--r--src/mame/video/playmark.cpp38
-rw-r--r--src/mame/video/plygonet.cpp4
-rw-r--r--src/mame/video/pokechmp.cpp2
-rw-r--r--src/mame/video/polepos.cpp4
-rw-r--r--src/mame/video/poolshrk.cpp2
-rw-r--r--src/mame/video/pooyan.cpp2
-rw-r--r--src/mame/video/popeye.cpp2
-rw-r--r--src/mame/video/portrait.cpp4
-rw-r--r--src/mame/video/powerins.cpp4
-rw-r--r--src/mame/video/prehisle.cpp6
-rw-r--r--src/mame/video/psikyo.cpp4
-rw-r--r--src/mame/video/psychic5.cpp8
-rw-r--r--src/mame/video/punchout.cpp20
-rw-r--r--src/mame/video/qix.cpp9
-rw-r--r--src/mame/video/quizdna.cpp6
-rw-r--r--src/mame/video/quizpani.cpp4
-rw-r--r--src/mame/video/raiden.cpp12
-rw-r--r--src/mame/video/raiden2.cpp8
-rw-r--r--src/mame/video/rallyx.cpp16
-rw-r--r--src/mame/video/realbrk.cpp6
-rw-r--r--src/mame/video/redclash.cpp2
-rw-r--r--src/mame/video/renegade.cpp4
-rw-r--r--src/mame/video/retofinv.cpp4
-rw-r--r--src/mame/video/rocnrope.cpp2
-rw-r--r--src/mame/video/rollrace.cpp2
-rw-r--r--src/mame/video/rpunch.cpp4
-rw-r--r--src/mame/video/runaway.cpp4
-rw-r--r--src/mame/video/rungun.cpp4
-rw-r--r--src/mame/video/sauro.cpp6
-rw-r--r--src/mame/video/sbasketb.cpp2
-rw-r--r--src/mame/video/sbugger.cpp4
-rw-r--r--src/mame/video/scotrsht.cpp2
-rw-r--r--src/mame/video/sderby.cpp6
-rw-r--r--src/mame/video/segag80r.cpp8
-rw-r--r--src/mame/video/segaic16.cpp24
-rw-r--r--src/mame/video/segaic16.h2
-rw-r--r--src/mame/video/segaic24.cpp8
-rw-r--r--src/mame/video/segas32.cpp2
-rw-r--r--src/mame/video/seibuspi.cpp8
-rw-r--r--src/mame/video/seicross.cpp2
-rw-r--r--src/mame/video/senjyo.cpp14
-rw-r--r--src/mame/video/seta.cpp8
-rw-r--r--src/mame/video/seta001.cpp3
-rw-r--r--src/mame/video/seta001.h51
-rw-r--r--src/mame/video/sf.cpp6
-rw-r--r--src/mame/video/sgi_gr1.cpp14
-rw-r--r--src/mame/video/shadfrce.cpp6
-rw-r--r--src/mame/video/shangkid.cpp2
-rw-r--r--src/mame/video/shaolins.cpp2
-rw-r--r--src/mame/video/shisen.cpp2
-rw-r--r--src/mame/video/shootout.cpp6
-rw-r--r--src/mame/video/sidearms.cpp6
-rw-r--r--src/mame/video/sidepckt.cpp2
-rw-r--r--src/mame/video/silkroad.cpp6
-rw-r--r--src/mame/video/skydiver.cpp2
-rw-r--r--src/mame/video/skykid.cpp4
-rw-r--r--src/mame/video/slapfght.cpp6
-rw-r--r--src/mame/video/snk.cpp26
-rw-r--r--src/mame/video/snk6502.cpp8
-rw-r--r--src/mame/video/snk68.cpp4
-rw-r--r--src/mame/video/snk68_spr.cpp4
-rw-r--r--src/mame/video/snk68_spr.h9
-rw-r--r--src/mame/video/snookr10.cpp6
-rw-r--r--src/mame/video/solomon.cpp4
-rw-r--r--src/mame/video/sonson.cpp2
-rw-r--r--src/mame/video/spbactn.cpp6
-rw-r--r--src/mame/video/spdodgeb.cpp2
-rw-r--r--src/mame/video/speedbal.cpp4
-rw-r--r--src/mame/video/speedspn.cpp2
-rw-r--r--src/mame/video/splash.cpp4
-rw-r--r--src/mame/video/sprint2.cpp2
-rw-r--r--src/mame/video/sprint4.cpp2
-rw-r--r--src/mame/video/sprint8.cpp36
-rw-r--r--src/mame/video/srumbler.cpp8
-rw-r--r--src/mame/video/sslam.cpp8
-rw-r--r--src/mame/video/ssozumo.cpp13
-rw-r--r--src/mame/video/ssrj.cpp6
-rw-r--r--src/mame/video/ssv.cpp2
-rw-r--r--src/mame/video/st0020.cpp24
-rw-r--r--src/mame/video/stadhero.cpp2
-rw-r--r--src/mame/video/starshp1.cpp2
-rw-r--r--src/mame/video/stfight_dev.cpp10
-rw-r--r--src/mame/video/sub.cpp2
-rw-r--r--src/mame/video/suna8.cpp6
-rw-r--r--src/mame/video/superqix.cpp8
-rw-r--r--src/mame/video/suprloco.cpp2
-rw-r--r--src/mame/video/suprnova.cpp4
-rw-r--r--src/mame/video/suprridr.cpp6
-rw-r--r--src/mame/video/suprslam.cpp4
-rw-r--r--src/mame/video/system1.cpp2
-rw-r--r--src/mame/video/system16.cpp35
-rw-r--r--src/mame/video/tagteam.cpp2
-rw-r--r--src/mame/video/tail2nos.cpp2
-rw-r--r--src/mame/video/taito_f3.cpp31
-rw-r--r--src/mame/video/taito_l.cpp6
-rw-r--r--src/mame/video/taitojc.cpp2
-rw-r--r--src/mame/video/tank8.cpp5
-rw-r--r--src/mame/video/tankbatt.cpp18
-rw-r--r--src/mame/video/tankbust.cpp4
-rw-r--r--src/mame/video/taotaido.cpp2
-rw-r--r--src/mame/video/targeth.cpp4
-rw-r--r--src/mame/video/tatsumi.cpp20
-rw-r--r--src/mame/video/tbowl.cpp6
-rw-r--r--src/mame/video/tc0080vco.cpp6
-rw-r--r--src/mame/video/tc0100scn.cpp15
-rw-r--r--src/mame/video/tc0100scn.h5
-rw-r--r--src/mame/video/tc0180vcu.cpp6
-rw-r--r--src/mame/video/tc0280grd.cpp2
-rw-r--r--src/mame/video/tc0480scp.cpp20
-rw-r--r--src/mame/video/tceptor.cpp6
-rw-r--r--src/mame/video/tecmo.cpp10
-rw-r--r--src/mame/video/tecmo16.cpp18
-rw-r--r--src/mame/video/tecmosys.cpp8
-rw-r--r--src/mame/video/tehkanwc.cpp4
-rw-r--r--src/mame/video/terracre.cpp4
-rw-r--r--src/mame/video/tetrisp2.cpp24
-rw-r--r--src/mame/video/thedeep.cpp2
-rw-r--r--src/mame/video/thepit.cpp4
-rw-r--r--src/mame/video/thoop2.cpp4
-rw-r--r--src/mame/video/tiamc1.cpp6
-rw-r--r--src/mame/video/tigeroad.cpp4
-rw-r--r--src/mame/video/timelimt.cpp4
-rw-r--r--src/mame/video/timeplt.cpp4
-rw-r--r--src/mame/video/tmap038.cpp5
-rw-r--r--src/mame/video/tmap038.h5
-rw-r--r--src/mame/video/tmnt.cpp4
-rw-r--r--src/mame/video/toaplan1.cpp8
-rw-r--r--src/mame/video/toaplan2.cpp2
-rw-r--r--src/mame/video/toki.cpp6
-rw-r--r--src/mame/video/tp84.cpp4
-rw-r--r--src/mame/video/trackfld.cpp2
-rw-r--r--src/mame/video/travrusa.cpp2
-rw-r--r--src/mame/video/triplhnt.cpp2
-rw-r--r--src/mame/video/trucocl.cpp2
-rw-r--r--src/mame/video/tryout.cpp4
-rw-r--r--src/mame/video/tsamurai.cpp6
-rw-r--r--src/mame/video/tumbleb.cpp30
-rw-r--r--src/mame/video/tunhunt.cpp2
-rw-r--r--src/mame/video/turbo.cpp4
-rw-r--r--src/mame/video/twin16.cpp6
-rw-r--r--src/mame/video/twincobr.cpp20
-rw-r--r--src/mame/video/ultratnk.cpp2
-rw-r--r--src/mame/video/unico.cpp6
-rw-r--r--src/mame/video/v1050.cpp2
-rw-r--r--src/mame/video/vastar.cpp6
-rw-r--r--src/mame/video/vball.cpp2
-rw-r--r--src/mame/video/videopin.cpp2
-rw-r--r--src/mame/video/vs920a.cpp2
-rw-r--r--src/mame/video/vsystem_spr.cpp4
-rw-r--r--src/mame/video/vsystem_spr.h2
-rw-r--r--src/mame/video/vsystem_spr2.cpp4
-rw-r--r--src/mame/video/vsystem_spr2.h2
-rw-r--r--src/mame/video/vulgus.cpp4
-rw-r--r--src/mame/video/warpwarp.cpp6
-rw-r--r--src/mame/video/wc90.cpp12
-rw-r--r--src/mame/video/wc90b.cpp6
-rw-r--r--src/mame/video/wecleman.cpp6
-rw-r--r--src/mame/video/welltris.cpp2
-rw-r--r--src/mame/video/wgp.cpp6
-rw-r--r--src/mame/video/williams.cpp2
-rw-r--r--src/mame/video/wrally.cpp4
-rw-r--r--src/mame/video/wswan.cpp10
-rw-r--r--src/mame/video/wswan.h21
-rw-r--r--src/mame/video/wwfsstar.cpp4
-rw-r--r--src/mame/video/x68k.cpp8
-rw-r--r--src/mame/video/xain.cpp6
-rw-r--r--src/mame/video/xevious.cpp4
-rw-r--r--src/mame/video/xorworld.cpp2
-rw-r--r--src/mame/video/xxmissio.cpp4
-rw-r--r--src/mame/video/xyonix.cpp2
-rw-r--r--src/mame/video/ygv608.cpp24
-rw-r--r--src/mame/video/yiear.cpp2
-rw-r--r--src/mame/video/yunsun16.cpp4
-rw-r--r--src/mame/video/yunsung8.cpp4
-rw-r--r--src/mame/video/zac2650.cpp2
-rw-r--r--src/mame/video/zaccaria.cpp2
-rw-r--r--src/mame/video/zaxxon.cpp18
-rw-r--r--src/mame/video/zerozone.cpp2
1370 files changed, 6233 insertions, 6315 deletions
diff --git a/src/mame/audio/cage.cpp b/src/mame/audio/cage.cpp
index a1cc0ccf349..1866e730cc8 100644
--- a/src/mame/audio/cage.cpp
+++ b/src/mame/audio/cage.cpp
@@ -151,7 +151,7 @@ void atari_cage_device::device_start()
m_cpu_h1_clock_period = cage_cpu_clock_period * 2;
if (m_speedup) {
- m_cpu->space(AS_PROGRAM).install_write_handler(m_speedup, m_speedup, write32_delegate(FUNC(atari_cage_device::speedup_w),this));
+ m_cpu->space(AS_PROGRAM).install_write_handler(m_speedup, m_speedup, write32_delegate(*this, FUNC(atari_cage_device::speedup_w)));
m_speedup_ram = m_cageram + m_speedup;
}
diff --git a/src/mame/audio/dcs.cpp b/src/mame/audio/dcs.cpp
index da0ac4c6c5b..cd4b208c29c 100644
--- a/src/mame/audio/dcs.cpp
+++ b/src/mame/audio/dcs.cpp
@@ -717,6 +717,11 @@ dcs_audio_device::dcs_audio_device(const machine_config &mconfig, device_type ty
m_last_output_full(0),
m_last_input_empty(0),
m_progflags(0),
+ m_output_full_cb(*this),
+ m_input_empty_cb(*this),
+ m_fifo_data_r(*this),
+ m_fifo_status_r(*this),
+ m_fifo_reset_w(*this),
m_timer_enable(0),
m_timer_ignore(false),
m_timer_start_cycles(0),
@@ -904,13 +909,13 @@ void dcs_audio_device::install_speedup(void)
{
if (m_polling_offset) {
if (m_rev < REV_DSIO) {
- m_cpu->space(AS_DATA).install_readwrite_handler(m_polling_offset, m_polling_offset, read16_delegate(FUNC(dcs_audio_device::dcs_polling_r), this), write16_delegate(FUNC(dcs_audio_device::dcs_polling_w), this));
+ m_cpu->space(AS_DATA).install_readwrite_handler(m_polling_offset, m_polling_offset, read16_delegate(*this, FUNC(dcs_audio_device::dcs_polling_r)), write16_delegate(*this, FUNC(dcs_audio_device::dcs_polling_w)));
}
else {
// ADSP 2181 (DSIO and DENVER) use program memory
- m_cpu->space(AS_PROGRAM).install_readwrite_handler(m_polling_offset, m_polling_offset, read32_delegate(FUNC(dcs_audio_device::dcs_polling32_r), this), write32_delegate(FUNC(dcs_audio_device::dcs_polling32_w), this));
+ m_cpu->space(AS_PROGRAM).install_readwrite_handler(m_polling_offset, m_polling_offset, read32_delegate(*this, FUNC(dcs_audio_device::dcs_polling32_r)), write32_delegate(*this, FUNC(dcs_audio_device::dcs_polling32_w)));
// DSIO and DENVER poll in two spots. This offset covers all three machines (mwskins, sf2049, roadburn).
- m_cpu->space(AS_PROGRAM).install_readwrite_handler(m_polling_offset + 9, m_polling_offset + 9, read32_delegate(FUNC(dcs_audio_device::dcs_polling32_r), this), write32_delegate(FUNC(dcs_audio_device::dcs_polling32_w), this));
+ m_cpu->space(AS_PROGRAM).install_readwrite_handler(m_polling_offset + 9, m_polling_offset + 9, read32_delegate(*this, FUNC(dcs_audio_device::dcs_polling32_r)), write32_delegate(*this, FUNC(dcs_audio_device::dcs_polling32_w)));
}
}
}
diff --git a/src/mame/audio/jaguar.cpp b/src/mame/audio/jaguar.cpp
index d9b6da8975c..c3c044e95a0 100644
--- a/src/mame/audio/jaguar.cpp
+++ b/src/mame/audio/jaguar.cpp
@@ -203,7 +203,7 @@ void jaguar_state::sound_start()
#if ENABLE_SPEEDUP_HACKS
if (m_hacks_enabled)
- m_dsp->space(AS_PROGRAM).install_write_handler(0xf1a100, 0xf1a103, write32_delegate(FUNC(jaguar_state::dsp_flags_w), this));
+ m_dsp->space(AS_PROGRAM).install_write_handler(0xf1a100, 0xf1a103, write32_delegate(*this, FUNC(jaguar_state::dsp_flags_w)));
#endif
}
diff --git a/src/mame/audio/leland.cpp b/src/mame/audio/leland.cpp
index b5b00d4b352..9fdbb391b76 100644
--- a/src/mame/audio/leland.cpp
+++ b/src/mame/audio/leland.cpp
@@ -417,12 +417,12 @@ void leland_80186_sound_device::peripheral_ctrl(offs_t offset, u16 data)
u32 temp = (m_peripheral & 0xffc0) << 4;
if (data & 0x0040)
{
- m_audiocpu->space(AS_PROGRAM).install_readwrite_handler(temp, temp + 0x2ff, read16s_delegate(FUNC(leland_80186_sound_device::peripheral_r), this), write16s_delegate(FUNC(leland_80186_sound_device::peripheral_w), this));
+ m_audiocpu->space(AS_PROGRAM).install_readwrite_handler(temp, temp + 0x2ff, read16s_delegate(*this, FUNC(leland_80186_sound_device::peripheral_r)), write16s_delegate(*this, FUNC(leland_80186_sound_device::peripheral_w)));
}
else
{
temp &= 0xffff;
- m_audiocpu->space(AS_IO).install_readwrite_handler(temp, temp + 0x2ff, read16s_delegate(FUNC(leland_80186_sound_device::peripheral_r), this), write16s_delegate(FUNC(leland_80186_sound_device::peripheral_w), this));
+ m_audiocpu->space(AS_IO).install_readwrite_handler(temp, temp + 0x2ff, read16s_delegate(*this, FUNC(leland_80186_sound_device::peripheral_r)), write16s_delegate(*this, FUNC(leland_80186_sound_device::peripheral_w)));
}
break;
}
diff --git a/src/mame/audio/lynx.cpp b/src/mame/audio/lynx.cpp
index e50a932acf1..408d47c9418 100644
--- a/src/mame/audio/lynx.cpp
+++ b/src/mame/audio/lynx.cpp
@@ -99,12 +99,12 @@ DEFINE_DEVICE_TYPE(LYNX2_SND, lynx2_sound_device, "lynx2_sound", "Mikey (Lynx II
lynx_sound_device::lynx_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: lynx_sound_device(mconfig, LYNX_SND, tag, owner, clock)
{
- m_timer_delegate = timer_delegate();
}
lynx_sound_device::lynx_sound_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock)
: device_t(mconfig, type, tag, owner, clock)
, device_sound_interface(mconfig, *this)
+ , m_timer_delegate(*this)
{
}
@@ -174,7 +174,7 @@ void lynx_sound_device::device_start()
{
m_mixer_channel = machine().sound().stream_alloc(*this, 0, 1, machine().sample_rate());
m_usec_per_sample = 1000000 / machine().sample_rate();
- m_timer_delegate.bind_relative_to(*owner());
+ m_timer_delegate.resolve();
init();
register_save();
}
@@ -184,7 +184,7 @@ void lynx2_sound_device::device_start()
{
m_mixer_channel = machine().sound().stream_alloc(*this, 0, 2, machine().sample_rate());
m_usec_per_sample = 1000000 / machine().sample_rate();
- m_timer_delegate.bind_relative_to(*owner());
+ m_timer_delegate.resolve();
init();
register_save();
}
diff --git a/src/mame/audio/lynx.h b/src/mame/audio/lynx.h
index 670f3ff2a76..863861616f4 100644
--- a/src/mame/audio/lynx.h
+++ b/src/mame/audio/lynx.h
@@ -16,7 +16,7 @@ public:
DECLARE_READ8_MEMBER(read);
DECLARE_WRITE8_MEMBER(write);
void count_down(int nr);
- template <typename... T> void set_timer_delegate(T &&... args) { m_timer_delegate = timer_delegate(std::forward<T>(args)...); }
+ template <typename... T> void set_timer_delegate(T &&... args) { m_timer_delegate.set(std::forward<T>(args)...); }
protected:
struct LYNX_AUDIO {
diff --git a/src/mame/audio/midway.cpp b/src/mame/audio/midway.cpp
index 982961ea684..dfa62f619af 100644
--- a/src/mame/audio/midway.cpp
+++ b/src/mame/audio/midway.cpp
@@ -14,6 +14,7 @@
#include "audio/williams.h"
#include "sound/volt_reg.h"
+#include <algorithm>
//**************************************************************************
@@ -34,22 +35,25 @@ DEFINE_DEVICE_TYPE(MIDWAY_TURBO_CHEAP_SQUEAK, midway_turbo_cheap_squeak_device,
//-------------------------------------------------
midway_ssio_device::midway_ssio_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
- : device_t(mconfig, MIDWAY_SSIO, tag, owner, clock),
- device_mixer_interface(mconfig, *this, 2),
- m_cpu(*this, "cpu"),
- m_ay0(*this, "ay0"),
- m_ay1(*this, "ay1"),
- m_ports(*this, {"IP0", "IP1", "IP2", "IP3", "IP4"}),
- m_status(0),
- m_14024_count(0),
- m_mute(0)
+ : device_t(mconfig, MIDWAY_SSIO, tag, owner, clock)
+ , device_mixer_interface(mconfig, *this, 2)
+ , m_cpu(*this, "cpu")
+ , m_ay0(*this, "ay0")
+ , m_ay1(*this, "ay1")
+ , m_ports(*this, "IP%u", 0U)
+ , m_status(0)
+ , m_14024_count(0)
+ , m_mute(0)
+ , m_custom_input_mask{ 0U, 0U, 0U, 0U, 0U }
+ , m_custom_input(*this)
+ , m_custom_output_mask{ 0U, 0U }
+ , m_custom_output(*this)
{
- memset(m_data, 0, sizeof(m_data));
- memset(m_overall, 0, sizeof(m_overall));
- memset(m_duty_cycle, 0, sizeof(m_duty_cycle));
- memset(m_ayvolume_lookup, 0, sizeof(m_ayvolume_lookup));
- memset(m_custom_input_mask, 0, sizeof(m_custom_input_mask));
- memset(m_custom_output_mask, 0, sizeof(m_custom_output_mask));
+ std::fill(std::begin(m_data), std::end(m_data), 0);
+ std::fill(std::begin(m_overall), std::end(m_overall), 0);
+ for (auto &duty_cycle : m_duty_cycle)
+ std::fill(std::begin(duty_cycle), std::end(duty_cycle), 0);
+ std::fill(std::begin(m_ayvolume_lookup), std::end(m_ayvolume_lookup), 0);
}
@@ -132,30 +136,6 @@ WRITE8_MEMBER(midway_ssio_device::ioport_write)
//-------------------------------------------------
-// set_custom_input - configure a custom port
-// reader
-//-------------------------------------------------
-
-void midway_ssio_device::set_custom_input(int which, uint8_t mask, read8_delegate handler)
-{
- m_custom_input[which] = handler;
- m_custom_input_mask[which] = mask;
-}
-
-
-//-------------------------------------------------
-// set_custom_output - configure a custom port
-// writer
-//-------------------------------------------------
-
-void midway_ssio_device::set_custom_output(int which, uint8_t mask, write8_delegate handler)
-{
- m_custom_output[which/4] = handler;
- m_custom_output_mask[which/4] = mask;
-}
-
-
-//-------------------------------------------------
// compute_ay8910_modulation - precompute
// volume modulation tables based on the duty
// cycle described by the PROMs
diff --git a/src/mame/audio/midway.h b/src/mame/audio/midway.h
index 5078db354f2..07eeb403217 100644
--- a/src/mame/audio/midway.h
+++ b/src/mame/audio/midway.h
@@ -58,8 +58,16 @@ public:
DECLARE_WRITE8_MEMBER(ioport_write);
// configuration
- void set_custom_input(int which, uint8_t mask, read8_delegate handler);
- void set_custom_output(int which, uint8_t mask, write8_delegate handler);
+ template <typename... T> void set_custom_input(int which, uint8_t mask, T &&... args)
+ {
+ m_custom_input_mask[which] = mask;
+ m_custom_input[which].set(std::forward<T>(args)...);
+ }
+ template <typename... T> void set_custom_output(int which, uint8_t mask, T &&... args)
+ {
+ m_custom_output_mask[which / 4] = mask;
+ m_custom_output[which / 4].set(std::forward<T>(args)...);
+ }
// internal communications
DECLARE_READ8_MEMBER(irq_clear);
@@ -102,16 +110,15 @@ private:
// I/O port overrides
uint8_t m_custom_input_mask[5];
- read8_delegate m_custom_input[5];
+ read8_delegate::array<5> m_custom_input;
uint8_t m_custom_output_mask[2];
- write8_delegate m_custom_output[2];
+ write8_delegate::array<2> m_custom_output;
INTERRUPT_GEN_MEMBER(clock_14024);
DECLARE_WRITE8_MEMBER(porta0_w);
DECLARE_WRITE8_MEMBER(portb0_w);
DECLARE_WRITE8_MEMBER(porta1_w);
DECLARE_WRITE8_MEMBER(portb1_w);
-
};
diff --git a/src/mame/audio/segasnd.cpp b/src/mame/audio/segasnd.cpp
index 85d95753e0f..bd194737fce 100644
--- a/src/mame/audio/segasnd.cpp
+++ b/src/mame/audio/segasnd.cpp
@@ -882,8 +882,9 @@ void usb_sound_device::device_add_mconfig(machine_config &config)
m_ourcpu->p2_out_cb().set(FUNC(usb_sound_device::p2_w));
m_ourcpu->t1_in_cb().set(FUNC(usb_sound_device::t1_r));
- TIMER(config, "usb_timer", 0).configure_periodic(timer_device::expired_delegate(FUNC(usb_sound_device::increment_t1_clock_timer_cb), this)
- , attotime::from_hz(USB_2MHZ_CLOCK / 256));
+ TIMER(config, "usb_timer", 0).configure_periodic(
+ FUNC(usb_sound_device::increment_t1_clock_timer_cb),
+ attotime::from_hz(USB_2MHZ_CLOCK / 256));
}
diff --git a/src/mame/audio/sente6vb.cpp b/src/mame/audio/sente6vb.cpp
index 358e646182d..7e9fd2995f6 100644
--- a/src/mame/audio/sente6vb.cpp
+++ b/src/mame/audio/sente6vb.cpp
@@ -113,7 +113,7 @@ void sente6vb_device::device_add_mconfig(machine_config &config)
uartclock.signal_handler().append(m_uart, FUNC(acia6850_device::write_txc));
uartclock.signal_handler().append(m_uart, FUNC(acia6850_device::write_rxc));
- TIMER(config, m_counter_0_timer, 0).configure_generic(timer_device::expired_delegate(FUNC(sente6vb_device::clock_counter_0_ff), this));
+ TIMER(config, m_counter_0_timer, 0).configure_generic(FUNC(sente6vb_device::clock_counter_0_ff));
PIT8253(config, m_pit, 0);
m_pit->out_handler<0>().set(FUNC(sente6vb_device::counter_0_set_out));
@@ -131,12 +131,12 @@ void sente6vb_device::device_add_mconfig(machine_config &config)
cem_device->add_route(ALL_OUTPUTS, "mono", 0.90);
}
- m_cem_device[0]->set_ext_input_callback(FUNC(sente6vb_device::noise_gen_0), this);
- m_cem_device[1]->set_ext_input_callback(FUNC(sente6vb_device::noise_gen_1), this);
- m_cem_device[2]->set_ext_input_callback(FUNC(sente6vb_device::noise_gen_2), this);
- m_cem_device[3]->set_ext_input_callback(FUNC(sente6vb_device::noise_gen_3), this);
- m_cem_device[4]->set_ext_input_callback(FUNC(sente6vb_device::noise_gen_4), this);
- m_cem_device[5]->set_ext_input_callback(FUNC(sente6vb_device::noise_gen_5), this);
+ m_cem_device[0]->set_ext_input_callback(FUNC(sente6vb_device::noise_gen_0));
+ m_cem_device[1]->set_ext_input_callback(FUNC(sente6vb_device::noise_gen_1));
+ m_cem_device[2]->set_ext_input_callback(FUNC(sente6vb_device::noise_gen_2));
+ m_cem_device[3]->set_ext_input_callback(FUNC(sente6vb_device::noise_gen_3));
+ m_cem_device[4]->set_ext_input_callback(FUNC(sente6vb_device::noise_gen_4));
+ m_cem_device[5]->set_ext_input_callback(FUNC(sente6vb_device::noise_gen_5));
}
diff --git a/src/mame/drivers/1943.cpp b/src/mame/drivers/1943.cpp
index c903e24e500..53f870199d9 100644
--- a/src/mame/drivers/1943.cpp
+++ b/src/mame/drivers/1943.cpp
@@ -81,11 +81,11 @@ void _1943_state::c1943_map(address_map &map)
map(0xc002, 0xc002).portr("P2");
map(0xc003, 0xc003).portr("DSWA");
map(0xc004, 0xc004).portr("DSWB");
- map(0xc007, 0xc007).lr8("mcu_r", [this]() -> u8 { return m_mcu_to_cpu; });
+ map(0xc007, 0xc007).lr8(NAME([this] () -> u8 { return m_mcu_to_cpu; }));
map(0xc800, 0xc800).w("soundlatch", FUNC(generic_latch_8_device::write));
map(0xc804, 0xc804).w(FUNC(_1943_state::c804_w)); // ROM bank switch, screen flip
map(0xc806, 0xc806).w("watchdog", FUNC(watchdog_timer_device::reset_w));
- map(0xc807, 0xc807).lw8("mcu_w", [this](u8 data) { m_cpu_to_mcu = data; });
+ map(0xc807, 0xc807).lw8(NAME([this] (u8 data) { m_cpu_to_mcu = data; }));
map(0xd000, 0xd3ff).ram().w(FUNC(_1943_state::videoram_w)).share("videoram");
map(0xd400, 0xd7ff).ram().w(FUNC(_1943_state::colorram_w)).share("colorram");
map(0xd800, 0xd801).ram().share("scrollx");
@@ -106,7 +106,7 @@ void _1943_state::c1943b_map(address_map &map)
// the bootleg expects 0x00 to be returned from the protection reads
// because the protection has been patched out
- map(0xc007, 0xc007).lr8("mcu_r", []() -> u8 { return 0x00; });
+ map(0xc007, 0xc007).lr8(NAME([]() -> u8 { return 0x00; }));
map(0xc807, 0xc807).noprw();
}
@@ -115,7 +115,7 @@ void _1943_state::sound_map(address_map &map)
map(0x0000, 0x7fff).rom();
map(0xc000, 0xc7ff).ram();
map(0xc800, 0xc800).r("soundlatch", FUNC(generic_latch_8_device::read));
- map(0xd800, 0xd800).lrw8("mcu", [this]() { return m_mcu_to_audiocpu; }, [this](u8 data) { m_audiocpu_to_mcu = data; });
+ map(0xd800, 0xd800).lrw8(NAME([this]() { return m_mcu_to_audiocpu; }), NAME([this](u8 data) { m_audiocpu_to_mcu = data; }));
map(0xe000, 0xe001).w("ym1", FUNC(ym2203_device::write));
map(0xe002, 0xe003).w("ym2", FUNC(ym2203_device::write));
}
diff --git a/src/mame/drivers/1945kiii.cpp b/src/mame/drivers/1945kiii.cpp
index d77122dedde..1a8fa1af50e 100644
--- a/src/mame/drivers/1945kiii.cpp
+++ b/src/mame/drivers/1945kiii.cpp
@@ -121,7 +121,7 @@ TILE_GET_INFO_MEMBER(k3_state::get_tile_info)
void k3_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(k3_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(k3_state::get_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
}
void k3_state::k3_drawgfx(bitmap_ind16 &dest_bmp,const rectangle &clip,gfx_element *gfx,
diff --git a/src/mame/drivers/39in1.cpp b/src/mame/drivers/39in1.cpp
index ed5aa3df6b6..5b0a0204c55 100644
--- a/src/mame/drivers/39in1.cpp
+++ b/src/mame/drivers/39in1.cpp
@@ -198,7 +198,7 @@ READ32_MEMBER(_39in1_state::prot_cheater_r)
void _39in1_state::driver_init()
{
address_space &space = m_maincpu->space(AS_PROGRAM);
- space.install_read_handler (0xa0151648, 0xa015164b, read32_delegate(FUNC(_39in1_state::prot_cheater_r), this));
+ space.install_read_handler (0xa0151648, 0xa015164b, read32_delegate(*this, FUNC(_39in1_state::prot_cheater_r)));
}
void _39in1_state::_39in1_map(address_map &map)
diff --git a/src/mame/drivers/3x3puzzl.cpp b/src/mame/drivers/3x3puzzl.cpp
index 6c9025a6f73..d20fdfde634 100644
--- a/src/mame/drivers/3x3puzzl.cpp
+++ b/src/mame/drivers/3x3puzzl.cpp
@@ -179,9 +179,9 @@ WRITE16_MEMBER(_3x3puzzle_state::tilemap1_scrolly_w)
void _3x3puzzle_state::video_start()
{
- m_tilemap1 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(_3x3puzzle_state::get_tile1_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- m_tilemap2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(_3x3puzzle_state::get_tile2_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_tilemap3 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(_3x3puzzle_state::get_tile3_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tilemap1 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(_3x3puzzle_state::get_tile1_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_tilemap2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(_3x3puzzle_state::get_tile2_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tilemap3 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(_3x3puzzle_state::get_tile3_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_tilemap2->set_transparent_pen(0);
m_tilemap3->set_transparent_pen(0);
}
diff --git a/src/mame/drivers/4dpi.cpp b/src/mame/drivers/4dpi.cpp
index af5163d0e5b..abd638641c9 100644
--- a/src/mame/drivers/4dpi.cpp
+++ b/src/mame/drivers/4dpi.cpp
@@ -251,17 +251,14 @@ void pi4d2x_state::map(address_map &map)
//map(0x1f000000, 0x1fbfffff); // local I/O (duarts, timers, etc.)
map(0x1f000000, 0x1f007fff).m(m_gfx, FUNC(sgi_gr1_device::map)).mirror(0x8000);
- map(0x1f800000, 0x1f800003).lrw8("memcfg", [this]() { return m_memcfg; }, [this](u8 data) { m_memcfg = data; }).umask32(0xff000000);
+ map(0x1f800000, 0x1f800003).lrw8(NAME([this]() { return m_memcfg; }), NAME([this](u8 data) { m_memcfg = data; })).umask32(0xff000000);
map(0x1f800000, 0x1f800003).r(FUNC(pi4d2x_state::sysid_r)).umask32(0x00ff0000);
- map(0x1f840000, 0x1f840003).lrw8("vme_isr", [this]() { return m_vme_isr; }, [this](u8 data) { m_vme_isr = data; }).umask32(0x000000ff);
- map(0x1f840008, 0x1f84000b).lrw8("vme_imr", [this]() { return m_vme_imr; }, [this](u8 data) { m_vme_imr = data; }).umask32(0x000000ff);
+ map(0x1f840000, 0x1f840003).lrw8(NAME([this]() { return m_vme_isr; }), NAME([this](u8 data) { m_vme_isr = data; })).umask32(0x000000ff);
+ map(0x1f840008, 0x1f84000b).lrw8(NAME([this]() { return m_vme_imr; }), NAME([this](u8 data) { m_vme_imr = data; })).umask32(0x000000ff);
- map(0x1f880000, 0x1f880003).lrw16("cpuctrl",
- [this]()
- {
- return m_cpuctrl;
- },
+ map(0x1f880000, 0x1f880003).lrw16(
+ NAME([this]() { return m_cpuctrl; }),
[this](u16 data)
{
m_eeprom->di_write(BIT(data, 8));
@@ -278,13 +275,10 @@ void pi4d2x_state::map(address_map &map)
//BIT(data, 15); // fast peripheral cycle
m_cpuctrl = data;
- }).umask32(0x0000ffff);
+ }, "cpuctrl_w").umask32(0x0000ffff);
//map(0x1f8c0000, 0x1f8c0003); // lca readback trigger (b)
- map(0x1f8e0000, 0x1f8e0003).lrw8("cpuauxctrl",
- [this]()
- {
- return m_cpuauxctl;
- },
+ map(0x1f8e0000, 0x1f8e0003).lrw8(
+ NAME([this]() { return m_cpuauxctl; }),
[this](u8 data)
{
// cpu leds
@@ -303,59 +297,41 @@ void pi4d2x_state::map(address_map &map)
m_gfx->reset_w(BIT(data, 7));
m_cpuauxctl = data;
- }).umask32(0xff000000);
+ }, "cpuauxctl_w").umask32(0xff000000);
- map(0x1f900000, 0x1f900003).lrw16("dmalo",
- [this]()
- {
- return m_dmalo;
- },
+ map(0x1f900000, 0x1f900003).lrw16(
+ NAME([this]() { return m_dmalo; }),
[this](u16 data)
{
m_dmalo = data;
m_mapindex = 0;
m_dmaaddr = (u32(m_dmahi[m_mapindex]) << 12) | (m_dmalo & 0x0ffc);
- }).umask32(0x0000ffff);
+ }, "dmalo_w").umask32(0x0000ffff);
- map(0x1f910000, 0x1f910003).lrw8("mapindex",
- [this]()
- {
- return m_mapindex;
- },
- [this](u8 data)
- {
- m_mapindex = data;
- }).umask32(0x000000ff);
+ map(0x1f910000, 0x1f910003).lrw8(
+ NAME([this]() { return m_mapindex; }),
+ NAME([this](u8 data) { m_mapindex = data; })).umask32(0x000000ff);
/*
* DMA address mapping table is a pair of CY7C128-35PC 2048x8 SRAMs which
* read/write to data bus D27-12. A10 is tied high, giving 1024 entries.
*/
- map(0x1f920000, 0x1f920fff).lrw16("dmahi",
- [this](offs_t offset)
- {
- return m_dmahi[offset];
- },
- [this](offs_t offset, u16 data, u16 mem_mask)
- {
- COMBINE_DATA(&m_dmahi[offset]);
- }).umask32(0x0000ffff);
+ map(0x1f920000, 0x1f920fff).lrw16(
+ NAME([this](offs_t offset) { return m_dmahi[offset]; }),
+ NAME([this](offs_t offset, u16 data, u16 mem_mask) { COMBINE_DATA(&m_dmahi[offset]); })).umask32(0x0000ffff);
// emulation can ignore dma flush
map(0x1f940000, 0x1f940003).nopw();
map(0x1f950000, 0x1f9501ff).rw(m_enet, FUNC(am7990_device::regs_r), FUNC(am7990_device::regs_w)).umask32(0xffff0000);
- map(0x1f960000, 0x1f960003).lr8("etherrdy", [this]() { m_enet->reset_w(1); return 0; }).umask32(0xff000000);
- map(0x1f960004, 0x1f960007).lr8("etherrst", [this]() { m_enet->reset_w(0); return 0; }).umask32(0xff000000);
+ map(0x1f960000, 0x1f960003).lr8([this]() { m_enet->reset_w(1); return 0; }, "etherrdy").umask32(0xff000000);
+ map(0x1f960004, 0x1f960007).lr8([this]() { m_enet->reset_w(0); return 0; }, "etherrst").umask32(0xff000000);
//map(0x1f960008, 0x1f96000b).rw().umask32(0xff000000); // etherwait: wait state control
- map(0x1f980000, 0x1f980003).lr16("lio_isr", [this]() { return m_lio_isr; }).umask32(0x0000ffff);
- map(0x1f980008, 0x1f98000b).lrw8("lio_imr",
- [this]()
- {
- return m_lio_imr;
- },
+ map(0x1f980000, 0x1f980003).lr16(NAME([this]() { return m_lio_isr; })).umask32(0x0000ffff);
+ map(0x1f980008, 0x1f98000b).lrw8(
+ NAME([this]() { return m_lio_imr; }),
[this](u8 data)
{
m_lio_imr = data;
@@ -376,7 +352,7 @@ void pi4d2x_state::map(address_map &map)
m_lio_int = lio_int;
m_cpu->set_input_line(INPUT_LINE_IRQ1, m_lio_int);
}
- }).umask32(0x000000ff);
+ }, "lio_imr_w").umask32(0x000000ff);
// 1 0 a7 a6 a5 a4 a3 a2 a1 a0 1 0 lance dmahi
// 0 0 a7 a6 a5 a4 a3 a2 a1 a0 1 0 scsi dmahi
@@ -406,12 +382,12 @@ void pi4d2x_state::map(address_map &map)
map(0x1f9e0000, 0x1f9e0003).ram().umask32(0x000000ff);
map(0x1f9f000c, 0x1f9f000f).ram().umask32(0xffffffff);
- map(0x1fa00000, 0x1fa00003).lr8("timer1_ack", [this]() { m_cpu->set_input_line(INPUT_LINE_IRQ4, 0); return 0; }).umask32(0xff000000);
- map(0x1fa20000, 0x1fa20003).lr8("timer0_ack", [this]() { m_cpu->set_input_line(INPUT_LINE_IRQ2, 0); return 0; }).umask32(0xff000000);
+ map(0x1fa00000, 0x1fa00003).lr8([this]() { m_cpu->set_input_line(INPUT_LINE_IRQ4, 0); return 0; }, "timer1_ack").umask32(0xff000000);
+ map(0x1fa20000, 0x1fa20003).lr8([this]() { m_cpu->set_input_line(INPUT_LINE_IRQ2, 0); return 0; }, "timer0_ack").umask32(0xff000000);
- map(0x1fa40000, 0x1fa40003).lr32("erradr", [this]() { m_cpu->set_input_line(INPUT_LINE_IRQ5, 0); m_cpu->berr_w(0); return m_erradr; });
+ map(0x1fa40000, 0x1fa40003).lr32([this]() { m_cpu->set_input_line(INPUT_LINE_IRQ5, 0); m_cpu->berr_w(0); return m_erradr; }, "erradr");
- map(0x1fa40004, 0x1fa40007).lrw32("refadr",
+ map(0x1fa40004, 0x1fa40007).lrw32(
[this]()
{
if (m_memcfg & MEMCFG_TIMERDIS)
@@ -425,51 +401,45 @@ void pi4d2x_state::map(address_map &map)
}
else
return m_refadr;
- },
+ }, "refadr_r",
[this](u32 data)
{
m_refadr = data;
m_refresh_timer = machine().time();
- });
+ }, "refadr_w");
- map(0x1fa40008, 0x1fa4000b).lrw32("gdma_dabr_phys", [this]() { return m_gdma_dabr; }, [this](u32 data) { m_gdma_dabr = data; });
- map(0x1fa4000c, 0x1fa4000f).lrw32("gdma_bufadr_phys", [this]() { return m_gdma_bufadr; }, [this](u32 data) { m_gdma_bufadr = data; });
- map(0x1fa40010, 0x1fa40013).lrw16("gdma_burst_phys", [this]() { return m_gdma_burst; }, [this](u16 data) { m_gdma_burst = data; }).umask32(0xffff0000);
- map(0x1fa40010, 0x1fa40013).lrw16("gdma_buflen_phys", [this]() { return m_gdma_buflen; }, [this](u16 data) { m_gdma_buflen = data; }).umask32(0x0000ffff);
+ map(0x1fa40008, 0x1fa4000b).lrw32(NAME([this]() { return m_gdma_dabr; }), NAME([this](u32 data) { m_gdma_dabr = data; }));
+ map(0x1fa4000c, 0x1fa4000f).lrw32(NAME([this]() { return m_gdma_bufadr; }), NAME([this](u32 data) { m_gdma_bufadr = data; }));
+ map(0x1fa40010, 0x1fa40013).lrw16(NAME([this]() { return m_gdma_burst; }), NAME([this](u16 data) { m_gdma_burst = data; })).umask32(0xffff0000);
+ map(0x1fa40010, 0x1fa40013).lrw16(NAME([this]() { return m_gdma_buflen; }), NAME([this](u16 data) { m_gdma_buflen = data; })).umask32(0x0000ffff);
- map(0x1fa60000, 0x1fa60003).lrw8("vmermw", [this]() { m_sysid |= SYSID_VMERMW; return 0; }, [this](u8 data) { m_sysid |= SYSID_VMERMW; }).umask32(0xff000000);
+ map(0x1fa60000, 0x1fa60003).lrw8([this]() { m_sysid |= SYSID_VMERMW; return 0; }, "vmermw_r", [this](u8 data) { m_sysid |= SYSID_VMERMW; }, "vmermw_w").umask32(0xff000000);
//map(0x1fa60004, 0x1fa60007).rw("actpup").umask32(0xff000000); // turn on active bus pullup
- map(0x1fa60018, 0x1fa6001b).lrw8("vmefbon", [this]() { m_sysid |= SYSID_VMEFBT; return 0; }, [this](u8 data) { m_sysid |= SYSID_VMEFBT; }).umask32(0xff000000);
- map(0x1fa6001c, 0x1fa6001f).lrw8("vmefbof", [this]() { m_sysid &= ~SYSID_VMEFBT; return 0; }, [this](u8 data) { m_sysid &= ~SYSID_VMEFBT; }).umask32(0xff000000);
+ map(0x1fa60018, 0x1fa6001b).lrw8([this]() { m_sysid |= SYSID_VMEFBT; return 0; }, "vmefbon_r", [this](u8 data) { m_sysid |= SYSID_VMEFBT; }, "vmefbon_w").umask32(0xff000000);
+ map(0x1fa6001c, 0x1fa6001f).lrw8([this]() { m_sysid &= ~SYSID_VMEFBT; return 0; }, "vmefbof_r", [this](u8 data) { m_sysid &= ~SYSID_VMEFBT; }, "vmefbof_w").umask32(0xff000000);
map(0x1fa60020, 0x1fa60023).nopr(); // reload gfx dma burst/delay reg (FIXME: silenced)
//map(0x1fa60024, 0x1fa60027).rw("enraso").umask32(0xff000000); // enable ctl ras decoder
- map(0x1fa80000, 0x1fa80003).lr8("scsirdy", [this]() { m_scsi->reset_w(0); return 0; }).umask32(0xff000000);
- map(0x1fa80004, 0x1fa80007).lr8("scsirst", [this]() { m_scsi->reset_w(1); return 0; }).umask32(0xff000000);
- map(0x1fa80008, 0x1fa8000b).lr8("scsibstat", []() { return 0; }).umask32(0x00ff0000);
+ map(0x1fa80000, 0x1fa80003).lr8([this]() { m_scsi->reset_w(0); return 0; }, "scsirdy").umask32(0xff000000);
+ map(0x1fa80004, 0x1fa80007).lr8([this]() { m_scsi->reset_w(1); return 0; }, "scsirst").umask32(0xff000000);
+ map(0x1fa80008, 0x1fa8000b).lr8([]() { return 0; }, "scsibstat").umask32(0x00ff0000);
// TODO: IOC2 configuration register, bus error on IOC1
//map(0x1fa80008, 0x1fa8000b).rw(FUNC(pi4d2x_state::buserror_r), FUNC(pi4d2x_state::buserror_w));
- map(0x1faa0000, 0x1faa0003).lrw8("clrerr", [this](offs_t offset) { m_parerr &= ~(PARERR_BYTE | (1 << offset)); return 0; }, [this](offs_t offset) { m_parerr &= ~(PARERR_BYTE | (1 << offset)); });
- map(0x1faa0004, 0x1faa0007).lr8("parerr", [this]() { return m_parerr; }).umask32(0x00ff0000);
+ map(0x1faa0000, 0x1faa0003).lrw8([this](offs_t offset) { m_parerr &= ~(PARERR_BYTE | (1 << offset)); return 0; }, "clrerr_r", [this](offs_t offset) { m_parerr &= ~(PARERR_BYTE | (1 << offset)); }, "clrerr_w");
+ map(0x1faa0004, 0x1faa0007).lr8(NAME([this]() { return m_parerr; })).umask32(0x00ff0000);
- map(0x1fac0000, 0x1fac0003).lrw8("vrrst", [this]() { lio_interrupt<LIO_VR>(1); return 0; }, [this](u8 data) { lio_interrupt<LIO_VR>(1); }).umask32(0xff000000);
+ map(0x1fac0000, 0x1fac0003).lrw8([this]() { lio_interrupt<LIO_VR>(1); return 0; }, "vrrst_r", [this](u8 data) { lio_interrupt<LIO_VR>(1); }, "vrrst_w").umask32(0xff000000);
map(0x1fb00000, 0x1fb00003).rw(m_scsi, FUNC(wd33c93_device::indir_addr_r), FUNC(wd33c93_device::indir_addr_w)).umask32(0x00ff0000);
map(0x1fb00100, 0x1fb00103).rw(m_scsi, FUNC(wd33c93_device::indir_reg_r), FUNC(wd33c93_device::indir_reg_w)).umask32(0x00ff0000);
map(0x1fb40000, 0x1fb4000f).rw(m_pit, FUNC(pit8254_device::read), FUNC(pit8254_device::write)).umask32(0xff000000);
- map(0x1fb80000, 0x1fb800ff).lrw8("duarts",
- [this](offs_t offset)
- {
- return m_duart[BIT(offset, 0)]->read(offset >> 2);
- },
- [this](offs_t offset, u8 data)
- {
- m_duart[BIT(offset, 0)]->write(offset >> 2, data);
- }).umask32(0xff000000);
+ map(0x1fb80000, 0x1fb800ff).lrw8(
+ NAME([this](offs_t offset) { return m_duart[BIT(offset, 0)]->read(offset >> 2); }),
+ NAME([this](offs_t offset, u8 data) { m_duart[BIT(offset, 0)]->write(offset >> 2, data); })).umask32(0xff000000);
map(0x1fbc0000, 0x1fbc007f).rw(m_rtc, FUNC(dp8573_device::read), FUNC(dp8573_device::write)).umask32(0xff000000);
diff --git a/src/mame/drivers/4enlinea.cpp b/src/mame/drivers/4enlinea.cpp
index a07d92002b1..9247d314ba8 100644
--- a/src/mame/drivers/4enlinea.cpp
+++ b/src/mame/drivers/4enlinea.cpp
@@ -329,8 +329,8 @@ void isa8_cga_4enlinea_device::device_start()
m_vram_size = 0x4000;
m_vram.resize(m_vram_size);
- //m_isa->install_device(0x3bf, 0x3bf, 0, 0, nullptr, write8_delegate( FUNC(isa8_cga_4enlinea_device::_4enlinea_mode_control_w), this ) );
- m_isa->install_device(0x3d0, 0x3df, read8_delegate( FUNC(isa8_cga_4enlinea_device::_4enlinea_io_read), this ), write8_delegate( FUNC(isa8_cga_device::io_write), this ) );
+ //m_isa->install_device(0x3bf, 0x3bf, 0, 0, nullptr, write8_delegate(*this, FUNC(isa8_cga_4enlinea_device::_4enlinea_mode_control_w)));
+ m_isa->install_device(0x3d0, 0x3df, read8_delegate(*this, FUNC(isa8_cga_4enlinea_device::_4enlinea_io_read)), write8_delegate(*this, FUNC(isa8_cga_device::io_write)));
m_isa->install_bank(0x8000, 0xbfff, "bank1", &m_vram[0]);
/* Initialise the cga palette */
diff --git a/src/mame/drivers/5clown.cpp b/src/mame/drivers/5clown.cpp
index 9a0e0605b2d..af1c46fed80 100644
--- a/src/mame/drivers/5clown.cpp
+++ b/src/mame/drivers/5clown.cpp
@@ -1049,7 +1049,7 @@ void _5clown_state::fclown(machine_config &config)
crtc.set_show_border_area(false);
crtc.set_char_width(8);
crtc.out_vsync_callback().set_inputline(m_maincpu, INPUT_LINE_NMI);
- crtc.set_update_row_callback(FUNC(_5clown_state::update_row), this);
+ crtc.set_update_row_callback(FUNC(_5clown_state::update_row));
/* sound hardware */
SPEAKER(config, "mono").front_center();
diff --git a/src/mame/drivers/88games.cpp b/src/mame/drivers/88games.cpp
index ff8e7a553e3..2672faf4087 100644
--- a/src/mame/drivers/88games.cpp
+++ b/src/mame/drivers/88games.cpp
@@ -323,17 +323,17 @@ void _88games_state::_88games(machine_config &config)
K052109(config, m_k052109, 0);
m_k052109->set_palette("palette");
m_k052109->set_screen("screen");
- m_k052109->set_tile_callback(FUNC(_88games_state::tile_callback), this);
+ m_k052109->set_tile_callback(FUNC(_88games_state::tile_callback));
m_k052109->irq_handler().set_inputline(m_maincpu, KONAMI_IRQ_LINE);
K051960(config, m_k051960, 0);
m_k051960->set_palette("palette");
m_k051960->set_screen("screen");
- m_k051960->set_sprite_callback(FUNC(_88games_state::sprite_callback), this);
+ m_k051960->set_sprite_callback(FUNC(_88games_state::sprite_callback));
K051316(config, m_k051316, 0);
m_k051316->set_palette("palette");
- m_k051316->set_zoom_callback(FUNC(_88games_state::zoom_callback), this);
+ m_k051316->set_zoom_callback(FUNC(_88games_state::zoom_callback));
/* sound hardware */
SPEAKER(config, "mono").front_center();
diff --git a/src/mame/drivers/a2600.cpp b/src/mame/drivers/a2600.cpp
index 6cbeeef3a4d..2ab2427e761 100644
--- a/src/mame/drivers/a2600.cpp
+++ b/src/mame/drivers/a2600.cpp
@@ -312,50 +312,50 @@ void a2600_state::machine_start()
case A26_DC:
case A26_FV:
case A26_8IN1:
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1000, 0x1fff, read8_delegate(FUNC(vcs_cart_slot_device::read_rom),(vcs_cart_slot_device*)m_cart), write8_delegate(FUNC(vcs_cart_slot_device::write_bank),(vcs_cart_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1000, 0x1fff, read8_delegate(*m_cart, FUNC(vcs_cart_slot_device::read_rom)), write8_delegate(*m_cart, FUNC(vcs_cart_slot_device::write_bank)));
break;
case A26_F6:
case A26_DPC:
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1000, 0x1fff, read8_delegate(FUNC(vcs_cart_slot_device::read_rom),(vcs_cart_slot_device*)m_cart), write8_delegate(FUNC(vcs_cart_slot_device::write_bank),(vcs_cart_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1000, 0x1fff, read8_delegate(*m_cart, FUNC(vcs_cart_slot_device::read_rom)), write8_delegate(*m_cart, FUNC(vcs_cart_slot_device::write_bank)));
break;
case A26_FE:
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1000, 0x1fff, read8_delegate(FUNC(vcs_cart_slot_device::read_rom),(vcs_cart_slot_device*)m_cart), write8_delegate(FUNC(vcs_cart_slot_device::write_ram),(vcs_cart_slot_device*)m_cart));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x01fe, 0x01ff, read8_delegate(FUNC(vcs_cart_slot_device::read_bank),(vcs_cart_slot_device*)m_cart));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x01fe, 0x01fe, write8_delegate(FUNC(vcs_cart_slot_device::write_bank),(vcs_cart_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1000, 0x1fff, read8_delegate(*m_cart, FUNC(vcs_cart_slot_device::read_rom)), write8_delegate(*m_cart, FUNC(vcs_cart_slot_device::write_ram)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x01fe, 0x01ff, read8_delegate(*m_cart, FUNC(vcs_cart_slot_device::read_bank)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x01fe, 0x01fe, write8_delegate(*m_cart, FUNC(vcs_cart_slot_device::write_bank)));
break;
case A26_3E:
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1000, 0x1fff, read8_delegate(FUNC(vcs_cart_slot_device::read_rom),(vcs_cart_slot_device*)m_cart), write8_delegate(FUNC(vcs_cart_slot_device::write_ram),(vcs_cart_slot_device*)m_cart));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x00, 0x3f, write8_delegate(FUNC(a2600_state::cart_over_tia_w), this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1000, 0x1fff, read8_delegate(*m_cart, FUNC(vcs_cart_slot_device::read_rom)), write8_delegate(*m_cart, FUNC(vcs_cart_slot_device::write_ram)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x00, 0x3f, write8_delegate(*this, FUNC(a2600_state::cart_over_tia_w)));
break;
case A26_3F:
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x1000, 0x1fff, read8_delegate(FUNC(vcs_cart_slot_device::read_rom),(vcs_cart_slot_device*)m_cart));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x00, 0x3f, write8_delegate(FUNC(a2600_state::cart_over_tia_w), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x1000, 0x1fff, read8_delegate(*m_cart, FUNC(vcs_cart_slot_device::read_rom)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x00, 0x3f, write8_delegate(*this, FUNC(a2600_state::cart_over_tia_w)));
break;
case A26_UA:
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x1000, 0x1fff, read8_delegate(FUNC(vcs_cart_slot_device::read_rom),(vcs_cart_slot_device*)m_cart));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x200, 0x27f, read8_delegate(FUNC(vcs_cart_slot_device::read_bank),(vcs_cart_slot_device*)m_cart), write8_delegate(FUNC(vcs_cart_slot_device::write_bank),(vcs_cart_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x1000, 0x1fff, read8_delegate(*m_cart, FUNC(vcs_cart_slot_device::read_rom)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x200, 0x27f, read8_delegate(*m_cart, FUNC(vcs_cart_slot_device::read_bank)), write8_delegate(*m_cart, FUNC(vcs_cart_slot_device::write_bank)));
break;
case A26_JVP:
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1000, 0x1fff, read8_delegate(FUNC(vcs_cart_slot_device::read_rom),(vcs_cart_slot_device*)m_cart), write8_delegate(FUNC(vcs_cart_slot_device::write_bank),(vcs_cart_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1000, 0x1fff, read8_delegate(*m_cart, FUNC(vcs_cart_slot_device::read_rom)), write8_delegate(*m_cart, FUNC(vcs_cart_slot_device::write_bank)));
// to verify the actual behavior...
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xfa0, 0xfc0, read8_delegate(FUNC(a2600_state::cart_over_riot_r), this), write8_delegate(FUNC(a2600_state::cart_over_riot_w), this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xfa0, 0xfc0, read8_delegate(*this, FUNC(a2600_state::cart_over_riot_r)), write8_delegate(*this, FUNC(a2600_state::cart_over_riot_w)));
break;
case A26_4IN1:
case A26_32IN1:
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x1000, 0x1fff, read8_delegate(FUNC(vcs_cart_slot_device::read_rom),(vcs_cart_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x1000, 0x1fff, read8_delegate(*m_cart, FUNC(vcs_cart_slot_device::read_rom)));
break;
case A26_SS:
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x1000, 0x1fff, read8_delegate(FUNC(vcs_cart_slot_device::read_rom),(vcs_cart_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x1000, 0x1fff, read8_delegate(*m_cart, FUNC(vcs_cart_slot_device::read_rom)));
break;
case A26_CM:
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x1000, 0x1fff, read8_delegate(FUNC(vcs_cart_slot_device::read_rom),(vcs_cart_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x1000, 0x1fff, read8_delegate(*m_cart, FUNC(vcs_cart_slot_device::read_rom)));
break;
case A26_X07:
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1000, 0x1fff, read8_delegate(FUNC(vcs_cart_slot_device::read_rom),(vcs_cart_slot_device*)m_cart), write8_delegate(FUNC(vcs_cart_slot_device::write_bank),(vcs_cart_slot_device*)m_cart));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x0000, 0x0fff, read8_delegate(FUNC(a2600_state::cart_over_all_r), this), write8_delegate(FUNC(a2600_state::cart_over_all_w), this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1000, 0x1fff, read8_delegate(*m_cart, FUNC(vcs_cart_slot_device::read_rom)), write8_delegate(*m_cart, FUNC(vcs_cart_slot_device::write_bank)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x0000, 0x0fff, read8_delegate(*this, FUNC(a2600_state::cart_over_all_r)), write8_delegate(*this, FUNC(a2600_state::cart_over_all_w)));
break;
case A26_HARMONY:
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1000, 0x1fff, read8_delegate(FUNC(vcs_cart_slot_device::read_rom),(vcs_cart_slot_device*)m_cart), write8_delegate(FUNC(vcs_cart_slot_device::write_bank),(vcs_cart_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1000, 0x1fff, read8_delegate(*m_cart, FUNC(vcs_cart_slot_device::read_rom)), write8_delegate(*m_cart, FUNC(vcs_cart_slot_device::write_bank)));
break;
}
diff --git a/src/mame/drivers/a7800.cpp b/src/mame/drivers/a7800.cpp
index 145388dc6fb..aa35459d5a5 100644
--- a/src/mame/drivers/a7800.cpp
+++ b/src/mame/drivers/a7800.cpp
@@ -214,38 +214,37 @@ READ8_MEMBER(a7800_state::tia_r)
{
switch (offset & 0x0f)
{
- case 0x00:
- case 0x01:
- case 0x02:
- case 0x03:
- case 0x04:
- case 0x05:
- case 0x06:
- case 0x07:
- /* Even though the 7800 doesn't use the TIA graphics the collision registers should
- still return a reasonable value */
+ case 0x00:
+ case 0x01:
+ case 0x02:
+ case 0x03:
+ case 0x04:
+ case 0x05:
+ case 0x06:
+ case 0x07:
+ /* Even though the 7800 doesn't use the TIA graphics the collision registers should
+ still return a reasonable value */
+ return 0x00;
+ case 0x08:
+ return ((m_io_buttons->read() & 0x02) << 6);
+ case 0x09:
+ return ((m_io_buttons->read() & 0x08) << 4);
+ case 0x0a:
+ return ((m_io_buttons->read() & 0x01) << 7);
+ case 0x0b:
+ return ((m_io_buttons->read() & 0x04) << 5);
+ case 0x0c:
+ if (((m_io_buttons->read() & 0x08) ||(m_io_buttons->read() & 0x02)) && m_p1_one_button)
return 0x00;
- case 0x08:
- return ((m_io_buttons->read() & 0x02) << 6);
- case 0x09:
- return ((m_io_buttons->read() & 0x08) << 4);
- case 0x0a:
- return ((m_io_buttons->read() & 0x01) << 7);
- case 0x0b:
- return ((m_io_buttons->read() & 0x04) << 5);
- case 0x0c:
- if (((m_io_buttons->read() & 0x08) ||(m_io_buttons->read() & 0x02)) && m_p1_one_button)
- return 0x00;
- else
- return 0x80;
- case 0x0d:
- if (((m_io_buttons->read() & 0x01) ||(m_io_buttons->read() & 0x04)) && m_p2_one_button)
- return 0x00;
- else
- return 0x80;
- default:
- logerror("undefined TIA read %x\n",offset);
-
+ else
+ return 0x80;
+ case 0x0d:
+ if (((m_io_buttons->read() & 0x01) ||(m_io_buttons->read() & 0x04)) && m_p2_one_button)
+ return 0x00;
+ else
+ return 0x80;
+ default:
+ logerror("undefined TIA read %x\n",offset);
}
return 0xff;
}
@@ -277,7 +276,7 @@ WRITE8_MEMBER(a7800_state::tia_w)
TIMER_DEVICE_CALLBACK_MEMBER(a7800_state::interrupt)
{
// DMA Begins 7 cycles after hblank
- machine().scheduler().timer_set(m_maincpu->cycles_to_attotime(7), timer_expired_delegate(FUNC(a7800_state::maria_startdma),this));
+ machine().scheduler().timer_set(m_maincpu->cycles_to_attotime(7), timer_expired_delegate(FUNC(a7800_state::maria_startdma), this));
m_maria->interrupt(m_lines);
}
@@ -1342,27 +1341,27 @@ void a7800_state::machine_start()
{
switch (m_cart->get_cart_type())
{
- case A78_HSC:
- // ROM+NVRAM accesses for HiScore
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1000, 0x17ff, read8_delegate(FUNC(a78_cart_slot_device::read_10xx),(a78_cart_slot_device*)m_cart), write8_delegate(FUNC(a78_cart_slot_device::write_10xx),(a78_cart_slot_device*)m_cart));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x3000, 0x3fff, read8_delegate(FUNC(a78_cart_slot_device::read_30xx),(a78_cart_slot_device*)m_cart), write8_delegate(FUNC(a78_cart_slot_device::write_30xx),(a78_cart_slot_device*)m_cart));
- break;
- case A78_XB_BOARD:
- case A78_TYPE0_POK450:
- case A78_TYPE1_POK450:
- case A78_TYPE6_POK450:
- case A78_TYPEA_POK450:
- case A78_VERSA_POK450:
- // POKEY and RAM regs at 0x400-0x47f
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x0400, 0x047f, read8_delegate(FUNC(a78_cart_slot_device::read_04xx),(a78_cart_slot_device*)m_cart), write8_delegate(FUNC(a78_cart_slot_device::write_04xx),(a78_cart_slot_device*)m_cart));
- break;
- case A78_XM_BOARD:
- // POKEY and RAM and YM regs at 0x400-0x47f
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x0400, 0x047f, read8_delegate(FUNC(a78_cart_slot_device::read_04xx),(a78_cart_slot_device*)m_cart), write8_delegate(FUNC(a78_cart_slot_device::write_04xx),(a78_cart_slot_device*)m_cart));
- // ROM+NVRAM accesses for HiScore
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1000, 0x17ff, read8_delegate(FUNC(a78_cart_slot_device::read_10xx),(a78_cart_slot_device*)m_cart), write8_delegate(FUNC(a78_cart_slot_device::write_10xx),(a78_cart_slot_device*)m_cart));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x3000, 0x3fff, read8_delegate(FUNC(a78_cart_slot_device::read_30xx),(a78_cart_slot_device*)m_cart), write8_delegate(FUNC(a78_cart_slot_device::write_30xx),(a78_cart_slot_device*)m_cart));
- break;
+ case A78_HSC:
+ // ROM+NVRAM accesses for HiScore
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1000, 0x17ff, read8_delegate(*m_cart, FUNC(a78_cart_slot_device::read_10xx)), write8_delegate(*m_cart, FUNC(a78_cart_slot_device::write_10xx)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x3000, 0x3fff, read8_delegate(*m_cart, FUNC(a78_cart_slot_device::read_30xx)), write8_delegate(*m_cart, FUNC(a78_cart_slot_device::write_30xx)));
+ break;
+ case A78_XB_BOARD:
+ case A78_TYPE0_POK450:
+ case A78_TYPE1_POK450:
+ case A78_TYPE6_POK450:
+ case A78_TYPEA_POK450:
+ case A78_VERSA_POK450:
+ // POKEY and RAM regs at 0x400-0x47f
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x0400, 0x047f, read8_delegate(*m_cart, FUNC(a78_cart_slot_device::read_04xx)), write8_delegate(*m_cart, FUNC(a78_cart_slot_device::write_04xx)));
+ break;
+ case A78_XM_BOARD:
+ // POKEY and RAM and YM regs at 0x400-0x47f
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x0400, 0x047f, read8_delegate(*m_cart, FUNC(a78_cart_slot_device::read_04xx)), write8_delegate(*m_cart, FUNC(a78_cart_slot_device::write_04xx)));
+ // ROM+NVRAM accesses for HiScore
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1000, 0x17ff, read8_delegate(*m_cart, FUNC(a78_cart_slot_device::read_10xx)), write8_delegate(*m_cart, FUNC(a78_cart_slot_device::write_10xx)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x3000, 0x3fff, read8_delegate(*m_cart, FUNC(a78_cart_slot_device::read_30xx)), write8_delegate(*m_cart, FUNC(a78_cart_slot_device::write_30xx)));
+ break;
}
}
}
diff --git a/src/mame/drivers/aa310.cpp b/src/mame/drivers/aa310.cpp
index 824f15bcb41..0ddf6346309 100644
--- a/src/mame/drivers/aa310.cpp
+++ b/src/mame/drivers/aa310.cpp
@@ -179,7 +179,7 @@ void aa310_state::init_aa310()
uint32_t ram_size = m_ram->size();
m_maincpu->space(AS_PROGRAM).unmap_readwrite(0x02000000, 0x02ffffff);
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler( 0x02000000, 0x02000000+(ram_size-1), read32_delegate(FUNC(aa310_state::aa310_psy_wram_r), this), write32_delegate(FUNC(aa310_state::aa310_psy_wram_w), this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler( 0x02000000, 0x02000000+(ram_size-1), read32_delegate(*this, FUNC(aa310_state::aa310_psy_wram_r)), write32_delegate(*this, FUNC(aa310_state::aa310_psy_wram_w)));
archimedes_driver_init();
}
diff --git a/src/mame/drivers/abc1600.cpp b/src/mame/drivers/abc1600.cpp
index 5aad63f1cef..6d194a89b37 100644
--- a/src/mame/drivers/abc1600.cpp
+++ b/src/mame/drivers/abc1600.cpp
@@ -807,9 +807,9 @@ WRITE_LINE_MEMBER( abc1600_state::nmi_w )
void abc1600_state::cpu_space_map(address_map &map)
{
map(0xffff0, 0xfffff).m(m_maincpu, FUNC(m68008_device::autovectors_map));
- map(0xffff5, 0xffff5).lr8("cio int", [this]() -> u8 { return m_cio->intack_r(); });
- map(0xffffb, 0xffffb).lr8("dart int", [this]() -> u8 { return m_dart->m1_r(); });
- map(0xfffff, 0xfffff).lr8("nmi int", [this]() -> u8 { m_maincpu->set_input_line(M68K_IRQ_7, CLEAR_LINE); return m68008_device::autovector(7); });
+ map(0xffff5, 0xffff5).lr8(NAME([this]() -> u8 { return m_cio->intack_r(); }));
+ map(0xffffb, 0xffffb).lr8(NAME([this]() -> u8 { return m_dart->m1_r(); }));
+ map(0xfffff, 0xfffff).lr8(NAME([this]() -> u8 { m_maincpu->set_input_line(M68K_IRQ_7, CLEAR_LINE); return m68008_device::autovector(7); }));
}
void abc1600_state::machine_start()
diff --git a/src/mame/drivers/abc80.cpp b/src/mame/drivers/abc80.cpp
index 2086d174ba1..7dea7548233 100644
--- a/src/mame/drivers/abc80.cpp
+++ b/src/mame/drivers/abc80.cpp
@@ -537,7 +537,7 @@ void abc80_state::abc80(machine_config &config)
generic_keyboard_device &keyboard(GENERIC_KEYBOARD(config, KEYBOARD_TAG, 0));
keyboard.set_keyboard_callback(FUNC(abc80_state::kbd_w));
- QUICKLOAD(config, "quickload", "bac", attotime::from_seconds(2)).set_load_callback(FUNC(abc80_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "bac", attotime::from_seconds(2)).set_load_callback(FUNC(abc80_state::quickload_cb));
// internal ram
RAM(config, RAM_TAG).set_default_size("16K");
diff --git a/src/mame/drivers/abc80x.cpp b/src/mame/drivers/abc80x.cpp
index 98a9da1c6d4..8395ec6ced7 100644
--- a/src/mame/drivers/abc80x.cpp
+++ b/src/mame/drivers/abc80x.cpp
@@ -1115,7 +1115,7 @@ void abc800_state::common(machine_config &config)
SOFTWARE_LIST(config, "hdd_list").set_original("abc800_hdd");
// quickload
- QUICKLOAD(config, "quickload", "bac", attotime::from_seconds(2)).set_load_callback(FUNC(abc800_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "bac", attotime::from_seconds(2)).set_load_callback(FUNC(abc800_state::quickload_cb));
}
diff --git a/src/mame/drivers/aci_ggm.cpp b/src/mame/drivers/aci_ggm.cpp
index 1c740817b8d..865fb38e46c 100644
--- a/src/mame/drivers/aci_ggm.cpp
+++ b/src/mame/drivers/aci_ggm.cpp
@@ -450,7 +450,7 @@ void ggm_state::ggm(machine_config &config)
/* cartridge */
GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "ggm", "bin");
- m_cart->set_device_load(FUNC(ggm_state::cartridge), this);
+ m_cart->set_device_load(FUNC(ggm_state::cartridge));
m_cart->set_must_be_loaded(true);
SOFTWARE_LIST(config, "cart_list").set_original("ggm");
diff --git a/src/mame/drivers/adm23.cpp b/src/mame/drivers/adm23.cpp
index 4d957aef7c4..04b1c419590 100644
--- a/src/mame/drivers/adm23.cpp
+++ b/src/mame/drivers/adm23.cpp
@@ -67,8 +67,8 @@ void adm23_state::adm23(machine_config &config)
crtc.set_char_width(9);
crtc.set_show_border_area(false);
crtc.set_screen("screen");
- crtc.set_update_row_callback(FUNC(adm23_state::update_row), this);
- crtc.set_on_update_addr_change_callback(FUNC(adm23_state::addr_changed), this);
+ crtc.set_update_row_callback(FUNC(adm23_state::update_row));
+ crtc.set_on_update_addr_change_callback(FUNC(adm23_state::addr_changed));
}
ROM_START(adm23)
diff --git a/src/mame/drivers/aerofgt.cpp b/src/mame/drivers/aerofgt.cpp
index 6756d8d3869..40379901a65 100644
--- a/src/mame/drivers/aerofgt.cpp
+++ b/src/mame/drivers/aerofgt.cpp
@@ -1489,7 +1489,7 @@ void aerofgt_state::pspikes(machine_config &config)
PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 2048);
VSYSTEM_SPR2(config, m_spr_old[0], 0);
- m_spr_old[0]->set_tile_indirect_cb(FUNC(aerofgt_state::aerofgt_old_tile_callback), this);
+ m_spr_old[0]->set_tile_indirect_cb(FUNC(aerofgt_state::aerofgt_old_tile_callback));
m_spr_old[0]->set_gfx_region(1);
m_spr_old[0]->set_gfxdecode_tag(m_gfxdecode);
@@ -1616,7 +1616,7 @@ void aerofgt_state::kickball(machine_config &config)
PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 2048);
VSYSTEM_SPR2(config, m_spr_old[0], 0);
- m_spr_old[0]->set_tile_indirect_cb(FUNC(aerofgt_state::aerofgt_old_tile_callback), this);
+ m_spr_old[0]->set_tile_indirect_cb(FUNC(aerofgt_state::aerofgt_old_tile_callback));
m_spr_old[0]->set_gfx_region(1);
m_spr_old[0]->set_gfxdecode_tag(m_gfxdecode);
@@ -1664,7 +1664,7 @@ void aerofgt_state::pspikesc(machine_config &config)
//VSYSTEM_GGA(config, "gga", 0);
VSYSTEM_SPR2(config, m_spr_old[0], 0);
- m_spr_old[0]->set_tile_indirect_cb(FUNC(aerofgt_state::aerofgt_old_tile_callback), this);
+ m_spr_old[0]->set_tile_indirect_cb(FUNC(aerofgt_state::aerofgt_old_tile_callback));
m_spr_old[0]->set_gfx_region(1);
m_spr_old[0]->set_gfxdecode_tag(m_gfxdecode);
@@ -1706,12 +1706,12 @@ void aerofgt_state::karatblz(machine_config &config)
VSYSTEM_GGA(config, "gga", XTAL(14'318'181) / 2); // divider not verified
VSYSTEM_SPR2(config, m_spr_old[0], 0);
- m_spr_old[0]->set_tile_indirect_cb(FUNC(aerofgt_state::aerofgt_old_tile_callback), this);
+ m_spr_old[0]->set_tile_indirect_cb(FUNC(aerofgt_state::aerofgt_old_tile_callback));
m_spr_old[0]->set_gfx_region(2);
m_spr_old[0]->set_gfxdecode_tag(m_gfxdecode);
VSYSTEM_SPR2(config, m_spr_old[1], 0);
- m_spr_old[1]->set_tile_indirect_cb(FUNC(aerofgt_state::aerofgt_ol2_tile_callback), this);
+ m_spr_old[1]->set_tile_indirect_cb(FUNC(aerofgt_state::aerofgt_ol2_tile_callback));
m_spr_old[1]->set_gfx_region(3);
m_spr_old[1]->set_gfxdecode_tag(m_gfxdecode);
@@ -1760,12 +1760,12 @@ void aerofgt_state::karatblzbl(machine_config &config)
PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 1024);
VSYSTEM_SPR2(config, m_spr_old[0], 0);
- m_spr_old[0]->set_tile_indirect_cb(FUNC(aerofgt_state::aerofgt_old_tile_callback), this);
+ m_spr_old[0]->set_tile_indirect_cb(FUNC(aerofgt_state::aerofgt_old_tile_callback));
m_spr_old[0]->set_gfx_region(2);
m_spr_old[0]->set_gfxdecode_tag(m_gfxdecode);
VSYSTEM_SPR2(config, m_spr_old[1], 0);
- m_spr_old[1]->set_tile_indirect_cb(FUNC(aerofgt_state::aerofgt_ol2_tile_callback), this);
+ m_spr_old[1]->set_tile_indirect_cb(FUNC(aerofgt_state::aerofgt_ol2_tile_callback));
m_spr_old[1]->set_gfx_region(3);
m_spr_old[1]->set_gfxdecode_tag(m_gfxdecode);
@@ -1822,7 +1822,7 @@ void aerofgt_state::spinlbrk(machine_config &config)
m_spr_old[0]->set_gfxdecode_tag(m_gfxdecode);
VSYSTEM_SPR2(config, m_spr_old[1], 0);
- m_spr_old[1]->set_tile_indirect_cb(FUNC(aerofgt_state::spinbrk_tile_callback), this); // rom lookup
+ m_spr_old[1]->set_tile_indirect_cb(FUNC(aerofgt_state::spinbrk_tile_callback)); // rom lookup
m_spr_old[1]->set_pritype(1);
m_spr_old[1]->set_gfx_region(3);
m_spr_old[1]->set_gfxdecode_tag(m_gfxdecode);
@@ -1874,12 +1874,12 @@ void aerofgt_state::turbofrc(machine_config &config)
VSYSTEM_GGA(config, "gga", XTAL(14'318'181) / 2); // divider not verified
VSYSTEM_SPR2(config, m_spr_old[0], 0);
- m_spr_old[0]->set_tile_indirect_cb(FUNC(aerofgt_state::aerofgt_old_tile_callback), this);
+ m_spr_old[0]->set_tile_indirect_cb(FUNC(aerofgt_state::aerofgt_old_tile_callback));
m_spr_old[0]->set_gfx_region(2);
m_spr_old[0]->set_gfxdecode_tag(m_gfxdecode);
VSYSTEM_SPR2(config, m_spr_old[1], 0);
- m_spr_old[1]->set_tile_indirect_cb(FUNC(aerofgt_state::aerofgt_ol2_tile_callback), this);
+ m_spr_old[1]->set_tile_indirect_cb(FUNC(aerofgt_state::aerofgt_ol2_tile_callback));
m_spr_old[1]->set_gfx_region(3);
m_spr_old[1]->set_gfxdecode_tag(m_gfxdecode);
@@ -1930,12 +1930,12 @@ void aerofgt_state::aerofgtb(machine_config &config)
VSYSTEM_GGA(config, "gga", XTAL(14'318'181) / 2); // divider not verified
VSYSTEM_SPR2(config, m_spr_old[0], 0);
- m_spr_old[0]->set_tile_indirect_cb(FUNC(aerofgt_state::aerofgt_old_tile_callback), this);
+ m_spr_old[0]->set_tile_indirect_cb(FUNC(aerofgt_state::aerofgt_old_tile_callback));
m_spr_old[0]->set_gfx_region(2);
m_spr_old[0]->set_gfxdecode_tag(m_gfxdecode);
VSYSTEM_SPR2(config, m_spr_old[1], 0);
- m_spr_old[1]->set_tile_indirect_cb(FUNC(aerofgt_state::aerofgt_ol2_tile_callback), this);
+ m_spr_old[1]->set_tile_indirect_cb(FUNC(aerofgt_state::aerofgt_ol2_tile_callback));
m_spr_old[1]->set_gfx_region(3);
m_spr_old[1]->set_gfxdecode_tag(m_gfxdecode);
@@ -1996,7 +1996,7 @@ void aerofgt_state::aerofgt(machine_config &config)
PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 1024);
VSYSTEM_SPR(config, m_spr, 0);
- m_spr->set_tile_indirect_cb(FUNC(aerofgt_state::aerofgt_tile_callback), this);
+ m_spr->set_tile_indirect_cb(FUNC(aerofgt_state::aerofgt_tile_callback));
m_spr->set_gfx_region(2);
m_spr->set_gfxdecode_tag(m_gfxdecode);
@@ -2117,7 +2117,7 @@ void aerofgt_state::wbbc97(machine_config &config)
//VSYSTEM_GGA(config, "gga", 0);
VSYSTEM_SPR2(config, m_spr_old[0], 0);
- m_spr_old[0]->set_tile_indirect_cb(FUNC(aerofgt_state::aerofgt_old_tile_callback), this);
+ m_spr_old[0]->set_tile_indirect_cb(FUNC(aerofgt_state::aerofgt_old_tile_callback));
m_spr_old[0]->set_gfx_region(1);
m_spr_old[0]->set_gfxdecode_tag(m_gfxdecode);
diff --git a/src/mame/drivers/aim65.cpp b/src/mame/drivers/aim65.cpp
index 32214b2b1d5..05aa6dca50b 100644
--- a/src/mame/drivers/aim65.cpp
+++ b/src/mame/drivers/aim65.cpp
@@ -277,15 +277,15 @@ void aim65_state::aim65(machine_config &config)
//m_rs232->rxd_handler().set(m_via0, FUNC(via6522_device::write_pb6)); // function disabled in 6522via.cpp
m_rs232->set_option_device_input_defaults("terminal", DEVICE_INPUT_DEFAULTS_NAME(serial_term));
- GENERIC_SOCKET(config, "z26", generic_plain_slot, "aim65_z26_cart", "z26").set_device_load(FUNC(aim65_state::z26_load), this);
- GENERIC_SOCKET(config, "z25", generic_plain_slot, "aim65_z25_cart", "z25").set_device_load(FUNC(aim65_state::z25_load), this);
- GENERIC_SOCKET(config, "z24", generic_plain_slot, "aim65_z24_cart", "z24").set_device_load(FUNC(aim65_state::z24_load), this);
+ GENERIC_SOCKET(config, "z26", generic_plain_slot, "aim65_z26_cart", "z26").set_device_load(FUNC(aim65_state::z26_load));
+ GENERIC_SOCKET(config, "z25", generic_plain_slot, "aim65_z25_cart", "z25").set_device_load(FUNC(aim65_state::z25_load));
+ GENERIC_SOCKET(config, "z24", generic_plain_slot, "aim65_z24_cart", "z24").set_device_load(FUNC(aim65_state::z24_load));
/* PROM/ROM module sockets */
- GENERIC_SOCKET(config, "z12", generic_plain_slot, "rm65_z12_cart", "z12").set_device_load(FUNC(aim65_state::z12_load), this);
- GENERIC_SOCKET(config, "z13", generic_plain_slot, "rm65_z13_cart", "z13").set_device_load(FUNC(aim65_state::z13_load), this);
- GENERIC_SOCKET(config, "z14", generic_plain_slot, "rm65_z14_cart", "z14").set_device_load(FUNC(aim65_state::z14_load), this);
- GENERIC_SOCKET(config, "z15", generic_plain_slot, "rm65_z15_cart", "z15").set_device_load(FUNC(aim65_state::z15_load), this);
+ GENERIC_SOCKET(config, "z12", generic_plain_slot, "rm65_z12_cart", "z12").set_device_load(FUNC(aim65_state::z12_load));
+ GENERIC_SOCKET(config, "z13", generic_plain_slot, "rm65_z13_cart", "z13").set_device_load(FUNC(aim65_state::z13_load));
+ GENERIC_SOCKET(config, "z14", generic_plain_slot, "rm65_z14_cart", "z14").set_device_load(FUNC(aim65_state::z14_load));
+ GENERIC_SOCKET(config, "z15", generic_plain_slot, "rm65_z15_cart", "z15").set_device_load(FUNC(aim65_state::z15_load));
/* internal ram */
RAM(config, RAM_TAG).set_default_size("4K").set_extra_options("1K,2K,3K");
diff --git a/src/mame/drivers/airbustr.cpp b/src/mame/drivers/airbustr.cpp
index 563a55f7a9e..448908773d0 100644
--- a/src/mame/drivers/airbustr.cpp
+++ b/src/mame/drivers/airbustr.cpp
@@ -699,7 +699,7 @@ ROM_END
void airbustr_state::init_airbustr()
{
- m_master->space(AS_PROGRAM).install_read_handler(0xe000, 0xefff, read8_delegate(FUNC(airbustr_state::devram_r),this)); // protection device lives here
+ m_master->space(AS_PROGRAM).install_read_handler(0xe000, 0xefff, read8_delegate(*this, FUNC(airbustr_state::devram_r))); // protection device lives here
}
diff --git a/src/mame/drivers/ajax.cpp b/src/mame/drivers/ajax.cpp
index c92f94623dc..2d810660aab 100644
--- a/src/mame/drivers/ajax.cpp
+++ b/src/mame/drivers/ajax.cpp
@@ -200,19 +200,19 @@ void ajax_state::ajax(machine_config &config)
K052109(config, m_k052109, 0);
m_k052109->set_palette(m_palette);
m_k052109->set_screen("screen");
- m_k052109->set_tile_callback(FUNC(ajax_state::tile_callback), this);
+ m_k052109->set_tile_callback(FUNC(ajax_state::tile_callback));
m_k052109->irq_handler().set_inputline(m_subcpu, M6809_IRQ_LINE);
K051960(config, m_k051960, 0);
m_k051960->set_palette("palette");
m_k051960->set_screen("screen");
- m_k051960->set_sprite_callback(FUNC(ajax_state::sprite_callback), this);
+ m_k051960->set_sprite_callback(FUNC(ajax_state::sprite_callback));
m_k051960->irq_handler().set_inputline(m_maincpu, KONAMI_IRQ_LINE);
K051316(config, m_k051316, 0);
m_k051316->set_palette(m_palette);
m_k051316->set_bpp(7);
- m_k051316->set_zoom_callback(FUNC(ajax_state::zoom_callback), this);
+ m_k051316->set_zoom_callback(FUNC(ajax_state::zoom_callback));
/* sound hardware */
SPEAKER(config, "lspeaker").front_left();
diff --git a/src/mame/drivers/akkaarrh.cpp b/src/mame/drivers/akkaarrh.cpp
index 49240528d8d..9a7f355f2ff 100644
--- a/src/mame/drivers/akkaarrh.cpp
+++ b/src/mame/drivers/akkaarrh.cpp
@@ -90,10 +90,10 @@ static constexpr XTAL MASTER_CLOCK = 12.096_MHz_XTAL;
void akkaarrh_state::video_start()
{
- m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(akkaarrh_state::get_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 32, 30);
- m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(akkaarrh_state::get_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 32, 30);
- m_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(akkaarrh_state::get_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 32, 30);
- m_tilemap[3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(akkaarrh_state::get_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 32, 30);
+ m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(akkaarrh_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 30);
+ m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(akkaarrh_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 30);
+ m_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(akkaarrh_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 30);
+ m_tilemap[3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(akkaarrh_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 30);
m_tilemap[0]->set_flip(0);
m_tilemap[1]->set_flip(TILEMAP_FLIPX);
diff --git a/src/mame/drivers/albazg.cpp b/src/mame/drivers/albazg.cpp
index fe708a49954..dccb8e7a287 100644
--- a/src/mame/drivers/albazg.cpp
+++ b/src/mame/drivers/albazg.cpp
@@ -112,7 +112,7 @@ TILE_GET_INFO_MEMBER(albazg_state::y_get_bg_tile_info)
void albazg_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(albazg_state::y_get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(albazg_state::y_get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
uint32_t albazg_state::screen_update_yumefuda(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
diff --git a/src/mame/drivers/alcat7100.cpp b/src/mame/drivers/alcat7100.cpp
index 3a3b1dec0fd..93e4ff81941 100644
--- a/src/mame/drivers/alcat7100.cpp
+++ b/src/mame/drivers/alcat7100.cpp
@@ -100,7 +100,7 @@ void alcat7100_state::alcat7100(machine_config &config)
crtc.set_screen("screen");
crtc.set_char_width(12);
crtc.set_show_border_area(false);
- crtc.set_update_row_callback(FUNC(alcat7100_state::update_row), this);
+ crtc.set_update_row_callback(FUNC(alcat7100_state::update_row));
AY31015(config, "uart"); // AMI S1602P
}
diff --git a/src/mame/drivers/alesis.cpp b/src/mame/drivers/alesis.cpp
index 5c73c5a4343..119803cb1cd 100644
--- a/src/mame/drivers/alesis.cpp
+++ b/src/mame/drivers/alesis.cpp
@@ -465,7 +465,7 @@ void alesis_state::sr16(machine_config &config)
config.set_default_layout(layout_sr16);
m_lcdc->set_lcd_size(2, 8);
- m_lcdc->set_pixel_update_cb(FUNC(alesis_state::sr16_pixel_update), this);
+ m_lcdc->set_pixel_update_cb(FUNC(alesis_state::sr16_pixel_update));
}
void alesis_state::mmt8(machine_config &config)
diff --git a/src/mame/drivers/aliens.cpp b/src/mame/drivers/aliens.cpp
index 33fbe27facb..c0712544c42 100644
--- a/src/mame/drivers/aliens.cpp
+++ b/src/mame/drivers/aliens.cpp
@@ -221,12 +221,12 @@ void aliens_state::aliens(machine_config &config)
K052109(config, m_k052109, 0);
m_k052109->set_palette("palette");
m_k052109->set_screen(nullptr);
- m_k052109->set_tile_callback(FUNC(aliens_state::tile_callback), this);
+ m_k052109->set_tile_callback(FUNC(aliens_state::tile_callback));
K051960(config, m_k051960, 0);
m_k051960->set_palette("palette");
m_k051960->set_screen("screen");
- m_k051960->set_sprite_callback(FUNC(aliens_state::sprite_callback), this);
+ m_k051960->set_sprite_callback(FUNC(aliens_state::sprite_callback));
m_k051960->irq_handler().set_inputline(m_maincpu, KONAMI_IRQ_LINE);
/* sound hardware */
diff --git a/src/mame/drivers/alpha68k.cpp b/src/mame/drivers/alpha68k.cpp
index 37b4d28a203..96a37710280 100644
--- a/src/mame/drivers/alpha68k.cpp
+++ b/src/mame/drivers/alpha68k.cpp
@@ -522,7 +522,7 @@ void alpha68k_III_state::alpha68k_V_map(address_map &map)
map(0x080000, 0x080001).r(FUNC(alpha68k_III_state::control_1_r)); /* Joysticks */
map(0x080000, 0x080000).w(FUNC(alpha68k_III_state::video_bank_w));
map(0x080001, 0x080001).w(m_soundlatch, FUNC(generic_latch_8_device::write));
- map(0x0c0000, 0x0c0001).lr16("control_2_V_r", [this]() -> u16 { return m_in[3]->read(); }); /* Dip 2 */
+ map(0x0c0000, 0x0c0001).lr16(NAME([this] () -> u16 { return m_in[3]->read(); })); /* Dip 2 */
map(0x0c0001, 0x0c0001).select(0x78).w(FUNC(alpha68k_III_state::outlatch_w));
map(0x0d8000, 0x0d8001).nopr(); /* IRQ ack? */
map(0x0e0000, 0x0e0001).nopr(); /* IRQ ack? */
@@ -1275,7 +1275,7 @@ void alpha68k_II_state::video_config(machine_config &config, u16 num_pens)
SNK68_SPR(config, m_sprites, 0);
m_sprites->set_gfxdecode_tag(m_gfxdecode);
- m_sprites->set_tile_indirect_cb(FUNC(alpha68k_II_state::tile_callback), this);
+ m_sprites->set_tile_indirect_cb(FUNC(alpha68k_II_state::tile_callback));
m_sprites->set_xpos_shift(15);
m_sprites->set_color_entry_mask((num_pens / 16) - 1);
@@ -1357,13 +1357,13 @@ void alpha68k_V_state::alpha68k_V(machine_config &config)
void skyadventure_state::skyadventure(machine_config &config)
{
alpha68k_V_state::alpha68k_V(config);
- m_sprites->set_tile_indirect_cb(FUNC(skyadventure_state::tile_callback_noflipx), this);
+ m_sprites->set_tile_indirect_cb(FUNC(skyadventure_state::tile_callback_noflipx));
}
void gangwars_state::gangwars(machine_config &config)
{
alpha68k_V_state::alpha68k_V(config);
- m_sprites->set_tile_indirect_cb(FUNC(gangwars_state::tile_callback_noflipy), this);
+ m_sprites->set_tile_indirect_cb(FUNC(gangwars_state::tile_callback_noflipy));
}
/******************************************************************************/
diff --git a/src/mame/drivers/alpha68k_n.cpp b/src/mame/drivers/alpha68k_n.cpp
index c4602b10e7d..73aa3d7f0a9 100644
--- a/src/mame/drivers/alpha68k_n.cpp
+++ b/src/mame/drivers/alpha68k_n.cpp
@@ -310,7 +310,7 @@ void sstingray_state::main_map(address_map &map)
map(0x060000, 0x060001).ram().share("videoram"); // MSB: watchdog, LSB: BGC
map(0x080000, 0x0801ff).rw(FUNC(sstingray_state::alpha8511_command_r), FUNC(sstingray_state::alpha8511_command_w)).umask16(0x00ff);
map(0x0c0000, 0x0c0001).portr("IN0");
- map(0x0e0000, 0x0e0000).lr8("kyros_dip_r", [this]() -> u8 { return m_in[1]->read(); }).w(m_soundlatch, FUNC(generic_latch_8_device::write));
+ map(0x0e0000, 0x0e0000).lr8(NAME([this] () -> u8 { return m_in[1]->read(); })).w(m_soundlatch, FUNC(generic_latch_8_device::write));
}
void alpha68k_N_state::main_map(address_map &map)
@@ -321,7 +321,7 @@ void alpha68k_N_state::main_map(address_map &map)
map(0x060000, 0x060001).ram().share("videoram"); // MSB: watchdog, LSB: BGC
map(0x080000, 0x0801ff).rw(FUNC(kyros_state::kyros_alpha_trigger_r), FUNC(kyros_state::alpha_microcontroller_w));
map(0x0c0000, 0x0c0001).portr("IN0");
- map(0x0e0000, 0x0e0000).lr8("kyros_dip_r", [this]() -> u8 { return m_in[1]->read(); }).w(m_soundlatch, FUNC(generic_latch_8_device::write));
+ map(0x0e0000, 0x0e0000).lr8(NAME([this] () -> u8 { return m_in[1]->read(); })).w(m_soundlatch, FUNC(generic_latch_8_device::write));
}
void jongbou_state::main_map(address_map &map)
diff --git a/src/mame/drivers/alphasma.cpp b/src/mame/drivers/alphasma.cpp
index 2df7f75c6ad..a78c85939af 100644
--- a/src/mame/drivers/alphasma.cpp
+++ b/src/mame/drivers/alphasma.cpp
@@ -211,7 +211,7 @@ WRITE8_MEMBER(asma2k_state::port_a_w)
if (data & 0x40)
space.install_readwrite_bank(0x0000, 0x7fff, "rambank");
else
- space.install_readwrite_handler(0x0000, 0x7fff, read8_delegate(FUNC(asma2k_state::io_r), this), write8_delegate(FUNC(asma2k_state::io_w), this));
+ space.install_readwrite_handler(0x0000, 0x7fff, read8_delegate(*this, FUNC(asma2k_state::io_r)), write8_delegate(*this, FUNC(asma2k_state::io_w)));
}
m_rambank->set_entry(((data>>4) & 0x03));
diff --git a/src/mame/drivers/alphatro.cpp b/src/mame/drivers/alphatro.cpp
index bedb42e9593..a7e71bccd00 100644
--- a/src/mame/drivers/alphatro.cpp
+++ b/src/mame/drivers/alphatro.cpp
@@ -769,7 +769,7 @@ void alphatro_state::alphatro(machine_config &config)
m_crtc->set_screen("screen");
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8);
- m_crtc->set_update_row_callback(FUNC(alphatro_state::crtc_update_row), this);
+ m_crtc->set_update_row_callback(FUNC(alphatro_state::crtc_update_row));
I8251(config, m_usart, 16_MHz_XTAL / 4);
m_usart->txd_handler().set([this] (bool state) { m_cassbit = state; });
@@ -787,7 +787,7 @@ void alphatro_state::alphatro(machine_config &config)
RAM(config, "ram").set_default_size("64K");
/* cartridge */
- GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "alphatro_cart", "bin").set_device_load(FUNC(alphatro_state::cart_load), this);
+ GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "alphatro_cart", "bin").set_device_load(FUNC(alphatro_state::cart_load));
SOFTWARE_LIST(config, "cart_list").set_original("alphatro_cart");
/* 0000 banking */
diff --git a/src/mame/drivers/altair.cpp b/src/mame/drivers/altair.cpp
index 7516502342d..701bdb0b792 100644
--- a/src/mame/drivers/altair.cpp
+++ b/src/mame/drivers/altair.cpp
@@ -119,7 +119,7 @@ void altair_state::altair(machine_config &config)
uart_clock.signal_handler().append("acia", FUNC(acia6850_device::write_rxc));
/* quickload */
- QUICKLOAD(config, "quickload", "bin").set_load_callback(FUNC(altair_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "bin").set_load_callback(FUNC(altair_state::quickload_cb));
}
/* ROM definition */
diff --git a/src/mame/drivers/altos5.cpp b/src/mame/drivers/altos5.cpp
index 88224c6a38c..85dbc36eeba 100644
--- a/src/mame/drivers/altos5.cpp
+++ b/src/mame/drivers/altos5.cpp
@@ -475,7 +475,7 @@ void altos5_state::altos5(machine_config &config)
FLOPPY_CONNECTOR(config, "fdc:1", altos5_floppies, "525qd", floppy_image_device::default_floppy_formats).enable_sound(true);
SOFTWARE_LIST(config, "flop_list").set_original("altos5");
- QUICKLOAD(config, "quickload", "com,cpm", attotime::from_seconds(3)).set_load_callback(FUNC(altos5_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "com,cpm", attotime::from_seconds(3)).set_load_callback(FUNC(altos5_state::quickload_cb));
}
diff --git a/src/mame/drivers/ambush.cpp b/src/mame/drivers/ambush.cpp
index bb6b400b7a2..9f9f02fc119 100644
--- a/src/mame/drivers/ambush.cpp
+++ b/src/mame/drivers/ambush.cpp
@@ -681,7 +681,7 @@ MACHINE_START_MEMBER( ambush_state, ambush )
register_save_states();
// create character tilemap
- m_char_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ambush_state::ambush_char_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_char_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ambush_state::ambush_char_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_char_tilemap->set_transparent_pen(0);
m_char_tilemap->set_scroll_cols(32);
}
@@ -691,7 +691,7 @@ MACHINE_START_MEMBER( ambush_state, mariobl )
register_save_states();
// create character tilemap
- m_char_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ambush_state::mariobl_char_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_char_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ambush_state::mariobl_char_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_char_tilemap->set_transparent_pen(0);
m_gfxdecode->gfx(0)->set_granularity(8);
}
@@ -701,7 +701,7 @@ MACHINE_START_MEMBER( ambush_state, dkong3abl )
register_save_states();
// create character tilemap
- m_char_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ambush_state::dkong3abl_char_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_char_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ambush_state::dkong3abl_char_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_char_tilemap->set_transparent_pen(0);
}
diff --git a/src/mame/drivers/amstrad.cpp b/src/mame/drivers/amstrad.cpp
index d66c9a3b7f9..94f51d99d95 100644
--- a/src/mame/drivers/amstrad.cpp
+++ b/src/mame/drivers/amstrad.cpp
@@ -810,7 +810,7 @@ void amstrad_state::cpcplus_cartslot(machine_config &config)
{
generic_cartslot_device &cartslot(GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "gx4000_cart", "bin,cpr"));
cartslot.set_must_be_loaded(true);
- cartslot.set_device_load(FUNC(amstrad_state::amstrad_plus_cartridge), this);
+ cartslot.set_device_load(FUNC(amstrad_state::amstrad_plus_cartridge));
SOFTWARE_LIST(config, "cart_list").set_original("gx4000");
}
@@ -957,7 +957,7 @@ void amstrad_state::amstrad_base(machine_config &config)
m_centronics->busy_handler().set(FUNC(amstrad_state::write_centronics_busy));
/* snapshot */
- SNAPSHOT(config, "snapshot", "sna").set_load_callback(FUNC(amstrad_state::snapshot_cb), this);
+ SNAPSHOT(config, "snapshot", "sna").set_load_callback(FUNC(amstrad_state::snapshot_cb));
CASSETTE(config, m_cassette);
m_cassette->set_formats(cdt_cassette_formats);
@@ -1082,7 +1082,7 @@ void amstrad_state::cpcplus(machine_config &config)
m_centronics->busy_handler().set(FUNC(amstrad_state::write_centronics_busy));
/* snapshot */
- SNAPSHOT(config, "snapshot", "sna").set_load_callback(FUNC(amstrad_state::snapshot_cb), this);
+ SNAPSHOT(config, "snapshot", "sna").set_load_callback(FUNC(amstrad_state::snapshot_cb));
CASSETTE(config, m_cassette);
m_cassette->set_formats(cdt_cassette_formats);
diff --git a/src/mame/drivers/amusco.cpp b/src/mame/drivers/amusco.cpp
index b9e367d3a37..8579713ff6d 100644
--- a/src/mame/drivers/amusco.cpp
+++ b/src/mame/drivers/amusco.cpp
@@ -191,7 +191,7 @@ TILE_GET_INFO_MEMBER(amusco_state::get_bg_tile_info)
void amusco_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(amusco_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 10, 74, 24);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(amusco_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 10, 74, 24);
m_blink_state = false;
m_videoram = std::make_unique<uint8_t []>(videoram_size);
@@ -589,10 +589,9 @@ void amusco_state::amusco(machine_config &config)
m_crtc->set_screen(m_screen);
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8);
- m_crtc->set_on_update_addr_change_callback(FUNC(amusco_state::crtc_addr), this);
+ m_crtc->set_on_update_addr_change_callback(FUNC(amusco_state::crtc_addr));
m_crtc->out_de_callback().set(m_pic, FUNC(pic8259_device::ir1_w)); // IRQ1 sets 0x918 bit 3
- m_crtc->set_update_row_callback(FUNC(amusco_state::update_row), this);
-
+ m_crtc->set_update_row_callback(FUNC(amusco_state::update_row));
/* sound hardware */
SPEAKER(config, "mono").front_center();
diff --git a/src/mame/drivers/amust.cpp b/src/mame/drivers/amust.cpp
index 58cd91fd1ee..819708e8b3c 100644
--- a/src/mame/drivers/amust.cpp
+++ b/src/mame/drivers/amust.cpp
@@ -459,7 +459,7 @@ void amust_state::amust(machine_config &config)
crtc.set_screen("screen");
crtc.set_show_border_area(false);
crtc.set_char_width(8);
- crtc.set_update_row_callback(FUNC(amust_state::crtc_update_row), this);
+ crtc.set_update_row_callback(FUNC(amust_state::crtc_update_row));
crtc.out_hsync_callback().set(FUNC(amust_state::hsync_w));
crtc.out_vsync_callback().set(FUNC(amust_state::vsync_w));
diff --git a/src/mame/drivers/apf.cpp b/src/mame/drivers/apf.cpp
index 880d9ec19ce..7e76e51b7c3 100644
--- a/src/mame/drivers/apf.cpp
+++ b/src/mame/drivers/apf.cpp
@@ -252,11 +252,11 @@ void apf_state::machine_start()
switch (m_cart->get_type())
{
case APF_BASIC:
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x6800, 0x7fff, read8_delegate(FUNC(apf_cart_slot_device::extra_rom),(apf_cart_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x6800, 0x7fff, read8_delegate(*m_cart, FUNC(apf_cart_slot_device::extra_rom)));
break;
case APF_SPACEDST:
m_maincpu->space(AS_PROGRAM).unmap_readwrite(0x9800, 0x9fff);
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x9800, 0x9bff, read8_delegate(FUNC(apf_cart_slot_device::read_ram),(apf_cart_slot_device*)m_cart), write8_delegate(FUNC(apf_cart_slot_device::write_ram),(apf_cart_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x9800, 0x9bff, read8_delegate(*m_cart, FUNC(apf_cart_slot_device::read_ram)), write8_delegate(*m_cart, FUNC(apf_cart_slot_device::write_ram)));
m_has_cart_ram = true;
break;
}
diff --git a/src/mame/drivers/apollo.cpp b/src/mame/drivers/apollo.cpp
index 71f5ca64697..f0e9366b0c6 100644
--- a/src/mame/drivers/apollo.cpp
+++ b/src/mame/drivers/apollo.cpp
@@ -444,7 +444,7 @@ WRITE32_MEMBER(apollo_state::ram_with_parity_w){
// no more than 192 read/write handlers may be used
// see table_assign_handler in memory.c
if (parity_error_handler_install_counter < 40) {
- m_maincpu->space(AS_PROGRAM).install_read_handler(ram_base_address+offset*4, ram_base_address+offset*4+3, read32_delegate(FUNC(apollo_state::ram_with_parity_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(ram_base_address+offset*4, ram_base_address+offset*4+3, read32_delegate(*this, FUNC(apollo_state::ram_with_parity_r)));
parity_error_handler_is_installed = 1;
parity_error_handler_install_counter++;
}
@@ -917,7 +917,7 @@ void apollo_state::machine_reset()
}
#if 0
- m_maincpu->set_instruction_hook(read32_delegate(FUNC(apollo_state::apollo_instruction_hook),this));
+ m_maincpu->set_instruction_hook(read32_delegate(*this, FUNC(apollo_state::apollo_instruction_hook)));
#endif
}
@@ -955,8 +955,8 @@ void apollo_state::machine_start(){
MACHINE_START_CALL_MEMBER(apollo);
// install nop handlers for unmapped ISA bus addresses
- m_isa->install16_device((ATBUS_IO_BASE - 0x40000) >> 7, (ATBUS_IO_END - 0x40000) >> 7, read16_delegate(FUNC(apollo_state::apollo_atbus_unmap_io_r), this), write16_delegate(FUNC(apollo_state::apollo_atbus_unmap_io_w), this));
- m_isa->install_memory(0, ATBUS_MEMORY_END, read8_delegate(FUNC(apollo_state::apollo_atbus_unmap_r), this), write8_delegate(FUNC(apollo_state::apollo_atbus_unmap_w), this));
+ m_isa->install16_device((ATBUS_IO_BASE - 0x40000) >> 7, (ATBUS_IO_END - 0x40000) >> 7, read16_delegate(*this, FUNC(apollo_state::apollo_atbus_unmap_io_r)), write16_delegate(*this, FUNC(apollo_state::apollo_atbus_unmap_io_w)));
+ m_isa->install_memory(0, ATBUS_MEMORY_END, read8_delegate(*this, FUNC(apollo_state::apollo_atbus_unmap_r)), write8_delegate(*this, FUNC(apollo_state::apollo_atbus_unmap_w)));
}
/***************************************************************************
@@ -968,7 +968,7 @@ void apollo_state::init_dn3500()
// MLOG1(("driver_init_dn3500"));
/* hook the RESET line, which resets a slew of other components */
- m_maincpu->set_reset_callback(write_line_delegate(FUNC(apollo_state::apollo_reset_instr_callback),this));
+ m_maincpu->set_reset_callback(FUNC(apollo_state::apollo_reset_instr_callback));
ram_base_address = DN3500_RAM_BASE;
ram_end_address = DN3500_RAM_END;
diff --git a/src/mame/drivers/apple1.cpp b/src/mame/drivers/apple1.cpp
index b2f5b5e6c54..26fc47f880a 100644
--- a/src/mame/drivers/apple1.cpp
+++ b/src/mame/drivers/apple1.cpp
@@ -615,7 +615,7 @@ void apple1_state::apple1(machine_config &config)
A1BUS(config, A1_BUS_TAG, 0).set_space(m_maincpu, AS_PROGRAM);
A1BUS_SLOT(config, "exp", 0, A1_BUS_TAG, apple1_cards, "cassette");
- SNAPSHOT(config, "snapshot", "snp").set_load_callback(FUNC(apple1_state::snapshot_cb), this);
+ SNAPSHOT(config, "snapshot", "snp").set_load_callback(FUNC(apple1_state::snapshot_cb));
SOFTWARE_LIST(config, "cass_list").set_original("apple1");
diff --git a/src/mame/drivers/apple2.cpp b/src/mame/drivers/apple2.cpp
index 17235a8ad4f..f24eda24da6 100644
--- a/src/mame/drivers/apple2.cpp
+++ b/src/mame/drivers/apple2.cpp
@@ -1324,8 +1324,7 @@ void apple2_state::apple2_common(machine_config &config)
m_ay3600->ako().set(FUNC(apple2_state::ay3600_ako_w));
/* repeat timer. 15 Hz from page 90 of "The Apple II Circuit Description */
- timer_device &timer(TIMER(config, "repttmr", 0));
- timer.configure_periodic(timer_device::expired_delegate(FUNC(apple2_state::ay3600_repeat), this), attotime::from_hz(15));
+ TIMER(config, "repttmr", 0).configure_periodic(FUNC(apple2_state::ay3600_repeat), attotime::from_hz(15));
/* slot devices */
A2BUS(config, m_a2bus, 0);
diff --git a/src/mame/drivers/apple2e.cpp b/src/mame/drivers/apple2e.cpp
index 31240a2fdb4..6ba64a2bb6e 100644
--- a/src/mame/drivers/apple2e.cpp
+++ b/src/mame/drivers/apple2e.cpp
@@ -4300,7 +4300,7 @@ void apple2e_state::apple2e(machine_config &config)
/* repeat timer. 15 Hz from page 7-15 of "Understanding the Apple IIe" */
timer_device &timer(TIMER(config, "repttmr", 0));
- timer.configure_periodic(timer_device::expired_delegate(FUNC(apple2e_state::ay3600_repeat), this), attotime::from_hz(15));
+ timer.configure_periodic(FUNC(apple2e_state::ay3600_repeat), attotime::from_hz(15));
/* slot devices */
A2BUS(config, m_a2bus, 0);
diff --git a/src/mame/drivers/applix.cpp b/src/mame/drivers/applix.cpp
index 8140bb64cfb..b08da95aba5 100644
--- a/src/mame/drivers/applix.cpp
+++ b/src/mame/drivers/applix.cpp
@@ -896,8 +896,8 @@ void applix_state::applix(machine_config &config)
m_crtc->set_screen("screen");
m_crtc->set_show_border_area(true);
m_crtc->set_char_width(8);
- m_crtc->set_update_row_callback(FUNC(applix_state::crtc_update_row), this);
- m_crtc->set_begin_update_callback(FUNC(applix_state::crtc_update_border), this);
+ m_crtc->set_update_row_callback(FUNC(applix_state::crtc_update_row));
+ m_crtc->set_begin_update_callback(FUNC(applix_state::crtc_update_border));
m_crtc->out_vsync_callback().set(FUNC(applix_state::vsync_w));
VIA6522(config, m_via, 30_MHz_XTAL / 4 / 10); // VIA uses 68000 E clock
diff --git a/src/mame/drivers/apricot.cpp b/src/mame/drivers/apricot.cpp
index 417c0b6c739..4cb8b34d8d4 100644
--- a/src/mame/drivers/apricot.cpp
+++ b/src/mame/drivers/apricot.cpp
@@ -393,7 +393,7 @@ void apricot_state::apricot(machine_config &config)
m_crtc->set_screen("screen");
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(10);
- m_crtc->set_update_row_callback(FUNC(apricot_state::crtc_update_row), this);
+ m_crtc->set_update_row_callback(FUNC(apricot_state::crtc_update_row));
m_crtc->out_de_callback().set(FUNC(apricot_state::apricot_hd6845_de));
// sound hardware
diff --git a/src/mame/drivers/apricotp.cpp b/src/mame/drivers/apricotp.cpp
index 2def89372c1..0e449e4b777 100644
--- a/src/mame/drivers/apricotp.cpp
+++ b/src/mame/drivers/apricotp.cpp
@@ -603,7 +603,7 @@ void fp_state::fp(machine_config &config)
m_crtc->set_screen(SCREEN_CRT_TAG);
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8);
- m_crtc->set_update_row_callback(FUNC(fp_state::update_row), this);
+ m_crtc->set_update_row_callback(FUNC(fp_state::update_row));
// sound hardware
SPEAKER(config, "mono").front_center();
diff --git a/src/mame/drivers/aquarium.cpp b/src/mame/drivers/aquarium.cpp
index 0a18960d945..35f3981c31c 100644
--- a/src/mame/drivers/aquarium.cpp
+++ b/src/mame/drivers/aquarium.cpp
@@ -248,7 +248,7 @@ void aquarium_state::aquarium(machine_config &config)
EXCELLENT_SPRITE(config, m_sprgen, 0);
m_sprgen->set_palette(m_palette);
m_sprgen->set_color_base(0x300);
- m_sprgen->set_colpri_callback(FUNC(aquarium_state::aquarium_colpri_cb), this);
+ m_sprgen->set_colpri_callback(FUNC(aquarium_state::aquarium_colpri_cb));
/* sound hardware */
SPEAKER(config, "lspeaker").front_left();
diff --git a/src/mame/drivers/arcadia.cpp b/src/mame/drivers/arcadia.cpp
index a385743900a..aab239326d2 100644
--- a/src/mame/drivers/arcadia.cpp
+++ b/src/mame/drivers/arcadia.cpp
@@ -454,12 +454,12 @@ void arcadia_state::machine_start()
{
switch (m_cart->get_type())
{
- case ARCADIA_STD:
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x2000, 0x7fff, read8_delegate(FUNC(arcadia_cart_slot_device::extra_rom),(arcadia_cart_slot_device*)m_cart));
- break;
- case ARCADIA_GOLF:
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x4000, 0x4fff, read8_delegate(FUNC(arcadia_cart_slot_device::extra_rom),(arcadia_cart_slot_device*)m_cart));
- break;
+ case ARCADIA_STD:
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x2000, 0x7fff, read8_delegate(*m_cart, FUNC(arcadia_cart_slot_device::extra_rom)));
+ break;
+ case ARCADIA_GOLF:
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x4000, 0x4fff, read8_delegate(*m_cart, FUNC(arcadia_cart_slot_device::extra_rom)));
+ break;
}
}
}
diff --git a/src/mame/drivers/argo.cpp b/src/mame/drivers/argo.cpp
index 0e2e3e06f65..fba33d67549 100644
--- a/src/mame/drivers/argo.cpp
+++ b/src/mame/drivers/argo.cpp
@@ -495,7 +495,7 @@ void argo_state::argo(machine_config &config)
i8275_device &crtc(I8275(config, "crtc", XTAL(20'000'000) / 12)); // unknown frequency
crtc.set_character_width(6);
- crtc.set_display_callback(FUNC(argo_state::display_pixels), this);
+ crtc.set_display_callback(FUNC(argo_state::display_pixels));
crtc.drq_wr_callback().set(m_dma, FUNC(i8257_device::dreq2_w));
crtc.set_screen("screen");
}
diff --git a/src/mame/drivers/arkanoid.cpp b/src/mame/drivers/arkanoid.cpp
index 83bf0c53aa5..8652d093d82 100644
--- a/src/mame/drivers/arkanoid.cpp
+++ b/src/mame/drivers/arkanoid.cpp
@@ -2112,12 +2112,12 @@ ROM_END
/* Driver Initialization */
-void arkanoid_state::arkanoid_bootleg_init( )
+void arkanoid_state::arkanoid_bootleg_init()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xf000, 0xf000, read8_delegate(FUNC(arkanoid_state::arkanoid_bootleg_f000_r),this) );
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xf002, 0xf002, read8_delegate(FUNC(arkanoid_state::arkanoid_bootleg_f002_r),this) );
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xd018, 0xd018, write8_delegate(FUNC(arkanoid_state::arkanoid_bootleg_d018_w),this) );
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xd008, 0xd008, read8_delegate(FUNC(arkanoid_state::arkanoid_bootleg_d008_r),this) );
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xf000, 0xf000, read8_delegate(*this, FUNC(arkanoid_state::arkanoid_bootleg_f000_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xf002, 0xf002, read8_delegate(*this, FUNC(arkanoid_state::arkanoid_bootleg_f002_r)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xd018, 0xd018, write8_delegate(*this, FUNC(arkanoid_state::arkanoid_bootleg_d018_w)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xd008, 0xd008, read8_delegate(*this, FUNC(arkanoid_state::arkanoid_bootleg_d008_r)));
}
void arkanoid_state::init_arkangc()
@@ -2195,12 +2195,12 @@ void arkanoid_state::init_tetrsark()
ROM[x] = ROM[x] ^ 0x94;
}
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xd008, 0xd008, write8_delegate(FUNC(arkanoid_state::tetrsark_d008_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xd008, 0xd008, write8_delegate(*this, FUNC(arkanoid_state::tetrsark_d008_w)));
}
void arkanoid_state::init_tetrsark2()
{
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xd008, 0xd008, write8_delegate(FUNC(arkanoid_state::tetrsark_d008_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xd008, 0xd008, write8_delegate(*this, FUNC(arkanoid_state::tetrsark_d008_w)));
}
diff --git a/src/mame/drivers/armedf.cpp b/src/mame/drivers/armedf.cpp
index 6f266ad8704..7fe361f309f 100644
--- a/src/mame/drivers/armedf.cpp
+++ b/src/mame/drivers/armedf.cpp
@@ -2135,24 +2135,24 @@ void armedf_state::init_terraf()
{
m_scroll_type = 0;
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x07c000, 0x07c001, write16_delegate(FUNC(armedf_state::bootleg_io_w),this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x07c006, 0x07c007, write16_delegate(FUNC(armedf_state::terraf_fg_scrolly_w),this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x07c008, 0x07c009, write16_delegate(FUNC(armedf_state::terraf_fg_scrollx_w),this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x0c0000, 0x0c0001, write16_delegate(FUNC(armedf_state::terraf_fg_scroll_msb_arm_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x07c000, 0x07c001, write16_delegate(*this, FUNC(armedf_state::bootleg_io_w)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x07c006, 0x07c007, write16_delegate(*this, FUNC(armedf_state::terraf_fg_scrolly_w)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x07c008, 0x07c009, write16_delegate(*this, FUNC(armedf_state::terraf_fg_scrollx_w)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x0c0000, 0x0c0001, write16_delegate(*this, FUNC(armedf_state::terraf_fg_scroll_msb_arm_w)));
}
void armedf_state::init_terrafu()
{
m_scroll_type = 0;
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x07c000, 0x07c001, write16_delegate(FUNC(armedf_state::terraf_io_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x07c000, 0x07c001, write16_delegate(*this, FUNC(armedf_state::terraf_io_w)));
}
void armedf_state::init_terrafjb()
{
m_scroll_type = 0;
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x07c000, 0x07c001, write16_delegate(FUNC(armedf_state::terrafjb_io_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x07c000, 0x07c001, write16_delegate(*this, FUNC(armedf_state::terrafjb_io_w)));
}
void armedf_state::init_armedf()
@@ -2171,7 +2171,7 @@ void armedf_state::init_kozure()
ROM[0x04fc6/2] = 0x4e71;
m_scroll_type = 0;
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x07c000, 0x07c001, write16_delegate(FUNC(armedf_state::terraf_io_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x07c000, 0x07c001, write16_delegate(*this, FUNC(armedf_state::terraf_io_w)));
}
@@ -2206,7 +2206,7 @@ void armedf_state::init_legionjb()
void armedf_state::init_cclimbr2()
{
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x07c000, 0x07c001, write16_delegate(FUNC(armedf_state::terraf_io_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x07c000, 0x07c001, write16_delegate(*this, FUNC(armedf_state::terraf_io_w)));
m_scroll_type = 3;
}
diff --git a/src/mame/drivers/artmagic.cpp b/src/mame/drivers/artmagic.cpp
index 2e6d00a40d5..7ffc6833055 100644
--- a/src/mame/drivers/artmagic.cpp
+++ b/src/mame/drivers/artmagic.cpp
@@ -1157,7 +1157,7 @@ void artmagic_state::init_ultennis()
m_protection_handler = &artmagic_state::ultennis_protection;
/* additional (protection?) hack */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x300000, 0x300001, read16_delegate(FUNC(artmagic_state::ultennis_hack_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x300000, 0x300001, read16_delegate(*this, FUNC(artmagic_state::ultennis_hack_r)));
}
diff --git a/src/mame/drivers/asterix.cpp b/src/mame/drivers/asterix.cpp
index 94019c13c53..97cff42f8e8 100644
--- a/src/mame/drivers/asterix.cpp
+++ b/src/mame/drivers/asterix.cpp
@@ -284,14 +284,14 @@ void asterix_state::asterix(machine_config &config)
PALETTE(config, "palette").set_format(palette_device::xBGR_555, 2048).enable_shadows();
K056832(config, m_k056832, 0);
- m_k056832->set_tile_callback(FUNC(asterix_state::tile_callback), this);
+ m_k056832->set_tile_callback(FUNC(asterix_state::tile_callback));
m_k056832->set_config(K056832_BPP_4, 1, 1);
m_k056832->set_palette("palette");
K053244(config, m_k053244, 0);
m_k053244->set_palette("palette");
m_k053244->set_offsets(-3, -1);
- m_k053244->set_sprite_callback(FUNC(asterix_state::sprite_callback), this);
+ m_k053244->set_sprite_callback(FUNC(asterix_state::sprite_callback));
K053251(config, m_k053251, 0);
diff --git a/src/mame/drivers/asteroid.cpp b/src/mame/drivers/asteroid.cpp
index 1e18d8b4eba..2fb03b74e0d 100644
--- a/src/mame/drivers/asteroid.cpp
+++ b/src/mame/drivers/asteroid.cpp
@@ -1173,7 +1173,7 @@ void asteroid_state::init_asteroidb()
void asteroid_state::init_asterock()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x2000, 0x2007, read8_delegate(FUNC(asteroid_state::asterock_IN0_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x2000, 0x2007, read8_delegate(*this, FUNC(asteroid_state::asterock_IN0_r)));
}
diff --git a/src/mame/drivers/astrof.cpp b/src/mame/drivers/astrof.cpp
index 2556459885d..8862a3ff6d0 100644
--- a/src/mame/drivers/astrof.cpp
+++ b/src/mame/drivers/astrof.cpp
@@ -1341,8 +1341,8 @@ void astrof_state::init_abattle()
rom[i] = prom[rom[i]];
/* set up protection handlers */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xa003, 0xa003, read8_delegate(FUNC(astrof_state::shoot_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xa004, 0xa004, read8_delegate(FUNC(astrof_state::abattle_coin_prot_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xa003, 0xa003, read8_delegate(*this, FUNC(astrof_state::shoot_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xa004, 0xa004, read8_delegate(*this, FUNC(astrof_state::abattle_coin_prot_r)));
}
@@ -1353,8 +1353,8 @@ void astrof_state::init_afire()
rom[i] = ~rom[i];
/* set up protection handlers */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xa003, 0xa003, read8_delegate(FUNC(astrof_state::shoot_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xa004, 0xa004, read8_delegate(FUNC(astrof_state::afire_coin_prot_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xa003, 0xa003, read8_delegate(*this, FUNC(astrof_state::shoot_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xa004, 0xa004, read8_delegate(*this, FUNC(astrof_state::afire_coin_prot_r)));
}
@@ -1365,15 +1365,15 @@ void astrof_state::init_sstarbtl()
rom[i] = ~rom[i];
/* set up protection handlers */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xa003, 0xa003, read8_delegate(FUNC(astrof_state::shoot_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xa004, 0xa004, read8_delegate(FUNC(astrof_state::abattle_coin_prot_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xa003, 0xa003, read8_delegate(*this, FUNC(astrof_state::shoot_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xa004, 0xa004, read8_delegate(*this, FUNC(astrof_state::abattle_coin_prot_r)));
}
void astrof_state::init_acombat3()
{
/* set up protection handlers */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xa003, 0xa003, read8_delegate(FUNC(astrof_state::shoot_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xa004, 0xa004, read8_delegate(FUNC(astrof_state::abattle_coin_prot_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xa003, 0xa003, read8_delegate(*this, FUNC(astrof_state::shoot_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xa004, 0xa004, read8_delegate(*this, FUNC(astrof_state::abattle_coin_prot_r)));
}
diff --git a/src/mame/drivers/astrohome.cpp b/src/mame/drivers/astrohome.cpp
index 87921cc4ba6..947561e662f 100644
--- a/src/mame/drivers/astrohome.cpp
+++ b/src/mame/drivers/astrohome.cpp
@@ -263,14 +263,14 @@ void astrocde_state::init_astrocde()
MACHINE_START_MEMBER(astrocde_home_state, astrocde)
{
if (m_cart->exists())
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x2000, 0x3fff, read8_delegate(FUNC(astrocade_cart_slot_device::read_rom),(astrocade_cart_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x2000, 0x3fff, read8_delegate(*m_cart, FUNC(astrocade_cart_slot_device::read_rom)));
// if no RAM is mounted and the handlers are installed, the system starts with garbage on screen and a RESET is necessary
// thus, install RAM only if an expansion is mounted
if (m_exp->get_card_mounted())
{
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x5000, 0xffff, read8_delegate(FUNC(astrocade_exp_device::read),(astrocade_exp_device*)m_exp), write8_delegate(FUNC(astrocade_exp_device::write),(astrocade_exp_device*)m_exp));
- m_maincpu->space(AS_IO).install_readwrite_handler(0x0080, 0x00ff, 0x0000, 0x0000, 0xff00, read8_delegate(FUNC(astrocade_exp_device::read_io),(astrocade_exp_device*)m_exp), write8_delegate(FUNC(astrocade_exp_device::write_io),(astrocade_exp_device*)m_exp));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x5000, 0xffff, read8_delegate(*m_exp, FUNC(astrocade_exp_device::read)), write8_delegate(*m_exp, FUNC(astrocade_exp_device::write)));
+ m_maincpu->space(AS_IO).install_readwrite_handler(0x0080, 0x00ff, 0x0000, 0x0000, 0xff00, read8_delegate(*m_exp, FUNC(astrocade_exp_device::read_io)), write8_delegate(*m_exp, FUNC(astrocade_exp_device::write_io)));
}
}
diff --git a/src/mame/drivers/asuka.cpp b/src/mame/drivers/asuka.cpp
index 25140be246a..af14a96f464 100644
--- a/src/mame/drivers/asuka.cpp
+++ b/src/mame/drivers/asuka.cpp
@@ -839,7 +839,7 @@ void asuka_state::bonzeadv(machine_config &config)
PC090OJ(config, m_pc090oj, 0);
m_pc090oj->set_offsets(0, 8);
m_pc090oj->set_palette(m_tc0110pcr);
- m_pc090oj->set_colpri_callback(FUNC(asuka_state::bonzeadv_colpri_cb), this);
+ m_pc090oj->set_colpri_callback(FUNC(asuka_state::bonzeadv_colpri_cb));
TC0100SCN(config, m_tc0100scn, 0);
m_tc0100scn->set_palette(m_tc0110pcr);
@@ -894,7 +894,7 @@ void asuka_state::asuka(machine_config &config)
m_pc090oj->set_offsets(0, 8);
m_pc090oj->set_usebuffer(true);
m_pc090oj->set_palette(m_tc0110pcr);
- m_pc090oj->set_colpri_callback(FUNC(asuka_state::asuka_colpri_cb), this);
+ m_pc090oj->set_colpri_callback(FUNC(asuka_state::asuka_colpri_cb));
TC0100SCN(config, m_tc0100scn, 0);
m_tc0100scn->set_palette(m_tc0110pcr);
@@ -961,7 +961,7 @@ void asuka_state::cadash(machine_config &config)
m_pc090oj->set_offsets(0, 8);
m_pc090oj->set_usebuffer(true);
m_pc090oj->set_palette(m_tc0110pcr);
- m_pc090oj->set_colpri_callback(FUNC(asuka_state::bonzeadv_colpri_cb), this);
+ m_pc090oj->set_colpri_callback(FUNC(asuka_state::bonzeadv_colpri_cb));
TC0100SCN(config, m_tc0100scn, 0);
m_tc0100scn->set_offsets(1, 0);
@@ -1016,7 +1016,7 @@ void asuka_state::mofflott(machine_config &config)
PC090OJ(config, m_pc090oj, 0);
m_pc090oj->set_offsets(0, 8);
m_pc090oj->set_palette(m_tc0110pcr);
- m_pc090oj->set_colpri_callback(FUNC(asuka_state::asuka_colpri_cb), this);
+ m_pc090oj->set_colpri_callback(FUNC(asuka_state::asuka_colpri_cb));
TC0100SCN(config, m_tc0100scn, 0);
m_tc0100scn->set_offsets(1, 0);
@@ -1079,7 +1079,7 @@ void asuka_state::eto(machine_config &config)
PC090OJ(config, m_pc090oj, 0);
m_pc090oj->set_offsets(0, 8);
m_pc090oj->set_palette(m_tc0110pcr);
- m_pc090oj->set_colpri_callback(FUNC(asuka_state::asuka_colpri_cb), this);
+ m_pc090oj->set_colpri_callback(FUNC(asuka_state::asuka_colpri_cb));
TC0100SCN(config, m_tc0100scn, 0);
m_tc0100scn->set_offsets(1, 0);
diff --git a/src/mame/drivers/atari400.cpp b/src/mame/drivers/atari400.cpp
index 571509a04d7..f6bffb8619b 100644
--- a/src/mame/drivers/atari400.cpp
+++ b/src/mame/drivers/atari400.cpp
@@ -1920,20 +1920,20 @@ void a400_state::setup_cart(a800_cart_slot_device *slot)
switch (slot->get_cart_type())
{
case A800_8K:
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xa000, 0xbfff, read8_delegate(FUNC(a800_cart_slot_device::read_80xx),(a800_cart_slot_device*)slot));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xa000, 0xbfff, read8_delegate(*slot, FUNC(a800_cart_slot_device::read_80xx)));
m_maincpu->space(AS_PROGRAM).unmap_write(0xa000, 0xbfff);
break;
case A800_8K_RIGHT:
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x8000, 0x9fff, read8_delegate(FUNC(a800_cart_slot_device::read_80xx),(a800_cart_slot_device*)slot));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x8000, 0x9fff, read8_delegate(*slot, FUNC(a800_cart_slot_device::read_80xx)));
m_maincpu->space(AS_PROGRAM).unmap_write(0x8000, 0x9fff);
break;
case A800_16K:
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x8000, 0xbfff, read8_delegate(FUNC(a800_cart_slot_device::read_80xx),(a800_cart_slot_device*)slot));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x8000, 0xbfff, read8_delegate(*slot, FUNC(a800_cart_slot_device::read_80xx)));
m_maincpu->space(AS_PROGRAM).unmap_write(0x8000, 0xbfff);
break;
case A800_BBSB:
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x8000, 0xbfff, read8_delegate(FUNC(a800_cart_slot_device::read_80xx),(a800_cart_slot_device*)slot));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x8000, 0x9fff, write8_delegate(FUNC(a800_cart_slot_device::write_80xx),(a800_cart_slot_device*)slot));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x8000, 0xbfff, read8_delegate(*slot, FUNC(a800_cart_slot_device::read_80xx)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x8000, 0x9fff, write8_delegate(*slot, FUNC(a800_cart_slot_device::write_80xx)));
m_maincpu->space(AS_PROGRAM).unmap_write(0xa000, 0xbfff);
break;
case A800_OSS034M:
@@ -1943,57 +1943,57 @@ void a400_state::setup_cart(a800_cart_slot_device *slot)
case A800_TURBO64:
case A800_TURBO128:
case A800_PHOENIX:
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xa000, 0xbfff, read8_delegate(FUNC(a400_state::special_read_a000), this), write8_delegate(FUNC(a400_state::special_write_a000), this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xd500, 0xd5ff, write8_delegate(FUNC(a400_state::disable_cart), this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xa000, 0xbfff, read8_delegate(*this, FUNC(a400_state::special_read_a000)), write8_delegate(*this, FUNC(a400_state::special_write_a000)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xd500, 0xd5ff, write8_delegate(*this, FUNC(a400_state::disable_cart)));
break;
case A800_EXPRESS:
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xa000, 0xbfff, read8_delegate(FUNC(a400_state::special_read_a000), this), write8_delegate(FUNC(a400_state::special_write_a000), this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xd570, 0xd57f, write8_delegate(FUNC(a400_state::disable_cart), this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xa000, 0xbfff, read8_delegate(*this, FUNC(a400_state::special_read_a000)), write8_delegate(*this, FUNC(a400_state::special_write_a000)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xd570, 0xd57f, write8_delegate(*this, FUNC(a400_state::disable_cart)));
break;
case A800_DIAMOND:
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xa000, 0xbfff, read8_delegate(FUNC(a400_state::special_read_a000), this), write8_delegate(FUNC(a400_state::special_write_a000), this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xd5d0, 0xd5df, write8_delegate(FUNC(a400_state::disable_cart), this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xa000, 0xbfff, read8_delegate(*this, FUNC(a400_state::special_read_a000)), write8_delegate(*this, FUNC(a400_state::special_write_a000)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xd5d0, 0xd5df, write8_delegate(*this, FUNC(a400_state::disable_cart)));
break;
case A800_WILLIAMS:
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xa000, 0xbfff, read8_delegate(FUNC(a400_state::special_read_a000), this), write8_delegate(FUNC(a400_state::special_write_a000), this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xd500, 0xd50f, write8_delegate(FUNC(a400_state::disable_cart), this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xa000, 0xbfff, read8_delegate(*this, FUNC(a400_state::special_read_a000)), write8_delegate(*this, FUNC(a400_state::special_write_a000)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xd500, 0xd50f, write8_delegate(*this, FUNC(a400_state::disable_cart)));
break;
case A800_SPARTADOS:
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xa000, 0xbfff, read8_delegate(FUNC(a400_state::special_read_a000), this), write8_delegate(FUNC(a400_state::special_write_a000), this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xd5e0, 0xd5ef, write8_delegate(FUNC(a400_state::disable_cart), this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xa000, 0xbfff, read8_delegate(*this, FUNC(a400_state::special_read_a000)), write8_delegate(*this, FUNC(a400_state::special_write_a000)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xd5e0, 0xd5ef, write8_delegate(*this, FUNC(a400_state::disable_cart)));
break;
case A800_BLIZZARD:
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x8000, 0xbfff, read8_delegate(FUNC(a400_state::special_read_8000), this), write8_delegate(FUNC(a400_state::special_write_8000), this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xd500, 0xd5ff, write8_delegate(FUNC(a400_state::disable_cart), this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x8000, 0xbfff, read8_delegate(*this, FUNC(a400_state::special_read_8000)), write8_delegate(*this, FUNC(a400_state::special_write_8000)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xd500, 0xd5ff, write8_delegate(*this, FUNC(a400_state::disable_cart)));
break;
case A800_MICROCALC:
// this can also disable ROM when reading in 0xd500-0xd5ff
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xa000, 0xbfff, read8_delegate(FUNC(a400_state::special_read_a000), this), write8_delegate(FUNC(a400_state::special_write_a000), this));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xd500, 0xd5ff, read8_delegate(FUNC(a400_state::read_d5xx), this), write8_delegate(FUNC(a400_state::disable_cart), this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xa000, 0xbfff, read8_delegate(*this, FUNC(a400_state::special_read_a000)), write8_delegate(*this, FUNC(a400_state::special_write_a000)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xd500, 0xd5ff, read8_delegate(*this, FUNC(a400_state::read_d5xx)), write8_delegate(*this, FUNC(a400_state::disable_cart)));
break;
case A800_TELELINK2:
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x8000, 0xbfff, read8_delegate(FUNC(a800_cart_slot_device::read_80xx),(a800_cart_slot_device*)slot));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x9000, 0x90ff, write8_delegate(FUNC(a800_cart_slot_device::write_80xx),(a800_cart_slot_device*)slot));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x8000, 0xbfff, read8_delegate(*slot, FUNC(a800_cart_slot_device::read_80xx)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x9000, 0x90ff, write8_delegate(*slot, FUNC(a800_cart_slot_device::write_80xx)));
m_maincpu->space(AS_PROGRAM).unmap_write(0xa000, 0xbfff);
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xd501, 0xd501, read8_delegate(FUNC(a800_cart_slot_device::read_d5xx),(a800_cart_slot_device*)slot));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xd502, 0xd502, write8_delegate(FUNC(a800_cart_slot_device::write_d5xx),(a800_cart_slot_device*)slot));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xd501, 0xd501, read8_delegate(*slot, FUNC(a800_cart_slot_device::read_d5xx)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xd502, 0xd502, write8_delegate(*slot, FUNC(a800_cart_slot_device::write_d5xx)));
break;
case A800_XEGS:
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x8000, 0xbfff, read8_delegate(FUNC(a800_cart_slot_device::read_80xx),(a800_cart_slot_device*)slot));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x8000, 0xbfff, read8_delegate(*slot, FUNC(a800_cart_slot_device::read_80xx)));
m_maincpu->space(AS_PROGRAM).unmap_write(0x8000, 0xbfff);
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xd500, 0xd5ff, write8_delegate(FUNC(a800_cart_slot_device::write_d5xx),(a800_cart_slot_device*)slot));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xd500, 0xd5ff, write8_delegate(*slot, FUNC(a800_cart_slot_device::write_d5xx)));
break;
case A5200_4K:
case A5200_8K:
case A5200_16K:
case A5200_32K:
case A5200_16K_2CHIPS:
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x4000, 0xbfff, read8_delegate(FUNC(a800_cart_slot_device::read_80xx),(a800_cart_slot_device*)slot));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x4000, 0xbfff, read8_delegate(*slot, FUNC(a800_cart_slot_device::read_80xx)));
m_maincpu->space(AS_PROGRAM).unmap_write(0x4000, 0xbfff);
break;
case A5200_BBSB:
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x4000, 0xbfff, read8_delegate(FUNC(a800_cart_slot_device::read_80xx),(a800_cart_slot_device*)slot));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x4000, 0x5fff, write8_delegate(FUNC(a800_cart_slot_device::write_80xx),(a800_cart_slot_device*)slot));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x4000, 0xbfff, read8_delegate(*slot, FUNC(a800_cart_slot_device::read_80xx)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x4000, 0x5fff, write8_delegate(*slot, FUNC(a800_cart_slot_device::write_80xx)));
m_maincpu->space(AS_PROGRAM).unmap_write(0x6000, 0xbfff);
break;
}
diff --git a/src/mame/drivers/atarig1.cpp b/src/mame/drivers/atarig1.cpp
index 7fef9366911..b079c927777 100644
--- a/src/mame/drivers/atarig1.cpp
+++ b/src/mame/drivers/atarig1.cpp
@@ -156,7 +156,7 @@ READ16_MEMBER(atarig1_state::pitfightb_cheap_slapstic_r)
void atarig1_state::pitfightb_cheap_slapstic_init()
{
/* install a read handler */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x038000, 0x03ffff, read16_delegate(FUNC(atarig1_state::pitfightb_cheap_slapstic_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x038000, 0x03ffff, read16_delegate(*this, FUNC(atarig1_state::pitfightb_cheap_slapstic_r)));
m_bslapstic_base = (uint16_t *)(memregion("maincpu")->base() + 0x38000);
/* allocate memory for a copy of bank 0 */
diff --git a/src/mame/drivers/atarig42.cpp b/src/mame/drivers/atarig42.cpp
index 2c1be9ac4b8..277cca66f7e 100644
--- a/src/mame/drivers/atarig42.cpp
+++ b/src/mame/drivers/atarig42.cpp
@@ -830,7 +830,7 @@ void atarig42_0x200_state::init_roadriot()
m_playfield_base = 0x400;
address_space &main = m_maincpu->space(AS_PROGRAM);
- main.install_readwrite_handler(0x000000, 0x07ffff, read16_delegate(FUNC(atarig42_0x200_state::roadriot_sloop_data_r),this), write16_delegate(FUNC(atarig42_0x200_state::roadriot_sloop_data_w),this));
+ main.install_readwrite_handler(0x000000, 0x07ffff, read16_delegate(*this, FUNC(atarig42_0x200_state::roadriot_sloop_data_r)), write16_delegate(*this, FUNC(atarig42_0x200_state::roadriot_sloop_data_w)));
m_sloop_base = (uint16_t *)memregion("maincpu")->base();
/*
@@ -865,7 +865,7 @@ void atarig42_0x400_state::init_guardian()
*(uint16_t *)&memregion("maincpu")->base()[0x80000] = 0x4E75;
address_space &main = m_maincpu->space(AS_PROGRAM);
- main.install_readwrite_handler(0x000000, 0x07ffff, read16_delegate(FUNC(atarig42_0x400_state::guardians_sloop_data_r),this), write16_delegate(FUNC(atarig42_0x400_state::guardians_sloop_data_w),this));
+ main.install_readwrite_handler(0x000000, 0x07ffff, read16_delegate(*this, FUNC(atarig42_0x400_state::guardians_sloop_data_r)), write16_delegate(*this, FUNC(atarig42_0x400_state::guardians_sloop_data_w)));
m_sloop_base = (uint16_t *)memregion("maincpu")->base();
/*
diff --git a/src/mame/drivers/atarigt.cpp b/src/mame/drivers/atarigt.cpp
index ca989a8e90d..7b753688ec3 100644
--- a/src/mame/drivers/atarigt.cpp
+++ b/src/mame/drivers/atarigt.cpp
@@ -1330,7 +1330,7 @@ void atarigt_state::init_tmek()
m_protection_w = &atarigt_state::tmek_protection_w;
/* temp hack */
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xd72000, 0xd75fff, write32_delegate(FUNC(atarigt_state::tmek_pf_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xd72000, 0xd75fff, write32_delegate(*this, FUNC(atarigt_state::tmek_pf_w)));
}
diff --git a/src/mame/drivers/atarigx2.cpp b/src/mame/drivers/atarigx2.cpp
index 6d25473a84c..8de721542aa 100644
--- a/src/mame/drivers/atarigx2.cpp
+++ b/src/mame/drivers/atarigx2.cpp
@@ -2263,8 +2263,8 @@ void atarigx2_state::init_spclords()
{
m_playfield_base = 0x000;
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xc80f00, 0xc80fff, read32_delegate(FUNC(atari_136095_0072_device::polylsb_read),(atari_136095_0072_device*)&(*m_xga)), write32_delegate(FUNC(atari_136095_0072_device::polylsb_write),(atari_136095_0072_device*)&(*m_xga)));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xca0000, 0xca0fff, read32_delegate(FUNC(atari_xga_device::read),&(*m_xga)), write32_delegate(FUNC(atari_xga_device::write),&(*m_xga)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xc80f00, 0xc80fff, read32_delegate(downcast<atari_136095_0072_device &>(*m_xga), FUNC(atari_136095_0072_device::polylsb_read)), write32_delegate(downcast<atari_136095_0072_device &>(*m_xga), FUNC(atari_136095_0072_device::polylsb_write)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xca0000, 0xca0fff, read32_delegate(*m_xga, FUNC(atari_xga_device::read)), write32_delegate(*m_xga, FUNC(atari_xga_device::write)));
}
@@ -2293,15 +2293,15 @@ XMEM=68.A23*E.A22*!E.A21*68.A20 = 1101 xxxx = d0
+68.A23*E.A22*!E.A21*!68.A20*68.A19 = 1100 1xxx = c80000-cfffff
+!68.A23*!E.A22*!E.A21 = 000x xxxx = 000000-1fffff
*/
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xca0000, 0xca0fff, read32_delegate(FUNC(atari_xga_device::read),&(*m_xga)), write32_delegate(FUNC(atari_xga_device::write),&(*m_xga)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xca0000, 0xca0fff, read32_delegate(*m_xga, FUNC(atari_xga_device::read)), write32_delegate(*m_xga, FUNC(atari_xga_device::write)));
}
void atarigx2_state::init_rrreveng()
{
m_playfield_base = 0x000;
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xca0000, 0xca0fff, read32_delegate(FUNC(atarigx2_state::atarigx2_protection_r),this), write32_delegate(FUNC(atarigx2_state::atarigx2_protection_w),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xca0fc0, 0xca0fc3, read32_delegate(FUNC(atarigx2_state::rrreveng_prot_r),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xca0000, 0xca0fff, read32_delegate(*this, FUNC(atarigx2_state::atarigx2_protection_r)), write32_delegate(*this, FUNC(atarigx2_state::atarigx2_protection_w)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xca0fc0, 0xca0fc3, read32_delegate(*this, FUNC(atarigx2_state::rrreveng_prot_r)));
}
diff --git a/src/mame/drivers/atarist.cpp b/src/mame/drivers/atarist.cpp
index ed3f4e723a1..3d03aacb791 100644
--- a/src/mame/drivers/atarist.cpp
+++ b/src/mame/drivers/atarist.cpp
@@ -1862,7 +1862,7 @@ void st_state::machine_start()
configure_memory();
if (m_cart->exists())
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xfa0000, 0xfbffff, read16s_delegate(FUNC(generic_slot_device::read16_rom),(generic_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xfa0000, 0xfbffff, read16s_delegate(*m_cart, FUNC(generic_slot_device::read16_rom)));
// allocate timers
if (m_mousex.found())
@@ -1917,7 +1917,7 @@ void ste_state::machine_start()
configure_memory();
if (m_cart->exists())
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xfa0000, 0xfbffff, read16s_delegate(FUNC(generic_slot_device::read16_rom),(generic_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xfa0000, 0xfbffff, read16s_delegate(*m_cart, FUNC(generic_slot_device::read16_rom)));
/* allocate timers */
m_dmasound_timer = timer_alloc(TIMER_DMASOUND_TICK);
@@ -1964,7 +1964,7 @@ void stbook_state::machine_start()
}
if (m_cart->exists())
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xfa0000, 0xfbffff, read16s_delegate(FUNC(generic_slot_device::read16_rom),(generic_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xfa0000, 0xfbffff, read16s_delegate(*m_cart, FUNC(generic_slot_device::read16_rom)));
/* register for state saving */
ste_state::state_save();
diff --git a/src/mame/drivers/atarittl.cpp b/src/mame/drivers/atarittl.cpp
index 53dd592f48b..2cd87fa4df7 100644
--- a/src/mame/drivers/atarittl.cpp
+++ b/src/mame/drivers/atarittl.cpp
@@ -374,7 +374,7 @@ void gtrak10_state::gtrak10(machine_config &config)
/* basic machine hardware */
NETLIST_CPU(config, "maincpu", NETLIST_CLOCK).set_source(netlist_gtrak10);
- NETLIST_ANALOG_OUTPUT(config, "maincpu:vid0", 0).set_params("VIDEO_OUT", FUNC(fixedfreq_device::update_composite_monochrome), "fixfreq");
+ NETLIST_ANALOG_OUTPUT(config, "maincpu:vid0", 0).set_params("VIDEO_OUT", "fixfreq", FUNC(fixedfreq_device::update_composite_monochrome));
/* video hardware */
diff --git a/src/mame/drivers/atom.cpp b/src/mame/drivers/atom.cpp
index b1b30cd94dc..35222ab4134 100644
--- a/src/mame/drivers/atom.cpp
+++ b/src/mame/drivers/atom.cpp
@@ -663,7 +663,7 @@ void atom_state::machine_start()
m_baseram[0x0b] = machine().rand() & 0x0ff;
if (m_cart.found() && m_cart->exists())
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xa000, 0xafff, read8sm_delegate(FUNC(generic_slot_device::read_rom), &*m_cart));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xa000, 0xafff, read8sm_delegate(*m_cart, FUNC(generic_slot_device::read_rom)));
}
/*-------------------------------------------------
@@ -758,10 +758,10 @@ void atom_state::atom(machine_config &config)
m_cassette->set_formats(atom_cassette_formats);
m_cassette->set_interface("atom_cass");
- QUICKLOAD(config, "quickload", "atm").set_load_callback(FUNC(atom_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "atm").set_load_callback(FUNC(atom_state::quickload_cb));
/* utility rom slot */
- GENERIC_CARTSLOT(config, "cartslot", generic_linear_slot, "atom_cart", "bin,rom").set_device_load(FUNC(atom_state::cart_load), this);
+ GENERIC_CARTSLOT(config, "cartslot", generic_linear_slot, "atom_cart", "bin,rom").set_device_load(FUNC(atom_state::cart_load));
/* internal ram */
RAM(config, RAM_TAG).set_default_size("32K").set_extra_options("2K,4K,6K,8K,10K,12K").set_default_value(0x00);
@@ -777,7 +777,7 @@ void atom_state::atom(machine_config &config)
-------------------------------------------------*/
#define ATOM_ROM(_tag, _load) \
- GENERIC_SOCKET(config, _tag, generic_linear_slot, "atom_cart", "bin,rom").set_device_load(FUNC(atomeb_state::_load), this) \
+ GENERIC_SOCKET(config, _tag, generic_linear_slot, "atom_cart", "bin,rom").set_device_load(FUNC(atomeb_state::_load)) \
void atomeb_state::atomeb(machine_config &config)
{
diff --git a/src/mame/drivers/attache.cpp b/src/mame/drivers/attache.cpp
index c665ad28701..090677ccf6e 100644
--- a/src/mame/drivers/attache.cpp
+++ b/src/mame/drivers/attache.cpp
@@ -1094,7 +1094,7 @@ void attache_state::driver_start()
m_nvram->set_base(m_cmos_ram,64);
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x0000,0x0fff,read8_delegate(FUNC(attache_state::rom_r),this),write8_delegate(FUNC(attache_state::rom_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x0000,0x0fff, read8_delegate(*this, FUNC(attache_state::rom_r)), write8_delegate(*this, FUNC(attache_state::rom_w)));
save_pointer(m_char_ram,"Character RAM",128*32);
save_pointer(m_attr_ram,"Attribute RAM",128*32);
diff --git a/src/mame/drivers/aussiebyte.cpp b/src/mame/drivers/aussiebyte.cpp
index 18a64b9ee11..c085db57dbd 100644
--- a/src/mame/drivers/aussiebyte.cpp
+++ b/src/mame/drivers/aussiebyte.cpp
@@ -585,13 +585,13 @@ void aussiebyte_state::aussiebyte(machine_config &config)
m_crtc->set_screen("screen");
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8);
- m_crtc->set_update_row_callback(FUNC(aussiebyte_state::crtc_update_row), this);
- m_crtc->set_on_update_addr_change_callback(FUNC(aussiebyte_state::crtc_update_addr), this);
+ m_crtc->set_update_row_callback(FUNC(aussiebyte_state::crtc_update_row));
+ m_crtc->set_on_update_addr_change_callback(FUNC(aussiebyte_state::crtc_update_addr));
MSM5832(config, m_rtc, 32.768_kHz_XTAL);
/* quickload */
- QUICKLOAD(config, "quickload", "com,cpm", attotime::from_seconds(3)).set_load_callback(FUNC(aussiebyte_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "com,cpm", attotime::from_seconds(3)).set_load_callback(FUNC(aussiebyte_state::quickload_cb));
}
diff --git a/src/mame/drivers/ave_arb.cpp b/src/mame/drivers/ave_arb.cpp
index 9a316f15653..52482c5acf6 100644
--- a/src/mame/drivers/ave_arb.cpp
+++ b/src/mame/drivers/ave_arb.cpp
@@ -299,7 +299,7 @@ void arb_state::arb(machine_config &config)
/* cartridge */
GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "arb", "bin");
- m_cart->set_device_load(FUNC(arb_state::cart_load), this);
+ m_cart->set_device_load(FUNC(arb_state::cart_load));
m_cart->set_must_be_loaded(true);
SOFTWARE_LIST(config, "cart_list").set_original("arb");
diff --git a/src/mame/drivers/avigo.cpp b/src/mame/drivers/avigo.cpp
index bb79a00129e..a3942391265 100644
--- a/src/mame/drivers/avigo.cpp
+++ b/src/mame/drivers/avigo.cpp
@@ -812,7 +812,7 @@ void avigo_state::avigo(machine_config &config)
TIMER(config, "1hz_timer").configure_periodic(FUNC(avigo_state::avigo_1hz_timer), attotime::from_hz(1));
/* quickload */
- QUICKLOAD(config, "quickload", "app").set_load_callback(FUNC(avigo_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "app").set_load_callback(FUNC(avigo_state::quickload_cb));
}
diff --git a/src/mame/drivers/avt.cpp b/src/mame/drivers/avt.cpp
index c3fe2892b01..4864c3d7d59 100644
--- a/src/mame/drivers/avt.cpp
+++ b/src/mame/drivers/avt.cpp
@@ -537,7 +537,7 @@ TILE_GET_INFO_MEMBER(avt_state::get_bg_tile_info)
void avt_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(avt_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 28, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(avt_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 28, 32);
}
diff --git a/src/mame/drivers/babbage.cpp b/src/mame/drivers/babbage.cpp
index 6b03aa0f27c..2681cdb1cbe 100644
--- a/src/mame/drivers/babbage.cpp
+++ b/src/mame/drivers/babbage.cpp
@@ -257,7 +257,7 @@ void babbage_state::babbage(machine_config &config)
m_pio_2->in_pa_callback().set(FUNC(babbage_state::pio2_a_r));
m_pio_2->out_pb_callback().set(FUNC(babbage_state::pio2_b_w));
- TIMER(config, "keyboard_timer", 0).configure_periodic(timer_device::expired_delegate(FUNC(babbage_state::keyboard_callback), this), attotime::from_hz(30));
+ TIMER(config, "keyboard_timer", 0).configure_periodic(FUNC(babbage_state::keyboard_callback), attotime::from_hz(30));
}
diff --git a/src/mame/drivers/backfire.cpp b/src/mame/drivers/backfire.cpp
index a123d45916f..b222e6fd062 100644
--- a/src/mame/drivers/backfire.cpp
+++ b/src/mame/drivers/backfire.cpp
@@ -407,8 +407,8 @@ void backfire_state::backfire(machine_config &config)
m_deco_tilegen[0]->set_pf2_col_bank(0x40);
m_deco_tilegen[0]->set_pf1_col_mask(0x0f);
m_deco_tilegen[0]->set_pf2_col_mask(0x0f);
- m_deco_tilegen[0]->set_bank1_callback(FUNC(backfire_state::bank_callback), this);
- m_deco_tilegen[0]->set_bank2_callback(FUNC(backfire_state::bank_callback), this);
+ m_deco_tilegen[0]->set_bank1_callback(FUNC(backfire_state::bank_callback));
+ m_deco_tilegen[0]->set_bank2_callback(FUNC(backfire_state::bank_callback));
m_deco_tilegen[0]->set_pf12_8x8_bank(0);
m_deco_tilegen[0]->set_pf12_16x16_bank(1);
m_deco_tilegen[0]->set_gfxdecode_tag("gfxdecode");
@@ -423,8 +423,8 @@ void backfire_state::backfire(machine_config &config)
m_deco_tilegen[1]->set_pf2_col_bank(0x50);
m_deco_tilegen[1]->set_pf1_col_mask(0x0f);
m_deco_tilegen[1]->set_pf2_col_mask(0x0f);
- m_deco_tilegen[1]->set_bank1_callback(FUNC(backfire_state::bank_callback), this);
- m_deco_tilegen[1]->set_bank2_callback(FUNC(backfire_state::bank_callback), this);
+ m_deco_tilegen[1]->set_bank1_callback(FUNC(backfire_state::bank_callback));
+ m_deco_tilegen[1]->set_bank2_callback(FUNC(backfire_state::bank_callback));
m_deco_tilegen[1]->set_pf12_8x8_bank(2);
m_deco_tilegen[1]->set_pf12_16x16_bank(3);
m_deco_tilegen[1]->set_gfxdecode_tag("gfxdecode");
@@ -432,13 +432,13 @@ void backfire_state::backfire(machine_config &config)
DECO_SPRITE(config, m_sprgen[0], 0);
m_sprgen[0]->set_screen(m_lscreen);
m_sprgen[0]->set_gfx_region(4);
- m_sprgen[0]->set_pri_callback(FUNC(backfire_state::pri_callback), this);
+ m_sprgen[0]->set_pri_callback(FUNC(backfire_state::pri_callback));
m_sprgen[0]->set_gfxdecode_tag("gfxdecode");
DECO_SPRITE(config, m_sprgen[1], 0);
m_sprgen[1]->set_screen("rscreen");
m_sprgen[1]->set_gfx_region(5);
- m_sprgen[1]->set_pri_callback(FUNC(backfire_state::pri_callback), this);
+ m_sprgen[1]->set_pri_callback(FUNC(backfire_state::pri_callback));
m_sprgen[1]->set_gfxdecode_tag("gfxdecode");
/* sound hardware */
@@ -615,7 +615,7 @@ void backfire_state::init_backfire()
deco156_decrypt(machine());
m_maincpu->set_clock_scale(4.0f); /* core timings aren't accurate */
descramble_sound();
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x0170018, 0x017001b, read32_delegate(FUNC(backfire_state::backfire_speedup_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x0170018, 0x017001b, read32_delegate(*this, FUNC(backfire_state::backfire_speedup_r)));
}
GAME( 1995, backfire, 0, backfire, backfire, backfire_state, init_backfire, ROT0, "Data East Corporation", "Backfire! (Japan, set 1)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/balsente.cpp b/src/mame/drivers/balsente.cpp
index 5fc95e5ba11..2da3342872b 100644
--- a/src/mame/drivers/balsente.cpp
+++ b/src/mame/drivers/balsente.cpp
@@ -238,7 +238,7 @@ void balsente_state::cpu1_base_map(address_map &map)
map(0x8000, 0x8fff).ram().w(FUNC(balsente_state::paletteram_w)).share("paletteram");
map(0x9000, 0x9007).w(FUNC(balsente_state::adc_select_w));
map(0x9400, 0x9401).r(FUNC(balsente_state::adc_data_r));
- map(0x9800, 0x981f).mirror(0x0060).lw8("outlatch_w", [this](offs_t offset, u8 data) { m_outlatch->write_d7(offset >> 2, data); });
+ map(0x9800, 0x981f).mirror(0x0060).lw8(NAME([this] (offs_t offset, u8 data) { m_outlatch->write_d7(offset >> 2, data); }));
map(0x9880, 0x989f).w(FUNC(balsente_state::random_reset_w));
map(0x98a0, 0x98bf).w(FUNC(balsente_state::rombank_select_w));
map(0x98c0, 0x98df).w(FUNC(balsente_state::palette_select_w));
@@ -1351,7 +1351,7 @@ void balsente_state::balsente(machine_config &config)
WATCHDOG_TIMER(config, "watchdog");
- TIMER(config, m_scanline_timer, 0).configure_generic(timer_device::expired_delegate(FUNC(balsente_state::interrupt_timer), this));
+ TIMER(config, m_scanline_timer, 0).configure_generic(FUNC(balsente_state::interrupt_timer));
LS259(config, m_outlatch); // U9H
// these outputs are generally used to control the various lamps
diff --git a/src/mame/drivers/banctec.cpp b/src/mame/drivers/banctec.cpp
index fa996910cb2..d871c5ec20a 100644
--- a/src/mame/drivers/banctec.cpp
+++ b/src/mame/drivers/banctec.cpp
@@ -161,8 +161,8 @@ void banctec_state::banctec(machine_config &config)
crtc.set_screen("screen");
crtc.set_show_border_area(false);
crtc.set_char_width(8);
- crtc.set_update_row_callback(FUNC(banctec_state::crtc_update_row), this);
- crtc.set_on_update_addr_change_callback(FUNC(banctec_state::crtc_addr), this);
+ crtc.set_update_row_callback(FUNC(banctec_state::crtc_update_row));
+ crtc.set_on_update_addr_change_callback(FUNC(banctec_state::crtc_addr));
}
ROM_START(banctec)
diff --git a/src/mame/drivers/battlnts.cpp b/src/mame/drivers/battlnts.cpp
index 1d21e0ed5e7..b076294bb2b 100644
--- a/src/mame/drivers/battlnts.cpp
+++ b/src/mame/drivers/battlnts.cpp
@@ -257,12 +257,12 @@ void battlnts_state::battlnts(machine_config &config)
K007342(config, m_k007342, 0);
m_k007342->set_gfxnum(0);
- m_k007342->set_tile_callback(FUNC(battlnts_state::battlnts_tile_callback), this);
+ m_k007342->set_tile_callback(FUNC(battlnts_state::battlnts_tile_callback));
m_k007342->set_gfxdecode_tag(m_gfxdecode);
K007420(config, m_k007420, 0);
m_k007420->set_bank_limit(0x3ff);
- m_k007420->set_sprite_callback(FUNC(battlnts_state::battlnts_sprite_callback), this);
+ m_k007420->set_sprite_callback(FUNC(battlnts_state::battlnts_sprite_callback));
m_k007420->set_palette_tag("palette");
/* sound hardware */
diff --git a/src/mame/drivers/bbc.cpp b/src/mame/drivers/bbc.cpp
index a56ba806dee..761a78a0f9b 100644
--- a/src/mame/drivers/bbc.cpp
+++ b/src/mame/drivers/bbc.cpp
@@ -858,9 +858,9 @@ void bbc_state::bbca(machine_config &config)
m_hd6845->set_screen("screen");
m_hd6845->set_show_border_area(false);
m_hd6845->set_char_width(12);
- //m_hd6845->set_begin_update_callback(FUNC(bbc_state::crtc_begin_update), this);
- m_hd6845->set_update_row_callback(FUNC(bbc_state::crtc_update_row), this);
- //m_hd6845->set_reconfigure_callback(FUNC(bbc_state::crtc_reconfig), this);
+ //m_hd6845->set_begin_update_callback(FUNC(bbc_state::crtc_begin_update));
+ m_hd6845->set_update_row_callback(FUNC(bbc_state::crtc_update_row));
+ //m_hd6845->set_reconfigure_callback(FUNC(bbc_state::crtc_reconfig));
m_hd6845->out_de_callback().set(FUNC(bbc_state::bbc_de_changed));
m_hd6845->out_hsync_callback().set(FUNC(bbc_state::bbc_hsync_changed));
m_hd6845->out_vsync_callback().set(FUNC(bbc_state::bbc_vsync_changed));
@@ -947,8 +947,8 @@ void bbc_state::bbcb(machine_config &config)
/* adc */
UPD7002(config, m_upd7002, 16_MHz_XTAL / 16);
- m_upd7002->set_get_analogue_callback(FUNC(bbc_state::get_analogue_input), this);
- m_upd7002->set_eoc_callback(FUNC(bbc_state::upd7002_eoc), this);
+ m_upd7002->set_get_analogue_callback(FUNC(bbc_state::get_analogue_input));
+ m_upd7002->set_eoc_callback(FUNC(bbc_state::upd7002_eoc));
/* printer */
centronics_device &centronics(CENTRONICS(config, "centronics", centronics_devices, "printer"));
@@ -1350,9 +1350,9 @@ void bbcm_state::bbcm(machine_config &config)
m_hd6845->set_screen("screen");
m_hd6845->set_show_border_area(false);
m_hd6845->set_char_width(12);
- //m_hd6845->set_begin_update_callback(FUNC(bbc_state::crtc_begin_update), this);
- m_hd6845->set_update_row_callback(FUNC(bbc_state::crtc_update_row), this);
- //m_hd6845->set_reconfigure_callback(FUNC(bbc_state::crtc_reconfig), this);
+ //m_hd6845->set_begin_update_callback(FUNC(bbc_state::crtc_begin_update));
+ m_hd6845->set_update_row_callback(FUNC(bbc_state::crtc_update_row));
+ //m_hd6845->set_reconfigure_callback(FUNC(bbc_state::crtc_reconfig));
m_hd6845->out_de_callback().set(FUNC(bbc_state::bbc_de_changed));
m_hd6845->out_hsync_callback().set(FUNC(bbc_state::bbc_hsync_changed));
m_hd6845->out_vsync_callback().set(FUNC(bbc_state::bbc_vsync_changed));
@@ -1400,8 +1400,8 @@ void bbcm_state::bbcm(machine_config &config)
/* adc */
UPD7002(config, m_upd7002, 16_MHz_XTAL / 16);
- m_upd7002->set_get_analogue_callback(FUNC(bbc_state::get_analogue_input), this);
- m_upd7002->set_eoc_callback(FUNC(bbc_state::upd7002_eoc), this);
+ m_upd7002->set_get_analogue_callback(FUNC(bbc_state::get_analogue_input));
+ m_upd7002->set_eoc_callback(FUNC(bbc_state::upd7002_eoc));
/* system via */
VIA6522(config, m_via6522_0, 16_MHz_XTAL / 16);
@@ -1461,9 +1461,9 @@ void bbcm_state::bbcm(machine_config &config)
/* cartridge slots */
GENERIC_CARTSLOT(config, m_cart[0], generic_linear_slot, "bbcm_cart", "bin,rom");
- m_cart[0]->set_device_load(FUNC(bbc_state::cart1_load), this);
+ m_cart[0]->set_device_load(FUNC(bbc_state::cart1_load));
GENERIC_CARTSLOT(config, m_cart[1], generic_linear_slot, "bbcm_cart", "bin,rom");
- m_cart[1]->set_device_load(FUNC(bbc_state::cart2_load), this);
+ m_cart[1]->set_device_load(FUNC(bbc_state::cart2_load));
/* eprom sockets */
BBC_ROMSLOT16(config, m_rom[0x08], bbc_rom_devices, nullptr); /* ic27 */
diff --git a/src/mame/drivers/bbcbc.cpp b/src/mame/drivers/bbcbc.cpp
index 2a73eddf278..acaa2c13f4a 100644
--- a/src/mame/drivers/bbcbc.cpp
+++ b/src/mame/drivers/bbcbc.cpp
@@ -75,13 +75,9 @@ void bbcbc_state::mem_map(address_map &map)
void bbcbc_state::io_map(address_map &map)
{
map.global_mask(0xff);
- map(0x00, 0x7f).lrw8("z80pio_rw",
- [this](offs_t offset) {
- return m_z80pio->read(offset >> 5);
- },
- [this](offs_t offset, u8 data) {
- m_z80pio->write(offset >> 5, data);
- });
+ map(0x00, 0x7f).lrw8(
+ NAME([this](offs_t offset) { return m_z80pio->read(offset >> 5); }),
+ NAME([this](offs_t offset, u8 data) { m_z80pio->write(offset >> 5, data); }));
map(0x80, 0x81).rw("tms9129", FUNC(tms9129_device::read), FUNC(tms9129_device::write));
}
diff --git a/src/mame/drivers/berzerk.cpp b/src/mame/drivers/berzerk.cpp
index 415fd52f3d3..dcbd211951e 100644
--- a/src/mame/drivers/berzerk.cpp
+++ b/src/mame/drivers/berzerk.cpp
@@ -25,8 +25,8 @@
class berzerk_state : public driver_device
{
public:
- berzerk_state(const machine_config &mconfig, device_type type, const char *tag)
- : driver_device(mconfig, type, tag),
+ berzerk_state(const machine_config &mconfig, device_type type, const char *tag) :
+ driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"),
m_s14001a(*this, "speech"),
m_ls181_10c(*this, "ls181_10c"),
@@ -1364,8 +1364,8 @@ ROM_END
void berzerk_state::init_moonwarp()
{
address_space &io = m_maincpu->space(AS_IO);
- io.install_read_handler (0x48, 0x48, read8_delegate(FUNC(berzerk_state::moonwarp_p1_r), this));
- io.install_read_handler (0x4a, 0x4a, read8_delegate(FUNC(berzerk_state::moonwarp_p2_r), this));
+ io.install_read_handler (0x48, 0x48, read8_delegate(*this, FUNC(berzerk_state::moonwarp_p1_r)));
+ io.install_read_handler (0x4a, 0x4a, read8_delegate(*this, FUNC(berzerk_state::moonwarp_p2_r)));
save_item(NAME(m_p1_counter_74ls161));
save_item(NAME(m_p1_direction));
diff --git a/src/mame/drivers/bestleag.cpp b/src/mame/drivers/bestleag.cpp
index 77fa89cd590..01c1e2ce175 100644
--- a/src/mame/drivers/bestleag.cpp
+++ b/src/mame/drivers/bestleag.cpp
@@ -127,9 +127,9 @@ TILEMAP_MAPPER_MEMBER(bestleag_state::bsb_bg_scan)
void bestleag_state::video_start()
{
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(bestleag_state::get_tx_tile_info),this),TILEMAP_SCAN_COLS,8,8,256, 32);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(bestleag_state::get_bg_tile_info),this),tilemap_mapper_delegate(FUNC(bestleag_state::bsb_bg_scan),this),16,16,128, 64);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(bestleag_state::get_fg_tile_info),this),tilemap_mapper_delegate(FUNC(bestleag_state::bsb_bg_scan),this),16,16,128, 64);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(bestleag_state::get_tx_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 256, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(bestleag_state::get_bg_tile_info)), tilemap_mapper_delegate(*this, FUNC(bestleag_state::bsb_bg_scan)), 16, 16, 128, 64);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(bestleag_state::get_fg_tile_info)), tilemap_mapper_delegate(*this, FUNC(bestleag_state::bsb_bg_scan)), 16, 16, 128, 64);
m_tx_tilemap->set_transparent_pen(15);
m_fg_tilemap->set_transparent_pen(15);
diff --git a/src/mame/drivers/beta.cpp b/src/mame/drivers/beta.cpp
index 2413c7c4663..6c080e00811 100644
--- a/src/mame/drivers/beta.cpp
+++ b/src/mame/drivers/beta.cpp
@@ -368,8 +368,8 @@ void beta_state::beta(machine_config &config)
/* EPROM socket */
generic_cartslot_device &cartslot(GENERIC_CARTSLOT(config, EPROM_TAG, generic_plain_slot, nullptr, "bin,rom"));
- cartslot.set_device_load(FUNC(beta_state::load_beta_eprom), this);
- cartslot.set_device_unload(FUNC(beta_state::unload_beta_eprom), this);
+ cartslot.set_device_load(FUNC(beta_state::load_beta_eprom));
+ cartslot.set_device_unload(FUNC(beta_state::unload_beta_eprom));
/* internal ram */
RAM(config, RAM_TAG).set_default_size("256");
diff --git a/src/mame/drivers/bfm_sc2.cpp b/src/mame/drivers/bfm_sc2.cpp
index aaf7b61d546..e035ee6c95a 100644
--- a/src/mame/drivers/bfm_sc2.cpp
+++ b/src/mame/drivers/bfm_sc2.cpp
@@ -3741,8 +3741,8 @@ void bfm_sc2_dmd_state::machine_start()
{
bfm_sc2_state::machine_start();
address_space &space = m_maincpu->space(AS_PROGRAM);
- space.install_write_handler(0x2800, 0x2800, write8_delegate(FUNC(bfm_sc2_dmd_state::vfd1_dmd_w),this));
- space.install_write_handler(0x2900, 0x2900, write8_delegate(FUNC(bfm_sc2_dmd_state::dmd_reset_w),this));
+ space.install_write_handler(0x2800, 0x2800, write8_delegate(*this, FUNC(bfm_sc2_dmd_state::vfd1_dmd_w)));
+ space.install_write_handler(0x2900, 0x2900, write8_delegate(*this, FUNC(bfm_sc2_dmd_state::dmd_reset_w)));
}
/* machine driver for scorpion2 board */
diff --git a/src/mame/drivers/bfm_sc4.cpp b/src/mame/drivers/bfm_sc4.cpp
index 2a85b11494b..ebbef7cbf4b 100644
--- a/src/mame/drivers/bfm_sc4.cpp
+++ b/src/mame/drivers/bfm_sc4.cpp
@@ -821,10 +821,10 @@ void sc4_state::machine_start()
m_nvram->set_base(m_mainram, sizeof(m_mainram));
m_maincpu->set_port_callbacks(
- m68307_cpu_device::porta_read_delegate(FUNC(sc4_state::bfm_sc4_68307_porta_r), this),
- m68307_cpu_device::porta_write_delegate(FUNC(sc4_state::bfm_sc4_68307_porta_w), this),
- m68307_cpu_device::portb_read_delegate(FUNC(sc4_state::bfm_sc4_68307_portb_r), this),
- m68307_cpu_device::portb_write_delegate(FUNC(sc4_state::bfm_sc4_68307_portb_w), this));
+ m68307_cpu_device::porta_read_delegate(*this, FUNC(sc4_state::bfm_sc4_68307_porta_r)),
+ m68307_cpu_device::porta_write_delegate(*this, FUNC(sc4_state::bfm_sc4_68307_porta_w)),
+ m68307_cpu_device::portb_read_delegate(*this, FUNC(sc4_state::bfm_sc4_68307_portb_r)),
+ m68307_cpu_device::portb_write_delegate(*this, FUNC(sc4_state::bfm_sc4_68307_portb_w)));
}
diff --git a/src/mame/drivers/bigbord2.cpp b/src/mame/drivers/bigbord2.cpp
index 990c6ee47b8..80bf88d5746 100644
--- a/src/mame/drivers/bigbord2.cpp
+++ b/src/mame/drivers/bigbord2.cpp
@@ -598,7 +598,7 @@ void bigbord2_state::bigbord2(machine_config &config)
crtc.set_screen("screen");
crtc.set_show_border_area(false);
crtc.set_char_width(8);
- crtc.set_update_row_callback(FUNC(bigbord2_state::crtc_update_row), this);
+ crtc.set_update_row_callback(FUNC(bigbord2_state::crtc_update_row));
crtc.out_vsync_callback().set(m_ctc1, FUNC(z80ctc_device::trg3));
ls259_device &proglatch(LS259(config, "proglatch")); // U41
diff --git a/src/mame/drivers/binbug.cpp b/src/mame/drivers/binbug.cpp
index 175d513b26d..dc58fa4135e 100644
--- a/src/mame/drivers/binbug.cpp
+++ b/src/mame/drivers/binbug.cpp
@@ -266,7 +266,7 @@ void binbug_state::binbug(machine_config &config)
RS232_PORT(config, m_rs232, default_rs232_devices, "keyboard").set_option_device_input_defaults("keyboard", DEVICE_INPUT_DEFAULTS_NAME(keyboard));
/* quickload */
- QUICKLOAD(config, "quickload", "pgm", attotime::from_seconds(1)).set_load_callback(FUNC(binbug_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "pgm", attotime::from_seconds(1)).set_load_callback(FUNC(binbug_state::quickload_cb));
S100_BUS(config, m_s100, 0);
S100_SLOT(config, "s100:1", binbug_s100_devices, "dg640");
diff --git a/src/mame/drivers/bionicc.cpp b/src/mame/drivers/bionicc.cpp
index 22e9bc9681a..aad9eb30303 100644
--- a/src/mame/drivers/bionicc.cpp
+++ b/src/mame/drivers/bionicc.cpp
@@ -205,7 +205,7 @@ void bionicc_state::sound_map(address_map &map)
{
map(0x0000, 0x7fff).rom();
map(0x8000, 0x8001).rw("ymsnd", FUNC(ym2151_device::read), FUNC(ym2151_device::write));
- map(0xa000, 0xa000).lrw8("mcu", [this]() { return m_mcu_to_audiocpu; }, [this](u8 data) { m_audiocpu_to_mcu = data; });
+ map(0xa000, 0xa000).lrw8(NAME([this]() { return m_mcu_to_audiocpu; }), NAME([this](u8 data) { m_audiocpu_to_mcu = data; }));
map(0xc000, 0xc7ff).ram();
}
@@ -393,9 +393,9 @@ u32 bionicc_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, co
void bionicc_state::video_start()
{
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(bionicc_state::get_tx_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(bionicc_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(bionicc_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(bionicc_state::get_tx_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(bionicc_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(bionicc_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
m_tx_tilemap->set_transparent_pen(3);
m_fg_tilemap->set_transmask(0, 0xffff, 0x8000); /* split type 0 is completely transparent in front half */
diff --git a/src/mame/drivers/bishi.cpp b/src/mame/drivers/bishi.cpp
index c4759292227..07d62161665 100644
--- a/src/mame/drivers/bishi.cpp
+++ b/src/mame/drivers/bishi.cpp
@@ -466,7 +466,7 @@ void bishi_state::bishi(machine_config &config)
m_palette->enable_hilights();
K056832(config, m_k056832, 0);
- m_k056832->set_tile_callback(FUNC(bishi_state::tile_callback), this);
+ m_k056832->set_tile_callback(FUNC(bishi_state::tile_callback));
m_k056832->set_config(K056832_BPP_8, 1, 0);
m_k056832->set_palette(m_palette);
@@ -489,7 +489,7 @@ void bishi_state::dobouchn(machine_config &config)
{
bishi(config);
// TODO: change accordingly (ASCII charset definitely not 8bpp, 5bpp perhaps?)
-// m_k056832->set_tile_callback(FUNC(bishi_state::dobouchn_tile_callback), this);
+// m_k056832->set_tile_callback(FUNC(bishi_state::dobouchn_tile_callback));
m_k056832->set_config(K056832_BPP_8, 1, 0);
}
diff --git a/src/mame/drivers/blackt96.cpp b/src/mame/drivers/blackt96.cpp
index 16f93b40737..212590a0e9e 100644
--- a/src/mame/drivers/blackt96.cpp
+++ b/src/mame/drivers/blackt96.cpp
@@ -171,7 +171,7 @@ TILE_GET_INFO_MEMBER(blackt96_state::get_tx_tile_info)
void blackt96_state::video_start()
{
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(blackt96_state::get_tx_tile_info),this), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(blackt96_state::get_tx_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
m_tx_tilemap->set_transparent_pen(0);
}
@@ -507,7 +507,7 @@ void blackt96_state::blackt96(machine_config &config)
SNK68_SPR(config, m_sprites, 0);
m_sprites->set_gfxdecode_tag(m_gfxdecode);
- m_sprites->set_tile_indirect_cb(FUNC(blackt96_state::tile_callback), this);
+ m_sprites->set_tile_indirect_cb(FUNC(blackt96_state::tile_callback));
m_sprites->set_no_partial();
m_sprites->set_xpos_shift(12);
m_sprites->set_color_entry_mask(0x7f);
diff --git a/src/mame/drivers/bladestl.cpp b/src/mame/drivers/bladestl.cpp
index 1897ab49c91..490a09ffc21 100644
--- a/src/mame/drivers/bladestl.cpp
+++ b/src/mame/drivers/bladestl.cpp
@@ -331,12 +331,12 @@ void bladestl_state::bladestl(machine_config &config)
K007342(config, m_k007342, 0);
m_k007342->set_gfxnum(0);
- m_k007342->set_tile_callback(FUNC(bladestl_state::bladestl_tile_callback), this);
+ m_k007342->set_tile_callback(FUNC(bladestl_state::bladestl_tile_callback));
m_k007342->set_gfxdecode_tag(m_gfxdecode);
K007420(config, m_k007420, 0);
m_k007420->set_bank_limit(0x3ff);
- m_k007420->set_sprite_callback(FUNC(bladestl_state::bladestl_sprite_callback), this);
+ m_k007420->set_sprite_callback(FUNC(bladestl_state::bladestl_sprite_callback));
m_k007420->set_palette_tag("palette");
K051733(config, "k051733", 0);
diff --git a/src/mame/drivers/blitz68k.cpp b/src/mame/drivers/blitz68k.cpp
index bbaa5301a67..ae737a34b8c 100644
--- a/src/mame/drivers/blitz68k.cpp
+++ b/src/mame/drivers/blitz68k.cpp
@@ -1820,7 +1820,7 @@ void blitz68k_state::cjffruit(machine_config &config)
m_crtc->set_screen("screen");
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(4);
- m_crtc->set_on_update_addr_change_callback(FUNC(blitz68k_state::crtc_addr), this);
+ m_crtc->set_on_update_addr_change_callback(FUNC(blitz68k_state::crtc_addr));
m_crtc->out_vsync_callback().set(FUNC(blitz68k_state::crtc_vsync_irq1));
ramdac_config(config);
@@ -1853,7 +1853,7 @@ void blitz68k_state::bankrob(machine_config &config)
m_crtc->set_screen("screen");
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(4);
- m_crtc->set_on_update_addr_change_callback(FUNC(blitz68k_state::crtc_addr), this);
+ m_crtc->set_on_update_addr_change_callback(FUNC(blitz68k_state::crtc_addr));
m_crtc->out_vsync_callback().set(FUNC(blitz68k_state::crtc_vsync_irq3));
ramdac_config(config);
@@ -1884,7 +1884,7 @@ void blitz68k_state::bankroba(machine_config &config)
m_crtc->set_screen("screen");
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(4);
- m_crtc->set_on_update_addr_change_callback(FUNC(blitz68k_state::crtc_addr), this);
+ m_crtc->set_on_update_addr_change_callback(FUNC(blitz68k_state::crtc_addr));
m_crtc->out_vsync_callback().set(FUNC(blitz68k_state::crtc_vsync_irq5));
ramdac_config(config);
@@ -1914,7 +1914,7 @@ void blitz68k_state::deucesw2(machine_config &config)
m_crtc->set_screen("screen");
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(4);
- m_crtc->set_on_update_addr_change_callback(FUNC(blitz68k_state::crtc_addr), this);
+ m_crtc->set_on_update_addr_change_callback(FUNC(blitz68k_state::crtc_addr));
m_crtc->out_vsync_callback().set(FUNC(blitz68k_state::crtc_vsync_irq3));
ramdac_config(config);
@@ -1946,7 +1946,7 @@ void blitz68k_state::dualgame(machine_config &config)
m_crtc->set_screen("screen");
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(4);
- m_crtc->set_on_update_addr_change_callback(FUNC(blitz68k_state::crtc_addr), this);
+ m_crtc->set_on_update_addr_change_callback(FUNC(blitz68k_state::crtc_addr));
m_crtc->out_vsync_callback().set(FUNC(blitz68k_state::crtc_vsync_irq3));
ramdac_config(config);
@@ -1976,7 +1976,7 @@ void blitz68k_state::hermit(machine_config &config)
m_crtc->set_screen("screen");
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(4);
- m_crtc->set_on_update_addr_change_callback(FUNC(blitz68k_state::crtc_addr), this);
+ m_crtc->set_on_update_addr_change_callback(FUNC(blitz68k_state::crtc_addr));
m_crtc->out_vsync_callback().set(FUNC(blitz68k_state::crtc_vsync_irq1));
ramdac_config(config);
@@ -2010,7 +2010,7 @@ void blitz68k_state::maxidbl(machine_config &config)
m_crtc->set_screen("screen");
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(4);
- m_crtc->set_on_update_addr_change_callback(FUNC(blitz68k_state::crtc_addr), this);
+ m_crtc->set_on_update_addr_change_callback(FUNC(blitz68k_state::crtc_addr));
m_crtc->out_vsync_callback().set(FUNC(blitz68k_state::crtc_vsync_irq3));
ramdac_config(config);
diff --git a/src/mame/drivers/blockade.cpp b/src/mame/drivers/blockade.cpp
index 127c85c951b..5dcb98e9c19 100644
--- a/src/mame/drivers/blockade.cpp
+++ b/src/mame/drivers/blockade.cpp
@@ -443,7 +443,7 @@ const char *const blockade_sample_names[] =
void blockade_state::machine_start()
{
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(blockade_state::tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(blockade_state::tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_vblank_timer = timer_alloc(0);
diff --git a/src/mame/drivers/blockhl.cpp b/src/mame/drivers/blockhl.cpp
index c81c35e66fb..318fba0869f 100644
--- a/src/mame/drivers/blockhl.cpp
+++ b/src/mame/drivers/blockhl.cpp
@@ -306,13 +306,13 @@ void blockhl_state::blockhl(machine_config &config)
K052109(config, m_k052109, 0);
m_k052109->set_palette("palette");
m_k052109->set_screen("screen");
- m_k052109->set_tile_callback(FUNC(blockhl_state::tile_callback), this);
+ m_k052109->set_tile_callback(FUNC(blockhl_state::tile_callback));
m_k052109->irq_handler().set_inputline(m_maincpu, KONAMI_IRQ_LINE);
K051960(config, m_k051960, 0);
m_k051960->set_palette("palette");
m_k051960->set_screen("screen");
- m_k051960->set_sprite_callback(FUNC(blockhl_state::sprite_callback), this);
+ m_k051960->set_sprite_callback(FUNC(blockhl_state::sprite_callback));
// sound hardware
SPEAKER(config, "mono").front_center();
diff --git a/src/mame/drivers/bloodbro.cpp b/src/mame/drivers/bloodbro.cpp
index de5993ef4b8..3971dc8f494 100644
--- a/src/mame/drivers/bloodbro.cpp
+++ b/src/mame/drivers/bloodbro.cpp
@@ -576,7 +576,7 @@ void bloodbro_state::weststry(machine_config &config)
m_audiocpu->set_clock(XTAL(20'000'000)/4); /* 5MHz - verified on PCB */
m_audiocpu->set_addrmap(AS_PROGRAM, &bloodbro_state::weststry_sound_map);
- m_audiocpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate());
+ m_audiocpu->remove_irq_acknowledge_callback();
m_gfxdecode->set_info(gfx_weststry);
m_palette->set_format(palette_device::xBGR_444, 1024);
diff --git a/src/mame/drivers/bmcpokr.cpp b/src/mame/drivers/bmcpokr.cpp
index 6efbc64c122..3904354c1fe 100644
--- a/src/mame/drivers/bmcpokr.cpp
+++ b/src/mame/drivers/bmcpokr.cpp
@@ -126,8 +126,8 @@ TILE_GET_INFO_MEMBER(bmcpokr_state::get_tile_info)
void bmcpokr_state::video_start()
{
- m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(bmcpokr_state::get_tile_info<0>),this),TILEMAP_SCAN_ROWS,8,8,128,128);
- m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(bmcpokr_state::get_tile_info<1>),this),TILEMAP_SCAN_ROWS,8,8,128,128);
+ m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(bmcpokr_state::get_tile_info<0>)), TILEMAP_SCAN_ROWS, 8,8, 128,128);
+ m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(bmcpokr_state::get_tile_info<1>)), TILEMAP_SCAN_ROWS, 8,8, 128,128);
m_tilemap[0]->set_transparent_pen(0);
m_tilemap[1]->set_transparent_pen(0);
diff --git a/src/mame/drivers/bml3.cpp b/src/mame/drivers/bml3.cpp
index a1405f3e7e7..b7d5bafe055 100644
--- a/src/mame/drivers/bml3.cpp
+++ b/src/mame/drivers/bml3.cpp
@@ -766,11 +766,11 @@ void bml3_state::machine_reset()
/* defaults */
mem.install_rom(0xa000, 0xfeff,memregion("maincpu")->base() + 0xa000);
mem.install_rom(0xfff0, 0xffff,memregion("maincpu")->base() + 0xfff0);
- mem.install_write_handler(0xa000, 0xbfff, write8_delegate(FUNC(bml3_state::a000_w), this),0);
- mem.install_write_handler(0xc000, 0xdfff, write8_delegate(FUNC(bml3_state::c000_w), this),0);
- mem.install_write_handler(0xe000, 0xefff, write8_delegate(FUNC(bml3_state::e000_w), this),0);
- mem.install_write_handler(0xf000, 0xfeff, write8_delegate(FUNC(bml3_state::f000_w), this),0);
- mem.install_write_handler(0xfff0, 0xffff, write8_delegate(FUNC(bml3_state::fff0_w), this),0);
+ mem.install_write_handler(0xa000, 0xbfff, write8_delegate(*this, FUNC(bml3_state::a000_w)), 0);
+ mem.install_write_handler(0xc000, 0xdfff, write8_delegate(*this, FUNC(bml3_state::c000_w)), 0);
+ mem.install_write_handler(0xe000, 0xefff, write8_delegate(*this, FUNC(bml3_state::e000_w)), 0);
+ mem.install_write_handler(0xf000, 0xfeff, write8_delegate(*this, FUNC(bml3_state::f000_w)), 0);
+ mem.install_write_handler(0xfff0, 0xffff, write8_delegate(*this, FUNC(bml3_state::fff0_w)), 0);
m_firq_mask = -1; // disable firq
}
@@ -798,16 +798,17 @@ WRITE8_MEMBER(bml3_state::piaA_w)
if(data & 0x40)
{
mem.install_readwrite_handler(0xa000, 0xbfff,
- read8_delegate(FUNC(bml3_state::a000_r), this),
- write8_delegate(FUNC(bml3_state::a000_w), this), 0);
+ read8_delegate(*this, FUNC(bml3_state::a000_r)),
+ write8_delegate(*this, FUNC(bml3_state::a000_w)),
+ 0);
}
else
{
mem.install_rom(0xa000, 0xbfff,
- memregion("maincpu")->base() + 0xa000);
+ memregion("maincpu")->base() + 0xa000);
mem.install_write_handler(0xa000, 0xbfff,
- write8_delegate(FUNC(bml3_state::a000_w), this),
- 0);
+ write8_delegate(*this, FUNC(bml3_state::a000_w)),
+ 0);
}
}
@@ -816,16 +817,17 @@ WRITE8_MEMBER(bml3_state::piaA_w)
if(data & 0x40)
{
mem.install_readwrite_handler(0xc000, 0xdfff,
- read8_delegate(FUNC(bml3_state::c000_r), this),
- write8_delegate(FUNC(bml3_state::c000_w), this), 0);
+ read8_delegate(*this, FUNC(bml3_state::c000_r)),
+ write8_delegate(*this, FUNC(bml3_state::c000_w)),
+ 0);
}
else
{
mem.install_rom(0xc000, 0xdfff,
- memregion("maincpu")->base() + 0xc000);
+ memregion("maincpu")->base() + 0xc000);
mem.install_write_handler(0xc000, 0xdfff,
- write8_delegate(FUNC(bml3_state::c000_w), this),
- 0);
+ write8_delegate(*this, FUNC(bml3_state::c000_w)),
+ 0);
}
}
@@ -834,47 +836,50 @@ WRITE8_MEMBER(bml3_state::piaA_w)
if(data & 0x80)
{
mem.install_readwrite_handler(0xe000, 0xefff,
- read8_delegate(FUNC(bml3_state::e000_r), this),
- write8_delegate(FUNC(bml3_state::e000_w), this), 0);
+ read8_delegate(*this, FUNC(bml3_state::e000_r)),
+ write8_delegate(*this, FUNC(bml3_state::e000_w)),
+ 0);
}
else
{
mem.install_rom(0xe000, 0xefff,
- memregion("maincpu")->base() + 0xe000);
+ memregion("maincpu")->base() + 0xe000);
mem.install_write_handler(0xe000, 0xefff,
- write8_delegate(FUNC(bml3_state::e000_w), this),
- 0);
+ write8_delegate(*this, FUNC(bml3_state::e000_w)),
+ 0);
}
}
if(data & 1)
{
mem.install_readwrite_handler(0xf000, 0xfeff,
- read8_delegate(FUNC(bml3_state::f000_r), this),
- write8_delegate(FUNC(bml3_state::f000_w), this), 0);
+ read8_delegate(*this, FUNC(bml3_state::f000_r)),
+ write8_delegate(*this, FUNC(bml3_state::f000_w)),
+ 0);
}
else
{
mem.install_rom(0xf000, 0xfeff,
- memregion("maincpu")->base() + 0xf000);
+ memregion("maincpu")->base() + 0xf000);
mem.install_write_handler(0xf000, 0xfeff,
- write8_delegate(FUNC(bml3_state::f000_w), this),
- 0);
+ write8_delegate(*this, FUNC(bml3_state::f000_w)),
+ 0);
}
if(data & 2)
{
mem.install_readwrite_handler(0xfff0, 0xffff,
- read8_delegate(FUNC(bml3_state::fff0_r), this),
- write8_delegate(FUNC(bml3_state::fff0_w), this), 0);
+ read8_delegate(*this, FUNC(bml3_state::fff0_r)),
+ write8_delegate(*this, FUNC(bml3_state::fff0_w)),
+ 0);
}
else
{
mem.install_rom(0xfff0, 0xffff,
- memregion("maincpu")->base() + 0xfff0);
+ memregion("maincpu")->base() + 0xfff0);
mem.install_write_handler(0xfff0, 0xffff,
- write8_delegate(FUNC(bml3_state::fff0_w), this),
- 0);
+ write8_delegate(*this, FUNC(bml3_state::fff0_w)),
+ 0);
}
}
@@ -936,7 +941,7 @@ void bml3_state::bml3_common(machine_config &config)
m_crtc->set_screen("screen");
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8);
- m_crtc->set_update_row_callback(FUNC(bml3_state::crtc_update_row), this);
+ m_crtc->set_update_row_callback(FUNC(bml3_state::crtc_update_row));
// fire once per scan of an individual key
// According to the service manual (p.65), the keyboard timer is driven by the horizontal video sync clock.
diff --git a/src/mame/drivers/bnstars.cpp b/src/mame/drivers/bnstars.cpp
index d67b3dbdae7..dd1f1a6c771 100644
--- a/src/mame/drivers/bnstars.cpp
+++ b/src/mame/drivers/bnstars.cpp
@@ -489,28 +489,24 @@ void bnstars_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, co
void bnstars_state::video_start()
{
- m_ms32_tx_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(bnstars_state::get_ms32_tx0_tile_info),this),TILEMAP_SCAN_ROWS, 8, 8,64,64);
- m_ms32_tx_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(bnstars_state::get_ms32_tx1_tile_info),this),TILEMAP_SCAN_ROWS, 8, 8,64,64);
+ m_ms32_tx_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(bnstars_state::get_ms32_tx0_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64,64);
+ m_ms32_tx_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(bnstars_state::get_ms32_tx1_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64,64);
m_ms32_tx_tilemap[0]->set_transparent_pen(0);
m_ms32_tx_tilemap[1]->set_transparent_pen(0);
- m_ms32_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(bnstars_state::get_ms32_bg0_tile_info),this),TILEMAP_SCAN_ROWS,16,16,64,64);
- m_ms32_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(bnstars_state::get_ms32_bg1_tile_info),this),TILEMAP_SCAN_ROWS,16,16,64,64);
+ m_ms32_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(bnstars_state::get_ms32_bg0_tile_info)), TILEMAP_SCAN_ROWS, 16,16, 64,64);
+ m_ms32_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(bnstars_state::get_ms32_bg1_tile_info)), TILEMAP_SCAN_ROWS, 16,16, 64,64);
m_ms32_bg_tilemap[0]->set_transparent_pen(0);
m_ms32_bg_tilemap[1]->set_transparent_pen(0);
- m_ms32_roz_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(bnstars_state::get_ms32_roz0_tile_info),this),TILEMAP_SCAN_ROWS,16,16,128,128);
- m_ms32_roz_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(bnstars_state::get_ms32_roz1_tile_info),this),TILEMAP_SCAN_ROWS,16,16,128,128);
+ m_ms32_roz_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(bnstars_state::get_ms32_roz0_tile_info)),TILEMAP_SCAN_ROWS, 16,16,128,128);
+ m_ms32_roz_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(bnstars_state::get_ms32_roz1_tile_info)),TILEMAP_SCAN_ROWS, 16,16,128,128);
m_ms32_roz_tilemap[0]->set_transparent_pen(0);
m_ms32_roz_tilemap[1]->set_transparent_pen(0);
-
-
}
-
-
uint32_t bnstars_state::screen_update_bnstars_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
screen.priority().fill(0, cliprect);
diff --git a/src/mame/drivers/boogwing.cpp b/src/mame/drivers/boogwing.cpp
index 0e0f17730cd..da4f8945578 100644
--- a/src/mame/drivers/boogwing.cpp
+++ b/src/mame/drivers/boogwing.cpp
@@ -360,7 +360,7 @@ void boogwing_state::boogwing(machine_config &config)
m_deco_tilegen[0]->set_pf1_col_mask(0x0f);
m_deco_tilegen[0]->set_pf2_col_mask(0x0f);
// no bank1 callback
- m_deco_tilegen[0]->set_bank2_callback(FUNC(boogwing_state::bank_callback), this);
+ m_deco_tilegen[0]->set_bank2_callback(FUNC(boogwing_state::bank_callback));
m_deco_tilegen[0]->set_pf12_8x8_bank(0);
m_deco_tilegen[0]->set_pf12_16x16_bank(1);
m_deco_tilegen[0]->set_gfxdecode_tag("gfxdecode");
@@ -374,8 +374,8 @@ void boogwing_state::boogwing(machine_config &config)
m_deco_tilegen[1]->set_pf2_col_bank(16);
m_deco_tilegen[1]->set_pf1_col_mask(0x0f);
m_deco_tilegen[1]->set_pf2_col_mask(0x0f);
- m_deco_tilegen[1]->set_bank1_callback(FUNC(boogwing_state::bank_callback2), this);
- m_deco_tilegen[1]->set_bank2_callback(FUNC(boogwing_state::bank_callback2), this);
+ m_deco_tilegen[1]->set_bank1_callback(FUNC(boogwing_state::bank_callback2));
+ m_deco_tilegen[1]->set_bank2_callback(FUNC(boogwing_state::bank_callback2));
m_deco_tilegen[1]->set_pf12_8x8_bank(0);
m_deco_tilegen[1]->set_pf12_16x16_bank(2);
m_deco_tilegen[1]->set_gfxdecode_tag("gfxdecode");
diff --git a/src/mame/drivers/bottom9.cpp b/src/mame/drivers/bottom9.cpp
index 321a07fe2ad..92f954c9ed4 100644
--- a/src/mame/drivers/bottom9.cpp
+++ b/src/mame/drivers/bottom9.cpp
@@ -321,17 +321,17 @@ void bottom9_state::bottom9(machine_config &config)
K052109(config, m_k052109, 0); // 051961 on schematics
m_k052109->set_palette(m_palette);
m_k052109->set_screen("screen");
- m_k052109->set_tile_callback(FUNC(bottom9_state::tile_callback), this);
+ m_k052109->set_tile_callback(FUNC(bottom9_state::tile_callback));
m_k052109->irq_handler().set_inputline(m_maincpu, M6809_IRQ_LINE);
K051960(config, m_k051960, 0);
m_k051960->set_palette(m_palette);
m_k051960->set_screen("screen");
- m_k051960->set_sprite_callback(FUNC(bottom9_state::sprite_callback), this);
+ m_k051960->set_sprite_callback(FUNC(bottom9_state::sprite_callback));
K051316(config, m_k051316, 0);
m_k051316->set_palette(m_palette);
- m_k051316->set_zoom_callback(FUNC(bottom9_state::zoom_callback), this);
+ m_k051316->set_zoom_callback(FUNC(bottom9_state::zoom_callback));
/* sound hardware */
SPEAKER(config, "mono").front_center();
diff --git a/src/mame/drivers/btime.cpp b/src/mame/drivers/btime.cpp
index 8a7301793ae..43b90ca079d 100644
--- a/src/mame/drivers/btime.cpp
+++ b/src/mame/drivers/btime.cpp
@@ -2042,7 +2042,7 @@ void btime_state::init_protennb()
void btime_state::init_wtennis()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xc15f, 0xc15f, read8_delegate(FUNC(btime_state::wtennis_reset_hack_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xc15f, 0xc15f, read8_delegate(*this, FUNC(btime_state::wtennis_reset_hack_r)));
m_audiocpu->space(AS_PROGRAM).install_read_bank(0x0200, 0x0fff, "bank10");
membank("bank10")->set_base(memregion("audiocpu")->base() + 0xe200);
diff --git a/src/mame/drivers/bw12.cpp b/src/mame/drivers/bw12.cpp
index ddee36e8bfe..afc4676795f 100644
--- a/src/mame/drivers/bw12.cpp
+++ b/src/mame/drivers/bw12.cpp
@@ -559,7 +559,7 @@ void bw12_state::common(machine_config &config)
/* video hardware */
screen_device &screen(SCREEN(config, SCREEN_TAG, SCREEN_TYPE_RASTER, rgb_t::amber()));
screen.set_refresh_hz(60);
- screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); // not accurate
screen.set_screen_update(MC6845_TAG, FUNC(mc6845_device::screen_update));
screen.set_size(640, 200);
screen.set_visarea(0, 640-1, 0, 200-1);
@@ -571,7 +571,7 @@ void bw12_state::common(machine_config &config)
m_crtc->set_screen(SCREEN_TAG);
m_crtc->set_show_border_area(true);
m_crtc->set_char_width(8);
- m_crtc->set_update_row_callback(FUNC(bw12_state::crtc_update_row), this);
+ m_crtc->set_update_row_callback(FUNC(bw12_state::crtc_update_row));
/* sound hardware */
SPEAKER(config, "speaker").front_center();
diff --git a/src/mame/drivers/bzone.cpp b/src/mame/drivers/bzone.cpp
index 09e95802ce4..ccfefcb64e4 100644
--- a/src/mame/drivers/bzone.cpp
+++ b/src/mame/drivers/bzone.cpp
@@ -896,8 +896,8 @@ void bzone_state::init_bradley()
space.install_ram(0x400, 0x7ff);
space.install_read_port(0x1808, 0x1808, "1808");
space.install_read_port(0x1809, 0x1809, "1809");
- space.install_read_handler(0x180a, 0x180a, read8smo_delegate(FUNC(bzone_state::analog_data_r),this));
- space.install_write_handler(0x1848, 0x1850, write8sm_delegate(FUNC(bzone_state::analog_select_w),this));
+ space.install_read_handler(0x180a, 0x180a, read8smo_delegate(*this, FUNC(bzone_state::analog_data_r)));
+ space.install_write_handler(0x1848, 0x1850, write8sm_delegate(*this, FUNC(bzone_state::analog_select_w)));
}
diff --git a/src/mame/drivers/c128.cpp b/src/mame/drivers/c128.cpp
index a0571df460e..0aaf87a0966 100644
--- a/src/mame/drivers/c128.cpp
+++ b/src/mame/drivers/c128.cpp
@@ -1755,7 +1755,7 @@ void c128_state::ntsc(machine_config &config)
m_user->pl_handler().set(FUNC(c128_state::write_user_pb7));
m_user->pm_handler().set(FUNC(c128_state::write_user_pa2));
- QUICKLOAD(config, "quickload", "p00,prg", CBM_QUICKLOAD_DELAY).set_load_callback(FUNC(c128_state::quickload_c128), this);
+ QUICKLOAD(config, "quickload", "p00,prg", CBM_QUICKLOAD_DELAY).set_load_callback(FUNC(c128_state::quickload_c128));
// software list
SOFTWARE_LIST(config, "cart_list_vic10").set_original("vic10").set_filter("NTSC");
@@ -1942,7 +1942,7 @@ void c128_state::pal(machine_config &config)
m_user->pl_handler().set(FUNC(c128_state::write_user_pb7));
m_user->pm_handler().set(FUNC(c128_state::write_user_pa2));
- QUICKLOAD(config, "quickload", "p00,prg", CBM_QUICKLOAD_DELAY).set_load_callback(FUNC(c128_state::quickload_c128), this);
+ QUICKLOAD(config, "quickload", "p00,prg", CBM_QUICKLOAD_DELAY).set_load_callback(FUNC(c128_state::quickload_c128));
// software list
SOFTWARE_LIST(config, "cart_list_vic10").set_original("vic10");
diff --git a/src/mame/drivers/c2color.cpp b/src/mame/drivers/c2color.cpp
index 8eed63b0ed4..a3ebfaa48dd 100644
--- a/src/mame/drivers/c2color.cpp
+++ b/src/mame/drivers/c2color.cpp
@@ -140,7 +140,7 @@ void c2_color_state::c2_color(machine_config &config)
GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "c2color_cart");
m_cart->set_width(GENERIC_ROM16_WIDTH);
- m_cart->set_device_load(FUNC(c2_color_state::cart_load), this);
+ m_cart->set_device_load(FUNC(c2_color_state::cart_load));
SOFTWARE_LIST(config, "cart_list").set_original("c2color_cart");
}
diff --git a/src/mame/drivers/c64.cpp b/src/mame/drivers/c64.cpp
index 0906d5ffa13..da55973cb2e 100644
--- a/src/mame/drivers/c64.cpp
+++ b/src/mame/drivers/c64.cpp
@@ -1536,7 +1536,7 @@ void c64_state::ntsc(machine_config &config)
m_user->pl_handler().set(FUNC(c64_state::write_user_pb7));
m_user->pm_handler().set(FUNC(c64_state::write_user_pa2));
- QUICKLOAD(config, "quickload", "p00,prg,t64", CBM_QUICKLOAD_DELAY).set_load_callback(FUNC(c64_state::quickload_c64), this);
+ QUICKLOAD(config, "quickload", "p00,prg,t64", CBM_QUICKLOAD_DELAY).set_load_callback(FUNC(c64_state::quickload_c64));
// software list
SOFTWARE_LIST(config, "cart_list_vic10").set_original("vic10").set_filter("NTSC");
@@ -1708,7 +1708,7 @@ void c64_state::pal(machine_config &config)
m_user->pl_handler().set(FUNC(c64_state::write_user_pb7));
m_user->pm_handler().set(FUNC(c64_state::write_user_pa2));
- QUICKLOAD(config, "quickload", "p00,prg,t64", CBM_QUICKLOAD_DELAY).set_load_callback(FUNC(c64_state::quickload_c64), this);
+ QUICKLOAD(config, "quickload", "p00,prg,t64", CBM_QUICKLOAD_DELAY).set_load_callback(FUNC(c64_state::quickload_c64));
// software list
SOFTWARE_LIST(config, "cart_list_vic10").set_original("vic10").set_filter("PAL");
@@ -1854,7 +1854,7 @@ void c64gs_state::pal_gs(machine_config &config)
m_user->pl_handler().set(FUNC(c64_state::write_user_pb7));
m_user->pm_handler().set(FUNC(c64_state::write_user_pa2));
- QUICKLOAD(config, "quickload", "p00,prg,t64", CBM_QUICKLOAD_DELAY).set_load_callback(FUNC(c64_state::quickload_c64), this);
+ QUICKLOAD(config, "quickload", "p00,prg,t64", CBM_QUICKLOAD_DELAY).set_load_callback(FUNC(c64_state::quickload_c64));
// software list
SOFTWARE_LIST(config, "cart_list_vic10").set_original("vic10").set_filter("PAL");
diff --git a/src/mame/drivers/cabaret.cpp b/src/mame/drivers/cabaret.cpp
index 1aa0fbd62d0..126c9a7856c 100644
--- a/src/mame/drivers/cabaret.cpp
+++ b/src/mame/drivers/cabaret.cpp
@@ -132,8 +132,8 @@ WRITE8_MEMBER(cabaret_state::fg_color_w)
void cabaret_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cabaret_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cabaret_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cabaret_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cabaret_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_fg_tilemap->set_transparent_pen(0);
m_bg_tilemap->set_scroll_cols(64);
}
diff --git a/src/mame/drivers/calchase.cpp b/src/mame/drivers/calchase.cpp
index 4a53a9e4ecf..c3bfb65cb07 100644
--- a/src/mame/drivers/calchase.cpp
+++ b/src/mame/drivers/calchase.cpp
@@ -690,10 +690,8 @@ void calchase_state::calchase(machine_config &config)
ide.irq_handler().set("pic8259_2", FUNC(pic8259_device::ir6_w));
pci_bus_legacy_device &pcibus(PCI_BUS_LEGACY(config, "pcibus", 0, 0));
- pcibus.set_device_read (0, FUNC(calchase_state::intel82439tx_pci_r), this);
- pcibus.set_device_write(0, FUNC(calchase_state::intel82439tx_pci_w), this);
- pcibus.set_device_read (7, FUNC(calchase_state::intel82371ab_pci_r), this);
- pcibus.set_device_write(7, FUNC(calchase_state::intel82371ab_pci_w), this);
+ pcibus.set_device(0, FUNC(calchase_state::intel82439tx_pci_r), FUNC(calchase_state::intel82439tx_pci_w));
+ pcibus.set_device(7, FUNC(calchase_state::intel82371ab_pci_r), FUNC(calchase_state::intel82371ab_pci_w));
/* video hardware */
pcvideo_trident_vga(config);
@@ -725,10 +723,8 @@ void calchase_state::hostinv(machine_config &config)
ide.irq_handler().set("pic8259_2", FUNC(pic8259_device::ir6_w));
pci_bus_legacy_device &pcibus(PCI_BUS_LEGACY(config, "pcibus", 0, 0));
- pcibus.set_device_read (0, FUNC(calchase_state::intel82439tx_pci_r), this);
- pcibus.set_device_write(0, FUNC(calchase_state::intel82439tx_pci_w), this);
- pcibus.set_device_read (7, FUNC(calchase_state::intel82371ab_pci_r), this);
- pcibus.set_device_write(7, FUNC(calchase_state::intel82371ab_pci_w), this);
+ pcibus.set_device(0, FUNC(calchase_state::intel82439tx_pci_r), FUNC(calchase_state::intel82439tx_pci_w));
+ pcibus.set_device(7, FUNC(calchase_state::intel82371ab_pci_r), FUNC(calchase_state::intel82371ab_pci_w));
/* video hardware */
pcvideo_trident_vga(config);
@@ -763,7 +759,7 @@ void calchase_state::init_calchase()
intel82439tx_init();
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x3f0b160, 0x3f0b163, read32_delegate(FUNC(calchase_state::calchase_idle_skip_r),this), write32_delegate(FUNC(calchase_state::calchase_idle_skip_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x3f0b160, 0x3f0b163, read32_delegate(*this, FUNC(calchase_state::calchase_idle_skip_r)), write32_delegate(*this, FUNC(calchase_state::calchase_idle_skip_w)));
}
void calchase_state::init_hostinv()
diff --git a/src/mame/drivers/calcune.cpp b/src/mame/drivers/calcune.cpp
index 5697e051c79..fba577b3ff1 100644
--- a/src/mame/drivers/calcune.cpp
+++ b/src/mame/drivers/calcune.cpp
@@ -287,8 +287,8 @@ void calcune_state::calcune(machine_config &config)
m_vdp[1]->add_route(ALL_OUTPUTS, "lspeaker", 0.25);
m_vdp[1]->add_route(ALL_OUTPUTS, "rspeaker", 0.25);
- TIMER(config, "scantimer").configure_scanline("gen_vdp1", FUNC(sega315_5313_device::megadriv_scanline_timer_callback_alt_timing), "megadriv", 0, 1);
- TIMER(config, "scantimer2").configure_scanline("gen_vdp2", FUNC(sega315_5313_device::megadriv_scanline_timer_callback_alt_timing), "megadriv", 0, 1);
+ TIMER(config, "scantimer").configure_scanline(m_vdp[0], FUNC(sega315_5313_device::megadriv_scanline_timer_callback_alt_timing), "megadriv", 0, 1);
+ TIMER(config, "scantimer2").configure_scanline(m_vdp[1], FUNC(sega315_5313_device::megadriv_scanline_timer_callback_alt_timing), "megadriv", 0, 1);
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
diff --git a/src/mame/drivers/calorie.cpp b/src/mame/drivers/calorie.cpp
index 41c3028527c..1f6e0346514 100644
--- a/src/mame/drivers/calorie.cpp
+++ b/src/mame/drivers/calorie.cpp
@@ -166,8 +166,8 @@ TILE_GET_INFO_MEMBER(calorie_state::get_fg_tile_info)
void calorie_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(calorie_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 16, 16);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(calorie_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(calorie_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 16, 16);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(calorie_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(0);
}
diff --git a/src/mame/drivers/camplynx.cpp b/src/mame/drivers/camplynx.cpp
index 1376514a64b..4c09e4f8e2b 100644
--- a/src/mame/drivers/camplynx.cpp
+++ b/src/mame/drivers/camplynx.cpp
@@ -895,7 +895,7 @@ void camplynx_state::lynx48k(machine_config &config)
m_crtc->set_screen("screen");
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8);
- m_crtc->set_update_row_callback(FUNC(camplynx_state::lynx48k_update_row), this);
+ m_crtc->set_update_row_callback(FUNC(camplynx_state::lynx48k_update_row));
m_crtc->out_vsync_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
/* software lists */
@@ -944,7 +944,7 @@ void camplynx_state::lynx128k(machine_config &config)
m_crtc->set_screen("screen");
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8);
- m_crtc->set_update_row_callback(FUNC(camplynx_state::lynx128k_update_row), this);
+ m_crtc->set_update_row_callback(FUNC(camplynx_state::lynx128k_update_row));
m_crtc->out_vsync_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
lynx_disk(config);
diff --git a/src/mame/drivers/cardline.cpp b/src/mame/drivers/cardline.cpp
index 89d4dc1c19b..bad735186f5 100644
--- a/src/mame/drivers/cardline.cpp
+++ b/src/mame/drivers/cardline.cpp
@@ -362,8 +362,8 @@ void cardline_state::cardline(machine_config &config)
crtc.set_screen("screen");
crtc.set_show_border_area(false);
crtc.set_char_width(8);
- crtc.set_begin_update_callback(FUNC(cardline_state::crtc_begin_update), this);
- crtc.set_update_row_callback(FUNC(cardline_state::crtc_update_row), this);
+ crtc.set_begin_update_callback(FUNC(cardline_state::crtc_begin_update));
+ crtc.set_update_row_callback(FUNC(cardline_state::crtc_update_row));
crtc.out_hsync_callback().set(FUNC(cardline_state::hsync_changed));
crtc.out_vsync_callback().set(FUNC(cardline_state::vsync_changed));
diff --git a/src/mame/drivers/carjmbre.cpp b/src/mame/drivers/carjmbre.cpp
index 4f41fa0d45a..0c7e19c8e9c 100644
--- a/src/mame/drivers/carjmbre.cpp
+++ b/src/mame/drivers/carjmbre.cpp
@@ -169,7 +169,7 @@ TILE_GET_INFO_MEMBER(carjmbre_state::get_tile_info)
void carjmbre_state::video_start()
{
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(carjmbre_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(carjmbre_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_tilemap->set_transparent_pen(0);
}
diff --git a/src/mame/drivers/casloopy.cpp b/src/mame/drivers/casloopy.cpp
index e189a822b63..f1529712729 100644
--- a/src/mame/drivers/casloopy.cpp
+++ b/src/mame/drivers/casloopy.cpp
@@ -544,7 +544,7 @@ void casloopy_state::casloopy(machine_config &config)
cartslot.set_width(GENERIC_ROM32_WIDTH);
cartslot.set_endian(ENDIANNESS_LITTLE);
cartslot.set_must_be_loaded(true);
- cartslot.set_device_load(FUNC(casloopy_state::cart_load), this);
+ cartslot.set_device_load(FUNC(casloopy_state::cart_load));
/* software lists */
SOFTWARE_LIST(config, "cart_list").set_original("casloopy");
diff --git a/src/mame/drivers/caswin.cpp b/src/mame/drivers/caswin.cpp
index 06e4c1cac33..3dbefa88cac 100644
--- a/src/mame/drivers/caswin.cpp
+++ b/src/mame/drivers/caswin.cpp
@@ -132,7 +132,7 @@ TILE_GET_INFO_MEMBER(caswin_state::get_sc0_tile_info)
void caswin_state::video_start()
{
m_lamps.resolve();
- m_sc0_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(caswin_state::get_sc0_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32);
+ m_sc0_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(caswin_state::get_sc0_tile_info)), TILEMAP_SCAN_ROWS, 8,8,32,32);
}
uint32_t caswin_state::screen_update_vvillage(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
diff --git a/src/mame/drivers/cat.cpp b/src/mame/drivers/cat.cpp
index d1ed24efad5..0c5e7979b10 100644
--- a/src/mame/drivers/cat.cpp
+++ b/src/mame/drivers/cat.cpp
@@ -919,7 +919,7 @@ TIMER_CALLBACK_MEMBER(cat_state::counter_6ms_callback)
void cat_state::cpu_space_map(address_map &map)
{
map(0xfffff0, 0xffffff).m(m_maincpu, FUNC(m68000_base_device::autovectors_map));
- map(0xfffff3, 0xfffff3).lr8("interrupt 1", [this]() { m_maincpu->set_input_line(1, CLEAR_LINE); return m68000_device::autovector(1); });
+ map(0xfffff3, 0xfffff3).lr8(NAME([this]() { m_maincpu->set_input_line(1, CLEAR_LINE); return m68000_device::autovector(1); }));
}
MACHINE_START_MEMBER(cat_state,cat)
diff --git a/src/mame/drivers/cave.cpp b/src/mame/drivers/cave.cpp
index 89e36b424a8..49fcd7371fc 100644
--- a/src/mame/drivers/cave.cpp
+++ b/src/mame/drivers/cave.cpp
@@ -2501,7 +2501,7 @@ void cave_state::sailormn(machine_config &config)
m_screen[0]->set_visarea(0+1, 320+1-1, 0, 240-1);
/* Layer 2 (8x8) needs to be handled differently */
- m_tilemap[2]->set_tile_callback(tilemap038_device::tmap038_cb_delegate(FUNC(cave_state::sailormn_get_banked_code), this)); /* Layer 2 has 1 banked ROM */
+ m_tilemap[2]->set_tile_callback(FUNC(cave_state::sailormn_get_banked_code)); /* Layer 2 has 1 banked ROM */
GFXDECODE(config, m_gfxdecode[0], m_palette[0], gfx_sailormn); // 4 bit sprites, 6 bit tiles
m_palette[0]->set_entries(0x4000/2);
diff --git a/src/mame/drivers/cb2001.cpp b/src/mame/drivers/cb2001.cpp
index 669049d97d4..9d5921bc600 100644
--- a/src/mame/drivers/cb2001.cpp
+++ b/src/mame/drivers/cb2001.cpp
@@ -539,9 +539,9 @@ TILE_GET_INFO_MEMBER(cb2001_state::get_cb2001_reel3_tile_info)
void cb2001_state::video_start()
{
- m_reel1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cb2001_state::get_cb2001_reel1_tile_info),this),TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
- m_reel2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cb2001_state::get_cb2001_reel2_tile_info),this),TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
- m_reel3_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cb2001_state::get_cb2001_reel3_tile_info),this),TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
+ m_reel1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cb2001_state::get_cb2001_reel1_tile_info)), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
+ m_reel2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cb2001_state::get_cb2001_reel2_tile_info)), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
+ m_reel3_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cb2001_state::get_cb2001_reel3_tile_info)), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
m_reel1_tilemap->set_scroll_cols(64);
m_reel2_tilemap->set_scroll_cols(64);
diff --git a/src/mame/drivers/cball.cpp b/src/mame/drivers/cball.cpp
index 38d9d82e31c..f0c8e1cc731 100644
--- a/src/mame/drivers/cball.cpp
+++ b/src/mame/drivers/cball.cpp
@@ -82,7 +82,7 @@ WRITE8_MEMBER(cball_state::vram_w)
void cball_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cball_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cball_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
diff --git a/src/mame/drivers/cbm2.cpp b/src/mame/drivers/cbm2.cpp
index 8fef6b51a6e..cdfe8850ea5 100644
--- a/src/mame/drivers/cbm2.cpp
+++ b/src/mame/drivers/cbm2.cpp
@@ -2361,7 +2361,7 @@ void p500_state::p500_ntsc(machine_config &config)
rs232.dsr_handler().set(m_acia, FUNC(mos6551_device::write_dsr));
rs232.cts_handler().set(m_acia, FUNC(mos6551_device::write_cts));
- QUICKLOAD(config, "quickload", "p00,prg", CBM_QUICKLOAD_DELAY).set_load_callback(FUNC(p500_state::quickload_p500), this);
+ QUICKLOAD(config, "quickload", "p00,prg", CBM_QUICKLOAD_DELAY).set_load_callback(FUNC(p500_state::quickload_p500));
// internal ram
_128k(config);
@@ -2492,7 +2492,7 @@ void p500_state::p500_pal(machine_config &config)
rs232.dsr_handler().set(m_acia, FUNC(mos6551_device::write_dsr));
rs232.cts_handler().set(m_acia, FUNC(mos6551_device::write_cts));
- QUICKLOAD(config, "quickload", "p00,prg", CBM_QUICKLOAD_DELAY).set_load_callback(FUNC(p500_state::quickload_p500), this);
+ QUICKLOAD(config, "quickload", "p00,prg", CBM_QUICKLOAD_DELAY).set_load_callback(FUNC(p500_state::quickload_p500));
// internal ram
_128k(config);
@@ -2535,7 +2535,7 @@ void cbm2_state::cbm2lp_ntsc(machine_config &config)
m_crtc->set_screen(SCREEN_TAG);
m_crtc->set_show_border_area(true);
m_crtc->set_char_width(9);
- m_crtc->set_update_row_callback(FUNC(cbm2_state::crtc_update_row), this);
+ m_crtc->set_update_row_callback(FUNC(cbm2_state::crtc_update_row));
// sound hardware
SPEAKER(config, "mono").front_center();
@@ -2622,7 +2622,7 @@ void cbm2_state::cbm2lp_ntsc(machine_config &config)
rs232.dsr_handler().set(m_acia, FUNC(mos6551_device::write_dsr));
rs232.cts_handler().set(m_acia, FUNC(mos6551_device::write_cts));
- QUICKLOAD(config, "quickload", "p00,prg,t64", CBM_QUICKLOAD_DELAY).set_load_callback(FUNC(cbm2_state::quickload_cbmb), this);
+ QUICKLOAD(config, "quickload", "p00,prg,t64", CBM_QUICKLOAD_DELAY).set_load_callback(FUNC(cbm2_state::quickload_cbmb));
// software list
SOFTWARE_LIST(config, "cart_list").set_original("cbm2_cart").set_filter("NTSC");
diff --git a/src/mame/drivers/cbuster.cpp b/src/mame/drivers/cbuster.cpp
index 67c8d2efc10..54b1c83bbf6 100644
--- a/src/mame/drivers/cbuster.cpp
+++ b/src/mame/drivers/cbuster.cpp
@@ -117,7 +117,7 @@ void cbuster_state::main_map(address_map &map)
map(0x0bc002, 0x0bc003).portr("DSW");
map(0x0bc002, 0x0bc003).w(m_soundlatch, FUNC(generic_latch_8_device::write)).umask16(0x00ff).cswidth(16);
map(0x0bc004, 0x0bc005).rw(FUNC(cbuster_state::prot_r), FUNC(cbuster_state::prot_w));
- map(0x0bc006, 0x0bc007).portr("COINS").lw16("irq_ack_w", [this](u16 data) { m_maincpu->set_input_line(4, CLEAR_LINE); });
+ map(0x0bc006, 0x0bc007).portr("COINS").lw16(NAME([this] (u16 data) { m_maincpu->set_input_line(4, CLEAR_LINE); }));
}
@@ -292,8 +292,8 @@ void cbuster_state::twocrude(machine_config &config)
m_deco_tilegen[0]->set_pf2_col_bank(0x20);
m_deco_tilegen[0]->set_pf1_col_mask(0x0f);
m_deco_tilegen[0]->set_pf2_col_mask(0x0f);
- m_deco_tilegen[0]->set_bank1_callback(FUNC(cbuster_state::bank_callback), this);
- m_deco_tilegen[0]->set_bank2_callback(FUNC(cbuster_state::bank_callback), this);
+ m_deco_tilegen[0]->set_bank1_callback(FUNC(cbuster_state::bank_callback));
+ m_deco_tilegen[0]->set_bank2_callback(FUNC(cbuster_state::bank_callback));
m_deco_tilegen[0]->set_pf12_8x8_bank(0);
m_deco_tilegen[0]->set_pf12_16x16_bank(1);
m_deco_tilegen[0]->set_gfxdecode_tag("gfxdecode");
@@ -307,8 +307,8 @@ void cbuster_state::twocrude(machine_config &config)
m_deco_tilegen[1]->set_pf2_col_bank(0x40);
m_deco_tilegen[1]->set_pf1_col_mask(0x0f);
m_deco_tilegen[1]->set_pf2_col_mask(0x0f);
- m_deco_tilegen[1]->set_bank1_callback(FUNC(cbuster_state::bank_callback), this);
- m_deco_tilegen[1]->set_bank2_callback(FUNC(cbuster_state::bank_callback), this);
+ m_deco_tilegen[1]->set_bank1_callback(FUNC(cbuster_state::bank_callback));
+ m_deco_tilegen[1]->set_bank2_callback(FUNC(cbuster_state::bank_callback));
m_deco_tilegen[1]->set_pf12_8x8_bank(0);
m_deco_tilegen[1]->set_pf12_16x16_bank(2);
m_deco_tilegen[1]->set_gfxdecode_tag("gfxdecode");
diff --git a/src/mame/drivers/cc40.cpp b/src/mame/drivers/cc40.cpp
index 5fbdd2a4548..bbeeda6e490 100644
--- a/src/mame/drivers/cc40.cpp
+++ b/src/mame/drivers/cc40.cpp
@@ -611,7 +611,7 @@ void cc40_state::cc40(machine_config &config)
hd44780_device &hd44780(HD44780(config, "hd44780", 0));
hd44780.set_lcd_size(2, 16); // 2*16 internal
- hd44780.set_pixel_update_cb(FUNC(cc40_state::cc40_pixel_update), this);
+ hd44780.set_pixel_update_cb(FUNC(cc40_state::cc40_pixel_update));
/* sound hardware */
SPEAKER(config, "speaker").front_center();
@@ -619,7 +619,7 @@ void cc40_state::cc40(machine_config &config)
VOLTAGE_REGULATOR(config, "vref").add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
/* cartridge */
- GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "cc40_cart", "bin,rom,256").set_device_load(FUNC(cc40_state::cart_load), this);
+ GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "cc40_cart", "bin,rom,256").set_device_load(FUNC(cc40_state::cart_load));
SOFTWARE_LIST(config, "cart_list").set_original("cc40_cart");
}
diff --git a/src/mame/drivers/cd2650.cpp b/src/mame/drivers/cd2650.cpp
index af87e1fea82..bf87f5fd199 100644
--- a/src/mame/drivers/cd2650.cpp
+++ b/src/mame/drivers/cd2650.cpp
@@ -341,7 +341,7 @@ void cd2650_state::cd2650(machine_config &config)
PALETTE(config, "palette", palette_device::MONOCHROME);
/* quickload */
- QUICKLOAD(config, "quickload", "pgm", attotime::from_seconds(1)).set_load_callback(FUNC(cd2650_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "pgm", attotime::from_seconds(1)).set_load_callback(FUNC(cd2650_state::quickload_cb));
/* Sound */
SPEAKER(config, "mono").front_center();
diff --git a/src/mame/drivers/cgc7900.cpp b/src/mame/drivers/cgc7900.cpp
index e7febbdd3a6..d1379fda0a1 100644
--- a/src/mame/drivers/cgc7900.cpp
+++ b/src/mame/drivers/cgc7900.cpp
@@ -235,7 +235,7 @@ WRITE16_MEMBER( cgc7900_state::interrupt_mask_w )
void cgc7900_state::cpu_space_map(address_map &map)
{
- map(0xfffff2, 0xffffff).lr16("interrupt", [] (offs_t offset) -> u16 { return int_vectors[offset+1]; });
+ map(0xfffff2, 0xffffff).lr16(NAME([] (offs_t offset) -> u16 { return int_vectors[offset + 1]; }));
}
void cgc7900_state::irq_encoder(int pin, int state)
diff --git a/src/mame/drivers/cgenie.cpp b/src/mame/drivers/cgenie.cpp
index 172e929880d..fc33270e48e 100644
--- a/src/mame/drivers/cgenie.cpp
+++ b/src/mame/drivers/cgenie.cpp
@@ -34,8 +34,8 @@
class cgenie_state : public driver_device
{
public:
- cgenie_state(const machine_config &mconfig, device_type type, const char *tag)
- : driver_device(mconfig, type, tag),
+ cgenie_state(const machine_config &mconfig, device_type type, const char *tag) :
+ driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"),
m_cassette(*this, "cassette"),
m_ram(*this, RAM_TAG),
@@ -50,7 +50,7 @@ public:
m_control(0xff),
m_rs232_rx(1),
m_rs232_dcd(1)
- {}
+ { }
void init_cgenie_eu();
void init_cgenie_nz();
@@ -450,8 +450,8 @@ void cgenie_state::cgenie(machine_config &config)
m_crtc->set_screen("screen");
m_crtc->set_show_border_area(true);
m_crtc->set_char_width(8);
- m_crtc->set_begin_update_callback(FUNC(cgenie_state::crtc_begin_update), this);
- m_crtc->set_update_row_callback(FUNC(cgenie_state::crtc_update_row), this);
+ m_crtc->set_begin_update_callback(FUNC(cgenie_state::crtc_begin_update));
+ m_crtc->set_update_row_callback(FUNC(cgenie_state::crtc_update_row));
// sound hardware
SPEAKER(config, "mono").front_center();
diff --git a/src/mame/drivers/cham24.cpp b/src/mame/drivers/cham24.cpp
index 5255faf3b66..a314148a724 100644
--- a/src/mame/drivers/cham24.cpp
+++ b/src/mame/drivers/cham24.cpp
@@ -281,7 +281,7 @@ void cham24_state::machine_reset()
m_nt_page[3] = m_nt_ram.get() + 0xc00;
/* and read/write handlers */
- m_ppu->space(AS_PROGRAM).install_readwrite_handler(0x2000, 0x3eff,read8_delegate(FUNC(cham24_state::nt_r), this), write8_delegate(FUNC(cham24_state::nt_w), this));
+ m_ppu->space(AS_PROGRAM).install_readwrite_handler(0x2000, 0x3eff, read8_delegate(*this, FUNC(cham24_state::nt_r)), write8_delegate(*this, FUNC(cham24_state::nt_w)));
}
void cham24_state::init_cham24()
diff --git a/src/mame/drivers/chanbara.cpp b/src/mame/drivers/chanbara.cpp
index feac1e17267..b263d277dd1 100644
--- a/src/mame/drivers/chanbara.cpp
+++ b/src/mame/drivers/chanbara.cpp
@@ -176,8 +176,8 @@ TILE_GET_INFO_MEMBER(chanbara_state::get_bg2_tile_info)
void chanbara_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(chanbara_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS,8, 8, 32, 32);
- m_bg2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(chanbara_state::get_bg2_tile_info),this), TILEMAP_SCAN_ROWS,16, 16, 16, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(chanbara_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS,8, 8, 32, 32);
+ m_bg2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(chanbara_state::get_bg2_tile_info)), TILEMAP_SCAN_ROWS,16, 16, 16, 32);
m_bg_tilemap->set_transparent_pen(0);
}
diff --git a/src/mame/drivers/chance32.cpp b/src/mame/drivers/chance32.cpp
index ed07e57eab8..33760a6f887 100644
--- a/src/mame/drivers/chance32.cpp
+++ b/src/mame/drivers/chance32.cpp
@@ -108,10 +108,10 @@ TILE_GET_INFO_MEMBER(chance32_state::get_bg_tile_info)
void chance32_state::video_start()
{
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(chance32_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 8, 35, 29);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(chance32_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 16, 8, 35, 29);
m_fg_tilemap->set_transparent_pen(0);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(chance32_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 8, 35, 29);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(chance32_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 8, 35, 29);
m_fg_tilemap->set_flip(TILE_FLIPX|TILE_FLIPY);
m_bg_tilemap->set_flip(TILE_FLIPX|TILE_FLIPY);
diff --git a/src/mame/drivers/channelf.cpp b/src/mame/drivers/channelf.cpp
index 529a911e10d..09979a0782c 100644
--- a/src/mame/drivers/channelf.cpp
+++ b/src/mame/drivers/channelf.cpp
@@ -168,18 +168,18 @@ void channelf_state::machine_start()
switch (m_cart->get_type())
{
case CF_MAZE:
- m_maincpu->space(AS_IO).install_readwrite_handler(0x24, 0x25, read8_delegate(FUNC(channelf_cart_slot_device::read_ram),(channelf_cart_slot_device*)m_cart), write8_delegate(FUNC(channelf_cart_slot_device::write_ram),(channelf_cart_slot_device*)m_cart));
+ m_maincpu->space(AS_IO).install_readwrite_handler(0x24, 0x25, read8_delegate(*m_cart, FUNC(channelf_cart_slot_device::read_ram)), write8_delegate(*m_cart, FUNC(channelf_cart_slot_device::write_ram)));
break;
case CF_HANGMAN:
- m_maincpu->space(AS_IO).install_readwrite_handler(0x20, 0x21, read8_delegate(FUNC(channelf_cart_slot_device::read_ram),(channelf_cart_slot_device*)m_cart), write8_delegate(FUNC(channelf_cart_slot_device::write_ram),(channelf_cart_slot_device*)m_cart));
+ m_maincpu->space(AS_IO).install_readwrite_handler(0x20, 0x21, read8_delegate(*m_cart, FUNC(channelf_cart_slot_device::read_ram)), write8_delegate(*m_cart, FUNC(channelf_cart_slot_device::write_ram)));
break;
case CF_CHESS:
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x2800, 0x2fff, read8_delegate(FUNC(channelf_cart_slot_device::read_ram),(channelf_cart_slot_device*)m_cart), write8_delegate(FUNC(channelf_cart_slot_device::write_ram),(channelf_cart_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x2800, 0x2fff, read8_delegate(*m_cart, FUNC(channelf_cart_slot_device::read_ram)), write8_delegate(*m_cart, FUNC(channelf_cart_slot_device::write_ram)));
break;
case CF_MULTI:
case CF_MULTI_OLD:
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x2800, 0x2fff, read8_delegate(FUNC(channelf_cart_slot_device::read_ram),(channelf_cart_slot_device*)m_cart), write8_delegate(FUNC(channelf_cart_slot_device::write_ram),(channelf_cart_slot_device*)m_cart));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x3000, 0x3fff, write8_delegate(FUNC(channelf_cart_slot_device::write_bank),(channelf_cart_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x2800, 0x2fff, read8_delegate(*m_cart, FUNC(channelf_cart_slot_device::read_ram)), write8_delegate(*m_cart, FUNC(channelf_cart_slot_device::write_ram)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x3000, 0x3fff, write8_delegate(*m_cart, FUNC(channelf_cart_slot_device::write_bank)));
break;
}
diff --git a/src/mame/drivers/chinagat.cpp b/src/mame/drivers/chinagat.cpp
index 398d4578ec9..82ee3379f5d 100644
--- a/src/mame/drivers/chinagat.cpp
+++ b/src/mame/drivers/chinagat.cpp
@@ -309,8 +309,8 @@ void chinagat_state::video_start()
{
ddragon_state::video_start();
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(chinagat_state::get_bg_tile_info),this),tilemap_mapper_delegate(FUNC(chinagat_state::background_scan),this), 16, 16, 32, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(chinagat_state::get_fg_16color_tile_info),this),TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(chinagat_state::get_bg_tile_info)), tilemap_mapper_delegate(*this, FUNC(chinagat_state::background_scan)), 16, 16, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(chinagat_state::get_fg_16color_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(0);
m_fg_tilemap->set_scrolldy(-8, -8);
diff --git a/src/mame/drivers/chinsan.cpp b/src/mame/drivers/chinsan.cpp
index e6ddc7b5e71..3c659aa1e8e 100644
--- a/src/mame/drivers/chinsan.cpp
+++ b/src/mame/drivers/chinsan.cpp
@@ -468,7 +468,7 @@ WRITE8_MEMBER( chinsan_state::ctrl_w )
void chinsan_state::machine_start()
{
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(chinsan_state::tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(chinsan_state::tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_bank1->configure_entries(0, 4, memregion("maincpu")->base() + 0x8000, 0x4000);
diff --git a/src/mame/drivers/chqflag.cpp b/src/mame/drivers/chqflag.cpp
index ee63dabf483..0a55ecf795d 100644
--- a/src/mame/drivers/chqflag.cpp
+++ b/src/mame/drivers/chqflag.cpp
@@ -345,7 +345,7 @@ void chqflag_state::chqflag(machine_config &config)
K051960(config, m_k051960, 0);
m_k051960->set_palette(m_palette);
m_k051960->set_screen("screen");
- m_k051960->set_sprite_callback(FUNC(chqflag_state::sprite_callback), this);
+ m_k051960->set_sprite_callback(FUNC(chqflag_state::sprite_callback));
m_k051960->irq_handler().set_inputline(m_maincpu, KONAMI_IRQ_LINE);
m_k051960->nmi_handler().set_inputline(m_maincpu, INPUT_LINE_NMI);
m_k051960->vreg_contrast_handler().set(FUNC(chqflag_state::background_brt_w));
@@ -353,14 +353,14 @@ void chqflag_state::chqflag(machine_config &config)
K051316(config, m_k051316[0], 0);
m_k051316[0]->set_palette(m_palette);
m_k051316[0]->set_offsets(7, 0);
- m_k051316[0]->set_zoom_callback(FUNC(chqflag_state::zoom_callback_1), this);
+ m_k051316[0]->set_zoom_callback(FUNC(chqflag_state::zoom_callback_1));
K051316(config, m_k051316[1], 0);
m_k051316[1]->set_palette(m_palette);
m_k051316[1]->set_bpp(8);
m_k051316[1]->set_layermask(0xc0);
m_k051316[1]->set_wrap(1);
- m_k051316[1]->set_zoom_callback(FUNC(chqflag_state::zoom_callback_2), this);
+ m_k051316[1]->set_zoom_callback(FUNC(chqflag_state::zoom_callback_2));
K051733(config, "k051733", 0);
diff --git a/src/mame/drivers/cinemat.cpp b/src/mame/drivers/cinemat.cpp
index 820f929e2f8..20c0b4d0ea4 100644
--- a/src/mame/drivers/cinemat.cpp
+++ b/src/mame/drivers/cinemat.cpp
@@ -1499,21 +1499,21 @@ ROM_END
void cinemat_state::init_speedfrk()
{
m_gear = 0xe;
- m_maincpu->space(AS_IO).install_read_handler(0x00, 0x03, read8_delegate(FUNC(cinemat_state::speedfrk_wheel_r),this));
- m_maincpu->space(AS_IO).install_read_handler(0x04, 0x06, read8_delegate(FUNC(cinemat_state::speedfrk_gear_r),this));
+ m_maincpu->space(AS_IO).install_read_handler(0x00, 0x03, read8_delegate(*this, FUNC(cinemat_state::speedfrk_wheel_r)));
+ m_maincpu->space(AS_IO).install_read_handler(0x04, 0x06, read8_delegate(*this, FUNC(cinemat_state::speedfrk_gear_r)));
save_item(NAME(m_gear));
}
void cinemat_16level_state::init_sundance()
{
- m_maincpu->space(AS_IO).install_read_handler(0x00, 0x0f, read8_delegate(FUNC(cinemat_16level_state::sundance_inputs_r),this));
+ m_maincpu->space(AS_IO).install_read_handler(0x00, 0x0f, read8_delegate(*this, FUNC(cinemat_16level_state::sundance_inputs_r)));
}
void cinemat_color_state::init_boxingb()
{
- m_maincpu->space(AS_IO).install_read_handler(0x0c, 0x0f, read8_delegate(FUNC(cinemat_color_state::boxingb_dial_r),this));
+ m_maincpu->space(AS_IO).install_read_handler(0x0c, 0x0f, read8_delegate(*this, FUNC(cinemat_color_state::boxingb_dial_r)));
}
diff --git a/src/mame/drivers/cischeat.cpp b/src/mame/drivers/cischeat.cpp
index d7961cd0fb1..aca6f21c8cc 100644
--- a/src/mame/drivers/cischeat.cpp
+++ b/src/mame/drivers/cischeat.cpp
@@ -2205,8 +2205,8 @@ void captflag_state::captflag(machine_config &config)
MEGASYS1_TILEMAP(config, m_tmap[2], m_palette, 0x4e00/2);
// Motors
- TIMER(config, m_motor_left).configure_generic(timer_device::expired_delegate());
- TIMER(config, m_motor_right).configure_generic(timer_device::expired_delegate());
+ TIMER(config, m_motor_left).configure_generic(nullptr);
+ TIMER(config, m_motor_right).configure_generic(nullptr);
// Layout
config.set_default_layout(layout_captflag);
diff --git a/src/mame/drivers/clickstart.cpp b/src/mame/drivers/clickstart.cpp
index 2c24ae2f63c..ac5fcb27a00 100644
--- a/src/mame/drivers/clickstart.cpp
+++ b/src/mame/drivers/clickstart.cpp
@@ -423,7 +423,7 @@ void clickstart_state::clickstart(machine_config &config)
GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "clickstart_cart");
m_cart->set_width(GENERIC_ROM16_WIDTH);
- m_cart->set_device_load(FUNC(clickstart_state::cart_load), this);
+ m_cart->set_device_load(FUNC(clickstart_state::cart_load));
SOFTWARE_LIST(config, "cart_list").set_original("clickstart_cart");
}
diff --git a/src/mame/drivers/clpoker.cpp b/src/mame/drivers/clpoker.cpp
index 372c788d257..d2c34eee812 100644
--- a/src/mame/drivers/clpoker.cpp
+++ b/src/mame/drivers/clpoker.cpp
@@ -220,8 +220,8 @@ WRITE8_MEMBER(clpoker_state::videoram_w)
void clpoker_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(clpoker_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(clpoker_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(clpoker_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(clpoker_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_fg_tilemap->set_transparent_pen(0);
m_nmi_enable = false;
diff --git a/src/mame/drivers/cmi.cpp b/src/mame/drivers/cmi.cpp
index 48617b5d569..db1adbf9dd8 100644
--- a/src/mame/drivers/cmi.cpp
+++ b/src/mame/drivers/cmi.cpp
@@ -1265,7 +1265,7 @@ void cmi_state::install_video_ram(int cpunum)
{
address_space *space = (cpunum == CPU_1 ? m_cpu1space : m_cpu2space);
- space->install_readwrite_handler(0x8000, 0xbfff, read8_delegate(FUNC(cmi_state::vram_r),this), write8_delegate(FUNC(cmi_state::vram_w),this));
+ space->install_readwrite_handler(0x8000, 0xbfff, read8_delegate(*this, FUNC(cmi_state::vram_r)), write8_delegate(*this, FUNC(cmi_state::vram_w)));
}
WRITE8_MEMBER( cmi_state::i8214_cpu1_w )
@@ -1302,54 +1302,57 @@ void cmi_state::install_peripherals(int cpunum)
{
address_space *space = (cpunum == CPU_1 ? m_cpu1space : m_cpu2space);
- space->install_readwrite_handler(0xe000, 0xe03f, read8_delegate(FUNC(cmi_state::cmi02_r),this), write8_delegate(FUNC(cmi_state::cmi02_w),this));
+ space->install_readwrite_handler(0xe000, 0xe03f, read8_delegate(*this, FUNC(cmi_state::cmi02_r)), write8_delegate(*this, FUNC(cmi_state::cmi02_w)));
if (cpunum)
- space->install_readwrite_handler(0xf000, 0xf7ff, read8_delegate(FUNC(cmi_state::rom_r<1>),this), write8_delegate(FUNC(cmi_state::map_ram_w),this));
+ space->install_readwrite_handler(0xf000, 0xf7ff, read8_delegate(*this, FUNC(cmi_state::rom_r<1>)), write8_delegate(*this, FUNC(cmi_state::map_ram_w)));
else
- space->install_readwrite_handler(0xf000, 0xf7ff, read8_delegate(FUNC(cmi_state::rom_r<0>),this), write8_delegate(FUNC(cmi_state::map_ram_w),this));
+ space->install_readwrite_handler(0xf000, 0xf7ff, read8_delegate(*this, FUNC(cmi_state::rom_r<0>)), write8_delegate(*this, FUNC(cmi_state::map_ram_w)));
space->install_rom(0xf800, 0xfbff, m_q133_rom + (cpunum == CPU_2 ? 0x1800 : 0x2800));
- space->install_readwrite_handler(0xfc40, 0xfc4f, read8_delegate(FUNC(cmi_state::parity_r),this), write8_delegate(FUNC(cmi_state::mapsel_w),this));
+ space->install_readwrite_handler(0xfc40, 0xfc4f, read8_delegate(*this, FUNC(cmi_state::parity_r)), write8_delegate(*this, FUNC(cmi_state::mapsel_w)));
space->nop_readwrite(0xfc5a, 0xfc5b); // Q077 HDD controller - not installed
- space->install_readwrite_handler(0xfc5e, 0xfc5e, read8_delegate(FUNC(cmi_state::atomic_r),this), write8_delegate(FUNC(cmi_state::cpufunc_w),this));
+ space->install_readwrite_handler(0xfc5e, 0xfc5e, read8_delegate(*this, FUNC(cmi_state::atomic_r)), write8_delegate(*this, FUNC(cmi_state::cpufunc_w)));
if (cpunum)
- space->install_readwrite_handler(0xfc5f, 0xfc5f, read8_delegate(FUNC(cmi_state::map_r<1>),this), write8_delegate(FUNC(cmi_state::map_w<1>),this));
+ space->install_readwrite_handler(0xfc5f, 0xfc5f, read8_delegate(*this, FUNC(cmi_state::map_r<1>)), write8_delegate(*this, FUNC(cmi_state::map_w<1>)));
else
- space->install_readwrite_handler(0xfc5f, 0xfc5f, read8_delegate(FUNC(cmi_state::map_r<0>),this), write8_delegate(FUNC(cmi_state::map_w<0>),this));
+ space->install_readwrite_handler(0xfc5f, 0xfc5f, read8_delegate(*this, FUNC(cmi_state::map_r<0>)), write8_delegate(*this, FUNC(cmi_state::map_w<0>)));
- space->install_readwrite_handler(0xfc80, 0xfc83, read8sm_delegate(FUNC(mos6551_device::read),m_q133_acia[0].target()), write8sm_delegate(FUNC(mos6551_device::write),m_q133_acia[0].target()));
- space->install_readwrite_handler(0xfc84, 0xfc87, read8sm_delegate(FUNC(mos6551_device::read),m_q133_acia[1].target()), write8sm_delegate(FUNC(mos6551_device::write),m_q133_acia[1].target()));
- space->install_readwrite_handler(0xfc88, 0xfc8b, read8sm_delegate(FUNC(mos6551_device::read),m_q133_acia[2].target()), write8sm_delegate(FUNC(mos6551_device::write),m_q133_acia[2].target()));
- space->install_readwrite_handler(0xfc8c, 0xfc8f, read8sm_delegate(FUNC(mos6551_device::read),m_q133_acia[3].target()), write8sm_delegate(FUNC(mos6551_device::write),m_q133_acia[3].target()));
- space->install_readwrite_handler(0xfc90, 0xfc97, read8sm_delegate(FUNC(ptm6840_device::read),m_q133_ptm.target()), write8sm_delegate(FUNC(ptm6840_device::write),m_q133_ptm.target()));
+ space->install_readwrite_handler(0xfc80, 0xfc83, read8sm_delegate(*m_q133_acia[0], FUNC(mos6551_device::read)), write8sm_delegate(*m_q133_acia[0], FUNC(mos6551_device::write)));
+ space->install_readwrite_handler(0xfc84, 0xfc87, read8sm_delegate(*m_q133_acia[1], FUNC(mos6551_device::read)), write8sm_delegate(*m_q133_acia[1], FUNC(mos6551_device::write)));
+ space->install_readwrite_handler(0xfc88, 0xfc8b, read8sm_delegate(*m_q133_acia[2], FUNC(mos6551_device::read)), write8sm_delegate(*m_q133_acia[2], FUNC(mos6551_device::write)));
+ space->install_readwrite_handler(0xfc8c, 0xfc8f, read8sm_delegate(*m_q133_acia[3], FUNC(mos6551_device::read)), write8sm_delegate(*m_q133_acia[3], FUNC(mos6551_device::write)));
+ space->install_readwrite_handler(0xfc90, 0xfc97, read8sm_delegate(*m_q133_ptm, FUNC(ptm6840_device::read)), write8sm_delegate(*m_q133_ptm, FUNC(ptm6840_device::write)));
- space->install_readwrite_handler(0xfcbc, 0xfcbc, read8_delegate(FUNC(cmi_state::cmi07_r),this), write8_delegate(FUNC(cmi_state::cmi07_w),this));
+ space->install_readwrite_handler(0xfcbc, 0xfcbc, read8_delegate(*this, FUNC(cmi_state::cmi07_r)), write8_delegate(*this, FUNC(cmi_state::cmi07_w)));
- space->install_read_handler(0xfcc0, 0xfcc3, read8_delegate(FUNC(cmi_state::lightpen_r),this));
- space->install_readwrite_handler(0xfcc4, 0xfcc7, read8sm_delegate(FUNC(pia6821_device::read),m_q219_pia.target()), write8sm_delegate(FUNC(pia6821_device::write),m_q219_pia.target()));
- space->install_readwrite_handler(0xfcc8, 0xfccf, read8sm_delegate(FUNC(ptm6840_device::read),m_q219_ptm.target()), write8sm_delegate(FUNC(ptm6840_device::write),m_q219_ptm.target()));
- space->install_readwrite_handler(0xfcd0, 0xfcdc, read8_delegate(FUNC(cmi_state::video_r),this), write8_delegate(FUNC(cmi_state::video_w),this));
- space->install_readwrite_handler(0xfce0, 0xfce1, read8_delegate(FUNC(cmi_state::fdc_r),this), write8_delegate(FUNC(cmi_state::fdc_w),this));
+ space->install_read_handler(0xfcc0, 0xfcc3, read8_delegate(*this, FUNC(cmi_state::lightpen_r)));
+ space->install_readwrite_handler(0xfcc4, 0xfcc7, read8sm_delegate(*m_q219_pia, FUNC(pia6821_device::read)), write8sm_delegate(*m_q219_pia, FUNC(pia6821_device::write)));
+ space->install_readwrite_handler(0xfcc8, 0xfccf, read8sm_delegate(*m_q219_ptm, FUNC(ptm6840_device::read)), write8sm_delegate(*m_q219_ptm, FUNC(ptm6840_device::write)));
+ space->install_readwrite_handler(0xfcd0, 0xfcdc, read8_delegate(*this, FUNC(cmi_state::video_r)), write8_delegate(*this, FUNC(cmi_state::video_w)));
+ space->install_readwrite_handler(0xfce0, 0xfce1, read8_delegate(*this, FUNC(cmi_state::fdc_r)), write8_delegate(*this, FUNC(cmi_state::fdc_w)));
space->nop_readwrite(0xfce2, 0xfcef); // Monitor ROM will attempt to detect floppy disk controller cards in this entire range
- space->install_readwrite_handler(0xfcf0, 0xfcf7, read8sm_delegate(FUNC(pia6821_device::read),m_q133_pia[0].target()), write8sm_delegate(FUNC(pia6821_device::write),m_q133_pia[0].target()));
- space->install_readwrite_handler(0xfcf8, 0xfcff, read8sm_delegate(FUNC(pia6821_device::read),m_q133_pia[1].target()), write8sm_delegate(FUNC(pia6821_device::write),m_q133_pia[1].target()));
+ space->install_readwrite_handler(0xfcf0, 0xfcf7, read8sm_delegate(*m_q133_pia[0], FUNC(pia6821_device::read)), write8sm_delegate(*m_q133_pia[0], FUNC(pia6821_device::write)));
+ space->install_readwrite_handler(0xfcf8, 0xfcff, read8sm_delegate(*m_q133_pia[1], FUNC(pia6821_device::read)), write8sm_delegate(*m_q133_pia[1], FUNC(pia6821_device::write)));
- space->install_write_handler(0xfcfc, 0xfcfc, write8_delegate(FUNC(cmi_state::i8214_cpu1_w),this));
- space->install_write_handler(0xfcfd, 0xfcfd, write8_delegate(FUNC(cmi_state::i8214_cpu2_w),this));
+ space->install_write_handler(0xfcfc, 0xfcfc, write8_delegate(*this, FUNC(cmi_state::i8214_cpu1_w)));
+ space->install_write_handler(0xfcfd, 0xfcfd, write8_delegate(*this, FUNC(cmi_state::i8214_cpu2_w)));
- space->install_readwrite_handler(0xfd00, 0xfeff, read8_delegate(FUNC(cmi_state::shared_ram_r),this), write8_delegate(FUNC(cmi_state::shared_ram_w),this));
+ space->install_readwrite_handler(0xfd00, 0xfeff, read8_delegate(*this, FUNC(cmi_state::shared_ram_r)), write8_delegate(*this, FUNC(cmi_state::shared_ram_w)));
space->install_ram(0xff00, 0xfff7, &m_scratch_ram[cpunum][0]);
space->install_ram(0xfffa, 0xfffd, &m_scratch_ram[cpunum][0xfa]);
- if (cpunum) {
- space->install_readwrite_handler(0xfff8, 0xfff9, read8_delegate(FUNC(cmi_state::irq_ram_r<1>),this), write8_delegate(FUNC(cmi_state::irq_ram_w<1>),this));
- space->install_read_handler(0xfffe, 0xffff, read8_delegate(FUNC(cmi_state::vector_r<1>),this));
- } else {
- space->install_readwrite_handler(0xfff8, 0xfff9, read8_delegate(FUNC(cmi_state::irq_ram_r<0>),this), write8_delegate(FUNC(cmi_state::irq_ram_w<0>),this));
- space->install_read_handler(0xfffe, 0xffff, read8_delegate(FUNC(cmi_state::vector_r<0>),this));
+ if (cpunum)
+ {
+ space->install_readwrite_handler(0xfff8, 0xfff9, read8_delegate(*this, FUNC(cmi_state::irq_ram_r<1>)), write8_delegate(*this, FUNC(cmi_state::irq_ram_w<1>)));
+ space->install_read_handler(0xfffe, 0xffff, read8_delegate(*this, FUNC(cmi_state::vector_r<1>)));
+ }
+ else
+ {
+ space->install_readwrite_handler(0xfff8, 0xfff9, read8_delegate(*this, FUNC(cmi_state::irq_ram_r<0>)), write8_delegate(*this, FUNC(cmi_state::irq_ram_w<0>)));
+ space->install_read_handler(0xfffe, 0xffff, read8_delegate(*this, FUNC(cmi_state::vector_r<0>)));
}
}
diff --git a/src/mame/drivers/cninja.cpp b/src/mame/drivers/cninja.cpp
index ee91c544f42..7df1d9f149d 100644
--- a/src/mame/drivers/cninja.cpp
+++ b/src/mame/drivers/cninja.cpp
@@ -812,15 +812,15 @@ void cninja_state::cninja(machine_config &config)
m_deco_tilegen[1]->set_pf2_col_bank(0x30);
m_deco_tilegen[1]->set_pf1_col_mask(0x0f);
m_deco_tilegen[1]->set_pf2_col_mask(0x0f);
- m_deco_tilegen[1]->set_bank1_callback(FUNC(cninja_state::cninja_bank_callback), this);
- m_deco_tilegen[1]->set_bank2_callback(FUNC(cninja_state::cninja_bank_callback), this);
+ m_deco_tilegen[1]->set_bank1_callback(FUNC(cninja_state::cninja_bank_callback));
+ m_deco_tilegen[1]->set_bank2_callback(FUNC(cninja_state::cninja_bank_callback));
m_deco_tilegen[1]->set_pf12_8x8_bank(0);
m_deco_tilegen[1]->set_pf12_16x16_bank(2);
m_deco_tilegen[1]->set_gfxdecode_tag(m_gfxdecode);
DECO_SPRITE(config, m_sprgen[0], 0);
m_sprgen[0]->set_gfx_region(3);
- m_sprgen[0]->set_pri_callback(FUNC(cninja_state::pri_callback), this);
+ m_sprgen[0]->set_pri_callback(FUNC(cninja_state::pri_callback));
m_sprgen[0]->set_gfxdecode_tag(m_gfxdecode);
DECO104PROT(config, m_ioprot, 0);
@@ -899,15 +899,15 @@ void cninja_state::stoneage(machine_config &config)
m_deco_tilegen[1]->set_pf2_col_bank(0x30);
m_deco_tilegen[1]->set_pf1_col_mask(0x0f);
m_deco_tilegen[1]->set_pf2_col_mask(0x0f);
- m_deco_tilegen[1]->set_bank1_callback(FUNC(cninja_state::cninja_bank_callback), this);
- m_deco_tilegen[1]->set_bank2_callback(FUNC(cninja_state::cninja_bank_callback), this);
+ m_deco_tilegen[1]->set_bank1_callback(FUNC(cninja_state::cninja_bank_callback));
+ m_deco_tilegen[1]->set_bank2_callback(FUNC(cninja_state::cninja_bank_callback));
m_deco_tilegen[1]->set_pf12_8x8_bank(0);
m_deco_tilegen[1]->set_pf12_16x16_bank(2);
m_deco_tilegen[1]->set_gfxdecode_tag(m_gfxdecode);
DECO_SPRITE(config, m_sprgen[0], 0);
m_sprgen[0]->set_gfx_region(3);
- m_sprgen[0]->set_pri_callback(FUNC(cninja_state::pri_callback), this);
+ m_sprgen[0]->set_pri_callback(FUNC(cninja_state::pri_callback));
m_sprgen[0]->set_gfxdecode_tag(m_gfxdecode);
DECO104PROT(config, m_ioprot, 0);
@@ -994,8 +994,8 @@ void cninja_state::cninjabl(machine_config &config)
m_deco_tilegen[1]->set_pf2_col_bank(0x30);
m_deco_tilegen[1]->set_pf1_col_mask(0x0f);
m_deco_tilegen[1]->set_pf2_col_mask(0x0f);
- m_deco_tilegen[1]->set_bank1_callback(FUNC(cninja_state::cninja_bank_callback), this);
- m_deco_tilegen[1]->set_bank2_callback(FUNC(cninja_state::cninja_bank_callback), this);
+ m_deco_tilegen[1]->set_bank1_callback(FUNC(cninja_state::cninja_bank_callback));
+ m_deco_tilegen[1]->set_bank2_callback(FUNC(cninja_state::cninja_bank_callback));
m_deco_tilegen[1]->set_pf12_8x8_bank(0);
m_deco_tilegen[1]->set_pf12_16x16_bank(2);
m_deco_tilegen[1]->set_gfxdecode_tag(m_gfxdecode);
@@ -1064,15 +1064,15 @@ void cninja_state::edrandy(machine_config &config)
m_deco_tilegen[1]->set_pf2_col_bank(0x30);
m_deco_tilegen[1]->set_pf1_col_mask(0x0f);
m_deco_tilegen[1]->set_pf2_col_mask(0x0f);
- m_deco_tilegen[1]->set_bank1_callback(FUNC(cninja_state::cninja_bank_callback), this);
- m_deco_tilegen[1]->set_bank2_callback(FUNC(cninja_state::cninja_bank_callback), this);
+ m_deco_tilegen[1]->set_bank1_callback(FUNC(cninja_state::cninja_bank_callback));
+ m_deco_tilegen[1]->set_bank2_callback(FUNC(cninja_state::cninja_bank_callback));
m_deco_tilegen[1]->set_pf12_8x8_bank(0);
m_deco_tilegen[1]->set_pf12_16x16_bank(2);
m_deco_tilegen[1]->set_gfxdecode_tag(m_gfxdecode);
DECO_SPRITE(config, m_sprgen[0], 0);
m_sprgen[0]->set_gfx_region(3);
- m_sprgen[0]->set_pri_callback(FUNC(cninja_state::pri_callback), this);
+ m_sprgen[0]->set_pri_callback(FUNC(cninja_state::pri_callback));
m_sprgen[0]->set_gfxdecode_tag(m_gfxdecode);
DECO146PROT(config, m_ioprot, 0);
@@ -1138,7 +1138,7 @@ void cninja_state::robocop2(machine_config &config)
m_deco_tilegen[0]->set_pf2_col_bank(0x10);
m_deco_tilegen[0]->set_pf1_col_mask(0x0f);
m_deco_tilegen[0]->set_pf2_col_mask(0x0f);
- m_deco_tilegen[0]->set_bank2_callback(FUNC(cninja_state::robocop2_bank_callback), this);
+ m_deco_tilegen[0]->set_bank2_callback(FUNC(cninja_state::robocop2_bank_callback));
m_deco_tilegen[0]->set_pf12_8x8_bank(0);
m_deco_tilegen[0]->set_pf12_16x16_bank(1);
m_deco_tilegen[0]->set_gfxdecode_tag(m_gfxdecode);
@@ -1152,15 +1152,15 @@ void cninja_state::robocop2(machine_config &config)
m_deco_tilegen[1]->set_pf2_col_bank(0x30);
m_deco_tilegen[1]->set_pf1_col_mask(0x0f);
m_deco_tilegen[1]->set_pf2_col_mask(0x0f);
- m_deco_tilegen[1]->set_bank1_callback(FUNC(cninja_state::robocop2_bank_callback), this);
- m_deco_tilegen[1]->set_bank2_callback(FUNC(cninja_state::robocop2_bank_callback), this);
+ m_deco_tilegen[1]->set_bank1_callback(FUNC(cninja_state::robocop2_bank_callback));
+ m_deco_tilegen[1]->set_bank2_callback(FUNC(cninja_state::robocop2_bank_callback));
m_deco_tilegen[1]->set_pf12_8x8_bank(0);
m_deco_tilegen[1]->set_pf12_16x16_bank(2);
m_deco_tilegen[1]->set_gfxdecode_tag(m_gfxdecode);
DECO_SPRITE(config, m_sprgen[0], 0);
m_sprgen[0]->set_gfx_region(3);
- m_sprgen[0]->set_pri_callback(FUNC(cninja_state::pri_callback), this);
+ m_sprgen[0]->set_pri_callback(FUNC(cninja_state::pri_callback));
m_sprgen[0]->set_gfxdecode_tag(m_gfxdecode);
DECO146PROT(config, m_ioprot, 0);
@@ -1230,8 +1230,8 @@ void cninja_state::mutantf(machine_config &config)
m_deco_tilegen[0]->set_pf2_col_bank(0x30);
m_deco_tilegen[0]->set_pf1_col_mask(0x0f);
m_deco_tilegen[0]->set_pf2_col_mask(0x0f);
- m_deco_tilegen[0]->set_bank1_callback(FUNC(cninja_state::mutantf_1_bank_callback), this);
- m_deco_tilegen[0]->set_bank2_callback(FUNC(cninja_state::mutantf_2_bank_callback), this);
+ m_deco_tilegen[0]->set_bank1_callback(FUNC(cninja_state::mutantf_1_bank_callback));
+ m_deco_tilegen[0]->set_bank2_callback(FUNC(cninja_state::mutantf_2_bank_callback));
m_deco_tilegen[0]->set_pf12_8x8_bank(0);
m_deco_tilegen[0]->set_pf12_16x16_bank(1);
m_deco_tilegen[0]->set_gfxdecode_tag(m_gfxdecode);
@@ -1245,8 +1245,8 @@ void cninja_state::mutantf(machine_config &config)
m_deco_tilegen[1]->set_pf2_col_bank(0x40);
m_deco_tilegen[1]->set_pf1_col_mask(0x0f);
m_deco_tilegen[1]->set_pf2_col_mask(0x0f);
- m_deco_tilegen[1]->set_bank1_callback(FUNC(cninja_state::mutantf_1_bank_callback), this);
- m_deco_tilegen[1]->set_bank2_callback(FUNC(cninja_state::mutantf_1_bank_callback), this);
+ m_deco_tilegen[1]->set_bank1_callback(FUNC(cninja_state::mutantf_1_bank_callback));
+ m_deco_tilegen[1]->set_bank2_callback(FUNC(cninja_state::mutantf_1_bank_callback));
m_deco_tilegen[1]->set_pf12_8x8_bank(0);
m_deco_tilegen[1]->set_pf12_16x16_bank(2);
m_deco_tilegen[1]->set_gfxdecode_tag(m_gfxdecode);
@@ -2221,7 +2221,7 @@ ROM_END
void cninja_state::init_cninjabl2()
{
m_maincpu->space(AS_PROGRAM).install_ram(0x180000, 0x18ffff);
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x1b4000, 0x1b4001, read16_delegate(FUNC(cninja_state::cninjabl2_sprite_dma_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x1b4000, 0x1b4001, read16_delegate(*this, FUNC(cninja_state::cninjabl2_sprite_dma_r)));
m_okibank->configure_entries(0, 8, memregion("oki2")->base(), 0x10000);
}
diff --git a/src/mame/drivers/cntsteer.cpp b/src/mame/drivers/cntsteer.cpp
index a41be7a573d..1323717d2ae 100644
--- a/src/mame/drivers/cntsteer.cpp
+++ b/src/mame/drivers/cntsteer.cpp
@@ -199,8 +199,8 @@ TILE_GET_INFO_MEMBER(cntsteer_state::get_fg_tile_info)
VIDEO_START_MEMBER(cntsteer_state,cntsteer)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cntsteer_state::get_bg_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 64, 64);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cntsteer_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS_FLIP_X, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cntsteer_state::get_bg_tile_info)), TILEMAP_SCAN_COLS, 16, 16, 64, 64);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cntsteer_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS_FLIP_X, 8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(0);
@@ -209,8 +209,8 @@ VIDEO_START_MEMBER(cntsteer_state,cntsteer)
VIDEO_START_MEMBER(cntsteer_state,zerotrgt)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cntsteer_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cntsteer_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS_FLIP_X, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cntsteer_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cntsteer_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS_FLIP_X, 8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(0);
diff --git a/src/mame/drivers/cobra.cpp b/src/mame/drivers/cobra.cpp
index 1a9f50b90c8..adc7b603c27 100644
--- a/src/mame/drivers/cobra.cpp
+++ b/src/mame/drivers/cobra.cpp
@@ -3298,8 +3298,7 @@ void cobra_state::cobra(machine_config &config)
config.m_minimum_quantum = attotime::from_hz(15005);
PCI_BUS_LEGACY(config, m_legacy_pci, 0, 0);
- m_legacy_pci->set_device_read(0, FUNC(cobra_state::mpc106_pci_r), this);
- m_legacy_pci->set_device_write(0, FUNC(cobra_state::mpc106_pci_w), this);
+ m_legacy_pci->set_device(0, FUNC(cobra_state::mpc106_pci_r), FUNC(cobra_state::mpc106_pci_w));
ATA_INTERFACE(config, m_ata).options(ata_devices, "hdd", nullptr, true);
m_ata->irq_handler().set(FUNC(cobra_state::ide_interrupt));
@@ -3377,12 +3376,12 @@ void cobra_state::init_cobra()
cobra_fifo::event_delegate(&cobra_state::s2mfifo_event_callback, this))
);
- m_maincpu->ppc_set_dcstore_callback(write32_delegate(FUNC(cobra_state::main_cpu_dc_store),this));
+ m_maincpu->ppc_set_dcstore_callback(write32_delegate(*this, FUNC(cobra_state::main_cpu_dc_store)));
- m_gfxcpu->ppc_set_dcstore_callback(write32_delegate(FUNC(cobra_state::gfx_cpu_dc_store), this));
+ m_gfxcpu->ppc_set_dcstore_callback(write32_delegate(*this, FUNC(cobra_state::gfx_cpu_dc_store)));
- m_subcpu->ppc4xx_set_dma_write_handler(0, write32_delegate(FUNC(cobra_state::sub_sound_dma_w), this), 44100);
- m_subcpu->ppc4xx_spu_set_tx_handler(write8_delegate(FUNC(cobra_state::sub_jvs_w), this));
+ m_subcpu->ppc4xx_set_dma_write_handler(0, write32_delegate(*this, FUNC(cobra_state::sub_sound_dma_w)), 44100);
+ m_subcpu->ppc4xx_spu_set_tx_handler(write8_delegate(*this, FUNC(cobra_state::sub_jvs_w)));
m_comram[0] = std::make_unique<uint32_t[]>(0x40000/4);
diff --git a/src/mame/drivers/coinmstr.cpp b/src/mame/drivers/coinmstr.cpp
index 98780b94b88..3e5bf6a5685 100644
--- a/src/mame/drivers/coinmstr.cpp
+++ b/src/mame/drivers/coinmstr.cpp
@@ -1246,7 +1246,7 @@ TILE_GET_INFO_MEMBER(coinmstr_state::get_bg_tile_info)
void coinmstr_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(coinmstr_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 46, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(coinmstr_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 46, 32);
}
uint32_t coinmstr_state::screen_update_coinmstr(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
diff --git a/src/mame/drivers/coleco.cpp b/src/mame/drivers/coleco.cpp
index 8c44a8f89cd..af8fdbeea9b 100644
--- a/src/mame/drivers/coleco.cpp
+++ b/src/mame/drivers/coleco.cpp
@@ -342,7 +342,7 @@ void coleco_state::machine_start()
}
if (m_cart->exists())
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x8000, 0xffff, read8_delegate(FUNC(coleco_state::cart_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x8000, 0xffff, read8_delegate(*this, FUNC(coleco_state::cart_r)));
save_item(NAME(m_joy_mode));
save_item(NAME(m_last_nmi_state));
diff --git a/src/mame/drivers/combatsc.cpp b/src/mame/drivers/combatsc.cpp
index f3ab95696d3..24c92c6fc82 100644
--- a/src/mame/drivers/combatsc.cpp
+++ b/src/mame/drivers/combatsc.cpp
@@ -235,8 +235,8 @@ WRITE8_MEMBER(combatsc_state::combatscb_bankselect_w)
if (data == 0x1f)
{
membank("bank1")->set_entry(8 + (data & 1));
- space.install_write_handler(0x4000, 0x7fff, write8_delegate(FUNC(combatsc_state::combatscb_io_w),this));
- space.install_read_handler(0x4400, 0x4403, read8_delegate(FUNC(combatsc_state::combatscb_io_r),this));/* IO RAM & Video Registers */
+ space.install_write_handler(0x4000, 0x7fff, write8_delegate(*this, FUNC(combatsc_state::combatscb_io_w)));
+ space.install_read_handler(0x4400, 0x4403, read8_delegate(*this, FUNC(combatsc_state::combatscb_io_r))); // IO RAM & Video Registers
}
else
{
diff --git a/src/mame/drivers/comx35.cpp b/src/mame/drivers/comx35.cpp
index 0db94f4f0a1..5c600bd0c6e 100644
--- a/src/mame/drivers/comx35.cpp
+++ b/src/mame/drivers/comx35.cpp
@@ -630,7 +630,7 @@ void comx35_state::base(machine_config &config, const XTAL clock)
m_kbe->d11_callback().set_ioport("D11");
m_kbe->da_callback().set_inputline(m_maincpu, COSMAC_INPUT_LINE_EF3);
- QUICKLOAD(config, "quickload", "comx").set_load_callback(FUNC(comx35_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "comx").set_load_callback(FUNC(comx35_state::quickload_cb));
CASSETTE(config, m_cassette).set_default_state(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED);
//m_cassette->add_route(ALL_OUTPUTS, "mono", 0.05);
diff --git a/src/mame/drivers/coolridr.cpp b/src/mame/drivers/coolridr.cpp
index 4bc6129aeb0..3c9566c3900 100644
--- a/src/mame/drivers/coolridr.cpp
+++ b/src/mame/drivers/coolridr.cpp
@@ -3436,7 +3436,7 @@ READ32_MEMBER(coolridr_state::aquastge_hack_r)
void coolridr_state::init_coolridr()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x60d8894, 0x060d8897, read32_delegate(FUNC(coolridr_state::coolridr_hack2_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x60d8894, 0x060d8897, read32_delegate(*this, FUNC(coolridr_state::coolridr_hack2_r)));
m_maincpu->sh2drc_set_options(SH2DRC_FASTEST_OPTIONS);
m_subcpu->sh2drc_set_options(SH2DRC_FASTEST_OPTIONS);
@@ -3452,7 +3452,7 @@ void coolridr_state::init_coolridr()
void coolridr_state::init_aquastge()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x60c3fd8, 0x60c3fdb, read32_delegate(FUNC(coolridr_state::aquastge_hack_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x60c3fd8, 0x60c3fdb, read32_delegate(*this, FUNC(coolridr_state::aquastge_hack_r)));
m_maincpu->sh2drc_set_options(SH2DRC_FASTEST_OPTIONS);
m_subcpu->sh2drc_set_options(SH2DRC_FASTEST_OPTIONS);
diff --git a/src/mame/drivers/cosmic.cpp b/src/mame/drivers/cosmic.cpp
index 484dcbeba1b..8f114e37f7e 100644
--- a/src/mame/drivers/cosmic.cpp
+++ b/src/mame/drivers/cosmic.cpp
@@ -1575,16 +1575,16 @@ void cosmic_state::init_cosmica()
void cosmic_state::init_devzone()
{
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x4807, 0x4807,write8_delegate(FUNC(cosmic_state::cosmic_background_enable_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x4807, 0x4807, write8_delegate(*this, FUNC(cosmic_state::cosmic_background_enable_w)));
}
void cosmic_state::init_nomnlnd()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x5000, 0x5001, read8_delegate(FUNC(cosmic_state::nomnlnd_port_0_1_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x5000, 0x5001, read8_delegate(*this, FUNC(cosmic_state::nomnlnd_port_0_1_r)));
m_maincpu->space(AS_PROGRAM).nop_write(0x4800, 0x4800);
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x4807, 0x4807, write8_delegate(FUNC(cosmic_state::cosmic_background_enable_w),this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x480a, 0x480a, write8_delegate(FUNC(cosmic_state::dac_w), this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x4807, 0x4807, write8_delegate(*this, FUNC(cosmic_state::cosmic_background_enable_w)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x480a, 0x480a, write8_delegate(*this, FUNC(cosmic_state::dac_w)));
}
void cosmic_state::init_panic()
diff --git a/src/mame/drivers/cosmicos.cpp b/src/mame/drivers/cosmicos.cpp
index 5fb6eb70d9d..a997accc93e 100644
--- a/src/mame/drivers/cosmicos.cpp
+++ b/src/mame/drivers/cosmicos.cpp
@@ -549,7 +549,7 @@ void cosmicos_state::cosmicos(machine_config &config)
m_cti->add_route(ALL_OUTPUTS, "mono", 0.25);
/* devices */
- QUICKLOAD(config, "quickload", "bin").set_load_callback(FUNC(cosmicos_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "bin").set_load_callback(FUNC(cosmicos_state::quickload_cb));
CASSETTE(config, m_cassette);
m_cassette->set_default_state(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED);
m_cassette->add_route(ALL_OUTPUTS, "mono", 0.05);
diff --git a/src/mame/drivers/cp1.cpp b/src/mame/drivers/cp1.cpp
index b4bb54d20f4..97f50ef2fe7 100644
--- a/src/mame/drivers/cp1.cpp
+++ b/src/mame/drivers/cp1.cpp
@@ -294,7 +294,7 @@ void cp1_state::cp1(machine_config &config)
m_cassette->set_default_state(CASSETTE_STOPPED | CASSETTE_SPEAKER_ENABLED | CASSETTE_MOTOR_ENABLED);
m_cassette->add_route(ALL_OUTPUTS, "mono", 0.05);
- QUICKLOAD(config, "quickload", "obj", attotime::from_seconds(1)).set_load_callback(FUNC(cp1_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "obj", attotime::from_seconds(1)).set_load_callback(FUNC(cp1_state::quickload_cb));
}
/* ROM definition */
diff --git a/src/mame/drivers/cps1.cpp b/src/mame/drivers/cps1.cpp
index d43b0e56a96..0ab83924b68 100644
--- a/src/mame/drivers/cps1.cpp
+++ b/src/mame/drivers/cps1.cpp
@@ -353,11 +353,15 @@ TIMER_DEVICE_CALLBACK_MEMBER(cps_state::ganbare_interrupt)
void cps_state::cpu_space_map(address_map &map)
{
// Eventually add the sync to E due to vpa
- map(0xfffff2, 0xffffff).lr16("autovectors", [this](offs_t offset) -> u16 {
- // clear the IPL1 and IPL2 flip-flops
- m_maincpu->set_input_line(2, CLEAR_LINE);
- m_maincpu->set_input_line(4, CLEAR_LINE);
- return m68000_device::autovector(offset+1); });
+ map(0xfffff2, 0xffffff).lr16(
+ [this] (offs_t offset) -> u16
+ {
+ // clear the IPL1 and IPL2 flip-flops
+ m_maincpu->set_input_line(2, CLEAR_LINE);
+ m_maincpu->set_input_line(4, CLEAR_LINE);
+ return m68000_device::autovector(offset + 1);
+ },
+ "autovectors");
}
@@ -13026,7 +13030,7 @@ READ16_MEMBER(cps_state::sf2rb_prot_r)
void cps_state::init_sf2rb()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x200000, 0x2fffff, read16_delegate(FUNC(cps_state::sf2rb_prot_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x200000, 0x2fffff, read16_delegate(*this, FUNC(cps_state::sf2rb_prot_r)));
init_cps1();
}
@@ -13047,7 +13051,7 @@ READ16_MEMBER(cps_state::sf2rb2_prot_r)
void cps_state::init_sf2rb2()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x200000, 0x2fffff, read16_delegate(FUNC(cps_state::sf2rb2_prot_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x200000, 0x2fffff, read16_delegate(*this, FUNC(cps_state::sf2rb2_prot_r)));
init_cps1();
}
@@ -13057,7 +13061,7 @@ void cps_state::init_sf2ee()
/* This specific revision of SF2 has the CPS-B custom mapped at a different address. */
/* The mapping is handled by the PAL IOB2 on the B-board */
m_maincpu->space(AS_PROGRAM).unmap_readwrite(0x800140, 0x80017f);
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x8001c0, 0x8001ff, read16_delegate(FUNC(cps_state::cps1_cps_b_r),this), write16_delegate(FUNC(cps_state::cps1_cps_b_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x8001c0, 0x8001ff, read16_delegate(*this, FUNC(cps_state::cps1_cps_b_r)), write16_delegate(*this, FUNC(cps_state::cps1_cps_b_w)));
init_cps1();
}
@@ -13065,7 +13069,7 @@ void cps_state::init_sf2ee()
void cps_state::init_sf2thndr()
{
/* This particular hack uses a modified B-board PAL which mirrors the CPS-B registers at an alternate address */
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x8001c0, 0x8001ff, read16_delegate(FUNC(cps_state::cps1_cps_b_r),this), write16_delegate(FUNC(cps_state::cps1_cps_b_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x8001c0, 0x8001ff, read16_delegate(*this, FUNC(cps_state::cps1_cps_b_r)), write16_delegate(*this, FUNC(cps_state::cps1_cps_b_w)));
init_cps1();
}
@@ -13073,7 +13077,7 @@ void cps_state::init_sf2thndr()
void cps_state::init_sf2hack()
{
/* some SF2 hacks have some inputs wired to the LSB instead of MSB */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x800018, 0x80001f, read16_delegate(FUNC(cps_state::cps1_hack_dsw_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x800018, 0x80001f, read16_delegate(*this, FUNC(cps_state::cps1_hack_dsw_r)));
init_cps1();
}
@@ -13115,7 +13119,7 @@ READ16_MEMBER(cps_state::sf2dongb_prot_r)
void cps_state::init_sf2dongb()
{
// There is a hacked up Altera EP910PC-30 DIP in the 5f socket instead of a 4th EPROM
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x180000, 0x1fffff, read16_delegate(FUNC(cps_state::sf2dongb_prot_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x180000, 0x1fffff, read16_delegate(*this, FUNC(cps_state::sf2dongb_prot_r)));
init_cps1();
}
@@ -13137,8 +13141,8 @@ WRITE16_MEMBER(cps_state::sf2ceblp_prot_w)
void cps_state::init_sf2ceblp()
{
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x5762b0, 0x5762b1, write16_delegate(FUNC(cps_state::sf2ceblp_prot_w),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x57A2b0, 0x57A2b1, read16_delegate(FUNC(cps_state::sf2ceblp_prot_r),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x5762b0, 0x5762b1, write16_delegate(*this, FUNC(cps_state::sf2ceblp_prot_w)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x57A2b0, 0x57A2b1, read16_delegate(*this, FUNC(cps_state::sf2ceblp_prot_r)));
init_cps1();
}
@@ -13255,7 +13259,7 @@ void cps_state::init_ganbare()
init_cps1();
/* ram is shared between the CPS work ram and the timekeeper ram */
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xff0000, 0xffffff, read16_delegate(FUNC(cps_state::ganbare_ram_r),this), write16_delegate(FUNC(cps_state::ganbare_ram_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xff0000, 0xffffff, read16_delegate(*this, FUNC(cps_state::ganbare_ram_r)), write16_delegate(*this, FUNC(cps_state::ganbare_ram_w)));
}
READ16_MEMBER(cps_state::dinohunt_sound_r)
@@ -13269,7 +13273,7 @@ READ16_MEMBER(cps_state::dinohunt_sound_r)
void cps_state::init_dinohunt()
{
// is this shared with the new sound hw?
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xf18000, 0xf19fff, read16_delegate(FUNC(cps_state::dinohunt_sound_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xf18000, 0xf19fff, read16_delegate(*this, FUNC(cps_state::dinohunt_sound_r)));
m_maincpu->space(AS_PROGRAM).install_read_port(0xfc0000, 0xfc0001, "IN2"); ;
// the ym2151 doesn't seem to be used. Is it actually on the PCB?
diff --git a/src/mame/drivers/cps2.cpp b/src/mame/drivers/cps2.cpp
index 69b5acb934d..0795c89dcfa 100644
--- a/src/mame/drivers/cps2.cpp
+++ b/src/mame/drivers/cps2.cpp
@@ -9930,7 +9930,7 @@ void cps2_state::init_digital_volume()
m_cps2disabledigitalvolume = 0;
/* create a timer to update our volume state from the fake switches - read it every 6 frames or so to enable some granularity */
- m_digital_volume_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(cps2_state::cps2_update_digital_volume),this));
+ m_digital_volume_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(cps2_state::cps2_update_digital_volume), this));
m_digital_volume_timer->adjust(attotime::from_msec(100), 0, attotime::from_msec(100));
}
@@ -9977,7 +9977,7 @@ void cps2_state::init_pzloop2()
save_item(NAME(m_readpaddle));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x804000, 0x804001, read16_delegate(FUNC(cps2_state::joy_or_paddle_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x804000, 0x804001, read16_delegate(*this, FUNC(cps2_state::joy_or_paddle_r)));
}
void cps2_state::init_singbrd()
@@ -10025,7 +10025,7 @@ void cps2_state::init_gigaman2()
m_gigaman2_dummyqsound_ram = std::make_unique<uint16_t[]>(0x20000 / 2);
save_pointer(NAME(m_gigaman2_dummyqsound_ram), 0x20000 / 2);
- space.install_readwrite_handler(0x618000, 0x619fff, read16_delegate(FUNC(cps2_state::gigaman2_dummyqsound_r),this), write16_delegate(FUNC(cps2_state::gigaman2_dummyqsound_w), this)); // no qsound..
+ space.install_readwrite_handler(0x618000, 0x619fff, read16_delegate(*this, FUNC(cps2_state::gigaman2_dummyqsound_r)), write16_delegate(*this, FUNC(cps2_state::gigaman2_dummyqsound_w))); // no qsound..
memcpy(m_decrypted_opcodes, memregion("maincpu")->base()+0x200000, 0x200000);
@@ -10042,7 +10042,7 @@ void cps2_state::init_ecofghtr()
save_item(NAME(m_readpaddle));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x804000, 0x804001, read16_delegate(FUNC(cps2_state::joy_or_paddle_ecofghtr_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x804000, 0x804001, read16_delegate(*this, FUNC(cps2_state::joy_or_paddle_ecofghtr_r)));
}
diff --git a/src/mame/drivers/cps3.cpp b/src/mame/drivers/cps3.cpp
index fac2c927a22..ae9f9b5f02b 100644
--- a/src/mame/drivers/cps3.cpp
+++ b/src/mame/drivers/cps3.cpp
@@ -2157,10 +2157,10 @@ void cps3_state::cps3_map(address_map &map)
map(0x05040000, 0x0504ffff).rw(FUNC(cps3_state::ssram_r), FUNC(cps3_state::ssram_w)).umask32(0x00ff00ff); // 'SS' RAM (Score Screen) (text tilemap + toles)
map(0x05050000, 0x0505002b).w(FUNC(cps3_state::ssregs_w)).umask32(0x00ff00ff);
- map(0x05100000, 0x05100003).lw32("irq12_ack", [this](offs_t, u32) { m_maincpu->set_input_line(12, CLEAR_LINE); });
- map(0x05110000, 0x05110003).lw32("irq10_ack", [this](offs_t, u32) { m_maincpu->set_input_line(10, CLEAR_LINE); });
- map(0x05120000, 0x05120003).lw32("irq14_ack", [this](offs_t, u32) { m_maincpu->set_input_line(14, CLEAR_LINE); }); // ?? unused
- map(0x05130000, 0x05130003).lw32("irq6_ack", [this](offs_t, u32) { m_maincpu->set_input_line(6, CLEAR_LINE); }); // ?? unused
+ map(0x05100000, 0x05100003).lw32(NAME([this] (offs_t, u32) { m_maincpu->set_input_line(12, CLEAR_LINE); }));
+ map(0x05110000, 0x05110003).lw32(NAME([this] (offs_t, u32) { m_maincpu->set_input_line(10, CLEAR_LINE); }));
+ map(0x05120000, 0x05120003).lw32(NAME([this] (offs_t, u32) { m_maincpu->set_input_line(14, CLEAR_LINE); })); // ?? unused
+ map(0x05130000, 0x05130003).lw32(NAME([this] (offs_t, u32) { m_maincpu->set_input_line(6, CLEAR_LINE); })); // ?? unused
map(0x05140000, 0x05140003).rw("scsi:7:wd33c93", FUNC(wd33c93_device::indir_r), FUNC(wd33c93_device::indir_w)).umask32(0x00ff00ff);
map(0x06000000, 0x067fffff).rw(FUNC(cps3_state::flash1_r), FUNC(cps3_state::flash1_w)); /* Flash ROMs simm 1 */
diff --git a/src/mame/drivers/crgolf.cpp b/src/mame/drivers/crgolf.cpp
index b6d7be43ad6..e44dcaa034b 100644
--- a/src/mame/drivers/crgolf.cpp
+++ b/src/mame/drivers/crgolf.cpp
@@ -757,7 +757,7 @@ ROM_END
void crgolf_state::init_crgolfhi()
{
- m_audiocpu->space(AS_PROGRAM).install_write_handler(0xa000, 0xa003, write8_delegate(FUNC(crgolf_state::crgolfhi_sample_w),this));
+ m_audiocpu->space(AS_PROGRAM).install_write_handler(0xa000, 0xa003, write8_delegate(*this, FUNC(crgolf_state::crgolfhi_sample_w)));
}
diff --git a/src/mame/drivers/crimfght.cpp b/src/mame/drivers/crimfght.cpp
index cc1b9cb146d..147f8619994 100644
--- a/src/mame/drivers/crimfght.cpp
+++ b/src/mame/drivers/crimfght.cpp
@@ -328,12 +328,12 @@ void crimfght_state::crimfght(machine_config &config)
K052109(config, m_k052109, 0);
m_k052109->set_palette(m_palette);
m_k052109->set_screen(nullptr);
- m_k052109->set_tile_callback(FUNC(crimfght_state::tile_callback), this);
+ m_k052109->set_tile_callback(FUNC(crimfght_state::tile_callback));
K051960(config, m_k051960, 0);
m_k051960->set_palette(m_palette);
m_k051960->set_screen("screen");
- m_k051960->set_sprite_callback(FUNC(crimfght_state::sprite_callback), this);
+ m_k051960->set_sprite_callback(FUNC(crimfght_state::sprite_callback));
m_k051960->irq_handler().set_inputline(m_maincpu, KONAMI_IRQ_LINE);
/* sound hardware */
diff --git a/src/mame/drivers/crshrace.cpp b/src/mame/drivers/crshrace.cpp
index 0a78c3f0d3e..0f243576a88 100644
--- a/src/mame/drivers/crshrace.cpp
+++ b/src/mame/drivers/crshrace.cpp
@@ -427,7 +427,7 @@ void crshrace_state::crshrace(machine_config &config)
PALETTE(config, m_palette).set_format(palette_device::xGBR_555, 2048);
VSYSTEM_SPR(config, m_spr, 0);
- m_spr->set_tile_indirect_cb(FUNC(crshrace_state::crshrace_tile_callback), this);
+ m_spr->set_tile_indirect_cb(FUNC(crshrace_state::crshrace_tile_callback));
m_spr->set_gfx_region(2);
m_spr->set_gfxdecode_tag(m_gfxdecode);
diff --git a/src/mame/drivers/crvision.cpp b/src/mame/drivers/crvision.cpp
index 8f97937de0a..19811bb602b 100644
--- a/src/mame/drivers/crvision.cpp
+++ b/src/mame/drivers/crvision.cpp
@@ -694,8 +694,8 @@ void crvision_state::machine_start()
if (m_cart->exists())
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x4000, 0x7fff, read8_delegate(FUNC(crvision_cart_slot_device::read_rom40),(crvision_cart_slot_device*)m_cart));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x8000, 0xbfff, read8_delegate(FUNC(crvision_cart_slot_device::read_rom80),(crvision_cart_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x4000, 0x7fff, read8_delegate(*m_cart, FUNC(crvision_cart_slot_device::read_rom40)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x8000, 0xbfff, read8_delegate(*m_cart, FUNC(crvision_cart_slot_device::read_rom80)));
}
}
diff --git a/src/mame/drivers/csplayh5.cpp b/src/mame/drivers/csplayh5.cpp
index 426410c7227..3a4686d7b9f 100644
--- a/src/mame/drivers/csplayh5.cpp
+++ b/src/mame/drivers/csplayh5.cpp
@@ -46,8 +46,8 @@
class csplayh5_state : public driver_device
{
public:
- csplayh5_state(const machine_config &mconfig, device_type type, const char *tag)
- : driver_device(mconfig, type, tag),
+ csplayh5_state(const machine_config &mconfig, device_type type, const char *tag) :
+ driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"),
m_nichisnd(*this, "nichisnd"),
m_key(*this, "KEY.%u", 0),
@@ -361,7 +361,7 @@ void csplayh5_state::csplayh5(machine_config &config)
m_maincpu->set_addrmap(AS_PROGRAM, &csplayh5_state::csplayh5_map);
m_maincpu->out_parallel_callback().set(FUNC(csplayh5_state::tmp68301_parallel_port_w));
- TIMER(config, "scantimer", 0).configure_scanline(timer_device::expired_delegate(FUNC(csplayh5_state::csplayh5_irq), this), "screen", 0, 1);
+ TIMER(config, "scantimer", 0).configure_scanline(FUNC(csplayh5_state::csplayh5_irq), "screen", 0, 1);
#if USE_H8
h830002_device &subcpu(H83002(config, "subcpu", DVD_CLOCK/2)); /* unknown divider */
diff --git a/src/mame/drivers/cswat.cpp b/src/mame/drivers/cswat.cpp
index 3624c96a493..0b68aeeb176 100644
--- a/src/mame/drivers/cswat.cpp
+++ b/src/mame/drivers/cswat.cpp
@@ -34,8 +34,8 @@ TODO:
class cswat_state : public driver_device
{
public:
- cswat_state(const machine_config &mconfig, device_type type, const char *tag)
- : driver_device(mconfig, type, tag),
+ cswat_state(const machine_config &mconfig, device_type type, const char *tag) :
+ driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"),
m_gfxdecode(*this, "gfxdecode"),
m_videoram(*this, "videoram"),
@@ -98,7 +98,7 @@ TILE_GET_INFO_MEMBER(cswat_state::get_tile_info)
void cswat_state::video_start()
{
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cswat_state::get_tile_info),this), tilemap_mapper_delegate(FUNC(cswat_state::tilemap_scan_rows),this), 8, 8, 36, 28);
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cswat_state::get_tile_info)), tilemap_mapper_delegate(*this, FUNC(cswat_state::tilemap_scan_rows)), 8, 8, 36, 28);
}
uint32_t cswat_state::screen_update_cswat(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
diff --git a/src/mame/drivers/cultures.cpp b/src/mame/drivers/cultures.cpp
index 69f636b5c74..c388d96a098 100644
--- a/src/mame/drivers/cultures.cpp
+++ b/src/mame/drivers/cultures.cpp
@@ -24,8 +24,8 @@
class cultures_state : public driver_device
{
public:
- cultures_state(const machine_config &mconfig, device_type type, const char *tag)
- : driver_device(mconfig, type, tag),
+ cultures_state(const machine_config &mconfig, device_type type, const char *tag) :
+ driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"),
m_gfxdecode(*this, "gfxdecode"),
m_vrambank(*this, "vrambank"),
@@ -109,9 +109,9 @@ TILE_GET_INFO_MEMBER(cultures_state::get_bg0_tile_info)
void cultures_state::video_start()
{
- m_bg0_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cultures_state::get_bg0_tile_info),this),TILEMAP_SCAN_ROWS, 8, 8, 64, 128);
- m_bg1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cultures_state::get_bg1_tile_info),this),TILEMAP_SCAN_ROWS, 8, 8, 512, 512);
- m_bg2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cultures_state::get_bg2_tile_info),this),TILEMAP_SCAN_ROWS, 8, 8, 512, 512);
+ m_bg0_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cultures_state::get_bg0_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 128);
+ m_bg1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cultures_state::get_bg1_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 512, 512);
+ m_bg2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cultures_state::get_bg2_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 512, 512);
m_bg1_tilemap->set_transparent_pen(0);
m_bg0_tilemap->set_transparent_pen(0);
diff --git a/src/mame/drivers/cv1k.cpp b/src/mame/drivers/cv1k.cpp
index 9180342ed1e..528a4b946d2 100644
--- a/src/mame/drivers/cv1k.cpp
+++ b/src/mame/drivers/cv1k.cpp
@@ -900,7 +900,7 @@ void cv1k_state::install_speedups(uint32_t idleramoff, uint32_t idlepc, bool is_
m_maincpu->sh2drc_add_pcflush(idlepc+2);
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xc000000+m_idleramoffs, 0xc000000+m_idleramoffs+7, read64_delegate(FUNC(cv1k_state::speedup_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xc000000+m_idleramoffs, 0xc000000+m_idleramoffs+7, read64_delegate(*this, FUNC(cv1k_state::speedup_r)));
m_maincpu->sh2drc_add_fastram(0x00000000, 0x003fffff, true, m_rombase);
diff --git a/src/mame/drivers/cvs.cpp b/src/mame/drivers/cvs.cpp
index 5853563151e..11879abd318 100644
--- a/src/mame/drivers/cvs.cpp
+++ b/src/mame/drivers/cvs.cpp
@@ -1561,7 +1561,7 @@ READ8_MEMBER(cvs_state::huncholy_prot_r)
void cvs_state::init_huncholy()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x6ff1, 0x6ff2, read8_delegate(FUNC(cvs_state::huncholy_prot_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x6ff1, 0x6ff2, read8_delegate(*this, FUNC(cvs_state::huncholy_prot_r)));
save_item(NAME(m_protection_counter));
}
@@ -1586,7 +1586,7 @@ READ8_MEMBER(cvs_state::superbik_prot_r)
void cvs_state::init_superbik()
{
m_protection_counter = 0;
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x73f1, 0x73f2, read8_delegate(FUNC(cvs_state::superbik_prot_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x73f1, 0x73f2, read8_delegate(*this, FUNC(cvs_state::superbik_prot_r)));
save_item(NAME(m_protection_counter));
}
@@ -1619,7 +1619,7 @@ READ8_MEMBER(cvs_state::hero_prot_r)
void cvs_state::init_hero()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x73f0, 0x73ff, read8_delegate(FUNC(cvs_state::hero_prot_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x73f0, 0x73ff, read8_delegate(*this, FUNC(cvs_state::hero_prot_r)));
}
diff --git a/src/mame/drivers/cybertnk.cpp b/src/mame/drivers/cybertnk.cpp
index 7a834e49f94..87dd4c34787 100644
--- a/src/mame/drivers/cybertnk.cpp
+++ b/src/mame/drivers/cybertnk.cpp
@@ -275,13 +275,13 @@ TILE_GET_INFO_MEMBER(cybertnk_state::get_tile_info)
void cybertnk_state::video_start()
{
- m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cybertnk_state::get_tile_info<0>),this),TILEMAP_SCAN_ROWS,8,8,128,32);
+ m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cybertnk_state::get_tile_info<0>)), TILEMAP_SCAN_ROWS, 8,8,128,32);
m_tilemap[0]->set_transparent_pen(0);
- m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cybertnk_state::get_tile_info<1>),this),TILEMAP_SCAN_ROWS,8,8,128,32);
+ m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cybertnk_state::get_tile_info<1>)), TILEMAP_SCAN_ROWS, 8,8,128,32);
m_tilemap[1]->set_transparent_pen(0);
- m_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cybertnk_state::get_tile_info<2>),this),TILEMAP_SCAN_ROWS,8,8,128,32);
+ m_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cybertnk_state::get_tile_info<2>)), TILEMAP_SCAN_ROWS, 8,8,128,32);
m_tilemap[2]->set_transparent_pen(0);
}
diff --git a/src/mame/drivers/cybiko.cpp b/src/mame/drivers/cybiko.cpp
index 3d964f31ff0..fc69472fcf4 100644
--- a/src/mame/drivers/cybiko.cpp
+++ b/src/mame/drivers/cybiko.cpp
@@ -426,7 +426,7 @@ void cybiko_state::cybikov1_base(machine_config &config)
m_debug_serial->set_option_device_input_defaults("pty", DEVICE_INPUT_DEFAULTS_NAME(debug_serial));
// quickload
- QUICKLOAD(config, "quickload", "bin,nv").set_load_callback(FUNC(cybiko_state::quickload_cybiko), this);
+ QUICKLOAD(config, "quickload", "bin,nv").set_load_callback(FUNC(cybiko_state::quickload_cybiko));
}
void cybiko_state::cybikov1_flash(machine_config &config)
@@ -497,7 +497,7 @@ void cybiko_state::cybikoxt(machine_config &config)
subdevice<h8_sci_device>("maincpu:sci2")->tx_handler().set("debug_serial", FUNC(rs232_port_device::write_txd));
// quickload
- QUICKLOAD(config.replace(), "quickload", "bin,nv").set_load_callback(FUNC(cybiko_state::quickload_cybikoxt), this);
+ QUICKLOAD(config.replace(), "quickload", "bin,nv").set_load_callback(FUNC(cybiko_state::quickload_cybikoxt));
}
/////////
diff --git a/src/mame/drivers/cz101.cpp b/src/mame/drivers/cz101.cpp
index 3ece028eed4..3798b82d4e5 100644
--- a/src/mame/drivers/cz101.cpp
+++ b/src/mame/drivers/cz101.cpp
@@ -405,7 +405,7 @@ void cz101_state::cz101(machine_config &config)
HD44780(config, m_hd44780, 0);
m_hd44780->set_lcd_size(2, 16);
- m_hd44780->set_pixel_update_cb(FUNC(cz101_state::lcd_pixel_update), this);
+ m_hd44780->set_pixel_update_cb(FUNC(cz101_state::lcd_pixel_update));
config.set_default_layout(layout_cz101);
}
diff --git a/src/mame/drivers/d6800.cpp b/src/mame/drivers/d6800.cpp
index 5903ef4c6d3..ced66c31a75 100644
--- a/src/mame/drivers/d6800.cpp
+++ b/src/mame/drivers/d6800.cpp
@@ -445,7 +445,7 @@ void d6800_state::d6800(machine_config &config)
TIMER(config, "kansas_r").configure_periodic(FUNC(d6800_state::kansas_r), attotime::from_hz(40000));
/* quickload */
- QUICKLOAD(config, "quickload", "bin,c8,ch8", attotime::from_seconds(1)).set_load_callback(FUNC(d6800_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "bin,c8,ch8", attotime::from_seconds(1)).set_load_callback(FUNC(d6800_state::quickload_cb));
}
/* ROMs */
diff --git a/src/mame/drivers/d6809.cpp b/src/mame/drivers/d6809.cpp
index 24525bcc328..52360ee24f1 100644
--- a/src/mame/drivers/d6809.cpp
+++ b/src/mame/drivers/d6809.cpp
@@ -158,7 +158,7 @@ void d6809_state::mem_map(address_map &map)
//map(0x00f0, 0x00f0).r(m_fdc, FUNC(upd765a_device::msr_r));
map(0x00ff, 0x00ff).rw(FUNC(d6809_state::term_r), FUNC(d6809_state::term_w));
map(0x0200, 0x0201).mirror(0xfe).m(m_fdc, FUNC(upd765a_device::map));
- map(0x0300, 0x0300).mirror(0xff).lw8("tc", [this](u8 data){ m_fdc->tc_w(1); m_fdc->tc_w(0); } );
+ map(0x0300, 0x0300).mirror(0xff).lw8(NAME([this] (u8 data){ m_fdc->tc_w(1); m_fdc->tc_w(0); }));
map(0x1000, 0xdfff).ram();
map(0xe000, 0xffff).rom().region("roms", 0);
}
diff --git a/src/mame/drivers/d9final.cpp b/src/mame/drivers/d9final.cpp
index 41fb3d33b0e..adcb78987ab 100644
--- a/src/mame/drivers/d9final.cpp
+++ b/src/mame/drivers/d9final.cpp
@@ -90,7 +90,7 @@ TILE_GET_INFO_MEMBER(d9final_state::get_sc0_tile_info)
void d9final_state::video_start()
{
- m_sc0_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(d9final_state::get_sc0_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,32);
+ m_sc0_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(d9final_state::get_sc0_tile_info)), TILEMAP_SCAN_ROWS, 8,8,64,32);
}
uint32_t d9final_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
diff --git a/src/mame/drivers/dacholer.cpp b/src/mame/drivers/dacholer.cpp
index 015d0fa5834..28fc721569a 100644
--- a/src/mame/drivers/dacholer.cpp
+++ b/src/mame/drivers/dacholer.cpp
@@ -138,8 +138,8 @@ TILE_GET_INFO_MEMBER(dacholer_state::get_fg_tile_info)
void dacholer_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(dacholer_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(dacholer_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dacholer_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dacholer_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(0);
}
@@ -714,7 +714,7 @@ void dacholer_state::itaten(machine_config &config)
m_audiocpu->set_addrmap(AS_PROGRAM, &dacholer_state::itaten_snd_map);
m_audiocpu->set_addrmap(AS_IO, &dacholer_state::itaten_snd_io_map);
- m_audiocpu->set_vblank_int(device_interrupt_delegate(), nullptr);
+ m_audiocpu->remove_vblank_int();
m_gfxdecode->set_info(gfx_itaten);
diff --git a/src/mame/drivers/dassault.cpp b/src/mame/drivers/dassault.cpp
index 6dac523c34a..4795bae0eda 100644
--- a/src/mame/drivers/dassault.cpp
+++ b/src/mame/drivers/dassault.cpp
@@ -565,8 +565,8 @@ void dassault_state::dassault(machine_config &config)
m_deco_tilegen[0]->set_pf2_col_bank(16);
m_deco_tilegen[0]->set_pf1_col_mask(0x0f);
m_deco_tilegen[0]->set_pf2_col_mask(0x0f);
- m_deco_tilegen[0]->set_bank1_callback(FUNC(dassault_state::bank_callback), this);
- m_deco_tilegen[0]->set_bank2_callback(FUNC(dassault_state::bank_callback), this);
+ m_deco_tilegen[0]->set_bank1_callback(FUNC(dassault_state::bank_callback));
+ m_deco_tilegen[0]->set_bank2_callback(FUNC(dassault_state::bank_callback));
m_deco_tilegen[0]->set_pf12_8x8_bank(0);
m_deco_tilegen[0]->set_pf12_16x16_bank(1);
m_deco_tilegen[0]->set_gfxdecode_tag("gfxdecode");
@@ -580,8 +580,8 @@ void dassault_state::dassault(machine_config &config)
m_deco_tilegen[1]->set_pf2_col_bank(16);
m_deco_tilegen[1]->set_pf1_col_mask(0x0f);
m_deco_tilegen[1]->set_pf2_col_mask(0x0f);
- m_deco_tilegen[1]->set_bank1_callback(FUNC(dassault_state::bank_callback), this);
- m_deco_tilegen[1]->set_bank2_callback(FUNC(dassault_state::bank_callback), this);
+ m_deco_tilegen[1]->set_bank1_callback(FUNC(dassault_state::bank_callback));
+ m_deco_tilegen[1]->set_bank2_callback(FUNC(dassault_state::bank_callback));
m_deco_tilegen[1]->set_pf12_8x8_bank(0);
m_deco_tilegen[1]->set_pf12_16x16_bank(2);
m_deco_tilegen[1]->set_gfxdecode_tag("gfxdecode");
diff --git a/src/mame/drivers/dblewing.cpp b/src/mame/drivers/dblewing.cpp
index 5dbd3d027a1..4b9230db575 100644
--- a/src/mame/drivers/dblewing.cpp
+++ b/src/mame/drivers/dblewing.cpp
@@ -376,15 +376,15 @@ void dblewing_state::dblewing(machine_config &config)
m_deco_tilegen->set_pf2_col_bank(0x10);
m_deco_tilegen->set_pf1_col_mask(0x0f);
m_deco_tilegen->set_pf2_col_mask(0x0f);
- m_deco_tilegen->set_bank1_callback(FUNC(dblewing_state::bank_callback), this);
- m_deco_tilegen->set_bank2_callback(FUNC(dblewing_state::bank_callback), this);
+ m_deco_tilegen->set_bank1_callback(FUNC(dblewing_state::bank_callback));
+ m_deco_tilegen->set_bank2_callback(FUNC(dblewing_state::bank_callback));
m_deco_tilegen->set_pf12_8x8_bank(0);
m_deco_tilegen->set_pf12_16x16_bank(1);
m_deco_tilegen->set_gfxdecode_tag("gfxdecode");
DECO_SPRITE(config, m_sprgen, 0);
m_sprgen->set_gfx_region(2);
- m_sprgen->set_pri_callback(FUNC(dblewing_state::pri_callback), this);
+ m_sprgen->set_pri_callback(FUNC(dblewing_state::pri_callback));
m_sprgen->set_gfxdecode_tag("gfxdecode");
DECO104PROT(config, m_deco104, 0);
diff --git a/src/mame/drivers/dbz.cpp b/src/mame/drivers/dbz.cpp
index 160c23da091..2f587e406b6 100644
--- a/src/mame/drivers/dbz.cpp
+++ b/src/mame/drivers/dbz.cpp
@@ -125,7 +125,7 @@ void dbz_state::dbz_map(address_map &map)
map(0x4d4000, 0x4d401f).w(m_k053936_2, FUNC(k053936_device::ctrl_w));
map(0x4e0000, 0x4e0001).portr("P1_P2");
map(0x4e0002, 0x4e0003).portr("SYSTEM_DSW1");
- map(0x4e4000, 0x4e4001).lr8("4e4000", [this]() { return uint8_t(m_dsw2->read()); });
+ map(0x4e4000, 0x4e4001).lr8(NAME([this]() { return uint8_t(m_dsw2->read()); }));
map(0x4e8000, 0x4e8001).nopw();
map(0x4ec000, 0x4ec001).w(FUNC(dbz_state::dbzcontrol_w));
map(0x4f0000, 0x4f0001).w(FUNC(dbz_state::dbz_sound_command_w));
@@ -349,12 +349,12 @@ void dbz_state::dbz(machine_config &config)
PALETTE(config, "palette").set_format(palette_device::xRGB_555, 0x4000/2).enable_shadows();
K056832(config, m_k056832, 0);
- m_k056832->set_tile_callback(FUNC(dbz_state::tile_callback), this);
+ m_k056832->set_tile_callback(FUNC(dbz_state::tile_callback));
m_k056832->set_config(K056832_BPP_4, 1, 1);
m_k056832->set_palette("palette");
K053246(config, m_k053246, 0);
- m_k053246->set_sprite_callback(FUNC(dbz_state::sprite_callback), this);
+ m_k053246->set_sprite_callback(FUNC(dbz_state::sprite_callback));
m_k053246->set_config(NORMAL_PLANE_ORDER, -87, 32); // or -52, 16?
m_k053246->set_palette("palette");
diff --git a/src/mame/drivers/dccons.cpp b/src/mame/drivers/dccons.cpp
index 3178e75574a..5d5ea161b95 100644
--- a/src/mame/drivers/dccons.cpp
+++ b/src/mame/drivers/dccons.cpp
@@ -305,14 +305,14 @@ void dc_cons_state::init_dc()
void dc_cons_state::init_dcus()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xc2303b0, 0xc2303b7, read64_delegate(FUNC(dc_cons_state::dcus_idle_skip_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xc2303b0, 0xc2303b7, read64_delegate(*this, FUNC(dc_cons_state::dcus_idle_skip_r)));
init_dc();
}
void dc_cons_state::init_dcjp()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xc2302f8, 0xc2302ff, read64_delegate(FUNC(dc_cons_state::dcjp_idle_skip_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xc2302f8, 0xc2302ff, read64_delegate(*this, FUNC(dc_cons_state::dcjp_idle_skip_r)));
init_dc();
}
diff --git a/src/mame/drivers/ddayjlc.cpp b/src/mame/drivers/ddayjlc.cpp
index 02a18490774..0f3523be9e8 100644
--- a/src/mame/drivers/ddayjlc.cpp
+++ b/src/mame/drivers/ddayjlc.cpp
@@ -175,8 +175,8 @@ TILE_GET_INFO_MEMBER(ddayjlc_state::get_tile_info_fg)
void ddayjlc_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ddayjlc_state::get_tile_info_bg),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ddayjlc_state::get_tile_info_fg),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ddayjlc_state::get_tile_info_bg)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ddayjlc_state::get_tile_info_fg)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_bg_tilemap->set_transparent_pen(0);
m_fg_tilemap->set_transparent_pen(0);
diff --git a/src/mame/drivers/ddealer.cpp b/src/mame/drivers/ddealer.cpp
index dbec61011c7..7a64cffe3a8 100644
--- a/src/mame/drivers/ddealer.cpp
+++ b/src/mame/drivers/ddealer.cpp
@@ -204,7 +204,7 @@ TILE_GET_INFO_MEMBER(ddealer_state::get_back_tile_info)
void ddealer_state::video_start()
{
- m_back_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ddealer_state::get_back_tile_info),this), TILEMAP_SCAN_COLS, 8, 8, 64, 32);
+ m_back_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ddealer_state::get_back_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 64, 32);
}
void ddealer_state::draw_video_layer(uint16_t* vreg_base, uint16_t* top, uint16_t* bottom, bitmap_ind16 &bitmap, const rectangle &cliprect, int flipy)
@@ -681,7 +681,7 @@ READ16_MEMBER(ddealer_state::mcu_r)
void ddealer_state::init_ddealer()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xfe01c, 0xfe01d, read16_delegate(FUNC(ddealer_state::mcu_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xfe01c, 0xfe01d, read16_delegate(*this, FUNC(ddealer_state::mcu_r)));
}
ROM_START( ddealer )
diff --git a/src/mame/drivers/ddenlovr.cpp b/src/mame/drivers/ddenlovr.cpp
index 848056549a1..47e5d510ac8 100644
--- a/src/mame/drivers/ddenlovr.cpp
+++ b/src/mame/drivers/ddenlovr.cpp
@@ -12919,7 +12919,7 @@ ROM_END
void ddenlovr_state::init_momotaro()
{
- m_maincpu->space(AS_IO).install_read_handler(0xe0, 0xe0, read8_delegate(FUNC(ddenlovr_state::momotaro_protection_r),this));
+ m_maincpu->space(AS_IO).install_read_handler(0xe0, 0xe0, read8_delegate(*this, FUNC(ddenlovr_state::momotaro_protection_r)));
}
/***************************************************************************
diff --git a/src/mame/drivers/deadang.cpp b/src/mame/drivers/deadang.cpp
index 6cbae850333..4668803308a 100644
--- a/src/mame/drivers/deadang.cpp
+++ b/src/mame/drivers/deadang.cpp
@@ -733,8 +733,8 @@ void deadang_state::init_ghunter()
m_adpcm1->decrypt();
m_adpcm2->decrypt();
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x80000, 0x80001, read16_delegate(FUNC(deadang_state::ghunter_trackball_low_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xb0000, 0xb0001, read16_delegate(FUNC(deadang_state::ghunter_trackball_high_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x80000, 0x80001, read16_delegate(*this, FUNC(deadang_state::ghunter_trackball_low_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xb0000, 0xb0001, read16_delegate(*this, FUNC(deadang_state::ghunter_trackball_high_r)));
}
/* Game Drivers */
diff --git a/src/mame/drivers/dec0.cpp b/src/mame/drivers/dec0.cpp
index 1b78501b745..8d7304198ad 100644
--- a/src/mame/drivers/dec0.cpp
+++ b/src/mame/drivers/dec0.cpp
@@ -1860,7 +1860,7 @@ void dec0_automat_state::automat(machine_config &config)
m_tilegen[2]->set_gfxdecode_tag("gfxdecode");
DECO_MXC06(config, m_spritegen, 0);
- m_spritegen->set_colpri_callback(FUNC(dec0_automat_state::robocop_colpri_cb), this);
+ m_spritegen->set_colpri_callback(FUNC(dec0_automat_state::robocop_colpri_cb));
PALETTE(config, m_palette).set_format(palette_device::xBGR_444, 1024);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_automat);
@@ -1986,7 +1986,7 @@ void dec0_state::hbarrel(machine_config &config)
/* video hardware */
m_screen->set_screen_update(FUNC(dec0_state::screen_update_hbarrel));
- m_spritegen->set_colpri_callback(FUNC(dec0_state::hbarrel_colpri_cb), this);
+ m_spritegen->set_colpri_callback(FUNC(dec0_state::hbarrel_colpri_cb));
}
void dec0_state::bandit(machine_config &config)
@@ -2012,7 +2012,7 @@ void dec0_state::bandit(machine_config &config)
/* video hardware */
m_screen->set_screen_update(FUNC(dec0_state::screen_update_bandit));
- m_spritegen->set_colpri_callback(FUNC(dec0_state::bandit_colpri_cb), this);
+ m_spritegen->set_colpri_callback(FUNC(dec0_state::bandit_colpri_cb));
}
void dec0_state::baddudes(machine_config &config)
@@ -2080,7 +2080,7 @@ void dec0_state::robocop(machine_config &config)
/* video hardware */
m_screen->set_screen_update(FUNC(dec0_state::screen_update_robocop));
- m_spritegen->set_colpri_callback(FUNC(dec0_state::robocop_colpri_cb), this);
+ m_spritegen->set_colpri_callback(FUNC(dec0_state::robocop_colpri_cb));
}
void dec0_state::robocopb(machine_config &config)
@@ -2089,7 +2089,7 @@ void dec0_state::robocopb(machine_config &config)
/* video hardware */
m_screen->set_screen_update(FUNC(dec0_state::screen_update_robocop));
- m_spritegen->set_colpri_callback(FUNC(dec0_state::robocop_colpri_cb), this);
+ m_spritegen->set_colpri_callback(FUNC(dec0_state::robocop_colpri_cb));
}
void dec0_state::hippodrm(machine_config &config)
@@ -2171,7 +2171,7 @@ void dec0_state::midres(machine_config &config)
/* video hardware */
m_screen->set_screen_update(FUNC(dec0_state::screen_update_midres));
- m_spritegen->set_colpri_callback(FUNC(dec0_state::midres_colpri_cb), this);
+ m_spritegen->set_colpri_callback(FUNC(dec0_state::midres_colpri_cb));
m_gfxdecode->set_info(gfx_midres);
}
@@ -4018,10 +4018,10 @@ ROM_END
void dec0_state::init_midresb()
{
-// m_maincpu->space(AS_PROGRAM).install_read_handler(0x00180000, 0x0018000f, read16_delegate(FUNC(dec0_state::dec0_controls_r),this));
-// m_maincpu->space(AS_PROGRAM).install_read_handler(0x001a0000, 0x001a000f, read16_delegate(FUNC(dec0_state::dec0_rotary_r),this));
+// m_maincpu->space(AS_PROGRAM).install_read_handler(0x00180000, 0x0018000f, read16_delegate(*this, FUNC(dec0_state::dec0_controls_r)));
+// m_maincpu->space(AS_PROGRAM).install_read_handler(0x001a0000, 0x001a000f, read16_delegate(*this, FUNC(dec0_state::dec0_rotary_r)));
-// m_maincpu->space(AS_PROGRAM).install_write_handler(0x00180014, 0x00180015, write16_delegate(FUNC(dec0_state::midres_sound_w),this));
+// m_maincpu->space(AS_PROGRAM).install_write_handler(0x00180014, 0x00180015, write16_delegate(*this, FUNC(dec0_state::midres_sound_w)));
}
READ16_MEMBER(dec0_state::ffantasybl_242024_r)
@@ -4041,7 +4041,7 @@ void dec0_state::init_ffantasybl()
{
m_maincpu->space(AS_PROGRAM).install_ram(0x24c880, 0x24cbff); // what is this? layer 3-related??
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x00242024, 0x00242025, read16_delegate(FUNC(dec0_state::ffantasybl_242024_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x00242024, 0x00242025, read16_delegate(*this, FUNC(dec0_state::ffantasybl_242024_r)));
m_maincpu->space(AS_PROGRAM).install_read_port(0x00ff87ee, 0x00ff87ef, "VBLANK");
}
diff --git a/src/mame/drivers/dec8.cpp b/src/mame/drivers/dec8.cpp
index 00fa911bceb..09927ceef9a 100644
--- a/src/mame/drivers/dec8.cpp
+++ b/src/mame/drivers/dec8.cpp
@@ -2024,7 +2024,7 @@ void dec8_state::gondo(machine_config &config)
BUFFERED_SPRITERAM8(config, m_spriteram);
DECO_KARNOVSPRITES(config, m_spritegen_krn, 0);
- m_spritegen_krn->set_colpri_callback(FUNC(dec8_state::gondo_colpri_cb), this);
+ m_spritegen_krn->set_colpri_callback(FUNC(dec8_state::gondo_colpri_cb));
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
// m_screen->set_refresh_hz(58);
@@ -2156,7 +2156,7 @@ void dec8_state::ghostb(machine_config &config)
GFXDECODE(config, m_gfxdecode, m_palette, gfx_ghostb);
DECO_RMC3(config, m_palette, 0, 1024); // xxxxBBBBGGGGRRRR with custom weighting
m_palette->set_prom_region("proms");
- m_palette->set_init("palette", FUNC(deco_rmc3_device::palette_init_proms));
+ m_palette->set_init(m_palette, FUNC(deco_rmc3_device::palette_init_proms));
MCFG_VIDEO_START_OVERRIDE(dec8_state,ghostb)
/* sound hardware */
@@ -2365,7 +2365,7 @@ void dec8_state::cobracom(machine_config &config)
m_tilegen[1]->set_gfxdecode_tag(m_gfxdecode);
DECO_MXC06(config, m_spritegen_mxc, 0);
- m_spritegen_mxc->set_colpri_callback(FUNC(dec8_state::cobracom_colpri_cb), this);
+ m_spritegen_mxc->set_colpri_callback(FUNC(dec8_state::cobracom_colpri_cb));
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
// m_screen->set_refresh_hz(58);
diff --git a/src/mame/drivers/deco156.cpp b/src/mame/drivers/deco156.cpp
index 311113bb7a8..19660061e87 100644
--- a/src/mame/drivers/deco156.cpp
+++ b/src/mame/drivers/deco156.cpp
@@ -342,15 +342,15 @@ void deco156_state::hvysmsh(machine_config &config)
m_deco_tilegen->set_pf2_col_bank(0x10);
m_deco_tilegen->set_pf1_col_mask(0x0f);
m_deco_tilegen->set_pf2_col_mask(0x0f);
- m_deco_tilegen->set_bank1_callback(FUNC(deco156_state::bank_callback), this);
- m_deco_tilegen->set_bank2_callback(FUNC(deco156_state::bank_callback), this);
+ m_deco_tilegen->set_bank1_callback(FUNC(deco156_state::bank_callback));
+ m_deco_tilegen->set_bank2_callback(FUNC(deco156_state::bank_callback));
m_deco_tilegen->set_pf12_8x8_bank(0);
m_deco_tilegen->set_pf12_16x16_bank(1);
m_deco_tilegen->set_gfxdecode_tag("gfxdecode");
DECO_SPRITE(config, m_sprgen, 0);
m_sprgen->set_gfx_region(2);
- m_sprgen->set_pri_callback(FUNC(deco156_state::pri_callback), this);
+ m_sprgen->set_pri_callback(FUNC(deco156_state::pri_callback));
m_sprgen->set_gfxdecode_tag("gfxdecode");
/* sound hardware */
@@ -394,15 +394,15 @@ void deco156_state::wcvol95(machine_config &config)
m_deco_tilegen->set_pf2_col_bank(0x10);
m_deco_tilegen->set_pf1_col_mask(0x0f);
m_deco_tilegen->set_pf2_col_mask(0x0f);
- m_deco_tilegen->set_bank1_callback(FUNC(deco156_state::bank_callback), this);
- m_deco_tilegen->set_bank2_callback(FUNC(deco156_state::bank_callback), this);
+ m_deco_tilegen->set_bank1_callback(FUNC(deco156_state::bank_callback));
+ m_deco_tilegen->set_bank2_callback(FUNC(deco156_state::bank_callback));
m_deco_tilegen->set_pf12_8x8_bank(0);
m_deco_tilegen->set_pf12_16x16_bank(1);
m_deco_tilegen->set_gfxdecode_tag("gfxdecode");
DECO_SPRITE(config, m_sprgen, 0);
m_sprgen->set_gfx_region(2);
- m_sprgen->set_pri_callback(FUNC(deco156_state::pri_callback), this);
+ m_sprgen->set_pri_callback(FUNC(deco156_state::pri_callback));
m_sprgen->set_gfxdecode_tag("gfxdecode");
/* sound hardware */
diff --git a/src/mame/drivers/deco32.cpp b/src/mame/drivers/deco32.cpp
index 27acb9b07c7..15467e651c0 100644
--- a/src/mame/drivers/deco32.cpp
+++ b/src/mame/drivers/deco32.cpp
@@ -394,9 +394,9 @@ void captaven_state::captaven_map(address_map &map)
map(0x130000, 0x131fff).ram().w(m_palette, FUNC(palette_device::write32)).share("palette");
map(0x148000, 0x14800f).m(m_deco_irq, FUNC(deco_irq_device::map)).umask32(0x000000ff);
map(0x160000, 0x167fff).ram(); /* Extra work RAM */
- map(0x168000, 0x168000).lr8("dsw1_r", [this]() { return m_io_dsw[0]->read(); });
- map(0x168001, 0x168001).lr8("dsw2_r", [this]() { return m_io_dsw[1]->read(); });
- map(0x168002, 0x168002).lr8("dsw3_r", [this]() { return m_io_dsw[2]->read(); });
+ map(0x168000, 0x168000).lr8(NAME([this] () { return m_io_dsw[0]->read(); }));
+ map(0x168001, 0x168001).lr8(NAME([this] () { return m_io_dsw[1]->read(); }));
+ map(0x168002, 0x168002).lr8(NAME([this] () { return m_io_dsw[2]->read(); }));
map(0x168003, 0x168003).r(FUNC(captaven_state::captaven_soundcpu_status_r));
map(0x178000, 0x178003).w(FUNC(captaven_state::pri_w));
map(0x180000, 0x18001f).rw("tilegen1", FUNC(deco16ic_device::pf_control_dword_r), FUNC(deco16ic_device::pf_control_dword_w));
@@ -418,8 +418,8 @@ void fghthist_state::fghthist_map(address_map &map)
// map(0x000000, 0x001fff).rom().w(FUNC(fghthist_state::pf1_data_w)); // wtf??
map(0x000000, 0x0fffff).rom();
map(0x100000, 0x11ffff).ram();
- map(0x120020, 0x120021).lr16("in0_r", [this]() { return m_io_in[0]->read(); });
- map(0x120024, 0x120025).lr16("in1_r", [this]() { return m_io_in[1]->read(); });
+ map(0x120020, 0x120021).lr16(NAME([this] () { return m_io_in[0]->read(); }));
+ map(0x120024, 0x120025).lr16(NAME([this] () { return m_io_in[1]->read(); }));
map(0x120028, 0x120028).r(FUNC(fghthist_state::eeprom_r));
map(0x12002c, 0x12002c).w(FUNC(fghthist_state::eeprom_w));
map(0x12002d, 0x12002d).w(FUNC(fghthist_state::volume_w));
@@ -1884,7 +1884,7 @@ void captaven_state::captaven(machine_config &config)
m_deco_tilegen[1]->set_pf2_col_bank(0x00);
m_deco_tilegen[1]->set_pf1_col_mask(0x0f);
m_deco_tilegen[1]->set_pf2_col_mask(0x00);
- m_deco_tilegen[1]->set_bank1_callback(FUNC(captaven_state::bank_callback), this);
+ m_deco_tilegen[1]->set_bank1_callback(FUNC(captaven_state::bank_callback));
// no bank2 callback
m_deco_tilegen[1]->set_pf12_8x8_bank(0);
m_deco_tilegen[1]->set_pf12_16x16_bank(2);
@@ -1892,7 +1892,7 @@ void captaven_state::captaven(machine_config &config)
DECO_SPRITE(config, m_sprgen[0], 0);
m_sprgen[0]->set_gfx_region(3);
- m_sprgen[0]->set_pri_callback(FUNC(captaven_state::captaven_pri_callback), this);
+ m_sprgen[0]->set_pri_callback(FUNC(captaven_state::captaven_pri_callback));
m_sprgen[0]->set_gfxdecode_tag(m_gfxdecode);
DECO146PROT(config, m_ioprot, 0);
@@ -1950,8 +1950,8 @@ void fghthist_state::fghthist(machine_config &config)
m_deco_tilegen[0]->set_pf2_col_bank(0x10);
m_deco_tilegen[0]->set_pf1_col_mask(0x0f);
m_deco_tilegen[0]->set_pf2_col_mask(0x0f);
- m_deco_tilegen[0]->set_bank1_callback(FUNC(fghthist_state::bank_callback), this);
- m_deco_tilegen[0]->set_bank2_callback(FUNC(fghthist_state::bank_callback), this);
+ m_deco_tilegen[0]->set_bank1_callback(FUNC(fghthist_state::bank_callback));
+ m_deco_tilegen[0]->set_bank2_callback(FUNC(fghthist_state::bank_callback));
m_deco_tilegen[0]->set_pf12_8x8_bank(0);
m_deco_tilegen[0]->set_pf12_16x16_bank(1);
m_deco_tilegen[0]->set_gfxdecode_tag(m_gfxdecode);
@@ -1965,8 +1965,8 @@ void fghthist_state::fghthist(machine_config &config)
m_deco_tilegen[1]->set_pf2_col_bank(0x30);
m_deco_tilegen[1]->set_pf1_col_mask(0x0f);
m_deco_tilegen[1]->set_pf2_col_mask(0x0f);
- m_deco_tilegen[1]->set_bank1_callback(FUNC(fghthist_state::bank_callback), this);
- m_deco_tilegen[1]->set_bank2_callback(FUNC(fghthist_state::bank_callback), this);
+ m_deco_tilegen[1]->set_bank1_callback(FUNC(fghthist_state::bank_callback));
+ m_deco_tilegen[1]->set_bank2_callback(FUNC(fghthist_state::bank_callback));
m_deco_tilegen[1]->set_pf12_8x8_bank(0);
m_deco_tilegen[1]->set_pf12_16x16_bank(2);
m_deco_tilegen[1]->set_gfxdecode_tag(m_gfxdecode);
@@ -2073,8 +2073,8 @@ void dragngun_state::dragngun(machine_config &config)
m_deco_tilegen[0]->set_pf2_col_bank(0x30);
m_deco_tilegen[0]->set_pf1_col_mask(0x0f);
m_deco_tilegen[0]->set_pf2_col_mask(0x0f);
- m_deco_tilegen[0]->set_bank1_callback(FUNC(dragngun_state::bank_1_callback), this);
- m_deco_tilegen[0]->set_bank2_callback(FUNC(dragngun_state::bank_1_callback), this);
+ m_deco_tilegen[0]->set_bank1_callback(FUNC(dragngun_state::bank_1_callback));
+ m_deco_tilegen[0]->set_bank2_callback(FUNC(dragngun_state::bank_1_callback));
m_deco_tilegen[0]->set_pf12_8x8_bank(0);
m_deco_tilegen[0]->set_pf12_16x16_bank(1);
m_deco_tilegen[0]->set_gfxdecode_tag(m_gfxdecode);
@@ -2088,7 +2088,7 @@ void dragngun_state::dragngun(machine_config &config)
m_deco_tilegen[1]->set_pf2_col_bank(0x04);
m_deco_tilegen[1]->set_pf1_col_mask(0x03);
m_deco_tilegen[1]->set_pf2_col_mask(0x03);
- m_deco_tilegen[1]->set_bank1_callback(FUNC(dragngun_state::bank_2_callback), this);
+ m_deco_tilegen[1]->set_bank1_callback(FUNC(dragngun_state::bank_2_callback));
// no bank2 callback
m_deco_tilegen[1]->set_pf12_8x8_bank(0);
m_deco_tilegen[1]->set_pf12_16x16_bank(2);
@@ -2199,8 +2199,8 @@ void dragngun_state::lockload(machine_config &config)
m_deco_tilegen[0]->set_pf2_col_bank(0x30);
m_deco_tilegen[0]->set_pf1_col_mask(0x0f);
m_deco_tilegen[0]->set_pf2_col_mask(0x0f);
- m_deco_tilegen[0]->set_bank1_callback(FUNC(dragngun_state::bank_1_callback), this);
- m_deco_tilegen[0]->set_bank2_callback(FUNC(dragngun_state::bank_1_callback), this);
+ m_deco_tilegen[0]->set_bank1_callback(FUNC(dragngun_state::bank_1_callback));
+ m_deco_tilegen[0]->set_bank2_callback(FUNC(dragngun_state::bank_1_callback));
m_deco_tilegen[0]->set_pf12_8x8_bank(0);
m_deco_tilegen[0]->set_pf12_16x16_bank(1);
m_deco_tilegen[0]->set_gfxdecode_tag(m_gfxdecode);
@@ -2214,7 +2214,7 @@ void dragngun_state::lockload(machine_config &config)
m_deco_tilegen[1]->set_pf2_col_bank(0x04);
m_deco_tilegen[1]->set_pf1_col_mask(0x03);
m_deco_tilegen[1]->set_pf2_col_mask(0x03);
- m_deco_tilegen[1]->set_bank1_callback(FUNC(dragngun_state::bank_2_callback), this);
+ m_deco_tilegen[1]->set_bank1_callback(FUNC(dragngun_state::bank_2_callback));
// no bank2 callback
m_deco_tilegen[1]->set_pf12_8x8_bank(0);
m_deco_tilegen[1]->set_pf12_16x16_bank(2);
@@ -2277,8 +2277,8 @@ void nslasher_state::tattass(machine_config &config)
m_deco_tilegen[0]->set_pf2_col_bank(0x10);
m_deco_tilegen[0]->set_pf1_col_mask(0x0f);
m_deco_tilegen[0]->set_pf2_col_mask(0x0f);
- m_deco_tilegen[0]->set_bank1_callback(FUNC(nslasher_state::bank_callback), this);
- m_deco_tilegen[0]->set_bank2_callback(FUNC(nslasher_state::bank_callback), this);
+ m_deco_tilegen[0]->set_bank1_callback(FUNC(nslasher_state::bank_callback));
+ m_deco_tilegen[0]->set_bank2_callback(FUNC(nslasher_state::bank_callback));
m_deco_tilegen[0]->set_pf12_8x8_bank(0);
m_deco_tilegen[0]->set_pf12_16x16_bank(1);
m_deco_tilegen[0]->set_gfxdecode_tag(m_gfxdecode);
@@ -2292,8 +2292,8 @@ void nslasher_state::tattass(machine_config &config)
m_deco_tilegen[1]->set_pf2_col_bank(0x30);
m_deco_tilegen[1]->set_pf1_col_mask(0x0f);
m_deco_tilegen[1]->set_pf2_col_mask(0x0f);
- m_deco_tilegen[1]->set_bank1_callback(FUNC(nslasher_state::bank_callback), this);
- m_deco_tilegen[1]->set_bank2_callback(FUNC(nslasher_state::bank_callback), this);
+ m_deco_tilegen[1]->set_bank1_callback(FUNC(nslasher_state::bank_callback));
+ m_deco_tilegen[1]->set_bank2_callback(FUNC(nslasher_state::bank_callback));
m_deco_tilegen[1]->set_pf12_8x8_bank(0);
m_deco_tilegen[1]->set_pf12_16x16_bank(2);
m_deco_tilegen[1]->set_gfxdecode_tag(m_gfxdecode);
@@ -2351,8 +2351,8 @@ void nslasher_state::nslasher(machine_config &config)
m_deco_tilegen[0]->set_pf2_col_bank(0x10);
m_deco_tilegen[0]->set_pf1_col_mask(0x0f);
m_deco_tilegen[0]->set_pf2_col_mask(0x0f);
- m_deco_tilegen[0]->set_bank1_callback(FUNC(nslasher_state::bank_callback), this);
- m_deco_tilegen[0]->set_bank2_callback(FUNC(nslasher_state::bank_callback), this);
+ m_deco_tilegen[0]->set_bank1_callback(FUNC(nslasher_state::bank_callback));
+ m_deco_tilegen[0]->set_bank2_callback(FUNC(nslasher_state::bank_callback));
m_deco_tilegen[0]->set_pf12_8x8_bank(0);
m_deco_tilegen[0]->set_pf12_16x16_bank(1);
m_deco_tilegen[0]->set_gfxdecode_tag(m_gfxdecode);
@@ -2366,8 +2366,8 @@ void nslasher_state::nslasher(machine_config &config)
m_deco_tilegen[1]->set_pf2_col_bank(0x30);
m_deco_tilegen[1]->set_pf1_col_mask(0x0f);
m_deco_tilegen[1]->set_pf2_col_mask(0x0f);
- m_deco_tilegen[1]->set_bank1_callback(FUNC(nslasher_state::bank_callback), this);
- m_deco_tilegen[1]->set_bank2_callback(FUNC(nslasher_state::bank_callback), this);
+ m_deco_tilegen[1]->set_bank1_callback(FUNC(nslasher_state::bank_callback));
+ m_deco_tilegen[1]->set_bank2_callback(FUNC(nslasher_state::bank_callback));
m_deco_tilegen[1]->set_pf12_8x8_bank(0);
m_deco_tilegen[1]->set_pf12_16x16_bank(2);
m_deco_tilegen[1]->set_gfxdecode_tag(m_gfxdecode);
diff --git a/src/mame/drivers/deco_mlc.cpp b/src/mame/drivers/deco_mlc.cpp
index d08332b6db9..b2f385759d3 100644
--- a/src/mame/drivers/deco_mlc.cpp
+++ b/src/mame/drivers/deco_mlc.cpp
@@ -961,7 +961,7 @@ void deco_mlc_state::init_avengrgs()
dynamic_cast<sh2_device *>(m_maincpu.target())->sh2drc_add_fastram(0x0280000, 0x029ffff, 0, &m_vram[0]);
m_irqLevel = 1;
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x01089a0, 0x01089a3, read32_delegate(FUNC(deco_mlc_state::avengrgs_speedup_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x01089a0, 0x01089a3, read32_delegate(*this, FUNC(deco_mlc_state::avengrgs_speedup_r)));
descramble_sound();
}
diff --git a/src/mame/drivers/decocass.cpp b/src/mame/drivers/decocass.cpp
index 6f19e913667..d33582d19e4 100644
--- a/src/mame/drivers/decocass.cpp
+++ b/src/mame/drivers/decocass.cpp
@@ -2065,14 +2065,14 @@ void decocass_state::init_decocrom()
/* convert charram to a banked ROM */
m_maincpu->space(AS_PROGRAM).install_read_bank(0x6000, 0xafff, "bank1");
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x6000, 0xafff, write8_delegate(FUNC(decocass_state::decocass_de0091_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x6000, 0xafff, write8_delegate(*this, FUNC(decocass_state::decocass_de0091_w)));
membank("bank1")->configure_entry(0, m_charram);
membank("bank1")->configure_entry(1, memregion("user3")->base());
membank("bank1")->configure_entry(2, memregion("user3")->base()+0x5000);
membank("bank1")->set_entry(0);
/* install the bank selector */
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xe900, 0xe900, write8_delegate(FUNC(decocass_state::decocass_e900_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xe900, 0xe900, write8_delegate(*this, FUNC(decocass_state::decocass_e900_w)));
}
READ8_MEMBER(decocass_state::cdsteljn_input_r )
@@ -2105,8 +2105,8 @@ void decocass_state::init_cdsteljn()
init_decocass();
/* install custom mahjong panel */
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xe413, 0xe413, write8_delegate(FUNC(decocass_state::cdsteljn_mux_w), this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xe600, 0xe6ff, read8_delegate(FUNC(decocass_state::cdsteljn_input_r), this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xe413, 0xe413, write8_delegate(*this, FUNC(decocass_state::cdsteljn_mux_w)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xe600, 0xe6ff, read8_delegate(*this, FUNC(decocass_state::cdsteljn_input_r)));
}
/* -- */ GAME( 1981, decocass, 0, decocass, decocass, decocass_state, init_decocass, ROT270, "Data East Corporation", "DECO Cassette System", MACHINE_IS_BIOS_ROOT )
diff --git a/src/mame/drivers/dectalk.cpp b/src/mame/drivers/dectalk.cpp
index 976fe06f711..87b4fe182cc 100644
--- a/src/mame/drivers/dectalk.cpp
+++ b/src/mame/drivers/dectalk.cpp
@@ -484,7 +484,7 @@ void dectalk_state::machine_start()
void dectalk_state::machine_reset()
{
/* hook the RESET line, which resets a slew of other components */
- m_maincpu->set_reset_callback(write_line_delegate(FUNC(dectalk_state::dectalk_reset),this));
+ m_maincpu->set_reset_callback(*this, FUNC(dectalk_state::dectalk_reset));
}
/* Begin 68k i/o handlers */
diff --git a/src/mame/drivers/dgn_beta.cpp b/src/mame/drivers/dgn_beta.cpp
index d1e3724d426..4fb86031887 100644
--- a/src/mame/drivers/dgn_beta.cpp
+++ b/src/mame/drivers/dgn_beta.cpp
@@ -383,7 +383,7 @@ void dgn_beta_state::dgnbeta(machine_config &config)
m_mc6845->set_screen("screen");
m_mc6845->set_show_border_area(false);
m_mc6845->set_char_width(16); /*?*/
- m_mc6845->set_update_row_callback(FUNC(dgn_beta_state::crtc_update_row), this);
+ m_mc6845->set_update_row_callback(FUNC(dgn_beta_state::crtc_update_row));
m_mc6845->out_vsync_callback().set(FUNC(dgn_beta_state::dgnbeta_vsync_changed));
/* internal ram */
diff --git a/src/mame/drivers/dietgo.cpp b/src/mame/drivers/dietgo.cpp
index 5b29e7b96bf..44394aa9b4e 100644
--- a/src/mame/drivers/dietgo.cpp
+++ b/src/mame/drivers/dietgo.cpp
@@ -228,8 +228,8 @@ void dietgo_state::dietgo(machine_config &config)
m_deco_tilegen->set_pf2_col_bank(0x10);
m_deco_tilegen->set_pf1_col_mask(0x0f);
m_deco_tilegen->set_pf2_col_mask(0x0f);
- m_deco_tilegen->set_bank1_callback(FUNC(dietgo_state::bank_callback), this);
- m_deco_tilegen->set_bank2_callback(FUNC(dietgo_state::bank_callback), this);
+ m_deco_tilegen->set_bank1_callback(FUNC(dietgo_state::bank_callback));
+ m_deco_tilegen->set_bank2_callback(FUNC(dietgo_state::bank_callback));
m_deco_tilegen->set_pf12_8x8_bank(0);
m_deco_tilegen->set_pf12_16x16_bank(1);
m_deco_tilegen->set_gfxdecode_tag("gfxdecode");
diff --git a/src/mame/drivers/dim68k.cpp b/src/mame/drivers/dim68k.cpp
index eb0f6b87f43..a2715a757a1 100644
--- a/src/mame/drivers/dim68k.cpp
+++ b/src/mame/drivers/dim68k.cpp
@@ -339,7 +339,7 @@ void dim68k_state::dim68k(machine_config &config)
m_crtc->set_screen("screen");
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8);
- m_crtc->set_update_row_callback(FUNC(dim68k_state::crtc_update_row), this);
+ m_crtc->set_update_row_callback(FUNC(dim68k_state::crtc_update_row));
generic_keyboard_device &keyboard(GENERIC_KEYBOARD(config, "keyboard", 0));
keyboard.set_keyboard_callback(FUNC(dim68k_state::kbd_put));
diff --git a/src/mame/drivers/divebomb.cpp b/src/mame/drivers/divebomb.cpp
index c33052b34a1..b4c598e5135 100644
--- a/src/mame/drivers/divebomb.cpp
+++ b/src/mame/drivers/divebomb.cpp
@@ -419,14 +419,14 @@ void divebomb_state::divebomb(machine_config &config)
m_k051316[0]->set_bpp(8);
m_k051316[0]->set_wrap(0);
m_k051316[0]->set_offsets(-88, -16);
- m_k051316[0]->set_zoom_callback(FUNC(divebomb_state::zoom_callback_1), this);
+ m_k051316[0]->set_zoom_callback(FUNC(divebomb_state::zoom_callback_1));
K051316(config, m_k051316[1], 0);
m_k051316[1]->set_palette(m_palette);
m_k051316[1]->set_bpp(8);
m_k051316[1]->set_wrap(0);
m_k051316[1]->set_offsets(-88, -16);
- m_k051316[1]->set_zoom_callback(FUNC(divebomb_state::zoom_callback_2), this);
+ m_k051316[1]->set_zoom_callback(FUNC(divebomb_state::zoom_callback_2));
MCFG_MACHINE_START_OVERRIDE(divebomb_state, divebomb)
MCFG_MACHINE_RESET_OVERRIDE(divebomb_state, divebomb)
diff --git a/src/mame/drivers/djmain.cpp b/src/mame/drivers/djmain.cpp
index b1deafa2fef..7dfe984f2c7 100644
--- a/src/mame/drivers/djmain.cpp
+++ b/src/mame/drivers/djmain.cpp
@@ -1403,7 +1403,7 @@ void djmain_state::djmainj(machine_config &config)
GFXDECODE(config, m_gfxdecode, m_palette, gfx_djmain);
K056832(config, m_k056832, 0);
- m_k056832->set_tile_callback(FUNC(djmain_state::tile_callback), this);
+ m_k056832->set_tile_callback(FUNC(djmain_state::tile_callback));
m_k056832->set_config(K056832_BPP_4dj, 1, 1);
m_k056832->set_palette(m_palette);
diff --git a/src/mame/drivers/dkong.cpp b/src/mame/drivers/dkong.cpp
index 6cf51e42734..c27d2bf1ec2 100644
--- a/src/mame/drivers/dkong.cpp
+++ b/src/mame/drivers/dkong.cpp
@@ -3633,8 +3633,8 @@ void dkong_state::init_strtheat()
drakton_decrypt_rom(0x88, 0x1c000, bs[3]);
/* custom handlers supporting Joystick or Steering Wheel */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x7c00, 0x7c00, read8_delegate(FUNC(dkong_state::strtheat_inputport_0_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x7c80, 0x7c80, read8_delegate(FUNC(dkong_state::strtheat_inputport_1_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x7c00, 0x7c00, read8_delegate(*this, FUNC(dkong_state::strtheat_inputport_0_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x7c80, 0x7c80, read8_delegate(*this, FUNC(dkong_state::strtheat_inputport_1_r)));
}
void dkong_state::dk_braze_decrypt()
@@ -3657,8 +3657,8 @@ void dkong_state::init_dkonghs()
dk_braze_decrypt();
address_space &space = m_maincpu->space(AS_PROGRAM);
- space.install_read_handler(0xc000, 0xc000, read8_delegate(FUNC(dkong_state::braze_eeprom_r), this));
- space.install_write_handler(0xc000, 0xc000, write8_delegate(FUNC(dkong_state::braze_eeprom_w), this));
+ space.install_read_handler(0xc000, 0xc000, read8_delegate(*this, FUNC(dkong_state::braze_eeprom_r)));
+ space.install_write_handler(0xc000, 0xc000, write8_delegate(*this, FUNC(dkong_state::braze_eeprom_w)));
}
void dkong_state::init_dkongx()
@@ -3666,10 +3666,10 @@ void dkong_state::init_dkongx()
dk_braze_decrypt();
address_space &space = m_maincpu->space(AS_PROGRAM);
- space.install_write_handler(0xe000, 0xe000, write8_delegate(FUNC(dkong_state::dk_braze_a15_w),this));
+ space.install_write_handler(0xe000, 0xe000, write8_delegate(*this, FUNC(dkong_state::dk_braze_a15_w)));
- space.install_read_handler(0xc800, 0xc800, read8_delegate(FUNC(dkong_state::braze_eeprom_r),this));
- space.install_write_handler(0xc800, 0xc800, write8_delegate(FUNC(dkong_state::braze_eeprom_w),this));
+ space.install_read_handler(0xc800, 0xc800, read8_delegate(*this, FUNC(dkong_state::braze_eeprom_r)));
+ space.install_write_handler(0xc800, 0xc800, write8_delegate(*this, FUNC(dkong_state::braze_eeprom_w)));
}
void dkong_state::init_dkong3hs()
@@ -3682,8 +3682,8 @@ void dkong_state::init_dkong3hs()
m_maincpu->space(AS_PROGRAM).install_rom(0x8000, 0xffff, m_decrypted.get() + 0x8000);
address_space &space = m_maincpu->space(AS_PROGRAM);
- space.install_read_handler(0xc000, 0xc000, read8_delegate(FUNC(dkong_state::braze_eeprom_r), this));
- space.install_write_handler(0xc000, 0xc000, write8_delegate(FUNC(dkong_state::braze_eeprom_w), this));
+ space.install_read_handler(0xc000, 0xc000, read8_delegate(*this, FUNC(dkong_state::braze_eeprom_r)));
+ space.install_write_handler(0xc000, 0xc000, write8_delegate(*this, FUNC(dkong_state::braze_eeprom_w)));
}
void dkong_state::init_dkingjr()
diff --git a/src/mame/drivers/dm7000.cpp b/src/mame/drivers/dm7000.cpp
index a7fdf980de0..44c03cde393 100644
--- a/src/mame/drivers/dm7000.cpp
+++ b/src/mame/drivers/dm7000.cpp
@@ -261,8 +261,8 @@ void dm7000_state::machine_reset()
dcr[DCRSTB045_FRAME_BUFR_BASE] = 0x0f000000;
m_scc0_lsr = UART_LSR_THRE | UART_LSR_TEMT;
- m_maincpu->ppc4xx_set_dcr_read_handler(read32_delegate(FUNC(dm7000_state::dcr_r),this));
- m_maincpu->ppc4xx_set_dcr_write_handler(write32_delegate(FUNC(dm7000_state::dcr_w),this));
+ m_maincpu->ppc4xx_set_dcr_read_handler(read32_delegate(*this, FUNC(dm7000_state::dcr_r)));
+ m_maincpu->ppc4xx_set_dcr_write_handler(write32_delegate(*this, FUNC(dm7000_state::dcr_w)));
}
void dm7000_state::video_start()
diff --git a/src/mame/drivers/dmndrby.cpp b/src/mame/drivers/dmndrby.cpp
index 1ed12af43c3..68a557fdf4a 100644
--- a/src/mame/drivers/dmndrby.cpp
+++ b/src/mame/drivers/dmndrby.cpp
@@ -374,7 +374,7 @@ void dmndrby_state::video_start()
m_bg = 0;
m_racetrack_tilemap_rom = memregion("user1")->base();
- m_racetrack_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(dmndrby_state::get_dmndrby_tile_info),this),TILEMAP_SCAN_ROWS,16,16, 16, 512);
+ m_racetrack_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dmndrby_state::get_dmndrby_tile_info)), TILEMAP_SCAN_ROWS, 16,16, 16, 512);
m_racetrack_tilemap->mark_all_dirty();
}
diff --git a/src/mame/drivers/dmv.cpp b/src/mame/drivers/dmv.cpp
index 484da90f4dc..4ac34f5f940 100644
--- a/src/mame/drivers/dmv.cpp
+++ b/src/mame/drivers/dmv.cpp
@@ -896,7 +896,7 @@ void dmv_state::dmv(machine_config &config)
SOFTWARE_LIST(config, "flop_list").set_original("dmv");
- QUICKLOAD(config, "quickload", "com,cpm", attotime::from_seconds(3)).set_load_callback(FUNC(dmv_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "com,cpm", attotime::from_seconds(3)).set_load_callback(FUNC(dmv_state::quickload_cb));
}
/* ROM definition */
diff --git a/src/mame/drivers/dooyong.cpp b/src/mame/drivers/dooyong.cpp
index 269e59cb5d2..8b37e9673c9 100644
--- a/src/mame/drivers/dooyong.cpp
+++ b/src/mame/drivers/dooyong.cpp
@@ -1641,15 +1641,15 @@ void dooyong_z80_state::bluehawk(machine_config &config)
PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 1024);
DOOYONG_ROM_TILEMAP(config, m_bg[0], m_gfxdecode, 2, "bg0", 0x3c000, 0x4000);
- m_bg[0]->set_tile_callback(dooyong_rom_tilemap_device::dooyong_tmap_cb_delegate(FUNC(dooyong_z80_state::bluehawk_tile_callback), this));
+ m_bg[0]->set_tile_callback(FUNC(dooyong_z80_state::bluehawk_tile_callback));
DOOYONG_ROM_TILEMAP(config, m_fg[0], m_gfxdecode, 3, "fg0", 0x3c000, 0x4000);
m_fg[0]->set_transparent_pen(15);
- m_fg[0]->set_tile_callback(dooyong_rom_tilemap_device::dooyong_tmap_cb_delegate(FUNC(dooyong_z80_state::bluehawk_tile_callback), this));
+ m_fg[0]->set_tile_callback(FUNC(dooyong_z80_state::bluehawk_tile_callback));
DOOYONG_ROM_TILEMAP(config, m_fg[1], m_gfxdecode, 4, "fg1", 0x1c000, 0x4000);
m_fg[1]->set_transparent_pen(15);
- m_fg[1]->set_tile_callback(dooyong_rom_tilemap_device::dooyong_tmap_cb_delegate(FUNC(dooyong_z80_state::bluehawk_tile_callback), this));
+ m_fg[1]->set_tile_callback(FUNC(dooyong_z80_state::bluehawk_tile_callback));
DOOYONG_RAM_TILEMAP(config, m_tx, m_gfxdecode, 0);
@@ -1722,11 +1722,11 @@ void dooyong_z80_state::primella(machine_config &config)
PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 1024);
DOOYONG_ROM_TILEMAP(config, m_bg[0], m_gfxdecode, 1, "bg0", -0x4000, 0x4000);
- m_bg[0]->set_tile_callback(dooyong_rom_tilemap_device::dooyong_tmap_cb_delegate(FUNC(dooyong_z80_state::bluehawk_tile_callback), this));
+ m_bg[0]->set_tile_callback(FUNC(dooyong_z80_state::bluehawk_tile_callback));
DOOYONG_ROM_TILEMAP(config, m_fg[0], m_gfxdecode, 2, "fg0", -0x4000, 0x4000);
m_fg[0]->set_transparent_pen(15);
- m_fg[0]->set_tile_callback(dooyong_rom_tilemap_device::dooyong_tmap_cb_delegate(FUNC(dooyong_z80_state::bluehawk_tile_callback), this));
+ m_fg[0]->set_tile_callback(FUNC(dooyong_z80_state::bluehawk_tile_callback));
DOOYONG_RAM_TILEMAP(config, m_tx, m_gfxdecode, 0);
@@ -1774,19 +1774,19 @@ void rshark_state::dooyong_68k(machine_config &config)
PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 2048);
RSHARK_ROM_TILEMAP(config, m_bg[0], m_gfxdecode, 4, "bg0", 0x00000, 0x20000, "tmap_hi", 0x60000, 0x20000);
- m_bg[0]->set_tile_callback(dooyong_rom_tilemap_device::dooyong_tmap_cb_delegate(FUNC(rshark_state::rshark_tile_callback), this));
+ m_bg[0]->set_tile_callback(FUNC(rshark_state::rshark_tile_callback));
RSHARK_ROM_TILEMAP(config, m_bg[1], m_gfxdecode, 3, "bg1", 0x00000, 0x20000, "tmap_hi", 0x40000, 0x20000);
m_bg[1]->set_transparent_pen(15);
- m_bg[1]->set_tile_callback(dooyong_rom_tilemap_device::dooyong_tmap_cb_delegate(FUNC(rshark_state::rshark_tile_callback), this));
+ m_bg[1]->set_tile_callback(FUNC(rshark_state::rshark_tile_callback));
RSHARK_ROM_TILEMAP(config, m_fg[0], m_gfxdecode, 2, "fg0", 0x00000, 0x20000, "tmap_hi", 0x20000, 0x20000);
m_fg[0]->set_transparent_pen(15);
- m_fg[0]->set_tile_callback(dooyong_rom_tilemap_device::dooyong_tmap_cb_delegate(FUNC(rshark_state::rshark_tile_callback), this));
+ m_fg[0]->set_tile_callback(FUNC(rshark_state::rshark_tile_callback));
RSHARK_ROM_TILEMAP(config, m_fg[1], m_gfxdecode, 1, "fg1", 0x00000, 0x20000, "tmap_hi", 0x00000, 0x20000);
m_fg[1]->set_transparent_pen(15);
- m_fg[1]->set_tile_callback(dooyong_rom_tilemap_device::dooyong_tmap_cb_delegate(FUNC(rshark_state::rshark_tile_callback), this));
+ m_fg[1]->set_tile_callback(FUNC(rshark_state::rshark_tile_callback));
// sound hardware
sound_2151_4mhz(config);
@@ -1832,10 +1832,10 @@ void popbingo_state::popbingo(machine_config &config)
PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 2048);
DOOYONG_ROM_TILEMAP(config, m_bg[0], m_gfxdecode, 1, "bg0", 0x00000, 0x4000);
- m_bg[0]->set_tile_callback(dooyong_rom_tilemap_device::dooyong_tmap_cb_delegate(FUNC(popbingo_state::popbingo_tile_callback), this));
+ m_bg[0]->set_tile_callback(FUNC(popbingo_state::popbingo_tile_callback));
DOOYONG_ROM_TILEMAP(config, m_bg[1], m_gfxdecode, 2, "bg1", 0x00000, 0x4000);
- m_bg[1]->set_tile_callback(dooyong_rom_tilemap_device::dooyong_tmap_cb_delegate(FUNC(popbingo_state::popbingo_tile_callback), this));
+ m_bg[1]->set_tile_callback(FUNC(popbingo_state::popbingo_tile_callback));
// sound hardware
sound_2151_4mhz(config);
diff --git a/src/mame/drivers/dpb7000.cpp b/src/mame/drivers/dpb7000.cpp
index 49007be8f58..b57a3857b44 100644
--- a/src/mame/drivers/dpb7000.cpp
+++ b/src/mame/drivers/dpb7000.cpp
@@ -1116,8 +1116,8 @@ void dpb7000_state::dpb7000(machine_config &config)
m_crtc->set_char_width(8);
m_crtc->set_show_border_area(false);
m_crtc->set_screen("screen");
- m_crtc->set_update_row_callback(FUNC(dpb7000_state::crtc_update_row), this);
- m_crtc->set_on_update_addr_change_callback(FUNC(dpb7000_state::crtc_addr_changed), this);
+ m_crtc->set_update_row_callback(FUNC(dpb7000_state::crtc_update_row));
+ m_crtc->set_on_update_addr_change_callback(FUNC(dpb7000_state::crtc_addr_changed));
// Disc Sequencer Card
AM2910(config, m_diskseq, 0); // We drive the clock manually from the driver
diff --git a/src/mame/drivers/dragon.cpp b/src/mame/drivers/dragon.cpp
index abb3c86e18f..035f9527f2c 100644
--- a/src/mame/drivers/dragon.cpp
+++ b/src/mame/drivers/dragon.cpp
@@ -339,7 +339,7 @@ void d64plus_state::d64plus(machine_config &config)
m_crtc->set_screen("plus_screen");
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8);
- m_crtc->set_update_row_callback(FUNC(d64plus_state::crtc_update_row), this);
+ m_crtc->set_update_row_callback(FUNC(d64plus_state::crtc_update_row));
}
void dragon_alpha_state::dgnalpha(machine_config &config)
diff --git a/src/mame/drivers/dreambal.cpp b/src/mame/drivers/dreambal.cpp
index 5d00c431368..806229b4e79 100644
--- a/src/mame/drivers/dreambal.cpp
+++ b/src/mame/drivers/dreambal.cpp
@@ -345,8 +345,8 @@ void dreambal_state::dreambal(machine_config &config)
m_deco_tilegen->set_pf2_col_bank(0x10);
m_deco_tilegen->set_pf1_col_mask(0x0f);
m_deco_tilegen->set_pf2_col_mask(0x0f);
- m_deco_tilegen->set_bank1_callback(FUNC(dreambal_state::bank_callback), this);
- m_deco_tilegen->set_bank2_callback(FUNC(dreambal_state::bank_callback), this);
+ m_deco_tilegen->set_bank1_callback(FUNC(dreambal_state::bank_callback));
+ m_deco_tilegen->set_bank2_callback(FUNC(dreambal_state::bank_callback));
m_deco_tilegen->set_pf12_8x8_bank(0);
m_deco_tilegen->set_pf12_16x16_bank(1);
m_deco_tilegen->set_gfxdecode_tag("gfxdecode");
diff --git a/src/mame/drivers/dreamwld.cpp b/src/mame/drivers/dreamwld.cpp
index 073aded87c4..a843328bd73 100644
--- a/src/mame/drivers/dreamwld.cpp
+++ b/src/mame/drivers/dreamwld.cpp
@@ -268,10 +268,10 @@ TILE_GET_INFO_MEMBER(dreamwld_state::get_tile_info)
void dreamwld_state::video_start()
{
- m_tilemap[0][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(dreamwld_state::get_tile_info<0>),this),TILEMAP_SCAN_ROWS, 16, 16, 64,64);
- m_tilemap[1][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(dreamwld_state::get_tile_info<1>),this),TILEMAP_SCAN_ROWS, 16, 16, 64,64);
- m_tilemap[0][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(dreamwld_state::get_tile_info<0>),this),TILEMAP_SCAN_ROWS, 16, 16, 128,32);
- m_tilemap[1][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(dreamwld_state::get_tile_info<1>),this),TILEMAP_SCAN_ROWS, 16, 16, 128,32);
+ m_tilemap[0][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dreamwld_state::get_tile_info<0>)), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
+ m_tilemap[1][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dreamwld_state::get_tile_info<1>)), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
+ m_tilemap[0][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dreamwld_state::get_tile_info<0>)), TILEMAP_SCAN_ROWS, 16, 16, 128, 32);
+ m_tilemap[1][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dreamwld_state::get_tile_info<1>)), TILEMAP_SCAN_ROWS, 16, 16, 128, 32);
m_tilemap[1][0]->set_transparent_pen(0);
m_tilemap[1][1]->set_transparent_pen(0);
@@ -424,7 +424,7 @@ void dreamwld_state::baryon_map(address_map &map)
map(0x804400, 0x805fff).ram().share("vregs");
map(0xc00000, 0xc00003).portr("INPUTS");
- map(0xc00004, 0xc00007).lr16("c00004", [this]() { return u16(m_dsw->read()); });
+ map(0xc00004, 0xc00007).lr16(NAME([this] () { return u16(m_dsw->read()); }));
map(0xc0000f, 0xc0000f).w(FUNC(dreamwld_state::okibank_w<0>)); // sfx
map(0xc00018, 0xc00018).rw("oki1", FUNC(okim6295_device::read), FUNC(okim6295_device::write)); // sfx
diff --git a/src/mame/drivers/drtomy.cpp b/src/mame/drivers/drtomy.cpp
index b5a4143b42e..8815d96aee1 100644
--- a/src/mame/drivers/drtomy.cpp
+++ b/src/mame/drivers/drtomy.cpp
@@ -142,8 +142,8 @@ void drtomy_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect
void drtomy_state::video_start()
{
- m_tilemap_bg = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(drtomy_state::get_tile_info_bg),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- m_tilemap_fg = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(drtomy_state::get_tile_info_fg),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_tilemap_bg = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(drtomy_state::get_tile_info_bg)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_tilemap_fg = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(drtomy_state::get_tile_info_fg)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
m_tilemap_fg->set_transparent_pen(0);
}
diff --git a/src/mame/drivers/drw80pkr.cpp b/src/mame/drivers/drw80pkr.cpp
index f47b0810145..a56563a1b45 100644
--- a/src/mame/drivers/drw80pkr.cpp
+++ b/src/mame/drivers/drw80pkr.cpp
@@ -338,7 +338,7 @@ TILE_GET_INFO_MEMBER(drw80pkr_state::get_bg_tile_info)
void drw80pkr_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(drw80pkr_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 24, 27);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(drw80pkr_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 24, 27);
}
uint32_t drw80pkr_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
diff --git a/src/mame/drivers/duet16.cpp b/src/mame/drivers/duet16.cpp
index de7e5b0cee1..458df489b45 100644
--- a/src/mame/drivers/duet16.cpp
+++ b/src/mame/drivers/duet16.cpp
@@ -422,7 +422,7 @@ void duet16_state::duet16(machine_config &config)
hd6845s_device &crtc(HD6845S(config, "crtc", 2000000)); // "46505S" on schematics
crtc.set_char_width(8);
- crtc.set_update_row_callback(FUNC(duet16_state::crtc_update_row), this);
+ crtc.set_update_row_callback(FUNC(duet16_state::crtc_update_row));
PALETTE(config, m_pal).set_entries(8);
PALETTE(config, m_chrpal, palette_device::BRG_3BIT);
diff --git a/src/mame/drivers/dunhuang.cpp b/src/mame/drivers/dunhuang.cpp
index 3740b7a78eb..4ec6c63c861 100644
--- a/src/mame/drivers/dunhuang.cpp
+++ b/src/mame/drivers/dunhuang.cpp
@@ -177,8 +177,8 @@ TILE_GET_INFO_MEMBER(dunhuang_state::get_tile_info2)
void dunhuang_state::video_start()
{
- m_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(dunhuang_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8,8, 0x40,0x20);
- m_tmap2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(dunhuang_state::get_tile_info2),this), TILEMAP_SCAN_ROWS, 8,32, 0x40,0x8);
+ m_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dunhuang_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 0x40,0x20);
+ m_tmap2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dunhuang_state::get_tile_info2)), TILEMAP_SCAN_ROWS, 8,32, 0x40,0x8);
m_tmap->set_transparent_pen(0);
m_tmap2->set_transparent_pen(0);
diff --git a/src/mame/drivers/dynadice.cpp b/src/mame/drivers/dynadice.cpp
index b3e216fa517..2018f35472f 100644
--- a/src/mame/drivers/dynadice.cpp
+++ b/src/mame/drivers/dynadice.cpp
@@ -237,8 +237,8 @@ TILE_GET_INFO_MEMBER(dynadice_state::get_tile_info)
void dynadice_state::video_start()
{
/* pacman - style videoram layout */
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(dynadice_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_top_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(dynadice_state::get_tile_info),this), TILEMAP_SCAN_COLS, 8, 8, 2, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dynadice_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_top_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dynadice_state::get_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 2, 32);
m_bg_tilemap->set_scrollx(0, -16);
}
diff --git a/src/mame/drivers/dynax.cpp b/src/mame/drivers/dynax.cpp
index e66d3b58acf..f026998efb1 100644
--- a/src/mame/drivers/dynax.cpp
+++ b/src/mame/drivers/dynax.cpp
@@ -1243,7 +1243,7 @@ void dynax_state::tenkai_map(address_map &map)
map(0x10050, 0x10050).w(FUNC(dynax_state::tenkai_priority_w)); // layer priority and enable
map(0x10054, 0x10054).w(FUNC(dynax_state::dynax_blit_backpen_w)); // Background Color
map(0x10058, 0x10058).w(FUNC(dynax_state::tenkai_blit_romregion_w)); // Blitter ROM bank
- map(0x10060, 0x1007f).lw8("mainlatch_w", [this](offs_t offset, u8 data) { m_mainlatch->write_d1(offset >> 2, data); });
+ map(0x10060, 0x1007f).lw8(NAME([this] (offs_t offset, u8 data) { m_mainlatch->write_d1(offset >> 2, data); }));
map(0x100c0, 0x100c0).w(FUNC(dynax_state::tenkai_ipsel_w));
map(0x100c1, 0x100c1).w(FUNC(dynax_state::tenkai_ip_w));
map(0x100c2, 0x100c3).r(FUNC(dynax_state::tenkai_ip_r));
diff --git a/src/mame/drivers/ec65.cpp b/src/mame/drivers/ec65.cpp
index 2dd004ce7a0..933a8a20fe0 100644
--- a/src/mame/drivers/ec65.cpp
+++ b/src/mame/drivers/ec65.cpp
@@ -178,7 +178,7 @@ void ec65_state::ec65(machine_config &config)
crtc.set_screen("screen");
crtc.set_show_border_area(false);
crtc.set_char_width(8); /*?*/
- crtc.set_update_row_callback(FUNC(ec65_state::crtc_update_row), this);
+ crtc.set_update_row_callback(FUNC(ec65_state::crtc_update_row));
/* devices */
PIA6821(config, PIA6821_TAG, 0);
diff --git a/src/mame/drivers/ecoinfr.cpp b/src/mame/drivers/ecoinfr.cpp
index f15158b1563..eeed824f546 100644
--- a/src/mame/drivers/ecoinfr.cpp
+++ b/src/mame/drivers/ecoinfr.cpp
@@ -778,11 +778,10 @@ void ecoinfr_state::ecoinfr(machine_config &config)
Z80(config, m_maincpu, 4000000);
m_maincpu->set_addrmap(AS_PROGRAM, &ecoinfr_state::memmap);
m_maincpu->set_addrmap(AS_IO, &ecoinfr_state::portmap);
- TIMER(config , "ectimer" , 0).configure_periodic(timer_device::expired_delegate(FUNC(ecoinfr_state::ecoinfr_irq_timer) , this) , attotime::from_hz(250));
+ TIMER(config , "ectimer" , 0).configure_periodic(FUNC(ecoinfr_state::ecoinfr_irq_timer), attotime::from_hz(250));
config.set_default_layout(layout_ecoinfr);
-
I8251(config, UPD8251_TAG, 0);
REEL(config, m_reel[0], ECOIN_200STEP_REEL, 12, 24, 0x09, 7, 200*2);
diff --git a/src/mame/drivers/efdt.cpp b/src/mame/drivers/efdt.cpp
index cf5bd51cdef..ef200da650c 100644
--- a/src/mame/drivers/efdt.cpp
+++ b/src/mame/drivers/efdt.cpp
@@ -221,8 +221,8 @@ TILE_GET_INFO_MEMBER(efdt_state::get_tile_info_1)
void efdt_state::video_start()
{
- m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(efdt_state::get_tile_info_0), this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(efdt_state::get_tile_info_1), this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(efdt_state::get_tile_info_0)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(efdt_state::get_tile_info_1)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_tilemap[0]->set_transparent_pen(0);
m_tilemap[1]->set_transparent_pen(0);
diff --git a/src/mame/drivers/egghunt.cpp b/src/mame/drivers/egghunt.cpp
index ce5844d122d..0362bf2f5b1 100644
--- a/src/mame/drivers/egghunt.cpp
+++ b/src/mame/drivers/egghunt.cpp
@@ -199,7 +199,7 @@ WRITE8_MEMBER(egghunt_state::egghunt_atram_w)
void egghunt_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(egghunt_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(egghunt_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
save_item(NAME(m_bgram));
save_item(NAME(m_spram));
diff --git a/src/mame/drivers/eispc.cpp b/src/mame/drivers/eispc.cpp
index 5cdeab5d12d..4a9636bfea4 100644
--- a/src/mame/drivers/eispc.cpp
+++ b/src/mame/drivers/eispc.cpp
@@ -244,145 +244,164 @@ void epc_state::epc_map(address_map &map)
void epc_state::epc_io(address_map &map)
{
- map(0x0000, 0x000f).mirror(0x10).lrw8("dma8237_rw",
+ map(0x0000, 0x000f).mirror(0x10).lrw8(
[this](offs_t offset) -> uint8_t
{
uint8_t data = m_dma8237a->read(offset);
LOGDMA("dma8237_r %04x\n", offset);
return data;
},
+ "dma8237_r",
[this](offs_t offset, uint8_t data)
{
LOGDMA("dma8237_w %04x: %02x\n", offset, data);
m_dma8237a->write(offset, data);
- }
+ },
+ "dma8237_w"
);
- map(0x0020, 0x0021).mirror(0x1e).lrw8("pic8259_rw",
+ map(0x0020, 0x0021).mirror(0x1e).lrw8(
[this](offs_t offset) -> uint8_t
{
uint8_t data = m_pic8259->read(offset);
LOGPIC("pic8259_r %04x: %02x\n", offset, data);
return data;
},
+ "pic8259_r",
[this](offs_t offset, uint8_t data)
{
LOGPIC("pic8259_w %04x: %02x\n", offset, data);
m_pic8259->write(offset, data);
- }
+ },
+ "pic8259_w"
);
- map(0x0040, 0x0043).mirror(0x1c).lrw8("pit8253_rw",
+ map(0x0040, 0x0043).mirror(0x1c).lrw8(
[this](offs_t offset) -> uint8_t
{
uint8_t data = m_pit8253->read(offset);
LOGPIT("pit8253_r %04x\n", offset);
return data;
},
+ "pit8253_r",
[this](offs_t offset, uint8_t data)
{
LOGPIT("pit8253_w %04x: %02x\n", offset, data);
m_pit8253->write(offset, data);
- }
+ },
+ "pit8253_w"
);
- map(0x0060, 0x0060).mirror(0x1c).lrw8("kbd_8251_data_rw",
+ map(0x0060, 0x0060).mirror(0x1c).lrw8(
[this]() -> uint8_t
{
uint8_t data = m_kbd8251->data_r();
LOGKBD("kbd8251_r %02x\n", data);
return data;
},
+ "kbd_8251_data_r",
[this](offs_t offset, uint8_t data)
{
LOGKBD("kbd8251_w 0x60 %02x\n", data);
m_kbd8251->data_w(data);
- }
+ },
+ "kbd_8251_data_w"
);
// NOTE: PPI Port A is not mapped
- map(0x0061, 0x0061).mirror(0x1c).lrw8("ppi8255_rw", // PPI Port B
+ map(0x0061, 0x0061).mirror(0x1c).lrw8( // PPI Port B
[this](offs_t offset) -> uint8_t
{
uint8_t data = m_ppi8255->read(1);
LOGPPI("ppi8255_r Port B: %02x\n", data);
return data;
},
+ "ppi8255_r",
[this](offs_t offset, uint8_t data)
{
LOGPPI("ppi8255_w Port B: %02x\n", data);
m_ppi8255->write(1, data);
- }
+ },
+ "ppi8255_w"
);
- map(0x0062, 0x0062).mirror(0x1c).lrw8("ppi8255_rw", // PPI Port C
+ map(0x0062, 0x0062).mirror(0x1c).lrw8( // PPI Port C
[this](offs_t offset) -> uint8_t
{
uint8_t data = m_ppi8255->read(2);
LOGPPI("ppi8255_r Port C: %02x\n", data);
return data;
},
+ "ppi8255_r",
[this](offs_t offset, uint8_t data)
{
LOGPPI("ppi8255_w Port C: %02x\n", data);
m_ppi8255->write(2, data);
- }
+ },
+ "ppi8255_w"
);
- map(0x0063, 0x0063).lrw8("ppi8255_rw", // PPI Control register
+ map(0x0063, 0x0063).lrw8( // PPI Control register
[this](offs_t offset) -> uint8_t
{
uint8_t data = m_ppi8255->read(3);
LOGPPI("ppi8255_r Control: %02x\n", data);
return data;
},
+ "ppi8255_r",
[this](offs_t offset, uint8_t data)
{
LOGPPI("ppi8255_w Control: %02x\n", data);
m_ppi8255->write(3, data);
- }
+ },
+ "ppi8255_w"
);
- map(0x0070, 0x0070).mirror(0x0e).lw8("i8251_data_w",
+ map(0x0070, 0x0070).mirror(0x0e).lw8(
[this](offs_t offset, uint8_t data)
{
LOGKBD("kbd8251_w 0x70: %02x\n", data);
m_kbd8251->data_w(data);
- }
+ },
+ "i8251_data_w"
);
- map(0x0071, 0x0071).mirror(0x0e).lrw8("kbd_8251_stat_ctrl_rw",
+ map(0x0071, 0x0071).mirror(0x0e).lrw8(
[this](offs_t offset) -> uint8_t
{
uint8_t stat = m_kbd8251->status_r();
//LOGKBD("kbd8251_status_r %02x\n", stat);
return stat;
},
+ "kbd_8251_stat_ctrl_r",
[this](offs_t offset, uint8_t data)
{
LOGKBD("kbd8251_control_w 0x71: %02x\n", data);
m_kbd8251->control_w(data);
- }
+ },
+ "kbd_8251_stat_ctrl_w"
);
- map(0x0080, 0x0083).mirror(0xc).lw8("dma_segement_w",
+ map(0x0080, 0x0083).mirror(0xc).lw8(
[this](offs_t offset, uint8_t data)
{
LOGDMA("dma_segment_w %04x: %02x\n", offset, data);
m_dma_segment[offset] = data & 0x0f;
- }
+ },
+ "dma_segement_w"
);
- map(0x00a0, 0x00a1).mirror(0xe).lw8("nmi_enable_w",
+ map(0x00a0, 0x00a1).mirror(0xe).lw8(
[this](offs_t offset, uint8_t data)
{
LOGNMI("nmi_enable_w %04x: %02x\n", offset, data);
m_nmi_enabled = BIT(data,7);
update_nmi();
- }
+ },
+ "nmi_enable_w"
);
// FDC Output Control Register (same as PC XT DOR)
- map(0x03f2, 0x03f3).lw8("ocr_w", // B0-B1 Drive select 0-3
+ map(0x03f2, 0x03f3).lw8( // B0-B1 Drive select 0-3
[this](offs_t offset, uint8_t data) // B2 FDC Reset line
{ // B3 Enable FDC DMA/IRQ
LOGFDC("FDC OCR: %02x\n", data);// B4-B7 Motor on for selected drive
@@ -404,23 +423,26 @@ void epc_state::epc_io(address_map &map)
m_fdc->reset();
check_fdc_irq();
check_fdc_drq();
- }
+ },
+ "ocr_w"
);
map(0x03f4, 0x03f5).m(m_fdc, FUNC(i8272a_device::map));
- map(0x03bc, 0x03be).lrw8("lpt_rw",
+ map(0x03bc, 0x03be).lrw8(
[this](address_space &space, offs_t offset, uint8_t mem_mask) -> uint8_t
{
uint8_t data = m_lpt->read(space, offset);
LOGLPT("LPT read offset %02x: %02x\n", offset, data);
return data;
},
+ "lpt_r",
[this](address_space &space, offs_t offset, uint8_t data)
{
LOGLPT("LPT write offset %02x: %02x\n", offset, data);
m_lpt->write(space, offset, data);
- }
+ },
+ "lpt_w"
);
map(0x03f8, 0x03ff).rw(m_uart, FUNC(ins8250_device::ins8250_r), FUNC(ins8250_device::ins8250_w));
diff --git a/src/mame/drivers/elf.cpp b/src/mame/drivers/elf.cpp
index 96f23c68044..a693b642c82 100644
--- a/src/mame/drivers/elf.cpp
+++ b/src/mame/drivers/elf.cpp
@@ -213,7 +213,7 @@ void elf2_state::machine_start()
/* setup memory banking */
program.install_read_bank(0x0000, 0x00ff, "bank1");
- program.install_write_handler(0x0000, 0x00ff, write8_delegate(FUNC(elf2_state::memory_w), this));
+ program.install_write_handler(0x0000, 0x00ff, write8_delegate(*this, FUNC(elf2_state::memory_w)));
membank("bank1")->configure_entry(0, m_ram->pointer());
membank("bank1")->set_entry(0);
@@ -279,7 +279,7 @@ void elf2_state::elf2(machine_config &config)
m_cassette->set_default_state(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED);
m_cassette->add_route(ALL_OUTPUTS, "mono", 0.05);
- QUICKLOAD(config, "quickload", "bin").set_load_callback(FUNC(elf2_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "bin").set_load_callback(FUNC(elf2_state::quickload_cb));
/* internal ram */
RAM(config, RAM_TAG).set_default_size("256");
diff --git a/src/mame/drivers/ep64.cpp b/src/mame/drivers/ep64.cpp
index c1f6b97bd3a..3c95e577126 100644
--- a/src/mame/drivers/ep64.cpp
+++ b/src/mame/drivers/ep64.cpp
@@ -544,7 +544,7 @@ INPUT_PORTS_END
void ep64_state::machine_start()
{
if (m_cart->exists())
- m_dave->space(AS_PROGRAM).install_read_handler(0x010000, 0x01ffff, read8sm_delegate(FUNC(generic_slot_device::read_rom),(generic_slot_device*)m_cart));
+ m_dave->space(AS_PROGRAM).install_read_handler(0x010000, 0x01ffff, read8sm_delegate(*m_cart, FUNC(generic_slot_device::read_rom)));
// state saving
save_item(NAME(m_key));
diff --git a/src/mame/drivers/equites.cpp b/src/mame/drivers/equites.cpp
index a066ec22e83..dc9e2e8b818 100644
--- a/src/mame/drivers/equites.cpp
+++ b/src/mame/drivers/equites.cpp
@@ -649,7 +649,7 @@ void equites_state::equites_common_map(address_map &map)
map(0x100000, 0x100001).r(FUNC(equites_state::equites_spriteram_kludge_r));
map(0x140000, 0x1407ff).rw(FUNC(equites_state::mcu_ram_r), FUNC(equites_state::mcu_ram_w)).umask16(0x00ff);
map(0x180000, 0x180001).portr("IN1").w(m_soundlatch, FUNC(generic_latch_8_device::write));
- map(0x180000, 0x180000).select(0x03c000).lw8("mainlatch_w", [this](offs_t offset, u8 data) { m_mainlatch->write_a3(offset >> 14); });
+ map(0x180000, 0x180000).select(0x03c000).lw8(NAME([this] (offs_t offset, u8 data) { m_mainlatch->write_a3(offset >> 14); }));
map(0x180001, 0x180001).w(m_soundlatch, FUNC(generic_latch_8_device::write));
map(0x1c0000, 0x1c0001).portr("IN0").w(FUNC(equites_state::equites_scrollreg_w));
map(0x380000, 0x380000).w(FUNC(equites_state::equites_bgcolor_w));
@@ -678,7 +678,7 @@ void splndrbt_state::splndrbt_map(address_map &map)
map(0x080000, 0x080001).portr("IN0");
map(0x0c0000, 0x0c0001).portr("IN1");
map(0x0c0000, 0x0c0000).select(0x020000).w(FUNC(splndrbt_state::equites_bgcolor_w));
- map(0x0c0001, 0x0c0001).select(0x03c000).lw8("mainlatch_w", [this](offs_t offset, u8 data) { m_mainlatch->write_a3(offset >> 14); });
+ map(0x0c0001, 0x0c0001).select(0x03c000).lw8(NAME([this] (offs_t offset, u8 data) { m_mainlatch->write_a3(offset >> 14); }));
map(0x100000, 0x100001).w(FUNC(splndrbt_state::splndrbt_bg_scrollx_w));
map(0x140001, 0x140001).w("soundlatch", FUNC(generic_latch_8_device::write));
map(0x1c0000, 0x1c0001).w(FUNC(splndrbt_state::splndrbt_bg_scrolly_w));
@@ -1042,7 +1042,7 @@ void equites_state::common_sound(machine_config &config)
I8085A(config, m_audiocpu, 6.144_MHz_XTAL); /* verified on pcb */
m_audiocpu->set_addrmap(AS_PROGRAM, &equites_state::sound_map);
m_audiocpu->set_addrmap(AS_IO, &equites_state::sound_portmap);
- m_audiocpu->set_clk_out("audio8155", FUNC(i8155_device::set_unscaled_clock));
+ m_audiocpu->set_clk_out(m_audio8155, FUNC(i8155_device::set_unscaled_clock_int));
I8155(config, m_audio8155, 0);
m_audio8155->out_pa_callback().set(FUNC(equites_state::equites_8155_porta_w));
diff --git a/src/mame/drivers/esd16.cpp b/src/mame/drivers/esd16.cpp
index 094df3194e7..2fb8df294f6 100644
--- a/src/mame/drivers/esd16.cpp
+++ b/src/mame/drivers/esd16.cpp
@@ -637,7 +637,7 @@ void esd16_state::esd16(machine_config &config)
DECO_SPRITE(config, m_sprgen, 0);
m_sprgen->set_gfx_region(0);
m_sprgen->set_is_bootleg(true);
- m_sprgen->set_pri_callback(FUNC(esd16_state::pri_callback), this);
+ m_sprgen->set_pri_callback(FUNC(esd16_state::pri_callback));
m_sprgen->set_flipallx(1);
m_sprgen->set_gfxdecode_tag(m_gfxdecode);
diff --git a/src/mame/drivers/esprit.cpp b/src/mame/drivers/esprit.cpp
index e1c079ffa2e..610c0fca646 100644
--- a/src/mame/drivers/esprit.cpp
+++ b/src/mame/drivers/esprit.cpp
@@ -160,7 +160,7 @@ void esprit_state::esprit(machine_config &config)
crtc.set_screen("screen");
crtc.set_show_border_area(false);
crtc.set_char_width(9);
- crtc.set_update_row_callback(FUNC(esprit_state::crtc_update_row), this);
+ crtc.set_update_row_callback(FUNC(esprit_state::crtc_update_row));
}
void esprit_state::esprit3(machine_config &config)
@@ -199,8 +199,8 @@ void esprit_state::esprit3(machine_config &config)
crtc.set_screen("screen");
crtc.set_show_border_area(false);
crtc.set_char_width(9);
- crtc.set_update_row_callback(FUNC(esprit_state::crtc_update_row), this);
- crtc.set_on_update_addr_change_callback(FUNC(esprit_state::crtc_update_addr), this);
+ crtc.set_update_row_callback(FUNC(esprit_state::crtc_update_row));
+ crtc.set_on_update_addr_change_callback(FUNC(esprit_state::crtc_update_addr));
crtc.out_hsync_callback().set("via", FUNC(via6522_device::write_pb6)).invert();
}
diff --git a/src/mame/drivers/eti660.cpp b/src/mame/drivers/eti660.cpp
index 8b85ead5f89..6eb66b34ca1 100644
--- a/src/mame/drivers/eti660.cpp
+++ b/src/mame/drivers/eti660.cpp
@@ -336,7 +336,7 @@ void eti660_state::eti660(machine_config &config)
RAM(config, RAM_TAG).set_default_size("3K");
/* quickload */
- QUICKLOAD(config, "quickload", "bin,c8,ch8", attotime::from_seconds(2)).set_load_callback(FUNC(eti660_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "bin,c8,ch8", attotime::from_seconds(2)).set_load_callback(FUNC(eti660_state::quickload_cb));
}
/* ROMs */
diff --git a/src/mame/drivers/ettrivia.cpp b/src/mame/drivers/ettrivia.cpp
index ce0840bf3ce..3935e438c7a 100644
--- a/src/mame/drivers/ettrivia.cpp
+++ b/src/mame/drivers/ettrivia.cpp
@@ -277,8 +277,8 @@ void ettrivia_state::ettrivia_palette(palette_device &palette) const
void ettrivia_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ettrivia_state::get_tile_info_bg),this),TILEMAP_SCAN_ROWS,8,8,64,32 );
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ettrivia_state::get_tile_info_fg),this),TILEMAP_SCAN_ROWS,8,8,64,32 );
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ettrivia_state::get_tile_info_bg)), TILEMAP_SCAN_ROWS, 8,8,64,32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ettrivia_state::get_tile_info_fg)), TILEMAP_SCAN_ROWS, 8,8,64,32);
m_fg_tilemap->set_transparent_pen(0);
}
diff --git a/src/mame/drivers/excali64.cpp b/src/mame/drivers/excali64.cpp
index ec881b12608..da63fd51b5e 100644
--- a/src/mame/drivers/excali64.cpp
+++ b/src/mame/drivers/excali64.cpp
@@ -596,7 +596,7 @@ void excali64_state::excali64(machine_config &config)
m_crtc->set_screen("screen");
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8);
- m_crtc->set_update_row_callback(FUNC(excali64_state::update_row), this);
+ m_crtc->set_update_row_callback(FUNC(excali64_state::update_row));
m_crtc->out_hsync_callback().set(FUNC(excali64_state::crtc_hs));
m_crtc->out_vsync_callback().set(FUNC(excali64_state::crtc_vs));
diff --git a/src/mame/drivers/exidy440.cpp b/src/mame/drivers/exidy440.cpp
index 344ed70ea36..8f1d112b104 100644
--- a/src/mame/drivers/exidy440.cpp
+++ b/src/mame/drivers/exidy440.cpp
@@ -304,7 +304,7 @@ void exidy440_state::exidy440_bank_select(uint8_t bank)
if (m_showdown_bank_data[0] != nullptr)
{
if (bank == 0 && m_bank != 0)
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x4000, 0x7fff, read8_delegate(FUNC(exidy440_state::showdown_bank0_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x4000, 0x7fff, read8_delegate(*this, FUNC(exidy440_state::showdown_bank0_r)));
else if (bank != 0 && m_bank == 0)
m_maincpu->space(AS_PROGRAM).install_read_bank(0x4000, 0x7fff, "bank1");
}
@@ -365,7 +365,7 @@ TIMER_CALLBACK_MEMBER(exidy440_state::delayed_sound_command_w)
WRITE8_MEMBER(exidy440_state::sound_command_w)
{
- machine().scheduler().synchronize(timer_expired_delegate(FUNC(exidy440_state::delayed_sound_command_w),this), data);
+ machine().scheduler().synchronize(timer_expired_delegate(FUNC(exidy440_state::delayed_sound_command_w), this), data);
}
@@ -2074,7 +2074,7 @@ void exidy440_state::init_exidy440()
void exidy440_state::init_claypign()
{
init_exidy440();
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x2ec0, 0x2ec3, read8_delegate(FUNC(exidy440_state::claypign_protection_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x2ec0, 0x2ec3, read8_delegate(*this, FUNC(exidy440_state::claypign_protection_r)));
}
@@ -2083,11 +2083,11 @@ void topsecex_state::init_topsecex()
init_exidy440();
/* extra input ports and scrolling */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x2ec5, 0x2ec5, read8_delegate(FUNC(topsecex_state::topsecex_input_port_5_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x2ec5, 0x2ec5, read8_delegate(*this, FUNC(topsecex_state::topsecex_input_port_5_r)));
m_maincpu->space(AS_PROGRAM).install_read_port(0x2ec6, 0x2ec6, "AN0");
m_maincpu->space(AS_PROGRAM).install_read_port(0x2ec7, 0x2ec7, "IN4");
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x2ec1, 0x2ec1, write8_delegate(FUNC(topsecex_state::topsecex_yscroll_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x2ec1, 0x2ec1, write8_delegate(*this, FUNC(topsecex_state::topsecex_yscroll_w)));
}
diff --git a/src/mame/drivers/expro02.cpp b/src/mame/drivers/expro02.cpp
index 332c09b46c4..875febac064 100644
--- a/src/mame/drivers/expro02.cpp
+++ b/src/mame/drivers/expro02.cpp
@@ -923,7 +923,7 @@ void expro02_state::expro02(machine_config &config)
m_view2->set_colbase(0x400);
m_view2->set_offset(0x5b, 0x8, 256, 224);
m_view2->set_palette(m_palette);
- m_view2->set_tile_callback(kaneko_view2_tilemap_device::view2_cb_delegate(FUNC(expro02_state::tile_callback), this));
+ m_view2->set_tile_callback(FUNC(expro02_state::tile_callback));
KANEKO_VU002_SPRITE(config, m_kaneko_spr);
m_kaneko_spr->set_priorities(8,8,8,8); // above all (not verified)
diff --git a/src/mame/drivers/exprraid.cpp b/src/mame/drivers/exprraid.cpp
index c424e16ef87..0d3300198cc 100644
--- a/src/mame/drivers/exprraid.cpp
+++ b/src/mame/drivers/exprraid.cpp
@@ -856,13 +856,13 @@ void exprraid_state::init_exprraid()
void exprraid_state::init_wexpressb2()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x3800, 0x3800, read8_delegate(FUNC(exprraid_state::vblank_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x3800, 0x3800, read8_delegate(*this, FUNC(exprraid_state::vblank_r)));
exprraid_gfx_expand();
}
void exprraid_state::init_wexpressb3()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xFFC0, 0xFFC0, read8_delegate(FUNC(exprraid_state::vblank_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xffc0, 0xffc0, read8_delegate(*this, FUNC(exprraid_state::vblank_r)));
exprraid_gfx_expand();
}
diff --git a/src/mame/drivers/f1gp.cpp b/src/mame/drivers/f1gp.cpp
index f62dd0e13a3..610726ea419 100644
--- a/src/mame/drivers/f1gp.cpp
+++ b/src/mame/drivers/f1gp.cpp
@@ -399,13 +399,13 @@ void f1gp_state::f1gp(machine_config &config)
VSYSTEM_GGA(config, "gga", XTAL(14'318'181) / 2); // divider not verified
VSYSTEM_SPR2(config, m_spr_old[0], 0);
- m_spr_old[0]->set_tile_indirect_cb(FUNC(f1gp2_state::tile_callback<0>), this);
+ m_spr_old[0]->set_tile_indirect_cb(FUNC(f1gp2_state::tile_callback<0>));
m_spr_old[0]->set_gfx_region(1);
m_spr_old[0]->set_pritype(2);
m_spr_old[0]->set_gfxdecode_tag(m_gfxdecode);
VSYSTEM_SPR2(config, m_spr_old[1], 0);
- m_spr_old[1]->set_tile_indirect_cb(FUNC(f1gp2_state::tile_callback<1>), this);
+ m_spr_old[1]->set_tile_indirect_cb(FUNC(f1gp2_state::tile_callback<1>));
m_spr_old[1]->set_gfx_region(2);
m_spr_old[1]->set_pritype(2);
m_spr_old[1]->set_gfxdecode_tag(m_gfxdecode);
@@ -488,8 +488,9 @@ void f1gp2_state::f1gp2(machine_config &config)
config.device_remove("gga");
config.device_remove("vsystem_spr_old1");
config.device_remove("vsystem_spr_old2");
+
VSYSTEM_SPR(config, m_spr, 0);
- m_spr->set_tile_indirect_cb(FUNC(f1gp2_state::tile_callback<0>), this);
+ m_spr->set_tile_indirect_cb(FUNC(f1gp2_state::tile_callback<0>));
m_spr->set_gfx_region(1);
m_spr->set_gfxdecode_tag(m_gfxdecode);
diff --git a/src/mame/drivers/facit4440.cpp b/src/mame/drivers/facit4440.cpp
index c820f74b88d..8ed509db549 100644
--- a/src/mame/drivers/facit4440.cpp
+++ b/src/mame/drivers/facit4440.cpp
@@ -264,7 +264,7 @@ void facit4440_state::facit4440(machine_config &config)
MC6845(config, m_crtc, FAKE_DOT_CLOCK / CH_WIDTH); // HD46505SP-2
m_crtc->set_char_width(CH_WIDTH);
m_crtc->set_show_border_area(false);
- m_crtc->set_update_row_callback(FUNC(facit4440_state::update_row), this);
+ m_crtc->set_update_row_callback(FUNC(facit4440_state::update_row));
m_crtc->out_hsync_callback().set("ctc", FUNC(z80ctc_device::trg3));
m_crtc->out_vsync_callback().set(FUNC(facit4440_state::vsync_w));
}
diff --git a/src/mame/drivers/falcots.cpp b/src/mame/drivers/falcots.cpp
index c706babec20..69c00712909 100644
--- a/src/mame/drivers/falcots.cpp
+++ b/src/mame/drivers/falcots.cpp
@@ -386,7 +386,7 @@ void falcots_state::ts1(machine_config &config)
m_crtc->set_screen("screen");
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8);
- m_crtc->set_update_row_callback(FUNC(falcots_state::update_row), this);
+ m_crtc->set_update_row_callback(FUNC(falcots_state::update_row));
}
static const z80_daisy_config daisy_chain[] =
@@ -425,7 +425,7 @@ void falcots_state::ts2624(machine_config &config)
m_crtc->set_screen("screen");
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(16);
- m_crtc->set_update_row_callback(FUNC(falcots_state::update_row), this);
+ m_crtc->set_update_row_callback(FUNC(falcots_state::update_row));
}
ROM_START(ts1)
diff --git a/src/mame/drivers/famibox.cpp b/src/mame/drivers/famibox.cpp
index fab34e49be2..c772235dfe9 100644
--- a/src/mame/drivers/famibox.cpp
+++ b/src/mame/drivers/famibox.cpp
@@ -510,7 +510,7 @@ void famibox_state::machine_start()
m_nt_page[2] = m_nt_ram.get() + 0x800;
m_nt_page[3] = m_nt_ram.get() + 0xc00;
- m_ppu->space(AS_PROGRAM).install_readwrite_handler(0x2000, 0x3eff, read8_delegate(FUNC(famibox_state::famibox_nt_r), this), write8_delegate(FUNC(famibox_state::famibox_nt_w), this));
+ m_ppu->space(AS_PROGRAM).install_readwrite_handler(0x2000, 0x3eff, read8_delegate(*this, FUNC(famibox_state::famibox_nt_r)), write8_delegate(*this, FUNC(famibox_state::famibox_nt_w)));
m_ppu->space(AS_PROGRAM).install_read_bank(0x0000, 0x1fff, "ppubank1");
famicombox_bankswitch(0);
diff --git a/src/mame/drivers/fanucspmg.cpp b/src/mame/drivers/fanucspmg.cpp
index fcb47205b19..c4ae1904c18 100644
--- a/src/mame/drivers/fanucspmg.cpp
+++ b/src/mame/drivers/fanucspmg.cpp
@@ -1009,7 +1009,7 @@ void fanucspmg_state::fanucspmg(machine_config &config)
m_crtc->set_screen(SCREEN_TAG);
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8);
- m_crtc->set_update_row_callback(FUNC(fanucspmg_state::crtc_update_row), this);
+ m_crtc->set_update_row_callback(FUNC(fanucspmg_state::crtc_update_row));
m_crtc->out_vsync_callback().set(FUNC(fanucspmg_state::vsync_w));
}
@@ -1017,7 +1017,7 @@ void fanucspmg_state::fanucspmgm(machine_config &config)
{
fanucspmg(config);
- m_crtc->set_update_row_callback(FUNC(fanucspmg_state::crtc_update_row_mono), this);
+ m_crtc->set_update_row_callback(FUNC(fanucspmg_state::crtc_update_row_mono));
}
/* ROM definition */
diff --git a/src/mame/drivers/fastfred.cpp b/src/mame/drivers/fastfred.cpp
index 87902cc0505..1fb0df22581 100644
--- a/src/mame/drivers/fastfred.cpp
+++ b/src/mame/drivers/fastfred.cpp
@@ -1050,8 +1050,8 @@ ROM_END
void fastfred_state::init_flyboy()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xc085, 0xc099, read8_delegate(FUNC(fastfred_state::flyboy_custom1_io_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xc8fb, 0xc900, read8_delegate(FUNC(fastfred_state::flyboy_custom2_io_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xc085, 0xc099, read8_delegate(*this, FUNC(fastfred_state::flyboy_custom1_io_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xc8fb, 0xc900, read8_delegate(*this, FUNC(fastfred_state::flyboy_custom2_io_r)));
m_hardware_type = 1;
}
@@ -1062,28 +1062,28 @@ void fastfred_state::init_flyboyb()
void fastfred_state::init_fastfred()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xc800, 0xcfff, read8_delegate(FUNC(fastfred_state::fastfred_custom_io_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xc800, 0xcfff, read8_delegate(*this, FUNC(fastfred_state::fastfred_custom_io_r)));
m_maincpu->space(AS_PROGRAM).nop_write(0xc800, 0xcfff);
m_hardware_type = 1;
}
void fastfred_state::init_jumpcoas()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xc800, 0xcfff, read8_delegate(FUNC(fastfred_state::jumpcoas_custom_io_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xc800, 0xcfff, read8_delegate(*this, FUNC(fastfred_state::jumpcoas_custom_io_r)));
m_maincpu->space(AS_PROGRAM).nop_write(0xc800, 0xcfff);
m_hardware_type = 0;
}
void fastfred_state::init_boggy84b()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xc800, 0xcfff, read8_delegate(FUNC(fastfred_state::jumpcoas_custom_io_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xc800, 0xcfff, read8_delegate(*this, FUNC(fastfred_state::jumpcoas_custom_io_r)));
m_maincpu->space(AS_PROGRAM).nop_write(0xc800, 0xcfff);
m_hardware_type = 2;
}
void fastfred_state::init_boggy84()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xc800, 0xcfff, read8_delegate(FUNC(fastfred_state::boggy84_custom_io_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xc800, 0xcfff, read8_delegate(*this, FUNC(fastfred_state::boggy84_custom_io_r)));
m_maincpu->space(AS_PROGRAM).nop_write(0xc800, 0xcfff);
m_hardware_type = 2;
}
diff --git a/src/mame/drivers/fb01.cpp b/src/mame/drivers/fb01.cpp
index bf0a829c9e4..9eb6095e118 100644
--- a/src/mame/drivers/fb01.cpp
+++ b/src/mame/drivers/fb01.cpp
@@ -200,7 +200,7 @@ void fb01_state::fb01(machine_config &config)
hd44780_device &hd44780(HD44780(config, "hd44780", 0));
hd44780.set_lcd_size(2, 8); // 2x8 displayed as 1x16
- hd44780.set_pixel_update_cb(FUNC(fb01_state::fb01_pixel_update), this);
+ hd44780.set_pixel_update_cb(FUNC(fb01_state::fb01_pixel_update));
I8251(config, m_upd71051, XTAL(4'000'000));
m_upd71051->rxrdy_handler().set(FUNC(fb01_state::upd71051_rxrdy_w));
diff --git a/src/mame/drivers/fc100.cpp b/src/mame/drivers/fc100.cpp
index 4630e1645a3..3c68df4b1b0 100644
--- a/src/mame/drivers/fc100.cpp
+++ b/src/mame/drivers/fc100.cpp
@@ -465,7 +465,7 @@ void fc100_state::machine_start()
m_inv = 0;
if (m_cart->exists())
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x6000, 0x6fff, read8sm_delegate(FUNC(generic_slot_device::read_rom),(generic_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x6000, 0x6fff, read8sm_delegate(*m_cart, FUNC(generic_slot_device::read_rom)));
save_item(NAME(m_ag));
save_item(NAME(m_gm2));
diff --git a/src/mame/drivers/fccpu30.cpp b/src/mame/drivers/fccpu30.cpp
index b7f2197872e..4d390cde0b1 100644
--- a/src/mame/drivers/fccpu30.cpp
+++ b/src/mame/drivers/fccpu30.cpp
@@ -661,7 +661,7 @@ static void fccpu30_vme_cards(device_slot_interface &device)
void cpu30_state::cpu_space_map(address_map &map)
{
- map(0xfffffff2, 0xffffffff).lr16("fga002 irq", [this](offs_t offset) -> u16 { return m_fga002->iack(); });
+ map(0xfffffff2, 0xffffffff).lr16(NAME([this] (offs_t offset) -> u16 { return m_fga002->iack(); }));
}
void cpu30_state::cpu30(machine_config &config)
diff --git a/src/mame/drivers/fcrash.cpp b/src/mame/drivers/fcrash.cpp
index 96c973de10f..8a7e70d334a 100644
--- a/src/mame/drivers/fcrash.cpp
+++ b/src/mame/drivers/fcrash.cpp
@@ -2131,9 +2131,9 @@ ROM_END
void cps_state::init_kodb()
{
m_maincpu->space(AS_PROGRAM).install_read_port(0x800000, 0x800007, "IN1");
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x800018, 0x80001f, read16_delegate(FUNC(cps_state::cps1_dsw_r),this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x800180, 0x800187, write16_delegate(FUNC(cps_state::cps1_soundlatch_w),this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x980000, 0x98002f, write16_delegate(FUNC(cps_state::kodb_layer_w),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x800018, 0x80001f, read16_delegate(*this, FUNC(cps_state::cps1_dsw_r)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x800180, 0x800187, write16_delegate(*this, FUNC(cps_state::cps1_soundlatch_w)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x980000, 0x98002f, write16_delegate(*this, FUNC(cps_state::kodb_layer_w)));
/* the original game alternates between 2 sprite ram areas to achieve flashing sprites - the bootleg doesn't do the write to the register to achieve this
mapping both sprite ram areas to the same bootleg sprite ram - similar to how sf2mdt works */
@@ -2269,8 +2269,8 @@ ROM_END
void cps_state::init_cawingbl()
{
m_maincpu->space(AS_PROGRAM).install_read_port(0x882000, 0x882001, "IN1");
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x882006, 0x882007, write16_delegate(FUNC(cps_state::cawingbl_soundlatch_w),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x882008, 0x88200f, read16_delegate(FUNC(cps_state::cps1_dsw_r),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x882006, 0x882007, write16_delegate(*this, FUNC(cps_state::cawingbl_soundlatch_w)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x882008, 0x88200f, read16_delegate(*this, FUNC(cps_state::cps1_dsw_r)));
init_cps1();
}
@@ -3099,7 +3099,7 @@ void cps_state::init_sf2mdt()
rom[i + 6] = tmp;
}
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x708100, 0x7081ff, write16_delegate(FUNC(cps_state::sf2mdt_layer_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x708100, 0x7081ff, write16_delegate(*this, FUNC(cps_state::sf2mdt_layer_w)));
init_sf2mdta();
}
diff --git a/src/mame/drivers/fidel_as12.cpp b/src/mame/drivers/fidel_as12.cpp
index 1f895ac9057..98adcbf4e1a 100644
--- a/src/mame/drivers/fidel_as12.cpp
+++ b/src/mame/drivers/fidel_as12.cpp
@@ -235,7 +235,7 @@ void as12_state::as12(machine_config &config)
/* cartridge */
GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "fidel_scc", "bin,dat");
- m_cart->set_device_load(FUNC(as12_state::cart_load), this);
+ m_cart->set_device_load(FUNC(as12_state::cart_load));
SOFTWARE_LIST(config, "cart_list").set_original("fidel_scc");
}
diff --git a/src/mame/drivers/fidel_cc1.cpp b/src/mame/drivers/fidel_cc1.cpp
index 643350f7c73..3d9cfec2334 100644
--- a/src/mame/drivers/fidel_cc1.cpp
+++ b/src/mame/drivers/fidel_cc1.cpp
@@ -233,7 +233,7 @@ void cc1_state::cc1(machine_config &config)
m_ppi8255->out_pc_callback().set(FUNC(cc1_state::ppi_portc_w));
m_ppi8255->tri_pc_callback().set_constant(0);
- TIMER(config, "delay").configure_generic(timer_device::expired_delegate());
+ TIMER(config, "delay").configure_generic(nullptr);
/* video hardware */
PWM_DISPLAY(config, m_display).set_size(6, 7);
diff --git a/src/mame/drivers/fidel_eag68k.cpp b/src/mame/drivers/fidel_eag68k.cpp
index 218ec1dcde3..298d1f5e80a 100644
--- a/src/mame/drivers/fidel_eag68k.cpp
+++ b/src/mame/drivers/fidel_eag68k.cpp
@@ -621,7 +621,7 @@ void eag_state::eag_base(machine_config &config)
/* cartridge */
GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "fidel_scc", "bin,dat");
- m_cart->set_device_load(FUNC(eag_state::cart_load), this);
+ m_cart->set_device_load(FUNC(eag_state::cart_load));
SOFTWARE_LIST(config, "cart_list").set_original("fidel_scc");
}
diff --git a/src/mame/drivers/fidel_elite.cpp b/src/mame/drivers/fidel_elite.cpp
index 5b89505f194..484d9bacccd 100644
--- a/src/mame/drivers/fidel_elite.cpp
+++ b/src/mame/drivers/fidel_elite.cpp
@@ -454,7 +454,7 @@ void elite_state::pc(machine_config &config)
/* cartridge */
GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "fidel_scc", "bin,dat");
- m_cart->set_device_load(FUNC(elite_state::cart_load), this);
+ m_cart->set_device_load(FUNC(elite_state::cart_load));
SOFTWARE_LIST(config, "cart_list").set_original("fidel_scc");
}
diff --git a/src/mame/drivers/fidel_sc12.cpp b/src/mame/drivers/fidel_sc12.cpp
index 47ac889cc9c..aec0576fd8c 100644
--- a/src/mame/drivers/fidel_sc12.cpp
+++ b/src/mame/drivers/fidel_sc12.cpp
@@ -254,7 +254,7 @@ void sc12_state::sc12(machine_config &config)
/* cartridge */
GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "fidel_scc", "bin,dat");
- m_cart->set_device_load(FUNC(sc12_state::cart_load), this);
+ m_cart->set_device_load(FUNC(sc12_state::cart_load));
SOFTWARE_LIST(config, "cart_list").set_original("fidel_scc");
}
diff --git a/src/mame/drivers/fidel_sc6.cpp b/src/mame/drivers/fidel_sc6.cpp
index 9b674d581a7..1864fa3ec24 100644
--- a/src/mame/drivers/fidel_sc6.cpp
+++ b/src/mame/drivers/fidel_sc6.cpp
@@ -243,7 +243,7 @@ void sc6_state::sc6(machine_config &config)
/* cartridge */
GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "fidel_sc6", "bin");
- m_cart->set_device_load(FUNC(sc6_state::cart_load), this);
+ m_cart->set_device_load(FUNC(sc6_state::cart_load));
m_cart->set_must_be_loaded(true);
SOFTWARE_LIST(config, "cart_list").set_original("fidel_sc6");
diff --git a/src/mame/drivers/fidel_sc9.cpp b/src/mame/drivers/fidel_sc9.cpp
index 57867b040de..d8f49e242b2 100644
--- a/src/mame/drivers/fidel_sc9.cpp
+++ b/src/mame/drivers/fidel_sc9.cpp
@@ -300,7 +300,7 @@ void sc9_state::sc9d(machine_config &config)
/* cartridge */
GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "fidel_scc", "bin,dat");
- m_cart->set_device_load(FUNC(sc9_state::cart_load), this);
+ m_cart->set_device_load(FUNC(sc9_state::cart_load));
SOFTWARE_LIST(config, "cart_list").set_original("fidel_scc");
}
diff --git a/src/mame/drivers/fireball.cpp b/src/mame/drivers/fireball.cpp
index 3d897c55fdd..22ec268e04d 100644
--- a/src/mame/drivers/fireball.cpp
+++ b/src/mame/drivers/fireball.cpp
@@ -504,7 +504,7 @@ void fireball_state::fireball(machine_config &config)
m_maincpu->port_out_cb<3>().set(FUNC(fireball_state::p3_w));
//9ms from scope reading 111Hz take care of this in the handler
- TIMER(config, "int_0", 0).configure_periodic(timer_device::expired_delegate(FUNC(fireball_state::int_0), this), attotime::from_hz(555));
+ TIMER(config, "int_0", 0).configure_periodic(FUNC(fireball_state::int_0), attotime::from_hz(555));
EEPROM_X24C44_16BIT(config, "eeprom");
diff --git a/src/mame/drivers/firebeat.cpp b/src/mame/drivers/firebeat.cpp
index a7e09bdb5d8..7e712b55822 100644
--- a/src/mame/drivers/firebeat.cpp
+++ b/src/mame/drivers/firebeat.cpp
@@ -1468,9 +1468,9 @@ WRITE8_MEMBER(firebeat_state::security_w)
void firebeat_state::init_lights(write32_delegate out1, write32_delegate out2, write32_delegate out3)
{
- if(out1.isnull()) out1 = write32_delegate(FUNC(firebeat_state::lamp_output_w),this);
- if(out2.isnull()) out2 = write32_delegate(FUNC(firebeat_state::lamp_output2_w),this);
- if(out3.isnull()) out3 = write32_delegate(FUNC(firebeat_state::lamp_output3_w),this);
+ if(out1.isnull()) out1 = write32_delegate(*this, FUNC(firebeat_state::lamp_output_w));
+ if(out2.isnull()) out2 = write32_delegate(*this, FUNC(firebeat_state::lamp_output2_w));
+ if(out3.isnull()) out3 = write32_delegate(*this, FUNC(firebeat_state::lamp_output3_w));
m_maincpu->space(AS_PROGRAM).install_write_handler(0x7d000804, 0x7d000807, out1);
m_maincpu->space(AS_PROGRAM).install_write_handler(0x7d000320, 0x7d000323, out2);
@@ -1489,23 +1489,23 @@ void firebeat_state::init_firebeat()
m_cur_cab_data = cab_data;
- m_maincpu->ppc4xx_spu_set_tx_handler(write8_delegate(FUNC(firebeat_state::security_w), this));
+ m_maincpu->ppc4xx_spu_set_tx_handler(write8_delegate(*this, FUNC(firebeat_state::security_w)));
set_ibutton(rom);
- init_lights(write32_delegate(), write32_delegate(), write32_delegate());
+ init_lights(write32_delegate(*this), write32_delegate(*this), write32_delegate(*this));
}
void firebeat_state::init_ppp()
{
init_firebeat();
- init_lights(write32_delegate(FUNC(firebeat_state::lamp_output_ppp_w),this), write32_delegate(FUNC(firebeat_state::lamp_output2_ppp_w),this), write32_delegate(FUNC(firebeat_state::lamp_output3_ppp_w),this));
+ init_lights(write32_delegate(*this, FUNC(firebeat_state::lamp_output_ppp_w)), write32_delegate(*this, FUNC(firebeat_state::lamp_output2_ppp_w)), write32_delegate(*this, FUNC(firebeat_state::lamp_output3_ppp_w)));
}
void firebeat_state::init_ppd()
{
init_firebeat();
- init_lights(write32_delegate(FUNC(firebeat_state::lamp_output_ppp_w),this), write32_delegate(FUNC(firebeat_state::lamp_output2_ppp_w),this), write32_delegate(FUNC(firebeat_state::lamp_output3_ppp_w),this));
+ init_lights(write32_delegate(*this, FUNC(firebeat_state::lamp_output_ppp_w)), write32_delegate(*this, FUNC(firebeat_state::lamp_output2_ppp_w)), write32_delegate(*this, FUNC(firebeat_state::lamp_output3_ppp_w)));
m_cur_cab_data = ppd_cab_data;
}
@@ -1520,7 +1520,7 @@ void firebeat_state::init_keyboard()
void firebeat_state::init_kbm()
{
init_firebeat();
- init_lights(write32_delegate(FUNC(firebeat_state::lamp_output_kbm_w),this), write32_delegate(), write32_delegate());
+ init_lights(write32_delegate(*this, FUNC(firebeat_state::lamp_output_kbm_w)), write32_delegate(*this), write32_delegate(*this));
init_keyboard();
diff --git a/src/mame/drivers/firefox.cpp b/src/mame/drivers/firefox.cpp
index ab35e22dd29..cf7f0999715 100644
--- a/src/mame/drivers/firefox.cpp
+++ b/src/mame/drivers/firefox.cpp
@@ -248,7 +248,7 @@ WRITE8_MEMBER(firefox_state::tileram_w)
void firefox_state::video_start()
{
- m_bgtiles = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(firefox_state::bgtile_get_info),this), TILEMAP_SCAN_ROWS, 8,8, 64,64);
+ m_bgtiles = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(firefox_state::bgtile_get_info)), TILEMAP_SCAN_ROWS, 8,8, 64,64);
m_bgtiles->set_transparent_pen(0);
m_bgtiles->set_scrolldy(m_screen->visible_area().top(), 0);
}
diff --git a/src/mame/drivers/fitfight.cpp b/src/mame/drivers/fitfight.cpp
index 0566ca682ec..6067a24fa30 100644
--- a/src/mame/drivers/fitfight.cpp
+++ b/src/mame/drivers/fitfight.cpp
@@ -984,7 +984,7 @@ void fitfight_state::init_fitfight()
{
// uint16_t *mem16 = (uint16_t *)memregion("maincpu")->base();
// mem16[0x0165B2/2] = 0x4e71; // for now so it boots
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x700000, 0x700001, read16_delegate(FUNC(fitfight_state::fitfight_700000_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x700000, 0x700001, read16_delegate(*this, FUNC(fitfight_state::fitfight_700000_r)));
m_bbprot_kludge = 0;
}
@@ -992,7 +992,7 @@ void fitfight_state::init_histryma()
{
// uint16_t *mem16 = (uint16_t *)memregion("maincpu")->base();
// mem16[0x017FDC/2] = 0x4e71; // for now so it boots
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x700000, 0x700001, read16_delegate(FUNC(fitfight_state::histryma_700000_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x700000, 0x700001, read16_delegate(*this, FUNC(fitfight_state::histryma_700000_r)));
m_bbprot_kludge = 0;
}
@@ -1003,7 +1003,7 @@ void fitfight_state::init_bbprot()
void fitfight_state::init_hotmindff()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x200000, 0x200001, read16_delegate(FUNC(fitfight_state::hotmindff_unk_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x200000, 0x200001, read16_delegate(*this, FUNC(fitfight_state::hotmindff_unk_r)));
init_fitfight();
}
diff --git a/src/mame/drivers/flipjack.cpp b/src/mame/drivers/flipjack.cpp
index f99267910d5..cf8c9d20655 100644
--- a/src/mame/drivers/flipjack.cpp
+++ b/src/mame/drivers/flipjack.cpp
@@ -447,7 +447,7 @@ void flipjack_state::flipjack(machine_config &config)
crtc.set_char_width(8);
crtc.out_vsync_callback().set_inputline("maincpu", INPUT_LINE_IRQ0, HOLD_LINE);
crtc.out_vsync_callback().append_inputline("audiocpu", INPUT_LINE_NMI, ASSERT_LINE);
- crtc.set_update_row_callback(FUNC(flipjack_state::update_row), this);
+ crtc.set_update_row_callback(FUNC(flipjack_state::update_row));
GFXDECODE(config, "gfxdecode", m_palette, gfx_flipjack);
PALETTE(config, m_palette, FUNC(flipjack_state::flipjack_palette), 128+8);
diff --git a/src/mame/drivers/flower.cpp b/src/mame/drivers/flower.cpp
index 2365317fa78..daf156ea303 100644
--- a/src/mame/drivers/flower.cpp
+++ b/src/mame/drivers/flower.cpp
@@ -177,8 +177,8 @@ TILE_GET_INFO_MEMBER(flower_state::get_fg_tile_info)
void flower_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(flower_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 16, 16);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(flower_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 16, 16);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(flower_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 16, 16);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(flower_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 16, 16);
m_screen->register_screen_bitmap(m_temp_bitmap);
m_fg_tilemap->set_transparent_pen(15);
diff --git a/src/mame/drivers/flyball.cpp b/src/mame/drivers/flyball.cpp
index f9f24738a17..9e4dda6ba15 100644
--- a/src/mame/drivers/flyball.cpp
+++ b/src/mame/drivers/flyball.cpp
@@ -141,7 +141,7 @@ TILE_GET_INFO_MEMBER(flyball_state::get_tile_info)
void flyball_state::video_start()
{
- m_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(flyball_state::get_tile_info),this), tilemap_mapper_delegate(FUNC(flyball_state::get_memory_offset),this), 8, 16, 32, 16);
+ m_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(flyball_state::get_tile_info)), tilemap_mapper_delegate(*this, FUNC(flyball_state::get_memory_offset)), 8, 16, 32, 16);
}
diff --git a/src/mame/drivers/fm7.cpp b/src/mame/drivers/fm7.cpp
index 9c44273965a..c8243e199f2 100644
--- a/src/mame/drivers/fm7.cpp
+++ b/src/mame/drivers/fm7.cpp
@@ -1026,40 +1026,40 @@ void fm7_state::fm7_update_bank(address_space & space, int bank, uint8_t physica
switch(physical)
{
case 0x10:
- space.install_readwrite_handler(bank*0x1000,(bank*0x1000)+size,read8_delegate(FUNC(fm7_state::fm7_vram0_r),this),write8_delegate(FUNC(fm7_state::fm7_vram0_w),this));
+ space.install_readwrite_handler(bank*0x1000,(bank*0x1000)+size,read8_delegate(*this, FUNC(fm7_state::fm7_vram0_r)),write8_delegate(*this, FUNC(fm7_state::fm7_vram0_w)));
break;
case 0x11:
- space.install_readwrite_handler(bank*0x1000,(bank*0x1000)+size,read8_delegate(FUNC(fm7_state::fm7_vram1_r),this),write8_delegate(FUNC(fm7_state::fm7_vram1_w),this));
+ space.install_readwrite_handler(bank*0x1000,(bank*0x1000)+size,read8_delegate(*this, FUNC(fm7_state::fm7_vram1_r)),write8_delegate(*this, FUNC(fm7_state::fm7_vram1_w)));
break;
case 0x12:
- space.install_readwrite_handler(bank*0x1000,(bank*0x1000)+size,read8_delegate(FUNC(fm7_state::fm7_vram2_r),this),write8_delegate(FUNC(fm7_state::fm7_vram2_w),this));
+ space.install_readwrite_handler(bank*0x1000,(bank*0x1000)+size,read8_delegate(*this, FUNC(fm7_state::fm7_vram2_r)),write8_delegate(*this, FUNC(fm7_state::fm7_vram2_w)));
break;
case 0x13:
- space.install_readwrite_handler(bank*0x1000,(bank*0x1000)+size,read8_delegate(FUNC(fm7_state::fm7_vram3_r),this),write8_delegate(FUNC(fm7_state::fm7_vram3_w),this));
+ space.install_readwrite_handler(bank*0x1000,(bank*0x1000)+size,read8_delegate(*this, FUNC(fm7_state::fm7_vram3_r)),write8_delegate(*this, FUNC(fm7_state::fm7_vram3_w)));
break;
case 0x14:
- space.install_readwrite_handler(bank*0x1000,(bank*0x1000)+size,read8_delegate(FUNC(fm7_state::fm7_vram4_r),this),write8_delegate(FUNC(fm7_state::fm7_vram4_w),this));
+ space.install_readwrite_handler(bank*0x1000,(bank*0x1000)+size,read8_delegate(*this, FUNC(fm7_state::fm7_vram4_r)),write8_delegate(*this, FUNC(fm7_state::fm7_vram4_w)));
break;
case 0x15:
- space.install_readwrite_handler(bank*0x1000,(bank*0x1000)+size,read8_delegate(FUNC(fm7_state::fm7_vram5_r),this),write8_delegate(FUNC(fm7_state::fm7_vram5_w),this));
+ space.install_readwrite_handler(bank*0x1000,(bank*0x1000)+size,read8_delegate(*this, FUNC(fm7_state::fm7_vram5_r)),write8_delegate(*this, FUNC(fm7_state::fm7_vram5_w)));
break;
case 0x16:
- space.install_readwrite_handler(bank*0x1000,(bank*0x1000)+size,read8_delegate(FUNC(fm7_state::fm7_vram6_r),this),write8_delegate(FUNC(fm7_state::fm7_vram6_w),this));
+ space.install_readwrite_handler(bank*0x1000,(bank*0x1000)+size,read8_delegate(*this, FUNC(fm7_state::fm7_vram6_r)),write8_delegate(*this, FUNC(fm7_state::fm7_vram6_w)));
break;
case 0x17:
- space.install_readwrite_handler(bank*0x1000,(bank*0x1000)+size,read8_delegate(FUNC(fm7_state::fm7_vram7_r),this),write8_delegate(FUNC(fm7_state::fm7_vram7_w),this));
+ space.install_readwrite_handler(bank*0x1000,(bank*0x1000)+size,read8_delegate(*this, FUNC(fm7_state::fm7_vram7_r)),write8_delegate(*this, FUNC(fm7_state::fm7_vram7_w)));
break;
case 0x18:
- space.install_readwrite_handler(bank*0x1000,(bank*0x1000)+size,read8_delegate(FUNC(fm7_state::fm7_vram8_r),this),write8_delegate(FUNC(fm7_state::fm7_vram8_w),this));
+ space.install_readwrite_handler(bank*0x1000,(bank*0x1000)+size,read8_delegate(*this, FUNC(fm7_state::fm7_vram8_r)),write8_delegate(*this, FUNC(fm7_state::fm7_vram8_w)));
break;
case 0x19:
- space.install_readwrite_handler(bank*0x1000,(bank*0x1000)+size,read8_delegate(FUNC(fm7_state::fm7_vram9_r),this),write8_delegate(FUNC(fm7_state::fm7_vram9_w),this));
+ space.install_readwrite_handler(bank*0x1000,(bank*0x1000)+size,read8_delegate(*this, FUNC(fm7_state::fm7_vram9_r)),write8_delegate(*this, FUNC(fm7_state::fm7_vram9_w)));
break;
case 0x1a:
- space.install_readwrite_handler(bank*0x1000,(bank*0x1000)+size,read8_delegate(FUNC(fm7_state::fm7_vramA_r),this),write8_delegate(FUNC(fm7_state::fm7_vramA_w),this));
+ space.install_readwrite_handler(bank*0x1000,(bank*0x1000)+size,read8_delegate(*this, FUNC(fm7_state::fm7_vramA_r)),write8_delegate(*this, FUNC(fm7_state::fm7_vramA_w)));
break;
case 0x1b:
- space.install_readwrite_handler(bank*0x1000,(bank*0x1000)+size,read8_delegate(FUNC(fm7_state::fm7_vramB_r),this),write8_delegate(FUNC(fm7_state::fm7_vramB_w),this));
+ space.install_readwrite_handler(bank*0x1000,(bank*0x1000)+size,read8_delegate(*this, FUNC(fm7_state::fm7_vramB_r)),write8_delegate(*this, FUNC(fm7_state::fm7_vramB_w)));
break;
}
// membank(bank+1)->set_base(RAM+(physical<<12)-0x10000);
@@ -1067,12 +1067,12 @@ void fm7_state::fm7_update_bank(address_space & space, int bank, uint8_t physica
}
if(physical == 0x1c)
{
- space.install_readwrite_handler(bank*0x1000,(bank*0x1000)+size,read8_delegate(FUNC(fm7_state::fm7_console_ram_banked_r),this),write8_delegate(FUNC(fm7_state::fm7_console_ram_banked_w),this));
+ space.install_readwrite_handler(bank*0x1000,(bank*0x1000)+size,read8_delegate(*this, FUNC(fm7_state::fm7_console_ram_banked_r)),write8_delegate(*this, FUNC(fm7_state::fm7_console_ram_banked_w)));
return;
}
if(physical == 0x1d)
{
- space.install_readwrite_handler(bank*0x1000,(bank*0x1000)+size,read8_delegate(FUNC(fm7_state::fm7_sub_ram_ports_banked_r),this),write8_delegate(FUNC(fm7_state::fm7_sub_ram_ports_banked_w),this));
+ space.install_readwrite_handler(bank*0x1000,(bank*0x1000)+size,read8_delegate(*this, FUNC(fm7_state::fm7_sub_ram_ports_banked_r)),write8_delegate(*this, FUNC(fm7_state::fm7_sub_ram_ports_banked_w)));
return;
}
if(physical == 0x35)
@@ -1145,7 +1145,7 @@ void fm7_state::fm7_mmr_refresh(address_space& space)
}
else
{
- space.install_readwrite_handler(0x7000,0x7fff,read8sm_delegate(FUNC(address_map_bank_device::read8),(address_map_bank_device*)m_avbank[7]),write8sm_delegate(FUNC(address_map_bank_device::write8),(address_map_bank_device*)m_avbank[7]));
+ space.install_readwrite_handler(0x7000,0x7fff,read8sm_delegate(*m_avbank[7], FUNC(address_map_bank_device::read8)),write8sm_delegate(*m_avbank[7], FUNC(address_map_bank_device::write8)));
}
if(m_init_rom_en)
{
diff --git a/src/mame/drivers/force68k.cpp b/src/mame/drivers/force68k.cpp
index 1002f3d9eae..9971891ed82 100644
--- a/src/mame/drivers/force68k.cpp
+++ b/src/mame/drivers/force68k.cpp
@@ -381,9 +381,9 @@ void force68k_state::machine_start ()
{
m_usrrom = (uint16_t*)m_cart->get_rom_base();
#if 0 // This should be the correct way but produces odd and even bytes swapped
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xa0000, 0xbffff, read16_delegate(FUNC(generic_slot_device::read16_rom), (generic_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xa0000, 0xbffff, read16_delegate(*m_cart, FUNC(generic_slot_device::read16_rom)));
#else // So we installs a custom very ineffecient handler for now until we understand hwp to solve the problem better
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xa0000, 0xbffff, read16_delegate(FUNC(force68k_state::read16_rom), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xa0000, 0xbffff, read16_delegate(*this, FUNC(force68k_state::read16_rom)));
#endif
}
}
@@ -500,7 +500,7 @@ void force68k_state::fccpu1_eprom_sockets(machine_config &config)
generic_cartslot_device &exp_rom1(GENERIC_CARTSLOT(config, "exp_rom1", generic_plain_slot, "fccpu1_cart", "bin,rom"));
exp_rom1.set_width(GENERIC_ROM16_WIDTH);
exp_rom1.set_endian(ENDIANNESS_BIG);
- exp_rom1.set_device_load(FUNC(force68k_state::exp1_load), this);
+ exp_rom1.set_device_load(FUNC(force68k_state::exp1_load));
// SOFTWARE_LIST(config, "cart_list").set_original("fccpu1_cart");
}
diff --git a/src/mame/drivers/fp1100.cpp b/src/mame/drivers/fp1100.cpp
index b076857ded9..33fd04d2e16 100644
--- a/src/mame/drivers/fp1100.cpp
+++ b/src/mame/drivers/fp1100.cpp
@@ -302,7 +302,7 @@ void fp1100_state::sub_map(address_map &map)
map(0xe001, 0xe001).mirror(0x3fe).rw(m_crtc, FUNC(mc6845_device::register_r), FUNC(mc6845_device::register_w));
map(0xe400, 0xe7ff).portr("DSW").w(FUNC(fp1100_state::kbd_row_w));
map(0xe800, 0xebff).rw(FUNC(fp1100_state::main_to_sub_r), FUNC(fp1100_state::sub_to_main_w));
- map(0xec00, 0xefff).lw8("reset0", [this] (u8 data) { m_subcpu->set_input_line(UPD7810_INTF0, CLEAR_LINE); });
+ map(0xec00, 0xefff).lw8(NAME([this] (u8 data) { m_subcpu->set_input_line(UPD7810_INTF0, CLEAR_LINE); }));
map(0xf000, 0xf3ff).w(FUNC(fp1100_state::colour_control_w));
map(0xf400, 0xff7f).rom().region("sub_ipl", 0x2400);
}
@@ -711,7 +711,7 @@ void fp1100_state::fp1100(machine_config &config)
m_crtc->set_screen("screen");
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8);
- m_crtc->set_update_row_callback(FUNC(fp1100_state::crtc_update_row), this);
+ m_crtc->set_update_row_callback(FUNC(fp1100_state::crtc_update_row));
/* Printer */
CENTRONICS(config, m_centronics, centronics_devices, "printer");
diff --git a/src/mame/drivers/freeway.cpp b/src/mame/drivers/freeway.cpp
index 38db5cdcc93..a45d6743261 100644
--- a/src/mame/drivers/freeway.cpp
+++ b/src/mame/drivers/freeway.cpp
@@ -149,7 +149,7 @@ void freeway_state::freeway(machine_config &config)
crtc.set_char_width(8);
crtc.set_show_border_area(false);
crtc.set_screen("screen");
- crtc.set_update_row_callback(FUNC(freeway_state::update_row), this);
+ crtc.set_update_row_callback(FUNC(freeway_state::update_row));
crtc.out_hsync_callback().set("pit", FUNC(pit8254_device::write_clk0)); // guess
ns16450_device &uart(NS16450(config, "uart", 10_MHz_XTAL / 8)); // type unknown
diff --git a/src/mame/drivers/fresh.cpp b/src/mame/drivers/fresh.cpp
index 0dc19ad686b..bded8f6855b 100644
--- a/src/mame/drivers/fresh.cpp
+++ b/src/mame/drivers/fresh.cpp
@@ -159,8 +159,8 @@ WRITE16_MEMBER(fresh_state::fresh_attr_2_videoram_w)
void fresh_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(fresh_state::get_fresh_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 512);
- m_bg_2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(fresh_state::get_fresh_bg_2_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 512);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(fresh_state::get_fresh_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 512);
+ m_bg_2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(fresh_state::get_fresh_bg_2_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 512);
m_bg_tilemap->set_transparent_pen(255);
}
diff --git a/src/mame/drivers/fs3216.cpp b/src/mame/drivers/fs3216.cpp
index 7f8df004b84..7ecd6312289 100644
--- a/src/mame/drivers/fs3216.cpp
+++ b/src/mame/drivers/fs3216.cpp
@@ -467,7 +467,7 @@ void fs3216_state::fs3216(machine_config &config)
M68000(config, m_maincpu, 44.2368_MHz_XTAL / 8); // 5.5 MHz
m_maincpu->set_addrmap(AS_PROGRAM, &fs3216_state::main_map);
m_maincpu->set_addrmap(m68000_device::AS_CPU_SPACE, &fs3216_state::fc7_map);
- m_maincpu->set_reset_callback(write_line_delegate(FUNC(fs3216_state::mmu_reset_w), this));
+ m_maincpu->set_reset_callback(FUNC(fs3216_state::mmu_reset_w));
ADDRESS_MAP_BANK(config, m_clb);
m_clb->set_addrmap(0, &fs3216_state::clb_map);
@@ -501,7 +501,7 @@ void fs3216_state::fs3216(machine_config &config)
mc6845_device &crtc(MC6845(config, "crtc", 14.58_MHz_XTAL / 9)); // HD46505RP
crtc.set_char_width(9);
crtc.set_show_border_area(false);
- crtc.set_update_row_callback(FUNC(fs3216_state::crt_update_row), this);
+ crtc.set_update_row_callback(FUNC(fs3216_state::crt_update_row));
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
screen.set_color(rgb_t::green());
diff --git a/src/mame/drivers/funkball.cpp b/src/mame/drivers/funkball.cpp
index 95bd5f603bf..3c88dd69f37 100644
--- a/src/mame/drivers/funkball.cpp
+++ b/src/mame/drivers/funkball.cpp
@@ -773,10 +773,8 @@ void funkball_state::funkball(machine_config &config)
pcat_common(config);
pci_bus_legacy_device &pcibus(PCI_BUS_LEGACY(config, "pcibus", 0, 0));
- pcibus.set_device_read (7, FUNC(funkball_state::voodoo_0_pci_r), this);
- pcibus.set_device_write(7, FUNC(funkball_state::voodoo_0_pci_w), this);
- pcibus.set_device_read (18, FUNC(funkball_state::cx5510_pci_r), this);
- pcibus.set_device_write(18, FUNC(funkball_state::cx5510_pci_w), this);
+ pcibus.set_device(7, FUNC(funkball_state::voodoo_0_pci_r), FUNC(funkball_state::voodoo_0_pci_w));
+ pcibus.set_device(18, FUNC(funkball_state::cx5510_pci_r), FUNC(funkball_state::cx5510_pci_w));
ide_controller_device &ide(IDE_CONTROLLER(config, "ide").options(ata_devices, "hdd", nullptr, true));
ide.irq_handler().set("pic8259_2", FUNC(pic8259_device::ir6_w));
diff --git a/src/mame/drivers/funtech.cpp b/src/mame/drivers/funtech.cpp
index 9f9077ef500..06b94be2839 100644
--- a/src/mame/drivers/funtech.cpp
+++ b/src/mame/drivers/funtech.cpp
@@ -130,12 +130,12 @@ WRITE8_MEMBER(fun_tech_corp_state::reel_ram_w)
void fun_tech_corp_state::video_start()
{
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(fun_tech_corp_state::get_fg_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(fun_tech_corp_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_fg_tilemap->set_transparent_pen(0);
- m_reel_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(fun_tech_corp_state::get_reel_tile_info<0>), this), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
- m_reel_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(fun_tech_corp_state::get_reel_tile_info<1>), this), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
- m_reel_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(fun_tech_corp_state::get_reel_tile_info<2>), this), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
+ m_reel_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(fun_tech_corp_state::get_reel_tile_info<0>)), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
+ m_reel_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(fun_tech_corp_state::get_reel_tile_info<1>)), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
+ m_reel_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(fun_tech_corp_state::get_reel_tile_info<2>)), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
m_reel_tilemap[0]->set_scroll_cols(64);
m_reel_tilemap[1]->set_scroll_cols(64);
diff --git a/src/mame/drivers/fuukifg2.cpp b/src/mame/drivers/fuukifg2.cpp
index 45ab3b8efd5..37cef4df745 100644
--- a/src/mame/drivers/fuukifg2.cpp
+++ b/src/mame/drivers/fuukifg2.cpp
@@ -486,7 +486,7 @@ void fuuki16_state::fuuki16(machine_config &config)
m_fuukivid->set_palette(m_palette);
m_fuukivid->set_color_base(0x400*2);
m_fuukivid->set_color_num(0x40);
- m_fuukivid->set_colpri_callback(FUNC(fuuki16_state::fuuki16_colpri_cb), this);
+ m_fuukivid->set_colpri_callback(FUNC(fuuki16_state::fuuki16_colpri_cb));
/* sound hardware */
SPEAKER(config, "mono").front_center();
diff --git a/src/mame/drivers/fuukifg3.cpp b/src/mame/drivers/fuukifg3.cpp
index e81b0077e8e..bb740c0d4e5 100644
--- a/src/mame/drivers/fuukifg3.cpp
+++ b/src/mame/drivers/fuukifg3.cpp
@@ -241,10 +241,10 @@ void fuuki32_state::fuuki32_map(address_map &map)
map(0x600000, 0x601fff).rw(FUNC(fuuki32_state::sprram_r), FUNC(fuuki32_state::sprram_w)).share("spriteram"); // Sprites
map(0x700000, 0x703fff).ram().w(m_palette, FUNC(palette_device::write32)).share("palette"); // Palette
- map(0x800000, 0x800003).lr16("800000", [this]() { return u16(m_system->read()); }).nopw(); // Coin
- map(0x810000, 0x810003).lr16("810000", [this]() { return u16(m_inputs->read()); }).nopw(); // Player Inputs
- map(0x880000, 0x880003).lr16("880000", [this]() { return u16(m_dsw1->read()); }); // Service + DIPS
- map(0x890000, 0x890003).lr16("890000", [this]() { return u16(m_dsw2->read()); }); // More DIPS
+ map(0x800000, 0x800003).lr16(NAME([this] () { return u16(m_system->read()); })).nopw(); // Coin
+ map(0x810000, 0x810003).lr16(NAME([this] () { return u16(m_inputs->read()); })).nopw(); // Player Inputs
+ map(0x880000, 0x880003).lr16(NAME([this] () { return u16(m_dsw1->read()); })); // Service + DIPS
+ map(0x890000, 0x890003).lr16(NAME([this] () { return u16(m_dsw2->read()); })); // More DIPS
map(0x8c0000, 0x8c001f).rw(FUNC(fuuki32_state::vregs_r), FUNC(fuuki32_state::vregs_w)).share("vregs"); // Video Registers
map(0x8d0000, 0x8d0003).ram(); // Flipscreen Related
@@ -546,8 +546,8 @@ void fuuki32_state::fuuki32(machine_config &config)
m_fuukivid->set_palette(m_palette);
m_fuukivid->set_color_base(0x400*2);
m_fuukivid->set_color_num(0x40);
- m_fuukivid->set_tile_callback(FUNC(fuuki32_state::fuuki32_tile_cb), this);
- m_fuukivid->set_colpri_callback(FUNC(fuuki32_state::fuuki32_colpri_cb), this);
+ m_fuukivid->set_tile_callback(FUNC(fuuki32_state::fuuki32_tile_cb));
+ m_fuukivid->set_colpri_callback(FUNC(fuuki32_state::fuuki32_colpri_cb));
/* sound hardware */
SPEAKER(config, "lspeaker").front_left();
diff --git a/src/mame/drivers/gaelco.cpp b/src/mame/drivers/gaelco.cpp
index 3f257652ef3..922cdb47320 100644
--- a/src/mame/drivers/gaelco.cpp
+++ b/src/mame/drivers/gaelco.cpp
@@ -117,7 +117,7 @@ void gaelco_state::bigkarnk_map(address_map &map)
map(0x700004, 0x700005).portr("P1");
map(0x700006, 0x700007).portr("P2");
map(0x700008, 0x700009).portr("SERVICE");
- map(0x70000b, 0x70000b).select(0x000070).lw8("outlatch_w", [this](offs_t offset, u8 data) { m_outlatch->write_d0(offset >> 4, data); });
+ map(0x70000b, 0x70000b).select(0x000070).lw8(NAME([this] (offs_t offset, u8 data) { m_outlatch->write_d0(offset >> 4, data); }));
map(0x70000f, 0x70000f).w(m_soundlatch, FUNC(generic_latch_8_device::write)); /* Triggers a FIRQ on the sound CPU */
map(0xff8000, 0xffffff).ram(); /* Work RAM */
}
@@ -163,7 +163,7 @@ void gaelco_state::squash_map(address_map &map)
map(0x700002, 0x700003).portr("DSW1");
map(0x700004, 0x700005).portr("P1");
map(0x700006, 0x700007).portr("P2");
- map(0x70000b, 0x70000b).select(0x000070).lw8("outlatch_w", [this](offs_t offset, u8 data) { m_outlatch->write_d0(offset >> 4, data); });
+ map(0x70000b, 0x70000b).select(0x000070).lw8(NAME([this] (offs_t offset, u8 data) { m_outlatch->write_d0(offset >> 4, data); }));
map(0x70000d, 0x70000d).w(FUNC(gaelco_state::oki_bankswitch_w));
map(0x70000f, 0x70000f).rw("oki", FUNC(okim6295_device::read), FUNC(okim6295_device::write)); /* OKI6295 status register */
map(0xff0000, 0xffffff).ram(); /* Work RAM */
@@ -182,7 +182,7 @@ void gaelco_state::thoop_map(address_map &map)
map(0x700002, 0x700003).portr("DSW1");
map(0x700004, 0x700005).portr("P1");
map(0x700006, 0x700007).portr("P2");
- map(0x70000b, 0x70000b).select(0x000070).lw8("outlatch_w", [this](offs_t offset, u8 data) { m_outlatch->write_d0(offset >> 4, data); });
+ map(0x70000b, 0x70000b).select(0x000070).lw8(NAME([this] (offs_t offset, u8 data) { m_outlatch->write_d0(offset >> 4, data); }));
map(0x70000d, 0x70000d).w(FUNC(gaelco_state::oki_bankswitch_w));
map(0x70000f, 0x70000f).rw("oki", FUNC(okim6295_device::read), FUNC(okim6295_device::write)); /* OKI6295 status register */
map(0xff0000, 0xffffff).ram(); /* Work RAM */
diff --git a/src/mame/drivers/gaelco3d.cpp b/src/mame/drivers/gaelco3d.cpp
index 7a4f364bdf2..cb84e65c477 100644
--- a/src/mame/drivers/gaelco3d.cpp
+++ b/src/mame/drivers/gaelco3d.cpp
@@ -669,9 +669,9 @@ void gaelco3d_state::main_map(address_map &map)
map(0x510042, 0x510043).r(FUNC(gaelco3d_state::sound_status_r));
map(0x510100, 0x510101).rw(FUNC(gaelco3d_state::eeprom_data_r), FUNC(gaelco3d_state::irq_ack_w));
map(0x510103, 0x510103).r(m_serial, FUNC(gaelco_serial_device::data_r));
- map(0x510103, 0x510103).select(0x000038).lw8("mainlatch_w", [this](offs_t offset, u8 data) { m_mainlatch->write_d0(offset >> 3, data); });
+ map(0x510103, 0x510103).select(0x000038).lw8(NAME([this] (offs_t offset, u8 data) { m_mainlatch->write_d0(offset >> 3, data); }));
map(0x510105, 0x510105).w(m_serial, FUNC(gaelco_serial_device::data_w));
- map(0x510107, 0x510107).select(0x000070).lw8("outlatch_w", [this](offs_t offset, u8 data) { m_outlatch->write_d0(offset >> 4, data); });
+ map(0x510107, 0x510107).select(0x000070).lw8(NAME([this] (offs_t offset, u8 data) { m_outlatch->write_d0(offset >> 4, data); }));
map(0xfe0000, 0xfeffff).ram().share("m68k_ram_base");
}
@@ -688,9 +688,9 @@ void gaelco3d_state::main020_map(address_map &map)
map(0x510042, 0x510043).r(FUNC(gaelco3d_state::sound_status_r));
map(0x510100, 0x510101).rw(FUNC(gaelco3d_state::eeprom_data_r), FUNC(gaelco3d_state::irq_ack_w));
map(0x510103, 0x510103).r(m_serial, FUNC(gaelco_serial_device::data_r));
- map(0x510103, 0x510103).select(0x000038).lw8("mainlatch_w", [this](offs_t offset, u8 data) { m_mainlatch->write_d0(offset >> 3, data); });
+ map(0x510103, 0x510103).select(0x000038).lw8(NAME([this] (offs_t offset, u8 data) { m_mainlatch->write_d0(offset >> 3, data); }));
map(0x510105, 0x510105).w(m_serial, FUNC(gaelco_serial_device::data_w));
- map(0x510107, 0x510107).select(0x000070).lw8("outlatch_w", [this](offs_t offset, u8 data) { m_outlatch->write_d0(offset >> 4, data); });
+ map(0x510107, 0x510107).select(0x000070).lw8(NAME([this] (offs_t offset, u8 data) { m_outlatch->write_d0(offset >> 4, data); }));
map(0xfe0000, 0xfeffff).ram().share("m68k_ram_base");
}
diff --git a/src/mame/drivers/galaga.cpp b/src/mame/drivers/galaga.cpp
index 649b386f8d1..e32aa6b07fc 100644
--- a/src/mame/drivers/galaga.cpp
+++ b/src/mame/drivers/galaga.cpp
@@ -3462,8 +3462,8 @@ void xevious_state::init_xevios()
void battles_state::driver_init()
{
/* replace the Namco I/O handlers with interface to the 4th CPU */
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x7000, 0x700f, read8_delegate(FUNC(battles_state::customio_data0_r),this), write8_delegate(FUNC(battles_state::customio_data0_w),this) );
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x7100, 0x7100, read8_delegate(FUNC(battles_state::customio0_r),this), write8_delegate(FUNC(battles_state::customio0_w),this) );
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x7000, 0x700f, read8_delegate(*this, FUNC(battles_state::customio_data0_r)), write8_delegate(*this, FUNC(battles_state::customio_data0_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x7100, 0x7100, read8_delegate(*this, FUNC(battles_state::customio0_r)), write8_delegate(*this, FUNC(battles_state::customio0_w)));
init_xevious();
}
diff --git a/src/mame/drivers/galaxi.cpp b/src/mame/drivers/galaxi.cpp
index e0a6cbfe08d..1bb2be6ed22 100644
--- a/src/mame/drivers/galaxi.cpp
+++ b/src/mame/drivers/galaxi.cpp
@@ -198,12 +198,12 @@ WRITE16_MEMBER(galaxi_state::fg_w)
void galaxi_state::video_start()
{
- m_bg1_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(galaxi_state::get_bg1_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 0x20, 0x10);
- m_bg2_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(galaxi_state::get_bg2_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 0x20, 0x10);
- m_bg3_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(galaxi_state::get_bg3_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 0x20, 0x10);
- m_bg4_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(galaxi_state::get_bg4_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 0x20, 0x10);
+ m_bg1_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(galaxi_state::get_bg1_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 0x20, 0x10);
+ m_bg2_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(galaxi_state::get_bg2_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 0x20, 0x10);
+ m_bg3_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(galaxi_state::get_bg3_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 0x20, 0x10);
+ m_bg4_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(galaxi_state::get_bg4_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 0x20, 0x10);
- m_fg_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(galaxi_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 0x40, 0x20);
+ m_fg_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(galaxi_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 0x40, 0x20);
m_bg1_tmap->set_transparent_pen(0);
m_bg2_tmap->set_transparent_pen(0);
diff --git a/src/mame/drivers/galaxian.cpp b/src/mame/drivers/galaxian.cpp
index d4731c61128..570f6e27f57 100644
--- a/src/mame/drivers/galaxian.cpp
+++ b/src/mame/drivers/galaxian.cpp
@@ -7096,7 +7096,7 @@ void galaxian_state::init_pisces()
common_init(&galaxian_state::galaxian_draw_bullet, &galaxian_state::galaxian_draw_background, &galaxian_state::pisces_extend_tile_info, &galaxian_state::pisces_extend_sprite_info);
/* coin lockout replaced by graphics bank */
- space.install_write_handler(0x6002, 0x6002, 0, 0x7f8, 0, write8_delegate(FUNC(galaxian_state::galaxian_gfxbank_w),this));
+ space.install_write_handler(0x6002, 0x6002, 0, 0x7f8, 0, write8_delegate(*this, FUNC(galaxian_state::galaxian_gfxbank_w)));
}
@@ -7108,7 +7108,7 @@ void galaxian_state::init_batman2()
common_init(&galaxian_state::galaxian_draw_bullet, &galaxian_state::galaxian_draw_background, &galaxian_state::batman2_extend_tile_info, &galaxian_state::upper_extend_sprite_info);
/* coin lockout replaced by graphics bank */
- space.install_write_handler(0x6002, 0x6002, 0, 0x7f8, 0, write8_delegate(FUNC(galaxian_state::galaxian_gfxbank_w),this));
+ space.install_write_handler(0x6002, 0x6002, 0, 0x7f8, 0, write8_delegate(*this, FUNC(galaxian_state::galaxian_gfxbank_w)));
}
@@ -7176,7 +7176,7 @@ void galaxian_state::init_mooncrgx()
common_init(&galaxian_state::galaxian_draw_bullet, &galaxian_state::galaxian_draw_background, &galaxian_state::mooncrst_extend_tile_info, &galaxian_state::mooncrst_extend_sprite_info);
/* LEDs and coin lockout replaced by graphics banking */
- space.install_write_handler(0x6000, 0x6002, 0, 0x7f8, 0, write8_delegate(FUNC(galaxian_state::galaxian_gfxbank_w),this));
+ space.install_write_handler(0x6000, 0x6002, 0, 0x7f8, 0, write8_delegate(*this, FUNC(galaxian_state::galaxian_gfxbank_w)));
}
@@ -7202,7 +7202,7 @@ void galaxian_state::init_pacmanbl()
init_galaxian();
/* ...but coin lockout disabled/disconnected */
- space.install_write_handler(0x6002, 0x6002, 0, 0x7f8, 0, write8_delegate(FUNC(galaxian_state::artic_gfxbank_w),this));
+ space.install_write_handler(0x6002, 0x6002, 0, 0x7f8, 0, write8_delegate(*this, FUNC(galaxian_state::artic_gfxbank_w)));
}
READ8_MEMBER(galaxian_state::tenspot_dsw_read)
@@ -7265,18 +7265,18 @@ void galaxian_state::init_tenspot()
//common_init(&galaxian_state::galaxian_draw_bullet, &galaxian_state::galaxian_draw_background, &galaxian_state::batman2_extend_tile_info, &galaxian_state::upper_extend_sprite_info);
/* coin lockout replaced by graphics bank */
- //space.install_write_handler(0x6002, 0x6002, 0, 0x7f8, 0, write8_delegate(FUNC(galaxian_state::galaxian_gfxbank_w),this));
+ //space.install_write_handler(0x6002, 0x6002, 0, 0x7f8, 0, write8_delegate(*this, FUNC(galaxian_state::galaxian_gfxbank_w)));
init_galaxian();
- space.install_write_handler(0x6002, 0x6002, 0, 0x7f8, 0, write8_delegate(FUNC(galaxian_state::artic_gfxbank_w),this));
+ space.install_write_handler(0x6002, 0x6002, 0, 0x7f8, 0, write8_delegate(*this, FUNC(galaxian_state::artic_gfxbank_w)));
m_tenspot_current_game = 0;
tenspot_set_game_bank(m_tenspot_current_game, 0);
- space.install_read_handler(0x7000, 0x7000, read8_delegate(FUNC(galaxian_state::tenspot_dsw_read),this));
+ space.install_read_handler(0x7000, 0x7000, read8_delegate(*this, FUNC(galaxian_state::tenspot_dsw_read)));
}
@@ -7328,10 +7328,10 @@ void galaxian_state::init_checkman()
/* move the interrupt enable from $b000 to $b001 */
space.unmap_write(0xb000, 0xb000, 0x7f8);
- space.install_write_handler(0xb001, 0xb001, 0, 0x7f8, 0, write8_delegate(FUNC(galaxian_state::irq_enable_w),this));
+ space.install_write_handler(0xb001, 0xb001, 0, 0x7f8, 0, write8_delegate(*this, FUNC(galaxian_state::irq_enable_w)));
/* attach the sound command handler */
- iospace.install_write_handler(0x00, 0x00, 0, 0xffff, 0, write8_delegate(FUNC(galaxian_state::checkman_sound_command_w),this));
+ iospace.install_write_handler(0x00, 0x00, 0, 0xffff, 0, write8_delegate(*this, FUNC(galaxian_state::checkman_sound_command_w)));
/* decrypt program code */
decode_checkman();
@@ -7346,10 +7346,10 @@ void galaxian_state::init_checkmaj()
common_init(&galaxian_state::galaxian_draw_bullet, &galaxian_state::galaxian_draw_background, nullptr, nullptr);
/* attach the sound command handler */
- space.install_write_handler(0x7800, 0x7800, 0, 0x7ff, 0, write8_delegate(FUNC(galaxian_state::checkman_sound_command_w),this));
+ space.install_write_handler(0x7800, 0x7800, 0, 0x7ff, 0, write8_delegate(*this, FUNC(galaxian_state::checkman_sound_command_w)));
/* for the title screen */
- space.install_read_handler(0x3800, 0x3800, read8_delegate(FUNC(galaxian_state::checkmaj_protection_r),this));
+ space.install_read_handler(0x3800, 0x3800, read8_delegate(*this, FUNC(galaxian_state::checkmaj_protection_r)));
}
@@ -7361,10 +7361,10 @@ void galaxian_state::init_dingo()
common_init(&galaxian_state::galaxian_draw_bullet, &galaxian_state::galaxian_draw_background, nullptr, nullptr);
/* attach the sound command handler */
- space.install_write_handler(0x7800, 0x7800, 0, 0x7ff, 0, write8_delegate(FUNC(galaxian_state::checkman_sound_command_w),this));
+ space.install_write_handler(0x7800, 0x7800, 0, 0x7ff, 0, write8_delegate(*this, FUNC(galaxian_state::checkman_sound_command_w)));
- space.install_read_handler(0x3000, 0x3000, read8_delegate(FUNC(galaxian_state::dingo_3000_r),this));
- space.install_read_handler(0x3035, 0x3035, read8_delegate(FUNC(galaxian_state::dingo_3035_r),this));
+ space.install_read_handler(0x3000, 0x3000, read8_delegate(*this, FUNC(galaxian_state::dingo_3000_r)));
+ space.install_read_handler(0x3035, 0x3035, read8_delegate(*this, FUNC(galaxian_state::dingo_3035_r)));
}
@@ -7378,12 +7378,12 @@ void galaxian_state::init_dingoe()
/* move the interrupt enable from $b000 to $b001 */
space.unmap_write(0xb000, 0xb000, 0x7f8);
- space.install_write_handler(0xb001, 0xb001, 0, 0x7f8, 0, write8_delegate(FUNC(galaxian_state::irq_enable_w),this));
+ space.install_write_handler(0xb001, 0xb001, 0, 0x7f8, 0, write8_delegate(*this, FUNC(galaxian_state::irq_enable_w)));
/* attach the sound command handler */
- iospace.install_write_handler(0x00, 0x00, 0, 0xffff, 0, write8_delegate(FUNC(galaxian_state::checkman_sound_command_w),this));
+ iospace.install_write_handler(0x00, 0x00, 0, 0xffff, 0, write8_delegate(*this, FUNC(galaxian_state::checkman_sound_command_w)));
- space.install_read_handler(0x3001, 0x3001, read8_delegate(FUNC(galaxian_state::dingoe_3001_r),this)); /* Protection check */
+ space.install_read_handler(0x3001, 0x3001, read8_delegate(*this, FUNC(galaxian_state::dingoe_3001_r))); // Protection check
/* decrypt program code */
decode_dingoe();
@@ -7533,10 +7533,10 @@ void galaxian_state::init_kingball()
/* disable the stars */
space.unmap_write(0xb004, 0xb004, 0x7f8);
- space.install_write_handler(0xb000, 0xb000, 0, 0x7f8, 0, write8_delegate(FUNC(galaxian_state::kingball_sound1_w),this));
- space.install_write_handler(0xb001, 0xb001, 0, 0x7f8, 0, write8_delegate(FUNC(galaxian_state::irq_enable_w),this));
- space.install_write_handler(0xb002, 0xb002, 0, 0x7f8, 0, write8_delegate(FUNC(galaxian_state::kingball_sound2_w),this));
- space.install_write_handler(0xb003, 0xb003, 0, 0x7f8, 0, write8_delegate(FUNC(galaxian_state::kingball_speech_dip_w),this));
+ space.install_write_handler(0xb000, 0xb000, 0, 0x7f8, 0, write8_delegate(*this, FUNC(galaxian_state::kingball_sound1_w)));
+ space.install_write_handler(0xb001, 0xb001, 0, 0x7f8, 0, write8_delegate(*this, FUNC(galaxian_state::irq_enable_w)));
+ space.install_write_handler(0xb002, 0xb002, 0, 0x7f8, 0, write8_delegate(*this, FUNC(galaxian_state::kingball_sound2_w)));
+ space.install_write_handler(0xb003, 0xb003, 0, 0x7f8, 0, write8_delegate(*this, FUNC(galaxian_state::kingball_speech_dip_w)));
save_item(NAME(m_kingball_speech_dip));
save_item(NAME(m_kingball_sound));
@@ -7581,7 +7581,7 @@ void galaxian_state::init_mandinga()
address_space &space = m_maincpu->space(AS_PROGRAM);
watchdog_timer_device *wdog = subdevice<watchdog_timer_device>("watchdog");
space.unmap_read(0x7000, 0x7000, 0x7ff);
- space.install_read_handler(0x6800, 0x6800, 0, 0x7ff, 0, read8mo_delegate(FUNC(watchdog_timer_device::reset_r), wdog));
+ space.install_read_handler(0x6800, 0x6800, 0, 0x7ff, 0, read8mo_delegate(*wdog, FUNC(watchdog_timer_device::reset_r)));
}
void galaxian_state::init_sfx()
@@ -7606,7 +7606,7 @@ void galaxian_state::init_atlantis()
/* watchdog is at $7800? (or is it just disabled?) */
watchdog_timer_device *wdog = subdevice<watchdog_timer_device>("watchdog");
space.unmap_read(0x7000, 0x77ff);
- space.install_read_handler(0x7800, 0x7800, 0, 0x7ff, 0, read8mo_delegate(FUNC(watchdog_timer_device::reset_r), wdog));
+ space.install_read_handler(0x7800, 0x7800, 0, 0x7ff, 0, read8mo_delegate(*wdog, FUNC(watchdog_timer_device::reset_r)));
}
diff --git a/src/mame/drivers/galaxy.cpp b/src/mame/drivers/galaxy.cpp
index aedf7042191..8d4b39b8500 100644
--- a/src/mame/drivers/galaxy.cpp
+++ b/src/mame/drivers/galaxy.cpp
@@ -197,7 +197,7 @@ void galaxy_state::galaxy(machine_config &config)
PALETTE(config, "palette", palette_device::MONOCHROME);
/* snapshot */
- SNAPSHOT(config, "snapshot", "gal").set_load_callback(FUNC(galaxy_state::snapshot_cb), this);
+ SNAPSHOT(config, "snapshot", "gal").set_load_callback(FUNC(galaxy_state::snapshot_cb));
SPEAKER(config, "mono").front_center();
@@ -236,7 +236,7 @@ void galaxy_state::galaxyp(machine_config &config)
/* snapshot */
- SNAPSHOT(config, "snapshot", "gal").set_load_callback(FUNC(galaxy_state::snapshot_cb), this);
+ SNAPSHOT(config, "snapshot", "gal").set_load_callback(FUNC(galaxy_state::snapshot_cb));
/* sound hardware */
SPEAKER(config, "mono").front_center();
diff --git a/src/mame/drivers/galivan.cpp b/src/mame/drivers/galivan.cpp
index a5223a52f74..0860d240162 100644
--- a/src/mame/drivers/galivan.cpp
+++ b/src/mame/drivers/galivan.cpp
@@ -1176,7 +1176,7 @@ WRITE8_MEMBER(galivan_state::youmab_86_w)
void galivan_state::init_youmab()
{
- m_maincpu->space(AS_IO).install_write_handler(0x82, 0x82, write8_delegate(FUNC(galivan_state::youmab_extra_bank_w),this)); // banks rom at 0x8000? writes 0xff and 0x00 before executing code there
+ m_maincpu->space(AS_IO).install_write_handler(0x82, 0x82, write8_delegate(*this, FUNC(galivan_state::youmab_extra_bank_w))); // banks rom at 0x8000? writes 0xff and 0x00 before executing code there
m_maincpu->space(AS_PROGRAM).install_read_bank(0x0000, 0x7fff, "bank3");
membank("bank3")->set_base(memregion("maincpu")->base());
@@ -1184,14 +1184,14 @@ void galivan_state::init_youmab()
membank("bank2")->configure_entries(0, 2, memregion("user2")->base(), 0x4000);
membank("bank2")->set_entry(0);
- m_maincpu->space(AS_IO).install_write_handler(0x81, 0x81, write8_delegate(FUNC(galivan_state::youmab_81_w),this)); // ?? often, alternating values
- m_maincpu->space(AS_IO).install_write_handler(0x84, 0x84, write8_delegate(FUNC(galivan_state::youmab_84_w),this)); // ?? often, sequence..
+ m_maincpu->space(AS_IO).install_write_handler(0x81, 0x81, write8_delegate(*this, FUNC(galivan_state::youmab_81_w))); // ?? often, alternating values
+ m_maincpu->space(AS_IO).install_write_handler(0x84, 0x84, write8_delegate(*this, FUNC(galivan_state::youmab_84_w))); // ?? often, sequence..
m_maincpu->space(AS_PROGRAM).nop_write(0xd800, 0xd81f); // scrolling isn't here..
- m_maincpu->space(AS_IO).install_read_handler(0x8a, 0x8a, read8_delegate(FUNC(galivan_state::youmab_8a_r),this)); // ???
+ m_maincpu->space(AS_IO).install_read_handler(0x8a, 0x8a, read8_delegate(*this, FUNC(galivan_state::youmab_8a_r))); // ???
- m_maincpu->space(AS_IO).install_write_handler(0x86, 0x86, write8_delegate(FUNC(galivan_state::youmab_86_w),this));
+ m_maincpu->space(AS_IO).install_write_handler(0x86, 0x86, write8_delegate(*this, FUNC(galivan_state::youmab_86_w)));
}
diff --git a/src/mame/drivers/gamecom.cpp b/src/mame/drivers/gamecom.cpp
index 9869991add1..db8c9d155f6 100644
--- a/src/mame/drivers/gamecom.cpp
+++ b/src/mame/drivers/gamecom.cpp
@@ -292,8 +292,8 @@ void gamecom_state::gamecom(machine_config &config)
vref.add_route(0, "dac1", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac1", -1.0, DAC_VREF_NEG_INPUT);
/* cartridge */
- GENERIC_CARTSLOT(config, "cartslot1", generic_linear_slot, "gamecom_cart", "bin,tgc").set_device_load(FUNC(gamecom_state::cart1_load), this);
- GENERIC_CARTSLOT(config, "cartslot2", generic_linear_slot, "gamecom_cart", "bin,tgc").set_device_load(FUNC(gamecom_state::cart2_load), this);
+ GENERIC_CARTSLOT(config, "cartslot1", generic_linear_slot, "gamecom_cart", "bin,tgc").set_device_load(FUNC(gamecom_state::cart1_load));
+ GENERIC_CARTSLOT(config, "cartslot2", generic_linear_slot, "gamecom_cart", "bin,tgc").set_device_load(FUNC(gamecom_state::cart2_load));
SOFTWARE_LIST(config, "cart_list").set_original("gamecom");
}
diff --git a/src/mame/drivers/gamecstl.cpp b/src/mame/drivers/gamecstl.cpp
index 947eaced689..325a78878b3 100644
--- a/src/mame/drivers/gamecstl.cpp
+++ b/src/mame/drivers/gamecstl.cpp
@@ -455,10 +455,8 @@ void gamecstl_state::gamecstl(machine_config &config)
pcat_common(config);
pci_bus_legacy_device &pcibus(PCI_BUS_LEGACY(config, "pcibus", 0, 0));
- pcibus.set_device_read (0, FUNC(gamecstl_state::intel82439tx_pci_r), this);
- pcibus.set_device_write(0, FUNC(gamecstl_state::intel82439tx_pci_w), this);
- pcibus.set_device_read (7, FUNC(gamecstl_state::intel82371ab_pci_r), this);
- pcibus.set_device_write(7, FUNC(gamecstl_state::intel82371ab_pci_w), this);
+ pcibus.set_device(0, FUNC(gamecstl_state::intel82439tx_pci_r), FUNC(gamecstl_state::intel82439tx_pci_w));
+ pcibus.set_device(7, FUNC(gamecstl_state::intel82371ab_pci_r), FUNC(gamecstl_state::intel82371ab_pci_w));
ide_controller_device &ide(IDE_CONTROLLER(config, "ide").options(ata_devices, "hdd", nullptr, true));
ide.irq_handler().set("pic8259_2", FUNC(pic8259_device::ir6_w));
diff --git a/src/mame/drivers/gameking.cpp b/src/mame/drivers/gameking.cpp
index 65b222801b2..b1c1c2a4e77 100644
--- a/src/mame/drivers/gameking.cpp
+++ b/src/mame/drivers/gameking.cpp
@@ -304,7 +304,7 @@ void gameking_state::gameking(machine_config &config)
PALETTE(config, m_palette, FUNC(gameking_state::gameking_palette), ARRAY_LENGTH(gameking_pens));
/* cartridge */
- GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "gameking_cart", "bin").set_device_load(FUNC(gameking_state::cart_load), this);
+ GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "gameking_cart", "bin").set_device_load(FUNC(gameking_state::cart_load));
}
void gameking_state::gameking1(machine_config &config)
diff --git a/src/mame/drivers/gba.cpp b/src/mame/drivers/gba.cpp
index eb8e71d2e7d..95e05f76493 100644
--- a/src/mame/drivers/gba.cpp
+++ b/src/mame/drivers/gba.cpp
@@ -1344,8 +1344,8 @@ void gba_state::machine_start()
membank("rom2")->set_base(cart_rom->base());
membank("rom3")->set_base(cart_rom->base());
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x80000c4, 0x80000cb, read32_delegate(FUNC(gba_cart_slot_device::read_gpio),(gba_cart_slot_device*)m_cart));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x80000c4, 0x80000cb, write32_delegate(FUNC(gba_cart_slot_device::write_gpio),(gba_cart_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x80000c4, 0x80000cb, read32_delegate(*m_cart, FUNC(gba_cart_slot_device::read_gpio)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x80000c4, 0x80000cb, write32_delegate(*m_cart, FUNC(gba_cart_slot_device::write_gpio)));
// add nvram to save state
m_cart->save_nvram();
@@ -1353,40 +1353,40 @@ void gba_state::machine_start()
// install the cart NVRAM handlers if necessary
if (m_cart->get_type() == GBA_SRAM || m_cart->get_type() == GBA_DRILLDOZ || m_cart->get_type() == GBA_WARIOTWS)
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xe000000, 0xe00ffff, read32_delegate(FUNC(gba_cart_slot_device::read_ram),(gba_cart_slot_device*)m_cart));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xe000000, 0xe00ffff, write32_delegate(FUNC(gba_cart_slot_device::write_ram),(gba_cart_slot_device*)m_cart));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xe010000, 0xe01ffff, read32_delegate(FUNC(gba_cart_slot_device::read_ram),(gba_cart_slot_device*)m_cart));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xe010000, 0xe01ffff, write32_delegate(FUNC(gba_cart_slot_device::write_ram),(gba_cart_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xe000000, 0xe00ffff, read32_delegate(*m_cart, FUNC(gba_cart_slot_device::read_ram)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xe000000, 0xe00ffff, write32_delegate(*m_cart, FUNC(gba_cart_slot_device::write_ram)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xe010000, 0xe01ffff, read32_delegate(*m_cart, FUNC(gba_cart_slot_device::read_ram)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xe010000, 0xe01ffff, write32_delegate(*m_cart, FUNC(gba_cart_slot_device::write_ram)));
}
if (m_cart->get_type() == GBA_EEPROM || m_cart->get_type() == GBA_EEPROM4 || m_cart->get_type() == GBA_EEPROM64 || m_cart->get_type() == GBA_BOKTAI)
{
// for games larger than 16MB the actual range is smaller but read_ram/write_ram handles that!
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xd000000, 0xdffffff, read32_delegate(FUNC(gba_cart_slot_device::read_ram),(gba_cart_slot_device*)m_cart));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xd000000, 0xdffffff, write32_delegate(FUNC(gba_cart_slot_device::write_ram),(gba_cart_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xd000000, 0xdffffff, read32_delegate(*m_cart, FUNC(gba_cart_slot_device::read_ram)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xd000000, 0xdffffff, write32_delegate(*m_cart, FUNC(gba_cart_slot_device::write_ram)));
}
if (m_cart->get_type() == GBA_YOSHIUG)
{
// EEPROM
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xd000000, 0xdffffff, read32_delegate(FUNC(gba_cart_slot_device::read_ram),(gba_cart_slot_device*)m_cart));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xd000000, 0xdffffff, write32_delegate(FUNC(gba_cart_slot_device::write_ram),(gba_cart_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xd000000, 0xdffffff, read32_delegate(*m_cart, FUNC(gba_cart_slot_device::read_ram)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xd000000, 0xdffffff, write32_delegate(*m_cart, FUNC(gba_cart_slot_device::write_ram)));
// Tilt Sensor
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xe008000, 0xe0085ff, read32_delegate(FUNC(gba_cart_slot_device::read_tilt),(gba_cart_slot_device*)m_cart));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xe008000, 0xe0085ff, write32_delegate(FUNC(gba_cart_slot_device::write_tilt),(gba_cart_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xe008000, 0xe0085ff, read32_delegate(*m_cart, FUNC(gba_cart_slot_device::read_tilt)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xe008000, 0xe0085ff, write32_delegate(*m_cart, FUNC(gba_cart_slot_device::write_tilt)));
}
// merge the two flash and mask accesses in read_ram?!?
if (m_cart->get_type() == GBA_FLASH || m_cart->get_type() == GBA_FLASH512 || m_cart->get_type() == GBA_FLASH_RTC)
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xe000000, 0xe00ffff, read32_delegate(FUNC(gba_cart_slot_device::read_ram),(gba_cart_slot_device*)m_cart));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xe000000, 0xe00ffff, write32_delegate(FUNC(gba_cart_slot_device::write_ram),(gba_cart_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xe000000, 0xe00ffff, read32_delegate(*m_cart, FUNC(gba_cart_slot_device::read_ram)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xe000000, 0xe00ffff, write32_delegate(*m_cart, FUNC(gba_cart_slot_device::write_ram)));
}
if (m_cart->get_type() == GBA_FLASH1M || m_cart->get_type() == GBA_FLASH1M_RTC)
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xe000000, 0xe01ffff, read32_delegate(FUNC(gba_cart_slot_device::read_ram),(gba_cart_slot_device*)m_cart));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xe000000, 0xe01ffff, write32_delegate(FUNC(gba_cart_slot_device::write_ram),(gba_cart_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xe000000, 0xe01ffff, read32_delegate(*m_cart, FUNC(gba_cart_slot_device::read_ram)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xe000000, 0xe01ffff, write32_delegate(*m_cart, FUNC(gba_cart_slot_device::write_ram)));
}
if (m_cart->get_type() == GBA_3DMATRIX)
{
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x08800000, 0x088001ff, write32_delegate(FUNC(gba_cart_slot_device::write_mapper),(gba_cart_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x08800000, 0x088001ff, write32_delegate(*m_cart, FUNC(gba_cart_slot_device::write_mapper)));
memory_region *cart_romhlp = memregion(region_tag.assign(m_cart->tag()).append(GBAHELP_ROM_REGION_TAG).c_str());
membank("rom1")->set_base(cart_romhlp->base());
}
diff --git a/src/mame/drivers/gcpinbal.cpp b/src/mame/drivers/gcpinbal.cpp
index 5fd6fb4c820..135cf88262e 100644
--- a/src/mame/drivers/gcpinbal.cpp
+++ b/src/mame/drivers/gcpinbal.cpp
@@ -376,7 +376,7 @@ void gcpinbal_state::gcpinbal(machine_config &config)
EXCELLENT_SPRITE(config, m_sprgen, 0);
m_sprgen->set_palette(m_palette);
m_sprgen->set_color_base(0x600);
- m_sprgen->set_colpri_callback(FUNC(gcpinbal_state::gcpinbal_colpri_cb), this);
+ m_sprgen->set_colpri_callback(FUNC(gcpinbal_state::gcpinbal_colpri_cb));
/* sound hardware */
SPEAKER(config, "mono").front_center();
diff --git a/src/mame/drivers/geniusiq.cpp b/src/mame/drivers/geniusiq.cpp
index 75cd6a9638b..cf226d5a1fb 100644
--- a/src/mame/drivers/geniusiq.cpp
+++ b/src/mame/drivers/geniusiq.cpp
@@ -721,8 +721,8 @@ void geniusiq_state::iq128(machine_config &config)
/* cartridge */
generic_cartslot_device &cartslot(GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "iq128_cart"));
- cartslot.set_device_load(FUNC(geniusiq_state::cart_load), this);
- cartslot.set_device_unload(FUNC(geniusiq_state::cart_unload), this);
+ cartslot.set_device_load(FUNC(geniusiq_state::cart_load));
+ cartslot.set_device_unload(FUNC(geniusiq_state::cart_unload));
/* Software lists */
SOFTWARE_LIST(config, "cart_list").set_original("iq128");
diff --git a/src/mame/drivers/ghosteo.cpp b/src/mame/drivers/ghosteo.cpp
index 6f9e166c67a..97485bbdee4 100644
--- a/src/mame/drivers/ghosteo.cpp
+++ b/src/mame/drivers/ghosteo.cpp
@@ -600,7 +600,7 @@ void ghosteo_state::machine_start()
void ghosteo_state::machine_reset()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x4d000010, 0x4d000013,read32_delegate(FUNC(ghosteo_state::bballoon_speedup_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x4d000010, 0x4d000013,read32_delegate(*this, FUNC(ghosteo_state::bballoon_speedup_r)));
}
void ghosteo_state::ghosteo(machine_config &config)
diff --git a/src/mame/drivers/giclassic.cpp b/src/mame/drivers/giclassic.cpp
index 8bc3c9928d9..4b2d80feafe 100644
--- a/src/mame/drivers/giclassic.cpp
+++ b/src/mame/drivers/giclassic.cpp
@@ -315,7 +315,7 @@ void giclassic_state::giclassic(machine_config &config)
m_palette->enable_shadows();
K056832(config, m_k056832, 0);
- m_k056832->set_tile_callback(FUNC(giclassic_state::tile_callback), this);
+ m_k056832->set_tile_callback(FUNC(giclassic_state::tile_callback));
m_k056832->set_config(K056832_BPP_4PIRATESH, 1, 0);
m_k056832->set_palette(m_palette);
}
@@ -339,12 +339,12 @@ void giclassicsvr_state::giclassvr(machine_config &config)
m_palette->enable_shadows();
K056832(config, m_k056832, 0);
- m_k056832->set_tile_callback(FUNC(giclassicsvr_state::tile_callback), this);
+ m_k056832->set_tile_callback(FUNC(giclassicsvr_state::tile_callback));
m_k056832->set_config(K056832_BPP_4PIRATESH, 0, 0);
m_k056832->set_palette(m_palette);
K055673(config, m_k055673, 0);
- m_k055673->set_sprite_callback(FUNC(giclassicsvr_state::sprite_callback), this);
+ m_k055673->set_sprite_callback(FUNC(giclassicsvr_state::sprite_callback));
m_k055673->set_config(K055673_LAYOUT_PS, -60, 24);
m_k055673->set_palette(m_palette);
diff --git a/src/mame/drivers/gijoe.cpp b/src/mame/drivers/gijoe.cpp
index 0248a66ece8..b2359cbdc59 100644
--- a/src/mame/drivers/gijoe.cpp
+++ b/src/mame/drivers/gijoe.cpp
@@ -316,12 +316,12 @@ void gijoe_state::gijoe(machine_config &config)
PALETTE(config, "palette").set_format(palette_device::xBGR_555, 2048).enable_shadows();
K056832(config, m_k056832, 0);
- m_k056832->set_tile_callback(FUNC(gijoe_state::tile_callback), this);
+ m_k056832->set_tile_callback(FUNC(gijoe_state::tile_callback));
m_k056832->set_config(K056832_BPP_4, 1, 0);
m_k056832->set_palette(m_palette);
K053246(config, m_k053246, 0);
- m_k053246->set_sprite_callback(FUNC(gijoe_state::sprite_callback), this);
+ m_k053246->set_sprite_callback(FUNC(gijoe_state::sprite_callback));
m_k053246->set_config(NORMAL_PLANE_ORDER, -37, 20);
m_k053246->set_palette(m_palette);
diff --git a/src/mame/drivers/gluck2.cpp b/src/mame/drivers/gluck2.cpp
index 5a71b4e55c5..24e49608c8c 100644
--- a/src/mame/drivers/gluck2.cpp
+++ b/src/mame/drivers/gluck2.cpp
@@ -276,7 +276,7 @@ TILE_GET_INFO_MEMBER(gluck2_state::get_tile_info)
void gluck2_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gluck2_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gluck2_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
diff --git a/src/mame/drivers/gmaster.cpp b/src/mame/drivers/gmaster.cpp
index 8de7f7992e8..50d263337ce 100644
--- a/src/mame/drivers/gmaster.cpp
+++ b/src/mame/drivers/gmaster.cpp
@@ -313,7 +313,7 @@ uint32_t gmaster_state::screen_update_gmaster(screen_device &screen, bitmap_ind1
void gmaster_state::machine_start()
{
if (m_cart->exists())
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x8000, 0xfeff, read8sm_delegate(FUNC(generic_slot_device::read_rom),(generic_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x8000, 0xfeff, read8sm_delegate(*m_cart, FUNC(generic_slot_device::read_rom)));
save_item(NAME(m_video.data));
save_item(NAME(m_video.index));
diff --git a/src/mame/drivers/goldngam.cpp b/src/mame/drivers/goldngam.cpp
index 8751597ffd0..e2eadc326b9 100644
--- a/src/mame/drivers/goldngam.cpp
+++ b/src/mame/drivers/goldngam.cpp
@@ -388,8 +388,8 @@ void goldngam_state::swisspkr_map(address_map &map)
void goldngam_state::cpu_space_map(address_map &map)
{
map(0xfffff0, 0xffffff).m(m_maincpu, FUNC(m68000_base_device::autovectors_map));
- map(0xfffff4, 0xfffff5).lr16("duart0 int", [this]() -> u16 { return m_duart[0]->get_irq_vector(); });
- map(0xfffff8, 0xfffff9).lr16("duart0 int", [this]() -> u16 { return m_duart[1]->get_irq_vector(); });
+ map(0xfffff4, 0xfffff5).lr16(NAME([this] () -> u16 { return m_duart[0]->get_irq_vector(); }));
+ map(0xfffff8, 0xfffff9).lr16(NAME([this] () -> u16 { return m_duart[1]->get_irq_vector(); }));
}
void goldngam_state::moviecrd_map(address_map &map)
diff --git a/src/mame/drivers/goldnpkr.cpp b/src/mame/drivers/goldnpkr.cpp
index 45008ba5ff6..3352d7a5067 100644
--- a/src/mame/drivers/goldnpkr.cpp
+++ b/src/mame/drivers/goldnpkr.cpp
@@ -1551,17 +1551,17 @@ TILE_GET_INFO_MEMBER(goldnpkr_state::super21p_get_bg_tile_info)
void goldnpkr_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(goldnpkr_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(goldnpkr_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
VIDEO_START_MEMBER(goldnpkr_state, wcrdxtnd)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(goldnpkr_state::wcrdxtnd_get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(goldnpkr_state::wcrdxtnd_get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
VIDEO_START_MEMBER(goldnpkr_state, super21p)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(goldnpkr_state::super21p_get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(goldnpkr_state::super21p_get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
uint32_t goldnpkr_state::screen_update_goldnpkr(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
diff --git a/src/mame/drivers/goldstar.cpp b/src/mame/drivers/goldstar.cpp
index 615feca1e5f..e32c5826484 100644
--- a/src/mame/drivers/goldstar.cpp
+++ b/src/mame/drivers/goldstar.cpp
@@ -14435,7 +14435,7 @@ void cmaster_state::init_fb2010()
ROM[0x10dc] = 0x00;
ROM[0x10dd] = 0x00;
- m_maincpu->space(AS_IO).install_read_handler(0x1e, 0x1e, read8_delegate(FUNC(cmaster_state::fixedval7d_r),this));
+ m_maincpu->space(AS_IO).install_read_handler(0x1e, 0x1e, read8_delegate(*this, FUNC(cmaster_state::fixedval_r<0x7d>)));
}
@@ -17278,8 +17278,8 @@ void cmaster_state::init_schery97()
rom[i] = x;
}
- m_maincpu->space(AS_IO).install_read_handler(0x1d, 0x1d, read8_delegate(FUNC(cmaster_state::fixedvala8_r), this));
- m_maincpu->space(AS_IO).install_read_handler(0x2a, 0x2a, read8_delegate(FUNC(cmaster_state::fixedvalb4_r), this));
+ m_maincpu->space(AS_IO).install_read_handler(0x1d, 0x1d, read8_delegate(*this, FUNC(cmaster_state::fixedval_r<0xa8>)));
+ m_maincpu->space(AS_IO).install_read_handler(0x2a, 0x2a, read8_delegate(*this, FUNC(cmaster_state::fixedval_r<0xb4>)));
/* Oki 6295 at 0x20 */
}
@@ -17301,7 +17301,7 @@ void cmaster_state::init_schery97a()
}
- m_maincpu->space(AS_IO).install_read_handler(0x16, 0x16, read8_delegate(FUNC(cmaster_state::fixedval38_r), this));
+ m_maincpu->space(AS_IO).install_read_handler(0x16, 0x16, read8_delegate(*this, FUNC(cmaster_state::fixedval_r<0x38>)));
/* Oki 6295 at 0x20 */
}
@@ -17321,7 +17321,7 @@ void cmaster_state::init_skill98()
rom[i] = x;
}
- m_maincpu->space(AS_IO).install_read_handler(0x1e, 0x1e, read8_delegate(FUNC(cmaster_state::fixedvalea_r), this));
+ m_maincpu->space(AS_IO).install_read_handler(0x1e, 0x1e, read8_delegate(*this, FUNC(cmaster_state::fixedval_r<0xea>)));
/* Oki 6295 at 0x20 */
}
@@ -17341,7 +17341,7 @@ void cmaster_state::init_nfb96_c1()
}
rom[i] = x;
}
- m_maincpu->space(AS_IO).install_read_handler(0x31, 0x31, read8_delegate(FUNC(cmaster_state::fixedval68_r), this));
+ m_maincpu->space(AS_IO).install_read_handler(0x31, 0x31, read8_delegate(*this, FUNC(cmaster_state::fixedval_r<0x68>)));
}
@@ -17362,7 +17362,7 @@ void cmaster_state::init_nfb96_c2()
rom[i] = x;
}
- m_maincpu->space(AS_IO).install_read_handler(0x21, 0x21, read8_delegate(FUNC(cmaster_state::fixedval58_r), this));
+ m_maincpu->space(AS_IO).install_read_handler(0x21, 0x21, read8_delegate(*this, FUNC(cmaster_state::fixedval_r<0x58>)));
}
void cmaster_state::init_nfb96_d()
@@ -17382,11 +17382,11 @@ void cmaster_state::init_nfb96_d()
rom[i] = x;
}
// nfb96b needs both of these
- m_maincpu->space(AS_IO).install_read_handler(0x23, 0x23, read8_delegate(FUNC(cmaster_state::fixedval80_r), this));
- m_maincpu->space(AS_IO).install_read_handler(0x5a, 0x5a, read8_delegate(FUNC(cmaster_state::fixedvalaa_r), this));
+ m_maincpu->space(AS_IO).install_read_handler(0x23, 0x23, read8_delegate(*this, FUNC(cmaster_state::fixedval_r<0x80>)));
+ m_maincpu->space(AS_IO).install_read_handler(0x5a, 0x5a, read8_delegate(*this, FUNC(cmaster_state::fixedval_r<0xaa>)));
// csel96b
- m_maincpu->space(AS_IO).install_read_handler(0x6e, 0x6e, read8_delegate(FUNC(cmaster_state::fixedval96_r), this));
+ m_maincpu->space(AS_IO).install_read_handler(0x6e, 0x6e, read8_delegate(*this, FUNC(cmaster_state::fixedval_r<0x96>)));
}
@@ -17407,7 +17407,7 @@ void cmaster_state::init_nfb96_dk()
}
rom[i] = x;
}
- m_maincpu->space(AS_IO).install_read_handler(0x2e, 0x2e, read8_delegate(FUNC(cmaster_state::fixedvalbe_r), this));
+ m_maincpu->space(AS_IO).install_read_handler(0x2e, 0x2e, read8_delegate(*this, FUNC(cmaster_state::fixedval_r<0xbe>)));
}
@@ -17428,8 +17428,8 @@ void cmaster_state::init_rp35()
rom[i] = x;
}
- m_maincpu->space(AS_IO).install_read_handler(0x5e, 0x5e, read8_delegate(FUNC(cmaster_state::fixedval84_r), this));
- m_maincpu->space(AS_IO).install_read_handler(0x36, 0x36, read8_delegate(FUNC(cmaster_state::fixedval90_r), this));
+ m_maincpu->space(AS_IO).install_read_handler(0x5e, 0x5e, read8_delegate(*this, FUNC(cmaster_state::fixedval_r<0x84>)));
+ m_maincpu->space(AS_IO).install_read_handler(0x36, 0x36, read8_delegate(*this, FUNC(cmaster_state::fixedval_r<0x90>)));
}
void cmaster_state::init_rp36()
@@ -17450,7 +17450,7 @@ void cmaster_state::init_rp36()
rom[i] = x;
}
- m_maincpu->space(AS_IO).install_read_handler(0x34, 0x34, read8_delegate(FUNC(cmaster_state::fixedvalb2_r), this));
+ m_maincpu->space(AS_IO).install_read_handler(0x34, 0x34, read8_delegate(*this, FUNC(cmaster_state::fixedval_r<0xb2>)));
}
void cmaster_state::init_rp36c3()
@@ -17471,7 +17471,7 @@ void cmaster_state::init_rp36c3()
rom[i] = x;
}
- m_maincpu->space(AS_IO).install_read_handler(0x17, 0x17, read8_delegate(FUNC(cmaster_state::fixedval48_r), this));
+ m_maincpu->space(AS_IO).install_read_handler(0x17, 0x17, read8_delegate(*this, FUNC(cmaster_state::fixedval_r<0x48>)));
}
void cmaster_state::init_rp96sub() // 95 33 95 33 70 6C 70 6C... XORs and bitswaps seem ok. Stuck at Program Check screen. Unlike the other sets, there aren't unmapped reads where to put the handler.
@@ -17492,7 +17492,7 @@ void cmaster_state::init_rp96sub() // 95 33 95 33 70 6C 70 6C... XORs and bitsw
rom[i] = x;
}
-// m_maincpu->space(AS_IO).install_read_handler(0x34, 0x34, read8_delegate(FUNC(cmaster_state::fixedvalb2_r),this));
+// m_maincpu->space(AS_IO).install_read_handler(0x34, 0x34, read8_delegate(*this, FUNC(cmaster_state::fixedval_r<0xb2>)));
}
@@ -17513,8 +17513,8 @@ void cmaster_state::init_po33()
rom[i] = x;
}
- m_maincpu->space(AS_IO).install_read_handler(0x32, 0x32, read8_delegate(FUNC(cmaster_state::fixedval74_r), this));
- m_maincpu->space(AS_IO).install_read_handler(0x12, 0x12, read8_delegate(FUNC(cmaster_state::fixedval09_r), this));
+ m_maincpu->space(AS_IO).install_read_handler(0x32, 0x32, read8_delegate(*this, FUNC(cmaster_state::fixedval_r<0x74>)));
+ m_maincpu->space(AS_IO).install_read_handler(0x12, 0x12, read8_delegate(*this, FUNC(cmaster_state::fixedval_r<0x09>)));
/* oki6295 at 0x20 */
}
@@ -17537,8 +17537,8 @@ void cmaster_state::init_match133()
rom[i] = x;
}
- m_maincpu->space(AS_IO).install_read_handler(0x16, 0x16, read8_delegate(FUNC(cmaster_state::fixedvalc7_r), this));
- m_maincpu->space(AS_IO).install_read_handler(0x1a, 0x1a, read8_delegate(FUNC(cmaster_state::fixedvale4_r), this));
+ m_maincpu->space(AS_IO).install_read_handler(0x16, 0x16, read8_delegate(*this, FUNC(cmaster_state::fixedval_r<0xc7>)));
+ m_maincpu->space(AS_IO).install_read_handler(0x1a, 0x1a, read8_delegate(*this, FUNC(cmaster_state::fixedval_r<0xe4>)));
}
diff --git a/src/mame/drivers/good.cpp b/src/mame/drivers/good.cpp
index 6facf45265c..c0be11a803e 100644
--- a/src/mame/drivers/good.cpp
+++ b/src/mame/drivers/good.cpp
@@ -107,8 +107,8 @@ TILE_GET_INFO_MEMBER(good_state::get_bg_tile_info)
void good_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(good_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(good_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(good_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(good_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
m_fg_tilemap->set_transparent_pen(0xf);
}
diff --git a/src/mame/drivers/goodejan.cpp b/src/mame/drivers/goodejan.cpp
index 2c492468c14..2518d3465ad 100644
--- a/src/mame/drivers/goodejan.cpp
+++ b/src/mame/drivers/goodejan.cpp
@@ -366,10 +366,10 @@ void goodejan_state::draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect
void goodejan_state::video_start()
{
- m_sc0_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(goodejan_state::seibucrtc_sc0_tile_info),this),TILEMAP_SCAN_ROWS,16,16,32,32);
- m_sc2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(goodejan_state::seibucrtc_sc2_tile_info),this),TILEMAP_SCAN_ROWS,16,16,32,32);
- m_sc1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(goodejan_state::seibucrtc_sc1_tile_info),this),TILEMAP_SCAN_ROWS,16,16,32,32);
- m_sc3_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(goodejan_state::seibucrtc_sc3_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32);
+ m_sc0_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(goodejan_state::seibucrtc_sc0_tile_info)), TILEMAP_SCAN_ROWS, 16,16,32,32);
+ m_sc2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(goodejan_state::seibucrtc_sc2_tile_info)), TILEMAP_SCAN_ROWS, 16,16,32,32);
+ m_sc1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(goodejan_state::seibucrtc_sc1_tile_info)), TILEMAP_SCAN_ROWS, 16,16,32,32);
+ m_sc3_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(goodejan_state::seibucrtc_sc3_tile_info)), TILEMAP_SCAN_ROWS, 8,8,32,32);
m_sc2_tilemap->set_transparent_pen(15);
m_sc1_tilemap->set_transparent_pen(15);
@@ -477,13 +477,13 @@ void goodejan_state::totmejan_io_map(address_map &map)
void goodejan_state::goodejan_io_map(address_map &map)
{
common_io_map(map);
- map(0x8000, 0x807f).lrw16("crtc_rw",
- [this](address_space &space, offs_t offset, u16 mem_mask) {
+ map(0x8000, 0x807f).lrw16(
+ NAME([this](address_space &space, offs_t offset, u16 mem_mask) {
return m_crtc->read(space, offset ^ 0x20, mem_mask);
- },
- [this](address_space &space, offs_t offset, u16 data, u16 mem_mask) {
+ }),
+ NAME([this](address_space &space, offs_t offset, u16 data, u16 mem_mask) {
m_crtc->write(space, offset ^ 0x20, data, mem_mask);
- });
+ }));
}
static INPUT_PORTS_START( goodejan )
diff --git a/src/mame/drivers/gottlieb.cpp b/src/mame/drivers/gottlieb.cpp
index 36e019f721c..2270b468c7b 100644
--- a/src/mame/drivers/gottlieb.cpp
+++ b/src/mame/drivers/gottlieb.cpp
@@ -233,9 +233,9 @@ void gottlieb_state::machine_start()
if (m_laserdisc != nullptr)
{
/* attach to the I/O ports */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x05805, 0x05807, 0, 0x07f8, 0, read8_delegate(FUNC(gottlieb_state::laserdisc_status_r),this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x05805, 0x05805, 0, 0x07f8, 0, write8_delegate(FUNC(gottlieb_state::laserdisc_command_w),this)); /* command for the player */
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x05806, 0x05806, 0, 0x07f8, 0, write8_delegate(FUNC(gottlieb_state::laserdisc_select_w),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x05805, 0x05807, 0, 0x07f8, 0, read8_delegate(*this, FUNC(gottlieb_state::laserdisc_status_r)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x05805, 0x05805, 0, 0x07f8, 0, write8_delegate(*this, FUNC(gottlieb_state::laserdisc_command_w))); /* command for the player */
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x05806, 0x05806, 0, 0x07f8, 0, write8_delegate(*this, FUNC(gottlieb_state::laserdisc_select_w)));
/* allocate a timer for serial transmission, and one for philips code processing */
m_laserdisc_bit_timer = timer_alloc(TIMER_LASERDISC_BIT);
@@ -1797,7 +1797,7 @@ void gottlieb_state::g2laser(machine_config &config)
GOTTLIEB_SOUND_REV2(config, m_r2_sound, 0).add_route(ALL_OUTPUTS, "speaker", 1.0);
PIONEER_PR8210(config, m_laserdisc, 0);
- m_laserdisc->set_audio(FUNC(gottlieb_state::laserdisc_audio_process), this);
+ m_laserdisc->set_audio(FUNC(gottlieb_state::laserdisc_audio_process));
m_laserdisc->set_overlay(GOTTLIEB_VIDEO_HCOUNT, GOTTLIEB_VIDEO_VCOUNT, FUNC(gottlieb_state::screen_update));
m_laserdisc->set_overlay_clip(0, GOTTLIEB_VIDEO_HBLANK-1, 0, GOTTLIEB_VIDEO_VBLANK-8);
m_laserdisc->add_route(0, "speaker", 1.0);
@@ -1862,7 +1862,7 @@ void gottlieb_state::cobram3(machine_config &config)
m_r2_sound->enable_cobram3_mods();
PIONEER_PR8210(config, m_laserdisc, 0);
- m_laserdisc->set_audio(FUNC(gottlieb_state::laserdisc_audio_process), this);
+ m_laserdisc->set_audio(FUNC(gottlieb_state::laserdisc_audio_process));
m_laserdisc->set_overlay(GOTTLIEB_VIDEO_HCOUNT, GOTTLIEB_VIDEO_VCOUNT, FUNC(gottlieb_state::screen_update));
m_laserdisc->set_overlay_clip(0, GOTTLIEB_VIDEO_HBLANK-1, 0, GOTTLIEB_VIDEO_VBLANK-8);
m_laserdisc->add_route(0, "speaker", 1.0);
@@ -2599,21 +2599,21 @@ void gottlieb_state::init_romtiles()
void gottlieb_state::init_qbert()
{
init_romtiles();
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x5803, 0x5803, 0, 0x07f8, 0, write8_delegate(FUNC(gottlieb_state::qbert_output_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x5803, 0x5803, 0, 0x07f8, 0, write8_delegate(*this, FUNC(gottlieb_state::qbert_output_w)));
}
void gottlieb_state::init_qbertqub()
{
init_romtiles();
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x5803, 0x5803, 0, 0x07f8, 0, write8_delegate(FUNC(gottlieb_state::qbertqub_output_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x5803, 0x5803, 0, 0x07f8, 0, write8_delegate(*this, FUNC(gottlieb_state::qbertqub_output_w)));
}
void gottlieb_state::init_stooges()
{
init_ramtiles();
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x5803, 0x5803, 0, 0x07f8, 0, write8_delegate(FUNC(gottlieb_state::stooges_output_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x5803, 0x5803, 0, 0x07f8, 0, write8_delegate(*this, FUNC(gottlieb_state::stooges_output_w)));
}
diff --git a/src/mame/drivers/goupil.cpp b/src/mame/drivers/goupil.cpp
index fdc0a5e924e..21564d60cd5 100644
--- a/src/mame/drivers/goupil.cpp
+++ b/src/mame/drivers/goupil.cpp
@@ -602,8 +602,8 @@ void goupil_g2_state::goupil_g2(machine_config &config)
mc6845_device &crtc(MC6845(config, "crtc", 14.318181_MHz_XTAL / 8));
crtc.set_show_border_area(false);
crtc.set_char_width(8);
- crtc.set_update_row_callback(FUNC(goupil_g2_state::crtc_update_row), this);
- crtc.set_on_update_addr_change_callback(FUNC(goupil_g2_state::crtc_update_addr_changed), this);
+ crtc.set_update_row_callback(FUNC(goupil_g2_state::crtc_update_row));
+ crtc.set_on_update_addr_change_callback(FUNC(goupil_g2_state::crtc_update_addr_changed));
m_via_video->writepa_handler().set_nop();
m_via_video->writepb_handler().set_nop();
diff --git a/src/mame/drivers/gradius3.cpp b/src/mame/drivers/gradius3.cpp
index d7eb5ece4de..e2d4a955b6f 100644
--- a/src/mame/drivers/gradius3.cpp
+++ b/src/mame/drivers/gradius3.cpp
@@ -290,13 +290,13 @@ void gradius3_state::gradius3(machine_config &config)
K052109(config, m_k052109, 0);
m_k052109->set_palette("palette");
m_k052109->set_screen(nullptr);
- m_k052109->set_tile_callback(FUNC(gradius3_state::tile_callback), this);
+ m_k052109->set_tile_callback(FUNC(gradius3_state::tile_callback));
m_k052109->set_char_ram(true);
K051960(config, m_k051960, 0);
m_k051960->set_palette("palette");
m_k051960->set_screen("screen");
- m_k051960->set_sprite_callback(FUNC(gradius3_state::sprite_callback), this);
+ m_k051960->set_sprite_callback(FUNC(gradius3_state::sprite_callback));
m_k051960->set_plane_order(K051960_PLANEORDER_GRADIUS3);
/* sound hardware */
diff --git a/src/mame/drivers/gridlee.cpp b/src/mame/drivers/gridlee.cpp
index d2f75fdb74a..2b9feaf3fb2 100644
--- a/src/mame/drivers/gridlee.cpp
+++ b/src/mame/drivers/gridlee.cpp
@@ -289,7 +289,7 @@ void gridlee_state::cpu1_map(address_map &map)
{
map(0x0000, 0x07ff).ram().share("spriteram");
map(0x0800, 0x7fff).ram().w(FUNC(gridlee_state::gridlee_videoram_w)).share("videoram");
- map(0x9000, 0x9000).select(0x0070).lw8("latch_w", [this](offs_t offset, u8 data) { m_latch->write_d0(offset >> 4, data); });
+ map(0x9000, 0x9000).select(0x0070).lw8(NAME([this] (offs_t offset, u8 data) { m_latch->write_d0(offset >> 4, data); }));
map(0x9200, 0x9200).w(FUNC(gridlee_state::gridlee_palette_select_w));
map(0x9380, 0x9380).w("watchdog", FUNC(watchdog_timer_device::reset_w));
map(0x9500, 0x9501).r(FUNC(gridlee_state::analog_port_r));
diff --git a/src/mame/drivers/groundfx.cpp b/src/mame/drivers/groundfx.cpp
index f6dc60eea9c..4623f2d03bc 100644
--- a/src/mame/drivers/groundfx.cpp
+++ b/src/mame/drivers/groundfx.cpp
@@ -328,7 +328,7 @@ READ32_MEMBER(groundfx_state::irq_speedup_r)
void groundfx_state::init_groundfx()
{
/* Speedup handlers */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x20b574, 0x20b577, read32_delegate(FUNC(groundfx_state::irq_speedup_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x20b574, 0x20b577, read32_delegate(*this, FUNC(groundfx_state::irq_speedup_r)));
}
diff --git a/src/mame/drivers/gstream.cpp b/src/mame/drivers/gstream.cpp
index 73fc65c96e7..59f07382859 100644
--- a/src/mame/drivers/gstream.cpp
+++ b/src/mame/drivers/gstream.cpp
@@ -1088,7 +1088,7 @@ READ32_MEMBER(gstream_state::x2222_speedup2_r)
void gstream_state::init_gstream()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xd1ee0, 0xd1ee3, read32_delegate(FUNC(gstream_state::gstream_speedup_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xd1ee0, 0xd1ee3, read32_delegate(*this, FUNC(gstream_state::gstream_speedup_r)));
m_xoffset = 2;
}
@@ -1116,8 +1116,8 @@ void gstream_state::rearrange_sprite_data(uint8_t* ROM, uint32_t* NEW, uint32_t*
void gstream_state::init_x2222()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x7ffac, 0x7ffaf, read32_delegate(FUNC(gstream_state::x2222_speedup_r), this)); // older
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x84e3c, 0x84e3f, read32_delegate(FUNC(gstream_state::x2222_speedup2_r), this)); // newer
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x7ffac, 0x7ffaf, read32_delegate(*this, FUNC(gstream_state::x2222_speedup_r))); // older
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x84e3c, 0x84e3f, read32_delegate(*this, FUNC(gstream_state::x2222_speedup2_r))); // newer
rearrange_sprite_data(memregion("sprites")->base(), (uint32_t*)memregion("gfx1")->base(), (uint32_t*)memregion("gfx1_lower")->base() );
rearrange_tile_data(memregion("bg1")->base(), (uint32_t*)memregion("gfx2")->base(), (uint32_t*)memregion("gfx2_lower")->base());
diff --git a/src/mame/drivers/gstriker.cpp b/src/mame/drivers/gstriker.cpp
index 5e4a5dc3849..996dc8b0406 100644
--- a/src/mame/drivers/gstriker.cpp
+++ b/src/mame/drivers/gstriker.cpp
@@ -853,8 +853,8 @@ the zooming.To use it,you should use Player 2 Start button to show the test scre
or to advance into the tests.
******************************************************************************************/
#define PC(_num_)\
-m_work_ram[0x000/2] = (_num_ & 0xffff0000) >> 16;\
-m_work_ram[0x002/2] = (_num_ & 0x0000ffff) >> 0;
+ m_work_ram[0x000/2] = (_num_ & 0xffff0000) >> 16;\
+ m_work_ram[0x002/2] = (_num_ & 0x0000ffff) >> 0;
WRITE8_MEMBER(gstriker_state::twcup94_prot_reg_w)
@@ -1103,8 +1103,8 @@ void gstriker_state::init_vgoalsoc()
m_gametype = VGOAL_SOCCER_MCU;
mcu_init();
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x200090, 0x200091, write16_delegate(FUNC(gstriker_state::vbl_toggle_w),this)); // vblank toggle
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x200090, 0x200091, read16_delegate(FUNC(gstriker_state::vbl_toggle_r),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x200090, 0x200091, write16_delegate(*this, FUNC(gstriker_state::vbl_toggle_w))); // vblank toggle
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x200090, 0x200091, read16_delegate(*this, FUNC(gstriker_state::vbl_toggle_r)));
}
/*** GAME DRIVERS ************************************************************/
diff --git a/src/mame/drivers/gsword.cpp b/src/mame/drivers/gsword.cpp
index f26dfcf0071..33a00ef862d 100644
--- a/src/mame/drivers/gsword.cpp
+++ b/src/mame/drivers/gsword.cpp
@@ -436,7 +436,7 @@ void gsword_state::init_gsword()
#endif
#if 1
/* hack for sound protection or time out function */
- m_subcpu->space(AS_PROGRAM).install_read_handler(0x4004, 0x4005, read8_delegate(FUNC(gsword_state::hack_r),this));
+ m_subcpu->space(AS_PROGRAM).install_read_handler(0x4004, 0x4005, read8_delegate(*this, FUNC(gsword_state::hack_r)));
#endif
}
@@ -451,7 +451,7 @@ void gsword_state::init_gsword2()
#endif
#if 1
/* hack for sound protection or time out function */
- m_subcpu->space(AS_PROGRAM).install_read_handler(0x4004, 0x4005, read8_delegate(FUNC(gsword_state::hack_r),this));
+ m_subcpu->space(AS_PROGRAM).install_read_handler(0x4004, 0x4005, read8_delegate(*this, FUNC(gsword_state::hack_r)));
#endif
}
diff --git a/src/mame/drivers/gts3a.cpp b/src/mame/drivers/gts3a.cpp
index 3b4a40f1709..18fc260f997 100644
--- a/src/mame/drivers/gts3a.cpp
+++ b/src/mame/drivers/gts3a.cpp
@@ -367,7 +367,7 @@ void gts3a_state::gts3a(machine_config &config)
crtc.set_screen("screen");
crtc.set_show_border_area(false);
crtc.set_char_width(8);
- crtc.set_update_row_callback(FUNC(gts3a_state::crtc_update_row), this);
+ crtc.set_update_row_callback(FUNC(gts3a_state::crtc_update_row));
/* Sound */
genpin_audio(config);
diff --git a/src/mame/drivers/gunbustr.cpp b/src/mame/drivers/gunbustr.cpp
index 4b425dda742..1f2c9ed4d83 100644
--- a/src/mame/drivers/gunbustr.cpp
+++ b/src/mame/drivers/gunbustr.cpp
@@ -373,7 +373,7 @@ READ32_MEMBER(gunbustr_state::main_cycle_r)
void gunbustr_state::init_gunbustr()
{
/* Speedup handler */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x203acc, 0x203acf, read32_delegate(FUNC(gunbustr_state::main_cycle_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x203acc, 0x203acf, read32_delegate(*this, FUNC(gunbustr_state::main_cycle_r)));
m_interrupt5_timer = timer_alloc(TIMER_GUNBUSTR_INTERRUPT5);
}
diff --git a/src/mame/drivers/h19.cpp b/src/mame/drivers/h19.cpp
index bd431361b89..4f6f6e3a36c 100644
--- a/src/mame/drivers/h19.cpp
+++ b/src/mame/drivers/h19.cpp
@@ -541,7 +541,7 @@ void h19_state::h19(machine_config &config)
m_crtc->set_screen("screen");
m_crtc->set_show_border_area(true);
m_crtc->set_char_width(8);
- m_crtc->set_update_row_callback(FUNC(h19_state::crtc_update_row), this);
+ m_crtc->set_update_row_callback(FUNC(h19_state::crtc_update_row));
m_crtc->out_vsync_callback().set_inputline(m_maincpu, INPUT_LINE_NMI); // frame pulse
ins8250_device &uart(INS8250(config, "ins8250", INS8250_CLOCK));
diff --git a/src/mame/drivers/h89.cpp b/src/mame/drivers/h89.cpp
index 43851788c4e..f82be5e850c 100644
--- a/src/mame/drivers/h89.cpp
+++ b/src/mame/drivers/h89.cpp
@@ -31,8 +31,8 @@ class h89_state : public driver_device
{
public:
h89_state(const machine_config &mconfig, device_type type, const char *tag)
- : driver_device(mconfig, type, tag),
- m_maincpu(*this, "maincpu")
+ : driver_device(mconfig, type, tag)
+ , m_maincpu(*this, "maincpu")
{
}
@@ -199,7 +199,7 @@ void h89_state::h89(machine_config & config)
rs232.rxd_handler().set("ins8250", FUNC(ins8250_uart_device::rx_w));
rs232.set_option_device_input_defaults("terminal", DEVICE_INPUT_DEFAULTS_NAME(terminal));
- TIMER(config, "irq_timer", 0).configure_periodic(timer_device::expired_delegate(FUNC(h89_state::h89_irq_timer), this), attotime::from_hz(100));
+ TIMER(config, "irq_timer", 0).configure_periodic(FUNC(h89_state::h89_irq_timer), attotime::from_hz(100));
}
/* ROM definition */
diff --git a/src/mame/drivers/harddriv.cpp b/src/mame/drivers/harddriv.cpp
index 27624425f38..ead95b0f795 100644
--- a/src/mame/drivers/harddriv.cpp
+++ b/src/mame/drivers/harddriv.cpp
@@ -4714,14 +4714,14 @@ void harddriv_state::init_multisync(int compact_inputs)
// if we have a JSA board, install the read/write handlers
if (m_jsa.found())
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x600000, 0x603fff, read8_delegate(FUNC(atari_jsa_base_device::main_response_r),m_jsa.target()), write8_delegate(FUNC(atari_jsa_base_device::main_command_w),m_jsa.target()), 0xff00);
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x600000, 0x603fff, read8_delegate(*m_jsa, FUNC(atari_jsa_base_device::main_response_r)), write8_delegate(*m_jsa, FUNC(atari_jsa_base_device::main_command_w)), 0xff00);
/* install handlers for the compact driving games' inputs */
if (compact_inputs)
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x400000, 0x400001, read16_delegate(FUNC(harddriv_state::hdc68k_wheel_r), this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x408000, 0x408001, write16_delegate(FUNC(harddriv_state::hdc68k_wheel_edge_reset_w), this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xa80000, 0xafffff, read16_delegate(FUNC(harddriv_state::hdc68k_port1_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x400000, 0x400001, read16_delegate(*this, FUNC(harddriv_state::hdc68k_wheel_r)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x408000, 0x408001, write16_delegate(*this, FUNC(harddriv_state::hdc68k_wheel_edge_reset_w)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xa80000, 0xafffff, read16_delegate(*this, FUNC(harddriv_state::hdc68k_port1_r)));
}
}
@@ -4730,18 +4730,18 @@ void harddriv_state::init_multisync(int compact_inputs)
void harddriv_state::init_adsp()
{
/* install ADSP program RAM */
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0x807fff, read16_delegate(FUNC(harddriv_state::hd68k_adsp_program_r), this), write16_delegate(FUNC(harddriv_state::hd68k_adsp_program_w), this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0x807fff, read16_delegate(*this, FUNC(harddriv_state::hd68k_adsp_program_r)), write16_delegate(*this, FUNC(harddriv_state::hd68k_adsp_program_w)));
/* install ADSP data RAM */
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x808000, 0x80bfff, read16_delegate(FUNC(harddriv_state::hd68k_adsp_data_r), this), write16_delegate(FUNC(harddriv_state::hd68k_adsp_data_w), this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x808000, 0x80bfff, read16_delegate(*this, FUNC(harddriv_state::hd68k_adsp_data_r)), write16_delegate(*this, FUNC(harddriv_state::hd68k_adsp_data_w)));
/* install ADSP serial buffer RAM */
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x810000, 0x813fff, read16_delegate(FUNC(harddriv_state::hd68k_adsp_buffer_r), this), write16_delegate(FUNC(harddriv_state::hd68k_adsp_buffer_w), this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x810000, 0x813fff, read16_delegate(*this, FUNC(harddriv_state::hd68k_adsp_buffer_r)), write16_delegate(*this, FUNC(harddriv_state::hd68k_adsp_buffer_w)));
/* install ADSP control locations */
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x818000, 0x81801f, write16_delegate(FUNC(harddriv_state::hd68k_adsp_control_w), this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x818060, 0x81807f, write16_delegate(FUNC(harddriv_state::hd68k_adsp_irq_clear_w), this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x838000, 0x83ffff, read16_delegate(FUNC(harddriv_state::hd68k_adsp_irq_state_r), this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x818000, 0x81801f, write16_delegate(*this, FUNC(harddriv_state::hd68k_adsp_control_w)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x818060, 0x81807f, write16_delegate(*this, FUNC(harddriv_state::hd68k_adsp_irq_clear_w)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x838000, 0x83ffff, read16_delegate(*this, FUNC(harddriv_state::hd68k_adsp_irq_state_r)));
}
@@ -4749,23 +4749,23 @@ void harddriv_state::init_adsp()
void harddriv_state::init_ds3()
{
/* install ADSP program RAM */
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0x807fff, read16_delegate(FUNC(harddriv_state::hd68k_ds3_program_r), this), write16_delegate(FUNC(harddriv_state::hd68k_ds3_program_w), this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0x807fff, read16_delegate(*this, FUNC(harddriv_state::hd68k_ds3_program_r)), write16_delegate(*this, FUNC(harddriv_state::hd68k_ds3_program_w)));
/* install ADSP data RAM */
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x808000, 0x80bfff, read16_delegate(FUNC(harddriv_state::hd68k_adsp_data_r), this), write16_delegate(FUNC(harddriv_state::hd68k_adsp_data_w), this));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x80c000, 0x80dfff, read16_delegate(FUNC(harddriv_state::hdds3_special_r), this), write16_delegate(FUNC(harddriv_state::hdds3_special_w), this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x808000, 0x80bfff, read16_delegate(*this, FUNC(harddriv_state::hd68k_adsp_data_r)), write16_delegate(*this, FUNC(harddriv_state::hd68k_adsp_data_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x80c000, 0x80dfff, read16_delegate(*this, FUNC(harddriv_state::hdds3_special_r)), write16_delegate(*this, FUNC(harddriv_state::hdds3_special_w)));
/* install ADSP control locations */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x820000, 0x8207ff, read16_delegate(FUNC(harddriv_state::hd68k_ds3_gdata_r), this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x820800, 0x820fff, read16_delegate(FUNC(harddriv_state::hd68k_ds3_girq_state_r), this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x820000, 0x8207ff, write16_delegate(FUNC(harddriv_state::hd68k_ds3_gdata_w), this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x821000, 0x8217ff, write16_delegate(FUNC(harddriv_state::hd68k_adsp_irq_clear_w), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x820000, 0x8207ff, read16_delegate(*this, FUNC(harddriv_state::hd68k_ds3_gdata_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x820800, 0x820fff, read16_delegate(*this, FUNC(harddriv_state::hd68k_ds3_girq_state_r)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x820000, 0x8207ff, write16_delegate(*this, FUNC(harddriv_state::hd68k_ds3_gdata_w)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x821000, 0x8217ff, write16_delegate(*this, FUNC(harddriv_state::hd68k_adsp_irq_clear_w)));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x822000, 0x8227ff, read16_delegate(FUNC(harddriv_state::hd68k_ds3_sdata_r), this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x822800, 0x822fff, read16_delegate(FUNC(harddriv_state::hd68k_ds3_sirq_state_r), this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x822000, 0x8227ff, write16_delegate(FUNC(harddriv_state::hd68k_ds3_sdata_w), this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x823000, 0x8237ff, write16_delegate(FUNC(harddriv_state::hd68k_ds3_sirq_clear_w), this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x823800, 0x823fff, write16_delegate(FUNC(harddriv_state::hd68k_ds3_control_w), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x822000, 0x8227ff, read16_delegate(*this, FUNC(harddriv_state::hd68k_ds3_sdata_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x822800, 0x822fff, read16_delegate(*this, FUNC(harddriv_state::hd68k_ds3_sirq_state_r)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x822000, 0x8227ff, write16_delegate(*this, FUNC(harddriv_state::hd68k_ds3_sdata_w)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x823000, 0x8237ff, write16_delegate(*this, FUNC(harddriv_state::hd68k_ds3_sirq_clear_w)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x823800, 0x823fff, write16_delegate(*this, FUNC(harddriv_state::hd68k_ds3_control_w)));
/* predetermine memory regions, can't use a region_ptr because strtdriv expects uint8_t while hdrivair expects uint16_t, also need to check if region exists for steeltal*/
if (memregion("ds3sdsp_data") != nullptr)
@@ -4848,26 +4848,26 @@ void harddriv_state::init_dsk()
uint8_t *usr3 = memregion("user3")->base();
/* install ASIC61 */
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x85c000, 0x85c7ff, read16_delegate(FUNC(harddriv_state::hd68k_dsk_dsp32_r), this), write16_delegate(FUNC(harddriv_state::hd68k_dsk_dsp32_w), this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x85c000, 0x85c7ff, read16_delegate(*this, FUNC(harddriv_state::hd68k_dsk_dsp32_r)), write16_delegate(*this, FUNC(harddriv_state::hd68k_dsk_dsp32_w)));
/* install control registers */
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x85c800, 0x85c81f, write16_delegate(FUNC(harddriv_state::hd68k_dsk_control_w), this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x85c800, 0x85c81f, write16_delegate(*this, FUNC(harddriv_state::hd68k_dsk_control_w)));
/* install extra RAM */
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x900000, 0x90ffff, read16_delegate(FUNC(harddriv_state::hd68k_dsk_ram_r), this), write16_delegate(FUNC(harddriv_state::hd68k_dsk_ram_w), this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x900000, 0x90ffff, read16_delegate(*this, FUNC(harddriv_state::hd68k_dsk_ram_r)), write16_delegate(*this, FUNC(harddriv_state::hd68k_dsk_ram_w)));
m_dsk_ram = (uint16_t *)(usr3 + 0x40000);
/* install extra ZRAM */
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x910000, 0x910fff, read8_delegate(FUNC(eeprom_parallel_28xx_device::read), m_dsk_10c.target()), write8_delegate(FUNC(eeprom_parallel_28xx_device::write), m_dsk_10c.target()), 0xff00);
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x910000, 0x910fff, read8_delegate(FUNC(eeprom_parallel_28xx_device::read), m_dsk_30c.target()), write8_delegate(FUNC(eeprom_parallel_28xx_device::write), m_dsk_30c.target()), 0x00ff);
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x910000, 0x910fff, read8_delegate(*m_dsk_10c, FUNC(eeprom_parallel_28xx_device::read)), write8_delegate(*m_dsk_10c, FUNC(eeprom_parallel_28xx_device::write)), 0xff00);
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x910000, 0x910fff, read8_delegate(*m_dsk_30c, FUNC(eeprom_parallel_28xx_device::read)), write8_delegate(*m_dsk_30c, FUNC(eeprom_parallel_28xx_device::write)), 0x00ff);
/* install ASIC65 */
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x914000, 0x917fff, write16sm_delegate(FUNC(asic65_device::data_w), (asic65_device*)m_asic65));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x914000, 0x917fff, read16smo_delegate(FUNC(asic65_device::read), (asic65_device*)m_asic65));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x918000, 0x91bfff, read16smo_delegate(FUNC(asic65_device::io_r), (asic65_device*)m_asic65));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x914000, 0x917fff, write16sm_delegate(*m_asic65, FUNC(asic65_device::data_w)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x914000, 0x917fff, read16smo_delegate(*m_asic65, FUNC(asic65_device::read)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x918000, 0x91bfff, read16smo_delegate(*m_asic65, FUNC(asic65_device::io_r)));
/* install extra ROM */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x940000, 0x9fffff, read16_delegate(FUNC(harddriv_state::hd68k_dsk_small_rom_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x940000, 0x9fffff, read16_delegate(*this, FUNC(harddriv_state::hd68k_dsk_small_rom_r)));
m_dsk_rom = (uint16_t *)(usr3 + 0x00000);
}
@@ -4878,22 +4878,22 @@ void harddriv_state::init_dsk2()
uint8_t *usr3 = memregion("user3")->base();
/* install ASIC65 */
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x824000, 0x824003, write16sm_delegate(FUNC(asic65_device::data_w), (asic65_device*)m_asic65));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x824000, 0x824003, read16smo_delegate(FUNC(asic65_device::read), (asic65_device*)m_asic65));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x825000, 0x825001, read16smo_delegate(FUNC(asic65_device::io_r), (asic65_device*)m_asic65));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x824000, 0x824003, write16sm_delegate(*m_asic65, FUNC(asic65_device::data_w)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x824000, 0x824003, read16smo_delegate(*m_asic65, FUNC(asic65_device::read)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x825000, 0x825001, read16smo_delegate(*m_asic65, FUNC(asic65_device::io_r)));
/* install ASIC61 */
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x827000, 0x8277ff, read16_delegate(FUNC(harddriv_state::hd68k_dsk_dsp32_r), this), write16_delegate(FUNC(harddriv_state::hd68k_dsk_dsp32_w), this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x827000, 0x8277ff, read16_delegate(*this, FUNC(harddriv_state::hd68k_dsk_dsp32_r)), write16_delegate(*this, FUNC(harddriv_state::hd68k_dsk_dsp32_w)));
/* install control registers */
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x827800, 0x82781f, write16_delegate(FUNC(harddriv_state::hd68k_dsk_control_w), this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x827800, 0x82781f, write16_delegate(*this, FUNC(harddriv_state::hd68k_dsk_control_w)));
/* install extra RAM */
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x880000, 0x8bffff, read16_delegate(FUNC(harddriv_state::hd68k_dsk_ram_r), this), write16_delegate(FUNC(harddriv_state::hd68k_dsk_ram_w), this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x880000, 0x8bffff, read16_delegate(*this, FUNC(harddriv_state::hd68k_dsk_ram_r)), write16_delegate(*this, FUNC(harddriv_state::hd68k_dsk_ram_w)));
m_dsk_ram = (uint16_t *)(usr3 + 0x100000);
/* install extra ROM */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x900000, 0x9fffff, read16_delegate(FUNC(harddriv_state::hd68k_dsk_rom_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x900000, 0x9fffff, read16_delegate(*this, FUNC(harddriv_state::hd68k_dsk_rom_r)));
m_dsk_rom = (uint16_t *)(usr3 + 0x000000);
}
@@ -4901,13 +4901,13 @@ void harddriv_state::init_dsk2()
/* COMMON INIT: initialize the DSPCOM add-on board */
void harddriv_state::init_dspcom()
{
- /* install ASIC65 */
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x900000, 0x900003, write16sm_delegate(FUNC(asic65_device::data_w), (asic65_device*)m_asic65));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x900000, 0x900003, read16smo_delegate(FUNC(asic65_device::read), (asic65_device*)m_asic65));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x901000, 0x910001, read16smo_delegate(FUNC(asic65_device::io_r), (asic65_device*)m_asic65));
+ /* install ASIC65 */
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x900000, 0x900003, write16sm_delegate(*m_asic65, FUNC(asic65_device::data_w)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x900000, 0x900003, read16smo_delegate(*m_asic65, FUNC(asic65_device::read)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x901000, 0x910001, read16smo_delegate(*m_asic65, FUNC(asic65_device::io_r)));
/* install DSPCOM control */
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x904000, 0x90401f, write16_delegate(FUNC(harddriv_state::hddspcom_control_w), this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x904000, 0x90401f, write16_delegate(*this, FUNC(harddriv_state::hddspcom_control_w)));
}
@@ -4915,9 +4915,9 @@ void harddriv_state::init_dspcom()
void harddriv_state::init_driver_sound()
{
/* install sound handlers */
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x840000, 0x840001, read16_delegate(FUNC(harddriv_sound_board_device::hd68k_snd_data_r), (harddriv_sound_board_device*)m_harddriv_sound), write16_delegate(FUNC(harddriv_sound_board_device::hd68k_snd_data_w), (harddriv_sound_board_device*)m_harddriv_sound));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x844000, 0x844001, read16_delegate(FUNC(harddriv_sound_board_device::hd68k_snd_status_r), (harddriv_sound_board_device*)m_harddriv_sound));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x84c000, 0x84c001, write16_delegate(FUNC(harddriv_sound_board_device::hd68k_snd_reset_w), (harddriv_sound_board_device*)m_harddriv_sound));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x840000, 0x840001, read16_delegate(*m_harddriv_sound, FUNC(harddriv_sound_board_device::hd68k_snd_data_r)), write16_delegate(*m_harddriv_sound, FUNC(harddriv_sound_board_device::hd68k_snd_data_w)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x844000, 0x844001, read16_delegate(*m_harddriv_sound, FUNC(harddriv_sound_board_device::hd68k_snd_status_r)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x84c000, 0x84c001, write16_delegate(*m_harddriv_sound, FUNC(harddriv_sound_board_device::hd68k_snd_reset_w)));
}
@@ -4929,7 +4929,7 @@ void harddriv_state::init_driver_sound()
*
*************************************/
-void harddriv_state::init_harddriv(void)
+void harddriv_state::init_harddriv()
{
/* initialize the boards */
init_driver();
@@ -4937,25 +4937,25 @@ void harddriv_state::init_harddriv(void)
init_driver_sound();
/* set up gsp speedup handler */
- m_gsp->space(AS_PROGRAM).install_write_handler(0xfff9fc00, 0xfff9fc0f, write16_delegate(FUNC(harddriv_state::hdgsp_speedup1_w), this));
- m_gsp->space(AS_PROGRAM).install_write_handler(0xfffcfc00, 0xfffcfc0f, write16_delegate(FUNC(harddriv_state::hdgsp_speedup2_w), this));
- m_gsp->space(AS_PROGRAM).install_read_handler(0xfff9fc00, 0xfff9fc0f, read16_delegate(FUNC(harddriv_state::hdgsp_speedup_r), this));
+ m_gsp->space(AS_PROGRAM).install_write_handler(0xfff9fc00, 0xfff9fc0f, write16_delegate(*this, FUNC(harddriv_state::hdgsp_speedup1_w)));
+ m_gsp->space(AS_PROGRAM).install_write_handler(0xfffcfc00, 0xfffcfc0f, write16_delegate(*this, FUNC(harddriv_state::hdgsp_speedup2_w)));
+ m_gsp->space(AS_PROGRAM).install_read_handler(0xfff9fc00, 0xfff9fc0f, read16_delegate(*this, FUNC(harddriv_state::hdgsp_speedup_r)));
m_gsp_speedup_pc = 0xffc00f10;
m_gsp_speedup_addr[0] = (uint16_t *)(m_gsp_vram + ((0xfff9fc00 - 0xff800000) >> 3)); // Addresses are in bits. Really.
m_gsp_speedup_addr[1] = (uint16_t *)(m_gsp_vram + ((0xfffcfc00 - 0xff800000) >> 3));
/* set up msp speedup handler */
- m_msp->space(AS_PROGRAM).install_write_handler(0x00751b00, 0x00751b0f, write16_delegate(FUNC(harddriv_state::hdmsp_speedup_w), this));
- m_msp->space(AS_PROGRAM).install_read_handler(0x00751b00, 0x00751b0f, read16_delegate(FUNC(harddriv_state::hdmsp_speedup_r), this));
+ m_msp->space(AS_PROGRAM).install_write_handler(0x00751b00, 0x00751b0f, write16_delegate(*this, FUNC(harddriv_state::hdmsp_speedup_w)));
+ m_msp->space(AS_PROGRAM).install_read_handler(0x00751b00, 0x00751b0f, read16_delegate(*this, FUNC(harddriv_state::hdmsp_speedup_r)));
m_msp_speedup_pc = 0x00723b00;
m_msp_speedup_addr = m_msp_ram + ((0x751b00 - 0x700000) >> 4); // Address in bits, plus uint16_t *
/* set up adsp speedup handlers */
- m_adsp->space(AS_DATA).install_read_handler(0x1fff, 0x1fff, read16_delegate(FUNC(harddriv_state::hdadsp_speedup_r), this));
+ m_adsp->space(AS_DATA).install_read_handler(0x1fff, 0x1fff, read16_delegate(*this, FUNC(harddriv_state::hdadsp_speedup_r)));
}
-void harddriv_state::init_harddrivc(void)
+void harddriv_state::init_harddrivc()
{
/* initialize the boards */
init_multisync(1);
@@ -4963,44 +4963,44 @@ void harddriv_state::init_harddrivc(void)
init_driver_sound();
/* set up gsp speedup handler */
- m_gsp->space(AS_PROGRAM).install_write_handler(0xfff9fc00, 0xfff9fc0f, write16_delegate(FUNC(harddriv_state::hdgsp_speedup1_w), this));
- m_gsp->space(AS_PROGRAM).install_write_handler(0xfffcfc00, 0xfffcfc0f, write16_delegate(FUNC(harddriv_state::hdgsp_speedup2_w), this));
- m_gsp->space(AS_PROGRAM).install_read_handler(0xfff9fc00, 0xfff9fc0f, read16_delegate(FUNC(harddriv_state::hdgsp_speedup_r), this));
+ m_gsp->space(AS_PROGRAM).install_write_handler(0xfff9fc00, 0xfff9fc0f, write16_delegate(*this, FUNC(harddriv_state::hdgsp_speedup1_w)));
+ m_gsp->space(AS_PROGRAM).install_write_handler(0xfffcfc00, 0xfffcfc0f, write16_delegate(*this, FUNC(harddriv_state::hdgsp_speedup2_w)));
+ m_gsp->space(AS_PROGRAM).install_read_handler(0xfff9fc00, 0xfff9fc0f, read16_delegate(*this, FUNC(harddriv_state::hdgsp_speedup_r)));
m_gsp_speedup_pc = 0xfff40ff0;
m_gsp_speedup_addr[0] = (uint16_t *)(m_gsp_vram + ((0xfff9fc00 - 0xffc00000) >> 3)); // Addresses are in bits. Really.
m_gsp_speedup_addr[1] = (uint16_t *)(m_gsp_vram + ((0xfffcfc00 - 0xffc00000) >> 3));
/* set up msp speedup handler */
- m_msp->space(AS_PROGRAM).install_write_handler(0x00751b00, 0x00751b0f, write16_delegate(FUNC(harddriv_state::hdmsp_speedup_w), this));
- m_msp->space(AS_PROGRAM).install_read_handler(0x00751b00, 0x00751b0f, read16_delegate(FUNC(harddriv_state::hdmsp_speedup_r), this));
+ m_msp->space(AS_PROGRAM).install_write_handler(0x00751b00, 0x00751b0f, write16_delegate(*this, FUNC(harddriv_state::hdmsp_speedup_w)));
+ m_msp->space(AS_PROGRAM).install_read_handler(0x00751b00, 0x00751b0f, read16_delegate(*this, FUNC(harddriv_state::hdmsp_speedup_r)));
m_msp_speedup_pc = 0x00723b00;
m_msp_speedup_addr = m_msp_ram + ((0x751b00 - 0x700000) >> 4); // Address in bits, plus uint16_t *
/* set up adsp speedup handlers */
- m_adsp->space(AS_DATA).install_read_handler(0x1fff, 0x1fff, read16_delegate(FUNC(harddriv_state::hdadsp_speedup_r), this));
+ m_adsp->space(AS_DATA).install_read_handler(0x1fff, 0x1fff, read16_delegate(*this, FUNC(harddriv_state::hdadsp_speedup_r)));
}
-void harddriv_state::init_stunrun(void)
+void harddriv_state::init_stunrun()
{
/* initialize the boards */
init_multisync(0);
init_adsp();
/* set up gsp speedup handler */
- m_gsp->space(AS_PROGRAM).install_write_handler(0xfff9fc00, 0xfff9fc0f, write16_delegate(FUNC(harddriv_state::hdgsp_speedup1_w), this));
- m_gsp->space(AS_PROGRAM).install_write_handler(0xfffcfc00, 0xfffcfc0f, write16_delegate(FUNC(harddriv_state::hdgsp_speedup2_w), this));
- m_gsp->space(AS_PROGRAM).install_read_handler(0xfff9fc00, 0xfff9fc0f, read16_delegate(FUNC(harddriv_state::hdgsp_speedup_r), this));
+ m_gsp->space(AS_PROGRAM).install_write_handler(0xfff9fc00, 0xfff9fc0f, write16_delegate(*this, FUNC(harddriv_state::hdgsp_speedup1_w)));
+ m_gsp->space(AS_PROGRAM).install_write_handler(0xfffcfc00, 0xfffcfc0f, write16_delegate(*this, FUNC(harddriv_state::hdgsp_speedup2_w)));
+ m_gsp->space(AS_PROGRAM).install_read_handler(0xfff9fc00, 0xfff9fc0f, read16_delegate(*this, FUNC(harddriv_state::hdgsp_speedup_r)));
m_gsp_speedup_pc = 0xfff41070;
m_gsp_speedup_addr[0] = (uint16_t *)(m_gsp_vram + ((0xfff9fc00 - 0xffc00000) >> 3)); // Addresses are in bits. Really.
m_gsp_speedup_addr[1] = (uint16_t *)(m_gsp_vram + ((0xfffcfc00 - 0xffc00000) >> 3));
/* set up adsp speedup handlers */
- m_adsp->space(AS_DATA).install_read_handler(0x1fff, 0x1fff, read16_delegate(FUNC(harddriv_state::hdadsp_speedup_r), this));
+ m_adsp->space(AS_DATA).install_read_handler(0x1fff, 0x1fff, read16_delegate(*this, FUNC(harddriv_state::hdadsp_speedup_r)));
}
-void harddriv_state::init_racedriv(void)
+void harddriv_state::init_racedriv()
{
/* initialize the boards */
init_driver();
@@ -5010,17 +5010,17 @@ void harddriv_state::init_racedriv(void)
/* set up the slapstic */
m_slapstic_device->slapstic_init();
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xe0000, 0xfffff, read16_delegate(FUNC(harddriv_state::rd68k_slapstic_r), this), write16_delegate(FUNC(harddriv_state::rd68k_slapstic_w), this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xe0000, 0xfffff, read16_delegate(*this, FUNC(harddriv_state::rd68k_slapstic_r)), write16_delegate(*this, FUNC(harddriv_state::rd68k_slapstic_w)));
m_m68k_slapstic_base = (uint16_t *)(memregion("maincpu")->base() + 0xe0000);
/* synchronization */
- m_dsp32->space(AS_PROGRAM).install_write_handler(0x613c00, 0x613c03, write32_delegate(FUNC(harddriv_state::rddsp32_sync0_w), this));
- m_dsp32->space(AS_PROGRAM).install_write_handler(0x613e00, 0x613e03, write32_delegate(FUNC(harddriv_state::rddsp32_sync1_w), this));
+ m_dsp32->space(AS_PROGRAM).install_write_handler(0x613c00, 0x613c03, write32_delegate(*this, FUNC(harddriv_state::rddsp32_sync0_w)));
+ m_dsp32->space(AS_PROGRAM).install_write_handler(0x613e00, 0x613e03, write32_delegate(*this, FUNC(harddriv_state::rddsp32_sync1_w)));
m_rddsp32_sync[0] = m_dsp32_ram + ((0x613c00 - 0x600000) >> 2);
m_rddsp32_sync[1] = m_dsp32_ram + ((0x613e00 - 0x600000) >> 2);
/* set up adsp speedup handlers */
- m_adsp->space(AS_DATA).install_read_handler(0x1fff, 0x1fff, read16_delegate(FUNC(harddriv_state::hdadsp_speedup_r), this));
+ m_adsp->space(AS_DATA).install_read_handler(0x1fff, 0x1fff, read16_delegate(*this, FUNC(harddriv_state::hdadsp_speedup_r)));
}
@@ -5035,31 +5035,31 @@ void harddriv_state::racedrivc_init_common(offs_t gsp_protection)
/* set up the slapstic */
m_slapstic_device->slapstic_init();
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xe0000, 0xfffff, read16_delegate(FUNC(harddriv_state::rd68k_slapstic_r), this), write16_delegate(FUNC(harddriv_state::rd68k_slapstic_w), this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xe0000, 0xfffff, read16_delegate(*this, FUNC(harddriv_state::rd68k_slapstic_r)), write16_delegate(*this, FUNC(harddriv_state::rd68k_slapstic_w)));
m_m68k_slapstic_base = (uint16_t *)(memregion("maincpu")->base() + 0xe0000);
/* synchronization */
- m_dsp32->space(AS_PROGRAM).install_write_handler(0x613c00, 0x613c03, write32_delegate(FUNC(harddriv_state::rddsp32_sync0_w), this));
- m_dsp32->space(AS_PROGRAM).install_write_handler(0x613e00, 0x613e03, write32_delegate(FUNC(harddriv_state::rddsp32_sync1_w), this));
+ m_dsp32->space(AS_PROGRAM).install_write_handler(0x613c00, 0x613c03, write32_delegate(*this, FUNC(harddriv_state::rddsp32_sync0_w)));
+ m_dsp32->space(AS_PROGRAM).install_write_handler(0x613e00, 0x613e03, write32_delegate(*this, FUNC(harddriv_state::rddsp32_sync1_w)));
m_rddsp32_sync[0] = m_dsp32_ram + ((0x613c00 - 0x600000) >> 2);
m_rddsp32_sync[1] = m_dsp32_ram + ((0x613e00 - 0x600000) >> 2);
/* set up protection hacks */
- m_gsp->space(AS_PROGRAM).install_write_handler(gsp_protection, gsp_protection + 0x0f, write16_delegate(FUNC(harddriv_state::hdgsp_protection_w), this));
+ m_gsp->space(AS_PROGRAM).install_write_handler(gsp_protection, gsp_protection + 0x0f, write16_delegate(*this, FUNC(harddriv_state::hdgsp_protection_w)));
m_gsp_protection = (uint16_t *)(m_gsp_vram + ((gsp_protection - 0xffc00000) >> 3));
/* set up gsp speedup handler */
- m_gsp->space(AS_PROGRAM).install_write_handler(0xfff76f60, 0xfff76f6f, write16_delegate(FUNC(harddriv_state::rdgsp_speedup1_w), this));
- m_gsp->space(AS_PROGRAM).install_read_handler(0xfff76f60, 0xfff76f6f, read16_delegate(FUNC(harddriv_state::rdgsp_speedup1_r), this));
+ m_gsp->space(AS_PROGRAM).install_write_handler(0xfff76f60, 0xfff76f6f, write16_delegate(*this, FUNC(harddriv_state::rdgsp_speedup1_w)));
+ m_gsp->space(AS_PROGRAM).install_read_handler(0xfff76f60, 0xfff76f6f, read16_delegate(*this, FUNC(harddriv_state::rdgsp_speedup1_r)));
m_gsp_speedup_pc = 0xfff43a00;
m_gsp_speedup_addr[0] = (uint16_t *)(m_gsp_vram + ((0xfff76f60 - 0xffc00000) >> 3));
/* set up adsp speedup handlers */
- m_adsp->space(AS_DATA).install_read_handler(0x1fff, 0x1fff, read16_delegate(FUNC(harddriv_state::hdadsp_speedup_r), this));
+ m_adsp->space(AS_DATA).install_read_handler(0x1fff, 0x1fff, read16_delegate(*this, FUNC(harddriv_state::hdadsp_speedup_r)));
}
-void harddriv_state::init_racedrivc(void) { racedrivc_init_common(0xfff95cd0); }
-void harddriv_state::init_racedrivc1(void) { racedrivc_init_common(0xfff7ecd0); }
+void harddriv_state::init_racedrivc() { racedrivc_init_common(0xfff95cd0); }
+void harddriv_state::init_racedrivc1() { racedrivc_init_common(0xfff7ecd0); }
void harddriv_state::init_racedrivc_panorama_side()
{
@@ -5070,30 +5070,30 @@ void harddriv_state::init_racedrivc_panorama_side()
/* set up the slapstic */
m_slapstic_device->slapstic_init();
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xe0000, 0xfffff, read16_delegate(FUNC(harddriv_state::rd68k_slapstic_r), this), write16_delegate(FUNC(harddriv_state::rd68k_slapstic_w), this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xe0000, 0xfffff, read16_delegate(*this, FUNC(harddriv_state::rd68k_slapstic_r)), write16_delegate(*this, FUNC(harddriv_state::rd68k_slapstic_w)));
m_m68k_slapstic_base = (uint16_t *)(memregion("maincpu")->base() + 0xe0000);
/* set up protection hacks */
- m_gsp->space(AS_PROGRAM).install_write_handler(gsp_protection, gsp_protection + 0x0f, write16_delegate(FUNC(harddriv_state::hdgsp_protection_w), this));
+ m_gsp->space(AS_PROGRAM).install_write_handler(gsp_protection, gsp_protection + 0x0f, write16_delegate(*this, FUNC(harddriv_state::hdgsp_protection_w)));
m_gsp_protection = (uint16_t *)(m_gsp_vram + ((gsp_protection - 0xffc00000) >> 3));
/* set up gsp speedup handler (todo, work these out) */
-// m_gsp->space(AS_PROGRAM).install_write_handler(0xfff76f60, 0xfff76f6f, write16_delegate(FUNC(harddriv_state::rdgsp_speedup1_w), this));
-// m_gsp->space(AS_PROGRAM).install_read_handler(0xfff76f60, 0xfff76f6f, read16_delegate(FUNC(harddriv_state::rdgsp_speedup1_r), this));
+// m_gsp->space(AS_PROGRAM).install_write_handler(0xfff76f60, 0xfff76f6f, write16_delegate(*this, FUNC(harddriv_state::rdgsp_speedup1_w)));
+// m_gsp->space(AS_PROGRAM).install_read_handler(0xfff76f60, 0xfff76f6f, read16_delegate(*this, FUNC(harddriv_state::rdgsp_speedup1_r)));
// m_gsp_speedup_pc = 0xfff43a00;
// m_gsp_speedup_addr[0] = (uint16_t *)(m_gsp_vram + ((0xfff76f60 - 0xffc00000) >> 3));
/* set up adsp speedup handlers */
- m_adsp->space(AS_DATA).install_read_handler(0x1fff, 0x1fff, read16_delegate(FUNC(harddriv_state::hdadsp_speedup_r), this));
+ m_adsp->space(AS_DATA).install_read_handler(0x1fff, 0x1fff, read16_delegate(*this, FUNC(harddriv_state::hdadsp_speedup_r)));
}
-void harddriv_state::init_racedrivb1(void)
+void harddriv_state::init_racedrivb1()
{
/* this unpleasantness prevents racedriv1/racedrivb1/racedrivg1 from crashing MAME during boot */
/* they clear the DSP32C's RAM and then release it from reset, causing it to run through */
/* its address space recursively executing instructions */
- m_dsp32->space(AS_PROGRAM).install_read_handler(0x002000, 0x5fffff, read32_delegate(FUNC(harddriv_state::rddsp_unmap_r),this));
- m_dsp32->space(AS_PROGRAM).install_read_handler(0x640000, 0xfff7ff, read32_delegate(FUNC(harddriv_state::rddsp_unmap_r),this));
+ m_dsp32->space(AS_PROGRAM).install_read_handler(0x002000, 0x5fffff, read32_delegate(*this, FUNC(harddriv_state::rddsp_unmap_r)));
+ m_dsp32->space(AS_PROGRAM).install_read_handler(0x640000, 0xfff7ff, read32_delegate(*this, FUNC(harddriv_state::rddsp_unmap_r)));
init_racedriv();
}
@@ -5117,27 +5117,27 @@ void harddriv_state::steeltal_init_common(offs_t ds3_transfer_pc, int proto_sloo
init_ds3();
init_dspcom();
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x908000, 0x908001, read16_delegate(FUNC(harddriv_state::steeltal_dummy_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x908000, 0x908001, read16_delegate(*this, FUNC(harddriv_state::steeltal_dummy_r)));
/* set up the SLOOP */
if (!proto_sloop)
{
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xe0000, 0xfffff, read16_delegate(FUNC(harddriv_state::st68k_sloop_r), this), write16_delegate(FUNC(harddriv_state::st68k_sloop_w), this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x4e000, 0x4ffff, read16_delegate(FUNC(harddriv_state::st68k_sloop_alt_r), this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xe0000, 0xfffff, read16_delegate(*this, FUNC(harddriv_state::st68k_sloop_r)), write16_delegate(*this, FUNC(harddriv_state::st68k_sloop_w)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x4e000, 0x4ffff, read16_delegate(*this, FUNC(harddriv_state::st68k_sloop_alt_r)));
}
else
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xe0000, 0xfffff, read16_delegate(FUNC(harddriv_state::st68k_protosloop_r), this), write16_delegate(FUNC(harddriv_state::st68k_protosloop_w), this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xe0000, 0xfffff, read16_delegate(*this, FUNC(harddriv_state::st68k_protosloop_r)), write16_delegate(*this, FUNC(harddriv_state::st68k_protosloop_w)));
m_m68k_slapstic_base = (uint16_t *)(memregion("maincpu")->base() + 0xe0000);
m_m68k_sloop_alt_base = (uint16_t *)(memregion("maincpu")->base() + 0x4e000);
/* set up protection hacks */
- m_gsp->space(AS_PROGRAM).install_write_handler(0xfff965d0, 0xfff965df, write16_delegate(FUNC(harddriv_state::hdgsp_protection_w), this));
+ m_gsp->space(AS_PROGRAM).install_write_handler(0xfff965d0, 0xfff965df, write16_delegate(*this, FUNC(harddriv_state::hdgsp_protection_w)));
m_gsp_protection = (uint16_t *)(m_gsp_vram + ((0xfff965d0 - 0xffc00000) >> 3));
/* set up adsp speedup handlers */
- m_adsp->space(AS_DATA).install_read_handler(0x1fff, 0x1fff, read16_delegate(FUNC(harddriv_state::hdadsp_speedup_r), this));
- m_adsp->space(AS_DATA).install_read_handler(0x1f99, 0x1f99, read16_delegate(FUNC(harddriv_state::hdds3_speedup_r), this));
+ m_adsp->space(AS_DATA).install_read_handler(0x1fff, 0x1fff, read16_delegate(*this, FUNC(harddriv_state::hdadsp_speedup_r)));
+ m_adsp->space(AS_DATA).install_read_handler(0x1f99, 0x1f99, read16_delegate(*this, FUNC(harddriv_state::hdds3_speedup_r)));
m_ds3_speedup_addr = &m_adsp_data_memory[0x1f99];
m_ds3_speedup_pc = 0xff;
m_ds3_transfer_pc = ds3_transfer_pc;
@@ -5145,23 +5145,23 @@ void harddriv_state::steeltal_init_common(offs_t ds3_transfer_pc, int proto_sloo
-void harddriv_state::init_steeltal(void)
+void harddriv_state::init_steeltal()
{
steeltal_init_common(0x4fc18, 0);
}
-void harddriv_state::init_steeltal1(void)
+void harddriv_state::init_steeltal1()
{
steeltal_init_common(0x4f9c6, 0);
}
-void harddriv_state::init_steeltalp(void)
+void harddriv_state::init_steeltalp()
{
steeltal_init_common(0x52290, 1);
}
-void harddriv_state::init_strtdriv(void)
+void harddriv_state::init_strtdriv()
{
/* initialize the boards */
init_multisync(1);
@@ -5170,80 +5170,80 @@ void harddriv_state::init_strtdriv(void)
/* set up the slapstic */
m_slapstic_device->slapstic_init();
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xe0000, 0xfffff, read16_delegate(FUNC(harddriv_state::rd68k_slapstic_r), this), write16_delegate(FUNC(harddriv_state::rd68k_slapstic_w), this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xe0000, 0xfffff, read16_delegate(*this, FUNC(harddriv_state::rd68k_slapstic_r)), write16_delegate(*this, FUNC(harddriv_state::rd68k_slapstic_w)));
m_m68k_slapstic_base = (uint16_t *)(memregion("maincpu")->base() + 0xe0000);
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xa80000, 0xafffff, read16_delegate(FUNC(harddriv_state::hda68k_port1_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xa80000, 0xafffff, read16_delegate(*this, FUNC(harddriv_state::hda68k_port1_r)));
/* synchronization */
- m_dsp32->space(AS_PROGRAM).install_write_handler(0x613c00, 0x613c03, write32_delegate(FUNC(harddriv_state::rddsp32_sync0_w), this));
- m_dsp32->space(AS_PROGRAM).install_write_handler(0x613e00, 0x613e03, write32_delegate(FUNC(harddriv_state::rddsp32_sync1_w), this));
+ m_dsp32->space(AS_PROGRAM).install_write_handler(0x613c00, 0x613c03, write32_delegate(*this, FUNC(harddriv_state::rddsp32_sync0_w)));
+ m_dsp32->space(AS_PROGRAM).install_write_handler(0x613e00, 0x613e03, write32_delegate(*this, FUNC(harddriv_state::rddsp32_sync1_w)));
m_rddsp32_sync[0] = m_dsp32_ram + ((0x613c00 - 0x600000) >> 2);
m_rddsp32_sync[1] = m_dsp32_ram + ((0x613e00 - 0x600000) >> 2);
/* set up protection hacks */
- m_gsp->space(AS_PROGRAM).install_write_handler(0xfff960a0, 0xfff960af, write16_delegate(FUNC(harddriv_state::hdgsp_protection_w), this));
+ m_gsp->space(AS_PROGRAM).install_write_handler(0xfff960a0, 0xfff960af, write16_delegate(*this, FUNC(harddriv_state::hdgsp_protection_w)));
m_gsp_protection = (uint16_t *)(m_gsp_vram + ((0xfff960a0 - 0xffc00000) >> 3));
/* set up adsp speedup handlers */
- m_adsp->space(AS_DATA).install_read_handler(0x1fff, 0x1fff, read16_delegate(FUNC(harddriv_state::hdadsp_speedup_r), this));
- m_adsp->space(AS_DATA).install_read_handler(0x1f99, 0x1f99, read16_delegate(FUNC(harddriv_state::hdds3_speedup_r), this));
+ m_adsp->space(AS_DATA).install_read_handler(0x1fff, 0x1fff, read16_delegate(*this, FUNC(harddriv_state::hdadsp_speedup_r)));
+ m_adsp->space(AS_DATA).install_read_handler(0x1f99, 0x1f99, read16_delegate(*this, FUNC(harddriv_state::hdds3_speedup_r)));
m_ds3_speedup_addr = &m_adsp_data_memory[0x1f99];
m_ds3_speedup_pc = 0xff;
m_ds3_transfer_pc = 0x43672;
}
-void harddriv_state::init_hdrivair(void)
+void harddriv_state::init_hdrivair()
{
/* initialize the boards */
init_multisync(1);
init_ds3();
init_dsk2();
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xa80000, 0xafffff, read16_delegate(FUNC(harddriv_state::hda68k_port1_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xa80000, 0xafffff, read16_delegate(*this, FUNC(harddriv_state::hda68k_port1_r)));
/* synchronization */
- m_dsp32->space(AS_PROGRAM).install_write_handler(0x613c00, 0x613c03, write32_delegate(FUNC(harddriv_state::rddsp32_sync0_w), this));
- m_dsp32->space(AS_PROGRAM).install_write_handler(0x613e00, 0x613e03, write32_delegate(FUNC(harddriv_state::rddsp32_sync1_w), this));
+ m_dsp32->space(AS_PROGRAM).install_write_handler(0x613c00, 0x613c03, write32_delegate(*this, FUNC(harddriv_state::rddsp32_sync0_w)));
+ m_dsp32->space(AS_PROGRAM).install_write_handler(0x613e00, 0x613e03, write32_delegate(*this, FUNC(harddriv_state::rddsp32_sync1_w)));
m_rddsp32_sync[0] = m_dsp32_ram + ((0x613c00 - 0x600000) >> 2);
m_rddsp32_sync[1] = m_dsp32_ram + ((0x613e00 - 0x600000) >> 2);
/* set up protection hacks */
- m_gsp->space(AS_PROGRAM).install_write_handler(0xfff960a0, 0xfff960af, write16_delegate(FUNC(harddriv_state::hdgsp_protection_w), this));
+ m_gsp->space(AS_PROGRAM).install_write_handler(0xfff960a0, 0xfff960af, write16_delegate(*this, FUNC(harddriv_state::hdgsp_protection_w)));
m_gsp_protection = (uint16_t *)(m_gsp_vram + ((0xfff960a0 - 0xffc00000) >> 3));
/* set up adsp speedup handlers */
- m_adsp->space(AS_DATA).install_read_handler(0x1fff, 0x1fff, read16_delegate(FUNC(harddriv_state::hdadsp_speedup_r), this));
- m_adsp->space(AS_DATA).install_read_handler(0x1f99, 0x1f99, read16_delegate(FUNC(harddriv_state::hdds3_speedup_r), this));
+ m_adsp->space(AS_DATA).install_read_handler(0x1fff, 0x1fff, read16_delegate(*this, FUNC(harddriv_state::hdadsp_speedup_r)));
+ m_adsp->space(AS_DATA).install_read_handler(0x1f99, 0x1f99, read16_delegate(*this, FUNC(harddriv_state::hdds3_speedup_r)));
m_ds3_speedup_addr = &m_adsp_data_memory[0x1f99];
m_ds3_speedup_pc = 0x2da;
m_ds3_transfer_pc = 0x407b8;
}
-void harddriv_state::init_hdrivairp(void)
+void harddriv_state::init_hdrivairp()
{
/* initialize the boards */
init_multisync(1);
init_ds3();
init_dsk2();
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xa80000, 0xafffff, read16_delegate(FUNC(harddriv_state::hda68k_port1_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xa80000, 0xafffff, read16_delegate(*this, FUNC(harddriv_state::hda68k_port1_r)));
/* synchronization */
- m_dsp32->space(AS_PROGRAM).install_write_handler(0x613c00, 0x613c03, write32_delegate(FUNC(harddriv_state::rddsp32_sync0_w), this));
- m_dsp32->space(AS_PROGRAM).install_write_handler(0x613e00, 0x613e03, write32_delegate(FUNC(harddriv_state::rddsp32_sync1_w), this));
+ m_dsp32->space(AS_PROGRAM).install_write_handler(0x613c00, 0x613c03, write32_delegate(*this, FUNC(harddriv_state::rddsp32_sync0_w)));
+ m_dsp32->space(AS_PROGRAM).install_write_handler(0x613e00, 0x613e03, write32_delegate(*this, FUNC(harddriv_state::rddsp32_sync1_w)));
m_rddsp32_sync[0] = m_dsp32_ram + ((0x613c00 - 0x600000) >> 2);
m_rddsp32_sync[1] = m_dsp32_ram + ((0x613e00 - 0x600000) >> 2);
/* set up protection hacks */
- m_gsp->space(AS_PROGRAM).install_write_handler(0xfff916c0, 0xfff916cf, write16_delegate(FUNC(harddriv_state::hdgsp_protection_w), this));
+ m_gsp->space(AS_PROGRAM).install_write_handler(0xfff916c0, 0xfff916cf, write16_delegate(*this, FUNC(harddriv_state::hdgsp_protection_w)));
m_gsp_protection = (uint16_t *)(m_gsp_vram + ((0xfff916c0 - 0xffc00000) >> 3));
/* set up adsp speedup handlers */
- m_adsp->space(AS_DATA).install_read_handler(0x1fff, 0x1fff, read16_delegate(FUNC(harddriv_state::hdadsp_speedup_r), this));
- m_adsp->space(AS_DATA).install_read_handler(0x1f9a, 0x1f9a, read16_delegate(FUNC(harddriv_state::hdds3_speedup_r), this));
+ m_adsp->space(AS_DATA).install_read_handler(0x1fff, 0x1fff, read16_delegate(*this, FUNC(harddriv_state::hdadsp_speedup_r)));
+ m_adsp->space(AS_DATA).install_read_handler(0x1f9a, 0x1f9a, read16_delegate(*this, FUNC(harddriv_state::hdds3_speedup_r)));
m_ds3_speedup_addr = &m_adsp_data_memory[0x1f9a];
m_ds3_speedup_pc = 0x2d9;
m_ds3_transfer_pc = 0x407da;
diff --git a/src/mame/drivers/hazeltin.cpp b/src/mame/drivers/hazeltin.cpp
index 2436ec53b7b..6df6ba1a5b5 100644
--- a/src/mame/drivers/hazeltin.cpp
+++ b/src/mame/drivers/hazeltin.cpp
@@ -756,9 +756,9 @@ void hazl1500_state::hazl1500(machine_config &config)
NETLIST_LOGIC_INPUT(config, NETLIST_TAG ":cpu_db6", "cpu_db6.IN", 0);
NETLIST_LOGIC_INPUT(config, NETLIST_TAG ":cpu_db7", "cpu_db7.IN", 0);
- NETLIST_ANALOG_OUTPUT(config, NETLIST_TAG ":video_out", 0).set_params("video_out", FUNC(hazl1500_state::video_out_cb), "");
- NETLIST_ANALOG_OUTPUT(config, NETLIST_TAG ":vblank", 0).set_params("vblank", FUNC(hazl1500_state::vblank_cb), "");
- NETLIST_ANALOG_OUTPUT(config, NETLIST_TAG ":tvinterq", 0).set_params("tvinterq", FUNC(hazl1500_state::tvinterq_cb), "");
+ NETLIST_ANALOG_OUTPUT(config, NETLIST_TAG ":video_out", 0).set_params("video_out", FUNC(hazl1500_state::video_out_cb));
+ NETLIST_ANALOG_OUTPUT(config, NETLIST_TAG ":vblank", 0).set_params("vblank", FUNC(hazl1500_state::vblank_cb));
+ NETLIST_ANALOG_OUTPUT(config, NETLIST_TAG ":tvinterq", 0).set_params("tvinterq", FUNC(hazl1500_state::tvinterq_cb));
/* keyboard controller */
AY3600(config, m_kbdc, 0);
diff --git a/src/mame/drivers/headonb.cpp b/src/mame/drivers/headonb.cpp
index 14271fa90ae..b13b9da1c66 100644
--- a/src/mame/drivers/headonb.cpp
+++ b/src/mame/drivers/headonb.cpp
@@ -81,7 +81,7 @@ TILE_GET_INFO_MEMBER(headonb_state::get_tile_info)
void headonb_state::video_start()
{
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(headonb_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(headonb_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
uint32_t headonb_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
diff --git a/src/mame/drivers/hektor.cpp b/src/mame/drivers/hektor.cpp
index 3fac622949d..33a0d8a090b 100644
--- a/src/mame/drivers/hektor.cpp
+++ b/src/mame/drivers/hektor.cpp
@@ -391,7 +391,7 @@ void hektor2_state::hektor2(machine_config &config)
m_maincpu->set_addrmap(AS_PROGRAM, &hektor2_state::hektor2_mem);
m_maincpu->in_sid_func().set(FUNC(hektor_state::sid_r));
m_maincpu->out_sod_func().set(FUNC(hektor_state::sod_w));
- m_maincpu->set_clk_out("i8155", FUNC(i8155_device::set_unscaled_clock));
+ m_maincpu->set_clk_out("i8155", FUNC(i8155_device::set_unscaled_clock_int));
I8155(config, m_i8155, 6.144_MHz_XTAL / 2);
m_i8155->out_pa_callback().set(FUNC(hektor_state::i8155_porta_w));
@@ -431,7 +431,7 @@ void hektor3_state::hektor3(machine_config &config)
m_maincpu->set_addrmap(AS_IO, &hektor3_state::hektor3_io);
m_maincpu->in_sid_func().set(FUNC(hektor_state::sid_r));
m_maincpu->out_sod_func().set(FUNC(hektor_state::sod_w));
- m_maincpu->set_clk_out("i8155", FUNC(i8155_device::set_unscaled_clock));
+ m_maincpu->set_clk_out("i8155", FUNC(i8155_device::set_unscaled_clock_int));
I8155(config, m_i8155, 16_MHz_XTAL / 4);
m_i8155->out_pa_callback().set(FUNC(hektor_state::i8155_porta_w));
@@ -464,7 +464,7 @@ void hektor3_state::hektor3(machine_config &config)
m_hd6845->set_screen(m_screen);
m_hd6845->set_show_border_area(false);
m_hd6845->set_char_width(8);
- m_hd6845->set_update_row_callback(FUNC(hektor3_state::crtc_update_row), this);
+ m_hd6845->set_update_row_callback(FUNC(hektor3_state::crtc_update_row));
}
diff --git a/src/mame/drivers/hh_tms1k.cpp b/src/mame/drivers/hh_tms1k.cpp
index 785b21de3e8..8abea869492 100644
--- a/src/mame/drivers/hh_tms1k.cpp
+++ b/src/mame/drivers/hh_tms1k.cpp
@@ -2274,7 +2274,7 @@ void quizwizc_state::quizwizc(machine_config &config)
/* cartridge */
generic_cartslot_device &cartslot(GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "quizwiz_cart"));
cartslot.set_must_be_loaded(true);
- cartslot.set_device_load(FUNC(quizwizc_state::cart_load), this);
+ cartslot.set_device_load(FUNC(quizwizc_state::cart_load));
SOFTWARE_LIST(config, "cart_list").set_original("quizwiz");
}
@@ -2462,7 +2462,7 @@ void tc4_state::tc4(machine_config &config)
/* cartridge */
generic_cartslot_device &cartslot(GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "tc4_cart"));
cartslot.set_must_be_loaded(true); // system won't power on without cartridge
- cartslot.set_device_load(FUNC(tc4_state::cart_load), this);
+ cartslot.set_device_load(FUNC(tc4_state::cart_load));
SOFTWARE_LIST(config, "cart_list").set_original("tc4");
}
diff --git a/src/mame/drivers/hitme.cpp b/src/mame/drivers/hitme.cpp
index 47d12658f37..993d0fc625c 100644
--- a/src/mame/drivers/hitme.cpp
+++ b/src/mame/drivers/hitme.cpp
@@ -60,13 +60,13 @@ WRITE8_MEMBER(hitme_state::hitme_vidram_w)
void hitme_state::video_start()
{
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(hitme_state::get_hitme_tile_info),this), TILEMAP_SCAN_ROWS, 8, 10, 40, 19);
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(hitme_state::get_hitme_tile_info)), TILEMAP_SCAN_ROWS, 8, 10, 40, 19);
}
VIDEO_START_MEMBER(hitme_state,barricad)
{
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(hitme_state::get_hitme_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 24);
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(hitme_state::get_hitme_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 24);
}
diff --git a/src/mame/drivers/hnayayoi.cpp b/src/mame/drivers/hnayayoi.cpp
index bd061e4c096..85c644b3e48 100644
--- a/src/mame/drivers/hnayayoi.cpp
+++ b/src/mame/drivers/hnayayoi.cpp
@@ -571,7 +571,7 @@ void hnayayoi_state::hnayayoi(machine_config &config)
crtc.set_char_width(4);
crtc.set_show_border_area(false);
crtc.out_vsync_callback().set_inputline(m_maincpu, 0);
- crtc.set_update_row_callback(FUNC(hnayayoi_state::hnayayoi_update_row), this);
+ crtc.set_update_row_callback(FUNC(hnayayoi_state::hnayayoi_update_row));
/* sound hardware */
SPEAKER(config, "mono").front_center();
@@ -611,7 +611,7 @@ void hnayayoi_state::untoucha(machine_config &config)
m_mainlatch->q_out_cb<3>().set(m_msm, FUNC(msm5205_device::reset_w)).invert();
m_mainlatch->q_out_cb<4>().set_nop(); // ?
- subdevice<hd6845s_device>("crtc")->set_update_row_callback(FUNC(hnayayoi_state::untoucha_update_row), this);
+ subdevice<hd6845s_device>("crtc")->set_update_row_callback(FUNC(hnayayoi_state::untoucha_update_row));
MCFG_VIDEO_START_OVERRIDE(hnayayoi_state,untoucha)
}
diff --git a/src/mame/drivers/homelab.cpp b/src/mame/drivers/homelab.cpp
index 55fe65152bc..e442c4d94fc 100644
--- a/src/mame/drivers/homelab.cpp
+++ b/src/mame/drivers/homelab.cpp
@@ -779,7 +779,7 @@ void homelab_state::homelab(machine_config &config)
CASSETTE(config, m_cass);
m_cass->add_route(ALL_OUTPUTS, "speaker", 0.05);
- QUICKLOAD(config, "quickload", "htp", attotime::from_seconds(2)).set_load_callback(FUNC(homelab_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "htp", attotime::from_seconds(2)).set_load_callback(FUNC(homelab_state::quickload_cb));
}
void homelab_state::homelab3(machine_config &config)
@@ -812,7 +812,7 @@ void homelab_state::homelab3(machine_config &config)
CASSETTE(config, m_cass);
m_cass->add_route(ALL_OUTPUTS, "speaker", 0.05);
- QUICKLOAD(config, "quickload", "htp", attotime::from_seconds(2)).set_load_callback(FUNC(homelab_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "htp", attotime::from_seconds(2)).set_load_callback(FUNC(homelab_state::quickload_cb));
}
void homelab_state::brailab4(machine_config &config)
@@ -847,7 +847,7 @@ void homelab_state::brailab4(machine_config &config)
CASSETTE(config, m_cass);
m_cass->add_route(ALL_OUTPUTS, "speaker", 0.05);
- QUICKLOAD(config, "quickload", "htp", attotime::from_seconds(18)).set_load_callback(FUNC(homelab_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "htp", attotime::from_seconds(18)).set_load_callback(FUNC(homelab_state::quickload_cb));
}
void homelab_state::init_brailab4()
diff --git a/src/mame/drivers/hornet.cpp b/src/mame/drivers/hornet.cpp
index 28bf3b28382..f3241347a3c 100644
--- a/src/mame/drivers/hornet.cpp
+++ b/src/mame/drivers/hornet.cpp
@@ -1431,7 +1431,7 @@ void hornet_state::init_hornet()
m_konppc->set_cgboard_texture_bank(0, "bank5", memregion("user5")->base());
m_led_reg0 = m_led_reg1 = 0x7f;
- m_maincpu->ppc4xx_spu_set_tx_handler(write8_delegate(FUNC(hornet_state::jamma_jvs_w), this));
+ m_maincpu->ppc4xx_spu_set_tx_handler(write8_delegate(*this, FUNC(hornet_state::jamma_jvs_w)));
}
void hornet_state::init_gradius4()
@@ -1458,7 +1458,7 @@ void hornet_state::init_sscope()
m_konppc->set_cgboard_texture_bank(1, "bank6", memregion("user5")->base());
m_led_reg0 = m_led_reg1 = 0x7f;
- m_maincpu->ppc4xx_spu_set_tx_handler(write8_delegate(FUNC(hornet_state::jamma_jvs_w), this));
+ m_maincpu->ppc4xx_spu_set_tx_handler(write8_delegate(*this, FUNC(hornet_state::jamma_jvs_w)));
}
void hornet_state::init_sscope2() //fixme: eventually set sscope2 to load gfx roms from the comm board
@@ -1467,7 +1467,7 @@ void hornet_state::init_sscope2() //fixme: eventually set sscope2 to load gfx ro
m_konppc->set_cgboard_texture_bank(1, "bank6", memregion("user5")->base());
m_led_reg0 = m_led_reg1 = 0x7f;
- m_maincpu->ppc4xx_spu_set_tx_handler(write8_delegate(FUNC(hornet_state::jamma_jvs_w), this));
+ m_maincpu->ppc4xx_spu_set_tx_handler(write8_delegate(*this, FUNC(hornet_state::jamma_jvs_w)));
}
/*****************************************************************************/
diff --git a/src/mame/drivers/hotstuff.cpp b/src/mame/drivers/hotstuff.cpp
index 407e4ab0d6d..446c4edbaab 100644
--- a/src/mame/drivers/hotstuff.cpp
+++ b/src/mame/drivers/hotstuff.cpp
@@ -13,11 +13,12 @@
class hotstuff_state : public driver_device
{
public:
- hotstuff_state(const machine_config &mconfig, device_type type, const char *tag)
- : driver_device(mconfig, type, tag),
+ hotstuff_state(const machine_config &mconfig, device_type type, const char *tag) :
+ driver_device(mconfig, type, tag),
m_bitmapram(*this, "bitmapram"),
m_maincpu(*this, "maincpu"),
- m_rtc(*this, "rtc") { }
+ m_rtc(*this, "rtc")
+ { }
void hotstuff(machine_config &config);
@@ -39,37 +40,35 @@ void hotstuff_state::video_start()
uint32_t hotstuff_state::screen_update_hotstuff(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- int count, y,yyy,x,xxx;
+ int yyy,xxx;
uint16_t row_palette_data[0x10];
rgb_t row_palette_data_as_rgb32_pen_data[0x10];
yyy=512;xxx=512*2;
- count = 0;
- for (y = 0; y < yyy; y++)
+ int count = 0;
+ for (int y = 0; y < yyy; y++)
{
// the current palette is stored in the first 0x20 bytes of each row!
- int p;
-
- for (p=0;p<0x10;p++)
+ for (int p = 0; p < 0x10; p++)
{
- row_palette_data[p] = m_bitmapram[count+p];
-
- row_palette_data_as_rgb32_pen_data[p] = rgb_t( (row_palette_data[p] & 0x0f00)>>4, (row_palette_data[p] & 0x00f0)>>0, (row_palette_data[p] & 0x000f)<<4 );
-
+ row_palette_data[p] = m_bitmapram[count + p];
+ row_palette_data_as_rgb32_pen_data[p] = rgb_t(
+ pal4bit(row_palette_data[p] >> 8),
+ pal4bit(row_palette_data[p] >> 4),
+ pal4bit(row_palette_data[p] >> 0));
}
- for(x = 0; x < xxx; x++)
+ for (int x = 0; x < xxx; )
{
- {
- bitmap.pix32(y, x) = row_palette_data_as_rgb32_pen_data[(m_bitmapram[count] &0xf000)>>12];
- x++;
- bitmap.pix32(y, x) = row_palette_data_as_rgb32_pen_data[(m_bitmapram[count] &0x0f00)>>8];
- x++;
- bitmap.pix32(y, x) = row_palette_data_as_rgb32_pen_data[(m_bitmapram[count] &0x00f0)>>4];
- x++;
- bitmap.pix32(y, x) = row_palette_data_as_rgb32_pen_data[(m_bitmapram[count] &0x000f)>>0];
- }
+ bitmap.pix32(y, x) = row_palette_data_as_rgb32_pen_data[(m_bitmapram[count] &0xf000)>>12];
+ x++;
+ bitmap.pix32(y, x) = row_palette_data_as_rgb32_pen_data[(m_bitmapram[count] &0x0f00)>>8];
+ x++;
+ bitmap.pix32(y, x) = row_palette_data_as_rgb32_pen_data[(m_bitmapram[count] &0x00f0)>>4];
+ x++;
+ bitmap.pix32(y, x) = row_palette_data_as_rgb32_pen_data[(m_bitmapram[count] &0x000f)>>0];
+ x++;
count++;
}
@@ -87,13 +86,9 @@ void hotstuff_state::hotstuff_map(address_map &map)
map(0x600000, 0x600003).rw("scc1", FUNC(z80scc_device::ab_dc_r), FUNC(z80scc_device::ab_dc_w));
map(0x620000, 0x620003).rw("scc2", FUNC(z80scc_device::ab_dc_r), FUNC(z80scc_device::ab_dc_w));
- map(0x680000, 0x680001).lrw8("rtc_rw",
- [this](offs_t offset) {
- return m_rtc->read(offset^1);
- },
- [this](offs_t offset, u8 data) {
- m_rtc->write(offset^1, data);
- });
+ map(0x680000, 0x680001).lrw8(
+ NAME([this] (offs_t offset) { return m_rtc->read(offset^1); }),
+ NAME([this] (offs_t offset, u8 data) { m_rtc->write(offset^1, data); }));
map(0x980000, 0x9bffff).ram().share("bitmapram");
}
diff --git a/src/mame/drivers/hp16500.cpp b/src/mame/drivers/hp16500.cpp
index 00b7f368484..c1f3ade02ba 100644
--- a/src/mame/drivers/hp16500.cpp
+++ b/src/mame/drivers/hp16500.cpp
@@ -429,7 +429,7 @@ void hp16500_state::hp1650(machine_config &config)
crtc.set_screen("screen");
crtc.set_show_border_area(false);
crtc.set_char_width(8);
- crtc.set_update_row_callback(FUNC(hp16500_state::crtc_update_row_1650), this);
+ crtc.set_update_row_callback(FUNC(hp16500_state::crtc_update_row_1650));
crtc.out_vsync_callback().set(FUNC(hp16500_state::vsync_changed));
MC2661(config, "epci", 5000000);
@@ -452,7 +452,7 @@ void hp16500_state::hp1651(machine_config &config)
crtc.set_screen("screen");
crtc.set_show_border_area(false);
crtc.set_char_width(8);
- crtc.set_update_row_callback(FUNC(hp16500_state::crtc_update_row_1650), this);
+ crtc.set_update_row_callback(FUNC(hp16500_state::crtc_update_row_1650));
crtc.out_vsync_callback().set(FUNC(hp16500_state::vsync_changed));
MC2661(config, "epci", 5000000);
@@ -475,7 +475,7 @@ void hp16500_state::hp16500a(machine_config &config)
crtc.set_screen("screen");
crtc.set_show_border_area(false);
crtc.set_char_width(8);
- crtc.set_update_row_callback(FUNC(hp16500_state::crtc_update_row), this);
+ crtc.set_update_row_callback(FUNC(hp16500_state::crtc_update_row));
crtc.out_vsync_callback().set(FUNC(hp16500_state::vsync_changed));
SPEAKER(config, "lspeaker").front_left();
diff --git a/src/mame/drivers/hp64k.cpp b/src/mame/drivers/hp64k.cpp
index 39b03e51f67..c67fb7348f1 100644
--- a/src/mame/drivers/hp64k.cpp
+++ b/src/mame/drivers/hp64k.cpp
@@ -1394,7 +1394,7 @@ void hp64k_state::hp64k(machine_config &config)
I8275(config, m_crtc, 2729045);
m_crtc->set_screen("screen");
m_crtc->set_character_width(9);
- m_crtc->set_display_callback(FUNC(hp64k_state::crtc_display_pixels), this);
+ m_crtc->set_display_callback(FUNC(hp64k_state::crtc_display_pixels));
m_crtc->drq_wr_callback().set(FUNC(hp64k_state::hp64k_crtc_drq_w));
m_crtc->vrtc_wr_callback().set(FUNC(hp64k_state::hp64k_crtc_vrtc_w));
diff --git a/src/mame/drivers/hp700.cpp b/src/mame/drivers/hp700.cpp
index b62d26bda1b..7dea387a8ac 100644
--- a/src/mame/drivers/hp700.cpp
+++ b/src/mame/drivers/hp700.cpp
@@ -38,13 +38,13 @@ void hp700_state::mem_map(address_map &map)
map(0x20000, 0x2ffff).ram();
map(0x30000, 0x31fff).ram().share("nvram");
map(0x34000, 0x34000).nopr();
- map(0x38000, 0x38fff).lrw8("duart_rw",
- [this](offs_t offset) {
+ map(0x38000, 0x38fff).lrw8(
+ NAME([this] (offs_t offset) {
return m_duart->read(offset >> 8);
- },
- [this](offs_t offset, u8 data) {
+ }),
+ NAME([this] (offs_t offset, u8 data) {
m_duart->write(offset >> 8, data);
- });
+ }));
map(0xffff0, 0xfffff).rom().region("maincpu", 0x1fff0);
}
diff --git a/src/mame/drivers/hp9825.cpp b/src/mame/drivers/hp9825.cpp
index d1512fa31c8..021ae268e1b 100644
--- a/src/mame/drivers/hp9825.cpp
+++ b/src/mame/drivers/hp9825.cpp
@@ -206,8 +206,8 @@ void hp9825_state::device_reset()
// Then, set r/w handlers of all installed I/O cards
int sc;
- read16_delegate rhandler;
- write16_delegate whandler;
+ read16_delegate rhandler(*this);
+ write16_delegate whandler(*this);
for (unsigned i = 0; i < 3; i++) {
if ((sc = m_io_slot[ i ]->get_rw_handlers(rhandler , whandler)) >= 0) {
logerror("Install R/W handlers for slot %u @ SC = %d\n", i, sc);
@@ -648,10 +648,10 @@ void hp9825_state::hp9825_base(machine_config &config)
m_io_sys->flg().set(m_cpu , FUNC(hp_09825_67907_cpu_device::flag_w));
m_io_sys->dmar().set(m_cpu , FUNC(hp_09825_67907_cpu_device::dmar_w));
- TIMER(config , m_cursor_timer , 0).configure_generic(timer_device::expired_delegate(FUNC(hp9825_state::cursor_blink) , this));
+ TIMER(config , m_cursor_timer , 0).configure_generic(FUNC(hp9825_state::cursor_blink));
// Keyboard scan timer. A scan of the whole keyboard should take 2^14 KDP clocks.
- TIMER(config , "kb_timer" , 0).configure_periodic(timer_device::expired_delegate(FUNC(hp9825_state::kb_scan) , this) , attotime::from_ticks(16384 , KDP_CLOCK));
+ TIMER(config , "kb_timer" , 0).configure_periodic(FUNC(hp9825_state::kb_scan), attotime::from_ticks(16384 , KDP_CLOCK));
// Tape drive
HP9825_TAPE(config , m_tape , 0);
@@ -662,12 +662,12 @@ void hp9825_state::hp9825_base(machine_config &config)
// Printer
BITBANGER(config , m_prt_alpha_out , 0);
BITBANGER(config , m_prt_graph_out , 0);
- TIMER(config , m_prt_timer , 0).configure_generic(timer_device::expired_delegate(FUNC(hp9825_state::prt_timer) , this));
+ TIMER(config , m_prt_timer , 0).configure_generic(FUNC(hp9825_state::prt_timer));
// Beeper
SPEAKER(config, "mono").front_center();
BEEP(config, m_beeper, BEEPER_FREQ).add_route(ALL_OUTPUTS, "mono", 1.00);
- TIMER(config , m_beep_timer , 0).configure_generic(timer_device::expired_delegate(FUNC(hp9825_state::beep_timer) , this));
+ TIMER(config , m_beep_timer , 0).configure_generic(FUNC(hp9825_state::beep_timer));
// I/O slots
for (unsigned slot = 0; slot < 3; slot++) {
diff --git a/src/mame/drivers/hp9845.cpp b/src/mame/drivers/hp9845.cpp
index 287117f7a7f..9ee599a727b 100644
--- a/src/mame/drivers/hp9845.cpp
+++ b/src/mame/drivers/hp9845.cpp
@@ -473,8 +473,8 @@ void hp9845_base_state::device_reset()
// Then, set r/w handlers of all installed I/O cards
int sc;
- read16_delegate rhandler;
- write16_delegate whandler;
+ read16_delegate rhandler(*this);
+ write16_delegate whandler(*this);
for (unsigned i = 0; 4 > i; ++i) {
if ((sc = m_io_slot[i]->get_rw_handlers(rhandler , whandler)) >= 0) {
logerror("Install R/W handlers for slot %u @ SC = %d\n", i, sc);
diff --git a/src/mame/drivers/hp9k_3xx.cpp b/src/mame/drivers/hp9k_3xx.cpp
index cdee08704d2..e982d119ff4 100644
--- a/src/mame/drivers/hp9k_3xx.cpp
+++ b/src/mame/drivers/hp9k_3xx.cpp
@@ -224,7 +224,7 @@ void hp9k3xx_state::machine_reset()
{
auto *dio = subdevice<bus::hp_dio::dio16_device>("diobus");
if (dio)
- m_maincpu->set_reset_callback(write_line_delegate(FUNC(bus::hp_dio::dio16_device::reset_in), dio));
+ m_maincpu->set_reset_callback(*dio, FUNC(bus::hp_dio::dio16_device::reset_in));
}
void hp9k3xx_state::machine_start()
diff --git a/src/mame/drivers/hprot1.cpp b/src/mame/drivers/hprot1.cpp
index 64c198ac95d..ef4a75e0db6 100644
--- a/src/mame/drivers/hprot1.cpp
+++ b/src/mame/drivers/hprot1.cpp
@@ -269,7 +269,7 @@ void hprot1_state::hprot1(machine_config &config)
HD44780(config, m_lcdc, 0);
m_lcdc->set_lcd_size(2, 16);
- m_lcdc->set_pixel_update_cb(FUNC(hprot1_state::hprot1_pixel_update), this);
+ m_lcdc->set_pixel_update_cb(FUNC(hprot1_state::hprot1_pixel_update));
/* TODO: figure out which RTC chip is in use. */
diff --git a/src/mame/drivers/hunter16.cpp b/src/mame/drivers/hunter16.cpp
index efc8f0ebd69..1beda6a059f 100644
--- a/src/mame/drivers/hunter16.cpp
+++ b/src/mame/drivers/hunter16.cpp
@@ -244,7 +244,7 @@ void hunter16_state::hunter1680(machine_config &config)
m_cga->set_screen("screen");
m_cga->set_show_border_area(false);
m_cga->set_char_width(8);
- m_cga->set_update_row_callback(FUNC(hunter16_state::crtc_update_row), this);
+ m_cga->set_update_row_callback(FUNC(hunter16_state::crtc_update_row));
}
ROM_START( hunter16 )
diff --git a/src/mame/drivers/hvyunit.cpp b/src/mame/drivers/hvyunit.cpp
index 28990353c76..fc190ea2d75 100644
--- a/src/mame/drivers/hvyunit.cpp
+++ b/src/mame/drivers/hvyunit.cpp
@@ -207,7 +207,7 @@ TILE_GET_INFO_MEMBER(hvyunit_state::get_bg_tile_info)
void hvyunit_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(hvyunit_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(hvyunit_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
save_item(NAME(m_scrollx));
save_item(NAME(m_scrolly));
@@ -216,8 +216,8 @@ void hvyunit_state::video_start()
uint32_t hvyunit_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
-#define SX_POS 96
-#define SY_POS 0
+ constexpr int SX_POS = 96;
+ constexpr int SY_POS = 0;
m_bg_tilemap->set_scrollx(0, ((m_port0_data & 0x40) << 2) + m_scrollx + SX_POS); // TODO
m_bg_tilemap->set_scrolly(0, ((m_port0_data & 0x80) << 1) + m_scrolly + SY_POS); // TODO
diff --git a/src/mame/drivers/hx20.cpp b/src/mame/drivers/hx20.cpp
index 9bd4eca1ff8..924664f719b 100644
--- a/src/mame/drivers/hx20.cpp
+++ b/src/mame/drivers/hx20.cpp
@@ -941,7 +941,7 @@ void hx20_state::hx20(machine_config &config)
// optional rom
GENERIC_SOCKET(config, m_optrom, generic_plain_slot, "opt_rom", "bin,rom");
- m_optrom->set_device_load(FUNC(hx20_state::optrom_load), this);
+ m_optrom->set_device_load(FUNC(hx20_state::optrom_load));
// software lists
SOFTWARE_LIST(config, "hx20_opt_list").set_original("hx20_rom");
diff --git a/src/mame/drivers/hyprduel.cpp b/src/mame/drivers/hyprduel.cpp
index 3804f6c0fa8..b70a3010429 100644
--- a/src/mame/drivers/hyprduel.cpp
+++ b/src/mame/drivers/hyprduel.cpp
@@ -554,10 +554,10 @@ void hyprduel_state::init_hyprduel()
m_int_num = 0x02;
/* cpu synchronization (severe timings) */
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xc0040e, 0xc00411, write16_delegate(FUNC(hyprduel_state::hyprduel_cpusync_trigger1_w),this));
- m_subcpu->space(AS_PROGRAM).install_read_handler(0xc00408, 0xc00409, read16_delegate(FUNC(hyprduel_state::hyprduel_cpusync_trigger1_r),this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xc00408, 0xc00409, write16_delegate(FUNC(hyprduel_state::hyprduel_cpusync_trigger2_w),this));
- m_subcpu->space(AS_PROGRAM).install_read_handler(0xfff34c, 0xfff34d, read16_delegate(FUNC(hyprduel_state::hyprduel_cpusync_trigger2_r),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xc0040e, 0xc00411, write16_delegate(*this, FUNC(hyprduel_state::hyprduel_cpusync_trigger1_w)));
+ m_subcpu->space(AS_PROGRAM).install_read_handler(0xc00408, 0xc00409, read16_delegate(*this, FUNC(hyprduel_state::hyprduel_cpusync_trigger1_r)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xc00408, 0xc00409, write16_delegate(*this, FUNC(hyprduel_state::hyprduel_cpusync_trigger2_w)));
+ m_subcpu->space(AS_PROGRAM).install_read_handler(0xfff34c, 0xfff34d, read16_delegate(*this, FUNC(hyprduel_state::hyprduel_cpusync_trigger2_r)));
}
void hyprduel_state::init_magerror()
diff --git a/src/mame/drivers/i7000.cpp b/src/mame/drivers/i7000.cpp
index 92b83714880..cbcec9c34a4 100644
--- a/src/mame/drivers/i7000.cpp
+++ b/src/mame/drivers/i7000.cpp
@@ -238,7 +238,7 @@ void i7000_state::machine_start()
if (m_card->exists())
{
// 0x4000 - 0xbfff 32KB ROM
- program.install_read_handler(0x4000, 0xbfff, read8sm_delegate(FUNC(generic_slot_device::read_rom),(generic_slot_device*)m_card));
+ program.install_read_handler(0x4000, 0xbfff, read8sm_delegate(*m_card, FUNC(generic_slot_device::read_rom)));
}
}
@@ -326,7 +326,7 @@ TILE_GET_INFO_MEMBER(i7000_state::get_bg_tile_info)
void i7000_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(i7000_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 40, 25);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(i7000_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 40, 25);
}
uint32_t i7000_state::screen_update_i7000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
@@ -364,7 +364,7 @@ void i7000_state::i7000(machine_config &config)
crtc.set_screen("screen");
crtc.set_show_border_area(true);
crtc.set_char_width(8);
- crtc.set_on_update_addr_change_callback(FUNC(i7000_state::crtc_addr), this);
+ crtc.set_on_update_addr_change_callback(FUNC(i7000_state::crtc_addr));
/* sound hardware */
SPEAKER(config, "mono").front_center();
@@ -387,7 +387,7 @@ void i7000_state::i7000(machine_config &config)
kbdc.in_ctrl_callback().set_constant(1); // TODO: Ctrl key
/* Cartridge slot */
- GENERIC_CARTSLOT(config, "cardslot", generic_romram_plain_slot, "i7000_card", "rom").set_device_load(FUNC(i7000_state::card_load), this);
+ GENERIC_CARTSLOT(config, "cardslot", generic_romram_plain_slot, "i7000_card", "rom").set_device_load(FUNC(i7000_state::card_load));
/* Software lists */
SOFTWARE_LIST(config, "card_list").set_original("i7000_card");
diff --git a/src/mame/drivers/ibmpcjr.cpp b/src/mame/drivers/ibmpcjr.cpp
index c50c9e373b5..2f296a5e45c 100644
--- a/src/mame/drivers/ibmpcjr.cpp
+++ b/src/mame/drivers/ibmpcjr.cpp
@@ -666,8 +666,8 @@ void pcjr_state::ibmpcjr(machine_config &config)
m_keyboard->keypress().set(FUNC(pcjr_state::keyb_interrupt));
/* cartridge */
- GENERIC_CARTSLOT(config, "cartslot1", generic_plain_slot, "ibmpcjr_cart", "bin,jrc").set_device_load(FUNC(pcjr_state::cart1_load), this);
- GENERIC_CARTSLOT(config, "cartslot2", generic_plain_slot, "ibmpcjr_cart", "bin,jrc").set_device_load(FUNC(pcjr_state::cart2_load), this);
+ GENERIC_CARTSLOT(config, "cartslot1", generic_plain_slot, "ibmpcjr_cart", "bin,jrc").set_device_load(FUNC(pcjr_state::cart1_load));
+ GENERIC_CARTSLOT(config, "cartslot2", generic_plain_slot, "ibmpcjr_cart", "bin,jrc").set_device_load(FUNC(pcjr_state::cart2_load));
/* internal ram */
RAM(config, m_ram).set_default_size("640K").set_extra_options("128K, 256K, 512K");
diff --git a/src/mame/drivers/icatel.cpp b/src/mame/drivers/icatel.cpp
index 571c32c3fbc..980143a307e 100644
--- a/src/mame/drivers/icatel.cpp
+++ b/src/mame/drivers/icatel.cpp
@@ -279,7 +279,7 @@ void icatel_state::icatel(machine_config &config)
HD44780(config, m_lcdc, 0);
m_lcdc->set_lcd_size(2, 16);
- m_lcdc->set_pixel_update_cb(FUNC(icatel_state::icatel_pixel_update), this);
+ m_lcdc->set_pixel_update_cb(FUNC(icatel_state::icatel_pixel_update));
}
ROM_START( icatel )
diff --git a/src/mame/drivers/icebox.cpp b/src/mame/drivers/icebox.cpp
index 3a1c7599cd7..373eaa2f22c 100644
--- a/src/mame/drivers/icebox.cpp
+++ b/src/mame/drivers/icebox.cpp
@@ -209,10 +209,10 @@ void icebox_state::io_map(address_map &map)
map.unmap_value_high();
map(0xe0, 0xe1).rw(m_uart0, FUNC(i8251_device::read), FUNC(i8251_device::write));
map(0xe2, 0xe3).rw(m_uart1, FUNC(i8251_device::read), FUNC(i8251_device::write));
- map(0xe4, 0xe7).lrw8("fdc_usage",
- [this](offs_t offset) { return m_fdc->read(offset^3); },
- [this](offs_t offset, u8 data) { m_fdc->write(offset^3, data); });
- map(0xf1, 0xf1).lw8("port_F1", [this](u8 data) { port_f1_w(data); } );
+ map(0xe4, 0xe7).lrw8(
+ NAME([this] (offs_t offset) { return m_fdc->read(offset^3); }),
+ NAME([this] (offs_t offset, u8 data) { m_fdc->write(offset^3, data); }));
+ map(0xf1, 0xf1).lw8(NAME([this] (u8 data) { port_f1_w(data); }));
}
/* Input ports */
diff --git a/src/mame/drivers/icecold.cpp b/src/mame/drivers/icecold.cpp
index 7d09be7a758..bc618d4185a 100644
--- a/src/mame/drivers/icecold.cpp
+++ b/src/mame/drivers/icecold.cpp
@@ -392,10 +392,10 @@ void icecold_state::icecold(machine_config &config)
kbdc.in_rl_callback().set(FUNC(icecold_state::kbd_r)); // kbd RL lines
// 30Hz signal from CH-C of ay0
- TIMER(config, "sint_timer", 0).configure_periodic(timer_device::expired_delegate(FUNC(icecold_state::icecold_sint_timer), this), attotime::from_hz(30));
+ TIMER(config, "sint_timer", 0).configure_periodic(FUNC(icecold_state::icecold_sint_timer), attotime::from_hz(30));
// for update motors position
- TIMER(config, "motors_timer", 0).configure_periodic(timer_device::expired_delegate(FUNC(icecold_state::icecold_motors_timer), this), attotime::from_msec(50));
+ TIMER(config, "motors_timer", 0).configure_periodic(FUNC(icecold_state::icecold_motors_timer), attotime::from_msec(50));
// video hardware
config.set_default_layout(layout_icecold);
diff --git a/src/mame/drivers/igs009.cpp b/src/mame/drivers/igs009.cpp
index 39186763171..0d6ac64a551 100644
--- a/src/mame/drivers/igs009.cpp
+++ b/src/mame/drivers/igs009.cpp
@@ -281,13 +281,13 @@ WRITE8_MEMBER(igs009_state::fg_color_w)
void igs009_state::video_start()
{
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(igs009_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 0x80,0x20);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(igs009_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 0x80,0x20);
m_fg_tilemap->set_transparent_pen(0);
- m_reel1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(igs009_state::get_jingbell_reel1_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 128, 8);
- m_reel2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(igs009_state::get_jingbell_reel2_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 128, 8);
- m_reel3_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(igs009_state::get_jingbell_reel3_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 128, 8);
- m_reel4_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(igs009_state::get_jingbell_reel4_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 128, 8);
+ m_reel1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(igs009_state::get_jingbell_reel1_tile_info)),TILEMAP_SCAN_ROWS,8,32, 128, 8);
+ m_reel2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(igs009_state::get_jingbell_reel2_tile_info)),TILEMAP_SCAN_ROWS,8,32, 128, 8);
+ m_reel3_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(igs009_state::get_jingbell_reel3_tile_info)),TILEMAP_SCAN_ROWS,8,32, 128, 8);
+ m_reel4_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(igs009_state::get_jingbell_reel4_tile_info)),TILEMAP_SCAN_ROWS,8,32, 128, 8);
m_reel1_tilemap->set_scroll_cols(128);
m_reel2_tilemap->set_scroll_cols(128);
@@ -298,13 +298,13 @@ void igs009_state::video_start()
VIDEO_START_MEMBER(igs009_state,gp98)
{
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(igs009_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 0x80,0x20);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(igs009_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 0x80,0x20);
m_fg_tilemap->set_transparent_pen(0);
- m_reel1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(igs009_state::get_gp98_reel1_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 128, 8);
- m_reel2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(igs009_state::get_gp98_reel2_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 128, 8);
- m_reel3_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(igs009_state::get_gp98_reel3_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 128, 8);
- m_reel4_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(igs009_state::get_gp98_reel4_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 128, 8);
+ m_reel1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(igs009_state::get_gp98_reel1_tile_info)),TILEMAP_SCAN_ROWS,8,32, 128, 8);
+ m_reel2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(igs009_state::get_gp98_reel2_tile_info)),TILEMAP_SCAN_ROWS,8,32, 128, 8);
+ m_reel3_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(igs009_state::get_gp98_reel3_tile_info)),TILEMAP_SCAN_ROWS,8,32, 128, 8);
+ m_reel4_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(igs009_state::get_gp98_reel4_tile_info)),TILEMAP_SCAN_ROWS,8,32, 128, 8);
m_reel1_tilemap->set_scroll_cols(128);
m_reel2_tilemap->set_scroll_cols(128);
diff --git a/src/mame/drivers/igs011.cpp b/src/mame/drivers/igs011.cpp
index 21b5163779b..c1e8262bcd1 100644
--- a/src/mame/drivers/igs011.cpp
+++ b/src/mame/drivers/igs011.cpp
@@ -1211,8 +1211,8 @@ void igs011_state::prot_mem_range_set()
address_space &sp = m_maincpu->space(AS_PROGRAM);
// Add protection memory range
- sp.install_write_handler(m_prot1_addr + 0, m_prot1_addr + 7, write8sm_delegate(FUNC(igs011_state::igs011_prot1_w), this), 0xff00);
- sp.install_read_handler (m_prot1_addr + 8, m_prot1_addr + 9, read16smo_delegate(FUNC(igs011_state::igs011_prot1_r), this));
+ sp.install_write_handler(m_prot1_addr + 0, m_prot1_addr + 7, write8sm_delegate(*this, FUNC(igs011_state::igs011_prot1_w)), 0xff00);
+ sp.install_read_handler (m_prot1_addr + 8, m_prot1_addr + 9, read16smo_delegate(*this, FUNC(igs011_state::igs011_prot1_r)));
}
/*
READ16_MEMBER(igs011_state::igs011_prot_fake_r)
@@ -2179,7 +2179,7 @@ void igs011_state::init_drgnwrldv21()
drgnwrld_type2_decrypt();
drgnwrld_gfx_decrypt();
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xd4c0, 0xd4ff, read16smo_delegate(FUNC(igs011_state::drgnwrldv21_igs011_prot2_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xd4c0, 0xd4ff, read16smo_delegate(*this, FUNC(igs011_state::drgnwrldv21_igs011_prot2_r)));
/*
// PROTECTION CHECKS
// bp 32ee; bp 11ca8; bp 23d5e; bp 23fd0; bp 24170; bp 24348; bp 2454e; bp 246cc; bp 24922; bp 24b66; bp 24de2; bp 2502a; bp 25556; bp 269de; bp 2766a; bp 2a830
@@ -2263,7 +2263,7 @@ void igs011_state::init_drgnwrldv40k()
drgnwrldv40k_decrypt();
drgnwrld_gfx_decrypt();
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xd4c0, 0xd4ff, read16smo_delegate(FUNC(igs011_state::drgnwrldv40k_igs011_prot2_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xd4c0, 0xd4ff, read16smo_delegate(*this, FUNC(igs011_state::drgnwrldv40k_igs011_prot2_r)));
}
void igs011_state::init_drgnwrldv11h()
@@ -2327,7 +2327,7 @@ void igs011_state::init_dbc()
dbc_decrypt();
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x10600, 0x107ff, read16smo_delegate(FUNC(igs011_state::dbc_igs011_prot2_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x10600, 0x107ff, read16smo_delegate(*this, FUNC(igs011_state::dbc_igs011_prot2_r)));
/*
// PROTECTION CHECKS
rom[0x04c42/2] = 0x602e; // 004C42: 6604 bne 4c48 (rom test error otherwise)
@@ -2357,7 +2357,7 @@ void igs011_state::init_ryukobou()
ryukobou_decrypt();
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x10600, 0x107ff, read16smo_delegate(FUNC(igs011_state::ryukobou_igs011_prot2_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x10600, 0x107ff, read16smo_delegate(*this, FUNC(igs011_state::ryukobou_igs011_prot2_r)));
// PROTECTION CHECKS
// rom[0x2df68/2] = 0x4e75; // 02DF68: 4E56 FE00 link A6, #-$200 (fills palette with pink otherwise)
diff --git a/src/mame/drivers/igs017.cpp b/src/mame/drivers/igs017.cpp
index 0cd875582a4..7849ed274a8 100644
--- a/src/mame/drivers/igs017.cpp
+++ b/src/mame/drivers/igs017.cpp
@@ -1251,7 +1251,7 @@ void igs017_state::init_lhzb2()
lhzb2_patch_rom();
// install and configure protection device(s)
-// m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xda5610, 0xda5613, read16_delegate(FUNC(igs025_device::killbld_igs025_prot_r), (igs025_device*)m_igs025), write16_delegate(FUNC(igs025_device::killbld_igs025_prot_w), (igs025_device*)m_igs025));
+// m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xda5610, 0xda5613, read16_delegate(*m_igs025, FUNC(igs025_device::killbld_igs025_prot_r)), write16_delegate(*m_igs025, FUNC(igs025_device::killbld_igs025_prot_w)));
// m_igs025->m_kb_source_data = dw3_source_data;
// m_igs025->m_kb_source_data_offset = 0;
// m_igs025->m_kb_game_id = 0x00060000;
@@ -1424,7 +1424,7 @@ void igs017_state::init_slqz2()
slqz2_patch_rom();
// install and configure protection device(s)
-// m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xda5610, 0xda5613, read16_delegate(FUNC(igs025_device::killbld_igs025_prot_r), (igs025_device*)m_igs025), write16_delegate(FUNC(igs025_device::killbld_igs025_prot_w), (igs025_device*)m_igs025));
+// m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xda5610, 0xda5613, read16_delegate(*m_igs025, FUNC(igs025_device::killbld_igs025_prot_r)), write16_delegate(*m_igs025, FUNC(igs025_device::killbld_igs025_prot_w)));
// m_igs025->m_kb_source_data = dw3_source_data;
// m_igs025->m_kb_source_data_offset = 0;
// m_igs025->m_kb_game_id = 0x00060000;
@@ -1525,10 +1525,10 @@ void igs017_state::iqblocka_remap_addr_w(offs_t offset, u8 data)
// Add new memory ranges
address_space &prg_space = m_maincpu->space(AS_PROGRAM);
- prg_space.install_write_handler(m_remap_addr + 0x0, m_remap_addr + 0x0, write8smo_delegate(FUNC(igs_incdec_device::reset_w), &(*m_igs_incdec)));
- prg_space.install_write_handler(m_remap_addr + 0x1, m_remap_addr + 0x1, write8smo_delegate(FUNC(igs_incdec_device::dec_w), &(*m_igs_incdec)));
- prg_space.install_write_handler(m_remap_addr + 0x3, m_remap_addr + 0x3, write8smo_delegate(FUNC(igs_incdec_device::inc_w), &(*m_igs_incdec)));
- prg_space.install_read_handler (m_remap_addr + 0x5, m_remap_addr + 0x5, read8smo_delegate (FUNC(igs_incdec_device::val_r), &(*m_igs_incdec)));
+ prg_space.install_write_handler(m_remap_addr + 0x0, m_remap_addr + 0x0, write8smo_delegate(*m_igs_incdec, FUNC(igs_incdec_device::reset_w)));
+ prg_space.install_write_handler(m_remap_addr + 0x1, m_remap_addr + 0x1, write8smo_delegate(*m_igs_incdec, FUNC(igs_incdec_device::dec_w)));
+ prg_space.install_write_handler(m_remap_addr + 0x3, m_remap_addr + 0x3, write8smo_delegate(*m_igs_incdec, FUNC(igs_incdec_device::inc_w)));
+ prg_space.install_read_handler (m_remap_addr + 0x5, m_remap_addr + 0x5, read8smo_delegate (*m_igs_incdec, FUNC(igs_incdec_device::val_r)));
logerror("%s: incdec protection remapped at %04x\n", machine().describe_context(), m_remap_addr);
}
@@ -2254,11 +2254,11 @@ void igs017_state::lhzb2a_remap_addr_w(address_space &space, u16 data)
m_remap_addr = data & 0xff;
// Add new memory ranges
- space.install_write_handler (m_remap_addr * 0x10000 + 0x4001, m_remap_addr * 0x10000 + 0x4001, write8smo_delegate(FUNC(igs_bitswap_device::address_w), &(*m_igs_bitswap)));
- space.install_readwrite_handler(m_remap_addr * 0x10000 + 0x4003, m_remap_addr * 0x10000 + 0x4003, read8smo_delegate (FUNC(igs_bitswap_device::data_r), &(*m_igs_bitswap)), write8smo_delegate(FUNC(igs_bitswap_device::data_w), &(*m_igs_bitswap)));
+ space.install_write_handler (m_remap_addr * 0x10000 + 0x4001, m_remap_addr * 0x10000 + 0x4001, write8smo_delegate(*m_igs_bitswap, FUNC(igs_bitswap_device::address_w)));
+ space.install_readwrite_handler(m_remap_addr * 0x10000 + 0x4003, m_remap_addr * 0x10000 + 0x4003, read8smo_delegate (*m_igs_bitswap, FUNC(igs_bitswap_device::data_r)), write8smo_delegate(*m_igs_bitswap, FUNC(igs_bitswap_device::data_w)));
- space.install_read_handler (m_remap_addr * 0x10000 + 0x8000, m_remap_addr * 0x10000 + 0x8005, read16sm_delegate (FUNC(igs017_state::lhzb2a_input_r), this));
- space.install_write_handler (m_remap_addr * 0x10000 + 0xc000, m_remap_addr * 0x10000 + 0xc001, write16mo_delegate(FUNC(igs017_state::lhzb2a_remap_addr_w), this));
+ space.install_read_handler (m_remap_addr * 0x10000 + 0x8000, m_remap_addr * 0x10000 + 0x8005, read16sm_delegate (*this, FUNC(igs017_state::lhzb2a_input_r)));
+ space.install_write_handler (m_remap_addr * 0x10000 + 0xc000, m_remap_addr * 0x10000 + 0xc001, write16mo_delegate(*this, FUNC(igs017_state::lhzb2a_remap_addr_w)));
logerror("%s: inputs and protection remapped at %02xxxxx\n", machine().describe_context(), m_remap_addr);
}
@@ -3618,7 +3618,7 @@ void igs017_state::mgcs(machine_config &config)
m_screen->set_palette("igs017_igs031:palette");
IGS017_IGS031(config, m_igs017_igs031, 0);
- m_igs017_igs031->set_palette_scramble_cb(FUNC(igs017_state::mgcs_palette_bitswap), this);
+ m_igs017_igs031->set_palette_scramble_cb(FUNC(igs017_state::mgcs_palette_bitswap));
m_igs017_igs031->set_i8255_tag("ppi8255");
// sound
@@ -3645,7 +3645,7 @@ void igs017_state::lhzb2(machine_config &config)
// protection
IGS025(config, m_igs025, 0);
- m_igs025->set_external_cb(FUNC(igs017_state::igs025_to_igs022_callback), this);
+ m_igs025->set_external_cb(FUNC(igs017_state::igs025_to_igs022_callback));
IGS022(config, m_igs022, 0);
@@ -3659,7 +3659,7 @@ void igs017_state::lhzb2(machine_config &config)
m_screen->set_palette("igs017_igs031:palette");
IGS017_IGS031(config, m_igs017_igs031, 0);
- m_igs017_igs031->set_palette_scramble_cb(FUNC(igs017_state::lhzb2a_palette_bitswap), this);
+ m_igs017_igs031->set_palette_scramble_cb(FUNC(igs017_state::lhzb2a_palette_bitswap));
m_igs017_igs031->set_i8255_tag("ppi8255");
// sound
@@ -3708,7 +3708,7 @@ void igs017_state::lhzb2a(machine_config &config)
m_screen->set_palette("igs017_igs031:palette");
IGS017_IGS031(config, m_igs017_igs031, 0);
- m_igs017_igs031->set_palette_scramble_cb(FUNC(igs017_state::lhzb2a_palette_bitswap), this);
+ m_igs017_igs031->set_palette_scramble_cb(FUNC(igs017_state::lhzb2a_palette_bitswap));
// m_igs017_igs031->set_i8255_tag("ppi8255");
// sound
@@ -3735,7 +3735,7 @@ void igs017_state::slqz2(machine_config &config)
// protection
IGS025(config, m_igs025, 0);
- m_igs025->set_external_cb(FUNC(igs017_state::igs025_to_igs022_callback), this);
+ m_igs025->set_external_cb(FUNC(igs017_state::igs025_to_igs022_callback));
IGS022(config, m_igs022, 0);
@@ -3749,7 +3749,7 @@ void igs017_state::slqz2(machine_config &config)
m_screen->set_palette("igs017_igs031:palette");
IGS017_IGS031(config, m_igs017_igs031, 0);
- m_igs017_igs031->set_palette_scramble_cb(FUNC(igs017_state::slqz2_palette_bitswap), this);
+ m_igs017_igs031->set_palette_scramble_cb(FUNC(igs017_state::slqz2_palette_bitswap));
m_igs017_igs031->set_i8255_tag("ppi8255");
// sound
@@ -3861,7 +3861,7 @@ void igs017_state::tjsb(machine_config &config)
m_screen->set_palette("igs017_igs031:palette");
IGS017_IGS031(config, m_igs017_igs031, 0);
- m_igs017_igs031->set_palette_scramble_cb(FUNC(igs017_state::tjsb_palette_bitswap), this);
+ m_igs017_igs031->set_palette_scramble_cb(FUNC(igs017_state::tjsb_palette_bitswap));
m_igs017_igs031->set_i8255_tag("ppi8255");
// sound
diff --git a/src/mame/drivers/igspoker.cpp b/src/mame/drivers/igspoker.cpp
index 375103f79d0..6d16a897b6f 100644
--- a/src/mame/drivers/igspoker.cpp
+++ b/src/mame/drivers/igspoker.cpp
@@ -243,8 +243,8 @@ WRITE8_MEMBER(igspoker_state::fg_color_w)
void igspoker_state::video_start()
{
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(igspoker_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(igspoker_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(igspoker_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(igspoker_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
m_fg_tilemap->set_transparent_pen(0);
}
@@ -263,7 +263,7 @@ uint32_t igspoker_state::screen_update_igs_video(screen_device &screen, bitmap_i
VIDEO_START_MEMBER(igspoker_state,cpokerpk)
{
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(igspoker_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(igspoker_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
}
uint32_t igspoker_state::screen_update_cpokerpk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
diff --git a/src/mame/drivers/instruct.cpp b/src/mame/drivers/instruct.cpp
index 18800bda6cb..3dd09c9c9d2 100644
--- a/src/mame/drivers/instruct.cpp
+++ b/src/mame/drivers/instruct.cpp
@@ -435,7 +435,7 @@ void instruct_state::instruct(machine_config &config)
config.set_default_layout(layout_instruct);
/* quickload */
- QUICKLOAD(config, "quickload", "pgm", attotime::from_seconds(1)).set_load_callback(FUNC(instruct_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "pgm", attotime::from_seconds(1)).set_load_callback(FUNC(instruct_state::quickload_cb));
SPEAKER(config, "mono").front_center();
diff --git a/src/mame/drivers/intellec4.cpp b/src/mame/drivers/intellec4.cpp
index ab4fb38a922..8ea1f468107 100644
--- a/src/mame/drivers/intellec4.cpp
+++ b/src/mame/drivers/intellec4.cpp
@@ -1133,7 +1133,7 @@ void mod4_state::mod4(machine_config &config)
cpu.set_ram_status_map(&mod4_state::intellec4_ram_status);
cpu.set_ram_ports_map(&mod4_state::intellec4_ram_ports);
cpu.set_program_memory_map(&mod4_state::intellec4_program_memory);
- cpu.set_bus_cycle_cb(FUNC(mod4_state::bus_cycle), this);
+ cpu.set_bus_cycle_cb(FUNC(mod4_state::bus_cycle));
cpu.sync_cb().set(m_bus, FUNC(bus::intellec4::univ_bus_device::sync_in));
m_bus->test_out_cb().set(FUNC(mod4_state::bus_test));
@@ -1359,7 +1359,7 @@ void mod40_state::mod40(machine_config &config)
cpu.set_ram_status_map(&mod40_state::intellec4_ram_status);
cpu.set_ram_ports_map(&mod40_state::intellec4_ram_ports);
cpu.set_program_memory_map(&mod40_state::intellec4_program_memory);
- cpu.set_bus_cycle_cb(FUNC(mod40_state::bus_cycle), this);
+ cpu.set_bus_cycle_cb(FUNC(mod40_state::bus_cycle));
cpu.sync_cb().set(m_bus, FUNC(bus::intellec4::univ_bus_device::sync_in));
cpu.stp_ack_cb().set(FUNC(mod40_state::stp_ack));
diff --git a/src/mame/drivers/intellect02.cpp b/src/mame/drivers/intellect02.cpp
index a448b2f3cee..3a2b9f731f0 100644
--- a/src/mame/drivers/intellect02.cpp
+++ b/src/mame/drivers/intellect02.cpp
@@ -255,7 +255,7 @@ void intel02_state::intel02(machine_config &config)
/* cartridge */
GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "intellect02", "bin");
- m_cart->set_device_load(FUNC(intel02_state::cart_load), this);
+ m_cart->set_device_load(FUNC(intel02_state::cart_load));
m_cart->set_must_be_loaded(true);
SOFTWARE_LIST(config, "cart_list").set_original("intellect02");
diff --git a/src/mame/drivers/interpro.cpp b/src/mame/drivers/interpro.cpp
index aa3ba92913e..bbed9c9023b 100644
--- a/src/mame/drivers/interpro.cpp
+++ b/src/mame/drivers/interpro.cpp
@@ -532,13 +532,9 @@ void interpro_state::interpro_common_map(address_map &map)
map(0x7f000400, 0x7f00040f).rw(m_scc1, FUNC(z80scc_device::ab_dc_r), FUNC(z80scc_device::ab_dc_w)).umask32(0x000000ff);
map(0x7f000410, 0x7f00041f).rw(m_scc2, FUNC(z80scc_device::ab_dc_r), FUNC(z80scc_device::ab_dc_w)).umask32(0x000000ff);
- map(0x7f000500, 0x7f000503).lrw8("rtc_rw",
- [this](offs_t offset) {
- return m_rtc->read(offset^1);
- },
- [this](offs_t offset, u8 data) {
- m_rtc->write(offset^1, data);
- }).umask32(0x000000ff);
+ map(0x7f000500, 0x7f000503).lrw8(
+ NAME([this] (offs_t offset) { return m_rtc->read(offset^1); }),
+ NAME([this] (offs_t offset, u8 data) { m_rtc->write(offset^1, data); })).umask32(0x000000ff);
map(0x7f000600, 0x7f000600).w(m_rtc, FUNC(mc146818_device::write));
// the system board id prom
diff --git a/src/mame/drivers/inufuku.cpp b/src/mame/drivers/inufuku.cpp
index afa9dbebeb7..5cb19f1bbf6 100644
--- a/src/mame/drivers/inufuku.cpp
+++ b/src/mame/drivers/inufuku.cpp
@@ -359,7 +359,7 @@ void inufuku_state::inufuku(machine_config &config)
VSYSTEM_SPR(config, m_spr, 0);
m_spr->set_offsets(0, 1); // reference videos confirm at least the +1 against tilemaps in 3on3dunk (the highscore header text and black box are meant to be 1 pixel misaligned, although there is currently a priority bug there too)
m_spr->set_pdraw(true);
- m_spr->set_tile_indirect_cb(FUNC(inufuku_state::inufuku_tile_callback), this);
+ m_spr->set_tile_indirect_cb(FUNC(inufuku_state::inufuku_tile_callback));
m_spr->set_gfx_region(2);
m_spr->set_gfxdecode_tag(m_gfxdecode);
diff --git a/src/mame/drivers/ipds.cpp b/src/mame/drivers/ipds.cpp
index e6e9663d9f0..84829a4dd35 100644
--- a/src/mame/drivers/ipds.cpp
+++ b/src/mame/drivers/ipds.cpp
@@ -153,7 +153,7 @@ void ipds_state::ipds(machine_config &config)
I8275(config, m_crtc, XTAL(19'660'800) / 4);
m_crtc->set_character_width(6);
- m_crtc->set_display_callback(FUNC(ipds_state::crtc_display_pixels), this);
+ m_crtc->set_display_callback(FUNC(ipds_state::crtc_display_pixels));
generic_keyboard_device &keyboard(GENERIC_KEYBOARD(config, "keyboard", 0));
keyboard.set_keyboard_callback(FUNC(ipds_state::kbd_put));
diff --git a/src/mame/drivers/iqblock.cpp b/src/mame/drivers/iqblock.cpp
index 5370a943e52..3b7c86eb1d1 100644
--- a/src/mame/drivers/iqblock.cpp
+++ b/src/mame/drivers/iqblock.cpp
@@ -487,7 +487,7 @@ void iqblock_state::init_iqblock()
if ((i & 0x0090) == 0x0010) rom[i] ^= 0x20;
}
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xfe26, 0xfe26, write8_delegate(FUNC(iqblock_state::iqblock_prot_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xfe26, 0xfe26, write8_delegate(*this, FUNC(iqblock_state::iqblock_prot_w)));
m_video_type=1;
}
@@ -502,7 +502,7 @@ void iqblock_state::init_grndtour()
if ((i & 0x0060) == 0x0040) rom[i] ^= 0x20;
}
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xfe39, 0xfe39, write8_delegate(FUNC(iqblock_state::grndtour_prot_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xfe39, 0xfe39, write8_delegate(*this, FUNC(iqblock_state::grndtour_prot_w)));
m_video_type=0;
}
diff --git a/src/mame/drivers/is48x.cpp b/src/mame/drivers/is48x.cpp
index 0bdd2809890..6de9194a742 100644
--- a/src/mame/drivers/is48x.cpp
+++ b/src/mame/drivers/is48x.cpp
@@ -94,7 +94,7 @@ void is48x_state::is482(machine_config &config)
m_crtc->set_char_width(14); // guess
m_crtc->set_screen("screen");
m_crtc->set_show_border_area(false);
- m_crtc->set_update_row_callback(FUNC(is48x_state::update_row), this);
+ m_crtc->set_update_row_callback(FUNC(is48x_state::update_row));
}
ROM_START(is482) // "IS-488-A" on case
diff --git a/src/mame/drivers/istrebiteli.cpp b/src/mame/drivers/istrebiteli.cpp
index 2121be3167b..2fe3a802067 100644
--- a/src/mame/drivers/istrebiteli.cpp
+++ b/src/mame/drivers/istrebiteli.cpp
@@ -272,14 +272,14 @@ void istrebiteli_state::init_moto()
void istrebiteli_state::video_start()
{
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(istrebiteli_state::get_tile_info), this), TILEMAP_SCAN_ROWS,
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(istrebiteli_state::get_tile_info)), TILEMAP_SCAN_ROWS,
8, 16, 16, 1);
m_tilemap->set_scrolldx(96, 96);
}
VIDEO_START_MEMBER(istrebiteli_state, moto)
{
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(istrebiteli_state::get_tile_info), this), TILEMAP_SCAN_ROWS,
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(istrebiteli_state::get_tile_info)), TILEMAP_SCAN_ROWS,
8, 16, 16, 1);
m_tilemap->set_scrolldx(96, 96);
m_tilemap->set_scrolldy(8, 8);
diff --git a/src/mame/drivers/itech32.cpp b/src/mame/drivers/itech32.cpp
index 0e8d9c77dad..3cd7a902dbf 100644
--- a/src/mame/drivers/itech32.cpp
+++ b/src/mame/drivers/itech32.cpp
@@ -4447,8 +4447,8 @@ void drivedge_state::driver_init()
m_vram_height = 1024;
m_planes = 1;
- m_dsp[0]->space(AS_PROGRAM).install_read_handler(0x8382, 0x8382, read32_delegate(FUNC(drivedge_state::tms1_speedup_r),this));
- m_dsp[1]->space(AS_PROGRAM).install_read_handler(0x8382, 0x8382, read32_delegate(FUNC(drivedge_state::tms2_speedup_r),this));
+ m_dsp[0]->space(AS_PROGRAM).install_read_handler(0x8382, 0x8382, read32_delegate(*this, FUNC(drivedge_state::tms1_speedup_r)));
+ m_dsp[1]->space(AS_PROGRAM).install_read_handler(0x8382, 0x8382, read32_delegate(*this, FUNC(drivedge_state::tms2_speedup_r)));
}
@@ -4464,10 +4464,10 @@ void itech32_state::init_wcbowl()
m_vram_height = 1024;
m_planes = 1;
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x680000, 0x680001, read8smo_delegate(FUNC(itech32_state::trackball_r),this), 0x00ff);
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x680000, 0x680001, read8smo_delegate(*this, FUNC(itech32_state::trackball_r)), 0x00ff);
m_maincpu->space(AS_PROGRAM).nop_read(0x578000, 0x57ffff);
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x680080, 0x680081, read16smo_delegate(FUNC(itech32_state::wcbowl_prot_result_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x680080, 0x680081, read16smo_delegate(*this, FUNC(itech32_state::wcbowl_prot_result_r)));
m_maincpu->space(AS_PROGRAM).nop_write(0x680080, 0x680081);
}
@@ -4484,11 +4484,11 @@ void itech32_state::init_wcbowlj()
m_vram_height = 1024;
m_planes = 1;
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x680000, 0x680001, read8smo_delegate(FUNC(itech32_state::trackball_r),this), 0x00ff);
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x680040, 0x680041, read8smo_delegate(FUNC(itech32_state::trackball_p2_r),this), 0x00ff);
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x680000, 0x680001, read8smo_delegate(*this, FUNC(itech32_state::trackball_r)), 0x00ff);
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x680040, 0x680041, read8smo_delegate(*this, FUNC(itech32_state::trackball_p2_r)), 0x00ff);
m_maincpu->space(AS_PROGRAM).nop_read(0x578000, 0x57ffff);
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x680080, 0x680081, read16smo_delegate(FUNC(itech32_state::wcbowl_prot_result_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x680080, 0x680081, read16smo_delegate(*this, FUNC(itech32_state::wcbowl_prot_result_r)));
m_maincpu->space(AS_PROGRAM).nop_write(0x680080, 0x680081);
}
@@ -4501,8 +4501,8 @@ void itech32_state::init_sftm_common(int prot_addr)
m_itech020_prot_address = prot_addr;
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x300000, 0x300003, write8smo_delegate(FUNC(itech32_state::color_w<0>),this), 0x000000ff);
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x380000, 0x380003, write8smo_delegate(FUNC(itech32_state::color_w<1>),this), 0x000000ff);
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x300000, 0x300003, write8smo_delegate(*this, FUNC(itech32_state::color_w<0>)), 0x000000ff);
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x380000, 0x380003, write8smo_delegate(*this, FUNC(itech32_state::color_w<1>)), 0x000000ff);
}
@@ -4531,10 +4531,10 @@ void itech32_state::init_shuffle_bowl_common(int prot_addr)
m_itech020_prot_address = prot_addr;
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x300000, 0x300003, write8smo_delegate(FUNC(itech32_state::color_w<0>),this), 0x000000ff);
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x380000, 0x380003, write8smo_delegate(FUNC(itech32_state::color_w<1>),this), 0x000000ff);
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x180800, 0x180803, read32smo_delegate(FUNC(itech32_state::trackball32_4bit_p1_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x181000, 0x181003, read32smo_delegate(FUNC(itech32_state::trackball32_4bit_p2_r),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x300000, 0x300003, write8smo_delegate(*this, FUNC(itech32_state::color_w<0>)), 0x000000ff);
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x380000, 0x380003, write8smo_delegate(*this, FUNC(itech32_state::color_w<1>)), 0x000000ff);
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x180800, 0x180803, read32smo_delegate(*this, FUNC(itech32_state::trackball32_4bit_p1_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x181000, 0x181003, read32smo_delegate(*this, FUNC(itech32_state::trackball32_4bit_p2_r)));
}
@@ -4552,7 +4552,7 @@ void itech32_state::init_wcbowln()
void itech32_state::install_timekeeper()
{
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x681000, 0x6817ff, read8sm_delegate(FUNC(timekeeper_device::read), &(*m_timekeeper)), write8sm_delegate(FUNC(timekeeper_device::write), &(*m_timekeeper)), 0xffffffff);
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x681000, 0x6817ff, read8sm_delegate(*m_timekeeper, FUNC(timekeeper_device::read)), write8sm_delegate(*m_timekeeper, FUNC(timekeeper_device::write)), 0xffffffff);
}
void itech32_state::init_wcbowlt()
@@ -4582,7 +4582,7 @@ void itech32_state::init_gt3d()
Hacked versions of this PCB have been found with GT97
through GTClassic. This is _NOT_ a factory modification
*/
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x200000, 0x200003, read16smo_delegate(FUNC(itech32_state::trackball_8bit_r),this), 0x0000ffff);
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x200000, 0x200003, read16smo_delegate(*this, FUNC(itech32_state::trackball_8bit_r)), 0x0000ffff);
init_gt_common();
}
@@ -4595,8 +4595,8 @@ void itech32_state::init_aama()
board share the same sound CPU code and sample ROMs.
This board has all versions of GT for it, GT3D through GTClassic
*/
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x180800, 0x180803, read32smo_delegate(FUNC(itech32_state::trackball32_4bit_p1_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x181000, 0x181003, read32smo_delegate(FUNC(itech32_state::trackball32_4bit_p2_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x180800, 0x180803, read32smo_delegate(*this, FUNC(itech32_state::trackball32_4bit_p1_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x181000, 0x181003, read32smo_delegate(*this, FUNC(itech32_state::trackball32_4bit_p2_r)));
init_gt_common();
}
@@ -4620,7 +4620,7 @@ void itech32_state::init_s_ver()
board: GT97 v1.21S, GT98, GT99, GT2K & GT Classic Versions 1.00S
Trackball info is read through 200202 (actually 200203).
*/
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x200200, 0x200203, read32smo_delegate(FUNC(itech32_state::trackball32_4bit_p1_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x200200, 0x200203, read32smo_delegate(*this, FUNC(itech32_state::trackball32_4bit_p1_r)));
init_gt_common();
}
@@ -4634,7 +4634,7 @@ void itech32_state::init_gt3dl()
Player 1 trackball read through 200003
Player 2 trackball read through 200002
*/
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x200000, 0x200003, read32smo_delegate(FUNC(itech32_state::trackball32_4bit_combined_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x200000, 0x200003, read32smo_delegate(*this, FUNC(itech32_state::trackball32_4bit_combined_r)));
init_gt_common();
}
@@ -4642,7 +4642,7 @@ void itech32_state::init_gt3dl()
void itech32_state::init_gt2kp()
{
/* a little extra protection */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x680000, 0x680003, read32smo_delegate(FUNC(itech32_state::gt2kp_prot_result_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x680000, 0x680003, read32smo_delegate(*this, FUNC(itech32_state::gt2kp_prot_result_r)));
init_aama();
/* The protection code is:
@@ -4663,7 +4663,7 @@ Label1 bne.s Label1 ; Infinite loop if result isn't 0x01
void itech32_state::init_gtclasscp()
{
/* a little extra protection */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x680000, 0x680003, read32smo_delegate(FUNC(itech32_state::gtclass_prot_result_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x680000, 0x680003, read32smo_delegate(*this, FUNC(itech32_state::gtclass_prot_result_r)));
init_aama();
/* The protection code is:
diff --git a/src/mame/drivers/itech8.cpp b/src/mame/drivers/itech8.cpp
index dd1bfe80380..2a519599aaf 100644
--- a/src/mame/drivers/itech8.cpp
+++ b/src/mame/drivers/itech8.cpp
@@ -961,7 +961,7 @@ void itech8_state::ninclown_map(address_map &map)
map(0x100080, 0x100080).w(m_soundlatch, FUNC(generic_latch_8_device::write));
map(0x100100, 0x100100).w(FUNC(itech8_state::grom_bank_w));
map(0x100100, 0x100101).portr("40");
- map(0x100180, 0x100180).lw8("page_inv_w", [this](u8 data){ page_w(~data); } );
+ map(0x100180, 0x100180).lw8(NAME([this](u8 data){ page_w(~data); }));
map(0x100180, 0x100181).portr("60");
map(0x100240, 0x100240).w(m_tms34061, FUNC(tms34061_device::latch_w));
map(0x100280, 0x100281).portr("80").nopw();
diff --git a/src/mame/drivers/itt1700.cpp b/src/mame/drivers/itt1700.cpp
index 0af62feb5fa..ec993830f2d 100644
--- a/src/mame/drivers/itt1700.cpp
+++ b/src/mame/drivers/itt1700.cpp
@@ -108,7 +108,7 @@ void itt1700_state::itt1700(machine_config &config)
crtc.set_char_width(9);
crtc.set_screen("screen");
crtc.set_show_border_area(false);
- crtc.set_update_row_callback(FUNC(itt1700_state::update_row), this);
+ crtc.set_update_row_callback(FUNC(itt1700_state::update_row));
}
ROM_START(itt1700)
diff --git a/src/mame/drivers/jackie.cpp b/src/mame/drivers/jackie.cpp
index 36281367b71..ac6495c2519 100644
--- a/src/mame/drivers/jackie.cpp
+++ b/src/mame/drivers/jackie.cpp
@@ -165,14 +165,14 @@ TILE_GET_INFO_MEMBER(jackie_state::get_reel_tile_info)
void jackie_state::video_start()
{
- m_reel_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(jackie_state::get_reel_tile_info<0>),this),TILEMAP_SCAN_ROWS,8,32, 64, 8);
- m_reel_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(jackie_state::get_reel_tile_info<1>),this),TILEMAP_SCAN_ROWS,8,32, 64, 8);
- m_reel_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(jackie_state::get_reel_tile_info<2>),this),TILEMAP_SCAN_ROWS,8,32, 64, 8);
+ m_reel_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(jackie_state::get_reel_tile_info<0>)), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
+ m_reel_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(jackie_state::get_reel_tile_info<1>)), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
+ m_reel_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(jackie_state::get_reel_tile_info<2>)), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
for (int i = 0; i < 3; i++)
m_reel_tilemap[i]->set_scroll_cols(64);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(jackie_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(jackie_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_fg_tilemap->set_transparent_pen(0);
}
diff --git a/src/mame/drivers/jaguar.cpp b/src/mame/drivers/jaguar.cpp
index 982492dbbd5..60c80ee87f3 100644
--- a/src/mame/drivers/jaguar.cpp
+++ b/src/mame/drivers/jaguar.cpp
@@ -1137,7 +1137,7 @@ void jaguar_state::jaguar_map(address_map &map)
void jaguar_state::cpu_space_map(address_map &map)
{
map(0xfffff0, 0xffffff).m(m_maincpu, FUNC(m68000_base_device::autovectors_map));
- map(0xfffffd, 0xfffffd).lr8("level6", []() -> u8 { return 0x40; });
+ map(0xfffffd, 0xfffffd).lr8([] () -> u8 { return 0x40; }, "level6");
}
/*
@@ -1349,7 +1349,7 @@ void jaguar_state::r3000_map(address_map &map)
map(0x04f03000, 0x04f03fff).mirror(0x00008000).ram().share("gpuram");
map(0x04f10000, 0x04f103ff).rw(FUNC(jaguar_state::jerry_regs_r), FUNC(jaguar_state::jerry_regs_w));
map(0x04f16000, 0x04f1600b).r(FUNC(jaguar_state::cojag_gun_input_r)); // GPI02
- map(0x04f17000, 0x04f17003).lr16("4f17000", [this]() { return uint16_t(m_system->read()); }); // GPI03
+ map(0x04f17000, 0x04f17003).lr16(NAME([this] () { return uint16_t(m_system->read()); })); // GPI03
map(0x04f17800, 0x04f17803).w(FUNC(jaguar_state::latch_w)); // GPI04
map(0x04f17c00, 0x04f17c03).portr("P1_P2"); // GPI05
map(0x04f1a100, 0x04f1a13f).rw(FUNC(jaguar_state::dspctrl_r), FUNC(jaguar_state::dspctrl_w));
@@ -1393,7 +1393,7 @@ void jaguar_state::m68020_map(address_map &map)
map(0xf03000, 0xf03fff).mirror(0x008000).ram().share("gpuram");
map(0xf10000, 0xf103ff).rw(FUNC(jaguar_state::jerry_regs_r), FUNC(jaguar_state::jerry_regs_w));
map(0xf16000, 0xf1600b).r(FUNC(jaguar_state::cojag_gun_input_r)); // GPI02
- map(0xf17000, 0xf17003).lr16("f17000", [this]() { return uint16_t(m_system->read()); }); // GPI03
+ map(0xf17000, 0xf17003).lr16(NAME([this] () { return uint16_t(m_system->read()); })); // GPI03
// map(0xf17800, 0xf17803).w(FUNC(jaguar_state::(latch_w)); // GPI04
map(0xf17c00, 0xf17c03).portr("P1_P2"); // GPI05
map(0xf1a100, 0xf1a13f).rw(FUNC(jaguar_state::dspctrl_r), FUNC(jaguar_state::dspctrl_w));
@@ -1920,11 +1920,11 @@ void jaguar_state::jaguar(machine_config &config)
vref.add_route(0, "rdac", -1.0, DAC_VREF_NEG_INPUT);
/* quickload */
- QUICKLOAD(config, "quickload", "abs,bin,cof,jag,prg").set_load_callback(FUNC(jaguar_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "abs,bin,cof,jag,prg").set_load_callback(FUNC(jaguar_state::quickload_cb));
/* cartridge */
generic_cartslot_device &cartslot(GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "jaguar_cart", "j64,rom,bin"));
- cartslot.set_device_load(FUNC(jaguar_state::cart_load), this);
+ cartslot.set_device_load(FUNC(jaguar_state::cart_load));
/* software lists */
SOFTWARE_LIST(config, "cart_list").set_original("jaguar");
@@ -2585,10 +2585,10 @@ void jaguar_state::cojag_common_init(uint16_t gpu_jump_offs, uint16_t spin_pc)
/* install synchronization hooks for GPU */
if (m_is_r3000)
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x04f0b000 + gpu_jump_offs, 0x04f0b003 + gpu_jump_offs, write32_delegate(FUNC(jaguar_state::gpu_jump_w), this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x04f0b000 + gpu_jump_offs, 0x04f0b003 + gpu_jump_offs, write32_delegate(*this, FUNC(jaguar_state::gpu_jump_w)));
else
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xf0b000 + gpu_jump_offs, 0xf0b003 + gpu_jump_offs, write32_delegate(FUNC(jaguar_state::gpu_jump_w), this));
- m_gpu->space(AS_PROGRAM).install_read_handler(0xf03000 + gpu_jump_offs, 0xf03003 + gpu_jump_offs, read32_delegate(FUNC(jaguar_state::gpu_jump_r), this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xf0b000 + gpu_jump_offs, 0xf0b003 + gpu_jump_offs, write32_delegate(*this, FUNC(jaguar_state::gpu_jump_w)));
+ m_gpu->space(AS_PROGRAM).install_read_handler(0xf03000 + gpu_jump_offs, 0xf03003 + gpu_jump_offs, read32_delegate(*this, FUNC(jaguar_state::gpu_jump_r)));
m_gpu_jump_address = &m_gpu_ram[gpu_jump_offs/4];
m_gpu_spin_pc = 0xf03000 + spin_pc;
@@ -2606,7 +2606,7 @@ void jaguar_state::init_area51a()
#if ENABLE_SPEEDUP_HACKS
/* install speedup for main CPU */
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xa02030, 0xa02033, write32_delegate(FUNC(jaguar_state::area51_main_speedup_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xa02030, 0xa02033, write32_delegate(*this, FUNC(jaguar_state::area51_main_speedup_w)));
m_main_speedup = m_mainram + 0x2030/4;
#endif
}
@@ -2619,7 +2619,7 @@ void jaguar_state::init_area51()
#if ENABLE_SPEEDUP_HACKS
/* install speedup for main CPU */
m_main_speedup_max_cycles = 120;
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x100062e8, 0x100062eb, read32_delegate(FUNC(jaguar_state::cojagr3k_main_speedup_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x100062e8, 0x100062eb, read32_delegate(*this, FUNC(jaguar_state::cojagr3k_main_speedup_r)));
m_main_speedup = m_mainram + 0x62e8/4;
#endif
}
@@ -2635,7 +2635,7 @@ void jaguar_state::init_maxforce()
#if ENABLE_SPEEDUP_HACKS
/* install speedup for main CPU */
m_main_speedup_max_cycles = 120;
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x1000865c, 0x1000865f, read32_delegate(FUNC(jaguar_state::cojagr3k_main_speedup_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x1000865c, 0x1000865f, read32_delegate(*this, FUNC(jaguar_state::cojagr3k_main_speedup_r)));
m_main_speedup = m_mainram + 0x865c/4;
#endif
}
@@ -2651,7 +2651,7 @@ void jaguar_state::init_area51mx()
#if ENABLE_SPEEDUP_HACKS
/* install speedup for main CPU */
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xa19550, 0xa19557, write32_delegate(FUNC(jaguar_state::area51mx_main_speedup_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xa19550, 0xa19557, write32_delegate(*this, FUNC(jaguar_state::area51mx_main_speedup_w)));
m_main_speedup = m_mainram + 0x19550/4;
#endif
}
@@ -2668,7 +2668,7 @@ void jaguar_state::init_a51mxr3k()
#if ENABLE_SPEEDUP_HACKS
/* install speedup for main CPU */
m_main_speedup_max_cycles = 120;
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x10006f0c, 0x10006f0f, read32_delegate(FUNC(jaguar_state::cojagr3k_main_speedup_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x10006f0c, 0x10006f0f, read32_delegate(*this, FUNC(jaguar_state::cojagr3k_main_speedup_r)));
m_main_speedup = m_mainram + 0x6f0c/4;
#endif
}
@@ -2682,7 +2682,7 @@ void jaguar_state::init_fishfren()
#if ENABLE_SPEEDUP_HACKS
/* install speedup for main CPU */
m_main_speedup_max_cycles = 200;
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x10021b60, 0x10021b63, read32_delegate(FUNC(jaguar_state::cojagr3k_main_speedup_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x10021b60, 0x10021b63, read32_delegate(*this, FUNC(jaguar_state::cojagr3k_main_speedup_r)));
m_main_speedup = m_mainram + 0x21b60/4;
#endif
}
@@ -2696,10 +2696,10 @@ void jaguar_state::init_freeze_common(offs_t main_speedup_addr)
/* install speedup for main CPU */
m_main_speedup_max_cycles = 200;
if (main_speedup_addr != 0) {
- m_maincpu->space(AS_PROGRAM).install_read_handler(main_speedup_addr, main_speedup_addr + 3, read32_delegate(FUNC(jaguar_state::cojagr3k_main_speedup_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(main_speedup_addr, main_speedup_addr + 3, read32_delegate(*this, FUNC(jaguar_state::cojagr3k_main_speedup_r)));
m_main_speedup = m_mainram + (main_speedup_addr - 0x10000000)/4;
}
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x0400d900, 0x0400d900 + 3, read32_delegate(FUNC(jaguar_state::main_gpu_wait_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x0400d900, 0x0400d900 + 3, read32_delegate(*this, FUNC(jaguar_state::main_gpu_wait_r)));
m_main_gpu_wait = m_shared_ram + 0xd900/4;
#endif
}
@@ -2719,7 +2719,7 @@ void jaguar_state::init_vcircle()
#if ENABLE_SPEEDUP_HACKS
/* install speedup for main CPU */
m_main_speedup_max_cycles = 50;
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x12005b34, 0x12005b37, read32_delegate(FUNC(jaguar_state::cojagr3k_main_speedup_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x12005b34, 0x12005b37, read32_delegate(*this, FUNC(jaguar_state::cojagr3k_main_speedup_r)));
m_main_speedup = m_mainram + 0x5b34/4;
m_main_speedup = m_mainram2 + 0x5b34/4;
#endif
diff --git a/src/mame/drivers/jalmah.cpp b/src/mame/drivers/jalmah.cpp
index c0b4fd50698..a3bc1ea1c65 100644
--- a/src/mame/drivers/jalmah.cpp
+++ b/src/mame/drivers/jalmah.cpp
@@ -302,10 +302,10 @@ void urashima_state::video_start()
{
jalmah_state::video_start();
- m_layer[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(urashima_state::get_tile_info_urashima<0>),this),tilemap_mapper_delegate(FUNC(urashima_state::range0_16x16),this),16,16,256,32);
+ m_layer[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(urashima_state::get_tile_info_urashima<0>)), tilemap_mapper_delegate(*this, FUNC(urashima_state::range0_16x16)), 16,16,256,32);
// range confirmed with title screen transition in attract mode
// also it's confirmed to be 64 x 64 with 2nd tier girls stripping
- m_layer[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(urashima_state::get_tile_info_urashima<1>),this),tilemap_mapper_delegate(FUNC(urashima_state::range3_8x8),this),8,8,64,64);
+ m_layer[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(urashima_state::get_tile_info_urashima<1>)), tilemap_mapper_delegate(*this, FUNC(urashima_state::range3_8x8)), 8,8,64,64);
for(int i=0;i<2;i++)
m_layer[i]->set_transparent_pen(15);
@@ -1701,53 +1701,53 @@ READ16_MEMBER(jalmah_state::suchiesp_mcu_r)
void jalmah_state::init_urashima()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x80004, 0x80005, read16_delegate(FUNC(jalmah_state::urashima_mcu_r), this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x80012, 0x80013, write16_delegate(FUNC(jalmah_state::urashima_mcu_w), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x80004, 0x80005, read16_delegate(*this, FUNC(jalmah_state::urashima_mcu_r)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x80012, 0x80013, write16_delegate(*this, FUNC(jalmah_state::urashima_mcu_w)));
m_mcu_prg = URASHIMA_MCU;
}
void jalmah_state::init_daireika()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x80004, 0x80005, read16_delegate(FUNC(jalmah_state::daireika_mcu_r), this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x80012, 0x80013, write16_delegate(FUNC(jalmah_state::daireika_mcu_w), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x80004, 0x80005, read16_delegate(*this, FUNC(jalmah_state::daireika_mcu_r)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x80012, 0x80013, write16_delegate(*this, FUNC(jalmah_state::daireika_mcu_w)));
m_mcu_prg = DAIREIKA_MCU;
}
void jalmah_state::init_mjzoomin()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x80004, 0x80005, read16_delegate(FUNC(jalmah_state::mjzoomin_mcu_r), this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x80012, 0x80013, write16_delegate(FUNC(jalmah_state::mjzoomin_mcu_w), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x80004, 0x80005, read16_delegate(*this, FUNC(jalmah_state::mjzoomin_mcu_r)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x80012, 0x80013, write16_delegate(*this, FUNC(jalmah_state::mjzoomin_mcu_w)));
m_mcu_prg = MJZOOMIN_MCU;
}
void jalmah_state::init_kakumei()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x80004, 0x80005, read16_delegate(FUNC(jalmah_state::kakumei_mcu_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x80004, 0x80005, read16_delegate(*this, FUNC(jalmah_state::kakumei_mcu_r)));
m_mcu_prg = KAKUMEI_MCU;
}
void jalmah_state::init_kakumei2()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x80004, 0x80005, read16_delegate(FUNC(jalmah_state::kakumei_mcu_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x80004, 0x80005, read16_delegate(*this, FUNC(jalmah_state::kakumei_mcu_r)));
m_mcu_prg = KAKUMEI2_MCU;
}
void jalmah_state::init_suchiesp()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x80004, 0x80005, read16_delegate(FUNC(jalmah_state::suchiesp_mcu_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x80004, 0x80005, read16_delegate(*this, FUNC(jalmah_state::suchiesp_mcu_r)));
m_mcu_prg = SUCHIESP_MCU;
}
/*First version of the MCU*/
GAME( 1989, urashima, 0, urashima, urashima, urashima_state, init_urashima, ROT0, "UPL", "Otogizoushi Urashima Mahjong (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION )
-GAME( 1989, daireika, 0, jalmahv1, daireika, jalmah_state, init_daireika, ROT0, "Jaleco / NMK", "Mahjong Daireikai (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION )
-GAME( 1990, mjzoomin, 0, jalmahv1, mjzoomin, jalmah_state, init_mjzoomin, ROT0, "Jaleco", "Mahjong Channel Zoom In (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION )
+GAME( 1989, daireika, 0, jalmahv1, daireika, jalmah_state, init_daireika, ROT0, "Jaleco / NMK", "Mahjong Daireikai (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION )
+GAME( 1990, mjzoomin, 0, jalmahv1, mjzoomin, jalmah_state, init_mjzoomin, ROT0, "Jaleco", "Mahjong Channel Zoom In (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION )
/*Second version of the MCU*/
GAME( 1990, kakumei, 0, jalmah, kakumei, jalmah_state, init_kakumei, ROT0, "Jaleco", "Mahjong Kakumei (Japan)", MACHINE_IMPERFECT_GRAPHICS )
GAME( 1992, kakumei2, 0, jalmah, kakumei2, jalmah_state, init_kakumei2, ROT0, "Jaleco", "Mahjong Kakumei 2 - Princess League (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_UNEMULATED_PROTECTION )
diff --git a/src/mame/drivers/jangou.cpp b/src/mame/drivers/jangou.cpp
index 35a57d77769..c30e06ba736 100644
--- a/src/mame/drivers/jangou.cpp
+++ b/src/mame/drivers/jangou.cpp
@@ -1272,7 +1272,7 @@ READ8_MEMBER(jangou_state::jngolady_rng_r)
void jangou_state::init_jngolady()
{
- m_nsc->space(AS_PROGRAM).install_read_handler(0x08, 0x08, read8_delegate(FUNC(jangou_state::jngolady_rng_r),this) );
+ m_nsc->space(AS_PROGRAM).install_read_handler(0x08, 0x08, read8_delegate(*this, FUNC(jangou_state::jngolady_rng_r)));
}
void jangou_state::init_luckygrl()
diff --git a/src/mame/drivers/jazz.cpp b/src/mame/drivers/jazz.cpp
index 33349c84d71..e603218b24c 100644
--- a/src/mame/drivers/jazz.cpp
+++ b/src/mame/drivers/jazz.cpp
@@ -85,8 +85,8 @@ void jazz_state::jazz_common_map(address_map &map)
map(0x1fc00000, 0x1fc3ffff).r(m_flash, FUNC(amd_28f020_device::read));
// NOTE: defaults to console on serial1 if no video rom found
- map(0x60000000, 0x6000013f).lr8("video_rom",
- [](offs_t offset)
+ map(0x60000000, 0x6000013f).lr8(
+ [] (offs_t offset)
{
/*
* Board_Identifier, PROM_Stride, PROM_Width, PROM_Size
@@ -129,10 +129,10 @@ void jazz_state::jazz_common_map(address_map &map)
};
return bogus_g364[offset];
- }).umask64(0xff);
+ }, "bogus_g364_r").umask64(0xff);
map(0x60080000, 0x60081fff).m(m_cvc, FUNC(g364_device::map));
- map(0x60180000, 0x60180007).lw32("g364_reset", [this](u32 data) { m_cvc->reset(); });
+ map(0x60180000, 0x60180007).lw32([this] (u32 data) { m_cvc->reset(); }, "g364_reset");
map(0x80000000, 0x80000fff).m(m_mct_adr, FUNC(jazz_mct_adr_device::map));
@@ -142,23 +142,24 @@ void jazz_state::jazz_common_map(address_map &map)
// LE: only reads 4000
// BE: read 400d, write 400d, write 400c
- map(0x80004000, 0x8000400f).lrw8("rtc",
- [this](offs_t offset) { return m_rtc->read(1); },
- [this](offs_t offset, u8 data) { m_rtc->write(1, data); }).umask64(0xff);
+ map(0x80004000, 0x8000400f).lrw8(
+ NAME([this] (offs_t offset) { return m_rtc->read(1); }),
+ NAME([this] (offs_t offset, u8 data) { m_rtc->write(1, data); })).umask64(0xff);
map(0x80005000, 0x80005007).rw(m_kbdc, FUNC(ps2_keyboard_controller_device::data_r), FUNC(ps2_keyboard_controller_device::data_w)).umask64(0x00ff);
map(0x80005000, 0x80005007).rw(m_kbdc, FUNC(ps2_keyboard_controller_device::status_r), FUNC(ps2_keyboard_controller_device::command_w)).umask64(0xff00);
map(0x80006000, 0x80006007).rw(m_ace[0], FUNC(ns16550_device::ins8250_r), FUNC(ns16550_device::ins8250_w));
map(0x80007000, 0x80007007).rw(m_ace[1], FUNC(ns16550_device::ins8250_r), FUNC(ns16550_device::ins8250_w));
map(0x80008000, 0x80008007).rw(m_lpt, FUNC(pc_lpt_device::read), FUNC(pc_lpt_device::write)).umask64(0xffffffff);
map(0x80009000, 0x8000afff).ram().share("nvram"); // 9000-9fff unprotected/a000-afff protected?
- map(0x8000b000, 0x8000b007).lr8("mac",
- [](offs_t offset)
- {
- // mac address and checksum
- static u8 const mac[] = { 0x00, 0x00, 0x6b, 0x12, 0x34, 0x56, 0x00, 0xf7 };
+ map(0x8000b000, 0x8000b007).lr8(
+ [] (offs_t offset)
+ {
+ // mac address and checksum
+ static u8 const mac[] = { 0x00, 0x00, 0x6b, 0x12, 0x34, 0x56, 0x00, 0xf7 };
- return mac[offset];
- });
+ return mac[offset];
+ },
+ "mac");
// 3 4k pages of nvram: read/write, protected, read-only
// last page holds ethernet mac and checksum in bytes 0-7
@@ -167,13 +168,12 @@ void jazz_state::jazz_common_map(address_map &map)
map(0x8000d600, 0x8000d607).nopw();
map(0x8000f000, 0x8000f007).lrw8(
- "led",
- [this]() { return m_led; },
- [this](u8 data)
- {
- logerror("led 0x%02x (%s)\n", data, machine().describe_context());
- m_led = data;
- }).umask64(0xff);
+ NAME([this] () { return m_led; }),
+ NAME([this] (u8 data)
+ {
+ logerror("led 0x%02x (%s)\n", data, machine().describe_context());
+ m_led = data;
+ })).umask64(0xff);
// lots of byte data written to 800
//map(0x800e0000, 0x800fffff).m() // dram config
diff --git a/src/mame/drivers/jchan.cpp b/src/mame/drivers/jchan.cpp
index 98c91324f27..5a8394bf767 100644
--- a/src/mame/drivers/jchan.cpp
+++ b/src/mame/drivers/jchan.cpp
@@ -709,8 +709,8 @@ ROM_END
void jchan_state::init_jchan()
{
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x403ffe, 0x403fff, write16_delegate(FUNC(jchan_state::main2sub_cmd_w),this));
- m_subcpu->space(AS_PROGRAM).install_write_handler(0x400000, 0x400001, write16_delegate(FUNC(jchan_state::sub2main_cmd_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x403ffe, 0x403fff, write16_delegate(*this, FUNC(jchan_state::main2sub_cmd_w)));
+ m_subcpu->space(AS_PROGRAM).install_write_handler(0x400000, 0x400001, write16_delegate(*this, FUNC(jchan_state::sub2main_cmd_w)));
}
diff --git a/src/mame/drivers/jclub2.cpp b/src/mame/drivers/jclub2.cpp
index 30019b05df8..94468ef42fc 100644
--- a/src/mame/drivers/jclub2.cpp
+++ b/src/mame/drivers/jclub2.cpp
@@ -401,8 +401,8 @@ void darkhors_state::video_start()
{
common_state::video_start();
- m_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(darkhors_state::get_tile_info_0),this), TILEMAP_SCAN_ROWS,16,16, 0x40,0x40);
- m_tmap2= &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(darkhors_state::get_tile_info_1),this), TILEMAP_SCAN_ROWS,16,16, 0x40,0x40);
+ m_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(darkhors_state::get_tile_info_0)), TILEMAP_SCAN_ROWS, 16,16, 0x40,0x40);
+ m_tmap2= &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(darkhors_state::get_tile_info_1)), TILEMAP_SCAN_ROWS, 16,16, 0x40,0x40);
m_tmap->set_transparent_pen(0);
m_tmap2->set_transparent_pen(0);
diff --git a/src/mame/drivers/jensen.cpp b/src/mame/drivers/jensen.cpp
index 3d044e4a5d9..691669a5652 100644
--- a/src/mame/drivers/jensen.cpp
+++ b/src/mame/drivers/jensen.cpp
@@ -54,46 +54,46 @@ void jensen_state::local_memory(address_map &map)
void jensen_state::local_io(address_map &map)
{
map(0x00000000, 0x0000001f); // EISA INTA cycle
- map(0x80000000, 0x9fffffff).lr8("feprom0", [this](offs_t offset) { return m_feprom[0]->read(offset >> 9); });
- map(0xa0000000, 0xbfffffff).lr8("feprom1", [this](offs_t offset) { return m_feprom[1]->read(offset >> 9); });
+ map(0x80000000, 0x9fffffff).lr8(NAME([this] (offs_t offset) { return m_feprom[0]->read(offset >> 9); }));
+ map(0xa0000000, 0xbfffffff).lr8(NAME([this] (offs_t offset) { return m_feprom[1]->read(offset >> 9); }));
//map(0xc0000000, 0xc1ffffff); // vl82c106 bits 24:9 -> vlsi 15:0 i.e. >> 9
- map(0xd0000000, 0xd0000000).lrw8("hae", [this]() { return m_hae; }, [this](u8 data) { m_hae = data & 0x7f; });
- map(0xe0000000, 0xe0000000).lrw8("sysctl", [this]() { return m_sysctl; }, [this](u8 data) { m_sysctl = data; logerror("led %x\n", data & 0xf); });
- map(0xf0000000, 0xf0000000).lrw8("spare", [this]() { return m_spare; }, [this](u8 data) { m_spare = data; });
+ map(0xd0000000, 0xd0000000).lrw8(NAME([this] () { return m_hae; }), NAME([this] (u8 data) { m_hae = data & 0x7f; }));
+ map(0xe0000000, 0xe0000000).lrw8(NAME([this] () { return m_sysctl; }), NAME([this] (u8 data) { m_sysctl = data; logerror("led %x\n", data & 0xf); }));
+ map(0xf0000000, 0xf0000000).lrw8(NAME([this] () { return m_spare; }), NAME([this] (u8 data) { m_spare = data; }));
}
void jensen_state::eisa_memory(address_map &map)
{
- map(0x00000000, 0xffffffff).lrw8("eisa_memory",
- [this](offs_t offset)
- {
- LOG("eisa_memory_r 0x%08x\n", (u32(m_hae) << 25) | (offset >> 7));
-
- return 0;
- },
- [this](offs_t offset, u8 data)
- {
- LOG("eisa_memory_w 0x%08x data 0x%02x\n", (u32(m_hae) << 25) | (offset >> 7), data);
- });
+ map(0x00000000, 0xffffffff).lrw8(
+ NAME([this] (offs_t offset)
+ {
+ LOG("eisa_memory_r 0x%08x\n", (u32(m_hae) << 25) | (offset >> 7));
+
+ return 0;
+ }),
+ NAME([this] (offs_t offset, u8 data)
+ {
+ LOG("eisa_memory_w 0x%08x data 0x%02x\n", (u32(m_hae) << 25) | (offset >> 7), data);
+ }));
}
void jensen_state::eisa_io(address_map &map)
{
- map(0x00000000, 0xffffffff).lrw8("eisa_io",
- [this](offs_t offset)
- {
- LOG("eisa_io_r offset 0x%08x address 0x%08x count %d (%s)\n", offset,
- (u32(m_hae) << 25) | (offset >> 7), (offset >> 5) & 3, machine().describe_context());
-
- return 0;
- },
- [this](offs_t offset, u8 data)
- {
- LOG("eisa_io_w offset 0x%08x address 0x%08x count %d data 0x%02x (%s)\n",
- offset, (u32(m_hae) << 25) | (offset >> 7), (offset >> 5) & 3, data, machine().describe_context());
- });
+ map(0x00000000, 0xffffffff).lrw8(
+ NAME([this] (offs_t offset)
+ {
+ LOG("eisa_io_r offset 0x%08x address 0x%08x count %d (%s)\n", offset,
+ (u32(m_hae) << 25) | (offset >> 7), (offset >> 5) & 3, machine().describe_context());
+
+ return 0;
+ }),
+ NAME([this] (offs_t offset, u8 data)
+ {
+ LOG("eisa_io_w offset 0x%08x address 0x%08x count %d data 0x%02x (%s)\n",
+ offset, (u32(m_hae) << 25) | (offset >> 7), (offset >> 5) & 3, data, machine().describe_context());
+ }));
}
void jensen_state::jensen(machine_config &config)
diff --git a/src/mame/drivers/jokrwild.cpp b/src/mame/drivers/jokrwild.cpp
index bce2a8014f9..69886589d94 100644
--- a/src/mame/drivers/jokrwild.cpp
+++ b/src/mame/drivers/jokrwild.cpp
@@ -152,7 +152,7 @@ TILE_GET_INFO_MEMBER(jokrwild_state::get_bg_tile_info)
void jokrwild_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(jokrwild_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 24, 26);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(jokrwild_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 24, 26);
}
uint32_t jokrwild_state::screen_update_jokrwild(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
diff --git a/src/mame/drivers/jollyjgr.cpp b/src/mame/drivers/jollyjgr.cpp
index 668790c38d7..0ec83f5abde 100644
--- a/src/mame/drivers/jollyjgr.cpp
+++ b/src/mame/drivers/jollyjgr.cpp
@@ -491,7 +491,7 @@ TILE_GET_INFO_MEMBER(jollyjgr_state::get_bg_tile_info)
void jollyjgr_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(jollyjgr_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(jollyjgr_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_bg_tilemap->set_transparent_pen(0);
m_bg_tilemap->set_scroll_cols(32);
diff --git a/src/mame/drivers/joystand.cpp b/src/mame/drivers/joystand.cpp
index 9830771e820..ff55bed33c2 100644
--- a/src/mame/drivers/joystand.cpp
+++ b/src/mame/drivers/joystand.cpp
@@ -308,8 +308,8 @@ WRITE16_MEMBER(joystand_state::bg15_1_w)
void joystand_state::video_start()
{
- m_bg1_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(joystand_state::get_bg1_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 0x40, 0x20);
- m_bg2_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(joystand_state::get_bg2_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 0x40, 0x40);
+ m_bg1_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(joystand_state::get_bg1_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 0x40, 0x20);
+ m_bg2_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(joystand_state::get_bg2_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 0x40, 0x40);
m_bg1_tmap->set_transparent_pen(0xf);
m_bg2_tmap->set_transparent_pen(0xf);
diff --git a/src/mame/drivers/jr100.cpp b/src/mame/drivers/jr100.cpp
index 2d444617639..842c0d20607 100644
--- a/src/mame/drivers/jr100.cpp
+++ b/src/mame/drivers/jr100.cpp
@@ -401,7 +401,7 @@ void jr100_state::jr100(machine_config &config)
m_cassette->add_route(ALL_OUTPUTS, "mono", 0.05);
/* quickload */
- QUICKLOAD(config, "quickload", "prg", attotime::from_seconds(2)).set_load_callback(FUNC(jr100_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "prg", attotime::from_seconds(2)).set_load_callback(FUNC(jr100_state::quickload_cb));
}
diff --git a/src/mame/drivers/jtc.cpp b/src/mame/drivers/jtc.cpp
index db9e50d17b9..47e3b5627c6 100644
--- a/src/mame/drivers/jtc.cpp
+++ b/src/mame/drivers/jtc.cpp
@@ -831,7 +831,7 @@ void jtc_state::basic(machine_config &config)
m_centronics->busy_handler().set(FUNC(jtc_state::write_centronics_busy));
/* quickload */
- QUICKLOAD(config, "quickload", "jtc,bin", attotime::from_seconds(2)).set_load_callback(FUNC(jtc_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "jtc,bin", attotime::from_seconds(2)).set_load_callback(FUNC(jtc_state::quickload_cb));
}
void jtc_state::jtc(machine_config &config)
diff --git a/src/mame/drivers/jubilee.cpp b/src/mame/drivers/jubilee.cpp
index ab49044d7ba..9fb8ce5b444 100644
--- a/src/mame/drivers/jubilee.cpp
+++ b/src/mame/drivers/jubilee.cpp
@@ -281,7 +281,7 @@ TILE_GET_INFO_MEMBER(jubilee_state::get_bg_tile_info)
void jubilee_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(jubilee_state::get_bg_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(jubilee_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_bg_tilemap->set_scrolldx(8, 0); /* guess */
}
diff --git a/src/mame/drivers/juicebox.cpp b/src/mame/drivers/juicebox.cpp
index 5c512abc9c7..42f8a75e891 100644
--- a/src/mame/drivers/juicebox.cpp
+++ b/src/mame/drivers/juicebox.cpp
@@ -263,23 +263,23 @@ void juicebox_state::machine_start()
smc_init();
- space.install_readwrite_handler(0x01c00000, 0x01c0000b, read32_delegate(FUNC(s3c44b0_device::cpuwrap_r), &(*m_s3c44b0)), write32_delegate(FUNC(s3c44b0_device::cpuwrap_w), &(*m_s3c44b0)));
- space.install_readwrite_handler(0x01d00000, 0x01d0002b, read32_delegate(FUNC(s3c44b0_device::uart_0_r), &(*m_s3c44b0)), write32_delegate(FUNC(s3c44b0_device::uart_0_w), &(*m_s3c44b0)));
- space.install_readwrite_handler(0x01d04000, 0x01d0402b, read32_delegate(FUNC(s3c44b0_device::uart_1_r), &(*m_s3c44b0)), write32_delegate(FUNC(s3c44b0_device::uart_1_w), &(*m_s3c44b0)));
- space.install_readwrite_handler(0x01d14000, 0x01d14013, read32_delegate(FUNC(s3c44b0_device::sio_r), &(*m_s3c44b0)), write32_delegate(FUNC(s3c44b0_device::sio_w), &(*m_s3c44b0)));
- space.install_readwrite_handler(0x01d18000, 0x01d18013, read32_delegate(FUNC(s3c44b0_device::iis_r), &(*m_s3c44b0)), write32_delegate(FUNC(s3c44b0_device::iis_w), &(*m_s3c44b0)));
- space.install_readwrite_handler(0x01d20000, 0x01d20057, read32_delegate(FUNC(s3c44b0_device::gpio_r), &(*m_s3c44b0)), write32_delegate(FUNC(s3c44b0_device::gpio_w), &(*m_s3c44b0)));
- space.install_readwrite_handler(0x01d30000, 0x01d3000b, read32_delegate(FUNC(s3c44b0_device::wdt_r), &(*m_s3c44b0)), write32_delegate(FUNC(s3c44b0_device::wdt_w), &(*m_s3c44b0)));
- space.install_readwrite_handler(0x01d40000, 0x01d4000b, read32_delegate(FUNC(s3c44b0_device::adc_r), &(*m_s3c44b0)), write32_delegate(FUNC(s3c44b0_device::adc_w), &(*m_s3c44b0)));
- space.install_readwrite_handler(0x01d50000, 0x01d5004f, read32_delegate(FUNC(s3c44b0_device::pwm_r), &(*m_s3c44b0)), write32_delegate(FUNC(s3c44b0_device::pwm_w), &(*m_s3c44b0)));
- space.install_readwrite_handler(0x01d60000, 0x01d6000f, read32_delegate(FUNC(s3c44b0_device::iic_r), &(*m_s3c44b0)), write32_delegate(FUNC(s3c44b0_device::iic_w), &(*m_s3c44b0)));
- space.install_readwrite_handler(0x01d80000, 0x01d8000f, read32_delegate(FUNC(s3c44b0_device::clkpow_r), &(*m_s3c44b0)), write32_delegate(FUNC(s3c44b0_device::clkpow_w), &(*m_s3c44b0)));
- space.install_readwrite_handler(0x01e00000, 0x01e0003f, read32_delegate(FUNC(s3c44b0_device::irq_r), &(*m_s3c44b0)), write32_delegate(FUNC(s3c44b0_device::irq_w), &(*m_s3c44b0)));
- space.install_readwrite_handler(0x01e80000, 0x01e8001b, read32_delegate(FUNC(s3c44b0_device::zdma_0_r), &(*m_s3c44b0)), write32_delegate(FUNC(s3c44b0_device::zdma_0_w), &(*m_s3c44b0)));
- space.install_readwrite_handler(0x01e80020, 0x01e8003b, read32_delegate(FUNC(s3c44b0_device::zdma_1_r), &(*m_s3c44b0)), write32_delegate(FUNC(s3c44b0_device::zdma_1_w), &(*m_s3c44b0)));
- space.install_readwrite_handler(0x01f00000, 0x01f00047, read32_delegate(FUNC(s3c44b0_device::lcd_r), &(*m_s3c44b0)), write32_delegate(FUNC(s3c44b0_device::lcd_w), &(*m_s3c44b0)));
- space.install_readwrite_handler(0x01f80000, 0x01f8001b, read32_delegate(FUNC(s3c44b0_device::bdma_0_r), &(*m_s3c44b0)), write32_delegate(FUNC(s3c44b0_device::bdma_0_w), &(*m_s3c44b0)));
- space.install_readwrite_handler(0x01f80020, 0x01f8003b, read32_delegate(FUNC(s3c44b0_device::bdma_1_r), &(*m_s3c44b0)), write32_delegate(FUNC(s3c44b0_device::bdma_1_w), &(*m_s3c44b0)));
+ space.install_readwrite_handler(0x01c00000, 0x01c0000b, read32_delegate(*m_s3c44b0, FUNC(s3c44b0_device::cpuwrap_r)), write32_delegate(*m_s3c44b0, FUNC(s3c44b0_device::cpuwrap_w)));
+ space.install_readwrite_handler(0x01d00000, 0x01d0002b, read32_delegate(*m_s3c44b0, FUNC(s3c44b0_device::uart_0_r)), write32_delegate(*m_s3c44b0, FUNC(s3c44b0_device::uart_0_w)));
+ space.install_readwrite_handler(0x01d04000, 0x01d0402b, read32_delegate(*m_s3c44b0, FUNC(s3c44b0_device::uart_1_r)), write32_delegate(*m_s3c44b0, FUNC(s3c44b0_device::uart_1_w)));
+ space.install_readwrite_handler(0x01d14000, 0x01d14013, read32_delegate(*m_s3c44b0, FUNC(s3c44b0_device::sio_r)), write32_delegate(*m_s3c44b0, FUNC(s3c44b0_device::sio_w)));
+ space.install_readwrite_handler(0x01d18000, 0x01d18013, read32_delegate(*m_s3c44b0, FUNC(s3c44b0_device::iis_r)), write32_delegate(*m_s3c44b0, FUNC(s3c44b0_device::iis_w)));
+ space.install_readwrite_handler(0x01d20000, 0x01d20057, read32_delegate(*m_s3c44b0, FUNC(s3c44b0_device::gpio_r)), write32_delegate(*m_s3c44b0, FUNC(s3c44b0_device::gpio_w)));
+ space.install_readwrite_handler(0x01d30000, 0x01d3000b, read32_delegate(*m_s3c44b0, FUNC(s3c44b0_device::wdt_r)), write32_delegate(*m_s3c44b0, FUNC(s3c44b0_device::wdt_w)));
+ space.install_readwrite_handler(0x01d40000, 0x01d4000b, read32_delegate(*m_s3c44b0, FUNC(s3c44b0_device::adc_r)), write32_delegate(*m_s3c44b0, FUNC(s3c44b0_device::adc_w)));
+ space.install_readwrite_handler(0x01d50000, 0x01d5004f, read32_delegate(*m_s3c44b0, FUNC(s3c44b0_device::pwm_r)), write32_delegate(*m_s3c44b0, FUNC(s3c44b0_device::pwm_w)));
+ space.install_readwrite_handler(0x01d60000, 0x01d6000f, read32_delegate(*m_s3c44b0, FUNC(s3c44b0_device::iic_r)), write32_delegate(*m_s3c44b0, FUNC(s3c44b0_device::iic_w)));
+ space.install_readwrite_handler(0x01d80000, 0x01d8000f, read32_delegate(*m_s3c44b0, FUNC(s3c44b0_device::clkpow_r)), write32_delegate(*m_s3c44b0, FUNC(s3c44b0_device::clkpow_w)));
+ space.install_readwrite_handler(0x01e00000, 0x01e0003f, read32_delegate(*m_s3c44b0, FUNC(s3c44b0_device::irq_r)), write32_delegate(*m_s3c44b0, FUNC(s3c44b0_device::irq_w)));
+ space.install_readwrite_handler(0x01e80000, 0x01e8001b, read32_delegate(*m_s3c44b0, FUNC(s3c44b0_device::zdma_0_r)), write32_delegate(*m_s3c44b0, FUNC(s3c44b0_device::zdma_0_w)));
+ space.install_readwrite_handler(0x01e80020, 0x01e8003b, read32_delegate(*m_s3c44b0, FUNC(s3c44b0_device::zdma_1_r)), write32_delegate(*m_s3c44b0, FUNC(s3c44b0_device::zdma_1_w)));
+ space.install_readwrite_handler(0x01f00000, 0x01f00047, read32_delegate(*m_s3c44b0, FUNC(s3c44b0_device::lcd_r)), write32_delegate(*m_s3c44b0, FUNC(s3c44b0_device::lcd_w)));
+ space.install_readwrite_handler(0x01f80000, 0x01f8001b, read32_delegate(*m_s3c44b0, FUNC(s3c44b0_device::bdma_0_r)), write32_delegate(*m_s3c44b0, FUNC(s3c44b0_device::bdma_0_w)));
+ space.install_readwrite_handler(0x01f80020, 0x01f8003b, read32_delegate(*m_s3c44b0, FUNC(s3c44b0_device::bdma_1_r)), write32_delegate(*m_s3c44b0, FUNC(s3c44b0_device::bdma_1_w)));
}
void juicebox_state::machine_reset()
diff --git a/src/mame/drivers/jupace.cpp b/src/mame/drivers/jupace.cpp
index 2dbd54e6da8..842900a6ec3 100644
--- a/src/mame/drivers/jupace.cpp
+++ b/src/mame/drivers/jupace.cpp
@@ -790,7 +790,7 @@ void ace_state::ace(machine_config &config)
m_cassette->add_route(ALL_OUTPUTS, "mono", 0.05);
m_cassette->set_interface("jupace_cass");
- SNAPSHOT(config, "snapshot", "ace", attotime::from_seconds(1)).set_load_callback(FUNC(ace_state::snapshot_cb), this);
+ SNAPSHOT(config, "snapshot", "ace", attotime::from_seconds(1)).set_load_callback(FUNC(ace_state::snapshot_cb));
I8255A(config, m_ppi);
m_ppi->in_pb_callback().set(FUNC(ace_state::sby_r));
diff --git a/src/mame/drivers/k28.cpp b/src/mame/drivers/k28.cpp
index c357569157f..509eb45d9ce 100644
--- a/src/mame/drivers/k28.cpp
+++ b/src/mame/drivers/k28.cpp
@@ -305,7 +305,7 @@ void k28_state::k28(machine_config &config)
TMS6100(config, m_tms6100, 3.579545_MHz_XTAL / 15); // CLK tied to 8021 ALE pin
- TIMER(config, "on_button").configure_generic(timer_device::expired_delegate());
+ TIMER(config, "on_button").configure_generic(nullptr);
/* video hardware */
MM5445(config, m_vfd).output_cb().set(FUNC(k28_state::vfd_output_w));
diff --git a/src/mame/drivers/kangaroo.cpp b/src/mame/drivers/kangaroo.cpp
index c0d8de228bf..a3c549c8764 100644
--- a/src/mame/drivers/kangaroo.cpp
+++ b/src/mame/drivers/kangaroo.cpp
@@ -185,7 +185,7 @@ void kangaroo_state::machine_start()
MACHINE_START_MEMBER(kangaroo_state,kangaroo_mcu)
{
kangaroo_state::machine_start();
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xef00, 0xefff, read8_delegate(FUNC(kangaroo_state::mcu_sim_r),this), write8_delegate(FUNC(kangaroo_state::mcu_sim_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xef00, 0xefff, read8_delegate(*this, FUNC(kangaroo_state::mcu_sim_r)), write8_delegate(*this, FUNC(kangaroo_state::mcu_sim_w)));
save_item(NAME(m_mcu_clock));
}
diff --git a/src/mame/drivers/karnov.cpp b/src/mame/drivers/karnov.cpp
index 52b7a27ef92..9b6f2bd291c 100644
--- a/src/mame/drivers/karnov.cpp
+++ b/src/mame/drivers/karnov.cpp
@@ -374,8 +374,8 @@ void karnov_state::karnov_map(address_map &map)
map(0x0a0000, 0x0a07ff).ram().w(FUNC(karnov_state::videoram_w)).share("videoram");
map(0x0a0800, 0x0a0fff).w(FUNC(karnov_state::videoram_w)); /* Wndrplnt Mirror */
map(0x0a1000, 0x0a17ff).w(FUNC(karnov_state::playfield_w)).share("pf_data");
- map(0x0a1800, 0x0a1fff).lw16("pf_col_w", [this](offs_t offset, u16 data, u16 mem_mask)
- { playfield_w(((offset & 0x1f) << 5) | ((offset & 0x3e0) >> 5), data, mem_mask); });
+ map(0x0a1800, 0x0a1fff).lw16([this](offs_t offset, u16 data, u16 mem_mask)
+ { playfield_w(((offset & 0x1f) << 5) | ((offset & 0x3e0) >> 5), data, mem_mask); }, "pf_col_w");
map(0x0c0000, 0x0c0001).portr("P1_P2").w(FUNC(karnov_state::mcusim_ack_w));
map(0x0c0002, 0x0c0003).portr("SYSTEM");
map(0x0c0003, 0x0c0003).w(m_soundlatch, FUNC(generic_latch_8_device::write));
diff --git a/src/mame/drivers/kaypro.cpp b/src/mame/drivers/kaypro.cpp
index 4927826a32d..dfd98fdd458 100644
--- a/src/mame/drivers/kaypro.cpp
+++ b/src/mame/drivers/kaypro.cpp
@@ -225,7 +225,7 @@ void kaypro_state::kayproii(machine_config &config)
BEEP(config, m_beep, 950).add_route(ALL_OUTPUTS, "mono", 1.00); /* piezo-device needs to be measured */
/* devices */
- QUICKLOAD(config, "quickload", "com,cpm", attotime::from_seconds(3)).set_load_callback(FUNC(kaypro_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "com,cpm", attotime::from_seconds(3)).set_load_callback(FUNC(kaypro_state::quickload_cb));
kaypro_10_keyboard_device &kbd(KAYPRO_10_KEYBOARD(config, "kbd"));
kbd.rxd_cb().set("sio", FUNC(z80sio_device::rxb_w));
@@ -316,9 +316,9 @@ void kaypro_state::kaypro484(machine_config &config)
m_crtc->set_screen(m_screen);
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(7);
- m_crtc->set_update_row_callback(FUNC(kaypro_state::kaypro484_update_row), this);
+ m_crtc->set_update_row_callback(FUNC(kaypro_state::kaypro484_update_row));
- QUICKLOAD(config, "quickload", "com,cpm", attotime::from_seconds(3)).set_load_callback(FUNC(kaypro_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "com,cpm", attotime::from_seconds(3)).set_load_callback(FUNC(kaypro_state::quickload_cb));
kaypro_10_keyboard_device &kbd(KAYPRO_10_KEYBOARD(config, "kbd"));
kbd.rxd_cb().set("sio_1", FUNC(z80sio_device::rxb_w));
diff --git a/src/mame/drivers/kc.cpp b/src/mame/drivers/kc.cpp
index e00de4a4b71..439fa3150f1 100644
--- a/src/mame/drivers/kc.cpp
+++ b/src/mame/drivers/kc.cpp
@@ -138,7 +138,7 @@ void kc_state::kc85_3(machine_config &config)
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), this);
+ 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);
@@ -216,7 +216,7 @@ void kc85_4_state::kc85_4(machine_config &config)
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), this);
+ 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);
diff --git a/src/mame/drivers/kdt6.cpp b/src/mame/drivers/kdt6.cpp
index fbdaeeaf03f..6b63f7fc764 100644
--- a/src/mame/drivers/kdt6.cpp
+++ b/src/mame/drivers/kdt6.cpp
@@ -574,8 +574,8 @@ void kdt6_state::machine_start()
m_dummy_w = std::make_unique<uint8_t[]>(0x1000);
// override the region 0x0000 to 0x1fff here to enable prom reading
- m_cpu->space(AS_PROGRAM).install_read_handler(0x0000, 0x0fff, read8_delegate(FUNC(kdt6_state::page0_r), this));
- m_cpu->space(AS_PROGRAM).install_read_handler(0x1000, 0x1fff, read8_delegate(FUNC(kdt6_state::page1_r), this));
+ m_cpu->space(AS_PROGRAM).install_read_handler(0x0000, 0x0fff, read8_delegate(*this, FUNC(kdt6_state::page0_r)));
+ m_cpu->space(AS_PROGRAM).install_read_handler(0x1000, 0x1fff, read8_delegate(*this, FUNC(kdt6_state::page1_r)));
m_fdc->set_rate(250000);
@@ -637,7 +637,7 @@ void kdt6_state::psi98(machine_config &config)
m_crtc->set_screen("screen");
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8);
- m_crtc->set_update_row_callback(FUNC(kdt6_state::crtc_update_row), this);
+ m_crtc->set_update_row_callback(FUNC(kdt6_state::crtc_update_row));
m_crtc->out_vsync_callback().set("ctc2", FUNC(z80ctc_device::trg2));
// sound hardware
diff --git a/src/mame/drivers/kenseim.cpp b/src/mame/drivers/kenseim.cpp
index d36a07e7116..4bf9f1f66f5 100644
--- a/src/mame/drivers/kenseim.cpp
+++ b/src/mame/drivers/kenseim.cpp
@@ -695,7 +695,7 @@ ROM_END
void kenseim_state::init_kenseim()
{
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x800030, 0x800037, write16_delegate(FUNC(kenseim_state::cps1_kensei_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x800030, 0x800037, write16_delegate(*this, FUNC(kenseim_state::cps1_kensei_w)));
init_cps1();
diff --git a/src/mame/drivers/kickgoal.cpp b/src/mame/drivers/kickgoal.cpp
index 5bb83e1b919..d7c2db20317 100644
--- a/src/mame/drivers/kickgoal.cpp
+++ b/src/mame/drivers/kickgoal.cpp
@@ -166,10 +166,10 @@ void kickgoal_state::program_map(address_map &map)
map(0x880000, 0x89ffff).nopw(); // during startup
map(0x900000, 0x90ffff).nopw(); // during startup
- map(0x900001, 0x900001).lw8("eeprom_cs_w", [this](u8 data){ m_eeprom->cs_write(BIT(data, 0)); });
- map(0x900003, 0x900003).lw8("eeprom_clk_w", [this](u8 data){ m_eeprom->clk_write(BIT(data, 0)); });
- map(0x900005, 0x900005).lw8("eeprom_di_w", [this](u8 data){ m_eeprom->di_write(BIT(data, 0)); });
- map(0x900007, 0x900007).lr8("eeprom_r", [this](){ return m_eeprom->do_read(); });
+ map(0x900001, 0x900001).lw8(NAME([this] (u8 data) { m_eeprom->cs_write(BIT(data, 0)); }));
+ map(0x900003, 0x900003).lw8(NAME([this] (u8 data) { m_eeprom->clk_write(BIT(data, 0)); }));
+ map(0x900005, 0x900005).lw8(NAME([this] (u8 data) { m_eeprom->di_write(BIT(data, 0)); }));
+ map(0x900007, 0x900007).lr8(NAME([this] () { return m_eeprom->do_read(); }));
map(0xa00000, 0xa03fff).ram().w(FUNC(kickgoal_state::fgram_w)).share("fgram"); /* FG Layer */
map(0xa04000, 0xa07fff).ram().w(FUNC(kickgoal_state::bgram_w)).share("bgram"); /* Higher BG Layer */
@@ -547,7 +547,7 @@ void kickgoal_state::init_kickgoal()
void kickgoal_state::init_actionhw()
{
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x800004, 0x800005, write16_delegate(FUNC(kickgoal_state::actionhw_snd_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x800004, 0x800005, write16_delegate(*this, FUNC(kickgoal_state::actionhw_snd_w)));
}
GAME( 1995, kickgoal, 0, kickgoal, kickgoal, kickgoal_state, init_kickgoal, ROT0, "TCH", "Kick Goal (set 1)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/kingdrby.cpp b/src/mame/drivers/kingdrby.cpp
index cee9006c6fb..75da9697672 100644
--- a/src/mame/drivers/kingdrby.cpp
+++ b/src/mame/drivers/kingdrby.cpp
@@ -213,9 +213,9 @@ TILE_GET_INFO_MEMBER(kingdrby_state::get_sc1_tile_info)
void kingdrby_state::video_start()
{
- m_sc0_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(kingdrby_state::get_sc0_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,24);
- m_sc1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(kingdrby_state::get_sc1_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,24);
- m_sc0w_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(kingdrby_state::get_sc0_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32);
+ m_sc0_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(kingdrby_state::get_sc0_tile_info)), TILEMAP_SCAN_ROWS, 8,8,32,24);
+ m_sc1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(kingdrby_state::get_sc1_tile_info)), TILEMAP_SCAN_ROWS, 8,8,32,24);
+ m_sc0w_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(kingdrby_state::get_sc0_tile_info)), TILEMAP_SCAN_ROWS, 8,8,32,32);
m_sc1_tilemap->set_transparent_pen(0);
diff --git a/src/mame/drivers/koftball.cpp b/src/mame/drivers/koftball.cpp
index 9429cf05bf9..a474c144ff5 100644
--- a/src/mame/drivers/koftball.cpp
+++ b/src/mame/drivers/koftball.cpp
@@ -45,14 +45,15 @@ ft5_v6_c4.u58 /
class koftball_state : public driver_device
{
public:
- koftball_state(const machine_config &mconfig, device_type type, const char *tag)
- : driver_device(mconfig, type, tag),
+ koftball_state(const machine_config &mconfig, device_type type, const char *tag) :
+ driver_device(mconfig, type, tag),
m_maincpu(*this,"maincpu"),
m_main_ram(*this, "main_ram"),
m_bmc_1_videoram(*this, "bmc_1_videoram"),
m_bmc_2_videoram(*this, "bmc_2_videoram"),
m_gfxdecode(*this, "gfxdecode"),
- m_palette(*this, "palette") { }
+ m_palette(*this, "palette")
+ { }
void koftball(machine_config &config);
@@ -104,8 +105,8 @@ TILE_GET_INFO_MEMBER(koftball_state::get_t2_tile_info)
void koftball_state::video_start()
{
- m_tilemap_1 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(koftball_state::get_t1_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,32);
- m_tilemap_2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(koftball_state::get_t2_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,32);
+ m_tilemap_1 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(koftball_state::get_t1_tile_info)), TILEMAP_SCAN_ROWS, 8,8,64,32);
+ m_tilemap_2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(koftball_state::get_t2_tile_info)), TILEMAP_SCAN_ROWS, 8,8,64,32);
m_tilemap_1->set_transparent_pen(0);
}
diff --git a/src/mame/drivers/koikoi.cpp b/src/mame/drivers/koikoi.cpp
index 57ff82295c5..93cf170274b 100644
--- a/src/mame/drivers/koikoi.cpp
+++ b/src/mame/drivers/koikoi.cpp
@@ -151,7 +151,7 @@ void koikoi_state::koikoi_palette(palette_device &palette) const
void koikoi_state::video_start()
{
- m_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(koikoi_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(koikoi_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
uint32_t koikoi_state::screen_update_koikoi(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
diff --git a/src/mame/drivers/konamigx.cpp b/src/mame/drivers/konamigx.cpp
index 02879ecf82f..396e66ec69b 100644
--- a/src/mame/drivers/konamigx.cpp
+++ b/src/mame/drivers/konamigx.cpp
@@ -1645,7 +1645,7 @@ void konamigx_state::konamigx(machine_config &config)
m_palette->enable_hilights();
K056832(config, m_k056832, 0);
- m_k056832->set_tile_callback(FUNC(konamigx_state::type2_tile_callback), this);
+ m_k056832->set_tile_callback(FUNC(konamigx_state::type2_tile_callback));
m_k056832->set_config(K056832_BPP_5, 0, 0);
m_k056832->set_palette(m_palette);
@@ -1656,7 +1656,7 @@ void konamigx_state::konamigx(machine_config &config)
m_k054338->set_alpha_invert(1);
K055673(config, m_k055673, 0);
- m_k055673->set_sprite_callback(FUNC(konamigx_state::type2_sprite_callback), this);
+ m_k055673->set_sprite_callback(FUNC(konamigx_state::type2_sprite_callback));
m_k055673->set_config(K055673_LAYOUT_GX, -26, -23);
m_k055673->set_screen(m_screen);
m_k055673->set_palette(m_palette);
@@ -1708,7 +1708,7 @@ void konamigx_state::sexyparo(machine_config &config)
{
konamigx(config);
- m_k056832->set_tile_callback(FUNC(konamigx_state::alpha_tile_callback), this);
+ m_k056832->set_tile_callback(FUNC(konamigx_state::alpha_tile_callback));
m_k055673->set_config(K055673_LAYOUT_GX, -42, -23);
}
@@ -1729,7 +1729,7 @@ void konamigx_state::dragoonj(machine_config &config)
m_k056832->set_config(K056832_BPP_5, 1, 0);
- m_k055673->set_sprite_callback(FUNC(konamigx_state::dragoonj_sprite_callback), this);
+ m_k055673->set_sprite_callback(FUNC(konamigx_state::dragoonj_sprite_callback));
m_k055673->set_config(K055673_LAYOUT_RNG, -53, -23);
}
@@ -1742,7 +1742,7 @@ void konamigx_state::le2(machine_config &config)
m_k056832->set_config(K056832_BPP_8, 1, 0);
- m_k055673->set_sprite_callback(FUNC(konamigx_state::le2_sprite_callback), this);
+ m_k055673->set_sprite_callback(FUNC(konamigx_state::le2_sprite_callback));
m_k055673->set_config(K055673_LAYOUT_LE2, -46, -23);
}
@@ -1761,7 +1761,7 @@ void konamigx_state::salmndr2(machine_config &config)
konamigx(config);
m_k056832->set_config(K056832_BPP_6, 1, 0);
- m_k055673->set_sprite_callback(FUNC(konamigx_state::salmndr2_sprite_callback), this);
+ m_k055673->set_sprite_callback(FUNC(konamigx_state::salmndr2_sprite_callback));
m_k055673->set_config(K055673_LAYOUT_GX6, -48, -23);
}
@@ -1914,7 +1914,7 @@ void konamigx_state::winspike(machine_config &config)
m_k053252->set_offsets(24+15, 16);
- m_k056832->set_tile_callback(FUNC(konamigx_state::alpha_tile_callback), this);
+ m_k056832->set_tile_callback(FUNC(konamigx_state::alpha_tile_callback));
m_k056832->set_config(K056832_BPP_8, 0, 2);
m_k055673->set_config(K055673_LAYOUT_LE2, -53, -23);
@@ -3852,8 +3852,8 @@ void konamigx_state::init_konamigx()
switch (gameDefs[i].special)
{
case 1: // LE2 guns
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xd44000, 0xd44003, read32_delegate(FUNC(konamigx_state::le2_gun_H_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xd44004, 0xd44007, read32_delegate(FUNC(konamigx_state::le2_gun_V_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xd44000, 0xd44003, read32_delegate(*this, FUNC(konamigx_state::le2_gun_H_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xd44004, 0xd44007, read32_delegate(*this, FUNC(konamigx_state::le2_gun_V_r)));
break;
case 2: // tkmmpzdm hack
{
@@ -3888,7 +3888,7 @@ void konamigx_state::init_konamigx()
break;
case 7: // install type 4 Xilinx protection for non-type 3/4 games
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xcc0000, 0xcc0007, write32_delegate(FUNC(konamigx_state::type4_prot_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xcc0000, 0xcc0007, write32_delegate(*this, FUNC(konamigx_state::type4_prot_w)));
break;
case 8: // tbyahhoo
@@ -3905,7 +3905,7 @@ void konamigx_state::init_konamigx()
}
if (readback == BPP66)
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xd00000, 0xd01fff, read32_delegate(FUNC(konamigx_state::k_6bpp_rom_long_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xd00000, 0xd01fff, read32_delegate(*this, FUNC(konamigx_state::k_6bpp_rom_long_r)));
#undef BPP5
diff --git a/src/mame/drivers/konamim2.cpp b/src/mame/drivers/konamim2.cpp
index 0c071bfcea1..1c3d8ac46fb 100644
--- a/src/mame/drivers/konamim2.cpp
+++ b/src/mame/drivers/konamim2.cpp
@@ -1449,8 +1449,8 @@ ROM_END
void konamim2_state::install_m48t58()
{
- read8sm_delegate read_delegate(FUNC(m48t58_device::read), &(*m_m48t58));
- write8sm_delegate write_delegate(FUNC(m48t58_device::write), &(*m_m48t58));
+ read8sm_delegate read_delegate(*m_m48t58, FUNC(m48t58_device::read));
+ write8sm_delegate write_delegate(*m_m48t58, FUNC(m48t58_device::write));
m_ppc1->space(AS_PROGRAM).install_readwrite_handler(0x36c00000, 0x36c03fff, read_delegate, write_delegate, 0xff00ff00ff00ff00ULL);
m_ppc2->space(AS_PROGRAM).install_readwrite_handler(0x36c00000, 0x36c03fff, read_delegate, write_delegate, 0xff00ff00ff00ff00ULL);
@@ -1458,8 +1458,8 @@ void konamim2_state::install_m48t58()
void konamim2_state::install_ymz280b()
{
- read8sm_delegate read_delegate(FUNC(ymz280b_device::read), &(*m_ymz280b));
- write8sm_delegate write_delegate(FUNC(ymz280b_device::write), &(*m_ymz280b));
+ read8sm_delegate read_delegate(*m_ymz280b, FUNC(ymz280b_device::read));
+ write8sm_delegate write_delegate(*m_ymz280b, FUNC(ymz280b_device::write));
m_ppc1->space(AS_PROGRAM).install_readwrite_handler(0x3e800000, 0x3e80000f, read_delegate, write_delegate, 0xff00ff0000000000ULL);
m_ppc2->space(AS_PROGRAM).install_readwrite_handler(0x3e800000, 0x3e80000f, read_delegate, write_delegate, 0xff00ff0000000000ULL);
diff --git a/src/mame/drivers/konin.cpp b/src/mame/drivers/konin.cpp
index 70fc93ec311..8d4758760b0 100644
--- a/src/mame/drivers/konin.cpp
+++ b/src/mame/drivers/konin.cpp
@@ -80,14 +80,14 @@ void konin_state::konin_io(address_map &map)
map.unmap_value_high();
map.global_mask(0xff);
map(0x24, 0x24).w(FUNC(konin_state::picu_b_w));
- map(0x80, 0x83).lrw8("ioppi_rw",
- [this](offs_t offset) { return m_ioppi->read(offset^3); },
- [this](offs_t offset, u8 data) { m_ioppi->write(offset^3, data); });
+ map(0x80, 0x83).lrw8(
+ NAME([this](offs_t offset) { return m_ioppi->read(offset^3); }),
+ NAME([this](offs_t offset, u8 data) { m_ioppi->write(offset^3, data); }));
map(0xf6, 0xf6).rw("uart", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
map(0xf7, 0xf7).rw("uart", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0xf8, 0xfb).lrw8("iopit_rw",
- [this](offs_t offset) { return m_iopit->read(offset^3); },
- [this](offs_t offset, u8 data) { m_iopit->write(offset^3, data); });
+ map(0xf8, 0xfb).lrw8(
+ NAME([this](offs_t offset) { return m_iopit->read(offset^3); }),
+ NAME([this](offs_t offset, u8 data) { m_iopit->write(offset^3, data); }));
}
/* Input ports */
@@ -106,7 +106,7 @@ void konin_state::konin(machine_config &config)
maincpu.set_addrmap(AS_PROGRAM, &konin_state::konin_mem);
maincpu.set_addrmap(AS_IO, &konin_state::konin_io);
maincpu.out_inte_func().set(m_picu, FUNC(i8214_device::inte_w));
- maincpu.set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(i8212_device::inta_cb), "intlatch", (i8212_device*)nullptr));
+ maincpu.set_irq_acknowledge_callback("intlatch", FUNC(i8212_device::inta_cb));
i8212_device &intlatch(I8212(config, "intlatch", 0));
intlatch.md_rd_callback().set_constant(0);
diff --git a/src/mame/drivers/konmedal.cpp b/src/mame/drivers/konmedal.cpp
index 0e7dc948fae..351d46aca8e 100644
--- a/src/mame/drivers/konmedal.cpp
+++ b/src/mame/drivers/konmedal.cpp
@@ -416,7 +416,7 @@ void konmedal_state::tsukande(machine_config &config)
//m_palette->enable_shadows();
K056832(config, m_k056832, 0);
- m_k056832->set_tile_callback(FUNC(konmedal_state::tile_callback), this);
+ m_k056832->set_tile_callback(FUNC(konmedal_state::tile_callback));
m_k056832->set_config(K056832_BPP_4, 1, 0);
m_k056832->set_palette(m_palette);
@@ -449,7 +449,7 @@ void konmedal_state::ddboy(machine_config &config)
//m_palette->enable_shadows();
K056832(config, m_k056832, 0);
- m_k056832->set_tile_callback(FUNC(konmedal_state::tile_callback), this);
+ m_k056832->set_tile_callback(FUNC(konmedal_state::tile_callback));
m_k056832->set_config(K056832_BPP_4, 1, 0);
m_k056832->set_palette(m_palette);
@@ -564,7 +564,7 @@ void konmedal_state::shuriboy(machine_config &config)
K052109(config, m_k052109, 0);
m_k052109->set_palette(m_palette);
m_k052109->set_screen(nullptr);
- m_k052109->set_tile_callback(FUNC(konmedal_state::shuriboy_tile_callback), this);
+ m_k052109->set_tile_callback(FUNC(konmedal_state::shuriboy_tile_callback));
MCFG_MACHINE_START_OVERRIDE(konmedal_state, shuriboy)
@@ -588,7 +588,7 @@ void konmedal_state::fuusenpn(machine_config &config)
screen.set_screen_update(FUNC(konmedal_state::screen_update_fuusenpn));
screen.set_palette(m_palette);
- m_k052109->set_tile_callback(FUNC(konmedal_state::fuusenpn_tile_callback), this);
+ m_k052109->set_tile_callback(FUNC(konmedal_state::fuusenpn_tile_callback));
}
ROM_START( tsukande )
diff --git a/src/mame/drivers/konmedal68k.cpp b/src/mame/drivers/konmedal68k.cpp
index 80d5622017b..032b5adff70 100644
--- a/src/mame/drivers/konmedal68k.cpp
+++ b/src/mame/drivers/konmedal68k.cpp
@@ -345,7 +345,7 @@ void konmedal68k_state::kzaurus(machine_config &config)
PALETTE(config, "palette").set_format(palette_device::xBGR_888, 8192).enable_shadows();
K056832(config, m_k056832, 0);
- m_k056832->set_tile_callback(FUNC(konmedal68k_state::tile_callback), this);
+ m_k056832->set_tile_callback(FUNC(konmedal68k_state::tile_callback));
m_k056832->set_config(K056832_BPP_4dj, 1, 0);
m_k056832->set_palette(m_palette);
diff --git a/src/mame/drivers/ksys573.cpp b/src/mame/drivers/ksys573.cpp
index 29721e75a05..8090e588ed4 100644
--- a/src/mame/drivers/ksys573.cpp
+++ b/src/mame/drivers/ksys573.cpp
@@ -1800,7 +1800,7 @@ void ksys573_state::punchmania_cassette_install(device_t *device)
{
auto game = downcast<konami573_cassette_xi_device *>(device);
auto adc0838 = device->subdevice<adc083x_device>("adc0838");
- adc0838->set_input_callback(adc083x_device::input_delegate(FUNC(konami573_cassette_xi_device::punchmania_inputs_callback), game));
+ adc0838->set_input_callback(*game, FUNC(konami573_cassette_xi_device::punchmania_inputs_callback));
}
int pad_light[ 6 ];
diff --git a/src/mame/drivers/laserbas.cpp b/src/mame/drivers/laserbas.cpp
index d24cec3251f..38409cf90f1 100644
--- a/src/mame/drivers/laserbas.cpp
+++ b/src/mame/drivers/laserbas.cpp
@@ -400,7 +400,7 @@ void laserbas_state::laserbas(machine_config &config)
crtc.set_screen("screen");
crtc.set_show_border_area(false);
crtc.set_char_width(8);
- crtc.set_update_row_callback(FUNC(laserbas_state::crtc_update_row), this);
+ crtc.set_update_row_callback(FUNC(laserbas_state::crtc_update_row));
PALETTE(config, m_palette).set_format(palette_device::RGB_332, 32);
diff --git a/src/mame/drivers/lbeach.cpp b/src/mame/drivers/lbeach.cpp
index ff7d5893bc9..7c5f07971b0 100644
--- a/src/mame/drivers/lbeach.cpp
+++ b/src/mame/drivers/lbeach.cpp
@@ -142,9 +142,9 @@ TILE_GET_INFO_MEMBER(lbeach_state::get_fg_tile_info)
void lbeach_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(lbeach_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 16);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(lbeach_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 16);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(lbeach_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(lbeach_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 16, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(0);
m_screen->register_screen_bitmap(m_colmap_car);
diff --git a/src/mame/drivers/ldplayer.cpp b/src/mame/drivers/ldplayer.cpp
index 6ff7c0688a7..0f7fa037b2a 100644
--- a/src/mame/drivers/ldplayer.cpp
+++ b/src/mame/drivers/ldplayer.cpp
@@ -636,7 +636,7 @@ void ldv1000_state::ldv1000(machine_config &config)
{
ldplayer_ntsc(config);
pioneer_ldv1000_device &laserdisc(PIONEER_LDV1000(config, "laserdisc"));
- laserdisc.set_get_disc(FUNC(ldv1000_state::get_disc), this);
+ laserdisc.set_get_disc(FUNC(ldv1000_state::get_disc));
laserdisc.add_ntsc_screen(config, "screen");
SPEAKER(config, "lspeaker").front_left();
@@ -650,7 +650,7 @@ void pr8210_state::pr8210(machine_config &config)
{
ldplayer_ntsc(config);
pioneer_pr8210_device &laserdisc(PIONEER_PR8210(config, "laserdisc"));
- laserdisc.set_get_disc(FUNC(pr8210_state::get_disc), this);
+ laserdisc.set_get_disc(FUNC(pr8210_state::get_disc));
laserdisc.add_ntsc_screen(config, "screen");
SPEAKER(config, "lspeaker").front_left();
diff --git a/src/mame/drivers/leapfrog_leappad.cpp b/src/mame/drivers/leapfrog_leappad.cpp
index 59acdb72347..2c010d3f593 100644
--- a/src/mame/drivers/leapfrog_leappad.cpp
+++ b/src/mame/drivers/leapfrog_leappad.cpp
@@ -114,7 +114,7 @@ void leapfrog_leappad_state::leapfrog_leappad(machine_config &config)
GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "leapfrog_leappad_cart");
m_cart->set_width(GENERIC_ROM16_WIDTH);
- m_cart->set_device_load(FUNC(leapfrog_leappad_state::cart_load), this);
+ m_cart->set_device_load(FUNC(leapfrog_leappad_state::cart_load));
SOFTWARE_LIST(config, "cart_list").set_original("leapfrog_leappad_cart");
}
@@ -129,7 +129,7 @@ void leapfrog_leappad_state::leapfrog_mfleappad(machine_config &config)
GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "leapfrog_mfleappad_cart");
m_cart->set_width(GENERIC_ROM16_WIDTH);
- m_cart->set_device_load(FUNC(leapfrog_leappad_state::cart_load), this);
+ m_cart->set_device_load(FUNC(leapfrog_leappad_state::cart_load));
SOFTWARE_LIST(config, "cart_list").set_original("leapfrog_mfleappad_cart");
SOFTWARE_LIST(config, "cart_list2").set_original("leapfrog_ltleappad_cart");
diff --git a/src/mame/drivers/leapster.cpp b/src/mame/drivers/leapster.cpp
index 52cb80e98ea..2f7d04b67a4 100644
--- a/src/mame/drivers/leapster.cpp
+++ b/src/mame/drivers/leapster.cpp
@@ -324,7 +324,7 @@ void leapster_state::leapster(machine_config &config)
screen.set_screen_update(FUNC(leapster_state::screen_update_leapster));
/* cartridge */
- GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "leapster_cart", "bin").set_device_load(FUNC(leapster_state::cart_load), this);
+ GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "leapster_cart", "bin").set_device_load(FUNC(leapster_state::cart_load));
/* Software lists */
SOFTWARE_LIST(config, "cart_list").set_original("leapster");
diff --git a/src/mame/drivers/legionna.cpp b/src/mame/drivers/legionna.cpp
index 97bf35ea8e3..cbf0597ab45 100644
--- a/src/mame/drivers/legionna.cpp
+++ b/src/mame/drivers/legionna.cpp
@@ -197,9 +197,9 @@ void legionna_state::legionna_map(address_map &map)
map(0x100470, 0x100471).nopw(); // toggles 0x2000 / 0x0000, tile bank on some games
map(0x100600, 0x10064f).rw(m_crtc, FUNC(seibu_crtc_device::read), FUNC(seibu_crtc_device::write));
map(0x100680, 0x100681).nopw(); // irq ack?
- map(0x100700, 0x10071f).lrw8("seibu_sound_rw",
- [this](offs_t offset) { return m_seibu_sound->main_r(offset >> 1); },
- [this](offs_t offset, u8 data) { m_seibu_sound->main_w(offset >> 1, data); }).umask16(0x00ff);
+ map(0x100700, 0x10071f).lrw8(
+ NAME([this](offs_t offset) { return m_seibu_sound->main_r(offset >> 1); }),
+ NAME([this](offs_t offset, u8 data) { m_seibu_sound->main_w(offset >> 1, data); })).umask16(0x00ff);
map(0x100740, 0x100741).portr("DSW1");
map(0x100744, 0x100745).portr("PLAYERS12");
map(0x100748, 0x100749).portr("PLAYERS34");
@@ -227,9 +227,9 @@ void legionna_state::heatbrl_map(address_map &map)
map(0x100744, 0x100745).portr("PLAYERS12");
map(0x100748, 0x100749).portr("PLAYERS34");
map(0x10074c, 0x10074d).portr("SYSTEM");
- map(0x1007c0, 0x1007df).lrw8("seibu_sound_rw",
- [this](offs_t offset) { return m_seibu_sound->main_r(offset >> 1); },
- [this](offs_t offset, u8 data) { m_seibu_sound->main_w(offset >> 1, data); }).umask16(0x00ff);
+ map(0x1007c0, 0x1007df).lrw8(
+ NAME([this] (offs_t offset) { return m_seibu_sound->main_r(offset >> 1); }),
+ NAME([this] (offs_t offset, u8 data) { m_seibu_sound->main_w(offset >> 1, data); })).umask16(0x00ff);
map(0x100800, 0x100fff).ram(); // .w(FUNC(legionna_state::background_w)).share("back_data");
map(0x101000, 0x1017ff).ram(); // .w(FUNC(legionna_state::foreground_w).share("fore_data");
map(0x101800, 0x101fff).ram(); // .w(FUNC(legionna_state::midground_w).share("mid_data");
@@ -247,9 +247,9 @@ void legionna_state::godzilla_map(address_map &map)
map(0x100470, 0x100471).w(FUNC(legionna_state::heatbrl_setgfxbank));
map(0x100600, 0x10064f).rw(m_crtc, FUNC(seibu_crtc_device::read), FUNC(seibu_crtc_device::write));
map(0x100680, 0x100681).nopw(); // irq ack?
- map(0x100700, 0x10071f).lrw8("seibu_sound_rw",
- [this](offs_t offset) { return m_seibu_sound->main_r(offset >> 1); },
- [this](offs_t offset, u8 data) { m_seibu_sound->main_w(offset >> 1, data); }).umask16(0x00ff);
+ map(0x100700, 0x10071f).lrw8(
+ NAME([this] (offs_t offset) { return m_seibu_sound->main_r(offset >> 1); }),
+ NAME([this] (offs_t offset, u8 data) { m_seibu_sound->main_w(offset >> 1, data); })).umask16(0x00ff);
map(0x100740, 0x100741).portr("DSW1");
map(0x100744, 0x100745).portr("PLAYERS12");
map(0x100748, 0x100749).portr("PLAYERS34");
@@ -302,7 +302,7 @@ void legionna_state::denjinmk_map(address_map &map)
map(0x100600, 0x10064f).rw(m_crtc, FUNC(seibu_crtc_device::read), FUNC(seibu_crtc_device::write));
map(0x100680, 0x100681).nopw(); // irq ack?
map(0x100700, 0x10071f).r(FUNC(legionna_state::denjinmk_sound_comms_r))
- .lw8("seibu_sound_w", [this](offs_t offset, u8 data) { m_seibu_sound->main_w(offset >> 1, data); }).umask16(0x00ff);
+ .lw8(NAME([this] (offs_t offset, u8 data) { m_seibu_sound->main_w(offset >> 1, data); })).umask16(0x00ff);
map(0x100740, 0x100741).portr("DSW1");
map(0x100744, 0x100745).portr("PLAYERS12");
map(0x100748, 0x100749).portr("PLAYERS34");
@@ -329,9 +329,9 @@ void legionna_state::grainbow_map(address_map &map)
map(0x100480, 0x100487).w(FUNC(legionna_state::grainbow_layer_config_w)); // probably a COP feature
map(0x100600, 0x10064f).rw(m_crtc, FUNC(seibu_crtc_device::read), FUNC(seibu_crtc_device::write));
map(0x100680, 0x100681).nopw(); // irq ack?
- map(0x100700, 0x10071f).lrw8("seibu_sound_rw",
- [this](offs_t offset) { return m_seibu_sound->main_r(offset >> 1); },
- [this](offs_t offset, u8 data) { m_seibu_sound->main_w(offset >> 1, data); }).umask16(0x00ff);
+ map(0x100700, 0x10071f).lrw8(
+ NAME([this](offs_t offset) { return m_seibu_sound->main_r(offset >> 1); }),
+ NAME([this](offs_t offset, u8 data) { m_seibu_sound->main_w(offset >> 1, data); })).umask16(0x00ff);
map(0x100740, 0x100741).portr("DSW1");
map(0x100744, 0x100745).portr("PLAYERS12");
map(0x100748, 0x100749).portr("PLAYERS34");
@@ -356,9 +356,9 @@ void legionna_state::cupsoc_map(address_map &map)
map(0x100000, 0x1003ff).ram();
map(0x100600, 0x10064f).rw(m_crtc, FUNC(seibu_crtc_device::read), FUNC(seibu_crtc_device::write));
map(0x100680, 0x100681).nopw(); // irq ack?
- map(0x100700, 0x10071f).lrw8("seibu_sound_rw",
- [this](offs_t offset) { return m_seibu_sound->main_r(offset >> 1); },
- [this](offs_t offset, u8 data) { m_seibu_sound->main_w(offset >> 1, data); }).umask16(0x00ff);
+ map(0x100700, 0x10071f).lrw8(
+ NAME([this] (offs_t offset) { return m_seibu_sound->main_r(offset >> 1); }),
+ NAME([this] (offs_t offset, u8 data) { m_seibu_sound->main_w(offset >> 1, data); })).umask16(0x00ff);
map(0x100740, 0x100741).portr("DSW1");
map(0x100744, 0x100745).portr("PLAYERS12");
map(0x100748, 0x100749).portr("PLAYERS34");
@@ -384,22 +384,22 @@ void legionna_state::cupsocs_map(address_map &map)
legionna_cop_map(map);
map(0x000000, 0x0fffff).rom();
map(0x100000, 0x1003ff).ram();
- map(0x100600, 0x10067f).lrw16("crtc_rw",
- [this](address_space &space, offs_t offset, u16 mem_mask) {
+ map(0x100600, 0x10067f).lrw16(
+ NAME([this](address_space &space, offs_t offset, u16 mem_mask) {
return m_crtc->read(space, offset ^ 0x20, mem_mask);
- },
- [this](address_space &space, offs_t offset, u16 data, u16 mem_mask) {
+ }),
+ NAME([this](address_space &space, offs_t offset, u16 data, u16 mem_mask) {
m_crtc->write(space, offset ^ 0x20, data, mem_mask);
- });
+ }));
map(0x100680, 0x100681).nopw(); // irq ack?
map(0x100700, 0x100701).portr("DSW1");
map(0x100704, 0x100705).portr("PLAYERS12");
map(0x100708, 0x100709).portr("PLAYERS34");
map(0x10070c, 0x10070d).portr("SYSTEM");
map(0x10071c, 0x10071d).portr("DSW2");
- map(0x100740, 0x10075f).lrw8("seibu_sound_rw",
- [this](offs_t offset) { return m_seibu_sound->main_r(offset >> 1); },
- [this](offs_t offset, u8 data) { m_seibu_sound->main_w(offset >> 1, data); }).umask16(0x00ff);
+ map(0x100740, 0x10075f).lrw8(
+ NAME([this] (offs_t offset) { return m_seibu_sound->main_r(offset >> 1); }),
+ NAME([this] (offs_t offset, u8 data) { m_seibu_sound->main_w(offset >> 1, data); })).umask16(0x00ff);
map(0x100800, 0x100fff).ram(); // .w(FUNC(legionna_state::background_w)).share("back_data");
map(0x101000, 0x1017ff).ram(); // .w(FUNC(legionna_state::foreground_w).share("fore_data");
map(0x101800, 0x101fff).ram(); // .w(FUNC(legionna_state::midground_w).share("mid_data");
diff --git a/src/mame/drivers/leland.cpp b/src/mame/drivers/leland.cpp
index 55c4a7013e1..9c510f9c488 100644
--- a/src/mame/drivers/leland.cpp
+++ b/src/mame/drivers/leland.cpp
@@ -2954,11 +2954,11 @@ ROM_END
void leland_state::init_master_ports(u8 mvram_base, u8 io_base)
{
/* set up the master CPU VRAM I/O */
- m_master->space(AS_IO).install_readwrite_handler(mvram_base, mvram_base + 0x1f, read8sm_delegate(FUNC(leland_state::leland_mvram_port_r),this), write8sm_delegate(FUNC(leland_state::leland_mvram_port_w),this));
+ m_master->space(AS_IO).install_readwrite_handler(mvram_base, mvram_base + 0x1f, read8sm_delegate(*this, FUNC(leland_state::leland_mvram_port_r)), write8sm_delegate(*this, FUNC(leland_state::leland_mvram_port_w)));
/* set up the master CPU I/O ports */
- m_master->space(AS_IO).install_read_handler(io_base, io_base + 0x1f, read8sm_delegate(FUNC(leland_state::leland_master_input_r),this));
- m_master->space(AS_IO).install_write_handler(io_base, io_base + 0x0f, write8sm_delegate(FUNC(leland_state::leland_master_output_w),this));
+ m_master->space(AS_IO).install_read_handler(io_base, io_base + 0x1f, read8sm_delegate(*this, FUNC(leland_state::leland_master_input_r)));
+ m_master->space(AS_IO).install_write_handler(io_base, io_base + 0x0f, write8sm_delegate(*this, FUNC(leland_state::leland_master_output_w)));
}
@@ -2974,8 +2974,8 @@ void leland_state::init_cerberus()
init_master_ports(0x40, 0x80);
/* set up additional input ports */
- m_master->space(AS_IO).install_read_handler(0x80, 0x80, read8smo_delegate(FUNC(leland_state::cerberus_dial_1_r),this));
- m_master->space(AS_IO).install_read_handler(0x90, 0x90, read8smo_delegate(FUNC(leland_state::cerberus_dial_2_r),this));
+ m_master->space(AS_IO).install_read_handler(0x80, 0x80, read8smo_delegate(*this, FUNC(leland_state::cerberus_dial_1_r)));
+ m_master->space(AS_IO).install_read_handler(0x90, 0x90, read8smo_delegate(*this, FUNC(leland_state::cerberus_dial_2_r)));
}
@@ -3020,7 +3020,7 @@ void leland_state::init_alleymas()
/* kludge warning: the game uses location E0CA to determine if the joysticks are available */
/* it gets cleared by the code, but there is no obvious way for the value to be set to a */
/* non-zero value. If the value is zero, the joystick is never read. */
- m_master->space(AS_PROGRAM).install_write_handler(0xe0ca, 0xe0ca, write8smo_delegate(FUNC(leland_state::alleymas_joystick_kludge),this));
+ m_master->space(AS_PROGRAM).install_write_handler(0xe0ca, 0xe0ca, write8smo_delegate(*this, FUNC(leland_state::alleymas_joystick_kludge)));
m_alleymas_kludge_mem = m_mainram + (0xe0ca - 0xe000);
}
@@ -3044,9 +3044,9 @@ void leland_state::init_dangerz()
init_master_ports(0x40, 0x80);
/* set up additional input ports */
- m_master->space(AS_IO).install_read_handler(0xf4, 0xf4, read8smo_delegate(FUNC(leland_state::dangerz_input_upper_r),this));
- m_master->space(AS_IO).install_read_handler(0xf8, 0xf8, read8smo_delegate(FUNC(leland_state::dangerz_input_y_r),this));
- m_master->space(AS_IO).install_read_handler(0xfc, 0xfc, read8smo_delegate(FUNC(leland_state::dangerz_input_x_r),this));
+ m_master->space(AS_IO).install_read_handler(0xf4, 0xf4, read8smo_delegate(*this, FUNC(leland_state::dangerz_input_upper_r)));
+ m_master->space(AS_IO).install_read_handler(0xf8, 0xf8, read8smo_delegate(*this, FUNC(leland_state::dangerz_input_y_r)));
+ m_master->space(AS_IO).install_read_handler(0xfc, 0xfc, read8smo_delegate(*this, FUNC(leland_state::dangerz_input_x_r)));
save_item(NAME(m_dangerz_x));
save_item(NAME(m_dangerz_y));
@@ -3094,10 +3094,10 @@ void redline_state::init_redlin2p()
init_master_ports(0x00, 0xc0);
/* set up additional input ports */
- m_master->space(AS_IO).install_read_handler(0xc0, 0xc0, read8smo_delegate(FUNC(redline_state::redline_pedal_1_r),this));
- m_master->space(AS_IO).install_read_handler(0xd0, 0xd0, read8smo_delegate(FUNC(redline_state::redline_pedal_2_r),this));
- m_master->space(AS_IO).install_read_handler(0xf8, 0xf8, read8smo_delegate(FUNC(redline_state::redline_wheel_2_r),this));
- m_master->space(AS_IO).install_read_handler(0xfb, 0xfb, read8smo_delegate(FUNC(redline_state::redline_wheel_1_r),this));
+ m_master->space(AS_IO).install_read_handler(0xc0, 0xc0, read8smo_delegate(*this, FUNC(redline_state::redline_pedal_1_r)));
+ m_master->space(AS_IO).install_read_handler(0xd0, 0xd0, read8smo_delegate(*this, FUNC(redline_state::redline_pedal_2_r)));
+ m_master->space(AS_IO).install_read_handler(0xf8, 0xf8, read8smo_delegate(*this, FUNC(redline_state::redline_wheel_2_r)));
+ m_master->space(AS_IO).install_read_handler(0xfb, 0xfb, read8smo_delegate(*this, FUNC(redline_state::redline_wheel_1_r)));
}
@@ -3126,9 +3126,9 @@ void redline_state::init_viper()
init_master_ports(0x00, 0xc0);
/* set up additional input ports */
- m_master->space(AS_IO).install_read_handler(0xa4, 0xa4, read8smo_delegate(FUNC(redline_state::dangerz_input_upper_r),this));
- m_master->space(AS_IO).install_read_handler(0xb8, 0xb8, read8smo_delegate(FUNC(redline_state::dangerz_input_y_r),this));
- m_master->space(AS_IO).install_read_handler(0xbc, 0xbc, read8smo_delegate(FUNC(redline_state::dangerz_input_x_r),this));
+ m_master->space(AS_IO).install_read_handler(0xa4, 0xa4, read8smo_delegate(*this, FUNC(redline_state::dangerz_input_upper_r)));
+ m_master->space(AS_IO).install_read_handler(0xb8, 0xb8, read8smo_delegate(*this, FUNC(redline_state::dangerz_input_y_r)));
+ m_master->space(AS_IO).install_read_handler(0xbc, 0xbc, read8smo_delegate(*this, FUNC(redline_state::dangerz_input_x_r)));
save_item(NAME(m_dangerz_x));
save_item(NAME(m_dangerz_y));
@@ -3221,9 +3221,9 @@ void redline_state::init_offroad()
init_master_ports(0x40, 0x80); /* yes, this is intentional */
/* set up additional input ports */
- m_master->space(AS_IO).install_read_handler(0xf8, 0xf8, read8smo_delegate(FUNC(redline_state::offroad_wheel_3_r),this));
- m_master->space(AS_IO).install_read_handler(0xf9, 0xf9, read8smo_delegate(FUNC(redline_state::offroad_wheel_1_r),this));
- m_master->space(AS_IO).install_read_handler(0xfb, 0xfb, read8smo_delegate(FUNC(redline_state::offroad_wheel_2_r),this));
+ m_master->space(AS_IO).install_read_handler(0xf8, 0xf8, read8smo_delegate(*this, FUNC(redline_state::offroad_wheel_3_r)));
+ m_master->space(AS_IO).install_read_handler(0xf9, 0xf9, read8smo_delegate(*this, FUNC(redline_state::offroad_wheel_1_r)));
+ m_master->space(AS_IO).install_read_handler(0xfb, 0xfb, read8smo_delegate(*this, FUNC(redline_state::offroad_wheel_2_r)));
}
@@ -3240,9 +3240,9 @@ void redline_state::init_offroadt()
init_master_ports(0x80, 0x40);
/* set up additional input ports */
- m_master->space(AS_IO).install_read_handler(0xf8, 0xf8, read8smo_delegate(FUNC(redline_state::offroad_wheel_3_r),this));
- m_master->space(AS_IO).install_read_handler(0xf9, 0xf9, read8smo_delegate(FUNC(redline_state::offroad_wheel_1_r),this));
- m_master->space(AS_IO).install_read_handler(0xfb, 0xfb, read8smo_delegate(FUNC(redline_state::offroad_wheel_2_r),this));
+ m_master->space(AS_IO).install_read_handler(0xf8, 0xf8, read8smo_delegate(*this, FUNC(redline_state::offroad_wheel_3_r)));
+ m_master->space(AS_IO).install_read_handler(0xf9, 0xf9, read8smo_delegate(*this, FUNC(redline_state::offroad_wheel_1_r)));
+ m_master->space(AS_IO).install_read_handler(0xfb, 0xfb, read8smo_delegate(*this, FUNC(redline_state::offroad_wheel_2_r)));
}
@@ -3269,7 +3269,7 @@ void ataxx_state::init_ataxx()
rotate_memory("slave");
/* set up additional input ports */
- m_master->space(AS_IO).install_read_handler(0x00, 0x03, read8sm_delegate(FUNC(ataxx_state::ataxx_trackball_r),this));
+ m_master->space(AS_IO).install_read_handler(0x00, 0x03, read8sm_delegate(*this, FUNC(ataxx_state::ataxx_trackball_r)));
}
@@ -3279,7 +3279,7 @@ void ataxx_state::init_ataxxj()
rotate_memory("slave");
/* set up additional input ports */
- m_master->space(AS_IO).install_read_handler(0x00, 0x03, read8sm_delegate(FUNC(ataxx_state::ataxx_trackball_r),this));
+ m_master->space(AS_IO).install_read_handler(0x00, 0x03, read8sm_delegate(*this, FUNC(ataxx_state::ataxx_trackball_r)));
}
@@ -3301,14 +3301,14 @@ void ataxx_state::init_indyheat()
rotate_memory("slave");
/* set up additional input ports */
- m_master->space(AS_IO).install_read_handler(0x00, 0x02, read8sm_delegate(FUNC(ataxx_state::ataxx_trackball_r),this));
- m_master->space(AS_IO).install_read_handler(0x08, 0x0b, read8sm_delegate(FUNC(ataxx_state::indyheat_analog_r),this));
+ m_master->space(AS_IO).install_read_handler(0x00, 0x02, read8sm_delegate(*this, FUNC(ataxx_state::ataxx_trackball_r)));
+ m_master->space(AS_IO).install_read_handler(0x08, 0x0b, read8sm_delegate(*this, FUNC(ataxx_state::indyheat_analog_r)));
m_master->space(AS_IO).install_read_port(0x0d, 0x0d, "P1");
m_master->space(AS_IO).install_read_port(0x0e, 0x0e, "P2");
m_master->space(AS_IO).install_read_port(0x0f, 0x0f, "P3");
/* set up additional output ports */
- m_master->space(AS_IO).install_write_handler(0x08, 0x0b, write8sm_delegate(FUNC(ataxx_state::indyheat_analog_w),this));
+ m_master->space(AS_IO).install_write_handler(0x08, 0x0b, write8sm_delegate(*this, FUNC(ataxx_state::indyheat_analog_w)));
}
diff --git a/src/mame/drivers/lethal.cpp b/src/mame/drivers/lethal.cpp
index 16fb28cf0be..bf1d46f7c86 100644
--- a/src/mame/drivers/lethal.cpp
+++ b/src/mame/drivers/lethal.cpp
@@ -516,7 +516,7 @@ void lethal_state::lethalen(machine_config &config)
m_palette->enable_shadows();
K056832(config, m_k056832, 0);
- m_k056832->set_tile_callback(FUNC(lethal_state::tile_callback), this);
+ m_k056832->set_tile_callback(FUNC(lethal_state::tile_callback));
m_k056832->set_config(K056832_BPP_8LE, 1, 0);
m_k056832->set_palette(m_palette);
@@ -524,7 +524,7 @@ void lethal_state::lethalen(machine_config &config)
m_k053244->set_palette(m_palette);
m_k053244->set_bpp(6);
m_k053244->set_offsets(95, 0);
- m_k053244->set_sprite_callback(FUNC(lethal_state::sprite_callback), this);
+ m_k053244->set_sprite_callback(FUNC(lethal_state::sprite_callback));
K054000(config, "k054000", 0);
diff --git a/src/mame/drivers/lethalj.cpp b/src/mame/drivers/lethalj.cpp
index 2bd14a5c9dc..2467c68cb8c 100644
--- a/src/mame/drivers/lethalj.cpp
+++ b/src/mame/drivers/lethalj.cpp
@@ -1015,19 +1015,19 @@ ROM_END
void lethalj_state::init_ripribit()
{
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x04100010, 0x0410001f, write16_delegate(FUNC(lethalj_state::ripribit_control_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x04100010, 0x0410001f, write16_delegate(*this, FUNC(lethalj_state::ripribit_control_w)));
}
void lethalj_state::init_cfarm()
{
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x04100010, 0x0410001f, write16_delegate(FUNC(lethalj_state::cfarm_control_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x04100010, 0x0410001f, write16_delegate(*this, FUNC(lethalj_state::cfarm_control_w)));
}
void lethalj_state::init_cclownz()
{
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x04100010, 0x0410001f, write16_delegate(FUNC(lethalj_state::cclownz_control_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x04100010, 0x0410001f, write16_delegate(*this, FUNC(lethalj_state::cclownz_control_w)));
}
diff --git a/src/mame/drivers/liberate.cpp b/src/mame/drivers/liberate.cpp
index 1753bde6cb5..ced0d21aa19 100644
--- a/src/mame/drivers/liberate.cpp
+++ b/src/mame/drivers/liberate.cpp
@@ -77,7 +77,7 @@ WRITE8_MEMBER(liberate_state::deco16_bank_w)
m_bank = data;
if (m_bank)
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x8000, 0x800f, read8_delegate(FUNC(liberate_state::deco16_io_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x8000, 0x800f, read8_delegate(*this, FUNC(liberate_state::deco16_io_r)));
else
m_maincpu->space(AS_PROGRAM).install_read_bank(0x8000, 0x800f, "bank1");
}
@@ -180,9 +180,9 @@ WRITE8_MEMBER(liberate_state::prosoccr_io_bank_w)
m_bank = data & 1;
if (m_bank)
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x8000, 0x800f, read8_delegate(FUNC(liberate_state::deco16_io_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x8000, 0x800f, read8_delegate(*this, FUNC(liberate_state::deco16_io_r)));
else
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x8000, 0x800f, read8_delegate(FUNC(liberate_state::prosoccr_charram_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x8000, 0x800f, read8_delegate(*this, FUNC(liberate_state::prosoccr_charram_r)));
}
diff --git a/src/mame/drivers/limenko.cpp b/src/mame/drivers/limenko.cpp
index 55ccde825cd..2ee82ecd573 100644
--- a/src/mame/drivers/limenko.cpp
+++ b/src/mame/drivers/limenko.cpp
@@ -470,9 +470,9 @@ void limenko_state::copy_sprites(bitmap_ind16 &bitmap, bitmap_ind16 &sprites_bit
void limenko_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(limenko_state::get_bg_tile_info),this),TILEMAP_SCAN_ROWS,8,8,128,64);
- m_md_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(limenko_state::get_md_tile_info),this),TILEMAP_SCAN_ROWS,8,8,128,64);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(limenko_state::get_fg_tile_info),this),TILEMAP_SCAN_ROWS,8,8,128,64);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(limenko_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8,8,128,64);
+ m_md_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(limenko_state::get_md_tile_info)), TILEMAP_SCAN_ROWS, 8,8,128,64);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(limenko_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8,8,128,64);
m_md_tilemap->set_transparent_pen(0);
m_fg_tilemap->set_transparent_pen(0);
@@ -1079,21 +1079,21 @@ void limenko_state::init_common()
void limenko_state::init_dynabomb()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xe2784, 0xe2787, read32_delegate(FUNC(limenko_state::dynabomb_speedup_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xe2784, 0xe2787, read32_delegate(*this, FUNC(limenko_state::dynabomb_speedup_r)));
init_common();
}
void limenko_state::init_legendoh()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x32ab0, 0x32ab3, read32_delegate(FUNC(limenko_state::legendoh_speedup_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x32ab0, 0x32ab3, read32_delegate(*this, FUNC(limenko_state::legendoh_speedup_r)));
init_common();
}
void limenko_state::init_sb2003()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x135800, 0x135803, read32_delegate(FUNC(limenko_state::sb2003_speedup_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x135800, 0x135803, read32_delegate(*this, FUNC(limenko_state::sb2003_speedup_r)));
init_common();
}
@@ -1113,7 +1113,7 @@ void limenko_state::init_spotty()
dst[x+2] = (src[x+1]&0x0f) >> 0;
}
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x6626c, 0x6626f, read32_delegate(FUNC(limenko_state::spotty_speedup_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x6626c, 0x6626f, read32_delegate(*this, FUNC(limenko_state::spotty_speedup_r)));
m_spriteram_bit = 1;
diff --git a/src/mame/drivers/lola8a.cpp b/src/mame/drivers/lola8a.cpp
index 39ae8719f57..16fd75b7fd6 100644
--- a/src/mame/drivers/lola8a.cpp
+++ b/src/mame/drivers/lola8a.cpp
@@ -314,7 +314,7 @@ void lola8a_state::lola8a(machine_config &config)
crtc.set_screen("screen");
crtc.set_show_border_area(false);
crtc.set_char_width(8);
- crtc.set_update_row_callback(FUNC(lola8a_state::crtc_update_row), this);
+ crtc.set_update_row_callback(FUNC(lola8a_state::crtc_update_row));
crtc.out_vsync_callback().set(FUNC(lola8a_state::crtc_vsync));
PALETTE(config, m_palette, palette_device::BRG_3BIT);
diff --git a/src/mame/drivers/looping.cpp b/src/mame/drivers/looping.cpp
index 5b0d253411d..bace0c114fd 100644
--- a/src/mame/drivers/looping.cpp
+++ b/src/mame/drivers/looping.cpp
@@ -252,7 +252,7 @@ TILE_GET_INFO_MEMBER(looping_state::get_tile_info)
void looping_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(looping_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8,8, 32,32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(looping_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 32,32);
m_bg_tilemap->set_scroll_cols(0x20);
}
@@ -933,7 +933,7 @@ void looping_state::init_looping()
rom[i] = bitswap<8>(rom[i], 0,1,2,3,4,5,6,7);
/* install protection handlers */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x7000, 0x7007, read8_delegate(FUNC(looping_state::protection_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x7000, 0x7007, read8_delegate(*this, FUNC(looping_state::protection_r)));
}
diff --git a/src/mame/drivers/ltcasino.cpp b/src/mame/drivers/ltcasino.cpp
index 180f5611986..039fa48ed1c 100644
--- a/src/mame/drivers/ltcasino.cpp
+++ b/src/mame/drivers/ltcasino.cpp
@@ -430,13 +430,13 @@ void ltcasino_state::init_mv4in1()
void ltcasino_state::machine_start_ltcasino()
{
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ltcasino_state::ltcasino_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ltcasino_state::ltcasino_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_lamps.resolve();
}
void ltcasino_state::machine_start_ltcasin2()
{
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ltcasino_state::ltcasin2_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ltcasino_state::ltcasin2_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_lamps.resolve();
}
diff --git a/src/mame/drivers/luckgrln.cpp b/src/mame/drivers/luckgrln.cpp
index 541f9446497..2484e6b733a 100644
--- a/src/mame/drivers/luckgrln.cpp
+++ b/src/mame/drivers/luckgrln.cpp
@@ -188,10 +188,10 @@ TILE_GET_INFO_MEMBER(luckgrln_state::get_reel_tile_info)
void luckgrln_state::video_start()
{
- m_reel_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(luckgrln_state::get_reel_tile_info<0>), this), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
- m_reel_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(luckgrln_state::get_reel_tile_info<1>), this), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
- m_reel_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(luckgrln_state::get_reel_tile_info<2>), this), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
- m_reel_tilemap[3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(luckgrln_state::get_reel_tile_info<3>), this), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
+ m_reel_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(luckgrln_state::get_reel_tile_info<0>)), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
+ m_reel_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(luckgrln_state::get_reel_tile_info<1>)), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
+ m_reel_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(luckgrln_state::get_reel_tile_info<2>)), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
+ m_reel_tilemap[3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(luckgrln_state::get_reel_tile_info<3>)), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
for (uint8_t i = 0; i < 4; i++)
{
diff --git a/src/mame/drivers/lviv.cpp b/src/mame/drivers/lviv.cpp
index f529443a2b1..6ea1c7e75ad 100644
--- a/src/mame/drivers/lviv.cpp
+++ b/src/mame/drivers/lviv.cpp
@@ -460,7 +460,7 @@ void lviv_state::lviv(machine_config &config)
SPEAKER_SOUND(config, "speaker").add_route(ALL_OUTPUTS, "mono", 0.50);
/* snapshot */
- SNAPSHOT(config, "snapshot", "sav").set_load_callback(FUNC(lviv_state::snapshot_cb), this);
+ SNAPSHOT(config, "snapshot", "sav").set_load_callback(FUNC(lviv_state::snapshot_cb));
CASSETTE(config, m_cassette);
m_cassette->set_formats(lviv_lvt_format);
diff --git a/src/mame/drivers/lwings.cpp b/src/mame/drivers/lwings.cpp
index e6b80ef5e8e..149429aa548 100644
--- a/src/mame/drivers/lwings.cpp
+++ b/src/mame/drivers/lwings.cpp
@@ -1777,8 +1777,8 @@ ROM_END
void lwings_state::init_avengersb()
{
- /* set up protection handlers */
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xf80c, 0xf80c, write8smo_delegate(FUNC(generic_latch_8_device::write), (generic_latch_8_device*)m_soundlatch));
+ // set up protection handlers
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xf80c, 0xf80c, write8smo_delegate(*m_soundlatch, FUNC(generic_latch_8_device::write)));
}
diff --git a/src/mame/drivers/lynx.cpp b/src/mame/drivers/lynx.cpp
index a5f71e1a7aa..272587ffcaa 100644
--- a/src/mame/drivers/lynx.cpp
+++ b/src/mame/drivers/lynx.cpp
@@ -98,15 +98,15 @@ void lynx_state::lynx(machine_config &config)
/* sound hardware */
SPEAKER(config, "mono").front_center();
LYNX_SND(config, m_sound, 0);
- m_sound->set_timer_delegate(FUNC(lynx_state::sound_cb), this);
+ m_sound->set_timer_delegate(FUNC(lynx_state::sound_cb));
m_sound->add_route(ALL_OUTPUTS, "mono", 0.50);
/* devices */
- QUICKLOAD(config, "quickload", "o").set_load_callback(FUNC(lynx_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "o").set_load_callback(FUNC(lynx_state::quickload_cb));
generic_cartslot_device &cartslot(GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "lynx_cart", "lnx,lyx"));
cartslot.set_must_be_loaded(true);
- cartslot.set_device_load(FUNC(lynx_state::cart_load), this);
+ cartslot.set_device_load(FUNC(lynx_state::cart_load));
/* Software lists */
SOFTWARE_LIST(config, "cart_list").set_original("lynx");
@@ -123,7 +123,7 @@ void lynx_state::lynx2(machine_config &config)
SPEAKER(config, "rspeaker").front_right();
config.device_remove("lynx");
LYNX2_SND(config.replace(), m_sound, 0);
- m_sound->set_timer_delegate(FUNC(lynx_state::sound_cb), this);
+ m_sound->set_timer_delegate(FUNC(lynx_state::sound_cb));
m_sound->add_route(0, "lspeaker", 0.50);
m_sound->add_route(1, "rspeaker", 0.50);
}
diff --git a/src/mame/drivers/m14.cpp b/src/mame/drivers/m14.cpp
index f277b331ce6..56a1c2fb054 100644
--- a/src/mame/drivers/m14.cpp
+++ b/src/mame/drivers/m14.cpp
@@ -154,7 +154,7 @@ TILE_GET_INFO_MEMBER(m14_state::m14_get_tile_info)
void m14_state::video_start()
{
- m_m14_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(m14_state::m14_get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_m14_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(m14_state::m14_get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
diff --git a/src/mame/drivers/m20.cpp b/src/mame/drivers/m20.cpp
index 4c43bb26821..b7cb018614f 100644
--- a/src/mame/drivers/m20.cpp
+++ b/src/mame/drivers/m20.cpp
@@ -820,7 +820,7 @@ void m20_state::m20(machine_config &config)
crtc.set_screen("screen");
crtc.set_show_border_area(false);
crtc.set_char_width(16);
- crtc.set_update_row_callback(FUNC(m20_state::update_row), this);
+ crtc.set_update_row_callback(FUNC(m20_state::update_row));
I8255A(config, m_i8255, 0);
diff --git a/src/mame/drivers/m3.cpp b/src/mame/drivers/m3.cpp
index f875c49b9c2..e97675a6e50 100644
--- a/src/mame/drivers/m3.cpp
+++ b/src/mame/drivers/m3.cpp
@@ -136,7 +136,7 @@ void m3_state::m3(machine_config &config)
crtc.set_screen("screen");
crtc.set_show_border_area(false);
crtc.set_char_width(7);
- crtc.set_update_row_callback(FUNC(m3_state::crtc_update_row), this);
+ crtc.set_update_row_callback(FUNC(m3_state::crtc_update_row));
}
ROM_START( m3 )
diff --git a/src/mame/drivers/m5.cpp b/src/mame/drivers/m5.cpp
index 337f86df98b..bd7b14dedae 100644
--- a/src/mame/drivers/m5.cpp
+++ b/src/mame/drivers/m5.cpp
@@ -519,7 +519,7 @@ WRITE8_MEMBER( m5_state::mem64KBI_w ) //out 0x6c
//if AUTOSTART is on don't load any ROM cart
if (m_cart && (m_DIPS->read() & 2) != 2)
{
- program.install_read_handler(0x2000, 0x6fff, read8_delegate(FUNC(m5_cart_slot_device::read_rom), (m5_cart_slot_device*)m_cart)); //m_cart pointer to rom cart
+ program.install_read_handler(0x2000, 0x6fff, read8_delegate(*m_cart, FUNC(m5_cart_slot_device::read_rom))); //m_cart pointer to rom cart
program.unmap_write(0x2000, 0x3fff);
}
else
@@ -680,7 +680,7 @@ WRITE8_MEMBER( m5_state::mem64KRX_w ) //out 0x7f
//if KRX ROM is paged out page in cart ROM if any
if (m_cart && BIT(m_ram_mode, 1) == 0 )
{
- program.install_read_handler(0x2000, 0x6fff, read8_delegate(FUNC(m5_cart_slot_device::read_rom),(m5_cart_slot_device*)m_cart));
+ program.install_read_handler(0x2000, 0x6fff, read8_delegate(*m_cart, FUNC(m5_cart_slot_device::read_rom)));
program.unmap_write(0x2000, 0x6fff);
}
@@ -1281,10 +1281,10 @@ void m5_state::machine_reset()
case EM_5:
program.install_rom(0x0000, 0x1fff, memregion(Z80_TAG)->base());
program.unmap_write(0x0000, 0x1fff);
- program.install_readwrite_handler(0x8000, 0xffff, read8_delegate(FUNC(m5_cart_slot_device::read_ram),(m5_cart_slot_device*)m_cart_ram), write8_delegate(FUNC(m5_cart_slot_device::write_ram),(m5_cart_slot_device*)m_cart_ram));
+ program.install_readwrite_handler(0x8000, 0xffff, read8_delegate(*m_cart_ram, FUNC(m5_cart_slot_device::read_ram)), write8_delegate(*m_cart_ram, FUNC(m5_cart_slot_device::write_ram)));
if (m_cart)
{
- program.install_read_handler(0x2000, 0x6fff, read8_delegate(FUNC(m5_cart_slot_device::read_rom),(m5_cart_slot_device*)m_cart));
+ program.install_read_handler(0x2000, 0x6fff, read8_delegate(*m_cart, FUNC(m5_cart_slot_device::read_rom)));
program.unmap_write(0x2000, 0x6fff);
}
break;
@@ -1296,7 +1296,7 @@ void m5_state::machine_reset()
//if AUTOSTART is on then page out cart and start tape loading
if (m_cart && ((m_DIPS->read() & 2) != 2))
{
- program.install_read_handler(0x2000, 0x3fff, read8_delegate(FUNC(m5_cart_slot_device::read_rom),(m5_cart_slot_device*)m_cart));
+ program.install_read_handler(0x2000, 0x3fff, read8_delegate(*m_cart, FUNC(m5_cart_slot_device::read_rom)));
program.unmap_write(0x2000, 0x3fff);
}
else
@@ -1342,7 +1342,7 @@ void m5_state::machine_reset()
{
program.install_rom(0x0000, 0x1fff, memregion(Z80_TAG)->base());
program.unmap_write(0x0000, 0x1fff);
- program.install_read_handler(0x2000, 0x6fff, read8_delegate(FUNC(m5_cart_slot_device::read_rom),(m5_cart_slot_device*)m_cart));
+ program.install_read_handler(0x2000, 0x6fff, read8_delegate(*m_cart, FUNC(m5_cart_slot_device::read_rom)));
program.unmap_write(0x2000, 0x6fff);
}
m_ram_mode=0;
@@ -1381,7 +1381,7 @@ void brno_state::machine_reset()
if (m_cart)
{
- program.install_read_handler(0x2000, 0x6fff, read8_delegate(FUNC(m5_cart_slot_device::read_rom),(m5_cart_slot_device*)m_cart));
+ program.install_read_handler(0x2000, 0x6fff, read8_delegate(*m_cart, FUNC(m5_cart_slot_device::read_rom)));
program.unmap_write(0x2000, 0x6fff);
}
@@ -1526,7 +1526,7 @@ void brno_state::brno(machine_config &config)
// only one floppy drive
//config.device_remove(WD2797_TAG":1");
- //SNAPSHOT(config, "snapshot", "rmd", 0).set_load_callback(brno_state::snapshot_cb), this);
+ //SNAPSHOT(config, "snapshot", "rmd", 0).set_load_callback(brno_state::snapshot_cb));
// software list
SOFTWARE_LIST(config, "flop_list").set_original("m5_flop");
diff --git a/src/mame/drivers/m63.cpp b/src/mame/drivers/m63.cpp
index 56b13888e04..252597a4f5a 100644
--- a/src/mame/drivers/m63.cpp
+++ b/src/mame/drivers/m63.cpp
@@ -335,8 +335,8 @@ TILE_GET_INFO_MEMBER(m63_state::get_fg_tile_info)
VIDEO_START_MEMBER(m63_state,m63)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(m63_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(m63_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(m63_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(m63_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_bg_tilemap->set_scroll_cols(32);
m_fg_tilemap->set_transparent_pen(0);
diff --git a/src/mame/drivers/m68705prg.cpp b/src/mame/drivers/m68705prg.cpp
index 9bb8e2618f7..0f4a23fa273 100644
--- a/src/mame/drivers/m68705prg.cpp
+++ b/src/mame/drivers/m68705prg.cpp
@@ -232,10 +232,10 @@ void m68705prg_state_base::m68705prg(machine_config &config)
config.m_perfect_cpu_quantum = subtag("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), this);
+ m_eprom_image->set_device_load(FUNC(m68705prg_state_base::eprom_load));
GENERIC_SOCKET(config, m_mcu_image, generic_plain_slot, "mcu", "bin,rom");
- m_mcu_image->set_device_load(FUNC(m68705prg_state_base::mcu_load), this);
+ m_mcu_image->set_device_load(FUNC(m68705prg_state_base::mcu_load));
config.set_default_layout(layout_m68705prg);
}
diff --git a/src/mame/drivers/m72.cpp b/src/mame/drivers/m72.cpp
index 66d343195d0..f5f698c7ca4 100644
--- a/src/mame/drivers/m72.cpp
+++ b/src/mame/drivers/m72.cpp
@@ -655,8 +655,8 @@ void m72_state::install_protection_handler(const u8 *code,const u8 *crc)
m_protection_code = code;
m_protection_crc = crc;
m_maincpu->space(AS_PROGRAM).install_read_bank(0xb0000, 0xb0fff, "bank1");
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xb0ffa, 0xb0ffb, read16_delegate(FUNC(m72_state::protection_r),this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xb0000, 0xb0fff, write16_delegate(FUNC(m72_state::protection_w),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xb0ffa, 0xb0ffb, read16_delegate(*this, FUNC(m72_state::protection_r)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xb0000, 0xb0fff, write16_delegate(*this, FUNC(m72_state::protection_w)));
membank("bank1")->configure_entry(0, m_protection_ram.get());
save_pointer(NAME(m_protection_ram), 0x1000/2);
@@ -665,36 +665,36 @@ void m72_state::install_protection_handler(const u8 *code,const u8 *crc)
void m72_state::init_bchopper()
{
install_protection_handler(bchopper_code,bchopper_crc);
- m_maincpu->space(AS_IO).install_write_handler(0xc0, 0xc1, write16_delegate(FUNC(m72_state::bchopper_sample_trigger_w),this));
+ m_maincpu->space(AS_IO).install_write_handler(0xc0, 0xc1, write16_delegate(*this, FUNC(m72_state::bchopper_sample_trigger_w)));
}
void m72_state::init_nspirit()
{
install_protection_handler(nspirit_code,nspirit_crc);
- m_maincpu->space(AS_IO).install_write_handler(0xc0, 0xc1, write16_delegate(FUNC(m72_state::nspirit_sample_trigger_w),this));
+ m_maincpu->space(AS_IO).install_write_handler(0xc0, 0xc1, write16_delegate(*this, FUNC(m72_state::nspirit_sample_trigger_w)));
}
void m72_state::init_imgfight()
{
install_protection_handler(imgfight_code,imgfightj_crc);
- m_maincpu->space(AS_IO).install_write_handler(0xc0, 0xc1, write16_delegate(FUNC(m72_state::imgfight_sample_trigger_w),this));
+ m_maincpu->space(AS_IO).install_write_handler(0xc0, 0xc1, write16_delegate(*this, FUNC(m72_state::imgfight_sample_trigger_w)));
}
void m72_state::init_dbreedm72()
{
install_protection_handler(dbreedm72_code,dbreedm72_crc);
- m_maincpu->space(AS_IO).install_write_handler(0xc0, 0xc1, write16_delegate(FUNC(m72_state::dbreedm72_sample_trigger_w),this));
+ m_maincpu->space(AS_IO).install_write_handler(0xc0, 0xc1, write16_delegate(*this, FUNC(m72_state::dbreedm72_sample_trigger_w)));
}
void m72_state::init_dkgenm72()
{
install_protection_handler(dkgenm72_code,dkgenm72_crc);
- m_maincpu->space(AS_IO).install_write_handler(0xc0, 0xc1, write16_delegate(FUNC(m72_state::dkgenm72_sample_trigger_w),this));
+ m_maincpu->space(AS_IO).install_write_handler(0xc0, 0xc1, write16_delegate(*this, FUNC(m72_state::dkgenm72_sample_trigger_w)));
}
void m72_state::init_gallop()
{
- m_maincpu->space(AS_IO).install_write_handler(0xc0, 0xc1, write16_delegate(FUNC(m72_state::gallop_sample_trigger_w),this));
+ m_maincpu->space(AS_IO).install_write_handler(0xc0, 0xc1, write16_delegate(*this, FUNC(m72_state::gallop_sample_trigger_w)));
}
diff --git a/src/mame/drivers/m90.cpp b/src/mame/drivers/m90.cpp
index e0f63a5fe2b..f2b459b0c17 100644
--- a/src/mame/drivers/m90.cpp
+++ b/src/mame/drivers/m90.cpp
@@ -851,7 +851,7 @@ void m90_state::dynablsb(machine_config &config)
m_soundcpu->set_addrmap(AS_IO, &m90_state::dynablsb_sound_cpu_io_map);
m_soundcpu->set_periodic_int(FUNC(m90_state::irq0_line_hold), attotime::from_hz(64*60)); /* half the sample rate of the original */
- m_soundcpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate());
+ m_soundcpu->remove_irq_acknowledge_callback();
m_screen->set_size(320, 240);
m_screen->set_visarea(0, 319, 0, 239);
diff --git a/src/mame/drivers/macrossp.cpp b/src/mame/drivers/macrossp.cpp
index d0fe5b3b565..e4a7cdd6986 100644
--- a/src/mame/drivers/macrossp.cpp
+++ b/src/mame/drivers/macrossp.cpp
@@ -712,13 +712,13 @@ WRITE32_MEMBER(macrossp_state::quizmoon_speedup_w)
void macrossp_state::init_macrossp()
{
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xf10158, 0xf1015b, write32_delegate(FUNC(macrossp_state::macrossp_speedup_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xf10158, 0xf1015b, write32_delegate(*this, FUNC(macrossp_state::macrossp_speedup_w)));
}
void macrossp_state::init_quizmoon()
{
#ifdef UNUSED_FUNCTION
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xf00020, 0xf00023, write32_delegate(FUNC(macrossp_state::quizmoon_speedup_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xf00020, 0xf00023, write32_delegate(*this, FUNC(macrossp_state::quizmoon_speedup_w)));
#endif
}
diff --git a/src/mame/drivers/macs.cpp b/src/mame/drivers/macs.cpp
index 5bc2554a204..ca82efc7d70 100644
--- a/src/mame/drivers/macs.cpp
+++ b/src/mame/drivers/macs.cpp
@@ -508,7 +508,7 @@ void macs_state::macs(machine_config &config)
ST0016_CPU(config, m_maincpu, 8000000); // 8 MHz ?
m_maincpu->set_memory_map(&macs_state::macs_mem);
m_maincpu->set_io_map(&macs_state::macs_io);
- m_maincpu->set_dma_offs_callback(FUNC(macs_state::dma_offset), this);
+ m_maincpu->set_dma_offs_callback(FUNC(macs_state::dma_offset));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
diff --git a/src/mame/drivers/magic10.cpp b/src/mame/drivers/magic10.cpp
index 6899800253c..13cf7246d43 100644
--- a/src/mame/drivers/magic10.cpp
+++ b/src/mame/drivers/magic10.cpp
@@ -253,9 +253,9 @@ TILE_GET_INFO_MEMBER(magic10_state::get_layer2_tile_info)
void magic10_state::video_start()
{
- m_layer0_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(magic10_state::get_layer0_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- m_layer1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(magic10_state::get_layer1_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- m_layer2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(magic10_state::get_layer2_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_layer0_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(magic10_state::get_layer0_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_layer1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(magic10_state::get_layer1_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_layer2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(magic10_state::get_layer2_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
m_layer1_tilemap->set_transparent_pen(0);
m_layer2_tilemap->set_transparent_pen(0);
diff --git a/src/mame/drivers/magicfly.cpp b/src/mame/drivers/magicfly.cpp
index 63c2f06d573..6d46a08e875 100644
--- a/src/mame/drivers/magicfly.cpp
+++ b/src/mame/drivers/magicfly.cpp
@@ -542,7 +542,7 @@ TILE_GET_INFO_MEMBER(magicfly_state::get_magicfly_tile_info)
void magicfly_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(magicfly_state::get_magicfly_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 32, 29);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(magicfly_state::get_magicfly_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 29);
}
@@ -573,7 +573,7 @@ TILE_GET_INFO_MEMBER(magicfly_state::get_7mezzo_tile_info)
VIDEO_START_MEMBER(magicfly_state, 7mezzo)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(magicfly_state::get_7mezzo_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 32, 29);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(magicfly_state::get_7mezzo_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 29);
}
diff --git a/src/mame/drivers/magictg.cpp b/src/mame/drivers/magictg.cpp
index e839285a4d3..adfc95c4f90 100644
--- a/src/mame/drivers/magictg.cpp
+++ b/src/mame/drivers/magictg.cpp
@@ -929,17 +929,13 @@ void magictg_state::magictg(machine_config &config)
DMADAC(config, "dac2").add_route(ALL_OUTPUTS, "lspeaker", 1.0);
pci_bus_legacy_device &pcibus(PCI_BUS_LEGACY(config, "pcibus", 0, 0));
- pcibus.set_device_read (0, FUNC(magictg_state::pci_dev0_r), this);
- pcibus.set_device_write(0, FUNC(magictg_state::pci_dev0_w), this);
- pcibus.set_device_read (7, FUNC(magictg_state::voodoo_0_pci_r), this);
- pcibus.set_device_write(7, FUNC(magictg_state::voodoo_0_pci_w), this);
+ pcibus.set_device(0, FUNC(magictg_state::pci_dev0_r), FUNC(magictg_state::pci_dev0_w));
+ pcibus.set_device(7, FUNC(magictg_state::voodoo_0_pci_r), FUNC(magictg_state::voodoo_0_pci_w));
#if defined(USE_TWO_3DFX)
- pcibus.set_device_read (8, FUNC(magictg_state::voodoo_1_pci_r), this);
- pcibus.set_device_write(8, FUNC(magictg_state::voodoo_1_pci_w), this);
+ pcibus.set_device(8, FUNC(magictg_state::voodoo_1_pci_r), FUNC(magictg_state::voodoo_1_pci_w));
#endif
- pcibus.set_device_read (9, FUNC(magictg_state::zr36120_pci_r), this); // TODO: ZR36120 device
- pcibus.set_device_write(9, FUNC(magictg_state::zr36120_pci_w), this); // TODO: ZR36120 device
+ pcibus.set_device(9, FUNC(magictg_state::zr36120_pci_r), FUNC(magictg_state::zr36120_pci_w)); // TODO: ZR36120 device
VOODOO_1(config, m_voodoo[0], STD_VOODOO_1_CLOCK);
m_voodoo[0]->set_fbmem(2);
diff --git a/src/mame/drivers/mainevt.cpp b/src/mame/drivers/mainevt.cpp
index 47c2ec7f72a..c793f5280af 100644
--- a/src/mame/drivers/mainevt.cpp
+++ b/src/mame/drivers/mainevt.cpp
@@ -443,13 +443,13 @@ void mainevt_state::mainevt(machine_config &config)
K052109(config, m_k052109, 24_MHz_XTAL);
m_k052109->set_palette("palette");
m_k052109->set_screen("screen");
- m_k052109->set_tile_callback(FUNC(mainevt_state::mainevt_tile_callback), this);
+ m_k052109->set_tile_callback(FUNC(mainevt_state::mainevt_tile_callback));
m_k052109->irq_handler().set_inputline(m_maincpu, M6809_IRQ_LINE);
K051960(config, m_k051960, 24_MHz_XTAL);
m_k051960->set_palette("palette");
m_k051960->set_screen("screen");
- m_k051960->set_sprite_callback(FUNC(mainevt_state::mainevt_sprite_callback), this);
+ m_k051960->set_sprite_callback(FUNC(mainevt_state::mainevt_sprite_callback));
/* sound hardware */
SPEAKER(config, "mono").front_center();
@@ -492,13 +492,13 @@ void mainevt_state::devstors(machine_config &config)
K052109(config, m_k052109, 24_MHz_XTAL);
m_k052109->set_palette("palette");
m_k052109->set_screen("screen");
- m_k052109->set_tile_callback(FUNC(mainevt_state::dv_tile_callback), this);
+ m_k052109->set_tile_callback(FUNC(mainevt_state::dv_tile_callback));
m_k052109->irq_handler().set_inputline(m_maincpu, M6809_IRQ_LINE);
K051960(config, m_k051960, 24_MHz_XTAL);
m_k051960->set_palette("palette");
m_k051960->set_screen("screen");
- m_k051960->set_sprite_callback(FUNC(mainevt_state::dv_sprite_callback), this);
+ m_k051960->set_sprite_callback(FUNC(mainevt_state::dv_sprite_callback));
K051733(config, "k051733", 0);
diff --git a/src/mame/drivers/majorpkr.cpp b/src/mame/drivers/majorpkr.cpp
index a0379db64a6..a5e39d4bd91 100644
--- a/src/mame/drivers/majorpkr.cpp
+++ b/src/mame/drivers/majorpkr.cpp
@@ -557,8 +557,8 @@ TILE_GET_INFO_MEMBER(majorpkr_state::fg_get_tile_info)
void majorpkr_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(majorpkr_state::bg_get_tile_info),this), TILEMAP_SCAN_ROWS, 16, 8, 36, 28);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(majorpkr_state::fg_get_tile_info),this), TILEMAP_SCAN_ROWS, 16, 8, 36, 28);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(majorpkr_state::bg_get_tile_info)), TILEMAP_SCAN_ROWS, 16, 8, 36, 28);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(majorpkr_state::fg_get_tile_info)), TILEMAP_SCAN_ROWS, 16, 8, 36, 28);
m_fg_tilemap->set_transparent_pen(0);
}
diff --git a/src/mame/drivers/mappy.cpp b/src/mame/drivers/mappy.cpp
index f41d55efb89..d3b62a7774f 100644
--- a/src/mame/drivers/mappy.cpp
+++ b/src/mame/drivers/mappy.cpp
@@ -2064,7 +2064,9 @@ void mappy_state::init_grobda()
However, removing the 15XX from the board causes sound to disappear completely, so
the 15XX may still play some part in conveying speech to the DAC.
*/
- m_subcpu->space(AS_PROGRAM).install_write_handler(0x0002, 0x0002, write8_delegate(FUNC(dac_byte_interface::data_w), (dac_byte_interface *)m_dac));
+ write8_delegate dac_w(*this);
+ dac_w.set(*m_dac, FUNC(dac_byte_interface::data_w));
+ m_subcpu->space(AS_PROGRAM).install_write_handler(0x0002, 0x0002, dac_w);
}
diff --git a/src/mame/drivers/marinedt.cpp b/src/mame/drivers/marinedt.cpp
index 76150efe426..28ba37f3524 100644
--- a/src/mame/drivers/marinedt.cpp
+++ b/src/mame/drivers/marinedt.cpp
@@ -213,7 +213,7 @@ void marinedt_state::init_seabitmap()
void marinedt_state::video_start()
{
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(marinedt_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(marinedt_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_tilemap->set_transparent_pen(0);
diff --git a/src/mame/drivers/mastboyo.cpp b/src/mame/drivers/mastboyo.cpp
index 748154d4531..f07e63ac0cd 100644
--- a/src/mame/drivers/mastboyo.cpp
+++ b/src/mame/drivers/mastboyo.cpp
@@ -74,7 +74,7 @@ TILE_GET_INFO_MEMBER(mastboyo_state::get_fg_tile_info)
void mastboyo_state::video_start()
{
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mastboyo_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mastboyo_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
uint32_t mastboyo_state::screen_update_mastboyo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
diff --git a/src/mame/drivers/maygay1b.cpp b/src/mame/drivers/maygay1b.cpp
index 2fb76a59e81..128fa91beff 100644
--- a/src/mame/drivers/maygay1b.cpp
+++ b/src/mame/drivers/maygay1b.cpp
@@ -860,6 +860,6 @@ void maygay1b_state::init_m1()
// if there is no OKI region disable writes here, the rom might be missing, so alert user
if (m_oki_region == nullptr) {
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x2420, 0x2421, write8_delegate(FUNC(maygay1b_state::m1ab_no_oki_w), this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x2420, 0x2421, write8_delegate(*this, FUNC(maygay1b_state::m1ab_no_oki_w)));
}
}
diff --git a/src/mame/drivers/maygayv1.cpp b/src/mame/drivers/maygayv1.cpp
index baea9d0482d..024e0553408 100644
--- a/src/mame/drivers/maygayv1.cpp
+++ b/src/mame/drivers/maygayv1.cpp
@@ -827,7 +827,7 @@ INPUT_PORTS_END
void maygayv1_state::cpu_space_map(address_map &map)
{
map(0xfffff0, 0xffffff).m(m_maincpu, FUNC(m68000_base_device::autovectors_map));
- map(0xfffffa, 0xfffffb).lr16("duart irq", [this]() -> u16 { return m_duart68681->get_irq_vector(); });
+ map(0xfffffa, 0xfffffb).lr16(NAME([this] () -> u16 { return m_duart68681->get_irq_vector(); }));
}
WRITE_LINE_MEMBER(maygayv1_state::duart_irq_handler)
diff --git a/src/mame/drivers/mbc200.cpp b/src/mame/drivers/mbc200.cpp
index 105ea31fe1f..07ef1b84754 100644
--- a/src/mame/drivers/mbc200.cpp
+++ b/src/mame/drivers/mbc200.cpp
@@ -327,7 +327,7 @@ void mbc200_state::mbc200(machine_config &config)
m_crtc->set_screen("screen");
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8);
- m_crtc->set_update_row_callback(FUNC(mbc200_state::update_row), this);
+ m_crtc->set_update_row_callback(FUNC(mbc200_state::update_row));
// sound
SPEAKER(config, "mono").front_center();
diff --git a/src/mame/drivers/mbc55x.cpp b/src/mame/drivers/mbc55x.cpp
index ecfbcfebc00..4cab6e24bae 100644
--- a/src/mame/drivers/mbc55x.cpp
+++ b/src/mame/drivers/mbc55x.cpp
@@ -323,7 +323,7 @@ void mbc55x_state::mbc55x(machine_config &config)
m_crtc->set_screen(SCREEN_TAG);
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8);
- m_crtc->set_update_row_callback(FUNC(mbc55x_state::crtc_update_row), this);
+ m_crtc->set_update_row_callback(FUNC(mbc55x_state::crtc_update_row));
m_crtc->out_vsync_callback().set(FUNC(mbc55x_state::vid_vsync_changed));
m_crtc->out_hsync_callback().set(FUNC(mbc55x_state::vid_hsync_changed));
diff --git a/src/mame/drivers/mbee.cpp b/src/mame/drivers/mbee.cpp
index a875a3338ee..fcab9586626 100644
--- a/src/mame/drivers/mbee.cpp
+++ b/src/mame/drivers/mbee.cpp
@@ -682,12 +682,12 @@ void mbee_state::mbee(machine_config &config)
m_crtc->set_screen(m_screen);
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8);
- m_crtc->set_update_row_callback(FUNC(mbee_state::crtc_update_row), this);
- m_crtc->set_on_update_addr_change_callback(FUNC(mbee_state::crtc_update_addr), this);
+ m_crtc->set_update_row_callback(FUNC(mbee_state::crtc_update_row));
+ m_crtc->set_on_update_addr_change_callback(FUNC(mbee_state::crtc_update_addr));
m_crtc->out_vsync_callback().set(FUNC(mbee_state::crtc_vs));
- QUICKLOAD(config, "quickload", "mwb,com,bee", attotime::from_seconds(3)).set_load_callback(FUNC(mbee_state::quickload_bee), this);
- QUICKLOAD(config, "quickload2", "bin", attotime::from_seconds(3)).set_load_callback(FUNC(mbee_state::quickload_bin), this);
+ QUICKLOAD(config, "quickload", "mwb,com,bee", attotime::from_seconds(3)).set_load_callback(FUNC(mbee_state::quickload_bee));
+ QUICKLOAD(config, "quickload2", "bin", attotime::from_seconds(3)).set_load_callback(FUNC(mbee_state::quickload_bin));
CENTRONICS(config, m_centronics, centronics_devices, "printer");
m_centronics->ack_handler().set(m_pio, FUNC(z80pio_device::strobe_a));
@@ -741,12 +741,12 @@ void mbee_state::mbeeic(machine_config &config)
m_crtc->set_screen(m_screen);
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8);
- m_crtc->set_update_row_callback(FUNC(mbee_state::crtc_update_row), this);
- m_crtc->set_on_update_addr_change_callback(FUNC(mbee_state::crtc_update_addr), this);
+ m_crtc->set_update_row_callback(FUNC(mbee_state::crtc_update_row));
+ m_crtc->set_on_update_addr_change_callback(FUNC(mbee_state::crtc_update_addr));
m_crtc->out_vsync_callback().set(FUNC(mbee_state::crtc_vs));
- QUICKLOAD(config, "quickload", "mwb,com,bee", attotime::from_seconds(2)).set_load_callback(FUNC(mbee_state::quickload_bee), this);
- QUICKLOAD(config, "quickload2", "bin", attotime::from_seconds(2)).set_load_callback(FUNC(mbee_state::quickload_bin), this);
+ QUICKLOAD(config, "quickload", "mwb,com,bee", attotime::from_seconds(2)).set_load_callback(FUNC(mbee_state::quickload_bee));
+ QUICKLOAD(config, "quickload2", "bin", attotime::from_seconds(2)).set_load_callback(FUNC(mbee_state::quickload_bin));
CENTRONICS(config, m_centronics, centronics_devices, "printer");
m_centronics->ack_handler().set(m_pio, FUNC(z80pio_device::strobe_a));
diff --git a/src/mame/drivers/mcatadv.cpp b/src/mame/drivers/mcatadv.cpp
index d062e19c0bd..b24ac4dd117 100644
--- a/src/mame/drivers/mcatadv.cpp
+++ b/src/mame/drivers/mcatadv.cpp
@@ -448,12 +448,12 @@ void mcatadv_state::mcatadv(machine_config &config)
TMAP038(config, m_tilemap[0]);
m_tilemap[0]->set_gfxdecode_tag(m_gfxdecode);
m_tilemap[0]->set_gfx(0);
- m_tilemap[0]->set_tile_callback(tilemap038_device::tmap038_cb_delegate(FUNC(mcatadv_state::get_banked_color<0>), this));
+ m_tilemap[0]->set_tile_callback(FUNC(mcatadv_state::get_banked_color<0>));
TMAP038(config, m_tilemap[1]);
m_tilemap[1]->set_gfxdecode_tag(m_gfxdecode);
m_tilemap[1]->set_gfx(1);
- m_tilemap[1]->set_tile_callback(tilemap038_device::tmap038_cb_delegate(FUNC(mcatadv_state::get_banked_color<1>), this));
+ m_tilemap[1]->set_tile_callback(FUNC(mcatadv_state::get_banked_color<1>));
WATCHDOG_TIMER(config, m_watchdog).set_time(attotime::from_seconds(3)); /* a guess, and certainly wrong */
diff --git a/src/mame/drivers/mcr.cpp b/src/mame/drivers/mcr.cpp
index 49ba0917688..2b9a3fff688 100644
--- a/src/mame/drivers/mcr.cpp
+++ b/src/mame/drivers/mcr.cpp
@@ -2833,7 +2833,7 @@ void mcr_state::mcr_init(int cpuboard, int vidboard, int ssioboard)
if (m_ssio.found())
{
- m_ssio->set_custom_output(0, 0xff, write8_delegate(FUNC(mcr_state::mcr_control_port_w), this));
+ m_ssio->set_custom_output(0, 0xff, *this, FUNC(mcr_state::mcr_control_port_w));
}
}
@@ -2843,8 +2843,8 @@ void mcr_state::init_solarfox()
mcr_init(90009, 91399, 90908);
m_mcr12_sprite_xoffs = 16;
- m_ssio->set_custom_input(0, 0x1c, read8_delegate(FUNC(mcr_state::solarfox_ip0_r), this));
- m_ssio->set_custom_input(1, 0xff, read8_delegate(FUNC(mcr_state::solarfox_ip1_r), this));
+ m_ssio->set_custom_input(0, 0x1c, *this, FUNC(mcr_state::solarfox_ip0_r));
+ m_ssio->set_custom_input(1, 0xff, *this, FUNC(mcr_state::solarfox_ip1_r));
}
@@ -2853,7 +2853,7 @@ void mcr_state::init_kick()
mcr_init(90009, 91399, 90908);
m_mcr12_sprite_xoffs_flip = 16;
- m_ssio->set_custom_input(1, 0xf0, read8_delegate(FUNC(mcr_state::kick_ip1_r), this));
+ m_ssio->set_custom_input(1, 0xf0, *this, FUNC(mcr_state::kick_ip1_r));
}
@@ -2862,7 +2862,7 @@ void mcr_dpoker_state::init_dpoker()
mcr_init(90009, 91399, 90908);
m_mcr12_sprite_xoffs_flip = 16;
- m_ssio->set_custom_input(0, 0x8e, read8_delegate(FUNC(mcr_dpoker_state::ip0_r),this));
+ m_ssio->set_custom_input(0, 0x8e, *this, FUNC(mcr_dpoker_state::ip0_r));
// meter ram, is it battery backed?
m_maincpu->space(AS_PROGRAM).install_ram(0x8000, 0x81ff);
@@ -2872,10 +2872,10 @@ void mcr_dpoker_state::init_dpoker()
m_maincpu->space(AS_IO).install_read_port(0x28, 0x28, "P28");
m_maincpu->space(AS_IO).install_read_port(0x2c, 0x2c, "P2C");
- m_maincpu->space(AS_IO).install_write_handler(0x2c, 0x2c, write8_delegate(FUNC(mcr_dpoker_state::lamps1_w),this));
- m_maincpu->space(AS_IO).install_write_handler(0x30, 0x30, write8_delegate(FUNC(mcr_dpoker_state::lamps2_w),this));
- m_maincpu->space(AS_IO).install_write_handler(0x34, 0x34, write8_delegate(FUNC(mcr_dpoker_state::output_w),this));
- m_maincpu->space(AS_IO).install_write_handler(0x3f, 0x3f, write8_delegate(FUNC(mcr_dpoker_state::meters_w),this));
+ m_maincpu->space(AS_IO).install_write_handler(0x2c, 0x2c, write8_delegate(*this, FUNC(mcr_dpoker_state::lamps1_w)));
+ m_maincpu->space(AS_IO).install_write_handler(0x30, 0x30, write8_delegate(*this, FUNC(mcr_dpoker_state::lamps2_w)));
+ m_maincpu->space(AS_IO).install_write_handler(0x34, 0x34, write8_delegate(*this, FUNC(mcr_dpoker_state::output_w)));
+ m_maincpu->space(AS_IO).install_write_handler(0x3f, 0x3f, write8_delegate(*this, FUNC(mcr_dpoker_state::meters_w)));
m_coin_status = 0;
m_output = 0;
@@ -2895,9 +2895,9 @@ void mcr_state::init_wacko()
{
mcr_init(90010, 91399, 90913);
- m_ssio->set_custom_input(1, 0xff, read8_delegate(FUNC(mcr_state::wacko_ip1_r),this));
- m_ssio->set_custom_input(2, 0xff, read8_delegate(FUNC(mcr_state::wacko_ip2_r),this));
- m_ssio->set_custom_output(4, 0x01, write8_delegate(FUNC(mcr_state::wacko_op4_w),this));
+ m_ssio->set_custom_input(1, 0xff, *this, FUNC(mcr_state::wacko_ip1_r));
+ m_ssio->set_custom_input(2, 0xff, *this, FUNC(mcr_state::wacko_ip2_r));
+ m_ssio->set_custom_output(4, 0x01, *this, FUNC(mcr_state::wacko_op4_w));
}
@@ -2905,8 +2905,8 @@ void mcr_state::init_twotiger()
{
mcr_init(90010, 91399, 90913);
- m_ssio->set_custom_output(4, 0xff, write8_delegate(FUNC(mcr_state::twotiger_op4_w),this));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xe800, 0xefff, 0, 0x1000, 0, read8_delegate(FUNC(mcr_state::twotiger_videoram_r),this), write8_delegate(FUNC(mcr_state::twotiger_videoram_w),this));
+ m_ssio->set_custom_output(4, 0xff, *this, FUNC(mcr_state::twotiger_op4_w));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xe800, 0xefff, 0, 0x1000, 0, read8_delegate(*this, FUNC(mcr_state::twotiger_videoram_r)), write8_delegate(*this, FUNC(mcr_state::twotiger_videoram_w)));
}
@@ -2914,8 +2914,8 @@ void mcr_state::init_kroozr()
{
mcr_init(90010, 91399, 91483);
- m_ssio->set_custom_input(1, 0x47, read8_delegate(FUNC(mcr_state::kroozr_ip1_r),this));
- m_ssio->set_custom_output(4, 0x34, write8_delegate(FUNC(mcr_state::kroozr_op4_w),this));
+ m_ssio->set_custom_input(1, 0x47, *this, FUNC(mcr_state::kroozr_ip1_r));
+ m_ssio->set_custom_output(4, 0x34, *this, FUNC(mcr_state::kroozr_op4_w));
}
@@ -2923,7 +2923,7 @@ void mcr_state::init_journey()
{
mcr_init(91475, 91464, 90913);
- m_ssio->set_custom_output(4, 0x01, write8_delegate(FUNC(mcr_state::journey_op4_w),this));
+ m_ssio->set_custom_output(4, 0x01, *this, FUNC(mcr_state::journey_op4_w));
}
@@ -2937,7 +2937,7 @@ void mcr_state::init_dotrone()
{
mcr_init(91490, 91464, 91657);
- m_ssio->set_custom_output(4, 0xff, write8_delegate(FUNC(mcr_state::dotron_op4_w),this));
+ m_ssio->set_custom_output(4, 0xff, *this, FUNC(mcr_state::dotron_op4_w));
}
@@ -2945,8 +2945,8 @@ void mcr_nflfoot_state::init_nflfoot()
{
mcr_init(91490, 91464, 91657);
- m_ssio->set_custom_input(2, 0x80, read8_delegate(FUNC(mcr_nflfoot_state::ip2_r),this));
- m_ssio->set_custom_output(4, 0xff, write8_delegate(FUNC(mcr_nflfoot_state::op4_w),this));
+ m_ssio->set_custom_input(2, 0x80, *this, FUNC(mcr_nflfoot_state::ip2_r));
+ m_ssio->set_custom_output(4, 0xff, *this, FUNC(mcr_nflfoot_state::op4_w));
save_item(NAME(m_ipu_sio_txda));
save_item(NAME(m_ipu_sio_txdb));
@@ -2957,11 +2957,11 @@ void mcr_state::init_demoderb()
{
mcr_init(91490, 91464, 90913);
- m_ssio->set_custom_input(1, 0xfc, read8_delegate(FUNC(mcr_state::demoderb_ip1_r),this));
- m_ssio->set_custom_input(2, 0xfc, read8_delegate(FUNC(mcr_state::demoderb_ip2_r),this));
- m_ssio->set_custom_output(4, 0xff, write8_delegate(FUNC(mcr_state::demoderb_op4_w),this));
+ m_ssio->set_custom_input(1, 0xfc, *this, FUNC(mcr_state::demoderb_ip1_r));
+ m_ssio->set_custom_input(2, 0xfc, *this, FUNC(mcr_state::demoderb_ip2_r));
+ m_ssio->set_custom_output(4, 0xff, *this, FUNC(mcr_state::demoderb_op4_w));
- /* the SSIO Z80 doesn't have any program to execute */
+ // the SSIO Z80 doesn't have any program to execute
m_ssio->suspend_cpu();
}
diff --git a/src/mame/drivers/mcr3.cpp b/src/mame/drivers/mcr3.cpp
index 193a58241fc..b0602f799db 100644
--- a/src/mame/drivers/mcr3.cpp
+++ b/src/mame/drivers/mcr3.cpp
@@ -1569,26 +1569,26 @@ void mcr3_state::mcr_common_init()
void mcr3_state::init_demoderm()
{
mcr_common_init();
- m_maincpu->space(AS_IO).install_read_handler(0x01, 0x01, read8_delegate(FUNC(mcr3_state::demoderm_ip1_r),this));
- m_maincpu->space(AS_IO).install_read_handler(0x02, 0x02, read8_delegate(FUNC(mcr3_state::demoderm_ip2_r),this));
- m_maincpu->space(AS_IO).install_write_handler(0x06, 0x06, write8_delegate(FUNC(mcr3_state::demoderm_op6_w),this));
+ m_maincpu->space(AS_IO).install_read_handler(0x01, 0x01, read8_delegate(*this, FUNC(mcr3_state::demoderm_ip1_r)));
+ m_maincpu->space(AS_IO).install_read_handler(0x02, 0x02, read8_delegate(*this, FUNC(mcr3_state::demoderm_ip2_r)));
+ m_maincpu->space(AS_IO).install_write_handler(0x06, 0x06, write8_delegate(*this, FUNC(mcr3_state::demoderm_op6_w)));
}
void mcr3_state::init_sarge()
{
mcr_common_init();
- m_maincpu->space(AS_IO).install_write_handler(0x06, 0x06, write8_delegate(FUNC(midway_turbo_cheap_squeak_device::write),m_turbo_cheap_squeak.target()));
+ m_maincpu->space(AS_IO).install_write_handler(0x06, 0x06, write8_delegate(*m_turbo_cheap_squeak, FUNC(midway_turbo_cheap_squeak_device::write)));
}
void mcr3_state::init_maxrpm()
{
mcr_common_init();
- m_maincpu->space(AS_IO).install_read_handler(0x01, 0x01, read8_delegate(FUNC(mcr3_state::maxrpm_ip1_r),this));
- m_maincpu->space(AS_IO).install_read_handler(0x02, 0x02, read8_delegate(FUNC(mcr3_state::maxrpm_ip2_r),this));
- m_maincpu->space(AS_IO).install_write_handler(0x05, 0x05, write8_delegate(FUNC(mcr3_state::maxrpm_op5_w),this));
- m_maincpu->space(AS_IO).install_write_handler(0x06, 0x06, write8_delegate(FUNC(mcr3_state::maxrpm_op6_w),this));
+ m_maincpu->space(AS_IO).install_read_handler(0x01, 0x01, read8_delegate(*this, FUNC(mcr3_state::maxrpm_ip1_r)));
+ m_maincpu->space(AS_IO).install_read_handler(0x02, 0x02, read8_delegate(*this, FUNC(mcr3_state::maxrpm_ip2_r)));
+ m_maincpu->space(AS_IO).install_write_handler(0x05, 0x05, write8_delegate(*this, FUNC(mcr3_state::maxrpm_op5_w)));
+ m_maincpu->space(AS_IO).install_write_handler(0x06, 0x06, write8_delegate(*this, FUNC(mcr3_state::maxrpm_op6_w)));
save_item(NAME(m_maxrpm_adc_control));
save_item(NAME(m_maxrpm_last_shift));
@@ -1600,35 +1600,35 @@ void mcr3_state::init_maxrpm()
void mcr3_state::init_rampage()
{
mcr_common_init();
- m_maincpu->space(AS_IO).install_read_handler(0x04, 0x04, read8_delegate(FUNC(mcr3_state::rampage_ip4_r),this));
- m_maincpu->space(AS_IO).install_write_handler(0x06, 0x06, write8_delegate(FUNC(mcr3_state::rampage_op6_w),this));
+ m_maincpu->space(AS_IO).install_read_handler(0x04, 0x04, read8_delegate(*this, FUNC(mcr3_state::rampage_ip4_r)));
+ m_maincpu->space(AS_IO).install_write_handler(0x06, 0x06, write8_delegate(*this, FUNC(mcr3_state::rampage_op6_w)));
}
void mcr3_state::init_powerdrv()
{
mcr_common_init();
- m_maincpu->space(AS_IO).install_read_handler(0x02, 0x02, read8_delegate(FUNC(mcr3_state::powerdrv_ip2_r),this));
- m_maincpu->space(AS_IO).install_write_handler(0x05, 0x05, write8_delegate(FUNC(mcr3_state::powerdrv_op5_w),this));
- m_maincpu->space(AS_IO).install_write_handler(0x06, 0x06, write8_delegate(FUNC(mcr3_state::powerdrv_op6_w),this));
+ m_maincpu->space(AS_IO).install_read_handler(0x02, 0x02, read8_delegate(*this, FUNC(mcr3_state::powerdrv_ip2_r)));
+ m_maincpu->space(AS_IO).install_write_handler(0x05, 0x05, write8_delegate(*this, FUNC(mcr3_state::powerdrv_op5_w)));
+ m_maincpu->space(AS_IO).install_write_handler(0x06, 0x06, write8_delegate(*this, FUNC(mcr3_state::powerdrv_op6_w)));
}
void mcr3_state::init_stargrds()
{
mcr_common_init();
- m_maincpu->space(AS_IO).install_read_handler(0x00, 0x00, read8_delegate(FUNC(mcr3_state::stargrds_ip0_r),this));
- m_maincpu->space(AS_IO).install_write_handler(0x05, 0x05, write8_delegate(FUNC(mcr3_state::stargrds_op5_w),this));
- m_maincpu->space(AS_IO).install_write_handler(0x06, 0x06, write8_delegate(FUNC(mcr3_state::stargrds_op6_w),this));
+ m_maincpu->space(AS_IO).install_read_handler(0x00, 0x00, read8_delegate(*this, FUNC(mcr3_state::stargrds_ip0_r)));
+ m_maincpu->space(AS_IO).install_write_handler(0x05, 0x05, write8_delegate(*this, FUNC(mcr3_state::stargrds_op5_w)));
+ m_maincpu->space(AS_IO).install_write_handler(0x06, 0x06, write8_delegate(*this, FUNC(mcr3_state::stargrds_op6_w)));
}
void mcr3_state::init_spyhunt()
{
mcr_common_init();
- m_ssio->set_custom_input(1, 0x60, read8_delegate(FUNC(mcr3_state::spyhunt_ip1_r),this));
- m_ssio->set_custom_input(2, 0xff, read8_delegate(FUNC(mcr3_state::spyhunt_ip2_r),this));
- m_ssio->set_custom_output(4, 0xff, write8_delegate(FUNC(mcr3_state::spyhunt_op4_w),this));
+ m_ssio->set_custom_input(1, 0x60, *this, FUNC(mcr3_state::spyhunt_ip1_r));
+ m_ssio->set_custom_input(2, 0xff, *this, FUNC(mcr3_state::spyhunt_ip2_r));
+ m_ssio->set_custom_output(4, 0xff, *this, FUNC(mcr3_state::spyhunt_op4_w));
m_spyhunt_sprite_color_mask = 0x00;
m_spyhunt_scroll_offset = 16;
@@ -1648,9 +1648,9 @@ void mcr3_state::init_crater()
void mcr3_state::init_turbotag()
{
mcr_common_init();
- m_ssio->set_custom_input(1, 0x60, read8_delegate(FUNC(mcr3_state::spyhunt_ip1_r),this));
- m_ssio->set_custom_input(2, 0xff, read8_delegate(FUNC(mcr3_state::turbotag_ip2_r),this));
- m_ssio->set_custom_output(4, 0xff, write8_delegate(FUNC(mcr3_state::spyhunt_op4_w),this));
+ m_ssio->set_custom_input(1, 0x60, *this, FUNC(mcr3_state::spyhunt_ip1_r));
+ m_ssio->set_custom_input(2, 0xff, *this, FUNC(mcr3_state::turbotag_ip2_r));
+ m_ssio->set_custom_output(4, 0xff, *this, FUNC(mcr3_state::spyhunt_op4_w));
m_spyhunt_sprite_color_mask = 0x00;
m_spyhunt_scroll_offset = 88;
@@ -1659,7 +1659,7 @@ void mcr3_state::init_turbotag()
m_cheap_squeak_deluxe->suspend_cpu();
/* kludge for bad ROM read */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x0b53, 0x0b53, read8_delegate(FUNC(mcr3_state::turbotag_kludge_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x0b53, 0x0b53, read8_delegate(*this, FUNC(mcr3_state::turbotag_kludge_r)));
}
diff --git a/src/mame/drivers/mcr68.cpp b/src/mame/drivers/mcr68.cpp
index e8367ad72bf..280bbab4453 100644
--- a/src/mame/drivers/mcr68.cpp
+++ b/src/mame/drivers/mcr68.cpp
@@ -1488,7 +1488,7 @@ void mcr68_state::init_xenophob()
m_timing_factor = attotime::from_hz(m_maincpu->unscaled_clock() / 10) * (256 + 16);
/* install control port handler */
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x0c0000, 0x0cffff, write16_delegate(FUNC(mcr68_state::xenophobe_control_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x0c0000, 0x0cffff, write16_delegate(*this, FUNC(mcr68_state::xenophobe_control_w)));
}
@@ -1500,9 +1500,9 @@ void mcr68_state::init_spyhunt2()
m_timing_factor = attotime::from_hz(m_maincpu->unscaled_clock() / 10) * (256 + 16);
/* analog port handling is a bit tricky */
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x0c0000, 0x0cffff, write16_delegate(FUNC(mcr68_state::spyhunt2_control_w),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x0d0000, 0x0dffff, read16_delegate(FUNC(mcr68_state::spyhunt2_port_0_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x0e0000, 0x0effff, read16_delegate(FUNC(mcr68_state::spyhunt2_port_1_r),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x0c0000, 0x0cffff, write16_delegate(*this, FUNC(mcr68_state::spyhunt2_control_w)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x0d0000, 0x0dffff, read16_delegate(*this, FUNC(mcr68_state::spyhunt2_port_0_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x0e0000, 0x0effff, read16_delegate(*this, FUNC(mcr68_state::spyhunt2_port_1_r)));
}
@@ -1516,7 +1516,7 @@ void mcr68_state::init_blasted()
m_timing_factor = attotime::from_hz(m_maincpu->unscaled_clock() / 10) * (256 + 16);
/* handle control writes */
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x0c0000, 0x0cffff, write16_delegate(FUNC(mcr68_state::blasted_control_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x0c0000, 0x0cffff, write16_delegate(*this, FUNC(mcr68_state::blasted_control_w)));
}
void mcr68_state::init_intlaser()
@@ -1527,7 +1527,7 @@ void mcr68_state::init_intlaser()
m_timing_factor = attotime::from_hz(m_maincpu->unscaled_clock() / 10) * (256 + 16);
/* handle control writes */
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x0c0000, 0x0cffff, write16_delegate(FUNC(mcr68_state::blasted_control_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x0c0000, 0x0cffff, write16_delegate(*this, FUNC(mcr68_state::blasted_control_w)));
}
@@ -1541,10 +1541,10 @@ void mcr68_state::init_archrivl()
m_timing_factor = attotime::from_hz(m_maincpu->unscaled_clock() / 10) * (256 + 16);
/* handle control writes */
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x0c0000, 0x0cffff, write16_delegate(FUNC(mcr68_state::archrivl_control_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x0c0000, 0x0cffff, write16_delegate(*this, FUNC(mcr68_state::archrivl_control_w)));
/* 49-way joystick handling is a bit tricky */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x0e0000, 0x0effff, read16_delegate(FUNC(mcr68_state::archrivl_port_1_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x0e0000, 0x0effff, read16_delegate(*this, FUNC(mcr68_state::archrivl_port_1_r)));
}
READ16_MEMBER(mcr68_state::archrivlb_port_1_r)
@@ -1560,10 +1560,10 @@ void mcr68_state::init_archrivlb()
m_timing_factor = attotime::from_hz(m_maincpu->unscaled_clock() / 10) * (256 + 16);
/* handle control writes */
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x0c0000, 0x0cffff, write16_delegate(FUNC(mcr68_state::archrivl_control_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x0c0000, 0x0cffff, write16_delegate(*this, FUNC(mcr68_state::archrivl_control_w)));
/* 49-way joystick replaced by standard 8way stick */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x0e0000, 0x0effff, read16_delegate(FUNC(mcr68_state::archrivlb_port_1_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x0e0000, 0x0effff, read16_delegate(*this, FUNC(mcr68_state::archrivlb_port_1_r)));
}
diff --git a/src/mame/drivers/mediagx.cpp b/src/mame/drivers/mediagx.cpp
index 61f4cfae945..658d666d67d 100644
--- a/src/mame/drivers/mediagx.cpp
+++ b/src/mame/drivers/mediagx.cpp
@@ -81,17 +81,11 @@
#define SPEEDUP_HACKS 1
-struct speedup_entry
-{
- uint32_t offset;
- uint32_t pc;
-};
-
class mediagx_state : public pcat_base_state
{
public:
- mediagx_state(const machine_config &mconfig, device_type type, const char *tag)
- : pcat_base_state(mconfig, type, tag),
+ mediagx_state(const machine_config &mconfig, device_type type, const char *tag) :
+ pcat_base_state(mconfig, type, tag),
m_ide(*this, "ide"),
m_ramdac(*this, "ramdac"),
m_dmadac(*this, "dac%u", 0U),
@@ -114,6 +108,12 @@ protected:
virtual void video_start() override;
private:
+ struct speedup_entry
+ {
+ uint32_t offset;
+ uint32_t pc;
+ };
+
DECLARE_READ32_MEMBER(disp_ctrl_r);
DECLARE_WRITE32_MEMBER(disp_ctrl_w);
DECLARE_READ32_MEMBER(memory_ctrl_r);
@@ -127,18 +127,7 @@ private:
DECLARE_READ8_MEMBER(io20_r);
DECLARE_WRITE8_MEMBER(io20_w);
uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
- DECLARE_READ32_MEMBER(speedup0_r);
- DECLARE_READ32_MEMBER(speedup1_r);
- DECLARE_READ32_MEMBER(speedup2_r);
- DECLARE_READ32_MEMBER(speedup3_r);
- DECLARE_READ32_MEMBER(speedup4_r);
- DECLARE_READ32_MEMBER(speedup5_r);
- DECLARE_READ32_MEMBER(speedup6_r);
- DECLARE_READ32_MEMBER(speedup7_r);
- DECLARE_READ32_MEMBER(speedup8_r);
- DECLARE_READ32_MEMBER(speedup9_r);
- DECLARE_READ32_MEMBER(speedup10_r);
- DECLARE_READ32_MEMBER(speedup11_r);
+ template <offs_t N> uint32_t speedup_r(address_space &space) { return generic_speedup(space, N); }
TIMER_DEVICE_CALLBACK_MEMBER(sound_timer_callback);
void draw_char(bitmap_rgb32 &bitmap, const rectangle &cliprect, gfx_element *gfx, int ch, int att, int x, int y);
void draw_framebuffer(bitmap_rgb32 &bitmap, const rectangle &cliprect);
@@ -220,7 +209,9 @@ private:
int m_speedup_count;
#endif
- static const read32_delegate s_speedup_handlers[];
+ using speedup_handler = std::pair<uint32_t (mediagx_state::*)(address_space &), const char *>;
+ static const speedup_handler s_speedup_handlers[];
+ static const speedup_entry a51site4_speedups[];
};
// Display controller registers
@@ -891,8 +882,7 @@ void mediagx_state::mediagx(machine_config &config)
pcat_common(config);
pci_bus_legacy_device &pcibus(PCI_BUS_LEGACY(config, "pcibus", 0, 0));
- pcibus.set_device_read (18, FUNC(mediagx_state::cx5510_pci_r), this);
- pcibus.set_device_write(18, FUNC(mediagx_state::cx5510_pci_w), this);
+ pcibus.set_device(18, FUNC(mediagx_state::cx5510_pci_r), FUNC(mediagx_state::cx5510_pci_w));
ide_controller_32_device &ide(IDE_CONTROLLER_32(config, "ide").options(ata_devices, "hdd", nullptr, true));
ide.irq_handler().set(m_pic8259_2, FUNC(pic8259_device::ir6_w));
@@ -940,24 +930,11 @@ uint32_t mediagx_state::generic_speedup(address_space &space, int idx)
return m_main_ram[m_speedup_table[idx].offset/4];
}
-READ32_MEMBER(mediagx_state::speedup0_r) { return generic_speedup(space, 0); }
-READ32_MEMBER(mediagx_state::speedup1_r) { return generic_speedup(space, 1); }
-READ32_MEMBER(mediagx_state::speedup2_r) { return generic_speedup(space, 2); }
-READ32_MEMBER(mediagx_state::speedup3_r) { return generic_speedup(space, 3); }
-READ32_MEMBER(mediagx_state::speedup4_r) { return generic_speedup(space, 4); }
-READ32_MEMBER(mediagx_state::speedup5_r) { return generic_speedup(space, 5); }
-READ32_MEMBER(mediagx_state::speedup6_r) { return generic_speedup(space, 6); }
-READ32_MEMBER(mediagx_state::speedup7_r) { return generic_speedup(space, 7); }
-READ32_MEMBER(mediagx_state::speedup8_r) { return generic_speedup(space, 8); }
-READ32_MEMBER(mediagx_state::speedup9_r) { return generic_speedup(space, 9); }
-READ32_MEMBER(mediagx_state::speedup10_r) { return generic_speedup(space, 10); }
-READ32_MEMBER(mediagx_state::speedup11_r) { return generic_speedup(space, 11); }
-
-const read32_delegate mediagx_state::s_speedup_handlers[]
+const mediagx_state::speedup_handler mediagx_state::s_speedup_handlers[]
{
- { FUNC(mediagx_state::speedup0_r), (mediagx_state*)nullptr }, { FUNC(mediagx_state::speedup1_r), (mediagx_state*)nullptr }, { FUNC(mediagx_state::speedup2_r), (mediagx_state*)nullptr }, { FUNC(mediagx_state::speedup3_r), (mediagx_state*)nullptr },
- { FUNC(mediagx_state::speedup4_r), (mediagx_state*)nullptr }, { FUNC(mediagx_state::speedup5_r), (mediagx_state*)nullptr }, { FUNC(mediagx_state::speedup6_r), (mediagx_state*)nullptr }, { FUNC(mediagx_state::speedup7_r), (mediagx_state*)nullptr },
- { FUNC(mediagx_state::speedup8_r), (mediagx_state*)nullptr }, { FUNC(mediagx_state::speedup9_r), (mediagx_state*)nullptr }, { FUNC(mediagx_state::speedup10_r), (mediagx_state*)nullptr }, { FUNC(mediagx_state::speedup11_r), (mediagx_state*)nullptr }
+ { FUNC(mediagx_state::speedup_r<0>) }, { FUNC(mediagx_state::speedup_r<1>) }, { FUNC(mediagx_state::speedup_r<2>) }, { FUNC(mediagx_state::speedup_r<3>) },
+ { FUNC(mediagx_state::speedup_r<4>) }, { FUNC(mediagx_state::speedup_r<5>) }, { FUNC(mediagx_state::speedup_r<6>) }, { FUNC(mediagx_state::speedup_r<7>) },
+ { FUNC(mediagx_state::speedup_r<8>) }, { FUNC(mediagx_state::speedup_r<9>) }, { FUNC(mediagx_state::speedup_r<10>) }, { FUNC(mediagx_state::speedup_r<11>) }
};
#ifdef MAME_DEBUG
@@ -975,18 +952,15 @@ void mediagx_state::install_speedups(const speedup_entry *entries, int count)
m_speedup_table = entries;
m_speedup_count = count;
- for (int i = 0; i < count; i++) {
- read32_delegate func = s_speedup_handlers[i];
- func.late_bind(*this);
- m_maincpu->space(AS_PROGRAM).install_read_handler(entries[i].offset, entries[i].offset + 3, func);
- }
+ for (int i = 0; i < count; i++)
+ m_maincpu->space(AS_PROGRAM).install_read_handler(entries[i].offset, entries[i].offset + 3, read32mo_delegate(*this, s_speedup_handlers[i].first, s_speedup_handlers[i].second));
#ifdef MAME_DEBUG
machine().add_notifier(MACHINE_NOTIFY_EXIT, machine_notify_delegate(&mediagx_state::report_speedups, this));
#endif
}
-static const speedup_entry a51site4_speedups[] =
+const mediagx_state::speedup_entry mediagx_state::a51site4_speedups[] =
{
{ 0x5504c, 0x0363e },
{ 0x5f11c, 0x0363e },
diff --git a/src/mame/drivers/megadriv.cpp b/src/mame/drivers/megadriv.cpp
index 2fd81336110..723bd131193 100644
--- a/src/mame/drivers/megadriv.cpp
+++ b/src/mame/drivers/megadriv.cpp
@@ -277,10 +277,10 @@ MACHINE_START_MEMBER(md_cons_state, md_common)
void md_cons_state::install_cartslot()
{
// for now m_cartslot is only in MD and not 32x and SegaCD
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7fffff, read16_delegate(FUNC(base_md_cart_slot_device::read),(base_md_cart_slot_device*)m_cart), write16_delegate(FUNC(base_md_cart_slot_device::write),(base_md_cart_slot_device*)m_cart));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xa13000, 0xa130ff, read16_delegate(FUNC(base_md_cart_slot_device::read_a13),(base_md_cart_slot_device*)m_cart), write16_delegate(FUNC(base_md_cart_slot_device::write_a13),(base_md_cart_slot_device*)m_cart));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xa15000, 0xa150ff, read16_delegate(FUNC(base_md_cart_slot_device::read_a15),(base_md_cart_slot_device*)m_cart), write16_delegate(FUNC(base_md_cart_slot_device::write_a15),(base_md_cart_slot_device*)m_cart));
-// m_maincpu->space(AS_PROGRAM).install_write_handler(0xa14000, 0xa14003, write16_delegate(FUNC(base_md_cart_slot_device::write_tmss_bank),(base_md_cart_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7fffff, read16_delegate(*m_cart, FUNC(base_md_cart_slot_device::read)), write16_delegate(*m_cart, FUNC(base_md_cart_slot_device::write)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xa13000, 0xa130ff, read16_delegate(*m_cart, FUNC(base_md_cart_slot_device::read_a13)), write16_delegate(*m_cart, FUNC(base_md_cart_slot_device::write_a13)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xa15000, 0xa150ff, read16_delegate(*m_cart, FUNC(base_md_cart_slot_device::read_a15)), write16_delegate(*m_cart, FUNC(base_md_cart_slot_device::write_a15)));
+// m_maincpu->space(AS_PROGRAM).install_write_handler(0xa14000, 0xa14003, write16_delegate(*m_cart, FUNC(base_md_cart_slot_device::write_tmss_bank)));
}
READ16_MEMBER( md_cons_state::tmss_r )
@@ -296,7 +296,7 @@ WRITE16_MEMBER( md_cons_state::tmss_swap_w )
if (data & 0x0001)
{
install_cartslot();
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xa14100, 0xa14101, write16_delegate(FUNC(md_cons_state::tmss_swap_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xa14100, 0xa14101, write16_delegate(*this, FUNC(md_cons_state::tmss_swap_w)));
}
else
{
@@ -308,9 +308,9 @@ WRITE16_MEMBER( md_cons_state::tmss_swap_w )
void md_cons_state::install_tmss()
{
m_maincpu->space(AS_PROGRAM).unmap_readwrite(0x000000, 0x7fffff);
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x000000, 0x7fffff, read16_delegate(FUNC(md_cons_state::tmss_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x000000, 0x7fffff, read16_delegate(*this, FUNC(md_cons_state::tmss_r)));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xa14100, 0xa14101, write16_delegate(FUNC(md_cons_state::tmss_swap_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xa14100, 0xa14101, write16_delegate(*this, FUNC(md_cons_state::tmss_swap_w)));
}
@@ -469,8 +469,8 @@ ROM_END
void md_cons_state::init_mess_md_common()
{
- m_megadrive_io_read_data_port_ptr = read8_delegate(FUNC(md_cons_state::mess_md_io_read_data_port),this);
- m_megadrive_io_write_data_port_ptr = write16_delegate(FUNC(md_cons_state::mess_md_io_write_data_port),this);
+ m_megadrive_io_read_data_port_ptr = read8_delegate(*this, FUNC(md_cons_state::mess_md_io_read_data_port));
+ m_megadrive_io_write_data_port_ptr = write16_delegate(*this, FUNC(md_cons_state::mess_md_io_write_data_port));
}
void md_cons_state::init_genesis()
@@ -605,9 +605,9 @@ void md_cons_state::genesis_32x(machine_config &config)
MCFG_MACHINE_START_OVERRIDE(md_cons_state, md_common)
MCFG_MACHINE_RESET_OVERRIDE(md_cons_state, ms_megadriv)
- m_vdp->set_md_32x_scanline(FUNC(md_cons_state::_32x_scanline_callback), this);
- m_vdp->set_md_32x_scanline_helper(FUNC(md_cons_state::_32x_scanline_helper_callback), this);
- m_vdp->set_md_32x_interrupt(FUNC(md_cons_state::_32x_interrupt_callback), this);
+ m_vdp->set_md_32x_scanline(FUNC(md_cons_state::_32x_scanline_callback));
+ m_vdp->set_md_32x_scanline_helper(FUNC(md_cons_state::_32x_scanline_helper_callback));
+ m_vdp->set_md_32x_interrupt(FUNC(md_cons_state::_32x_interrupt_callback));
m_vdp->reset_routes();
m_vdp->add_route(ALL_OUTPUTS, "lspeaker", (0.50)/2);
m_vdp->add_route(ALL_OUTPUTS, "rspeaker", (0.50)/2);
@@ -627,7 +627,7 @@ void md_cons_state::genesis_32x(machine_config &config)
generic_cartslot_device &cartslot(GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "_32x_cart", "32x,bin"));
cartslot.set_must_be_loaded(true);
- cartslot.set_device_load(FUNC(md_cons_state::_32x_cart), this);
+ cartslot.set_device_load(FUNC(md_cons_state::_32x_cart));
SOFTWARE_LIST(config, "cart_list").set_original("32x").set_filter("NTSC-U");
}
@@ -640,9 +640,9 @@ void md_cons_state::mdj_32x(machine_config &config)
MCFG_MACHINE_START_OVERRIDE(md_cons_state, md_common)
MCFG_MACHINE_RESET_OVERRIDE(md_cons_state, ms_megadriv)
- m_vdp->set_md_32x_scanline(FUNC(md_cons_state::_32x_scanline_callback), this);
- m_vdp->set_md_32x_scanline_helper(FUNC(md_cons_state::_32x_scanline_helper_callback), this);
- m_vdp->set_md_32x_interrupt(FUNC(md_cons_state::_32x_interrupt_callback), this);
+ m_vdp->set_md_32x_scanline(FUNC(md_cons_state::_32x_scanline_callback));
+ m_vdp->set_md_32x_scanline_helper(FUNC(md_cons_state::_32x_scanline_helper_callback));
+ m_vdp->set_md_32x_interrupt(FUNC(md_cons_state::_32x_interrupt_callback));
m_vdp->reset_routes();
m_vdp->add_route(ALL_OUTPUTS, "lspeaker", (0.50)/2);
m_vdp->add_route(ALL_OUTPUTS, "rspeaker", (0.50)/2);
@@ -662,7 +662,7 @@ void md_cons_state::mdj_32x(machine_config &config)
generic_cartslot_device &cartslot(GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "_32x_cart", "32x,bin"));
cartslot.set_must_be_loaded(true);
- cartslot.set_device_load(FUNC(md_cons_state::_32x_cart), this);
+ cartslot.set_device_load(FUNC(md_cons_state::_32x_cart));
SOFTWARE_LIST(config, "cart_list").set_original("32x").set_filter("NTSC-J");
}
@@ -675,9 +675,9 @@ void md_cons_state::md_32x(machine_config &config)
MCFG_MACHINE_START_OVERRIDE(md_cons_state, md_common)
MCFG_MACHINE_RESET_OVERRIDE(md_cons_state, ms_megadriv)
- m_vdp->set_md_32x_scanline(FUNC(md_cons_state::_32x_scanline_callback), this);
- m_vdp->set_md_32x_scanline_helper(FUNC(md_cons_state::_32x_scanline_helper_callback), this);
- m_vdp->set_md_32x_interrupt(FUNC(md_cons_state::_32x_interrupt_callback), this);
+ m_vdp->set_md_32x_scanline(FUNC(md_cons_state::_32x_scanline_callback));
+ m_vdp->set_md_32x_scanline_helper(FUNC(md_cons_state::_32x_scanline_helper_callback));
+ m_vdp->set_md_32x_interrupt(FUNC(md_cons_state::_32x_interrupt_callback));
m_vdp->reset_routes();
m_vdp->add_route(ALL_OUTPUTS, "lspeaker", (0.50)/2);
m_vdp->add_route(ALL_OUTPUTS, "rspeaker", (0.50)/2);
@@ -697,7 +697,7 @@ void md_cons_state::md_32x(machine_config &config)
generic_cartslot_device &cartslot(GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "_32x_cart", "32x,bin"));
cartslot.set_must_be_loaded(true);
- cartslot.set_device_load(FUNC(md_cons_state::_32x_cart), this);
+ cartslot.set_device_load(FUNC(md_cons_state::_32x_cart));
SOFTWARE_LIST(config, "cart_list").set_original("32x").set_filter("PAL");
}
@@ -808,7 +808,7 @@ void md_cons_state::genesis_32x_scd(machine_config &config)
MCFG_MACHINE_START_OVERRIDE(md_cons_state, ms_megacd)
config.device_remove("cartslot");
- GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "_32x_cart", "32x,bin").set_device_load(FUNC(md_cons_state::_32x_cart), this);
+ GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "_32x_cart", "32x,bin").set_device_load(FUNC(md_cons_state::_32x_cart));
//config.m_perfect_cpu_quantum = subtag("32x_master_sh2");
SOFTWARE_LIST(config, "cd_list").set_original("segacd");
@@ -828,7 +828,7 @@ void md_cons_state::md_32x_scd(machine_config &config)
MCFG_MACHINE_START_OVERRIDE(md_cons_state, ms_megacd)
config.device_remove("cartslot");
- GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "_32x_cart", "32x,bin").set_device_load(FUNC(md_cons_state::_32x_cart), this);
+ GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "_32x_cart", "32x,bin").set_device_load(FUNC(md_cons_state::_32x_cart));
//config.m_perfect_cpu_quantum = subtag("32x_master_sh2");
SOFTWARE_LIST(config, "cd_list").set_original("megacd");
@@ -848,7 +848,7 @@ void md_cons_state::mdj_32x_scd(machine_config &config)
MCFG_MACHINE_START_OVERRIDE(md_cons_state, ms_megacd)
config.device_remove("cartslot");
- GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "_32x_cart", "32x,bin").set_device_load(FUNC(md_cons_state::_32x_cart), this);
+ GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "_32x_cart", "32x,bin").set_device_load(FUNC(md_cons_state::_32x_cart));
//config.m_perfect_cpu_quantum = subtag("32x_master_sh2");
SOFTWARE_LIST(config, "cd_list").set_original("megacdj");
diff --git a/src/mame/drivers/megadriv_acbl.cpp b/src/mame/drivers/megadriv_acbl.cpp
index cf6e5463d9d..3fa037f74ca 100644
--- a/src/mame/drivers/megadriv_acbl.cpp
+++ b/src/mame/drivers/megadriv_acbl.cpp
@@ -956,8 +956,8 @@ void md_boot_state::init_aladmdb()
#endif
// 220000 = writes to mcu? 330000 = reads?
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x220000, 0x220001, write16_delegate(FUNC(md_boot_state::aladmdb_w),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x330000, 0x330001, read16_delegate(FUNC(md_boot_state::aladmdb_r),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x220000, 0x220001, write16_delegate(*this, FUNC(md_boot_state::aladmdb_w)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x330000, 0x330001, read16_delegate(*this, FUNC(md_boot_state::aladmdb_r)));
init_megadrij();
}
@@ -1005,12 +1005,12 @@ void md_boot_state::init_mk3mdb()
rom[0x07] = 0x02;
rom[0x06] = 0x10;
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x770070, 0x770075, read16_delegate(FUNC(md_boot_state::mk3mdb_dsw_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x770070, 0x770075, read16_delegate(*this, FUNC(md_boot_state::mk3mdb_dsw_r)));
init_megadriv();
// 6 button game, so overwrite 3 button io handlers
- m_megadrive_io_read_data_port_ptr = read8_delegate(FUNC(md_base_state::megadrive_io_read_data_port_6button),this);
- m_megadrive_io_write_data_port_ptr = write16_delegate(FUNC(md_base_state::megadrive_io_write_data_port_6button),this);
+ m_megadrive_io_read_data_port_ptr = read8_delegate(*this, FUNC(md_base_state::megadrive_io_read_data_port_6button));
+ m_megadrive_io_write_data_port_ptr = write16_delegate(*this, FUNC(md_base_state::megadrive_io_write_data_port_6button));
}
void md_boot_state::init_ssf2mdb()
@@ -1021,12 +1021,12 @@ void md_boot_state::init_ssf2mdb()
membank("bank5")->set_base(memregion( "maincpu" )->base() + 0x400000 );
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x770070, 0x770075, read16_delegate(FUNC(md_boot_state::ssf2mdb_dsw_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x770070, 0x770075, read16_delegate(*this, FUNC(md_boot_state::ssf2mdb_dsw_r)));
init_megadrij();
// 6 button game, so overwrite 3 button io handlers
- m_megadrive_io_read_data_port_ptr = read8_delegate(FUNC(md_base_state::megadrive_io_read_data_port_6button),this);
- m_megadrive_io_write_data_port_ptr = write16_delegate(FUNC(md_base_state::megadrive_io_write_data_port_6button),this);
+ m_megadrive_io_read_data_port_ptr = read8_delegate(*this, FUNC(md_base_state::megadrive_io_read_data_port_6button));
+ m_megadrive_io_write_data_port_ptr = write16_delegate(*this, FUNC(md_base_state::megadrive_io_write_data_port_6button));
}
void md_boot_state::init_srmdb()
@@ -1052,14 +1052,14 @@ void md_boot_state::init_srmdb()
rom[0x06] = 0xd2;
rom[0x07] = 0x00;
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x770070, 0x770075, read16_delegate(FUNC(md_boot_state::srmdb_dsw_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x770070, 0x770075, read16_delegate(*this, FUNC(md_boot_state::srmdb_dsw_r)));
init_megadriv();
}
void md_boot_state::init_topshoot()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x200050, 0x200051, read16_delegate(FUNC(md_boot_state::topshoot_200051_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x200050, 0x200051, read16_delegate(*this, FUNC(md_boot_state::topshoot_200051_r)));
m_maincpu->space(AS_PROGRAM).install_read_port(0x200042, 0x200043, "IN0");
m_maincpu->space(AS_PROGRAM).install_read_port(0x200044, 0x200045, "IN1");
m_maincpu->space(AS_PROGRAM).install_read_port(0x200046, 0x200047, "IN2");
@@ -1086,7 +1086,7 @@ void md_boot_state::init_barek3()
void md_boot_state::init_sonic2mb()
{
// 100000 = writes to unpopulated MCU?
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x100000, 0x100001, write16_delegate(FUNC(md_boot_state::aladmdb_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x100000, 0x100001, write16_delegate(*this, FUNC(md_boot_state::aladmdb_w)));
m_maincpu->space(AS_PROGRAM).install_read_port(0x300000, 0x300001, "DSW");
init_megadrij();
@@ -1103,15 +1103,15 @@ void md_boot_state::init_twinktmb()
rom[0x06] = 0xcc;
init_megadrij();
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x100000, 0x100001, write16_delegate(FUNC(md_boot_state::aladmdb_w),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x300000, 0x300001, read16_delegate(FUNC(md_boot_state::twinktmb_r),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x100000, 0x100001, write16_delegate(*this, FUNC(md_boot_state::aladmdb_w)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x300000, 0x300001, read16_delegate(*this, FUNC(md_boot_state::twinktmb_r)));
}
void md_boot_state::init_jparkmb()
{
init_megadrij();
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x100000, 0x100001, write16_delegate(FUNC(md_boot_state::aladmdb_w),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x300000, 0x300001, read16_delegate(FUNC(md_boot_state::jparkmb_r),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x100000, 0x100001, write16_delegate(*this, FUNC(md_boot_state::aladmdb_w)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x300000, 0x300001, read16_delegate(*this, FUNC(md_boot_state::jparkmb_r)));
}
/*************************************
diff --git a/src/mame/drivers/megadriv_rad.cpp b/src/mame/drivers/megadriv_rad.cpp
index 9ff44620906..2b8d326d3de 100644
--- a/src/mame/drivers/megadriv_rad.cpp
+++ b/src/mame/drivers/megadriv_rad.cpp
@@ -178,8 +178,8 @@ void megadriv_radica_state::init_megadriv_radica_6button_pal()
{
init_megadrie();
// 6 button game, so overwrite 3 button io handlers
- m_megadrive_io_read_data_port_ptr = read8_delegate(FUNC(md_base_state::megadrive_io_read_data_port_6button),this);
- m_megadrive_io_write_data_port_ptr = write16_delegate(FUNC(md_base_state::megadrive_io_write_data_port_6button),this);
+ m_megadrive_io_read_data_port_ptr = read8_delegate(*this, FUNC(md_base_state::megadrive_io_read_data_port_6button));
+ m_megadrive_io_write_data_port_ptr = write16_delegate(*this, FUNC(md_base_state::megadrive_io_write_data_port_6button));
}
// NTSC releases
diff --git a/src/mame/drivers/megaplay.cpp b/src/mame/drivers/megaplay.cpp
index c3f9989ced5..12cf4276d84 100644
--- a/src/mame/drivers/megaplay.cpp
+++ b/src/mame/drivers/megaplay.cpp
@@ -927,17 +927,17 @@ void mplay_state::init_megaplay()
m_ic37_ram = std::make_unique<uint8_t[]>(0x10000);
init_megadrij();
- m_megadrive_io_read_data_port_ptr = read8_delegate(FUNC(md_base_state::megadrive_io_read_data_port_3button),this);
- m_megadrive_io_write_data_port_ptr = write16_delegate(FUNC(md_base_state::megadrive_io_write_data_port_3button),this);
+ m_megadrive_io_read_data_port_ptr = read8_delegate(*this, FUNC(md_base_state::megadrive_io_read_data_port_3button));
+ m_megadrive_io_write_data_port_ptr = write16_delegate(*this, FUNC(md_base_state::megadrive_io_write_data_port_3button));
// for now ...
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xa10000, 0xa1001f, read16_delegate(FUNC(mplay_state::mp_io_read),this), write16_delegate(FUNC(mplay_state::mp_io_write),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xa10000, 0xa1001f, read16_delegate(*this, FUNC(mplay_state::mp_io_read)), write16_delegate(*this, FUNC(mplay_state::mp_io_write)));
// megaplay has ram shared with the bios cpu here
m_z80snd->space(AS_PROGRAM).install_ram(0x2000, 0x3fff, &m_ic36_ram[0]);
// instead of a RAM mirror the 68k sees the extra ram of the 2nd z80 too
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xa02000, 0xa03fff, read16_delegate(FUNC(mplay_state::extra_ram_r),this), write16_delegate(FUNC(mplay_state::extra_ram_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xa02000, 0xa03fff, read16_delegate(*this, FUNC(mplay_state::extra_ram_r)), write16_delegate(*this, FUNC(mplay_state::extra_ram_w)));
}
/*
diff --git a/src/mame/drivers/megasys1.cpp b/src/mame/drivers/megasys1.cpp
index 4e097cd0755..0090c681377 100644
--- a/src/mame/drivers/megasys1.cpp
+++ b/src/mame/drivers/megasys1.cpp
@@ -603,7 +603,7 @@ void megasys1_state::z80_sound_map(address_map &map)
{
map(0x0000, 0x3fff).rom();
map(0xc000, 0xc7ff).ram();
- map(0xe000, 0xe000).lr8("soundlatch_r_z", [this](){ return m_soundlatch[0]->read() & 0xff; });
+ map(0xe000, 0xe000).lr8(NAME([this] () { return m_soundlatch[0]->read() & 0xff; }));
map(0xf000, 0xf000).nopw(); /* ?? */
}
@@ -4621,8 +4621,8 @@ WRITE16_MEMBER(megasys1_state::megasys1A_mcu_hs_w)
void megasys1_state::init_astyanax()
{
astyanax_rom_decode(machine(), "maincpu");
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x00000, 0x3ffff, read16_delegate(FUNC(megasys1_state::megasys1A_mcu_hs_r),this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x20000, 0x20009, write16_delegate(FUNC(megasys1_state::megasys1A_mcu_hs_w),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x00000, 0x3ffff, read16_delegate(*this, FUNC(megasys1_state::megasys1A_mcu_hs_r)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x20000, 0x20009, write16_delegate(*this, FUNC(megasys1_state::megasys1A_mcu_hs_w)));
m_mcu_hs = 0;
memset(m_mcu_hs_ram, 0, sizeof(m_mcu_hs_ram));
@@ -4766,8 +4766,8 @@ void megasys1_state::init_iganinju()
{
phantasm_rom_decode(machine(), "maincpu");
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x00000, 0x3ffff, read16_delegate(FUNC(megasys1_state::iganinju_mcu_hs_r),this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x2f000, 0x2f009, write16_delegate(FUNC(megasys1_state::iganinju_mcu_hs_w),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x00000, 0x3ffff, read16_delegate(*this, FUNC(megasys1_state::iganinju_mcu_hs_r)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x2f000, 0x2f009, write16_delegate(*this, FUNC(megasys1_state::iganinju_mcu_hs_w)));
//m_rom_maincpu[0x00006e/2] = 0x0420; // the only game that does
// not like lev 3 interrupts
@@ -4785,8 +4785,8 @@ void megasys1_state::init_jitsupro()
jitsupro_gfx_unmangle("scroll0"); // Gfx
jitsupro_gfx_unmangle("sprites");
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x00000, 0x3ffff, read16_delegate(FUNC(megasys1_state::megasys1A_mcu_hs_r),this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x20000, 0x20009, write16_delegate(FUNC(megasys1_state::megasys1A_mcu_hs_w),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x00000, 0x3ffff, read16_delegate(*this, FUNC(megasys1_state::megasys1A_mcu_hs_r)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x20000, 0x20009, write16_delegate(*this, FUNC(megasys1_state::megasys1A_mcu_hs_w)));
m_mcu_hs = 0;
memset(m_mcu_hs_ram, 0, sizeof(m_mcu_hs_ram));
@@ -4802,7 +4802,7 @@ void megasys1_state::init_peekaboo()
m_okibank->configure_entry(7, &ROM[0x20000]);
m_okibank->configure_entries(0, 7, &ROM[0x20000], 0x20000);
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x100000, 0x100001, read16_delegate(FUNC(megasys1_state::protection_peekaboo_r),this), write16_delegate(FUNC(megasys1_state::protection_peekaboo_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x100000, 0x100001, read16_delegate(*this, FUNC(megasys1_state::protection_peekaboo_r)), write16_delegate(*this, FUNC(megasys1_state::protection_peekaboo_w)));
save_item(NAME(m_protection_val));
}
@@ -4853,14 +4853,14 @@ void megasys1_state::init_soldamj()
{
astyanax_rom_decode(machine(), "maincpu");
/* Sprite RAM is mirrored */
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x8c000, 0x8cfff, read16_delegate(FUNC(megasys1_state::soldamj_spriteram16_r),this), write16_delegate(FUNC(megasys1_state::soldamj_spriteram16_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x8c000, 0x8cfff, read16_delegate(*this, FUNC(megasys1_state::soldamj_spriteram16_r)), write16_delegate(*this, FUNC(megasys1_state::soldamj_spriteram16_w)));
}
void megasys1_state::init_soldam()
{
phantasm_rom_decode(machine(), "maincpu");
/* Sprite RAM is mirrored */
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x8c000, 0x8cfff, read16_delegate(FUNC(megasys1_state::soldamj_spriteram16_r),this), write16_delegate(FUNC(megasys1_state::soldamj_spriteram16_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x8c000, 0x8cfff, read16_delegate(*this, FUNC(megasys1_state::soldamj_spriteram16_r)), write16_delegate(*this, FUNC(megasys1_state::soldamj_spriteram16_w)));
}
@@ -4894,8 +4894,8 @@ WRITE16_MEMBER(megasys1_state::stdragon_mcu_hs_w)
void megasys1_state::init_stdragon()
{
phantasm_rom_decode(machine(), "maincpu");
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x00000, 0x3ffff, read16_delegate(FUNC(megasys1_state::stdragon_mcu_hs_r),this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x23ff0, 0x23ff9, write16_delegate(FUNC(megasys1_state::stdragon_mcu_hs_w),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x00000, 0x3ffff, read16_delegate(*this, FUNC(megasys1_state::stdragon_mcu_hs_r)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x23ff0, 0x23ff9, write16_delegate(*this, FUNC(megasys1_state::stdragon_mcu_hs_w)));
m_mcu_hs = 0;
memset(m_mcu_hs_ram, 0, sizeof(m_mcu_hs_ram));
@@ -4911,8 +4911,8 @@ void megasys1_state::init_stdragona()
stdragona_gfx_unmangle("scroll0");
stdragona_gfx_unmangle("sprites");
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x00000, 0x3ffff, read16_delegate(FUNC(megasys1_state::stdragon_mcu_hs_r),this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x23ff0, 0x23ff9, write16_delegate(FUNC(megasys1_state::stdragon_mcu_hs_w),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x00000, 0x3ffff, read16_delegate(*this, FUNC(megasys1_state::stdragon_mcu_hs_r)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x23ff0, 0x23ff9, write16_delegate(*this, FUNC(megasys1_state::stdragon_mcu_hs_w)));
m_mcu_hs = 0;
memset(m_mcu_hs_ram, 0, sizeof(m_mcu_hs_ram));
diff --git a/src/mame/drivers/megatech.cpp b/src/mame/drivers/megatech.cpp
index 7ccc2c2cc82..7b10b7f7c5b 100644
--- a/src/mame/drivers/megatech.cpp
+++ b/src/mame/drivers/megatech.cpp
@@ -386,20 +386,20 @@ void mtech_state::set_genz80_as_sms()
memcpy(sms_rom.get(), m_region_maincpu->base(), 0xc000);
- prg.install_write_handler(0xfffc, 0xffff, write8_delegate(FUNC(mtech_state::mt_sms_standard_rom_bank_w),this));
+ prg.install_write_handler(0xfffc, 0xffff, write8_delegate(*this, FUNC(mtech_state::mt_sms_standard_rom_bank_w)));
// ports
- io.install_read_handler (0x40, 0x41, 0, 0x3e, 0, read8sm_delegate(FUNC(mtech_state::sms_count_r),this));
- io.install_write_handler (0x40, 0x41, 0, 0x3e, 0, write8smo_delegate(FUNC(sega315_5124_device::psg_w),(sega315_5124_device *)m_vdp));
- io.install_readwrite_handler (0x80, 0x80, 0, 0x3e, 0, read8smo_delegate(FUNC(sega315_5124_device::data_read),(sega315_5124_device *)m_vdp), write8smo_delegate(FUNC(sega315_5124_device::data_write),(sega315_5124_device *)m_vdp));
- io.install_readwrite_handler (0x81, 0x81, 0, 0x3e, 0, read8smo_delegate(FUNC(sega315_5124_device::control_read),(sega315_5124_device *)m_vdp), write8smo_delegate(FUNC(sega315_5124_device::control_write),(sega315_5124_device *)m_vdp));
+ io.install_read_handler (0x40, 0x41, 0, 0x3e, 0, read8sm_delegate(*this, FUNC(mtech_state::sms_count_r)));
+ io.install_write_handler (0x40, 0x41, 0, 0x3e, 0, write8smo_delegate(*m_vdp, FUNC(sega315_5124_device::psg_w)));
+ io.install_readwrite_handler (0x80, 0x80, 0, 0x3e, 0, read8smo_delegate(*m_vdp, FUNC(sega315_5124_device::data_read)), write8smo_delegate(*m_vdp, FUNC(sega315_5124_device::data_write)));
+ io.install_readwrite_handler (0x81, 0x81, 0, 0x3e, 0, read8smo_delegate(*m_vdp, FUNC(sega315_5124_device::control_read)), write8smo_delegate(*m_vdp, FUNC(sega315_5124_device::control_write)));
- io.install_read_handler (0x10, 0x10, read8_delegate(FUNC(mtech_state::sms_ioport_dd_r),this)); // super tetris
+ io.install_read_handler (0x10, 0x10, read8_delegate(*this, FUNC(mtech_state::sms_ioport_dd_r))); // super tetris
- io.install_read_handler (0xdc, 0xdc, read8_delegate(FUNC(mtech_state::sms_ioport_dc_r),this));
- io.install_read_handler (0xdd, 0xdd, read8_delegate(FUNC(mtech_state::sms_ioport_dd_r),this));
- io.install_read_handler (0xde, 0xde, read8_delegate(FUNC(mtech_state::sms_ioport_dd_r),this));
- io.install_read_handler (0xdf, 0xdf, read8_delegate(FUNC(mtech_state::sms_ioport_dd_r),this)); // adams family
+ io.install_read_handler (0xdc, 0xdc, read8_delegate(*this, FUNC(mtech_state::sms_ioport_dc_r)));
+ io.install_read_handler (0xdd, 0xdd, read8_delegate(*this, FUNC(mtech_state::sms_ioport_dd_r)));
+ io.install_read_handler (0xde, 0xde, read8_delegate(*this, FUNC(mtech_state::sms_ioport_dd_r)));
+ io.install_read_handler (0xdf, 0xdf, read8_delegate(*this, FUNC(mtech_state::sms_ioport_dd_r))); // adams family
}
@@ -413,12 +413,12 @@ void mtech_state::set_genz80_as_md()
prg.install_ram(0x0000, 0x1fff, m_genz80.z80_prgram.get());
- prg.install_readwrite_handler(0x4000, 0x4003, read8sm_delegate(FUNC(ym2612_device::read), (ym2612_device *)m_ymsnd), write8sm_delegate(FUNC(ym2612_device::write), (ym2612_device *)m_ymsnd));
- prg.install_write_handler (0x6000, 0x6000, write8_delegate(FUNC(mtech_state::megadriv_z80_z80_bank_w),this));
- prg.install_write_handler (0x6001, 0x6001, write8_delegate(FUNC(mtech_state::megadriv_z80_z80_bank_w),this));
- prg.install_read_handler (0x6100, 0x7eff, read8_delegate(FUNC(mtech_state::megadriv_z80_unmapped_read),this));
- prg.install_readwrite_handler(0x7f00, 0x7fff, read8_delegate(FUNC(mtech_state::megadriv_z80_vdp_read),this), write8_delegate(FUNC(mtech_state::megadriv_z80_vdp_write),this));
- prg.install_readwrite_handler(0x8000, 0xffff, read8_delegate(FUNC(mtech_state::z80_read_68k_banked_data),this), write8_delegate(FUNC(mtech_state::z80_write_68k_banked_data),this));
+ prg.install_readwrite_handler(0x4000, 0x4003, read8sm_delegate(*m_ymsnd, FUNC(ym2612_device::read)), write8sm_delegate(*m_ymsnd, FUNC(ym2612_device::write)));
+ prg.install_write_handler (0x6000, 0x6000, write8_delegate(*this, FUNC(mtech_state::megadriv_z80_z80_bank_w)));
+ prg.install_write_handler (0x6001, 0x6001, write8_delegate(*this, FUNC(mtech_state::megadriv_z80_z80_bank_w)));
+ prg.install_read_handler (0x6100, 0x7eff, read8_delegate(*this, FUNC(mtech_state::megadriv_z80_unmapped_read)));
+ prg.install_readwrite_handler(0x7f00, 0x7fff, read8_delegate(*this, FUNC(mtech_state::megadriv_z80_vdp_read)), write8_delegate(*this, FUNC(mtech_state::megadriv_z80_vdp_write)));
+ prg.install_readwrite_handler(0x8000, 0xffff, read8_delegate(*this, FUNC(mtech_state::z80_read_68k_banked_data)), write8_delegate(*this, FUNC(mtech_state::z80_write_68k_banked_data)));
}
@@ -768,7 +768,7 @@ image_init_result mtech_state::load_cart(device_image_interface &image, generic_
}
#define MEGATECH_CARTSLOT(_tag, _load) \
- GENERIC_CARTSLOT(config, _tag, generic_plain_slot, "megatech_cart").set_device_load(FUNC(mtech_state::_load), this)
+ GENERIC_CARTSLOT(config, _tag, generic_plain_slot, "megatech_cart").set_device_load(FUNC(mtech_state::_load))
void mtech_state::megatech_multislot(machine_config &config)
{
@@ -794,7 +794,7 @@ void mtech_state::megatech_fixedslot(machine_config &config)
// add cart slots
generic_cartslot_device &cartslot(GENERIC_CARTSLOT(config, "mt_slot1", generic_plain_slot, "megatech_cart"));
- cartslot.set_device_load(FUNC(mtech_state::mt_cart1), this);
+ cartslot.set_device_load(FUNC(mtech_state::mt_cart1));
cartslot.set_user_loadable(false);
}
diff --git a/src/mame/drivers/mekd2.cpp b/src/mame/drivers/mekd2.cpp
index 7810c6bbbfb..a93b14bf927 100644
--- a/src/mame/drivers/mekd2.cpp
+++ b/src/mame/drivers/mekd2.cpp
@@ -408,7 +408,7 @@ void mekd2_state::mekd2(machine_config &config)
TIMER(config, "kansas_w").configure_periodic(FUNC(mekd2_state::kansas_w), attotime::from_hz(4800));
TIMER(config, "kansas_r").configure_periodic(FUNC(mekd2_state::kansas_r), attotime::from_hz(40000));
- QUICKLOAD(config, "quickload", "d2", attotime::from_seconds(1)).set_load_callback(FUNC(mekd2_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "d2", attotime::from_seconds(1)).set_load_callback(FUNC(mekd2_state::quickload_cb));
}
/***********************************************************
diff --git a/src/mame/drivers/mekd3.cpp b/src/mame/drivers/mekd3.cpp
index d4c47995afe..2d9bed36690 100644
--- a/src/mame/drivers/mekd3.cpp
+++ b/src/mame/drivers/mekd3.cpp
@@ -977,7 +977,7 @@ void mekd3_state::mekd3(machine_config &config)
m_mc6845->set_screen("screen");
m_mc6845->set_show_border_area(false);
m_mc6845->set_char_width(8);
- m_mc6845->set_update_row_callback(FUNC(mekd3_state::update_row), this);
+ m_mc6845->set_update_row_callback(FUNC(mekd3_state::update_row));
m_mc6845->out_hsync_callback().set(FUNC(mekd3_state::r2_hsync_changed));
m_mc6845->out_vsync_callback().set(FUNC(mekd3_state::r2_vsync_changed));
diff --git a/src/mame/drivers/mekd4.cpp b/src/mame/drivers/mekd4.cpp
index 7c73186b481..2fa8507faa1 100644
--- a/src/mame/drivers/mekd4.cpp
+++ b/src/mame/drivers/mekd4.cpp
@@ -989,7 +989,7 @@ void mekd4_state::mekd4(machine_config &config)
m_mc6845->set_screen("screen");
m_mc6845->set_show_border_area(false);
m_mc6845->set_char_width(8);
- m_mc6845->set_update_row_callback(FUNC(mekd4_state::update_row), this);
+ m_mc6845->set_update_row_callback(FUNC(mekd4_state::update_row));
m_mc6845->out_hsync_callback().set(FUNC(mekd4_state::r2_hsync_changed));
m_mc6845->out_vsync_callback().set(FUNC(mekd4_state::r2_vsync_changed));
diff --git a/src/mame/drivers/merit.cpp b/src/mame/drivers/merit.cpp
index ba47fc504d6..7154cc1ff94 100644
--- a/src/mame/drivers/merit.cpp
+++ b/src/mame/drivers/merit.cpp
@@ -1434,8 +1434,8 @@ void merit_state::pitboss(machine_config &config)
crtc.set_screen(m_screen);
crtc.set_show_border_area(false);
crtc.set_char_width(8);
- crtc.set_begin_update_callback(FUNC(merit_state::crtc_begin_update), this);
- crtc.set_update_row_callback(FUNC(merit_state::crtc_update_row), this);
+ crtc.set_begin_update_callback(FUNC(merit_state::crtc_begin_update));
+ crtc.set_update_row_callback(FUNC(merit_state::crtc_update_row));
crtc.out_hsync_callback().set(FUNC(merit_state::hsync_changed));
crtc.out_vsync_callback().set_inputline(m_maincpu, 0);
diff --git a/src/mame/drivers/meritm.cpp b/src/mame/drivers/meritm.cpp
index a7042ce0713..af4db19748a 100644
--- a/src/mame/drivers/meritm.cpp
+++ b/src/mame/drivers/meritm.cpp
@@ -1175,7 +1175,7 @@ void meritm_state::crt250_crt252_crt258(machine_config &config)
m_uart->out_tx_callback().set(m_microtouch, FUNC(microtouch_device::rx));
MICROTOUCH(config, m_microtouch, 9600).stx().set(m_uart, FUNC(ins8250_uart_device::rx_w));
- m_microtouch->set_touch_callback(FUNC(meritm_state::touch_coord_transform), this);
+ m_microtouch->set_touch_callback(FUNC(meritm_state::touch_coord_transform));
}
void meritm_state::crt260(machine_config &config)
@@ -1194,7 +1194,7 @@ void meritm_state::crt260(machine_config &config)
m_uart->out_tx_callback().set(m_microtouch, FUNC(microtouch_device::rx));
MICROTOUCH(config, m_microtouch, 9600).stx().set(m_uart, FUNC(ins8250_uart_device::rx_w));
- m_microtouch->set_touch_callback(FUNC(meritm_state::touch_coord_transform), this);
+ m_microtouch->set_touch_callback(FUNC(meritm_state::touch_coord_transform));
}
@@ -2386,7 +2386,7 @@ ROM_END
void meritm_state::init_megat3te()
{
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xfff8, 0xffff, read8_delegate(FUNC(meritm_state::ds1644_r), this), write8_delegate(FUNC(meritm_state::ds1644_w), this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xfff8, 0xffff, read8_delegate(*this, FUNC(meritm_state::ds1644_r)), write8_delegate(*this, FUNC(meritm_state::ds1644_w)));
}
/* CRT-250 */
diff --git a/src/mame/drivers/meritum.cpp b/src/mame/drivers/meritum.cpp
index 31b8fef11f8..8c46e71496d 100644
--- a/src/mame/drivers/meritum.cpp
+++ b/src/mame/drivers/meritum.cpp
@@ -440,7 +440,7 @@ void meritum_state::meritum(machine_config &config)
CASSETTE(config, m_cassette);
m_cassette->add_route(ALL_OUTPUTS, "mono", 0.05);
- QUICKLOAD(config, "quickload", "cmd", attotime::from_seconds(1)).set_load_callback(FUNC(meritum_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "cmd", attotime::from_seconds(1)).set_load_callback(FUNC(meritum_state::quickload_cb));
}
/***************************************************************************
diff --git a/src/mame/drivers/metro.cpp b/src/mame/drivers/metro.cpp
index 82c18c784ee..0ef4367cb06 100644
--- a/src/mame/drivers/metro.cpp
+++ b/src/mame/drivers/metro.cpp
@@ -3126,7 +3126,7 @@ void metro_state::bangball(machine_config &config)
{
msgogo(config);
m_maincpu->set_addrmap(AS_PROGRAM, &metro_state::bangball_map);
- m_maincpu->set_periodic_int(device_interrupt_delegate(), attotime());
+ m_maincpu->remove_periodic_int();
TIMER(config, "scantimer").configure_scanline(FUNC(metro_state::bangball_scanline), "screen", 0, 1);
// doesn't like 58.2 Hz
@@ -3138,7 +3138,7 @@ void metro_state::batlbubl(machine_config &config)
{
msgogo(config);
m_maincpu->set_addrmap(AS_PROGRAM, &metro_state::batlbubl_map);
- m_maincpu->set_periodic_int(device_interrupt_delegate(), attotime());
+ m_maincpu->remove_periodic_int();
TIMER(config, "scantimer").configure_scanline(FUNC(metro_state::bangball_scanline), "screen", 0, 1);
// doesn't like 58.2 Hz
@@ -3200,7 +3200,7 @@ void metro_state::puzzli(machine_config &config)
{
daitorid(config);
- m_maincpu->set_periodic_int(device_interrupt_delegate(), attotime());
+ m_maincpu->remove_periodic_int();
TIMER(config, "scantimer").configure_scanline(FUNC(metro_state::bangball_scanline), "screen", 0, 1);
m_screen->set_video_attributes(VIDEO_UPDATE_SCANLINE);
diff --git a/src/mame/drivers/mgames.cpp b/src/mame/drivers/mgames.cpp
index 6c11e57e462..efe910721a1 100644
--- a/src/mame/drivers/mgames.cpp
+++ b/src/mame/drivers/mgames.cpp
@@ -278,7 +278,7 @@ TILE_GET_INFO_MEMBER( mgames_state::tile_info )
void mgames_state::machine_start()
{
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mgames_state::tile_info), this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mgames_state::tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
m_lamps.resolve();
}
diff --git a/src/mame/drivers/mgavegas.cpp b/src/mame/drivers/mgavegas.cpp
index 367f4c3dc8b..c9b80303565 100644
--- a/src/mame/drivers/mgavegas.cpp
+++ b/src/mame/drivers/mgavegas.cpp
@@ -557,13 +557,13 @@ void mgavegas_state::machine_reset()
void mgavegas_state::init_mgavegas21()
{
//hack to clear the irq on reti instruction
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x00ea, 0x00ea, read8_delegate(FUNC(mgavegas_state::start_read), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x00ea, 0x00ea, read8_delegate(*this, FUNC(mgavegas_state::start_read)));
}
void mgavegas_state::init_mgavegas()
{
//hack to clear the irq on reti instruction
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x00e2, 0x00e2, read8_delegate(FUNC(mgavegas_state::start_read), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x00e2, 0x00e2, read8_delegate(*this, FUNC(mgavegas_state::start_read)));
}
@@ -577,7 +577,7 @@ TIMER_DEVICE_CALLBACK_MEMBER( mgavegas_state::int_0 )
void mgavegas_state::init_mgavegas133()
{
//hack to clear the irq on reti instruction
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x00dd, 0x00dd, read8_delegate(FUNC(mgavegas_state::start_read), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x00dd, 0x00dd, read8_delegate(*this, FUNC(mgavegas_state::start_read)));
}
/*************************
diff --git a/src/mame/drivers/mgolf.cpp b/src/mame/drivers/mgolf.cpp
index 54bf8ac3854..192022be98f 100644
--- a/src/mame/drivers/mgolf.cpp
+++ b/src/mame/drivers/mgolf.cpp
@@ -93,7 +93,7 @@ WRITE8_MEMBER(mgolf_state::vram_w)
void mgolf_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mgolf_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mgolf_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
diff --git a/src/mame/drivers/micro20.cpp b/src/mame/drivers/micro20.cpp
index e08b9ec4ca3..2ef1a7b741d 100644
--- a/src/mame/drivers/micro20.cpp
+++ b/src/mame/drivers/micro20.cpp
@@ -84,7 +84,7 @@ void micro20_state::machine_reset()
pRAM[1] = pROM[3];
m_maincpu->reset();
- m_maincpu->set_reset_callback(write_line_delegate(FUNC(micro20_state::m68k_reset_callback),this));
+ m_maincpu->set_reset_callback(*this, FUNC(micro20_state::m68k_reset_callback));
m_tin = 0;
}
@@ -92,10 +92,9 @@ void micro20_state::machine_reset()
TIMER_DEVICE_CALLBACK_MEMBER(micro20_state::micro20_timer)
{
m_pit->update_tin(m_tin ? ASSERT_LINE : CLEAR_LINE);
- if ((!m_h4) && (m_tin))
- {
+ if (!m_h4 && m_tin)
m_maincpu->set_input_line(M68K_IRQ_6, HOLD_LINE);
- }
+
m_tin ^= 1;
}
diff --git a/src/mame/drivers/micro3d.cpp b/src/mame/drivers/micro3d.cpp
index 160fdaadb2d..ed60e443656 100644
--- a/src/mame/drivers/micro3d.cpp
+++ b/src/mame/drivers/micro3d.cpp
@@ -294,7 +294,7 @@ void micro3d_state::soundmem_io(address_map &map)
void micro3d_state::cpu_space_map(address_map &map)
{
map(0xfffff0, 0xffffff).m(m_maincpu, FUNC(m68000_base_device::autovectors_map));
- map(0xfffff6, 0xfffff7).lr16("duart irq", [this]() -> u16 { return m_duart->get_irq_vector(); });
+ map(0xfffff6, 0xfffff7).lr16(NAME([this] () -> u16 { return m_duart->get_irq_vector(); }));
}
diff --git a/src/mame/drivers/microtan.cpp b/src/mame/drivers/microtan.cpp
index 1675b2b5c50..da937ffd603 100644
--- a/src/mame/drivers/microtan.cpp
+++ b/src/mame/drivers/microtan.cpp
@@ -305,9 +305,9 @@ void microtan_state::mt65(machine_config &config)
/* snapshot/quickload */
snapshot_image_device &snapshot(SNAPSHOT(config, "snapshot", "dmp,m65"));
- snapshot.set_load_callback(FUNC(microtan_state::snapshot_cb), this);
+ snapshot.set_load_callback(FUNC(microtan_state::snapshot_cb));
snapshot.set_interface("mt65_snap");
- QUICKLOAD(config, "quickload", "hex").set_load_callback(FUNC(microtan_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "hex").set_load_callback(FUNC(microtan_state::quickload_cb));
/* software lists */
SOFTWARE_LIST(config, "rom_list").set_original("mt65_rom");
diff --git a/src/mame/drivers/microvsn.cpp b/src/mame/drivers/microvsn.cpp
index 412afcfaf92..9f07c04fef1 100644
--- a/src/mame/drivers/microvsn.cpp
+++ b/src/mame/drivers/microvsn.cpp
@@ -670,7 +670,7 @@ void microvision_state::microvision(machine_config &config)
generic_cartslot_device &cartslot(GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "microvision_cart"));
cartslot.set_must_be_loaded(true);
- cartslot.set_device_load(FUNC(microvision_state::cart_load), this);
+ cartslot.set_device_load(FUNC(microvision_state::cart_load));
/* Software lists */
SOFTWARE_LIST(config, "cart_list").set_original("microvision");
diff --git a/src/mame/drivers/midqslvr.cpp b/src/mame/drivers/midqslvr.cpp
index 0c607f87f72..8e6dc436c3d 100644
--- a/src/mame/drivers/midqslvr.cpp
+++ b/src/mame/drivers/midqslvr.cpp
@@ -427,10 +427,8 @@ void midqslvr_state::midqslvr(machine_config &config)
pcat_common(config);
pci_bus_legacy_device &pcibus(PCI_BUS_LEGACY(config, "pcibus", 0, 0));
- pcibus.set_device_read ( 0, FUNC(midqslvr_state::intel82439tx_pci_r), this);
- pcibus.set_device_write( 0, FUNC(midqslvr_state::intel82439tx_pci_w), this);
- pcibus.set_device_read (31, FUNC(midqslvr_state::intel82371ab_pci_r), this);
- pcibus.set_device_write(31, FUNC(midqslvr_state::intel82371ab_pci_w), this);
+ pcibus.set_device( 0, FUNC(midqslvr_state::intel82439tx_pci_r), FUNC(midqslvr_state::intel82439tx_pci_w));
+ pcibus.set_device(31, FUNC(midqslvr_state::intel82371ab_pci_r), FUNC(midqslvr_state::intel82371ab_pci_w));
ide_controller_device &ide(IDE_CONTROLLER(config, "ide").options(ata_devices, "hdd", nullptr, true));
ide.irq_handler().set("pic8259_2", FUNC(pic8259_device::ir6_w));
diff --git a/src/mame/drivers/midvunit.cpp b/src/mame/drivers/midvunit.cpp
index b8e22302801..24fa7c874a3 100644
--- a/src/mame/drivers/midvunit.cpp
+++ b/src/mame/drivers/midvunit.cpp
@@ -650,10 +650,10 @@ void midvunit_state::midvunit_map(address_map &map)
map(0x980080, 0x980080).noprw();
map(0x980082, 0x980083).r(FUNC(midvunit_state::midvunit_dma_trigger_r));
map(0x990000, 0x990000).r(FUNC(midvunit_state::midvunit_intcs_r));
- map(0x991030, 0x991030).lr16("991030", [this]() { return uint16_t(m_in1->read()); });
+ map(0x991030, 0x991030).lr16(NAME([this] () { return uint16_t(m_in1->read()); }));
// map(0x991050, 0x991050).readonly(); // seems to be another port
map(0x991060, 0x991060).r(FUNC(midvunit_state::port0_r));
- map(0x992000, 0x992000).lr16("992000", [this]() { return uint16_t(m_dsw->read()); });
+ map(0x992000, 0x992000).lr16(NAME([this] () { return uint16_t(m_dsw->read()); }));
map(0x993000, 0x993000).rw(FUNC(midvunit_state::adc_r), FUNC(midvunit_state::adc_w));
map(0x994000, 0x994000).w(FUNC(midvunit_state::midvunit_control_w));
map(0x995000, 0x995000).rw(FUNC(midvunit_state::midvunit_wheel_board_r), FUNC(midvunit_state::midvunit_wheel_board_w));
@@ -1113,8 +1113,8 @@ void midvunit_state::midvcommon(machine_config &config)
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_1);
- TIMER(config, "timer0").configure_generic(timer_device::expired_delegate());
- TIMER(config, "timer1").configure_generic(timer_device::expired_delegate());
+ TIMER(config, "timer0").configure_generic(nullptr);
+ TIMER(config, "timer1").configure_generic(nullptr);
WATCHDOG_TIMER(config, m_watchdog);
@@ -1866,7 +1866,7 @@ void midvunit_state::init_crusnusa_common(offs_t speedup)
m_adc_shift = 24;
/* speedups */
- m_maincpu->space(AS_PROGRAM).install_read_handler(speedup, speedup + 1, read32_delegate(FUNC(midvunit_state::generic_speedup_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(speedup, speedup + 1, read32_delegate(*this, FUNC(midvunit_state::generic_speedup_r)));
m_generic_speedup = m_ram_base + speedup;
}
void midvunit_state::init_crusnusa() { init_crusnusa_common(0xc93e); }
@@ -1879,19 +1879,19 @@ void midvunit_state::init_crusnwld_common(offs_t speedup)
m_adc_shift = 16;
/* control register is different */
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x994000, 0x994000, write32_delegate(FUNC(midvunit_state::crusnwld_control_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x994000, 0x994000, write32_delegate(*this, FUNC(midvunit_state::crusnwld_control_w)));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x991030, 0x991030, read32_delegate(FUNC(midvunit_state::crusnwld_serial_status_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x996000, 0x996000, read32_delegate(FUNC(midvunit_state::crusnwld_serial_data_r),this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x996000, 0x996000, write32_delegate(FUNC(midvunit_state::crusnwld_serial_data_w),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x991030, 0x991030, read32_delegate(*this, FUNC(midvunit_state::crusnwld_serial_status_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x996000, 0x996000, read32_delegate(*this, FUNC(midvunit_state::crusnwld_serial_data_r)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x996000, 0x996000, write32_delegate(*this, FUNC(midvunit_state::crusnwld_serial_data_w)));
/* install strange protection device */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x9d0000, 0x9d1fff, read32_delegate(FUNC(midvunit_state::bit_data_r),this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x9d0000, 0x9d0000, write32_delegate(FUNC(midvunit_state::bit_reset_w),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x9d0000, 0x9d1fff, read32_delegate(*this, FUNC(midvunit_state::bit_data_r)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x9d0000, 0x9d0000, write32_delegate(*this, FUNC(midvunit_state::bit_reset_w)));
/* speedups */
if (speedup) {
- m_maincpu->space(AS_PROGRAM).install_read_handler(speedup, speedup + 1, read32_delegate(FUNC(midvunit_state::generic_speedup_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(speedup, speedup + 1, read32_delegate(*this, FUNC(midvunit_state::generic_speedup_r)));
m_generic_speedup = m_ram_base + speedup;
}
}
@@ -1906,13 +1906,13 @@ void midvunit_state::init_offroadc()
m_adc_shift = 16;
/* control register is different */
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x994000, 0x994000, write32_delegate(FUNC(midvunit_state::crusnwld_control_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x994000, 0x994000, write32_delegate(*this, FUNC(midvunit_state::crusnwld_control_w)));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x991030, 0x991030, read32_delegate(FUNC(midvunit_state::offroadc_serial_status_r),this));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x996000, 0x996000, read32_delegate(FUNC(midvunit_state::offroadc_serial_data_r),this), write32_delegate(FUNC(midvunit_state::offroadc_serial_data_w),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x991030, 0x991030, read32_delegate(*this, FUNC(midvunit_state::offroadc_serial_status_r)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x996000, 0x996000, read32_delegate(*this, FUNC(midvunit_state::offroadc_serial_data_r)), write32_delegate(*this, FUNC(midvunit_state::offroadc_serial_data_w)));
/* speedups */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x195aa, 0x195aa, read32_delegate(FUNC(midvunit_state::generic_speedup_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x195aa, 0x195aa, read32_delegate(*this, FUNC(midvunit_state::generic_speedup_r)));
m_generic_speedup = m_ram_base + 0x195aa;
}
@@ -1933,7 +1933,7 @@ void midvunit_state::init_wargods()
m_midway_ioasic->set_default_nvram(default_nvram);
/* speedups */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x2f4c, 0x2f4c, read32_delegate(FUNC(midvunit_state::generic_speedup_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x2f4c, 0x2f4c, read32_delegate(*this, FUNC(midvunit_state::generic_speedup_r)));
m_generic_speedup = m_ram_base + 0x2f4c;
}
diff --git a/src/mame/drivers/midzeus.cpp b/src/mame/drivers/midzeus.cpp
index 192bc040bb0..242c5baab74 100644
--- a/src/mame/drivers/midzeus.cpp
+++ b/src/mame/drivers/midzeus.cpp
@@ -1667,23 +1667,23 @@ void midzeus_state::init_mk4()
void midzeus_state::init_invasn()
{
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x9c0000, 0x9c0000, read32_delegate(FUNC(midzeus_state::invasn_gun_r),this), write32_delegate(FUNC(midzeus_state::invasn_gun_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x9c0000, 0x9c0000, read32_delegate(*this, FUNC(midzeus_state::invasn_gun_r)), write32_delegate(*this, FUNC(midzeus_state::invasn_gun_w)));
}
void midzeus2_state::init_crusnexo()
{
membank("bank1")->configure_entries(0, 3, memregion("user2")->base(), 0x400000*4);
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x9b0004, 0x9b0007, read32_delegate(FUNC(midzeus2_state::crusnexo_leds_r),this), write32_delegate(FUNC(midzeus2_state::crusnexo_leds_w),this));
- m_maincpu->space(AS_PROGRAM).install_write_handler (0x8d0009, 0x8d000a, write32_delegate(FUNC(midzeus_state::keypad_select_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x9b0004, 0x9b0007, read32_delegate(*this, FUNC(midzeus2_state::crusnexo_leds_r)), write32_delegate(*this, FUNC(midzeus2_state::crusnexo_leds_w)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler (0x8d0009, 0x8d000a, write32_delegate(*this, FUNC(midzeus_state::keypad_select_w)));
}
void midzeus2_state::init_thegrid()
{
membank("bank1")->configure_entries(0, 3, memregion("user2")->base(), 0x400000*4);
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x8c0000, 0x8c0001, read32_delegate(FUNC(midzeus_state::trackball_r), this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x9b0000, 0x9b0004, read32_delegate(FUNC(midzeus_state::grid_keypad_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x8c0000, 0x8c0001, read32_delegate(*this, FUNC(midzeus_state::trackball_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x9b0000, 0x9b0004, read32_delegate(*this, FUNC(midzeus_state::grid_keypad_r)));
}
diff --git a/src/mame/drivers/mikrosha.cpp b/src/mame/drivers/mikrosha.cpp
index 7b51a032f9f..f82dc2910bb 100644
--- a/src/mame/drivers/mikrosha.cpp
+++ b/src/mame/drivers/mikrosha.cpp
@@ -44,7 +44,7 @@ private:
void mikrosha_state::machine_reset()
{
if (m_cart->exists())
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x8000, 0x8000+m_cart->get_rom_size()-1, read8sm_delegate(FUNC(generic_slot_device::read_rom),(generic_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x8000, 0x8000 + m_cart->get_rom_size() - 1, read8sm_delegate(*m_cart, FUNC(generic_slot_device::read_rom)));
radio86_state::machine_reset();
}
@@ -220,7 +220,7 @@ void mikrosha_state::mikrosha(machine_config &config)
i8275_device &i8275(I8275(config, "i8275", XTAL(16'000'000) / 12));
i8275.set_character_width(6);
- i8275.set_display_callback(FUNC(mikrosha_state::display_pixels), this);
+ i8275.set_display_callback(FUNC(mikrosha_state::display_pixels));
i8275.drq_wr_callback().set(m_dma8257, FUNC(i8257_device::dreq2_w));
pit8253_device &pit8253(PIT8253(config, "pit8253", 0));
diff --git a/src/mame/drivers/mil4000.cpp b/src/mame/drivers/mil4000.cpp
index 61f33968369..220f47e8bbf 100644
--- a/src/mame/drivers/mil4000.cpp
+++ b/src/mame/drivers/mil4000.cpp
@@ -245,10 +245,10 @@ void mil4000_state::machine_start()
void mil4000_state::video_start()
{
- m_sc0_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mil4000_state::get_sc0_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,64);
- m_sc1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mil4000_state::get_sc1_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,64);
- m_sc2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mil4000_state::get_sc2_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,64);
- m_sc3_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mil4000_state::get_sc3_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,64);
+ m_sc0_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mil4000_state::get_sc0_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 64,64);
+ m_sc1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mil4000_state::get_sc1_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 64,64);
+ m_sc2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mil4000_state::get_sc2_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 64,64);
+ m_sc3_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mil4000_state::get_sc3_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 64,64);
m_sc1_tilemap->set_transparent_pen(0);
m_sc2_tilemap->set_transparent_pen(0);
diff --git a/src/mame/drivers/mindset.cpp b/src/mame/drivers/mindset.cpp
index 5de3def7c65..e886f5003f5 100644
--- a/src/mame/drivers/mindset.cpp
+++ b/src/mame/drivers/mindset.cpp
@@ -229,7 +229,7 @@ void mindset_sound_module::map(address_map &map)
void mindset_sound_module::idmap(address_map &map)
{
- map(0x00, 0x3f).lr8("id", []() -> u8 { return 0x13; }).umask16(0x00ff);
+ map(0x00, 0x3f).lr8(NAME([]() -> u8 { return 0x13; })).umask16(0x00ff);
}
ROM_START(mindset_sound_module)
@@ -288,7 +288,7 @@ void mindset_rs232_module::map(address_map &map)
void mindset_rs232_module::idmap(address_map &map)
{
- map(0x00, 0x3f).lr8("id", [this]() -> u8 { return 0x73 | (m_irq_state ? 0x80 : 0x00); }).umask16(0x00ff);
+ map(0x00, 0x3f).lr8(NAME([this]() -> u8 { return 0x73 | (m_irq_state ? 0x80 : 0x00); })).umask16(0x00ff);
}
void mindset_rs232_module::device_add_mconfig(machine_config &config)
diff --git a/src/mame/drivers/miniboy7.cpp b/src/mame/drivers/miniboy7.cpp
index 75af1b98ba5..28f52c0aed3 100644
--- a/src/mame/drivers/miniboy7.cpp
+++ b/src/mame/drivers/miniboy7.cpp
@@ -682,7 +682,7 @@ void miniboy7_state::miniboy7(machine_config &config)
crtc.set_screen("screen");
crtc.set_show_border_area(false);
crtc.set_char_width(8);
- crtc.set_update_row_callback(FUNC(miniboy7_state::crtc_update_row), this);
+ crtc.set_update_row_callback(FUNC(miniboy7_state::crtc_update_row));
crtc.out_vsync_callback().set("pia0", FUNC(pia6821_device::ca1_w));
/* sound hardware */
diff --git a/src/mame/drivers/mips.cpp b/src/mame/drivers/mips.cpp
index 11afd54c3c6..976587c1e32 100644
--- a/src/mame/drivers/mips.cpp
+++ b/src/mame/drivers/mips.cpp
@@ -308,15 +308,9 @@ void rx2030_state::iop_program_map(address_map &map)
void rx2030_state::iop_io_map(address_map &map)
{
- map(0x0000, 0x003f).lrw16("mmu",
- [this](offs_t offset, u16 mem_mask)
- {
- return m_mmu[offset];
- },
- [this](offs_t offset, u16 data, u16 mem_mask)
- {
- m_mmu[offset] = data;
- });
+ map(0x0000, 0x003f).lrw16(
+ NAME([this] (offs_t offset, u16 mem_mask) { return m_mmu[offset]; }),
+ NAME([this] (offs_t offset, u16 data, u16 mem_mask) { m_mmu[offset] = data; }));
map(0x0040, 0x0043).m(m_fdc, FUNC(wd37c65c_device::map)).umask16(0xff);
map(0x0044, 0x0045).w(m_fdc, FUNC(wd37c65c_device::dor_w)).umask16(0xff);
@@ -332,33 +326,34 @@ void rx2030_state::iop_io_map(address_map &map)
* scan code set. Possibly caused by imperfect V50 timing and/or memory
* wait states that make the IOP code execute more slowly than emulated.
*/
- map(0x00c0, 0x00c1).lrw8("kbdc_data", [this]() { return m_kbdc->data_r(); }, [this](u8 data) { m_kbdc->data_w(data == 0xff ? 0xf6 : data); }).umask16(0xff);
+ map(0x00c0, 0x00c1).lrw8(NAME([this] () { return m_kbdc->data_r(); }), NAME([this] (u8 data) { m_kbdc->data_w(data == 0xff ? 0xf6 : data); })).umask16(0xff);
map(0x00c4, 0x00c5).rw(m_kbdc, FUNC(at_keyboard_controller_device::status_r), FUNC(at_keyboard_controller_device::command_w)).umask16(0xff);
map(0x0100, 0x0107).rw(m_scc, FUNC(z80scc_device::ab_dc_r), FUNC(z80scc_device::ab_dc_w)).umask16(0xff);
map(0x0140, 0x0143).rw(m_net, FUNC(am7990_device::regs_r), FUNC(am7990_device::regs_w));
- map(0x0180, 0x018b).lr8("mac", [](offs_t offset)
- {
- // Ethernet MAC address (LSB first)
- static u8 const mac[] = { 0x00, 0x00, 0x6b, 0x12, 0x34, 0x56 };
+ map(0x0180, 0x018b).lr8(
+ [] (offs_t offset)
+ {
+ // Ethernet MAC address (LSB first)
+ static u8 const mac[] = { 0x00, 0x00, 0x6b, 0x12, 0x34, 0x56 };
- return mac[offset];
- }).umask16(0xff);
+ return mac[offset];
+ }, "mac_r").umask16(0xff);
// iop tests bits 0x04, 0x10 and 0x20
- map(0x01c0, 0x01c1).lr8("?", [this]() { return m_iop_interface; }); // maybe?
+ map(0x01c0, 0x01c1).lr8(NAME([this] () { return m_iop_interface; })); // maybe?
map(0x0200, 0x0201).rw(m_fio, FUNC(z8038_device::fifo_r<1>), FUNC(z8038_device::fifo_w<1>)).umask16(0xff);
map(0x0202, 0x0203).rw(m_fio, FUNC(z8038_device::reg_r<1>), FUNC(z8038_device::reg_w<1>)).umask16(0xff);
- map(0x0240, 0x0241).lw8("rtc", [this](u8 data) { m_rtc->write(0, data); }).umask16(0xff00);
- map(0x0280, 0x0281).lrw8("rtc",
- [this]() { return m_rtc->read(1); },
- [this](u8 data) { m_rtc->write(1, data); }).umask16(0xff00);
+ map(0x0240, 0x0241).lw8(NAME([this] (u8 data) { m_rtc->write(0, data); })).umask16(0xff00);
+ map(0x0280, 0x0281).lrw8(
+ NAME([this] () { return m_rtc->read(1); }),
+ NAME([this] (u8 data) { m_rtc->write(1, data); })).umask16(0xff00);
- map(0x02c0, 0x2c1).lw8("cpu_interface", [this](u8 data)
+ map(0x02c0, 0x2c1).lw8([this](u8 data)
{
switch (data)
{
@@ -389,15 +384,15 @@ void rx2030_state::iop_io_map(address_map &map)
// something to do with shared memory access?
//break;
}
- }).umask16(0xff);
+ }, "cpu_interface_w").umask16(0xff);
- map(0x0380, 0x0381).lw8("led", [this](u8 data) { logerror("led_w 0x%02x\n", data); }).umask16(0xff00);
+ map(0x0380, 0x0381).lw8(NAME([this](u8 data) { logerror("led_w 0x%02x\n", data); })).umask16(0xff00);
}
void rx2030_state::rx2030_map(address_map &map)
{
- map(0x02000000, 0x02000003).lrw8("iop_interface",
- [this]() { return m_iop_interface; },
+ map(0x02000000, 0x02000003).lrw8(
+ NAME([this]() { return m_iop_interface; }),
[this](u8 data)
{
switch (data)
@@ -479,7 +474,7 @@ void rx2030_state::rx2030_map(address_map &map)
LOG("iop interface command 0x%02x (%s)\n", data, machine().describe_context());
break;
}
- }
+ }, "iop_interface_w"
).umask32(0xff);
}
@@ -695,7 +690,7 @@ void rx3230_state::rx3230_map(address_map &map)
map(0x18000000, 0x1800003f).m(m_scsi, FUNC(ncr53c94_device::map)).umask32(0xff);
map(0x19000000, 0x19000003).rw(m_kbdc, FUNC(at_keyboard_controller_device::data_r), FUNC(at_keyboard_controller_device::data_w)).umask32(0xff);
map(0x19000004, 0x19000007).rw(m_kbdc, FUNC(at_keyboard_controller_device::status_r), FUNC(at_keyboard_controller_device::command_w)).umask32(0xff);
- map(0x19800000, 0x19800003).lr8("int_reg", [this]() { return m_int_reg; }).umask32(0xff);
+ map(0x19800000, 0x19800003).lr8(NAME([this]() { return m_int_reg; })).umask32(0xff);
map(0x1a000000, 0x1a000007).rw(m_net, FUNC(am7990_device::regs_r), FUNC(am7990_device::regs_w)).umask32(0xffff);
map(0x1b000000, 0x1b00001f).rw(m_scc, FUNC(z80scc_device::ab_dc_r), FUNC(z80scc_device::ab_dc_w)).umask32(0xff); // TODO: order?
@@ -713,8 +708,8 @@ void rx3230_state::rs3230_map(address_map &map)
{
rx3230_map(map);
- map(0x10000000, 0x12ffffff).lrw32("vram",
- [this](offs_t offset)
+ map(0x10000000, 0x12ffffff).lrw32(
+ NAME([this](offs_t offset)
{
u32 const ram_offset = ((offset >> 13) * 0x500) + ((offset & 0x1ff) << 2);
@@ -725,8 +720,8 @@ void rx3230_state::rs3230_map(address_map &map)
u32(m_vram->read(ram_offset | 3)) << 0;
return data;
- },
- [this](offs_t offset, u32 data)
+ }),
+ NAME([this](offs_t offset, u32 data)
{
u32 const ram_offset = ((offset >> 13) * 0x500) + ((offset & 0x1ff) << 2);
@@ -734,19 +729,19 @@ void rx3230_state::rs3230_map(address_map &map)
m_vram->write(ram_offset | 1, data >> 16);
m_vram->write(ram_offset | 2, data >> 8);
m_vram->write(ram_offset | 3, data >> 0);
- });
+ }));
map(0x14000000, 0x14000003).rw(m_ramdac, FUNC(bt459_device::address_lo_r), FUNC(bt459_device::address_lo_w)).umask32(0xff);
map(0x14080000, 0x14080003).rw(m_ramdac, FUNC(bt459_device::address_hi_r), FUNC(bt459_device::address_hi_w)).umask32(0xff);
map(0x14100000, 0x14100003).rw(m_ramdac, FUNC(bt459_device::register_r), FUNC(bt459_device::register_w)).umask32(0xff);
map(0x14180000, 0x14180003).rw(m_ramdac, FUNC(bt459_device::palette_r), FUNC(bt459_device::palette_w)).umask32(0xff);
- map(0x16080004, 0x16080007).lr8("gfx_reg", [this]()
+ map(0x16080004, 0x16080007).lr8(NAME([this] ()
{
u8 const data = (m_screen->vblank() ? GFX_V_BLANK : 0) | (m_screen->hblank() ? GFX_H_BLANK : 0);
return data;
- }).umask32(0xff); // also write 0
+ })).umask32(0xff); // also write 0
//map(0x16000004, 0x16000007).w(); // write 0x00000001
//map(0x16100000, 0x16100003).w(); // write 0xffffffff
diff --git a/src/mame/drivers/mirage.cpp b/src/mame/drivers/mirage.cpp
index 0a5fc2b446e..113582978d7 100644
--- a/src/mame/drivers/mirage.cpp
+++ b/src/mame/drivers/mirage.cpp
@@ -310,8 +310,8 @@ void miragemj_state::mirage(machine_config &config)
m_deco_tilegen->set_pf2_col_bank(0x10);
m_deco_tilegen->set_pf1_col_mask(0x0f);
m_deco_tilegen->set_pf2_col_mask(0x0f);
- m_deco_tilegen->set_bank1_callback(FUNC(miragemj_state::bank_callback), this);
- m_deco_tilegen->set_bank2_callback(FUNC(miragemj_state::bank_callback), this);
+ m_deco_tilegen->set_bank1_callback(FUNC(miragemj_state::bank_callback));
+ m_deco_tilegen->set_bank2_callback(FUNC(miragemj_state::bank_callback));
m_deco_tilegen->set_pf12_8x8_bank(0);
m_deco_tilegen->set_pf12_16x16_bank(1);
m_deco_tilegen->set_gfxdecode_tag("gfxdecode");
diff --git a/src/mame/drivers/mjsenpu.cpp b/src/mame/drivers/mjsenpu.cpp
index c0780ae7eea..697afbaa279 100644
--- a/src/mame/drivers/mjsenpu.cpp
+++ b/src/mame/drivers/mjsenpu.cpp
@@ -55,13 +55,13 @@ class mjsenpu_state : public driver_device
{
public:
mjsenpu_state(const machine_config &mconfig, device_type type, const char *tag)
- : driver_device(mconfig, type, tag),
- m_maincpu(*this, "maincpu"),
- m_oki(*this, "oki"),
- m_hopper(*this, "hopper"),
- m_mainram(*this, "mainram"),
- // m_vram(*this, "vram"),
- m_palette(*this, "palette")
+ : driver_device(mconfig, type, tag)
+ , m_maincpu(*this, "maincpu")
+ , m_oki(*this, "oki")
+ , m_hopper(*this, "hopper")
+ , m_mainram(*this, "mainram")
+ // , m_vram(*this, "vram")
+ , m_palette(*this, "palette")
{
}
@@ -538,7 +538,7 @@ void mjsenpu_state::init_mjsenpu()
(loops for 744256 instructions)
*/
// not especially effective, might be wrong.
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x23468, 0x2346b, read32_delegate(FUNC(mjsenpu_state::mjsenpu_speedup_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x23468, 0x2346b, read32_delegate(*this, FUNC(mjsenpu_state::mjsenpu_speedup_r)));
}
diff --git a/src/mame/drivers/ml20.cpp b/src/mame/drivers/ml20.cpp
index 29964942c1a..413efc7ca99 100644
--- a/src/mame/drivers/ml20.cpp
+++ b/src/mame/drivers/ml20.cpp
@@ -273,7 +273,7 @@ void ml20_state::ml20(machine_config &config)
HD44780(config, m_lcdc, 0);
m_lcdc->set_lcd_size(2, 16);
- m_lcdc->set_pixel_update_cb(FUNC(ml20_state::lcd_pixel_update), this);
+ m_lcdc->set_pixel_update_cb(FUNC(ml20_state::lcd_pixel_update));
config.set_default_layout(layout_ml20);
diff --git a/src/mame/drivers/mmm.cpp b/src/mame/drivers/mmm.cpp
index 2e2e2f9dc45..8a80b1d940c 100644
--- a/src/mame/drivers/mmm.cpp
+++ b/src/mame/drivers/mmm.cpp
@@ -17,10 +17,10 @@ class mmm_state : public driver_device
{
public:
mmm_state(const machine_config &mconfig, device_type type, const char *tag)
- : driver_device(mconfig, type, tag),
- m_maincpu(*this, "maincpu"),
- m_ctc(*this, "ctc"),
- m_inputs(*this, "IN%u", 0)
+ : driver_device(mconfig, type, tag)
+ , m_maincpu(*this, "maincpu")
+ , m_ctc(*this, "ctc")
+ , m_inputs(*this, "IN%u", 0)
{ }
void mmm(machine_config &config);
diff --git a/src/mame/drivers/model3.cpp b/src/mame/drivers/model3.cpp
index 7441d928c33..5c3becdccf5 100644
--- a/src/mame/drivers/model3.cpp
+++ b/src/mame/drivers/model3.cpp
@@ -6114,23 +6114,23 @@ void model3_state::init_model3_10()
{
interleave_vroms();
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xc0000000, 0xc00000ff, read64_delegate(FUNC(model3_state::scsi_r),this), write64_delegate(FUNC(model3_state::scsi_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xc0000000, 0xc00000ff, read64_delegate(*this, FUNC(model3_state::scsi_r)), write64_delegate(*this, FUNC(model3_state::scsi_w)));
m_maincpu->space(AS_PROGRAM).install_read_bank(0xff000000, 0xff7fffff, "bank1" );
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf0800cf8, 0xf0800cff, read64_delegate(FUNC(model3_state::mpc105_addr_r),this), write64_delegate(FUNC(model3_state::mpc105_addr_w),this));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf0c00cf8, 0xf0c00cff, read64_delegate(FUNC(model3_state::mpc105_data_r),this), write64_delegate(FUNC(model3_state::mpc105_data_w),this));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf8fff000, 0xf8fff0ff, read64_delegate(FUNC(model3_state::mpc105_reg_r),this), write64_delegate(FUNC(model3_state::mpc105_reg_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf0800cf8, 0xf0800cff, read64_delegate(*this, FUNC(model3_state::mpc105_addr_r)), write64_delegate(*this, FUNC(model3_state::mpc105_addr_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf0c00cf8, 0xf0c00cff, read64_delegate(*this, FUNC(model3_state::mpc105_data_r)), write64_delegate(*this, FUNC(model3_state::mpc105_data_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf8fff000, 0xf8fff0ff, read64_delegate(*this, FUNC(model3_state::mpc105_reg_r)), write64_delegate(*this, FUNC(model3_state::mpc105_reg_w)));
}
void model3_state::init_model3_15()
{
interleave_vroms();
- m_maincpu->space(AS_PROGRAM).install_read_bank(0xff000000, 0xff7fffff, "bank1" );
+ m_maincpu->space(AS_PROGRAM).install_read_bank(0xff000000, 0xff7fffff, "bank1");
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf0800cf8, 0xf0800cff, read64_delegate(FUNC(model3_state::mpc105_addr_r),this), write64_delegate(FUNC(model3_state::mpc105_addr_w),this));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf0c00cf8, 0xf0c00cff, read64_delegate(FUNC(model3_state::mpc105_data_r),this), write64_delegate(FUNC(model3_state::mpc105_data_w),this));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf8fff000, 0xf8fff0ff, read64_delegate(FUNC(model3_state::mpc105_reg_r),this), write64_delegate(FUNC(model3_state::mpc105_reg_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf0800cf8, 0xf0800cff, read64_delegate(*this, FUNC(model3_state::mpc105_addr_r)), write64_delegate(*this, FUNC(model3_state::mpc105_addr_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf0c00cf8, 0xf0c00cff, read64_delegate(*this, FUNC(model3_state::mpc105_data_r)), write64_delegate(*this, FUNC(model3_state::mpc105_data_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf8fff000, 0xf8fff0ff, read64_delegate(*this, FUNC(model3_state::mpc105_reg_r)), write64_delegate(*this, FUNC(model3_state::mpc105_reg_w)));
}
void model3_state::init_model3_20()
@@ -6138,11 +6138,11 @@ void model3_state::init_model3_20()
interleave_vroms();
m_maincpu->space(AS_PROGRAM).install_read_bank(0xff000000, 0xff7fffff, "bank1" );
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xc2000000, 0xc20000ff, read64_delegate(FUNC(model3_state::real3d_dma_r),this), write64_delegate(FUNC(model3_state::real3d_dma_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xc2000000, 0xc20000ff, read64_delegate(*this, FUNC(model3_state::real3d_dma_r)), write64_delegate(*this, FUNC(model3_state::real3d_dma_w)));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xfec00000, 0xfedfffff, read64_delegate(FUNC(model3_state::mpc106_addr_r),this), write64_delegate(FUNC(model3_state::mpc106_addr_w),this));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xfee00000, 0xfeffffff, read64_delegate(FUNC(model3_state::mpc106_data_r),this), write64_delegate(FUNC(model3_state::mpc106_data_w),this));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf8fff000, 0xf8fff0ff, read64_delegate(FUNC(model3_state::mpc106_reg_r),this), write64_delegate(FUNC(model3_state::mpc106_reg_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xfec00000, 0xfedfffff, read64_delegate(*this, FUNC(model3_state::mpc106_addr_r)), write64_delegate(*this, FUNC(model3_state::mpc106_addr_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xfee00000, 0xfeffffff, read64_delegate(*this, FUNC(model3_state::mpc106_data_r)), write64_delegate(*this, FUNC(model3_state::mpc106_data_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf8fff000, 0xf8fff0ff, read64_delegate(*this, FUNC(model3_state::mpc106_reg_r)), write64_delegate(*this, FUNC(model3_state::mpc106_reg_w)));
}
void model3_state::init_lostwsga()
@@ -6150,7 +6150,7 @@ void model3_state::init_lostwsga()
uint32_t *rom = (uint32_t*)memregion("user1")->base();
init_model3_15();
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xc1000000, 0xc10000ff, read64_delegate(FUNC(model3_state::scsi_r),this), write64_delegate(FUNC(model3_state::scsi_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xc1000000, 0xc10000ff, read64_delegate(*this, FUNC(model3_state::scsi_r)), write64_delegate(*this, FUNC(model3_state::scsi_w)));
rom[0x7374f0/4] = 0x38840004; /* This seems to be an actual bug in the original code */
}
@@ -6159,7 +6159,7 @@ void model3_state::init_scud()
{
init_model3_15();
/* TODO: network device at 0xC0000000 - FF */
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf9000000, 0xf90000ff, read64_delegate(FUNC(model3_state::scsi_r),this), write64_delegate(FUNC(model3_state::scsi_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf9000000, 0xf90000ff, read64_delegate(*this, FUNC(model3_state::scsi_r)), write64_delegate(*this, FUNC(model3_state::scsi_w)));
// uint32_t *rom = (uint32_t*)memregion("user1")->base();
// rom[(0x799de8^4)/4] = 0x00050208; // secret debug menu
@@ -6168,20 +6168,20 @@ void model3_state::init_scud()
void model3_state::init_scudplus()
{
init_model3_15();
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xc1000000, 0xc10000ff, read64_delegate(FUNC(model3_state::scsi_r),this), write64_delegate(FUNC(model3_state::scsi_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xc1000000, 0xc10000ff, read64_delegate(*this, FUNC(model3_state::scsi_r)), write64_delegate(*this, FUNC(model3_state::scsi_w)));
}
void model3_state::init_scudplusa()
{
init_model3_15();
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xc1000000, 0xc10000ff, read64_delegate(FUNC(model3_state::scsi_r),this), write64_delegate(FUNC(model3_state::scsi_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xc1000000, 0xc10000ff, read64_delegate(*this, FUNC(model3_state::scsi_r)), write64_delegate(*this, FUNC(model3_state::scsi_w)));
}
void model3_state::init_lemans24()
{
init_model3_15();
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xc1000000, 0xc10000ff, read64_delegate(FUNC(model3_state::scsi_r),this), write64_delegate(FUNC(model3_state::scsi_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xc1000000, 0xc10000ff, read64_delegate(*this, FUNC(model3_state::scsi_r)), write64_delegate(*this, FUNC(model3_state::scsi_w)));
// rom[(0x73fe38^4)/4] = 0x38840004; /* This seems to be an actual bug in the original code */
}
@@ -6207,13 +6207,13 @@ void model3_state::init_vs215()
interleave_vroms();
m_maincpu->space(AS_PROGRAM).install_read_bank(0xff000000, 0xff7fffff, "bank1" );
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf9000000, 0xf90000ff, read64_delegate(FUNC(model3_state::scsi_r),this), write64_delegate(FUNC(model3_state::scsi_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf9000000, 0xf90000ff, read64_delegate(*this, FUNC(model3_state::scsi_r)), write64_delegate(*this, FUNC(model3_state::scsi_w)));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf0800cf8, 0xf0800cff, read64_delegate(FUNC(model3_state::mpc106_addr_r),this), write64_delegate(FUNC(model3_state::mpc106_addr_w),this));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xfec00000, 0xfedfffff, read64_delegate(FUNC(model3_state::mpc106_addr_r),this), write64_delegate(FUNC(model3_state::mpc106_addr_w),this));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf0c00cf8, 0xf0c00cff, read64_delegate(FUNC(model3_state::mpc106_data_r),this), write64_delegate(FUNC(model3_state::mpc106_data_w),this));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xfee00000, 0xfeffffff, read64_delegate(FUNC(model3_state::mpc106_data_r),this), write64_delegate(FUNC(model3_state::mpc106_data_w),this));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf8fff000, 0xf8fff0ff, read64_delegate(FUNC(model3_state::mpc106_reg_r),this), write64_delegate(FUNC(model3_state::mpc106_reg_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf0800cf8, 0xf0800cff, read64_delegate(*this, FUNC(model3_state::mpc106_addr_r)), write64_delegate(*this, FUNC(model3_state::mpc106_addr_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xfec00000, 0xfedfffff, read64_delegate(*this, FUNC(model3_state::mpc106_addr_r)), write64_delegate(*this, FUNC(model3_state::mpc106_addr_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf0c00cf8, 0xf0c00cff, read64_delegate(*this, FUNC(model3_state::mpc106_data_r)), write64_delegate(*this, FUNC(model3_state::mpc106_data_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xfee00000, 0xfeffffff, read64_delegate(*this, FUNC(model3_state::mpc106_data_r)), write64_delegate(*this, FUNC(model3_state::mpc106_data_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf8fff000, 0xf8fff0ff, read64_delegate(*this, FUNC(model3_state::mpc106_reg_r)), write64_delegate(*this, FUNC(model3_state::mpc106_reg_w)));
}
void model3_state::init_vs29815()
@@ -6228,13 +6228,13 @@ void model3_state::init_vs29815()
interleave_vroms();
m_maincpu->space(AS_PROGRAM).install_read_bank(0xff000000, 0xff7fffff, "bank1" );
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf9000000, 0xf90000ff, read64_delegate(FUNC(model3_state::scsi_r),this), write64_delegate(FUNC(model3_state::scsi_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf9000000, 0xf90000ff, read64_delegate(*this, FUNC(model3_state::scsi_r)), write64_delegate(*this, FUNC(model3_state::scsi_w)));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf0800cf8, 0xf0800cff, read64_delegate(FUNC(model3_state::mpc106_addr_r),this), write64_delegate(FUNC(model3_state::mpc106_addr_w),this));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xfec00000, 0xfedfffff, read64_delegate(FUNC(model3_state::mpc106_addr_r),this), write64_delegate(FUNC(model3_state::mpc106_addr_w),this));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf0c00cf8, 0xf0c00cff, read64_delegate(FUNC(model3_state::mpc106_data_r),this), write64_delegate(FUNC(model3_state::mpc106_data_w),this));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xfee00000, 0xfeffffff, read64_delegate(FUNC(model3_state::mpc106_data_r),this), write64_delegate(FUNC(model3_state::mpc106_data_w),this));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf8fff000, 0xf8fff0ff, read64_delegate(FUNC(model3_state::mpc106_reg_r),this), write64_delegate(FUNC(model3_state::mpc106_reg_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf0800cf8, 0xf0800cff, read64_delegate(*this, FUNC(model3_state::mpc106_addr_r)), write64_delegate(*this, FUNC(model3_state::mpc106_addr_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xfec00000, 0xfedfffff, read64_delegate(*this, FUNC(model3_state::mpc106_addr_r)), write64_delegate(*this, FUNC(model3_state::mpc106_addr_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf0c00cf8, 0xf0c00cff, read64_delegate(*this, FUNC(model3_state::mpc106_data_r)), write64_delegate(*this, FUNC(model3_state::mpc106_data_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xfee00000, 0xfeffffff, read64_delegate(*this, FUNC(model3_state::mpc106_data_r)), write64_delegate(*this, FUNC(model3_state::mpc106_data_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf8fff000, 0xf8fff0ff, read64_delegate(*this, FUNC(model3_state::mpc106_reg_r)), write64_delegate(*this, FUNC(model3_state::mpc106_reg_w)));
}
void model3_state::init_bass()
@@ -6244,13 +6244,13 @@ void model3_state::init_bass()
interleave_vroms();
m_maincpu->space(AS_PROGRAM).install_read_bank(0xff000000, 0xff7fffff, "bank1" );
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf9000000, 0xf90000ff, read64_delegate(FUNC(model3_state::scsi_r),this), write64_delegate(FUNC(model3_state::scsi_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf9000000, 0xf90000ff, read64_delegate(*this, FUNC(model3_state::scsi_r)), write64_delegate(*this, FUNC(model3_state::scsi_w)));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf0800cf8, 0xf0800cff, read64_delegate(FUNC(model3_state::mpc106_addr_r),this), write64_delegate(FUNC(model3_state::mpc106_addr_w),this));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xfec00000, 0xfedfffff, read64_delegate(FUNC(model3_state::mpc106_addr_r),this), write64_delegate(FUNC(model3_state::mpc106_addr_w),this));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf0c00cf8, 0xf0c00cff, read64_delegate(FUNC(model3_state::mpc106_data_r),this), write64_delegate(FUNC(model3_state::mpc106_data_w),this));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xfee00000, 0xfeffffff, read64_delegate(FUNC(model3_state::mpc106_data_r),this), write64_delegate(FUNC(model3_state::mpc106_data_w),this));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf8fff000, 0xf8fff0ff, read64_delegate(FUNC(model3_state::mpc106_reg_r),this), write64_delegate(FUNC(model3_state::mpc106_reg_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf0800cf8, 0xf0800cff, read64_delegate(*this, FUNC(model3_state::mpc106_addr_r)), write64_delegate(*this, FUNC(model3_state::mpc106_addr_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xfec00000, 0xfedfffff, read64_delegate(*this, FUNC(model3_state::mpc106_addr_r)), write64_delegate(*this, FUNC(model3_state::mpc106_addr_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf0c00cf8, 0xf0c00cff, read64_delegate(*this, FUNC(model3_state::mpc106_data_r)), write64_delegate(*this, FUNC(model3_state::mpc106_data_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xfee00000, 0xfeffffff, read64_delegate(*this, FUNC(model3_state::mpc106_data_r)), write64_delegate(*this, FUNC(model3_state::mpc106_data_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf8fff000, 0xf8fff0ff, read64_delegate(*this, FUNC(model3_state::mpc106_reg_r)), write64_delegate(*this, FUNC(model3_state::mpc106_reg_w)));
}
void model3_state::init_getbass()
@@ -6258,11 +6258,11 @@ void model3_state::init_getbass()
interleave_vroms();
m_maincpu->space(AS_PROGRAM).install_read_bank(0xff000000, 0xff7fffff, "bank1" );
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf9000000, 0xf90000ff, read64_delegate(FUNC(model3_state::scsi_r),this), write64_delegate(FUNC(model3_state::scsi_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf9000000, 0xf90000ff, read64_delegate(*this, FUNC(model3_state::scsi_r)), write64_delegate(*this, FUNC(model3_state::scsi_w)));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf0800cf8, 0xf0800cff, read64_delegate(FUNC(model3_state::mpc105_addr_r),this), write64_delegate(FUNC(model3_state::mpc105_addr_w),this));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf0c00cf8, 0xf0c00cff, read64_delegate(FUNC(model3_state::mpc105_data_r),this), write64_delegate(FUNC(model3_state::mpc105_data_w),this));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf8fff000, 0xf8fff0ff, read64_delegate(FUNC(model3_state::mpc105_reg_r),this), write64_delegate(FUNC(model3_state::mpc105_reg_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf0800cf8, 0xf0800cff, read64_delegate(*this, FUNC(model3_state::mpc105_addr_r)), write64_delegate(*this, FUNC(model3_state::mpc105_addr_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf0c00cf8, 0xf0c00cff, read64_delegate(*this, FUNC(model3_state::mpc105_data_r)), write64_delegate(*this, FUNC(model3_state::mpc105_data_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf8fff000, 0xf8fff0ff, read64_delegate(*this, FUNC(model3_state::mpc105_reg_r)), write64_delegate(*this, FUNC(model3_state::mpc105_reg_w)));
}
void model3_state::init_vs2()
@@ -6353,8 +6353,8 @@ void model3_state::init_daytona2()
// uint32_t *rom = (uint32_t*)memregion("user1")->base();
init_model3_20();
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xc3800000, 0xc3800007, write64_delegate(FUNC(model3_state::daytona2_rombank_w),this));
- m_maincpu->space(AS_PROGRAM).install_read_bank(0xc3000000, 0xc37fffff, "bank2" );
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xc3800000, 0xc3800007, write64_delegate(*this, FUNC(model3_state::daytona2_rombank_w)));
+ m_maincpu->space(AS_PROGRAM).install_read_bank(0xc3000000, 0xc37fffff, "bank2");
//rom[(0x68468c^4)/4] = 0x60000000;
//rom[(0x6063c4^4)/4] = 0x60000000;
@@ -6367,8 +6367,8 @@ void model3_state::init_dayto2pe()
// uint32_t *rom = (uint32_t*)memregion("user1")->base();
init_model3_20();
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xc3800000, 0xc3800007, write64_delegate(FUNC(model3_state::daytona2_rombank_w),this));
- m_maincpu->space(AS_PROGRAM).install_read_bank(0xc3000000, 0xc37fffff, "bank2" );
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xc3800000, 0xc3800007, write64_delegate(*this, FUNC(model3_state::daytona2_rombank_w)));
+ m_maincpu->space(AS_PROGRAM).install_read_bank(0xc3000000, 0xc37fffff, "bank2");
// rom[(0x606784^4)/4] = 0x60000000;
// rom[(0x69a3fc^4)/4] = 0x60000000; // jump to encrypted code
diff --git a/src/mame/drivers/mogura.cpp b/src/mame/drivers/mogura.cpp
index 75ce2cffd23..cf81571882e 100644
--- a/src/mame/drivers/mogura.cpp
+++ b/src/mame/drivers/mogura.cpp
@@ -97,7 +97,7 @@ TILE_GET_INFO_MEMBER(mogura_state::get_mogura_tile_info)
void mogura_state::video_start()
{
m_gfxdecode->gfx(0)->set_source(m_gfxram);
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mogura_state::get_mogura_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mogura_state::get_mogura_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
}
uint32_t mogura_state::screen_update_mogura(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
diff --git a/src/mame/drivers/mole.cpp b/src/mame/drivers/mole.cpp
index a217508e49d..7726f679f21 100644
--- a/src/mame/drivers/mole.cpp
+++ b/src/mame/drivers/mole.cpp
@@ -110,7 +110,7 @@ TILE_GET_INFO_MEMBER(mole_state::get_bg_tile_info)
void mole_state::video_start()
{
memset(m_tileram, 0, sizeof(m_tileram));
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mole_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 40, 25);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mole_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 40, 25);
save_item(NAME(m_tileram));
}
diff --git a/src/mame/drivers/monon_color.cpp b/src/mame/drivers/monon_color.cpp
index 14952bd45e2..a1017861101 100644
--- a/src/mame/drivers/monon_color.cpp
+++ b/src/mame/drivers/monon_color.cpp
@@ -154,7 +154,7 @@ void monon_color_state::monon_color(machine_config &config)
generic_cartslot_device &cartslot(GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "monon_color_cart", "bin"));
cartslot.set_width(GENERIC_ROM8_WIDTH);
- cartslot.set_device_load(FUNC(monon_color_state::cart_load), this);
+ cartslot.set_device_load(FUNC(monon_color_state::cart_load));
cartslot.set_must_be_loaded(true);
/* software lists */
diff --git a/src/mame/drivers/moo.cpp b/src/mame/drivers/moo.cpp
index a19bcf5611c..92b7e399270 100644
--- a/src/mame/drivers/moo.cpp
+++ b/src/mame/drivers/moo.cpp
@@ -528,12 +528,12 @@ void moo_state::moo(machine_config &config)
MCFG_VIDEO_START_OVERRIDE(moo_state,moo)
K053246(config, m_k053246, 0);
- m_k053246->set_sprite_callback(FUNC(moo_state::sprite_callback), this);
+ m_k053246->set_sprite_callback(FUNC(moo_state::sprite_callback));
m_k053246->set_config(NORMAL_PLANE_ORDER, -48+1, 23);
m_k053246->set_palette("palette");
K056832(config, m_k056832, 0);
- m_k056832->set_tile_callback(FUNC(moo_state::tile_callback), this);
+ m_k056832->set_tile_callback(FUNC(moo_state::tile_callback));
m_k056832->set_config(K056832_BPP_4, 1, 0);
m_k056832->set_palette("palette");
@@ -582,12 +582,12 @@ void moo_state::moobl(machine_config &config)
MCFG_VIDEO_START_OVERRIDE(moo_state,moo)
K053246(config, m_k053246, 0);
- m_k053246->set_sprite_callback(FUNC(moo_state::sprite_callback), this);
+ m_k053246->set_sprite_callback(FUNC(moo_state::sprite_callback));
m_k053246->set_config(NORMAL_PLANE_ORDER, -48+1, 23);
m_k053246->set_palette("palette");
K056832(config, m_k056832, 0);
- m_k056832->set_tile_callback(FUNC(moo_state::tile_callback), this);
+ m_k056832->set_tile_callback(FUNC(moo_state::tile_callback));
m_k056832->set_config(K056832_BPP_4, 1, 0);
m_k056832->set_palette("palette");
diff --git a/src/mame/drivers/mpu12wbk.cpp b/src/mame/drivers/mpu12wbk.cpp
index ba6be725812..30ffdd1875b 100644
--- a/src/mame/drivers/mpu12wbk.cpp
+++ b/src/mame/drivers/mpu12wbk.cpp
@@ -290,7 +290,7 @@ TILE_GET_INFO_MEMBER(mpu12wbk_state::get_bg_tile_info)
void mpu12wbk_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mpu12wbk_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mpu12wbk_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
diff --git a/src/mame/drivers/mpu3.cpp b/src/mame/drivers/mpu3.cpp
index 010b9076c88..484ca9bc24a 100644
--- a/src/mame/drivers/mpu3.cpp
+++ b/src/mame/drivers/mpu3.cpp
@@ -904,10 +904,9 @@ void mpu3_state::init_m3hprvpr()
{
address_space &space = m_maincpu->space(AS_PROGRAM);
- m_disp_func=METER_PORT;
+ m_disp_func = METER_PORT;
m_current_chr_table = hprvpr_data;
- space.install_readwrite_handler(0xc000, 0xc000 , read8_delegate(FUNC(mpu3_state::characteriser_r), this),write8_delegate(FUNC(mpu3_state::characteriser_w), this));
-
+ space.install_readwrite_handler(0xc000, 0xc000, read8_delegate(*this, FUNC(mpu3_state::characteriser_r)), write8_delegate(*this, FUNC(mpu3_state::characteriser_w)));
}
ROM_START( m3tst )
diff --git a/src/mame/drivers/mpu4vid.cpp b/src/mame/drivers/mpu4vid.cpp
index 6f025bbf86e..96bc9aa624c 100644
--- a/src/mame/drivers/mpu4vid.cpp
+++ b/src/mame/drivers/mpu4vid.cpp
@@ -1161,7 +1161,7 @@ MACHINE_START_MEMBER(mpu4vid_state,mpu4_vid)
m_link7a_connected = 1;
/* Hook the reset line */
- m_videocpu->set_reset_callback(write_line_delegate(FUNC(mpu4vid_state::mpu_video_reset),this));
+ m_videocpu->set_reset_callback(FUNC(mpu4vid_state::mpu_video_reset));
}
MACHINE_RESET_MEMBER(mpu4vid_state,mpu4_vid)
diff --git a/src/mame/drivers/mtx.cpp b/src/mame/drivers/mtx.cpp
index efdf393227b..bc802a49a75 100644
--- a/src/mame/drivers/mtx.cpp
+++ b/src/mame/drivers/mtx.cpp
@@ -322,8 +322,8 @@ void mtx_state::mtx512(machine_config &config)
output_latch_device &cent_data_out(OUTPUT_LATCH(config, "cent_data_out"));
m_centronics->set_output_latch(cent_data_out);
- SNAPSHOT(config, "snapshot", "mtx", attotime::from_seconds(1)).set_load_callback(FUNC(mtx_state::snapshot_cb), this);
- QUICKLOAD(config, "quickload", "run", attotime::from_seconds(1)).set_load_callback(FUNC(mtx_state::quickload_cb), this);
+ SNAPSHOT(config, "snapshot", "mtx", attotime::from_seconds(1)).set_load_callback(FUNC(mtx_state::snapshot_cb));
+ QUICKLOAD(config, "quickload", "run", attotime::from_seconds(1)).set_load_callback(FUNC(mtx_state::quickload_cb));
CASSETTE(config, m_cassette);
m_cassette->set_default_state(CASSETTE_PLAY | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_ENABLED);
@@ -336,7 +336,7 @@ void mtx_state::mtx512(machine_config &config)
/* rom extension board */
GENERIC_SOCKET(config, m_extrom, generic_plain_slot, "mtx_rom", "bin,rom");
- m_extrom->set_device_load(FUNC(mtx_state::extrom_load), this);
+ m_extrom->set_device_load(FUNC(mtx_state::extrom_load));
/* rs232 board with disk drive bus */
MTX_EXP_SLOT(config, m_exp, mtx_expansion_devices, nullptr);
@@ -348,7 +348,7 @@ void mtx_state::mtx512(machine_config &config)
/* cartridge slot */
GENERIC_CARTSLOT(config, m_rompak, generic_plain_slot, "mtx_cart", "bin,rom");
- m_rompak->set_device_load(FUNC(mtx_state::rompak_load), this);
+ m_rompak->set_device_load(FUNC(mtx_state::rompak_load));
/* software lists */
SOFTWARE_LIST(config, "cass_list").set_original("mtx_cass");
diff --git a/src/mame/drivers/multfish.cpp b/src/mame/drivers/multfish.cpp
index 829252997f9..943a0e83b44 100644
--- a/src/mame/drivers/multfish.cpp
+++ b/src/mame/drivers/multfish.cpp
@@ -215,10 +215,10 @@ void igrosoft_gamble_state::video_start()
memset(m_vid,0x00,sizeof(m_vid));
save_item(NAME(m_vid));
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(igrosoft_gamble_state::get_igrosoft_gamble_tile_info),this),TILEMAP_SCAN_ROWS,16,16, 64, 32);
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(igrosoft_gamble_state::get_igrosoft_gamble_tile_info)), TILEMAP_SCAN_ROWS, 16,16, 64, 32);
m_tilemap->set_transparent_pen(255);
- m_reel_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(igrosoft_gamble_state::get_igrosoft_gamble_reel_tile_info),this),TILEMAP_SCAN_ROWS,16,16, 64, 64);
+ m_reel_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(igrosoft_gamble_state::get_igrosoft_gamble_reel_tile_info)), TILEMAP_SCAN_ROWS, 16,16, 64, 64);
m_reel_tilemap->set_transparent_pen(255);
m_reel_tilemap->set_scroll_cols(64);
}
diff --git a/src/mame/drivers/multi16.cpp b/src/mame/drivers/multi16.cpp
index 9790814401b..636261155f6 100644
--- a/src/mame/drivers/multi16.cpp
+++ b/src/mame/drivers/multi16.cpp
@@ -173,7 +173,7 @@ void multi16_state::multi16(machine_config &config)
m_crtc->set_screen("screen");
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8);
- m_crtc->set_update_row_callback(FUNC(multi16_state::crtc_update_row), this);
+ m_crtc->set_update_row_callback(FUNC(multi16_state::crtc_update_row));
// floppy
MB8866(config, m_fdc, 2000000);
diff --git a/src/mame/drivers/multi8.cpp b/src/mame/drivers/multi8.cpp
index 381f6d01bb5..0c164bac5d6 100644
--- a/src/mame/drivers/multi8.cpp
+++ b/src/mame/drivers/multi8.cpp
@@ -646,7 +646,7 @@ void multi8_state::multi8(machine_config &config)
m_crtc->set_screen("screen");
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8);
- m_crtc->set_update_row_callback(FUNC(multi8_state::crtc_update_row), this);
+ m_crtc->set_update_row_callback(FUNC(multi8_state::crtc_update_row));
I8255(config, m_ppi);
m_ppi->in_pa_callback().set(FUNC(multi8_state::porta_r));
diff --git a/src/mame/drivers/multigam.cpp b/src/mame/drivers/multigam.cpp
index a8617843474..cac9ad1c0e8 100644
--- a/src/mame/drivers/multigam.cpp
+++ b/src/mame/drivers/multigam.cpp
@@ -599,11 +599,11 @@ WRITE8_MEMBER(multigam_state::multigam3_mmc3_rom_switch_w)
case 0x6000: /* disable irqs */
m_maincpu->set_input_line(M6502_IRQ_LINE, CLEAR_LINE);
- m_ppu->set_scanline_callback(ppu2c0x_device::scanline_delegate());
+ m_ppu->set_scanline_callback(nullptr);
break;
case 0x6001: /* enable irqs */
- m_ppu->set_scanline_callback(ppu2c0x_device::scanline_delegate(FUNC(multigam_state::multigam3_mmc3_scanline_cb),this));
+ m_ppu->set_scanline_callback(*this, FUNC(multigam_state::multigam3_mmc3_scanline_cb));
break;
}
}
@@ -619,7 +619,7 @@ void multigam_state::multigam_init_mmc3(uint8_t *prg_base, int prg_size, int chr
memcpy(&dst[0x8000], prg_base + (prg_size - 0x4000), 0x4000);
memcpy(&dst[0xc000], prg_base + (prg_size - 0x4000), 0x4000);
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(FUNC(multigam_state::multigam3_mmc3_rom_switch_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(*this, FUNC(multigam_state::multigam3_mmc3_rom_switch_w)));
m_multigam3_mmc3_banks[0] = 0x1e;
m_multigam3_mmc3_banks[1] = 0x1f;
@@ -664,7 +664,7 @@ WRITE8_MEMBER(multigam_state::multigm3_switch_prg_rom)
}
else
{
- space.install_write_handler(0x8000, 0xffff, write8_delegate(FUNC(multigam_state::multigm3_mapper2_w),this) );
+ space.install_write_handler(0x8000, 0xffff, write8_delegate(*this, FUNC(multigam_state::multigm3_mapper2_w)) );
membank("bank10")->set_base(memregion("maincpu")->base() + 0x6000);
}
@@ -725,11 +725,11 @@ void multigam_state::multigam_init_mapper02(uint8_t* prg_base, int prg_size)
{
uint8_t* mem = memregion("maincpu")->base();
memcpy(mem + 0x8000, prg_base + prg_size - 0x8000, 0x8000);
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(FUNC(multigam_state::multigam3_mapper02_rom_switch_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(*this, FUNC(multigam_state::multigam3_mapper02_rom_switch_w)));
m_mapper02_prg_base = prg_base;
m_mapper02_prg_size = prg_size;
- m_ppu->set_scanline_callback(ppu2c0x_device::scanline_delegate());
+ m_ppu->set_scanline_callback(nullptr);
}
/******************************************************
@@ -878,7 +878,7 @@ void multigam_state::multigam_init_mmc1(uint8_t *prg_base, int prg_size, int chr
memcpy(&dst[0x8000], prg_base + (prg_size - 0x8000), 0x8000);
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(FUNC(multigam_state::mmc1_rom_switch_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(*this, FUNC(multigam_state::mmc1_rom_switch_w)));
m_mmc1_reg_write_enable = 1;
m_mmc1_rom_mask = (prg_size / 0x4000) - 1;
@@ -886,7 +886,7 @@ void multigam_state::multigam_init_mmc1(uint8_t *prg_base, int prg_size, int chr
m_mmc1_prg_size = prg_size;
m_mmc1_chr_bank_base = chr_bank_base;
- m_ppu->set_scanline_callback(ppu2c0x_device::scanline_delegate());
+ m_ppu->set_scanline_callback(nullptr);
}
@@ -949,7 +949,7 @@ void multigam_state::supergm3_set_bank()
// title screen
memcpy(mem + 0x8000, mem + 0x18000, 0x8000);
membank("bank10")->set_base(mem + 0x6000);
- m_ppu->set_scanline_callback(ppu2c0x_device::scanline_delegate());
+ m_ppu->set_scanline_callback(nullptr);
}
else if ((m_supergm3_prg_bank & 0x40) == 0)
{
@@ -1168,7 +1168,7 @@ void multigam_state::machine_start()
m_nt_page[2] = m_nt_ram.get() + 0x800;
m_nt_page[3] = m_nt_ram.get() + 0xc00;
- m_ppu->space(AS_PROGRAM).install_readwrite_handler(0x2000, 0x3eff, read8_delegate(FUNC(multigam_state::multigam_nt_r),this), write8_delegate(FUNC(multigam_state::multigam_nt_w),this));
+ m_ppu->space(AS_PROGRAM).install_readwrite_handler(0x2000, 0x3eff, read8_delegate(*this, FUNC(multigam_state::multigam_nt_r)), write8_delegate(*this, FUNC(multigam_state::multigam_nt_w)));
m_ppu->space(AS_PROGRAM).install_read_bank(0x0000, 0x1fff, "bank1");
membank("bank1")->set_base(memregion("gfx1")->base());
}
@@ -1181,7 +1181,7 @@ MACHINE_START_MEMBER(multigam_state,multigm3)
m_nt_page[2] = m_nt_ram.get() + 0x800;
m_nt_page[3] = m_nt_ram.get() + 0xc00;
- m_ppu->space(AS_PROGRAM).install_readwrite_handler(0x2000, 0x3eff, read8_delegate(FUNC(multigam_state::multigam_nt_r),this), write8_delegate(FUNC(multigam_state::multigam_nt_w),this));
+ m_ppu->space(AS_PROGRAM).install_readwrite_handler(0x2000, 0x3eff, read8_delegate(*this, FUNC(multigam_state::multigam_nt_r)), write8_delegate(*this, FUNC(multigam_state::multigam_nt_w)));
m_ppu->space(AS_PROGRAM).install_read_bank(0x0000, 0x03ff, "bank2");
m_ppu->space(AS_PROGRAM).install_read_bank(0x0400, 0x07ff, "bank3");
@@ -1203,7 +1203,7 @@ MACHINE_START_MEMBER(multigam_state,supergm3)
m_nt_page[2] = m_nt_ram.get() + 0x800;
m_nt_page[3] = m_nt_ram.get() + 0xc00;
- m_ppu->space(AS_PROGRAM).install_readwrite_handler(0x2000, 0x3eff, read8_delegate(FUNC(multigam_state::multigam_nt_r),this), write8_delegate(FUNC(multigam_state::multigam_nt_w),this));
+ m_ppu->space(AS_PROGRAM).install_readwrite_handler(0x2000, 0x3eff, read8_delegate(*this, FUNC(multigam_state::multigam_nt_r)), write8_delegate(*this, FUNC(multigam_state::multigam_nt_w)));
m_vram = std::make_unique<uint8_t[]>(0x2000);
m_multigmc_mmc3_6000_ram = std::make_unique<uint8_t[]>(0x2000);
diff --git a/src/mame/drivers/munchmo.cpp b/src/mame/drivers/munchmo.cpp
index 48ca682dd5f..4910a9c2a98 100644
--- a/src/mame/drivers/munchmo.cpp
+++ b/src/mame/drivers/munchmo.cpp
@@ -102,7 +102,7 @@ void munchmo_state::mnchmobl_map(address_map &map)
map(0xbaba, 0xbaba).nopw(); /* ? */
map(0xbc00, 0xbc7f).ram().share(m_status_vram);
map(0xbe00, 0xbe00).w(m_soundlatch, FUNC(generic_latch_8_device::write));
- map(0xbe01, 0xbe01).select(0x0070).lw8("mainlatch_w", [this](offs_t offset, u8 data){ m_mainlatch->write_d0(offset >> 4, data); });
+ map(0xbe01, 0xbe01).select(0x0070).lw8(NAME([this] (offs_t offset, u8 data){ m_mainlatch->write_d0(offset >> 4, data); }));
map(0xbe02, 0xbe02).portr("DSW1");
map(0xbe03, 0xbe03).portr("DSW2");
map(0xbf00, 0xbf00).w(FUNC(munchmo_state::nmi_ack_w)); // CNI 1-8C
diff --git a/src/mame/drivers/mx2178.cpp b/src/mame/drivers/mx2178.cpp
index 18b06fb7f92..50deae97975 100644
--- a/src/mame/drivers/mx2178.cpp
+++ b/src/mame/drivers/mx2178.cpp
@@ -153,7 +153,7 @@ void mx2178_state::mx2178(machine_config &config)
crtc.set_screen("screen");
crtc.set_show_border_area(false);
crtc.set_char_width(8);
- crtc.set_update_row_callback(FUNC(mx2178_state::crtc_update_row), this);
+ crtc.set_update_row_callback(FUNC(mx2178_state::crtc_update_row));
crtc.out_vsync_callback().set_inputline(m_maincpu, INPUT_LINE_NMI);
clock_device &acia_clock(CLOCK(config, "acia_clock", XTAL(18'869'600) / 30));
diff --git a/src/mame/drivers/myb3k.cpp b/src/mame/drivers/myb3k.cpp
index 6eb7264e9bf..3c611cc0ec9 100644
--- a/src/mame/drivers/myb3k.cpp
+++ b/src/mame/drivers/myb3k.cpp
@@ -985,7 +985,7 @@ void myb3k_state::myb3k(machine_config &config)
m_crtc->set_screen(m_screen);
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8);
- m_crtc->set_update_row_callback(FUNC(myb3k_state::crtc_update_row), this);
+ m_crtc->set_update_row_callback(FUNC(myb3k_state::crtc_update_row));
/* ISA8+ Expansion bus */
ISA8(config, m_isabus, 0);
diff --git a/src/mame/drivers/mycom.cpp b/src/mame/drivers/mycom.cpp
index 87097a45524..e98a1de632e 100644
--- a/src/mame/drivers/mycom.cpp
+++ b/src/mame/drivers/mycom.cpp
@@ -556,7 +556,7 @@ void mycom_state::mycom(machine_config &config)
m_crtc->set_screen("screen");
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8);
- m_crtc->set_update_row_callback(FUNC(mycom_state::crtc_update_row), this);
+ m_crtc->set_update_row_callback(FUNC(mycom_state::crtc_update_row));
SPEAKER(config, "mono").front_center();
SN76489(config, m_audio, 10_MHz_XTAL / 4).add_route(ALL_OUTPUTS, "mono", 1.50);
diff --git a/src/mame/drivers/mystwarr.cpp b/src/mame/drivers/mystwarr.cpp
index 273a64acab4..e06b365278c 100644
--- a/src/mame/drivers/mystwarr.cpp
+++ b/src/mame/drivers/mystwarr.cpp
@@ -957,14 +957,14 @@ void mystwarr_state::mystwarr(machine_config &config)
m_palette->enable_hilights();
K056832(config, m_k056832, 0);
- m_k056832->set_tile_callback(FUNC(mystwarr_state::mystwarr_tile_callback), this);
+ m_k056832->set_tile_callback(FUNC(mystwarr_state::mystwarr_tile_callback));
m_k056832->set_config(K056832_BPP_5, 0, 0);
m_k056832->set_palette(m_palette);
K055555(config, m_k055555, 0);
K055673(config, m_k055673, 0);
- m_k055673->set_sprite_callback(FUNC(mystwarr_state::mystwarr_sprite_callback), this);
+ m_k055673->set_sprite_callback(FUNC(mystwarr_state::mystwarr_sprite_callback));
m_k055673->set_config(K055673_LAYOUT_GX, -48, -24);
m_k055673->set_palette(m_palette);
@@ -1012,9 +1012,9 @@ void mystwarr_state::viostorm(machine_config &config)
m_screen->set_size(64*8, 32*8);
m_screen->set_visarea(40, 40+384-1, 16, 16+224-1);
- m_k056832->set_tile_callback(FUNC(mystwarr_state::game4bpp_tile_callback), this);
+ m_k056832->set_tile_callback(FUNC(mystwarr_state::game4bpp_tile_callback));
- m_k055673->set_sprite_callback(FUNC(mystwarr_state::metamrph_sprite_callback), this);
+ m_k055673->set_sprite_callback(FUNC(mystwarr_state::metamrph_sprite_callback));
m_k055673->set_config(K055673_LAYOUT_RNG, -62, -23);
}
@@ -1039,9 +1039,9 @@ void mystwarr_state::metamrph(machine_config &config)
m_screen->set_size(64*8, 32*8);
m_screen->set_visarea(24, 24+288-1, 15, 15+224-1);
- m_k056832->set_tile_callback(FUNC(mystwarr_state::game4bpp_tile_callback), this);
+ m_k056832->set_tile_callback(FUNC(mystwarr_state::game4bpp_tile_callback));
- m_k055673->set_sprite_callback(FUNC(mystwarr_state::metamrph_sprite_callback), this);
+ m_k055673->set_sprite_callback(FUNC(mystwarr_state::metamrph_sprite_callback));
m_k055673->set_config(K055673_LAYOUT_RNG, -51, -24);
}
@@ -1068,9 +1068,9 @@ void mystwarr_state::dadandrn(machine_config &config)
m_screen->set_size(64*8, 32*8);
m_screen->set_visarea(24, 24+288-1, 17, 17+224-1);
- m_k056832->set_tile_callback(FUNC(mystwarr_state::game5bpp_tile_callback), this);
+ m_k056832->set_tile_callback(FUNC(mystwarr_state::game5bpp_tile_callback));
- m_k055673->set_sprite_callback(FUNC(mystwarr_state::gaiapols_sprite_callback), this);
+ m_k055673->set_sprite_callback(FUNC(mystwarr_state::gaiapols_sprite_callback));
m_k055673->set_config(K055673_LAYOUT_GX, -42, -22);
}
@@ -1100,9 +1100,9 @@ void mystwarr_state::gaiapols(machine_config &config)
m_screen->set_size(64*8, 32*8);
m_screen->set_visarea(40, 40+376-1, 16, 16+224-1);
- m_k056832->set_tile_callback(FUNC(mystwarr_state::game4bpp_tile_callback), this);
+ m_k056832->set_tile_callback(FUNC(mystwarr_state::game4bpp_tile_callback));
- m_k055673->set_sprite_callback(FUNC(mystwarr_state::gaiapols_sprite_callback), this);
+ m_k055673->set_sprite_callback(FUNC(mystwarr_state::gaiapols_sprite_callback));
m_k055673->set_config(K055673_LAYOUT_RNG, -61, -22); // stage2 brick walls
}
@@ -1129,9 +1129,9 @@ void mystwarr_state::martchmp(machine_config &config)
m_screen->set_size(64*8, 32*8);
m_screen->set_visarea(32, 32+384-1, 16, 16+224-1);
- m_k056832->set_tile_callback(FUNC(mystwarr_state::game5bpp_tile_callback), this);
+ m_k056832->set_tile_callback(FUNC(mystwarr_state::game5bpp_tile_callback));
- m_k055673->set_sprite_callback(FUNC(mystwarr_state::martchmp_sprite_callback), this);
+ m_k055673->set_sprite_callback(FUNC(mystwarr_state::martchmp_sprite_callback));
m_k055673->set_config(K055673_LAYOUT_GX, -58, -23);
config.device_remove("k054539_2");
diff --git a/src/mame/drivers/myvision.cpp b/src/mame/drivers/myvision.cpp
index 74459784666..f3dfb32c807 100644
--- a/src/mame/drivers/myvision.cpp
+++ b/src/mame/drivers/myvision.cpp
@@ -140,7 +140,7 @@ INPUT_PORTS_END
void myvision_state::machine_start()
{
if (m_cart->exists())
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x0000, 0x5fff, read8sm_delegate(FUNC(generic_slot_device::read_rom),(generic_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x0000, 0x5fff, read8sm_delegate(*m_cart, FUNC(generic_slot_device::read_rom)));
save_item(NAME(m_column));
}
@@ -239,7 +239,7 @@ void myvision_state::myvision(machine_config &config)
/* cartridge */
generic_cartslot_device &cartslot(GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "myvision_cart"));
- cartslot.set_device_load(FUNC(myvision_state::cart_load), this);
+ cartslot.set_device_load(FUNC(myvision_state::cart_load));
//cartslot.set_must_be_loaded(true);
/* software lists */
diff --git a/src/mame/drivers/n64.cpp b/src/mame/drivers/n64.cpp
index 83f5198a6a9..27c787f774b 100644
--- a/src/mame/drivers/n64.cpp
+++ b/src/mame/drivers/n64.cpp
@@ -469,7 +469,7 @@ void n64_mess_state::n64(machine_config &config)
/* cartridge */
generic_cartslot_device &cartslot(GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "n64_cart", "v64,z64,rom,n64,bin"));
cartslot.set_must_be_loaded(true);
- cartslot.set_device_load(FUNC(n64_mess_state::cart_load), this);
+ cartslot.set_device_load(FUNC(n64_mess_state::cart_load));
/* software lists */
SOFTWARE_LIST(config, "cart_list").set_original("n64");
@@ -484,11 +484,11 @@ void n64_mess_state::n64dd(machine_config &config)
generic_cartslot_device &cartslot(GENERIC_CARTSLOT(config.replace(), "cartslot", generic_plain_slot, "n64_cart"));
cartslot.set_extensions("v64,z64,rom,n64,bin");
- cartslot.set_device_load(FUNC(n64_mess_state::cart_load), this);
+ cartslot.set_device_load(FUNC(n64_mess_state::cart_load));
harddisk_image_device &hdd(HARDDISK(config, "n64disk"));
- hdd.set_device_load(FUNC(n64_mess_state::load_n64dd), this);
- hdd.set_device_unload(FUNC(n64_mess_state::unload_n64dd), this);
+ hdd.set_device_load(FUNC(n64_mess_state::load_n64dd));
+ hdd.set_device_unload(FUNC(n64_mess_state::unload_n64dd));
hdd.set_interface("n64dd_disk");
SOFTWARE_LIST(config, "dd_list").set_original("n64dd");
diff --git a/src/mame/drivers/namcona1.cpp b/src/mame/drivers/namcona1.cpp
index 2ea2c8b5a0b..3e939215503 100644
--- a/src/mame/drivers/namcona1.cpp
+++ b/src/mame/drivers/namcona1.cpp
@@ -643,9 +643,9 @@ void namcona1_state::na1mcu_shared_w(offs_t offset, u16 data, u16 mem_mask)
void namcona1_state::namcona1_mcu_map(address_map &map)
{
map(0x000800, 0x000fff).rw(FUNC(namcona1_state::mcu_mailbox_r), FUNC(namcona1_state::mcu_mailbox_w_mcu)); // "Mailslot" communications ports
- map(0x001000, 0x001fff).lrw8("c219_rw",
- [this](offs_t offset) { return m_c140->c140_r(offset ^ 1)/* need ^ 1 because endian issue */; },
- [this](offs_t offset, u8 data) { m_c140->c140_w(offset ^ 1, data); }); // C140-alike sound chip
+ map(0x001000, 0x001fff).lrw8(
+ NAME([this](offs_t offset) { return m_c140->c140_r(offset ^ 1)/* need ^ 1 because endian issue */; }),
+ NAME([this](offs_t offset, u8 data) { m_c140->c140_w(offset ^ 1, data); })); // C140-alike sound chip
map(0x002000, 0x002fff).rw(FUNC(namcona1_state::na1mcu_shared_r), FUNC(namcona1_state::na1mcu_shared_w)); // mirror of first page of shared work RAM
map(0x003000, 0x00afff).ram(); // there is a 32k RAM chip according to CGFM
map(0x200000, 0x27ffff).rw(FUNC(namcona1_state::na1mcu_shared_r), FUNC(namcona1_state::na1mcu_shared_w)); // shared work RAM
diff --git a/src/mame/drivers/namcos11.cpp b/src/mame/drivers/namcos11.cpp
index 3b8bea6e11d..de2b9632302 100644
--- a/src/mame/drivers/namcos11.cpp
+++ b/src/mame/drivers/namcos11.cpp
@@ -560,7 +560,7 @@ void namcos11_state::driver_start()
{
m_su_83 = 0;
save_item( NAME(m_su_83) );
- m_mcu->space(AS_PROGRAM).install_readwrite_handler(0x82, 0x83, read16_delegate(FUNC(namcos11_state::c76_speedup_r),this), write16_delegate(FUNC(namcos11_state::c76_speedup_w),this));
+ m_mcu->space(AS_PROGRAM).install_readwrite_handler(0x82, 0x83, read16_delegate(*this, FUNC(namcos11_state::c76_speedup_r)), write16_delegate(*this, FUNC(namcos11_state::c76_speedup_w)));
}
if( m_bankedroms != nullptr )
diff --git a/src/mame/drivers/namcos22.cpp b/src/mame/drivers/namcos22.cpp
index fd5d1e81ef5..c354fc475f5 100644
--- a/src/mame/drivers/namcos22.cpp
+++ b/src/mame/drivers/namcos22.cpp
@@ -5640,21 +5640,21 @@ READ16_MEMBER(namcos22_state::mcuc74_speedup_r)
void namcos22_state::install_c74_speedup()
{
if (MCU_SPEEDUP)
- m_mcu->space(AS_PROGRAM).install_readwrite_handler(0x80, 0x81, read16_delegate(FUNC(namcos22_state::mcuc74_speedup_r),this), write16_delegate(FUNC(namcos22_state::mcu_speedup_w),this));
+ m_mcu->space(AS_PROGRAM).install_readwrite_handler(0x80, 0x81, read16_delegate(*this, FUNC(namcos22_state::mcuc74_speedup_r)), write16_delegate(*this, FUNC(namcos22_state::mcu_speedup_w)));
}
void namcos22s_state::install_130_speedup()
{
// install speedup cheat for 1.20/1.30 MCU BIOS
if (MCU_SPEEDUP)
- m_mcu->space(AS_PROGRAM).install_readwrite_handler(0x82, 0x83, read16_delegate(FUNC(namcos22s_state::mcu130_speedup_r),this), write16_delegate(FUNC(namcos22s_state::mcu_speedup_w),this));
+ m_mcu->space(AS_PROGRAM).install_readwrite_handler(0x82, 0x83, read16_delegate(*this, FUNC(namcos22s_state::mcu130_speedup_r)), write16_delegate(*this, FUNC(namcos22s_state::mcu_speedup_w)));
}
void namcos22s_state::install_141_speedup()
{
// install speedup cheat for 1.41 MCU BIOS
if (MCU_SPEEDUP)
- m_mcu->space(AS_PROGRAM).install_readwrite_handler(0x82, 0x83, read16_delegate(FUNC(namcos22s_state::mcu141_speedup_r),this), write16_delegate(FUNC(namcos22s_state::mcu_speedup_w),this));
+ m_mcu->space(AS_PROGRAM).install_readwrite_handler(0x82, 0x83, read16_delegate(*this, FUNC(namcos22s_state::mcu141_speedup_r)), write16_delegate(*this, FUNC(namcos22s_state::mcu_speedup_w)));
}
diff --git a/src/mame/drivers/namcos23.cpp b/src/mame/drivers/namcos23.cpp
index 8d0d7520309..1a3b81ded51 100644
--- a/src/mame/drivers/namcos23.cpp
+++ b/src/mame/drivers/namcos23.cpp
@@ -2414,7 +2414,7 @@ WRITE32_MEMBER(namcos23_state::textchar_w)
VIDEO_START_MEMBER(namcos23_state,s23)
{
m_gfxdecode->gfx(0)->set_source(reinterpret_cast<uint8_t *>(m_charram.target()));
- m_bgtilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(namcos23_state::TextTilemapGetInfo),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
+ m_bgtilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(namcos23_state::TextTilemapGetInfo)), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
m_bgtilemap->set_transparent_pen(0xf);
m_bgtilemap->set_scrolldx(860, 860);
m_render.polymgr = std::make_unique<namcos23_renderer>(*this);
diff --git a/src/mame/drivers/naomi.cpp b/src/mame/drivers/naomi.cpp
index eb75a864492..1a9d4ea979a 100644
--- a/src/mame/drivers/naomi.cpp
+++ b/src/mame/drivers/naomi.cpp
@@ -10469,7 +10469,7 @@ READ64_MEMBER(atomiswave_state::xtrmhnt2_hack_r)
void atomiswave_state::init_xtrmhnt2()
{
init_atomiswave();
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x1000000, 0x100011f, read64_delegate(FUNC(atomiswave_state::xtrmhnt2_hack_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x1000000, 0x100011f, read64_delegate(*this, FUNC(atomiswave_state::xtrmhnt2_hack_r)));
}
ROM_START( fotns )
diff --git a/src/mame/drivers/nascom1.cpp b/src/mame/drivers/nascom1.cpp
index 879767c0ff2..26831fe30bd 100644
--- a/src/mame/drivers/nascom1.cpp
+++ b/src/mame/drivers/nascom1.cpp
@@ -807,10 +807,10 @@ void nascom_state::nascom(machine_config &config)
// devices
snapshot_image_device &snapshot(SNAPSHOT(config, "snapshot", "nas", attotime::from_msec(500)));
- snapshot.set_load_callback(FUNC(nascom_state::snapshot_cb<0>), this);
+ snapshot.set_load_callback(FUNC(nascom_state::snapshot_cb<0>));
snapshot.set_interface("nascom_snap");
snapshot_image_device &snapchar(SNAPSHOT(config, "snapchar", "chr", attotime::from_msec(500)));
- snapchar.set_load_callback(FUNC(nascom_state::snapshot_cb<1>), this);
+ snapchar.set_load_callback(FUNC(nascom_state::snapshot_cb<1>));
snapchar.set_interface("nascom_char");
}
@@ -850,9 +850,9 @@ void nascom2_state::nascom2(machine_config &config)
// generic sockets for ram/rom (todo: support ram here)
GENERIC_SOCKET(config, m_socket1, generic_plain_slot, "nascom_socket", "bin,rom");
- m_socket1->set_device_load(FUNC(nascom2_state::socket1_load), this);
+ m_socket1->set_device_load(FUNC(nascom2_state::socket1_load));
GENERIC_SOCKET(config, m_socket2, generic_plain_slot, "nascom_socket", "bin,rom");
- m_socket2->set_device_load(FUNC(nascom2_state::socket2_load), this);
+ m_socket2->set_device_load(FUNC(nascom2_state::socket2_load));
// nasbus expansion bus
nasbus_device &nasbus(NASBUS(config, NASBUS_TAG));
diff --git a/src/mame/drivers/naughtyb.cpp b/src/mame/drivers/naughtyb.cpp
index 10294400632..28d132d6991 100644
--- a/src/mame/drivers/naughtyb.cpp
+++ b/src/mame/drivers/naughtyb.cpp
@@ -839,10 +839,10 @@ ROM_END
void naughtyb_state::init_popflame()
{
/* install a handler to catch protection checks */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x9000, 0x9000, read8_delegate(FUNC(naughtyb_state::popflame_protection_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x9090, 0x9090, read8_delegate(FUNC(naughtyb_state::popflame_protection_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x9000, 0x9000, read8_delegate(*this, FUNC(naughtyb_state::popflame_protection_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x9090, 0x9090, read8_delegate(*this, FUNC(naughtyb_state::popflame_protection_r)));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xb000, 0xb0ff, write8_delegate(FUNC(naughtyb_state::popflame_protection_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xb000, 0xb0ff, write8_delegate(*this, FUNC(naughtyb_state::popflame_protection_w)));
save_item(NAME(m_popflame_prot_seed));
save_item(NAME(m_r_index));
@@ -874,7 +874,7 @@ WRITE8_MEMBER(naughtyb_state::trvmstr_questions_w)
void naughtyb_state::init_trvmstr()
{
/* install questions' handlers */
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xc000, 0xc002, read8_delegate(FUNC(naughtyb_state::trvmstr_questions_r),this), write8_delegate(FUNC(naughtyb_state::trvmstr_questions_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xc000, 0xc002, read8_delegate(*this, FUNC(naughtyb_state::trvmstr_questions_r)), write8_delegate(*this, FUNC(naughtyb_state::trvmstr_questions_w)));
save_item(NAME(m_question_offset));
}
diff --git a/src/mame/drivers/nc.cpp b/src/mame/drivers/nc.cpp
index ee78441506b..1103ba80a3b 100644
--- a/src/mame/drivers/nc.cpp
+++ b/src/mame/drivers/nc.cpp
@@ -1411,8 +1411,8 @@ void nc_state::nc_base(machine_config &config)
/* cartridge */
generic_cartslot_device &cartslot(GENERIC_CARTSLOT(config, "cardslot", generic_plain_slot, nullptr));
- cartslot.set_device_load(FUNC(nc_state::load_pcmcia_card), this);
- cartslot.set_device_unload(FUNC(nc_state::unload_pcmcia_card), this);
+ cartslot.set_device_load(FUNC(nc_state::load_pcmcia_card));
+ cartslot.set_device_unload(FUNC(nc_state::unload_pcmcia_card));
/* internal ram */
RAM(config, m_ram).set_default_size("64K");
diff --git a/src/mame/drivers/neogeo.cpp b/src/mame/drivers/neogeo.cpp
index acc92779399..5f01170e228 100644
--- a/src/mame/drivers/neogeo.cpp
+++ b/src/mame/drivers/neogeo.cpp
@@ -1405,7 +1405,7 @@ void neogeo_base_state::set_slot_idx(int slot)
space.install_read_bank(0x200000, 0x2fffff, "cartridge");
- space.install_write_handler(0x2ffff0, 0x2fffff, write16_delegate(FUNC(neogeo_base_state::write_banksel),this));
+ space.install_write_handler(0x2ffff0, 0x2fffff, write16_delegate(*this, FUNC(neogeo_base_state::write_banksel)));
m_bank_cartridge = membank("cartridge");
init_cpu();
@@ -1423,104 +1423,104 @@ void neogeo_base_state::set_slot_idx(int slot)
int type = m_slots[m_curr_slot]->get_type();
switch (type)
{
- case NEOGEO_FATFURY2:
- space.install_readwrite_handler(0x200000, 0x2fffff, read16_delegate(FUNC(neogeo_cart_slot_device::protection_r),(neogeo_cart_slot_device*)m_slots[m_curr_slot]), write16_delegate(FUNC(neogeo_cart_slot_device::protection_w),(neogeo_cart_slot_device*)m_slots[m_curr_slot]));
- break;
- case NEOGEO_KOF98:
- space.install_read_handler(0x00100, 0x00103, read16_delegate(FUNC(neogeo_cart_slot_device::protection_r),(neogeo_cart_slot_device*)m_slots[m_curr_slot]));
- space.install_write_handler(0x20aaaa, 0x20aaab, write16_delegate(FUNC(neogeo_cart_slot_device::protection_w),(neogeo_cart_slot_device*)m_slots[m_curr_slot]));
- break;
- case NEOGEO_MSLUGX:
- space.install_readwrite_handler(0x2fffe0, 0x2fffef, read16_delegate(FUNC(neogeo_cart_slot_device::protection_r),(neogeo_cart_slot_device*)m_slots[m_curr_slot]), write16_delegate(FUNC(neogeo_cart_slot_device::protection_w),(neogeo_cart_slot_device*)m_slots[m_curr_slot]));
- break;
- case NEOGEO_KOF99:
- // addon_r here gives SMA random number
- space.install_write_handler(0x2ffff0, 0x2ffff1, write16_delegate(FUNC(neogeo_base_state::write_bankprot),this));
- space.install_read_handler(0x2fe446, 0x2fe447, read16_delegate(FUNC(neogeo_cart_slot_device::protection_r),(neogeo_cart_slot_device*)m_slots[m_curr_slot]));
- space.install_read_handler(0x2ffff8, 0x2ffff9, read16_delegate(FUNC(neogeo_cart_slot_device::addon_r),(neogeo_cart_slot_device*)m_slots[m_curr_slot]));
- space.install_read_handler(0x2ffffa, 0x2ffffb, read16_delegate(FUNC(neogeo_cart_slot_device::addon_r),(neogeo_cart_slot_device*)m_slots[m_curr_slot]));
- break;
- case NEOGEO_GAROU:
- // addon_r here gives SMA random number
- space.install_write_handler(0x2fffc0, 0x2fffc1, write16_delegate(FUNC(neogeo_base_state::write_bankprot),this));
- space.install_read_handler(0x2fe446, 0x2fe447, read16_delegate(FUNC(neogeo_cart_slot_device::protection_r),(neogeo_cart_slot_device*)m_slots[m_curr_slot]));
- space.install_read_handler(0x2fffcc, 0x2fffcd, read16_delegate(FUNC(neogeo_cart_slot_device::addon_r),(neogeo_cart_slot_device*)m_slots[m_curr_slot]));
- space.install_read_handler(0x2ffff0, 0x2ffff1, read16_delegate(FUNC(neogeo_cart_slot_device::addon_r),(neogeo_cart_slot_device*)m_slots[m_curr_slot]));
- break;
- case NEOGEO_GAROUH:
- // addon_r here gives SMA random number
- space.install_write_handler(0x2fffc0, 0x2fffc1, write16_delegate(FUNC(neogeo_base_state::write_bankprot),this));
- space.install_read_handler(0x2fe446, 0x2fe447, read16_delegate(FUNC(neogeo_cart_slot_device::protection_r),(neogeo_cart_slot_device*)m_slots[m_curr_slot]));
- space.install_read_handler(0x2fffcc, 0x2fffcd, read16_delegate(FUNC(neogeo_cart_slot_device::addon_r),(neogeo_cart_slot_device*)m_slots[m_curr_slot]));
- space.install_read_handler(0x2ffff0, 0x2ffff1, read16_delegate(FUNC(neogeo_cart_slot_device::addon_r),(neogeo_cart_slot_device*)m_slots[m_curr_slot]));
- break;
- case NEOGEO_MSLUG3:
- case NEOGEO_MSLUG3A:
- space.install_write_handler(0x2fffe4, 0x2fffe5, write16_delegate(FUNC(neogeo_base_state::write_bankprot),this));
- space.install_read_handler(0x2fe446, 0x2fe447, read16_delegate(FUNC(neogeo_cart_slot_device::protection_r),(neogeo_cart_slot_device*)m_slots[m_curr_slot]));
- //space.install_read_handler(0x2ffff8, 0x2ffff9, read16_delegate(FUNC(neogeo_cart_slot_device::addon_r),(neogeo_cart_slot_device*)m_slots[m_curr_slot]));
- //space.install_read_handler(0x2ffffa, 0x2ffffb, read16_delegate(FUNC(neogeo_cart_slot_device::addon_r),(neogeo_cart_slot_device*)m_slots[m_curr_slot]));
- break;
- case NEOGEO_KOF2K:
- // addon_r here gives SMA random number
- space.install_write_handler(0x2fffec, 0x2fffed, write16_delegate(FUNC(neogeo_base_state::write_bankprot),this));
- space.install_read_handler(0x2fe446, 0x2fe447, read16_delegate(FUNC(neogeo_cart_slot_device::protection_r),(neogeo_cart_slot_device*)m_slots[m_curr_slot]));
- space.install_read_handler(0x2fffd8, 0x2fffd9, read16_delegate(FUNC(neogeo_cart_slot_device::addon_r),(neogeo_cart_slot_device*)m_slots[m_curr_slot]));
- space.install_read_handler(0x2fffda, 0x2fffdb, read16_delegate(FUNC(neogeo_cart_slot_device::addon_r),(neogeo_cart_slot_device*)m_slots[m_curr_slot]));
- break;
- case NEOGEO_MSLUG5:
- case NEOGEO_SVC:
- case NEOGEO_KOF2K3:
- case NEOGEO_KOF2K3H:
- case NEOGEO_SVCBOOT:
- case NEOGEO_SVCSPLUS:
- space.install_readwrite_handler(0x2fe000, 0x2fffff, read16_delegate(FUNC(neogeo_cart_slot_device::protection_r),(neogeo_cart_slot_device*)m_slots[m_curr_slot]), write16_delegate(FUNC(neogeo_base_state::write_bankprot_pvc),this));
- break;
- case NEOGEO_CTHD2K3:
- case NEOGEO_CT2K3SP:
- space.install_write_handler(0x2ffff0, 0x2ffff1, write16_delegate(FUNC(neogeo_base_state::write_bankprot),this));
- break;
- case NEOGEO_MSLUG5P:
- space.install_readwrite_handler(0x2ffff0, 0x2fffff, read16_delegate(FUNC(neogeo_cart_slot_device::protection_r),(neogeo_cart_slot_device*)m_slots[m_curr_slot]), write16_delegate(FUNC(neogeo_base_state::write_bankprot_ms5p),this));
- break;
- case NEOGEO_KOG:
- space.install_read_handler(0x0ffffe, 0x0fffff, read16_delegate(FUNC(neogeo_cart_slot_device::protection_r),(neogeo_cart_slot_device*)m_slots[m_curr_slot]));
- break;
- case NEOGEO_KOF2K3B:
- case NEOGEO_KOF2K3UP:
- // addon_r here gives m_overlay member from bootleg protection (possibly hack?)
- space.install_readwrite_handler(0x2fe000, 0x2fffff, read16_delegate(FUNC(neogeo_cart_slot_device::protection_r),(neogeo_cart_slot_device*)m_slots[m_curr_slot]), write16_delegate(FUNC(neogeo_base_state::write_bankprot_kf2k3bl),this));
- space.install_read_handler(0x58196, 0x58197, read16_delegate(FUNC(neogeo_cart_slot_device::addon_r),(neogeo_cart_slot_device*)m_slots[m_curr_slot]));
- break;
- case NEOGEO_KOF2K3P:
- space.install_readwrite_handler(0x2fe000, 0x2fffff, read16_delegate(FUNC(neogeo_cart_slot_device::protection_r),(neogeo_cart_slot_device*)m_slots[m_curr_slot]), write16_delegate(FUNC(neogeo_base_state::write_bankprot_kf2k3bl),this));
- break;
- case NEOGEO_SBP:
- // there seems to be a protection device living around here..
- // if you nibble swap the data in the rom the game will boot
- // there are also writes to 0x1080..
- //
- // other stuff going on as well tho, the main overlay is still missing, and p1 inputs don't work
- space.install_readwrite_handler(0x00200, 0x001fff, read16_delegate(FUNC(neogeo_cart_slot_device::protection_r),(neogeo_cart_slot_device*)m_slots[m_curr_slot]), write16_delegate(FUNC(neogeo_cart_slot_device::protection_w),(neogeo_cart_slot_device*)m_slots[m_curr_slot]));
- break;
- case NEOGEO_KOF10TH:
- // addon_r here reads from ram2 bank
- space.install_read_handler(0x000080, 0x0dffff, read16_delegate(FUNC(neogeo_base_state::read_lorom_kof10th),this));
- space.install_read_handler(0x0e0000, 0x0fffff, read16_delegate(FUNC(neogeo_cart_slot_device::addon_r),(neogeo_cart_slot_device*)m_slots[m_curr_slot]));
- space.install_read_handler(0x2fe000, 0x2fffff, read16_delegate(FUNC(neogeo_cart_slot_device::protection_r),(neogeo_cart_slot_device*)m_slots[m_curr_slot]));
- // REVIEW ME: we might possibly need to split this, by adding further write handlers
- space.install_write_handler(0x200000, 0x2fffff, write16_delegate(FUNC(neogeo_base_state::write_bankprot_kof10th),this));
- break;
- case NEOGEO_JOCKEYGP:
- space.install_readwrite_handler(0x200000, 0x201fff, read16_delegate(FUNC(neogeo_cart_slot_device::ram_r),(neogeo_cart_slot_device*)m_slots[m_curr_slot]), write16_delegate(FUNC(neogeo_cart_slot_device::ram_w),(neogeo_cart_slot_device*)m_slots[m_curr_slot]));
- break;
- case NEOGEO_VLINER:
- space.install_readwrite_handler(0x200000, 0x201fff, read16_delegate(FUNC(neogeo_cart_slot_device::ram_r),(neogeo_cart_slot_device*)m_slots[m_curr_slot]), write16_delegate(FUNC(neogeo_cart_slot_device::ram_w),(neogeo_cart_slot_device*)m_slots[m_curr_slot]));
- // custom input handling... install it here for the moment.
- space.install_read_port(0x300000, 0x300001, 0x01ff7e, "DSW");
- space.install_read_port(0x280000, 0x280001, "IN5");
- space.install_read_port(0x2c0000, 0x2c0001, "IN6");
- break;
+ case NEOGEO_FATFURY2:
+ space.install_readwrite_handler(0x200000, 0x2fffff, read16_delegate(*m_slots[m_curr_slot], FUNC(neogeo_cart_slot_device::protection_r)), write16_delegate(*m_slots[m_curr_slot], FUNC(neogeo_cart_slot_device::protection_w)));
+ break;
+ case NEOGEO_KOF98:
+ space.install_read_handler(0x00100, 0x00103, read16_delegate(*m_slots[m_curr_slot], FUNC(neogeo_cart_slot_device::protection_r)));
+ space.install_write_handler(0x20aaaa, 0x20aaab, write16_delegate(*m_slots[m_curr_slot], FUNC(neogeo_cart_slot_device::protection_w)));
+ break;
+ case NEOGEO_MSLUGX:
+ space.install_readwrite_handler(0x2fffe0, 0x2fffef, read16_delegate(*m_slots[m_curr_slot], FUNC(neogeo_cart_slot_device::protection_r)), write16_delegate(*m_slots[m_curr_slot], FUNC(neogeo_cart_slot_device::protection_w)));
+ break;
+ case NEOGEO_KOF99:
+ // addon_r here gives SMA random number
+ space.install_write_handler(0x2ffff0, 0x2ffff1, write16_delegate(*this, FUNC(neogeo_base_state::write_bankprot)));
+ space.install_read_handler(0x2fe446, 0x2fe447, read16_delegate(*m_slots[m_curr_slot], FUNC(neogeo_cart_slot_device::protection_r)));
+ space.install_read_handler(0x2ffff8, 0x2ffff9, read16_delegate(*m_slots[m_curr_slot], FUNC(neogeo_cart_slot_device::addon_r)));
+ space.install_read_handler(0x2ffffa, 0x2ffffb, read16_delegate(*m_slots[m_curr_slot], FUNC(neogeo_cart_slot_device::addon_r)));
+ break;
+ case NEOGEO_GAROU:
+ // addon_r here gives SMA random number
+ space.install_write_handler(0x2fffc0, 0x2fffc1, write16_delegate(*this, FUNC(neogeo_base_state::write_bankprot)));
+ space.install_read_handler(0x2fe446, 0x2fe447, read16_delegate(*m_slots[m_curr_slot], FUNC(neogeo_cart_slot_device::protection_r)));
+ space.install_read_handler(0x2fffcc, 0x2fffcd, read16_delegate(*m_slots[m_curr_slot], FUNC(neogeo_cart_slot_device::addon_r)));
+ space.install_read_handler(0x2ffff0, 0x2ffff1, read16_delegate(*m_slots[m_curr_slot], FUNC(neogeo_cart_slot_device::addon_r)));
+ break;
+ case NEOGEO_GAROUH:
+ // addon_r here gives SMA random number
+ space.install_write_handler(0x2fffc0, 0x2fffc1, write16_delegate(*this, FUNC(neogeo_base_state::write_bankprot)));
+ space.install_read_handler(0x2fe446, 0x2fe447, read16_delegate(*m_slots[m_curr_slot], FUNC(neogeo_cart_slot_device::protection_r)));
+ space.install_read_handler(0x2fffcc, 0x2fffcd, read16_delegate(*m_slots[m_curr_slot], FUNC(neogeo_cart_slot_device::addon_r)));
+ space.install_read_handler(0x2ffff0, 0x2ffff1, read16_delegate(*m_slots[m_curr_slot], FUNC(neogeo_cart_slot_device::addon_r)));
+ break;
+ case NEOGEO_MSLUG3:
+ case NEOGEO_MSLUG3A:
+ space.install_write_handler(0x2fffe4, 0x2fffe5, write16_delegate(*this, FUNC(neogeo_base_state::write_bankprot)));
+ space.install_read_handler(0x2fe446, 0x2fe447, read16_delegate(*m_slots[m_curr_slot], FUNC(neogeo_cart_slot_device::protection_r)));
+ //space.install_read_handler(0x2ffff8, 0x2ffff9, read16_delegate(*m_slots[m_curr_slot], FUNC(neogeo_cart_slot_device::addon_r)));
+ //space.install_read_handler(0x2ffffa, 0x2ffffb, read16_delegate(*m_slots[m_curr_slot], FUNC(neogeo_cart_slot_device::addon_r)));
+ break;
+ case NEOGEO_KOF2K:
+ // addon_r here gives SMA random number
+ space.install_write_handler(0x2fffec, 0x2fffed, write16_delegate(*this, FUNC(neogeo_base_state::write_bankprot)));
+ space.install_read_handler(0x2fe446, 0x2fe447, read16_delegate(*m_slots[m_curr_slot], FUNC(neogeo_cart_slot_device::protection_r)));
+ space.install_read_handler(0x2fffd8, 0x2fffd9, read16_delegate(*m_slots[m_curr_slot], FUNC(neogeo_cart_slot_device::addon_r)));
+ space.install_read_handler(0x2fffda, 0x2fffdb, read16_delegate(*m_slots[m_curr_slot], FUNC(neogeo_cart_slot_device::addon_r)));
+ break;
+ case NEOGEO_MSLUG5:
+ case NEOGEO_SVC:
+ case NEOGEO_KOF2K3:
+ case NEOGEO_KOF2K3H:
+ case NEOGEO_SVCBOOT:
+ case NEOGEO_SVCSPLUS:
+ space.install_readwrite_handler(0x2fe000, 0x2fffff, read16_delegate(*m_slots[m_curr_slot], FUNC(neogeo_cart_slot_device::protection_r)), write16_delegate(*this, FUNC(neogeo_base_state::write_bankprot_pvc)));
+ break;
+ case NEOGEO_CTHD2K3:
+ case NEOGEO_CT2K3SP:
+ space.install_write_handler(0x2ffff0, 0x2ffff1, write16_delegate(*this, FUNC(neogeo_base_state::write_bankprot)));
+ break;
+ case NEOGEO_MSLUG5P:
+ space.install_readwrite_handler(0x2ffff0, 0x2fffff, read16_delegate(*m_slots[m_curr_slot], FUNC(neogeo_cart_slot_device::protection_r)), write16_delegate(*this, FUNC(neogeo_base_state::write_bankprot_ms5p)));
+ break;
+ case NEOGEO_KOG:
+ space.install_read_handler(0x0ffffe, 0x0fffff, read16_delegate(*m_slots[m_curr_slot], FUNC(neogeo_cart_slot_device::protection_r)));
+ break;
+ case NEOGEO_KOF2K3B:
+ case NEOGEO_KOF2K3UP:
+ // addon_r here gives m_overlay member from bootleg protection (possibly hack?)
+ space.install_readwrite_handler(0x2fe000, 0x2fffff, read16_delegate(*m_slots[m_curr_slot], FUNC(neogeo_cart_slot_device::protection_r)), write16_delegate(*this, FUNC(neogeo_base_state::write_bankprot_kf2k3bl)));
+ space.install_read_handler(0x58196, 0x58197, read16_delegate(*m_slots[m_curr_slot], FUNC(neogeo_cart_slot_device::addon_r)));
+ break;
+ case NEOGEO_KOF2K3P:
+ space.install_readwrite_handler(0x2fe000, 0x2fffff, read16_delegate(*m_slots[m_curr_slot], FUNC(neogeo_cart_slot_device::protection_r)), write16_delegate(*this, FUNC(neogeo_base_state::write_bankprot_kf2k3bl)));
+ break;
+ case NEOGEO_SBP:
+ // there seems to be a protection device living around here..
+ // if you nibble swap the data in the rom the game will boot
+ // there are also writes to 0x1080..
+ //
+ // other stuff going on as well tho, the main overlay is still missing, and p1 inputs don't work
+ space.install_readwrite_handler(0x00200, 0x001fff, read16_delegate(*m_slots[m_curr_slot], FUNC(neogeo_cart_slot_device::protection_r)), write16_delegate(*m_slots[m_curr_slot], FUNC(neogeo_cart_slot_device::protection_w)));
+ break;
+ case NEOGEO_KOF10TH:
+ // addon_r here reads from ram2 bank
+ space.install_read_handler(0x000080, 0x0dffff, read16_delegate(*this, FUNC(neogeo_base_state::read_lorom_kof10th)));
+ space.install_read_handler(0x0e0000, 0x0fffff, read16_delegate(*m_slots[m_curr_slot], FUNC(neogeo_cart_slot_device::addon_r)));
+ space.install_read_handler(0x2fe000, 0x2fffff, read16_delegate(*m_slots[m_curr_slot], FUNC(neogeo_cart_slot_device::protection_r)));
+ // REVIEW ME: we might possibly need to split this, by adding further write handlers
+ space.install_write_handler(0x200000, 0x2fffff, write16_delegate(*this, FUNC(neogeo_base_state::write_bankprot_kof10th)));
+ break;
+ case NEOGEO_JOCKEYGP:
+ space.install_readwrite_handler(0x200000, 0x201fff, read16_delegate(*m_slots[m_curr_slot], FUNC(neogeo_cart_slot_device::ram_r)), write16_delegate(*m_slots[m_curr_slot], FUNC(neogeo_cart_slot_device::ram_w)));
+ break;
+ case NEOGEO_VLINER:
+ space.install_readwrite_handler(0x200000, 0x201fff, read16_delegate(*m_slots[m_curr_slot], FUNC(neogeo_cart_slot_device::ram_r)), write16_delegate(*m_slots[m_curr_slot], FUNC(neogeo_cart_slot_device::ram_w)));
+ // custom input handling... install it here for the moment.
+ space.install_read_port(0x300000, 0x300001, 0x01ff7e, "DSW");
+ space.install_read_port(0x280000, 0x280001, "IN5");
+ space.install_read_port(0x2c0000, 0x2c0001, "IN6");
+ break;
}
}
}
@@ -1563,19 +1563,19 @@ void ngarcade_base_state::machine_start()
address_space &main_program_space(m_maincpu->space(AS_PROGRAM));
if (m_ctrl1)
- main_program_space.install_read_handler(0x300000, 0x300001, 0, 0x01ff7e, 0, read16_delegate(FUNC(ngarcade_base_state::in0_edge_joy_r), this));
+ main_program_space.install_read_handler(0x300000, 0x300001, 0, 0x01ff7e, 0, read16_delegate(*this, FUNC(ngarcade_base_state::in0_edge_joy_r)));
else if (m_edge)
- main_program_space.install_read_handler(0x300000, 0x300001, 0, 0x01ff7e, 0, read16_delegate(FUNC(ngarcade_base_state::in0_edge_r), this));
+ main_program_space.install_read_handler(0x300000, 0x300001, 0, 0x01ff7e, 0, read16_delegate(*this, FUNC(ngarcade_base_state::in0_edge_r)));
if (m_ctrl2)
- main_program_space.install_read_handler(0x340000, 0x340001, 0, 0x01fffe, 0, read16_delegate(FUNC(ngarcade_base_state::in1_edge_joy_r), this));
+ main_program_space.install_read_handler(0x340000, 0x340001, 0, 0x01fffe, 0, read16_delegate(*this, FUNC(ngarcade_base_state::in1_edge_joy_r)));
else if (m_edge)
- main_program_space.install_read_handler(0x340000, 0x340001, 0, 0x01fffe, 0, read16_delegate(FUNC(ngarcade_base_state::in1_edge_r), this));
+ main_program_space.install_read_handler(0x340000, 0x340001, 0, 0x01fffe, 0, read16_delegate(*this, FUNC(ngarcade_base_state::in1_edge_r)));
if (m_memcard)
{
main_program_space.unmap_readwrite(0x800000, 0x800fff);
- main_program_space.install_readwrite_handler(0x800000, 0x800fff, read16_delegate(FUNC(ngarcade_base_state::memcard_r), this), write16_delegate(FUNC(ngarcade_base_state::memcard_w), this));
+ main_program_space.install_readwrite_handler(0x800000, 0x800fff, read16_delegate(*this, FUNC(ngarcade_base_state::memcard_r)), write16_delegate(*this, FUNC(ngarcade_base_state::memcard_w)));
}
// enable rtc and serial mode
diff --git a/src/mame/drivers/neogeocd.cpp b/src/mame/drivers/neogeocd.cpp
index cdfb8209aa1..9e1763ecc87 100644
--- a/src/mame/drivers/neogeocd.cpp
+++ b/src/mame/drivers/neogeocd.cpp
@@ -1056,9 +1056,9 @@ void ngcd_state::neocd(machine_config &config)
LC89510_TEMP(config, m_tempcdc, 0); // cd controller
m_tempcdc->set_cdrom_tag("cdrom");
m_tempcdc->set_is_neoCD(true);
- m_tempcdc->set_type1_interrupt_callback(FUNC(ngcd_state::interrupt_callback_type1), this);
- m_tempcdc->set_type2_interrupt_callback(FUNC(ngcd_state::interrupt_callback_type2), this);
- m_tempcdc->set_type3_interrupt_callback(FUNC(ngcd_state::interrupt_callback_type3), this);
+ m_tempcdc->set_type1_interrupt_callback(FUNC(ngcd_state::interrupt_callback_type1));
+ m_tempcdc->set_type2_interrupt_callback(FUNC(ngcd_state::interrupt_callback_type2));
+ m_tempcdc->set_type3_interrupt_callback(FUNC(ngcd_state::interrupt_callback_type3));
NVRAM(config, "saveram", nvram_device::DEFAULT_ALL_0);
diff --git a/src/mame/drivers/neopcb.cpp b/src/mame/drivers/neopcb.cpp
index 9f1a460ae08..f678a169d2d 100644
--- a/src/mame/drivers/neopcb.cpp
+++ b/src/mame/drivers/neopcb.cpp
@@ -469,7 +469,7 @@ void neopcb_state::install_common()
membank("cpu_bank")->set_base(m_region_maincpu->base() + 0x100000);
// install protection handlers + bankswitch handler
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x2fe000, 0x2fffff, read16_delegate(FUNC(pvc_prot_device::protection_r),(pvc_prot_device*)m_pvc_prot), write16_delegate(FUNC(neopcb_state::write_bankpvc),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x2fe000, 0x2fffff, read16_delegate(*m_pvc_prot, FUNC(pvc_prot_device::protection_r)), write16_delegate(*this, FUNC(neopcb_state::write_bankpvc)));
// perform basic memory initialization that are usually done on-cart
m_curr_slot = 0;
diff --git a/src/mame/drivers/nes.cpp b/src/mame/drivers/nes.cpp
index b2aacb90e2a..59b38b9c1e7 100644
--- a/src/mame/drivers/nes.cpp
+++ b/src/mame/drivers/nes.cpp
@@ -169,24 +169,24 @@ void nes_state::setup_disk(nes_disksys_device *slot)
address_space &space = m_maincpu->space(AS_PROGRAM);
// Set up memory handlers
- space.install_read_handler(0x4020, 0x40ff, read8sm_delegate(FUNC(nes_disksys_device::read_ex), (nes_disksys_device *)slot));
- space.install_write_handler(0x4020, 0x40ff, write8sm_delegate(FUNC(nes_disksys_device::write_ex), (nes_disksys_device *)slot));
- space.install_read_handler(0x4100, 0x5fff, read8sm_delegate(FUNC(device_nes_cart_interface::read_l), (device_nes_cart_interface *)slot));
- space.install_write_handler(0x4100, 0x5fff, write8sm_delegate(FUNC(device_nes_cart_interface::write_l), (device_nes_cart_interface *)slot));
- space.install_read_handler(0x6000, 0x7fff, read8sm_delegate(FUNC(nes_disksys_device::read_m), (nes_disksys_device *)slot));
- space.install_write_handler(0x6000, 0x7fff, write8sm_delegate(FUNC(nes_disksys_device::write_m), (nes_disksys_device *)slot));
- space.install_read_handler(0x8000, 0xffff, read8sm_delegate(FUNC(nes_disksys_device::read_h), (nes_disksys_device *)slot));
- space.install_write_handler(0x8000, 0xffff, write8sm_delegate(FUNC(nes_disksys_device::write_h), (nes_disksys_device *)slot));
+ space.install_read_handler(0x4020, 0x40ff, read8sm_delegate(*slot, FUNC(nes_disksys_device::read_ex)));
+ space.install_write_handler(0x4020, 0x40ff, write8sm_delegate(*slot, FUNC(nes_disksys_device::write_ex)));
+ space.install_read_handler(0x4100, 0x5fff, read8sm_delegate(*slot, FUNC(device_nes_cart_interface::read_l)));
+ space.install_write_handler(0x4100, 0x5fff, write8sm_delegate(*slot, FUNC(device_nes_cart_interface::write_l)));
+ space.install_read_handler(0x6000, 0x7fff, read8sm_delegate(*slot, FUNC(nes_disksys_device::read_m)));
+ space.install_write_handler(0x6000, 0x7fff, write8sm_delegate(*slot, FUNC(nes_disksys_device::write_m)));
+ space.install_read_handler(0x8000, 0xffff, read8sm_delegate(*slot, FUNC(nes_disksys_device::read_h)));
+ space.install_write_handler(0x8000, 0xffff, write8sm_delegate(*slot, FUNC(nes_disksys_device::write_h)));
slot->vram_alloc(0x2000);
slot->prgram_alloc(0x8000);
slot->pcb_start(machine(), m_ciram.get(), false);
- m_ppu->space(AS_PROGRAM).install_readwrite_handler(0, 0x1fff, read8sm_delegate(FUNC(device_nes_cart_interface::chr_r),(device_nes_cart_interface *)slot), write8sm_delegate(FUNC(device_nes_cart_interface::chr_w),(device_nes_cart_interface *)slot));
- m_ppu->space(AS_PROGRAM).install_readwrite_handler(0x2000, 0x3eff, read8sm_delegate(FUNC(device_nes_cart_interface::nt_r),(device_nes_cart_interface *)slot), write8sm_delegate(FUNC(device_nes_cart_interface::nt_w),(device_nes_cart_interface *)slot));
- m_ppu->set_scanline_callback(ppu2c0x_device::scanline_delegate(FUNC(device_nes_cart_interface::scanline_irq),(device_nes_cart_interface *)slot));
- m_ppu->set_hblank_callback(ppu2c0x_device::hblank_delegate(FUNC(nes_disksys_device::hblank_irq),(nes_disksys_device *)slot));
- m_ppu->set_latch(ppu2c0x_device::latch_delegate(FUNC(device_nes_cart_interface::ppu_latch),(device_nes_cart_interface *)slot));
+ m_ppu->space(AS_PROGRAM).install_readwrite_handler(0, 0x1fff, read8sm_delegate(*slot, FUNC(device_nes_cart_interface::chr_r)), write8sm_delegate(*slot, FUNC(device_nes_cart_interface::chr_w)));
+ m_ppu->space(AS_PROGRAM).install_readwrite_handler(0x2000, 0x3eff, read8sm_delegate(*slot, FUNC(device_nes_cart_interface::nt_r)), write8sm_delegate(*slot, FUNC(device_nes_cart_interface::nt_w)));
+ m_ppu->set_scanline_callback(*slot, FUNC(device_nes_cart_interface::scanline_irq));
+ m_ppu->set_hblank_callback(*slot, FUNC(nes_disksys_device::hblank_irq));
+ m_ppu->set_latch(*slot, FUNC(device_nes_cart_interface::ppu_latch));
}
}
diff --git a/src/mame/drivers/nes_vt.cpp b/src/mame/drivers/nes_vt.cpp
index 1378109963a..e9d467b4ade 100644
--- a/src/mame/drivers/nes_vt.cpp
+++ b/src/mame/drivers/nes_vt.cpp
@@ -720,13 +720,13 @@ void nes_vt_state::machine_start()
m_chrram = std::make_unique<uint8_t[]>(0x2000);
save_pointer(NAME(m_chrram), 0x2000);
- m_ppu->set_scanline_callback(ppu2c0x_device::scanline_delegate(FUNC(nes_vt_state::scanline_irq),this));
- m_ppu->set_hblank_callback(ppu2c0x_device::scanline_delegate(FUNC(nes_vt_state::hblank_irq),this));
+ m_ppu->set_scanline_callback(*this, FUNC(nes_vt_state::scanline_irq));
+ m_ppu->set_hblank_callback(*this, FUNC(nes_vt_state::hblank_irq));
-// m_ppu->set_hblank_callback(ppu2c0x_device::hblank_delegate(FUNC(device_nes_cart_interface::hblank_irq),m_cartslot->m_cart));
-// m_ppu->space(AS_PROGRAM).install_readwrite_handler(0, 0x1fff, read8_delegate(FUNC(device_nes_cart_interface::chr_r),m_cartslot->m_cart), write8_delegate(FUNC(device_nes_cart_interface::chr_w),m_cartslot->m_cart));
- m_ppu->space(AS_PROGRAM).install_readwrite_handler(0x2000, 0x3eff, read8_delegate(FUNC(nes_vt_state::nt_r),this), write8_delegate(FUNC(nes_vt_state::nt_w),this));
- m_ppu->space(AS_PROGRAM).install_readwrite_handler(0, 0x1fff, read8_delegate(FUNC(nes_vt_state::chr_r),this), write8_delegate(FUNC(nes_vt_state::chr_w),this));
+// m_ppu->set_hblank_callback(*m_cartslot->m_cart, FUNC(device_nes_cart_interface::hblank_irq)));
+// m_ppu->space(AS_PROGRAM).install_readwrite_handler(0, 0x1fff, read8_delegate(*m_cartslot->m_cart, FUNC(device_nes_cart_interface::chr_r)), write8_delegate(*m_cartslot->m_cart, FUNC(device_nes_cart_interface::chr_w)));
+ m_ppu->space(AS_PROGRAM).install_readwrite_handler(0x2000, 0x3eff, read8_delegate(*this, FUNC(nes_vt_state::nt_r)), write8_delegate(*this, FUNC(nes_vt_state::nt_w)));
+ m_ppu->space(AS_PROGRAM).install_readwrite_handler(0, 0x1fff, read8_delegate(*this, FUNC(nes_vt_state::chr_r)), write8_delegate(*this, FUNC(nes_vt_state::chr_w)));
}
diff --git a/src/mame/drivers/ngen.cpp b/src/mame/drivers/ngen.cpp
index a3bf0d6e4f8..64aca1d588e 100644
--- a/src/mame/drivers/ngen.cpp
+++ b/src/mame/drivers/ngen.cpp
@@ -268,13 +268,13 @@ WRITE16_MEMBER(ngen_state::cpu_peripheral_cb)
addr = (m_peripheral & 0xffc0) << 4;
if(m_middle & 0x0040)
{
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(addr, addr + 0x3ff, read16_delegate(FUNC(ngen_state::peripheral_r), this), write16_delegate(FUNC(ngen_state::peripheral_w), this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(addr, addr + 0x3ff, read16_delegate(*this, FUNC(ngen_state::peripheral_r)), write16_delegate(*this, FUNC(ngen_state::peripheral_w)));
logerror("Mapped peripherals to memory 0x%08x\n",addr);
}
else
{
addr &= 0xffff;
- m_maincpu->space(AS_IO).install_readwrite_handler(addr, addr + 0x3ff, read16_delegate(FUNC(ngen_state::peripheral_r), this), write16_delegate(FUNC(ngen_state::peripheral_w), this));
+ m_maincpu->space(AS_IO).install_readwrite_handler(addr, addr + 0x3ff, read16_delegate(*this, FUNC(ngen_state::peripheral_r)), write16_delegate(*this, FUNC(ngen_state::peripheral_w)));
logerror("Mapped peripherals to I/O 0x%04x\n",addr);
}
break;
@@ -450,7 +450,7 @@ WRITE16_MEMBER(ngen_state::xbus_w)
switch(m_xbus_current)
{
case 0x00: // Floppy/Hard disk module
- io.install_readwrite_handler(addr,addr+0xff,read16_delegate(FUNC(ngen_state::hfd_r),this),write16_delegate(FUNC(ngen_state::hfd_w),this),0xffffffff);
+ io.install_readwrite_handler(addr,addr+0xff, read16_delegate(*this, FUNC(ngen_state::hfd_r)), write16_delegate(*this, FUNC(ngen_state::hfd_w)), 0xffffffff);
break;
default:
cpu->pulse_input_line(INPUT_LINE_NMI, attotime::zero); // reached end of the modules
@@ -999,7 +999,7 @@ void ngen_state::ngen(machine_config &config)
m_crtc->set_screen("screen");
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(9);
- m_crtc->set_update_row_callback(FUNC(ngen_state::crtc_update_row), this);
+ m_crtc->set_update_row_callback(FUNC(ngen_state::crtc_update_row));
// keyboard UART (patent says i8251 is used for keyboard communications, it is located on the video board)
I8251(config, m_viduart, 0); // main clock unknown, Rx/Tx clocks are 19.53kHz
@@ -1112,7 +1112,7 @@ void ngen386_state::ngen386(machine_config &config)
m_crtc->set_screen("screen");
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(9);
- m_crtc->set_update_row_callback(FUNC(ngen386_state::crtc_update_row), this);
+ m_crtc->set_update_row_callback(FUNC(ngen386_state::crtc_update_row));
// keyboard UART (patent says i8251 is used for keyboard communications, it is located on the video board)
I8251(config, m_viduart, 0); // main clock unknown, Rx/Tx clocks are 19.53kHz
diff --git a/src/mame/drivers/ngp.cpp b/src/mame/drivers/ngp.cpp
index 5170c52171f..a4713dc199b 100644
--- a/src/mame/drivers/ngp.cpp
+++ b/src/mame/drivers/ngp.cpp
@@ -868,8 +868,8 @@ void ngp_state::ngp(machine_config &config)
subdevice<screen_device>("screen")->set_palette("k1ge:palette");
generic_cartslot_device &cartslot(GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "ngp_cart", "bin,ngp,npc,ngc"));
- cartslot.set_device_load(FUNC(ngp_state::load_ngp_cart), this);
- cartslot.set_device_unload(FUNC(ngp_state::unload_ngp_cart), this);
+ cartslot.set_device_load(FUNC(ngp_state::load_ngp_cart));
+ cartslot.set_device_unload(FUNC(ngp_state::unload_ngp_cart));
/* software lists */
SOFTWARE_LIST(config, "cart_list").set_original("ngp");
@@ -887,8 +887,8 @@ void ngp_state::ngpc(machine_config &config)
subdevice<screen_device>("screen")->set_palette("k1ge:palette");
generic_cartslot_device &cartslot(GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "ngp_cart", "bin,ngp,npc,ngc"));
- cartslot.set_device_load(FUNC(ngp_state::load_ngp_cart), this);
- cartslot.set_device_unload(FUNC(ngp_state::unload_ngp_cart), this);
+ cartslot.set_device_load(FUNC(ngp_state::load_ngp_cart));
+ cartslot.set_device_unload(FUNC(ngp_state::unload_ngp_cart));
/* software lists */
SOFTWARE_LIST(config, "cart_list").set_original("ngpc");
diff --git a/src/mame/drivers/nibble.cpp b/src/mame/drivers/nibble.cpp
index dab1ae412ff..7cad912b972 100644
--- a/src/mame/drivers/nibble.cpp
+++ b/src/mame/drivers/nibble.cpp
@@ -123,7 +123,7 @@ TILE_GET_INFO_MEMBER(nibble_state::get_bg_tile_info)
void nibble_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(nibble_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(nibble_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
uint32_t nibble_state::screen_update_nibble(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
diff --git a/src/mame/drivers/nightgal.cpp b/src/mame/drivers/nightgal.cpp
index 67d47158bcc..801e60a48b1 100644
--- a/src/mame/drivers/nightgal.cpp
+++ b/src/mame/drivers/nightgal.cpp
@@ -1325,8 +1325,8 @@ READ8_MEMBER(nightgal_state::ngalsumr_prot_value_r)
void nightgal_state::init_ngalsumr()
{
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x6000, 0x6000, write8_delegate(FUNC(nightgal_state::ngalsumr_prot_latch_w), this) );
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x6001, 0x6001, read8_delegate(FUNC(nightgal_state::ngalsumr_prot_value_r), this) );
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x6000, 0x6000, write8_delegate(*this, FUNC(nightgal_state::ngalsumr_prot_latch_w)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x6001, 0x6001, read8_delegate(*this, FUNC(nightgal_state::ngalsumr_prot_value_r)));
// 0x6003 some kind of f/f state
}
diff --git a/src/mame/drivers/ninjakd2.cpp b/src/mame/drivers/ninjakd2.cpp
index adf3b7d63eb..2bdcee7d420 100644
--- a/src/mame/drivers/ninjakd2.cpp
+++ b/src/mame/drivers/ninjakd2.cpp
@@ -1672,7 +1672,7 @@ void robokid_state::motion_error_kludge(uint16_t offset)
ROM[2] = 0x18;
ROM[3] = 0xf6; // jr $-8
- m_maincpu->space(AS_PROGRAM).install_read_handler(offset, offset, read8_delegate(FUNC(robokid_state::motion_error_verbose_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(offset, offset, read8_delegate(*this, FUNC(robokid_state::motion_error_verbose_r)));
}
void robokid_state::init_robokid()
diff --git a/src/mame/drivers/nmg5.cpp b/src/mame/drivers/nmg5.cpp
index 1f3def2ebe7..71d8f5c2ab4 100644
--- a/src/mame/drivers/nmg5.cpp
+++ b/src/mame/drivers/nmg5.cpp
@@ -861,8 +861,8 @@ TILE_GET_INFO_MEMBER(nmg5_state::get_tile_info){ SET_TILE_INFO_MEMBER(0, m_vram[
void nmg5_state::video_start()
{
- m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(nmg5_state::get_tile_info<0>),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(nmg5_state::get_tile_info<1>),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(nmg5_state::get_tile_info<0>)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(nmg5_state::get_tile_info<1>)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
m_tilemap[1]->set_transparent_pen(0);
m_pixmap = std::make_unique<bitmap_ind16>(512, 256);
diff --git a/src/mame/drivers/nmk16.cpp b/src/mame/drivers/nmk16.cpp
index d396617dce7..07b0f040057 100644
--- a/src/mame/drivers/nmk16.cpp
+++ b/src/mame/drivers/nmk16.cpp
@@ -4141,8 +4141,8 @@ void nmk16_state::tharrier(machine_config &config)
/* video hardware */
set_hacky_screen_lowres(config);
- m_spritegen->set_colpri_callback(FUNC(nmk16_state::get_colour_4bit), this);
- m_spritegen->set_ext_callback(FUNC(nmk16_state::get_sprite_flip), this);
+ m_spritegen->set_colpri_callback(FUNC(nmk16_state::get_colour_4bit));
+ m_spritegen->set_ext_callback(FUNC(nmk16_state::get_sprite_flip));
m_screen->set_screen_update(FUNC(nmk16_state::screen_update_tharrier));
GFXDECODE(config, m_gfxdecode, m_palette, gfx_tharrier);
@@ -4180,7 +4180,7 @@ void nmk16_state::mustang(machine_config &config)
/* video hardware */
set_hacky_screen_lowres(config);
- m_spritegen->set_colpri_callback(FUNC(nmk16_state::get_colour_4bit), this);
+ m_spritegen->set_colpri_callback(FUNC(nmk16_state::get_colour_4bit));
m_screen->set_screen_update(FUNC(nmk16_state::screen_update_macross));
GFXDECODE(config, m_gfxdecode, m_palette, gfx_macross);
@@ -4222,7 +4222,7 @@ void nmk16_state::mustangb(machine_config &config)
/* video hardware */
set_hacky_screen_lowres(config);
- m_spritegen->set_colpri_callback(FUNC(nmk16_state::get_colour_4bit), this);
+ m_spritegen->set_colpri_callback(FUNC(nmk16_state::get_colour_4bit));
m_screen->set_screen_update(FUNC(nmk16_state::screen_update_macross));
GFXDECODE(config, m_gfxdecode, m_palette, gfx_macross);
@@ -4255,7 +4255,7 @@ void nmk16_state::bioship(machine_config &config)
/* video hardware */
set_hacky_screen_lowres(config);
- m_spritegen->set_colpri_callback(FUNC(nmk16_state::get_colour_4bit), this);
+ m_spritegen->set_colpri_callback(FUNC(nmk16_state::get_colour_4bit));
m_screen->set_screen_update(FUNC(nmk16_state::screen_update_strahl));
GFXDECODE(config, m_gfxdecode, m_palette, gfx_bioship);
@@ -4293,7 +4293,7 @@ void nmk16_state::vandyke(machine_config &config)
/* video hardware */
set_hacky_screen_lowres(config);
- m_spritegen->set_colpri_callback(FUNC(nmk16_state::get_colour_4bit), this);
+ m_spritegen->set_colpri_callback(FUNC(nmk16_state::get_colour_4bit));
m_screen->set_screen_update(FUNC(nmk16_state::screen_update_macross));
GFXDECODE(config, m_gfxdecode, m_palette, gfx_macross);
@@ -4333,7 +4333,7 @@ void nmk16_state::vandykeb(machine_config &config)
/* video hardware */
set_hacky_screen_lowres(config);
- m_spritegen->set_colpri_callback(FUNC(nmk16_state::get_colour_4bit), this);
+ m_spritegen->set_colpri_callback(FUNC(nmk16_state::get_colour_4bit));
m_screen->set_screen_update(FUNC(nmk16_state::screen_update_macross));
GFXDECODE(config, m_gfxdecode, m_palette, gfx_macross);
@@ -4357,7 +4357,7 @@ void nmk16_state::acrobatm(machine_config &config)
/* video hardware */
set_hacky_screen_lowres(config);
- m_spritegen->set_colpri_callback(FUNC(nmk16_state::get_colour_4bit), this);
+ m_spritegen->set_colpri_callback(FUNC(nmk16_state::get_colour_4bit));
m_screen->set_screen_update(FUNC(nmk16_state::screen_update_macross));
GFXDECODE(config, m_gfxdecode, m_palette, gfx_macross);
@@ -4399,7 +4399,7 @@ void nmk16_state::tdragonb(machine_config &config) /* bootleg using Raiden so
/* video hardware */
set_hacky_screen_lowres(config);
- m_spritegen->set_colpri_callback(FUNC(nmk16_state::get_colour_4bit), this);
+ m_spritegen->set_colpri_callback(FUNC(nmk16_state::get_colour_4bit));
m_screen->set_screen_update(FUNC(nmk16_state::screen_update_macross));
GFXDECODE(config, m_gfxdecode, m_palette, gfx_macross);
@@ -4432,7 +4432,7 @@ void nmk16_state::tdragon(machine_config &config)
/* video hardware */
set_hacky_screen_lowres(config);
- m_spritegen->set_colpri_callback(FUNC(nmk16_state::get_colour_4bit), this);
+ m_spritegen->set_colpri_callback(FUNC(nmk16_state::get_colour_4bit));
m_screen->set_screen_update(FUNC(nmk16_state::screen_update_macross));
GFXDECODE(config, m_gfxdecode, m_palette, gfx_macross);
@@ -4479,7 +4479,7 @@ void nmk16_state::ssmissin(machine_config &config)
/* video hardware */
set_hacky_screen_lowres(config);
- m_spritegen->set_colpri_callback(FUNC(nmk16_state::get_colour_4bit), this);
+ m_spritegen->set_colpri_callback(FUNC(nmk16_state::get_colour_4bit));
m_screen->set_screen_update(FUNC(nmk16_state::screen_update_macross));
GFXDECODE(config, m_gfxdecode, m_palette, gfx_macross);
@@ -4506,7 +4506,7 @@ void nmk16_state::strahl(machine_config &config)
/* video hardware */
set_hacky_screen_lowres(config);
- m_spritegen->set_colpri_callback(FUNC(nmk16_state::get_colour_4bit), this);
+ m_spritegen->set_colpri_callback(FUNC(nmk16_state::get_colour_4bit));
m_screen->set_screen_update(FUNC(nmk16_state::screen_update_strahl));
GFXDECODE(config, m_gfxdecode, m_palette, gfx_strahl);
@@ -4544,7 +4544,7 @@ void nmk16_state::hachamf(machine_config &config)
/* video hardware */
set_hacky_screen_lowres(config);
- m_spritegen->set_colpri_callback(FUNC(nmk16_state::get_colour_4bit), this);
+ m_spritegen->set_colpri_callback(FUNC(nmk16_state::get_colour_4bit));
m_screen->set_screen_update(FUNC(nmk16_state::screen_update_macross));
GFXDECODE(config, m_gfxdecode, m_palette, gfx_macross);
@@ -4589,7 +4589,7 @@ void nmk16_state::macross(machine_config &config)
/* video hardware */
set_hacky_screen_lowres(config);
- m_spritegen->set_colpri_callback(FUNC(nmk16_state::get_colour_4bit), this);
+ m_spritegen->set_colpri_callback(FUNC(nmk16_state::get_colour_4bit));
m_screen->set_screen_update(FUNC(nmk16_state::screen_update_macross));
GFXDECODE(config, m_gfxdecode, m_palette, gfx_macross);
@@ -4627,7 +4627,7 @@ void nmk16_state::blkheart(machine_config &config)
/* video hardware */
set_hacky_screen_lowres(config);
- m_spritegen->set_colpri_callback(FUNC(nmk16_state::get_colour_4bit), this);
+ m_spritegen->set_colpri_callback(FUNC(nmk16_state::get_colour_4bit));
m_screen->set_screen_update(FUNC(nmk16_state::screen_update_macross));
GFXDECODE(config, m_gfxdecode, m_palette, gfx_macross);
@@ -4665,7 +4665,7 @@ void nmk16_state::gunnail(machine_config &config)
/* video hardware */
set_hacky_screen_hires(config);
- m_spritegen->set_colpri_callback(FUNC(nmk16_state::get_colour_4bit), this);
+ m_spritegen->set_colpri_callback(FUNC(nmk16_state::get_colour_4bit));
m_screen->set_screen_update(FUNC(nmk16_state::screen_update_macross));
GFXDECODE(config, m_gfxdecode, m_palette, gfx_macross);
@@ -4728,7 +4728,7 @@ void nmk16_state::macross2(machine_config &config)
/* video hardware */
set_hacky_screen_hires(config);
- m_spritegen->set_colpri_callback(FUNC(nmk16_state::get_colour_5bit), this);
+ m_spritegen->set_colpri_callback(FUNC(nmk16_state::get_colour_5bit));
m_screen->set_screen_update(FUNC(nmk16_state::screen_update_macross));
GFXDECODE(config, m_gfxdecode, m_palette, gfx_macross2);
@@ -4772,7 +4772,7 @@ void nmk16_state::tdragon2(machine_config &config)
/* video hardware */
set_hacky_screen_hires(config);
- m_spritegen->set_colpri_callback(FUNC(nmk16_state::get_colour_5bit), this);
+ m_spritegen->set_colpri_callback(FUNC(nmk16_state::get_colour_5bit));
m_screen->set_screen_update(FUNC(nmk16_state::screen_update_macross));
GFXDECODE(config, m_gfxdecode, m_palette, gfx_macross2);
@@ -4823,7 +4823,7 @@ void nmk16_state::raphero(machine_config &config)
/* video hardware */
set_hacky_screen_hires(config);
- m_spritegen->set_colpri_callback(FUNC(nmk16_state::get_colour_5bit), this);
+ m_spritegen->set_colpri_callback(FUNC(nmk16_state::get_colour_5bit));
m_screen->set_screen_update(FUNC(nmk16_state::screen_update_macross));
GFXDECODE(config, m_gfxdecode, m_palette, gfx_macross2);
@@ -4863,7 +4863,7 @@ void nmk16_state::bjtwin(machine_config &config)
/* video hardware */
set_hacky_screen_hires(config);
- m_spritegen->set_colpri_callback(FUNC(nmk16_state::get_colour_4bit), this);
+ m_spritegen->set_colpri_callback(FUNC(nmk16_state::get_colour_4bit));
m_screen->set_screen_update(FUNC(nmk16_state::screen_update_bjtwin));
GFXDECODE(config, m_gfxdecode, m_palette, gfx_bjtwin);
@@ -4926,8 +4926,8 @@ void nmk16_state::manybloc(machine_config &config)
m_screen->set_palette(m_palette);
NMK_16BIT_SPRITE(config, m_spritegen, XTAL(12'000'000)/2);
- m_spritegen->set_colpri_callback(FUNC(nmk16_state::get_colour_4bit), this);
- m_spritegen->set_ext_callback(FUNC(nmk16_state::get_sprite_flip), this);
+ m_spritegen->set_colpri_callback(FUNC(nmk16_state::get_colour_4bit));
+ m_spritegen->set_ext_callback(FUNC(nmk16_state::get_sprite_flip));
m_spritegen->set_screen_size(256, 256);
m_spritegen->set_max_sprite_clock(384 * 263); // from hardware manual
@@ -4972,7 +4972,7 @@ void nmk16_tomagic_state::tomagic(machine_config &config)
/* video hardware */
set_hacky_screen_hires(config);
- m_spritegen->set_colpri_callback(FUNC(nmk16_tomagic_state::get_colour_4bit), this);
+ m_spritegen->set_colpri_callback(FUNC(nmk16_tomagic_state::get_colour_4bit));
m_screen->set_screen_update(FUNC(nmk16_state::screen_update_macross));
GFXDECODE(config, m_gfxdecode, m_palette, gfx_macross);
@@ -5183,7 +5183,7 @@ void nmk16_state::init_hachamf_prot()
rom[0x048a/2] = 0x4e71;
rom[0x04aa/2] = 0x4e71;
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x0f0000, 0x0fffff, write16s_delegate(FUNC(nmk16_state::hachamf_mainram_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x0f0000, 0x0fffff, write16s_delegate(*this, FUNC(nmk16_state::hachamf_mainram_w)));
save_protregs();
}
@@ -5203,7 +5203,7 @@ void nmk16_state::init_tdragon_prot()
rom[0x048a/2] = 0x4e71;
rom[0x04aa/2] = 0x4e71;
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x0b0000, 0x0bffff, write16s_delegate(FUNC(nmk16_state::tdragon_mainram_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x0b0000, 0x0bffff, write16s_delegate(*this, FUNC(nmk16_state::tdragon_mainram_w)));
save_protregs();
}
@@ -5257,7 +5257,7 @@ u16 nmk16_state::vandykeb_r(){ return 0x0000; }
void nmk16_state::init_vandykeb()
{
m_okibank[0]->configure_entries(0, 4, memregion("oki1")->base() + 0x20000, 0x20000);
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x08000e, 0x08000f, read16smo_delegate(FUNC(nmk16_state::vandykeb_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x08000e, 0x08000f, read16smo_delegate(*this, FUNC(nmk16_state::vandykeb_r)));
m_maincpu->space(AS_PROGRAM).nop_write(0x08001e, 0x08001f);
}
@@ -5429,8 +5429,8 @@ void afega_state::stagger1(machine_config &config)
/* video hardware */
set_hacky_screen_lowres(config);
- m_spritegen->set_colpri_callback(FUNC(afega_state::get_colour_4bit), this);
- m_spritegen->set_ext_callback(FUNC(afega_state::get_sprite_flip), this);
+ m_spritegen->set_colpri_callback(FUNC(afega_state::get_colour_4bit));
+ m_spritegen->set_ext_callback(FUNC(afega_state::get_sprite_flip));
m_screen->set_screen_update(FUNC(afega_state::screen_update_afega));
GFXDECODE(config, m_gfxdecode, m_palette, gfx_macross);
@@ -5512,8 +5512,8 @@ void afega_state::firehawk(machine_config &config)
/* video hardware */
set_hacky_screen_lowres(config);
- m_spritegen->set_colpri_callback(FUNC(afega_state::get_colour_4bit), this);
- m_spritegen->set_ext_callback(FUNC(afega_state::get_sprite_flip), this);
+ m_spritegen->set_colpri_callback(FUNC(afega_state::get_colour_4bit));
+ m_spritegen->set_ext_callback(FUNC(afega_state::get_sprite_flip));
m_screen->set_screen_update(FUNC(afega_state::screen_update_firehawk));
GFXDECODE(config, m_gfxdecode, m_palette, gfx_grdnstrm);
@@ -5552,7 +5552,7 @@ void nmk16_state::twinactn(machine_config &config)
/* video hardware */
set_hacky_screen_lowres(config);
- m_spritegen->set_colpri_callback(FUNC(nmk16_state::get_colour_4bit), this);
+ m_spritegen->set_colpri_callback(FUNC(nmk16_state::get_colour_4bit));
m_screen->set_screen_update(FUNC(nmk16_state::screen_update_macross));
GFXDECODE(config, m_gfxdecode, m_palette, gfx_macross);
diff --git a/src/mame/drivers/nokia_3310.cpp b/src/mame/drivers/nokia_3310.cpp
index ea7919f0682..55820d40b73 100644
--- a/src/mame/drivers/nokia_3310.cpp
+++ b/src/mame/drivers/nokia_3310.cpp
@@ -718,7 +718,7 @@ void noki3310_state::noki3310(machine_config &config)
PALETTE(config, "palette", palette_device::MONOCHROME_INVERTED);
PCD8544(config, m_pcd8544, 0);
- m_pcd8544->set_screen_update_cb(FUNC(noki3310_state::pcd8544_screen_update), this);
+ m_pcd8544->set_screen_update_cb(FUNC(noki3310_state::pcd8544_screen_update));
INTEL_TE28F160(config, "flash");
}
diff --git a/src/mame/drivers/novag_diablo.cpp b/src/mame/drivers/novag_diablo.cpp
index b4dd330f97b..74f2f8979cf 100644
--- a/src/mame/drivers/novag_diablo.cpp
+++ b/src/mame/drivers/novag_diablo.cpp
@@ -323,7 +323,7 @@ void diablo_state::diablo68k(machine_config &config)
HD44780(config, m_lcd, 0);
m_lcd->set_lcd_size(2, 8);
- m_lcd->set_pixel_update_cb(FUNC(diablo_state::lcd_pixel_update), this);
+ m_lcd->set_pixel_update_cb(FUNC(diablo_state::lcd_pixel_update));
PWM_DISPLAY(config, m_display).set_size(8, 8+2);
config.set_default_layout(layout_novag_diablo68k);
diff --git a/src/mame/drivers/novag_sexpert.cpp b/src/mame/drivers/novag_sexpert.cpp
index 6ddfbac9745..443cfccb767 100644
--- a/src/mame/drivers/novag_sexpert.cpp
+++ b/src/mame/drivers/novag_sexpert.cpp
@@ -440,7 +440,7 @@ void sexpert_state::sexpert(machine_config &config)
HD44780(config, m_lcd, 0);
m_lcd->set_lcd_size(2, 8);
- m_lcd->set_pixel_update_cb(FUNC(sexpert_state::lcd_pixel_update), this);
+ m_lcd->set_pixel_update_cb(FUNC(sexpert_state::lcd_pixel_update));
PWM_DISPLAY(config, m_display).set_size(8, 8);
config.set_default_layout(layout_novag_sexpert);
diff --git a/src/mame/drivers/nsmpoker.cpp b/src/mame/drivers/nsmpoker.cpp
index edf4bc36707..672119d153e 100644
--- a/src/mame/drivers/nsmpoker.cpp
+++ b/src/mame/drivers/nsmpoker.cpp
@@ -142,7 +142,7 @@ TILE_GET_INFO_MEMBER(nsmpoker_state::get_bg_tile_info)
void nsmpoker_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(nsmpoker_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(nsmpoker_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
diff --git a/src/mame/drivers/nyny.cpp b/src/mame/drivers/nyny.cpp
index 0575c99dc78..c1186106c25 100644
--- a/src/mame/drivers/nyny.cpp
+++ b/src/mame/drivers/nyny.cpp
@@ -622,8 +622,8 @@ void nyny_state::nyny(machine_config &config)
m_mc6845->set_screen("screen");
m_mc6845->set_show_border_area(false);
m_mc6845->set_char_width(8);
- m_mc6845->set_update_row_callback(FUNC(nyny_state::crtc_update_row), this);
- m_mc6845->set_end_update_callback(FUNC(nyny_state::crtc_end_update), this);
+ m_mc6845->set_update_row_callback(FUNC(nyny_state::crtc_update_row));
+ m_mc6845->set_end_update_callback(FUNC(nyny_state::crtc_end_update));
m_mc6845->out_de_callback().set(m_ic48_1, FUNC(ttl74123_device::a_w));
/* 74LS123 */
diff --git a/src/mame/drivers/offtwall.cpp b/src/mame/drivers/offtwall.cpp
index 9cbc03d71a9..25099d5bed4 100644
--- a/src/mame/drivers/offtwall.cpp
+++ b/src/mame/drivers/offtwall.cpp
@@ -445,9 +445,9 @@ ROM_END
void offtwall_state::init_offtwall()
{
/* install son-of-slapstic workarounds */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x3fde42, 0x3fde43, read16_delegate(FUNC(offtwall_state::spritecache_count_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x037ec2, 0x037f39, read16_delegate(FUNC(offtwall_state::bankswitch_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x3fdf1e, 0x3fdf1f, read16_delegate(FUNC(offtwall_state::unknown_verify_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x3fde42, 0x3fde43, read16_delegate(*this, FUNC(offtwall_state::spritecache_count_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x037ec2, 0x037f39, read16_delegate(*this, FUNC(offtwall_state::bankswitch_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x3fdf1e, 0x3fdf1f, read16_delegate(*this, FUNC(offtwall_state::unknown_verify_r)));
m_spritecache_count = m_mainram + (0x3fde42 - 0x3fd800)/2;
m_bankswitch_base = (uint16_t *)(memregion("maincpu")->base() + 0x37ec2);
m_unknown_verify_base = m_mainram + (0x3fdf1e - 0x3fd800)/2;
@@ -457,9 +457,9 @@ void offtwall_state::init_offtwall()
void offtwall_state::init_offtwalc()
{
/* install son-of-slapstic workarounds */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x3fde42, 0x3fde43, read16_delegate(FUNC(offtwall_state::spritecache_count_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x037eca, 0x037f43, read16_delegate(FUNC(offtwall_state::bankswitch_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x3fdf24, 0x3fdf25, read16_delegate(FUNC(offtwall_state::unknown_verify_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x3fde42, 0x3fde43, read16_delegate(*this, FUNC(offtwall_state::spritecache_count_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x037eca, 0x037f43, read16_delegate(*this, FUNC(offtwall_state::bankswitch_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x3fdf24, 0x3fdf25, read16_delegate(*this, FUNC(offtwall_state::unknown_verify_r)));
m_spritecache_count = m_mainram + (0x3fde42 - 0x3fd800)/2;
m_bankswitch_base = (uint16_t *)(memregion("maincpu")->base() + 0x37eca);
m_unknown_verify_base = m_mainram + (0x3fdf24 - 0x3fd800)/2;
diff --git a/src/mame/drivers/olibochu.cpp b/src/mame/drivers/olibochu.cpp
index 376d66307ff..497d14a60b7 100644
--- a/src/mame/drivers/olibochu.cpp
+++ b/src/mame/drivers/olibochu.cpp
@@ -182,7 +182,7 @@ TILE_GET_INFO_MEMBER(olibochu_state::get_bg_tile_info)
void olibochu_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(olibochu_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(olibochu_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
void olibochu_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect )
diff --git a/src/mame/drivers/olyboss.cpp b/src/mame/drivers/olyboss.cpp
index 640725d0485..0695d4b8516 100644
--- a/src/mame/drivers/olyboss.cpp
+++ b/src/mame/drivers/olyboss.cpp
@@ -468,7 +468,7 @@ void olyboss_state::olybossd(machine_config &config)
UPD3301(config, m_crtc, XTAL(14'318'181));
m_crtc->set_character_width(8);
- m_crtc->set_display_callback(FUNC(olyboss_state::olyboss_display_pixels), this);
+ m_crtc->set_display_callback(FUNC(olyboss_state::olyboss_display_pixels));
m_crtc->drq_wr_callback().set(m_dma, FUNC(i8257_device::dreq2_w));
m_crtc->int_wr_callback().set(m_uic, FUNC(am9519_device::ireq0_w)).invert();
m_crtc->set_screen(SCREEN_TAG);
diff --git a/src/mame/drivers/onetwo.cpp b/src/mame/drivers/onetwo.cpp
index 1f624b1ef54..6cba8e87ac0 100644
--- a/src/mame/drivers/onetwo.cpp
+++ b/src/mame/drivers/onetwo.cpp
@@ -121,7 +121,7 @@ TILE_GET_INFO_MEMBER(onetwo_state::get_fg_tile_info)
void onetwo_state::video_start()
{
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(onetwo_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(onetwo_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
}
uint32_t onetwo_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
diff --git a/src/mame/drivers/onyx.cpp b/src/mame/drivers/onyx.cpp
index a5860e56e1b..b632aafc784 100644
--- a/src/mame/drivers/onyx.cpp
+++ b/src/mame/drivers/onyx.cpp
@@ -98,16 +98,16 @@ void onyx_state::z8002_m1_w(uint8_t data)
void onyx_state::c8002_io(address_map &map)
{
- map(0xff00, 0xff07).lrw8("sio1_rw", [this](offs_t offset) { return m_sio[0]->cd_ba_r(offset >> 1); }, [this](offs_t offset, u8 data) { m_sio[0]->cd_ba_w(offset >> 1, data); });
- map(0xff08, 0xff0f).lrw8("sio2_rw", [this](offs_t offset) { return m_sio[1]->cd_ba_r(offset >> 1); }, [this](offs_t offset, u8 data) { m_sio[1]->cd_ba_w(offset >> 1, data); });
- map(0xff10, 0xff17).lrw8("sio3_rw", [this](offs_t offset) { return m_sio[2]->cd_ba_r(offset >> 1); }, [this](offs_t offset, u8 data) { m_sio[2]->cd_ba_w(offset >> 1, data); });
- map(0xff18, 0xff1f).lrw8("sio4_rw", [this](offs_t offset) { return m_sio[3]->cd_ba_r(offset >> 1); }, [this](offs_t offset, u8 data) { m_sio[3]->cd_ba_w(offset >> 1, data); });
- map(0xff20, 0xff27).lrw8("sio5_rw", [this](offs_t offset) { return m_sio[4]->cd_ba_r(offset >> 1); }, [this](offs_t offset, u8 data) { m_sio[4]->cd_ba_w(offset >> 1, data); });
- map(0xff30, 0xff37).lrw8("ctc1_rw", [this](offs_t offset) { return m_ctc[0]->read(offset >> 1); }, [this](offs_t offset, u8 data) { m_ctc[0]->write(offset >> 1, data); });
- map(0xff38, 0xff3f).lrw8("ctc2_rw", [this](offs_t offset) { return m_ctc[1]->read(offset >> 1); }, [this](offs_t offset, u8 data) { m_ctc[1]->write(offset >> 1, data); });
- map(0xff40, 0xff47).lrw8("ctc3_rw", [this](offs_t offset) { return m_ctc[2]->read(offset >> 1); }, [this](offs_t offset, u8 data) { m_ctc[2]->write(offset >> 1, data); });
- map(0xff50, 0xff57).lrw8("pio1_rw", [this](offs_t offset) { return m_pio[0]->read(offset >> 1); }, [this](offs_t offset, u8 data) { m_pio[0]->write(offset >> 1, data); });
- map(0xff58, 0xff5f).lrw8("pio2_rw", [this](offs_t offset) { return m_pio[1]->read(offset >> 1); }, [this](offs_t offset, u8 data) { m_pio[1]->write(offset >> 1, data); });
+ map(0xff00, 0xff07).lrw8(NAME([this] (offs_t offset) { return m_sio[0]->cd_ba_r(offset >> 1); }), NAME([this] (offs_t offset, u8 data) { m_sio[0]->cd_ba_w(offset >> 1, data); }));
+ map(0xff08, 0xff0f).lrw8(NAME([this] (offs_t offset) { return m_sio[1]->cd_ba_r(offset >> 1); }), NAME([this] (offs_t offset, u8 data) { m_sio[1]->cd_ba_w(offset >> 1, data); }));
+ map(0xff10, 0xff17).lrw8(NAME([this] (offs_t offset) { return m_sio[2]->cd_ba_r(offset >> 1); }), NAME([this] (offs_t offset, u8 data) { m_sio[2]->cd_ba_w(offset >> 1, data); }));
+ map(0xff18, 0xff1f).lrw8(NAME([this] (offs_t offset) { return m_sio[3]->cd_ba_r(offset >> 1); }), NAME([this] (offs_t offset, u8 data) { m_sio[3]->cd_ba_w(offset >> 1, data); }));
+ map(0xff20, 0xff27).lrw8(NAME([this] (offs_t offset) { return m_sio[4]->cd_ba_r(offset >> 1); }), NAME([this] (offs_t offset, u8 data) { m_sio[4]->cd_ba_w(offset >> 1, data); }));
+ map(0xff30, 0xff37).lrw8(NAME([this] (offs_t offset) { return m_ctc[0]->read(offset >> 1); }), NAME([this] (offs_t offset, u8 data) { m_ctc[0]->write(offset >> 1, data); }));
+ map(0xff38, 0xff3f).lrw8(NAME([this] (offs_t offset) { return m_ctc[1]->read(offset >> 1); }), NAME([this] (offs_t offset, u8 data) { m_ctc[1]->write(offset >> 1, data); }));
+ map(0xff40, 0xff47).lrw8(NAME([this] (offs_t offset) { return m_ctc[2]->read(offset >> 1); }), NAME([this] (offs_t offset, u8 data) { m_ctc[2]->write(offset >> 1, data); }));
+ map(0xff50, 0xff57).lrw8(NAME([this] (offs_t offset) { return m_pio[0]->read(offset >> 1); }), NAME([this] (offs_t offset, u8 data) { m_pio[0]->write(offset >> 1, data); }));
+ map(0xff58, 0xff5f).lrw8(NAME([this] (offs_t offset) { return m_pio[1]->read(offset >> 1); }), NAME([this] (offs_t offset, u8 data) { m_pio[1]->write(offset >> 1, data); }));
map(0xffb9, 0xffb9).w(FUNC(onyx_state::z8002_m1_w));
}
diff --git a/src/mame/drivers/opwolf.cpp b/src/mame/drivers/opwolf.cpp
index b9cc31fb9aa..03159113b4e 100644
--- a/src/mame/drivers/opwolf.cpp
+++ b/src/mame/drivers/opwolf.cpp
@@ -930,7 +930,7 @@ void opwolf_state::opwolf(machine_config &config)
PC090OJ(config, m_pc090oj, 0);
m_pc090oj->set_palette("palette");
- m_pc090oj->set_colpri_callback(FUNC(opwolf_state::opwolf_colpri_cb), this);
+ m_pc090oj->set_colpri_callback(FUNC(opwolf_state::opwolf_colpri_cb));
/* sound hardware */
SPEAKER(config, "lspeaker").front_left();
@@ -1004,7 +1004,7 @@ void opwolf_state::opwolfb(machine_config &config) /* OSC clocks unknown for the
PC090OJ(config, m_pc090oj, 0);
m_pc090oj->set_palette("palette");
- m_pc090oj->set_colpri_callback(FUNC(opwolf_state::opwolf_colpri_cb), this);
+ m_pc090oj->set_colpri_callback(FUNC(opwolf_state::opwolf_colpri_cb));
/* sound hardware */
SPEAKER(config, "lspeaker").front_left();
diff --git a/src/mame/drivers/osborne1.cpp b/src/mame/drivers/osborne1.cpp
index a2befac49e2..91f0948b248 100644
--- a/src/mame/drivers/osborne1.cpp
+++ b/src/mame/drivers/osborne1.cpp
@@ -356,8 +356,8 @@ void osborne1nv_state::osborne1nv(machine_config &config)
crtc.set_screen(m_screen);
crtc.set_show_border_area(false);
crtc.set_char_width(8);
- crtc.set_update_row_callback(FUNC(osborne1nv_state::crtc_update_row), this);
- crtc.set_on_update_addr_change_callback(FUNC(osborne1nv_state::crtc_update_addr_changed), this);
+ crtc.set_update_row_callback(FUNC(osborne1nv_state::crtc_update_row));
+ crtc.set_on_update_addr_change_callback(FUNC(osborne1nv_state::crtc_update_addr_changed));
}
diff --git a/src/mame/drivers/othello.cpp b/src/mame/drivers/othello.cpp
index c567e44b770..5ccd1edd8d0 100644
--- a/src/mame/drivers/othello.cpp
+++ b/src/mame/drivers/othello.cpp
@@ -423,7 +423,7 @@ void othello_state::othello(machine_config &config)
crtc.set_screen("screen");
crtc.set_show_border_area(false);
crtc.set_char_width(TILE_WIDTH);
- crtc.set_update_row_callback(FUNC(othello_state::crtc_update_row), this);
+ crtc.set_update_row_callback(FUNC(othello_state::crtc_update_row));
/* sound hardware */
SPEAKER(config, "speaker").front_center();
diff --git a/src/mame/drivers/overdriv.cpp b/src/mame/drivers/overdriv.cpp
index 9783d66210f..b61be4c5beb 100644
--- a/src/mame/drivers/overdriv.cpp
+++ b/src/mame/drivers/overdriv.cpp
@@ -356,7 +356,7 @@ void overdriv_state::overdriv(machine_config &config)
PALETTE(config, "palette").set_format(palette_device::xBGR_555, 2048).enable_shadows();
K053246(config, m_k053246, 0);
- m_k053246->set_sprite_callback(FUNC(overdriv_state::sprite_callback), this);
+ m_k053246->set_sprite_callback(FUNC(overdriv_state::sprite_callback));
m_k053246->set_config(NORMAL_PLANE_ORDER, 77, 22);
m_k053246->set_palette("palette");
@@ -364,12 +364,12 @@ void overdriv_state::overdriv(machine_config &config)
m_k051316_1->set_palette("palette");
m_k051316_1->set_offsets(14, -1);
m_k051316_1->set_wrap(1);
- m_k051316_1->set_zoom_callback(FUNC(overdriv_state::zoom_callback_1), this);
+ m_k051316_1->set_zoom_callback(FUNC(overdriv_state::zoom_callback_1));
K051316(config, m_k051316_2, 0);
m_k051316_2->set_palette("palette");
m_k051316_2->set_offsets(15, 1);
- m_k051316_2->set_zoom_callback(FUNC(overdriv_state::zoom_callback_2), this);
+ m_k051316_2->set_zoom_callback(FUNC(overdriv_state::zoom_callback_2));
K053251(config, m_k053251, 0);
diff --git a/src/mame/drivers/pacman.cpp b/src/mame/drivers/pacman.cpp
index 8db2f53d5dc..03f0b2d0015 100644
--- a/src/mame/drivers/pacman.cpp
+++ b/src/mame/drivers/pacman.cpp
@@ -7190,9 +7190,9 @@ ROM_END
void pacman_state::init_maketrax()
{
/* set up protection handlers */
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x5004, 0x5004, write8_delegate(FUNC(pacman_state::maketrax_protection_w),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x5080, 0x50bf, read8_delegate(FUNC(pacman_state::maketrax_special_port2_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x50c0, 0x50ff, read8_delegate(FUNC(pacman_state::maketrax_special_port3_r),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x5004, 0x5004, write8_delegate(*this, FUNC(pacman_state::maketrax_protection_w)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x5080, 0x50bf, read8_delegate(*this, FUNC(pacman_state::maketrax_special_port2_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x50c0, 0x50ff, read8_delegate(*this, FUNC(pacman_state::maketrax_special_port3_r)));
save_item(NAME(m_maketrax_disable_protection));
save_item(NAME(m_maketrax_offset));
@@ -7202,7 +7202,7 @@ void pacman_state::init_maketrax()
void pacman_state::init_mbrush()
{
/* set up protection handlers */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x5080, 0x50ff, read8_delegate(FUNC(pacman_state::mbrush_prot_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x5080, 0x50ff, read8_delegate(*this, FUNC(pacman_state::mbrush_prot_r)));
}
void pacman_state::init_ponpoko()
@@ -7493,7 +7493,7 @@ READ8_MEMBER(pacman_state::mspacii_protection_r)
void pacman_state::init_mspacii()
{
// protection
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x504d, 0x506f, read8_delegate(FUNC(pacman_state::mspacii_protection_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x504d, 0x506f, read8_delegate(*this, FUNC(pacman_state::mspacii_protection_r)));
}
void pacman_state::init_superabc()
@@ -7556,7 +7556,7 @@ void pacman_state::init_cannonbp()
m_maincpu->space(AS_PROGRAM).install_ram(0x4800, 0x4bff);
/* protection? */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x3000, 0x3fff, read8_delegate(FUNC(pacman_state::cannonbp_protection_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x3000, 0x3fff, read8_delegate(*this, FUNC(pacman_state::cannonbp_protection_r)));
}
void pacman_state::init_pengomc1()
diff --git a/src/mame/drivers/palestra.cpp b/src/mame/drivers/palestra.cpp
index a32abb73d92..97687c386e9 100644
--- a/src/mame/drivers/palestra.cpp
+++ b/src/mame/drivers/palestra.cpp
@@ -76,7 +76,7 @@ void palestra_state::palestra(machine_config &config)
NETLIST_CPU(config, m_maincpu, NETLIST_CLOCK)
.set_source(netlist_palestra);
- NETLIST_ANALOG_OUTPUT(config, "maincpu:vid0").set_params("videomix", FUNC(fixedfreq_device::update_composite_monochrome), "fixfreq");
+ NETLIST_ANALOG_OUTPUT(config, "maincpu:vid0").set_params("videomix", m_video, FUNC(fixedfreq_device::update_composite_monochrome));
SCREEN(config, "screen", SCREEN_TYPE_RASTER);
FIXFREQ(config, m_video).set_screen("screen");
diff --git a/src/mame/drivers/panicr.cpp b/src/mame/drivers/panicr.cpp
index 2fb4549b3cc..6f5ef7547ab 100644
--- a/src/mame/drivers/panicr.cpp
+++ b/src/mame/drivers/panicr.cpp
@@ -237,10 +237,10 @@ TILE_GET_INFO_MEMBER(panicr_state::get_txttile_info)
void panicr_state::video_start()
{
- m_bgtilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(panicr_state::get_bgtile_info),this),TILEMAP_SCAN_ROWS,16,16,1024,16 );
- m_infotilemap_2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(panicr_state::get_infotile_info_2),this),TILEMAP_SCAN_ROWS,16,16,1024,16 );
+ m_bgtilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(panicr_state::get_bgtile_info)), TILEMAP_SCAN_ROWS, 16,16, 1024,16);
+ m_infotilemap_2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(panicr_state::get_infotile_info_2)), TILEMAP_SCAN_ROWS, 16,16, 1024,16);
- m_txttilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(panicr_state::get_txttile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32 );
+ m_txttilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(panicr_state::get_txttile_info)), TILEMAP_SCAN_ROWS, 8,8, 32,32);
m_txttilemap->configure_groups(*m_gfxdecode->gfx(0), 0);
save_item(NAME(m_scrollx));
diff --git a/src/mame/drivers/paradise.cpp b/src/mame/drivers/paradise.cpp
index 4c73aef6164..6db7f5a39be 100644
--- a/src/mame/drivers/paradise.cpp
+++ b/src/mame/drivers/paradise.cpp
@@ -1408,14 +1408,14 @@ void paradise_state::init_paradise()
void paradise_state::init_tgtball()
{
m_sprite_inc = 4;
- m_maincpu->space(AS_IO).install_write_handler(0x2001, 0x2001, write8_delegate(FUNC(paradise_state::tgtball_flipscreen_w),this));
+ m_maincpu->space(AS_IO).install_write_handler(0x2001, 0x2001, write8_delegate(*this, FUNC(paradise_state::tgtball_flipscreen_w)));
}
void paradise_state::init_torus()
{
m_sprite_inc = 4;
- m_maincpu->space(AS_IO).install_write_handler(0x2070, 0x2070, write8_delegate(FUNC(paradise_state::torus_coin_counter_w),this));
+ m_maincpu->space(AS_IO).install_write_handler(0x2070, 0x2070, write8_delegate(*this, FUNC(paradise_state::torus_coin_counter_w)));
}
diff --git a/src/mame/drivers/parodius.cpp b/src/mame/drivers/parodius.cpp
index f450fc04769..549f9d8c799 100644
--- a/src/mame/drivers/parodius.cpp
+++ b/src/mame/drivers/parodius.cpp
@@ -251,12 +251,12 @@ void parodius_state::parodius(machine_config &config)
K052109(config, m_k052109, 0);
m_k052109->set_palette("palette");
m_k052109->set_screen("screen");
- m_k052109->set_tile_callback(FUNC(parodius_state::tile_callback), this);
+ m_k052109->set_tile_callback(FUNC(parodius_state::tile_callback));
m_k052109->irq_handler().set_inputline(m_maincpu, KONAMI_IRQ_LINE);
K053245(config, m_k053245, 0);
m_k053245->set_palette("palette");
- m_k053245->set_sprite_callback(FUNC(parodius_state::sprite_callback), this);
+ m_k053245->set_sprite_callback(FUNC(parodius_state::sprite_callback));
K053251(config, m_k053251, 0);
diff --git a/src/mame/drivers/partner.cpp b/src/mame/drivers/partner.cpp
index 8b41a0dbc57..48daf21ca15 100644
--- a/src/mame/drivers/partner.cpp
+++ b/src/mame/drivers/partner.cpp
@@ -177,7 +177,7 @@ void partner_state::partner(machine_config &config)
auto &i8275(I8275(config, "i8275", 16_MHz_XTAL / 12));
i8275.set_character_width(6);
- i8275.set_display_callback(FUNC(partner_state::display_pixels), this);
+ i8275.set_display_callback(FUNC(partner_state::display_pixels));
i8275.drq_wr_callback().set("dma8257", FUNC(i8257_device::dreq2_w));
/* video hardware */
diff --git a/src/mame/drivers/pasha2.cpp b/src/mame/drivers/pasha2.cpp
index 5885b1c6aba..a2706473e81 100644
--- a/src/mame/drivers/pasha2.cpp
+++ b/src/mame/drivers/pasha2.cpp
@@ -466,7 +466,7 @@ READ16_MEMBER(pasha2_state::pasha2_speedup_r)
void pasha2_state::init_pasha2()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x95744, 0x95747, read16_delegate(FUNC(pasha2_state::pasha2_speedup_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x95744, 0x95747, read16_delegate(*this, FUNC(pasha2_state::pasha2_speedup_r)));
m_mainbank->configure_entries(0, 6, memregion("bankeddata")->base(), 0x400000);
m_mainbank->set_entry(0);
diff --git a/src/mame/drivers/pasopia.cpp b/src/mame/drivers/pasopia.cpp
index 60f35e838c6..16a0943bb7f 100644
--- a/src/mame/drivers/pasopia.cpp
+++ b/src/mame/drivers/pasopia.cpp
@@ -344,7 +344,7 @@ void pasopia_state::pasopia(machine_config &config)
m_crtc->set_screen("screen");
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8);
- m_crtc->set_update_row_callback(FUNC(pasopia_state::crtc_update_row), this);
+ m_crtc->set_update_row_callback(FUNC(pasopia_state::crtc_update_row));
I8255A(config, m_ppi0);
m_ppi0->out_pa_callback().set(FUNC(pasopia_state::vram_addr_lo_w));
diff --git a/src/mame/drivers/patapata.cpp b/src/mame/drivers/patapata.cpp
index 8139df2dcce..f34c14f778e 100644
--- a/src/mame/drivers/patapata.cpp
+++ b/src/mame/drivers/patapata.cpp
@@ -118,12 +118,12 @@ TILEMAP_MAPPER_MEMBER(patapata_state::pagescan)
void patapata_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(patapata_state::get_bg_tile_info),this), tilemap_mapper_delegate(FUNC(patapata_state::pagescan),this), 16, 16, 1024,16*2);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(patapata_state::get_fg_tile_info),this), tilemap_mapper_delegate(FUNC(patapata_state::pagescan),this), 16, 16, 1024,16*2);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(patapata_state::get_bg_tile_info)), tilemap_mapper_delegate(*this, FUNC(patapata_state::pagescan)), 16, 16, 1024, 16*2);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(patapata_state::get_fg_tile_info)), tilemap_mapper_delegate(*this, FUNC(patapata_state::pagescan)), 16, 16, 1024, 16*2);
// 2nd half of the ram seems unused, maybe it's actually a mirror meaning this would be the correct tilemap sizes
-// m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(patapata_state::get_bg_tile_info),this), tilemap_mapper_delegate(FUNC(patapata_state::pagescan),this), 16, 16, 1024/2,16*2);
-// m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(patapata_state::get_fg_tile_info),this), tilemap_mapper_delegate(FUNC(patapata_state::pagescan),this), 16, 16, 1024/2,16*2);
+// m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(patapata_state::get_bg_tile_info)), tilemap_mapper_delegate(*this, FUNC(patapata_state::pagescan)), 16, 16, 1024/2, 16*2);
+// m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(patapata_state::get_fg_tile_info)), tilemap_mapper_delegate(*this, FUNC(patapata_state::pagescan)), 16, 16, 1024/2, 16*2);
m_fg_tilemap->set_transparent_pen(0xf);
diff --git a/src/mame/drivers/patinho_feio.cpp b/src/mame/drivers/patinho_feio.cpp
index 5cfc76779a8..872bd11ea8a 100644
--- a/src/mame/drivers/patinho_feio.cpp
+++ b/src/mame/drivers/patinho_feio.cpp
@@ -282,7 +282,7 @@ void patinho_feio_state::patinho_feio(machine_config &config)
m_tty->set_keyboard_callback(FUNC(patinho_feio_state::teletype_kbd_input));
/* punched tape */
- GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "patinho_tape", "bin").set_device_load(FUNC(patinho_feio_state::tape_load), this);
+ GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "patinho_tape", "bin").set_device_load(FUNC(patinho_feio_state::tape_load));
config.set_default_layout(layout_patinho);
diff --git a/src/mame/drivers/pbaction.cpp b/src/mame/drivers/pbaction.cpp
index 1fa8cc13dc6..f3a4ffcdb5e 100644
--- a/src/mame/drivers/pbaction.cpp
+++ b/src/mame/drivers/pbaction.cpp
@@ -695,14 +695,12 @@ void pbaction_state::init_pbaction2()
{
uint8_t *rom = memregion("maincpu")->base();
- /* first of all, do a simple bitswap */
+ // first of all, do a simple bitswap
for (int i = 0; i < 0xc000; i++)
- {
rom[i] = bitswap<8>(rom[i], 7,6,5,4,1,2,3,0);
- }
- /* install a protection (?) workaround */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xc000, 0xc000, read8_delegate(FUNC(pbaction_state::pbaction2_prot_kludge_r),this) );
+ // install a protection (?) workaround
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xc000, 0xc000, read8_delegate(*this, FUNC(pbaction_state::pbaction2_prot_kludge_r)) );
}
diff --git a/src/mame/drivers/pc100.cpp b/src/mame/drivers/pc100.cpp
index a3653e6738a..d088eb9b209 100644
--- a/src/mame/drivers/pc100.cpp
+++ b/src/mame/drivers/pc100.cpp
@@ -353,8 +353,9 @@ void pc100_state::pc100_io(address_map &map)
map(0x3a, 0x3a).w(FUNC(pc100_state::pc100_crtc_data_w)); //crtc data reg
map(0x3c, 0x3f).rw(FUNC(pc100_state::pc100_vs_vreg_r), FUNC(pc100_state::pc100_vs_vreg_w)).umask16(0x00ff); //crtc vertical start position
map(0x40, 0x5f).ram().w(m_palette, FUNC(palette_device::write16)).share("palette");
- map(0x60, 0x61).r(read16_delegate([this](address_space &s, offs_t o, u8 mm) { return m_crtc.cmd; }, "pc100_crtc_cmd_r")).
- w(write16_delegate([this](address_space &s, offs_t o, u16 d, u8 mm) { m_crtc.cmd = d; }, "pc100_crtc_cmd_w"));
+ map(0x60, 0x61).lrw16(
+ NAME([this] () { return m_crtc.cmd; }),
+ NAME([this] (u16 d) { m_crtc.cmd = d; }));
map(0x80, 0x81).rw(FUNC(pc100_state::pc100_kanji_r), FUNC(pc100_state::pc100_kanji_w));
map(0x82, 0x83).nopw(); //kanji-related?
map(0x84, 0x87).nopw(); //kanji "strobe" signal 0/1
diff --git a/src/mame/drivers/pc2000.cpp b/src/mame/drivers/pc2000.cpp
index 3b7a7837988..cdb51981fb5 100644
--- a/src/mame/drivers/pc2000.cpp
+++ b/src/mame/drivers/pc2000.cpp
@@ -916,7 +916,7 @@ void pc2000_state::pc2000(machine_config &config)
SPEAKER(config, "mono").front_center();
BEEP(config, m_beep, 3250).add_route(ALL_OUTPUTS, "mono", 1.00);
- GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "genius_cart").set_device_load(FUNC(pc2000_state::cart_load), this);
+ GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "genius_cart").set_device_load(FUNC(pc2000_state::cart_load));
SOFTWARE_LIST(config, "pc1000_cart").set_compatible("pc1000");
}
diff --git a/src/mame/drivers/pc6001.cpp b/src/mame/drivers/pc6001.cpp
index 73c840dbc4a..4ea82cb4ab5 100644
--- a/src/mame/drivers/pc6001.cpp
+++ b/src/mame/drivers/pc6001.cpp
@@ -1349,7 +1349,7 @@ void pc6001_state::machine_reset()
set_videoram_bank(0xc000);
if (m_cart->exists())
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x4000, 0x5fff, read8sm_delegate(FUNC(generic_slot_device::read_rom),(generic_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x4000, 0x5fff, read8sm_delegate(*m_cart, FUNC(generic_slot_device::read_rom)));
std::string region_tag;
m_cart_rom = memregion(region_tag.assign(m_cart->tag()).append(GENERIC_ROM_REGION_TAG).c_str());
diff --git a/src/mame/drivers/pc8001.cpp b/src/mame/drivers/pc8001.cpp
index bbcf9e8b3ed..a5a5be31e78 100644
--- a/src/mame/drivers/pc8001.cpp
+++ b/src/mame/drivers/pc8001.cpp
@@ -511,7 +511,7 @@ void pc8001_state::pc8001(machine_config &config)
UPD3301(config, m_crtc, XTAL(14'318'181));
m_crtc->set_character_width(8);
- m_crtc->set_display_callback(FUNC(pc8001_state::pc8001_display_pixels), this);
+ m_crtc->set_display_callback(FUNC(pc8001_state::pc8001_display_pixels));
m_crtc->drq_wr_callback().set(m_dma, FUNC(i8257_device::dreq2_w));
m_crtc->set_screen(SCREEN_TAG);
@@ -561,7 +561,7 @@ void pc8001mk2_state::pc8001mk2(machine_config &config)
UPD3301(config, m_crtc, XTAL(14'318'181));
m_crtc->set_character_width(8);
- m_crtc->set_display_callback(FUNC(pc8001_state::pc8001_display_pixels), this);
+ m_crtc->set_display_callback(FUNC(pc8001_state::pc8001_display_pixels));
m_crtc->drq_wr_callback().set(m_dma, FUNC(i8257_device::dreq2_w));
m_crtc->set_screen(SCREEN_TAG);
diff --git a/src/mame/drivers/pc9801.cpp b/src/mame/drivers/pc9801.cpp
index 58ca84c67a5..d8268628051 100644
--- a/src/mame/drivers/pc9801.cpp
+++ b/src/mame/drivers/pc9801.cpp
@@ -1422,7 +1422,7 @@ void pc9801_state::pc9821_io(address_map &map)
{
// map.unmap_value_high(); // TODO: a read to somewhere makes this to fail at POST
map(0x0000, 0x001f).rw(m_dmac, FUNC(am9517a_device::read), FUNC(am9517a_device::write)).umask32(0xff00ff00);
- map(0x0000, 0x001f).r(read8_delegate([this](address_space &s, offs_t o, u8 mm) { return BIT(o, 1) ? 0xff : pic_r(s, o, mm); }, "pc9821_pic")).umask32(0x00ff00ff);
+ map(0x0000, 0x001f).lr8(NAME([this] (address_space &s, offs_t o, u8 mm) { return BIT(o, 1) ? 0xff : pic_r(s, o, mm); })).umask32(0x00ff00ff);
map(0x0000, 0x001f).w(FUNC(pc9801_state::pic_w)).umask32(0x00ff00ff); // i8259 PIC (bit 3 ON slave / master) / i8237 DMA
map(0x0020, 0x002f).w(FUNC(pc9801_state::rtc_w)).umask32(0x000000ff);
map(0x0020, 0x002f).w(FUNC(pc9801_state::dmapg8_w)).umask32(0xff00ff00);
@@ -1471,7 +1471,7 @@ void pc9801_state::pc9821_io(address_map &map)
// map(0x0cc0, 0x0cc7) SCSI interface / <undefined>
// map(0x0cfc, 0x0cff) PCI bus
map(0x1e8c, 0x1e8f).noprw(); // IDE RAM switch
- map(0x2ed0, 0x2edf).r(read8_delegate([](address_space &s, offs_t o, u8 mm) { return 0xff; }, "pc9821_unkaudio")).umask32(0xffffffff); // unknown sound related
+ map(0x2ed0, 0x2edf).lr8(NAME([] (address_space &s, offs_t o, u8 mm) { return 0xff; })).umask32(0xffffffff); // unknown sound related
map(0x3fd8, 0x3fdf).rw(m_pit8253, FUNC(pit8253_device::read), FUNC(pit8253_device::write)).umask32(0xff00ff00); // <undefined> / pit mirror ports
map(0x7fd8, 0x7fdf).rw("ppi8255_mouse", FUNC(i8255_device::read), FUNC(i8255_device::write)).umask32(0xff00ff00);
map(0x841c, 0x841f).rw(FUNC(pc9801_state::sdip_0_r), FUNC(pc9801_state::sdip_0_w));
diff --git a/src/mame/drivers/pcw.cpp b/src/mame/drivers/pcw.cpp
index 88460dde163..93bb6a14139 100644
--- a/src/mame/drivers/pcw.cpp
+++ b/src/mame/drivers/pcw.cpp
@@ -245,7 +245,7 @@ void pcw_state::pcw_update_read_memory_block(int block, int bank)
if (bank == 3)
{
/* when upper 16 bytes are accessed use keyboard read handler */
- space.install_read_handler( block * 0x04000 + 0x3ff0, block * 0x04000 + 0x3fff, read8_delegate(FUNC(pcw_state::pcw_keyboard_data_r),this));
+ space.install_read_handler( block * 0x04000 + 0x3ff0, block * 0x04000 + 0x3fff, read8_delegate(*this, FUNC(pcw_state::pcw_keyboard_data_r)));
LOGMEM("MEM: read block %i -> bank %i\n", block, bank);
}
else
@@ -1291,7 +1291,7 @@ void pcw_state::pcw(machine_config &config)
/* internal ram */
RAM(config, m_ram).set_default_size("256K");
- TIMER(config, "pcw_timer", 0).configure_periodic(timer_device::expired_delegate(FUNC(pcw_state::pcw_timer_interrupt), this), attotime::from_hz(300));
+ TIMER(config, "pcw_timer", 0).configure_periodic(FUNC(pcw_state::pcw_timer_interrupt), attotime::from_hz(300));
}
void pcw_state::pcw8256(machine_config &config)
diff --git a/src/mame/drivers/pcxt.cpp b/src/mame/drivers/pcxt.cpp
index 51ffa944a9d..5a224b39f2b 100644
--- a/src/mame/drivers/pcxt.cpp
+++ b/src/mame/drivers/pcxt.cpp
@@ -173,7 +173,7 @@ void isa8_cga_tetriskr_device::device_start()
{
m_bg_bank = 0;
isa8_cga_superimpose_device::device_start();
- m_isa->install_device(0x3c0, 0x3c0, read8_delegate( FUNC(isa8_cga_tetriskr_device::bg_bank_r), this ), write8_delegate( FUNC(isa8_cga_tetriskr_device::bg_bank_w), this ) );
+ m_isa->install_device(0x3c0, 0x3c0, read8_delegate(*this, FUNC(isa8_cga_tetriskr_device::bg_bank_r)), write8_delegate(*this, FUNC(isa8_cga_tetriskr_device::bg_bank_w)));
}
WRITE8_MEMBER(isa8_cga_tetriskr_device::bg_bank_w)
diff --git a/src/mame/drivers/pegasus.cpp b/src/mame/drivers/pegasus.cpp
index 9abe19518be..71412a3632a 100644
--- a/src/mame/drivers/pegasus.cpp
+++ b/src/mame/drivers/pegasus.cpp
@@ -462,15 +462,15 @@ image_init_result pegasus_state::load_cart(device_image_interface &image, generi
void pegasus_state::machine_start()
{
if (m_exp_00->exists())
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x0000, 0x0fff, read8sm_delegate(FUNC(generic_slot_device::read_rom),(generic_slot_device*)m_exp_00));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x0000, 0x0fff, read8sm_delegate(*m_exp_00, FUNC(generic_slot_device::read_rom)));
if (m_exp_01->exists())
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x1000, 0x1fff, read8sm_delegate(FUNC(generic_slot_device::read_rom),(generic_slot_device*)m_exp_01));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x1000, 0x1fff, read8sm_delegate(*m_exp_01, FUNC(generic_slot_device::read_rom)));
if (m_exp_02->exists())
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x2000, 0x2fff, read8sm_delegate(FUNC(generic_slot_device::read_rom),(generic_slot_device*)m_exp_02));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x2000, 0x2fff, read8sm_delegate(*m_exp_02, FUNC(generic_slot_device::read_rom)));
if (m_exp_0c->exists())
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xc000, 0xcfff, read8sm_delegate(FUNC(generic_slot_device::read_rom),(generic_slot_device*)m_exp_0c));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xc000, 0xcfff, read8sm_delegate(*m_exp_0c, FUNC(generic_slot_device::read_rom)));
if (m_exp_0d->exists())
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xd000, 0xdfff, read8sm_delegate(FUNC(generic_slot_device::read_rom),(generic_slot_device*)m_exp_0d));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xd000, 0xdfff, read8sm_delegate(*m_exp_0d, FUNC(generic_slot_device::read_rom)));
}
void pegasus_state::machine_reset()
@@ -525,11 +525,11 @@ void pegasus_state::pegasus(machine_config &config)
m_pia_u->irqa_handler().set_inputline("maincpu", M6809_IRQ_LINE);
m_pia_u->irqb_handler().set_inputline("maincpu", M6809_IRQ_LINE);
- GENERIC_SOCKET(config, "exp00", generic_plain_slot, "pegasus_cart").set_device_load(FUNC(pegasus_state::exp00_load), this);
- GENERIC_SOCKET(config, "exp01", generic_plain_slot, "pegasus_cart").set_device_load(FUNC(pegasus_state::exp01_load), this);
- GENERIC_SOCKET(config, "exp02", generic_plain_slot, "pegasus_cart").set_device_load(FUNC(pegasus_state::exp02_load), this);
- GENERIC_SOCKET(config, "exp0c", generic_plain_slot, "pegasus_cart").set_device_load(FUNC(pegasus_state::exp0c_load), this);
- GENERIC_SOCKET(config, "exp0d", generic_plain_slot, "pegasus_cart").set_device_load(FUNC(pegasus_state::exp0d_load), this);
+ GENERIC_SOCKET(config, "exp00", generic_plain_slot, "pegasus_cart").set_device_load(FUNC(pegasus_state::exp00_load));
+ GENERIC_SOCKET(config, "exp01", generic_plain_slot, "pegasus_cart").set_device_load(FUNC(pegasus_state::exp01_load));
+ GENERIC_SOCKET(config, "exp02", generic_plain_slot, "pegasus_cart").set_device_load(FUNC(pegasus_state::exp02_load));
+ GENERIC_SOCKET(config, "exp0c", generic_plain_slot, "pegasus_cart").set_device_load(FUNC(pegasus_state::exp0c_load));
+ GENERIC_SOCKET(config, "exp0d", generic_plain_slot, "pegasus_cart").set_device_load(FUNC(pegasus_state::exp0d_load));
CASSETTE(config, m_cass);
m_cass->set_default_state(CASSETTE_STOPPED|CASSETTE_MOTOR_ENABLED);
diff --git a/src/mame/drivers/pencil2.cpp b/src/mame/drivers/pencil2.cpp
index 9076c588f11..b736065dfb5 100644
--- a/src/mame/drivers/pencil2.cpp
+++ b/src/mame/drivers/pencil2.cpp
@@ -306,7 +306,7 @@ INPUT_PORTS_END
void pencil2_state::machine_start()
{
if (m_cart->exists())
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x8000, 0xffff, read8sm_delegate(FUNC(generic_slot_device::read_rom),(generic_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x8000, 0xffff, read8sm_delegate(*m_cart, FUNC(generic_slot_device::read_rom)));
}
void pencil2_state::pencil2(machine_config &config)
diff --git a/src/mame/drivers/pentagon.cpp b/src/mame/drivers/pentagon.cpp
index 83708376c0e..fa9a8bb4518 100644
--- a/src/mame/drivers/pentagon.cpp
+++ b/src/mame/drivers/pentagon.cpp
@@ -225,8 +225,8 @@ MACHINE_RESET_MEMBER(pentagon_state,pentagon)
m_program = &m_maincpu->space(AS_PROGRAM);
m_p_ram = memregion("maincpu")->base();
- m_program->install_write_handler(0x4000, 0x5aff, write8_delegate(FUNC(pentagon_state::pentagon_scr_w), this));
- m_program->install_write_handler(0xc000, 0xdaff, write8_delegate(FUNC(pentagon_state::pentagon_scr2_w), this));
+ m_program->install_write_handler(0x4000, 0x5aff, write8_delegate(*this, FUNC(pentagon_state::pentagon_scr_w)));
+ m_program->install_write_handler(0xc000, 0xdaff, write8_delegate(*this, FUNC(pentagon_state::pentagon_scr2_w)));
if (m_beta->started())
{
diff --git a/src/mame/drivers/peoplepc.cpp b/src/mame/drivers/peoplepc.cpp
index ed7beef1aad..73239e9c5af 100644
--- a/src/mame/drivers/peoplepc.cpp
+++ b/src/mame/drivers/peoplepc.cpp
@@ -281,7 +281,7 @@ void peoplepc_state::olypeopl(machine_config &config)
crtc.set_screen("screen");
crtc.set_show_border_area(false);
crtc.set_char_width(8);
- crtc.set_update_row_callback(FUNC(peoplepc_state::update_row), this);
+ crtc.set_update_row_callback(FUNC(peoplepc_state::update_row));
I8257(config, m_dmac, XTAL(14'745'600)/3);
m_dmac->out_hrq_cb().set(FUNC(peoplepc_state::hrq_w));
diff --git a/src/mame/drivers/peplus.cpp b/src/mame/drivers/peplus.cpp
index c69232af1f7..2c94fb51238 100644
--- a/src/mame/drivers/peplus.cpp
+++ b/src/mame/drivers/peplus.cpp
@@ -957,7 +957,7 @@ TILE_GET_INFO_MEMBER(peplus_state::get_bg_tile_info)
void peplus_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(peplus_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 40, 25);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(peplus_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 40, 25);
m_palette_ram[0] = std::make_unique<uint8_t[]>(0x3000);
memset(m_palette_ram[0].get(), 0, 0x3000);
m_palette_ram[1] = std::make_unique<uint8_t[]>(0x3000);
@@ -1400,7 +1400,7 @@ void peplus_state::peplus(machine_config &config)
m_crtc->set_screen(m_screen);
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8);
- m_crtc->set_on_update_addr_change_callback(FUNC(peplus_state::crtc_addr), this);
+ m_crtc->set_on_update_addr_change_callback(FUNC(peplus_state::crtc_addr));
m_crtc->out_vsync_callback().set(FUNC(peplus_state::crtc_vsync));
I2C_X2404P(config, m_i2cmem);
diff --git a/src/mame/drivers/pet.cpp b/src/mame/drivers/pet.cpp
index 75e07cb0b84..1bc29e04ed3 100644
--- a/src/mame/drivers/pet.cpp
+++ b/src/mame/drivers/pet.cpp
@@ -1714,7 +1714,7 @@ void pet_state::base_pet_devices(machine_config &config, const char *default_dri
m_user->pm_handler().set(m_via, FUNC(via6522_device::write_cb2));
quickload_image_device &quickload(QUICKLOAD(config, "quickload", "p00,prg", CBM_QUICKLOAD_DELAY));
- quickload.set_load_callback(FUNC(pet_state::quickload_pet), this);
+ quickload.set_load_callback(FUNC(pet_state::quickload_pet));
quickload.set_interface("cbm_quik");
SOFTWARE_LIST(config, "cass_list").set_original("pet_cass");
@@ -1896,8 +1896,8 @@ void pet2001b_state::pet4032f(machine_config &config)
m_crtc->set_screen(SCREEN_TAG);
m_crtc->set_show_border_area(true);
m_crtc->set_char_width(8);
- m_crtc->set_begin_update_callback(FUNC(pet_state::pet_begin_update), this);
- m_crtc->set_update_row_callback(FUNC(pet_state::pet40_update_row), this);
+ m_crtc->set_begin_update_callback(FUNC(pet_state::pet_begin_update));
+ m_crtc->set_update_row_callback(FUNC(pet_state::pet40_update_row));
m_crtc->out_vsync_callback().set(M6520_1_TAG, FUNC(pia6821_device::cb1_w));
// sound hardware
@@ -1952,8 +1952,8 @@ void pet_state::cbm4032f(machine_config &config)
m_crtc->set_screen(SCREEN_TAG);
m_crtc->set_show_border_area(true);
m_crtc->set_char_width(8);
- m_crtc->set_begin_update_callback(FUNC(pet_state::pet_begin_update), this);
- m_crtc->set_update_row_callback(FUNC(pet_state::pet40_update_row), this);
+ m_crtc->set_begin_update_callback(FUNC(pet_state::pet_begin_update));
+ m_crtc->set_update_row_callback(FUNC(pet_state::pet40_update_row));
m_crtc->out_vsync_callback().set(M6520_1_TAG, FUNC(pia6821_device::cb1_w));
// sound hardware
@@ -2018,8 +2018,8 @@ void pet80_state::pet80(machine_config &config)
m_crtc->set_screen(SCREEN_TAG);
m_crtc->set_show_border_area(true);
m_crtc->set_char_width(2*8);
- m_crtc->set_begin_update_callback(FUNC(pet_state::pet_begin_update), this);
- m_crtc->set_update_row_callback(FUNC(pet80_state::pet80_update_row), this);
+ m_crtc->set_begin_update_callback(FUNC(pet_state::pet_begin_update));
+ m_crtc->set_update_row_callback(FUNC(pet80_state::pet80_update_row));
m_crtc->out_vsync_callback().set(M6520_1_TAG, FUNC(pia6821_device::cb1_w));
// sound hardware
@@ -2073,7 +2073,7 @@ void cbm8296_state::cbm8296(machine_config &config)
m_crtc->set_clock(XTAL(16'000'000)/16);
m_crtc->set_show_border_area(true);
m_crtc->set_char_width(2*8);
- m_crtc->set_update_row_callback(FUNC(pet80_state::cbm8296_update_row), this);
+ m_crtc->set_update_row_callback(FUNC(pet80_state::cbm8296_update_row));
m_crtc->out_vsync_callback().set(M6520_1_TAG, FUNC(pia6821_device::cb1_w));
subdevice<ieee488_slot_device>("ieee8")->set_default_option("c8250");
diff --git a/src/mame/drivers/pg685.cpp b/src/mame/drivers/pg685.cpp
index fc4beba17ad..8711aece97f 100644
--- a/src/mame/drivers/pg685.cpp
+++ b/src/mame/drivers/pg685.cpp
@@ -446,7 +446,7 @@ void pg685_state::pg675(machine_config &config)
crtc.set_screen("screen");
crtc.set_show_border_area(false);
crtc.set_char_width(8);
- crtc.set_update_row_callback(FUNC(pg685_state::crtc_update_row), this);
+ crtc.set_update_row_callback(FUNC(pg685_state::crtc_update_row));
// sound hardware
@@ -494,7 +494,7 @@ void pg685_state::pg685(machine_config &config)
crtc.set_screen("screen");
crtc.set_show_border_area(false);
crtc.set_char_width(8);
- crtc.set_update_row_callback(FUNC(pg685_state::crtc_update_row), this);
+ crtc.set_update_row_callback(FUNC(pg685_state::crtc_update_row));
// sound hardware
@@ -546,7 +546,7 @@ void pg685_state::pg685oua12(machine_config &config)
crtc.set_screen("screen");
crtc.set_show_border_area(false);
crtc.set_char_width(8);
- crtc.set_update_row_callback(FUNC(pg685_state::crtc_update_row_oua12), this);
+ crtc.set_update_row_callback(FUNC(pg685_state::crtc_update_row_oua12));
// sound hardware
diff --git a/src/mame/drivers/pgm2.cpp b/src/mame/drivers/pgm2.cpp
index 641ab098576..bfdf02f1db1 100644
--- a/src/mame/drivers/pgm2.cpp
+++ b/src/mame/drivers/pgm2.cpp
@@ -754,7 +754,7 @@ void pgm2_state::pgm2(machine_config &config)
IGS036(config, m_maincpu, 100000000); // Unknown clock / divider
m_maincpu->set_addrmap(AS_PROGRAM, &pgm2_state::pgm2_rom_map);
- TIMER(config, m_mcu_timer, 0).configure_generic(timer_device::expired_delegate(FUNC(pgm2_state::mcu_interrupt), this));
+ TIMER(config, m_mcu_timer, 0).configure_generic(FUNC(pgm2_state::mcu_interrupt));
ARM_AIC(config, m_arm_aic, 0).irq_callback().set(FUNC(pgm2_state::irq));
@@ -1394,20 +1394,20 @@ void pgm2_state::common_encryption_init()
void pgm2_state::init_orleg2()
{
common_encryption_init();
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x20020114, 0x20020117, read32_delegate(FUNC(pgm2_state::orleg2_speedup_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x20020114, 0x20020117, read32_delegate(*this, FUNC(pgm2_state::orleg2_speedup_r)));
}
void pgm2_state::init_kov2nl()
{
common_encryption_init();
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x20020470, 0x20020473, read32_delegate(FUNC(pgm2_state::kov2nl_speedup_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x20020470, 0x20020473, read32_delegate(*this, FUNC(pgm2_state::kov2nl_speedup_r)));
}
void pgm2_state::init_ddpdojt()
{
common_encryption_init();
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x20000060, 0x20000063, read32_delegate(FUNC(pgm2_state::ddpdojt_speedup_r), this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x20021e04, 0x20021e07, read32_delegate(FUNC(pgm2_state::ddpdojt_speedup2_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x20000060, 0x20000063, read32_delegate(*this, FUNC(pgm2_state::ddpdojt_speedup_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x20021e04, 0x20021e07, read32_delegate(*this, FUNC(pgm2_state::ddpdojt_speedup2_r)));
}
// currently we don't know how to derive address/data xor values from real keys, so we need both
@@ -1419,7 +1419,7 @@ static const kov3_module_key kov3_100_key = { { 0x40,0xac,0x30,0x00,0x47,0x49,0x
void pgm2_state::init_kov3()
{
common_encryption_init();
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x200000b4, 0x200000b7, read32_delegate(FUNC(pgm2_state::kov3_speedup_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x200000b4, 0x200000b7, read32_delegate(*this, FUNC(pgm2_state::kov3_speedup_r)));
}
void pgm2_state::decrypt_kov3_module(u32 addrxor, u16 dataxor)
@@ -1464,7 +1464,7 @@ void pgm2_state::init_kov3_100()
void pgm2_state::init_kof98umh()
{
common_encryption_init();
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x20000060, 0x20000063, read32_delegate(FUNC(pgm2_state::kof98umh_speedup_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x20000060, 0x20000063, read32_delegate(*this, FUNC(pgm2_state::kof98umh_speedup_r)));
}
diff --git a/src/mame/drivers/photoply.cpp b/src/mame/drivers/photoply.cpp
index 4dfce5b1a83..7f2ae54e2af 100644
--- a/src/mame/drivers/photoply.cpp
+++ b/src/mame/drivers/photoply.cpp
@@ -32,8 +32,8 @@ TODO:
class photoply_state : public pcat_base_state
{
public:
- photoply_state(const machine_config &mconfig, device_type type, const char *tag)
- : pcat_base_state(mconfig, type, tag),
+ photoply_state(const machine_config &mconfig, device_type type, const char *tag) :
+ pcat_base_state(mconfig, type, tag),
m_eeprom(*this, "eeprom"),
m_main_bios(*this, "bios"),
m_video_bios(*this, "video_bios"),
@@ -319,8 +319,7 @@ void photoply_state::photoply(machine_config &config)
ide2.irq_handler().set("pic8259_2", FUNC(pic8259_device::ir7_w));
pci_bus_legacy_device &pcibus(PCI_BUS_LEGACY(config, "pcibus", 0, 0));
- pcibus.set_device_read (5, FUNC(photoply_state::sis_pcm_r), this);
- pcibus.set_device_write(5, FUNC(photoply_state::sis_pcm_w), this);
+ pcibus.set_device(5, FUNC(photoply_state::sis_pcm_r), FUNC(photoply_state::sis_pcm_w));
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
screen.set_raw(XTAL(25'174'800),900,0,640,526,0,480);
diff --git a/src/mame/drivers/phunsy.cpp b/src/mame/drivers/phunsy.cpp
index b52c1417f44..b66bf6347df 100644
--- a/src/mame/drivers/phunsy.cpp
+++ b/src/mame/drivers/phunsy.cpp
@@ -373,7 +373,7 @@ void phunsy_state::phunsy(machine_config &config)
m_cass->add_route(ALL_OUTPUTS, "mono", 0.05);
/* quickload */
- QUICKLOAD(config, "quickload", "bin", attotime::from_seconds(2)).set_load_callback(FUNC(phunsy_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "bin", attotime::from_seconds(2)).set_load_callback(FUNC(phunsy_state::quickload_cb));
}
diff --git a/src/mame/drivers/piggypas.cpp b/src/mame/drivers/piggypas.cpp
index 9dcfa1b5e30..723e794241d 100644
--- a/src/mame/drivers/piggypas.cpp
+++ b/src/mame/drivers/piggypas.cpp
@@ -26,8 +26,8 @@ game details unknown
class piggypas_state : public driver_device
{
public:
- piggypas_state(const machine_config &mconfig, device_type type, const char *tag)
- : driver_device(mconfig, type, tag),
+ piggypas_state(const machine_config &mconfig, device_type type, const char *tag) :
+ driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"),
m_hd44780(*this, "hd44780"),
m_ticket(*this, "ticket"),
@@ -218,7 +218,7 @@ void piggypas_state::piggypas(machine_config &config)
hd44780_device &hd44780(HD44780(config, "hd44780"));
hd44780.set_lcd_size(1, 16);
- hd44780.set_pixel_update_cb(FUNC(piggypas_state::piggypas_pixel_update), this);
+ hd44780.set_pixel_update_cb(FUNC(piggypas_state::piggypas_pixel_update));
/* sound hardware */
SPEAKER(config, "mono").front_center();
diff --git a/src/mame/drivers/pinball2k.cpp b/src/mame/drivers/pinball2k.cpp
index 6d337040e06..c52a19a9621 100644
--- a/src/mame/drivers/pinball2k.cpp
+++ b/src/mame/drivers/pinball2k.cpp
@@ -613,8 +613,7 @@ void pinball2k_state::mediagx(machine_config &config)
pcat_common(config);
pci_bus_legacy_device &pcibus(PCI_BUS_LEGACY(config, "pcibus", 0, 0));
- pcibus.set_device_read (18, FUNC(pinball2k_state::cx5510_pci_r), this);
- pcibus.set_device_write(18, FUNC(pinball2k_state::cx5510_pci_w), this);
+ pcibus.set_device(18, FUNC(pinball2k_state::cx5510_pci_r), FUNC(pinball2k_state::cx5510_pci_w));
ide_controller_device &ide(IDE_CONTROLLER(config, "ide").options(ata_devices, "hdd", nullptr, true));
ide.irq_handler().set("pic8259_2", FUNC(pic8259_device::ir6_w));
diff --git a/src/mame/drivers/pingpong.cpp b/src/mame/drivers/pingpong.cpp
index 1ecb7f4aeca..36d45dd24fd 100644
--- a/src/mame/drivers/pingpong.cpp
+++ b/src/mame/drivers/pingpong.cpp
@@ -582,8 +582,8 @@ void pingpong_state::init_cashquiz()
ROM[i] = bitswap<8>(ROM[i],0,1,2,3,4,5,6,7);
/* questions banking handlers */
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x4000, 0x4000, write8_delegate(FUNC(pingpong_state::cashquiz_question_bank_high_w),this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x4001, 0x4001, write8_delegate(FUNC(pingpong_state::cashquiz_question_bank_low_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x4000, 0x4000, write8_delegate(*this, FUNC(pingpong_state::cashquiz_question_bank_high_w)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x4001, 0x4001, write8_delegate(*this, FUNC(pingpong_state::cashquiz_question_bank_low_w)));
// 8 independents banks for questions
m_maincpu->space(AS_PROGRAM).install_read_bank(0x5000, 0x50ff, "bank1");
diff --git a/src/mame/drivers/pipbug.cpp b/src/mame/drivers/pipbug.cpp
index dafac58c3e3..08a986842d4 100644
--- a/src/mame/drivers/pipbug.cpp
+++ b/src/mame/drivers/pipbug.cpp
@@ -217,7 +217,7 @@ void pipbug_state::pipbug(machine_config &config)
m_rs232->set_option_device_input_defaults("terminal", DEVICE_INPUT_DEFAULTS_NAME(terminal));
/* quickload */
- QUICKLOAD(config, "quickload", "pgm", attotime::from_seconds(1)).set_load_callback(FUNC(pipbug_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "pgm", attotime::from_seconds(1)).set_load_callback(FUNC(pipbug_state::quickload_cb));
SPEAKER(config, "mono").front_center();
diff --git a/src/mame/drivers/pipedrm.cpp b/src/mame/drivers/pipedrm.cpp
index 5360228314b..468cb7f6f17 100644
--- a/src/mame/drivers/pipedrm.cpp
+++ b/src/mame/drivers/pipedrm.cpp
@@ -889,7 +889,7 @@ void pipedrm_state::init_pipedrm()
void pipedrm_state::init_hatris()
{
- m_maincpu->space(AS_IO).install_write_handler(0x21, 0x21, write8_delegate(FUNC(pipedrm_state::fromance_gfxreg_w),this));
+ m_maincpu->space(AS_IO).install_write_handler(0x21, 0x21, write8_delegate(*this, FUNC(pipedrm_state::fromance_gfxreg_w)));
}
diff --git a/src/mame/drivers/pipeline.cpp b/src/mame/drivers/pipeline.cpp
index 6a2b52a8345..65d76e11623 100644
--- a/src/mame/drivers/pipeline.cpp
+++ b/src/mame/drivers/pipeline.cpp
@@ -161,8 +161,8 @@ TILE_GET_INFO_MEMBER(pipeline_state::get_tile_info2)
void pipeline_state::video_start()
{
m_palram=std::make_unique<u8[]>(0x1000);
- m_tilemap1 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(pipeline_state::get_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,32 );
- m_tilemap2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(pipeline_state::get_tile_info2),this),TILEMAP_SCAN_ROWS,8,8,64,32 );
+ m_tilemap1 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(pipeline_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 64,32);
+ m_tilemap2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(pipeline_state::get_tile_info2)), TILEMAP_SCAN_ROWS, 8,8, 64,32);
m_tilemap2->set_transparent_pen(0);
save_item(NAME(m_vidctrl));
diff --git a/src/mame/drivers/pirates.cpp b/src/mame/drivers/pirates.cpp
index 4fc64e0a30d..f0a280eb436 100644
--- a/src/mame/drivers/pirates.cpp
+++ b/src/mame/drivers/pirates.cpp
@@ -461,7 +461,7 @@ void pirates_state::init_genix()
/* If this value is increased then something has gone wrong and the protection failed */
/* Write-protect it for now */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x109e98, 0x109e9b, read16_delegate(FUNC(pirates_state::genix_prot_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x109e98, 0x109e9b, read16_delegate(*this, FUNC(pirates_state::genix_prot_r)));
}
/* GAME */
diff --git a/src/mame/drivers/piratesh.cpp b/src/mame/drivers/piratesh.cpp
index 15c0fda159a..a8e7da1241f 100644
--- a/src/mame/drivers/piratesh.cpp
+++ b/src/mame/drivers/piratesh.cpp
@@ -626,7 +626,7 @@ void piratesh_state::piratesh(machine_config &config)
PALETTE(config, "palette").set_format(palette_device::BGRx_888, 2048).enable_shadows().enable_hilights();
K056832(config, m_k056832, 0);
- m_k056832->set_tile_callback(FUNC(piratesh_state::piratesh_tile_callback), this);
+ m_k056832->set_tile_callback(FUNC(piratesh_state::piratesh_tile_callback));
m_k056832->set_config(K056832_BPP_4PIRATESH, 1, 0);
m_k056832->set_palette("palette");
@@ -635,13 +635,13 @@ void piratesh_state::piratesh(machine_config &config)
K053250PS(config, m_k053250, 12000000, "palette", "screen", -16, 0);
K055673(config, m_k055673, 0);
- m_k055673->set_sprite_callback(FUNC(piratesh_state::piratesh_sprite_callback), this);
+ m_k055673->set_sprite_callback(FUNC(piratesh_state::piratesh_sprite_callback));
m_k055673->set_config(K055673_LAYOUT_PS, -60, 24);
m_k055673->set_palette("palette");
// ????
//K053246(config, m_k053246, 0);
- //m_k053246->set_sprite_callback(FUNC(moo_state::sprite_callback), this);
+ //m_k053246->set_sprite_callback(FUNC(moo_state::sprite_callback));
//m_k053246->set_config("k053246", NORMAL_PLANE_ORDER, -48+1, 23);
//m_k053246->set_palette(m_palette);
diff --git a/src/mame/drivers/pkscram.cpp b/src/mame/drivers/pkscram.cpp
index b2793f6fcf4..e0c5c816893 100644
--- a/src/mame/drivers/pkscram.cpp
+++ b/src/mame/drivers/pkscram.cpp
@@ -263,9 +263,9 @@ TIMER_DEVICE_CALLBACK_MEMBER(pkscram_state::scanline_callback)
void pkscram_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(pkscram_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8,32,32);
- m_md_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(pkscram_state::get_md_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8,32,32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(pkscram_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8,32,32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(pkscram_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8,32,32);
+ m_md_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(pkscram_state::get_md_tile_info)), TILEMAP_SCAN_ROWS, 8, 8,32,32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(pkscram_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8,32,32);
m_md_tilemap->set_transparent_pen(15);
m_fg_tilemap->set_transparent_pen(15);
diff --git a/src/mame/drivers/pktgaldx.cpp b/src/mame/drivers/pktgaldx.cpp
index e50b76f09e5..f6d73c3d60c 100644
--- a/src/mame/drivers/pktgaldx.cpp
+++ b/src/mame/drivers/pktgaldx.cpp
@@ -368,8 +368,8 @@ void pktgaldx_state::pktgaldx(machine_config &config)
m_deco_tilegen->set_pf2_col_bank(0x10);
m_deco_tilegen->set_pf1_col_mask(0x0f);
m_deco_tilegen->set_pf2_col_mask(0x0f);
- m_deco_tilegen->set_bank1_callback(FUNC(pktgaldx_state::bank_callback), this);
- m_deco_tilegen->set_bank2_callback(FUNC(pktgaldx_state::bank_callback), this);
+ m_deco_tilegen->set_bank1_callback(FUNC(pktgaldx_state::bank_callback));
+ m_deco_tilegen->set_bank2_callback(FUNC(pktgaldx_state::bank_callback));
m_deco_tilegen->set_pf12_8x8_bank(0);
m_deco_tilegen->set_pf12_16x16_bank(1);
m_deco_tilegen->set_gfxdecode_tag("gfxdecode");
diff --git a/src/mame/drivers/plus4.cpp b/src/mame/drivers/plus4.cpp
index 256116d6133..4ad7ddbb1e4 100644
--- a/src/mame/drivers/plus4.cpp
+++ b/src/mame/drivers/plus4.cpp
@@ -930,7 +930,7 @@ void plus4_state::plus4(machine_config &config)
m_exp->cd_wr_callback().set(FUNC(plus4_state::write));
m_exp->aec_wr_callback().set_inputline(MOS7501_TAG, INPUT_LINE_HALT);
- QUICKLOAD(config, "quickload", "p00,prg", CBM_QUICKLOAD_DELAY).set_load_callback(FUNC(plus4_state::quickload_c16), this);
+ QUICKLOAD(config, "quickload", "p00,prg", CBM_QUICKLOAD_DELAY).set_load_callback(FUNC(plus4_state::quickload_c16));
// internal ram
RAM(config, m_ram).set_default_size("64K");
diff --git a/src/mame/drivers/pockchal.cpp b/src/mame/drivers/pockchal.cpp
index cc151eb8f3b..98fdfe8858c 100644
--- a/src/mame/drivers/pockchal.cpp
+++ b/src/mame/drivers/pockchal.cpp
@@ -92,7 +92,7 @@ void pockchalv1_state::machine_start()
{
address_space &space = m_maincpu->space(AS_PROGRAM);
if (m_cart->exists())
- space.install_read_handler(0x0000, 0x7fff, read8sm_delegate(FUNC(generic_slot_device::read_rom),(generic_slot_device*)m_cart));
+ space.install_read_handler(0x0000, 0x7fff, read8sm_delegate(*m_cart, FUNC(generic_slot_device::read_rom)));
}
void pockchalv1_state::machine_reset()
@@ -120,7 +120,7 @@ void pockchalv1_state::pockchalv1(machine_config &config)
screen.set_palette("palette");
generic_cartslot_device &cartslot(GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "pockchalw_cart", "bin"));
- cartslot.set_device_load(FUNC(pockchalv1_state::cart_load), this);
+ cartslot.set_device_load(FUNC(pockchalv1_state::cart_load));
cartslot.set_must_be_loaded(true);
SOFTWARE_LIST(config, "pc1_list").set_compatible("pockchalw");
diff --git a/src/mame/drivers/pockstat.cpp b/src/mame/drivers/pockstat.cpp
index efb714113ae..c73721cd9fa 100644
--- a/src/mame/drivers/pockstat.cpp
+++ b/src/mame/drivers/pockstat.cpp
@@ -1008,7 +1008,7 @@ void pockstat_state::pockstat(machine_config &config)
GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "pockstat_cart", "gme");
m_cart->set_width(GENERIC_ROM32_WIDTH);
m_cart->set_endian(ENDIANNESS_LITTLE);
- m_cart->set_device_load(FUNC(pockstat_state::flash_load), this);
+ m_cart->set_device_load(FUNC(pockstat_state::flash_load));
}
/* ROM definition */
diff --git a/src/mame/drivers/poisk1.cpp b/src/mame/drivers/poisk1.cpp
index 76d4d0fbe79..702f6e8048f 100644
--- a/src/mame/drivers/poisk1.cpp
+++ b/src/mame/drivers/poisk1.cpp
@@ -237,7 +237,7 @@ WRITE8_MEMBER(p1_state::p1_ppi2_porta_w)
else
{
program.install_read_bank(0xb8000, 0xbbfff, "bank11");
- program.install_write_handler(0xb8000, 0xbbfff, WRITE8_DELEGATE(p1_state, p1_vram_w));
+ program.install_write_handler(0xb8000, 0xbbfff, write8_delegate(*this, FUNC(p1_state::p1_vram_w)));
}
}
// DISPLAY BANK
diff --git a/src/mame/drivers/pokemini.cpp b/src/mame/drivers/pokemini.cpp
index 9ca4c699607..df99ab5e72b 100644
--- a/src/mame/drivers/pokemini.cpp
+++ b/src/mame/drivers/pokemini.cpp
@@ -1789,7 +1789,7 @@ void pokemini_state::pokemini(machine_config &config)
m_speaker->add_route(ALL_OUTPUTS, "mono", 0.50);
/* cartridge */
- GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "pokemini_cart", "bin,min").set_device_load(FUNC(pokemini_state::cart_load), this);
+ GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "pokemini_cart", "bin,min").set_device_load(FUNC(pokemini_state::cart_load));
/* Software lists */
SOFTWARE_LIST(config, "cart_list").set_original("pokemini");
diff --git a/src/mame/drivers/polepos.cpp b/src/mame/drivers/polepos.cpp
index 75c1f7ec103..58ac0c71d59 100644
--- a/src/mame/drivers/polepos.cpp
+++ b/src/mame/drivers/polepos.cpp
@@ -2449,7 +2449,7 @@ ROM_END
void polepos_state::init_polepos2()
{
/* note that the bootleg version doesn't need this custom IC; it has a hacked ROM in its place */
- m_subcpu->space(AS_PROGRAM).install_read_handler(0x4000, 0x5fff, read16_delegate(FUNC(polepos_state::polepos2_ic25_r),this));
+ m_subcpu->space(AS_PROGRAM).install_read_handler(0x4000, 0x5fff, read16_delegate(*this, FUNC(polepos_state::polepos2_ic25_r)));
}
diff --git a/src/mame/drivers/policetr.cpp b/src/mame/drivers/policetr.cpp
index 7265232dd67..2ce74d37493 100644
--- a/src/mame/drivers/policetr.cpp
+++ b/src/mame/drivers/policetr.cpp
@@ -704,7 +704,7 @@ ROM_END
void policetr_state::driver_init()
{
- m_maincpu->space(AS_PROGRAM).install_write_handler(m_speedup_addr, m_speedup_addr+3, write32_delegate(FUNC(policetr_state::speedup_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(m_speedup_addr, m_speedup_addr+3, write32_delegate(*this, FUNC(policetr_state::speedup_w)));
m_speedup_data = m_rambase + m_speedup_addr/4;
}
diff --git a/src/mame/drivers/poly88.cpp b/src/mame/drivers/poly88.cpp
index d1323650725..a6f59b3f2e3 100644
--- a/src/mame/drivers/poly88.cpp
+++ b/src/mame/drivers/poly88.cpp
@@ -161,7 +161,7 @@ void poly88_state::poly88(machine_config &config)
m_brg->output_cb().set(FUNC(poly88_state::cassette_clock_w));
/* snapshot */
- SNAPSHOT(config, "snapshot", "img", attotime::from_seconds(2)).set_load_callback(FUNC(poly88_state::snapshot_cb), this);
+ SNAPSHOT(config, "snapshot", "img", attotime::from_seconds(2)).set_load_callback(FUNC(poly88_state::snapshot_cb));
S100_BUS(config, m_s100, 16.5888_MHz_XTAL / 9);
m_s100->vi2().set(FUNC(poly88_state::vi2_w));
diff --git a/src/mame/drivers/pong.cpp b/src/mame/drivers/pong.cpp
index 7359f8038b4..a72c1b35b4b 100644
--- a/src/mame/drivers/pong.cpp
+++ b/src/mame/drivers/pong.cpp
@@ -470,8 +470,8 @@ void pong_state::pong(machine_config &config)
NETLIST_LOGIC_INPUT(config, "maincpu:coinsw", "coinsw.POS", 0);
NETLIST_LOGIC_INPUT(config, "maincpu:antenna", "antenna.IN", 0);
- NETLIST_ANALOG_OUTPUT(config, "maincpu:snd0", 0).set_params("sound", FUNC(pong_state::sound_cb), "");
- NETLIST_ANALOG_OUTPUT(config, "maincpu:vid0", 0).set_params("videomix", FUNC(fixedfreq_device::update_composite_monochrome), "fixfreq");
+ NETLIST_ANALOG_OUTPUT(config, "maincpu:snd0", 0).set_params("sound", FUNC(pong_state::sound_cb));
+ NETLIST_ANALOG_OUTPUT(config, "maincpu:vid0", 0).set_params("videomix", "fixfreq", FUNC(fixedfreq_device::update_composite_monochrome));
/* video hardware */
SCREEN(config, "screen", SCREEN_TYPE_RASTER);
@@ -514,15 +514,15 @@ void breakout_state::breakout(machine_config &config)
NETLIST_LOGIC_INPUT(config, "maincpu:antenna", "antenna.IN", 0);
- NETLIST_ANALOG_OUTPUT(config, "maincpu:snd0", 0).set_params("sound", FUNC(breakout_state::sound_cb), "");
- NETLIST_ANALOG_OUTPUT(config, "maincpu:vid0", 0).set_params("videomix", FUNC(fixedfreq_device::update_composite_monochrome), "fixfreq");
+ NETLIST_ANALOG_OUTPUT(config, "maincpu:snd0", 0).set_params("sound", FUNC(breakout_state::sound_cb));
+ NETLIST_ANALOG_OUTPUT(config, "maincpu:vid0", 0).set_params("videomix", "fixfreq", FUNC(fixedfreq_device::update_composite_monochrome));
// Leds and lamps
- NETLIST_ANALOG_OUTPUT(config, "maincpu:led_serve", 0).set_params("CON_P", FUNC(breakout_state::serve_cb), "");
- NETLIST_ANALOG_OUTPUT(config, "maincpu:lamp_credit1", 0).set_params("CON_CREDIT1", FUNC(breakout_state::credit1_cb), "");
- NETLIST_ANALOG_OUTPUT(config, "maincpu:lamp_credit2", 0).set_params("CON_CREDIT2", FUNC(breakout_state::credit2_cb), "");
- NETLIST_ANALOG_OUTPUT(config, "maincpu:coin_counter", 0).set_params("CON_T", FUNC(breakout_state::coin_counter_cb), "");
+ NETLIST_ANALOG_OUTPUT(config, "maincpu:led_serve", 0).set_params("CON_P", FUNC(breakout_state::serve_cb));
+ NETLIST_ANALOG_OUTPUT(config, "maincpu:lamp_credit1", 0).set_params("CON_CREDIT1", FUNC(breakout_state::credit1_cb));
+ NETLIST_ANALOG_OUTPUT(config, "maincpu:lamp_credit2", 0).set_params("CON_CREDIT2", FUNC(breakout_state::credit2_cb));
+ NETLIST_ANALOG_OUTPUT(config, "maincpu:coin_counter", 0).set_params("CON_T", FUNC(breakout_state::coin_counter_cb));
/* video hardware */
SCREEN(config, "screen", SCREEN_TYPE_RASTER);
@@ -573,8 +573,8 @@ void pong_state::pongd(machine_config &config)
NETLIST_LOGIC_INPUT(config, "maincpu:antenna", "antenna.IN", 0, 0x01)
#endif
- NETLIST_ANALOG_OUTPUT(config, "maincpu:snd0", 0).set_params("AUDIO", FUNC(pong_state::sound_cb), "");
- NETLIST_ANALOG_OUTPUT(config, "maincpu:vid0", 0).set_params("videomix", FUNC(fixedfreq_device::update_composite_monochrome), "fixfreq");
+ NETLIST_ANALOG_OUTPUT(config, "maincpu:snd0", 0).set_params("AUDIO", FUNC(pong_state::sound_cb));
+ NETLIST_ANALOG_OUTPUT(config, "maincpu:vid0", 0).set_params("videomix", "fixfreq", FUNC(fixedfreq_device::update_composite_monochrome));
/* video hardware */
SCREEN(config, "screen", SCREEN_TYPE_RASTER);
@@ -609,11 +609,11 @@ void rebound_state::rebound(machine_config &config)
NETLIST_LOGIC_INPUT(config, "maincpu:dsw1b", "DSW1b.POS", 0);
NETLIST_LOGIC_INPUT(config, "maincpu:dsw2", "DSW2.POS", 0);
- NETLIST_ANALOG_OUTPUT(config, "maincpu:snd0", 0).set_params("sound", FUNC(rebound_state::sound_cb), "");
- NETLIST_ANALOG_OUTPUT(config, "maincpu:vid0", 0).set_params("videomix", FUNC(fixedfreq_device::update_composite_monochrome), "fixfreq");
+ NETLIST_ANALOG_OUTPUT(config, "maincpu:snd0", 0).set_params("sound", FUNC(rebound_state::sound_cb));
+ NETLIST_ANALOG_OUTPUT(config, "maincpu:vid0", 0).set_params("videomix", "fixfreq", FUNC(fixedfreq_device::update_composite_monochrome));
- NETLIST_ANALOG_OUTPUT(config, "maincpu:led_credit", 0).set_params("CON11", FUNC(rebound_state::led_credit_cb), "");
- NETLIST_ANALOG_OUTPUT(config, "maincpu:coin_counter", 0).set_params("CON10", FUNC(rebound_state::coin_counter_cb), "");
+ NETLIST_ANALOG_OUTPUT(config, "maincpu:led_credit", 0).set_params("CON11", FUNC(rebound_state::led_credit_cb));
+ NETLIST_ANALOG_OUTPUT(config, "maincpu:coin_counter", 0).set_params("CON10", FUNC(rebound_state::coin_counter_cb));
/* video hardware */
SCREEN(config, "screen", SCREEN_TYPE_RASTER);
diff --git a/src/mame/drivers/popobear.cpp b/src/mame/drivers/popobear.cpp
index cb0601256e5..91ed2e63851 100644
--- a/src/mame/drivers/popobear.cpp
+++ b/src/mame/drivers/popobear.cpp
@@ -226,10 +226,10 @@ void popobear_state::video_start()
m_gfxdecode->gfx(0)->set_source(reinterpret_cast<uint8_t *>(&m_vram_rearranged[0]));
- m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(popobear_state::get_bg0_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 128, 64);
- m_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(popobear_state::get_bg1_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 128, 64);
- m_bg_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(popobear_state::get_bg2_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 128, 64);
- m_bg_tilemap[3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(popobear_state::get_bg3_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 128, 64);
+ m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(popobear_state::get_bg0_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 128, 64);
+ m_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(popobear_state::get_bg1_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 128, 64);
+ m_bg_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(popobear_state::get_bg2_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 128, 64);
+ m_bg_tilemap[3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(popobear_state::get_bg3_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 128, 64);
m_bg_tilemap[0]->set_transparent_pen(0);
m_bg_tilemap[1]->set_transparent_pen(0);
diff --git a/src/mame/drivers/popper.cpp b/src/mame/drivers/popper.cpp
index 58e2fd41026..ae442d5eb6c 100644
--- a/src/mame/drivers/popper.cpp
+++ b/src/mame/drivers/popper.cpp
@@ -507,10 +507,10 @@ READ8_MEMBER( popper_state::watchdog_clear_r )
void popper_state::machine_start()
{
// create tilemaps
- m_layer0_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(popper_state::layer0_tile_info), this), TILEMAP_SCAN_COLS, 8, 8, 48, 32);
+ m_layer0_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(popper_state::layer0_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 48, 32);
m_layer0_tilemap->set_transparent_pen(1);
- m_layer1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(popper_state::layer1_tile_info), this), TILEMAP_SCAN_COLS, 8, 8, 48, 32);
+ m_layer1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(popper_state::layer1_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 48, 32);
m_layer1_tilemap->set_transparent_pen(0);
// allocate and start scanline timer
diff --git a/src/mame/drivers/powerbal.cpp b/src/mame/drivers/powerbal.cpp
index b16ecb924ac..76f6ed54349 100644
--- a/src/mame/drivers/powerbal.cpp
+++ b/src/mame/drivers/powerbal.cpp
@@ -558,7 +558,7 @@ void powerbal_state::draw_sprites_powerbal(bitmap_ind16 &bitmap, const rectangle
VIDEO_START_MEMBER(powerbal_state,powerbal)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(powerbal_state::powerbal_get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(powerbal_state::powerbal_get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_xoffset = -20;
@@ -567,7 +567,7 @@ VIDEO_START_MEMBER(powerbal_state,powerbal)
VIDEO_START_MEMBER(powerbal_state,atombjt)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(powerbal_state::powerbal_get_bg_tile_info),this), TILEMAP_SCAN_COLS, 8, 8, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(powerbal_state::powerbal_get_bg_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 64, 32);
m_xoffset = 32;
m_yoffset = 8;
diff --git a/src/mame/drivers/powerins.cpp b/src/mame/drivers/powerins.cpp
index b0608f2f3e0..70ea6780663 100644
--- a/src/mame/drivers/powerins.cpp
+++ b/src/mame/drivers/powerins.cpp
@@ -295,8 +295,8 @@ void powerins_state::powerins(machine_config &config)
m_screen->set_palette(m_palette);
NMK_16BIT_SPRITE(config, m_spritegen, XTAL(14'000'000) / 2);
- m_spritegen->set_colpri_callback(FUNC(powerins_state::get_colour_6bit), this);
- m_spritegen->set_ext_callback(FUNC(powerins_state::get_flip_extcode), this);
+ m_spritegen->set_colpri_callback(FUNC(powerins_state::get_colour_6bit));
+ m_spritegen->set_ext_callback(FUNC(powerins_state::get_flip_extcode));
m_spritegen->set_mask(0x3ff, 0x3ff);
m_spritegen->set_screen_size(320, 256);
m_spritegen->set_max_sprite_clock(448 * 263); // not verified?
diff --git a/src/mame/drivers/ppmast93.cpp b/src/mame/drivers/ppmast93.cpp
index e6388df9651..4a6337f9aad 100644
--- a/src/mame/drivers/ppmast93.cpp
+++ b/src/mame/drivers/ppmast93.cpp
@@ -361,8 +361,8 @@ TILE_GET_INFO_MEMBER(ppmast93_state::get_fg_tile_info)
void ppmast93_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ppmast93_state::get_bg_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ppmast93_state::get_fg_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ppmast93_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ppmast93_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(0);
}
diff --git a/src/mame/drivers/prehisle.cpp b/src/mame/drivers/prehisle.cpp
index 9bed8d3cc2e..5d96ac4f858 100644
--- a/src/mame/drivers/prehisle.cpp
+++ b/src/mame/drivers/prehisle.cpp
@@ -40,17 +40,17 @@ void prehisle_state::prehisle_map(address_map &map)
map(0x0d0000, 0x0d07ff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette");
map(0x0e0010, 0x0e0011).portr("P2"); // Player 2
map(0x0e0020, 0x0e0021).portr("COIN"); // Coins, Tilt, Service
- map(0x0e0041, 0x0e0041).lr8("P1_r", [this]() -> u8 { return m_io_p1->read() ^ m_invert_controls; }); // Player 1
+ map(0x0e0041, 0x0e0041).lr8(NAME([this] () -> u8 { return m_io_p1->read() ^ m_invert_controls; })); // Player 1
map(0x0e0042, 0x0e0043).portr("DSW0"); // DIPs
map(0x0e0044, 0x0e0045).portr("DSW1"); // DIPs + VBLANK
map(0x0f0000, 0x0f0001).w(FUNC(prehisle_state::fg_scrolly_w));
map(0x0f0010, 0x0f0011).w(FUNC(prehisle_state::fg_scrollx_w));
map(0x0f0020, 0x0f0021).w(FUNC(prehisle_state::bg_scrolly_w));
map(0x0f0030, 0x0f0031).w(FUNC(prehisle_state::bg_scrollx_w));
- map(0x0f0046, 0x0f0047).lw16("invert_controls_w", [this](u16 data){ m_invert_controls = data ? 0xff : 0x00; });
- map(0x0f0050, 0x0f0051).lw16("coin_counter_1_w", [this](u16 data){ machine().bookkeeping().coin_counter_w(0, data & 1); });
- map(0x0f0052, 0x0f0053).lw16("coin_counter_2_w", [this](u16 data){ machine().bookkeeping().coin_counter_w(1, data & 1); });
- map(0x0f0060, 0x0f0061).lw16("flip_screen_w", [this](u16 data){ flip_screen_set(data & 0x01); });
+ map(0x0f0046, 0x0f0047).lw16(NAME([this] (u16 data) { m_invert_controls = data ? 0xff : 0x00; }));
+ map(0x0f0050, 0x0f0051).lw16(NAME([this] (u16 data) { machine().bookkeeping().coin_counter_w(0, data & 1); }));
+ map(0x0f0052, 0x0f0053).lw16(NAME([this] (u16 data) { machine().bookkeeping().coin_counter_w(1, data & 1); }));
+ map(0x0f0060, 0x0f0061).lw16(NAME([this] (u16 data) { flip_screen_set(data & 0x01); }));
map(0x0f0070, 0x0f0071).w(FUNC(prehisle_state::soundcmd_w));
}
@@ -77,7 +77,7 @@ void prehisle_state::prehisle_sound_io_map(address_map &map)
map(0x00, 0x00).rw("ymsnd", FUNC(ym3812_device::status_port_r), FUNC(ym3812_device::control_port_w));
map(0x20, 0x20).w("ymsnd", FUNC(ym3812_device::write_port_w));
map(0x40, 0x40).w(FUNC(prehisle_state::upd_port_w));
- map(0x80, 0x80).lw8("upd_reset", [this](u8 data){ m_upd7759->reset_w(BIT(data, 7)); } );
+ map(0x80, 0x80).lw8(NAME([this] (u8 data) { m_upd7759->reset_w(BIT(data, 7)); }));
}
/******************************************************************************/
diff --git a/src/mame/drivers/primo.cpp b/src/mame/drivers/primo.cpp
index 5db10bcf489..0474b1af9ee 100644
--- a/src/mame/drivers/primo.cpp
+++ b/src/mame/drivers/primo.cpp
@@ -269,8 +269,8 @@ void primo_state::primoa32(machine_config &config)
SPEAKER_SOUND(config, "speaker").add_route(ALL_OUTPUTS, "mono", 0.50);
/* snapshot/quickload */
- SNAPSHOT(config, "snapshot", "pss").set_load_callback(FUNC(primo_state::snapshot_cb), this);
- QUICKLOAD(config, "quickload", "pp").set_load_callback(FUNC(primo_state::quickload_cb), this);
+ SNAPSHOT(config, "snapshot", "pss").set_load_callback(FUNC(primo_state::snapshot_cb));
+ QUICKLOAD(config, "quickload", "pp").set_load_callback(FUNC(primo_state::quickload_cb));
CASSETTE(config, m_cassette);
m_cassette->set_formats(primo_ptp_format);
diff --git a/src/mame/drivers/psion.cpp b/src/mame/drivers/psion.cpp
index 7583a170ec7..4374b176fcc 100644
--- a/src/mame/drivers/psion.cpp
+++ b/src/mame/drivers/psion.cpp
@@ -614,7 +614,7 @@ void psion_state::psion_4lines(machine_config &config)
subdevice<screen_device>("screen")->set_visarea(0, 6*20-1, 0, 9*4-1);
m_lcdc->set_lcd_size(4, 20);
- m_lcdc->set_pixel_update_cb(FUNC(psion_state::lz_pixel_update), this);
+ m_lcdc->set_pixel_update_cb(FUNC(psion_state::lz_pixel_update));
}
void psion1_state::psion1(machine_config &config)
@@ -628,7 +628,7 @@ void psion1_state::psion1(machine_config &config)
subdevice<screen_device>("screen")->set_visarea(0, 6*16-1, 0, 8*1-1);
m_lcdc->set_lcd_size(1, 16);
- m_lcdc->set_pixel_update_cb(FUNC(psion1_state::psion1_pixel_update), this);
+ m_lcdc->set_pixel_update_cb(FUNC(psion1_state::psion1_pixel_update));
/* Software lists */
SOFTWARE_LIST(config.replace(), "pack_list").set_original("psion1");
diff --git a/src/mame/drivers/psx.cpp b/src/mame/drivers/psx.cpp
index 145e3c969d1..0de37a45dce 100644
--- a/src/mame/drivers/psx.cpp
+++ b/src/mame/drivers/psx.cpp
@@ -543,7 +543,7 @@ void psx1_state::psx_base(machine_config &config)
spu.add_route(0, "lspeaker", 1.00);
spu.add_route(1, "rspeaker", 1.00);
- QUICKLOAD(config, "quickload", "cpe,exe,psf,psx").set_load_callback(FUNC(psx1_state::quickload_exe), this);
+ QUICKLOAD(config, "quickload", "cpe,exe,psf,psx").set_load_callback(FUNC(psx1_state::quickload_exe));
PSX_PARALLEL_SLOT(config, "parallel", psx_parallel_devices, nullptr);
diff --git a/src/mame/drivers/pturn.cpp b/src/mame/drivers/pturn.cpp
index 9539652aa3c..8a0bba0c0b0 100644
--- a/src/mame/drivers/pturn.cpp
+++ b/src/mame/drivers/pturn.cpp
@@ -189,9 +189,9 @@ TILE_GET_INFO_MEMBER(pturn_state::get_bg_tile_info)
void pturn_state::video_start()
{
- m_fgmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(pturn_state::get_tile_info),this),TILEMAP_SCAN_ROWS,8, 8,32,32);
+ m_fgmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(pturn_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fgmap->set_transparent_pen(0);
- m_bgmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(pturn_state::get_bg_tile_info),this),TILEMAP_SCAN_ROWS,8, 8,32,32*8);
+ m_bgmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(pturn_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32*8);
m_bgmap->set_transparent_pen(0);
save_item(NAME(m_bgbank));
diff --git a/src/mame/drivers/pv1000.cpp b/src/mame/drivers/pv1000.cpp
index b23aa109511..1ca3c7fa860 100644
--- a/src/mame/drivers/pv1000.cpp
+++ b/src/mame/drivers/pv1000.cpp
@@ -395,7 +395,7 @@ void pv1000_state::machine_start()
if (m_cart->exists())
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x0000, 0x7fff, read8sm_delegate(FUNC(generic_slot_device::read_rom),(generic_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x0000, 0x7fff, read8sm_delegate(*m_cart, FUNC(generic_slot_device::read_rom)));
// FIXME: this is needed for gfx decoding, but there is probably a cleaner solution!
std::string region_tag;
@@ -462,7 +462,7 @@ void pv1000_state::pv1000(machine_config &config)
/* Cartridge slot */
generic_cartslot_device &cartslot(GENERIC_CARTSLOT(config, "cartslot", generic_linear_slot, "pv1000_cart"));
cartslot.set_must_be_loaded(true);
- cartslot.set_device_load(FUNC(pv1000_state::cart_load), this);
+ cartslot.set_device_load(FUNC(pv1000_state::cart_load));
/* Software lists */
SOFTWARE_LIST(config, "cart_list").set_original("pv1000");
diff --git a/src/mame/drivers/pv2000.cpp b/src/mame/drivers/pv2000.cpp
index 7ee58f80106..ba9f8000d10 100644
--- a/src/mame/drivers/pv2000.cpp
+++ b/src/mame/drivers/pv2000.cpp
@@ -354,7 +354,7 @@ WRITE_LINE_MEMBER( pv2000_state::pv2000_vdp_interrupt )
void pv2000_state::machine_start()
{
if (m_cart->exists())
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xc000, 0xffff, read8sm_delegate(FUNC(generic_slot_device::read_rom),(generic_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xc000, 0xffff, read8sm_delegate(*m_cart, FUNC(generic_slot_device::read_rom)));
}
void pv2000_state::machine_reset()
@@ -408,7 +408,7 @@ void pv2000_state::pv2000(machine_config &config)
m_cass->add_route(ALL_OUTPUTS, "mono", 0.05);
/* cartridge */
- GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "pv2000_cart", "bin,rom,col").set_device_load(FUNC(pv2000_state::cart_load), this);
+ GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "pv2000_cart", "bin,rom,col").set_device_load(FUNC(pv2000_state::cart_load));
/* Software lists */
SOFTWARE_LIST(config, "cart_list").set_original("pv2000");
diff --git a/src/mame/drivers/pwrview.cpp b/src/mame/drivers/pwrview.cpp
index e9e21a36aa4..e254f11f7b0 100644
--- a/src/mame/drivers/pwrview.cpp
+++ b/src/mame/drivers/pwrview.cpp
@@ -433,7 +433,7 @@ void pwrview_state::pwrview(machine_config &config)
hd6845s_device &crtc(HD6845S(config, "crtc", XTAL(64'000'000)/64)); // clock unknown
crtc.set_char_width(32); /* ? */
- crtc.set_update_row_callback(FUNC(pwrview_state::update_row), this);
+ crtc.set_update_row_callback(FUNC(pwrview_state::update_row));
ADDRESS_MAP_BANK(config, "bios_bank").set_map(&pwrview_state::bios_bank).set_options(ENDIANNESS_LITTLE, 16, 17, 0x8000);
}
diff --git a/src/mame/drivers/pyl601.cpp b/src/mame/drivers/pyl601.cpp
index 5a16c67a810..eb926ad0b5a 100644
--- a/src/mame/drivers/pyl601.cpp
+++ b/src/mame/drivers/pyl601.cpp
@@ -570,7 +570,7 @@ void pyl601_state::pyl601(machine_config &config)
crtc.set_screen("screen");
crtc.set_show_border_area(false);
crtc.set_char_width(8); /* ? */
- crtc.set_update_row_callback(FUNC(pyl601_state::pyl601_update_row), this);
+ crtc.set_update_row_callback(FUNC(pyl601_state::pyl601_update_row));
UPD765A(config, m_fdc, 8'000'000, true, true);
FLOPPY_CONNECTOR(config, "upd765:0", pyl601_floppies, "525hd", pyl601_state::floppy_formats);
@@ -589,7 +589,7 @@ void pyl601_state::pyl601a(machine_config &config)
subdevice<gfxdecode_device>("gfxdecode")->set_info(gfx_pyl601a);
- subdevice<mc6845_device>("crtc")->set_update_row_callback(FUNC(pyl601_state::pyl601a_update_row), this);
+ subdevice<mc6845_device>("crtc")->set_update_row_callback(FUNC(pyl601_state::pyl601a_update_row));
}
/* ROM definition */
diff --git a/src/mame/drivers/pzletime.cpp b/src/mame/drivers/pzletime.cpp
index 520cdfed016..ea765fc4425 100644
--- a/src/mame/drivers/pzletime.cpp
+++ b/src/mame/drivers/pzletime.cpp
@@ -108,8 +108,8 @@ TILE_GET_INFO_MEMBER(pzletime_state::get_txt_tile_info)
void pzletime_state::video_start()
{
- m_mid_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(pzletime_state::get_mid_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 64, 16);
- m_txt_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(pzletime_state::get_txt_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_mid_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(pzletime_state::get_mid_tile_info)), TILEMAP_SCAN_COLS, 16, 16, 64, 16);
+ m_txt_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(pzletime_state::get_txt_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_mid_tilemap->set_transparent_pen(0);
m_txt_tilemap->set_transparent_pen(0);
diff --git a/src/mame/drivers/qdrmfgp.cpp b/src/mame/drivers/qdrmfgp.cpp
index d9057c8ff3c..2215ac85e3b 100644
--- a/src/mame/drivers/qdrmfgp.cpp
+++ b/src/mame/drivers/qdrmfgp.cpp
@@ -551,7 +551,7 @@ void qdrmfgp_state::qdrmfgp(machine_config &config)
MCFG_VIDEO_START_OVERRIDE(qdrmfgp_state,qdrmfgp)
K056832(config, m_k056832, 0);
- m_k056832->set_tile_callback(FUNC(qdrmfgp_state::qdrmfgp_tile_callback), this);
+ m_k056832->set_tile_callback(FUNC(qdrmfgp_state::qdrmfgp_tile_callback));
m_k056832->set_config(K056832_BPP_4dj, 1, 0);
m_k056832->set_palette(m_palette);
@@ -596,7 +596,7 @@ void qdrmfgp_state::qdrmfgp2(machine_config &config)
MCFG_VIDEO_START_OVERRIDE(qdrmfgp_state,qdrmfgp2)
K056832(config, m_k056832, 0);
- m_k056832->set_tile_callback(FUNC(qdrmfgp_state::qdrmfgp2_tile_callback), this);
+ m_k056832->set_tile_callback(FUNC(qdrmfgp_state::qdrmfgp2_tile_callback));
m_k056832->set_config(K056832_BPP_4dj, 1, 0);
m_k056832->set_palette(m_palette);
diff --git a/src/mame/drivers/queen.cpp b/src/mame/drivers/queen.cpp
index a6d046fa11a..c5ab9c65244 100644
--- a/src/mame/drivers/queen.cpp
+++ b/src/mame/drivers/queen.cpp
@@ -290,10 +290,8 @@ void queen_state::queen(machine_config &config)
pcat_common(config);
pci_bus_legacy_device &pcibus(PCI_BUS_LEGACY(config, "pcibus", 0, 0));
- pcibus.set_device_read (0, FUNC(queen_state::intel82439tx_pci_r), this);
- pcibus.set_device_write(0, FUNC(queen_state::intel82439tx_pci_w), this);
- pcibus.set_device_read (7, FUNC(queen_state::intel82371ab_pci_r), this);
- pcibus.set_device_write(7, FUNC(queen_state::intel82371ab_pci_w), this);
+ pcibus.set_device(0, FUNC(queen_state::intel82439tx_pci_r), FUNC(queen_state::intel82439tx_pci_w));
+ pcibus.set_device(7, FUNC(queen_state::intel82371ab_pci_r), FUNC(queen_state::intel82371ab_pci_w));
ide_controller_device &ide(IDE_CONTROLLER(config, "ide").options(ata_devices, "hdd", nullptr, true));
ide.irq_handler().set("pic8259_2", FUNC(pic8259_device::ir6_w));
diff --git a/src/mame/drivers/quickpick5.cpp b/src/mame/drivers/quickpick5.cpp
index 5f551fd27d0..82ec34b6c85 100644
--- a/src/mame/drivers/quickpick5.cpp
+++ b/src/mame/drivers/quickpick5.cpp
@@ -197,7 +197,7 @@ void quickpick5_state::video_start()
m_gfxdecode->set_gfx(gfx_index, std::make_unique<gfx_element>(m_palette, charlayout, memregion("ttl")->base(), 0, m_palette->entries() / 16, 0));
m_ttl_gfx_index = gfx_index;
- m_ttl_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(quickpick5_state::ttl_get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_ttl_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(quickpick5_state::ttl_get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_ttl_tilemap->set_transparent_pen(0);
m_ttl_tilemap->set_scrollx(80);
m_ttl_tilemap->set_scrolly(28);
@@ -428,7 +428,7 @@ void quickpick5_state::quickpick5(machine_config &config)
K053245(config, m_k053245, 0);
m_k053245->set_palette(m_palette);
m_k053245->set_offsets(-(44+80), 20);
- m_k053245->set_sprite_callback(FUNC(quickpick5_state::sprite_callback), this);
+ m_k053245->set_sprite_callback(FUNC(quickpick5_state::sprite_callback));
GFXDECODE(config, m_gfxdecode, m_palette, gfxdecode_device::empty);
diff --git a/src/mame/drivers/quizpun2.cpp b/src/mame/drivers/quizpun2.cpp
index 7227d56d725..84dd912350e 100644
--- a/src/mame/drivers/quizpun2.cpp
+++ b/src/mame/drivers/quizpun2.cpp
@@ -216,8 +216,8 @@ WRITE8_MEMBER(quizpun2_state::scroll_w)
void quizpun2_state::video_start()
{
- m_bg_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(quizpun2_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS,16,16,0x20,0x40);
- m_fg_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(quizpun2_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS,16,16,0x20,0x40);
+ m_bg_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(quizpun2_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS,16,16,0x20,0x40);
+ m_fg_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(quizpun2_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS,16,16,0x20,0x40);
m_bg_tmap->set_transparent_pen(0);
m_fg_tmap->set_transparent_pen(0);
diff --git a/src/mame/drivers/quizshow.cpp b/src/mame/drivers/quizshow.cpp
index ca56abe0d43..334ff573035 100644
--- a/src/mame/drivers/quizshow.cpp
+++ b/src/mame/drivers/quizshow.cpp
@@ -129,7 +129,7 @@ TILE_GET_INFO_MEMBER(quizshow_state::get_tile_info)
void quizshow_state::video_start()
{
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(quizshow_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 16, 32, 16);
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(quizshow_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 16, 32, 16);
}
uint32_t quizshow_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
diff --git a/src/mame/drivers/qvt102.cpp b/src/mame/drivers/qvt102.cpp
index 56644e3c5e7..833450d2996 100644
--- a/src/mame/drivers/qvt102.cpp
+++ b/src/mame/drivers/qvt102.cpp
@@ -630,7 +630,7 @@ void qvt102_state::qvt102(machine_config &config)
m_crtc->set_screen("screen");
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(9);
- m_crtc->set_update_row_callback(FUNC(qvt102_state::crtc_update_row), this);
+ m_crtc->set_update_row_callback(FUNC(qvt102_state::crtc_update_row));
m_crtc->out_vsync_callback().set(FUNC(qvt102_state::vsync_w));
ACIA6850(config, m_acia, 0);
diff --git a/src/mame/drivers/qvt190.cpp b/src/mame/drivers/qvt190.cpp
index dff45aa5ece..0e4778308e0 100644
--- a/src/mame/drivers/qvt190.cpp
+++ b/src/mame/drivers/qvt190.cpp
@@ -135,7 +135,7 @@ void qvt190_state::qvt190(machine_config &config)
mc6845_device &crtc(MC6845(config, "crtc", 16.6698_MHz_XTAL / 9));
crtc.set_screen("screen");
crtc.set_char_width(9);
- crtc.set_update_row_callback(FUNC(qvt190_state::update_row), this);
+ crtc.set_update_row_callback(FUNC(qvt190_state::update_row));
}
ROM_START( qvt190 )
diff --git a/src/mame/drivers/qx10.cpp b/src/mame/drivers/qx10.cpp
index 3d660ecf7b8..13e91067742 100644
--- a/src/mame/drivers/qx10.cpp
+++ b/src/mame/drivers/qx10.cpp
@@ -827,7 +827,7 @@ void qx10_state::qx10(machine_config &config)
// software lists
SOFTWARE_LIST(config, "flop_list").set_original("qx10_flop");
- QUICKLOAD(config, "quickload", "com,cpm", attotime::from_seconds(3)).set_load_callback(FUNC(qx10_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "com,cpm", attotime::from_seconds(3)).set_load_callback(FUNC(qx10_state::quickload_cb));
}
/* ROM definition */
diff --git a/src/mame/drivers/r2dtank.cpp b/src/mame/drivers/r2dtank.cpp
index f0804a1f499..8860359a3fb 100644
--- a/src/mame/drivers/r2dtank.cpp
+++ b/src/mame/drivers/r2dtank.cpp
@@ -466,7 +466,7 @@ void r2dtank_state::r2dtank(machine_config &config)
crtc.set_screen("screen");
crtc.set_show_border_area(false);
crtc.set_char_width(8);
- crtc.set_update_row_callback(FUNC(r2dtank_state::crtc_update_row), this);
+ crtc.set_update_row_callback(FUNC(r2dtank_state::crtc_update_row));
crtc.out_de_callback().set("74123", FUNC(ttl74123_device::a_w));
/* 74LS123 */
diff --git a/src/mame/drivers/r2dx_v33.cpp b/src/mame/drivers/r2dx_v33.cpp
index a70701efad0..d1ec01a7755 100644
--- a/src/mame/drivers/r2dx_v33.cpp
+++ b/src/mame/drivers/r2dx_v33.cpp
@@ -483,9 +483,9 @@ void r2dx_v33_state::nzeroteam_base_map(address_map &map)
// map(0x00762, 0x00763).r(FUNC(r2dx_v33_state::nzerotea_unknown_r));
- map(0x00780, 0x0079f).lrw8("seibu_sound_rw",
- [this](offs_t offset) { return m_seibu_sound->main_r(offset >> 1); },
- [this](offs_t offset, u8 data) { m_seibu_sound->main_w(offset >> 1, data); }).umask16(0x00ff);
+ map(0x00780, 0x0079f).lrw8(
+ NAME([this] (offs_t offset) { return m_seibu_sound->main_r(offset >> 1); }),
+ NAME([this] (offs_t offset, u8 data) { m_seibu_sound->main_w(offset >> 1, data); })).umask16(0x00ff);
map(0x00800, 0x00fff).ram();
map(0x01000, 0x0bfff).ram();
diff --git a/src/mame/drivers/rabbit.cpp b/src/mame/drivers/rabbit.cpp
index ab112f18b34..2f7f1731633 100644
--- a/src/mame/drivers/rabbit.cpp
+++ b/src/mame/drivers/rabbit.cpp
@@ -426,10 +426,10 @@ void rabbit_state::video_start()
m_tilemap_ram[2] = make_unique_clear<uint32_t[]>(0x20000/4);
m_tilemap_ram[3] = make_unique_clear<uint32_t[]>(0x20000/4);
- m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(rabbit_state::get_tilemap0_tile_info),this),TILEMAP_SCAN_ROWS,16, 16, 128,32);
- m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(rabbit_state::get_tilemap1_tile_info),this),TILEMAP_SCAN_ROWS,16, 16, 128,32);
- m_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(rabbit_state::get_tilemap2_tile_info),this),TILEMAP_SCAN_ROWS,16, 16, 128,32);
- m_tilemap[3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(rabbit_state::get_tilemap3_tile_info),this),TILEMAP_SCAN_ROWS, 8, 8, 128,32);
+ m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(rabbit_state::get_tilemap0_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 128, 32);
+ m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(rabbit_state::get_tilemap1_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 128, 32);
+ m_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(rabbit_state::get_tilemap2_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 128, 32);
+ m_tilemap[3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(rabbit_state::get_tilemap3_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 128, 32);
/* the tilemaps mix 4bpp and 8bbp tiles, we split these into 2 groups, and set a different transpen for each group */
m_tilemap[0]->map_pen_to_layer(0, 15, TILEMAP_PIXEL_TRANSPARENT);
diff --git a/src/mame/drivers/radio86.cpp b/src/mame/drivers/radio86.cpp
index bd67ef4d0a7..6203769d5ab 100644
--- a/src/mame/drivers/radio86.cpp
+++ b/src/mame/drivers/radio86.cpp
@@ -476,7 +476,7 @@ void radio86_state::radio86(machine_config &config)
i8275_device &crtc(I8275(config, "i8275", XTAL(16'000'000) / 12));
crtc.set_character_width(6);
- crtc.set_display_callback(FUNC(radio86_state::display_pixels), this);
+ crtc.set_display_callback(FUNC(radio86_state::display_pixels));
crtc.drq_wr_callback().set(m_dma8257, FUNC(i8257_device::dreq2_w));
/* video hardware */
diff --git a/src/mame/drivers/raiden2.cpp b/src/mame/drivers/raiden2.cpp
index 7ce33e9323f..8e53b82694c 100644
--- a/src/mame/drivers/raiden2.cpp
+++ b/src/mame/drivers/raiden2.cpp
@@ -585,9 +585,9 @@ void raiden2_state::raiden2_mem(address_map &map)
map(0x0068e, 0x0068f).w(m_spriteram, FUNC(buffered_spriteram16_device::write));
- map(0x00700, 0x0071f).lrw8("seibu_sound_rw",
- [this](offs_t offset) { return m_seibu_sound->main_r(offset >> 1); },
- [this](offs_t offset, u8 data) { m_seibu_sound->main_w(offset >> 1, data); }).umask16(0x00ff);
+ map(0x00700, 0x0071f).lrw8(
+ NAME([this](offs_t offset) { return m_seibu_sound->main_r(offset >> 1); }),
+ NAME([this](offs_t offset, u8 data) { m_seibu_sound->main_w(offset >> 1, data); })).umask16(0x00ff);
map(0x00740, 0x00741).portr("DSW");
map(0x00744, 0x00745).portr("P1_P2");
@@ -630,9 +630,9 @@ void raiden2_state::zeroteam_mem(address_map &map)
map(0x0068e, 0x0068f).w(m_spriteram, FUNC(buffered_spriteram16_device::write));
- map(0x00700, 0x0071f).lrw8("seibu_sound_rw",
- [this](offs_t offset) { return m_seibu_sound->main_r(offset >> 1); },
- [this](offs_t offset, u8 data) { m_seibu_sound->main_w(offset >> 1, data); }).umask16(0x00ff);
+ map(0x00700, 0x0071f).lrw8(
+ NAME([this](offs_t offset) { return m_seibu_sound->main_r(offset >> 1); }),
+ NAME([this](offs_t offset, u8 data) { m_seibu_sound->main_w(offset >> 1, data); })).umask16(0x00ff);
map(0x00740, 0x00741).portr("DSW");
map(0x00744, 0x00745).portr("P1_P2");
@@ -664,9 +664,9 @@ void raiden2_state::xsedae_mem(address_map &map)
map(0x0068e, 0x0068f).w(m_spriteram, FUNC(buffered_spriteram16_device::write));
- map(0x00700, 0x0071f).lrw8("seibu_sound_rw",
- [this](offs_t offset) { return m_seibu_sound->main_r(offset >> 1); },
- [this](offs_t offset, u8 data) { m_seibu_sound->main_w(offset >> 1, data); }).umask16(0x00ff);
+ map(0x00700, 0x0071f).lrw8(
+ NAME([this](offs_t offset) { return m_seibu_sound->main_r(offset >> 1); }),
+ NAME([this](offs_t offset, u8 data) { m_seibu_sound->main_w(offset >> 1, data); })).umask16(0x00ff);
map(0x00740, 0x00741).portr("DSW");
map(0x00744, 0x00745).portr("P1_P2");
diff --git a/src/mame/drivers/rainbow.cpp b/src/mame/drivers/rainbow.cpp
index 12004e771ba..627e08732ba 100644
--- a/src/mame/drivers/rainbow.cpp
+++ b/src/mame/drivers/rainbow.cpp
@@ -1164,8 +1164,8 @@ void rainbow_state::machine_reset()
#ifdef RTC_ENABLED
// *********************************** / DS1315 'PHANTOM CLOCK' IMPLEMENTATION FOR 'DEC-100-A' ***************************************
- program.install_read_handler(RTC_BASE, RTC_BASE, read8_delegate(FUNC(rainbow_state::rtc_r), this));
- program.install_write_handler(RTC_BASE + 0xFE, RTC_BASE + 0xFF, write8_delegate(FUNC(rainbow_state::rtc_w), this));
+ program.install_read_handler(RTC_BASE, RTC_BASE, read8_delegate(*this, FUNC(rainbow_state::rtc_r)));
+ program.install_write_handler(RTC_BASE + 0xFE, RTC_BASE + 0xFF, write8_delegate(*this, FUNC(rainbow_state::rtc_w)));
// *********************************** / DS1315 'PHANTOM CLOCK' IMPLEMENTATION FOR 'DEC-100-A' ***************************************
#endif
@@ -1183,7 +1183,7 @@ void rainbow_state::machine_reset()
#ifdef RTC_ENABLED
// *********************************** / DS1315 'PHANTOM CLOCK' IMPLEMENTATION FOR 'DEC-100-B' ***************************************
// No address space needed ( -> IRQs must be disabled to block ROM accesses during reads ).
- program.install_read_handler(RTC_BASE, RTC_BASE + 0x2104, read8_delegate(FUNC(rainbow_state::rtc_r), this));
+ program.install_read_handler(RTC_BASE, RTC_BASE + 0x2104, read8_delegate(*this, FUNC(rainbow_state::rtc_r)));
// *********************************** / DS1315 'PHANTOM CLOCK' IMPLEMENTATION FOR 'DEC-100-B' ***************************************
#endif
#endif
@@ -1206,8 +1206,8 @@ void rainbow_state::machine_reset()
{
// Install 8088 read / write handler
io.unmap_readwrite(0x60, 0x60);
- io.install_read_handler(0x60, 0x60, read8_delegate(FUNC(rainbow_state::hd_status_60_r), this));
- io.install_write_handler(0x60, 0x60, write8_delegate(FUNC(rainbow_state::hd_status_60_w), this));
+ io.install_read_handler(0x60, 0x60, read8_delegate(*this, FUNC(rainbow_state::hd_status_60_r)));
+ io.install_write_handler(0x60, 0x60, write8_delegate(*this, FUNC(rainbow_state::hd_status_60_w)));
hdc_reset();
m_hdc_drive_ready = true;
@@ -2756,7 +2756,7 @@ WRITE8_MEMBER(rainbow_state::diagnostic_w) // 8088 (port 0A WRITTEN). Fig.4-28 +
// Install 8088 read / write handler once loopback test is over
if ( !(data & 32) && (m_diagnostic & 32) )
{
- io.install_readwrite_handler(0x40, 0x43, read8sm_delegate(FUNC(upd7201_new_device::cd_ba_r), &*m_mpsc), write8sm_delegate(FUNC(upd7201_new_device::cd_ba_w), &*m_mpsc));
+ io.install_readwrite_handler(0x40, 0x43, read8sm_delegate(*m_mpsc, FUNC(upd7201_new_device::cd_ba_r)), write8sm_delegate(*m_mpsc, FUNC(upd7201_new_device::cd_ba_w)));
logerror("\n **** COMM HANDLER INSTALLED **** ");
//popmessage("Autoboot from drive %c", m_p_nvram[0xab] ? (64 + m_p_nvram[0xab]) : 0x3F );
}
diff --git a/src/mame/drivers/rastan.cpp b/src/mame/drivers/rastan.cpp
index dc9d741188c..355e9235aec 100644
--- a/src/mame/drivers/rastan.cpp
+++ b/src/mame/drivers/rastan.cpp
@@ -370,7 +370,7 @@ void rastan_state::rastan(machine_config &config)
PC090OJ(config, m_pc090oj, 0);
m_pc090oj->set_palette("palette");
- m_pc090oj->set_colpri_callback(FUNC(rastan_state::rastan_colpri_cb), this);
+ m_pc090oj->set_colpri_callback(FUNC(rastan_state::rastan_colpri_cb));
/* sound hardware */
SPEAKER(config, "mono").front_center();
diff --git a/src/mame/drivers/rastersp.cpp b/src/mame/drivers/rastersp.cpp
index 6e4fd1fd0ab..5cafb2b16ef 100644
--- a/src/mame/drivers/rastersp.cpp
+++ b/src/mame/drivers/rastersp.cpp
@@ -186,8 +186,8 @@ void rastersp_state::machine_start()
m_tms_tx_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(rastersp_state::tms_tx_timer), this));
#if USE_SPEEDUP_HACK
- m_dsp->space(AS_PROGRAM).install_read_handler(0x809923, 0x809923, read32_delegate(FUNC(rastersp_state::dsp_speedup_r), this));
- m_dsp->space(AS_PROGRAM).install_write_handler(0x809923, 0x809923, write32_delegate(FUNC(rastersp_state::dsp_speedup_w), this));
+ m_dsp->space(AS_PROGRAM).install_read_handler(0x809923, 0x809923, read32_delegate(*this, FUNC(rastersp_state::dsp_speedup_r)));
+ m_dsp->space(AS_PROGRAM).install_write_handler(0x809923, 0x809923, write32_delegate(*this, FUNC(rastersp_state::dsp_speedup_w)));
#endif
}
diff --git a/src/mame/drivers/ravens.cpp b/src/mame/drivers/ravens.cpp
index 5bd97c2a571..35ee278499e 100644
--- a/src/mame/drivers/ravens.cpp
+++ b/src/mame/drivers/ravens.cpp
@@ -350,7 +350,7 @@ void ravens_state::ravens(machine_config &config)
config.set_default_layout(layout_ravens);
/* quickload */
- QUICKLOAD(config, "quickload", "pgm", attotime::from_seconds(1)).set_load_callback(FUNC(ravens_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "pgm", attotime::from_seconds(1)).set_load_callback(FUNC(ravens_state::quickload_cb));
SPEAKER(config, "mono").front_center();
@@ -375,7 +375,7 @@ void ravens_state::ravens2(machine_config &config)
m_terminal->set_keyboard_callback(FUNC(ravens_state::kbd_put));
/* quickload */
- QUICKLOAD(config, "quickload", "pgm", attotime::from_seconds(1)).set_load_callback(FUNC(ravens_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "pgm", attotime::from_seconds(1)).set_load_callback(FUNC(ravens_state::quickload_cb));
SPEAKER(config, "mono").front_center();
diff --git a/src/mame/drivers/rbisland.cpp b/src/mame/drivers/rbisland.cpp
index c4827687fb9..7a2610b476a 100644
--- a/src/mame/drivers/rbisland.cpp
+++ b/src/mame/drivers/rbisland.cpp
@@ -668,7 +668,7 @@ void rbisland_state::rbisland(machine_config &config)
PC090OJ(config, m_pc090oj, 0);
m_pc090oj->set_palette(m_palette);
- m_pc090oj->set_colpri_callback(FUNC(rbisland_state::rbisland_colpri_cb), this);
+ m_pc090oj->set_colpri_callback(FUNC(rbisland_state::rbisland_colpri_cb));
/* sound hardware */
SPEAKER(config, "mono").front_center();
diff --git a/src/mame/drivers/rc702.cpp b/src/mame/drivers/rc702.cpp
index 65f9ea41210..26a62d7bf71 100644
--- a/src/mame/drivers/rc702.cpp
+++ b/src/mame/drivers/rc702.cpp
@@ -121,7 +121,7 @@ void rc702_state::rc702_io(address_map &map)
map(0x0c, 0x0f).rw(m_ctc1, FUNC(z80ctc_device::read), FUNC(z80ctc_device::write));
map(0x10, 0x13).rw(m_pio, FUNC(z80pio_device::read), FUNC(z80pio_device::write));
map(0x14, 0x17).portr("DSW").w(FUNC(rc702_state::port14_w)); // motors
- map(0x18, 0x1b).lw8("banking",[this](u8 data){membank("bankr0")->set_entry(1);}); // replace roms with ram
+ map(0x18, 0x1b).lw8(NAME([this] (u8 data) { membank("bankr0")->set_entry(1); })); // replace roms with ram
map(0x1c, 0x1f).w(FUNC(rc702_state::port1c_w)); // sound
map(0xf0, 0xff).rw(m_dma, FUNC(am9517a_device::read), FUNC(am9517a_device::write));
}
@@ -387,7 +387,7 @@ void rc702_state::rc702(machine_config &config)
i8275_device &crtc(I8275(config, "crtc", 11640000/7));
crtc.set_character_width(7);
- crtc.set_display_callback(FUNC(rc702_state::display_pixels), this);
+ crtc.set_display_callback(FUNC(rc702_state::display_pixels));
crtc.irq_wr_callback().set(m_7474, FUNC(ttl7474_device::clear_w)).invert();
crtc.irq_wr_callback().append(m_ctc1, FUNC(z80ctc_device::trg2));
crtc.drq_wr_callback().set(FUNC(rc702_state::crtc_drq_w));
diff --git a/src/mame/drivers/rd100.cpp b/src/mame/drivers/rd100.cpp
index c9ece638430..d5d83d4dd05 100644
--- a/src/mame/drivers/rd100.cpp
+++ b/src/mame/drivers/rd100.cpp
@@ -219,7 +219,7 @@ void rd100_state::rd100(machine_config &config)
hd44780_device &hd44780(HD44780(config, "hd44780"));
hd44780.set_lcd_size(2, 16);
- hd44780.set_pixel_update_cb(FUNC(rd100_state::pixel_update), this);
+ hd44780.set_pixel_update_cb(FUNC(rd100_state::pixel_update));
PALETTE(config, "palette").set_entries(2);
diff --git a/src/mame/drivers/rex6000.cpp b/src/mame/drivers/rex6000.cpp
index 1a0eb1f5a8e..d79a7350650 100644
--- a/src/mame/drivers/rex6000.cpp
+++ b/src/mame/drivers/rex6000.cpp
@@ -935,7 +935,7 @@ void rex6000_state::rex6000(machine_config &config)
serport.cts_handler().set(m_uart, FUNC(ins8250_uart_device::cts_w));
/* quickload */
- QUICKLOAD(config, "quickload", "rex,ds2").set_load_callback(FUNC(rex6000_state::quickload_rex6000), this);
+ QUICKLOAD(config, "quickload", "rex,ds2").set_load_callback(FUNC(rex6000_state::quickload_rex6000));
tc8521_device &rtc(TC8521(config, TC8521_TAG, XTAL(32'768)));
rtc.out_alarm_callback().set(FUNC(rex6000_state::alarm_irq));
@@ -999,7 +999,7 @@ void oz750_state::oz750(machine_config &config)
ADDRESS_MAP_BANK(config, "bank1").set_map(&oz750_state::oz750_banked_map).set_options(ENDIANNESS_LITTLE, 8, 32, 0x2000);
/* quickload */
- QUICKLOAD(config, "quickload", "wzd").set_load_callback(FUNC(oz750_state::quickload_oz750), this);
+ QUICKLOAD(config, "quickload", "wzd").set_load_callback(FUNC(oz750_state::quickload_oz750));
tc8521_device &rtc(TC8521(config, TC8521_TAG, XTAL(32'768)));
rtc.out_alarm_callback().set(FUNC(rex6000_state::alarm_irq));
diff --git a/src/mame/drivers/rmhaihai.cpp b/src/mame/drivers/rmhaihai.cpp
index 46558a70a50..7d3a612bc7b 100644
--- a/src/mame/drivers/rmhaihai.cpp
+++ b/src/mame/drivers/rmhaihai.cpp
@@ -132,7 +132,7 @@ TILE_GET_INFO_MEMBER(rmhaihai_state::get_bg_tile_info)
void rmhaihai_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(rmhaihai_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS,
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(rmhaihai_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS,
8, 8, 64, 32);
save_item(NAME(m_keyboard_cmd));
diff --git a/src/mame/drivers/rockrage.cpp b/src/mame/drivers/rockrage.cpp
index 4d28a96862c..362ac8cc2df 100644
--- a/src/mame/drivers/rockrage.cpp
+++ b/src/mame/drivers/rockrage.cpp
@@ -271,12 +271,12 @@ void rockrage_state::rockrage(machine_config &config)
K007342(config, m_k007342, 0);
m_k007342->set_gfxnum(0);
- m_k007342->set_tile_callback(FUNC(rockrage_state::rockrage_tile_callback), this);
+ m_k007342->set_tile_callback(FUNC(rockrage_state::rockrage_tile_callback));
m_k007342->set_gfxdecode_tag(m_gfxdecode);
K007420(config, m_k007420, 0);
m_k007420->set_bank_limit(0x3ff);
- m_k007420->set_sprite_callback(FUNC(rockrage_state::rockrage_sprite_callback), this);
+ m_k007420->set_sprite_callback(FUNC(rockrage_state::rockrage_sprite_callback));
m_k007420->set_palette_tag(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_rockrage);
diff --git a/src/mame/drivers/rohga.cpp b/src/mame/drivers/rohga.cpp
index 6f3b582d725..937919ba648 100644
--- a/src/mame/drivers/rohga.cpp
+++ b/src/mame/drivers/rohga.cpp
@@ -899,8 +899,8 @@ void rohga_state::rohga(machine_config &config)
m_deco_tilegen[0]->set_pf2_col_bank(0x10);
m_deco_tilegen[0]->set_pf1_col_mask(0x0f);
m_deco_tilegen[0]->set_pf2_col_mask(0x0f);
- m_deco_tilegen[0]->set_bank1_callback(FUNC(rohga_state::bank_callback), this);
- m_deco_tilegen[0]->set_bank2_callback(FUNC(rohga_state::bank_callback), this);
+ m_deco_tilegen[0]->set_bank1_callback(FUNC(rohga_state::bank_callback));
+ m_deco_tilegen[0]->set_bank2_callback(FUNC(rohga_state::bank_callback));
m_deco_tilegen[0]->set_pf12_8x8_bank(0);
m_deco_tilegen[0]->set_pf12_16x16_bank(1);
m_deco_tilegen[0]->set_gfxdecode_tag("gfxdecode");
@@ -914,15 +914,15 @@ void rohga_state::rohga(machine_config &config)
m_deco_tilegen[1]->set_pf2_col_bank(0x10);
m_deco_tilegen[1]->set_pf1_col_mask(0x0f);
m_deco_tilegen[1]->set_pf2_col_mask(0x0f);
- m_deco_tilegen[1]->set_bank1_callback(FUNC(rohga_state::bank_callback), this);
- m_deco_tilegen[1]->set_bank2_callback(FUNC(rohga_state::bank_callback), this);
+ m_deco_tilegen[1]->set_bank1_callback(FUNC(rohga_state::bank_callback));
+ m_deco_tilegen[1]->set_bank2_callback(FUNC(rohga_state::bank_callback));
m_deco_tilegen[1]->set_pf12_8x8_bank(0);
m_deco_tilegen[1]->set_pf12_16x16_bank(2);
m_deco_tilegen[1]->set_gfxdecode_tag("gfxdecode");
DECO_SPRITE(config, m_sprgen[0], 0);
- m_sprgen[0]->set_pri_callback(FUNC(rohga_state::rohga_pri_callback), this);
- m_sprgen[0]->set_col_callback(FUNC(rohga_state::rohga_col_callback), this);
+ m_sprgen[0]->set_pri_callback(FUNC(rohga_state::rohga_pri_callback));
+ m_sprgen[0]->set_col_callback(FUNC(rohga_state::rohga_col_callback));
m_sprgen[0]->set_gfx_region(3);
m_sprgen[0]->set_gfxdecode_tag("gfxdecode");
@@ -989,8 +989,8 @@ void rohga_state::wizdfire(machine_config &config)
m_deco_tilegen[0]->set_pf2_col_bank(0x10);
m_deco_tilegen[0]->set_pf1_col_mask(0x0f);
m_deco_tilegen[0]->set_pf2_col_mask(0x0f);
- m_deco_tilegen[0]->set_bank1_callback(FUNC(rohga_state::bank_callback), this);
- m_deco_tilegen[0]->set_bank2_callback(FUNC(rohga_state::bank_callback), this);
+ m_deco_tilegen[0]->set_bank1_callback(FUNC(rohga_state::bank_callback));
+ m_deco_tilegen[0]->set_bank2_callback(FUNC(rohga_state::bank_callback));
m_deco_tilegen[0]->set_pf12_8x8_bank(0);
m_deco_tilegen[0]->set_pf12_16x16_bank(1);
m_deco_tilegen[0]->set_gfxdecode_tag("gfxdecode");
@@ -1004,8 +1004,8 @@ void rohga_state::wizdfire(machine_config &config)
m_deco_tilegen[1]->set_pf2_col_bank(0x10);
m_deco_tilegen[1]->set_pf1_col_mask(0x0f);
m_deco_tilegen[1]->set_pf2_col_mask(0x0f);
- m_deco_tilegen[1]->set_bank1_callback(FUNC(rohga_state::bank_callback), this);
- m_deco_tilegen[1]->set_bank2_callback(FUNC(rohga_state::bank_callback), this);
+ m_deco_tilegen[1]->set_bank1_callback(FUNC(rohga_state::bank_callback));
+ m_deco_tilegen[1]->set_bank2_callback(FUNC(rohga_state::bank_callback));
m_deco_tilegen[1]->set_pf12_8x8_bank(0);
m_deco_tilegen[1]->set_pf12_16x16_bank(2);
m_deco_tilegen[1]->set_gfxdecode_tag("gfxdecode");
@@ -1084,8 +1084,8 @@ void rohga_state::nitrobal(machine_config &config)
m_deco_tilegen[0]->set_pf2_col_bank(0x10);
m_deco_tilegen[0]->set_pf1_col_mask(0x0f);
m_deco_tilegen[0]->set_pf2_col_mask(0x0f);
- m_deco_tilegen[0]->set_bank1_callback(FUNC(rohga_state::bank_callback), this);
- m_deco_tilegen[0]->set_bank2_callback(FUNC(rohga_state::bank_callback), this);
+ m_deco_tilegen[0]->set_bank1_callback(FUNC(rohga_state::bank_callback));
+ m_deco_tilegen[0]->set_bank2_callback(FUNC(rohga_state::bank_callback));
m_deco_tilegen[0]->set_pf12_8x8_bank(0);
m_deco_tilegen[0]->set_pf12_16x16_bank(1);
m_deco_tilegen[0]->set_gfxdecode_tag("gfxdecode");
@@ -1099,8 +1099,8 @@ void rohga_state::nitrobal(machine_config &config)
m_deco_tilegen[1]->set_pf2_col_bank(0);
m_deco_tilegen[1]->set_pf1_col_mask(0);
m_deco_tilegen[1]->set_pf2_col_mask(0);
- m_deco_tilegen[1]->set_bank1_callback(FUNC(rohga_state::bank_callback), this);
- m_deco_tilegen[1]->set_bank2_callback(FUNC(rohga_state::bank_callback), this);
+ m_deco_tilegen[1]->set_bank1_callback(FUNC(rohga_state::bank_callback));
+ m_deco_tilegen[1]->set_bank2_callback(FUNC(rohga_state::bank_callback));
m_deco_tilegen[1]->set_pf12_8x8_bank(0);
m_deco_tilegen[1]->set_pf12_16x16_bank(2);
m_deco_tilegen[1]->set_gfxdecode_tag("gfxdecode");
@@ -1180,8 +1180,8 @@ void rohga_state::schmeisr(machine_config &config)
m_deco_tilegen[0]->set_pf2_col_bank(0x10);
m_deco_tilegen[0]->set_pf1_col_mask(0x0f);
m_deco_tilegen[0]->set_pf2_col_mask(0x0f);
- m_deco_tilegen[0]->set_bank1_callback(FUNC(rohga_state::bank_callback), this);
- m_deco_tilegen[0]->set_bank2_callback(FUNC(rohga_state::bank_callback), this);
+ m_deco_tilegen[0]->set_bank1_callback(FUNC(rohga_state::bank_callback));
+ m_deco_tilegen[0]->set_bank2_callback(FUNC(rohga_state::bank_callback));
m_deco_tilegen[0]->set_pf12_8x8_bank(0);
m_deco_tilegen[0]->set_pf12_16x16_bank(1);
m_deco_tilegen[0]->set_gfxdecode_tag("gfxdecode");
@@ -1195,15 +1195,15 @@ void rohga_state::schmeisr(machine_config &config)
m_deco_tilegen[1]->set_pf2_col_bank(0x10);
m_deco_tilegen[1]->set_pf1_col_mask(0x0f);
m_deco_tilegen[1]->set_pf2_col_mask(0x0f);
- m_deco_tilegen[1]->set_bank1_callback(FUNC(rohga_state::bank_callback), this);
- m_deco_tilegen[1]->set_bank2_callback(FUNC(rohga_state::bank_callback), this);
+ m_deco_tilegen[1]->set_bank1_callback(FUNC(rohga_state::bank_callback));
+ m_deco_tilegen[1]->set_bank2_callback(FUNC(rohga_state::bank_callback));
m_deco_tilegen[1]->set_pf12_8x8_bank(0);
m_deco_tilegen[1]->set_pf12_16x16_bank(2);
m_deco_tilegen[1]->set_gfxdecode_tag("gfxdecode");
DECO_SPRITE(config, m_sprgen[0], 0);
- m_sprgen[0]->set_pri_callback(FUNC(rohga_state::rohga_pri_callback), this);
- m_sprgen[0]->set_col_callback(FUNC(rohga_state::schmeisr_col_callback), this); // wire mods on pcb...
+ m_sprgen[0]->set_pri_callback(FUNC(rohga_state::rohga_pri_callback));
+ m_sprgen[0]->set_col_callback(FUNC(rohga_state::schmeisr_col_callback)); // wire mods on pcb...
m_sprgen[0]->set_gfx_region(3);
m_sprgen[0]->set_gfxdecode_tag("gfxdecode");
diff --git a/src/mame/drivers/rollerg.cpp b/src/mame/drivers/rollerg.cpp
index b6aefa297eb..1c60e6bb5ea 100644
--- a/src/mame/drivers/rollerg.cpp
+++ b/src/mame/drivers/rollerg.cpp
@@ -270,12 +270,12 @@ void rollerg_state::rollerg(machine_config &config)
K053244(config, m_k053244, 0);
m_k053244->set_palette("palette");
m_k053244->set_offsets(-3, -1);
- m_k053244->set_sprite_callback(FUNC(rollerg_state::sprite_callback), this);
+ m_k053244->set_sprite_callback(FUNC(rollerg_state::sprite_callback));
K051316(config, m_k051316, 0);
m_k051316->set_palette("palette");
m_k051316->set_offsets(22, 1);
- m_k051316->set_zoom_callback(FUNC(rollerg_state::zoom_callback), this);
+ m_k051316->set_zoom_callback(FUNC(rollerg_state::zoom_callback));
K053252(config, m_k053252, 3000000*2);
m_k053252->int1_ack().set(FUNC(rollerg_state::rollerg_irq_ack_w));
diff --git a/src/mame/drivers/rollext.cpp b/src/mame/drivers/rollext.cpp
index 8a5af16a441..ae604a52d6e 100644
--- a/src/mame/drivers/rollext.cpp
+++ b/src/mame/drivers/rollext.cpp
@@ -572,7 +572,7 @@ INTERRUPT_GEN_MEMBER(rollext_state::vblank_interrupt)
void rollext_state::init_rollext()
{
- m_maincpu->set_command_callback(write32_delegate(FUNC(rollext_state::cmd_callback),this));
+ m_maincpu->set_command_callback(*this, FUNC(rollext_state::cmd_callback));
}
diff --git a/src/mame/drivers/ron.cpp b/src/mame/drivers/ron.cpp
index 7b8a5294888..f1a012750bb 100644
--- a/src/mame/drivers/ron.cpp
+++ b/src/mame/drivers/ron.cpp
@@ -496,7 +496,7 @@ void ron_state::ron(machine_config &config)
I8035(config, m_audiocpu, SOUND_CLOCK);
m_audiocpu->set_addrmap(AS_PROGRAM, &ron_state::ron_audio_map);
m_audiocpu->set_addrmap(AS_IO, &ron_state::ron_audio_io);
- m_audiocpu->set_t0_clk_cb("aysnd", FUNC(device_t::set_unscaled_clock));
+ m_audiocpu->set_t0_clk_cb("aysnd", FUNC(device_t::set_unscaled_clock_int));
m_audiocpu->p2_in_cb().set(FUNC(ron_state::audio_cmd_r));
m_audiocpu->p1_out_cb().set(FUNC(ron_state::audio_p1_w));
m_audiocpu->p2_out_cb().set(FUNC(ron_state::audio_p2_w));
diff --git a/src/mame/drivers/rt1715.cpp b/src/mame/drivers/rt1715.cpp
index 26c2257ff58..fef76862797 100644
--- a/src/mame/drivers/rt1715.cpp
+++ b/src/mame/drivers/rt1715.cpp
@@ -602,7 +602,7 @@ void rt1715_state::rt1715(machine_config &config)
I8275(config, m_crtc, 13.824_MHz_XTAL / 8);
m_crtc->set_character_width(8);
- m_crtc->set_display_callback(FUNC(rt1715_state::crtc_display_pixels), this);
+ m_crtc->set_display_callback(FUNC(rt1715_state::crtc_display_pixels));
m_crtc->set_screen(m_screen);
/* keyboard */
diff --git a/src/mame/drivers/rungun.cpp b/src/mame/drivers/rungun.cpp
index 525bea32edf..fc07c720cb7 100644
--- a/src/mame/drivers/rungun.cpp
+++ b/src/mame/drivers/rungun.cpp
@@ -422,7 +422,7 @@ void rungun_state::rng(machine_config &config)
m_k053936->set_offsets(34, 9);
K055673(config, m_k055673, 0);
- m_k055673->set_sprite_callback(FUNC(rungun_state::sprite_callback), this);
+ m_k055673->set_sprite_callback(FUNC(rungun_state::sprite_callback));
m_k055673->set_config(K055673_LAYOUT_RNG, -8, -15);
m_k055673->set_palette(m_palette);
m_k055673->set_screen(m_screen);
diff --git a/src/mame/drivers/rx78.cpp b/src/mame/drivers/rx78.cpp
index 51c433cab2c..fc65fe855e0 100644
--- a/src/mame/drivers/rx78.cpp
+++ b/src/mame/drivers/rx78.cpp
@@ -431,7 +431,7 @@ void rx78_state::machine_reset()
{
address_space &prg = m_maincpu->space(AS_PROGRAM);
if (m_cart->exists())
- prg.install_read_handler(0x2000, 0x5fff, read8sm_delegate(FUNC(generic_slot_device::read_rom),(generic_slot_device*)m_cart));
+ prg.install_read_handler(0x2000, 0x5fff, read8sm_delegate(*m_cart, FUNC(generic_slot_device::read_rom)));
}
DEVICE_IMAGE_LOAD_MEMBER( rx78_state::cart_load )
@@ -491,7 +491,7 @@ void rx78_state::rx78(machine_config &config)
PALETTE(config, m_palette).set_entries(16+1); //+1 for the background color
GFXDECODE(config, "gfxdecode", m_palette, gfx_rx78);
- GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "rx78_cart", "bin,rom").set_device_load(FUNC(rx78_state::cart_load), this);
+ GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "rx78_cart", "bin,rom").set_device_load(FUNC(rx78_state::cart_load));
RAM(config, RAM_TAG).set_default_size("32K").set_extra_options("16K");
diff --git a/src/mame/drivers/rz1.cpp b/src/mame/drivers/rz1.cpp
index 6b92833fb52..7dc22f683ba 100644
--- a/src/mame/drivers/rz1.cpp
+++ b/src/mame/drivers/rz1.cpp
@@ -369,7 +369,7 @@ void rz1_state::rz1(machine_config &config)
HD44780(config, m_hd44780, 0);
m_hd44780->set_lcd_size(1, 16);
- m_hd44780->set_pixel_update_cb(FUNC(rz1_state::lcd_pixel_update), this);
+ m_hd44780->set_pixel_update_cb(FUNC(rz1_state::lcd_pixel_update));
config.set_default_layout(layout_rz1);
diff --git a/src/mame/drivers/safarir.cpp b/src/mame/drivers/safarir.cpp
index f7c6b9c0904..4d3a199fa41 100644
--- a/src/mame/drivers/safarir.cpp
+++ b/src/mame/drivers/safarir.cpp
@@ -207,8 +207,8 @@ TILE_GET_INFO_MEMBER(safarir_state::get_fg_tile_info)
void safarir_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(safarir_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(safarir_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(safarir_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(safarir_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(0);
}
diff --git a/src/mame/drivers/sage2.cpp b/src/mame/drivers/sage2.cpp
index 3b703af5967..358d7fc1d3d 100644
--- a/src/mame/drivers/sage2.cpp
+++ b/src/mame/drivers/sage2.cpp
@@ -387,7 +387,7 @@ void sage2_state::machine_reset()
address_space &program = m_maincpu->space(AS_PROGRAM);
program.unmap_readwrite(0x000000, 0x07ffff);
program.install_rom(0x000000, 0x001fff, 0x07e000, m_rom->base());
- program.install_read_handler(0xfe0000, 0xfe3fff, read16_delegate(FUNC(sage2_state::rom_r), this));
+ program.install_read_handler(0xfe0000, 0xfe3fff, read16_delegate(*this, FUNC(sage2_state::rom_r)));
}
READ16_MEMBER(sage2_state::rom_r)
diff --git a/src/mame/drivers/saitek_corona.cpp b/src/mame/drivers/saitek_corona.cpp
index 6eea4fdba10..48fd6bbdb3a 100644
--- a/src/mame/drivers/saitek_corona.cpp
+++ b/src/mame/drivers/saitek_corona.cpp
@@ -293,7 +293,7 @@ void corona_state::corona(machine_config &config)
/* extension rom */
GENERIC_CARTSLOT(config, m_extrom, generic_plain_slot, "saitek_egr", "bin");
- m_extrom->set_device_load(FUNC(corona_state::extrom_load), this);
+ m_extrom->set_device_load(FUNC(corona_state::extrom_load));
SOFTWARE_LIST(config, "cart_list").set_original("saitek_egr");
}
diff --git a/src/mame/drivers/saitek_stratos.cpp b/src/mame/drivers/saitek_stratos.cpp
index 786b4482183..e0f757e3292 100644
--- a/src/mame/drivers/saitek_stratos.cpp
+++ b/src/mame/drivers/saitek_stratos.cpp
@@ -513,7 +513,7 @@ void stratos_state::stratos(machine_config &config)
/* extension rom */
GENERIC_CARTSLOT(config, m_extrom, generic_plain_slot, "saitek_egr", "bin");
- m_extrom->set_device_load(FUNC(stratos_state::extrom_load), this);
+ m_extrom->set_device_load(FUNC(stratos_state::extrom_load));
SOFTWARE_LIST(config, "cart_list").set_original("saitek_egr");
}
diff --git a/src/mame/drivers/saitek_superstar.cpp b/src/mame/drivers/saitek_superstar.cpp
index 491b2bee8f0..29921bbfad7 100644
--- a/src/mame/drivers/saitek_superstar.cpp
+++ b/src/mame/drivers/saitek_superstar.cpp
@@ -243,7 +243,7 @@ void star_state::tstar432(machine_config &config)
/* extension rom */
GENERIC_CARTSLOT(config, m_extrom, generic_plain_slot, "saitek_kso", "bin");
- m_extrom->set_device_load(FUNC(star_state::extrom_load), this);
+ m_extrom->set_device_load(FUNC(star_state::extrom_load));
SOFTWARE_LIST(config, "cart_list").set_original("saitek_kso");
}
diff --git a/src/mame/drivers/sangho.cpp b/src/mame/drivers/sangho.cpp
index 91c55bbcd8a..705ecf3c02e 100644
--- a/src/mame/drivers/sangho.cpp
+++ b/src/mame/drivers/sangho.cpp
@@ -221,7 +221,7 @@ void pzlestar_state::pzlestar_map_banks()
break;
}
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xffff, 0xffff, read8_delegate(FUNC(pzlestar_state::sec_slot_r),this), write8_delegate(FUNC(pzlestar_state::sec_slot_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xffff, 0xffff, read8_delegate(*this, FUNC(pzlestar_state::sec_slot_r)), write8_delegate(*this, FUNC(pzlestar_state::sec_slot_w)));
}
WRITE8_MEMBER(pzlestar_state::pzlestar_bank_w)
diff --git a/src/mame/drivers/sanremo.cpp b/src/mame/drivers/sanremo.cpp
index 9f5cd7f919d..91c46478352 100644
--- a/src/mame/drivers/sanremo.cpp
+++ b/src/mame/drivers/sanremo.cpp
@@ -169,7 +169,7 @@ TILE_GET_INFO_MEMBER(sanremo_state::get_tile_info)
void sanremo_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sanremo_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 48, 40);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sanremo_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 48, 40);
m_lamps.resolve();
diff --git a/src/mame/drivers/sapi1.cpp b/src/mame/drivers/sapi1.cpp
index 67865dabc03..b1cd1733f1f 100644
--- a/src/mame/drivers/sapi1.cpp
+++ b/src/mame/drivers/sapi1.cpp
@@ -846,7 +846,7 @@ void sapi_state::sapi3b(machine_config &config)
crtc.set_screen("screen");
crtc.set_show_border_area(false);
crtc.set_char_width(6);
- crtc.set_update_row_callback(FUNC(sapi_state::crtc_update_row), this);
+ crtc.set_update_row_callback(FUNC(sapi_state::crtc_update_row));
subdevice<screen_device>("screen")->set_screen_update("crtc", FUNC(mc6845_device::screen_update));
subdevice<screen_device>("screen")->set_no_palette();
diff --git a/src/mame/drivers/saturn.cpp b/src/mame/drivers/saturn.cpp
index e6f6cf5209f..b81750ea784 100644
--- a/src/mame/drivers/saturn.cpp
+++ b/src/mame/drivers/saturn.cpp
@@ -606,8 +606,8 @@ void sat_console_state::nvram_init(nvram_device &nvram, void *data, size_t size)
MACHINE_START_MEMBER(sat_console_state, saturn)
{
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x02400000, 0x027fffff, read32_delegate(FUNC(sat_console_state::saturn_null_ram_r),this), write32_delegate(FUNC(sat_console_state::saturn_null_ram_w),this));
- m_slave->space(AS_PROGRAM).install_readwrite_handler(0x02400000, 0x027fffff, read32_delegate(FUNC(sat_console_state::saturn_null_ram_r),this), write32_delegate(FUNC(sat_console_state::saturn_null_ram_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x02400000, 0x027fffff, read32_delegate(*this, FUNC(sat_console_state::saturn_null_ram_r)), write32_delegate(*this, FUNC(sat_console_state::saturn_null_ram_w)));
+ m_slave->space(AS_PROGRAM).install_readwrite_handler(0x02400000, 0x027fffff, read32_delegate(*this, FUNC(sat_console_state::saturn_null_ram_r)), write32_delegate(*this, FUNC(sat_console_state::saturn_null_ram_w)));
m_maincpu->space(AS_PROGRAM).nop_readwrite(0x04000000, 0x047fffff);
m_slave->space(AS_PROGRAM).nop_readwrite(0x04000000, 0x047fffff);
@@ -622,39 +622,39 @@ MACHINE_START_MEMBER(sat_console_state, saturn)
case 0x22:
case 0x23:
case 0x24:
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x04000000, 0x047fffff, read32_delegate(FUNC(sat_cart_slot_device::read_ext_bram), (sat_cart_slot_device*)m_exp));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x04000000, 0x047fffff, write32_delegate(FUNC(sat_cart_slot_device::write_ext_bram), (sat_cart_slot_device*)m_exp));
- m_slave->space(AS_PROGRAM).install_read_handler(0x04000000, 0x047fffff, read32_delegate(FUNC(sat_cart_slot_device::read_ext_bram), (sat_cart_slot_device*)m_exp));
- m_slave->space(AS_PROGRAM).install_write_handler(0x04000000, 0x047fffff, write32_delegate(FUNC(sat_cart_slot_device::write_ext_bram), (sat_cart_slot_device*)m_exp));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x24000000, 0x247fffff, read32_delegate(FUNC(sat_cart_slot_device::read_ext_bram), (sat_cart_slot_device*)m_exp));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x24000000, 0x247fffff, write32_delegate(FUNC(sat_cart_slot_device::write_ext_bram), (sat_cart_slot_device*)m_exp));
- m_slave->space(AS_PROGRAM).install_read_handler(0x24000000, 0x247fffff, read32_delegate(FUNC(sat_cart_slot_device::read_ext_bram), (sat_cart_slot_device*)m_exp));
- m_slave->space(AS_PROGRAM).install_write_handler(0x24000000, 0x247fffff, write32_delegate(FUNC(sat_cart_slot_device::write_ext_bram), (sat_cart_slot_device*)m_exp));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x04000000, 0x047fffff, read32_delegate(*m_exp, FUNC(sat_cart_slot_device::read_ext_bram)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x04000000, 0x047fffff, write32_delegate(*m_exp, FUNC(sat_cart_slot_device::write_ext_bram)));
+ m_slave->space(AS_PROGRAM).install_read_handler(0x04000000, 0x047fffff, read32_delegate(*m_exp, FUNC(sat_cart_slot_device::read_ext_bram)));
+ m_slave->space(AS_PROGRAM).install_write_handler(0x04000000, 0x047fffff, write32_delegate(*m_exp, FUNC(sat_cart_slot_device::write_ext_bram)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x24000000, 0x247fffff, read32_delegate(*m_exp, FUNC(sat_cart_slot_device::read_ext_bram)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x24000000, 0x247fffff, write32_delegate(*m_exp, FUNC(sat_cart_slot_device::write_ext_bram)));
+ m_slave->space(AS_PROGRAM).install_read_handler(0x24000000, 0x247fffff, read32_delegate(*m_exp, FUNC(sat_cart_slot_device::read_ext_bram)));
+ m_slave->space(AS_PROGRAM).install_write_handler(0x24000000, 0x247fffff, write32_delegate(*m_exp, FUNC(sat_cart_slot_device::write_ext_bram)));
break;
case 0x5a: // Data RAM cart
case 0x5c:
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x02400000, 0x025fffff, read32_delegate(FUNC(sat_cart_slot_device::read_ext_dram0), (sat_cart_slot_device*)m_exp));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x02400000, 0x025fffff, write32_delegate(FUNC(sat_cart_slot_device::write_ext_dram0), (sat_cart_slot_device*)m_exp));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x02600000, 0x027fffff, read32_delegate(FUNC(sat_cart_slot_device::read_ext_dram1), (sat_cart_slot_device*)m_exp));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x02600000, 0x027fffff, write32_delegate(FUNC(sat_cart_slot_device::write_ext_dram1), (sat_cart_slot_device*)m_exp));
- m_slave->space(AS_PROGRAM).install_read_handler(0x02400000, 0x025fffff, read32_delegate(FUNC(sat_cart_slot_device::read_ext_dram0), (sat_cart_slot_device*)m_exp));
- m_slave->space(AS_PROGRAM).install_write_handler(0x02400000, 0x025fffff, write32_delegate(FUNC(sat_cart_slot_device::write_ext_dram0), (sat_cart_slot_device*)m_exp));
- m_slave->space(AS_PROGRAM).install_read_handler(0x02600000, 0x027fffff, read32_delegate(FUNC(sat_cart_slot_device::read_ext_dram1), (sat_cart_slot_device*)m_exp));
- m_slave->space(AS_PROGRAM).install_write_handler(0x02600000, 0x027fffff, write32_delegate(FUNC(sat_cart_slot_device::write_ext_dram1), (sat_cart_slot_device*)m_exp));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x22400000, 0x225fffff, read32_delegate(FUNC(sat_cart_slot_device::read_ext_dram0), (sat_cart_slot_device*)m_exp));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x22400000, 0x225fffff, write32_delegate(FUNC(sat_cart_slot_device::write_ext_dram0), (sat_cart_slot_device*)m_exp));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x22600000, 0x227fffff, read32_delegate(FUNC(sat_cart_slot_device::read_ext_dram1), (sat_cart_slot_device*)m_exp));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x22600000, 0x227fffff, write32_delegate(FUNC(sat_cart_slot_device::write_ext_dram1), (sat_cart_slot_device*)m_exp));
- m_slave->space(AS_PROGRAM).install_read_handler(0x22400000, 0x225fffff, read32_delegate(FUNC(sat_cart_slot_device::read_ext_dram0), (sat_cart_slot_device*)m_exp));
- m_slave->space(AS_PROGRAM).install_write_handler(0x22400000, 0x225fffff, write32_delegate(FUNC(sat_cart_slot_device::write_ext_dram0), (sat_cart_slot_device*)m_exp));
- m_slave->space(AS_PROGRAM).install_read_handler(0x22600000, 0x227fffff, read32_delegate(FUNC(sat_cart_slot_device::read_ext_dram1), (sat_cart_slot_device*)m_exp));
- m_slave->space(AS_PROGRAM).install_write_handler(0x22600000, 0x227fffff, write32_delegate(FUNC(sat_cart_slot_device::write_ext_dram1), (sat_cart_slot_device*)m_exp));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x02400000, 0x025fffff, read32_delegate(*m_exp, FUNC(sat_cart_slot_device::read_ext_dram0)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x02400000, 0x025fffff, write32_delegate(*m_exp, FUNC(sat_cart_slot_device::write_ext_dram0)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x02600000, 0x027fffff, read32_delegate(*m_exp, FUNC(sat_cart_slot_device::read_ext_dram1)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x02600000, 0x027fffff, write32_delegate(*m_exp, FUNC(sat_cart_slot_device::write_ext_dram1)));
+ m_slave->space(AS_PROGRAM).install_read_handler(0x02400000, 0x025fffff, read32_delegate(*m_exp, FUNC(sat_cart_slot_device::read_ext_dram0)));
+ m_slave->space(AS_PROGRAM).install_write_handler(0x02400000, 0x025fffff, write32_delegate(*m_exp, FUNC(sat_cart_slot_device::write_ext_dram0)));
+ m_slave->space(AS_PROGRAM).install_read_handler(0x02600000, 0x027fffff, read32_delegate(*m_exp, FUNC(sat_cart_slot_device::read_ext_dram1)));
+ m_slave->space(AS_PROGRAM).install_write_handler(0x02600000, 0x027fffff, write32_delegate(*m_exp, FUNC(sat_cart_slot_device::write_ext_dram1)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x22400000, 0x225fffff, read32_delegate(*m_exp, FUNC(sat_cart_slot_device::read_ext_dram0)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x22400000, 0x225fffff, write32_delegate(*m_exp, FUNC(sat_cart_slot_device::write_ext_dram0)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x22600000, 0x227fffff, read32_delegate(*m_exp, FUNC(sat_cart_slot_device::read_ext_dram1)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x22600000, 0x227fffff, write32_delegate(*m_exp, FUNC(sat_cart_slot_device::write_ext_dram1)));
+ m_slave->space(AS_PROGRAM).install_read_handler(0x22400000, 0x225fffff, read32_delegate(*m_exp, FUNC(sat_cart_slot_device::read_ext_dram0)));
+ m_slave->space(AS_PROGRAM).install_write_handler(0x22400000, 0x225fffff, write32_delegate(*m_exp, FUNC(sat_cart_slot_device::write_ext_dram0)));
+ m_slave->space(AS_PROGRAM).install_read_handler(0x22600000, 0x227fffff, read32_delegate(*m_exp, FUNC(sat_cart_slot_device::read_ext_dram1)));
+ m_slave->space(AS_PROGRAM).install_write_handler(0x22600000, 0x227fffff, write32_delegate(*m_exp, FUNC(sat_cart_slot_device::write_ext_dram1)));
break;
case 0xff: // ROM cart + mirror
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x02000000, 0x023fffff, read32_delegate(FUNC(sat_cart_slot_device::read_rom), (sat_cart_slot_device*)m_exp));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x22000000, 0x223fffff, read32_delegate(FUNC(sat_cart_slot_device::read_rom), (sat_cart_slot_device*)m_exp));
- m_slave->space(AS_PROGRAM).install_read_handler(0x02000000, 0x023fffff, read32_delegate(FUNC(sat_cart_slot_device::read_rom), (sat_cart_slot_device*)m_exp));
- m_slave->space(AS_PROGRAM).install_read_handler(0x22000000, 0x223fffff, read32_delegate(FUNC(sat_cart_slot_device::read_rom), (sat_cart_slot_device*)m_exp));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x02000000, 0x023fffff, read32_delegate(*m_exp, FUNC(sat_cart_slot_device::read_rom)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x22000000, 0x223fffff, read32_delegate(*m_exp, FUNC(sat_cart_slot_device::read_rom)));
+ m_slave->space(AS_PROGRAM).install_read_handler(0x02000000, 0x023fffff, read32_delegate(*m_exp, FUNC(sat_cart_slot_device::read_rom)));
+ m_slave->space(AS_PROGRAM).install_read_handler(0x22000000, 0x223fffff, read32_delegate(*m_exp, FUNC(sat_cart_slot_device::read_rom)));
break;
}
}
@@ -666,7 +666,7 @@ MACHINE_START_MEMBER(sat_console_state, saturn)
save_item(NAME(m_vdp2.odd));
// TODO: trampoline
- m_audiocpu->set_reset_callback(write_line_delegate(FUNC(saturn_state::m68k_reset_callback),this));
+ m_audiocpu->set_reset_callback(*this, FUNC(saturn_state::m68k_reset_callback));
}
/* Die Hard Trilogy tests RAM address 0x25e7ffe bit 2 with Slave during FRT minit irq, in-development tool for breaking execution of it? */
diff --git a/src/mame/drivers/savquest.cpp b/src/mame/drivers/savquest.cpp
index 117eb78457f..1d56f54ad4f 100644
--- a/src/mame/drivers/savquest.cpp
+++ b/src/mame/drivers/savquest.cpp
@@ -823,12 +823,9 @@ void savquest_state::savquest(machine_config &config)
DS12885(config.replace(), "rtc");
pci_bus_legacy_device &pcibus(PCI_BUS_LEGACY(config, "pcibus", 0, 0));
- pcibus.set_device_read ( 0, FUNC(savquest_state::intel82439tx_pci_r), this);
- pcibus.set_device_write( 0, FUNC(savquest_state::intel82439tx_pci_w), this);
- pcibus.set_device_read ( 7, FUNC(savquest_state::intel82371ab_pci_r), this);
- pcibus.set_device_write( 7, FUNC(savquest_state::intel82371ab_pci_w), this);
- pcibus.set_device_read (13, FUNC(savquest_state::pci_3dfx_r), this);
- pcibus.set_device_write(13, FUNC(savquest_state::pci_3dfx_w), this);
+ pcibus.set_device( 0, FUNC(savquest_state::intel82439tx_pci_r), FUNC(savquest_state::intel82439tx_pci_w));
+ pcibus.set_device( 7, FUNC(savquest_state::intel82371ab_pci_r), FUNC(savquest_state::intel82371ab_pci_w));
+ pcibus.set_device(13, FUNC(savquest_state::pci_3dfx_r), FUNC(savquest_state::pci_3dfx_w));
ide_controller_32_device &ide(IDE_CONTROLLER_32(config, "ide").options(ata_devices, "hdd", nullptr, true));
ide.irq_handler().set("pic8259_2", FUNC(pic8259_device::ir6_w));
diff --git a/src/mame/drivers/sbowling.cpp b/src/mame/drivers/sbowling.cpp
index da8e1a3ce06..e6132f6dedb 100644
--- a/src/mame/drivers/sbowling.cpp
+++ b/src/mame/drivers/sbowling.cpp
@@ -153,7 +153,7 @@ uint32_t sbowling_state::screen_update(screen_device &screen, bitmap_ind16 &bitm
void sbowling_state::video_start()
{
m_tmpbitmap = std::make_unique<bitmap_ind16>(32*8,32*8);
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sbowling_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sbowling_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
save_item(NAME(m_bgmap));
save_item(NAME(m_system));
diff --git a/src/mame/drivers/sbrain.cpp b/src/mame/drivers/sbrain.cpp
index de2e101d8fc..5196e89e441 100644
--- a/src/mame/drivers/sbrain.cpp
+++ b/src/mame/drivers/sbrain.cpp
@@ -739,7 +739,7 @@ void sbrain_state::sbrain(machine_config &config)
FLOPPY_CONNECTOR(config, "fdc:2", sbrain_floppies, nullptr, floppy_image_device::default_floppy_formats).enable_sound(true);
FLOPPY_CONNECTOR(config, "fdc:3", sbrain_floppies, nullptr, floppy_image_device::default_floppy_formats).enable_sound(true);
- TIMER(config, "timer_a", 0).configure_periodic(timer_device::expired_delegate(FUNC(sbrain_state::kbd_scan), this), attotime::from_hz(15));
+ TIMER(config, "timer_a", 0).configure_periodic(FUNC(sbrain_state::kbd_scan), attotime::from_hz(15));
}
ROM_START( sbrain )
diff --git a/src/mame/drivers/sbrkout.cpp b/src/mame/drivers/sbrkout.cpp
index 164c30ffa42..10866b3b54c 100644
--- a/src/mame/drivers/sbrkout.cpp
+++ b/src/mame/drivers/sbrkout.cpp
@@ -339,7 +339,7 @@ TILE_GET_INFO_MEMBER(sbrkout_state::get_bg_tile_info)
void sbrkout_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sbrkout_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sbrkout_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
diff --git a/src/mame/drivers/scopus.cpp b/src/mame/drivers/scopus.cpp
index 3333215decc..535b68766f2 100644
--- a/src/mame/drivers/scopus.cpp
+++ b/src/mame/drivers/scopus.cpp
@@ -216,7 +216,7 @@ void sagitta180_state::sagitta180(machine_config &config)
I8275(config, m_crtc, 12480000 / 8); /* guessed xtal */
m_crtc->set_character_width(8);
- m_crtc->set_display_callback(FUNC(sagitta180_state::crtc_display_pixels), this);
+ m_crtc->set_display_callback(FUNC(sagitta180_state::crtc_display_pixels));
m_crtc->drq_wr_callback().set(m_dma8257, FUNC(i8257_device::dreq2_w));
m_crtc->irq_wr_callback().set_inputline(m_maincpu, I8085_INTR_LINE);
m_crtc->set_screen("screen");
diff --git a/src/mame/drivers/scorpion.cpp b/src/mame/drivers/scorpion.cpp
index d88d0f09ca9..b8654309569 100644
--- a/src/mame/drivers/scorpion.cpp
+++ b/src/mame/drivers/scorpion.cpp
@@ -217,7 +217,7 @@ MACHINE_RESET_MEMBER(scorpion_state,scorpion)
m_ram_0000 = nullptr;
m_program->install_read_bank(0x0000, 0x3fff, "bank1");
- m_program->install_write_handler(0x0000, 0x3fff, write8_delegate(FUNC(scorpion_state::scorpion_0000_w),this));
+ m_program->install_write_handler(0x0000, 0x3fff, write8_delegate(*this, FUNC(scorpion_state::scorpion_0000_w)));
m_beta->disable();
diff --git a/src/mame/drivers/seabattl.cpp b/src/mame/drivers/seabattl.cpp
index c633cc62da7..8e7153a30d0 100644
--- a/src/mame/drivers/seabattl.cpp
+++ b/src/mame/drivers/seabattl.cpp
@@ -242,7 +242,7 @@ void seabattl_state::video_start()
{
m_7segs.resolve();
m_screen->register_screen_bitmap(m_collision_bg);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(seabattl_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(seabattl_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_bg_tilemap->set_transparent_pen(0);
m_bg_tilemap->set_scrolldx(-12, 0);
}
diff --git a/src/mame/drivers/sega_beena.cpp b/src/mame/drivers/sega_beena.cpp
index 7ad05c481e9..95f8d9253bf 100644
--- a/src/mame/drivers/sega_beena.cpp
+++ b/src/mame/drivers/sega_beena.cpp
@@ -124,7 +124,7 @@ void sega_beena_state::sega_beena(machine_config &config)
GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "sega_beena_cart");
m_cart->set_width(GENERIC_ROM16_WIDTH);
- m_cart->set_device_load(FUNC(sega_beena_state::cart_load), this);
+ m_cart->set_device_load(FUNC(sega_beena_state::cart_load));
m_cart->set_must_be_loaded(true);
SOFTWARE_LIST(config, "cart_list").set_original("sega_beena_cart");
diff --git a/src/mame/drivers/segac2.cpp b/src/mame/drivers/segac2.cpp
index a194c4d37d0..ce5350b1ec5 100644
--- a/src/mame/drivers/segac2.cpp
+++ b/src/mame/drivers/segac2.cpp
@@ -105,6 +105,7 @@ public:
: md_base_state(mconfig, type, tag)
, m_paletteram(*this, "paletteram")
, m_upd_region(*this, "upd")
+ , m_prot_func(*this)
, m_upd7759(*this, "upd")
, m_screen(*this, "screen")
, m_palette(*this, "palette")
@@ -2140,7 +2141,7 @@ void segac2_state::segac2_common_init(segac2_prot_delegate prot_func)
m_prot_func = prot_func;
if (m_upd7759 != nullptr)
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x880000, 0x880001, 0, 0x13fefe, 0, write16_delegate(FUNC(segac2_state::segac2_upd7759_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x880000, 0x880001, 0, 0x13fefe, 0, write16_delegate(*this, FUNC(segac2_state::segac2_upd7759_w)));
}
int segac2_state::prot_func_dummy(int in)
@@ -2373,94 +2374,94 @@ int segac2_state::prot_func_pclubjv5(int in)
void segac2_state::init_c2boot()
{
- segac2_common_init(segac2_prot_delegate(FUNC(segac2_state::prot_func_dummy),this));
+ segac2_common_init(segac2_prot_delegate(*this, FUNC(segac2_state::prot_func_dummy)));
}
void segac2_state::init_bloxeedc()
{
- segac2_common_init(segac2_prot_delegate(FUNC(segac2_state::prot_func_dummy),this));
+ segac2_common_init(segac2_prot_delegate(*this, FUNC(segac2_state::prot_func_dummy)));
}
void segac2_state::init_columns()
{
- segac2_common_init(segac2_prot_delegate(FUNC(segac2_state::prot_func_columns),this));
+ segac2_common_init(segac2_prot_delegate(*this, FUNC(segac2_state::prot_func_columns)));
}
void segac2_state::init_columns2()
{
- segac2_common_init(segac2_prot_delegate(FUNC(segac2_state::prot_func_columns2),this));
+ segac2_common_init(segac2_prot_delegate(*this, FUNC(segac2_state::prot_func_columns2)));
}
void segac2_state::init_tfrceac()
{
- segac2_common_init(segac2_prot_delegate(FUNC(segac2_state::prot_func_tfrceac),this));
+ segac2_common_init(segac2_prot_delegate(*this, FUNC(segac2_state::prot_func_tfrceac)));
}
void segac2_state::init_tfrceacb()
{
/* disable the palette bank switching from the protection chip */
- segac2_common_init(segac2_prot_delegate(FUNC(segac2_state::prot_func_dummy),this));
+ segac2_common_init(segac2_prot_delegate(*this, FUNC(segac2_state::prot_func_dummy)));
m_maincpu->space(AS_PROGRAM).nop_write(0x800000, 0x800001);
}
void segac2_state::init_borench()
{
- segac2_common_init(segac2_prot_delegate(FUNC(segac2_state::prot_func_borench),this));
+ segac2_common_init(segac2_prot_delegate(*this, FUNC(segac2_state::prot_func_borench)));
}
void segac2_state::init_twinsqua()
{
- segac2_common_init(segac2_prot_delegate(FUNC(segac2_state::prot_func_twinsqua),this));
+ segac2_common_init(segac2_prot_delegate(*this, FUNC(segac2_state::prot_func_twinsqua)));
}
void segac2_state::init_ribbit()
{
- segac2_common_init(segac2_prot_delegate(FUNC(segac2_state::prot_func_ribbit),this));
+ segac2_common_init(segac2_prot_delegate(*this, FUNC(segac2_state::prot_func_ribbit)));
}
void segac2_state::init_puyo()
{
- segac2_common_init(segac2_prot_delegate(FUNC(segac2_state::prot_func_puyo),this));
+ segac2_common_init(segac2_prot_delegate(*this, FUNC(segac2_state::prot_func_puyo)));
}
void segac2_state::init_tantr()
{
- segac2_common_init(segac2_prot_delegate(FUNC(segac2_state::prot_func_tantr),this));
+ segac2_common_init(segac2_prot_delegate(*this, FUNC(segac2_state::prot_func_tantr)));
}
void segac2_state::init_tantrkor()
{
- segac2_common_init(segac2_prot_delegate(FUNC(segac2_state::prot_func_tantrkor),this));
+ segac2_common_init(segac2_prot_delegate(*this, FUNC(segac2_state::prot_func_tantrkor)));
}
void segac2_state::init_potopoto()
{
- segac2_common_init(segac2_prot_delegate(FUNC(segac2_state::prot_func_potopoto),this));
+ segac2_common_init(segac2_prot_delegate(*this, FUNC(segac2_state::prot_func_potopoto)));
}
void segac2_state::init_stkclmns()
{
- segac2_common_init(segac2_prot_delegate(FUNC(segac2_state::prot_func_stkclmns),this));
+ segac2_common_init(segac2_prot_delegate(*this, FUNC(segac2_state::prot_func_stkclmns)));
}
void segac2_state::init_stkclmnj()
{
- segac2_common_init(segac2_prot_delegate(FUNC(segac2_state::prot_func_stkclmnj),this));
+ segac2_common_init(segac2_prot_delegate(*this, FUNC(segac2_state::prot_func_stkclmnj)));
}
void segac2_state::init_ichir()
{
- segac2_common_init(segac2_prot_delegate(FUNC(segac2_state::prot_func_ichir),this));
+ segac2_common_init(segac2_prot_delegate(*this, FUNC(segac2_state::prot_func_ichir)));
}
void segac2_state::init_ichirk()
{
- segac2_common_init(segac2_prot_delegate(FUNC(segac2_state::prot_func_ichirk),this));
+ segac2_common_init(segac2_prot_delegate(*this, FUNC(segac2_state::prot_func_ichirk)));
}
void segac2_state::init_ichirj()
{
- segac2_common_init(segac2_prot_delegate(FUNC(segac2_state::prot_func_ichirj),this));
+ segac2_common_init(segac2_prot_delegate(*this, FUNC(segac2_state::prot_func_ichirj)));
}
READ16_MEMBER(segac2_state::ichirjbl_prot_r )
@@ -2470,49 +2471,49 @@ READ16_MEMBER(segac2_state::ichirjbl_prot_r )
void segac2_state::init_ichirjbl()
{
- segac2_common_init(segac2_prot_delegate(FUNC(segac2_state::prot_func_dummy),this));
+ segac2_common_init(segac2_prot_delegate(*this, FUNC(segac2_state::prot_func_dummy)));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x840108, 0x840109, read16_delegate(FUNC(segac2_state::ichirjbl_prot_r),this) );
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x840108, 0x840109, read16_delegate(*this, FUNC(segac2_state::ichirjbl_prot_r)));
}
void segac2_state::init_puyopuy2()
{
- segac2_common_init(segac2_prot_delegate(FUNC(segac2_state::prot_func_puyopuy2),this));
+ segac2_common_init(segac2_prot_delegate(*this, FUNC(segac2_state::prot_func_puyopuy2)));
}
void segac2_state::init_zunkyou()
{
- segac2_common_init(segac2_prot_delegate(FUNC(segac2_state::prot_func_zunkyou),this));
+ segac2_common_init(segac2_prot_delegate(*this, FUNC(segac2_state::prot_func_zunkyou)));
}
void segac2_state::init_pclub()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x880120, 0x880121, read16_delegate(FUNC(segac2_state::printer_r),this) );
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x880124, 0x880125, read16_delegate(FUNC(segac2_state::printer_r),this) );
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x880124, 0x880125, write16_delegate(FUNC(segac2_state::print_club_camera_w),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x880120, 0x880121, read16_delegate(*this, FUNC(segac2_state::printer_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x880124, 0x880125, read16_delegate(*this, FUNC(segac2_state::printer_r)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x880124, 0x880125, write16_delegate(*this, FUNC(segac2_state::print_club_camera_w)));
}
void segac2_state::init_pclubj()
{
- segac2_common_init(segac2_prot_delegate(FUNC(segac2_state::prot_func_pclub),this));
+ segac2_common_init(segac2_prot_delegate(*this, FUNC(segac2_state::prot_func_pclub)));
init_pclub();
}
void segac2_state::init_pclubjv2()
{
- segac2_common_init(segac2_prot_delegate(FUNC(segac2_state::prot_func_pclubjv2),this));
+ segac2_common_init(segac2_prot_delegate(*this, FUNC(segac2_state::prot_func_pclubjv2)));
init_pclub();
}
void segac2_state::init_pclubjv4()
{
- segac2_common_init(segac2_prot_delegate(FUNC(segac2_state::prot_func_pclubjv4),this));
+ segac2_common_init(segac2_prot_delegate(*this, FUNC(segac2_state::prot_func_pclubjv4)));
init_pclub();
}
void segac2_state::init_pclubjv5()
{
- segac2_common_init(segac2_prot_delegate(FUNC(segac2_state::prot_func_pclubjv5),this));
+ segac2_common_init(segac2_prot_delegate(*this, FUNC(segac2_state::prot_func_pclubjv5)));
init_pclub();
}
diff --git a/src/mame/drivers/segag80r.cpp b/src/mame/drivers/segag80r.cpp
index 0e6a28529d5..2347bc6907f 100644
--- a/src/mame/drivers/segag80r.cpp
+++ b/src/mame/drivers/segag80r.cpp
@@ -1537,11 +1537,11 @@ void segag80r_state::init_astrob()
m_background_pcb = G80_BACKGROUND_NONE;
/* install speech board */
- iospace.install_write_handler(0x38, 0x38, write8_delegate(FUNC(speech_sound_device::data_w), (speech_sound_device*)m_speech));
- iospace.install_write_handler(0x3b, 0x3b, write8_delegate(FUNC(speech_sound_device::control_w), (speech_sound_device*)m_speech));
+ iospace.install_write_handler(0x38, 0x38, write8_delegate(*m_speech, FUNC(speech_sound_device::data_w)));
+ iospace.install_write_handler(0x3b, 0x3b, write8_delegate(*m_speech, FUNC(speech_sound_device::control_w)));
/* install Astro Blaster sound board */
- iospace.install_write_handler(0x3e, 0x3f, write8_delegate(FUNC(segag80r_state::astrob_sound_w),this));
+ iospace.install_write_handler(0x3e, 0x3f, write8_delegate(*this, FUNC(segag80r_state::astrob_sound_w)));
save_item(NAME(m_sound_state));
save_item(NAME(m_sound_rate));
@@ -1575,14 +1575,14 @@ void segag80r_state::init_spaceod()
m_background_pcb = G80_BACKGROUND_SPACEOD;
/* configure ports for the background board */
- iospace.install_readwrite_handler(0x08, 0x0f, read8_delegate(FUNC(segag80r_state::spaceod_back_port_r),this), write8_delegate(FUNC(segag80r_state::spaceod_back_port_w),this));
+ iospace.install_readwrite_handler(0x08, 0x0f, read8_delegate(*this, FUNC(segag80r_state::spaceod_back_port_r)), write8_delegate(*this, FUNC(segag80r_state::spaceod_back_port_w)));
/* install Space Odyssey sound board */
- iospace.install_write_handler(0x0e, 0x0f, write8_delegate(FUNC(segag80r_state::spaceod_sound_w),this));
+ iospace.install_write_handler(0x0e, 0x0f, write8_delegate(*this, FUNC(segag80r_state::spaceod_sound_w)));
/* install our wacky mangled ports */
- iospace.install_read_handler(0xf8, 0xfb, read8_delegate(FUNC(segag80r_state::spaceod_mangled_ports_r),this));
- iospace.install_read_handler(0xfc, 0xfc, read8_delegate(FUNC(segag80r_state::spaceod_port_fc_r),this));
+ iospace.install_read_handler(0xf8, 0xfb, read8_delegate(*this, FUNC(segag80r_state::spaceod_mangled_ports_r)));
+ iospace.install_read_handler(0xfc, 0xfc, read8_delegate(*this, FUNC(segag80r_state::spaceod_port_fc_r)));
save_item(NAME(m_sound_state));
}
@@ -1601,8 +1601,8 @@ void segag80r_state::init_monsterb()
monsterb_expand_gfx("gfx1");
/* install background board handlers */
- iospace.install_write_handler(0xb8, 0xbd, write8_delegate(FUNC(segag80r_state::monsterb_back_port_w),this));
- pgmspace.install_write_handler(0xe000, 0xffff, write8_delegate(FUNC(segag80r_state::monsterb_vidram_w),this));
+ iospace.install_write_handler(0xb8, 0xbd, write8_delegate(*this, FUNC(segag80r_state::monsterb_back_port_w)));
+ pgmspace.install_write_handler(0xe000, 0xffff, write8_delegate(*this, FUNC(segag80r_state::monsterb_vidram_w)));
save_item(NAME(m_sound_state));
save_item(NAME(m_sound_addr));
@@ -1622,9 +1622,9 @@ void segag80r_state::init_monster2()
monsterb_expand_gfx("gfx1");
/* install background board handlers */
- iospace.install_write_handler(0xb4, 0xb5, write8_delegate(FUNC(segag80r_state::pignewt_back_color_w),this));
- iospace.install_write_handler(0xb8, 0xbd, write8_delegate(FUNC(segag80r_state::pignewt_back_port_w),this));
- pgmspace.install_write_handler(0xe000, 0xffff, write8_delegate(FUNC(segag80r_state::pignewt_vidram_w),this));
+ iospace.install_write_handler(0xb4, 0xb5, write8_delegate(*this, FUNC(segag80r_state::pignewt_back_color_w)));
+ iospace.install_write_handler(0xb8, 0xbd, write8_delegate(*this, FUNC(segag80r_state::pignewt_back_port_w)));
+ pgmspace.install_write_handler(0xe000, 0xffff, write8_delegate(*this, FUNC(segag80r_state::pignewt_vidram_w)));
save_item(NAME(m_sound_state));
save_item(NAME(m_sound_addr));
@@ -1644,14 +1644,14 @@ void segag80r_state::init_pignewt()
monsterb_expand_gfx("gfx1");
/* install background board handlers */
- iospace.install_write_handler(0xb4, 0xb5, write8_delegate(FUNC(segag80r_state::pignewt_back_color_w),this));
- iospace.install_write_handler(0xb8, 0xbd, write8_delegate(FUNC(segag80r_state::pignewt_back_port_w),this));
- pgmspace.install_write_handler(0xe000, 0xffff, write8_delegate(FUNC(segag80r_state::pignewt_vidram_w),this));
+ iospace.install_write_handler(0xb4, 0xb5, write8_delegate(*this, FUNC(segag80r_state::pignewt_back_color_w)));
+ iospace.install_write_handler(0xb8, 0xbd, write8_delegate(*this, FUNC(segag80r_state::pignewt_back_port_w)));
+ pgmspace.install_write_handler(0xe000, 0xffff, write8_delegate(*this, FUNC(segag80r_state::pignewt_vidram_w)));
/* install Universal sound board */
- iospace.install_readwrite_handler(0x3f, 0x3f, read8_delegate(FUNC(usb_sound_device::status_r), (usb_sound_device*)m_usbsnd), write8_delegate(FUNC(usb_sound_device::data_w), (usb_sound_device*)m_usbsnd));
- pgmspace.install_read_handler(0xd000, 0xdfff, read8_delegate(FUNC(usb_sound_device::ram_r), (usb_sound_device*)m_usbsnd));
- pgmspace.install_write_handler(0xd000, 0xdfff, write8_delegate(FUNC(segag80r_state::usb_ram_w),this));
+ iospace.install_readwrite_handler(0x3f, 0x3f, read8_delegate(*m_usbsnd, FUNC(usb_sound_device::status_r)), write8_delegate(*m_usbsnd, FUNC(usb_sound_device::data_w)));
+ pgmspace.install_read_handler(0xd000, 0xdfff, read8_delegate(*m_usbsnd, FUNC(usb_sound_device::ram_r)));
+ pgmspace.install_write_handler(0xd000, 0xdfff, write8_delegate(*this, FUNC(segag80r_state::usb_ram_w)));
}
@@ -1667,8 +1667,8 @@ void segag80r_state::init_sindbadm()
m_background_pcb = G80_BACKGROUND_SINDBADM;
/* install background board handlers */
- iospace.install_write_handler(0x40, 0x41, write8_delegate(FUNC(segag80r_state::sindbadm_back_port_w),this));
- pgmspace.install_write_handler(0xe000, 0xffff, write8_delegate(FUNC(segag80r_state::sindbadm_vidram_w),this));
+ iospace.install_write_handler(0x40, 0x41, write8_delegate(*this, FUNC(segag80r_state::sindbadm_back_port_w)));
+ pgmspace.install_write_handler(0xe000, 0xffff, write8_delegate(*this, FUNC(segag80r_state::sindbadm_vidram_w)));
}
diff --git a/src/mame/drivers/segag80v.cpp b/src/mame/drivers/segag80v.cpp
index 3104a986d79..136bfb3a4a4 100644
--- a/src/mame/drivers/segag80v.cpp
+++ b/src/mame/drivers/segag80v.cpp
@@ -1303,8 +1303,8 @@ void segag80v_state::init_elim2()
m_decrypt = segag80_security(70);
/* configure sound */
- iospace.install_write_handler(0x3e, 0x3e, write8_delegate(FUNC(segag80v_state::elim1_sh_w),this));
- iospace.install_write_handler(0x3f, 0x3f, write8_delegate(FUNC(segag80v_state::elim2_sh_w),this));
+ iospace.install_write_handler(0x3e, 0x3e, write8_delegate(*this, FUNC(segag80v_state::elim1_sh_w)));
+ iospace.install_write_handler(0x3f, 0x3f, write8_delegate(*this, FUNC(segag80v_state::elim2_sh_w)));
}
@@ -1316,12 +1316,12 @@ void segag80v_state::init_elim4()
m_decrypt = segag80_security(76);
/* configure sound */
- iospace.install_write_handler(0x3e, 0x3e, write8_delegate(FUNC(segag80v_state::elim1_sh_w),this));
- iospace.install_write_handler(0x3f, 0x3f, write8_delegate(FUNC(segag80v_state::elim2_sh_w),this));
+ iospace.install_write_handler(0x3e, 0x3e, write8_delegate(*this, FUNC(segag80v_state::elim1_sh_w)));
+ iospace.install_write_handler(0x3f, 0x3f, write8_delegate(*this, FUNC(segag80v_state::elim2_sh_w)));
/* configure inputs */
- iospace.install_write_handler(0xf8, 0xf8, write8_delegate(FUNC(segag80v_state::spinner_select_w),this));
- iospace.install_read_handler(0xfc, 0xfc, read8_delegate(FUNC(segag80v_state::elim4_input_r),this));
+ iospace.install_write_handler(0xf8, 0xf8, write8_delegate(*this, FUNC(segag80v_state::spinner_select_w)));
+ iospace.install_read_handler(0xfc, 0xfc, read8_delegate(*this, FUNC(segag80v_state::elim4_input_r)));
}
@@ -1333,10 +1333,10 @@ void segag80v_state::init_spacfury()
m_decrypt = segag80_security(64);
/* configure sound */
- iospace.install_write_handler(0x38, 0x38, write8_delegate(FUNC(speech_sound_device::data_w), (speech_sound_device*)m_speech));
- iospace.install_write_handler(0x3b, 0x3b, write8_delegate(FUNC(speech_sound_device::control_w), (speech_sound_device*)m_speech));
- iospace.install_write_handler(0x3e, 0x3e, write8_delegate(FUNC(segag80v_state::spacfury1_sh_w),this));
- iospace.install_write_handler(0x3f, 0x3f, write8_delegate(FUNC(segag80v_state::spacfury2_sh_w),this));
+ iospace.install_write_handler(0x38, 0x38, write8_delegate(*m_speech, FUNC(speech_sound_device::data_w)));
+ iospace.install_write_handler(0x3b, 0x3b, write8_delegate(*m_speech, FUNC(speech_sound_device::control_w)));
+ iospace.install_write_handler(0x3e, 0x3e, write8_delegate(*this, FUNC(segag80v_state::spacfury1_sh_w)));
+ iospace.install_write_handler(0x3f, 0x3f, write8_delegate(*this, FUNC(segag80v_state::spacfury2_sh_w)));
}
@@ -1348,15 +1348,15 @@ void segag80v_state::init_zektor()
m_decrypt = segag80_security(82);
/* configure sound */
- iospace.install_write_handler(0x38, 0x38, write8_delegate(FUNC(speech_sound_device::data_w), (speech_sound_device*)m_speech));
- iospace.install_write_handler(0x3b, 0x3b, write8_delegate(FUNC(speech_sound_device::control_w), (speech_sound_device*)m_speech));
- iospace.install_write_handler(0x3c, 0x3d, write8sm_delegate(FUNC(ay8912_device::address_data_w), (ay8912_device*)m_aysnd));
- iospace.install_write_handler(0x3e, 0x3e, write8_delegate(FUNC(segag80v_state::zektor1_sh_w),this));
- iospace.install_write_handler(0x3f, 0x3f, write8_delegate(FUNC(segag80v_state::zektor2_sh_w),this));
+ iospace.install_write_handler(0x38, 0x38, write8_delegate(*m_speech, FUNC(speech_sound_device::data_w)));
+ iospace.install_write_handler(0x3b, 0x3b, write8_delegate(*m_speech, FUNC(speech_sound_device::control_w)));
+ iospace.install_write_handler(0x3c, 0x3d, write8sm_delegate(*m_aysnd, FUNC(ay8912_device::address_data_w)));
+ iospace.install_write_handler(0x3e, 0x3e, write8_delegate(*this, FUNC(segag80v_state::zektor1_sh_w)));
+ iospace.install_write_handler(0x3f, 0x3f, write8_delegate(*this, FUNC(segag80v_state::zektor2_sh_w)));
/* configure inputs */
- iospace.install_write_handler(0xf8, 0xf8, write8_delegate(FUNC(segag80v_state::spinner_select_w),this));
- iospace.install_read_handler(0xfc, 0xfc, read8_delegate(FUNC(segag80v_state::spinner_input_r),this));
+ iospace.install_write_handler(0xf8, 0xf8, write8_delegate(*this, FUNC(segag80v_state::spinner_select_w)));
+ iospace.install_read_handler(0xfc, 0xfc, read8_delegate(*this, FUNC(segag80v_state::spinner_input_r)));
}
@@ -1369,13 +1369,13 @@ void segag80v_state::init_tacscan()
m_decrypt = segag80_security(76);
/* configure sound */
- iospace.install_readwrite_handler(0x3f, 0x3f, read8_delegate(FUNC(usb_sound_device::status_r), (usb_sound_device*)m_usb), write8_delegate(FUNC(usb_sound_device::data_w), (usb_sound_device*)m_usb));
- pgmspace.install_read_handler(0xd000, 0xdfff, read8_delegate(FUNC(usb_sound_device::ram_r), (usb_sound_device*)m_usb));
- pgmspace.install_write_handler(0xd000, 0xdfff, write8_delegate(FUNC(segag80v_state::usb_ram_w),this));
+ iospace.install_readwrite_handler(0x3f, 0x3f, read8_delegate(*m_usb, FUNC(usb_sound_device::status_r)), write8_delegate(*m_usb, FUNC(usb_sound_device::data_w)));
+ pgmspace.install_read_handler(0xd000, 0xdfff, read8_delegate(*m_usb, FUNC(usb_sound_device::ram_r)));
+ pgmspace.install_write_handler(0xd000, 0xdfff, write8_delegate(*this, FUNC(segag80v_state::usb_ram_w)));
/* configure inputs */
- iospace.install_write_handler(0xf8, 0xf8, write8_delegate(FUNC(segag80v_state::spinner_select_w),this));
- iospace.install_read_handler(0xfc, 0xfc, read8_delegate(FUNC(segag80v_state::spinner_input_r),this));
+ iospace.install_write_handler(0xf8, 0xf8, write8_delegate(*this, FUNC(segag80v_state::spinner_select_w)));
+ iospace.install_read_handler(0xfc, 0xfc, read8_delegate(*this, FUNC(segag80v_state::spinner_input_r)));
}
@@ -1388,16 +1388,16 @@ void segag80v_state::init_startrek()
m_decrypt = segag80_security(64);
/* configure sound */
- iospace.install_write_handler(0x38, 0x38, write8_delegate(FUNC(speech_sound_device::data_w), (speech_sound_device*)m_speech));
- iospace.install_write_handler(0x3b, 0x3b, write8_delegate(FUNC(speech_sound_device::control_w), (speech_sound_device*)m_speech));
+ iospace.install_write_handler(0x38, 0x38, write8_delegate(*m_speech, FUNC(speech_sound_device::data_w)));
+ iospace.install_write_handler(0x3b, 0x3b, write8_delegate(*m_speech, FUNC(speech_sound_device::control_w)));
- iospace.install_readwrite_handler(0x3f, 0x3f, read8_delegate(FUNC(usb_sound_device::status_r), (usb_sound_device*)m_usb), write8_delegate(FUNC(usb_sound_device::data_w), (usb_sound_device*)m_usb));
- pgmspace.install_read_handler(0xd000, 0xdfff, read8_delegate(FUNC(usb_sound_device::ram_r), (usb_sound_device*)m_usb));
- pgmspace.install_write_handler(0xd000, 0xdfff, write8_delegate(FUNC(segag80v_state::usb_ram_w),this));
+ iospace.install_readwrite_handler(0x3f, 0x3f, read8_delegate(*m_usb, FUNC(usb_sound_device::status_r)), write8_delegate(*m_usb, FUNC(usb_sound_device::data_w)));
+ pgmspace.install_read_handler(0xd000, 0xdfff, read8_delegate(*m_usb, FUNC(usb_sound_device::ram_r)));
+ pgmspace.install_write_handler(0xd000, 0xdfff, write8_delegate(*this, FUNC(segag80v_state::usb_ram_w)));
/* configure inputs */
- iospace.install_write_handler(0xf8, 0xf8, write8_delegate(FUNC(segag80v_state::spinner_select_w),this));
- iospace.install_read_handler(0xfc, 0xfc, read8_delegate(FUNC(segag80v_state::spinner_input_r),this));
+ iospace.install_write_handler(0xf8, 0xf8, write8_delegate(*this, FUNC(segag80v_state::spinner_select_w)));
+ iospace.install_read_handler(0xfc, 0xfc, read8_delegate(*this, FUNC(segag80v_state::spinner_input_r)));
}
diff --git a/src/mame/drivers/segaorun.cpp b/src/mame/drivers/segaorun.cpp
index cb1bc9f751b..71a32914c80 100644
--- a/src/mame/drivers/segaorun.cpp
+++ b/src/mame/drivers/segaorun.cpp
@@ -445,32 +445,32 @@ void segaorun_state::memory_mapper(sega_315_5195_mapper_device &mapper, uint8_t
switch (index)
{
case 5:
- mapper.map_as_handler(0x90000, 0x10000, 0xf00000, read16_delegate(FUNC(segaorun_state::sega_road_control_0_r), this), write16_delegate(FUNC(segaorun_state::sega_road_control_0_w), this));
- mapper.map_as_ram(0x80000, 0x01000, 0xf0f000, "segaic16road:roadram", write16_delegate());
- mapper.map_as_ram(0x60000, 0x08000, 0xf18000, "cpu1ram", write16_delegate());
- mapper.map_as_ram(0x00000, 0x60000, 0xf00000, "cpu1rom", write16_delegate(FUNC(segaorun_state::nop_w), this));
+ mapper.map_as_handler(0x90000, 0x10000, 0xf00000, read16_delegate(*this, FUNC(segaorun_state::sega_road_control_0_r)), write16_delegate(*this, FUNC(segaorun_state::sega_road_control_0_w)));
+ mapper.map_as_ram(0x80000, 0x01000, 0xf0f000, "segaic16road:roadram", write16_delegate(*this));
+ mapper.map_as_ram(0x60000, 0x08000, 0xf18000, "cpu1ram", write16_delegate(*this));
+ mapper.map_as_ram(0x00000, 0x60000, 0xf00000, "cpu1rom", write16_delegate(*this, FUNC(segaorun_state::nop_w)));
break;
case 4:
- mapper.map_as_handler(0x90000, 0x10000, 0xf00000, read16_delegate(FUNC(segaorun_state::misc_io_r), this), write16_delegate(FUNC(segaorun_state::misc_io_w), this));
+ mapper.map_as_handler(0x90000, 0x10000, 0xf00000, read16_delegate(*this, FUNC(segaorun_state::misc_io_r)), write16_delegate(*this, FUNC(segaorun_state::misc_io_w)));
break;
case 3:
- mapper.map_as_ram(0x00000, 0x01000, 0xfff000, "sprites", write16_delegate());
+ mapper.map_as_ram(0x00000, 0x01000, 0xfff000, "sprites", write16_delegate(*this));
break;
case 2:
- mapper.map_as_ram(0x00000, 0x02000, 0xffe000, "paletteram", write16_delegate(FUNC(segaorun_state::paletteram_w), this));
+ mapper.map_as_ram(0x00000, 0x02000, 0xffe000, "paletteram", write16_delegate(*this, FUNC(segaorun_state::paletteram_w)));
break;
case 1:
- mapper.map_as_ram(0x00000, 0x10000, 0xfe0000, "tileram", write16_delegate(FUNC(segaorun_state::tileram_w), this));
- mapper.map_as_ram(0x10000, 0x01000, 0xfef000, "textram", write16_delegate(FUNC(segaorun_state::textram_w), this));
+ mapper.map_as_ram(0x00000, 0x10000, 0xfe0000, "tileram", write16_delegate(*this, FUNC(segaorun_state::tileram_w)));
+ mapper.map_as_ram(0x10000, 0x01000, 0xfef000, "textram", write16_delegate(*this, FUNC(segaorun_state::textram_w)));
break;
case 0:
- mapper.map_as_ram(0x60000, 0x08000, 0xf98000, "workram", write16_delegate());
- mapper.map_as_rom(0x00000, 0x60000, 0xf80000, "rom0base", "decrypted_rom0base", 0x00000, write16_delegate());
+ mapper.map_as_ram(0x60000, 0x08000, 0xf98000, "workram", write16_delegate(*this));
+ mapper.map_as_rom(0x00000, 0x60000, 0xf80000, "rom0base", "decrypted_rom0base", 0x00000, write16_delegate(*this));
break;
}
}
@@ -537,7 +537,7 @@ void segaorun_state::machine_reset()
m_segaic16vid->tilemap_reset(*m_screen);
// hook the RESET line, which resets CPU #1
- m_maincpu->set_reset_callback(write_line_delegate(FUNC(segaorun_state::m68k_reset_callback),this));
+ m_maincpu->set_reset_callback(*this, FUNC(segaorun_state::m68k_reset_callback));
// start timers to track interrupts
m_scanline_timer->adjust(m_screen->time_until_pos(223), 223);
@@ -1183,7 +1183,7 @@ void segaorun_state::outrun_base(machine_config &config)
m_adc->vin_callback().set(FUNC(segaorun_state::analog_r));
SEGA_315_5195_MEM_MAPPER(config, m_mapper, MASTER_CLOCK/4, m_maincpu);
- m_mapper->set_mapper(FUNC(segaorun_state::memory_mapper), this);
+ m_mapper->set_mapper(FUNC(segaorun_state::memory_mapper));
m_mapper->pbf().set_inputline(m_soundcpu, INPUT_LINE_NMI);
// video hardware
@@ -2923,8 +2923,8 @@ void segaorun_state::init_generic()
void segaorun_state::init_outrun()
{
init_generic();
- m_custom_io_r = read16_delegate(FUNC(segaorun_state::outrun_custom_io_r), this);
- m_custom_io_w = write16_delegate(FUNC(segaorun_state::outrun_custom_io_w), this);
+ m_custom_io_r = read16_delegate(*this, FUNC(segaorun_state::outrun_custom_io_r));
+ m_custom_io_w = write16_delegate(*this, FUNC(segaorun_state::outrun_custom_io_w));
}
void segaorun_state::init_outrunb()
@@ -2969,8 +2969,8 @@ void segaorun_state::init_shangon()
{
init_generic();
m_shangon_video = true;
- m_custom_io_r = read16_delegate(FUNC(segaorun_state::shangon_custom_io_r), this);
- m_custom_io_w = write16_delegate(FUNC(segaorun_state::shangon_custom_io_w), this);
+ m_custom_io_r = read16_delegate(*this, FUNC(segaorun_state::shangon_custom_io_r));
+ m_custom_io_w = write16_delegate(*this, FUNC(segaorun_state::shangon_custom_io_w));
}
diff --git a/src/mame/drivers/segapico.cpp b/src/mame/drivers/segapico.cpp
index 0eed917f943..fa5e38fc88b 100644
--- a/src/mame/drivers/segapico.cpp
+++ b/src/mame/drivers/segapico.cpp
@@ -384,10 +384,10 @@ static void pico_cart(device_slot_interface &device)
MACHINE_START_MEMBER(pico_state,pico)
{
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7fffff, read16_delegate(FUNC(base_md_cart_slot_device::read),(base_md_cart_slot_device*)m_picocart), write16_delegate(FUNC(base_md_cart_slot_device::write),(base_md_cart_slot_device*)m_picocart));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xa13000, 0xa130ff, read16_delegate(FUNC(base_md_cart_slot_device::read_a13),(base_md_cart_slot_device*)m_picocart), write16_delegate(FUNC(base_md_cart_slot_device::write_a13),(base_md_cart_slot_device*)m_picocart));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xa15000, 0xa150ff, read16_delegate(FUNC(base_md_cart_slot_device::read_a15),(base_md_cart_slot_device*)m_picocart), write16_delegate(FUNC(base_md_cart_slot_device::write_a15),(base_md_cart_slot_device*)m_picocart));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xa14000, 0xa14003, write16_delegate(FUNC(base_md_cart_slot_device::write_tmss_bank),(base_md_cart_slot_device*)m_picocart));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7fffff, read16_delegate(*m_picocart, FUNC(base_md_cart_slot_device::read)), write16_delegate(*m_picocart, FUNC(base_md_cart_slot_device::write)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xa13000, 0xa130ff, read16_delegate(*m_picocart, FUNC(base_md_cart_slot_device::read_a13)), write16_delegate(*m_picocart, FUNC(base_md_cart_slot_device::write_a13)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xa15000, 0xa150ff, read16_delegate(*m_picocart, FUNC(base_md_cart_slot_device::read_a15)), write16_delegate(*m_picocart, FUNC(base_md_cart_slot_device::write_a15)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xa14000, 0xa14003, write16_delegate(*m_picocart, FUNC(base_md_cart_slot_device::write_tmss_bank)));
m_vdp->stop_timers();
}
@@ -596,10 +596,10 @@ static void copera_cart(device_slot_interface &device)
MACHINE_START_MEMBER(copera_state,copera)
{
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7fffff, read16_delegate(FUNC(base_md_cart_slot_device::read),(base_md_cart_slot_device*)m_picocart), write16_delegate(FUNC(base_md_cart_slot_device::write),(base_md_cart_slot_device*)m_picocart));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xa13000, 0xa130ff, read16_delegate(FUNC(base_md_cart_slot_device::read_a13),(base_md_cart_slot_device*)m_picocart), write16_delegate(FUNC(base_md_cart_slot_device::write_a13),(base_md_cart_slot_device*)m_picocart));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xa15000, 0xa150ff, read16_delegate(FUNC(base_md_cart_slot_device::read_a15),(base_md_cart_slot_device*)m_picocart), write16_delegate(FUNC(base_md_cart_slot_device::write_a15),(base_md_cart_slot_device*)m_picocart));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xa14000, 0xa14003, write16_delegate(FUNC(base_md_cart_slot_device::write_tmss_bank),(base_md_cart_slot_device*)m_picocart));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7fffff, read16_delegate(*m_picocart, FUNC(base_md_cart_slot_device::read)), write16_delegate(*m_picocart, FUNC(base_md_cart_slot_device::write)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xa13000, 0xa130ff, read16_delegate(*m_picocart, FUNC(base_md_cart_slot_device::read_a13)), write16_delegate(*m_picocart, FUNC(base_md_cart_slot_device::write_a13)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xa15000, 0xa150ff, read16_delegate(*m_picocart, FUNC(base_md_cart_slot_device::read_a15)), write16_delegate(*m_picocart, FUNC(base_md_cart_slot_device::write_a15)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xa14000, 0xa14003, write16_delegate(*m_picocart, FUNC(base_md_cart_slot_device::write_tmss_bank)));
m_sega_315_5641_pcm->reset_w(0);
m_sega_315_5641_pcm->start_w(0);
diff --git a/src/mame/drivers/segas16a.cpp b/src/mame/drivers/segas16a.cpp
index 80c31947558..b2c72b31273 100644
--- a/src/mame/drivers/segas16a.cpp
+++ b/src/mame/drivers/segas16a.cpp
@@ -2041,7 +2041,7 @@ void segas16a_state::aceattaca_fd1094(machine_config &config)
void segas16a_state::system16a_i8751(machine_config &config)
{
system16a(config);
- m_maincpu->set_vblank_int(device_interrupt_delegate(), nullptr);
+ m_maincpu->remove_vblank_int();
I8751(config, m_mcu, 8000000);
m_mcu->set_addrmap(AS_IO, &segas16a_state::mcu_io_map);
@@ -3882,8 +3882,8 @@ void segas16a_state::init_generic()
m_nvram->set_base(m_workram, m_workram.bytes());
// create default read/write handlers
- m_custom_io_r = read16_delegate(FUNC(segas16a_state::standard_io_r), this);
- m_custom_io_w = write16_delegate(FUNC(segas16a_state::standard_io_w), this);
+ m_custom_io_r = read16_delegate(*this, FUNC(segas16a_state::standard_io_r));
+ m_custom_io_w = write16_delegate(*this, FUNC(segas16a_state::standard_io_w));
// save state
save_item(NAME(m_video_control));
@@ -3904,8 +3904,8 @@ void segas16a_state::init_generic()
void segas16a_state::init_aceattaca()
{
init_generic();
- m_custom_io_r = read16_delegate(FUNC(segas16a_state::aceattaca_custom_io_r), this);
- m_custom_io_w = write16_delegate(FUNC(segas16a_state::aceattaca_custom_io_w), this);
+ m_custom_io_r = read16_delegate(*this, FUNC(segas16a_state::aceattaca_custom_io_r));
+ m_custom_io_w = write16_delegate(*this, FUNC(segas16a_state::aceattaca_custom_io_w));
}
void segas16a_state::init_dumpmtmt()
@@ -3917,25 +3917,25 @@ void segas16a_state::init_dumpmtmt()
void segas16a_state::init_mjleague()
{
init_generic();
- m_custom_io_r = read16_delegate(FUNC(segas16a_state::mjleague_custom_io_r), this);
+ m_custom_io_r = read16_delegate(*this, FUNC(segas16a_state::mjleague_custom_io_r));
}
void segas16a_state::init_passsht16a()
{
init_generic();
- m_custom_io_r = read16_delegate(FUNC(segas16a_state::passsht16a_custom_io_r), this);
+ m_custom_io_r = read16_delegate(*this, FUNC(segas16a_state::passsht16a_custom_io_r));
}
void segas16a_state::init_sdi()
{
init_generic();
- m_custom_io_r = read16_delegate(FUNC(segas16a_state::sdi_custom_io_r), this);
+ m_custom_io_r = read16_delegate(*this, FUNC(segas16a_state::sdi_custom_io_r));
}
void segas16a_state::init_sjryukoa()
{
init_generic();
- m_custom_io_r = read16_delegate(FUNC(segas16a_state::sjryuko_custom_io_r), this);
+ m_custom_io_r = read16_delegate(*this, FUNC(segas16a_state::sjryuko_custom_io_r));
m_lamp_changed_w = lamp_changed_delegate(&segas16a_state::sjryuko_lamp_changed_w, this);
}
diff --git a/src/mame/drivers/segas16b.cpp b/src/mame/drivers/segas16b.cpp
index 85ac0f7aa95..b80a25dd44e 100644
--- a/src/mame/drivers/segas16b.cpp
+++ b/src/mame/drivers/segas16b.cpp
@@ -905,30 +905,30 @@ void segas16b_state::memory_mapper(sega_315_5195_mapper_device &mapper, uint8_t
break;
case 6: // 4k of paletteram
- mapper.map_as_ram(0x00000, 0x01000, 0xfff000, "paletteram", write16_delegate(FUNC(segas16b_state::paletteram_w), this));
+ mapper.map_as_ram(0x00000, 0x01000, 0xfff000, "paletteram", write16_delegate(*this, FUNC(segas16b_state::paletteram_w)));
break;
case 5: // 64k of tileram + 4k of textram
- mapper.map_as_ram(0x00000, 0x10000, 0xfe0000, "tileram", write16_delegate(FUNC(segas16b_state::tileram_w), this));
- mapper.map_as_ram(0x10000, 0x01000, 0xfef000, "textram", write16_delegate(FUNC(segas16b_state::textram_w), this));
+ mapper.map_as_ram(0x00000, 0x10000, 0xfe0000, "tileram", write16_delegate(*this, FUNC(segas16b_state::tileram_w)));
+ mapper.map_as_ram(0x10000, 0x01000, 0xfef000, "textram", write16_delegate(*this, FUNC(segas16b_state::textram_w)));
break;
case 4: // 2k of spriteram
- mapper.map_as_ram(0x00000, 0x00800, 0xfff800, "sprites", write16_delegate());
+ mapper.map_as_ram(0x00000, 0x00800, 0xfff800, "sprites", write16_delegate(*this));
break;
case 3: // 16k or 256k of work RAM
- mapper.map_as_ram(0x00000, m_workram.bytes(), ~(m_workram.bytes() - 1), "workram", write16_delegate());
+ mapper.map_as_ram(0x00000, m_workram.bytes(), ~(m_workram.bytes() - 1), "workram", write16_delegate(*this));
break;
case 2: // 3rd ROM base, or board-specific banking
switch (m_romboard)
{
- case ROM_BOARD_171_5358_SMALL: mapper.map_as_rom(0x00000, 0x20000, 0xfe0000, "rom2base", "decrypted_rom2base", 0x20000, write16_delegate()); break;
- case ROM_BOARD_171_5358: mapper.map_as_rom(0x00000, 0x20000, 0xfe0000, "rom2base", "decrypted_rom2base", 0x40000, write16_delegate()); break;
+ case ROM_BOARD_171_5358_SMALL: mapper.map_as_rom(0x00000, 0x20000, 0xfe0000, "rom2base", "decrypted_rom2base", 0x20000, write16_delegate(*this)); break;
+ case ROM_BOARD_171_5358: mapper.map_as_rom(0x00000, 0x20000, 0xfe0000, "rom2base", "decrypted_rom2base", 0x40000, write16_delegate(*this)); break;
case ROM_BOARD_171_5521:
- case ROM_BOARD_171_5704: mapper.map_as_handler(0x00000, 0x10000, 0xff0000, read16_delegate(), write16_delegate(FUNC(segas16b_state::rom_5704_bank_w), this)); break;
- case ROM_BOARD_171_5797: mapper.map_as_handler(0x00000, 0x10000, 0xff0000, read16_delegate(FUNC(segas16b_state::unknown_rgn2_r), this), write16_delegate(FUNC(segas16b_state::unknown_rgn2_w), this)); break;
+ case ROM_BOARD_171_5704: mapper.map_as_handler(0x00000, 0x10000, 0xff0000, read16_delegate(*this), write16_delegate(*this, FUNC(segas16b_state::rom_5704_bank_w))); break;
+ case ROM_BOARD_171_5797: mapper.map_as_handler(0x00000, 0x10000, 0xff0000, read16_delegate(*this, FUNC(segas16b_state::unknown_rgn2_r)), write16_delegate(*this, FUNC(segas16b_state::unknown_rgn2_w))); break;
case ROM_BOARD_KOREAN: break;
default: assert(false);
}
@@ -937,12 +937,12 @@ void segas16b_state::memory_mapper(sega_315_5195_mapper_device &mapper, uint8_t
case 1: // 2nd ROM base, banking & math, or sound for Korean games
switch (m_romboard)
{
- case ROM_BOARD_171_5358_SMALL: mapper.map_as_rom(0x00000, 0x20000, 0xfe0000, "rom1base", "decrypted_rom1base", 0x10000, write16_delegate()); break;
- case ROM_BOARD_171_5358: mapper.map_as_rom(0x00000, 0x20000, 0xfe0000, "rom1base", "decrypted_rom1base", 0x20000, write16_delegate()); break;
+ case ROM_BOARD_171_5358_SMALL: mapper.map_as_rom(0x00000, 0x20000, 0xfe0000, "rom1base", "decrypted_rom1base", 0x10000, write16_delegate(*this)); break;
+ case ROM_BOARD_171_5358: mapper.map_as_rom(0x00000, 0x20000, 0xfe0000, "rom1base", "decrypted_rom1base", 0x20000, write16_delegate(*this)); break;
case ROM_BOARD_171_5521:
- case ROM_BOARD_171_5704: mapper.map_as_rom(0x00000, 0x40000, 0xfc0000, "rom1base", "decrypted_rom1base", 0x40000, write16_delegate()); break;
- case ROM_BOARD_KOREAN: mapper.map_as_handler(0x00000, 0x10000, 0xff0000, read16_delegate(), write16_delegate(FUNC(segas16b_state::atomicp_sound_w), this)); break;
- case ROM_BOARD_171_5797: mapper.map_as_handler(0x00000, 0x04000, 0xffc000, read16_delegate(FUNC(segas16b_state::rom_5797_bank_math_r), this), write16_delegate(FUNC(segas16b_state::rom_5797_bank_math_w), this)); break;
+ case ROM_BOARD_171_5704: mapper.map_as_rom(0x00000, 0x40000, 0xfc0000, "rom1base", "decrypted_rom1base", 0x40000, write16_delegate(*this)); break;
+ case ROM_BOARD_KOREAN: mapper.map_as_handler(0x00000, 0x10000, 0xff0000, read16_delegate(*this), write16_delegate(*this, FUNC(segas16b_state::atomicp_sound_w))); break;
+ case ROM_BOARD_171_5797: mapper.map_as_handler(0x00000, 0x04000, 0xffc000, read16_delegate(*this, FUNC(segas16b_state::rom_5797_bank_math_r)), write16_delegate(*this, FUNC(segas16b_state::rom_5797_bank_math_w))); break;
default: assert(false);
}
break;
@@ -950,12 +950,12 @@ void segas16b_state::memory_mapper(sega_315_5195_mapper_device &mapper, uint8_t
case 0: // 1st ROM base
switch (m_romboard)
{
- case ROM_BOARD_171_5358_SMALL: mapper.map_as_rom(0x00000, 0x20000, 0xfe0000, "rom0base", "decrypted_rom0base", 0x00000, write16_delegate()); break;
- case ROM_BOARD_171_5358: mapper.map_as_rom(0x00000, 0x20000, 0xfe0000, "rom0base", "decrypted_rom0base", 0x00000, write16_delegate()); break;
+ case ROM_BOARD_171_5358_SMALL: mapper.map_as_rom(0x00000, 0x20000, 0xfe0000, "rom0base", "decrypted_rom0base", 0x00000, write16_delegate(*this)); break;
+ case ROM_BOARD_171_5358: mapper.map_as_rom(0x00000, 0x20000, 0xfe0000, "rom0base", "decrypted_rom0base", 0x00000, write16_delegate(*this)); break;
case ROM_BOARD_171_5521:
- case ROM_BOARD_171_5704: mapper.map_as_rom(0x00000, 0x40000, 0xfc0000, "rom0base", "decrypted_rom0base", 0000000, write16_delegate()); break;
- case ROM_BOARD_KOREAN: mapper.map_as_rom(0x00000, 0x40000, 0xfc0000, "rom0base", "decrypted_rom0base", 0000000, write16_delegate()); break;
- case ROM_BOARD_171_5797: mapper.map_as_rom(0x00000, 0x80000, 0xf80000, "rom0base", "decrypted_rom0base", 0000000, write16_delegate()); break;
+ case ROM_BOARD_171_5704: mapper.map_as_rom(0x00000, 0x40000, 0xfc0000, "rom0base", "decrypted_rom0base", 0x00000, write16_delegate(*this)); break;
+ case ROM_BOARD_KOREAN: mapper.map_as_rom(0x00000, 0x40000, 0xfc0000, "rom0base", "decrypted_rom0base", 0x00000, write16_delegate(*this)); break;
+ case ROM_BOARD_171_5797: mapper.map_as_rom(0x00000, 0x80000, 0xf80000, "rom0base", "decrypted_rom0base", 0x00000, write16_delegate(*this)); break;
default: assert(false);
}
break;
@@ -3910,7 +3910,7 @@ void segas16b_state::system16b(machine_config &config)
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
SEGA_315_5195_MEM_MAPPER(config, m_mapper, MASTER_CLOCK_10MHz, m_maincpu);
- m_mapper->set_mapper(FUNC(segas16b_state::memory_mapper), this);
+ m_mapper->set_mapper(FUNC(segas16b_state::memory_mapper));
m_mapper->pbf().set_inputline(m_soundcpu, 0);
// video hardware
@@ -4084,7 +4084,7 @@ void segas16b_state::fpointbl(machine_config &config)
m_sprites->set_local_originx(75); // these align the pieces with the playfield
m_sprites->set_local_originy(-2); // some other gfx don't have identical alignment to original tho (flickey character over 'good luck')
- m_segaic16vid->set_pagelatch_cb(FUNC(segas16b_state::tilemap_16b_fpointbl_fill_latch), this);
+ m_segaic16vid->set_pagelatch_cb(FUNC(segas16b_state::tilemap_16b_fpointbl_fill_latch));
}
void segas16b_state::fpointbla(machine_config &config)
@@ -9299,8 +9299,8 @@ void segas16b_state::init_generic(segas16b_rom_board rom_board)
m_nvram->set_base(m_workram, m_workram.bytes());
// create default read/write handlers
- m_custom_io_r = read16_delegate(FUNC(segas16b_state::standard_io_r), this);
- m_custom_io_w = write16_delegate(FUNC(segas16b_state::standard_io_w), this);
+ m_custom_io_r = read16_delegate(*this, FUNC(segas16b_state::standard_io_r));
+ m_custom_io_w = write16_delegate(*this, FUNC(segas16b_state::standard_io_w));
// save state
save_item(NAME(m_atomicp_sound_count));
@@ -9359,8 +9359,8 @@ void segas16b_state::init_generic_bootleg()
void segas16b_state::init_aceattac_5358()
{
init_generic_5358();
- m_custom_io_r = read16_delegate(FUNC(segas16b_state::aceattac_custom_io_r), this);
- m_custom_io_w = write16_delegate(FUNC(segas16b_state::aceattac_custom_io_w), this);
+ m_custom_io_r = read16_delegate(*this, FUNC(segas16b_state::aceattac_custom_io_r));
+ m_custom_io_w = write16_delegate(*this, FUNC(segas16b_state::aceattac_custom_io_w));
}
void segas16b_state::init_aliensyn7_5358_small()
@@ -9384,27 +9384,27 @@ void segas16b_state::init_altbeas4_5521()
void segas16b_state::init_dunkshot_5358_small()
{
init_generic_5358_small();
- m_custom_io_r = read16_delegate(FUNC(segas16b_state::dunkshot_custom_io_r), this);
+ m_custom_io_r = read16_delegate(*this, FUNC(segas16b_state::dunkshot_custom_io_r));
m_tilemap_type = segaic16_video_device::TILEMAP_16B_ALT;
}
void segas16b_state::init_exctleag_5358()
{
init_generic_5358();
- m_custom_io_r = read16_delegate(FUNC(segas16b_state::sdi_custom_io_r), this);
+ m_custom_io_r = read16_delegate(*this, FUNC(segas16b_state::sdi_custom_io_r));
}
void segas16b_state::init_hwchamp_5521()
{
init_generic_5521();
- m_custom_io_r = read16_delegate(FUNC(segas16b_state::hwchamp_custom_io_r), this);
- m_custom_io_w = write16_delegate(FUNC(segas16b_state::hwchamp_custom_io_w), this);
+ m_custom_io_r = read16_delegate(*this, FUNC(segas16b_state::hwchamp_custom_io_r));
+ m_custom_io_w = write16_delegate(*this, FUNC(segas16b_state::hwchamp_custom_io_w));
}
void segas16b_state::init_passshtj_5358()
{
init_generic_5358();
- m_custom_io_r = read16_delegate(FUNC(segas16b_state::passshtj_custom_io_r), this);
+ m_custom_io_r = read16_delegate(*this, FUNC(segas16b_state::passshtj_custom_io_r));
}
void segas16b_state::init_cencourt_5358()
@@ -9416,7 +9416,7 @@ void segas16b_state::init_cencourt_5358()
void segas16b_state::init_sdi_5358_small()
{
init_generic_5358_small();
- m_custom_io_r = read16_delegate(FUNC(segas16b_state::sdi_custom_io_r), this);
+ m_custom_io_r = read16_delegate(*this, FUNC(segas16b_state::sdi_custom_io_r));
if (memregion("maincpux") != nullptr)
{
@@ -9440,7 +9440,7 @@ void segas16b_state::init_fpointbla()
void segas16b_state::init_defense_5358_small()
{
init_generic_5358_small();
- m_custom_io_r = read16_delegate(FUNC(segas16b_state::sdi_custom_io_r), this);
+ m_custom_io_r = read16_delegate(*this, FUNC(segas16b_state::sdi_custom_io_r));
}
void segas16b_state::init_shinobi4_5521()
@@ -9458,8 +9458,8 @@ void segas16b_state::init_shinobi3_5358()
void segas16b_state::init_sjryuko_5358_small()
{
init_generic_5358_small();
- m_custom_io_r = read16_delegate(FUNC(segas16b_state::sjryuko_custom_io_r), this);
- m_custom_io_w = write16_delegate(FUNC(segas16b_state::sjryuko_custom_io_w), this);
+ m_custom_io_r = read16_delegate(*this, FUNC(segas16b_state::sjryuko_custom_io_r));
+ m_custom_io_w = write16_delegate(*this, FUNC(segas16b_state::sjryuko_custom_io_w));
m_tilemap_type = segaic16_video_device::TILEMAP_16B_ALT;
}
diff --git a/src/mame/drivers/segas18.cpp b/src/mame/drivers/segas18.cpp
index edc09a610e1..4be60825962 100644
--- a/src/mame/drivers/segas18.cpp
+++ b/src/mame/drivers/segas18.cpp
@@ -52,24 +52,24 @@ void segas18_state::memory_mapper(sega_315_5195_mapper_device &mapper, uint8_t i
switch (index)
{
case 7:
- mapper.map_as_handler(0x00000, 0x04000, 0xffc000, read16_delegate(FUNC(segas18_state::misc_io_r), this), write16_delegate(FUNC(segas18_state::misc_io_w), this));
+ mapper.map_as_handler(0x00000, 0x04000, 0xffc000, read16_delegate(*this, FUNC(segas18_state::misc_io_r)), write16_delegate(*this, FUNC(segas18_state::misc_io_w)));
break;
case 6:
- mapper.map_as_ram(0x00000, 0x01000, 0xfff000, "paletteram", write16_delegate(FUNC(segas18_state::paletteram_w), this));
+ mapper.map_as_ram(0x00000, 0x01000, 0xfff000, "paletteram", write16_delegate(*this, FUNC(segas18_state::paletteram_w)));
break;
case 5:
- mapper.map_as_ram(0x00000, 0x10000, 0xfe0000, "tileram", write16_delegate(FUNC(segas18_state::tileram_w), this));
- mapper.map_as_ram(0x10000, 0x01000, 0xfef000, "textram", write16_delegate(FUNC(segas18_state::textram_w), this));
+ mapper.map_as_ram(0x00000, 0x10000, 0xfe0000, "tileram", write16_delegate(*this, FUNC(segas18_state::tileram_w)));
+ mapper.map_as_ram(0x10000, 0x01000, 0xfef000, "textram", write16_delegate(*this, FUNC(segas18_state::textram_w)));
break;
case 4:
- mapper.map_as_ram(0x00000, 0x00800, 0xfff800, "sprites", write16_delegate());
+ mapper.map_as_ram(0x00000, 0x00800, 0xfff800, "sprites", write16_delegate(*this));
break;
case 3:
- mapper.map_as_ram(0x00000, 0x04000, 0xffc000, "workram", write16_delegate());
+ mapper.map_as_ram(0x00000, 0x04000, 0xffc000, "workram", write16_delegate(*this));
break;
case 2:
@@ -78,7 +78,7 @@ void segas18_state::memory_mapper(sega_315_5195_mapper_device &mapper, uint8_t i
case ROM_BOARD_171_SHADOW: break; // ???
case ROM_BOARD_837_7525:
case ROM_BOARD_171_5874:
- case ROM_BOARD_171_5987: mapper.map_as_handler(0x00000, 0x00010, 0xfffff0, read16_delegate(FUNC(segas18_state::genesis_vdp_r), this), write16_delegate(FUNC(segas18_state::genesis_vdp_w), this)); break;
+ case ROM_BOARD_171_5987: mapper.map_as_handler(0x00000, 0x00010, 0xfffff0, read16_delegate(*this, FUNC(segas18_state::genesis_vdp_r)), write16_delegate(*this, FUNC(segas18_state::genesis_vdp_w))); break;
default: assert(false);
}
break;
@@ -86,14 +86,14 @@ void segas18_state::memory_mapper(sega_315_5195_mapper_device &mapper, uint8_t i
case 1:
switch (m_romboard)
{
- case ROM_BOARD_171_SHADOW: mapper.map_as_handler(0x00000, 0x00010, 0xfffff0, read16_delegate(FUNC(segas18_state::genesis_vdp_r), this), write16_delegate(FUNC(segas18_state::genesis_vdp_w), this)); break;
- case ROM_BOARD_171_5874: mapper.map_as_rom(0x00000, 0x80000, 0xf80000, "rom1base", "decrypted_rom1base", 0x80000, write16_delegate()); break;
+ case ROM_BOARD_171_SHADOW: mapper.map_as_handler(0x00000, 0x00010, 0xfffff0, read16_delegate(*this, FUNC(segas18_state::genesis_vdp_r)), write16_delegate(*this, FUNC(segas18_state::genesis_vdp_w))); break;
+ case ROM_BOARD_171_5874: mapper.map_as_rom(0x00000, 0x80000, 0xf80000, "rom1base", "decrypted_rom1base", 0x80000, write16_delegate(*this)); break;
case ROM_BOARD_171_5987: if (romsize <= 0x100000)
- mapper.map_as_rom(0x00000, 0x80000, 0xf80000, "rom1base", "decrypted_rom1base", 0x80000, write16_delegate(FUNC(segas18_state::rom_5987_bank_w), this));
+ mapper.map_as_rom(0x00000, 0x80000, 0xf80000, "rom1base", "decrypted_rom1base", 0x80000, write16_delegate(*this, FUNC(segas18_state::rom_5987_bank_w)));
else
- mapper.map_as_rom(0x00000,0x100000, 0xf00000, "rom1base", "decrypted_rom1base",0x100000, write16_delegate(FUNC(segas18_state::rom_5987_bank_w), this));
+ mapper.map_as_rom(0x00000,0x100000, 0xf00000, "rom1base", "decrypted_rom1base",0x100000, write16_delegate(*this, FUNC(segas18_state::rom_5987_bank_w)));
break;
- case ROM_BOARD_837_7525: mapper.map_as_rom(0x00000, 0x80000, 0xf80000, "rom1base", "decrypted_rom1base", 0x80000, write16_delegate(FUNC(segas18_state::rom_837_7525_bank_w), this));
+ case ROM_BOARD_837_7525: mapper.map_as_rom(0x00000, 0x80000, 0xf80000, "rom1base", "decrypted_rom1base", 0x80000, write16_delegate(*this, FUNC(segas18_state::rom_837_7525_bank_w)));
break;
default: assert(false);
@@ -104,12 +104,12 @@ void segas18_state::memory_mapper(sega_315_5195_mapper_device &mapper, uint8_t i
switch (m_romboard)
{
case ROM_BOARD_171_SHADOW:
- case ROM_BOARD_171_5874: mapper.map_as_rom(0x00000, 0x80000, 0xf80000, "rom0base", "decrypted_rom0base", 0x00000, write16_delegate()); break;
+ case ROM_BOARD_171_5874: mapper.map_as_rom(0x00000, 0x80000, 0xf80000, "rom0base", "decrypted_rom0base", 0x00000, write16_delegate(*this)); break;
case ROM_BOARD_837_7525:
case ROM_BOARD_171_5987: if (romsize <= 0x100000)
- mapper.map_as_rom(0x00000, 0x80000, 0xf80000, "rom0base", "decrypted_rom0base", 0x00000, write16_delegate());
+ mapper.map_as_rom(0x00000, 0x80000, 0xf80000, "rom0base", "decrypted_rom0base", 0x00000, write16_delegate(*this));
else
- mapper.map_as_rom(0x00000,0x100000, 0xf00000, "rom0base", "decrypted_rom0base", 0x00000, write16_delegate());
+ mapper.map_as_rom(0x00000,0x100000, 0xf00000, "rom0base", "decrypted_rom0base", 0x00000, write16_delegate(*this));
break;
default: assert(false);
}
@@ -1321,7 +1321,7 @@ void segas18_state::system18(machine_config &config)
NVRAM(config, m_nvram, nvram_device::DEFAULT_ALL_0);
SEGA_315_5195_MEM_MAPPER(config, m_mapper, 10000000, m_maincpu);
- m_mapper->set_mapper(FUNC(segas18_state::memory_mapper), this);
+ m_mapper->set_mapper(FUNC(segas18_state::memory_mapper));
m_mapper->pbf().set_inputline(m_soundcpu, INPUT_LINE_NMI);
SEGA_315_5296(config, m_io, 16000000);
@@ -1441,7 +1441,7 @@ void segas18_state::system18_i8751(machine_config &config)
system18(config);
// basic machine hardware
- m_maincpu->set_vblank_int(device_interrupt_delegate(), nullptr);
+ m_maincpu->remove_vblank_int();
m_mapper->mcu_int().set_inputline(m_mcu, INPUT_LINE_IRQ1);
@@ -1455,7 +1455,7 @@ void segas18_state::system18_fd1094_i8751(machine_config &config)
system18_fd1094(config);
// basic machine hardware
- m_maincpu->set_vblank_int(device_interrupt_delegate(), nullptr);
+ m_maincpu->remove_vblank_int();
m_mapper->mcu_int().set_inputline(m_mcu, INPUT_LINE_IRQ1);
@@ -3184,21 +3184,21 @@ void segas18_state::init_hamaway()
void segas18_state::init_ddcrew()
{
init_generic_5987();
- m_custom_io_r = read16_delegate(FUNC(segas18_state::ddcrew_custom_io_r), this);
+ m_custom_io_r = read16_delegate(*this, FUNC(segas18_state::ddcrew_custom_io_r));
}
void segas18_state::init_lghost()
{
init_generic_5987();
- m_custom_io_r = read16_delegate(FUNC(segas18_state::lghost_custom_io_r), this);
- m_custom_io_w = write16_delegate(FUNC(segas18_state::lghost_custom_io_w), this);
+ m_custom_io_r = read16_delegate(*this, FUNC(segas18_state::lghost_custom_io_r));
+ m_custom_io_w = write16_delegate(*this, FUNC(segas18_state::lghost_custom_io_w));
}
void segas18_state::init_wwally()
{
init_generic_5987();
- m_custom_io_r = read16_delegate(FUNC(segas18_state::wwally_custom_io_r), this);
- m_custom_io_w = write16_delegate(FUNC(segas18_state::wwally_custom_io_w), this);
+ m_custom_io_r = read16_delegate(*this, FUNC(segas18_state::wwally_custom_io_r));
+ m_custom_io_w = write16_delegate(*this, FUNC(segas18_state::wwally_custom_io_w));
}
diff --git a/src/mame/drivers/segas24.cpp b/src/mame/drivers/segas24.cpp
index 69f85cc3435..d99eef46c24 100644
--- a/src/mame/drivers/segas24.cpp
+++ b/src/mame/drivers/segas24.cpp
@@ -1937,7 +1937,7 @@ void segas24_state::system24(machine_config &config)
TIMER(config, "irq_timer").configure_generic(FUNC(segas24_state::irq_timer_cb));
TIMER(config, "irq_timer_clear").configure_generic(FUNC(segas24_state::irq_timer_clear_cb));
- TIMER(config, "frc_timer").configure_generic(timer_device::expired_delegate());
+ TIMER(config, "frc_timer").configure_generic(nullptr);
TIMER(config, "irq_frc").configure_periodic(FUNC(segas24_state::irq_frc_cb), attotime::from_hz(FRC_CLOCK_MODE1));
S24TILE(config, m_vtile, 0, 0xfff).set_palette("palette");
diff --git a/src/mame/drivers/segas32.cpp b/src/mame/drivers/segas32.cpp
index 6d62f2fe8ca..ee04cfa9997 100644
--- a/src/mame/drivers/segas32.cpp
+++ b/src/mame/drivers/segas32.cpp
@@ -5650,11 +5650,11 @@ void segas32_new_state::init_arescue()
m_slavepcb->init_arescue(0);
m_dual_pcb_comms = std::make_unique<uint16_t[]>(0x1000/2);
- m_mainpcb->maincpu()->space(AS_PROGRAM).install_readwrite_handler(0x810000, 0x810fff, read16_delegate(FUNC(segas32_new_state::dual_pcb_comms_r),this), write16_delegate(FUNC(segas32_new_state::dual_pcb_comms_w),this));
- m_mainpcb->maincpu()->space(AS_PROGRAM).install_read_handler(0x818000, 0x818003, read16_delegate(FUNC(segas32_new_state::dual_pcb_masterslave),this));
+ m_mainpcb->maincpu()->space(AS_PROGRAM).install_readwrite_handler(0x810000, 0x810fff, read16_delegate(*this, FUNC(segas32_new_state::dual_pcb_comms_r)), write16_delegate(*this, FUNC(segas32_new_state::dual_pcb_comms_w)));
+ m_mainpcb->maincpu()->space(AS_PROGRAM).install_read_handler(0x818000, 0x818003, read16_delegate(*this, FUNC(segas32_new_state::dual_pcb_masterslave)));
- m_slavepcb->maincpu()->space(AS_PROGRAM).install_readwrite_handler(0x810000, 0x810fff, read16_delegate(FUNC(segas32_new_state::dual_pcb_comms_r),this), write16_delegate(FUNC(segas32_new_state::dual_pcb_comms_w),this));
- m_slavepcb->maincpu()->space(AS_PROGRAM).install_read_handler(0x818000, 0x818003, read16_delegate(FUNC(segas32_new_state::dual_pcb_slave),this));
+ m_slavepcb->maincpu()->space(AS_PROGRAM).install_readwrite_handler(0x810000, 0x810fff, read16_delegate(*this, FUNC(segas32_new_state::dual_pcb_comms_r)), write16_delegate(*this, FUNC(segas32_new_state::dual_pcb_comms_w)));
+ m_slavepcb->maincpu()->space(AS_PROGRAM).install_read_handler(0x818000, 0x818003, read16_delegate(*this, FUNC(segas32_new_state::dual_pcb_slave)));
}
void segas32_new_state::init_f1en() {
@@ -5664,11 +5664,11 @@ void segas32_new_state::init_f1en() {
m_dual_pcb_comms = std::make_unique<uint16_t[]>(0x1000/2);
memset(m_dual_pcb_comms.get(), 0xff, 0x1000 / 2);
- m_mainpcb->maincpu()->space(AS_PROGRAM).install_readwrite_handler(0x810000, 0x810fff, read16_delegate(FUNC(segas32_new_state::dual_pcb_comms_r),this), write16_delegate(FUNC(segas32_new_state::dual_pcb_comms_w),this));
- m_mainpcb->maincpu()->space(AS_PROGRAM).install_read_handler(0x818000, 0x818003, read16_delegate(FUNC(segas32_new_state::dual_pcb_masterslave),this));
+ m_mainpcb->maincpu()->space(AS_PROGRAM).install_readwrite_handler(0x810000, 0x810fff, read16_delegate(*this, FUNC(segas32_new_state::dual_pcb_comms_r)), write16_delegate(*this, FUNC(segas32_new_state::dual_pcb_comms_w)));
+ m_mainpcb->maincpu()->space(AS_PROGRAM).install_read_handler(0x818000, 0x818003, read16_delegate(*this, FUNC(segas32_new_state::dual_pcb_masterslave)));
- m_slavepcb->maincpu()->space(AS_PROGRAM).install_readwrite_handler(0x810000, 0x810fff, read16_delegate(FUNC(segas32_new_state::dual_pcb_comms_r),this), write16_delegate(FUNC(segas32_new_state::dual_pcb_comms_w),this));
- m_slavepcb->maincpu()->space(AS_PROGRAM).install_read_handler(0x818000, 0x818003, read16_delegate(FUNC(segas32_new_state::dual_pcb_slave),this));
+ m_slavepcb->maincpu()->space(AS_PROGRAM).install_readwrite_handler(0x810000, 0x810fff, read16_delegate(*this, FUNC(segas32_new_state::dual_pcb_comms_r)), write16_delegate(*this, FUNC(segas32_new_state::dual_pcb_comms_w)));
+ m_slavepcb->maincpu()->space(AS_PROGRAM).install_read_handler(0x818000, 0x818003, read16_delegate(*this, FUNC(segas32_new_state::dual_pcb_slave)));
}
void segas32_new_state::init_f1lap()
@@ -5690,7 +5690,7 @@ void segas32_state::init_alien3()
void segas32_state::init_arescue(int m_hasdsp)
{
segas32_common_init();
- if (m_hasdsp) m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xa00000, 0xa00007, read16_delegate(FUNC(segas32_state::arescue_dsp_r),this), write16_delegate(FUNC(segas32_state::arescue_dsp_w),this));
+ if (m_hasdsp) m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xa00000, 0xa00007, read16_delegate(*this, FUNC(segas32_state::arescue_dsp_r)), write16_delegate(*this, FUNC(segas32_state::arescue_dsp_w)));
for (auto & elem : m_arescue_dsp_io)
elem = 0x00;
@@ -5731,8 +5731,8 @@ void segas32_state::init_brival()
/* install protection handlers */
m_system32_protram = std::make_unique<uint16_t[]>(0x1000/2);
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x20ba00, 0x20ba07, read16_delegate(FUNC(segas32_state::brival_protection_r),this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xa00000, 0xa00fff, write16_delegate(FUNC(segas32_state::brival_protection_w),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x20ba00, 0x20ba07, read16_delegate(*this, FUNC(segas32_state::brival_protection_r)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xa00000, 0xa00fff, write16_delegate(*this, FUNC(segas32_state::brival_protection_w)));
}
@@ -5741,7 +5741,7 @@ void segas32_state::init_darkedge()
segas32_common_init();
/* install protection handlers */
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xa00000, 0xa7ffff, read16_delegate(FUNC(segas32_state::darkedge_protection_r),this), write16_delegate(FUNC(segas32_state::darkedge_protection_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xa00000, 0xa7ffff, read16_delegate(*this, FUNC(segas32_state::darkedge_protection_r)), write16_delegate(*this, FUNC(segas32_state::darkedge_protection_w)));
m_system32_prot_vblank = &segas32_state::darkedge_fd1149_vblank;
}
@@ -5751,7 +5751,7 @@ void segas32_state::init_dbzvrvs()
segas32_common_init();
/* install protection handlers */
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xa00000, 0xa7ffff, read16_delegate(FUNC(segas32_state::dbzvrvs_protection_r),this), write16_delegate(FUNC(segas32_state::dbzvrvs_protection_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xa00000, 0xa7ffff, read16_delegate(*this, FUNC(segas32_state::dbzvrvs_protection_r)), write16_delegate(*this, FUNC(segas32_state::dbzvrvs_protection_w)));
// 0x810000 to 0x8107ff = link RAM? probably not a dual cabinet, though...
}
@@ -5852,7 +5852,7 @@ void segas32_state::init_radr()
void segas32_state::init_scross()
{
segas32_common_init();
- m_soundcpu->space(AS_PROGRAM).install_write_handler(0xb0, 0xbf, write8_delegate(FUNC(segas32_state::scross_bank_w),this));
+ m_soundcpu->space(AS_PROGRAM).install_write_handler(0xb0, 0xbf, write8_delegate(*this, FUNC(segas32_state::scross_bank_w)));
m_sw1_output = &segas32_state::scross_sw1_output;
m_sw2_output = &segas32_state::scross_sw2_output;
@@ -5872,7 +5872,7 @@ void segas32_state::init_sonic()
segas32_common_init();
/* install protection handlers */
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x20E5C4, 0x20E5C5, write16_delegate(FUNC(segas32_state::sonic_level_load_protection),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x20E5C4, 0x20E5C5, write16_delegate(*this, FUNC(segas32_state::sonic_level_load_protection)));
}
@@ -5897,7 +5897,7 @@ void segas32_state::init_svf()
void segas32_state::init_jleague()
{
segas32_common_init();
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x20F700, 0x20F705, write16_delegate(FUNC(segas32_state::jleague_protection_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x20F700, 0x20F705, write16_delegate(*this, FUNC(segas32_state::jleague_protection_w)));
}
diff --git a/src/mame/drivers/segaxbd.cpp b/src/mame/drivers/segaxbd.cpp
index e47278547cf..18e06a456f5 100644
--- a/src/mame/drivers/segaxbd.cpp
+++ b/src/mame/drivers/segaxbd.cpp
@@ -344,7 +344,7 @@ void segaxbd_state::device_reset()
m_segaic16vid->tilemap_reset(*m_screen);
// hook the RESET line, which resets CPU #1
- m_maincpu->set_reset_callback(write_line_delegate(FUNC(segaxbd_state::m68k_reset_callback),this));
+ m_maincpu->set_reset_callback(*this, FUNC(segaxbd_state::m68k_reset_callback));
// start timers to track interrupts
m_scanline_timer->adjust(m_screen->time_until_pos(0), 0);
@@ -355,8 +355,8 @@ class segaxbd_new_state : public driver_device
{
public:
segaxbd_new_state(const machine_config &mconfig, device_type type, const char *tag)
- : driver_device(mconfig, type, tag),
- m_mainpcb(*this, "mainpcb")
+ : driver_device(mconfig, type, tag)
+ , m_mainpcb(*this, "mainpcb")
{
}
@@ -4665,7 +4665,7 @@ void segaxbd_state::install_loffire(void)
m_adc_reverse[1] = m_adc_reverse[3] = true;
// install sync hack on core shared memory
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x29c000, 0x29c011, write16_delegate(FUNC(segaxbd_state::loffire_sync0_w), this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x29c000, 0x29c011, write16_delegate(*this, FUNC(segaxbd_state::loffire_sync0_w)));
m_loffire_sync = m_subram0;
}
@@ -4678,7 +4678,7 @@ void segaxbd_new_state::init_loffire()
void segaxbd_state::install_smgp(void)
{
// map /EXCS space
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x2f0000, 0x2f3fff, read16_delegate(FUNC(segaxbd_state::smgp_excs_r), this), write16_delegate(FUNC(segaxbd_state::smgp_excs_w), this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x2f0000, 0x2f3fff, read16_delegate(*this, FUNC(segaxbd_state::smgp_excs_r)), write16_delegate(*this, FUNC(segaxbd_state::smgp_excs_w)));
}
void segaxbd_new_state::init_smgp()
@@ -4713,8 +4713,8 @@ void segaxbd_new_state_double::init_gprider_double()
m_mainpcb->install_gprider();
m_subpcb->install_gprider();
- m_mainpcb->m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x2F0000, 0x2F003f, read16_delegate(FUNC(segaxbd_new_state_double::shareram1_r), this), write16_delegate(FUNC(segaxbd_new_state_double::shareram1_w), this));
- m_subpcb->m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x2F0000, 0x2F003f, read16_delegate(FUNC(segaxbd_new_state_double::shareram2_r), this), write16_delegate(FUNC(segaxbd_new_state_double::shareram2_w), this));
+ m_mainpcb->m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x2F0000, 0x2F003f, read16_delegate(*this, FUNC(segaxbd_new_state_double::shareram1_r)), write16_delegate(*this, FUNC(segaxbd_new_state_double::shareram1_w)));
+ m_subpcb->m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x2F0000, 0x2F003f, read16_delegate(*this, FUNC(segaxbd_new_state_double::shareram2_r)), write16_delegate(*this, FUNC(segaxbd_new_state_double::shareram2_w)));
}
diff --git a/src/mame/drivers/seibuspi.cpp b/src/mame/drivers/seibuspi.cpp
index 88d1783a375..e91b737477c 100644
--- a/src/mame/drivers/seibuspi.cpp
+++ b/src/mame/drivers/seibuspi.cpp
@@ -2009,50 +2009,50 @@ void seibuspi_state::sys386f(machine_config &config)
void seibuspi_state::init_senkyu()
{
- if (ENABLE_SPEEDUP_HACKS) m_maincpu->space(AS_PROGRAM).install_read_handler(0x0018cb4, 0x0018cb7, read32_delegate(FUNC(seibuspi_state::senkyu_speedup_r),this));
+ if (ENABLE_SPEEDUP_HACKS) m_maincpu->space(AS_PROGRAM).install_read_handler(0x0018cb4, 0x0018cb7, read32_delegate(*this, FUNC(seibuspi_state::senkyu_speedup_r)));
init_sei252();
}
void seibuspi_state::init_senkyua()
{
- if (ENABLE_SPEEDUP_HACKS) m_maincpu->space(AS_PROGRAM).install_read_handler(0x0018c9c, 0x0018c9f, read32_delegate(FUNC(seibuspi_state::senkyua_speedup_r),this));
+ if (ENABLE_SPEEDUP_HACKS) m_maincpu->space(AS_PROGRAM).install_read_handler(0x0018c9c, 0x0018c9f, read32_delegate(*this, FUNC(seibuspi_state::senkyua_speedup_r)));
init_sei252();
}
void seibuspi_state::init_batlball()
{
- if (ENABLE_SPEEDUP_HACKS) m_maincpu->space(AS_PROGRAM).install_read_handler(0x0018db4, 0x0018db7, read32_delegate(FUNC(seibuspi_state::batlball_speedup_r),this));
+ if (ENABLE_SPEEDUP_HACKS) m_maincpu->space(AS_PROGRAM).install_read_handler(0x0018db4, 0x0018db7, read32_delegate(*this, FUNC(seibuspi_state::batlball_speedup_r)));
init_sei252();
}
void seibuspi_state::init_viprp1()
{
- if (ENABLE_SPEEDUP_HACKS) m_maincpu->space(AS_PROGRAM).install_read_handler(0x001e2e0, 0x001e2e3, read32_delegate(FUNC(seibuspi_state::viprp1_speedup_r),this));
+ if (ENABLE_SPEEDUP_HACKS) m_maincpu->space(AS_PROGRAM).install_read_handler(0x001e2e0, 0x001e2e3, read32_delegate(*this, FUNC(seibuspi_state::viprp1_speedup_r)));
init_sei252();
}
void seibuspi_state::init_viprp1o()
{
- if (ENABLE_SPEEDUP_HACKS) m_maincpu->space(AS_PROGRAM).install_read_handler(0x001d49c, 0x001d49f, read32_delegate(FUNC(seibuspi_state::viprp1o_speedup_r),this));
+ if (ENABLE_SPEEDUP_HACKS) m_maincpu->space(AS_PROGRAM).install_read_handler(0x001d49c, 0x001d49f, read32_delegate(*this, FUNC(seibuspi_state::viprp1o_speedup_r)));
init_sei252();
}
void seibuspi_state::init_ejanhs()
{
// idle skip doesn't work properly?
-// if (ENABLE_SPEEDUP_HACKS) m_maincpu->space(AS_PROGRAM).install_read_handler(0x002d224, 0x002d227, read32_delegate(FUNC(seibuspi_state::ejanhs_speedup_r),this));
+// if (ENABLE_SPEEDUP_HACKS) m_maincpu->space(AS_PROGRAM).install_read_handler(0x002d224, 0x002d227, read32_delegate(*this, FUNC(seibuspi_state::ejanhs_speedup_r)));
init_sei252();
}
void seibuspi_state::init_rdft()
{
- if (ENABLE_SPEEDUP_HACKS) m_maincpu->space(AS_PROGRAM).install_read_handler(0x00298d0, 0x00298d3, read32_delegate(FUNC(seibuspi_state::rdft_speedup_r),this));
+ if (ENABLE_SPEEDUP_HACKS) m_maincpu->space(AS_PROGRAM).install_read_handler(0x00298d0, 0x00298d3, read32_delegate(*this, FUNC(seibuspi_state::rdft_speedup_r)));
init_sei252();
}
void seibuspi_state::init_rdft2()
{
- if (ENABLE_SPEEDUP_HACKS) m_maincpu->space(AS_PROGRAM).install_read_handler(0x00282ac, 0x00282af, read32_delegate(FUNC(seibuspi_state::rf2_speedup_r),this));
+ if (ENABLE_SPEEDUP_HACKS) m_maincpu->space(AS_PROGRAM).install_read_handler(0x00282ac, 0x00282af, read32_delegate(*this, FUNC(seibuspi_state::rf2_speedup_r)));
rdft2_text_decrypt(memregion("chars")->base());
rdft2_bg_decrypt(memregion("tiles")->base(), memregion("tiles")->bytes());
@@ -2062,7 +2062,7 @@ void seibuspi_state::init_rdft2()
void seibuspi_state::init_rfjet()
{
- if (ENABLE_SPEEDUP_HACKS) m_maincpu->space(AS_PROGRAM).install_read_handler(0x002894c, 0x002894f, read32_delegate(FUNC(seibuspi_state::rfjet_speedup_r),this));
+ if (ENABLE_SPEEDUP_HACKS) m_maincpu->space(AS_PROGRAM).install_read_handler(0x002894c, 0x002894f, read32_delegate(*this, FUNC(seibuspi_state::rfjet_speedup_r)));
rfjet_text_decrypt(memregion("chars")->base());
rfjet_bg_decrypt(memregion("tiles")->base(), memregion("tiles")->bytes());
diff --git a/src/mame/drivers/seicupbl.cpp b/src/mame/drivers/seicupbl.cpp
index 40ac0fcbc89..8865dc8f113 100644
--- a/src/mame/drivers/seicupbl.cpp
+++ b/src/mame/drivers/seicupbl.cpp
@@ -278,10 +278,10 @@ void seicupbl_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap,co
void seicupbl_state::video_start()
{
- m_sc_layer[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(seicupbl_state::get_sc0_tileinfo),this),TILEMAP_SCAN_ROWS,16,16,32,32);
- m_sc_layer[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(seicupbl_state::get_sc1_tileinfo),this), TILEMAP_SCAN_ROWS,16,16,32,32);
- m_sc_layer[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(seicupbl_state::get_sc2_tileinfo),this),TILEMAP_SCAN_ROWS,16,16,32,32);
- m_sc_layer[3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(seicupbl_state::get_sc3_tileinfo),this),TILEMAP_SCAN_ROWS, 8,8,64,32);
+ m_sc_layer[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(seicupbl_state::get_sc0_tileinfo)), TILEMAP_SCAN_ROWS, 16,16, 32,32);
+ m_sc_layer[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(seicupbl_state::get_sc1_tileinfo)), TILEMAP_SCAN_ROWS, 16,16, 32,32);
+ m_sc_layer[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(seicupbl_state::get_sc2_tileinfo)), TILEMAP_SCAN_ROWS, 16,16, 32,32);
+ m_sc_layer[3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(seicupbl_state::get_sc3_tileinfo)), TILEMAP_SCAN_ROWS, 8,8, 64,32);
for(int i=0;i<4;i++)
m_sc_layer[i]->set_transparent_pen(15);
diff --git a/src/mame/drivers/sengokmj.cpp b/src/mame/drivers/sengokmj.cpp
index c154d2bd1dd..8fcd5b60fde 100644
--- a/src/mame/drivers/sengokmj.cpp
+++ b/src/mame/drivers/sengokmj.cpp
@@ -307,10 +307,10 @@ void sengokmj_state::draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect
void sengokmj_state::video_start()
{
- m_sc0_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sengokmj_state::seibucrtc_sc0_tile_info),this),TILEMAP_SCAN_ROWS,16,16,32,32);
- m_sc2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sengokmj_state::seibucrtc_sc2_tile_info),this),TILEMAP_SCAN_ROWS,16,16,32,32);
- m_sc1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sengokmj_state::seibucrtc_sc1_tile_info),this),TILEMAP_SCAN_ROWS,16,16,32,32);
- m_sc3_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sengokmj_state::seibucrtc_sc3_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,32);
+ m_sc0_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sengokmj_state::seibucrtc_sc0_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_sc2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sengokmj_state::seibucrtc_sc2_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_sc1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sengokmj_state::seibucrtc_sc1_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_sc3_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sengokmj_state::seibucrtc_sc3_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_sc2_tilemap->set_transparent_pen(15);
m_sc1_tilemap->set_transparent_pen(15);
diff --git a/src/mame/drivers/seta.cpp b/src/mame/drivers/seta.cpp
index 73654bbf369..0331f240dc2 100644
--- a/src/mame/drivers/seta.cpp
+++ b/src/mame/drivers/seta.cpp
@@ -1483,18 +1483,14 @@ TIMER_CALLBACK_MEMBER(seta_state::uPD71054_timer_callback)
void seta_state::uPD71054_timer_init()
{
uPD71054_state *uPD71054 = &m_uPD71054;
- int no;
uPD71054->write_select = 0;
- for (no = 0; no < USED_TIMER_NUM; no++)
- {
+ for (int no = 0; no < USED_TIMER_NUM; no++)
uPD71054->max[no] = 0xffff;
- }
- for (no = 0; no < USED_TIMER_NUM; no++)
- {
+
+ for (int no = 0; no < USED_TIMER_NUM; no++)
uPD71054->timer[no] = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(seta_state::uPD71054_timer_callback),this));
- }
}
@@ -1511,9 +1507,9 @@ void seta_state::timer_regs_w(offs_t offset, u16 data)
switch (offset)
{
- case 0x0000:
- case 0x0001:
- case 0x0002:
+ case 0x0000:
+ case 0x0001:
+ case 0x0002:
if (uPD71054->write_select == 0)
{
uPD71054->max[offset] = (uPD71054->max[offset] & 0xff00) + data;
@@ -1531,12 +1527,12 @@ void seta_state::timer_regs_w(offs_t offset, u16 data)
uPD71054_update_timer(m_maincpu.target(), offset);
}
break;
- case 0x0003:
+ case 0x0003:
switch ((data >> 4) & 3)
{
- case 2: uPD71054->write_select = 1; break;
- case 1:
- case 3: uPD71054->write_select = 0; break;
+ case 2: uPD71054->write_select = 1; break;
+ case 1:
+ case 3: uPD71054->write_select = 0; break;
}
break;
}
@@ -3608,9 +3604,9 @@ void seta_state::calibr50_soundlatch2_w(u8 data)
void seta_state::calibr50_sub_map(address_map &map)
{
- map(0x0000, 0x1fff).lrw8("x1_soundram_rw",
- [this](offs_t offset) { return m_x1->read(offset ^ 0x1000); },
- [this](offs_t offset, u8 data) { m_x1->write(offset ^ 0x1000, data); }); // Sound
+ map(0x0000, 0x1fff).lrw8(
+ NAME([this](offs_t offset) { return m_x1->read(offset ^ 0x1000); }),
+ NAME([this](offs_t offset, u8 data) { m_x1->write(offset ^ 0x1000, data); })); // Sound
map(0x4000, 0x4000).r(m_soundlatch[0], FUNC(generic_latch_8_device::read)); // From Main CPU
map(0x4000, 0x4000).w(FUNC(seta_state::calibr50_sub_bankswitch_w)); // Bankswitching
map(0x8000, 0xbfff).bankr("subbank"); // Banked ROM
@@ -7926,7 +7922,7 @@ void seta_state::tndrcade(machine_config &config)
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
+ m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
@@ -7978,7 +7974,7 @@ void seta_state::twineagl(machine_config &config)
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
+ m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
@@ -8024,7 +8020,7 @@ void seta_state::downtown(machine_config &config)
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
+ m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
@@ -8105,7 +8101,7 @@ void usclssic_state::usclssic(machine_config &config)
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(usclssic_state::setac_gfxbank_callback), this);
+ m_seta001->set_gfxbank_callback(FUNC(usclssic_state::setac_gfxbank_callback));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
@@ -8165,7 +8161,7 @@ void seta_state::calibr50(machine_config &config)
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
+ m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
@@ -8214,7 +8210,7 @@ void seta_state::metafox(machine_config &config)
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
+ m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
@@ -8254,7 +8250,7 @@ void seta_state::atehate(machine_config &config)
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
+ m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
@@ -8297,7 +8293,7 @@ void seta_state::blandia(machine_config &config)
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
+ m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
@@ -8332,7 +8328,7 @@ void seta_state::blandiap(machine_config &config)
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
+ m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
@@ -8372,7 +8368,7 @@ void seta_state::blockcar(machine_config &config)
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
+ m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
@@ -8446,7 +8442,7 @@ void seta_state::daioh(machine_config &config)
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
+ m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
@@ -8501,7 +8497,7 @@ void seta_state::drgnunit(machine_config &config)
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
+ m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
@@ -8566,7 +8562,7 @@ void setaroul_state::setaroul(machine_config &config)
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
+ m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
NVRAM(config, "nvram", nvram_device::DEFAULT_RANDOM);
@@ -8617,7 +8613,7 @@ void seta_state::eightfrc(machine_config &config)
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
+ m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
@@ -8661,7 +8657,7 @@ void seta_state::extdwnhl(machine_config &config)
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
+ m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
@@ -8726,7 +8722,7 @@ void seta_state::gundhara(machine_config &config)
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
+ m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
@@ -8795,7 +8791,7 @@ void seta_state::jjsquawk(machine_config &config)
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
+ m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
@@ -8827,7 +8823,7 @@ void seta_state::jjsquawb(machine_config &config)
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
+ m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
@@ -8871,7 +8867,7 @@ void seta_state::kamenrid(machine_config &config)
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
+ m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
@@ -8910,7 +8906,7 @@ void seta_state::orbs(machine_config &config)
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
+ m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
@@ -8951,7 +8947,7 @@ void seta_state::keroppij(machine_config &config)
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
+ m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
@@ -9004,7 +9000,7 @@ void seta_state::krzybowl(machine_config &config)
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
+ m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
@@ -9046,7 +9042,7 @@ void seta_state::madshark(machine_config &config)
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
+ m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
WATCHDOG_TIMER(config, "watchdog");
@@ -9096,7 +9092,7 @@ void seta_state::magspeed(machine_config &config)
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
+ m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
@@ -9139,7 +9135,7 @@ void seta_state::msgundam(machine_config &config)
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
+ m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
@@ -9183,7 +9179,7 @@ void seta_state::oisipuzl(machine_config &config)
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
+ m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
@@ -9224,7 +9220,7 @@ void seta_state::triplfun(machine_config &config)
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
+ m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
@@ -9271,7 +9267,7 @@ void kiwame_state::kiwame(machine_config &config)
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(kiwame_state::setac_gfxbank_callback), this);
+ m_seta001->set_gfxbank_callback(FUNC(kiwame_state::setac_gfxbank_callback));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
@@ -9315,7 +9311,7 @@ void seta_state::rezon(machine_config &config)
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
+ m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
@@ -9354,7 +9350,7 @@ void seta_state::thunderl(machine_config &config)
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
+ m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
@@ -9428,7 +9424,7 @@ void seta_state::wiggie(machine_config &config)
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
+ m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
@@ -9468,7 +9464,7 @@ void seta_state::wits(machine_config &config)
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
+ m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
@@ -9505,7 +9501,7 @@ void seta_state::umanclub(machine_config &config)
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
+ m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
@@ -9546,7 +9542,7 @@ void seta_state::utoukond(machine_config &config)
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
+ m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
@@ -9604,7 +9600,7 @@ void seta_state::wrofaero(machine_config &config)
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
+ m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
@@ -9646,7 +9642,7 @@ void seta_state::zingzip(machine_config &config)
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
+ m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
WATCHDOG_TIMER(config, "watchdog");
@@ -9700,7 +9696,7 @@ void seta_state::pairlove(machine_config &config)
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
+ m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
@@ -9748,7 +9744,7 @@ void seta_state::crazyfgt(machine_config &config)
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
+ m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
@@ -9817,7 +9813,7 @@ void jockeyc_state::jockeyc(machine_config &config)
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
+ m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
NVRAM(config, "nvram", nvram_device::DEFAULT_RANDOM);
@@ -11918,10 +11914,10 @@ void seta_state::init_twineagl()
{
init_bank6502();
/* debug? */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x800000, 0x8000ff, read16_delegate(FUNC(seta_state::twineagl_debug_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x800000, 0x8000ff, read16_delegate(*this, FUNC(seta_state::twineagl_debug_r)));
/* This allows 2 simultaneous players and the use of the "Copyright" Dip Switch. */
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x200100, 0x20010f, read16_delegate(FUNC(seta_state::twineagl_200100_r),this), write16_delegate(FUNC(seta_state::twineagl_200100_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x200100, 0x20010f, read16_delegate(*this, FUNC(seta_state::twineagl_200100_r)), write16_delegate(*this, FUNC(seta_state::twineagl_200100_w)));
}
@@ -11955,7 +11951,7 @@ void seta_state::init_downtown()
m_downtown_protection = make_unique_clear<u16[]>(0x200/2);
save_pointer(NAME(m_downtown_protection),0x200/2);
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x200000, 0x2001ff, read16_delegate(FUNC(seta_state::downtown_protection_r),this), write16_delegate(FUNC(seta_state::downtown_protection_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x200000, 0x2001ff, read16_delegate(*this, FUNC(seta_state::downtown_protection_r)), write16_delegate(*this, FUNC(seta_state::downtown_protection_w)));
}
@@ -11976,7 +11972,7 @@ READ16_MEMBER(seta_state::arbalest_debug_r)
void seta_state::init_arbalest()
{
init_bank6502();
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x80000, 0x8000f, read16_delegate(FUNC(seta_state::arbalest_debug_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x80000, 0x8000f, read16_delegate(*this, FUNC(seta_state::arbalest_debug_r)));
}
@@ -12005,7 +12001,7 @@ READ16_MEMBER(seta_state::metafox_protection_r)
void seta_state::init_metafox()
{
init_bank6502();
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x21c000, 0x21ffff,read16_delegate(FUNC(seta_state::metafox_protection_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x21c000, 0x21ffff,read16_delegate(*this, FUNC(seta_state::metafox_protection_r)));
}
diff --git a/src/mame/drivers/seta2.cpp b/src/mame/drivers/seta2.cpp
index b37d9d97810..81f1c03c72c 100644
--- a/src/mame/drivers/seta2.cpp
+++ b/src/mame/drivers/seta2.cpp
@@ -279,7 +279,7 @@ void seta2_state::mj4simai_map(address_map &map)
map(0x200000, 0x20ffff).ram(); // RAM
map(0x600000, 0x600001).r(FUNC(seta2_state::mj4simai_p1_r)); // P1
map(0x600002, 0x600003).r(FUNC(seta2_state::mj4simai_p2_r)); // P2
- map(0x600005, 0x600005).lw8("keyboard_row_w", [this](u8 data){ m_keyboard_row = data; } ); // select keyboard row to read
+ map(0x600005, 0x600005).lw8(NAME([this] (u8 data){ m_keyboard_row = data; })); // select keyboard row to read
map(0x600006, 0x600007).r("watchdog", FUNC(watchdog_timer_device::reset16_r));
map(0x600100, 0x600101).portr("SYSTEM"); //
map(0x600200, 0x600201).nopw(); // Leds? Coins?
diff --git a/src/mame/drivers/sfbonus.cpp b/src/mame/drivers/sfbonus.cpp
index b4bd4a8f996..3d5c697bc89 100644
--- a/src/mame/drivers/sfbonus.cpp
+++ b/src/mame/drivers/sfbonus.cpp
@@ -928,11 +928,11 @@ void sfbonus_state::video_start()
{
m_temp_reel_bitmap = std::make_unique<bitmap_ind16>(1024,512);
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sfbonus_state::get_sfbonus_tile_info),this),TILEMAP_SCAN_ROWS,8,8, 128, 64);
- m_reel_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sfbonus_state::get_sfbonus_reel_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 64, 16);
- m_reel2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sfbonus_state::get_sfbonus_reel2_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 64, 16);
- m_reel3_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sfbonus_state::get_sfbonus_reel3_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 64, 16);
- m_reel4_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sfbonus_state::get_sfbonus_reel4_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 64, 16);
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sfbonus_state::get_sfbonus_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 128, 64);
+ m_reel_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sfbonus_state::get_sfbonus_reel_tile_info)), TILEMAP_SCAN_ROWS, 8, 32, 64, 16);
+ m_reel2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sfbonus_state::get_sfbonus_reel2_tile_info)), TILEMAP_SCAN_ROWS, 8, 32, 64, 16);
+ m_reel3_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sfbonus_state::get_sfbonus_reel3_tile_info)), TILEMAP_SCAN_ROWS, 8, 32, 64, 16);
+ m_reel4_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sfbonus_state::get_sfbonus_reel4_tile_info)), TILEMAP_SCAN_ROWS, 8, 32, 64, 16);
m_tilemap->set_transparent_pen(0);
m_reel_tilemap->set_transparent_pen(255);
diff --git a/src/mame/drivers/sg1000.cpp b/src/mame/drivers/sg1000.cpp
index b5ef0daa73b..c4a2c85c4d3 100644
--- a/src/mame/drivers/sg1000.cpp
+++ b/src/mame/drivers/sg1000.cpp
@@ -463,8 +463,8 @@ void sg1000_state::machine_start()
{
if (m_cart->get_type() == SEGA8_DAHJEE_TYPEA || m_cart->get_type() == SEGA8_DAHJEE_TYPEB)
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xc000, 0xffff, read8_delegate(FUNC(sega8_cart_slot_device::read_ram),(sega8_cart_slot_device*)m_cart));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xc000, 0xffff, write8_delegate(FUNC(sega8_cart_slot_device::write_ram),(sega8_cart_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xc000, 0xffff, read8_delegate(*m_cart, FUNC(sega8_cart_slot_device::read_ram)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xc000, 0xffff, write8_delegate(*m_cart, FUNC(sega8_cart_slot_device::write_ram)));
}
if (m_cart)
@@ -484,8 +484,8 @@ void sc3000_state::machine_start()
|| m_cart->get_type() == SEGA8_DAHJEE_TYPEA || m_cart->get_type() == SEGA8_DAHJEE_TYPEB
|| m_cart->get_type() == SEGA8_MULTICART || m_cart->get_type() == SEGA8_MEGACART))
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xc000, 0xffff, read8_delegate(FUNC(sega8_cart_slot_device::read_ram),(sega8_cart_slot_device*)m_cart));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xc000, 0xffff, write8_delegate(FUNC(sega8_cart_slot_device::write_ram),(sega8_cart_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xc000, 0xffff, read8_delegate(*m_cart, FUNC(sega8_cart_slot_device::read_ram)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xc000, 0xffff, write8_delegate(*m_cart, FUNC(sega8_cart_slot_device::write_ram)));
}
if (m_cart)
diff --git a/src/mame/drivers/silvmil.cpp b/src/mame/drivers/silvmil.cpp
index 2d3b3e0110a..98ce29ba074 100644
--- a/src/mame/drivers/silvmil.cpp
+++ b/src/mame/drivers/silvmil.cpp
@@ -169,8 +169,8 @@ TILEMAP_MAPPER_MEMBER(silvmil_state::scan_rows)
void silvmil_state::video_start()
{
- m_bg_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(silvmil_state::get_bg_tile_info),this), tilemap_mapper_delegate(FUNC(silvmil_state::scan_rows),this), 16, 16, 64, 32);
- m_fg_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(silvmil_state::get_fg_tile_info),this), tilemap_mapper_delegate(FUNC(silvmil_state::scan_rows),this), 16, 16, 64, 32);
+ m_bg_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(silvmil_state::get_bg_tile_info)), tilemap_mapper_delegate(*this, FUNC(silvmil_state::scan_rows)), 16, 16, 64, 32);
+ m_fg_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(silvmil_state::get_fg_tile_info)), tilemap_mapper_delegate(*this, FUNC(silvmil_state::scan_rows)), 16, 16, 64, 32);
m_fg_layer->set_transparent_pen(0);
}
diff --git a/src/mame/drivers/simpl156.cpp b/src/mame/drivers/simpl156.cpp
index d3ac5fa6267..be31c5e2848 100644
--- a/src/mame/drivers/simpl156.cpp
+++ b/src/mame/drivers/simpl156.cpp
@@ -412,15 +412,15 @@ void simpl156_state::chainrec(machine_config &config)
m_deco_tilegen->set_pf2_col_bank(0x10);
m_deco_tilegen->set_pf1_col_mask(0x0f);
m_deco_tilegen->set_pf2_col_mask(0x0f);
- m_deco_tilegen->set_bank1_callback(FUNC(simpl156_state::bank_callback), this);
- m_deco_tilegen->set_bank2_callback(FUNC(simpl156_state::bank_callback), this);
+ m_deco_tilegen->set_bank1_callback(FUNC(simpl156_state::bank_callback));
+ m_deco_tilegen->set_bank2_callback(FUNC(simpl156_state::bank_callback));
m_deco_tilegen->set_pf12_8x8_bank(0);
m_deco_tilegen->set_pf12_16x16_bank(1);
m_deco_tilegen->set_gfxdecode_tag("gfxdecode");
DECO_SPRITE(config, m_sprgen, 0);
m_sprgen->set_gfx_region(2);
- m_sprgen->set_pri_callback(FUNC(simpl156_state::pri_callback), this);
+ m_sprgen->set_pri_callback(FUNC(simpl156_state::pri_callback));
m_sprgen->set_gfxdecode_tag("gfxdecode");
SPEAKER(config, "lspeaker").front_left();
@@ -1058,7 +1058,7 @@ READ32_MEMBER(simpl156_state::joemacr_speedup_r)
void simpl156_state::init_joemacr()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x0201018, 0x020101b, read32_delegate(FUNC(simpl156_state::joemacr_speedup_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x0201018, 0x020101b, read32_delegate(*this, FUNC(simpl156_state::joemacr_speedup_r)));
init_simpl156();
}
@@ -1071,7 +1071,7 @@ READ32_MEMBER(simpl156_state::chainrec_speedup_r)
void simpl156_state::init_chainrec()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x0201018, 0x020101b, read32_delegate(FUNC(simpl156_state::chainrec_speedup_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x0201018, 0x020101b, read32_delegate(*this, FUNC(simpl156_state::chainrec_speedup_r)));
init_simpl156();
}
@@ -1084,7 +1084,7 @@ READ32_MEMBER(simpl156_state::prtytime_speedup_r)
void simpl156_state::init_prtytime()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x0201ae0, 0x0201ae3, read32_delegate(FUNC(simpl156_state::prtytime_speedup_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x0201ae0, 0x0201ae3, read32_delegate(*this, FUNC(simpl156_state::prtytime_speedup_r)));
init_simpl156();
}
@@ -1098,7 +1098,7 @@ READ32_MEMBER(simpl156_state::charlien_speedup_r)
void simpl156_state::init_charlien()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x0201010, 0x0201013, read32_delegate(FUNC(simpl156_state::charlien_speedup_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x0201010, 0x0201013, read32_delegate(*this, FUNC(simpl156_state::charlien_speedup_r)));
init_simpl156();
}
@@ -1111,7 +1111,7 @@ READ32_MEMBER(simpl156_state::osman_speedup_r)
void simpl156_state::init_osman()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x0201010, 0x0201013, read32_delegate(FUNC(simpl156_state::osman_speedup_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x0201010, 0x0201013, read32_delegate(*this, FUNC(simpl156_state::osman_speedup_r)));
init_simpl156();
}
diff --git a/src/mame/drivers/simpsons.cpp b/src/mame/drivers/simpsons.cpp
index 172ef67ad3f..9f363ffbd86 100644
--- a/src/mame/drivers/simpsons.cpp
+++ b/src/mame/drivers/simpsons.cpp
@@ -350,11 +350,11 @@ void simpsons_state::simpsons(machine_config &config)
K052109(config, m_k052109, 0);
m_k052109->set_palette("palette");
m_k052109->set_screen("screen");
- m_k052109->set_tile_callback(FUNC(simpsons_state::tile_callback), this);
+ m_k052109->set_tile_callback(FUNC(simpsons_state::tile_callback));
m_k052109->irq_handler().set_inputline(m_maincpu, KONAMI_IRQ_LINE);
K053246(config, m_k053246, 0);
- m_k053246->set_sprite_callback(FUNC(simpsons_state::sprite_callback), this);
+ m_k053246->set_sprite_callback(FUNC(simpsons_state::sprite_callback));
m_k053246->set_config(NORMAL_PLANE_ORDER, 53, 23);
m_k053246->set_palette("palette");
diff --git a/src/mame/drivers/sk101bl.cpp b/src/mame/drivers/sk101bl.cpp
index 8a099badb0f..0e60fa81c86 100644
--- a/src/mame/drivers/sk101bl.cpp
+++ b/src/mame/drivers/sk101bl.cpp
@@ -170,7 +170,7 @@ void sk101bl_state::sk101bl(machine_config &config)
screen.set_palette("palette");
HD44780(config, m_lcdc).set_lcd_size(1, 16);
- m_lcdc->set_pixel_update_cb(FUNC(sk101bl_state::pixel_update), this);
+ m_lcdc->set_pixel_update_cb(FUNC(sk101bl_state::pixel_update));
PALETTE(config, "palette").set_entries(2);
diff --git a/src/mame/drivers/skyarmy.cpp b/src/mame/drivers/skyarmy.cpp
index d905c1895ce..f926047105b 100644
--- a/src/mame/drivers/skyarmy.cpp
+++ b/src/mame/drivers/skyarmy.cpp
@@ -153,7 +153,7 @@ void skyarmy_state::skyarmy_palette(palette_device &palette) const
void skyarmy_state::video_start()
{
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(skyarmy_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(skyarmy_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_tilemap->set_scroll_cols(32);
}
diff --git a/src/mame/drivers/skylncr.cpp b/src/mame/drivers/skylncr.cpp
index 4d6b135eb48..2216d43ab39 100644
--- a/src/mame/drivers/skylncr.cpp
+++ b/src/mame/drivers/skylncr.cpp
@@ -295,12 +295,12 @@ TILE_GET_INFO_MEMBER(skylncr_state::get_reel_4_tile_info)
void skylncr_state::video_start()
{
- m_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(skylncr_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 0x40, 0x20 );
+ m_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(skylncr_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 0x40, 0x20 );
- m_reel_1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(skylncr_state::get_reel_1_tile_info),this), TILEMAP_SCAN_ROWS, 8, 32, 64, 8 );
- m_reel_2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(skylncr_state::get_reel_2_tile_info),this), TILEMAP_SCAN_ROWS, 8, 32, 64, 8 );
- m_reel_3_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(skylncr_state::get_reel_3_tile_info),this), TILEMAP_SCAN_ROWS, 8, 32, 64, 8 );
- m_reel_4_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(skylncr_state::get_reel_4_tile_info),this), TILEMAP_SCAN_ROWS, 8, 32, 64, 8 );
+ m_reel_1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(skylncr_state::get_reel_1_tile_info)), TILEMAP_SCAN_ROWS, 8, 32, 64, 8 );
+ m_reel_2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(skylncr_state::get_reel_2_tile_info)), TILEMAP_SCAN_ROWS, 8, 32, 64, 8 );
+ m_reel_3_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(skylncr_state::get_reel_3_tile_info)), TILEMAP_SCAN_ROWS, 8, 32, 64, 8 );
+ m_reel_4_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(skylncr_state::get_reel_4_tile_info)), TILEMAP_SCAN_ROWS, 8, 32, 64, 8 );
m_reel_2_tilemap->set_scroll_cols(0x40);
m_reel_3_tilemap->set_scroll_cols(0x40);
diff --git a/src/mame/drivers/slotcarn.cpp b/src/mame/drivers/slotcarn.cpp
index 989ce132421..5892aaa50b9 100644
--- a/src/mame/drivers/slotcarn.cpp
+++ b/src/mame/drivers/slotcarn.cpp
@@ -39,8 +39,8 @@
class slotcarn_state : public driver_device
{
public:
- slotcarn_state(const machine_config &mconfig, device_type type, const char *tag)
- : driver_device(mconfig, type, tag),
+ slotcarn_state(const machine_config &mconfig, device_type type, const char *tag) :
+ driver_device(mconfig, type, tag),
m_backup_ram(*this, "backup_ram"),
m_ram_attr(*this, "raattr"),
m_ram_video(*this, "ravideo"),
@@ -571,8 +571,8 @@ void slotcarn_state::slotcarn(machine_config &config)
crtc.set_screen(m_screen);
crtc.set_show_border_area(false);
crtc.set_char_width(8);
- crtc.set_begin_update_callback(FUNC(slotcarn_state::crtc_begin_update), this);
- crtc.set_update_row_callback(FUNC(slotcarn_state::crtc_update_row), this);
+ crtc.set_begin_update_callback(FUNC(slotcarn_state::crtc_begin_update));
+ crtc.set_update_row_callback(FUNC(slotcarn_state::crtc_update_row));
crtc.out_hsync_callback().set(FUNC(slotcarn_state::hsync_changed));
crtc.out_vsync_callback().set_inputline(m_maincpu, 0);
diff --git a/src/mame/drivers/sm1800.cpp b/src/mame/drivers/sm1800.cpp
index 221b0636fdd..e2ae4f81e9d 100644
--- a/src/mame/drivers/sm1800.cpp
+++ b/src/mame/drivers/sm1800.cpp
@@ -189,7 +189,7 @@ void sm1800_state::sm1800(machine_config &config)
I8275(config, m_crtc, 2000000);
m_crtc->set_character_width(8);
- m_crtc->set_display_callback(FUNC(sm1800_state::crtc_display_pixels), this);
+ m_crtc->set_display_callback(FUNC(sm1800_state::crtc_display_pixels));
I8251(config, m_uart, 0);
}
diff --git a/src/mame/drivers/smc777.cpp b/src/mame/drivers/smc777.cpp
index fc78b3038e8..c1014c7618e 100644
--- a/src/mame/drivers/smc777.cpp
+++ b/src/mame/drivers/smc777.cpp
@@ -1144,7 +1144,7 @@ void smc777_state::smc777(machine_config &config)
FLOPPY_CONNECTOR(config, "fdc:1", smc777_floppies, "ssdd", floppy_image_device::default_floppy_formats);
SOFTWARE_LIST(config, "flop_list").set_original("smc777");
- QUICKLOAD(config, "quickload", "com,cpm", attotime::from_seconds(3)).set_load_callback(FUNC(smc777_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "com,cpm", attotime::from_seconds(3)).set_load_callback(FUNC(smc777_state::quickload_cb));
/* sound hardware */
SPEAKER(config, "mono").front_center();
diff --git a/src/mame/drivers/snes.cpp b/src/mame/drivers/snes.cpp
index 9b84e1c4d88..dc12b34e97b 100644
--- a/src/mame/drivers/snes.cpp
+++ b/src/mame/drivers/snes.cpp
@@ -1206,8 +1206,8 @@ void snes_console_state::machine_start()
if (m_cartslot && m_cartslot->exists())
{
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8_delegate(FUNC(snes_console_state::snes20_lo_r),this), write8_delegate(FUNC(snes_console_state::snes20_lo_w),this));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8_delegate(FUNC(snes_console_state::snes20_hi_r),this), write8_delegate(FUNC(snes_console_state::snes20_hi_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8_delegate(*this, FUNC(snes_console_state::snes20_lo_r)), write8_delegate(*this, FUNC(snes_console_state::snes20_lo_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8_delegate(*this, FUNC(snes_console_state::snes20_hi_r)), write8_delegate(*this, FUNC(snes_console_state::snes20_hi_w)));
m_maincpu->set_5a22_map();
m_type = m_cartslot->get_type();
@@ -1224,104 +1224,104 @@ void snes_console_state::machine_start()
case SNES_ST018: // still unemulated
break;
case SNES_Z80GB: // skeleton support
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8_delegate(FUNC(snes_console_state::snessgb_lo_r),this), write8_delegate(FUNC(snes_console_state::snessgb_lo_w),this));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8_delegate(FUNC(snes_console_state::snessgb_hi_r),this), write8_delegate(FUNC(snes_console_state::snessgb_hi_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8_delegate(*this, FUNC(snes_console_state::snessgb_lo_r)), write8_delegate(*this, FUNC(snes_console_state::snessgb_lo_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8_delegate(*this, FUNC(snes_console_state::snessgb_hi_r)), write8_delegate(*this, FUNC(snes_console_state::snessgb_hi_w)));
m_maincpu->set_5a22_map();
break;
case SNES_SA1: // skeleton support
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8_delegate(FUNC(snes_console_state::snessa1_lo_r),this), write8_delegate(FUNC(snes_console_state::snessa1_lo_w),this));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8_delegate(FUNC(snes_console_state::snessa1_hi_r),this), write8_delegate(FUNC(snes_console_state::snessa1_hi_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8_delegate(*this, FUNC(snes_console_state::snessa1_lo_r)), write8_delegate(*this, FUNC(snes_console_state::snessa1_lo_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8_delegate(*this, FUNC(snes_console_state::snessa1_hi_r)), write8_delegate(*this, FUNC(snes_console_state::snessa1_hi_w)));
m_maincpu->set_5a22_map();
break;
case SNES_DSP:
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x208000, 0x20ffff, 0, 0x9f0000, 0, read8sm_delegate(FUNC(base_sns_cart_slot_device::chip_read),(base_sns_cart_slot_device*)m_cartslot));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x208000, 0x20ffff, 0, 0x9f0000, 0, write8sm_delegate(FUNC(base_sns_cart_slot_device::chip_write),(base_sns_cart_slot_device*)m_cartslot));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x208000, 0x20ffff, 0, 0x9f0000, 0, read8sm_delegate(*m_cartslot, FUNC(base_sns_cart_slot_device::chip_read)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x208000, 0x20ffff, 0, 0x9f0000, 0, write8sm_delegate(*m_cartslot, FUNC(base_sns_cart_slot_device::chip_write)));
break;
case SNES_DSP_2MB:
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x600000, 0x607fff, 0, 0x8f0000, 0, read8sm_delegate(FUNC(base_sns_cart_slot_device::chip_read),(base_sns_cart_slot_device*)m_cartslot));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x600000, 0x607fff, 0, 0x8f0000, 0, write8sm_delegate(FUNC(base_sns_cart_slot_device::chip_write),(base_sns_cart_slot_device*)m_cartslot));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x600000, 0x607fff, 0, 0x8f0000, 0, read8sm_delegate(*m_cartslot, FUNC(base_sns_cart_slot_device::chip_read)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x600000, 0x607fff, 0, 0x8f0000, 0, write8sm_delegate(*m_cartslot, FUNC(base_sns_cart_slot_device::chip_write)));
break;
case SNES_DSP4:
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x308000, 0x30ffff, 0, 0x8f0000, 0, read8sm_delegate(FUNC(base_sns_cart_slot_device::chip_read),(base_sns_cart_slot_device*)m_cartslot));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x308000, 0x30ffff, 0, 0x8f0000, 0, write8sm_delegate(FUNC(base_sns_cart_slot_device::chip_write),(base_sns_cart_slot_device*)m_cartslot));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x308000, 0x30ffff, 0, 0x8f0000, 0, read8sm_delegate(*m_cartslot, FUNC(base_sns_cart_slot_device::chip_read)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x308000, 0x30ffff, 0, 0x8f0000, 0, write8sm_delegate(*m_cartslot, FUNC(base_sns_cart_slot_device::chip_write)));
break;
case SNES_OBC1:
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x006000, 0x007fff, 0, 0xbf0000, 0, read8sm_delegate(FUNC(base_sns_cart_slot_device::chip_read),(base_sns_cart_slot_device*)m_cartslot));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x006000, 0x007fff, 0, 0xbf0000, 0, write8sm_delegate(FUNC(base_sns_cart_slot_device::chip_write),(base_sns_cart_slot_device*)m_cartslot));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x006000, 0x007fff, 0, 0xbf0000, 0, read8sm_delegate(*m_cartslot, FUNC(base_sns_cart_slot_device::chip_read)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x006000, 0x007fff, 0, 0xbf0000, 0, write8sm_delegate(*m_cartslot, FUNC(base_sns_cart_slot_device::chip_write)));
break;
case SNES_GSU1:
case SNES_GSU2:
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8_delegate(FUNC(snes_console_state::snessfx_lo_r),this), write8_delegate(FUNC(snes_console_state::snessfx_lo_w),this));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8_delegate(FUNC(snes_console_state::snessfx_hi_r),this), write8_delegate(FUNC(snes_console_state::snessfx_hi_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8_delegate(*this, FUNC(snes_console_state::snessfx_lo_r)), write8_delegate(*this, FUNC(snes_console_state::snessfx_lo_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8_delegate(*this, FUNC(snes_console_state::snessfx_hi_r)), write8_delegate(*this, FUNC(snes_console_state::snessfx_hi_w)));
m_maincpu->set_5a22_map();
break;
case SNES_SDD1:
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8_delegate(FUNC(snes_console_state::snessdd1_lo_r),this), write8_delegate(FUNC(snes_console_state::snessdd1_lo_w),this));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8_delegate(FUNC(snes_console_state::snessdd1_hi_r),this), write8_delegate(FUNC(snes_console_state::snessdd1_hi_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8_delegate(*this, FUNC(snes_console_state::snessdd1_lo_r)), write8_delegate(*this, FUNC(snes_console_state::snessdd1_lo_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8_delegate(*this, FUNC(snes_console_state::snessdd1_hi_r)), write8_delegate(*this, FUNC(snes_console_state::snessdd1_hi_w)));
m_maincpu->set_5a22_map();
break;
case SNES_BSX:
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8_delegate(FUNC(snes_console_state::snesbsx_lo_r),this), write8_delegate(FUNC(snes_console_state::snesbsx_lo_w),this));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8_delegate(FUNC(snes_console_state::snesbsx_hi_r),this), write8_delegate(FUNC(snes_console_state::snesbsx_hi_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8_delegate(*this, FUNC(snes_console_state::snesbsx_lo_r)), write8_delegate(*this, FUNC(snes_console_state::snesbsx_lo_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8_delegate(*this, FUNC(snes_console_state::snesbsx_hi_r)), write8_delegate(*this, FUNC(snes_console_state::snesbsx_hi_w)));
m_maincpu->set_5a22_map();
break;
// HiROM & HiROM + addons
case SNES_MODE21:
case SNES_BSXHI:
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8_delegate(FUNC(snes_console_state::snes21_lo_r),this), write8_delegate(FUNC(snes_console_state::snes21_lo_w),this));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8_delegate(FUNC(snes_console_state::snes21_hi_r),this), write8_delegate(FUNC(snes_console_state::snes21_hi_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8_delegate(*this, FUNC(snes_console_state::snes21_lo_r)), write8_delegate(*this, FUNC(snes_console_state::snes21_lo_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8_delegate(*this, FUNC(snes_console_state::snes21_hi_r)), write8_delegate(*this, FUNC(snes_console_state::snes21_hi_w)));
m_maincpu->set_5a22_map();
break;
case SNES_DSP_MODE21:
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8_delegate(FUNC(snes_console_state::snes21_lo_r),this), write8_delegate(FUNC(snes_console_state::snes21_lo_w),this));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8_delegate(FUNC(snes_console_state::snes21_hi_r),this), write8_delegate(FUNC(snes_console_state::snes21_hi_w),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x006000, 0x007fff, 0, 0x9f0000, 0, read8sm_delegate(FUNC(base_sns_cart_slot_device::chip_read),(base_sns_cart_slot_device*)m_cartslot));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x006000, 0x007fff, 0, 0x9f0000, 0, write8sm_delegate(FUNC(base_sns_cart_slot_device::chip_write),(base_sns_cart_slot_device*)m_cartslot));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8_delegate(*this, FUNC(snes_console_state::snes21_lo_r)), write8_delegate(*this, FUNC(snes_console_state::snes21_lo_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8_delegate(*this, FUNC(snes_console_state::snes21_hi_r)), write8_delegate(*this, FUNC(snes_console_state::snes21_hi_w)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x006000, 0x007fff, 0, 0x9f0000, 0, read8sm_delegate(*m_cartslot, FUNC(base_sns_cart_slot_device::chip_read)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x006000, 0x007fff, 0, 0x9f0000, 0, write8sm_delegate(*m_cartslot, FUNC(base_sns_cart_slot_device::chip_write)));
m_maincpu->set_5a22_map();
break;
case SNES_SRTC:
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8_delegate(FUNC(snes_console_state::snes21_lo_r),this), write8_delegate(FUNC(snes_console_state::snes21_lo_w),this));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8_delegate(FUNC(snes_console_state::snes21_hi_r),this), write8_delegate(FUNC(snes_console_state::snes21_hi_w),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x002800, 0x002800, 0, 0xbf0000, 0, read8sm_delegate(FUNC(base_sns_cart_slot_device::chip_read),(base_sns_cart_slot_device*)m_cartslot));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x002801, 0x002801, 0, 0xbf0000, 0, write8sm_delegate(FUNC(base_sns_cart_slot_device::chip_write),(base_sns_cart_slot_device*)m_cartslot));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8_delegate(*this, FUNC(snes_console_state::snes21_lo_r)), write8_delegate(*this, FUNC(snes_console_state::snes21_lo_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8_delegate(*this, FUNC(snes_console_state::snes21_hi_r)), write8_delegate(*this, FUNC(snes_console_state::snes21_hi_w)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x002800, 0x002800, 0, 0xbf0000, 0, read8sm_delegate(*m_cartslot, FUNC(base_sns_cart_slot_device::chip_read)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x002801, 0x002801, 0, 0xbf0000, 0, write8sm_delegate(*m_cartslot, FUNC(base_sns_cart_slot_device::chip_write)));
m_maincpu->set_5a22_map();
break;
case SNES_SPC7110:
case SNES_SPC7110_RTC:
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8_delegate(FUNC(snes_console_state::snes7110_lo_r),this), write8_delegate(FUNC(snes_console_state::snes7110_lo_w),this));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8_delegate(FUNC(snes_console_state::snes7110_hi_r),this), write8_delegate(FUNC(snes_console_state::snes7110_hi_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8_delegate(*this, FUNC(snes_console_state::snes7110_lo_r)), write8_delegate(*this, FUNC(snes_console_state::snes7110_lo_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8_delegate(*this, FUNC(snes_console_state::snes7110_hi_r)), write8_delegate(*this, FUNC(snes_console_state::snes7110_hi_w)));
m_maincpu->set_5a22_map();
break;
case SNES_PFEST94:
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8_delegate(FUNC(snes_console_state::pfest94_lo_r),this), write8_delegate(FUNC(snes_console_state::pfest94_lo_w),this));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8_delegate(FUNC(snes_console_state::pfest94_hi_r),this), write8_delegate(FUNC(snes_console_state::pfest94_hi_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8_delegate(*this, FUNC(snes_console_state::pfest94_lo_r)), write8_delegate(*this, FUNC(snes_console_state::pfest94_lo_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8_delegate(*this, FUNC(snes_console_state::pfest94_hi_r)), write8_delegate(*this, FUNC(snes_console_state::pfest94_hi_w)));
m_maincpu->set_5a22_map();
break;
// pirate 'mappers'
case SNES_POKEMON:
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x800000, 0x80ffff, 0, 0x780000, 0, read8sm_delegate(FUNC(base_sns_cart_slot_device::chip_read),(base_sns_cart_slot_device*)m_cartslot));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x800000, 0x80ffff, 0, 0x780000, 0, write8sm_delegate(FUNC(base_sns_cart_slot_device::chip_write),(base_sns_cart_slot_device*)m_cartslot));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x800000, 0x80ffff, 0, 0x780000, 0, read8sm_delegate(*m_cartslot, FUNC(base_sns_cart_slot_device::chip_read)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x800000, 0x80ffff, 0, 0x780000, 0, write8sm_delegate(*m_cartslot, FUNC(base_sns_cart_slot_device::chip_write)));
break;
case SNES_TEKKEN2:
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x808000, 0x8087ff, 0, 0x3f0000, 0, read8sm_delegate(FUNC(base_sns_cart_slot_device::chip_read),(base_sns_cart_slot_device*)m_cartslot));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x808000, 0x8087ff, 0, 0x3f0000, 0, write8sm_delegate(FUNC(base_sns_cart_slot_device::chip_write),(base_sns_cart_slot_device*)m_cartslot));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x808000, 0x8087ff, 0, 0x3f0000, 0, read8sm_delegate(*m_cartslot, FUNC(base_sns_cart_slot_device::chip_read)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x808000, 0x8087ff, 0, 0x3f0000, 0, write8sm_delegate(*m_cartslot, FUNC(base_sns_cart_slot_device::chip_write)));
break;
case SNES_MCPIR1:
case SNES_MCPIR2:
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xffff00, 0xffffff, write8sm_delegate(FUNC(base_sns_cart_slot_device::chip_write),(base_sns_cart_slot_device*)m_cartslot));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xffff00, 0xffffff, write8sm_delegate(*m_cartslot, FUNC(base_sns_cart_slot_device::chip_write)));
break;
case SNES_20COL:
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x008000, 0x008fff, write8sm_delegate(FUNC(base_sns_cart_slot_device::chip_write),(base_sns_cart_slot_device*)m_cartslot));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x008000, 0x008fff, write8sm_delegate(*m_cartslot, FUNC(base_sns_cart_slot_device::chip_write)));
break;
case SNES_SOULBLAD:
// reads from xxx0-xxx3in range [80-bf] return a fixed sequence of 4bits; reads in range [c0-ff] return open bus
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x808000, 0x808003, 0, 0x3f7ff0, 0, read8sm_delegate(FUNC(base_sns_cart_slot_device::chip_read),(base_sns_cart_slot_device*)m_cartslot));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xc00000, 0xffffff, read8smo_delegate(FUNC(snes_console_state::snes_open_bus_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x808000, 0x808003, 0, 0x3f7ff0, 0, read8sm_delegate(*m_cartslot, FUNC(base_sns_cart_slot_device::chip_read)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xc00000, 0xffffff, read8smo_delegate(*this, FUNC(snes_console_state::snes_open_bus_r)));
break;
case SNES_BUGS:
case SNES_BANANA:
-// m_maincpu->space(AS_PROGRAM).install_read_handler(0x808000, 0x80ffff, 0, 0x780000, 0, read8sm_delegate(FUNC(base_sns_cart_slot_device::chip_read),(base_sns_cart_slot_device*)m_cartslot));
-// m_maincpu->space(AS_PROGRAM).install_write_handler(0x808000, 0x80ffff, 0, 0x780000, 0, write8sm_delegate(FUNC(base_sns_cart_slot_device::chip_write),(base_sns_cart_slot_device*)m_cartslot));
+// m_maincpu->space(AS_PROGRAM).install_read_handler(0x808000, 0x80ffff, 0, 0x780000, 0, read8sm_delegate(*m_cartslot, FUNC(base_sns_cart_slot_device::chip_read)));
+// m_maincpu->space(AS_PROGRAM).install_write_handler(0x808000, 0x80ffff, 0, 0x780000, 0, write8sm_delegate(*m_cartslot, FUNC(base_sns_cart_slot_device::chip_write)));
// m_maincpu->set_5a22_map();
break;
}
@@ -1359,10 +1359,10 @@ void snes_console_state::snes(machine_config &config)
m_ppu->set_screen("screen");
SNES_CONTROL_PORT(config, m_ctrl1, snes_control_port_devices, "joypad");
- m_ctrl1->set_onscreen_callback(FUNC(snes_console_state::onscreen_cb), this);
+ m_ctrl1->set_onscreen_callback(FUNC(snes_console_state::onscreen_cb));
SNES_CONTROL_PORT(config, m_ctrl2, snes_control_port_devices, "joypad");
- m_ctrl2->set_onscreen_callback(FUNC(snes_console_state::onscreen_cb), this);
- m_ctrl2->set_gunlatch_callback(FUNC(snes_console_state::gun_latch_cb), this);
+ m_ctrl2->set_onscreen_callback(FUNC(snes_console_state::onscreen_cb));
+ m_ctrl2->set_gunlatch_callback(FUNC(snes_console_state::gun_latch_cb));
/* sound hardware */
SPEAKER(config, "lspeaker").front_left();
diff --git a/src/mame/drivers/snesb.cpp b/src/mame/drivers/snesb.cpp
index 1b5013d81ad..27ff7b6cc57 100644
--- a/src/mame/drivers/snesb.cpp
+++ b/src/mame/drivers/snesb.cpp
@@ -808,12 +808,12 @@ void snesb_state::init_kinstb()
}
m_shared_ram = std::make_unique<int8_t[]>(0x100);
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x781000, 0x7810ff, read8_delegate(FUNC(snesb_state::sharedram_r),this), write8_delegate(FUNC(snesb_state::sharedram_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x781000, 0x7810ff, read8_delegate(*this, FUNC(snesb_state::sharedram_r)), write8_delegate(*this, FUNC(snesb_state::sharedram_w)));
/* extra inputs */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x770071, 0x770071, read8_delegate(FUNC(snesb_state::snesb_dsw1_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x770073, 0x770073, read8_delegate(FUNC(snesb_state::snesb_dsw2_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x770079, 0x770079, read8_delegate(FUNC(snesb_state::snesb_coin_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x770071, 0x770071, read8_delegate(*this, FUNC(snesb_state::snesb_dsw1_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x770073, 0x770073, read8_delegate(*this, FUNC(snesb_state::snesb_dsw2_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x770079, 0x770079, read8_delegate(*this, FUNC(snesb_state::snesb_coin_r)));
init_snes_hirom();
}
@@ -853,9 +853,9 @@ void snesb_state::init_ffight2b()
rom[0x7ffc] = 0x54;
/* extra inputs */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x770071, 0x770071, read8_delegate(FUNC(snesb_state::snesb_dsw1_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x770073, 0x770073, read8_delegate(FUNC(snesb_state::snesb_dsw2_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x770079, 0x770079, read8_delegate(FUNC(snesb_state::snesb_coin_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x770071, 0x770071, read8_delegate(*this, FUNC(snesb_state::snesb_dsw1_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x770073, 0x770073, read8_delegate(*this, FUNC(snesb_state::snesb_dsw2_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x770079, 0x770079, read8_delegate(*this, FUNC(snesb_state::snesb_coin_r)));
init_snes();
}
@@ -877,9 +877,9 @@ void snesb_state::init_iron()
}
/* extra inputs */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x770071, 0x770071, read8_delegate(FUNC(snesb_state::snesb_dsw1_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x770073, 0x770073, read8_delegate(FUNC(snesb_state::snesb_dsw2_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x770079, 0x770079, read8_delegate(FUNC(snesb_state::snesb_coin_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x770071, 0x770071, read8_delegate(*this, FUNC(snesb_state::snesb_dsw1_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x770073, 0x770073, read8_delegate(*this, FUNC(snesb_state::snesb_dsw2_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x770079, 0x770079, read8_delegate(*this, FUNC(snesb_state::snesb_coin_r)));
init_snes();
}
@@ -907,9 +907,9 @@ void snesb_state::init_denseib()
rom[0xfffd] = 0xf7;
/* extra inputs */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x770071, 0x770071, read8_delegate(FUNC(snesb_state::snesb_dsw1_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x770073, 0x770073, read8_delegate(FUNC(snesb_state::snesb_dsw2_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x770079, 0x770079, read8_delegate(FUNC(snesb_state::snesb_coin_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x770071, 0x770071, read8_delegate(*this, FUNC(snesb_state::snesb_dsw1_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x770073, 0x770073, read8_delegate(*this, FUNC(snesb_state::snesb_dsw2_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x770079, 0x770079, read8_delegate(*this, FUNC(snesb_state::snesb_coin_r)));
init_snes_hirom();
}
@@ -969,9 +969,9 @@ void snesb_state::init_denseib2()
dst[0xfffd] = 0xf7;
/* extra inputs */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x770071, 0x770071, read8_delegate(FUNC(snesb_state::snesb_dsw1_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x770073, 0x770073, read8_delegate(FUNC(snesb_state::snesb_dsw2_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x770079, 0x770079, read8_delegate(FUNC(snesb_state::snesb_coin_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x770071, 0x770071, read8_delegate(*this, FUNC(snesb_state::snesb_dsw1_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x770073, 0x770073, read8_delegate(*this, FUNC(snesb_state::snesb_dsw2_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x770079, 0x770079, read8_delegate(*this, FUNC(snesb_state::snesb_coin_r)));
init_snes_hirom();
}
@@ -1001,9 +1001,9 @@ void snesb_state::init_legendsb()
rom[0x7ffd] = 0x80;
// extra inputs
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x770071, 0x770071, read8_delegate(FUNC(snesb_state::snesb_dsw1_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x770073, 0x770073, read8_delegate(FUNC(snesb_state::snesb_dsw2_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x770079, 0x770079, read8_delegate(FUNC(snesb_state::snesb_coin_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x770071, 0x770071, read8_delegate(*this, FUNC(snesb_state::snesb_dsw1_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x770073, 0x770073, read8_delegate(*this, FUNC(snesb_state::snesb_dsw2_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x770079, 0x770079, read8_delegate(*this, FUNC(snesb_state::snesb_coin_r)));
init_snes();
}
@@ -1060,16 +1060,16 @@ void snesb_state::init_sblast2b()
dst[0xfffd] = 0x7a;
/* protection checks */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x75bd37, 0x75bd37, read8_delegate(FUNC(snesb_state::sb2b_75bd37_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x6a6000, 0x6a6fff, read8_delegate(FUNC(snesb_state::sb2b_6a6xxx_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x75bd37, 0x75bd37, read8_delegate(*this, FUNC(snesb_state::sb2b_75bd37_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x6a6000, 0x6a6fff, read8_delegate(*this, FUNC(snesb_state::sb2b_6a6xxx_r)));
/* handler to read boot code */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x007000, 0x007fff, read8_delegate(FUNC(snesb_state::sb2b_7xxx_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x007000, 0x007fff, read8_delegate(*this, FUNC(snesb_state::sb2b_7xxx_r)));
/* extra inputs */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x770071, 0x770071, read8_delegate(FUNC(snesb_state::snesb_dsw1_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x770073, 0x770073, read8_delegate(FUNC(snesb_state::snesb_dsw2_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x770079, 0x770079, read8_delegate(FUNC(snesb_state::snesb_coin_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x770071, 0x770071, read8_delegate(*this, FUNC(snesb_state::snesb_dsw1_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x770073, 0x770073, read8_delegate(*this, FUNC(snesb_state::snesb_dsw2_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x770079, 0x770079, read8_delegate(*this, FUNC(snesb_state::snesb_coin_r)));
init_snes_hirom();
}
@@ -1128,21 +1128,21 @@ void snesb_state::init_endless()
dst[0x7ffd] = 0x80;
/* protection checks */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x580000, 0x580fff, read8_delegate(FUNC(snesb_state::endless_580xxx_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x624b7f, 0x624b7f, read8_delegate(FUNC(snesb_state::endless_624b7f_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x580000, 0x580fff, read8_delegate(*this, FUNC(snesb_state::endless_580xxx_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x624b7f, 0x624b7f, read8_delegate(*this, FUNC(snesb_state::endless_624b7f_r)));
/* work around missing content */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x800b, 0x800c, read8_delegate(FUNC(snesb_state::endless_800b_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x800b, 0x800c, read8_delegate(*this, FUNC(snesb_state::endless_800b_r)));
m_shared_ram = std::make_unique<int8_t[]>(0x22);
m_shared_ram2 = std::make_unique<int8_t[]>(0x22);
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x781000, 0x781021, read8_delegate(FUNC(snesb_state::sharedram_r),this), write8_delegate(FUNC(snesb_state::sharedram_w),this));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x781200, 0x781221, read8_delegate(FUNC(snesb_state::sharedram2_r),this), write8_delegate(FUNC(snesb_state::sharedram2_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x781000, 0x781021, read8_delegate(*this, FUNC(snesb_state::sharedram_r)), write8_delegate(*this, FUNC(snesb_state::sharedram_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x781200, 0x781221, read8_delegate(*this, FUNC(snesb_state::sharedram2_r)), write8_delegate(*this, FUNC(snesb_state::sharedram2_w)));
/* extra inputs */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x770071, 0x770071, read8_delegate(FUNC(snesb_state::snesb_dsw1_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x770073, 0x770073, read8_delegate(FUNC(snesb_state::snesb_dsw2_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x770079, 0x770079, read8_delegate(FUNC(snesb_state::snesb_coin_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x770071, 0x770071, read8_delegate(*this, FUNC(snesb_state::snesb_dsw1_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x770073, 0x770073, read8_delegate(*this, FUNC(snesb_state::snesb_dsw2_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x770079, 0x770079, read8_delegate(*this, FUNC(snesb_state::snesb_coin_r)));
init_snes();
}
@@ -1281,13 +1281,13 @@ void snesb_state::init_venom()
m_shared_ram = std::make_unique<int8_t[]>(0x22);
m_shared_ram2 = std::make_unique<int8_t[]>(0x22);
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x781000, 0x781021, read8_delegate(FUNC(snesb_state::sharedram_r),this), write8_delegate(FUNC(snesb_state::sharedram_w),this));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x781200, 0x781221, read8_delegate(FUNC(snesb_state::sharedram2_r),this), write8_delegate(FUNC(snesb_state::sharedram2_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x781000, 0x781021, read8_delegate(*this, FUNC(snesb_state::sharedram_r)), write8_delegate(*this, FUNC(snesb_state::sharedram_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x781200, 0x781221, read8_delegate(*this, FUNC(snesb_state::sharedram2_r)), write8_delegate(*this, FUNC(snesb_state::sharedram2_w)));
/* extra inputs */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x770071, 0x770071, read8_delegate(FUNC(snesb_state::snesb_dsw1_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x770073, 0x770073, read8_delegate(FUNC(snesb_state::snesb_dsw2_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x770079, 0x770079, read8_delegate(FUNC(snesb_state::snesb_coin_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x770071, 0x770071, read8_delegate(*this, FUNC(snesb_state::snesb_dsw1_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x770073, 0x770073, read8_delegate(*this, FUNC(snesb_state::snesb_dsw2_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x770079, 0x770079, read8_delegate(*this, FUNC(snesb_state::snesb_coin_r)));
init_snes();
}
diff --git a/src/mame/drivers/snk68.cpp b/src/mame/drivers/snk68.cpp
index 6a8d9965d07..c980c5f6494 100644
--- a/src/mame/drivers/snk68.cpp
+++ b/src/mame/drivers/snk68.cpp
@@ -66,8 +66,8 @@ void snk68_state::pow_map(address_map &map)
{
map(0x000000, 0x03ffff).rom();
map(0x040000, 0x043fff).ram();
- map(0x080000, 0x080000).lr8("P2_r", [this]() -> u8 { return m_p2_io->read(); });
- map(0x080001, 0x080001).lr8("P1_r", [this]() -> u8 { return m_p1_io->read(); });
+ map(0x080000, 0x080000).lr8(NAME([this] () -> u8 { return m_p2_io->read(); }));
+ map(0x080001, 0x080001).lr8(NAME([this] () -> u8 { return m_p1_io->read(); }));
map(0x080000, 0x080000).w(FUNC(snk68_state::sound_w));
map(0x0c0000, 0x0c0001).portr("SYSTEM");
map(0x0c0001, 0x0c0001).w(FUNC(snk68_state::flipscreen_w)); // + char bank
@@ -110,12 +110,12 @@ void searchar_state::searchar_map(address_map &map)
{
map(0x000000, 0x03ffff).rom();
map(0x040000, 0x043fff).ram();
- map(0x080001, 0x080001).lr8("P1_invert_r", [this]() -> u8 { return m_p1_io->read() ^ m_invert_controls; });
- map(0x080003, 0x080003).lr8("P2_invert_r", [this]() -> u8 { return m_p2_io->read() ^ m_invert_controls; });
- map(0x080005, 0x080005).lr8("SYS_invert_r", [this]() -> u8 { return m_system_io->read() ^ m_invert_controls; });
+ map(0x080001, 0x080001).lr8(NAME([this] () -> u8 { return m_p1_io->read() ^ m_invert_controls; }));
+ map(0x080003, 0x080003).lr8(NAME([this] () -> u8 { return m_p2_io->read() ^ m_invert_controls; }));
+ map(0x080005, 0x080005).lr8(NAME([this] () -> u8 { return m_system_io->read() ^ m_invert_controls; }));
map(0x080000, 0x080000).w(FUNC(searchar_state::sound_w));
/* top byte unknown, bottom is protection in ikari3 and streetsm */
- map(0x080007, 0x080007).lw8("invctrl_w", [this](u8 data){ m_invert_controls = ((data & 0xff) == 0x07) ? 0xff : 0x00; } );
+ map(0x080007, 0x080007).lw8(NAME([this] (u8 data){ m_invert_controls = ((data & 0xff) == 0x07) ? 0xff : 0x00; } ));
map(0x0c0001, 0x0c0001).w(FUNC(searchar_state::flipscreen_w));
map(0x0c0000, 0x0c0001).r(FUNC(searchar_state::rotary_1_r)); /* Player 1 rotary */
map(0x0c8000, 0x0c8001).r(FUNC(searchar_state::rotary_2_r)); /* Player 2 rotary */
@@ -154,7 +154,7 @@ void snk68_state::sound_io_map(address_map &map)
map(0x00, 0x00).rw("ymsnd", FUNC(ym3812_device::status_port_r), FUNC(ym3812_device::control_port_w));
map(0x20, 0x20).w("ymsnd", FUNC(ym3812_device::write_port_w));
map(0x40, 0x40).w(FUNC(snk68_state::D7759_write_port_0_w));
- map(0x80, 0x80).lw8("upd_reset", [this](u8 data){ m_upd7759->reset_w(BIT(data, 7)); } );
+ map(0x80, 0x80).lw8(NAME([this] (u8 data) { m_upd7759->reset_w(BIT(data, 7)); } ));
}
/******************************************************************************/
@@ -601,7 +601,7 @@ void snk68_state::pow(machine_config &config)
SNK68_SPR(config, m_sprites, 0);
m_sprites->set_gfxdecode_tag(m_gfxdecode);
- m_sprites->set_tile_indirect_cb(FUNC(snk68_state::tile_callback_pow), this);
+ m_sprites->set_tile_indirect_cb(FUNC(snk68_state::tile_callback_pow));
m_sprites->set_xpos_shift(12);
m_sprites->set_color_entry_mask(0x7f);
@@ -622,7 +622,7 @@ void snk68_state::pow(machine_config &config)
void snk68_state::streetsm(machine_config &config)
{
pow(config);
- m_sprites->set_tile_indirect_cb(FUNC(snk68_state::tile_callback_notpow), this);
+ m_sprites->set_tile_indirect_cb(FUNC(snk68_state::tile_callback_notpow));
}
void searchar_state::searchar(machine_config &config)
diff --git a/src/mame/drivers/snowbros.cpp b/src/mame/drivers/snowbros.cpp
index b15e85c5820..207c3be4cd8 100644
--- a/src/mame/drivers/snowbros.cpp
+++ b/src/mame/drivers/snowbros.cpp
@@ -2817,7 +2817,7 @@ void snowbros_state::init_4in1boot()
buffer[i] = src[i^0x4000];
memcpy(src,&buffer[0],len);
}
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x200000, 0x200001, read16_delegate(FUNC(snowbros_state::_4in1_02_read),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x200000, 0x200001, read16_delegate(*this, FUNC(snowbros_state::_4in1_02_read)));
}
void snowbros_state::init_snowbro3()
@@ -2844,7 +2844,7 @@ READ16_MEMBER(snowbros_state::_3in1_read)
void snowbros_state::init_3in1semi()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x200000, 0x200001, read16_delegate(FUNC(snowbros_state::_3in1_read),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x200000, 0x200001, read16_delegate(*this, FUNC(snowbros_state::_3in1_read)));
}
@@ -2855,7 +2855,7 @@ READ16_MEMBER(snowbros_state::cookbib3_read)
void snowbros_state::init_cookbib3()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x200000, 0x200001, read16_delegate(FUNC(snowbros_state::cookbib3_read),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x200000, 0x200001, read16_delegate(*this, FUNC(snowbros_state::cookbib3_read)));
}
void snowbros_state::init_pzlbreak()
@@ -2893,7 +2893,7 @@ void snowbros_state::init_toto()
}
// protection? (just return 0x07)
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x500006, 0x500007, read16_delegate(FUNC(snowbros_state::toto_read),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x500006, 0x500007, read16_delegate(*this, FUNC(snowbros_state::toto_read)));
}
void snowbros_state::init_hyperpac()
diff --git a/src/mame/drivers/sorcerer.cpp b/src/mame/drivers/sorcerer.cpp
index 446f78ea8e3..ed7ac04a44f 100644
--- a/src/mame/drivers/sorcerer.cpp
+++ b/src/mame/drivers/sorcerer.cpp
@@ -488,8 +488,8 @@ void sorcerer_state::sorcerer(machine_config &config)
INPUT_BUFFER(config, "cent_status_in");
/* quickload */
- SNAPSHOT(config, "snapshot", "snp", attotime::from_seconds(2)).set_load_callback(FUNC(sorcerer_state::snapshot_cb), this);
- QUICKLOAD(config, "quickload", "bin", attotime::from_seconds(3)).set_load_callback(FUNC(sorcerer_state::quickload_cb), this);
+ SNAPSHOT(config, "snapshot", "snp", attotime::from_seconds(2)).set_load_callback(FUNC(sorcerer_state::snapshot_cb));
+ QUICKLOAD(config, "quickload", "bin", attotime::from_seconds(3)).set_load_callback(FUNC(sorcerer_state::quickload_cb));
CASSETTE(config, m_cassette1);
m_cassette1->set_formats(sorcerer_cassette_formats);
diff --git a/src/mame/drivers/spartanxtec.cpp b/src/mame/drivers/spartanxtec.cpp
index 6ff57310e15..5855b4d86eb 100644
--- a/src/mame/drivers/spartanxtec.cpp
+++ b/src/mame/drivers/spartanxtec.cpp
@@ -113,7 +113,7 @@ TILE_GET_INFO_MEMBER(spartanxtec_state::get_kungfum_bg_tile_info)
void spartanxtec_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(spartanxtec_state::get_kungfum_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(spartanxtec_state::get_kungfum_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_bg_tilemap->set_scroll_rows(32);
}
diff --git a/src/mame/drivers/spc1500.cpp b/src/mame/drivers/spc1500.cpp
index 8da3f204d41..d5e95b54b4c 100644
--- a/src/mame/drivers/spc1500.cpp
+++ b/src/mame/drivers/spc1500.cpp
@@ -900,8 +900,8 @@ void spc1500_state::spc1500(machine_config &config)
m_vdg->set_screen("screen");
m_vdg->set_show_border_area(false);
m_vdg->set_char_width(8);
- m_vdg->set_update_row_callback(FUNC(spc1500_state::crtc_update_row), this);
- m_vdg->set_reconfigure_callback(FUNC(spc1500_state::crtc_reconfig), this);
+ m_vdg->set_update_row_callback(FUNC(spc1500_state::crtc_update_row));
+ m_vdg->set_reconfigure_callback(FUNC(spc1500_state::crtc_reconfig));
MCFG_VIDEO_START_OVERRIDE(spc1500_state, spc)
diff --git a/src/mame/drivers/spdheat.cpp b/src/mame/drivers/spdheat.cpp
index 4a811f553b0..8b8066ee9b6 100644
--- a/src/mame/drivers/spdheat.cpp
+++ b/src/mame/drivers/spdheat.cpp
@@ -58,10 +58,10 @@ void spdheat_state::machine_reset()
void spdheat_state::video_start()
{
- m_fg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(spdheat_state::get_fg_tile_info<0>), this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_fg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(spdheat_state::get_fg_tile_info<1>), this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_fg_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(spdheat_state::get_fg_tile_info<2>), this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_fg_tilemap[3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(spdheat_state::get_fg_tile_info<3>), this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(spdheat_state::get_fg_tile_info<0>)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(spdheat_state::get_fg_tile_info<1>)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fg_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(spdheat_state::get_fg_tile_info<2>)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fg_tilemap[3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(spdheat_state::get_fg_tile_info<3>)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
diff --git a/src/mame/drivers/spectrum.cpp b/src/mame/drivers/spectrum.cpp
index a59235f7904..56acc9e4696 100644
--- a/src/mame/drivers/spectrum.cpp
+++ b/src/mame/drivers/spectrum.cpp
@@ -736,8 +736,8 @@ void spectrum_state::spectrum_common(machine_config &config)
m_exp->nmi_handler().set_inputline(m_maincpu, INPUT_LINE_NMI);
/* devices */
- SNAPSHOT(config, "snapshot", "ach,frz,plusd,prg,sem,sit,sna,snp,snx,sp,z80,zx").set_load_callback(FUNC(spectrum_state::snapshot_cb), this);
- QUICKLOAD(config, "quickload", "raw,scr", attotime::from_seconds(2)).set_load_callback(FUNC(spectrum_state::quickload_cb), this); // The delay prevents the screen from being cleared by the RAM test at boot
+ SNAPSHOT(config, "snapshot", "ach,frz,plusd,prg,sem,sit,sna,snp,snx,sp,z80,zx").set_load_callback(FUNC(spectrum_state::snapshot_cb));
+ QUICKLOAD(config, "quickload", "raw,scr", attotime::from_seconds(2)).set_load_callback(FUNC(spectrum_state::quickload_cb)); // The delay prevents the screen from being cleared by the RAM test at boot
CASSETTE(config, m_cassette);
m_cassette->set_formats(tzx_cassette_formats);
diff --git a/src/mame/drivers/spiders.cpp b/src/mame/drivers/spiders.cpp
index b076d4a5e70..e8d6c599feb 100644
--- a/src/mame/drivers/spiders.cpp
+++ b/src/mame/drivers/spiders.cpp
@@ -527,7 +527,7 @@ void spiders_state::spiders(machine_config &config)
crtc.set_screen("screen");
crtc.set_show_border_area(false);
crtc.set_char_width(8);
- crtc.set_update_row_callback(FUNC(spiders_state::crtc_update_row), this);
+ crtc.set_update_row_callback(FUNC(spiders_state::crtc_update_row));
crtc.out_de_callback().set("ic60", FUNC(ttl74123_device::a_w));
PIA6821(config, m_pia[0], 0);
diff --git a/src/mame/drivers/splash.cpp b/src/mame/drivers/splash.cpp
index e039b222fc2..d49b6069dd1 100644
--- a/src/mame/drivers/splash.cpp
+++ b/src/mame/drivers/splash.cpp
@@ -81,7 +81,7 @@ void splash_state::splash_map(address_map &map)
map(0x840002, 0x840003).portr("DSW2");
map(0x840004, 0x840005).portr("P1");
map(0x840006, 0x840007).portr("P2");
- map(0x84000a, 0x84000a).select(0x000070).lw8("outlatch_w", [this](offs_t offset, u8 data) { m_outlatch->write_d0(offset >> 4, data); });
+ map(0x84000a, 0x84000a).select(0x000070).lw8(NAME([this] (offs_t offset, u8 data) { m_outlatch->write_d0(offset >> 4, data); }));
map(0x84000f, 0x84000f).w(m_soundlatch, FUNC(generic_latch_8_device::write));
map(0x880000, 0x8817ff).ram().w(FUNC(splash_state::vram_w)).share("videoram"); /* Video RAM */
map(0x881800, 0x881803).ram().share("vregs"); /* Scroll registers */
@@ -161,7 +161,7 @@ void splash_state::roldfrog_map(address_map &map)
map(0x840002, 0x840003).portr("DSW2");
map(0x840004, 0x840005).portr("P1");
map(0x840006, 0x840007).portr("P2");
- map(0x84000a, 0x84000a).select(0x000070).lw8("outlatch_w", [this](offs_t offset, u8 data) { m_outlatch->write_d0(offset >> 4, data); });
+ map(0x84000a, 0x84000a).select(0x000070).lw8(NAME([this] (offs_t offset, u8 data) { m_outlatch->write_d0(offset >> 4, data); }));
map(0x84000f, 0x84000f).w(m_soundlatch, FUNC(generic_latch_8_device::write));
map(0x880000, 0x8817ff).ram().w(FUNC(splash_state::vram_w)).share("videoram"); /* Video RAM */
map(0x881800, 0x881803).ram().share("vregs"); /* Scroll registers */
@@ -1436,8 +1436,8 @@ void funystrp_state::init_funystrp()
membank("sound_bank")->configure_entries(0, 16, &ROM[0x00000], 0x8000);
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x100000, 0x1fffff, write16_delegate(FUNC(funystrp_state::protection_w), this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x100000, 0x1fffff, read16_delegate(FUNC(funystrp_state::protection_r),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x100000, 0x1fffff, write16_delegate(*this, FUNC(funystrp_state::protection_w)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x100000, 0x1fffff, read16_delegate(*this, FUNC(funystrp_state::protection_r)));
}
GAME( 1992, splash, 0, splash, splash, splash_state, init_splash, ROT0, "Gaelco / OMK Software", "Splash! (Ver. 1.2 World)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/spoker.cpp b/src/mame/drivers/spoker.cpp
index 149228cff12..463fef68d24 100644
--- a/src/mame/drivers/spoker.cpp
+++ b/src/mame/drivers/spoker.cpp
@@ -151,8 +151,8 @@ WRITE8_MEMBER(spoker_state::fg_color_w)
void spoker_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(spoker_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 32, 128, 8);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(spoker_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 128, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(spoker_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 32, 128, 8);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(spoker_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 128, 32);
m_fg_tilemap->set_transparent_pen(0);
}
diff --git a/src/mame/drivers/spool99.cpp b/src/mame/drivers/spool99.cpp
index e7b57a8580e..c1ebdc6c3c3 100644
--- a/src/mame/drivers/spool99.cpp
+++ b/src/mame/drivers/spool99.cpp
@@ -162,7 +162,7 @@ TILE_GET_INFO_MEMBER(spool99_state::get_tile_info)
void spool99_state::video_start()
{
- m_sc0_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(spool99_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_sc0_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(spool99_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
}
uint32_t spool99_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
diff --git a/src/mame/drivers/sprint2.cpp b/src/mame/drivers/sprint2.cpp
index 3db9afd6015..aecd99d4385 100644
--- a/src/mame/drivers/sprint2.cpp
+++ b/src/mame/drivers/sprint2.cpp
@@ -70,7 +70,7 @@ int sprint2_state::service_mode()
}
-INTERRUPT_GEN_MEMBER(sprint2_state::sprint2)
+INTERRUPT_GEN_MEMBER(sprint2_state::sprint2_irq)
{
/* handle steering wheels */
@@ -494,7 +494,7 @@ void sprint2_state::sprint2(machine_config &config)
/* basic machine hardware */
M6502(config, m_maincpu, 12.096_MHz_XTAL / 16);
m_maincpu->set_addrmap(AS_PROGRAM, &sprint2_state::sprint2_map);
- m_maincpu->set_vblank_int("screen", FUNC(sprint2_state::sprint2));
+ m_maincpu->set_vblank_int("screen", FUNC(sprint2_state::sprint2_irq));
WATCHDOG_TIMER(config, m_watchdog).set_vblank_count(m_screen, 8);
diff --git a/src/mame/drivers/spy.cpp b/src/mame/drivers/spy.cpp
index 856919cec3e..dacaf45fa28 100644
--- a/src/mame/drivers/spy.cpp
+++ b/src/mame/drivers/spy.cpp
@@ -514,13 +514,13 @@ void spy_state::spy(machine_config &config)
K052109(config, m_k052109, 0); // 051961 on schematics
m_k052109->set_palette(m_palette);
m_k052109->set_screen("screen");
- m_k052109->set_tile_callback(FUNC(spy_state::tile_callback), this);
+ m_k052109->set_tile_callback(FUNC(spy_state::tile_callback));
m_k052109->irq_handler().set_inputline(m_maincpu, M6809_IRQ_LINE);
K051960(config, m_k051960, 0);
m_k051960->set_palette(m_palette);
m_k051960->set_screen("screen");
- m_k051960->set_sprite_callback(FUNC(spy_state::sprite_callback), this);
+ m_k051960->set_sprite_callback(FUNC(spy_state::sprite_callback));
/* sound hardware */
SPEAKER(config, "mono").front_center();
diff --git a/src/mame/drivers/spyhuntertec.cpp b/src/mame/drivers/spyhuntertec.cpp
index 59ebd1ced16..f13f8ba2fa1 100644
--- a/src/mame/drivers/spyhuntertec.cpp
+++ b/src/mame/drivers/spyhuntertec.cpp
@@ -32,8 +32,8 @@ sound system appears to be the same as 'spartanxtec.cpp'
class spyhuntertec_state : public driver_device
{
public:
- spyhuntertec_state(const machine_config &mconfig, device_type type, const char *tag)
- : driver_device(mconfig, type, tag),
+ spyhuntertec_state(const machine_config &mconfig, device_type type, const char *tag) :
+ driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"),
m_audiocpu(*this, "audiocpu"),
m_analog_timer(*this, "analog_timer"),
@@ -242,10 +242,10 @@ TILE_GET_INFO_MEMBER(spyhuntertec_state::spyhunt_get_alpha_tile_info)
void spyhuntertec_state::video_start()
{
/* initialize the background tilemap */
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(spyhuntertec_state::spyhunt_get_bg_tile_info),this), tilemap_mapper_delegate(FUNC(spyhuntertec_state::spyhunt_bg_scan),this), 64,16, 64,32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(spyhuntertec_state::spyhunt_get_bg_tile_info)), tilemap_mapper_delegate(*this, FUNC(spyhuntertec_state::spyhunt_bg_scan)), 64,16, 64,32);
/* initialize the text tilemap */
- m_alpha_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(spyhuntertec_state::spyhunt_get_alpha_tile_info),this), TILEMAP_SCAN_COLS, 16,8, 32,32);
+ m_alpha_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(spyhuntertec_state::spyhunt_get_alpha_tile_info)), TILEMAP_SCAN_COLS, 16,8, 32,32);
m_alpha_tilemap->set_transparent_pen(0);
m_alpha_tilemap->set_scrollx(0, 16);
diff --git a/src/mame/drivers/squale.cpp b/src/mame/drivers/squale.cpp
index 65c33c5cd0b..08d83bec5de 100644
--- a/src/mame/drivers/squale.cpp
+++ b/src/mame/drivers/squale.cpp
@@ -840,7 +840,7 @@ void squale_state::squale(machine_config &config)
SOFTWARE_LIST(config, "flop525_list").set_original("squale");
/* Cartridge slot */
- GENERIC_CARTSLOT(config, "cartslot", generic_linear_slot, "squale_cart").set_device_load(FUNC(squale_state::cart_load), this);
+ GENERIC_CARTSLOT(config, "cartslot", generic_linear_slot, "squale_cart").set_device_load(FUNC(squale_state::cart_load));
SOFTWARE_LIST(config, "cart_list").set_original("squale_cart");
}
diff --git a/src/mame/drivers/srmp2.cpp b/src/mame/drivers/srmp2.cpp
index fd7352d610e..100d4cd35a7 100644
--- a/src/mame/drivers/srmp2.cpp
+++ b/src/mame/drivers/srmp2.cpp
@@ -1188,7 +1188,7 @@ void srmp2_state::srmp3(machine_config &config)
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag("gfxdecode");
- m_seta001->set_gfxbank_callback(FUNC(srmp2_state::srmp3_gfxbank_callback), this);
+ m_seta001->set_gfxbank_callback(FUNC(srmp2_state::srmp3_gfxbank_callback));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
@@ -1240,7 +1240,7 @@ void srmp2_state::mjyuugi(machine_config &config)
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag("gfxdecode");
- m_seta001->set_gfxbank_callback(FUNC(srmp2_state::srmp3_gfxbank_callback), this);
+ m_seta001->set_gfxbank_callback(FUNC(srmp2_state::srmp3_gfxbank_callback));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
diff --git a/src/mame/drivers/ssem.cpp b/src/mame/drivers/ssem.cpp
index 98b2927edeb..62b543c48cf 100644
--- a/src/mame/drivers/ssem.cpp
+++ b/src/mame/drivers/ssem.cpp
@@ -648,7 +648,7 @@ void ssem_state::ssem(machine_config &config)
PALETTE(config, "palette", palette_device::MONOCHROME);
/* quickload */
- QUICKLOAD(config, "quickload", "snp,asm").set_load_callback(FUNC(ssem_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "snp,asm").set_load_callback(FUNC(ssem_state::quickload_cb));
}
diff --git a/src/mame/drivers/sshangha.cpp b/src/mame/drivers/sshangha.cpp
index ae800c6bc95..673de4f8907 100644
--- a/src/mame/drivers/sshangha.cpp
+++ b/src/mame/drivers/sshangha.cpp
@@ -443,8 +443,8 @@ void sshangha_state::sshangha(machine_config &config)
m_tilegen->set_pf2_col_bank(0x20);
m_tilegen->set_pf1_col_mask(0x0f);
m_tilegen->set_pf2_col_mask(0x0f);
- m_tilegen->set_bank1_callback(FUNC(sshangha_state::bank_callback), this);
- m_tilegen->set_bank2_callback(FUNC(sshangha_state::bank_callback), this);
+ m_tilegen->set_bank1_callback(FUNC(sshangha_state::bank_callback));
+ m_tilegen->set_bank2_callback(FUNC(sshangha_state::bank_callback));
m_tilegen->set_pf12_8x8_bank(0);
m_tilegen->set_pf12_16x16_bank(1);
m_tilegen->set_gfxdecode_tag("gfxdecode");
diff --git a/src/mame/drivers/sshot.cpp b/src/mame/drivers/sshot.cpp
index 0cfeabd8617..2facbbdaf4a 100644
--- a/src/mame/drivers/sshot.cpp
+++ b/src/mame/drivers/sshot.cpp
@@ -212,7 +212,7 @@ TILE_GET_INFO_MEMBER(supershot_state::get_supershot_text_tile_info)
void supershot_state::video_start()
{
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(supershot_state::get_supershot_text_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(supershot_state::get_supershot_text_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
uint32_t supershot_state::screen_update_supershot(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
diff --git a/src/mame/drivers/ssingles.cpp b/src/mame/drivers/ssingles.cpp
index 01681aef641..bf6df8a76e3 100644
--- a/src/mame/drivers/ssingles.cpp
+++ b/src/mame/drivers/ssingles.cpp
@@ -571,7 +571,7 @@ void ssingles_state::ssingles(machine_config &config)
crtc.set_screen("screen");
crtc.set_show_border_area(false);
crtc.set_char_width(8);
- crtc.set_update_row_callback(FUNC(ssingles_state::ssingles_update_row), this);
+ crtc.set_update_row_callback(FUNC(ssingles_state::ssingles_update_row));
crtc.out_vsync_callback().set_inputline(m_maincpu, INPUT_LINE_NMI);
/* sound hardware */
@@ -595,7 +595,7 @@ void ssingles_state::atamanot(machine_config &config)
m_maincpu->set_addrmap(AS_IO, &ssingles_state::atamanot_io_map);
mc6845_device &crtc(*subdevice<mc6845_device>("crtc"));
- crtc.set_update_row_callback(FUNC(ssingles_state::atamanot_update_row), this);
+ crtc.set_update_row_callback(FUNC(ssingles_state::atamanot_update_row));
crtc.out_vsync_callback().set(FUNC(ssingles_state::atamanot_irq));
subdevice<gfxdecode_device>("gfxdecode")->set_info(gfx_atamanot);
diff --git a/src/mame/drivers/stadhero.cpp b/src/mame/drivers/stadhero.cpp
index c5b66a9551a..de0bc01baa3 100644
--- a/src/mame/drivers/stadhero.cpp
+++ b/src/mame/drivers/stadhero.cpp
@@ -60,7 +60,7 @@ void stadhero_state::main_map(address_map &map)
map(0x240010, 0x240017).w(m_tilegen, FUNC(deco_bac06_device::pf_control_1_w));
map(0x260000, 0x261fff).rw(m_tilegen, FUNC(deco_bac06_device::pf_data_r), FUNC(deco_bac06_device::pf_data_w));
map(0x30c000, 0x30c001).portr("INPUTS");
- map(0x30c002, 0x30c002).lr8("30c002", [this]() { return uint8_t(m_coin->read()); });
+ map(0x30c002, 0x30c002).lr8(NAME([this] () { return uint8_t(m_coin->read()); }));
map(0x30c003, 0x30c003).r(FUNC(stadhero_state::mystery_r));
map(0x30c004, 0x30c005).portr("DSW").w(FUNC(stadhero_state::int_ack_w));
map(0x30c007, 0x30c007).w(m_soundlatch, FUNC(generic_latch_8_device::write));
diff --git a/src/mame/drivers/starfire.cpp b/src/mame/drivers/starfire.cpp
index 18175becd56..cd7bc37214d 100644
--- a/src/mame/drivers/starfire.cpp
+++ b/src/mame/drivers/starfire.cpp
@@ -450,8 +450,8 @@ ROM_END
void starfire_state::init_starfire()
{
- m_input_read = read8_delegate(FUNC(starfire_state::starfire_input_r),this);
- m_io2_write = write8_delegate(FUNC(starfire_state::starfire_sound_w),this);
+ m_input_read = read8_delegate(*this, FUNC(starfire_state::starfire_input_r));
+ m_io2_write = write8_delegate(*this, FUNC(starfire_state::starfire_sound_w));
/* register for state saving */
save_item(NAME(m_prev_sound));
@@ -459,8 +459,8 @@ void starfire_state::init_starfire()
void starfire_state::init_fireone()
{
- m_input_read = read8_delegate(FUNC(starfire_state::fireone_input_r),this);
- m_io2_write = write8_delegate(FUNC(starfire_state::fireone_sound_w),this);
+ m_input_read = read8_delegate(*this, FUNC(starfire_state::fireone_input_r));
+ m_io2_write = write8_delegate(*this, FUNC(starfire_state::fireone_sound_w));
/* register for state saving */
save_item(NAME(m_fireone_select));
diff --git a/src/mame/drivers/statriv2.cpp b/src/mame/drivers/statriv2.cpp
index bf6c4c836cb..a7edc0ff4a4 100644
--- a/src/mame/drivers/statriv2.cpp
+++ b/src/mame/drivers/statriv2.cpp
@@ -187,12 +187,12 @@ void statriv2_state::statriv2_palette(palette_device &palette) const
void statriv2_state::video_start()
{
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(statriv2_state::horizontal_tile_info), this), TILEMAP_SCAN_ROWS, 8, 15, 64, 16);
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(statriv2_state::horizontal_tile_info)), TILEMAP_SCAN_ROWS, 8, 15, 64, 16);
}
VIDEO_START_MEMBER(statriv2_state,vertical)
{
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(statriv2_state::vertical_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(statriv2_state::vertical_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
@@ -1698,18 +1698,18 @@ void statriv2_state::init_laserdisc()
{
address_space &iospace = m_maincpu->space(AS_IO);
iospace.install_readwrite_handler(0x28, 0x2b,
- read8_delegate([this](address_space &space, offs_t offset, uint8_t mem_mask) -> uint8_t
+ read8_delegate(*this, NAME([this] (address_space &space, offs_t offset, uint8_t mem_mask) -> uint8_t
{
uint8_t result = 0x00;
if (offset == 1)
result = 0x18;
logerror("%s:ld read ($%02X) = %02X\n", machine().describe_context(), 0x28 + offset, result);
return result;
- },"write_lambda"),
- write8_delegate([this](address_space &space, offs_t offset, uint8_t data, uint8_t mem_mask)
+ })),
+ write8_delegate(*this, NAME([this] (address_space &space, offs_t offset, uint8_t data, uint8_t mem_mask)
{
logerror("%s:ld write ($%02X) = %02X\n", machine().describe_context(), 0x28 + offset, data);
- },"read_lambda")
+ }))
);
}
diff --git a/src/mame/drivers/storio.cpp b/src/mame/drivers/storio.cpp
index 74037d65289..430c9ef7e9a 100644
--- a/src/mame/drivers/storio.cpp
+++ b/src/mame/drivers/storio.cpp
@@ -105,7 +105,7 @@ void vtech_storio_state::vtech_storio(machine_config &config)
GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "vtech_storio_cart");
m_cart->set_width(GENERIC_ROM16_WIDTH);
- m_cart->set_device_load(FUNC(vtech_storio_state::cart_load), this);
+ m_cart->set_device_load(FUNC(vtech_storio_state::cart_load));
SOFTWARE_LIST(config, "cart_list").set_original("vtech_storio_cart");
}
diff --git a/src/mame/drivers/studio2.cpp b/src/mame/drivers/studio2.cpp
index a240f8d3e2d..8707fbf2ab2 100644
--- a/src/mame/drivers/studio2.cpp
+++ b/src/mame/drivers/studio2.cpp
@@ -530,9 +530,9 @@ void studio2_state::machine_start()
if (m_cart->exists())
{
// these have to be installed only if a cart is present, because they partially overlap the built-in game
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x0400, 0x07ff, read8_delegate(FUNC(studio2_state::cart_400), this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x0a00, 0x0bff, read8_delegate(FUNC(studio2_state::cart_a00), this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x0e00, 0x0fff, read8_delegate(FUNC(studio2_state::cart_e00), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x0400, 0x07ff, read8_delegate(*this, FUNC(studio2_state::cart_400)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x0a00, 0x0bff, read8_delegate(*this, FUNC(studio2_state::cart_a00)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x0e00, 0x0fff, read8_delegate(*this, FUNC(studio2_state::cart_e00)));
}
// register for state saving
@@ -544,8 +544,8 @@ void mpt02_state::machine_start()
if (m_cart->exists())
{
// these have to be installed only if a cart is present, because they partially overlap the built-in game
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x0400, 0x07ff, read8_delegate(FUNC(studio2_state::cart_400), this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x0c00, 0x0fff, read8_delegate(FUNC(mpt02_state::cart_c00), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x0400, 0x07ff, read8_delegate(*this, FUNC(studio2_state::cart_400)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x0c00, 0x0fff, read8_delegate(*this, FUNC(mpt02_state::cart_c00)));
}
// register for state saving
@@ -647,7 +647,7 @@ DEVICE_IMAGE_LOAD_MEMBER( studio2_state::cart_load )
void studio2_state::studio2_cartslot(machine_config &config)
{
- GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "studio2_cart", "st2,bin,rom").set_device_load(FUNC(studio2_state::cart_load), this);
+ GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "studio2_cart", "st2,bin,rom").set_device_load(FUNC(studio2_state::cart_load));
/* software lists */
SOFTWARE_LIST(config, "cart_list").set_original("studio2");
diff --git a/src/mame/drivers/stuntair.cpp b/src/mame/drivers/stuntair.cpp
index 90595acce81..18b6dd82451 100644
--- a/src/mame/drivers/stuntair.cpp
+++ b/src/mame/drivers/stuntair.cpp
@@ -207,10 +207,10 @@ TILE_GET_INFO_MEMBER(stuntair_state::get_stuntair_bg_tile_info)
void stuntair_state::video_start()
{
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(stuntair_state::get_stuntair_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(stuntair_state::get_stuntair_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(0);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(stuntair_state::get_stuntair_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(stuntair_state::get_stuntair_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
diff --git a/src/mame/drivers/stv.cpp b/src/mame/drivers/stv.cpp
index 7880b82b229..5ef8a6f6f68 100644
--- a/src/mame/drivers/stv.cpp
+++ b/src/mame/drivers/stv.cpp
@@ -435,8 +435,8 @@ void stv_state::init_stv()
m_maincpu->sh2drc_set_options(SH2DRC_STRICT_VERIFY|SH2DRC_STRICT_PCREL);
m_slave->sh2drc_set_options(SH2DRC_STRICT_VERIFY|SH2DRC_STRICT_PCREL);
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x00400000, 0x0040003f, read32_delegate(FUNC(stv_state::stv_ioga_r32),this), write32_delegate(FUNC(stv_state::stv_ioga_w32),this));
- m_slave->space(AS_PROGRAM).install_readwrite_handler(0x00400000, 0x0040003f, read32_delegate(FUNC(stv_state::stv_ioga_r32),this), write32_delegate(FUNC(stv_state::stv_ioga_w32),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x00400000, 0x0040003f, read32_delegate(*this, FUNC(stv_state::stv_ioga_r32)), write32_delegate(*this, FUNC(stv_state::stv_ioga_w32)));
+ m_slave->space(AS_PROGRAM).install_readwrite_handler(0x00400000, 0x0040003f, read32_delegate(*this, FUNC(stv_state::stv_ioga_r32)), write32_delegate(*this, FUNC(stv_state::stv_ioga_w32)));
m_maincpu->sh2drc_add_fastram(0x00000000, 0x0007ffff, 1, &m_rom[0]);
m_maincpu->sh2drc_add_fastram(0x00200000, 0x002fffff, 0, &m_workram_l[0]);
@@ -451,8 +451,8 @@ void stv_state::init_stv()
void stv_state::init_critcrsh()
{
init_stv();
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x00400000, 0x0040003f, read32_delegate(FUNC(stv_state::critcrsh_ioga_r32),this), write32_delegate(FUNC(stv_state::stv_ioga_w32),this));
- m_slave->space(AS_PROGRAM).install_readwrite_handler(0x00400000, 0x0040003f, read32_delegate(FUNC(stv_state::critcrsh_ioga_r32),this), write32_delegate(FUNC(stv_state::stv_ioga_w32),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x00400000, 0x0040003f, read32_delegate(*this, FUNC(stv_state::critcrsh_ioga_r32)), write32_delegate(*this, FUNC(stv_state::stv_ioga_w32)));
+ m_slave->space(AS_PROGRAM).install_readwrite_handler(0x00400000, 0x0040003f, read32_delegate(*this, FUNC(stv_state::critcrsh_ioga_r32)), write32_delegate(*this, FUNC(stv_state::stv_ioga_w32)));
}
/*
@@ -487,11 +487,11 @@ void stv_state::init_magzun()
init_stv();
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x00400000, 0x0040003f, read32_delegate(FUNC(stv_state::magzun_ioga_r32),this), write32_delegate(FUNC(stv_state::magzun_ioga_w32),this));
- m_slave->space(AS_PROGRAM).install_readwrite_handler(0x00400000, 0x0040003f, read32_delegate(FUNC(stv_state::magzun_ioga_r32),this), write32_delegate(FUNC(stv_state::magzun_ioga_w32),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x00400000, 0x0040003f, read32_delegate(*this, FUNC(stv_state::magzun_ioga_r32)), write32_delegate(*this, FUNC(stv_state::magzun_ioga_w32)));
+ m_slave->space(AS_PROGRAM).install_readwrite_handler(0x00400000, 0x0040003f, read32_delegate(*this, FUNC(stv_state::magzun_ioga_r32)), write32_delegate(*this, FUNC(stv_state::magzun_ioga_w32)));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x608e830, 0x608e833, read32_delegate(FUNC(stv_state::magzun_hef_hack_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x60ff3b4, 0x60ff3b7, read32_delegate(FUNC(stv_state::magzun_rx_hack_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x608e830, 0x608e833, read32_delegate(*this, FUNC(stv_state::magzun_hef_hack_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x60ff3b4, 0x60ff3b7, read32_delegate(*this, FUNC(stv_state::magzun_rx_hack_r)));
/* Program ROM patches, don't understand how to avoid these two checks ... */
{
@@ -507,8 +507,8 @@ void stv_state::init_magzun()
void stv_state::init_stvmp()
{
init_stv();
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x00400000, 0x0040003f, read32_delegate(FUNC(stv_state::stvmp_ioga_r32),this), write32_delegate(FUNC(stv_state::stvmp_ioga_w32),this));
- m_slave->space(AS_PROGRAM).install_readwrite_handler(0x00400000, 0x0040003f, read32_delegate(FUNC(stv_state::stvmp_ioga_r32),this), write32_delegate(FUNC(stv_state::stvmp_ioga_w32),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x00400000, 0x0040003f, read32_delegate(*this, FUNC(stv_state::stvmp_ioga_r32)), write32_delegate(*this, FUNC(stv_state::stvmp_ioga_w32)));
+ m_slave->space(AS_PROGRAM).install_readwrite_handler(0x00400000, 0x0040003f, read32_delegate(*this, FUNC(stv_state::stvmp_ioga_r32)), write32_delegate(*this, FUNC(stv_state::stvmp_ioga_w32)));
}
@@ -761,8 +761,8 @@ void stv_state::init_batmanfr()
init_stv();
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x04800000, 0x04800003, write32_delegate(FUNC(stv_state::batmanfr_sound_comms_w),this));
- m_slave->space(AS_PROGRAM).install_write_handler(0x04800000, 0x04800003, write32_delegate(FUNC(stv_state::batmanfr_sound_comms_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x04800000, 0x04800003, write32_delegate(*this, FUNC(stv_state::batmanfr_sound_comms_w)));
+ m_slave->space(AS_PROGRAM).install_write_handler(0x04800000, 0x04800003, write32_delegate(*this, FUNC(stv_state::batmanfr_sound_comms_w)));
m_minit_boost = m_sinit_boost = 0;
m_minit_boost_timeslice = m_sinit_boost_timeslice = attotime::from_usec(50);
@@ -992,12 +992,12 @@ WRITE32_MEMBER(stv_state::decathlt_prot_srcaddr_w)
void stv_state::init_decathlt()
{
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x2000000, 0x37fffff, write32_delegate(FUNC(stv_state::decathlt_prot_srcaddr_w), this)); // set compressed data source address, write data
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x2000000, 0x37fffff, write32_delegate(*this, FUNC(stv_state::decathlt_prot_srcaddr_w))); // set compressed data source address, write data
// really needs installing over the whole range, with fallbacks to read rom if device is disabled or isn't accessed on given address
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x27ffff8, 0x27ffffb, read32_delegate(FUNC(stv_state::decathlt_prot_r), this)); // read decompressed data
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x2fffff8, 0x2fffffb, read32_delegate(FUNC(stv_state::decathlt_prot_r), this)); // ^
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x37ffff8, 0x37ffffb, read32_delegate(FUNC(stv_state::decathlt_prot_r), this)); // ^
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x27ffff8, 0x27ffffb, read32_delegate(*this, FUNC(stv_state::decathlt_prot_r))); // read decompressed data
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x2fffff8, 0x2fffffb, read32_delegate(*this, FUNC(stv_state::decathlt_prot_r))); // ^
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x37ffff8, 0x37ffffb, read32_delegate(*this, FUNC(stv_state::decathlt_prot_r))); // ^
m_protbank->configure_entry(0, memregion("cart")->base() + 0x0000000);
m_protbank->configure_entry(1, memregion("cart")->base() + 0x0800000);
@@ -1028,8 +1028,8 @@ void stv_state::init_nameclv3()
void stv_state::init_hopper()
{
init_stv();
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x00400000, 0x0040003f, read32_delegate(FUNC(stv_state::stv_ioga_r32),this), write32_delegate(FUNC(stv_state::hop_ioga_w32),this));
- m_slave->space(AS_PROGRAM).install_readwrite_handler(0x00400000, 0x0040003f, read32_delegate(FUNC(stv_state::stv_ioga_r32),this), write32_delegate(FUNC(stv_state::hop_ioga_w32),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x00400000, 0x0040003f, read32_delegate(*this, FUNC(stv_state::stv_ioga_r32)), write32_delegate(*this, FUNC(stv_state::hop_ioga_w32)));
+ m_slave->space(AS_PROGRAM).install_readwrite_handler(0x00400000, 0x0040003f, read32_delegate(*this, FUNC(stv_state::stv_ioga_r32)), write32_delegate(*this, FUNC(stv_state::hop_ioga_w32)));
}
void stv_state::stv_mem(address_map &map)
@@ -1255,7 +1255,7 @@ void stv_state::shienryu(machine_config &config)
}
#define STV_CARTSLOT_ADD(_tag, _load) \
- GENERIC_CARTSLOT(config, _tag, generic_plain_slot, "stv_cart").set_device_load(FUNC(stv_state::_load), this);
+ GENERIC_CARTSLOT(config, _tag, generic_plain_slot, "stv_cart").set_device_load(FUNC(stv_state::_load));
void stv_state::stv_cartslot(machine_config &config)
{
@@ -1365,7 +1365,7 @@ MACHINE_START_MEMBER(stv_state, stv)
stv_register_protection_savestates(); // machine/stvprot.c
- m_audiocpu->set_reset_callback(write_line_delegate(FUNC(stv_state::m68k_reset_callback),this));
+ m_audiocpu->set_reset_callback(*this, FUNC(stv_state::m68k_reset_callback));
}
diff --git a/src/mame/drivers/subsino.cpp b/src/mame/drivers/subsino.cpp
index 2099f1a6294..331eb20bde6 100644
--- a/src/mame/drivers/subsino.cpp
+++ b/src/mame/drivers/subsino.cpp
@@ -400,7 +400,7 @@ TILE_GET_INFO_MEMBER(subsino_state::get_stbsub_tile_info)
VIDEO_START_MEMBER(subsino_state,subsino)
{
- m_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(subsino_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8,8, 0x40,0x20);
+ m_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(subsino_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 0x40,0x20);
m_tmap->set_transparent_pen(0 );
m_tiles_offset = 0;
}
@@ -442,9 +442,9 @@ VIDEO_START_MEMBER(subsino_state, reels)
{
VIDEO_START_CALL_MEMBER( subsino );
- m_reel_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(subsino_state::get_reel_tile_info<0>), this), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
- m_reel_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(subsino_state::get_reel_tile_info<1>), this), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
- m_reel_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(subsino_state::get_reel_tile_info<2>), this), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
+ m_reel_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(subsino_state::get_reel_tile_info<0>)), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
+ m_reel_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(subsino_state::get_reel_tile_info<1>)), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
+ m_reel_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(subsino_state::get_reel_tile_info<2>)), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
m_reel_tilemap[0]->set_scroll_cols(64);
m_reel_tilemap[1]->set_scroll_cols(64);
@@ -454,12 +454,12 @@ VIDEO_START_MEMBER(subsino_state, reels)
VIDEO_START_MEMBER(subsino_state,stbsub)
{
- m_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(subsino_state::get_stbsub_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 0x40, 0x20);
+ m_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(subsino_state::get_stbsub_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 0x40, 0x20);
m_tmap->set_transparent_pen(0 );
- m_reel_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(subsino_state::get_stbsub_reel_tile_info<0>), this), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
- m_reel_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(subsino_state::get_stbsub_reel_tile_info<1>), this), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
- m_reel_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(subsino_state::get_stbsub_reel_tile_info<2>), this), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
+ m_reel_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(subsino_state::get_stbsub_reel_tile_info<0>)), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
+ m_reel_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(subsino_state::get_stbsub_reel_tile_info<1>)), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
+ m_reel_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(subsino_state::get_stbsub_reel_tile_info<2>)), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
m_reel_tilemap[0]->set_scroll_cols(64);
m_reel_tilemap[1]->set_scroll_cols(64);
diff --git a/src/mame/drivers/subsino2.cpp b/src/mame/drivers/subsino2.cpp
index ebe52744268..7818c36cf2a 100644
--- a/src/mame/drivers/subsino2.cpp
+++ b/src/mame/drivers/subsino2.cpp
@@ -688,8 +688,8 @@ void subsino2_state::video_start()
layer_t *l = &m_layers[i];
l->tmap = &machine().tilemap().create(*m_gfxdecode, i ?
- tilemap_get_info_delegate(FUNC(subsino2_state::ss9601_get_tile_info_1),this) :
- tilemap_get_info_delegate(FUNC(subsino2_state::ss9601_get_tile_info_0),this),
+ tilemap_get_info_delegate(*this, FUNC(subsino2_state::ss9601_get_tile_info_1)) :
+ tilemap_get_info_delegate(*this, FUNC(subsino2_state::ss9601_get_tile_info_0)),
TILEMAP_SCAN_ROWS, 8,8, 0x80,0x40);
l->tmap->set_transparent_pen(0);
diff --git a/src/mame/drivers/supduck.cpp b/src/mame/drivers/supduck.cpp
index 4975b2bb9c3..0c7a5416c83 100644
--- a/src/mame/drivers/supduck.cpp
+++ b/src/mame/drivers/supduck.cpp
@@ -123,10 +123,10 @@ TILEMAP_MAPPER_MEMBER(supduck_state::supduk_tilemap_scan)
void supduck_state::video_start()
{
- m_text_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(supduck_state::get_text_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_text_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(supduck_state::get_text_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_fore_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(supduck_state::get_fore_tile_info),this), tilemap_mapper_delegate(FUNC(supduck_state::supduk_tilemap_scan),this), 32, 32, 128,64);
- m_back_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(supduck_state::get_back_tile_info),this), tilemap_mapper_delegate(FUNC(supduck_state::supduk_tilemap_scan),this), 32, 32, 128,64);
+ m_fore_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(supduck_state::get_fore_tile_info)), tilemap_mapper_delegate(*this, FUNC(supduck_state::supduk_tilemap_scan)), 32, 32, 128,64);
+ m_back_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(supduck_state::get_back_tile_info)), tilemap_mapper_delegate(*this, FUNC(supduck_state::supduk_tilemap_scan)), 32, 32, 128,64);
m_text_tilemap->set_transparent_pen(0x3);
m_fore_tilemap->set_transparent_pen(0xf);
diff --git a/src/mame/drivers/super80.cpp b/src/mame/drivers/super80.cpp
index bd9e74991df..877741406cf 100644
--- a/src/mame/drivers/super80.cpp
+++ b/src/mame/drivers/super80.cpp
@@ -750,7 +750,7 @@ void super80_state::super80(machine_config &config)
INPUT_BUFFER(config, "cent_status_in", 0);
/* quickload */
- QUICKLOAD(config, "quickload", "bin", attotime::from_seconds(3)).set_load_callback(FUNC(super80_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "bin", attotime::from_seconds(3)).set_load_callback(FUNC(super80_state::quickload_cb));
/* cassette */
CASSETTE(config, m_cassette);
@@ -833,7 +833,7 @@ void super80_state::super80v(machine_config &config)
m_crtc->set_screen("screen");
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(SUPER80V_DOTS);
- m_crtc->set_update_row_callback(FUNC(super80_state::crtc_update_row), this);
+ m_crtc->set_update_row_callback(FUNC(super80_state::crtc_update_row));
config.set_default_layout(layout_super80);
@@ -855,7 +855,7 @@ void super80_state::super80v(machine_config &config)
INPUT_BUFFER(config, "cent_status_in", 0);
/* quickload */
- QUICKLOAD(config, "quickload", "bin", attotime::from_seconds(3)).set_load_callback(FUNC(super80_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "bin", attotime::from_seconds(3)).set_load_callback(FUNC(super80_state::quickload_cb));
/* cassette */
CASSETTE(config, m_cassette);
diff --git a/src/mame/drivers/superchs.cpp b/src/mame/drivers/superchs.cpp
index 1de84063936..cb9598c0481 100644
--- a/src/mame/drivers/superchs.cpp
+++ b/src/mame/drivers/superchs.cpp
@@ -551,8 +551,8 @@ READ16_MEMBER(superchs_state::sub_cycle_r)
void superchs_state::init_superchs()
{
/* Speedup handlers */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x100000, 0x100003, read32_delegate(FUNC(superchs_state::main_cycle_r),this));
- m_subcpu->space(AS_PROGRAM).install_read_handler(0x80000a, 0x80000b, read16_delegate(FUNC(superchs_state::sub_cycle_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x100000, 0x100003, read32_delegate(*this, FUNC(superchs_state::main_cycle_r)));
+ m_subcpu->space(AS_PROGRAM).install_read_handler(0x80000a, 0x80000b, read16_delegate(*this, FUNC(superchs_state::sub_cycle_r)));
}
GAMEL( 1992, superchs, 0, superchs, superchs, superchs_state, init_superchs, ROT0, "Taito Corporation Japan", "Super Chase - Criminal Termination (World)", 0, layout_superchs ) // 1993/02/16 11:39:36 SUPER CHASE VER 1.2O
diff --git a/src/mame/drivers/supercrd.cpp b/src/mame/drivers/supercrd.cpp
index 09863f403fb..cd275e71201 100644
--- a/src/mame/drivers/supercrd.cpp
+++ b/src/mame/drivers/supercrd.cpp
@@ -280,7 +280,7 @@ TILE_GET_INFO_MEMBER(supercrd_state::get_bg_tile_info)
void supercrd_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(supercrd_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 4, 8, 96, 29);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(supercrd_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 4, 8, 96, 29);
}
diff --git a/src/mame/drivers/superdq.cpp b/src/mame/drivers/superdq.cpp
index ddaecea02b7..fda97f7601a 100644
--- a/src/mame/drivers/superdq.cpp
+++ b/src/mame/drivers/superdq.cpp
@@ -85,7 +85,7 @@ TILE_GET_INFO_MEMBER(superdq_state::get_tile_info)
void superdq_state::video_start()
{
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(superdq_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(superdq_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
uint32_t superdq_state::screen_update_superdq(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
diff --git a/src/mame/drivers/superwng.cpp b/src/mame/drivers/superwng.cpp
index 54eb52208b8..1b2509ecab9 100644
--- a/src/mame/drivers/superwng.cpp
+++ b/src/mame/drivers/superwng.cpp
@@ -150,8 +150,8 @@ TILE_GET_INFO_MEMBER(superwng_state::get_fg_tile_info)
void superwng_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(superwng_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(superwng_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(superwng_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(superwng_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_bg_tilemap->set_scrollx(0, 64);
}
diff --git a/src/mame/drivers/supracan.cpp b/src/mame/drivers/supracan.cpp
index 70a4e6d54ec..8203aae4d12 100644
--- a/src/mame/drivers/supracan.cpp
+++ b/src/mame/drivers/supracan.cpp
@@ -440,25 +440,25 @@ void supracan_state::video_start()
m_gfxdecode->gfx(4)->set_source(&m_vram_addr_swapped[0]);
m_gfxdecode->gfx(4)->set_xormask(0);
- m_tilemap_sizes[0][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(supracan_state::get_tilemap0_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_tilemap_sizes[0][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(supracan_state::get_tilemap0_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_tilemap_sizes[0][2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(supracan_state::get_tilemap0_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 128, 32);
- m_tilemap_sizes[0][3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(supracan_state::get_tilemap0_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
-
- m_tilemap_sizes[1][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(supracan_state::get_tilemap1_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_tilemap_sizes[1][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(supracan_state::get_tilemap1_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_tilemap_sizes[1][2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(supracan_state::get_tilemap1_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 128, 32);
- m_tilemap_sizes[1][3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(supracan_state::get_tilemap1_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
-
- m_tilemap_sizes[2][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(supracan_state::get_tilemap2_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_tilemap_sizes[2][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(supracan_state::get_tilemap2_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_tilemap_sizes[2][2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(supracan_state::get_tilemap2_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 128, 32);
- m_tilemap_sizes[2][3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(supracan_state::get_tilemap2_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
-
- m_tilemap_sizes[3][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(supracan_state::get_roz_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_tilemap_sizes[3][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(supracan_state::get_roz_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_tilemap_sizes[3][2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(supracan_state::get_roz_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 128, 32);
- m_tilemap_sizes[3][3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(supracan_state::get_roz_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap_sizes[0][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(supracan_state::get_tilemap0_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_tilemap_sizes[0][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(supracan_state::get_tilemap0_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tilemap_sizes[0][2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(supracan_state::get_tilemap0_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 128, 32);
+ m_tilemap_sizes[0][3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(supracan_state::get_tilemap0_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+
+ m_tilemap_sizes[1][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(supracan_state::get_tilemap1_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_tilemap_sizes[1][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(supracan_state::get_tilemap1_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tilemap_sizes[1][2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(supracan_state::get_tilemap1_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 128, 32);
+ m_tilemap_sizes[1][3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(supracan_state::get_tilemap1_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+
+ m_tilemap_sizes[2][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(supracan_state::get_tilemap2_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_tilemap_sizes[2][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(supracan_state::get_tilemap2_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tilemap_sizes[2][2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(supracan_state::get_tilemap2_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 128, 32);
+ m_tilemap_sizes[2][3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(supracan_state::get_tilemap2_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+
+ m_tilemap_sizes[3][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(supracan_state::get_roz_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_tilemap_sizes[3][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(supracan_state::get_roz_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tilemap_sizes[3][2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(supracan_state::get_roz_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 128, 32);
+ m_tilemap_sizes[3][3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(supracan_state::get_roz_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
}
int supracan_state::get_tilemap_dimensions(int &xsize, int &ysize, int layer)
@@ -1952,7 +1952,7 @@ void supracan_state::machine_start()
m_line_off_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(supracan_state::line_off_callback), this));
if (m_cart->exists())
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x000000, 0x3fffff, read16s_delegate(FUNC(generic_slot_device::read16_rom),(generic_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x000000, 0x3fffff, read16s_delegate(*m_cart, FUNC(generic_slot_device::read16_rom)));
}
@@ -2089,7 +2089,7 @@ void supracan_state::supracan(machine_config &config)
generic_cartslot_device &cartslot(GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "supracan_cart"));
cartslot.set_width(GENERIC_ROM16_WIDTH);
cartslot.set_endian(ENDIANNESS_BIG);
- cartslot.set_device_load(FUNC(supracan_state::cart_load), this);
+ cartslot.set_device_load(FUNC(supracan_state::cart_load));
SOFTWARE_LIST(config, "cart_list").set_original("supracan");
}
diff --git a/src/mame/drivers/suprgolf.cpp b/src/mame/drivers/suprgolf.cpp
index 45b4915cd77..1f04a90fcbe 100644
--- a/src/mame/drivers/suprgolf.cpp
+++ b/src/mame/drivers/suprgolf.cpp
@@ -114,7 +114,7 @@ TILE_GET_INFO_MEMBER(suprgolf_state::get_tile_info)
void suprgolf_state::video_start()
{
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(suprgolf_state::get_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32 );
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(suprgolf_state::get_tile_info)), TILEMAP_SCAN_ROWS,8,8,32,32 );
m_paletteram = std::make_unique<uint8_t[]>(0x1000);
m_bg_vram = std::make_unique<uint8_t[]>(0x2000*0x20);
m_bg_fb = std::make_unique<uint16_t[]>(0x2000*0x20);
diff --git a/src/mame/drivers/suprnova.cpp b/src/mame/drivers/suprnova.cpp
index 1255842b58a..7f1dedb1a95 100644
--- a/src/mame/drivers/suprnova.cpp
+++ b/src/mame/drivers/suprnova.cpp
@@ -1019,21 +1019,21 @@ void skns_state::set_drc_pcflush(uint32_t addr)
void skns_state::init_galpani4() { m_spritegen->skns_sprite_kludge(-5,-1); init_drc(); }
void skns_state::init_galpanis() { m_spritegen->skns_sprite_kludge(-5,-1); init_drc(); }
-void skns_state::init_cyvern() { m_spritegen->skns_sprite_kludge(+0,+2); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x604d3c8, 0x604d3cb, read32_delegate(FUNC(skns_state::cyvern_speedup_r),this) ); set_drc_pcflush(0x402ebd2); }
-void skns_state::init_galpans2() { m_spritegen->skns_sprite_kludge(-1,-1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x60fb6bc, 0x60fb6bf, read32_delegate(FUNC(skns_state::galpans2_speedup_r),this) ); set_drc_pcflush(0x4049ae2); }
-void skns_state::init_gutsn() { m_spritegen->skns_sprite_kludge(+0,+0); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x600c780, 0x600c783, read32_delegate(FUNC(skns_state::gutsn_speedup_r),this) ); set_drc_pcflush(0x402206e); }
-void skns_state::init_panicstr() { m_spritegen->skns_sprite_kludge(-1,-1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x60f19e4, 0x60f19e7, read32_delegate(FUNC(skns_state::panicstr_speedup_r),this) ); set_drc_pcflush(0x404e68a); }
-void skns_state::init_senknow() { m_spritegen->skns_sprite_kludge(+1,+1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x60000dc, 0x60000df, read32_delegate(FUNC(skns_state::senknow_speedup_r),this) ); set_drc_pcflush(0x4017dce); }
-void skns_state::init_puzzloope() { m_spritegen->skns_sprite_kludge(-9,-1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x6081d38, 0x6081d3b, read32_delegate(FUNC(skns_state::puzzloope_speedup_r),this) ); set_drc_pcflush(0x401da14); }
-void skns_state::init_puzzloopj() { m_spritegen->skns_sprite_kludge(-9,-1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x6086714, 0x6086717, read32_delegate(FUNC(skns_state::puzzloopj_speedup_r),this) ); set_drc_pcflush(0x401dca0); }
-void skns_state::init_puzzloopa() { m_spritegen->skns_sprite_kludge(-9,-1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x6085bcc, 0x6085bcf, read32_delegate(FUNC(skns_state::puzzloopa_speedup_r),this) ); set_drc_pcflush(0x401d9d4); }
-void skns_state::init_puzzloopu() { m_spritegen->skns_sprite_kludge(-9,-1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x6085cec, 0x6085cef, read32_delegate(FUNC(skns_state::puzzloopu_speedup_r),this) ); set_drc_pcflush(0x401dab0); }
-void skns_state::init_jjparads() { m_spritegen->skns_sprite_kludge(+5,+1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x6000994, 0x6000997, read32_delegate(FUNC(skns_state::jjparads_speedup_r),this) ); set_drc_pcflush(0x4015e84); }
-void skns_state::init_jjparad2() { m_spritegen->skns_sprite_kludge(+5,+1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x6000984, 0x6000987, read32_delegate(FUNC(skns_state::jjparad2_speedup_r),this) ); set_drc_pcflush(0x401620a); }
-void skns_state::init_ryouran() { m_spritegen->skns_sprite_kludge(+5,+1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x6000a14, 0x6000a17, read32_delegate(FUNC(skns_state::ryouran_speedup_r),this) ); set_drc_pcflush(0x40182ce); }
-void skns_state::init_teljan() { m_spritegen->skns_sprite_kludge(+5,+1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x6002fb4, 0x6002fb7, read32_delegate(FUNC(skns_state::teljan_speedup_r),this) ); set_drc_pcflush(0x401ba32); }
-void skns_state::init_sengekis() { m_spritegen->skns_sprite_kludge(-192,-272); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x60b74bc, 0x60b74bf, read32_delegate(FUNC(skns_state::sengekis_speedup_r),this) ); set_drc_pcflush(0x60006ec); }
-void skns_state::init_sengekij() { m_spritegen->skns_sprite_kludge(-192,-272); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x60b7380, 0x60b7383, read32_delegate(FUNC(skns_state::sengekij_speedup_r),this) ); set_drc_pcflush(0x60006ec); }
+void skns_state::init_cyvern() { m_spritegen->skns_sprite_kludge(+0,+2); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x604d3c8, 0x604d3cb, read32_delegate(*this, FUNC(skns_state::cyvern_speedup_r)) ); set_drc_pcflush(0x402ebd2); }
+void skns_state::init_galpans2() { m_spritegen->skns_sprite_kludge(-1,-1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x60fb6bc, 0x60fb6bf, read32_delegate(*this, FUNC(skns_state::galpans2_speedup_r)) ); set_drc_pcflush(0x4049ae2); }
+void skns_state::init_gutsn() { m_spritegen->skns_sprite_kludge(+0,+0); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x600c780, 0x600c783, read32_delegate(*this, FUNC(skns_state::gutsn_speedup_r)) ); set_drc_pcflush(0x402206e); }
+void skns_state::init_panicstr() { m_spritegen->skns_sprite_kludge(-1,-1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x60f19e4, 0x60f19e7, read32_delegate(*this, FUNC(skns_state::panicstr_speedup_r)) ); set_drc_pcflush(0x404e68a); }
+void skns_state::init_senknow() { m_spritegen->skns_sprite_kludge(+1,+1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x60000dc, 0x60000df, read32_delegate(*this, FUNC(skns_state::senknow_speedup_r)) ); set_drc_pcflush(0x4017dce); }
+void skns_state::init_puzzloope() { m_spritegen->skns_sprite_kludge(-9,-1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x6081d38, 0x6081d3b, read32_delegate(*this, FUNC(skns_state::puzzloope_speedup_r)) ); set_drc_pcflush(0x401da14); }
+void skns_state::init_puzzloopj() { m_spritegen->skns_sprite_kludge(-9,-1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x6086714, 0x6086717, read32_delegate(*this, FUNC(skns_state::puzzloopj_speedup_r)) ); set_drc_pcflush(0x401dca0); }
+void skns_state::init_puzzloopa() { m_spritegen->skns_sprite_kludge(-9,-1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x6085bcc, 0x6085bcf, read32_delegate(*this, FUNC(skns_state::puzzloopa_speedup_r)) ); set_drc_pcflush(0x401d9d4); }
+void skns_state::init_puzzloopu() { m_spritegen->skns_sprite_kludge(-9,-1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x6085cec, 0x6085cef, read32_delegate(*this, FUNC(skns_state::puzzloopu_speedup_r)) ); set_drc_pcflush(0x401dab0); }
+void skns_state::init_jjparads() { m_spritegen->skns_sprite_kludge(+5,+1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x6000994, 0x6000997, read32_delegate(*this, FUNC(skns_state::jjparads_speedup_r)) ); set_drc_pcflush(0x4015e84); }
+void skns_state::init_jjparad2() { m_spritegen->skns_sprite_kludge(+5,+1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x6000984, 0x6000987, read32_delegate(*this, FUNC(skns_state::jjparad2_speedup_r)) ); set_drc_pcflush(0x401620a); }
+void skns_state::init_ryouran() { m_spritegen->skns_sprite_kludge(+5,+1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x6000a14, 0x6000a17, read32_delegate(*this, FUNC(skns_state::ryouran_speedup_r)) ); set_drc_pcflush(0x40182ce); }
+void skns_state::init_teljan() { m_spritegen->skns_sprite_kludge(+5,+1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x6002fb4, 0x6002fb7, read32_delegate(*this, FUNC(skns_state::teljan_speedup_r)) ); set_drc_pcflush(0x401ba32); }
+void skns_state::init_sengekis() { m_spritegen->skns_sprite_kludge(-192,-272); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x60b74bc, 0x60b74bf, read32_delegate(*this, FUNC(skns_state::sengekis_speedup_r)) ); set_drc_pcflush(0x60006ec); }
+void skns_state::init_sengekij() { m_spritegen->skns_sprite_kludge(-192,-272); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x60b7380, 0x60b7383, read32_delegate(*this, FUNC(skns_state::sengekij_speedup_r)) ); set_drc_pcflush(0x60006ec); }
void skns_state::init_sarukani() { m_spritegen->skns_sprite_kludge(-1,-1); init_drc(); set_drc_pcflush(0x4013b42); } // Speedup is in io_w()
void skns_state::init_galpans3() { m_spritegen->skns_sprite_kludge(-1,-1); init_drc(); }
diff --git a/src/mame/drivers/suprslam.cpp b/src/mame/drivers/suprslam.cpp
index c7e21370431..ccf9e54ca82 100644
--- a/src/mame/drivers/suprslam.cpp
+++ b/src/mame/drivers/suprslam.cpp
@@ -300,7 +300,7 @@ void suprslam_state::suprslam(machine_config &config)
PALETTE(config, m_palette).set_format(palette_device::xGBR_555, 0x800);
VSYSTEM_SPR(config, m_spr, 0);
- m_spr->set_tile_indirect_cb(FUNC(suprslam_state::suprslam_tile_callback), this);
+ m_spr->set_tile_indirect_cb(FUNC(suprslam_state::suprslam_tile_callback));
m_spr->set_gfx_region(1);
m_spr->set_gfxdecode_tag(m_gfxdecode);
diff --git a/src/mame/drivers/surpratk.cpp b/src/mame/drivers/surpratk.cpp
index 814e6c2c830..8e768ddc45b 100644
--- a/src/mame/drivers/surpratk.cpp
+++ b/src/mame/drivers/surpratk.cpp
@@ -187,12 +187,12 @@ void surpratk_state::surpratk(machine_config &config)
K052109(config, m_k052109, 0);
m_k052109->set_palette(m_palette);
m_k052109->set_screen("screen");
- m_k052109->set_tile_callback(FUNC(surpratk_state::tile_callback), this);
+ m_k052109->set_tile_callback(FUNC(surpratk_state::tile_callback));
m_k052109->irq_handler().set_inputline(m_maincpu, KONAMI_IRQ_LINE);
K053244(config, m_k053244, 0);
m_k053244->set_palette(m_palette);
- m_k053244->set_sprite_callback(FUNC(surpratk_state::sprite_callback), this);
+ m_k053244->set_sprite_callback(FUNC(surpratk_state::sprite_callback));
K053251(config, m_k053251, 0);
diff --git a/src/mame/drivers/sv8000.cpp b/src/mame/drivers/sv8000.cpp
index b9df9809820..f04d23ed7fa 100644
--- a/src/mame/drivers/sv8000.cpp
+++ b/src/mame/drivers/sv8000.cpp
@@ -182,7 +182,7 @@ void sv8000_state::machine_start()
m_inv = 0;
if (m_cart->exists())
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x0000, 0x0fff, read8sm_delegate(FUNC(generic_slot_device::read_rom),(generic_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x0000, 0x0fff, read8sm_delegate(*m_cart, FUNC(generic_slot_device::read_rom)));
save_item(NAME(m_column));
save_item(NAME(m_ag));
@@ -410,7 +410,7 @@ void sv8000_state::sv8000(machine_config &config)
/* cartridge */
generic_cartslot_device &cartslot(GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "sv8000_cart"));
cartslot.set_must_be_loaded(true);
- cartslot.set_device_load(FUNC(sv8000_state::cart_load), this);
+ cartslot.set_device_load(FUNC(sv8000_state::cart_load));
/* software lists */
SOFTWARE_LIST(config, "cart_list").set_original("sv8000");
diff --git a/src/mame/drivers/svi318.cpp b/src/mame/drivers/svi318.cpp
index b7050e3dd88..cb067892007 100644
--- a/src/mame/drivers/svi318.cpp
+++ b/src/mame/drivers/svi318.cpp
@@ -545,7 +545,7 @@ void svi3x8_state::svi318(machine_config &config)
SOFTWARE_LIST(config, "cass_list").set_original("svi318_cass");
// cartridge slot
- GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "svi318_cart", "bin,rom").set_device_load(FUNC(svi3x8_state::cart_load), this);
+ GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "svi318_cart", "bin,rom").set_device_load(FUNC(svi3x8_state::cart_load));
SOFTWARE_LIST(config, "cart_list").set_original("svi318_cart");
// expander bus
diff --git a/src/mame/drivers/svision.cpp b/src/mame/drivers/svision.cpp
index 306cb19d494..abd77a5e0af 100644
--- a/src/mame/drivers/svision.cpp
+++ b/src/mame/drivers/svision.cpp
@@ -507,7 +507,7 @@ void svision_state::svision_base(machine_config &config)
GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "svision_cart", "bin,ws,sv");
m_cart->set_must_be_loaded(true);
- m_cart->set_device_load(FUNC(svision_state::cart_load), this);
+ m_cart->set_device_load(FUNC(svision_state::cart_load));
SOFTWARE_LIST(config, "cart_list").set_original("svision");
}
diff --git a/src/mame/drivers/svmu.cpp b/src/mame/drivers/svmu.cpp
index e76bf756cbd..33170a0cddd 100644
--- a/src/mame/drivers/svmu.cpp
+++ b/src/mame/drivers/svmu.cpp
@@ -342,7 +342,7 @@ void svmu_state::svmu(machine_config &config)
ATMEL_29C010(config, m_flash);
quickload_image_device &quickload(QUICKLOAD(config, "quickload", "vms,bin"));
- quickload.set_load_callback(FUNC(svmu_state::quickload_cb), this);
+ quickload.set_load_callback(FUNC(svmu_state::quickload_cb));
quickload.set_interface("svmu_quik");
/* Software lists */
diff --git a/src/mame/drivers/swtpc8212.cpp b/src/mame/drivers/swtpc8212.cpp
index cb648e08b09..1191198b431 100644
--- a/src/mame/drivers/swtpc8212.cpp
+++ b/src/mame/drivers/swtpc8212.cpp
@@ -108,7 +108,7 @@ void swtpc8212_state::swtpc8212(machine_config &config)
crtc.set_char_width(9);
crtc.set_screen("screen");
crtc.set_show_border_area(false);
- crtc.set_update_row_callback(FUNC(swtpc8212_state::update_row), this);
+ crtc.set_update_row_callback(FUNC(swtpc8212_state::update_row));
}
diff --git a/src/mame/drivers/sys9002.cpp b/src/mame/drivers/sys9002.cpp
index 2c768b2cdee..ed917402b48 100644
--- a/src/mame/drivers/sys9002.cpp
+++ b/src/mame/drivers/sys9002.cpp
@@ -143,7 +143,7 @@ void sys9002_state::sys9002(machine_config &config)
crtc.set_screen("screen");
crtc.set_show_border_area(false);
crtc.set_char_width(8);
- crtc.set_update_row_callback(FUNC(sys9002_state::crtc_update_row), this);
+ crtc.set_update_row_callback(FUNC(sys9002_state::crtc_update_row));
clock_device &uart_clock(CLOCK(config, "uart_clock", 614400));
uart_clock.signal_handler().set("uart1", FUNC(i8251_device::write_txc));
diff --git a/src/mame/drivers/system1.cpp b/src/mame/drivers/system1.cpp
index 65b7726aa30..b970cf7f7e6 100644
--- a/src/mame/drivers/system1.cpp
+++ b/src/mame/drivers/system1.cpp
@@ -2459,7 +2459,7 @@ void system1_state::sys1ppisx_315_5041(machine_config &config)
void system1_state::mcu(machine_config &config)
{
/* basic machine hardware */
- m_maincpu->set_vblank_int(device_interrupt_delegate(), nullptr);
+ m_maincpu->remove_vblank_int();
I8751(config, m_mcu, SOUND_CLOCK);
m_mcu->set_addrmap(AS_IO, &system1_state::mcu_io_map);
@@ -2469,7 +2469,7 @@ void system1_state::mcu(machine_config &config)
// This interrupt is driven by pin 15 of a PAL16R4 (315-5138 on Choplifter), based on the vertical count.
// The actual duty cycle likely differs from VBLANK, which is another output from the same PAL.
- TIMER(config, "mcu_t0", 0).configure_periodic(timer_device::expired_delegate(FUNC(system1_state::mcu_t0_callback), this), attotime::from_usec(2500));
+ TIMER(config, "mcu_t0", 0).configure_periodic(FUNC(system1_state::mcu_t0_callback), attotime::from_usec(2500));
}
/* alternate program map with RAM/collision swapped */
@@ -5456,11 +5456,11 @@ void system1_state::init_nob()
/* hack to fix incorrect JMP at start, which should obviously be to $0080 */
/* patching the ROM causes errors in the self-test */
/* in real-life, it could be some behavior dependent upon M1 */
- space.install_read_handler(0x0001, 0x0001, read8_delegate(FUNC(system1_state::nob_start_r),this));
+ space.install_read_handler(0x0001, 0x0001, read8_delegate(*this, FUNC(system1_state::nob_start_r)));
/* install MCU communications */
- iospace.install_readwrite_handler(0x18, 0x18, read8_delegate(FUNC(system1_state::nob_maincpu_latch_r),this), write8_delegate(FUNC(system1_state::nob_maincpu_latch_w),this));
- iospace.install_read_handler(0x1c, 0x1c, read8_delegate(FUNC(system1_state::nob_mcu_status_r),this));
+ iospace.install_readwrite_handler(0x18, 0x18, read8_delegate(*this, FUNC(system1_state::nob_maincpu_latch_r)), write8_delegate(*this, FUNC(system1_state::nob_maincpu_latch_w)));
+ iospace.install_read_handler(0x1c, 0x1c, read8_delegate(*this, FUNC(system1_state::nob_mcu_status_r)));
}
void system1_state::init_nobb()
@@ -5487,10 +5487,10 @@ void system1_state::init_nobb()
init_bank44();
- iospace.install_read_handler(0x1c, 0x1c, read8_delegate(FUNC(system1_state::nobb_inport1c_r),this));
- iospace.install_read_handler(0x02, 0x02, read8_delegate(FUNC(system1_state::nobb_inport22_r),this));
- iospace.install_read_handler(0x03, 0x03, read8_delegate(FUNC(system1_state::nobb_inport23_r),this));
- iospace.install_write_handler(0x04, 0x04, write8_delegate(FUNC(system1_state::nobb_outport24_w),this));
+ iospace.install_read_handler(0x1c, 0x1c, read8_delegate(*this, FUNC(system1_state::nobb_inport1c_r)));
+ iospace.install_read_handler(0x02, 0x02, read8_delegate(*this, FUNC(system1_state::nobb_inport22_r)));
+ iospace.install_read_handler(0x03, 0x03, read8_delegate(*this, FUNC(system1_state::nobb_inport23_r)));
+ iospace.install_write_handler(0x04, 0x04, write8_delegate(*this, FUNC(system1_state::nobb_outport24_w)));
}
@@ -5520,7 +5520,7 @@ void system1_state::init_shtngmst()
address_space &iospace = m_maincpu->space(AS_IO);
iospace.install_read_port(0x12, 0x12, "TRIGGER");
iospace.install_read_port(0x18, 0x18, 0x03, "18");
- iospace.install_read_handler(0x1c, 0x1c, 0, 0x02, 0, read8_delegate(FUNC(system1_state::shtngmst_gunx_r),this));
+ iospace.install_read_handler(0x1c, 0x1c, 0, 0x02, 0, read8_delegate(*this, FUNC(system1_state::shtngmst_gunx_r)));
iospace.install_read_port(0x1d, 0x1d, 0x02, "GUNY");
init_bank0c();
}
diff --git a/src/mame/drivers/system16.cpp b/src/mame/drivers/system16.cpp
index d21b688b08e..8182e183faf 100644
--- a/src/mame/drivers/system16.cpp
+++ b/src/mame/drivers/system16.cpp
@@ -4057,7 +4057,7 @@ void segas1x_bootleg_state::init_altbeastbl()
{
init_common();
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x418000, 0x418029, write16_delegate(FUNC(segas1x_bootleg_state::altbeastbl_gfx_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x418000, 0x418029, write16_delegate(*this, FUNC(segas1x_bootleg_state::altbeastbl_gfx_w)));
}
/* Tetris-based */
@@ -4128,7 +4128,7 @@ void segas1x_bootleg_state::init_astormb2()
init_sys18bl_oki();
m_maincpu->space(AS_PROGRAM).unmap_write(0xa00006, 0xa00007);
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xa00006, 0xa00007, write8smo_delegate(FUNC(generic_latch_8_device::write), (generic_latch_8_device*)m_soundlatch), 0x00ff);
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xa00006, 0xa00007, write8smo_delegate(*m_soundlatch, FUNC(generic_latch_8_device::write)), 0x00ff);
}
/*************************************
diff --git a/src/mame/drivers/tail2nos.cpp b/src/mame/drivers/tail2nos.cpp
index 9ef10460371..0c98f641242 100644
--- a/src/mame/drivers/tail2nos.cpp
+++ b/src/mame/drivers/tail2nos.cpp
@@ -266,7 +266,7 @@ void tail2nos_state::tail2nos(machine_config &config)
m_k051316->set_bpp(-4);
m_k051316->set_offsets(-89, -14);
m_k051316->set_wrap(1);
- m_k051316->set_zoom_callback(FUNC(tail2nos_state::zoom_callback), this);
+ m_k051316->set_zoom_callback(FUNC(tail2nos_state::zoom_callback));
VSYSTEM_GGA(config, "gga", XTAL(14'318'181) / 2); // divider not verified
diff --git a/src/mame/drivers/taito_f2.cpp b/src/mame/drivers/taito_f2.cpp
index 9ec71f01788..0d971a33a12 100644
--- a/src/mame/drivers/taito_f2.cpp
+++ b/src/mame/drivers/taito_f2.cpp
@@ -3090,7 +3090,7 @@ void taitof2_state::mjnquest(machine_config &config)
TC0100SCN(config, m_tc0100scn[0], 0);
m_tc0100scn[0]->set_palette(m_tc0110pcr);
- m_tc0100scn[0]->set_tile_callback(FUNC(taitof2_state::mjnquest_tmap_cb), this);
+ m_tc0100scn[0]->set_tile_callback(FUNC(taitof2_state::mjnquest_tmap_cb));
}
void taitof2_state::footchmp(machine_config &config)
diff --git a/src/mame/drivers/taito_l.cpp b/src/mame/drivers/taito_l.cpp
index f6482ccdab9..07dcadbe3c7 100644
--- a/src/mame/drivers/taito_l.cpp
+++ b/src/mame/drivers/taito_l.cpp
@@ -584,10 +584,10 @@ void horshoes_state::horshoes_map(address_map &map)
common_banks_map(map);
map(0x8000, 0x9fff).ram();
map(0xa000, 0xa003).r(FUNC(horshoes_state::extport_select_and_ym2203_r)).w(m_ymsnd, FUNC(ym2203_device::write));
- map(0xa800, 0xa800).select(0x000c).lr8("upd4701_r",
+ map(0xa800, 0xa800).select(0x000c).lr8(NAME(
[this](address_space &space, offs_t offset, u8 mem_mask) {
return m_upd4701->read_xy(space, offset >> 2, mem_mask);
- });
+ }));
map(0xa802, 0xa802).r(m_upd4701, FUNC(upd4701_device::reset_x_r));
map(0xa803, 0xa803).r(m_upd4701, FUNC(upd4701_device::reset_y_r));
map(0xb801, 0xb801).nopr(); // Watchdog or interrupt ack
diff --git a/src/mame/drivers/taitojc.cpp b/src/mame/drivers/taitojc.cpp
index 4dae09011b9..fcd4f265752 100644
--- a/src/mame/drivers/taitojc.cpp
+++ b/src/mame/drivers/taitojc.cpp
@@ -528,7 +528,7 @@ WRITE16_MEMBER(taitojc_state::main_to_dsp_7ff_w)
void taitojc_state::cpu_space_map(address_map &map)
{
map(0xfffffff0, 0xffffffff).m(m_maincpu, FUNC(m68000_base_device::autovectors_map));
- map(0xfffffff4, 0xfffffff5).lr16("vblank irq", []() -> u16 { return 0x82; });
+ map(0xfffffff4, 0xfffffff5).lr16(NAME([] () -> u16 { return 0x82; }));
}
INTERRUPT_GEN_MEMBER(taitojc_state::taitojc_vblank)
@@ -1176,7 +1176,7 @@ void taitojc_state::init_taitojc()
m_has_dsp_hack = 1;
if (DSP_IDLESKIP)
- m_dsp->space(AS_DATA).install_read_handler(0x7ff0, 0x7ff0, read16_delegate(FUNC(taitojc_state::taitojc_dsp_idle_skip_r),this));
+ m_dsp->space(AS_DATA).install_read_handler(0x7ff0, 0x7ff0, read16_delegate(*this, FUNC(taitojc_state::taitojc_dsp_idle_skip_r)));
}
void taitojc_state::init_dendego2()
@@ -1184,7 +1184,7 @@ void taitojc_state::init_dendego2()
init_taitojc();
if (DSP_IDLESKIP)
- m_dsp->space(AS_DATA).install_read_handler(0x7ff0, 0x7ff0, read16_delegate(FUNC(taitojc_state::dendego2_dsp_idle_skip_r),this));
+ m_dsp->space(AS_DATA).install_read_handler(0x7ff0, 0x7ff0, read16_delegate(*this, FUNC(taitojc_state::dendego2_dsp_idle_skip_r)));
}
void taitojc_state::init_dangcurv()
diff --git a/src/mame/drivers/taitopjc.cpp b/src/mame/drivers/taitopjc.cpp
index 06d1cca07f7..2f8aa81665f 100644
--- a/src/mame/drivers/taitopjc.cpp
+++ b/src/mame/drivers/taitopjc.cpp
@@ -244,8 +244,8 @@ void taitopjc_state::video_start()
m_screen_ram = std::make_unique<uint32_t[]>(0x40000);
m_pal_ram = std::make_unique<uint32_t[]>(0x8000);
- m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(taitopjc_state::tile_get_info),this), tilemap_mapper_delegate(FUNC(taitopjc_state::tile_scan_layer0),this), 16, 16, 32, 32);
- m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(taitopjc_state::tile_get_info),this), tilemap_mapper_delegate(FUNC(taitopjc_state::tile_scan_layer1),this), 16, 16, 32, 32);
+ m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(taitopjc_state::tile_get_info)), tilemap_mapper_delegate(*this, FUNC(taitopjc_state::tile_scan_layer0)), 16, 16, 32, 32);
+ m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(taitopjc_state::tile_get_info)), tilemap_mapper_delegate(*this, FUNC(taitopjc_state::tile_scan_layer1)), 16, 16, 32, 32);
m_tilemap[0]->set_transparent_pen(0);
m_tilemap[1]->set_transparent_pen(1);
diff --git a/src/mame/drivers/taitosj.cpp b/src/mame/drivers/taitosj.cpp
index 401bea5bc28..bd637167fa3 100644
--- a/src/mame/drivers/taitosj.cpp
+++ b/src/mame/drivers/taitosj.cpp
@@ -2835,7 +2835,7 @@ void taitosj_state::init_spacecr()
init_common();
/* install protection handler */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xd48b, 0xd48b, read8_delegate(FUNC(taitosj_state::spacecr_prot_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xd48b, 0xd48b, read8_delegate(*this, FUNC(taitosj_state::spacecr_prot_r)));
}
void taitosj_state::init_alpine()
@@ -2843,8 +2843,8 @@ void taitosj_state::init_alpine()
init_common();
/* install protection handlers */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xd40b, 0xd40b, read8_delegate(FUNC(taitosj_state::alpine_port_2_r),this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xd50f, 0xd50f, write8_delegate(FUNC(taitosj_state::alpine_protection_w),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xd40b, 0xd40b, read8_delegate(*this, FUNC(taitosj_state::alpine_port_2_r)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xd50f, 0xd50f, write8_delegate(*this, FUNC(taitosj_state::alpine_protection_w)));
}
void taitosj_state::init_alpinea()
@@ -2852,8 +2852,8 @@ void taitosj_state::init_alpinea()
init_common();
/* install protection handlers */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xd40b, 0xd40b, read8_delegate(FUNC(taitosj_state::alpine_port_2_r),this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xd50e, 0xd50e, write8_delegate(FUNC(taitosj_state::alpinea_bankswitch_w),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xd40b, 0xd40b, read8_delegate(*this, FUNC(taitosj_state::alpine_port_2_r)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xd50e, 0xd50e, write8_delegate(*this, FUNC(taitosj_state::alpinea_bankswitch_w)));
}
void taitosj_state::init_junglhbr()
@@ -2861,7 +2861,7 @@ void taitosj_state::init_junglhbr()
init_common();
/* inverter on bits 0 and 1 */
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x9000, 0xbfff, write8_delegate(FUNC(taitosj_state::junglhbr_characterram_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x9000, 0xbfff, write8_delegate(*this, FUNC(taitosj_state::junglhbr_characterram_w)));
}
GAME( 1981, spaceskr, 0, nomcu, spaceskr, taitosj_state, init_taitosj, ROT0, "Taito Corporation", "Space Seeker", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/taitowlf.cpp b/src/mame/drivers/taitowlf.cpp
index 08c135b56b6..7ba54ff0775 100644
--- a/src/mame/drivers/taitowlf.cpp
+++ b/src/mame/drivers/taitowlf.cpp
@@ -379,10 +379,8 @@ void taitowlf_state::taitowlf(machine_config &config)
pci_bus_legacy_device &pcibus(PCI_BUS_LEGACY(config, "pcibus", 0, 0));
- pcibus.set_device_read (0, FUNC(taitowlf_state::intel82439tx_pci_r), this);
- pcibus.set_device_write(0, FUNC(taitowlf_state::intel82439tx_pci_w), this);
- pcibus.set_device_read (7, FUNC(taitowlf_state::intel82371ab_pci_r), this);
- pcibus.set_device_write(7, FUNC(taitowlf_state::intel82371ab_pci_w), this);
+ pcibus.set_device(0, FUNC(taitowlf_state::intel82439tx_pci_r), FUNC(taitowlf_state::intel82439tx_pci_w));
+ pcibus.set_device(7, FUNC(taitowlf_state::intel82371ab_pci_r), FUNC(taitowlf_state::intel82371ab_pci_w));
pcat_common(config);
diff --git a/src/mame/drivers/tandy1t.cpp b/src/mame/drivers/tandy1t.cpp
index 5b2e4e95f50..432f967a9f4 100644
--- a/src/mame/drivers/tandy1t.cpp
+++ b/src/mame/drivers/tandy1t.cpp
@@ -428,10 +428,10 @@ void tandy1000_state::machine_start()
m_maincpu->space(AS_PROGRAM).install_ram(0, m_ram->size() - (128*1024) - 1, &m_ram->pointer()[128*1024]);
if(m_maincpu->space(AS_PROGRAM).data_width() == 8)
m_maincpu->space(AS_PROGRAM).install_readwrite_handler(m_ram->size() - (128*1024), 640*1024 - 1,
- read8_delegate(FUNC(tandy1000_state::vram_r), this), write8_delegate(FUNC(tandy1000_state::vram_w), this));
+ read8_delegate(*this, FUNC(tandy1000_state::vram_r)), write8_delegate(*this, FUNC(tandy1000_state::vram_w)));
else
m_maincpu->space(AS_PROGRAM).install_readwrite_handler(m_ram->size() - (128*1024), 640*1024 - 1,
- read8_delegate(FUNC(tandy1000_state::vram_r), this), write8_delegate(FUNC(tandy1000_state::vram_w), this), 0xffff);
+ read8_delegate(*this, FUNC(tandy1000_state::vram_r)), write8_delegate(*this, FUNC(tandy1000_state::vram_w)), 0xffff);
subdevice<nvram_device>("nvram")->set_base(m_eeprom_ee, sizeof(m_eeprom_ee));
}
diff --git a/src/mame/drivers/taotaido.cpp b/src/mame/drivers/taotaido.cpp
index 446b0b1a32c..5d08dbbc066 100644
--- a/src/mame/drivers/taotaido.cpp
+++ b/src/mame/drivers/taotaido.cpp
@@ -388,7 +388,7 @@ void taotaido_state::taotaido(machine_config &config)
PALETTE(config, "palette").set_format(palette_device::xRGB_555, 0x800);
VSYSTEM_SPR(config, m_spr, 0);
- m_spr->set_tile_indirect_cb(FUNC(taotaido_state::tile_callback), this);
+ m_spr->set_tile_indirect_cb(FUNC(taotaido_state::tile_callback));
m_spr->set_gfx_region(0);
m_spr->set_gfxdecode_tag(m_gfxdecode);
diff --git a/src/mame/drivers/tapatune.cpp b/src/mame/drivers/tapatune.cpp
index e74e6fa0e87..c87b667425f 100644
--- a/src/mame/drivers/tapatune.cpp
+++ b/src/mame/drivers/tapatune.cpp
@@ -56,12 +56,14 @@
class tapatune_state : public driver_device
{
public:
- tapatune_state(const machine_config &mconfig, device_type type, const char *tag)
- : driver_device(mconfig, type, tag),
+ tapatune_state(const machine_config &mconfig, device_type type, const char *tag) :
+ driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"),
m_videocpu(*this, "videocpu"),
m_bsmt(*this, "bsmt"),
- m_videoram(*this, "videoram") {}
+ m_videoram(*this, "videoram")
+ {
+ }
void tapatune(machine_config &config);
void tapatune_base(machine_config &config);
@@ -556,8 +558,8 @@ void tapatune_state::tapatune(machine_config &config)
crtc.set_screen("screen");
crtc.set_show_border_area(false);
crtc.set_char_width(5);
- crtc.set_begin_update_callback(FUNC(tapatune_state::crtc_begin_update), this);
- crtc.set_update_row_callback(FUNC(tapatune_state::crtc_update_row), this);
+ crtc.set_begin_update_callback(FUNC(tapatune_state::crtc_begin_update));
+ crtc.set_update_row_callback(FUNC(tapatune_state::crtc_update_row));
crtc.out_vsync_callback().set(FUNC(tapatune_state::crtc_vsync));
/* video hardware */
diff --git a/src/mame/drivers/tasman.cpp b/src/mame/drivers/tasman.cpp
index 9beb36406e3..6bb9f80a5f9 100644
--- a/src/mame/drivers/tasman.cpp
+++ b/src/mame/drivers/tasman.cpp
@@ -675,7 +675,7 @@ void kongambl_state::kongambl(machine_config &config)
K055555(config, m_k055555, 0);
K055673(config, m_k055673, 0);
- m_k055673->set_sprite_callback(FUNC(kongambl_state::sprite_callback), this);
+ m_k055673->set_sprite_callback(FUNC(kongambl_state::sprite_callback));
m_k055673->set_config(K055673_LAYOUT_LE2, -48+1, -23);
m_k055673->set_palette(m_palette);
@@ -684,7 +684,7 @@ void kongambl_state::kongambl(machine_config &config)
#endif
K056832(config, m_k056832, 0);
- m_k056832->set_tile_callback(FUNC(kongambl_state::tile_callback), this);
+ m_k056832->set_tile_callback(FUNC(kongambl_state::tile_callback));
m_k056832->set_config(K056832_BPP_8TASMAN, 0, 0);
m_k056832->set_palette(m_palette);
diff --git a/src/mame/drivers/tatsumi.cpp b/src/mame/drivers/tatsumi.cpp
index c74c4e3807d..05d25ff202f 100644
--- a/src/mame/drivers/tatsumi.cpp
+++ b/src/mame/drivers/tatsumi.cpp
@@ -860,7 +860,7 @@ MACHINE_RESET_MEMBER(apache3_state,apache3)
m_subcpu2->set_input_line(INPUT_LINE_RESET, ASSERT_LINE); // TODO
/* Hook the RESET line, which resets the Z80 */
- m_subcpu->set_reset_callback(write_line_delegate(FUNC(apache3_state::apache3_68000_reset),this));
+ m_subcpu->set_reset_callback(*this, FUNC(apache3_state::apache3_68000_reset));
}
diff --git a/src/mame/drivers/tattack.cpp b/src/mame/drivers/tattack.cpp
index d040ae8ad39..a3d0e9f9e74 100644
--- a/src/mame/drivers/tattack.cpp
+++ b/src/mame/drivers/tattack.cpp
@@ -230,7 +230,7 @@ uint32_t tattack_state::screen_update_tattack(screen_device &screen, bitmap_ind1
void tattack_state::video_start()
{
- m_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tattack_state::get_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32 );
+ m_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tattack_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 32,32);
}
WRITE8_MEMBER(tattack_state::paddle_w)
diff --git a/src/mame/drivers/tavernie.cpp b/src/mame/drivers/tavernie.cpp
index 748796a994d..9cec7765635 100644
--- a/src/mame/drivers/tavernie.cpp
+++ b/src/mame/drivers/tavernie.cpp
@@ -390,7 +390,7 @@ void tavernie_state::ivg09(machine_config &config)
crtc.set_screen("screen");
crtc.set_show_border_area(false);
crtc.set_char_width(8);
- crtc.set_update_row_callback(FUNC(tavernie_state::crtc_update_row), this);
+ crtc.set_update_row_callback(FUNC(tavernie_state::crtc_update_row));
PIA6821(config, m_pia1, 0);
m_pia1->readpb_handler().set(FUNC(tavernie_state::pb_ivg_r));
diff --git a/src/mame/drivers/techno.cpp b/src/mame/drivers/techno.cpp
index 271529bac3b..13cb69af6ec 100644
--- a/src/mame/drivers/techno.cpp
+++ b/src/mame/drivers/techno.cpp
@@ -256,7 +256,7 @@ INPUT_PORTS_END
void techno_state::cpu_space_map(address_map &map)
{
map(0xfffff0, 0xffffff).m(m_maincpu, FUNC(m68000_base_device::autovectors_map));
- map(0xfffff2, 0xfffff3).lr16("timer irq", [this]() -> u16 { return m_vector; });
+ map(0xfffff2, 0xfffff3).lr16(NAME([this] () -> u16 { return m_vector; }));
}
void techno_state::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr)
diff --git a/src/mame/drivers/testpat.cpp b/src/mame/drivers/testpat.cpp
index 898f9dd5a1a..78b9e418537 100644
--- a/src/mame/drivers/testpat.cpp
+++ b/src/mame/drivers/testpat.cpp
@@ -106,7 +106,7 @@ void tp1983_state::tp1983(machine_config &config)
{
NETLIST_CPU(config, m_maincpu, NETLIST_CLOCK).set_source(netlist_tp1983);
- NETLIST_ANALOG_OUTPUT(config, "maincpu:vid0").set_params("videomix", FUNC(fixedfreq_device::update_composite_monochrome), "fixfreq");
+ NETLIST_ANALOG_OUTPUT(config, "maincpu:vid0").set_params("videomix", m_video, FUNC(fixedfreq_device::update_composite_monochrome));
SCREEN(config, "screen", SCREEN_TYPE_RASTER);
FIXFREQ(config, m_video).set_screen("screen");
@@ -122,7 +122,7 @@ void tp1985_state::tp1985(machine_config &config)
{
NETLIST_CPU(config, m_maincpu, NETLIST_CLOCK).set_source(netlist_tp1985);
- NETLIST_ANALOG_OUTPUT(config, "maincpu:vid0").set_params("videomix", FUNC(tp1985_state::video_out_cb), "");
+ NETLIST_ANALOG_OUTPUT(config, "maincpu:vid0").set_params("videomix", FUNC(tp1985_state::video_out_cb));
SCREEN(config, "screen", SCREEN_TYPE_RASTER);
FIXFREQ(config, m_video).set_screen("screen");
diff --git a/src/mame/drivers/thepit.cpp b/src/mame/drivers/thepit.cpp
index 7061b2e0dd6..22feb9f7572 100644
--- a/src/mame/drivers/thepit.cpp
+++ b/src/mame/drivers/thepit.cpp
@@ -1353,7 +1353,7 @@ READ8_MEMBER(thepit_state::rtriv_question_r)
void thepit_state::init_rtriv()
{
// Set-up the weirdest questions read ever done
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x4000, 0x4fff, read8_delegate(FUNC(thepit_state::rtriv_question_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x4000, 0x4fff, read8_delegate(*this, FUNC(thepit_state::rtriv_question_r)));
save_item(NAME(m_question_address));
save_item(NAME(m_question_rom));
diff --git a/src/mame/drivers/thomson.cpp b/src/mame/drivers/thomson.cpp
index 5a06205469e..3bceee89bd0 100644
--- a/src/mame/drivers/thomson.cpp
+++ b/src/mame/drivers/thomson.cpp
@@ -746,7 +746,7 @@ void thomson_state::to7_base(machine_config &config)
acia_clock.signal_handler().set(FUNC(thomson_state::write_acia_clock));
/* cartridge */
- GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "to_cart", "m7,rom").set_device_load(FUNC(thomson_state::to7_cartridge), this);
+ GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "to_cart", "m7,rom").set_device_load(FUNC(thomson_state::to7_cartridge));
/* internal ram */
RAM(config, m_ram).set_default_size("40K").set_extra_options("24K,48K");
@@ -1160,7 +1160,7 @@ void thomson_state::mo5(machine_config &config)
m_pia_sys->cb2_handler().set_nop();
m_pia_sys->irqb_handler().set("mainirq", FUNC(input_merger_device::in_w<1>)); // WARNING: differs from TO7 !
- GENERIC_CARTSLOT(config.replace(), "cartslot", generic_plain_slot, "mo_cart", "m5,rom").set_device_load(FUNC(thomson_state::mo5_cartridge), this);
+ GENERIC_CARTSLOT(config.replace(), "cartslot", generic_plain_slot, "mo_cart", "m5,rom").set_device_load(FUNC(thomson_state::mo5_cartridge));
config.device_remove("to7_cart_list");
config.device_remove("to7_cass_list");
@@ -2256,7 +2256,7 @@ void thomson_state::mo6(machine_config &config)
OUTPUT_LATCH(config, m_cent_data_out);
m_centronics->set_output_latch(*m_cent_data_out);
- GENERIC_CARTSLOT(config.replace(), "cartslot", generic_plain_slot, "mo_cart", "m5,rom").set_device_load(FUNC(thomson_state::mo5_cartridge), this);
+ GENERIC_CARTSLOT(config.replace(), "cartslot", generic_plain_slot, "mo_cart", "m5,rom").set_device_load(FUNC(thomson_state::mo5_cartridge));
/* internal ram */
m_ram->set_default_size("128K");
@@ -2523,7 +2523,7 @@ void thomson_state::mo5nr(machine_config &config)
OUTPUT_LATCH(config, m_cent_data_out);
m_centronics->set_output_latch(*m_cent_data_out);
- GENERIC_CARTSLOT(config.replace(), "cartslot", generic_plain_slot, "mo_cart", "m5,rom").set_device_load(FUNC(thomson_state::mo5_cartridge), this);
+ GENERIC_CARTSLOT(config.replace(), "cartslot", generic_plain_slot, "mo_cart", "m5,rom").set_device_load(FUNC(thomson_state::mo5_cartridge));
/* internal ram */
m_ram->set_default_size("128K");
diff --git a/src/mame/drivers/thoop2.cpp b/src/mame/drivers/thoop2.cpp
index c8a9c49e2df..7b153735cfa 100644
--- a/src/mame/drivers/thoop2.cpp
+++ b/src/mame/drivers/thoop2.cpp
@@ -135,7 +135,7 @@ void thoop2_state::thoop2_map(address_map &map)
map(0x700004, 0x700005).portr("P1");
map(0x700006, 0x700007).portr("P2");
map(0x700008, 0x700009).portr("SYSTEM");
- map(0x70000b, 0x70000b).select(0x000070).lw8("outlatch_w", [this](offs_t offset, u8 data) { m_outlatch->write_d0(offset >> 4, data); });
+ map(0x70000b, 0x70000b).select(0x000070).lw8(NAME([this] (offs_t offset, u8 data) { m_outlatch->write_d0(offset >> 4, data); }));
map(0x70000d, 0x70000d).w(FUNC(thoop2_state::oki_bankswitch_w)); /* OKI6295 bankswitch */
map(0x70000f, 0x70000f).rw("oki", FUNC(okim6295_device::read), FUNC(okim6295_device::write)); /* OKI6295 data register */
map(0xfe0000, 0xfe7fff).ram(); /* Work RAM */
diff --git a/src/mame/drivers/thunderx.cpp b/src/mame/drivers/thunderx.cpp
index 9f50f97de8a..c510c8d70dd 100644
--- a/src/mame/drivers/thunderx.cpp
+++ b/src/mame/drivers/thunderx.cpp
@@ -660,13 +660,13 @@ void thunderx_state::scontra(machine_config &config)
K052109(config, m_k052109, 0); // 051961 on Super Contra and Thunder Cross schematics
m_k052109->set_palette(m_palette);
m_k052109->set_screen("screen");
- m_k052109->set_tile_callback(FUNC(thunderx_state::tile_callback), this);
+ m_k052109->set_tile_callback(FUNC(thunderx_state::tile_callback));
m_k052109->irq_handler().set_inputline(m_maincpu, KONAMI_IRQ_LINE);
K051960(config, m_k051960, 0);
m_k051960->set_palette(m_palette);
m_k051960->set_screen("screen");
- m_k051960->set_sprite_callback(FUNC(thunderx_state::sprite_callback), this);
+ m_k051960->set_sprite_callback(FUNC(thunderx_state::sprite_callback));
/* sound hardware */
SPEAKER(config, "mono").front_center();
@@ -715,7 +715,7 @@ void thunderx_state::gbusters(machine_config &config)
m_maincpu->set_addrmap(AS_PROGRAM, &thunderx_state::gbusters_map);
m_maincpu->line().set(FUNC(thunderx_state::banking_callback));
- m_k052109->set_tile_callback(FUNC(thunderx_state::gbusters_tile_callback), this);
+ m_k052109->set_tile_callback(FUNC(thunderx_state::gbusters_tile_callback));
}
diff --git a/src/mame/drivers/ti74.cpp b/src/mame/drivers/ti74.cpp
index 8081b37f94b..397809989c8 100644
--- a/src/mame/drivers/ti74.cpp
+++ b/src/mame/drivers/ti74.cpp
@@ -504,7 +504,7 @@ void ti74_state::machine_start()
m_lamps.resolve();
if (m_cart->exists())
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x4000, 0xbfff, read8sm_delegate(FUNC(generic_slot_device::read_rom),(generic_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x4000, 0xbfff, read8sm_delegate(*m_cart, FUNC(generic_slot_device::read_rom)));
membank("sysbank")->configure_entries(0, 4, memregion("system")->base(), 0x2000);
membank("sysbank")->set_entry(0);
@@ -544,10 +544,10 @@ void ti74_state::ti74(machine_config &config)
hd44780_device &hd44780(HD44780(config, "hd44780", 0)); // 270kHz
hd44780.set_lcd_size(2, 16); // 2*16 internal
- hd44780.set_pixel_update_cb(FUNC(ti74_state::ti74_pixel_update), this);
+ hd44780.set_pixel_update_cb(FUNC(ti74_state::ti74_pixel_update));
/* cartridge */
- GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "ti74_cart", "bin,rom,256").set_device_load(FUNC(ti74_state::cart_load), this);
+ GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "ti74_cart", "bin,rom,256").set_device_load(FUNC(ti74_state::cart_load));
SOFTWARE_LIST(config, "cart_list").set_original("ti74_cart");
}
@@ -578,10 +578,10 @@ void ti74_state::ti95(machine_config &config)
hd44780_device &hd44780(HD44780(config, "hd44780", 0));
hd44780.set_lcd_size(2, 16);
- hd44780.set_pixel_update_cb(FUNC(ti74_state::ti95_pixel_update), this);
+ hd44780.set_pixel_update_cb(FUNC(ti74_state::ti95_pixel_update));
/* cartridge */
- GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "ti95_cart", "bin,rom,256").set_device_load(FUNC(ti74_state::cart_load), this);
+ GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "ti95_cart", "bin,rom,256").set_device_load(FUNC(ti74_state::cart_load));
SOFTWARE_LIST(config, "cart_list").set_original("ti95_cart");
}
diff --git a/src/mame/drivers/ti85.cpp b/src/mame/drivers/ti85.cpp
index 71fe2576e47..1605411788d 100644
--- a/src/mame/drivers/ti85.cpp
+++ b/src/mame/drivers/ti85.cpp
@@ -618,7 +618,7 @@ void ti85_state::ti85(machine_config &config)
void ti85_state::ti85d(machine_config &config)
{
ti85(config);
- SNAPSHOT(config, "snapshot", "sav").set_load_callback(FUNC(ti85_state::snapshot_cb), this);
+ SNAPSHOT(config, "snapshot", "sav").set_load_callback(FUNC(ti85_state::snapshot_cb));
//TI85SERIAL(config, "tiserial");
}
@@ -672,7 +672,7 @@ void ti85_state::ti86(machine_config &config)
MCFG_MACHINE_START_OVERRIDE(ti85_state, ti86)
MCFG_MACHINE_RESET_OVERRIDE(ti85_state, ti85)
- SNAPSHOT(config, "snapshot", "sav").set_load_callback(FUNC(ti85_state::snapshot_cb), this);
+ SNAPSHOT(config, "snapshot", "sav").set_load_callback(FUNC(ti85_state::snapshot_cb));
}
void ti85_state::ti83p(machine_config &config)
diff --git a/src/mame/drivers/ti89.cpp b/src/mame/drivers/ti89.cpp
index 67f823f2b94..1e4a6c3bd20 100644
--- a/src/mame/drivers/ti89.cpp
+++ b/src/mame/drivers/ti89.cpp
@@ -464,11 +464,11 @@ void ti68k_state::machine_start()
if (initial_pc > 0x400000)
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x400000, 0x5fffff, read16_delegate(FUNC(ti68k_state::rom_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x400000, 0x5fffff, read16_delegate(*this, FUNC(ti68k_state::rom_r)));
}
else
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x200000, 0x3fffff, read16_delegate(FUNC(ti68k_state::rom_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x200000, 0x3fffff, read16_delegate(*this, FUNC(ti68k_state::rom_r)));
}
}
diff --git a/src/mame/drivers/tim100.cpp b/src/mame/drivers/tim100.cpp
index f91f4f830c2..e0dedbddc6f 100644
--- a/src/mame/drivers/tim100.cpp
+++ b/src/mame/drivers/tim100.cpp
@@ -177,7 +177,7 @@ void tim100_state::tim100(machine_config &config)
I8276(config, m_crtc, XTAL(4'915'200));
m_crtc->set_character_width(12);
- m_crtc->set_display_callback(FUNC(tim100_state::crtc_display_pixels), this);
+ m_crtc->set_display_callback(FUNC(tim100_state::crtc_display_pixels));
m_crtc->drq_wr_callback().set(FUNC(tim100_state::drq_w));
m_crtc->irq_wr_callback().set(FUNC(tim100_state::irq_w));
m_crtc->set_screen("screen");
diff --git a/src/mame/drivers/timeplt.cpp b/src/mame/drivers/timeplt.cpp
index 98708dd54c4..a1f559f6113 100644
--- a/src/mame/drivers/timeplt.cpp
+++ b/src/mame/drivers/timeplt.cpp
@@ -141,7 +141,7 @@ void timeplt_state::timeplt_main_map(address_map &map)
map(0xc000, 0xc000).mirror(0x0cff).r(FUNC(timeplt_state::scanline_r)).w("timeplt_audio", FUNC(timeplt_audio_device::sound_data_w));
map(0xc200, 0xc200).mirror(0x0cff).portr("DSW1").w("watchdog", FUNC(watchdog_timer_device::reset_w));
map(0xc300, 0xc300).mirror(0x0c9f).portr("IN0");
- map(0xc300, 0xc30f).lw8("mainlatch_w", [this](offs_t offset, u8 data) { m_mainlatch->write_d0(offset >> 1, data); });
+ map(0xc300, 0xc30f).lw8(NAME([this] (offs_t offset, u8 data) { m_mainlatch->write_d0(offset >> 1, data); }));
map(0xc320, 0xc320).mirror(0x0c9f).portr("IN1");
map(0xc340, 0xc340).mirror(0x0c9f).portr("IN2");
map(0xc360, 0xc360).mirror(0x0c9f).portr("DSW0");
diff --git a/src/mame/drivers/timex.cpp b/src/mame/drivers/timex.cpp
index b09f26844fe..f15b772541c 100644
--- a/src/mame/drivers/timex.cpp
+++ b/src/mame/drivers/timex.cpp
@@ -713,7 +713,7 @@ void timex_state::ts2068(machine_config &config)
AY8912(config.replace(), "ay8912", XTAL(14'112'000)/8).add_route(ALL_OUTPUTS, "mono", 0.25); /* From Schematic; 1.764 MHz */
/* cartridge */
- GENERIC_CARTSLOT(config, "dockslot", generic_plain_slot, "timex_cart", "dck,bin").set_device_load(FUNC(timex_state::cart_load), this);
+ GENERIC_CARTSLOT(config, "dockslot", generic_plain_slot, "timex_cart", "dck,bin").set_device_load(FUNC(timex_state::cart_load));
/* Software lists */
SOFTWARE_LIST(config, "cart_list").set_original("timex_dock");
diff --git a/src/mame/drivers/tispeak.cpp b/src/mame/drivers/tispeak.cpp
index 9de61d8631c..5c0cda68296 100644
--- a/src/mame/drivers/tispeak.cpp
+++ b/src/mame/drivers/tispeak.cpp
@@ -1328,7 +1328,7 @@ void tispeak_state::sns_cd2801(machine_config &config)
/* cartridge */
GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "snspell", "vsm");
- m_cart->set_device_load(FUNC(tispeak_state::cart_load), this);
+ m_cart->set_device_load(FUNC(tispeak_state::cart_load));
SOFTWARE_LIST(config, "cart_list").set_original("snspell");
}
@@ -1379,7 +1379,7 @@ void tispeak_state::snread(machine_config &config)
/* cartridge */
GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "snread", "vsm");
- m_cart->set_device_load(FUNC(tispeak_state::cart_load), this);
+ m_cart->set_device_load(FUNC(tispeak_state::cart_load));
SOFTWARE_LIST(config, "cart_list").set_original("snread");
}
@@ -1398,7 +1398,7 @@ void tispeak_state::lantutor(machine_config &config)
/* cartridge */
GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "lantutor", "vsm,bin");
m_cart->set_must_be_loaded(true);
- m_cart->set_device_load(FUNC(tispeak_state::cart_load), this);
+ m_cart->set_device_load(FUNC(tispeak_state::cart_load));
SOFTWARE_LIST(config, "cart_list").set_original("lantutor");
}
@@ -1423,7 +1423,7 @@ void tispeak_state::snspellc(machine_config &config)
/* cartridge */
GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "snspell", "vsm");
- m_cart->set_device_load(FUNC(tispeak_state::cart_load), this);
+ m_cart->set_device_load(FUNC(tispeak_state::cart_load));
SOFTWARE_LIST(config, "cart_list").set_original("snspell");
}
@@ -1463,7 +1463,7 @@ void tispeak_state::tntell(machine_config &config)
/* cartridge */
GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "tntell", "vsm");
- m_cart->set_device_load(FUNC(tispeak_state::cart_load), this);
+ m_cart->set_device_load(FUNC(tispeak_state::cart_load));
SOFTWARE_LIST(config, "cart_list").set_original("tntell");
}
@@ -1488,7 +1488,7 @@ void tispeak_state::k28m2(machine_config &config)
/* cartridge */
GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "k28m2", "vsm");
- m_cart->set_device_load(FUNC(tispeak_state::cart_load), this);
+ m_cart->set_device_load(FUNC(tispeak_state::cart_load));
SOFTWARE_LIST(config, "cart_list").set_original("k28m2");
}
diff --git a/src/mame/drivers/tmaster.cpp b/src/mame/drivers/tmaster.cpp
index 5ccede566ba..ac309170f3b 100644
--- a/src/mame/drivers/tmaster.cpp
+++ b/src/mame/drivers/tmaster.cpp
@@ -212,7 +212,7 @@ WRITE_LINE_MEMBER(tmaster_state::write_oki_bank1)
void tmaster_state::cpu_space_map(address_map &map)
{
map(0xfffff0, 0xffffff).m(m_maincpu, FUNC(m68000_base_device::autovectors_map));
- map(0xfffff8, 0xfffff9).lr16("irq 2", [this]() -> u16 { return m_duart->get_irq_vector(); });
+ map(0xfffff8, 0xfffff9).lr16(NAME([this] () -> u16 { return m_duart->get_irq_vector(); }));
}
WRITE_LINE_MEMBER(tmaster_state::duart_irq_handler)
diff --git a/src/mame/drivers/tmc1800.cpp b/src/mame/drivers/tmc1800.cpp
index 48ae70db106..c6a5d6421ae 100644
--- a/src/mame/drivers/tmc1800.cpp
+++ b/src/mame/drivers/tmc1800.cpp
@@ -800,7 +800,7 @@ void tmc1800_state::tmc1800(machine_config &config)
BEEP(config, m_beeper, 0).add_route(ALL_OUTPUTS, "mono", 0.25);
// devices
- QUICKLOAD(config, "quickload", "bin").set_load_callback(FUNC(tmc1800_base_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "bin").set_load_callback(FUNC(tmc1800_base_state::quickload_cb));
CASSETTE(config, m_cassette);
m_cassette->set_default_state(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED);
m_cassette->add_route(ALL_OUTPUTS, "mono", 0.05);
@@ -829,7 +829,7 @@ void osc1000b_state::osc1000b(machine_config &config)
BEEP(config, m_beeper, 0).add_route(ALL_OUTPUTS, "mono", 0.25);
// devices
- QUICKLOAD(config, "quickload", "bin").set_load_callback(FUNC(tmc1800_base_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "bin").set_load_callback(FUNC(tmc1800_base_state::quickload_cb));
CASSETTE(config, m_cassette);
m_cassette->set_default_state(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED);
m_cassette->add_route(ALL_OUTPUTS, "mono", 0.05);
@@ -855,7 +855,7 @@ void tmc2000_state::tmc2000(machine_config &config)
tmc2000_video(config);
// devices
- QUICKLOAD(config, "quickload", "bin").set_load_callback(FUNC(tmc1800_base_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "bin").set_load_callback(FUNC(tmc1800_base_state::quickload_cb));
CASSETTE(config, m_cassette);
m_cassette->set_default_state(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED);
m_cassette->add_route(ALL_OUTPUTS, "mono", 0.05);
@@ -881,7 +881,7 @@ void nano_state::nano(machine_config &config)
nano_video(config);
// devices
- QUICKLOAD(config, "quickload", "bin").set_load_callback(FUNC(tmc1800_base_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "bin").set_load_callback(FUNC(tmc1800_base_state::quickload_cb));
CASSETTE(config, m_cassette);
m_cassette->set_default_state(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED);
m_cassette->add_route(ALL_OUTPUTS, "mono", 0.05);
diff --git a/src/mame/drivers/tmnt.cpp b/src/mame/drivers/tmnt.cpp
index 837839c791e..55107db6051 100644
--- a/src/mame/drivers/tmnt.cpp
+++ b/src/mame/drivers/tmnt.cpp
@@ -1082,9 +1082,9 @@ void prmrsocr_state::prmrsocr_audio_map(address_map &map)
map(0x0000, 0x7fff).rom();
map(0x8000, 0xbfff).bankr("bank1");
map(0xc000, 0xdfff).ram();
- map(0xe000, 0xe12f).lrw8("k054539_rw",
- [this](offs_t offset) { return m_k054539->read(((offset & 0x100) << 1) | (offset & 0xff)); },
- [this](offs_t offset, u8 data) { m_k054539->write(((offset & 0x100) << 1) | (offset & 0xff), data); });
+ map(0xe000, 0xe12f).lrw8(
+ NAME([this](offs_t offset) { return m_k054539->read(((offset & 0x100) << 1) | (offset & 0xff)); }),
+ NAME([this](offs_t offset, u8 data) { m_k054539->write(((offset & 0x100) << 1) | (offset & 0xff), data); }));
map(0xf000, 0xf003).m("k054321", FUNC(k054321_device::sound_map));
map(0xf800, 0xf800).w(FUNC(prmrsocr_state::prmrsocr_audio_bankswitch_w));
}
@@ -1950,12 +1950,12 @@ void tmnt_state::cuebrick(machine_config &config)
K052109(config, m_k052109, 0);
m_k052109->set_palette(m_palette);
m_k052109->set_screen(nullptr);
- m_k052109->set_tile_callback(FUNC(tmnt_state::cuebrick_tile_callback), this);
+ m_k052109->set_tile_callback(FUNC(tmnt_state::cuebrick_tile_callback));
K051960(config, m_k051960, 0);
m_k051960->set_palette(m_palette);
m_k051960->set_screen("screen");
- m_k051960->set_sprite_callback(FUNC(tmnt_state::mia_sprite_callback), this);
+ m_k051960->set_sprite_callback(FUNC(tmnt_state::mia_sprite_callback));
m_k051960->set_plane_order(K051960_PLANEORDER_MIA);
/* sound hardware */
@@ -2000,12 +2000,12 @@ void tmnt_state::mia(machine_config &config)
K052109(config, m_k052109, 0);
m_k052109->set_palette(m_palette);
m_k052109->set_screen(nullptr);
- m_k052109->set_tile_callback(FUNC(tmnt_state::mia_tile_callback), this);
+ m_k052109->set_tile_callback(FUNC(tmnt_state::mia_tile_callback));
K051960(config, m_k051960, 0);
m_k051960->set_palette(m_palette);
m_k051960->set_screen("screen");
- m_k051960->set_sprite_callback(FUNC(tmnt_state::mia_sprite_callback), this);
+ m_k051960->set_sprite_callback(FUNC(tmnt_state::mia_sprite_callback));
m_k051960->set_plane_order(K051960_PLANEORDER_MIA);
/* sound hardware */
@@ -2063,12 +2063,12 @@ void tmnt_state::tmnt(machine_config &config)
K052109(config, m_k052109, 0);
m_k052109->set_palette(m_palette);
m_k052109->set_screen(nullptr);
- m_k052109->set_tile_callback(FUNC(tmnt_state::tmnt_tile_callback), this);
+ m_k052109->set_tile_callback(FUNC(tmnt_state::tmnt_tile_callback));
K051960(config, m_k051960, 0);
m_k051960->set_palette(m_palette);
m_k051960->set_screen("screen");
- m_k051960->set_sprite_callback(FUNC(tmnt_state::tmnt_sprite_callback), this);
+ m_k051960->set_sprite_callback(FUNC(tmnt_state::tmnt_sprite_callback));
m_k051960->set_plane_order(K051960_PLANEORDER_MIA);
/* sound hardware */
@@ -2123,12 +2123,12 @@ void tmnt_state::punkshot(machine_config &config)
K052109(config, m_k052109, 0);
m_k052109->set_palette(m_palette);
m_k052109->set_screen(nullptr);
- m_k052109->set_tile_callback(FUNC(tmnt_state::tmnt_tile_callback), this);
+ m_k052109->set_tile_callback(FUNC(tmnt_state::tmnt_tile_callback));
K051960(config, m_k051960, 0);
m_k051960->set_palette(m_palette);
m_k051960->set_screen("screen");
- m_k051960->set_sprite_callback(FUNC(tmnt_state::punkshot_sprite_callback), this);
+ m_k051960->set_sprite_callback(FUNC(tmnt_state::punkshot_sprite_callback));
K053251(config, m_k053251, 0);
@@ -2174,11 +2174,11 @@ void tmnt_state::lgtnfght(machine_config &config)
K052109(config, m_k052109, 0);
m_k052109->set_palette(m_palette);
m_k052109->set_screen(nullptr);
- m_k052109->set_tile_callback(FUNC(tmnt_state::tmnt_tile_callback), this);
+ m_k052109->set_tile_callback(FUNC(tmnt_state::tmnt_tile_callback));
K053245(config, m_k053245, 0);
m_k053245->set_palette(m_palette);
- m_k053245->set_sprite_callback(FUNC(tmnt_state::lgtnfght_sprite_callback), this);
+ m_k053245->set_sprite_callback(FUNC(tmnt_state::lgtnfght_sprite_callback));
K053251(config, m_k053251, 0);
@@ -2230,11 +2230,11 @@ void tmnt_state::blswhstl(machine_config &config)
K052109(config, m_k052109, 0);
m_k052109->set_palette(m_palette);
m_k052109->set_screen(nullptr);
- m_k052109->set_tile_callback(FUNC(tmnt_state::blswhstl_tile_callback), this);
+ m_k052109->set_tile_callback(FUNC(tmnt_state::blswhstl_tile_callback));
K053245(config, m_k053245, 0);
m_k053245->set_palette(m_palette);
- m_k053245->set_sprite_callback(FUNC(tmnt_state::blswhstl_sprite_callback), this);
+ m_k053245->set_sprite_callback(FUNC(tmnt_state::blswhstl_sprite_callback));
K053251(config, m_k053251, 0);
K054000(config, m_k054000, 0);
@@ -2307,11 +2307,11 @@ void glfgreat_state::glfgreat(machine_config &config)
K052109(config, m_k052109, 0);
m_k052109->set_palette(m_palette);
m_k052109->set_screen(nullptr);
- m_k052109->set_tile_callback(FUNC(glfgreat_state::tmnt_tile_callback), this);
+ m_k052109->set_tile_callback(FUNC(glfgreat_state::tmnt_tile_callback));
K053245(config, m_k053245, 0);
m_k053245->set_palette(m_palette);
- m_k053245->set_sprite_callback(FUNC(glfgreat_state::lgtnfght_sprite_callback), this);
+ m_k053245->set_sprite_callback(FUNC(glfgreat_state::lgtnfght_sprite_callback));
K053936(config, m_k053936, 0);
m_k053936->set_wrap(1);
@@ -2373,11 +2373,11 @@ void prmrsocr_state::prmrsocr(machine_config &config)
K052109(config, m_k052109, 0);
m_k052109->set_palette(m_palette);
m_k052109->set_screen(nullptr);
- m_k052109->set_tile_callback(FUNC(prmrsocr_state::tmnt_tile_callback), this);
+ m_k052109->set_tile_callback(FUNC(prmrsocr_state::tmnt_tile_callback));
K053245(config, m_k053245, 0);
m_k053245->set_palette(m_palette);
- m_k053245->set_sprite_callback(FUNC(prmrsocr_state::prmrsocr_sprite_callback), this);
+ m_k053245->set_sprite_callback(FUNC(prmrsocr_state::prmrsocr_sprite_callback));
K053936(config, m_k053936, 0);
m_k053936->set_offsets(85, 1);
@@ -2435,11 +2435,11 @@ void tmnt_state::tmnt2(machine_config &config)
K052109(config, m_k052109, 0);
m_k052109->set_palette(m_palette);
m_k052109->set_screen(nullptr);
- m_k052109->set_tile_callback(FUNC(tmnt_state::tmnt_tile_callback), this);
+ m_k052109->set_tile_callback(FUNC(tmnt_state::tmnt_tile_callback));
K053245(config, m_k053245, 0);
m_k053245->set_palette(m_palette);
- m_k053245->set_sprite_callback(FUNC(tmnt_state::lgtnfght_sprite_callback), this);
+ m_k053245->set_sprite_callback(FUNC(tmnt_state::lgtnfght_sprite_callback));
K053251(config, m_k053251, 0);
@@ -2490,11 +2490,11 @@ void tmnt_state::ssriders(machine_config &config)
K052109(config, m_k052109, 0);
m_k052109->set_palette(m_palette);
m_k052109->set_screen(nullptr);
- m_k052109->set_tile_callback(FUNC(tmnt_state::tmnt_tile_callback), this);
+ m_k052109->set_tile_callback(FUNC(tmnt_state::tmnt_tile_callback));
K053245(config, m_k053245, 0);
m_k053245->set_palette(m_palette);
- m_k053245->set_sprite_callback(FUNC(tmnt_state::lgtnfght_sprite_callback), this);
+ m_k053245->set_sprite_callback(FUNC(tmnt_state::lgtnfght_sprite_callback));
K053251(config, m_k053251, 0);
@@ -2537,11 +2537,11 @@ void tmnt_state::sunsetbl(machine_config &config)
K052109(config, m_k052109, 0);
m_k052109->set_palette(m_palette);
m_k052109->set_screen(nullptr);
- m_k052109->set_tile_callback(FUNC(tmnt_state::ssbl_tile_callback), this);
+ m_k052109->set_tile_callback(FUNC(tmnt_state::ssbl_tile_callback));
K053245(config, m_k053245, 0);
m_k053245->set_palette(m_palette);
- m_k053245->set_sprite_callback(FUNC(tmnt_state::lgtnfght_sprite_callback), this);
+ m_k053245->set_sprite_callback(FUNC(tmnt_state::lgtnfght_sprite_callback));
K053251(config, m_k053251, 0);
@@ -2585,12 +2585,12 @@ void tmnt_state::thndrx2(machine_config &config)
K052109(config, m_k052109, 0);
m_k052109->set_palette(m_palette);
m_k052109->set_screen(nullptr);
- m_k052109->set_tile_callback(FUNC(tmnt_state::tmnt_tile_callback), this);
+ m_k052109->set_tile_callback(FUNC(tmnt_state::tmnt_tile_callback));
K051960(config, m_k051960, 0);
m_k051960->set_palette(m_palette);
m_k051960->set_screen("screen");
- m_k051960->set_sprite_callback(FUNC(tmnt_state::thndrx2_sprite_callback), this);
+ m_k051960->set_sprite_callback(FUNC(tmnt_state::thndrx2_sprite_callback));
K053251(config, m_k053251, 0);
diff --git a/src/mame/drivers/tmspoker.cpp b/src/mame/drivers/tmspoker.cpp
index bf06b7801a0..a30894eda93 100644
--- a/src/mame/drivers/tmspoker.cpp
+++ b/src/mame/drivers/tmspoker.cpp
@@ -286,7 +286,7 @@ TILE_GET_INFO_MEMBER(tmspoker_state::get_bg_tile_info)
void tmspoker_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tmspoker_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tmspoker_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
uint32_t tmspoker_state::screen_update_tmspoker(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
diff --git a/src/mame/drivers/toaplan2.cpp b/src/mame/drivers/toaplan2.cpp
index 64783f2a609..d4df4d84480 100644
--- a/src/mame/drivers/toaplan2.cpp
+++ b/src/mame/drivers/toaplan2.cpp
@@ -433,7 +433,7 @@ MACHINE_RESET_MEMBER(toaplan2_state,toaplan2)
// All games execute a RESET instruction on init, presumably to reset the sound CPU.
// This is important for games with common RAM; the RAM test will fail
// when leaving service mode if the sound CPU is not reset.
- m_maincpu->set_reset_callback(write_line_delegate(FUNC(toaplan2_state::toaplan2_reset),this));
+ m_maincpu->set_reset_callback(*this, FUNC(toaplan2_state::toaplan2_reset));
}
@@ -555,13 +555,13 @@ void toaplan2_state::init_enmadaio()
void toaplan2_state::cpu_space_fixeightbl_map(address_map &map)
{
map(0xfffff0, 0xffffff).m(m_maincpu, FUNC(m68000_base_device::autovectors_map));
- map(0xfffff5, 0xfffff5).lr8("irq 2", [this]() { m_maincpu->set_input_line(M68K_IRQ_2, CLEAR_LINE); return m68000_device::autovector(2); });
+ map(0xfffff5, 0xfffff5).lr8(NAME([this] () { m_maincpu->set_input_line(M68K_IRQ_2, CLEAR_LINE); return m68000_device::autovector(2); }));
}
void toaplan2_state::cpu_space_pipibibsbl_map(address_map &map)
{
map(0xfffff0, 0xffffff).m(m_maincpu, FUNC(m68000_base_device::autovectors_map));
- map(0xfffff9, 0xfffff9).lr8("irq 4", [this]() { m_maincpu->set_input_line(M68K_IRQ_4, CLEAR_LINE); return m68000_device::autovector(4); });
+ map(0xfffff9, 0xfffff9).lr8(NAME([this] () { m_maincpu->set_input_line(M68K_IRQ_4, CLEAR_LINE); return m68000_device::autovector(4); }));
}
@@ -1258,9 +1258,9 @@ void toaplan2_state::batrider_68k_mem(address_map &map)
map(0x200000, 0x207fff).ram().share("mainram");
map(0x208000, 0x20ffff).ram();
map(0x300000, 0x37ffff).r(FUNC(toaplan2_state::batrider_z80rom_r));
- map(0x400000, 0x40000d).lrw16("gp9001_invert_rw",
- [this](offs_t offset, u16 mem_mask) { return m_vdp[0]->read(offset ^ (0xc/2), mem_mask); },
- [this](offs_t offset, u16 data, u16 mem_mask) { m_vdp[0]->write(offset ^ (0xc/2), data, mem_mask); });
+ map(0x400000, 0x40000d).lrw16(
+ NAME([this](offs_t offset, u16 mem_mask) { return m_vdp[0]->read(offset ^ (0xc/2), mem_mask); }),
+ NAME([this](offs_t offset, u16 data, u16 mem_mask) { m_vdp[0]->write(offset ^ (0xc/2), data, mem_mask); }));
map(0x500000, 0x500001).portr("IN");
map(0x500002, 0x500003).portr("SYS-DSW");
map(0x500004, 0x500005).portr("DSW");
@@ -1287,9 +1287,9 @@ void toaplan2_state::bbakraid_68k_mem(address_map &map)
map(0x200000, 0x207fff).ram().share("mainram");
map(0x208000, 0x20ffff).ram();
map(0x300000, 0x33ffff).r(FUNC(toaplan2_state::batrider_z80rom_r));
- map(0x400000, 0x40000d).lrw16("gp9001_invert_rw",
- [this](offs_t offset, u16 mem_mask) { return m_vdp[0]->read(offset ^ (0xc/2), mem_mask); },
- [this](offs_t offset, u16 data, u16 mem_mask) { m_vdp[0]->write(offset ^ (0xc/2), data, mem_mask); });
+ map(0x400000, 0x40000d).lrw16(
+ NAME([this](offs_t offset, u16 mem_mask) { return m_vdp[0]->read(offset ^ (0xc/2), mem_mask); }),
+ NAME([this](offs_t offset, u16 data, u16 mem_mask) { m_vdp[0]->write(offset ^ (0xc/2), data, mem_mask); }));
map(0x500000, 0x500001).portr("IN");
map(0x500002, 0x500003).portr("SYS-DSW");
map(0x500004, 0x500005).portr("DSW");
@@ -4055,7 +4055,7 @@ void toaplan2_state::batrider(machine_config &config)
GP9001_VDP(config, m_vdp[0], 27_MHz_XTAL);
m_vdp[0]->set_palette(m_palette);
- m_vdp[0]->set_tile_callback(gp9001vdp_device::gp9001_cb_delegate(FUNC(toaplan2_state::batrider_bank_cb), this));
+ m_vdp[0]->set_tile_callback(FUNC(toaplan2_state::batrider_bank_cb));
m_vdp[0]->vint_out_cb().set_inputline(m_maincpu, M68K_IRQ_2);
MCFG_VIDEO_START_OVERRIDE(toaplan2_state,batrider)
@@ -4121,7 +4121,7 @@ void toaplan2_state::bbakraid(machine_config &config)
GP9001_VDP(config, m_vdp[0], 27_MHz_XTAL);
m_vdp[0]->set_palette(m_palette);
- m_vdp[0]->set_tile_callback(gp9001vdp_device::gp9001_cb_delegate(FUNC(toaplan2_state::batrider_bank_cb), this));
+ m_vdp[0]->set_tile_callback(FUNC(toaplan2_state::batrider_bank_cb));
m_vdp[0]->vint_out_cb().set_inputline(m_maincpu, M68K_IRQ_1);
MCFG_VIDEO_START_OVERRIDE(toaplan2_state,batrider)
diff --git a/src/mame/drivers/tomy_princ.cpp b/src/mame/drivers/tomy_princ.cpp
index 2948c11711b..7723dcfcf17 100644
--- a/src/mame/drivers/tomy_princ.cpp
+++ b/src/mame/drivers/tomy_princ.cpp
@@ -124,10 +124,10 @@ uint32_t tomy_princ_state::screen_update_tomy_princ(screen_device &screen, bitma
// fe2d25
void tomy_princ_state::princ_map(address_map &map)
{
- map(0x000001, 0x000001).lw8("free2", [](u8 data) { return 0xff; });
+ map(0x000001, 0x000001).lw8([](u8 data) { return 0xff; }, "free2");
map(0x000008, 0x000008).r(FUNC(tomy_princ_state::read_gpu_status));
- map(0x68ff00, 0x68ff00).lw8("free1", [this](u8 data) { bFirstPort8Read = true; });
- map(0x68ff44, 0x68ff44).lr8("free0", [this]() -> u8 { return m_screen->vblank() ? 0x11 : 0x10; });
+ map(0x68ff00, 0x68ff00).lw8([this](u8 data) { bFirstPort8Read = true; }, "free1");
+ map(0x68ff44, 0x68ff44).lr8([this]() -> u8 { return m_screen->vblank() ? 0x11 : 0x10; }, "free0");
map(0xe00000, 0xe07fff).ram(); // stacks are placed here
map(0xf00000, 0xffffff).rom().region("maincpu", 0x00000);
}
diff --git a/src/mame/drivers/tourvis.cpp b/src/mame/drivers/tourvis.cpp
index d5f46c0fd2a..010719b1e3e 100644
--- a/src/mame/drivers/tourvis.cpp
+++ b/src/mame/drivers/tourvis.cpp
@@ -433,7 +433,7 @@ void tourvision_state::tourvision(machine_config &config)
SPEAKER(config, "rspeaker").front_right();
generic_cartslot_device &cartslot(GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "tourvision_cart", "bin"));
- cartslot.set_device_load(FUNC(tourvision_state::cart_load), this);
+ cartslot.set_device_load(FUNC(tourvision_state::cart_load));
cartslot.set_must_be_loaded(true);
SOFTWARE_LIST(config, "tv_list").set_original("pce_tourvision");
diff --git a/src/mame/drivers/trackfld.cpp b/src/mame/drivers/trackfld.cpp
index ee54ef0d337..4a68de3cb01 100644
--- a/src/mame/drivers/trackfld.cpp
+++ b/src/mame/drivers/trackfld.cpp
@@ -1658,7 +1658,7 @@ void trackfld_state::init_atlantol()
downcast<konami1_device &>(*m_maincpu).set_encryption_boundary(0x6000);
- space.install_write_handler(0x0800, 0x0800, write8_delegate(FUNC(trackfld_state::atlantol_gfxbank_w),this));
+ space.install_write_handler(0x0800, 0x0800, write8_delegate(*this, FUNC(trackfld_state::atlantol_gfxbank_w)));
space.nop_write(0x1000, 0x1000);
/* unmapped areas read as ROM */
diff --git a/src/mame/drivers/travrusa.cpp b/src/mame/drivers/travrusa.cpp
index e692ebb0f08..a409cbbefd6 100644
--- a/src/mame/drivers/travrusa.cpp
+++ b/src/mame/drivers/travrusa.cpp
@@ -608,7 +608,7 @@ READ8_MEMBER(travrusa_state::shtridrb_port11_r)
void travrusa_state::init_shtridrb()
{
- m_maincpu->space(AS_IO).install_read_handler(0x11, 0x11, 0, 0xff00, 0, read8_delegate(FUNC(travrusa_state::shtridrb_port11_r),this));
+ m_maincpu->space(AS_IO).install_read_handler(0x11, 0x11, 0, 0xff00, 0, read8_delegate(*this, FUNC(travrusa_state::shtridrb_port11_r)));
}
diff --git a/src/mame/drivers/trs80.cpp b/src/mame/drivers/trs80.cpp
index 62bb9a32ce6..6c77c12ecf0 100644
--- a/src/mame/drivers/trs80.cpp
+++ b/src/mame/drivers/trs80.cpp
@@ -539,7 +539,7 @@ void trs80_state::model1(machine_config &config) // model I, level II
m_cassette->set_formats(trs80l2_cassette_formats);
m_cassette->set_default_state(CASSETTE_PLAY);
- QUICKLOAD(config, "quickload", "cmd", attotime::from_seconds(1)).set_load_callback(FUNC(trs80_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "cmd", attotime::from_seconds(1)).set_load_callback(FUNC(trs80_state::quickload_cb));
FD1793(config, m_fdc, 4_MHz_XTAL / 4); // todo: should be fd1771
m_fdc->intrq_wr_callback().set(FUNC(trs80_state::intrq_w));
diff --git a/src/mame/drivers/trs80dt1.cpp b/src/mame/drivers/trs80dt1.cpp
index 788e7a698b1..978c2881a89 100644
--- a/src/mame/drivers/trs80dt1.cpp
+++ b/src/mame/drivers/trs80dt1.cpp
@@ -348,7 +348,7 @@ void trs80dt1_state::trs80dt1(machine_config &config)
I8276(config, m_crtc, 12480000 / 8);
m_crtc->set_character_width(8);
- m_crtc->set_display_callback(FUNC(trs80dt1_state::crtc_update_row), this);
+ m_crtc->set_display_callback(FUNC(trs80dt1_state::crtc_update_row));
m_crtc->drq_wr_callback().set_inputline(m_maincpu, MCS51_INT0_LINE); // BRDY pin goes through inverter to /INT0, so we don't invert
m_crtc->irq_wr_callback().set(m_7474, FUNC(ttl7474_device::clear_w)); // INT pin
m_crtc->irq_wr_callback().append(m_7474, FUNC(ttl7474_device::d_w));
diff --git a/src/mame/drivers/trs80m2.cpp b/src/mame/drivers/trs80m2.cpp
index 8ac7584d544..85e9e14fb61 100644
--- a/src/mame/drivers/trs80m2.cpp
+++ b/src/mame/drivers/trs80m2.cpp
@@ -729,7 +729,7 @@ void trs80m2_state::trs80m2(machine_config &config)
m_crtc->set_screen(SCREEN_TAG);
m_crtc->set_show_border_area(true);
m_crtc->set_char_width(8);
- m_crtc->set_update_row_callback(FUNC(trs80m2_state::crtc_update_row), this);
+ m_crtc->set_update_row_callback(FUNC(trs80m2_state::crtc_update_row));
m_crtc->out_de_callback().set(FUNC(trs80m2_state::de_w));
m_crtc->out_vsync_callback().set(FUNC(trs80m2_state::vsync_w));
@@ -821,7 +821,7 @@ void trs80m16_state::trs80m16(machine_config &config)
m_crtc->set_screen(SCREEN_TAG);
m_crtc->set_show_border_area(true);
m_crtc->set_char_width(8);
- m_crtc->set_update_row_callback(FUNC(trs80m2_state::crtc_update_row), this);
+ m_crtc->set_update_row_callback(FUNC(trs80m2_state::crtc_update_row));
m_crtc->out_de_callback().set(FUNC(trs80m2_state::de_w));
m_crtc->out_vsync_callback().set(FUNC(trs80m2_state::vsync_w));
diff --git a/src/mame/drivers/trs80m3.cpp b/src/mame/drivers/trs80m3.cpp
index 114671e0bf2..5a14b7bbdf4 100644
--- a/src/mame/drivers/trs80m3.cpp
+++ b/src/mame/drivers/trs80m3.cpp
@@ -360,7 +360,7 @@ void trs80m3_state::model3(machine_config &config)
m_cassette->set_default_state(CASSETTE_PLAY);
m_cassette->add_route(ALL_OUTPUTS, "mono", 0.05);
- QUICKLOAD(config, "quickload", "cmd", attotime::from_seconds(1)).set_load_callback(FUNC(trs80m3_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "cmd", attotime::from_seconds(1)).set_load_callback(FUNC(trs80m3_state::quickload_cb));
FD1793(config, m_fdc, 4_MHz_XTAL / 4);
m_fdc->intrq_wr_callback().set(FUNC(trs80m3_state::intrq_w));
diff --git a/src/mame/drivers/trvmadns.cpp b/src/mame/drivers/trvmadns.cpp
index 9c7af1d9443..a63eb5dfce0 100644
--- a/src/mame/drivers/trvmadns.cpp
+++ b/src/mame/drivers/trvmadns.cpp
@@ -330,7 +330,7 @@ TILE_GET_INFO_MEMBER(trvmadns_state::get_bg_tile_info)
void trvmadns_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(trvmadns_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(trvmadns_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
// fg_tilemap->set_transparent_pen(1);
diff --git a/src/mame/drivers/ts803.cpp b/src/mame/drivers/ts803.cpp
index af40eda32b6..54ac69a2c66 100644
--- a/src/mame/drivers/ts803.cpp
+++ b/src/mame/drivers/ts803.cpp
@@ -442,8 +442,8 @@ void ts803_state::ts803(machine_config &config)
crtc.set_screen("screen");
crtc.set_show_border_area(false);
crtc.set_char_width(8);
- crtc.set_update_row_callback(FUNC(ts803_state::crtc_update_row), this);
- crtc.set_on_update_addr_change_callback(FUNC(ts803_state::crtc_update_addr), this);
+ crtc.set_update_row_callback(FUNC(ts803_state::crtc_update_row));
+ crtc.set_on_update_addr_change_callback(FUNC(ts803_state::crtc_update_addr));
clock_device &sti_clock(CLOCK(config, "sti_clock", 16_MHz_XTAL / 13));
sti_clock.signal_handler().set("sti", FUNC(z80sti_device::tc_w));
diff --git a/src/mame/drivers/tsamurai.cpp b/src/mame/drivers/tsamurai.cpp
index 1b189d00860..0182fd37168 100644
--- a/src/mame/drivers/tsamurai.cpp
+++ b/src/mame/drivers/tsamurai.cpp
@@ -1395,7 +1395,7 @@ ROM_END
void tsamurai_state::init_the26thz()
{
m_maincpu->space(AS_PROGRAM).unmap_read(0xd803, 0xd803);
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xd803, 0xd803, read8_delegate(FUNC(tsamurai_state::tsamurai_unknown_d803_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xd803, 0xd803, read8_delegate(*this, FUNC(tsamurai_state::tsamurai_unknown_d803_r)));
}
GAME( 1984, vsgongf, 0, vsgongf, vsgongf, tsamurai_state, empty_init, ROT90, "Kaneko", "VS Gong Fight", MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE | MACHINE_UNEMULATED_PROTECTION )
diff --git a/src/mame/drivers/tumbleb.cpp b/src/mame/drivers/tumbleb.cpp
index 51b5c7a0fa2..d5d3c567f85 100644
--- a/src/mame/drivers/tumbleb.cpp
+++ b/src/mame/drivers/tumbleb.cpp
@@ -3711,7 +3711,7 @@ void tumbleb_state::init_tumbleb2()
#if TUMBLEP_HACK
tumblepb_patch_code(0x000132);
#endif
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x100000, 0x100001, write16_delegate(FUNC(tumbleb_state::tumbleb2_soundmcu_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x100000, 0x100001, write16_delegate(*this, FUNC(tumbleb_state::tumbleb2_soundmcu_w)));
}
@@ -3756,7 +3756,7 @@ READ16_MEMBER(tumbleb_state::bcstory_1a0_read)
void tumbleb_state::init_bcstory()
{
tumblepb_gfx_rearrange(1);
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x180008, 0x180009, read16_delegate(FUNC(tumbleb_state::bcstory_1a0_read),this)); // io should be here??
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x180008, 0x180009, read16_delegate(*this, FUNC(tumbleb_state::bcstory_1a0_read))); // io should be here??
}
@@ -3817,27 +3817,27 @@ void tumbleb_state::init_chokchok()
{
init_htchctch();
- /* different palette format, closer to tumblep -- is this controlled by a register? the palette was right with the hatch catch trojan */
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x140000, 0x140fff, write16s_delegate(FUNC(palette_device::write16), m_palette.target()));
+ // different palette format, closer to tumblep -- is this controlled by a register? the palette was right with the hatch catch trojan
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x140000, 0x140fff, write16s_delegate(*m_palette, FUNC(palette_device::write16)));
- /* slightly different banking */
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x100002, 0x100003, write16_delegate(FUNC(tumbleb_state::chokchok_tilebank_w),this));
+ // slightly different banking
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x100002, 0x100003, write16_delegate(*this, FUNC(tumbleb_state::chokchok_tilebank_w)));
}
void tumbleb_state::init_carket()
{
init_htchctch();
- /* slightly different banking */
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x100002, 0x100003, write16_delegate(FUNC(tumbleb_state::chokchok_tilebank_w),this));
+ // slightly different banking
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x100002, 0x100003, write16_delegate(*this, FUNC(tumbleb_state::chokchok_tilebank_w)));
}
void tumbleb_state::init_wlstar()
{
tumblepb_gfx_rearrange(1);
- /* slightly different banking */
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x100002, 0x100003, write16_delegate(FUNC(tumbleb_state::wlstar_tilebank_w),this));
+ // slightly different banking
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x100002, 0x100003, write16_delegate(*this, FUNC(tumbleb_state::wlstar_tilebank_w)));
m_protbase = 0x0000;
}
diff --git a/src/mame/drivers/tv910.cpp b/src/mame/drivers/tv910.cpp
index fbf245f8e86..3df409eb3ef 100644
--- a/src/mame/drivers/tv910.cpp
+++ b/src/mame/drivers/tv910.cpp
@@ -525,8 +525,8 @@ void tv910_state::tv910(machine_config &config)
m_crtc->set_screen("screen");
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8);
- m_crtc->set_update_row_callback(FUNC(tv910_state::crtc_update_row), this);
- m_crtc->set_on_update_addr_change_callback(FUNC(tv910_state::crtc_update_addr), this);
+ m_crtc->set_update_row_callback(FUNC(tv910_state::crtc_update_row));
+ m_crtc->set_on_update_addr_change_callback(FUNC(tv910_state::crtc_update_addr));
m_crtc->out_vsync_callback().set(FUNC(tv910_state::vbl_w));
AY3600(config, m_ay3600, 0);
diff --git a/src/mame/drivers/tv950.cpp b/src/mame/drivers/tv950.cpp
index 75c5721fbed..50380a53fbe 100644
--- a/src/mame/drivers/tv950.cpp
+++ b/src/mame/drivers/tv950.cpp
@@ -298,8 +298,8 @@ void tv950_state::tv950(machine_config &config)
m_crtc->set_screen("screen");
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(14);
- m_crtc->set_update_row_callback(FUNC(tv950_state::crtc_update_row), this);
- m_crtc->set_on_update_addr_change_callback(FUNC(tv950_state::crtc_update_addr), this);
+ m_crtc->set_update_row_callback(FUNC(tv950_state::crtc_update_row));
+ m_crtc->set_on_update_addr_change_callback(FUNC(tv950_state::crtc_update_addr));
m_crtc->out_hsync_callback().set(m_via, FUNC(via6522_device::write_pb6)).invert();
m_crtc->out_vsync_callback().set(FUNC(tv950_state::crtc_vs_w));
m_crtc->set_screen(nullptr);
diff --git a/src/mame/drivers/tvc.cpp b/src/mame/drivers/tvc.cpp
index 85124c69a80..e1bee4affde 100644
--- a/src/mame/drivers/tvc.cpp
+++ b/src/mame/drivers/tvc.cpp
@@ -218,7 +218,7 @@ void tvc_state::set_mem_page(uint8_t data)
case 0xc0 : // External ROM selected
TVC_INSTALL_ROM_BANK(3, "bank4", 0xc000, 0xffff);
membank("bank4")->set_base(m_ext->base());
- space.install_readwrite_handler (0xc000, 0xdfff, read8_delegate(FUNC(tvc_state::expansion_r), this), write8_delegate(FUNC(tvc_state::expansion_w), this), 0);
+ space.install_readwrite_handler(0xc000, 0xdfff, read8_delegate(*this, FUNC(tvc_state::expansion_r)), write8_delegate(*this, FUNC(tvc_state::expansion_w)), 0);
m_bank_type[3] = -1;
break;
}
@@ -787,7 +787,7 @@ void tvc_state::tvc(machine_config &config)
crtc.set_screen("screen");
crtc.set_show_border_area(false);
crtc.set_char_width(8); /*?*/
- crtc.set_update_row_callback(FUNC(tvc_state::crtc_update_row), this);
+ crtc.set_update_row_callback(FUNC(tvc_state::crtc_update_row));
crtc.out_cur_callback().set(FUNC(tvc_state::int_ff_set));
/* internal ram */
@@ -830,7 +830,7 @@ void tvc_state::tvc(machine_config &config)
m_cassette->add_route(ALL_OUTPUTS, "mono", 0.05);
/* quickload */
- QUICKLOAD(config, "quickload", "cas", attotime::from_seconds(6)).set_load_callback(FUNC(tvc_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "cas", attotime::from_seconds(6)).set_load_callback(FUNC(tvc_state::quickload_cb));
/* Software lists */
SOFTWARE_LIST(config, "cart_list").set_original("tvc_cart");
diff --git a/src/mame/drivers/twin16.cpp b/src/mame/drivers/twin16.cpp
index b43207e3c00..3f9f925f1d8 100644
--- a/src/mame/drivers/twin16.cpp
+++ b/src/mame/drivers/twin16.cpp
@@ -1255,7 +1255,7 @@ void cuebrickj_state::init_cuebrickj()
address_space &space = m_maincpu->space(AS_PROGRAM);
space.install_readwrite_bank(0x0b0000, 0x0b03ff, "nvrambank");
- space.install_write_handler( 0x0b0400, 0x0b0401, WRITE8_DELEGATE(cuebrickj_state, nvram_bank_w), 0xff00);
+ space.install_write_handler( 0x0b0400, 0x0b0401, write8_delegate(*this, FUNC(cuebrickj_state::nvram_bank_w)), 0xff00);
membank("nvrambank")->configure_entries(0, 0x20, m_nvram, 0x400);
diff --git a/src/mame/drivers/ultraman.cpp b/src/mame/drivers/ultraman.cpp
index 112f532b91e..059da36369f 100644
--- a/src/mame/drivers/ultraman.cpp
+++ b/src/mame/drivers/ultraman.cpp
@@ -206,22 +206,22 @@ void ultraman_state::ultraman(machine_config &config)
K051960(config, m_k051960, 0);
m_k051960->set_palette("palette");
m_k051960->set_screen("screen");
- m_k051960->set_sprite_callback(FUNC(ultraman_state::sprite_callback), this);
+ m_k051960->set_sprite_callback(FUNC(ultraman_state::sprite_callback));
K051316(config, m_k051316[0], 0);
m_k051316[0]->set_palette("palette");
m_k051316[0]->set_offsets(8, 0);
- m_k051316[0]->set_zoom_callback(FUNC(ultraman_state::zoom_callback_1), this);
+ m_k051316[0]->set_zoom_callback(FUNC(ultraman_state::zoom_callback_1));
K051316(config, m_k051316[1], 0);
m_k051316[1]->set_palette("palette");
m_k051316[1]->set_offsets(8, 0);
- m_k051316[1]->set_zoom_callback(FUNC(ultraman_state::zoom_callback_2), this);
+ m_k051316[1]->set_zoom_callback(FUNC(ultraman_state::zoom_callback_2));
K051316(config, m_k051316[2], 0);
m_k051316[2]->set_palette("palette");
m_k051316[2]->set_offsets(8, 0);
- m_k051316[2]->set_zoom_callback(FUNC(ultraman_state::zoom_callback_3), this);
+ m_k051316[2]->set_zoom_callback(FUNC(ultraman_state::zoom_callback_3));
/* sound hardware */
SPEAKER(config, "lspeaker").front_left();
diff --git a/src/mame/drivers/umipoker.cpp b/src/mame/drivers/umipoker.cpp
index 4ba2e53f8ee..9d7b3d4f0b8 100644
--- a/src/mame/drivers/umipoker.cpp
+++ b/src/mame/drivers/umipoker.cpp
@@ -159,10 +159,10 @@ TILE_GET_INFO_MEMBER(umipoker_state::get_tile_info_3)
void umipoker_state::video_start()
{
- m_tilemap_0 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(umipoker_state::get_tile_info_0),this),TILEMAP_SCAN_ROWS,8,8,64,32);
- m_tilemap_1 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(umipoker_state::get_tile_info_1),this),TILEMAP_SCAN_ROWS,8,8,64,32);
- m_tilemap_2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(umipoker_state::get_tile_info_2),this),TILEMAP_SCAN_ROWS,8,8,64,32);
- m_tilemap_3 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(umipoker_state::get_tile_info_3),this),TILEMAP_SCAN_ROWS,8,8,64,32);
+ m_tilemap_0 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(umipoker_state::get_tile_info_0)), TILEMAP_SCAN_ROWS, 8,8, 64,32);
+ m_tilemap_1 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(umipoker_state::get_tile_info_1)), TILEMAP_SCAN_ROWS, 8,8, 64,32);
+ m_tilemap_2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(umipoker_state::get_tile_info_2)), TILEMAP_SCAN_ROWS, 8,8, 64,32);
+ m_tilemap_3 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(umipoker_state::get_tile_info_3)), TILEMAP_SCAN_ROWS, 8,8, 64,32);
m_tilemap_0->set_transparent_pen(0);
m_tilemap_1->set_transparent_pen(0);
diff --git a/src/mame/drivers/unichamp.cpp b/src/mame/drivers/unichamp.cpp
index 2330b244fc0..66d3b3870af 100644
--- a/src/mame/drivers/unichamp.cpp
+++ b/src/mame/drivers/unichamp.cpp
@@ -186,10 +186,10 @@ void unichamp_state::machine_start()
ptr[i+1] = TEMP;
}
m_maincpu->space(AS_PROGRAM).install_read_handler(0x1000, 0x17ff,
- read16s_delegate(FUNC(generic_slot_device::read16_rom),(generic_slot_device*)m_cart));
+ read16s_delegate(*m_cart, FUNC(generic_slot_device::read16_rom)));
} else
m_maincpu->space(AS_PROGRAM).install_read_handler(0x1000, 0x17ff,
- read16_delegate(FUNC(unichamp_state::read_ff), this));
+ read16_delegate(*this, FUNC(unichamp_state::read_ff)));
}
/* Set Reset and INTR/INTRM Vector */
diff --git a/src/mame/drivers/unior.cpp b/src/mame/drivers/unior.cpp
index a5cd9b57f48..287099417bf 100644
--- a/src/mame/drivers/unior.cpp
+++ b/src/mame/drivers/unior.cpp
@@ -495,7 +495,7 @@ void unior_state::unior(machine_config &config)
i8275_device &crtc(I8275(config, "crtc", XTAL(20'000'000) / 12));
crtc.set_character_width(6);
- crtc.set_display_callback(FUNC(unior_state::display_pixels), this);
+ crtc.set_display_callback(FUNC(unior_state::display_pixels));
crtc.drq_wr_callback().set(m_dma, FUNC(i8257_device::dreq2_w));
crtc.set_screen("screen");
}
diff --git a/src/mame/drivers/unistar.cpp b/src/mame/drivers/unistar.cpp
index c5f8360489d..a2f488d3e19 100644
--- a/src/mame/drivers/unistar.cpp
+++ b/src/mame/drivers/unistar.cpp
@@ -153,7 +153,7 @@ void unistar_state::unistar(machine_config &config)
i8275_device &crtc(I8275(config, "crtc", 20_MHz_XTAL / 9));
crtc.set_character_width(9);
- crtc.set_display_callback(FUNC(unistar_state::draw_character), this);
+ crtc.set_display_callback(FUNC(unistar_state::draw_character));
crtc.set_screen("screen");
crtc.drq_wr_callback().set("dmac", FUNC(am9517a_device::dreq2_w));
crtc.irq_wr_callback().set("rst75", FUNC(input_merger_device::in_w<0>));
diff --git a/src/mame/drivers/usgames.cpp b/src/mame/drivers/usgames.cpp
index 202f1be6322..e2e25062703 100644
--- a/src/mame/drivers/usgames.cpp
+++ b/src/mame/drivers/usgames.cpp
@@ -242,7 +242,7 @@ void usgames_state::usg32(machine_config &config)
crtc.set_screen("screen");
crtc.set_show_border_area(false);
crtc.set_char_width(8);
- crtc.set_update_row_callback(FUNC(usgames_state::update_row), this);
+ crtc.set_update_row_callback(FUNC(usgames_state::update_row));
/* sound hardware */
SPEAKER(config, "mono").front_center();
diff --git a/src/mame/drivers/uzebox.cpp b/src/mame/drivers/uzebox.cpp
index dff2ec63c7a..a4b638a0c2a 100644
--- a/src/mame/drivers/uzebox.cpp
+++ b/src/mame/drivers/uzebox.cpp
@@ -87,7 +87,7 @@ void uzebox_state::machine_start()
m_screen->register_screen_bitmap(m_bitmap);
if (m_cart->exists())
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x0000, 0xffff, read8sm_delegate(FUNC(generic_slot_device::read_rom),(generic_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x0000, 0xffff, read8sm_delegate(m_cart, FUNC(generic_slot_device::read_rom)));
}
void uzebox_state::machine_reset()
@@ -307,7 +307,7 @@ void uzebox_state::uzebox(machine_config &config)
GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "uzebox", "bin,uze");
m_cart->set_must_be_loaded(true);
- m_cart->set_device_load(FUNC(uzebox_state::cart_load), this);
+ m_cart->set_device_load(FUNC(uzebox_state::cart_load));
SNES_CONTROL_PORT(config, m_ctrl1, snes_control_port_devices, "joypad");
SNES_CONTROL_PORT(config, m_ctrl2, snes_control_port_devices, "joypad");
diff --git a/src/mame/drivers/v6809.cpp b/src/mame/drivers/v6809.cpp
index 5095945e919..96b80f7414f 100644
--- a/src/mame/drivers/v6809.cpp
+++ b/src/mame/drivers/v6809.cpp
@@ -308,8 +308,8 @@ void v6809_state::v6809(machine_config &config)
m_crtc->set_screen("screen");
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8);
- m_crtc->set_update_row_callback(FUNC(v6809_state::crtc_update_row), this);
- m_crtc->set_on_update_addr_change_callback(FUNC(v6809_state::crtc_update_addr), this);
+ m_crtc->set_update_row_callback(FUNC(v6809_state::crtc_update_row));
+ m_crtc->set_on_update_addr_change_callback(FUNC(v6809_state::crtc_update_addr));
generic_keyboard_device &keyboard(GENERIC_KEYBOARD(config, "keyboard", 0));
keyboard.set_keyboard_callback(FUNC(v6809_state::kbd_put));
diff --git a/src/mame/drivers/vamphalf.cpp b/src/mame/drivers/vamphalf.cpp
index a1c19cca1a0..61dd7388f0b 100644
--- a/src/mame/drivers/vamphalf.cpp
+++ b/src/mame/drivers/vamphalf.cpp
@@ -3262,7 +3262,7 @@ READ16_MEMBER(vamphalf_state::boonggab_speedup_r)
void vamphalf_state::init_vamphalf()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x0004a7b8, 0x0004a7b9, read16_delegate(FUNC(vamphalf_state::vamphalf_speedup_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x0004a7b8, 0x0004a7b9, read16_delegate(*this, FUNC(vamphalf_state::vamphalf_speedup_r)));
m_palshift = 0;
m_flip_bit = 0x80;
@@ -3270,7 +3270,7 @@ void vamphalf_state::init_vamphalf()
void vamphalf_state::init_vamphalfr1()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x0004a468, 0x0004a469, read16_delegate(FUNC(vamphalf_state::vamphalfr1_speedup_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x0004a468, 0x0004a469, read16_delegate(*this, FUNC(vamphalf_state::vamphalfr1_speedup_r)));
m_palshift = 0;
m_flip_bit = 0x80;
@@ -3278,7 +3278,7 @@ void vamphalf_state::init_vamphalfr1()
void vamphalf_state::init_vamphafk()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x0004a648, 0x0004a649, read16_delegate(FUNC(vamphalf_state::vamphafk_speedup_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x0004a648, 0x0004a649, read16_delegate(*this, FUNC(vamphalf_state::vamphafk_speedup_r)));
m_palshift = 0;
m_flip_bit = 0x80;
@@ -3286,8 +3286,8 @@ void vamphalf_state::init_vamphafk()
void vamphalf_qdsp_state::init_misncrft()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x000741e8, 0x000741e9, read16_delegate(FUNC(vamphalf_qdsp_state::misncrft_speedup_r), this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x00072e2c, 0x00072e2d, read16_delegate(FUNC(vamphalf_qdsp_state::misncrfta_speedup_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x000741e8, 0x000741e9, read16_delegate(*this, FUNC(vamphalf_qdsp_state::misncrft_speedup_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x00072e2c, 0x00072e2d, read16_delegate(*this, FUNC(vamphalf_qdsp_state::misncrfta_speedup_r)));
m_palshift = 0;
m_flip_bit = 1;
@@ -3298,7 +3298,7 @@ void vamphalf_qdsp_state::init_misncrft()
void vamphalf_state::init_coolmini()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x000d2df8, 0x000d2df9, read16_delegate(FUNC(vamphalf_state::coolmini_speedup_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x000d2df8, 0x000d2df9, read16_delegate(*this, FUNC(vamphalf_state::coolmini_speedup_r)));
m_palshift = 0;
m_flip_bit = 1;
@@ -3306,7 +3306,7 @@ void vamphalf_state::init_coolmini()
void vamphalf_state::init_coolminii()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x000d30a8, 0x000d30a9, read16_delegate(FUNC(vamphalf_state::coolminii_speedup_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x000d30a8, 0x000d30a9, read16_delegate(*this, FUNC(vamphalf_state::coolminii_speedup_r)));
m_palshift = 0;
m_flip_bit = 1;
@@ -3315,7 +3315,7 @@ void vamphalf_state::init_coolminii()
void vamphalf_state::init_mrkicker()
{
banked_oki(0);
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x00063fc0, 0x00063fc1, read16_delegate(FUNC(vamphalf_state::mrkicker_speedup_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x00063fc0, 0x00063fc1, read16_delegate(*this, FUNC(vamphalf_state::mrkicker_speedup_r)));
m_palshift = 0;
m_flip_bit = 1;
@@ -3323,7 +3323,7 @@ void vamphalf_state::init_mrkicker()
void vamphalf_state::init_suplup()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x0011605c, 0x0011605d, read16_delegate(FUNC(vamphalf_state::suplup_speedup_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x0011605c, 0x0011605d, read16_delegate(*this, FUNC(vamphalf_state::suplup_speedup_r)));
m_palshift = 8;
/* no flipscreen */
@@ -3331,7 +3331,7 @@ void vamphalf_state::init_suplup()
void vamphalf_state::init_luplup()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x00115e84, 0x00115e85, read16_delegate(FUNC(vamphalf_state::luplup_speedup_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x00115e84, 0x00115e85, read16_delegate(*this, FUNC(vamphalf_state::luplup_speedup_r)));
m_palshift = 8;
/* no flipscreen */
@@ -3339,7 +3339,7 @@ void vamphalf_state::init_luplup()
void vamphalf_state::init_luplup29()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x00113f08, 0x00113f09, read16_delegate(FUNC(vamphalf_state::luplup29_speedup_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x00113f08, 0x00113f09, read16_delegate(*this, FUNC(vamphalf_state::luplup29_speedup_r)));
m_palshift = 8;
/* no flipscreen */
@@ -3347,7 +3347,7 @@ void vamphalf_state::init_luplup29()
void vamphalf_state::init_luplup10()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x00113b78, 0x00113b79, read16_delegate(FUNC(vamphalf_state::luplup10_speedup_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x00113b78, 0x00113b79, read16_delegate(*this, FUNC(vamphalf_state::luplup10_speedup_r)));
m_palshift = 8;
/* no flipscreen */
@@ -3355,8 +3355,8 @@ void vamphalf_state::init_luplup10()
void vamphalf_state::init_puzlbang()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x00113f14, 0x00113f15, read16_delegate(FUNC(vamphalf_state::puzlbang_speedup_r), this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x00113ecc, 0x00113ecd, read16_delegate(FUNC(vamphalf_state::puzlbanga_speedup_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x00113f14, 0x00113f15, read16_delegate(*this, FUNC(vamphalf_state::puzlbang_speedup_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x00113ecc, 0x00113ecd, read16_delegate(*this, FUNC(vamphalf_state::puzlbanga_speedup_r)));
m_palshift = 8;
/* no flipscreen */
@@ -3364,9 +3364,9 @@ void vamphalf_state::init_puzlbang()
void vamphalf_qdsp_state::init_wyvernwg()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x00b4cc4, 0x00b4cc7, read32_delegate(FUNC(vamphalf_qdsp_state::wivernwg_speedup_r), this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x00b56f4, 0x00b56f7, read32_delegate(FUNC(vamphalf_qdsp_state::wyvernwg_speedup_r), this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x00b74f0, 0x00b74f3, read32_delegate(FUNC(vamphalf_qdsp_state::wyvernwga_speedup_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x00b4cc4, 0x00b4cc7, read32_delegate(*this, FUNC(vamphalf_qdsp_state::wivernwg_speedup_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x00b56f4, 0x00b56f7, read32_delegate(*this, FUNC(vamphalf_qdsp_state::wyvernwg_speedup_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x00b74f0, 0x00b74f3, read32_delegate(*this, FUNC(vamphalf_qdsp_state::wyvernwga_speedup_r)));
m_palshift = 0;
m_flip_bit = 1;
@@ -3408,7 +3408,7 @@ void vamphalf_nvram_state::init_finalgdr()
banked_oki(0);
m_finalgdr_backupram_bank = 1;
m_finalgdr_backupram = std::make_unique<u8[]>(0x80*0x100);
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x005e870, 0x005e873, read32_delegate(FUNC(vamphalf_nvram_state::finalgdr_speedup_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x005e870, 0x005e873, read32_delegate(*this, FUNC(vamphalf_nvram_state::finalgdr_speedup_r)));
m_nvram->set_base(m_finalgdr_backupram.get(), 0x80*0x100);
m_palshift = 0;
@@ -3430,7 +3430,7 @@ void vamphalf_nvram_state::init_mrkickera()
// backup ram isn't used
m_finalgdr_backupram_bank = 1;
m_finalgdr_backupram = std::make_unique<u8[]>(0x80*0x100);
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x00701a0, 0x00701a3, read32_delegate(FUNC(vamphalf_nvram_state::mrkickera_speedup_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x00701a0, 0x00701a3, read32_delegate(*this, FUNC(vamphalf_nvram_state::mrkickera_speedup_r)));
m_nvram->set_base(m_finalgdr_backupram.get(), 0x80*0x100);
m_palshift = 0;
@@ -3446,7 +3446,7 @@ void vamphalf_nvram_state::init_mrkickera()
void vamphalf_state::init_dquizgo2()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x00cdde8, 0x00cdde9, read16_delegate(FUNC(vamphalf_state::dquizgo2_speedup_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x00cdde8, 0x00cdde9, read16_delegate(*this, FUNC(vamphalf_state::dquizgo2_speedup_r)));
m_palshift = 0;
m_flip_bit = 1;
@@ -3455,7 +3455,7 @@ void vamphalf_state::init_dquizgo2()
void vamphalf_state::init_dtfamily()
{
banked_oki(0);
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xcc2a8, 0xcc2a9, read16_delegate(FUNC(vamphalf_state::dtfamily_speedup_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xcc2a8, 0xcc2a9, read16_delegate(*this, FUNC(vamphalf_state::dtfamily_speedup_r)));
m_palshift = 0;
m_flip_bit = 1;
@@ -3464,7 +3464,7 @@ void vamphalf_state::init_dtfamily()
void vamphalf_state::init_toyland()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x780d8, 0x780d9, read16_delegate(FUNC(vamphalf_state::toyland_speedup_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x780d8, 0x780d9, read16_delegate(*this, FUNC(vamphalf_state::toyland_speedup_r)));
m_palshift = 0;
m_flip_bit = 1;
@@ -3473,7 +3473,7 @@ void vamphalf_state::init_toyland()
void vamphalf_state::init_aoh()
{
banked_oki(1);
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x028a09c, 0x028a09f, read32_delegate(FUNC(vamphalf_state::aoh_speedup_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x028a09c, 0x028a09f, read32_delegate(*this, FUNC(vamphalf_state::aoh_speedup_r)));
m_palshift = 0;
/* no flipscreen */
@@ -3481,40 +3481,40 @@ void vamphalf_state::init_aoh()
void vamphalf_state::init_jmpbreak()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x00906f4, 0x00906f5, read16_delegate(FUNC(vamphalf_state::jmpbreak_speedup_r), this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xe0000000, 0xe0000003, write16smo_delegate(FUNC(vamphalf_state::jmpbreak_flipscreen_w), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x00906f4, 0x00906f5, read16_delegate(*this, FUNC(vamphalf_state::jmpbreak_speedup_r)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xe0000000, 0xe0000003, write16smo_delegate(*this, FUNC(vamphalf_state::jmpbreak_flipscreen_w)));
m_palshift = 0;
}
void vamphalf_state::init_mrdig()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x0e0768, 0x0e0769, read16_delegate(FUNC(vamphalf_state::mrdig_speedup_r), this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xe0000000, 0xe0000003, write16smo_delegate(FUNC(vamphalf_state::jmpbreak_flipscreen_w), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x0e0768, 0x0e0769, read16_delegate(*this, FUNC(vamphalf_state::mrdig_speedup_r)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xe0000000, 0xe0000003, write16smo_delegate(*this, FUNC(vamphalf_state::jmpbreak_flipscreen_w)));
m_palshift = 0;
}
void vamphalf_state::init_poosho()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x0c8b58, 0x0c8b59, read16_delegate(FUNC(vamphalf_state::poosho_speedup_r), this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xe0000000, 0xe0000003, write16smo_delegate(FUNC(vamphalf_state::jmpbreak_flipscreen_w), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x0c8b58, 0x0c8b59, read16_delegate(*this, FUNC(vamphalf_state::poosho_speedup_r)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xe0000000, 0xe0000003, write16smo_delegate(*this, FUNC(vamphalf_state::jmpbreak_flipscreen_w)));
m_palshift = 0;
}
void vamphalf_state::init_newxpang()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x061218, 0x061219, read16_delegate(FUNC(vamphalf_state::newxpang_speedup_r), this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xe0000000, 0xe0000003, write16smo_delegate(FUNC(vamphalf_state::jmpbreak_flipscreen_w), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x061218, 0x061219, read16_delegate(*this, FUNC(vamphalf_state::newxpang_speedup_r)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xe0000000, 0xe0000003, write16smo_delegate(*this, FUNC(vamphalf_state::jmpbreak_flipscreen_w)));
m_palshift = 0;
}
void vamphalf_state::init_worldadv()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x0c5e78, 0x0c5e79, read16_delegate(FUNC(vamphalf_state::worldadv_speedup_r), this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xe0000000, 0xe0000003, write16smo_delegate(FUNC(vamphalf_state::jmpbreak_flipscreen_w), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x0c5e78, 0x0c5e79, read16_delegate(*this, FUNC(vamphalf_state::worldadv_speedup_r)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xe0000000, 0xe0000003, write16smo_delegate(*this, FUNC(vamphalf_state::jmpbreak_flipscreen_w)));
m_palshift = 0;
}
@@ -3522,7 +3522,7 @@ void vamphalf_state::init_worldadv()
void vamphalf_state::init_boonggab()
{
banked_oki(0);
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x000f1b74, 0x000f1b75, read16_delegate(FUNC(vamphalf_state::boonggab_speedup_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x000f1b74, 0x000f1b75, read16_delegate(*this, FUNC(vamphalf_state::boonggab_speedup_r)));
m_palshift = 0;
m_has_extra_gfx = true;
diff --git a/src/mame/drivers/vaportra.cpp b/src/mame/drivers/vaportra.cpp
index f196a9a3650..a6f593ce1df 100644
--- a/src/mame/drivers/vaportra.cpp
+++ b/src/mame/drivers/vaportra.cpp
@@ -242,8 +242,8 @@ void vaportra_state::vaportra(machine_config &config)
m_deco_tilegen[0]->set_pf2_col_bank(0x20);
m_deco_tilegen[0]->set_pf1_col_mask(0x0f);
m_deco_tilegen[0]->set_pf2_col_mask(0x0f);
- m_deco_tilegen[0]->set_bank1_callback(FUNC(vaportra_state::bank_callback), this);
- m_deco_tilegen[0]->set_bank2_callback(FUNC(vaportra_state::bank_callback), this);
+ m_deco_tilegen[0]->set_bank1_callback(FUNC(vaportra_state::bank_callback));
+ m_deco_tilegen[0]->set_bank2_callback(FUNC(vaportra_state::bank_callback));
m_deco_tilegen[0]->set_pf12_8x8_bank(0);
m_deco_tilegen[0]->set_pf12_16x16_bank(1);
m_deco_tilegen[0]->set_gfxdecode_tag(m_gfxdecode);
@@ -257,14 +257,14 @@ void vaportra_state::vaportra(machine_config &config)
m_deco_tilegen[1]->set_pf2_col_bank(0x40);
m_deco_tilegen[1]->set_pf1_col_mask(0x0f);
m_deco_tilegen[1]->set_pf2_col_mask(0x0f);
- m_deco_tilegen[1]->set_bank1_callback(FUNC(vaportra_state::bank_callback), this);
- m_deco_tilegen[1]->set_bank2_callback(FUNC(vaportra_state::bank_callback), this);
+ m_deco_tilegen[1]->set_bank1_callback(FUNC(vaportra_state::bank_callback));
+ m_deco_tilegen[1]->set_bank2_callback(FUNC(vaportra_state::bank_callback));
m_deco_tilegen[1]->set_pf12_8x8_bank(2);
m_deco_tilegen[1]->set_pf12_16x16_bank(3);
m_deco_tilegen[1]->set_gfxdecode_tag(m_gfxdecode);
DECO_MXC06(config, m_spritegen, 0);
- m_spritegen->set_colpri_callback(FUNC(vaportra_state::vaportra_colpri_cb), this);
+ m_spritegen->set_colpri_callback(FUNC(vaportra_state::vaportra_colpri_cb));
/* sound hardware */
SPEAKER(config, "mono").front_center();
diff --git a/src/mame/drivers/vc4000.cpp b/src/mame/drivers/vc4000.cpp
index b273447b551..4d4b7c67ea8 100644
--- a/src/mame/drivers/vc4000.cpp
+++ b/src/mame/drivers/vc4000.cpp
@@ -369,25 +369,25 @@ void vc4000_state::machine_start()
// extra handler
switch (m_cart->get_type())
{
- case VC4000_STD:
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x0000, 0x07ff, read8sm_delegate(FUNC(vc4000_cart_slot_device::read_rom),(vc4000_cart_slot_device*)m_cart));
- break;
- case VC4000_ROM4K:
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x0000, 0x0fff, read8sm_delegate(FUNC(vc4000_cart_slot_device::read_rom),(vc4000_cart_slot_device*)m_cart));
- break;
- case VC4000_RAM1K:
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x0000, 0x0fff, read8sm_delegate(FUNC(vc4000_cart_slot_device::read_rom),(vc4000_cart_slot_device*)m_cart));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1000, 0x15ff, read8sm_delegate(FUNC(vc4000_cart_slot_device::read_ram),(vc4000_cart_slot_device*)m_cart), write8sm_delegate(FUNC(vc4000_cart_slot_device::write_ram),(vc4000_cart_slot_device*)m_cart));
- break;
- case VC4000_CHESS2:
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x0000, 0x15ff, read8sm_delegate(FUNC(vc4000_cart_slot_device::read_rom),(vc4000_cart_slot_device*)m_cart));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1800, 0x1bff, read8sm_delegate(FUNC(vc4000_cart_slot_device::read_ram),(vc4000_cart_slot_device*)m_cart), write8sm_delegate(FUNC(vc4000_cart_slot_device::write_ram),(vc4000_cart_slot_device*)m_cart));
- break;
- // undumped Radofin Hobby Module
-// case VC4000_HOBBY:
-// m_maincpu->space(AS_PROGRAM).install_read_handler(0x0000, 0x07ff, read8sm_delegate(FUNC(vc4000_cart_slot_device::read_rom),(vc4000_cart_slot_device*)m_cart));
-// m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x0800, 0x0fff, read8sm_delegate(FUNC(vc4000_cart_slot_device::read_ram),(vc4000_cart_slot_device*)m_cart), write8sm_delegate(FUNC(vc4000_cart_slot_device::write_ram),(vc4000_cart_slot_device*)m_cart));
-// break;
+ case VC4000_STD:
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x0000, 0x07ff, read8sm_delegate(*m_cart, FUNC(vc4000_cart_slot_device::read_rom)));
+ break;
+ case VC4000_ROM4K:
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x0000, 0x0fff, read8sm_delegate(*m_cart, FUNC(vc4000_cart_slot_device::read_rom)));
+ break;
+ case VC4000_RAM1K:
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x0000, 0x0fff, read8sm_delegate(*m_cart, FUNC(vc4000_cart_slot_device::read_rom)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1000, 0x15ff, read8sm_delegate(*m_cart, FUNC(vc4000_cart_slot_device::read_ram)), write8sm_delegate(*m_cart, FUNC(vc4000_cart_slot_device::write_ram)));
+ break;
+ case VC4000_CHESS2:
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x0000, 0x15ff, read8sm_delegate(*m_cart, FUNC(vc4000_cart_slot_device::read_rom)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1800, 0x1bff, read8sm_delegate(*m_cart, FUNC(vc4000_cart_slot_device::read_ram)), write8sm_delegate(*m_cart, FUNC(vc4000_cart_slot_device::write_ram)));
+ break;
+ // undumped Radofin Hobby Module
+// case VC4000_HOBBY:
+// m_maincpu->space(AS_PROGRAM).install_read_handler(0x0000, 0x07ff, read8sm_delegate(*m_cart, FUNC(vc4000_cart_slot_device::read_rom)));
+// m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x0800, 0x0fff, read8sm_delegate(*m_cart, FUNC(vc4000_cart_slot_device::read_ram)), write8sm_delegate(*m_cart, FUNC(vc4000_cart_slot_device::write_ram)));
+// break;
}
m_cart->save_ram();
@@ -550,7 +550,7 @@ void vc4000_state::vc4000(machine_config &config)
VC4000_SND(config, m_custom, 0).add_route(ALL_OUTPUTS, "mono", 0.50);
/* quickload */
- QUICKLOAD(config, "quickload", "pgm,tvc").set_load_callback(FUNC(vc4000_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "pgm,tvc").set_load_callback(FUNC(vc4000_state::quickload_cb));
/* cartridge */
VC4000_CART_SLOT(config, "cartslot", vc4000_cart, nullptr);
diff --git a/src/mame/drivers/vector06.cpp b/src/mame/drivers/vector06.cpp
index 9f7167ef785..6fe38d34ba5 100644
--- a/src/mame/drivers/vector06.cpp
+++ b/src/mame/drivers/vector06.cpp
@@ -44,9 +44,9 @@ void vector06_state::vector06_io(address_map &map)
map.global_mask(0xff);
map.unmap_value_high();
- map(0x00, 0x03).lrw8("ppi8255_rw", [this](offs_t offset) -> u8 { return m_ppi8255->read(offset^3); }, [this](offs_t offset, u8 data) { m_ppi8255->write(offset^3, data); });
- map(0x04, 0x07).lrw8("ppi8255_2_rw", [this](offs_t offset) -> u8 { return m_ppi8255_2->read(offset^3); }, [this](offs_t offset, u8 data) { m_ppi8255_2->write(offset^3, data); });
- map(0x08, 0x0b).lrw8("pit8253_rw", [this](offs_t offset) -> u8 { return m_pit8253->read(offset^3); }, [this](offs_t offset, u8 data) { m_pit8253->write(offset^3, data); });
+ map(0x00, 0x03).lrw8(NAME([this] (offs_t offset) -> u8 { return m_ppi8255->read(offset^3); }), NAME([this] (offs_t offset, u8 data) { m_ppi8255->write(offset^3, data); }));
+ map(0x04, 0x07).lrw8(NAME([this] (offs_t offset) -> u8 { return m_ppi8255_2->read(offset^3); }), NAME([this] (offs_t offset, u8 data) { m_ppi8255_2->write(offset^3, data); }));
+ map(0x08, 0x0b).lrw8(NAME([this] (offs_t offset) -> u8 { return m_pit8253->read(offset^3); }), NAME([this] (offs_t offset, u8 data) { m_pit8253->write(offset^3, data); }));
map(0x0c, 0x0c).w(FUNC(vector06_state::vector06_color_set));
map(0x10, 0x10).w(FUNC(vector06_state::vector06_ramdisk_w));
map(0x14, 0x15).rw(m_ay, FUNC(ay8910_device::data_r), FUNC(ay8910_device::data_address_w));
diff --git a/src/mame/drivers/vendetta.cpp b/src/mame/drivers/vendetta.cpp
index 1fbbff36241..e98208e0b22 100644
--- a/src/mame/drivers/vendetta.cpp
+++ b/src/mame/drivers/vendetta.cpp
@@ -457,10 +457,10 @@ void vendetta_state::vendetta(machine_config &config)
K052109(config, m_k052109, 0);
m_k052109->set_palette(m_palette);
- m_k052109->set_tile_callback(FUNC(vendetta_state::vendetta_tile_callback), this);
+ m_k052109->set_tile_callback(FUNC(vendetta_state::vendetta_tile_callback));
K053246(config, m_k053246, 0);
- m_k053246->set_sprite_callback(FUNC(vendetta_state::sprite_callback), this);
+ m_k053246->set_sprite_callback(FUNC(vendetta_state::sprite_callback));
m_k053246->set_config(NORMAL_PLANE_ORDER, 53, 6);
m_k053246->set_palette(m_palette);
@@ -494,7 +494,7 @@ void vendetta_state::esckids(machine_config &config)
K052109(config, m_k052109, 0);
m_k052109->set_palette(m_palette);
- m_k052109->set_tile_callback(FUNC(vendetta_state::esckids_tile_callback), this);
+ m_k052109->set_tile_callback(FUNC(vendetta_state::esckids_tile_callback));
m_k053246->set_config(NORMAL_PLANE_ORDER, 101, 6);
diff --git a/src/mame/drivers/vgmplay.cpp b/src/mame/drivers/vgmplay.cpp
index 1e3f687f712..ed5d80c72f7 100644
--- a/src/mame/drivers/vgmplay.cpp
+++ b/src/mame/drivers/vgmplay.cpp
@@ -3226,11 +3226,11 @@ void vgmplay_state::soundchips_map(address_map &map)
map(vgmplay_device::A_MULTIPCM_1 + 4, vgmplay_device::A_MULTIPCM_1 + 7).w("vgmplay", FUNC(vgmplay_device::multipcm_bank_hi_w<1>));
map(vgmplay_device::A_MULTIPCM_1 + 8, vgmplay_device::A_MULTIPCM_1 + 11).w("vgmplay", FUNC(vgmplay_device::multipcm_bank_lo_w<1>));
map(vgmplay_device::A_UPD7759_0 + 0, vgmplay_device::A_UPD7759_0 + 0).w(FUNC(vgmplay_state::upd7759_reset_w<0>));
- map(vgmplay_device::A_UPD7759_0 + 1, vgmplay_device::A_UPD7759_0 + 1).lw8("upd7759.0.start", [this](uint8_t data) {m_upd7759[0]->start_w(data != 0); });
+ map(vgmplay_device::A_UPD7759_0 + 1, vgmplay_device::A_UPD7759_0 + 1).lw8(NAME([this](uint8_t data) {m_upd7759[0]->start_w(data != 0); }));
map(vgmplay_device::A_UPD7759_0 + 2, vgmplay_device::A_UPD7759_0 + 2).w(FUNC(vgmplay_state::upd7759_data_w<0>));
map(vgmplay_device::A_UPD7759_0 + 3, vgmplay_device::A_UPD7759_0 + 3).w("vgmplay", FUNC(vgmplay_device::upd7759_bank_w<0>));
map(vgmplay_device::A_UPD7759_1 + 0, vgmplay_device::A_UPD7759_1 + 0).w(FUNC(vgmplay_state::upd7759_reset_w<1>));
- map(vgmplay_device::A_UPD7759_1 + 1, vgmplay_device::A_UPD7759_1 + 1).lw8("upd7759.1.start", [this](uint8_t data) {m_upd7759[1]->start_w(data != 0); });
+ map(vgmplay_device::A_UPD7759_1 + 1, vgmplay_device::A_UPD7759_1 + 1).lw8(NAME([this](uint8_t data) {m_upd7759[1]->start_w(data != 0); }));
map(vgmplay_device::A_UPD7759_1 + 2, vgmplay_device::A_UPD7759_1 + 2).w(FUNC(vgmplay_state::upd7759_data_w<1>));
map(vgmplay_device::A_UPD7759_1 + 3, vgmplay_device::A_UPD7759_1 + 3).w("vgmplay", FUNC(vgmplay_device::upd7759_bank_w<1>));
map(vgmplay_device::A_OKIM6258_0 + 0x0, vgmplay_device::A_OKIM6258_0 + 0x0).w(m_okim6258[0], FUNC(okim6258_device::ctrl_w));
@@ -3456,7 +3456,7 @@ void vgmplay_state::vgmplay(machine_config &config)
m_vgmplay->set_addrmap(AS_IO16, &vgmplay_state::soundchips16_map);
quickload_image_device &quickload(QUICKLOAD(config, "quickload", "vgm,vgz"));
- quickload.set_load_callback(FUNC(vgmplay_state::load_file), this);
+ quickload.set_load_callback(FUNC(vgmplay_state::load_file));
quickload.set_interface("vgm_quik");
SOFTWARE_LIST(config, "vgm_list").set_original("vgmplay");
diff --git a/src/mame/drivers/vic20.cpp b/src/mame/drivers/vic20.cpp
index 86424ecf5c2..93d10aed1c6 100644
--- a/src/mame/drivers/vic20.cpp
+++ b/src/mame/drivers/vic20.cpp
@@ -844,7 +844,7 @@ void vic20_state::vic20(machine_config &config, const char* softlist_filter)
m_user->pl_handler().set(m_via1, FUNC(via6522_device::write_pb7));
m_user->pm_handler().set(m_via1, FUNC(via6522_device::write_cb2));
- QUICKLOAD(config, "quickload", "p00,prg", CBM_QUICKLOAD_DELAY).set_load_callback(FUNC(vic20_state::quickload_vc20), this);
+ QUICKLOAD(config, "quickload", "p00,prg", CBM_QUICKLOAD_DELAY).set_load_callback(FUNC(vic20_state::quickload_vc20));
SOFTWARE_LIST(config, "cart_list").set_type("vic1001_cart", SOFTWARE_LIST_ORIGINAL_SYSTEM).set_filter(softlist_filter);
SOFTWARE_LIST(config, "cass_list").set_type("vic1001_cass", SOFTWARE_LIST_ORIGINAL_SYSTEM).set_filter(softlist_filter);
diff --git a/src/mame/drivers/victor9k.cpp b/src/mame/drivers/victor9k.cpp
index c65e55331b8..7f3a543afe1 100644
--- a/src/mame/drivers/victor9k.cpp
+++ b/src/mame/drivers/victor9k.cpp
@@ -701,7 +701,7 @@ void victor9k_state::victor9k(machine_config &config)
m_crtc->set_screen(SCREEN_TAG);
m_crtc->set_show_border_area(true);
m_crtc->set_char_width(10);
- m_crtc->set_update_row_callback(FUNC(victor9k_state::crtc_update_row), this);
+ m_crtc->set_update_row_callback(FUNC(victor9k_state::crtc_update_row));
m_crtc->out_vsync_callback().set(FUNC(victor9k_state::vert_w));
// sound hardware
diff --git a/src/mame/drivers/videopkr.cpp b/src/mame/drivers/videopkr.cpp
index 4e536d2988c..155a68df638 100644
--- a/src/mame/drivers/videopkr.cpp
+++ b/src/mame/drivers/videopkr.cpp
@@ -528,12 +528,12 @@ TILE_GET_INFO_MEMBER(videopkr_state::get_bg_tile_info)
void videopkr_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(videopkr_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(videopkr_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
VIDEO_START_MEMBER(videopkr_state,vidadcba)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(videopkr_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(videopkr_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 8, 32, 32);
}
diff --git a/src/mame/drivers/vii.cpp b/src/mame/drivers/vii.cpp
index 7ef021c7617..216289a4138 100644
--- a/src/mame/drivers/vii.cpp
+++ b/src/mame/drivers/vii.cpp
@@ -2186,7 +2186,7 @@ void vii_state::vii(machine_config &config)
GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "vii_cart");
m_cart->set_width(GENERIC_ROM16_WIDTH);
- m_cart->set_device_load(FUNC(vii_state::cart_load_vii), this);
+ m_cart->set_device_load(FUNC(vii_state::cart_load_vii));
SOFTWARE_LIST(config, "vii_cart").set_original("vii");
}
@@ -2208,7 +2208,7 @@ void icanguit_state::icanguit(machine_config &config)
GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "icanguit_cart");
m_cart->set_width(GENERIC_ROM16_WIDTH);
- m_cart->set_device_load(FUNC(icanguit_state::cart_load_icanguit), this);
+ m_cart->set_device_load(FUNC(icanguit_state::cart_load_icanguit));
m_cart->set_must_be_loaded(true);
SOFTWARE_LIST(config, "icanguit_cart").set_original("icanguit");
@@ -2234,7 +2234,7 @@ void icanpian_state::icanpian(machine_config &config)
GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "icanpian_cart");
m_cart->set_width(GENERIC_ROM16_WIDTH);
- m_cart->set_device_load(FUNC(icanpian_state::cart_load_icanguit), this);
+ m_cart->set_device_load(FUNC(icanpian_state::cart_load_icanguit));
m_cart->set_must_be_loaded(true);
SOFTWARE_LIST(config, "icanpian_cart").set_original("icanpian");
@@ -2253,7 +2253,7 @@ void tvgogo_state::tvgogo(machine_config &config)
GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "tvgogo_cart");
m_cart->set_width(GENERIC_ROM16_WIDTH);
- m_cart->set_device_load(FUNC(tvgogo_state::cart_load_tvgogo), this);
+ m_cart->set_device_load(FUNC(tvgogo_state::cart_load_tvgogo));
m_cart->set_must_be_loaded(true);
SOFTWARE_LIST(config, "tvgogo_cart").set_original("tvgogo");
diff --git a/src/mame/drivers/vip.cpp b/src/mame/drivers/vip.cpp
index d289cb30623..421035b3807 100644
--- a/src/mame/drivers/vip.cpp
+++ b/src/mame/drivers/vip.cpp
@@ -755,7 +755,7 @@ void vip_state::vip(machine_config &config)
m_exp->dma_in_wr_callback().set(FUNC(vip_state::exp_dma_in_w));
// devices
- QUICKLOAD(config, "quickload", "bin,c8,c8x").set_load_callback(FUNC(vip_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "bin,c8,c8x").set_load_callback(FUNC(vip_state::quickload_cb));
CASSETTE(config, m_cassette);
m_cassette->set_default_state(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED);
m_cassette->set_interface("vip_cass");
diff --git a/src/mame/drivers/viper.cpp b/src/mame/drivers/viper.cpp
index 11a025f1a67..63159a13d6f 100644
--- a/src/mame/drivers/viper.cpp
+++ b/src/mame/drivers/viper.cpp
@@ -1745,35 +1745,35 @@ void viper_state::voodoo3_pci_w(int function, int reg, uint32_t data, uint32_t m
READ64_MEMBER(viper_state::voodoo3_io_r)
{
- return read64be_with_32sle_device_handler(read32s_delegate(FUNC(voodoo_3_device::banshee_io_r), &(*m_voodoo)), offset, mem_mask);
+ return read64be_with_32sle_device_handler(read32s_delegate(*m_voodoo, FUNC(voodoo_3_device::banshee_io_r)), offset, mem_mask);
}
WRITE64_MEMBER(viper_state::voodoo3_io_w)
{
// printf("voodoo3_io_w: %08X%08X, %08X at %08X\n", (uint32_t)(data >> 32), (uint32_t)(data), offset, m_maincpu->pc());
- write64be_with_32sle_device_handler(write32s_delegate(FUNC(voodoo_3_device::banshee_io_w), &(*m_voodoo)), offset, data, mem_mask);
+ write64be_with_32sle_device_handler(write32s_delegate(*m_voodoo, FUNC(voodoo_3_device::banshee_io_w)), offset, data, mem_mask);
}
READ64_MEMBER(viper_state::voodoo3_r)
{
- return read64be_with_32sle_device_handler(read32s_delegate(FUNC(voodoo_3_device::banshee_r), &(*m_voodoo)), offset, mem_mask);
+ return read64be_with_32sle_device_handler(read32s_delegate(*m_voodoo, FUNC(voodoo_3_device::banshee_r)), offset, mem_mask);
}
WRITE64_MEMBER(viper_state::voodoo3_w)
{
// printf("voodoo3_w: %08X%08X, %08X at %08X\n", (uint32_t)(data >> 32), (uint32_t)(data), offset, m_maincpu->pc());
- write64be_with_32sle_device_handler(write32s_delegate(FUNC(voodoo_3_device::banshee_w), &(*m_voodoo)), offset, data, mem_mask);
+ write64be_with_32sle_device_handler(write32s_delegate(*m_voodoo, FUNC(voodoo_3_device::banshee_w)), offset, data, mem_mask);
}
READ64_MEMBER(viper_state::voodoo3_lfb_r)
{
- return read64be_with_32smle_device_handler(read32sm_delegate(FUNC(voodoo_3_device::banshee_fb_r), &(*m_voodoo)), offset, mem_mask);
+ return read64be_with_32smle_device_handler(read32sm_delegate(*m_voodoo, FUNC(voodoo_3_device::banshee_fb_r)), offset, mem_mask);
}
WRITE64_MEMBER(viper_state::voodoo3_lfb_w)
{
// printf("voodoo3_lfb_w: %08X%08X, %08X at %08X\n", (uint32_t)(data >> 32), (uint32_t)(data), offset, m_maincpu->pc());
- write64be_with_32sle_device_handler(write32s_delegate(FUNC(voodoo_3_device::banshee_fb_w), &(*m_voodoo)), offset, data, mem_mask);
+ write64be_with_32sle_device_handler(write32s_delegate(*m_voodoo, FUNC(voodoo_3_device::banshee_fb_w)), offset, data, mem_mask);
}
@@ -2424,10 +2424,8 @@ void viper_state::viper(machine_config &config)
m_maincpu->set_vblank_int("screen", FUNC(viper_state::viper_vblank));
pci_bus_legacy_device &pcibus(PCI_BUS_LEGACY(config, "pcibus", 0, 0));
- pcibus.set_device_read ( 0, FUNC(viper_state::mpc8240_pci_r), this);
- pcibus.set_device_write( 0, FUNC(viper_state::mpc8240_pci_w), this);
- pcibus.set_device_read (12, FUNC(viper_state::voodoo3_pci_r), this);
- pcibus.set_device_write(12, FUNC(viper_state::voodoo3_pci_w), this);
+ pcibus.set_device( 0, FUNC(viper_state::mpc8240_pci_r), FUNC(viper_state::mpc8240_pci_w));
+ pcibus.set_device(12, FUNC(viper_state::voodoo3_pci_r), FUNC(viper_state::voodoo3_pci_w));
ATA_INTERFACE(config, m_ata).options(ata_devices, "hdd", nullptr, true);
@@ -2469,17 +2467,17 @@ void viper_state::init_viperhd()
{
init_viper();
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xff300000, 0xff300fff, read64_delegate(FUNC(viper_state::ata_r), this), write64_delegate(FUNC(viper_state::ata_w), this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xff300000, 0xff300fff, read64_delegate(*this, FUNC(viper_state::ata_r)), write64_delegate(*this, FUNC(viper_state::ata_w)));
}
void viper_state::init_vipercf()
{
init_viper();
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xff000000, 0xff000fff, read64_delegate(FUNC(viper_state::cf_card_data_r), this), write64_delegate(FUNC(viper_state::cf_card_data_w), this) );
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xff200000, 0xff200fff, read64_delegate(FUNC(viper_state::cf_card_r), this), write64_delegate(FUNC(viper_state::cf_card_w), this) );
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xff000000, 0xff000fff, read64_delegate(*this, FUNC(viper_state::cf_card_data_r)), write64_delegate(*this, FUNC(viper_state::cf_card_data_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xff200000, 0xff200fff, read64_delegate(*this, FUNC(viper_state::cf_card_r)), write64_delegate(*this, FUNC(viper_state::cf_card_w)));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xff300000, 0xff300fff, read64_delegate(FUNC(viper_state::unk_serial_r), this), write64_delegate(FUNC(viper_state::unk_serial_w), this) );
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xff300000, 0xff300fff, read64_delegate(*this, FUNC(viper_state::unk_serial_r)), write64_delegate(*this, FUNC(viper_state::unk_serial_w)));
}
diff --git a/src/mame/drivers/vis.cpp b/src/mame/drivers/vis.cpp
index 8e0421c206e..84263519217 100644
--- a/src/mame/drivers/vis.cpp
+++ b/src/mame/drivers/vis.cpp
@@ -56,8 +56,8 @@ void vis_audio_device::device_start()
{
set_isa_device();
m_isa->set_dma_channel(7, this, false);
- m_isa->install_device(0x0220, 0x022f, read8_delegate(FUNC(vis_audio_device::pcm_r), this), write8_delegate(FUNC(vis_audio_device::pcm_w), this));
- m_isa->install_device(0x0388, 0x038b, read8sm_delegate(FUNC(ymf262_device::read), subdevice<ymf262_device>("ymf262")), write8sm_delegate(FUNC(ymf262_device::write), subdevice<ymf262_device>("ymf262")));
+ m_isa->install_device(0x0220, 0x022f, read8_delegate(*this, FUNC(vis_audio_device::pcm_r)), write8_delegate(*this, FUNC(vis_audio_device::pcm_w)));
+ m_isa->install_device(0x0388, 0x038b, read8sm_delegate(*subdevice<ymf262_device>("ymf262"), FUNC(ymf262_device::read)), write8sm_delegate(*subdevice<ymf262_device>("ymf262"), FUNC(ymf262_device::write)));
m_pcm = timer_alloc();
m_pcm->adjust(attotime::never);
}
@@ -386,8 +386,8 @@ void vis_vga_device::vga_vh_yuv8(bitmap_rgb32 &bitmap, const rectangle &cliprect
void vis_vga_device::device_start()
{
set_isa_device();
- m_isa->install_device(0x03b0, 0x03df, read8_delegate(FUNC(vis_vga_device::vga_r), this), write8_delegate(FUNC(vis_vga_device::vga_w), this));
- m_isa->install_memory(0x0a0000, 0x0bffff, read8_delegate(FUNC(vis_vga_device::visvgamem_r), this), write8_delegate(FUNC(vis_vga_device::visvgamem_w), this));
+ m_isa->install_device(0x03b0, 0x03df, read8_delegate(*this, FUNC(vis_vga_device::vga_r)), write8_delegate(*this, FUNC(vis_vga_device::vga_w)));
+ m_isa->install_memory(0x0a0000, 0x0bffff, read8_delegate(*this, FUNC(vis_vga_device::visvgamem_r)), write8_delegate(*this, FUNC(vis_vga_device::visvgamem_w)));
svga_device::device_start();
vga.svga_intf.seq_regcount = 0x2d;
save_pointer(m_crtc_regs,"VIS CRTC",0x32);
diff --git a/src/mame/drivers/vk100.cpp b/src/mame/drivers/vk100.cpp
index 3479e4ffc5b..6e1e4fa8a1c 100644
--- a/src/mame/drivers/vk100.cpp
+++ b/src/mame/drivers/vk100.cpp
@@ -1047,7 +1047,7 @@ void vk100_state::vk100(machine_config &config)
m_crtc->set_screen("screen");
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(12);
- m_crtc->set_update_row_callback(FUNC(vk100_state::crtc_update_row), this);
+ m_crtc->set_update_row_callback(FUNC(vk100_state::crtc_update_row));
m_crtc->out_vsync_callback().set(FUNC(vk100_state::crtc_vsync));
/* i8251 uart */
diff --git a/src/mame/drivers/vlc.cpp b/src/mame/drivers/vlc.cpp
index 42ae414d6eb..b6bbcf516c5 100644
--- a/src/mame/drivers/vlc.cpp
+++ b/src/mame/drivers/vlc.cpp
@@ -300,7 +300,7 @@ TILE_GET_INFO_MEMBER( nevada_state::get_bg_tile_info )
/***************************************************************************/
void nevada_state::video_start()
{
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(nevada_state::get_bg_tile_info),this),TILEMAP_SCAN_ROWS,8,8,31,31);
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(nevada_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 31,31);
}
/***************************************************************************/
diff --git a/src/mame/drivers/volfied.cpp b/src/mame/drivers/volfied.cpp
index 67b01bf2355..fd66e5825d5 100644
--- a/src/mame/drivers/volfied.cpp
+++ b/src/mame/drivers/volfied.cpp
@@ -254,7 +254,7 @@ void volfied_state::volfied(machine_config &config)
PC090OJ(config, m_pc090oj, 0);
m_pc090oj->set_palette("palette");
- m_pc090oj->set_colpri_callback(FUNC(volfied_state::volfied_colpri_cb), this);
+ m_pc090oj->set_colpri_callback(FUNC(volfied_state::volfied_colpri_cb));
/* sound hardware */
SPEAKER(config, "mono").front_center();
diff --git a/src/mame/drivers/voyager.cpp b/src/mame/drivers/voyager.cpp
index 258c4199fe9..7e1dbcd6414 100644
--- a/src/mame/drivers/voyager.cpp
+++ b/src/mame/drivers/voyager.cpp
@@ -515,10 +515,8 @@ void voyager_state::voyager(machine_config &config)
ide.irq_handler().set("pic8259_2", FUNC(pic8259_device::ir6_w));
pci_bus_legacy_device &pcibus(PCI_BUS_LEGACY(config, "pcibus", 0, 0));
- pcibus.set_device_read (0, FUNC(voyager_state::intel82439tx_pci_r), this);
- pcibus.set_device_write(0, FUNC(voyager_state::intel82439tx_pci_w), this);
- pcibus.set_device_read (7, FUNC(voyager_state::intel82371ab_pci_r), this);
- pcibus.set_device_write(7, FUNC(voyager_state::intel82371ab_pci_w), this);
+ pcibus.set_device(0, FUNC(voyager_state::intel82439tx_pci_r), FUNC(voyager_state::intel82439tx_pci_w));
+ pcibus.set_device(7, FUNC(voyager_state::intel82371ab_pci_r), FUNC(voyager_state::intel82371ab_pci_w));
/* video hardware */
pcvideo_trident_vga(config);
diff --git a/src/mame/drivers/vp60.cpp b/src/mame/drivers/vp60.cpp
index 975d74b68bf..7022db15291 100644
--- a/src/mame/drivers/vp60.cpp
+++ b/src/mame/drivers/vp60.cpp
@@ -86,7 +86,7 @@ void vp60_state::vp60(machine_config &config)
I8275(config, m_crtc, 25.92_MHz_XTAL / 16);
m_crtc->set_character_width(16);
- m_crtc->set_display_callback(FUNC(vp60_state::draw_character), this);
+ m_crtc->set_display_callback(FUNC(vp60_state::draw_character));
m_crtc->set_screen("screen");
i8035_device &kbdcpu(I8035(config, "kbdcpu", 3.579545_MHz_XTAL)); // 48-300-010 XTAL
diff --git a/src/mame/drivers/vroulet.cpp b/src/mame/drivers/vroulet.cpp
index 5d6f3dc0796..99d3a8c4545 100644
--- a/src/mame/drivers/vroulet.cpp
+++ b/src/mame/drivers/vroulet.cpp
@@ -139,7 +139,7 @@ void vroulet_state::video_start()
{
m_bg_tilemap = &machine().tilemap().create(
*m_gfxdecode,
- tilemap_get_info_delegate(FUNC(vroulet_state::get_bg_tile_info),this),
+ tilemap_get_info_delegate(*this, FUNC(vroulet_state::get_bg_tile_info)),
TILEMAP_SCAN_ROWS,
8, 8, 32, 32);
}
diff --git a/src/mame/drivers/vtech1.cpp b/src/mame/drivers/vtech1.cpp
index 7ede641224c..09069bdebd1 100644
--- a/src/mame/drivers/vtech1.cpp
+++ b/src/mame/drivers/vtech1.cpp
@@ -459,7 +459,7 @@ void vtech1_state::laser110(machine_config &config)
// snapshot
snapshot_image_device &snapshot(SNAPSHOT(config, "snapshot", "vz"));
snapshot.set_delay(attotime::from_double(2.0));
- snapshot.set_load_callback(FUNC(vtech1_state::snapshot_cb), this);
+ snapshot.set_load_callback(FUNC(vtech1_state::snapshot_cb));
snapshot.set_interface("vzsnap");
CASSETTE(config, m_cassette);
diff --git a/src/mame/drivers/vtech2.cpp b/src/mame/drivers/vtech2.cpp
index 51626b20a4d..2bcc22a415a 100644
--- a/src/mame/drivers/vtech2.cpp
+++ b/src/mame/drivers/vtech2.cpp
@@ -93,10 +93,10 @@ void vtech2_state::io_map(address_map &map)
{
map.global_mask(0xff);
map(0x10, 0x1f).rw(FUNC(vtech2_state::laser_fdc_r), FUNC(vtech2_state::laser_fdc_w));
- map(0x40, 0x40).lw8("set_bankA", [this] (u8 data) { m_banka->set_bank(data & 15); });
- map(0x41, 0x41).lw8("set_bankB", [this] (u8 data) { m_bankb->set_bank(data & 15); });
- map(0x42, 0x42).lw8("set_bankC", [this] (u8 data) { m_bankc->set_bank(data & 15); });
- map(0x43, 0x43).lw8("set_bankD", [this] (u8 data) { m_bankd->set_bank(data & 15); });
+ map(0x40, 0x40).lw8(NAME([this] (u8 data) { m_banka->set_bank(data & 15); }));
+ map(0x41, 0x41).lw8(NAME([this] (u8 data) { m_bankb->set_bank(data & 15); }));
+ map(0x42, 0x42).lw8(NAME([this] (u8 data) { m_bankc->set_bank(data & 15); }));
+ map(0x43, 0x43).lw8(NAME([this] (u8 data) { m_bankd->set_bank(data & 15); }));
map(0x44, 0x44).w(FUNC(vtech2_state::laser_bg_mode_w));
map(0x45, 0x45).w(FUNC(vtech2_state::laser_two_color_w));
}
@@ -521,7 +521,7 @@ void vtech2_state::laser350(machine_config &config)
VTECH_IOEXP_SLOT(config, "io").set_io_space(m_maincpu, AS_IO);
/* cartridge */
- GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "vtech_cart", "rom,bin").set_device_load(FUNC(vtech2_state::cart_load), this);
+ GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "vtech_cart", "rom,bin").set_device_load(FUNC(vtech2_state::cart_load));
/* 5.25" Floppy drive */
LEGACY_FLOPPY(config, FLOPPY_0, 0, &vtech2_floppy_interface);
diff --git a/src/mame/drivers/wallc.cpp b/src/mame/drivers/wallc.cpp
index 88fbf57ed72..037305b5696 100644
--- a/src/mame/drivers/wallc.cpp
+++ b/src/mame/drivers/wallc.cpp
@@ -243,17 +243,17 @@ TILE_GET_INFO_MEMBER(wallc_state::get_bg_tile_info_sidampkr)
void wallc_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(wallc_state::get_bg_tile_info), this), TILEMAP_SCAN_COLS_FLIP_Y, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(wallc_state::get_bg_tile_info)), TILEMAP_SCAN_COLS_FLIP_Y, 8, 8, 32, 32);
}
VIDEO_START_MEMBER(wallc_state, unkitpkr)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(wallc_state::get_bg_tile_info_unkitpkr), this), TILEMAP_SCAN_COLS_FLIP_Y, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(wallc_state::get_bg_tile_info_unkitpkr)), TILEMAP_SCAN_COLS_FLIP_Y, 8, 8, 32, 32);
}
VIDEO_START_MEMBER(wallc_state, sidampkr)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(wallc_state::get_bg_tile_info_sidampkr), this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(wallc_state::get_bg_tile_info_sidampkr)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
uint32_t wallc_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
diff --git a/src/mame/drivers/warpsped.cpp b/src/mame/drivers/warpsped.cpp
index 183434821ae..4c85336e7fc 100644
--- a/src/mame/drivers/warpsped.cpp
+++ b/src/mame/drivers/warpsped.cpp
@@ -159,9 +159,9 @@ WRITE8_MEMBER(warpspeed_state::vidram_w)
void warpspeed_state::video_start()
{
- m_text_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(warpspeed_state::get_text_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_text_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(warpspeed_state::get_text_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_text_tilemap->set_transparent_pen(0);
- m_starfield_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(warpspeed_state::get_starfield_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_starfield_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(warpspeed_state::get_starfield_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_starfield_tilemap->mark_all_dirty();
save_item(NAME(m_regs));
diff --git a/src/mame/drivers/wecleman.cpp b/src/mame/drivers/wecleman.cpp
index a76a3385ffc..c15e1d40b32 100644
--- a/src/mame/drivers/wecleman.cpp
+++ b/src/mame/drivers/wecleman.cpp
@@ -1168,12 +1168,12 @@ void wecleman_state::hotchase(machine_config &config)
m_k051316[0]->set_palette(m_palette);
m_k051316[0]->set_offsets(-0xb0 / 2, -16);
m_k051316[0]->set_wrap(1);
- m_k051316[0]->set_zoom_callback(FUNC(wecleman_state::hotchase_zoom_callback_1), this);
+ m_k051316[0]->set_zoom_callback(FUNC(wecleman_state::hotchase_zoom_callback_1));
K051316(config, m_k051316[1], 0);
m_k051316[1]->set_palette(m_palette);
m_k051316[1]->set_offsets(-0xb0 / 2, -16);
- m_k051316[1]->set_zoom_callback(FUNC(wecleman_state::hotchase_zoom_callback_2), this);
+ m_k051316[1]->set_zoom_callback(FUNC(wecleman_state::hotchase_zoom_callback_2));
/* sound hardware */
SPEAKER(config, "lspeaker").front_left();
diff --git a/src/mame/drivers/wicat.cpp b/src/mame/drivers/wicat.cpp
index 5e6f1d2c050..76697e7dd00 100644
--- a/src/mame/drivers/wicat.cpp
+++ b/src/mame/drivers/wicat.cpp
@@ -832,7 +832,7 @@ void wicat_state::wicat(machine_config &config)
I8275(config, m_crtc, 19.6608_MHz_XTAL/10);
m_crtc->set_character_width(10);
- m_crtc->set_display_callback(FUNC(wicat_state::wicat_display_pixels), this);
+ m_crtc->set_display_callback(FUNC(wicat_state::wicat_display_pixels));
m_crtc->drq_wr_callback().set(m_videodma, FUNC(am9517a_device::dreq0_w));
m_crtc->vrtc_wr_callback().set(FUNC(wicat_state::crtc_irq_w));
m_crtc->set_screen("screen");
diff --git a/src/mame/drivers/williams.cpp b/src/mame/drivers/williams.cpp
index f49a1e23239..dbe1342bf1f 100644
--- a/src/mame/drivers/williams.cpp
+++ b/src/mame/drivers/williams.cpp
@@ -3192,7 +3192,7 @@ void williams_state::init_mayday()
CONFIGURE_BLITTER(WILLIAMS_BLITTER_NONE, 0x0000);
/* install a handler to catch protection checks */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xa190, 0xa191, read8sm_delegate(FUNC(williams_state::mayday_protection_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xa190, 0xa191, read8sm_delegate(*this, FUNC(williams_state::mayday_protection_r)));
m_mayday_protection = m_videoram + 0xa190;
}
@@ -3227,7 +3227,7 @@ void williams_state::init_bubbles()
CONFIGURE_BLITTER(WILLIAMS_BLITTER_SC1, 0xc000);
/* bubbles has a full 8-bit-wide CMOS */
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xcc00, 0xcfff, write8sm_delegate(FUNC(williams_state::bubbles_cmos_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xcc00, 0xcfff, write8sm_delegate(*this, FUNC(williams_state::bubbles_cmos_w)));
}
diff --git a/src/mame/drivers/wink.cpp b/src/mame/drivers/wink.cpp
index 6f54a302426..4071356f3af 100644
--- a/src/mame/drivers/wink.cpp
+++ b/src/mame/drivers/wink.cpp
@@ -98,7 +98,7 @@ TILE_GET_INFO_MEMBER(wink_state::get_bg_tile_info)
void wink_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(wink_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(wink_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
uint32_t wink_state::screen_update_wink(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
diff --git a/src/mame/drivers/witch.cpp b/src/mame/drivers/witch.cpp
index ba620398e0e..393f322e618 100644
--- a/src/mame/drivers/witch.cpp
+++ b/src/mame/drivers/witch.cpp
@@ -263,7 +263,7 @@ TILE_GET_INFO_MEMBER(keirinou_state::get_keirinou_gfx1_tile_info)
void witch_state::video_common_init()
{
- m_gfx0_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(witch_state::get_gfx0_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32);
+ m_gfx0_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(witch_state::get_gfx0_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 32,32);
m_gfx0_tilemap->set_transparent_pen(0);
@@ -276,7 +276,7 @@ void witch_state::video_common_init()
void witch_state::video_start()
{
video_common_init();
- m_gfx1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(witch_state::get_gfx1_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32);
+ m_gfx1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(witch_state::get_gfx1_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 32,32);
m_gfx0_tilemap->set_palette_offset(0x100);
m_gfx1_tilemap->set_palette_offset(0x200);
@@ -288,7 +288,7 @@ void keirinou_state::video_start()
{
//witch_state::video_start();
video_common_init();
- m_gfx1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(keirinou_state::get_keirinou_gfx1_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32);
+ m_gfx1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(keirinou_state::get_keirinou_gfx1_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 32,32);
m_gfx0_tilemap->set_palette_offset(0x000);
m_gfx1_tilemap->set_palette_offset(0x100);
@@ -1136,7 +1136,7 @@ void witch_state::init_witch()
m_mainbank->configure_entries(0, 4, memregion("maincpu")->base() + UNBANKED_SIZE, 0x8000);
m_mainbank->set_entry(0);
- m_subcpu->space(AS_PROGRAM).install_read_handler(0x7000, 0x700f, read8_delegate(FUNC(witch_state::prot_read_700x), this));
+ m_subcpu->space(AS_PROGRAM).install_read_handler(0x7000, 0x700f, read8_delegate(*this, FUNC(witch_state::prot_read_700x)));
}
GAME( 1987, keirinou, 0, keirinou, keirinou, keirinou_state, empty_init, ROT0, "Excellent System", "Keirin Ou", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/wrally.cpp b/src/mame/drivers/wrally.cpp
index e0435567e01..2c11a2f5f86 100644
--- a/src/mame/drivers/wrally.cpp
+++ b/src/mame/drivers/wrally.cpp
@@ -156,7 +156,7 @@ void wrally_state::wrally_map(address_map &map)
map(0x700002, 0x700003).portr("P1_P2");
map(0x700004, 0x700005).portr("WHEEL");
map(0x700008, 0x700009).portr("SYSTEM");
- map(0x70000b, 0x70000b).select(0x000070).lw8("outlatch_w", [this](offs_t offset, u8 data) { m_outlatch->write_d0(offset >> 4, data); });
+ map(0x70000b, 0x70000b).select(0x000070).lw8(NAME([this] (offs_t offset, u8 data) { m_outlatch->write_d0(offset >> 4, data); }));
map(0x70000d, 0x70000d).w(FUNC(wrally_state::okim6295_bankswitch_w)); /* OKI6295 bankswitch */
map(0x70000f, 0x70000f).rw("oki", FUNC(okim6295_device::read), FUNC(okim6295_device::write)); /* OKI6295 status/data register */
map(0xfec000, 0xfeffff).ram().share("shareram"); /* Work RAM (shared with DS5002FP) */
diff --git a/src/mame/drivers/wswan.cpp b/src/mame/drivers/wswan.cpp
index 085a06a91a0..8234e882520 100644
--- a/src/mame/drivers/wswan.cpp
+++ b/src/mame/drivers/wswan.cpp
@@ -127,8 +127,8 @@ void wswan_state::wswan(machine_config &config)
WSWAN_VIDEO(config, m_vdp, 0);
m_vdp->set_screen("screen");
m_vdp->set_vdp_type(VDP_TYPE_WSWAN);
- m_vdp->set_irq_callback(FUNC(wswan_state::set_irq_line), this);
- m_vdp->set_dmasnd_callback(FUNC(wswan_state::dma_sound_cb), this);
+ m_vdp->set_irq_callback(FUNC(wswan_state::set_irq_line));
+ m_vdp->set_dmasnd_callback(FUNC(wswan_state::dma_sound_cb));
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD));
// screen.set_refresh_rate(75);
diff --git a/src/mame/drivers/wy100.cpp b/src/mame/drivers/wy100.cpp
index af475667330..56d963dfa72 100644
--- a/src/mame/drivers/wy100.cpp
+++ b/src/mame/drivers/wy100.cpp
@@ -239,7 +239,7 @@ void wy100_state::wy100(machine_config &config)
crtc->set_screen("screen");
crtc->set_character_width(10);
}
- m_crtc[0]->set_display_callback(FUNC(wy100_state::draw_character), this);
+ m_crtc[0]->set_display_callback(FUNC(wy100_state::draw_character));
m_crtc[0]->drq_wr_callback().set_inputline(m_maincpu, MCS48_INPUT_IRQ);
m_crtc[0]->drq_wr_callback().append(FUNC(wy100_state::brdy_w));
m_crtc[0]->lc_wr_callback().set("spkrgate", FUNC(input_merger_device::in_w<1>)).bit(3);
diff --git a/src/mame/drivers/wyvernf0.cpp b/src/mame/drivers/wyvernf0.cpp
index e98d473cf24..9dcb260eb8f 100644
--- a/src/mame/drivers/wyvernf0.cpp
+++ b/src/mame/drivers/wyvernf0.cpp
@@ -163,8 +163,8 @@ TILE_GET_INFO_MEMBER(wyvernf0_state::get_fg_tile_info)
void wyvernf0_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(wyvernf0_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(wyvernf0_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(wyvernf0_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(wyvernf0_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_bg_tilemap->set_transparent_pen(0);
m_fg_tilemap->set_transparent_pen(0);
diff --git a/src/mame/drivers/x07.cpp b/src/mame/drivers/x07.cpp
index f749600bcb4..cd10fe813e0 100644
--- a/src/mame/drivers/x07.cpp
+++ b/src/mame/drivers/x07.cpp
@@ -1437,9 +1437,9 @@ void x07_state::machine_start()
{
// 0x4000 - 0x4fff 4KB RAM
// 0x6000 - 0x7fff 8KB ROM
- program.install_read_handler(ram_size, ram_size + 0xfff, read8sm_delegate(FUNC(generic_slot_device::read_ram),(generic_slot_device*)m_card));
- program.install_write_handler(ram_size, ram_size + 0xfff, write8sm_delegate(FUNC(generic_slot_device::write_ram),(generic_slot_device*)m_card));
- program.install_read_handler(0x6000, 0x7fff, read8sm_delegate(FUNC(generic_slot_device::read_rom),(generic_slot_device*)m_card));
+ program.install_read_handler(ram_size, ram_size + 0xfff, read8sm_delegate(*m_card, FUNC(generic_slot_device::read_ram)));
+ program.install_write_handler(ram_size, ram_size + 0xfff, write8sm_delegate(*m_card, FUNC(generic_slot_device::write_ram)));
+ program.install_read_handler(0x6000, 0x7fff, read8sm_delegate(*m_card, FUNC(generic_slot_device::read_rom)));
m_card->save_ram();
}
@@ -1519,7 +1519,7 @@ void x07_state::x07(machine_config &config)
RAM(config, RAM_TAG).set_default_size("16K").set_extra_options("8K,12K,20K,24K");
/* Memory Card */
- GENERIC_CARTSLOT(config, "cardslot", generic_romram_plain_slot, "x07_card", "rom,bin").set_device_load(FUNC(x07_state::card_load), this);
+ GENERIC_CARTSLOT(config, "cardslot", generic_romram_plain_slot, "x07_card", "rom,bin").set_device_load(FUNC(x07_state::card_load));
/* cassette */
CASSETTE(config, m_cassette);
diff --git a/src/mame/drivers/x68k.cpp b/src/mame/drivers/x68k.cpp
index 0a2974c436e..01d2c56fe34 100644
--- a/src/mame/drivers/x68k.cpp
+++ b/src/mame/drivers/x68k.cpp
@@ -1181,7 +1181,7 @@ void x68k_state::cpu_space_map(address_map &map)
map(0xfffff9, 0xfffff9).r(FUNC(x68k_state::iack4));
map(0xfffffb, 0xfffffb).r(FUNC(x68k_state::iack5));
map(0xfffffd, 0xfffffd).r(m_mfpdev, FUNC(mc68901_device::get_vector));
- map(0xffffff, 0xffffff).lr8("nmiack", []() { return m68000_base_device::autovector(7); });
+ map(0xffffff, 0xffffff).lr8(NAME([] () { return m68000_base_device::autovector(7); }));
}
WRITE_LINE_MEMBER(x68ksupr_state::scsi_irq)
diff --git a/src/mame/drivers/xerox820.cpp b/src/mame/drivers/xerox820.cpp
index 02225265c18..f208d96f4c1 100644
--- a/src/mame/drivers/xerox820.cpp
+++ b/src/mame/drivers/xerox820.cpp
@@ -667,7 +667,7 @@ void xerox820_state::xerox820(machine_config &config)
// software lists
SOFTWARE_LIST(config, "flop_list").set_original("xerox820");
- QUICKLOAD(config, "quickload", "com,cpm", attotime::from_seconds(3)).set_load_callback(FUNC(xerox820_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "com,cpm", attotime::from_seconds(3)).set_load_callback(FUNC(xerox820_state::quickload_cb));
}
void bigboard_state::bigboard(machine_config &config)
@@ -771,7 +771,7 @@ void xerox820ii_state::xerox820ii(machine_config &config)
// software lists
SOFTWARE_LIST(config, "flop_list").set_original("xerox820ii");
- QUICKLOAD(config, "quickload", "com,cpm", attotime::from_seconds(3)).set_load_callback(FUNC(xerox820_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "com,cpm", attotime::from_seconds(3)).set_load_callback(FUNC(xerox820_state::quickload_cb));
}
void xerox820ii_state::xerox168(machine_config &config)
diff --git a/src/mame/drivers/xexex.cpp b/src/mame/drivers/xexex.cpp
index 35dd1323daa..68f4ed0b716 100644
--- a/src/mame/drivers/xexex.cpp
+++ b/src/mame/drivers/xexex.cpp
@@ -500,12 +500,12 @@ void xexex_state::xexex(machine_config &config)
m_palette->enable_hilights();
K056832(config, m_k056832, 0);
- m_k056832->set_tile_callback(FUNC(xexex_state::tile_callback), this);
+ m_k056832->set_tile_callback(FUNC(xexex_state::tile_callback));
m_k056832->set_config(K056832_BPP_4, 1, 0);
m_k056832->set_palette(m_palette);
K053246(config, m_k053246, 0);
- m_k053246->set_sprite_callback(FUNC(xexex_state::sprite_callback), this);
+ m_k053246->set_sprite_callback(FUNC(xexex_state::sprite_callback));
m_k053246->set_config(NORMAL_PLANE_ORDER, -48, 32);
m_k053246->set_palette(m_palette);
diff --git a/src/mame/drivers/xmen.cpp b/src/mame/drivers/xmen.cpp
index ed3b4543eb5..2e1dbea5239 100644
--- a/src/mame/drivers/xmen.cpp
+++ b/src/mame/drivers/xmen.cpp
@@ -327,10 +327,10 @@ void xmen_state::xmen(machine_config &config)
K052109(config, m_k052109, 0);
m_k052109->set_palette("palette");
m_k052109->set_screen(nullptr);
- m_k052109->set_tile_callback(FUNC(xmen_state::tile_callback), this);
+ m_k052109->set_tile_callback(FUNC(xmen_state::tile_callback));
K053246(config, m_k053246, 0);
- m_k053246->set_sprite_callback(FUNC(xmen_state::sprite_callback), this);
+ m_k053246->set_sprite_callback(FUNC(xmen_state::sprite_callback));
m_k053246->set_config(NORMAL_PLANE_ORDER, 53, -2);
m_k053246->set_palette("palette");
@@ -390,10 +390,10 @@ void xmen_state::xmen6p(machine_config &config)
K052109(config, m_k052109, 0);
m_k052109->set_palette("palette");
m_k052109->set_screen(nullptr);
- m_k052109->set_tile_callback(FUNC(xmen_state::tile_callback), this);
+ m_k052109->set_tile_callback(FUNC(xmen_state::tile_callback));
K053246(config, m_k053246, 0);
- m_k053246->set_sprite_callback(FUNC(xmen_state::sprite_callback), this);
+ m_k053246->set_sprite_callback(FUNC(xmen_state::sprite_callback));
m_k053246->set_config(NORMAL_PLANE_ORDER, 53, -2);
m_k053246->set_screen(m_screen);
m_k053246->set_palette("palette");
diff --git a/src/mame/drivers/xor100.cpp b/src/mame/drivers/xor100.cpp
index 5392e0a0e2a..07503074fb0 100644
--- a/src/mame/drivers/xor100.cpp
+++ b/src/mame/drivers/xor100.cpp
@@ -265,9 +265,9 @@ void xor100_state::xor100_io(address_map &map)
map(0x0a, 0x0a).r(FUNC(xor100_state::prom_disable_r));
map(0x0b, 0x0b).portr("DSW0").w(COM5016_TAG, FUNC(com8116_device::stt_str_w));
map(0x0c, 0x0f).rw(m_ctc, FUNC(z80ctc_device::read), FUNC(z80ctc_device::write));
- map(0xf8, 0xfb).lrw8("fdc",
- [this](offs_t offset) { return m_fdc->read(offset) ^ 0xff; },
- [this](offs_t offset, u8 data) { m_fdc->write(offset, data ^ 0xff); });
+ map(0xf8, 0xfb).lrw8(
+ NAME([this](offs_t offset) { return m_fdc->read(offset) ^ 0xff; }),
+ NAME([this](offs_t offset, u8 data) { m_fdc->write(offset, data ^ 0xff); }));
map(0xfc, 0xfc).rw(FUNC(xor100_state::fdc_wait_r), FUNC(xor100_state::fdc_dcont_w));
map(0xfd, 0xfd).w(FUNC(xor100_state::fdc_dsel_w));
}
diff --git a/src/mame/drivers/xtom3d.cpp b/src/mame/drivers/xtom3d.cpp
index 78000c9f526..95983f6fcd8 100644
--- a/src/mame/drivers/xtom3d.cpp
+++ b/src/mame/drivers/xtom3d.cpp
@@ -422,10 +422,8 @@ void xtom3d_state::xtom3d(machine_config &config)
pcat_common(config);
PCI_BUS_LEGACY(config, m_pcibus, 0, 0);
- m_pcibus->set_device_read (0, FUNC(xtom3d_state::intel82439tx_pci_r), this);
- m_pcibus->set_device_write(0, FUNC(xtom3d_state::intel82439tx_pci_w), this);
- m_pcibus->set_device_read (7, FUNC(xtom3d_state::intel82371ab_pci_r), this);
- m_pcibus->set_device_write(7, FUNC(xtom3d_state::intel82371ab_pci_w), this);
+ m_pcibus->set_device(0, FUNC(xtom3d_state::intel82439tx_pci_r), FUNC(xtom3d_state::intel82439tx_pci_w));
+ m_pcibus->set_device(7, FUNC(xtom3d_state::intel82371ab_pci_r), FUNC(xtom3d_state::intel82371ab_pci_w));
/* video hardware */
pcvideo_vga(config);
diff --git a/src/mame/drivers/ymmu50.cpp b/src/mame/drivers/ymmu50.cpp
index 7fad2fb2388..a3962f4902d 100644
--- a/src/mame/drivers/ymmu50.cpp
+++ b/src/mame/drivers/ymmu50.cpp
@@ -215,13 +215,13 @@ void mu50_state::mu50_iomap(address_map &map)
map(h8_device::PORT_B, h8_device::PORT_B).rw(FUNC(mu50_state::pb_r), FUNC(mu50_state::pb_w));
map(h8_device::PORT_C, h8_device::PORT_C).rw(FUNC(mu50_state::pc_r), FUNC(mu50_state::pc_w));
map(h8_device::ADC_0, h8_device::ADC_0).r(FUNC(mu50_state::adc_ar_r));
- map(h8_device::ADC_1, h8_device::ADC_1).lr16("gnd", []() -> u16 { return 0; });
+ map(h8_device::ADC_1, h8_device::ADC_1).lr16([]() -> u16 { return 0; }, "gnd");
map(h8_device::ADC_2, h8_device::ADC_2).r(FUNC(mu50_state::adc_al_r));
- map(h8_device::ADC_3, h8_device::ADC_3).lr16("gnd", []() -> u16 { return 0; });
+ map(h8_device::ADC_3, h8_device::ADC_3).lr16([]() -> u16 { return 0; }, "gnd");
map(h8_device::ADC_4, h8_device::ADC_4).r(FUNC(mu50_state::adc_midisw_r));
- map(h8_device::ADC_5, h8_device::ADC_6).lr16("gnd", []() -> u16 { return 0; });
+ map(h8_device::ADC_5, h8_device::ADC_6).lr16([]() -> u16 { return 0; }, "gnd");
map(h8_device::ADC_6, h8_device::ADC_6).r(FUNC(mu50_state::adc_battery_r));
- map(h8_device::ADC_7, h8_device::ADC_7).lr16("gnd", []() -> u16 { return 0; });
+ map(h8_device::ADC_7, h8_device::ADC_7).lr16([]() -> u16 { return 0; }, "gnd");
}
void mu50_state::mu50(machine_config &config)
diff --git a/src/mame/drivers/z100.cpp b/src/mame/drivers/z100.cpp
index d6515c0c7f5..af25f34942e 100644
--- a/src/mame/drivers/z100.cpp
+++ b/src/mame/drivers/z100.cpp
@@ -799,7 +799,7 @@ void z100_state::z100(machine_config &config)
m_crtc->set_screen("screen");
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8);
- m_crtc->set_update_row_callback(FUNC(z100_state::update_row), this);
+ m_crtc->set_update_row_callback(FUNC(z100_state::update_row));
m_crtc->out_vsync_callback().set(FUNC(z100_state::vidint_w));
PIC8259(config, m_picm);
diff --git a/src/mame/drivers/z1013.cpp b/src/mame/drivers/z1013.cpp
index c3b033be782..77e3bbf9516 100644
--- a/src/mame/drivers/z1013.cpp
+++ b/src/mame/drivers/z1013.cpp
@@ -401,7 +401,7 @@ void z1013_state::z1013(machine_config &config)
m_cass->set_default_state(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED);
m_cass->add_route(ALL_OUTPUTS, "mono", 0.05);
- SNAPSHOT(config, "snapshot", "z80").set_load_callback(FUNC(z1013_state::snapshot_cb), this);
+ SNAPSHOT(config, "snapshot", "z80").set_load_callback(FUNC(z1013_state::snapshot_cb));
}
void z1013_state::z1013k76(machine_config &config)
diff --git a/src/mame/drivers/z88.cpp b/src/mame/drivers/z88.cpp
index 7b44e8fd29e..286d302cb1d 100644
--- a/src/mame/drivers/z88.cpp
+++ b/src/mame/drivers/z88.cpp
@@ -107,16 +107,16 @@ UPD65031_MEMORY_UPDATE(z88_state::bankswitch_update)
switch (bank)
{
case 0:
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x0000, 0x3fff, read8_delegate(FUNC(z88_state::bank0_cart_r), this), write8_delegate(FUNC(z88_state::bank0_cart_w), this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x0000, 0x3fff, read8_delegate(*this, FUNC(z88_state::bank0_cart_r)), write8_delegate(*this, FUNC(z88_state::bank0_cart_w)));
break;
case 1:
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x4000, 0x7fff, read8_delegate(FUNC(z88_state::bank1_cart_r), this), write8_delegate(FUNC(z88_state::bank1_cart_w), this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x4000, 0x7fff, read8_delegate(*this, FUNC(z88_state::bank1_cart_r)), write8_delegate(*this, FUNC(z88_state::bank1_cart_w)));
break;
case 2:
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x8000, 0xbfff, read8_delegate(FUNC(z88_state::bank2_cart_r), this), write8_delegate(FUNC(z88_state::bank2_cart_w), this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x8000, 0xbfff, read8_delegate(*this, FUNC(z88_state::bank2_cart_r)), write8_delegate(*this, FUNC(z88_state::bank2_cart_w)));
break;
case 3:
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xc000, 0xffff, read8_delegate(FUNC(z88_state::bank3_cart_r), this), write8_delegate(FUNC(z88_state::bank3_cart_w), this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xc000, 0xffff, read8_delegate(*this, FUNC(z88_state::bank3_cart_r)), write8_delegate(*this, FUNC(z88_state::bank3_cart_w)));
break;
}
@@ -619,8 +619,8 @@ void z88_state::z88(machine_config &config)
m_blink->int_wr_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
m_blink->nmi_wr_callback().set_inputline(m_maincpu, INPUT_LINE_NMI);
m_blink->spkr_wr_callback().set("speaker", FUNC(speaker_sound_device::level_w));
- m_blink->set_screen_update_callback(FUNC(z88_state::lcd_update), this);
- m_blink->set_memory_update_callback(FUNC(z88_state::bankswitch_update), this);
+ m_blink->set_screen_update_callback(FUNC(z88_state::lcd_update));
+ m_blink->set_memory_update_callback(FUNC(z88_state::bankswitch_update));
/* sound hardware */
SPEAKER(config, "mono").front_center();
diff --git a/src/mame/drivers/zaxxon.cpp b/src/mame/drivers/zaxxon.cpp
index 694b0a3fdf4..db85175205d 100644
--- a/src/mame/drivers/zaxxon.cpp
+++ b/src/mame/drivers/zaxxon.cpp
@@ -1584,7 +1584,7 @@ void zaxxon_state::init_razmataz()
pgmspace.install_read_port(0xc00c, 0xc00c, 0x18f3, "SW0C");
/* unknown behavior expected here */
- pgmspace.install_read_handler(0xc80a, 0xc80a, read8_delegate(FUNC(zaxxon_state::razmataz_counter_r),this));
+ pgmspace.install_read_handler(0xc80a, 0xc80a, read8_delegate(*this, FUNC(zaxxon_state::razmataz_counter_r)));
/* additional state saving */
save_item(NAME(m_razmataz_dial_pos));
diff --git a/src/mame/drivers/zorba.cpp b/src/mame/drivers/zorba.cpp
index 4d1096bd498..fb84b16637e 100644
--- a/src/mame/drivers/zorba.cpp
+++ b/src/mame/drivers/zorba.cpp
@@ -217,7 +217,7 @@ void zorba_state::zorba(machine_config &config)
I8275(config, m_crtc, 14.318'181_MHz_XTAL / 8); // TODO: character clock divider is 9 during HRTC
m_crtc->set_character_width(8);
m_crtc->set_refresh_hack(true);
- m_crtc->set_display_callback(FUNC(zorba_state::zorba_update_chr), this);
+ m_crtc->set_display_callback(FUNC(zorba_state::zorba_update_chr));
m_crtc->drq_wr_callback().set(m_dma, FUNC(z80dma_device::rdy_w));
m_crtc->irq_wr_callback().set("irq0", FUNC(input_merger_device::in_w<1>));
m_crtc->set_screen("screen");
diff --git a/src/mame/drivers/zr107.cpp b/src/mame/drivers/zr107.cpp
index 62e3b197c87..be176b00fb5 100644
--- a/src/mame/drivers/zr107.cpp
+++ b/src/mame/drivers/zr107.cpp
@@ -815,7 +815,7 @@ void midnrun_state::midnrun(machine_config &config)
m_screen->set_screen_update(FUNC(midnrun_state::screen_update));
K056832(config, m_k056832, 0);
- m_k056832->set_tile_callback(FUNC(midnrun_state::tile_callback), this);
+ m_k056832->set_tile_callback(FUNC(midnrun_state::tile_callback));
m_k056832->set_config(K056832_BPP_8, 1, 0);
m_k056832->set_palette(m_palette);
}
diff --git a/src/mame/drivers/zrt80.cpp b/src/mame/drivers/zrt80.cpp
index f008e38453f..2e01a2ebd41 100644
--- a/src/mame/drivers/zrt80.cpp
+++ b/src/mame/drivers/zrt80.cpp
@@ -304,7 +304,7 @@ void zrt80_state::zrt80(machine_config &config)
m_crtc->set_screen("screen");
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8); /*?*/
- m_crtc->set_update_row_callback(FUNC(zrt80_state::crtc_update_row), this);
+ m_crtc->set_update_row_callback(FUNC(zrt80_state::crtc_update_row));
INS8250(config, m_8250, 2457600);
m_8250->out_int_callback().set_inputline("maincpu", INPUT_LINE_IRQ0);
diff --git a/src/mame/drivers/zwackery.cpp b/src/mame/drivers/zwackery.cpp
index ec2b8202d77..7b15b6e1dc4 100644
--- a/src/mame/drivers/zwackery.cpp
+++ b/src/mame/drivers/zwackery.cpp
@@ -195,10 +195,10 @@ void zwackery_state::video_start()
gfx_element *gfx2 = m_gfxdecode->gfx(2);
// initialize the background tilemap
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(zwackery_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16,16, 32,32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(zwackery_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16,16, 32,32);
// initialize the foreground tilemap
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(zwackery_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 16,16, 32,32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(zwackery_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 16,16, 32,32);
m_fg_tilemap->set_transparent_pen(0);
// allocate memory for the assembled gfx data
diff --git a/src/mame/includes/decocass.h b/src/mame/includes/decocass.h
index 6efe74ffc17..63e1f073a33 100644
--- a/src/mame/includes/decocass.h
+++ b/src/mame/includes/decocass.h
@@ -33,6 +33,8 @@ public:
: driver_device(mconfig, type, tag)
, m_maincpu(*this, "maincpu")
, m_mcu(*this, "mcu")
+ , m_dongle_r(*this)
+ , m_dongle_w(*this)
, m_audiocpu(*this, "audiocpu")
, m_watchdog(*this, "watchdog")
, m_cassette(*this, "cassette")
@@ -63,8 +65,8 @@ protected:
required_device<upi41_cpu_device> m_mcu;
/* dongles-related */
- read8_delegate m_dongle_r;
- write8_delegate m_dongle_w;
+ read8_delegate m_dongle_r; // TODO: why isn't this a virtual method?
+ write8_delegate m_dongle_w; // TODO: why isn't this a virtual method?
virtual void machine_start() override;
virtual void machine_reset() override;
diff --git a/src/mame/includes/goldstar.h b/src/mame/includes/goldstar.h
index 95ec5b259ee..4f39d36c1fa 100644
--- a/src/mame/includes/goldstar.h
+++ b/src/mame/includes/goldstar.h
@@ -198,26 +198,7 @@ public:
protected:
// installed by various driver init handlers to get stuff to work
- READ8_MEMBER(fixedval09_r) { return 0x09; }
- READ8_MEMBER(fixedval38_r) { return 0x38; }
- READ8_MEMBER(fixedval48_r) { return 0x48; }
- READ8_MEMBER(fixedval58_r) { return 0x58; }
- READ8_MEMBER(fixedval68_r) { return 0x68; }
- READ8_MEMBER(fixedval74_r) { return 0x74; }
- READ8_MEMBER(fixedval7d_r) { return 0x7d; }
- READ8_MEMBER(fixedval80_r) { return 0x80; }
- READ8_MEMBER(fixedval82_r) { return 0x82; }
- READ8_MEMBER(fixedval84_r) { return 0x84; }
- READ8_MEMBER(fixedval90_r) { return 0x90; }
- READ8_MEMBER(fixedval96_r) { return 0x96; }
- READ8_MEMBER(fixedvala8_r) { return 0xa8; }
- READ8_MEMBER(fixedvalaa_r) { return 0xaa; }
- READ8_MEMBER(fixedvalb2_r) { return 0xb2; }
- READ8_MEMBER(fixedvalb4_r) { return 0xb4; }
- READ8_MEMBER(fixedvalbe_r) { return 0xbe; }
- READ8_MEMBER(fixedvalc7_r) { return 0xc7; }
- READ8_MEMBER(fixedvalea_r) { return 0xea; }
- READ8_MEMBER(fixedvale4_r) { return 0xe4; }
+ template <uint8_t V> READ8_MEMBER(fixedval_r) { return V; }
};
diff --git a/src/mame/includes/hp48.h b/src/mame/includes/hp48.h
index d478736fe39..01f9f4e8024 100644
--- a/src/mame/includes/hp48.h
+++ b/src/mame/includes/hp48.h
@@ -28,25 +28,6 @@ typedef enum {
HP49_G
} hp48_models;
-/* memory module configuration */
-typedef struct
-{
- /* static part */
- uint32_t off_mask; /* offset bit-mask, indicates the real size */
- read8_delegate read;
- const char *read_name;
- write8_delegate write;
- void* data; /* non-NULL for banks */
- int isnop;
-
- /* configurable part */
- uint8_t state; /* one of HP48_MODULE_ */
- uint32_t base; /* base address */
- uint32_t mask; /* often improperly called size, it is an address select mask */
-
-} hp48_module;
-
-
/* screen image averaging */
#define HP48_NB_SCREENS 3
@@ -55,6 +36,7 @@ class hp48_state : public driver_device
public:
hp48_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag)
+ , m_modules{ { *this }, { *this }, { *this }, { *this }, { *this }, { *this } }
, m_maincpu(*this, "maincpu")
, m_dac(*this, "dac")
, m_palette(*this, "palette")
@@ -72,14 +54,34 @@ public:
void init_hp48();
- /* from highest to lowest priority: HDW, NCE2, CE1, CE2, NCE3, NCE1 */
- hp48_module m_modules[6];
-
void decode_nibble(uint8_t* dst, uint8_t* src, int size);
void encode_nibble(uint8_t* dst, uint8_t* src, int size);
void apply_modules();
+ /* memory module configuration */
+ struct hp48_module
+ {
+ hp48_module(device_t &owner) : read(owner), write(owner) { }
+
+ /* static part */
+ uint32_t off_mask; // offset bit-mask, indicates the real size
+ read8_delegate read;
+ const char *read_name;
+ write8_delegate write;
+ void* data; // non-NULL for banks
+ int isnop;
+
+ /* configurable part */
+ uint8_t state; // one of HP48_MODULE_
+ uint32_t base; // base address
+ uint32_t mask; // often improperly called size, it is an address select mask
+
+ };
+
+ /* from highest to lowest priority: HDW, NCE2, CE1, CE2, NCE3, NCE1 */
+ hp48_module m_modules[6];
+
private:
virtual void machine_reset() override;
void base_machine_start(hp48_models model);
diff --git a/src/mame/includes/megadriv.h b/src/mame/includes/megadriv.h
index 37e7c27526d..79bef161a25 100644
--- a/src/mame/includes/megadriv.h
+++ b/src/mame/includes/megadriv.h
@@ -52,7 +52,9 @@ public:
m_scan_timer(*this, "md_scan_timer"),
m_vdp(*this,"gen_vdp"),
m_megadrive_ram(*this,"megadrive_ram"),
- m_io_reset(*this, "RESET")
+ m_io_reset(*this, "RESET"),
+ m_megadrive_io_read_data_port_ptr(*this),
+ m_megadrive_io_write_data_port_ptr(*this)
{ }
required_device<m68000_base_device> m_maincpu;
diff --git a/src/mame/includes/newbrain.h b/src/mame/includes/newbrain.h
index b7726e34a20..b52184ce58f 100644
--- a/src/mame/includes/newbrain.h
+++ b/src/mame/includes/newbrain.h
@@ -100,7 +100,7 @@ private:
int get_reset_t();
int get_pwrup_t();
- void screen_update(bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ void do_screen_update(bitmap_rgb32 &bitmap, const rectangle &cliprect);
void tvl(uint8_t data, int a6);
required_device<z80_device> m_maincpu;
diff --git a/src/mame/includes/segaorun.h b/src/mame/includes/segaorun.h
index c56d785273d..adc9543f755 100644
--- a/src/mame/includes/segaorun.h
+++ b/src/mame/includes/segaorun.h
@@ -26,8 +26,8 @@ class segaorun_state : public sega_16bit_common_base
{
public:
// construction/destruction
- segaorun_state(const machine_config &mconfig, device_type type, const char *tag)
- : sega_16bit_common_base(mconfig, type, tag),
+ segaorun_state(const machine_config &mconfig, device_type type, const char *tag) :
+ sega_16bit_common_base(mconfig, type, tag),
m_mapper(*this, "mapper"),
m_maincpu(*this, "maincpu"),
m_subcpu(*this, "subcpu"),
@@ -44,6 +44,8 @@ public:
m_digital_ports(*this, { { "SERVICE", "UNKNOWN", "COINAGE", "DSW" } }),
m_adc_ports(*this, "ADC.%u", 0),
m_workram(*this, "workram"),
+ m_custom_io_r(*this),
+ m_custom_io_w(*this),
m_custom_map(nullptr),
m_shangon_video(false),
m_scanline_timer(nullptr),
@@ -155,15 +157,15 @@ protected:
// configuration
read16_delegate m_custom_io_r;
write16_delegate m_custom_io_w;
- const uint8_t * m_custom_map;
+ const uint8_t * m_custom_map;
bool m_shangon_video;
// internal state
emu_timer * m_scanline_timer;
emu_timer * m_irq2_gen_timer;
- uint8_t m_irq2_state;
- uint8_t m_adc_select;
- uint8_t m_vblank_irq_state;
+ uint8_t m_irq2_state;
+ uint8_t m_adc_select;
+ uint8_t m_vblank_irq_state;
int m_bankmotor_pos;
int m_bankmotor_delta;
};
diff --git a/src/mame/includes/segas16a.h b/src/mame/includes/segas16a.h
index 9486ee0e0f8..cbf910c255e 100644
--- a/src/mame/includes/segas16a.h
+++ b/src/mame/includes/segas16a.h
@@ -46,6 +46,8 @@ public:
, m_cxdio(*this, "cxdio")
, m_workram(*this, "nvram")
, m_sound_decrypted_opcodes(*this, "sound_decrypted_opcodes")
+ , m_custom_io_r(*this)
+ , m_custom_io_w(*this)
, m_video_control(0)
, m_mcu_control(0)
, m_n7751_command(0)
diff --git a/src/mame/includes/segas16b.h b/src/mame/includes/segas16b.h
index 49d7077d2bf..35ae4878406 100644
--- a/src/mame/includes/segas16b.h
+++ b/src/mame/includes/segas16b.h
@@ -58,6 +58,8 @@ public:
, m_workram(*this, "workram")
, m_romboard(ROM_BOARD_INVALID)
, m_tilemap_type(segaic16_video_device::TILEMAP_16B)
+ , m_custom_io_r(*this)
+ , m_custom_io_w(*this)
, m_disable_screen_blanking(false)
, m_i8751_initial_config(nullptr)
, m_atomicp_sound_divisor(0)
diff --git a/src/mame/includes/segas18.h b/src/mame/includes/segas18.h
index af0a09b1ed1..3689ae03bc1 100644
--- a/src/mame/includes/segas18.h
+++ b/src/mame/includes/segas18.h
@@ -49,6 +49,8 @@ public:
, m_soundbank(*this, "soundbank")
, m_gun_recoil(*this, "P%u_Gun_Recoil", 1U)
, m_romboard(ROM_BOARD_INVALID)
+ , m_custom_io_r(*this)
+ , m_custom_io_w(*this)
, m_grayscale_enable(false)
, m_vdp_enable(false)
, m_vdp_mixing(0)
diff --git a/src/mame/includes/sprint2.h b/src/mame/includes/sprint2.h
index 845fa4dca70..8845e09884a 100644
--- a/src/mame/includes/sprint2.h
+++ b/src/mame/includes/sprint2.h
@@ -88,7 +88,7 @@ private:
void sprint2_palette(palette_device &palette) const;
uint32_t screen_update_sprint2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
DECLARE_WRITE_LINE_MEMBER(screen_vblank_sprint2);
- INTERRUPT_GEN_MEMBER(sprint2);
+ INTERRUPT_GEN_MEMBER(sprint2_irq);
uint8_t collision_check(rectangle& rect);
inline int get_sprite_code(uint8_t *video_ram, int n);
inline int get_sprite_x(uint8_t *video_ram, int n);
diff --git a/src/mame/includes/starfire.h b/src/mame/includes/starfire.h
index 8dda83c71bd..9220ca0d933 100644
--- a/src/mame/includes/starfire.h
+++ b/src/mame/includes/starfire.h
@@ -5,6 +5,10 @@
Star Fire/Fire One system
***************************************************************************/
+#ifndef MAME_INCLUDES_STARFIRE_H
+#define MAME_INCLUDES_STARFIRE_H
+
+#pragma once
#include "sound/samples.h"
#include "screen.h"
@@ -25,14 +29,17 @@
class starfire_state : public driver_device
{
public:
- starfire_state(const machine_config &mconfig, device_type type, const char *tag)
- : driver_device(mconfig, type, tag),
+ starfire_state(const machine_config &mconfig, device_type type, const char *tag) :
+ driver_device(mconfig, type, tag),
m_starfire_colorram(*this, "colorram"),
m_starfire_videoram(*this, "videoram"),
m_samples(*this, "samples"),
m_nmi(*this, "NMI"),
+ m_input_read(*this),
+ m_io2_write(*this),
m_maincpu(*this, "maincpu"),
- m_screen(*this, "screen") { }
+ m_screen(*this, "screen")
+ { }
void fireone(machine_config &config);
void starfire(machine_config &config);
@@ -59,6 +66,10 @@ private:
emu_timer* m_scanline_timer;
bitmap_rgb32 m_starfire_screen;
+
+ required_device<cpu_device> m_maincpu;
+ required_device<screen_device> m_screen;
+
DECLARE_WRITE8_MEMBER(starfire_scratch_w);
DECLARE_READ8_MEMBER(starfire_scratch_r);
DECLARE_READ8_MEMBER(starfire_input_r);
@@ -74,8 +85,8 @@ private:
TIMER_CALLBACK_MEMBER(starfire_scanline_callback);
INTERRUPT_GEN_MEMBER(vblank_int);
void get_pens(pen_t *pens);
- required_device<cpu_device> m_maincpu;
- required_device<screen_device> m_screen;
void main_map(address_map &map);
};
+
+#endif // MAME_INCLUDES_STARFIRE_H
diff --git a/src/mame/includes/zaxxon.h b/src/mame/includes/zaxxon.h
index 0754acac279..6bf9c85f9bc 100644
--- a/src/mame/includes/zaxxon.h
+++ b/src/mame/includes/zaxxon.h
@@ -124,7 +124,7 @@ private:
DECLARE_WRITE8_MEMBER(zaxxon_sound_c_w);
DECLARE_WRITE8_MEMBER(congo_sound_b_w);
DECLARE_WRITE8_MEMBER(congo_sound_c_w);
- void video_start_common(tilemap_get_info_delegate fg_tile_info);
+ void video_start_common(tilemap_get_info_delegate &&fg_tile_info);
void draw_background(bitmap_ind16 &bitmap, const rectangle &cliprect, int skew);
inline int find_minimum_y(uint8_t value, int flip);
inline int find_minimum_x(uint8_t value, int flip);
diff --git a/src/mame/machine/315-5881_crypt.cpp b/src/mame/machine/315-5881_crypt.cpp
index d536fb6c2ac..2fc2d05b471 100644
--- a/src/mame/machine/315-5881_crypt.cpp
+++ b/src/mame/machine/315-5881_crypt.cpp
@@ -45,6 +45,7 @@ void sega_315_5881_crypt_device::iomap_le(address_map &map)
sega_315_5881_crypt_device::sega_315_5881_crypt_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: device_t(mconfig, SEGA315_5881_CRYPT, tag, owner, clock)
+ , m_read(*this)
{
}
@@ -56,7 +57,7 @@ void sega_315_5881_crypt_device::device_start()
line_buffer = std::make_unique<uint8_t[]>(LINE_SIZE);
line_buffer_prev = std::make_unique<uint8_t[]>(LINE_SIZE);
- m_read.bind_relative_to(*owner());
+ m_read.resolve();
save_pointer(NAME(buffer), BUFFER_SIZE);
save_pointer(NAME(line_buffer), LINE_SIZE);
diff --git a/src/mame/machine/315-5881_crypt.h b/src/mame/machine/315-5881_crypt.h
index 0d23b6d7527..98dcd37d1b8 100644
--- a/src/mame/machine/315-5881_crypt.h
+++ b/src/mame/machine/315-5881_crypt.h
@@ -35,12 +35,7 @@ public:
sega_m2_read_delegate m_read;
- template <typename Object> void set_read_cb(Object &&readcb) { m_read = std::forward<Object>(readcb); }
- void set_read_cb(sega_m2_read_delegate callback) { m_read = callback; }
- template <class FunctionClass> void set_read_cb(uint16_t (FunctionClass::*callback)(uint32_t), const char *name)
- {
- set_read_cb(sega_m2_read_delegate(callback, name, nullptr, static_cast<FunctionClass *>(nullptr)));
- }
+ template <typename... T> void set_read_cb(T &&... args) { m_read.set(std::forward<T>(args)...); }
protected:
virtual void device_start() override;
diff --git a/src/mame/machine/315_5195.cpp b/src/mame/machine/315_5195.cpp
index 0ba261a9854..df93ab9c436 100644
--- a/src/mame/machine/315_5195.cpp
+++ b/src/mame/machine/315_5195.cpp
@@ -42,6 +42,7 @@ sega_315_5195_mapper_device::sega_315_5195_mapper_device(const machine_config &m
: device_t(mconfig, SEGA_315_5195_MEM_MAPPER, tag, owner, clock)
, m_cpu(*this, finder_base::DUMMY_TAG)
, m_cpuregion(*this, finder_base::DUMMY_TAG)
+ , m_mapper(*this)
, m_pbf_callback(*this)
, m_mcu_int_callback(*this)
, m_space(nullptr)
@@ -396,7 +397,7 @@ WRITE8_MEMBER(sega_315_5195_mapper_device::pwrite)
void sega_315_5195_mapper_device::device_start()
{
// bind our handlers
- m_mapper.bind_relative_to(*owner());
+ m_mapper.resolve();
m_pbf_callback.resolve();
m_mcu_int_callback.resolve();
@@ -482,7 +483,7 @@ void sega_315_5195_mapper_device::update_mapping()
// first reset everything back to the beginning
m_space->unmap_readwrite(0x000000, 0xffffff);
- m_space->install_readwrite_handler(0x000000, 0xffffff, read8_delegate(FUNC(sega_315_5195_mapper_device::read), this), write8_delegate(FUNC(sega_315_5195_mapper_device::write), this), 0x00ff);
+ m_space->install_readwrite_handler(0x000000, 0xffffff, read8_delegate(*this, FUNC(sega_315_5195_mapper_device::read)), write8_delegate(*this, FUNC(sega_315_5195_mapper_device::write)), 0x00ff);
// loop over the regions
for (int index = 7; index >= 0; index--)
diff --git a/src/mame/machine/315_5195.h b/src/mame/machine/315_5195.h
index 479abf824f9..0ba33c13c1c 100644
--- a/src/mame/machine/315_5195.h
+++ b/src/mame/machine/315_5195.h
@@ -40,7 +40,7 @@ public:
sega_315_5195_mapper_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
// configuration helpers
- template <typename... T> void set_mapper(T &&... args) { m_mapper = mapper_delegate(std::forward<T>(args)...); }
+ template <typename... T> void set_mapper(T &&... args) { m_mapper.set(std::forward<T>(args)...); }
auto pbf() { return m_pbf_callback.bind(); }
auto mcu_int() { return m_mcu_int_callback.bind(); }
diff --git a/src/mame/machine/3dom2.cpp b/src/mame/machine/3dom2.cpp
index fc3004c0f5e..4f838634c9d 100644
--- a/src/mame/machine/3dom2.cpp
+++ b/src/mame/machine/3dom2.cpp
@@ -469,24 +469,24 @@ void m2_bda_device::configure_ppc_address_map(address_space &space)
space.install_ram(TE_TRAM_BASE, TE_TRAM_BASE + TE_TRAM_MASK, m_te->tram_ptr());
// Install BDA sub-devices
- space.install_readwrite_handler(POWERBUS_BASE, POWERBUS_BASE + DEVICE_MASK,read32_delegate(FUNC(m2_powerbus_device::read), &(*m_powerbus)), write32_delegate(FUNC(m2_powerbus_device::write), &(*m_powerbus)), 0xffffffffffffffffULL);
- space.install_readwrite_handler(MEMCTL_BASE, MEMCTL_BASE + DEVICE_MASK, read32_delegate(FUNC(m2_memctl_device::read), &(*m_memctl)), write32_delegate(FUNC(m2_memctl_device::write), &(*m_memctl)), 0xffffffffffffffffULL);
- space.install_readwrite_handler(VDU_BASE, VDU_BASE + DEVICE_MASK, read32_delegate(FUNC(m2_vdu_device::read), &(*m_vdu)), write32_delegate(FUNC(m2_vdu_device::write), &(*m_vdu)), 0xffffffffffffffffULL);
- space.install_readwrite_handler(TE_BASE, TE_BASE + DEVICE_MASK, read32_delegate(FUNC(m2_te_device::read), &(*m_te)), write32_delegate(FUNC(m2_te_device::write), &(*m_te)), 0xffffffffffffffffULL);
- space.install_readwrite_handler(DSP_BASE, DSP_BASE + DEVICE_MASK, read32_delegate(FUNC(dspp_device::read), &(*m_dspp)), write32_delegate(FUNC(dspp_device::write), &(*m_dspp)), 0xffffffffffffffffULL);
- space.install_readwrite_handler(CTRLPORT_BASE, CTRLPORT_BASE + DEVICE_MASK,read32_delegate(FUNC(m2_ctrlport_device::read), &(*m_ctrlport)), write32_delegate(FUNC(m2_ctrlport_device::write), &(*m_ctrlport)), 0xffffffffffffffffULL);
- space.install_readwrite_handler(MPEG_BASE, MPEG_BASE + DEVICE_MASK, read32_delegate(FUNC(m2_mpeg_device::read), &(*m_mpeg)), write32_delegate(FUNC(m2_mpeg_device::write), &(*m_mpeg)), 0xffffffffffffffffULL);
+ space.install_readwrite_handler(POWERBUS_BASE, POWERBUS_BASE + DEVICE_MASK,read32_delegate(*m_powerbus, FUNC(m2_powerbus_device::read)), write32_delegate(*m_powerbus, FUNC(m2_powerbus_device::write)), 0xffffffffffffffffULL);
+ space.install_readwrite_handler(MEMCTL_BASE, MEMCTL_BASE + DEVICE_MASK, read32_delegate(*m_memctl, FUNC(m2_memctl_device::read)), write32_delegate(*m_memctl, FUNC(m2_memctl_device::write)), 0xffffffffffffffffULL);
+ space.install_readwrite_handler(VDU_BASE, VDU_BASE + DEVICE_MASK, read32_delegate(*m_vdu, FUNC(m2_vdu_device::read)), write32_delegate(*m_vdu, FUNC(m2_vdu_device::write)), 0xffffffffffffffffULL);
+ space.install_readwrite_handler(TE_BASE, TE_BASE + DEVICE_MASK, read32_delegate(*m_te, FUNC(m2_te_device::read)), write32_delegate(*m_te, FUNC(m2_te_device::write)), 0xffffffffffffffffULL);
+ space.install_readwrite_handler(DSP_BASE, DSP_BASE + DEVICE_MASK, read32_delegate(*m_dspp, FUNC(dspp_device::read)), write32_delegate(*m_dspp, FUNC(dspp_device::write)), 0xffffffffffffffffULL);
+ space.install_readwrite_handler(CTRLPORT_BASE, CTRLPORT_BASE + DEVICE_MASK,read32_delegate(*m_ctrlport, FUNC(m2_ctrlport_device::read)), write32_delegate(*m_ctrlport, FUNC(m2_ctrlport_device::write)), 0xffffffffffffffffULL);
+ space.install_readwrite_handler(MPEG_BASE, MPEG_BASE + DEVICE_MASK, read32_delegate(*m_mpeg, FUNC(m2_mpeg_device::read)), write32_delegate(*m_mpeg, FUNC(m2_mpeg_device::write)), 0xffffffffffffffffULL);
- space.install_readwrite_handler(CPUID_BASE, CPUID_BASE + DEVICE_MASK, read32_delegate(FUNC(m2_bda_device::cpu_id_r), this), write32_delegate(FUNC(m2_bda_device::cpu_id_w), this), 0xffffffffffffffffULL);
+ space.install_readwrite_handler(CPUID_BASE, CPUID_BASE + DEVICE_MASK, read32_delegate(*this, FUNC(m2_bda_device::cpu_id_r)), write32_delegate(*this, FUNC(m2_bda_device::cpu_id_w)), 0xffffffffffffffffULL);
// Find and install the CDE
m2_cde_device *cde = downcast<m2_cde_device *>(machine().device("cde"));
- if (cde == NULL)
+ if (!cde)
throw emu_fatalerror("BDA: Could not find the CDE device!");
- space.install_readwrite_handler(SLOT4_BASE, SLOT4_BASE + SLOT_MASK, read32_delegate(FUNC(m2_cde_device::read), cde), write32_delegate(FUNC(m2_cde_device::write), cde), 0xffffffffffffffffULL);
+ space.install_readwrite_handler(SLOT4_BASE, SLOT4_BASE + SLOT_MASK, read32_delegate(*cde, FUNC(m2_cde_device::read)), write32_delegate(*cde, FUNC(m2_cde_device::write)), 0xffffffffffffffffULL);
}
diff --git a/src/mame/machine/6883sam.cpp b/src/mame/machine/6883sam.cpp
index 53dc0688c32..b786d8ce85c 100644
--- a/src/mame/machine/6883sam.cpp
+++ b/src/mame/machine/6883sam.cpp
@@ -76,6 +76,7 @@ sam6883_device::sam6883_device(const machine_config &mconfig, const char *tag, d
, sam6883_friend_device_interface(mconfig, *this, 4)
, m_cpu_space(nullptr)
, m_read_res(*this)
+ , m_banks{ { *this }, { *this }, { *this }, { *this }, { *this }, { *this }, { *this }, { *this } }
, m_space_0000(*this)
, m_space_8000(*this)
, m_space_A000(*this)
@@ -110,8 +111,8 @@ void sam6883_device::device_start()
m_read_res.resolve_safe(0);
// install SAM handlers
- m_cpu_space->install_read_handler(0xFFC0, 0xFFDF, read8_delegate(FUNC(sam6883_device::read), this));
- m_cpu_space->install_write_handler(0xFFC0, 0xFFDF, write8_delegate(FUNC(sam6883_device::write), this));
+ m_cpu_space->install_read_handler(0xFFC0, 0xFFDF, read8_delegate(*this, FUNC(sam6883_device::read)));
+ m_cpu_space->install_write_handler(0xFFC0, 0xFFDF, write8_delegate(*this, FUNC(sam6883_device::write)));
// save state support
save_item(NAME(m_sam_state));
@@ -127,7 +128,7 @@ void sam6883_device::device_start()
void sam6883_device::configure_bank(int bank, uint8_t *memory, uint32_t memory_size, bool is_read_only)
{
- configure_bank(bank, memory, memory_size, is_read_only, read8_delegate(), write8_delegate());
+ configure_bank(bank, memory, memory_size, is_read_only, read8_delegate(*this), write8_delegate(*this));
}
@@ -212,7 +213,7 @@ void sam6883_device::device_post_load()
// update_state
//-------------------------------------------------
-void sam6883_device::update_state(void)
+void sam6883_device::update_state()
{
update_memory();
update_cpu_clock();
@@ -224,7 +225,7 @@ void sam6883_device::update_state(void)
// update_memory
//-------------------------------------------------
-void sam6883_device::update_memory(void)
+void sam6883_device::update_memory()
{
// Memory size - allowed restricting memory accesses to something less than
// 32k
@@ -307,7 +308,7 @@ void sam6883_device::update_memory(void)
// clock
//-------------------------------------------------
-void sam6883_friend_device_interface::update_cpu_clock(void)
+void sam6883_friend_device_interface::update_cpu_clock()
{
// The infamous speed up poke.
//
@@ -385,7 +386,7 @@ WRITE8_MEMBER( sam6883_device::write )
// horizontal_sync
//-------------------------------------------------
-void sam6883_device::horizontal_sync(void)
+void sam6883_device::horizontal_sync()
{
bool carry;
diff --git a/src/mame/machine/6883sam.h b/src/mame/machine/6883sam.h
index c973bb22f65..d1c48e5af12 100644
--- a/src/mame/machine/6883sam.h
+++ b/src/mame/machine/6883sam.h
@@ -52,7 +52,7 @@ protected:
// base clock divider (/4 for MC6883, /8 for GIME)
int m_divider;
- ATTR_FORCE_INLINE uint16_t display_offset(void)
+ ATTR_FORCE_INLINE uint16_t display_offset()
{
return ((m_sam_state & (SAM_STATE_F0|SAM_STATE_F1|SAM_STATE_F2|SAM_STATE_F3|SAM_STATE_F4|SAM_STATE_F5|SAM_STATE_F6)) / SAM_STATE_F0) << 9;
}
@@ -75,7 +75,7 @@ protected:
return xorval;
}
- void update_cpu_clock(void);
+ void update_cpu_clock();
};
class sam6883_device : public device_t, public sam6883_friend_device_interface
@@ -122,7 +122,7 @@ public:
DECLARE_WRITE_LINE_MEMBER( hs_w );
// typically called by machine
- address_space *mpu_address_space(void) const { return m_cpu_space; }
+ address_space *mpu_address_space() const { return m_cpu_space; }
void set_bank_offset(int bank, offs_t offset);
protected:
@@ -136,6 +136,8 @@ private:
// points to with the S2/S1/S0 output
struct sam_bank
{
+ sam_bank(device_t &owner) : m_rhandler(owner), m_whandler(owner) { }
+
uint8_t * m_memory;
uint32_t m_memory_size;
offs_t m_memory_offset;
@@ -192,7 +194,7 @@ private:
DECLARE_WRITE8_MEMBER( write );
// called when there is a carry out of bit 3 on the counter
- ATTR_FORCE_INLINE void counter_carry_bit3(void)
+ ATTR_FORCE_INLINE void counter_carry_bit3()
{
uint8_t x_division;
switch((m_sam_state & (SAM_STATE_V2|SAM_STATE_V1|SAM_STATE_V0)) / SAM_STATE_V0)
@@ -220,7 +222,7 @@ private:
}
// called when there is a carry out of bit 4 on the counter
- ATTR_FORCE_INLINE void counter_carry_bit4(void)
+ ATTR_FORCE_INLINE void counter_carry_bit4()
{
uint8_t y_division;
switch((m_sam_state & (SAM_STATE_V2|SAM_STATE_V1|SAM_STATE_V0)) / SAM_STATE_V0)
@@ -247,9 +249,9 @@ private:
// other members
void configure_bank(int bank, uint8_t *memory, uint32_t memory_size, bool is_read_only, read8_delegate rhandler, write8_delegate whandler);
- void horizontal_sync(void);
- void update_state(void);
- void update_memory(void);
+ void horizontal_sync();
+ void update_state();
+ void update_memory();
};
DECLARE_DEVICE_TYPE(SAM6883, sam6883_device)
diff --git a/src/mame/machine/aim65.cpp b/src/mame/machine/aim65.cpp
index e39e192d682..8707cf9a2a1 100644
--- a/src/mame/machine/aim65.cpp
+++ b/src/mame/machine/aim65.cpp
@@ -113,21 +113,21 @@ void aim65_state::machine_start()
// Init ROM sockets
if (m_z24->exists())
- space.install_read_handler(0xd000, 0xdfff, read8sm_delegate(FUNC(generic_slot_device::read_rom),(generic_slot_device*)m_z24));
+ space.install_read_handler(0xd000, 0xdfff, read8sm_delegate(*m_z24, FUNC(generic_slot_device::read_rom)));
if (m_z25->exists())
- space.install_read_handler(0xc000, 0xcfff, read8sm_delegate(FUNC(generic_slot_device::read_rom),(generic_slot_device*)m_z25));
+ space.install_read_handler(0xc000, 0xcfff, read8sm_delegate(*m_z25, FUNC(generic_slot_device::read_rom)));
if (m_z26->exists())
- space.install_read_handler(0xb000, 0xbfff, read8sm_delegate(FUNC(generic_slot_device::read_rom),(generic_slot_device*)m_z26));
+ space.install_read_handler(0xb000, 0xbfff, read8sm_delegate(*m_z26, FUNC(generic_slot_device::read_rom)));
// Init PROM/ROM module sockets
if (m_z12->exists())
- space.install_read_handler(0x4000, 0x4fff, read8sm_delegate(FUNC(generic_slot_device::read_rom),(generic_slot_device*)m_z12));
+ space.install_read_handler(0x4000, 0x4fff, read8sm_delegate(*m_z12, FUNC(generic_slot_device::read_rom)));
if (m_z13->exists())
- space.install_read_handler(0x5000, 0x5fff, read8sm_delegate(FUNC(generic_slot_device::read_rom),(generic_slot_device*)m_z13));
+ space.install_read_handler(0x5000, 0x5fff, read8sm_delegate(*m_z13, FUNC(generic_slot_device::read_rom)));
if (m_z14->exists())
- space.install_read_handler(0x6000, 0x6fff, read8sm_delegate(FUNC(generic_slot_device::read_rom),(generic_slot_device*)m_z14));
+ space.install_read_handler(0x6000, 0x6fff, read8sm_delegate(*m_z14, FUNC(generic_slot_device::read_rom)));
if (m_z15->exists())
- space.install_read_handler(0x7000, 0x7fff, read8sm_delegate(FUNC(generic_slot_device::read_rom),(generic_slot_device*)m_z15));
+ space.install_read_handler(0x7000, 0x7fff, read8sm_delegate(*m_z15, FUNC(generic_slot_device::read_rom)));
// Init RAM
space.install_ram(0x0000, m_ram->size() - 1, m_ram->pointer());
diff --git a/src/mame/machine/amiga.cpp b/src/mame/machine/amiga.cpp
index 74e26418e78..ddec93c8012 100644
--- a/src/mame/machine/amiga.cpp
+++ b/src/mame/machine/amiga.cpp
@@ -154,7 +154,7 @@ void amiga_state::machine_start()
m_power_led.resolve();
// add callback for RESET instruction
- m_maincpu->set_reset_callback(write_line_delegate(FUNC(amiga_state::m68k_reset), this));
+ m_maincpu->set_reset_callback(*this, FUNC(amiga_state::m68k_reset));
// set up chip RAM access
memory_share *share = memshare("chip_ram");
diff --git a/src/mame/machine/amstrad.cpp b/src/mame/machine/amstrad.cpp
index 80cf8846b9d..ef35bac847b 100644
--- a/src/mame/machine/amstrad.cpp
+++ b/src/mame/machine/amstrad.cpp
@@ -1160,10 +1160,10 @@ void amstrad_state::amstrad_setLowerRom()
/* if ( m_asic.enabled && ( m_asic.rmr2 & 0x18 ) == 0x18 )
{
- space.install_read_handler(0x4000, 0x5fff, read8_delegate(FUNC(amstrad_state::amstrad_plus_asic_4000_r),this));
- space.install_read_handler(0x6000, 0x7fff, read8_delegate(FUNC(amstrad_state::amstrad_plus_asic_6000_r),this));
- space.install_write_handler(0x4000, 0x5fff, write8_delegate(FUNC(amstrad_state::amstrad_plus_asic_4000_w),this));
- space.install_write_handler(0x6000, 0x7fff, write8_delegate(FUNC(amstrad_state::amstrad_plus_asic_6000_w),this));
+ space.install_read_handler(0x4000, 0x5fff, read8_delegate(*this, FUNC(amstrad_state::amstrad_plus_asic_4000_r)));
+ space.install_read_handler(0x6000, 0x7fff, read8_delegate(*this, FUNC(amstrad_state::amstrad_plus_asic_6000_r)));
+ space.install_write_handler(0x4000, 0x5fff, write8_delegate(*this, FUNC(amstrad_state::amstrad_plus_asic_4000_w)));
+ space.install_write_handler(0x6000, 0x7fff, write8_delegate(*this, FUNC(amstrad_state::amstrad_plus_asic_6000_w)));
}
else
{
@@ -3144,10 +3144,10 @@ MACHINE_RESET_MEMBER(amstrad_state,plus)
AmstradCPC_GA_SetRamConfiguration();
amstrad_GateArray_write(0x081); // Epyx World of Sports requires upper ROM to be enabled by default
- space.install_read_handler(0x4000, 0x5fff, read8_delegate(FUNC(amstrad_state::amstrad_plus_asic_4000_r),this));
- space.install_read_handler(0x6000, 0x7fff, read8_delegate(FUNC(amstrad_state::amstrad_plus_asic_6000_r),this));
- space.install_write_handler(0x4000, 0x5fff, write8_delegate(FUNC(amstrad_state::amstrad_plus_asic_4000_w),this));
- space.install_write_handler(0x6000, 0x7fff, write8_delegate(FUNC(amstrad_state::amstrad_plus_asic_6000_w),this));
+ space.install_read_handler(0x4000, 0x5fff, read8_delegate(*this, FUNC(amstrad_state::amstrad_plus_asic_4000_r)));
+ space.install_read_handler(0x6000, 0x7fff, read8_delegate(*this, FUNC(amstrad_state::amstrad_plus_asic_6000_r)));
+ space.install_write_handler(0x4000, 0x5fff, write8_delegate(*this, FUNC(amstrad_state::amstrad_plus_asic_4000_w)));
+ space.install_write_handler(0x6000, 0x7fff, write8_delegate(*this, FUNC(amstrad_state::amstrad_plus_asic_6000_w)));
// multiface_init();
timer_set(attotime::zero, TIMER_SET_RESOLUTION);
@@ -3187,10 +3187,10 @@ MACHINE_RESET_MEMBER(amstrad_state,gx4000)
AmstradCPC_GA_SetRamConfiguration();
amstrad_GateArray_write(0x081); // Epyx World of Sports requires upper ROM to be enabled by default
// multiface_init();
- space.install_read_handler(0x4000, 0x5fff, read8_delegate(FUNC(amstrad_state::amstrad_plus_asic_4000_r),this));
- space.install_read_handler(0x6000, 0x7fff, read8_delegate(FUNC(amstrad_state::amstrad_plus_asic_6000_r),this));
- space.install_write_handler(0x4000, 0x5fff, write8_delegate(FUNC(amstrad_state::amstrad_plus_asic_4000_w),this));
- space.install_write_handler(0x6000, 0x7fff, write8_delegate(FUNC(amstrad_state::amstrad_plus_asic_6000_w),this));
+ space.install_read_handler(0x4000, 0x5fff, read8_delegate(*this, FUNC(amstrad_state::amstrad_plus_asic_4000_r)));
+ space.install_read_handler(0x6000, 0x7fff, read8_delegate(*this, FUNC(amstrad_state::amstrad_plus_asic_6000_r)));
+ space.install_write_handler(0x4000, 0x5fff, write8_delegate(*this, FUNC(amstrad_state::amstrad_plus_asic_4000_w)));
+ space.install_write_handler(0x6000, 0x7fff, write8_delegate(*this, FUNC(amstrad_state::amstrad_plus_asic_6000_w)));
timer_set(attotime::zero, TIMER_SET_RESOLUTION);
}
diff --git a/src/mame/machine/atarigen.cpp b/src/mame/machine/atarigen.cpp
index dd1f5329d87..c13e9e6c43d 100644
--- a/src/mame/machine/atarigen.cpp
+++ b/src/mame/machine/atarigen.cpp
@@ -542,7 +542,7 @@ void atarigen_state::slapstic_configure(cpu_device &device, offs_t base, offs_t
// install the memory handlers
address_space &program = device.space(AS_PROGRAM);
- program.install_readwrite_handler(base, base + 0x7fff, 0, mirror, 0, read16_delegate(FUNC(atarigen_state::slapstic_r), this), write16_delegate(FUNC(atarigen_state::slapstic_w), this));
+ program.install_readwrite_handler(base, base + 0x7fff, 0, mirror, 0, read16_delegate(*this, FUNC(atarigen_state::slapstic_r)), write16_delegate(*this, FUNC(atarigen_state::slapstic_w)));
m_slapstic = (u16 *)mem;
// allocate memory for a copy of bank 0
diff --git a/src/mame/machine/b2m.cpp b/src/mame/machine/b2m.cpp
index ba39ecc3f06..be10c86bf73 100644
--- a/src/mame/machine/b2m.cpp
+++ b/src/mame/machine/b2m.cpp
@@ -80,7 +80,7 @@ void b2m_state::b2m_set_bank(int bank)
space.unmap_write(0xe000, 0xffff);
membank("bank1")->set_base(ram);
- space.install_read_handler(0x2800, 0x2fff, read8_delegate(FUNC(b2m_state::b2m_keyboard_r),this));
+ space.install_read_handler(0x2800, 0x2fff, read8_delegate(*this, FUNC(b2m_state::b2m_keyboard_r)));
membank("bank3")->set_base(ram + 0x10000);
membank("bank4")->set_base(ram + 0x7000);
membank("bank5")->set_base(rom + 0x10000);
@@ -90,7 +90,7 @@ void b2m_state::b2m_set_bank(int bank)
space.unmap_write(0xe000, 0xffff);
membank("bank1")->set_base(ram);
- space.install_read_handler(0x2800, 0x2fff, read8_delegate(FUNC(b2m_state::b2m_keyboard_r),this));
+ space.install_read_handler(0x2800, 0x2fff, read8_delegate(*this, FUNC(b2m_state::b2m_keyboard_r)));
membank("bank3")->set_base(ram + 0x14000);
membank("bank4")->set_base(ram + 0x7000);
membank("bank5")->set_base(rom + 0x10000);
@@ -100,7 +100,7 @@ void b2m_state::b2m_set_bank(int bank)
space.unmap_write(0xe000, 0xffff);
membank("bank1")->set_base(ram);
- space.install_read_handler(0x2800, 0x2fff, read8_delegate(FUNC(b2m_state::b2m_keyboard_r),this));
+ space.install_read_handler(0x2800, 0x2fff, read8_delegate(*this, FUNC(b2m_state::b2m_keyboard_r)));
membank("bank3")->set_base(ram + 0x18000);
membank("bank4")->set_base(ram + 0x7000);
membank("bank5")->set_base(rom + 0x10000);
@@ -111,7 +111,7 @@ void b2m_state::b2m_set_bank(int bank)
space.unmap_write(0xe000, 0xffff);
membank("bank1")->set_base(ram);
- space.install_read_handler(0x2800, 0x2fff, read8_delegate(FUNC(b2m_state::b2m_keyboard_r),this));
+ space.install_read_handler(0x2800, 0x2fff, read8_delegate(*this, FUNC(b2m_state::b2m_keyboard_r)));
membank("bank3")->set_base(ram + 0x1c000);
membank("bank4")->set_base(ram + 0x7000);
membank("bank5")->set_base(rom + 0x10000);
diff --git a/src/mame/machine/bbc.cpp b/src/mame/machine/bbc.cpp
index 4f100db598b..c15e57f60b0 100644
--- a/src/mame/machine/bbc.cpp
+++ b/src/mame/machine/bbc.cpp
@@ -1511,9 +1511,9 @@ void bbc_state::machine_reset()
/* install econet hardware */
if (m_bbcconfig.read_safe(0) & 0x04)
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xfea0, 0xfebf, read8sm_delegate(FUNC(mc6854_device::read), m_adlc.target()), write8sm_delegate(FUNC(mc6854_device::write), m_adlc.target()));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xfea0, 0xfebf, read8sm_delegate(*m_adlc, FUNC(mc6854_device::read)), write8sm_delegate(*m_adlc, FUNC(mc6854_device::write)));
else
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xfea0, 0xfebf, read8_delegate(FUNC(bbc_state::bbc_fe_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xfea0, 0xfebf, read8_delegate(*this, FUNC(bbc_state::bbc_fe_r)));
/* power-on reset timer, should produce "boo...beep" startup sound before sn76496 is initialised */
//m_maincpu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
diff --git a/src/mame/machine/coco12.cpp b/src/mame/machine/coco12.cpp
index 1096a5d8ee6..b843b311a13 100644
--- a/src/mame/machine/coco12.cpp
+++ b/src/mame/machine/coco12.cpp
@@ -36,19 +36,19 @@ void coco12_state::configure_sam()
m_sam->configure_bank(2, &rom[0x2000], 0x2000, true); // $A000-$BFFF
// $C000-$FEFF
- m_sam->configure_bank(3, read8_delegate(FUNC(cococart_slot_device::cts_read), m_cococart.target()), write8_delegate(FUNC(cococart_slot_device::cts_write), m_cococart.target()));
+ m_sam->configure_bank(3, read8_delegate(*m_cococart, FUNC(cococart_slot_device::cts_read)), write8_delegate(*m_cococart, FUNC(cococart_slot_device::cts_write)));
// $FF00-$FF1F
- m_sam->configure_bank(4, read8_delegate(FUNC(coco12_state::ff00_read), this), write8_delegate(FUNC(coco12_state::ff00_write), this));
+ m_sam->configure_bank(4, read8_delegate(*this, FUNC(coco12_state::ff00_read)), write8_delegate(*this, FUNC(coco12_state::ff00_write)));
// $FF20-$FF3F
- m_sam->configure_bank(5, read8_delegate(FUNC(coco12_state::ff20_read), this), write8_delegate(FUNC(coco12_state::ff20_write), this));
+ m_sam->configure_bank(5, read8_delegate(*this, FUNC(coco12_state::ff20_read)), write8_delegate(*this, FUNC(coco12_state::ff20_write)));
// $FF40-$FF5F
- m_sam->configure_bank(6, read8_delegate(FUNC(coco12_state::ff40_read), this), write8_delegate(FUNC(coco12_state::ff40_write), this));
+ m_sam->configure_bank(6, read8_delegate(*this, FUNC(coco12_state::ff40_read)), write8_delegate(*this, FUNC(coco12_state::ff40_write)));
// $FF60-$FFBF
- m_sam->configure_bank(7, read8_delegate(FUNC(coco12_state::ff60_read), this), write8_delegate(FUNC(coco12_state::ff60_write), this));
+ m_sam->configure_bank(7, read8_delegate(*this, FUNC(coco12_state::ff60_read)), write8_delegate(*this, FUNC(coco12_state::ff60_write)));
}
diff --git a/src/mame/machine/decocass.cpp b/src/mame/machine/decocass.cpp
index 53c42a8559c..fbda017d473 100644
--- a/src/mame/machine/decocass.cpp
+++ b/src/mame/machine/decocass.cpp
@@ -1152,7 +1152,7 @@ READ8_MEMBER(decocass_state::decocass_e5xx_r)
else
{
if (!m_dongle_r.isnull())
- data = (m_dongle_r)(space, offset, mem_mask);
+ data = m_dongle_r(space, offset, mem_mask);
else
data = 0xff;
}
@@ -1163,7 +1163,7 @@ WRITE8_MEMBER(decocass_state::decocass_e5xx_w)
{
if (!m_dongle_w.isnull())
{
- (m_dongle_w)(space, offset, data, mem_mask);
+ m_dongle_w(space, offset, data, mem_mask);
return;
}
@@ -1251,8 +1251,8 @@ void decocass_state::machine_reset()
m_firsttime = 1;
m_latch1 = 0;
- m_dongle_r = read8_delegate();
- m_dongle_w = write8_delegate();
+ m_dongle_r = read8_delegate(*this);
+ m_dongle_w = write8_delegate(*this);
m_decocass_reset = 0;
m_i8041_p1 = 0xff;
@@ -1292,7 +1292,7 @@ void decocass_type1_state::machine_reset()
{
decocass_state::machine_reset();
- m_dongle_r = read8_delegate(FUNC(decocass_type1_state::decocass_type1_r),this);
+ m_dongle_r = read8_delegate(*this, FUNC(decocass_type1_state::decocass_type1_r));
m_type1_inmap = MAKE_MAP(0,1,2,3,4,5,6,7);
m_type1_outmap = MAKE_MAP(0,1,2,3,4,5,6,7);
}
@@ -1309,8 +1309,8 @@ void decocass_type2_state::machine_reset()
decocass_state::machine_reset();
LOG(0,("dongle type #2 (CS82-007)\n"));
- m_dongle_r = read8_delegate(FUNC(decocass_type2_state::decocass_type2_r),this);
- m_dongle_w = write8_delegate(FUNC(decocass_type2_state::decocass_type2_w),this);
+ m_dongle_r = read8_delegate(*this, FUNC(decocass_type2_state::decocass_type2_r));
+ m_dongle_w = write8_delegate(*this, FUNC(decocass_type2_state::decocass_type2_w));
m_type2_d2_latch = 0;
m_type2_xx_latch = 0;
@@ -1329,8 +1329,8 @@ void decocass_type3_state::machine_reset()
{
decocass_state::machine_reset();
- m_dongle_r = read8_delegate(FUNC(decocass_type3_state::decocass_type3_r),this);
- m_dongle_w = write8_delegate(FUNC(decocass_type3_state::decocass_type3_w),this);
+ m_dongle_r = read8_delegate(*this, FUNC(decocass_type3_state::decocass_type3_r));
+ m_dongle_w = write8_delegate(*this, FUNC(decocass_type3_state::decocass_type3_w));
m_type3_ctrs = 0;
m_type3_d0_latch = 0;
@@ -1349,8 +1349,8 @@ void decocass_type4_state::machine_reset()
decocass_state::machine_reset();
LOG(0,("dongle type #4 (32K ROM)\n"));
- m_dongle_r = read8_delegate(FUNC(decocass_type4_state::decocass_type4_r),this);
- m_dongle_w = write8_delegate(FUNC(decocass_type4_state::decocass_type4_w),this);
+ m_dongle_r = read8_delegate(*this, FUNC(decocass_type4_state::decocass_type4_r));
+ m_dongle_w = write8_delegate(*this, FUNC(decocass_type4_state::decocass_type4_w));
m_type4_ctrs = 0;
m_type4_latch = 0;
@@ -1366,8 +1366,8 @@ void decocass_type5_state::machine_reset()
decocass_state::machine_reset();
LOG(0,("dongle type #5 (NOP)\n"));
- m_dongle_r = read8_delegate(FUNC(decocass_type5_state::decocass_type5_r),this);
- m_dongle_w = write8_delegate(FUNC(decocass_type5_state::decocass_type5_w),this);
+ m_dongle_r = read8_delegate(*this, FUNC(decocass_type5_state::decocass_type5_r));
+ m_dongle_w = write8_delegate(*this, FUNC(decocass_type5_state::decocass_type5_w));
m_type5_latch = 0;
}
@@ -1376,7 +1376,7 @@ void decocass_nodong_state::machine_reset()
{
decocass_state::machine_reset();
LOG(0, ("no dongle\n"));
- m_dongle_r = read8_delegate(FUNC(decocass_nodong_state::decocass_nodong_r), this);
+ m_dongle_r = read8_delegate(*this, FUNC(decocass_nodong_state::decocass_nodong_r));
}
MACHINE_RESET_MEMBER(decocass_type1_state,ctsttape)
@@ -1622,8 +1622,8 @@ void decocass_widel_state::machine_reset()
{
decocass_state::machine_reset();
LOG(0,("Deco Multigame Dongle\n"));
- m_dongle_r = read8_delegate(FUNC(decocass_widel_state::decocass_widel_r),this);
- m_dongle_w = write8_delegate(FUNC(decocass_widel_state::decocass_widel_w),this);
+ m_dongle_r = read8_delegate(*this, FUNC(decocass_widel_state::decocass_widel_r));
+ m_dongle_w = write8_delegate(*this, FUNC(decocass_widel_state::decocass_widel_w));
m_widel_ctrs = 0;
m_widel_latch = 0;
@@ -1641,17 +1641,17 @@ WRITE8_MEMBER(decocass_state::i8041_p1_w)
if (data != m_i8041_p1_write_latch)
{
LOG(4,("%10s 8041-PC: %03x i8041_p1_w: $%02x (%s%s%s%s%s%s%s%s)\n",
- machine().time().as_string(6),
- m_maincpu->pcbase(),
- data,
- data & 0x01 ? "" : "DATA-WRT",
- data & 0x02 ? "" : " DATA-CLK",
- data & 0x04 ? "" : " FAST",
- data & 0x08 ? "" : " BIT3",
- data & 0x10 ? "" : " REW",
- data & 0x20 ? "" : " FWD",
- data & 0x40 ? "" : " WREN",
- data & 0x80 ? "" : " REQ"));
+ machine().time().as_string(6),
+ m_maincpu->pcbase(),
+ data,
+ data & 0x01 ? "" : "DATA-WRT",
+ data & 0x02 ? "" : " DATA-CLK",
+ data & 0x04 ? "" : " FAST",
+ data & 0x08 ? "" : " BIT3",
+ data & 0x10 ? "" : " REW",
+ data & 0x20 ? "" : " FWD",
+ data & 0x40 ? "" : " WREN",
+ data & 0x80 ? "" : " REQ"));
m_i8041_p1_write_latch = data;
}
diff --git a/src/mame/machine/dgn_beta.cpp b/src/mame/machine/dgn_beta.cpp
index adaa9da972d..b3179af551d 100644
--- a/src/mame/machine/dgn_beta.cpp
+++ b/src/mame/machine/dgn_beta.cpp
@@ -95,30 +95,31 @@
// Info for bank switcher
struct bank_info_entry
{
- write8_delegate func; // Pointer to write handler
- offs_t start; // Offset of start of block
- offs_t end; // offset of end of block
+ void (dgn_beta_state::*func)(address_space &, offs_t, u8, u8); // pointer to write handler
+ char const *name; // write handler name
+ offs_t start; // offset of start of block
+ offs_t end; // offset of end of block
};
static const struct bank_info_entry bank_info[] =
{
- { write8_delegate(FUNC(dgn_beta_state::dgnbeta_ram_b0_w),(dgn_beta_state*)nullptr), 0x0000, 0x0fff },
- { write8_delegate(FUNC(dgn_beta_state::dgnbeta_ram_b1_w),(dgn_beta_state*)nullptr), 0x1000, 0x1fff },
- { write8_delegate(FUNC(dgn_beta_state::dgnbeta_ram_b2_w),(dgn_beta_state*)nullptr), 0x2000, 0x2fff },
- { write8_delegate(FUNC(dgn_beta_state::dgnbeta_ram_b3_w),(dgn_beta_state*)nullptr), 0x3000, 0x3fff },
- { write8_delegate(FUNC(dgn_beta_state::dgnbeta_ram_b4_w),(dgn_beta_state*)nullptr), 0x4000, 0x4fff },
- { write8_delegate(FUNC(dgn_beta_state::dgnbeta_ram_b5_w),(dgn_beta_state*)nullptr), 0x5000, 0x5fff },
- { write8_delegate(FUNC(dgn_beta_state::dgnbeta_ram_b6_w),(dgn_beta_state*)nullptr), 0x6000, 0x6fff },
- { write8_delegate(FUNC(dgn_beta_state::dgnbeta_ram_b7_w),(dgn_beta_state*)nullptr), 0x7000, 0x7fff },
- { write8_delegate(FUNC(dgn_beta_state::dgnbeta_ram_b8_w),(dgn_beta_state*)nullptr), 0x8000, 0x8fff },
- { write8_delegate(FUNC(dgn_beta_state::dgnbeta_ram_b9_w),(dgn_beta_state*)nullptr), 0x9000, 0x9fff },
- { write8_delegate(FUNC(dgn_beta_state::dgnbeta_ram_bA_w),(dgn_beta_state*)nullptr), 0xA000, 0xAfff },
- { write8_delegate(FUNC(dgn_beta_state::dgnbeta_ram_bB_w),(dgn_beta_state*)nullptr), 0xB000, 0xBfff },
- { write8_delegate(FUNC(dgn_beta_state::dgnbeta_ram_bC_w),(dgn_beta_state*)nullptr), 0xC000, 0xCfff },
- { write8_delegate(FUNC(dgn_beta_state::dgnbeta_ram_bD_w),(dgn_beta_state*)nullptr), 0xD000, 0xDfff },
- { write8_delegate(FUNC(dgn_beta_state::dgnbeta_ram_bE_w),(dgn_beta_state*)nullptr), 0xE000, 0xEfff },
- { write8_delegate(FUNC(dgn_beta_state::dgnbeta_ram_bF_w),(dgn_beta_state*)nullptr), 0xF000, 0xFBff },
- { write8_delegate(FUNC(dgn_beta_state::dgnbeta_ram_bG_w),(dgn_beta_state*)nullptr), 0xFF00, 0xFfff }
+ { FUNC(dgn_beta_state::dgnbeta_ram_b0_w), 0x0000, 0x0fff },
+ { FUNC(dgn_beta_state::dgnbeta_ram_b1_w), 0x1000, 0x1fff },
+ { FUNC(dgn_beta_state::dgnbeta_ram_b2_w), 0x2000, 0x2fff },
+ { FUNC(dgn_beta_state::dgnbeta_ram_b3_w), 0x3000, 0x3fff },
+ { FUNC(dgn_beta_state::dgnbeta_ram_b4_w), 0x4000, 0x4fff },
+ { FUNC(dgn_beta_state::dgnbeta_ram_b5_w), 0x5000, 0x5fff },
+ { FUNC(dgn_beta_state::dgnbeta_ram_b6_w), 0x6000, 0x6fff },
+ { FUNC(dgn_beta_state::dgnbeta_ram_b7_w), 0x7000, 0x7fff },
+ { FUNC(dgn_beta_state::dgnbeta_ram_b8_w), 0x8000, 0x8fff },
+ { FUNC(dgn_beta_state::dgnbeta_ram_b9_w), 0x9000, 0x9fff },
+ { FUNC(dgn_beta_state::dgnbeta_ram_bA_w), 0xA000, 0xAfff },
+ { FUNC(dgn_beta_state::dgnbeta_ram_bB_w), 0xB000, 0xBfff },
+ { FUNC(dgn_beta_state::dgnbeta_ram_bC_w), 0xC000, 0xCfff },
+ { FUNC(dgn_beta_state::dgnbeta_ram_bD_w), 0xD000, 0xDfff },
+ { FUNC(dgn_beta_state::dgnbeta_ram_bE_w), 0xE000, 0xEfff },
+ { FUNC(dgn_beta_state::dgnbeta_ram_bF_w), 0xF000, 0xFBff },
+ { FUNC(dgn_beta_state::dgnbeta_ram_bG_w), 0xFF00, 0xFfff }
};
#define is_last_page(page) (((page==LastPage) || (page==LastPage+1)) ? 1 : 0)
@@ -179,8 +180,7 @@ void dgn_beta_state::UpdateBanks(int first, int last)
readbank = &m_ram->pointer()[(MapPage*RamPageSize)-256];
logerror("Error RAM in Last page !\n");
}
- write8_delegate func = bank_info[Page].func;
- if (!func.isnull()) func.late_bind(*this);
+ write8_delegate func(*this, bank_info[Page].func, bank_info[Page].name);
space_0.install_write_handler(bank_start, bank_end, func);
space_1.install_write_handler(bank_start, bank_end, func);
}
diff --git a/src/mame/machine/dragon.cpp b/src/mame/machine/dragon.cpp
index ce4d6dd1be3..d5c217b9130 100644
--- a/src/mame/machine/dragon.cpp
+++ b/src/mame/machine/dragon.cpp
@@ -236,9 +236,9 @@ void d64plus_state::device_start()
dragon_state::device_start();
address_space &space = m_maincpu->space(AS_PROGRAM);
- space.install_readwrite_handler(0xffe0, 0xffe0, read8smo_delegate(FUNC(mc6845_device::status_r), &*m_crtc), write8smo_delegate(FUNC(mc6845_device::address_w), &*m_crtc));
- space.install_readwrite_handler(0xffe1, 0xffe1, read8smo_delegate(FUNC(mc6845_device::register_r), &*m_crtc), write8smo_delegate(FUNC(mc6845_device::register_w), &*m_crtc));
- space.install_readwrite_handler(0xffe2, 0xffe2, READ8_DELEGATE(d64plus_state, d64plus_6845_disp_r), WRITE8_DELEGATE(d64plus_state, d64plus_bank_w));
+ space.install_readwrite_handler(0xffe0, 0xffe0, read8smo_delegate(*m_crtc, FUNC(mc6845_device::status_r)), write8smo_delegate(*m_crtc, FUNC(mc6845_device::address_w)));
+ space.install_readwrite_handler(0xffe1, 0xffe1, read8smo_delegate(*m_crtc, FUNC(mc6845_device::register_r)), write8smo_delegate(*m_crtc, FUNC(mc6845_device::register_w)));
+ space.install_readwrite_handler(0xffe2, 0xffe2, read8_delegate(*this, FUNC(d64plus_state::d64plus_6845_disp_r)), write8_delegate(*this, FUNC(d64plus_state::d64plus_bank_w)));
// allocate memory
m_plus_ram.allocate(0x10000);
diff --git a/src/mame/machine/fd1094.cpp b/src/mame/machine/fd1094.cpp
index 1692c2f969c..18d8085652c 100644
--- a/src/mame/machine/fd1094.cpp
+++ b/src/mame/machine/fd1094.cpp
@@ -653,9 +653,9 @@ void fd1094_device::device_start()
m68000_device::device_start();
// register for the state changing callbacks we need in the m68000
- set_cmpild_callback(write32_delegate(FUNC(fd1094_device::cmp_callback),this));
- set_rte_callback(write_line_delegate(FUNC(fd1094_device::rte_callback),this));
- set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(fd1094_device::irq_callback), this));
+ set_cmpild_callback(*this, FUNC(fd1094_device::cmp_callback));
+ set_rte_callback(*this, FUNC(fd1094_device::rte_callback));
+ set_irq_acknowledge_callback(*this, FUNC(fd1094_device::irq_callback));
// save state
save_item(NAME(m_state));
diff --git a/src/mame/machine/gamepock.cpp b/src/mame/machine/gamepock.cpp
index dd690f1b0ce..af9967db0b2 100644
--- a/src/mame/machine/gamepock.cpp
+++ b/src/mame/machine/gamepock.cpp
@@ -140,20 +140,19 @@ void gamepock_state::machine_reset()
hd44102ch_init( 2 );
if (m_cart->exists())
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x4000,0xbfff, read8sm_delegate(FUNC(generic_slot_device::read_rom),(generic_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x4000,0xbfff, read8sm_delegate(*m_cart, FUNC(generic_slot_device::read_rom)));
}
uint32_t gamepock_state::screen_update_gamepock(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
uint8_t ad;
- int i,j;
/* Handle HD44102CH #0 */
ad = m_hd44102ch[0].start_page;
- for ( i = 0; i < 4; i++ )
+ for ( int i = 0; i < 4; i++ )
{
- for ( j = 0; j < 50; j++ )
+ for ( int j = 0; j < 50; j++ )
{
bitmap.pix16(i * 8 + 0, 49 - j ) = ( m_hd44102ch[0].ram[ad+j] & 0x01 ) ? 0 : 1;
bitmap.pix16(i * 8 + 1, 49 - j ) = ( m_hd44102ch[0].ram[ad+j] & 0x02 ) ? 0 : 1;
@@ -169,9 +168,9 @@ uint32_t gamepock_state::screen_update_gamepock(screen_device &screen, bitmap_in
/* Handle HD44102CH #1 */
ad = m_hd44102ch[1].start_page;
- for ( i = 4; i < 8; i++ )
+ for ( int i = 4; i < 8; i++ )
{
- for ( j = 0; j < 50; j++ )
+ for ( int j = 0; j < 50; j++ )
{
bitmap.pix16(i * 8 + 0, j ) = ( m_hd44102ch[1].ram[ad+j] & 0x01 ) ? 0 : 1;
bitmap.pix16(i * 8 + 1, j ) = ( m_hd44102ch[1].ram[ad+j] & 0x02 ) ? 0 : 1;
@@ -187,9 +186,9 @@ uint32_t gamepock_state::screen_update_gamepock(screen_device &screen, bitmap_in
/* Handle HD44102CH #2 */
ad = m_hd44102ch[2].start_page;
- for ( i = 0; i < 4; i++ )
+ for ( int i = 0; i < 4; i++ )
{
- for ( j = 0; j < 25; j++ )
+ for ( int j = 0; j < 25; j++ )
{
bitmap.pix16(i * 8 + 0, 50 + j ) = ( m_hd44102ch[2].ram[ad+j] & 0x01 ) ? 0 : 1;
bitmap.pix16(i * 8 + 1, 50 + j ) = ( m_hd44102ch[2].ram[ad+j] & 0x02 ) ? 0 : 1;
@@ -200,7 +199,7 @@ uint32_t gamepock_state::screen_update_gamepock(screen_device &screen, bitmap_in
bitmap.pix16(i * 8 + 6, 50 + j ) = ( m_hd44102ch[2].ram[ad+j] & 0x40 ) ? 0 : 1;
bitmap.pix16(i * 8 + 7, 50 + j ) = ( m_hd44102ch[2].ram[ad+j] & 0x80 ) ? 0 : 1;
}
- for ( j = 25; j < 50; j++ )
+ for ( int j = 25; j < 50; j++ )
{
bitmap.pix16(32 + i * 8 + 0, 25 + j ) = ( m_hd44102ch[2].ram[ad+j] & 0x01 ) ? 0 : 1;
bitmap.pix16(32 + i * 8 + 1, 25 + j ) = ( m_hd44102ch[2].ram[ad+j] & 0x02 ) ? 0 : 1;
diff --git a/src/mame/machine/gridkeyb.cpp b/src/mame/machine/gridkeyb.cpp
index bfd03d0b6f5..bace5c09696 100644
--- a/src/mame/machine/gridkeyb.cpp
+++ b/src/mame/machine/gridkeyb.cpp
@@ -206,7 +206,7 @@ grid_keyboard_device::grid_keyboard_device(
, m_config(*this, "GRIDKBD_CFG")
, m_modifiers(*this, "GRIDKBD_MOD")
, m_last_modifiers(0U)
- , m_keyboard_cb()
+ , m_keyboard_cb(*this)
{
}
@@ -225,7 +225,7 @@ ioport_constructor grid_keyboard_device::device_input_ports() const
void grid_keyboard_device::device_start()
{
- m_keyboard_cb.bind_relative_to(*owner());
+ m_keyboard_cb.resolve();
save_item(NAME(m_last_modifiers));
}
diff --git a/src/mame/machine/gridkeyb.h b/src/mame/machine/gridkeyb.h
index c4a41cd1589..e0072d7ea38 100644
--- a/src/mame/machine/gridkeyb.h
+++ b/src/mame/machine/gridkeyb.h
@@ -40,12 +40,11 @@ public:
device_t *owner,
u32 clock);
- template <class FunctionClass>
- void set_keyboard_callback(void (FunctionClass::*callback)(u16 character), const char *name)
+ template <typename... T>
+ void set_keyboard_callback(T &&... args)
{
- set_keyboard_callback(output_delegate(callback, name, nullptr, static_cast<FunctionClass *>(nullptr)));
+ m_keyboard_cb.set(std::forward<T>(args)...);
}
- void set_keyboard_callback(output_delegate callback) { m_keyboard_cb = callback; }
virtual ioport_constructor device_input_ports() const override;
diff --git a/src/mame/machine/hp48.cpp b/src/mame/machine/hp48.cpp
index f4c6716f0f1..5e1f871686d 100644
--- a/src/mame/machine/hp48.cpp
+++ b/src/mame/machine/hp48.cpp
@@ -907,8 +907,8 @@ void hp48_state::init_hp48()
for (int i = 0; i < 6; i++)
{
m_modules[i].off_mask = 0x00fff; /* 2 KB */
- m_modules[i].read = read8_delegate();
- m_modules[i].write = write8_delegate();
+ m_modules[i].read = read8_delegate(*this);
+ m_modules[i].write = write8_delegate(*this);
m_modules[i].data = nullptr;
m_modules[i].isnop = 0;
}
@@ -957,8 +957,8 @@ void hp48_state::base_machine_start(hp48_models model)
/* I/O RAM */
m_modules[HP48_HDW].off_mask = 0x0003f; /* 32 B */
- m_modules[HP48_HDW].read = read8_delegate(FUNC(hp48_state::io_r),this);
- m_modules[HP48_HDW].write = write8_delegate(FUNC(hp48_state::io_w),this);
+ m_modules[HP48_HDW].read = read8_delegate(*this, FUNC(hp48_state::io_r));
+ m_modules[HP48_HDW].write = write8_delegate(*this, FUNC(hp48_state::io_w));
/* internal RAM */
if (HP49_G_MODEL)
@@ -980,8 +980,8 @@ void hp48_state::base_machine_start(hp48_models model)
if (HP48_G_SERIES)
{
m_modules[HP48_CE1].off_mask = 0x00fff; /* 2 KB */
- m_modules[HP48_CE1].read = read8_delegate(FUNC(hp48_state::bank_r),this);
- m_modules[HP48_CE1].write = HP49_G_MODEL ? write8_delegate(FUNC(hp48_state::hp49_bank_w),this) : write8_delegate();
+ m_modules[HP48_CE1].read = read8_delegate(*this, FUNC(hp48_state::bank_r));
+ m_modules[HP48_CE1].write = HP49_G_MODEL ? write8_delegate(*this, FUNC(hp48_state::hp49_bank_w)) : write8_delegate(*this);
}
/* timers */
@@ -996,13 +996,13 @@ void hp48_state::base_machine_start(hp48_models model)
m_kbd_timer->adjust(attotime::from_msec(1), 0, attotime::from_msec(1));
/* save state */
- save_item(NAME(m_out) );
- save_item(NAME(m_kdn) );
- save_item(NAME(m_io_addr) );
- save_item(NAME(m_crc) );
- save_item(NAME(m_timer1) );
- save_item(NAME(m_timer2) );
- save_item(NAME(m_bank_switch) );
+ save_item(NAME(m_out));
+ save_item(NAME(m_kdn));
+ save_item(NAME(m_io_addr));
+ save_item(NAME(m_crc));
+ save_item(NAME(m_timer1));
+ save_item(NAME(m_timer2));
+ save_item(NAME(m_bank_switch));
for (int i = 0; i < 6; i++)
{
save_item(m_modules[i].state, "globals/m_modules[i].state", i);
diff --git a/src/mame/machine/hp48_port.cpp b/src/mame/machine/hp48_port.cpp
index c22e9e61623..459b20c781b 100644
--- a/src/mame/machine/hp48_port.cpp
+++ b/src/mame/machine/hp48_port.cpp
@@ -25,8 +25,8 @@ void hp48_port_image_device::fill_port()
LOG("hp48_port_image_device::fill_port: %s module=%i size=%i rw=%i\n", tag(), m_module, size, m_port_write);
m_port_data = make_unique_clear<uint8_t[]>(2 * size);
m_hp48->m_modules[m_module].off_mask = 2 * (( size > 128 * 1024 ) ? 128 * 1024 : size) - 1;
- m_hp48->m_modules[m_module].read = read8_delegate();
- m_hp48->m_modules[m_module].write = write8_delegate();
+ m_hp48->m_modules[m_module].read = read8_delegate(*m_hp48);
+ m_hp48->m_modules[m_module].write = write8_delegate(*m_hp48);
m_hp48->m_modules[m_module].isnop = m_port_write ? 0 : 1;
m_hp48->m_modules[m_module].data = (void*)m_port_data.get();
m_hp48->apply_modules();
@@ -37,8 +37,8 @@ void hp48_port_image_device::unfill_port()
{
LOG("hp48_port_image_device::unfill_port\n");
m_hp48->m_modules[m_module].off_mask = 0x00fff; /* 2 KB */
- m_hp48->m_modules[m_module].read = read8_delegate();
- m_hp48->m_modules[m_module].write = write8_delegate();
+ m_hp48->m_modules[m_module].read = read8_delegate(*m_hp48);
+ m_hp48->m_modules[m_module].write = write8_delegate(*m_hp48);
m_hp48->m_modules[m_module].data = nullptr;
m_hp48->m_modules[m_module].isnop = 1;
m_port_size = 0;
diff --git a/src/mame/machine/hp48_port.h b/src/mame/machine/hp48_port.h
index 17826567740..b50bb8ae3bb 100644
--- a/src/mame/machine/hp48_port.h
+++ b/src/mame/machine/hp48_port.h
@@ -7,7 +7,6 @@
Hewlett Packard HP48 S/SX & G/GX and HP49 G
**********************************************************************/
-
#ifndef MAME_MACHINE_HP84_PORT_H
#define MAME_MACHINE_HP84_PORT_H
@@ -58,6 +57,7 @@ public:
protected:
// device-level overrides
virtual void device_start() override;
+
private:
void fill_port();
void unfill_port();
diff --git a/src/mame/machine/igs025.cpp b/src/mame/machine/igs025.cpp
index 63f58c66003..6ac0c55a0e3 100644
--- a/src/mame/machine/igs025.cpp
+++ b/src/mame/machine/igs025.cpp
@@ -18,8 +18,8 @@
igs025_device::igs025_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: device_t(mconfig, IGS025, tag, owner, clock)
+ , m_execute_external(*this, DEVICE_SELF, FUNC(igs025_device::no_callback_setup))
{
- m_execute_external = igs025_execute_external(FUNC(igs025_device::no_callback_setup), this);
}
void igs025_device::no_callback_setup()
@@ -40,7 +40,7 @@ void igs025_device::device_start()
m_kb_ptr = 0;
m_kb_swap = 0;
- m_execute_external.bind_relative_to(*owner());
+ m_execute_external.resolve();
save_item(NAME(m_kb_prot_hold));
save_item(NAME(m_kb_prot_hilo));
diff --git a/src/mame/machine/igs025.h b/src/mame/machine/igs025.h
index 6c00548d8e3..7458152ad5f 100644
--- a/src/mame/machine/igs025.h
+++ b/src/mame/machine/igs025.h
@@ -20,7 +20,7 @@ public:
uint32_t m_kb_game_id;
uint32_t m_kb_region;
- template <typename... T> void set_external_cb(T &&... args) { m_execute_external = igs025_execute_external(std::forward<T>(args)...); }
+ template <typename... T> void set_external_cb(T &&... args) { m_execute_external.set(std::forward<T>(args)...); }
DECLARE_WRITE16_MEMBER( olds_w );
DECLARE_WRITE16_MEMBER( drgw2_d80000_protection_w );
diff --git a/src/mame/machine/imds2ioc.cpp b/src/mame/machine/imds2ioc.cpp
index c5c148b7367..f74f6c5ab60 100644
--- a/src/mame/machine/imds2ioc.cpp
+++ b/src/mame/machine/imds2ioc.cpp
@@ -596,7 +596,7 @@ void imds2ioc_device::device_add_mconfig(machine_config &config)
I8275(config, m_ioccrtc, 22853600 / 14);
m_ioccrtc->set_character_width(14);
m_ioccrtc->set_refresh_hack(true);
- m_ioccrtc->set_display_callback(FUNC(imds2ioc_device::crtc_display_pixels), this);
+ m_ioccrtc->set_display_callback(FUNC(imds2ioc_device::crtc_display_pixels));
m_ioccrtc->drq_wr_callback().set(m_iocdma, FUNC(i8257_device::dreq2_w));
m_ioccrtc->irq_wr_callback().set_inputline(m_ioccpu, I8085_INTR_LINE);
m_ioccrtc->set_screen("screen");
diff --git a/src/mame/machine/intv.cpp b/src/mame/machine/intv.cpp
index cc363d1b2de..b8e8824bc16 100644
--- a/src/mame/machine/intv.cpp
+++ b/src/mame/machine/intv.cpp
@@ -598,35 +598,35 @@ void intv_state::machine_start()
switch (m_cart->get_type())
{
case INTV_RAM:
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xd000, 0xd7ff, read16sm_delegate(FUNC(intv_cart_slot_device::read_ram),(intv_cart_slot_device*)m_cart), write16sm_delegate(FUNC(intv_cart_slot_device::write_ram),(intv_cart_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xd000, 0xd7ff, read16sm_delegate(*m_cart, FUNC(intv_cart_slot_device::read_ram)), write16sm_delegate(*m_cart, FUNC(intv_cart_slot_device::write_ram)));
break;
case INTV_GFACT:
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x8800, 0x8fff, read16sm_delegate(FUNC(intv_cart_slot_device::read_ram),(intv_cart_slot_device*)m_cart), write16sm_delegate(FUNC(intv_cart_slot_device::write_ram),(intv_cart_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x8800, 0x8fff, read16sm_delegate(*m_cart, FUNC(intv_cart_slot_device::read_ram)), write16sm_delegate(*m_cart, FUNC(intv_cart_slot_device::write_ram)));
break;
case INTV_VOICE:
m_cart->late_subslot_setup();
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x0080, 0x0081, read16sm_delegate(FUNC(intv_cart_slot_device::read_speech),(intv_cart_slot_device*)m_cart), write16sm_delegate(FUNC(intv_cart_slot_device::write_speech),(intv_cart_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x0080, 0x0081, read16sm_delegate(*m_cart, FUNC(intv_cart_slot_device::read_speech)), write16sm_delegate(*m_cart, FUNC(intv_cart_slot_device::write_speech)));
// passthru for RAM-equipped carts
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x8800, 0x8fff, write16sm_delegate(FUNC(intv_cart_slot_device::write_88),(intv_cart_slot_device*)m_cart));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xd000, 0xd7ff, write16sm_delegate(FUNC(intv_cart_slot_device::write_d0),(intv_cart_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x8800, 0x8fff, write16sm_delegate(*m_cart, FUNC(intv_cart_slot_device::write_88)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xd000, 0xd7ff, write16sm_delegate(*m_cart, FUNC(intv_cart_slot_device::write_d0)));
break;
case INTV_ECS:
m_cart->late_subslot_setup();
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x00f0, 0x00ff, read16sm_delegate(FUNC(intv_cart_slot_device::read_ay),(intv_cart_slot_device*)m_cart), write16sm_delegate(FUNC(intv_cart_slot_device::write_ay),(intv_cart_slot_device*)m_cart));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x4000, 0x47ff, read16sm_delegate(FUNC(intv_cart_slot_device::read_ram),(intv_cart_slot_device*)m_cart), write16sm_delegate(FUNC(intv_cart_slot_device::write_ram),(intv_cart_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x00f0, 0x00ff, read16sm_delegate(*m_cart, FUNC(intv_cart_slot_device::read_ay)), write16sm_delegate(*m_cart, FUNC(intv_cart_slot_device::write_ay)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x4000, 0x47ff, read16sm_delegate(*m_cart, FUNC(intv_cart_slot_device::read_ram)), write16sm_delegate(*m_cart, FUNC(intv_cart_slot_device::write_ram)));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x2000, 0x2fff, write16sm_delegate(FUNC(intv_cart_slot_device::write_rom20),(intv_cart_slot_device*)m_cart));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x7000, 0x7fff, write16sm_delegate(FUNC(intv_cart_slot_device::write_rom70),(intv_cart_slot_device*)m_cart));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xe000, 0xefff, write16sm_delegate(FUNC(intv_cart_slot_device::write_rome0),(intv_cart_slot_device*)m_cart));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xf000, 0xffff, write16sm_delegate(FUNC(intv_cart_slot_device::write_romf0),(intv_cart_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x2000, 0x2fff, write16sm_delegate(*m_cart, FUNC(intv_cart_slot_device::write_rom20)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x7000, 0x7fff, write16sm_delegate(*m_cart, FUNC(intv_cart_slot_device::write_rom70)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xe000, 0xefff, write16sm_delegate(*m_cart, FUNC(intv_cart_slot_device::write_rome0)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xf000, 0xffff, write16sm_delegate(*m_cart, FUNC(intv_cart_slot_device::write_romf0)));
// passthru for Intellivoice expansion
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x0080, 0x0081, read16sm_delegate(FUNC(intv_cart_slot_device::read_speech),(intv_cart_slot_device*)m_cart), write16sm_delegate(FUNC(intv_cart_slot_device::write_speech),(intv_cart_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x0080, 0x0081, read16sm_delegate(*m_cart, FUNC(intv_cart_slot_device::read_speech)), write16sm_delegate(*m_cart, FUNC(intv_cart_slot_device::write_speech)));
// passthru for RAM-equipped carts
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x8800, 0x8fff, write16sm_delegate(FUNC(intv_cart_slot_device::write_88),(intv_cart_slot_device*)m_cart));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xd000, 0xd7ff, write16sm_delegate(FUNC(intv_cart_slot_device::write_d0),(intv_cart_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x8800, 0x8fff, write16sm_delegate(*m_cart, FUNC(intv_cart_slot_device::write_88)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xd000, 0xd7ff, write16sm_delegate(*m_cart, FUNC(intv_cart_slot_device::write_d0)));
break;
}
diff --git a/src/mame/machine/jazz_mct_adr.cpp b/src/mame/machine/jazz_mct_adr.cpp
index 2c7da33aec9..8c4c13b325f 100644
--- a/src/mame/machine/jazz_mct_adr.cpp
+++ b/src/mame/machine/jazz_mct_adr.cpp
@@ -48,72 +48,74 @@ jazz_mct_adr_device::jazz_mct_adr_device(const machine_config &mconfig, const ch
void jazz_mct_adr_device::map(address_map &map)
{
- map(0x000, 0x007).lrw32("configuration", [this](){ return m_config; }, [this](u32 data) { m_config = data; });
- map(0x008, 0x00f).lr32("revision_level", [](){ return 1; });
- map(0x010, 0x017).lr32("dma_invalid_address", [this]() { m_dma_interrupt_source &= ~DMA_ADDRESS_ERROR; return m_dma_invalid_address; });
- map(0x018, 0x01f).lrw32("translation_base", [this]() { return m_trans_tbl_base; }, [this](u32 data) { LOG("tbl base 0x%08x\n", data); m_trans_tbl_base = data; });
- map(0x020, 0x027).lrw32("translation_limit", [this]() { return m_trans_tbl_limit; }, [this](u32 data) { LOG("tbl limit 0x%08x\n", data); m_trans_tbl_limit = data; });
- map(0x028, 0x02f).lrw32("translation_invalidate", []() { return 0; }, [](u32 data) { });
- map(0x030, 0x037).lw32("cache_maintenance", [this](u32 data) { m_ioc_maint = data; });
- map(0x038, 0x03f).lr32("remote_failed_address", []() { return 0; });
- map(0x040, 0x047).lr32("dma_memory_failed_address", [this]() { m_dma_interrupt_source &= ~DMA_PARITY_ERROR; return m_dma_memory_failed_address; });
- map(0x048, 0x04f).lw32("io_cache_physical_tag", [this](u32 data) { m_ioc_physical_tag = data; });
- map(0x050, 0x057).lw32("io_cache_logical_tag", [this](u32 data) { m_ioc_logical_tag = data; });
- map(0x058, 0x05f).lrw32("io_cache_byte_mask",
- // FIXME: hack to pass diagnostics
- [this]()
- {
- u32 const data = m_ioc_byte_mask;
-
- if (data == 0xffffffff)
- m_ioc_byte_mask = 0;
- return data;
- },
- [this](u32 data) { m_ioc_byte_mask |= data; });
- map(0x060, 0x067).lw32("io_cache_buffer_window_lo", [this](u32 data)
- {
- // FIXME: hack to pass diagnostics
- if (m_ioc_logical_tag == 0x80000001 && m_ioc_byte_mask == 0x0f0f0f0f)
- {
- u32 const address = (m_ioc_physical_tag & ~0x1) + ((m_ioc_maint & 0x3) << 3);
-
- m_bus->write_dword(address, data);
- }
- });
+ map(0x000, 0x007).lrw32(NAME([this] () { return m_config; }), NAME([this] (u32 data) { m_config = data; }));
+ map(0x008, 0x00f).lr32([] () { return 1; }, "revision_level");
+ map(0x010, 0x017).lr32(NAME([this] () { m_dma_interrupt_source &= ~DMA_ADDRESS_ERROR; return m_dma_invalid_address; }));
+ map(0x018, 0x01f).lrw32(NAME([this] () { return m_trans_tbl_base; }), NAME([this] (u32 data) { LOG("tbl base 0x%08x\n", data); m_trans_tbl_base = data; }));
+ map(0x020, 0x027).lrw32(NAME([this] () { return m_trans_tbl_limit; }), NAME([this] (u32 data) { LOG("tbl limit 0x%08x\n", data); m_trans_tbl_limit = data; }));
+ map(0x028, 0x02f).lrw32([] () { return 0; }, "translation_invalidate_r", [] (u32 data) { }, "translation_invalidate_w");
+ map(0x030, 0x037).lw32(NAME([this] (u32 data) { m_ioc_maint = data; }));
+ map(0x038, 0x03f).lr32([] () { return 0; }, "remote_failed_address");
+ map(0x040, 0x047).lr32(NAME([this] () { m_dma_interrupt_source &= ~DMA_PARITY_ERROR; return m_dma_memory_failed_address; }));
+ map(0x048, 0x04f).lw32(NAME([this] (u32 data) { m_ioc_physical_tag = data; }));
+ map(0x050, 0x057).lw32(NAME([this] (u32 data) { m_ioc_logical_tag = data; }));
+ map(0x058, 0x05f).lrw32(
+ // FIXME: hack to pass diagnostics
+ [this] ()
+ {
+ u32 const data = m_ioc_byte_mask;
+
+ if (data == 0xffffffff)
+ m_ioc_byte_mask = 0;
+ return data;
+ }, "io_cache_byte_mask_r",
+ NAME([this] (u32 data) { m_ioc_byte_mask |= data; }));
+ map(0x060, 0x067).lw32(
+ [this] (u32 data)
+ {
+ // FIXME: hack to pass diagnostics
+ if (m_ioc_logical_tag == 0x80000001 && m_ioc_byte_mask == 0x0f0f0f0f)
+ {
+ u32 const address = (m_ioc_physical_tag & ~0x1) + ((m_ioc_maint & 0x3) << 3);
+
+ m_bus->write_dword(address, data);
+ }
+ }, "io_cache_buffer_window_lo");
// io_cache_buffer_window_hi
- map(0x070, 0x0ef).lrw32("remote_speed",
- [this](offs_t offset) { return m_remote_speed[offset >> 1]; },
- [this](offs_t offset, u32 data) { m_remote_speed[offset >> 1] = data; });
+ map(0x070, 0x0ef).lrw32(
+ NAME([this] (offs_t offset) { return m_remote_speed[offset >> 1]; }),
+ NAME([this] (offs_t offset, u32 data) { m_remote_speed[offset >> 1] = data; }));
// parity_diagnostic_lo
// parity_diagnostic_hi
- map(0x100, 0x1ff).lrw32("dma_reg",
- [this](offs_t offset) { return m_dma_reg[offset >> 1]; },
- [this](offs_t offset, u32 data)
- {
- unsigned const reg = offset >> 1;
-
- LOG("dma_reg %d data 0x%08x (%s)\n", offset, data, machine().describe_context());
-
- m_dma_reg[reg] = data;
-
- if ((reg == REG_ENABLE) && (data & DMA_ENABLE))
- LOG("dma started address 0x%08x count %d\n", translate_address(m_dma_reg[(0 << 2) + REG_ADDRESS]), m_dma_reg[(0 << 2) + REG_COUNT]);
- });
- map(0x200, 0x207).lr32("interrupt_source", [this]() { return m_dma_interrupt_source; });
- map(0x208, 0x20f).lr32("error_type", []() { return 0; });
- map(0x210, 0x217).lrw32("refresh_rate", [this]() { return m_memory_refresh_rate; }, [this](u32 data) { m_memory_refresh_rate = data; });
+ map(0x100, 0x1ff).lrw32(
+ NAME([this] (offs_t offset) { return m_dma_reg[offset >> 1]; }),
+ [this] (offs_t offset, u32 data)
+ {
+ unsigned const reg = offset >> 1;
+
+ LOG("dma_reg %d data 0x%08x (%s)\n", offset, data, machine().describe_context());
+
+ m_dma_reg[reg] = data;
+
+ if ((reg == REG_ENABLE) && (data & DMA_ENABLE))
+ LOG("dma started address 0x%08x count %d\n", translate_address(m_dma_reg[(0 << 2) + REG_ADDRESS]), m_dma_reg[(0 << 2) + REG_COUNT]);
+ }, "dma_reg_w");
+ map(0x200, 0x207).lr32(NAME([this] () { return m_dma_interrupt_source; }));
+ map(0x208, 0x20f).lr32([] () { return 0; }, "error_type");
+ map(0x210, 0x217).lrw32(NAME([this] () { return m_memory_refresh_rate; }), NAME([this] (u32 data) { m_memory_refresh_rate = data; }));
// refresh_counter
- map(0x220, 0x227).lrw32("system_security", [this]() { return m_nvram_protect; }, [this](u32 data) { LOG("nvram_protect 0x%08x (%s)\n", data, machine().describe_context()); m_nvram_protect = data; });
- map(0x228, 0x22f).lw32("interrupt_interval", [this](u32 data)
- {
- LOG("timer_w 0x%08x\n", data);
-
- attotime interval = attotime::from_ticks((data + 1) & 0x1ff, 1000);
-
- m_interval_timer->adjust(interval, 0, interval);
- });
- map(0x230, 0x237).lr32("interval_timer", [this]() { if (m_out_int_timer_asserted) { m_out_int_timer_asserted = false; m_out_int_timer(0); } return m_interval_timer->remaining().as_ticks(1000); });
- map(0x238, 0x23b).lr32("interrupt_acknowledge", [this]() { return m_eisa_iack(); });
+ map(0x220, 0x227).lrw32(NAME([this] () { return m_nvram_protect; }), NAME([this] (u32 data) { LOG("nvram_protect 0x%08x (%s)\n", data, machine().describe_context()); m_nvram_protect = data; }));
+ map(0x228, 0x22f).lw32(
+ [this] (u32 data)
+ {
+ LOG("timer_w 0x%08x\n", data);
+
+ attotime interval = attotime::from_ticks((data + 1) & 0x1ff, 1000);
+
+ m_interval_timer->adjust(interval, 0, interval);
+ }, "interrupt_interval");
+ map(0x230, 0x237).lr32([this] () { if (m_out_int_timer_asserted) { m_out_int_timer_asserted = false; m_out_int_timer(0); } return m_interval_timer->remaining().as_ticks(1000); }, "interval_timer");
+ map(0x238, 0x23b).lr32(NAME([this] () { return m_eisa_iack(); }));
}
void jazz_mct_adr_device::device_start()
diff --git a/src/mame/machine/kc.cpp b/src/mame/machine/kc.cpp
index 0d1af0d94b7..5c956be6e3a 100644
--- a/src/mame/machine/kc.cpp
+++ b/src/mame/machine/kc.cpp
@@ -309,8 +309,8 @@ void kc_state::update_0x00000()
{
LOG(("Module at 0x0000\n"));
- space.install_read_handler (0x0000, 0x3fff, read8_delegate(FUNC(kc_state::expansion_read), this), 0);
- space.install_write_handler(0x0000, 0x3fff, write8_delegate(FUNC(kc_state::expansion_write), this), 0);
+ space.install_read_handler (0x0000, 0x3fff, read8_delegate(*this, FUNC(kc_state::expansion_read)), 0);
+ space.install_write_handler(0x0000, 0x3fff, write8_delegate(*this, FUNC(kc_state::expansion_write)), 0);
}
}
@@ -321,8 +321,8 @@ void kc_state::update_0x04000()
LOG(("Module at 0x4000\n"));
- space.install_read_handler (0x4000, 0x7fff, read8_delegate(FUNC(kc_state::expansion_4000_r), this), 0);
- space.install_write_handler(0x4000, 0x7fff, write8_delegate(FUNC(kc_state::expansion_4000_w), this), 0);
+ space.install_read_handler (0x4000, 0x7fff, read8_delegate(*this, FUNC(kc_state::expansion_4000_r)), 0);
+ space.install_write_handler(0x4000, 0x7fff, write8_delegate(*this, FUNC(kc_state::expansion_4000_w)), 0);
}
@@ -345,8 +345,8 @@ void kc_state::update_0x0c000()
{
LOG(("Module at 0x0c000\n"));
- space.install_read_handler (0xc000, 0xdfff, read8_delegate(FUNC(kc_state::expansion_c000_r), this), 0);
- space.install_write_handler(0xc000, 0xdfff, write8_delegate(FUNC(kc_state::expansion_c000_w), this), 0);
+ space.install_read_handler (0xc000, 0xdfff, read8_delegate(*this, FUNC(kc_state::expansion_c000_r)), 0);
+ space.install_write_handler(0xc000, 0xdfff, write8_delegate(*this, FUNC(kc_state::expansion_c000_w)), 0);
}
}
@@ -368,8 +368,8 @@ void kc_state::update_0x0e000()
{
LOG(("Module at 0x0e000\n"));
- space.install_read_handler (0xe000, 0xffff, read8_delegate(FUNC(kc_state::expansion_e000_r), this), 0);
- space.install_write_handler(0xe000, 0xffff, write8_delegate(FUNC(kc_state::expansion_e000_w), this), 0);
+ space.install_read_handler (0xe000, 0xffff, read8_delegate(*this, FUNC(kc_state::expansion_e000_r)), 0);
+ space.install_write_handler(0xe000, 0xffff, write8_delegate(*this, FUNC(kc_state::expansion_e000_w)), 0);
}
}
@@ -391,8 +391,8 @@ void kc_state::update_0x08000()
{
LOG(("Module at 0x8000!\n"));
- space.install_read_handler(0x8000, 0xbfff, read8_delegate(FUNC(kc_state::expansion_8000_r), this), 0);
- space.install_write_handler(0x8000, 0xbfff, write8_delegate(FUNC(kc_state::expansion_8000_w), this), 0);
+ space.install_read_handler(0x8000, 0xbfff, read8_delegate(*this, FUNC(kc_state::expansion_8000_r)), 0);
+ space.install_write_handler(0x8000, 0xbfff, write8_delegate(*this, FUNC(kc_state::expansion_8000_w)), 0);
}
}
@@ -433,8 +433,8 @@ void kc85_4_state::update_0x04000()
{
LOG(("Module at 0x4000\n"));
- space.install_read_handler (0x4000, 0x7fff, read8_delegate(FUNC(kc_state::expansion_4000_r), this), 0);
- space.install_write_handler(0x4000, 0x7fff, write8_delegate(FUNC(kc_state::expansion_4000_w), this), 0);
+ space.install_read_handler (0x4000, 0x7fff, read8_delegate(*this, FUNC(kc_state::expansion_4000_r)), 0);
+ space.install_write_handler(0x4000, 0x7fff, write8_delegate(*this, FUNC(kc_state::expansion_4000_w)), 0);
}
}
@@ -470,8 +470,8 @@ void kc85_4_state::update_0x0c000()
{
LOG(("Module at 0x0c000\n"));
- space.install_read_handler (0xc000, 0xdfff, read8_delegate(FUNC(kc_state::expansion_c000_r), this), 0);
- space.install_write_handler(0xc000, 0xdfff, write8_delegate(FUNC(kc_state::expansion_c000_w), this), 0);
+ space.install_read_handler (0xc000, 0xdfff, read8_delegate(*this, FUNC(kc_state::expansion_c000_r)), 0);
+ space.install_write_handler(0xc000, 0xdfff, write8_delegate(*this, FUNC(kc_state::expansion_c000_w)), 0);
}
}
}
@@ -542,8 +542,8 @@ void kc85_4_state::update_0x08000()
{
LOG(("Module at 0x8000\n"));
- space.install_read_handler(0x8000, 0xbfff, read8_delegate(FUNC(kc_state::expansion_8000_r), this), 0);
- space.install_write_handler(0x8000, 0xbfff, write8_delegate(FUNC(kc_state::expansion_8000_w), this), 0);
+ space.install_read_handler(0x8000, 0xbfff, read8_delegate(*this, FUNC(kc_state::expansion_8000_r)), 0);
+ space.install_write_handler(0x8000, 0xbfff, write8_delegate(*this, FUNC(kc_state::expansion_8000_w)), 0);
}
}
diff --git a/src/mame/machine/konamigx.cpp b/src/mame/machine/konamigx.cpp
index b927daf5156..d82eb498426 100644
--- a/src/mame/machine/konamigx.cpp
+++ b/src/mame/machine/konamigx.cpp
@@ -471,7 +471,7 @@ void konamigx_state::fantjour_dma_install()
{
save_item(NAME(m_fantjour_dma));
save_item(NAME(m_prot_data));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xdb0000, 0xdb001f, write32_delegate(FUNC(konamigx_state::fantjour_dma_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xdb0000, 0xdb001f, write32_delegate(*this, FUNC(konamigx_state::fantjour_dma_w)));
memset(m_fantjour_dma, 0, sizeof(m_fantjour_dma));
}
diff --git a/src/mame/machine/mac.cpp b/src/mame/machine/mac.cpp
index 495f4884f97..9bfb19f07e4 100644
--- a/src/mame/machine/mac.cpp
+++ b/src/mame/machine/mac.cpp
@@ -344,7 +344,7 @@ void mac_state::v8_resize()
mac_install_memory(0x00000000, memory_size-1, memory_size, memory_data, is_rom, "bank1");
// install catcher in place of ROM that will detect the first access to ROM in its real location
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xa00000, 0xafffff, read32_delegate(FUNC(mac_state::rom_switch_r), this), 0xffffffff);
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xa00000, 0xafffff, read32_delegate(*this, FUNC(mac_state::rom_switch_r)), 0xffffffff);
}
else
{
@@ -464,7 +464,7 @@ void mac_state::set_memory_overlay(int overlay)
if (is_rom)
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x40000000, 0x4fffffff, read32_delegate(FUNC(mac_state::rom_switch_r), this), 0xffffffff);
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x40000000, 0x4fffffff, read32_delegate(*this, FUNC(mac_state::rom_switch_r)), 0xffffffff);
}
else
{
diff --git a/src/mame/machine/mbee.cpp b/src/mame/machine/mbee.cpp
index 6a6d4fe49cd..a9bddd6c112 100644
--- a/src/mame/machine/mbee.cpp
+++ b/src/mame/machine/mbee.cpp
@@ -309,8 +309,8 @@ void mbee_state::setup_banks(uint8_t data, bool first_time, uint8_t b_mask)
if (!BIT(b_byte, 4))
{
// select video
- mem.install_read_handler (b_vid, b_vid + 0x7ff, read8_delegate(FUNC(mbee_state::video_low_r), this));
- mem.install_read_handler (b_vid + 0x800, b_vid + 0xfff, read8_delegate(FUNC(mbee_state::video_high_r), this));
+ mem.install_read_handler (b_vid, b_vid + 0x7ff, read8_delegate(*this, FUNC(mbee_state::video_low_r)));
+ mem.install_read_handler (b_vid + 0x800, b_vid + 0xfff, read8_delegate(*this, FUNC(mbee_state::video_high_r)));
}
else
{
@@ -341,8 +341,8 @@ void mbee_state::setup_banks(uint8_t data, bool first_time, uint8_t b_mask)
if (!BIT(b_byte, 4))
{
// select video
- mem.install_write_handler (b_vid, b_vid + 0x7ff, write8_delegate(FUNC(mbee_state::video_low_w), this));
- mem.install_write_handler (b_vid + 0x800, b_vid + 0xfff, write8_delegate(FUNC(mbee_state::video_high_w), this));
+ mem.install_write_handler (b_vid, b_vid + 0x7ff, write8_delegate(*this, FUNC(mbee_state::video_low_w)));
+ mem.install_write_handler (b_vid + 0x800, b_vid + 0xfff, write8_delegate(*this, FUNC(mbee_state::video_high_w)));
}
else
{
diff --git a/src/mame/machine/mega32x.cpp b/src/mame/machine/mega32x.cpp
index 0bc38458be7..42072ec8c63 100644
--- a/src/mame/machine/mega32x.cpp
+++ b/src/mame/machine/mega32x.cpp
@@ -671,21 +671,21 @@ WRITE16_MEMBER( sega_32x_device::m68k_a15100_w )
space.install_rom(0x0000000, 0x03fffff, machine().root_device().memregion("32x_68k_bios")->base());
/* VDP area */
- space.install_readwrite_handler(0x0a15180, 0x0a1518b, read16_delegate(FUNC(sega_32x_device::common_vdp_regs_r), this), write16_delegate(FUNC(sega_32x_device::common_vdp_regs_w),this)); // common / shared VDP regs
- space.install_readwrite_handler(0x0a15200, 0x0a153ff, read16_delegate(FUNC(sega_32x_device::m68k_palette_r), this), write16_delegate(FUNC(sega_32x_device::m68k_palette_w),this)); // access to 'palette' xRRRRRGGGGGBBBBB
- space.install_readwrite_handler(0x0840000, 0x085ffff, read16_delegate(FUNC(sega_32x_device::m68k_dram_r), this), write16_delegate(FUNC(sega_32x_device::m68k_dram_w),this)); // access to 'display ram' (framebuffer)
- space.install_readwrite_handler(0x0860000, 0x087ffff, read16_delegate(FUNC(sega_32x_device::m68k_dram_overwrite_r),this), write16_delegate(FUNC(sega_32x_device::m68k_dram_overwrite_w),this)); // access to 'display ram' (framebuffer)
+ space.install_readwrite_handler(0x0a15180, 0x0a1518b, read16_delegate(*this, FUNC(sega_32x_device::common_vdp_regs_r)), write16_delegate(*this, FUNC(sega_32x_device::common_vdp_regs_w))); // common / shared VDP regs
+ space.install_readwrite_handler(0x0a15200, 0x0a153ff, read16_delegate(*this, FUNC(sega_32x_device::m68k_palette_r)), write16_delegate(*this, FUNC(sega_32x_device::m68k_palette_w))); // access to 'palette' xRRRRRGGGGGBBBBB
+ space.install_readwrite_handler(0x0840000, 0x085ffff, read16_delegate(*this, FUNC(sega_32x_device::m68k_dram_r)), write16_delegate(*this, FUNC(sega_32x_device::m68k_dram_w))); // access to 'display ram' (framebuffer)
+ space.install_readwrite_handler(0x0860000, 0x087ffff, read16_delegate(*this, FUNC(sega_32x_device::m68k_dram_overwrite_r)), write16_delegate(*this, FUNC(sega_32x_device::m68k_dram_overwrite_w))); // access to 'display ram' (framebuffer)
- m_main_cpu->space(AS_PROGRAM).install_readwrite_handler(0x000070, 0x000073, read16_delegate(FUNC(sega_32x_device::m68k_m_hint_vector_r),this), write16_delegate(FUNC(sega_32x_device::m68k_m_hint_vector_w),this)); // h interrupt vector
+ m_main_cpu->space(AS_PROGRAM).install_readwrite_handler(0x000070, 0x000073, read16_delegate(*this, FUNC(sega_32x_device::m68k_m_hint_vector_r)), write16_delegate(*this, FUNC(sega_32x_device::m68k_m_hint_vector_w))); // h interrupt vector
}
else
{
m_32x_adapter_enabled = 0;
space.install_rom(0x0000000, 0x03fffff, machine().root_device().memregion("gamecart")->base());
- m_main_cpu->space(AS_PROGRAM).install_readwrite_handler(0x000070, 0x000073, read16_delegate(FUNC(sega_32x_device::m68k_m_hint_vector_r),this), write16_delegate(FUNC(sega_32x_device::m68k_m_hint_vector_w),this)); // h interrupt vector
+ m_main_cpu->space(AS_PROGRAM).install_readwrite_handler(0x000070, 0x000073, read16_delegate(*this, FUNC(sega_32x_device::m68k_m_hint_vector_r)), write16_delegate(*this, FUNC(sega_32x_device::m68k_m_hint_vector_w))); // h interrupt vector
}
}
@@ -1817,23 +1817,23 @@ void sega_32x_device::device_reset()
if (m_32x_adapter_enabled == 0)
{
m_main_cpu->space(AS_PROGRAM).install_rom(0x0000000, 0x03fffff, machine().root_device().memregion(":gamecart")->base());
- m_main_cpu->space(AS_PROGRAM).install_readwrite_handler(0x000070, 0x000073, read16_delegate(FUNC(sega_32x_device::m68k_m_hint_vector_r),this), write16_delegate(FUNC(sega_32x_device::m68k_m_hint_vector_w),this)); // h interrupt vector
+ m_main_cpu->space(AS_PROGRAM).install_readwrite_handler(0x000070, 0x000073, read16_delegate(*this, FUNC(sega_32x_device::m68k_m_hint_vector_r)), write16_delegate(*this, FUNC(sega_32x_device::m68k_m_hint_vector_w))); // h interrupt vector
};
m_a15100_reg = 0x0000;
- m_main_cpu->space(AS_PROGRAM).install_readwrite_handler(0xa15100, 0xa15101, read16_delegate(FUNC(sega_32x_device::m68k_a15100_r),this), write16_delegate(FUNC(sega_32x_device::m68k_a15100_w),this)); // framebuffer control regs
- m_main_cpu->space(AS_PROGRAM).install_readwrite_handler(0xa15102, 0xa15103, read16_delegate(FUNC(sega_32x_device::m68k_a15102_r),this), write16_delegate(FUNC(sega_32x_device::m68k_a15102_w),this)); // send irq to sh2
- m_main_cpu->space(AS_PROGRAM).install_readwrite_handler(0xa15104, 0xa15105, read16_delegate(FUNC(sega_32x_device::m68k_a15104_r),this), write16_delegate(FUNC(sega_32x_device::m68k_a15104_w),this)); // 68k BANK rom set
- m_main_cpu->space(AS_PROGRAM).install_readwrite_handler(0xa15106, 0xa15107, read16_delegate(FUNC(sega_32x_device::m68k_a15106_r),this), write16_delegate(FUNC(sega_32x_device::m68k_a15106_w),this)); // dreq stuff
- m_main_cpu->space(AS_PROGRAM).install_readwrite_handler(0xa15108, 0xa15113, read16_delegate(FUNC(sega_32x_device::dreq_common_r),this), write16_delegate(FUNC(sega_32x_device::dreq_common_w),this)); // dreq src / dst / length /fifo
+ m_main_cpu->space(AS_PROGRAM).install_readwrite_handler(0xa15100, 0xa15101, read16_delegate(*this, FUNC(sega_32x_device::m68k_a15100_r)), write16_delegate(*this, FUNC(sega_32x_device::m68k_a15100_w))); // framebuffer control regs
+ m_main_cpu->space(AS_PROGRAM).install_readwrite_handler(0xa15102, 0xa15103, read16_delegate(*this, FUNC(sega_32x_device::m68k_a15102_r)), write16_delegate(*this, FUNC(sega_32x_device::m68k_a15102_w))); // send irq to sh2
+ m_main_cpu->space(AS_PROGRAM).install_readwrite_handler(0xa15104, 0xa15105, read16_delegate(*this, FUNC(sega_32x_device::m68k_a15104_r)), write16_delegate(*this, FUNC(sega_32x_device::m68k_a15104_w))); // 68k BANK rom set
+ m_main_cpu->space(AS_PROGRAM).install_readwrite_handler(0xa15106, 0xa15107, read16_delegate(*this, FUNC(sega_32x_device::m68k_a15106_r)), write16_delegate(*this, FUNC(sega_32x_device::m68k_a15106_w))); // dreq stuff
+ m_main_cpu->space(AS_PROGRAM).install_readwrite_handler(0xa15108, 0xa15113, read16_delegate(*this, FUNC(sega_32x_device::dreq_common_r)), write16_delegate(*this, FUNC(sega_32x_device::dreq_common_w))); // dreq src / dst / length /fifo
- m_main_cpu->space(AS_PROGRAM).install_readwrite_handler(0xa1511a, 0xa1511b, read16_delegate(FUNC(sega_32x_device::m68k_a1511a_r),this), write16_delegate(FUNC(sega_32x_device::m68k_a1511a_w),this)); // SEGA TV
+ m_main_cpu->space(AS_PROGRAM).install_readwrite_handler(0xa1511a, 0xa1511b, read16_delegate(*this, FUNC(sega_32x_device::m68k_a1511a_r)), write16_delegate(*this, FUNC(sega_32x_device::m68k_a1511a_w))); // SEGA TV
- m_main_cpu->space(AS_PROGRAM).install_readwrite_handler(0xa15120, 0xa1512f, read16_delegate(FUNC(sega_32x_device::m68k_m_commsram_r),this), write16_delegate(FUNC(sega_32x_device::m68k_m_commsram_w),this)); // comms reg 0-7
- m_main_cpu->space(AS_PROGRAM).install_readwrite_handler(0xa15130, 0xa1513f, read16_delegate(FUNC(sega_32x_device::pwm_r),this), write16_delegate(FUNC(sega_32x_device::m68k_pwm_w),this));
+ m_main_cpu->space(AS_PROGRAM).install_readwrite_handler(0xa15120, 0xa1512f, read16_delegate(*this, FUNC(sega_32x_device::m68k_m_commsram_r)), write16_delegate(*this, FUNC(sega_32x_device::m68k_m_commsram_w))); // comms reg 0-7
+ m_main_cpu->space(AS_PROGRAM).install_readwrite_handler(0xa15130, 0xa1513f, read16_delegate(*this, FUNC(sega_32x_device::pwm_r)), write16_delegate(*this, FUNC(sega_32x_device::m68k_pwm_w)));
- m_main_cpu->space(AS_PROGRAM).install_read_handler(0x0a130ec, 0x0a130ef, read16_delegate(FUNC(sega_32x_device::m68k_MARS_r),this)); // system ID
+ m_main_cpu->space(AS_PROGRAM).install_read_handler(0x0a130ec, 0x0a130ef, read16_delegate(*this, FUNC(sega_32x_device::m68k_MARS_r))); // system ID
diff --git a/src/mame/machine/megacd.cpp b/src/mame/machine/megacd.cpp
index 2872feaf9e9..f9d446cd1eb 100644
--- a/src/mame/machine/megacd.cpp
+++ b/src/mame/machine/megacd.cpp
@@ -297,17 +297,17 @@ void sega_segacd_device::device_add_mconfig(machine_config &config)
{
M68000(config, m_scdcpu, SEGACD_CLOCK); /* 12.5 MHz */
m_scdcpu->set_addrmap(AS_PROGRAM, &sega_segacd_device::segacd_map);
- m_scdcpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(sega_segacd_device::segacd_sub_int_callback),this));
+ m_scdcpu->set_irq_acknowledge_callback(FUNC(sega_segacd_device::segacd_sub_int_callback));
LC89510(config, "cdc", 0); // cd controller
// temporary until things are cleaned up
LC89510_TEMP(config, m_lc89510_temp, 0); // cd controller
- m_lc89510_temp->set_cdc_do_dma_callback(FUNC(sega_segacd_device::SegaCD_CDC_Do_DMA), this); // hack
+ m_lc89510_temp->set_cdc_do_dma_callback(FUNC(sega_segacd_device::SegaCD_CDC_Do_DMA)); // hack
m_lc89510_temp->set_cdrom_tag("^cdrom");
m_lc89510_temp->set_68k_tag(m_scdcpu);
- TIMER(config, m_stopwatch_timer).configure_generic(timer_device::expired_delegate()); //stopwatch timer
+ TIMER(config, m_stopwatch_timer).configure_generic(nullptr); //stopwatch timer
TIMER(config, m_stamp_timer).configure_generic(FUNC(sega_segacd_device::stamp_timer_callback));
TIMER(config, m_irq3_timer).configure_generic(FUNC(sega_segacd_device::irq3_timer_callback));
TIMER(config, m_dma_timer).configure_generic(FUNC(sega_segacd_device::dma_timer_callback));
@@ -1737,33 +1737,33 @@ void sega_segacd_device::device_start()
space.unmap_readwrite (0x020000,0x3fffff);
- space.install_read_handler (0x0020000, 0x003ffff, read16_delegate(FUNC(sega_segacd_device::scd_4m_prgbank_ram_r),this) );
- space.install_write_handler (0x0020000, 0x003ffff, write16_delegate(FUNC(sega_segacd_device::scd_4m_prgbank_ram_w),this) );
+ space.install_read_handler (0x0020000, 0x003ffff, read16_delegate(*this, FUNC(sega_segacd_device::scd_4m_prgbank_ram_r)) );
+ space.install_write_handler (0x0020000, 0x003ffff, write16_delegate(*this, FUNC(sega_segacd_device::scd_4m_prgbank_ram_w)) );
- space.install_readwrite_handler(0x200000, 0x23ffff, read16_delegate(FUNC(sega_segacd_device::segacd_main_dataram_part1_r),this), write16_delegate(FUNC(sega_segacd_device::segacd_main_dataram_part1_w),this)); // RAM shared with sub
- space.install_readwrite_handler(0xa12000, 0xa12001, read16_delegate(FUNC(sega_segacd_device::scd_a12000_halt_reset_r),this), write16_delegate(FUNC(sega_segacd_device::scd_a12000_halt_reset_w),this)); // sub-cpu control
- space.install_readwrite_handler(0xa12002, 0xa12003, read16_delegate(FUNC(sega_segacd_device::scd_a12002_memory_mode_r),this), write16_delegate(FUNC(sega_segacd_device::scd_a12002_memory_mode_w),this)); // memory mode / write protect
- //space.install_readwrite_handler(0xa12004, 0xa12005, read16_delegate(FUNC(sega_segacd_device::segacd_cdc_mode_address_r),this), write16_delegate(FUNC(sega_segacd_device::segacd_cdc_mode_address_w),this));
- space.install_readwrite_handler(0xa12006, 0xa12007, read16_delegate(FUNC(sega_segacd_device::scd_a12006_hint_register_r),this), write16_delegate(FUNC(sega_segacd_device::scd_a12006_hint_register_w),this)); // where HINT points on main CPU
- //space.install_read_handler (0xa12008, 0xa12009, read16_delegate(FUNC(sega_segacd_device::cdc_data_main_r),this));
+ space.install_readwrite_handler(0x200000, 0x23ffff, read16_delegate(*this, FUNC(sega_segacd_device::segacd_main_dataram_part1_r)), write16_delegate(*this, FUNC(sega_segacd_device::segacd_main_dataram_part1_w))); // RAM shared with sub
+ space.install_readwrite_handler(0xa12000, 0xa12001, read16_delegate(*this, FUNC(sega_segacd_device::scd_a12000_halt_reset_r)), write16_delegate(*this, FUNC(sega_segacd_device::scd_a12000_halt_reset_w))); // sub-cpu control
+ space.install_readwrite_handler(0xa12002, 0xa12003, read16_delegate(*this, FUNC(sega_segacd_device::scd_a12002_memory_mode_r)), write16_delegate(*this, FUNC(sega_segacd_device::scd_a12002_memory_mode_w))); // memory mode / write protect
+ //space.install_readwrite_handler(0xa12004, 0xa12005, read16_delegate(*this, FUNC(sega_segacd_device::segacd_cdc_mode_address_r)), write16_delegate(*this, FUNC(sega_segacd_device::segacd_cdc_mode_address_w)));
+ space.install_readwrite_handler(0xa12006, 0xa12007, read16_delegate(*this, FUNC(sega_segacd_device::scd_a12006_hint_register_r)), write16_delegate(*this, FUNC(sega_segacd_device::scd_a12006_hint_register_w))); // where HINT points on main CPU
+ //space.install_read_handler (0xa12008, 0xa12009, read16_delegate(*this, FUNC(sega_segacd_device::cdc_data_main_r)));
- space.install_readwrite_handler(0xa1200c, 0xa1200d, read16_delegate(FUNC(sega_segacd_device::segacd_stopwatch_timer_r),this), write16_delegate(FUNC(sega_segacd_device::segacd_stopwatch_timer_w),this)); // starblad
+ space.install_readwrite_handler(0xa1200c, 0xa1200d, read16_delegate(*this, FUNC(sega_segacd_device::segacd_stopwatch_timer_r)), write16_delegate(*this, FUNC(sega_segacd_device::segacd_stopwatch_timer_w))); // starblad
- space.install_readwrite_handler(0xa1200e, 0xa1200f, read16_delegate(FUNC(sega_segacd_device::segacd_comms_flags_r),this), write16_delegate(FUNC(sega_segacd_device::segacd_comms_flags_maincpu_w),this)); // communication flags block
+ space.install_readwrite_handler(0xa1200e, 0xa1200f, read16_delegate(*this, FUNC(sega_segacd_device::segacd_comms_flags_r)), write16_delegate(*this, FUNC(sega_segacd_device::segacd_comms_flags_maincpu_w))); // communication flags block
- space.install_readwrite_handler(0xa12010, 0xa1201f, read16_delegate(FUNC(sega_segacd_device::segacd_comms_main_part1_r),this), write16_delegate(FUNC(sega_segacd_device::segacd_comms_main_part1_w),this));
- space.install_readwrite_handler(0xa12020, 0xa1202f, read16_delegate(FUNC(sega_segacd_device::segacd_comms_main_part2_r),this), write16_delegate(FUNC(sega_segacd_device::segacd_comms_main_part2_w),this));
+ space.install_readwrite_handler(0xa12010, 0xa1201f, read16_delegate(*this, FUNC(sega_segacd_device::segacd_comms_main_part1_r)), write16_delegate(*this, FUNC(sega_segacd_device::segacd_comms_main_part1_w)));
+ space.install_readwrite_handler(0xa12020, 0xa1202f, read16_delegate(*this, FUNC(sega_segacd_device::segacd_comms_main_part2_r)), write16_delegate(*this, FUNC(sega_segacd_device::segacd_comms_main_part2_w)));
- space.install_read_handler (0x0000070, 0x0000073, read16_delegate(FUNC(sega_segacd_device::scd_hint_vector_r),this) );
+ space.install_read_handler (0x0000070, 0x0000073, read16_delegate(*this, FUNC(sega_segacd_device::scd_hint_vector_r)) );
- segacd_stampmap[0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(sega_segacd_device::get_stampmap_16x16_1x1_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 16, 16);
- segacd_stampmap[1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(sega_segacd_device::get_stampmap_32x32_1x1_tile_info),this), TILEMAP_SCAN_ROWS, 32, 32, 8, 8);
- segacd_stampmap[2] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(sega_segacd_device::get_stampmap_16x16_16x16_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 256, 256); // 128kb!
- segacd_stampmap[3] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(sega_segacd_device::get_stampmap_32x32_16x16_tile_info),this), TILEMAP_SCAN_ROWS, 32, 32, 128, 128); // 32kb!
+ segacd_stampmap[0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(sega_segacd_device::get_stampmap_16x16_1x1_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 16, 16);
+ segacd_stampmap[1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(sega_segacd_device::get_stampmap_32x32_1x1_tile_info)), TILEMAP_SCAN_ROWS, 32, 32, 8, 8);
+ segacd_stampmap[2] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(sega_segacd_device::get_stampmap_16x16_16x16_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 256, 256); // 128kb!
+ segacd_stampmap[3] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(sega_segacd_device::get_stampmap_32x32_16x16_tile_info)), TILEMAP_SCAN_ROWS, 32, 32, 128, 128); // 32kb!
// todo register save state stuff
}
diff --git a/src/mame/machine/megacdcd.cpp b/src/mame/machine/megacdcd.cpp
index 9241b906e07..c8b7fb440fe 100644
--- a/src/mame/machine/megacdcd.cpp
+++ b/src/mame/machine/megacdcd.cpp
@@ -135,15 +135,14 @@ DEFINE_DEVICE_TYPE(LC89510_TEMP, lc89510_temp_device, "lc89510_temp", "lc89510_t
lc89510_temp_device::lc89510_temp_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: device_t(mconfig, LC89510_TEMP, tag, owner, clock)
+ , m_segacd_dma_callback(*this, FUNC(lc89510_temp_device::Fake_CDC_Do_DMA))
+ , m_type1_interrupt_callback(*this, FUNC(lc89510_temp_device::dummy_interrupt_callback))
+ , m_type2_interrupt_callback(*this, FUNC(lc89510_temp_device::dummy_interrupt_callback))
+ , m_type3_interrupt_callback(*this, FUNC(lc89510_temp_device::dummy_interrupt_callback))
, m_cdrom(*this, finder_base::DUMMY_TAG)
, m_cdda(*this, "cdda")
, m_68k(*this, finder_base::DUMMY_TAG)
{
- segacd_dma_callback = segacd_dma_delegate(FUNC(lc89510_temp_device::Fake_CDC_Do_DMA), this);
- type1_interrupt_callback = interrupt_delegate(FUNC(lc89510_temp_device::dummy_interrupt_callback), this);
- type2_interrupt_callback = interrupt_delegate(FUNC(lc89510_temp_device::dummy_interrupt_callback), this);
- type3_interrupt_callback = interrupt_delegate(FUNC(lc89510_temp_device::dummy_interrupt_callback), this);
-
is_neoCD = false;
nff0002 = 0;
@@ -160,7 +159,7 @@ lc89510_temp_device::lc89510_temp_device(const machine_config &mconfig, const ch
segacd_irq_mask = 0;
}
-void lc89510_temp_device::dummy_interrupt_callback(void)
+void lc89510_temp_device::dummy_interrupt_callback()
{
}
@@ -172,10 +171,10 @@ void lc89510_temp_device::Fake_CDC_Do_DMA(int &dmacount, uint8_t *CDC_BUFFER, ui
void lc89510_temp_device::device_start()
{
- segacd_dma_callback.bind_relative_to(*owner());
- type1_interrupt_callback.bind_relative_to(*owner());
- type2_interrupt_callback.bind_relative_to(*owner());
- type3_interrupt_callback.bind_relative_to(*owner());
+ m_segacd_dma_callback.resolve();
+ m_type1_interrupt_callback.resolve();
+ m_type2_interrupt_callback.resolve();
+ m_type3_interrupt_callback.resolve();
}
void lc89510_temp_device::device_reset()
@@ -645,7 +644,7 @@ void lc89510_temp_device::CDC_Do_DMA(running_machine& machine, int rate)
uint16_t dma_addrc = LC8951RegistersW[REG_W_DACL] | (LC8951RegistersW[REG_W_DACH]<<8);
// HACK
- segacd_dma_callback(dmacount, CDC_BUFFER, dma_addrc, destination );
+ m_segacd_dma_callback(dmacount, CDC_BUFFER, dma_addrc, destination );
dma_addrc += length*2;
@@ -1138,7 +1137,7 @@ TIMER_DEVICE_CALLBACK_MEMBER( lc89510_temp_device::segacd_access_timer_callback
{
if (nff0002 & 0x0050)
{
- type2_interrupt_callback();
+ m_type2_interrupt_callback();
}
}
@@ -1295,7 +1294,7 @@ void lc89510_temp_device::scd_ctrl_checks(running_machine& machine)
{
if (is_neoCD)
{
- type1_interrupt_callback();
+ m_type1_interrupt_callback();
}
else
{
diff --git a/src/mame/machine/megacdcd.h b/src/mame/machine/megacdcd.h
index a8465a88384..3eec58bc6dd 100644
--- a/src/mame/machine/megacdcd.h
+++ b/src/mame/machine/megacdcd.h
@@ -8,20 +8,19 @@
#include "sound/cdda.h"
-typedef device_delegate<void (int&, uint8_t*, uint16_t&, uint16_t&)> segacd_dma_delegate;
-
-typedef device_delegate<void (void)> interrupt_delegate;
-
class lc89510_temp_device : public device_t
{
public:
+ typedef device_delegate<void (int &, uint8_t *, uint16_t &, uint16_t &)> dma_delegate;
+ typedef device_delegate<void ()> interrupt_delegate;
+
void set_is_neoCD(bool new_is_neoCD) { is_neoCD = new_is_neoCD; }
- template <typename... T> void set_type1_interrupt_callback(T &&... args) { type1_interrupt_callback = interrupt_delegate(std::forward<T>(args)...); }
- template <typename... T> void set_type2_interrupt_callback(T &&... args) { type2_interrupt_callback = interrupt_delegate(std::forward<T>(args)...); }
- template <typename... T> void set_type3_interrupt_callback(T &&... args) { type3_interrupt_callback = interrupt_delegate(std::forward<T>(args)...); }
+ template <typename... T> void set_type1_interrupt_callback(T &&... args) { m_type1_interrupt_callback.set(std::forward<T>(args)...); }
+ template <typename... T> void set_type2_interrupt_callback(T &&... args) { m_type2_interrupt_callback.set(std::forward<T>(args)...); }
+ template <typename... T> void set_type3_interrupt_callback(T &&... args) { m_type3_interrupt_callback.set(std::forward<T>(args)...); }
- template <typename... T> void set_cdc_do_dma_callback(T &&... args) { segacd_dma_callback = segacd_dma_delegate(std::forward<T>(args)...); }
+ template <typename... T> void set_cdc_do_dma_callback(T &&... args) { m_segacd_dma_callback.set(std::forward<T>(args)...); }
template <typename T> void set_cdrom_tag(T &&tag) { m_cdrom.set_tag(std::forward<T>(tag)); }
template <typename T> void set_68k_tag(T &&tag) { m_68k.set_tag(std::forward<T>(tag)); }
@@ -72,14 +71,14 @@ protected:
static constexpr unsigned EXTERNAL_BUFFER_SIZE = (32 * 1024 * 2) + SECTOR_SIZE;
// HACK for DMA handling
- segacd_dma_delegate segacd_dma_callback;
- interrupt_delegate type1_interrupt_callback;
- interrupt_delegate type2_interrupt_callback;
- interrupt_delegate type3_interrupt_callback;
+ dma_delegate m_segacd_dma_callback;
+ interrupt_delegate m_type1_interrupt_callback;
+ interrupt_delegate m_type2_interrupt_callback;
+ interrupt_delegate m_type3_interrupt_callback;
void Fake_CDC_Do_DMA(int &dmacount, uint8_t *CDC_BUFFER, uint16_t &dma_addrc, uint16_t &destination );
- void dummy_interrupt_callback(void);
+ void dummy_interrupt_callback();
required_device<cdrom_image_device> m_cdrom;
diff --git a/src/mame/machine/megadriv.cpp b/src/mame/machine/megadriv.cpp
index ee96f0d1f17..495e3612a66 100644
--- a/src/mame/machine/megadriv.cpp
+++ b/src/mame/machine/megadriv.cpp
@@ -1019,10 +1019,10 @@ void md_base_state::megadriv_init_common()
save_pointer(NAME(m_genz80.z80_prgram), 0x2000);
}
- m_maincpu->set_tas_write_callback(write8_delegate(FUNC(md_base_state::megadriv_tas_callback),this));
+ m_maincpu->set_tas_write_callback(*this, FUNC(md_base_state::megadriv_tas_callback));
- m_megadrive_io_read_data_port_ptr = read8_delegate(FUNC(md_base_state::megadrive_io_read_data_port_3button),this);
- m_megadrive_io_write_data_port_ptr = write16_delegate(FUNC(md_base_state::megadrive_io_write_data_port_3button),this);
+ m_megadrive_io_read_data_port_ptr = read8_delegate(*this, FUNC(md_base_state::megadrive_io_read_data_port_3button));
+ m_megadrive_io_write_data_port_ptr = write16_delegate(*this, FUNC(md_base_state::megadrive_io_write_data_port_3button));
}
void md_base_state::init_megadriv_c2()
diff --git a/src/mame/machine/mhavoc.cpp b/src/mame/machine/mhavoc.cpp
index 65e9a99a3a6..2dbfe7067af 100644
--- a/src/mame/machine/mhavoc.cpp
+++ b/src/mame/machine/mhavoc.cpp
@@ -319,6 +319,6 @@ WRITE8_MEMBER(mhavoc_state::mhavocrv_speech_strobe_w)
void mhavoc_state::init_mhavocrv()
{
// For Return to Vax, add support for the normally-unused speech module.
- m_gamma->space(AS_PROGRAM).install_write_handler(0x5800, 0x5800, write8_delegate(FUNC(mhavoc_state::mhavocrv_speech_data_w),this));
- m_gamma->space(AS_PROGRAM).install_write_handler(0x5900, 0x5900, write8_delegate(FUNC(mhavoc_state::mhavocrv_speech_strobe_w),this));
+ m_gamma->space(AS_PROGRAM).install_write_handler(0x5800, 0x5800, write8_delegate(*this, FUNC(mhavoc_state::mhavocrv_speech_data_w)));
+ m_gamma->space(AS_PROGRAM).install_write_handler(0x5900, 0x5900, write8_delegate(*this, FUNC(mhavoc_state::mhavocrv_speech_strobe_w)));
}
diff --git a/src/mame/machine/micro3d.cpp b/src/mame/machine/micro3d.cpp
index e30e9361b5d..e96be82b856 100644
--- a/src/mame/machine/micro3d.cpp
+++ b/src/mame/machine/micro3d.cpp
@@ -524,8 +524,8 @@ void micro3d_state::init_botss()
address_space &space = m_maincpu->space(AS_PROGRAM);
/* Required to pass the hardware version check */
- space.install_read_handler(0x140000, 0x140001, read16_delegate(FUNC(micro3d_state::botss_140000_r),this));
- space.install_read_handler(0x180000, 0x180001, read16_delegate(FUNC(micro3d_state::botss_180000_r),this));
+ space.install_read_handler(0x140000, 0x140001, read16_delegate(*this, FUNC(micro3d_state::botss_140000_r)));
+ space.install_read_handler(0x180000, 0x180001, read16_delegate(*this, FUNC(micro3d_state::botss_180000_r)));
init_micro3d();
}
diff --git a/src/mame/machine/midtunit.cpp b/src/mame/machine/midtunit.cpp
index 5572fa5e7d7..d30338f6308 100644
--- a/src/mame/machine/midtunit.cpp
+++ b/src/mame/machine/midtunit.cpp
@@ -379,7 +379,7 @@ void midtunit_state::init_mktunit()
init_tunit_generic(SOUND_ADPCM);
/* protection */
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1b00000, 0x1b6ffff, read16_delegate(FUNC(midtunit_state::mk_prot_r),this), write16_delegate(FUNC(midtunit_state::mk_prot_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1b00000, 0x1b6ffff, read16_delegate(*this, FUNC(midtunit_state::mk_prot_r)), write16_delegate(*this, FUNC(midtunit_state::mk_prot_w)));
/* sound chip protection (hidden RAM) */
m_adpcm_sound->get_cpu()->space(AS_PROGRAM).install_ram(0xfb9c, 0xfbc6);
@@ -388,7 +388,7 @@ void midtunit_state::init_mktunit()
void midtunit_state::init_mkturbo()
{
/* protection */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xfffff400, 0xfffff40f, read16_delegate(FUNC(midtunit_state::mkturbo_prot_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xfffff400, 0xfffff40f, read16_delegate(*this, FUNC(midtunit_state::mkturbo_prot_r)));
init_mktunit();
}
@@ -402,13 +402,13 @@ void midtunit_state::init_nbajam_common(int te_protection)
if (!te_protection)
{
m_nbajam_prot_table = nbajam_prot_values;
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1b14020, 0x1b2503f, read16_delegate(FUNC(midtunit_state::nbajam_prot_r),this), write16_delegate(FUNC(midtunit_state::nbajam_prot_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1b14020, 0x1b2503f, read16_delegate(*this, FUNC(midtunit_state::nbajam_prot_r)), write16_delegate(*this, FUNC(midtunit_state::nbajam_prot_w)));
}
else
{
m_nbajam_prot_table = nbajamte_prot_values;
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1b15f40, 0x1b37f5f, read16_delegate(FUNC(midtunit_state::nbajam_prot_r),this), write16_delegate(FUNC(midtunit_state::nbajam_prot_w),this));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1b95f40, 0x1bb7f5f, read16_delegate(FUNC(midtunit_state::nbajam_prot_r),this), write16_delegate(FUNC(midtunit_state::nbajam_prot_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1b15f40, 0x1b37f5f, read16_delegate(*this, FUNC(midtunit_state::nbajam_prot_r)), write16_delegate(*this, FUNC(midtunit_state::nbajam_prot_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1b95f40, 0x1bb7f5f, read16_delegate(*this, FUNC(midtunit_state::nbajam_prot_r)), write16_delegate(*this, FUNC(midtunit_state::nbajam_prot_w)));
}
/* sound chip protection (hidden RAM) */
@@ -437,7 +437,7 @@ void midtunit_state::init_jdreddp()
m_maincpu->space(AS_PROGRAM).nop_write(0x01d81060, 0x01d8107f);
/* protection */
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1b00000, 0x1bfffff, read16_delegate(FUNC(midtunit_state::jdredd_prot_r),this), write16_delegate(FUNC(midtunit_state::jdredd_prot_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1b00000, 0x1bfffff, read16_delegate(*this, FUNC(midtunit_state::jdredd_prot_r)), write16_delegate(*this, FUNC(midtunit_state::jdredd_prot_w)));
/* sound chip protection (hidden RAM) */
m_adpcm_sound->get_cpu()->space(AS_PROGRAM).install_read_bank(0xfbcf, 0xfbf9, "bank7");
@@ -462,13 +462,13 @@ void midtunit_state::init_mk2()
m_video->set_gfx_rom_large(true);
/* protection */
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x00f20c60, 0x00f20c7f, write16_delegate(FUNC(midtunit_state::mk2_prot_w),this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x00f42820, 0x00f4283f, write16_delegate(FUNC(midtunit_state::mk2_prot_w),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x01a190e0, 0x01a190ff, read16_delegate(FUNC(midtunit_state::mk2_prot_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x01a191c0, 0x01a191df, read16_delegate(FUNC(midtunit_state::mk2_prot_shift_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x01a3d0c0, 0x01a3d0ff, read16_delegate(FUNC(midtunit_state::mk2_prot_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x01d9d1e0, 0x01d9d1ff, read16_delegate(FUNC(midtunit_state::mk2_prot_const_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x01def920, 0x01def93f, read16_delegate(FUNC(midtunit_state::mk2_prot_const_r),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x00f20c60, 0x00f20c7f, write16_delegate(*this, FUNC(midtunit_state::mk2_prot_w)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x00f42820, 0x00f4283f, write16_delegate(*this, FUNC(midtunit_state::mk2_prot_w)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x01a190e0, 0x01a190ff, read16_delegate(*this, FUNC(midtunit_state::mk2_prot_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x01a191c0, 0x01a191df, read16_delegate(*this, FUNC(midtunit_state::mk2_prot_shift_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x01a3d0c0, 0x01a3d0ff, read16_delegate(*this, FUNC(midtunit_state::mk2_prot_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x01d9d1e0, 0x01d9d1ff, read16_delegate(*this, FUNC(midtunit_state::mk2_prot_const_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x01def920, 0x01def93f, read16_delegate(*this, FUNC(midtunit_state::mk2_prot_const_r)));
}
diff --git a/src/mame/machine/midwayic.cpp b/src/mame/machine/midwayic.cpp
index 02b727b7acb..560e6a4b838 100644
--- a/src/mame/machine/midwayic.cpp
+++ b/src/mame/machine/midwayic.cpp
@@ -756,11 +756,13 @@ void midway_ioasic_device::device_start()
/* configure the fifo */
if (m_has_dcs)
{
- m_dcs->set_fifo_callbacks(read16_delegate(FUNC(midway_ioasic_device::fifo_r),this),
- read16_delegate(FUNC(midway_ioasic_device::fifo_status_r),this),
- write_line_delegate(FUNC(midway_ioasic_device::fifo_reset_w),this));
- m_dcs->set_io_callbacks(write_line_delegate(FUNC(midway_ioasic_device::ioasic_output_full),this),
- write_line_delegate(FUNC(midway_ioasic_device::ioasic_input_empty),this));
+ m_dcs->set_fifo_callbacks(
+ read16_delegate(*this, FUNC(midway_ioasic_device::fifo_r)),
+ read16_delegate(*this, FUNC(midway_ioasic_device::fifo_status_r)),
+ write_line_delegate(*this, FUNC(midway_ioasic_device::fifo_reset_w)));
+ m_dcs->set_io_callbacks(
+ write_line_delegate(*this, FUNC(midway_ioasic_device::ioasic_output_full)),
+ write_line_delegate(*this, FUNC(midway_ioasic_device::ioasic_input_empty)));
}
fifo_reset_w(1);
diff --git a/src/mame/machine/midwunit.cpp b/src/mame/machine/midwunit.cpp
index cacd27d68a9..da656020f03 100644
--- a/src/mame/machine/midwunit.cpp
+++ b/src/mame/machine/midwunit.cpp
@@ -209,14 +209,14 @@ void midwunit_state::init_mk3r10()
void midwunit_state::init_umk3()
{
init_mk3_common();
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x0106a060, 0x0106a09f, write16_delegate(FUNC(midwunit_state::umk3_palette_hack_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x0106a060, 0x0106a09f, write16_delegate(*this, FUNC(midwunit_state::umk3_palette_hack_w)));
m_umk3_palette = m_mainram + (0x6a060>>4);
}
void midwunit_state::init_umk3r11()
{
init_mk3_common();
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x0106a060, 0x0106a09f,write16_delegate(FUNC(midwunit_state::umk3_palette_hack_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x0106a060, 0x0106a09f, write16_delegate(*this, FUNC(midwunit_state::umk3_palette_hack_w)));
m_umk3_palette = m_mainram + (0x6a060>>4);
}
@@ -291,7 +291,7 @@ WRITE16_MEMBER(midwunit_state::wwfmania_io_0_w)
void midwunit_state::init_wwfmania()
{
/* enable I/O shuffling */
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x01800000, 0x0180000f, write16_delegate(FUNC(midwunit_state::wwfmania_io_0_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x01800000, 0x0180000f, write16_delegate(*this, FUNC(midwunit_state::wwfmania_io_0_w)));
/* serial prefixes 430, 528 */
//midway_serial_pic_init(machine(), 528);
diff --git a/src/mame/machine/midxunit.cpp b/src/mame/machine/midxunit.cpp
index 9ac0370eafa..9834cfc507a 100644
--- a/src/mame/machine/midxunit.cpp
+++ b/src/mame/machine/midxunit.cpp
@@ -267,7 +267,7 @@ void midxunit_state::machine_reset()
for (int i = 0; i < 16; i++)
m_ioshuffle[i] = i % 8;
- m_dcs->set_io_callbacks(write_line_delegate(FUNC(midxunit_state::midxunit_dcs_output_full),this), write_line_delegate());
+ m_dcs->set_io_callbacks(write_line_delegate(*this, FUNC(midxunit_state::midxunit_dcs_output_full)), write_line_delegate(*this));
}
diff --git a/src/mame/machine/midyunit.cpp b/src/mame/machine/midyunit.cpp
index c40aae938d3..68c199100df 100644
--- a/src/mame/machine/midyunit.cpp
+++ b/src/mame/machine/midyunit.cpp
@@ -286,7 +286,7 @@ void midyunit_state::init_generic(int bpp, int sound, int prot_start, int prot_e
switch (sound)
{
case SOUND_CVSD_SMALL:
- m_cvsd_sound->get_cpu()->space(AS_PROGRAM).install_write_handler(prot_start, prot_end, write8_delegate(FUNC(midyunit_state::cvsd_protection_w), this));
+ m_cvsd_sound->get_cpu()->space(AS_PROGRAM).install_write_handler(prot_start, prot_end, write8_delegate(*this, FUNC(midyunit_state::cvsd_protection_w)));
m_cvsd_protection_base = memregion("cvsd:cpu")->base() + 0x10000 + (prot_start - 0x8000);
break;
@@ -467,7 +467,7 @@ READ16_MEMBER(midyunit_state::mkturbo_prot_r)
void midyunit_state::init_mkyturbo()
{
/* protection */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xfffff400, 0xfffff40f, read16_delegate(FUNC(midyunit_state::mkturbo_prot_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xfffff400, 0xfffff40f, read16_delegate(*this, FUNC(midyunit_state::mkturbo_prot_r)));
init_mkyunit();
}
@@ -476,31 +476,31 @@ void midyunit_state::init_mkyturbo()
void midyunit_state::term2_init_common(write16_delegate hack_w)
{
- /* protection */
- static const struct protection_data term2_protection_data =
+ // protection
+ static constexpr struct protection_data term2_protection_data =
{
{ 0x0f00, 0x0f00, 0x0f00 },
{ 0x4000, 0xf000, 0xa000 }
};
m_prot_data = &term2_protection_data;
- /* common init */
+ // common init
init_generic(6, SOUND_ADPCM, 0xfa8d, 0xfa9c);
- /* special inputs */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x01c00000, 0x01c0005f, read16_delegate(FUNC(midyunit_state::term2_input_r), this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x01e00000, 0x01e0001f, write16_delegate(FUNC(midyunit_state::term2_sound_w), this));
+ // special inputs */
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x01c00000, 0x01c0005f, read16_delegate(*this, FUNC(midyunit_state::term2_input_r)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x01e00000, 0x01e0001f, write16_delegate(*this, FUNC(midyunit_state::term2_sound_w)));
- /* HACK: this prevents the freeze on the movies */
- /* until we figure what's causing it, this is better than nothing */
+ // HACK: this prevents the freeze on the movies
+ // until we figure what's causing it, this is better than nothing
m_maincpu->space(AS_PROGRAM).install_write_handler(0x010aa0e0, 0x010aa0ff, hack_w);
m_t2_hack_mem = m_mainram + (0xaa0e0>>4);
}
-void midyunit_state::init_term2() { term2_init_common(write16_delegate(FUNC(midyunit_state::term2_hack_w),this)); }
-void midyunit_state::init_term2la3() { term2_init_common(write16_delegate(FUNC(midyunit_state::term2la3_hack_w),this)); }
-void midyunit_state::init_term2la2() { term2_init_common(write16_delegate(FUNC(midyunit_state::term2la2_hack_w),this)); }
-void midyunit_state::init_term2la1() { term2_init_common(write16_delegate(FUNC(midyunit_state::term2la1_hack_w),this)); }
+void midyunit_state::init_term2() { term2_init_common(write16_delegate(*this, FUNC(midyunit_state::term2_hack_w))); }
+void midyunit_state::init_term2la3() { term2_init_common(write16_delegate(*this, FUNC(midyunit_state::term2la3_hack_w))); }
+void midyunit_state::init_term2la2() { term2_init_common(write16_delegate(*this, FUNC(midyunit_state::term2la2_hack_w))); }
+void midyunit_state::init_term2la1() { term2_init_common(write16_delegate(*this, FUNC(midyunit_state::term2la1_hack_w))); }
diff --git a/src/mame/machine/model1io2.cpp b/src/mame/machine/model1io2.cpp
index 1b581fa5b14..78a307ea9ab 100644
--- a/src/mame/machine/model1io2.cpp
+++ b/src/mame/machine/model1io2.cpp
@@ -194,14 +194,14 @@ void model1io2_device::device_add_mconfig(machine_config &config)
screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); // not accurate
screen.set_size(6*20+1, 19);
screen.set_visarea(0, 6*20, 0, 19-1);
- screen.set_screen_update("lcd", FUNC(hd44780_device::screen_update));
+ screen.set_screen_update(m_lcd, FUNC(hd44780_device::screen_update));
screen.set_palette("palette");
PALETTE(config, "palette", FUNC(model1io2_device::lcd_palette), 3);
HD44780(config, m_lcd, 0);
m_lcd->set_lcd_size(2, 20);
- m_lcd->set_pixel_update_cb(FUNC(model1io2_device::lcd_pixel_update), this);
+ m_lcd->set_pixel_update_cb(FUNC(model1io2_device::lcd_pixel_update));
}
diff --git a/src/mame/machine/mpu4.cpp b/src/mame/machine/mpu4.cpp
index 540951a7193..25ecc5d8c4e 100644
--- a/src/mame/machine/mpu4.cpp
+++ b/src/mame/machine/mpu4.cpp
@@ -2127,22 +2127,22 @@ READ8_MEMBER(mpu4_state::mpu4_ym2413_r)
void mpu4_state::mpu4_install_mod4yam_space(address_space &space)
{
- space.install_read_handler(0x0880, 0x0882, read8_delegate(FUNC(mpu4_state::mpu4_ym2413_r),this));
- space.install_write_handler(0x0880, 0x0881, write8_delegate(FUNC(mpu4_state::mpu4_ym2413_w),this));
+ space.install_read_handler(0x0880, 0x0882, read8_delegate(*this, FUNC(mpu4_state::mpu4_ym2413_r)));
+ space.install_write_handler(0x0880, 0x0881, write8_delegate(*this, FUNC(mpu4_state::mpu4_ym2413_w)));
}
void mpu4_state::mpu4_install_mod4oki_space(address_space &space)
{
- pia6821_device *pia_ic4ss = subdevice<pia6821_device>("pia_ic4ss");
+ pia6821_device *const pia_ic4ss = subdevice<pia6821_device>("pia_ic4ss");
- space.install_readwrite_handler(0x0880, 0x0883, read8sm_delegate(FUNC(pia6821_device::read), pia_ic4ss), write8sm_delegate(FUNC(pia6821_device::write), pia_ic4ss));
- space.install_read_handler(0x08c0, 0x08c7, read8sm_delegate(FUNC(ptm6840_device::read), (ptm6840_device*)m_ptm_ic3ss));
- space.install_write_handler(0x08c0, 0x08c7, write8_delegate(FUNC(mpu4_state::ic3ss_w),this));
+ space.install_readwrite_handler(0x0880, 0x0883, read8sm_delegate(*pia_ic4ss, FUNC(pia6821_device::read)), write8sm_delegate(*pia_ic4ss, FUNC(pia6821_device::write)));
+ space.install_read_handler(0x08c0, 0x08c7, read8sm_delegate(*m_ptm_ic3ss, FUNC(ptm6840_device::read)));
+ space.install_write_handler(0x08c0, 0x08c7, write8_delegate(*this, FUNC(mpu4_state::ic3ss_w)));
}
void mpu4_state::mpu4_install_mod4bwb_space(address_space &space)
{
- space.install_readwrite_handler(0x0810, 0x0810, read8_delegate(FUNC(mpu4_state::bwb_characteriser_r),this),write8_delegate(FUNC(mpu4_state::bwb_characteriser_w),this));
+ space.install_readwrite_handler(0x0810, 0x0810, read8_delegate(*this, FUNC(mpu4_state::bwb_characteriser_r)), write8_delegate(*this, FUNC(mpu4_state::bwb_characteriser_w)));
mpu4_install_mod4oki_space(space);
}
@@ -2518,8 +2518,8 @@ void mpu4_state::init_m4default_big()
else
{
m_bwb_bank = 1;
- space.install_write_handler(0x0858, 0x0858, write8_delegate(FUNC(mpu4_state::bankswitch_w),this));
- space.install_write_handler(0x0878, 0x0878, write8_delegate(FUNC(mpu4_state::bankset_w),this));
+ space.install_write_handler(0x0858, 0x0858, write8_delegate(*this, FUNC(mpu4_state::bankswitch_w)));
+ space.install_write_handler(0x0878, 0x0878, write8_delegate(*this, FUNC(mpu4_state::bankset_w)));
uint8_t *rom = memregion("maincpu")->base();
m_numbanks = size / 0x10000;
@@ -2552,8 +2552,8 @@ void mpu4_state::init_m_frkstn()
{
address_space &space = m_maincpu->space(AS_PROGRAM);
init_m4default_big();
- space.install_read_handler(0x0880, 0x0880, read8_delegate(FUNC(mpu4_state::crystal_sound_r),this));
- space.install_write_handler(0x0881, 0x0881, write8_delegate(FUNC(mpu4_state::crystal_sound_w),this));
+ space.install_read_handler(0x0880, 0x0880, read8_delegate(*this, FUNC(mpu4_state::crystal_sound_r)));
+ space.install_write_handler(0x0881, 0x0881, write8_delegate(*this, FUNC(mpu4_state::crystal_sound_w)));
}
// thanks to Project Amber for descramble information
diff --git a/src/mame/machine/msx_systemflags.cpp b/src/mame/machine/msx_systemflags.cpp
index d76b82447eb..29dd1cc3c87 100644
--- a/src/mame/machine/msx_systemflags.cpp
+++ b/src/mame/machine/msx_systemflags.cpp
@@ -24,8 +24,8 @@ void msx_systemflags_device::device_start()
// Install IO read/write handlers
address_space &space = m_maincpu->space(AS_IO);
- space.install_write_handler(0xf4, 0xf4, write8_delegate(FUNC(msx_systemflags_device::write), this));
- space.install_read_handler(0xf4, 0xf4, read8_delegate(FUNC(msx_systemflags_device::read), this));
+ space.install_write_handler(0xf4, 0xf4, write8_delegate(*this, FUNC(msx_systemflags_device::write)));
+ space.install_read_handler(0xf4, 0xf4, read8_delegate(*this, FUNC(msx_systemflags_device::read)));
}
diff --git a/src/mame/machine/mtx.cpp b/src/mame/machine/mtx.cpp
index f4b96943f23..93457dc85f2 100644
--- a/src/mame/machine/mtx.cpp
+++ b/src/mame/machine/mtx.cpp
@@ -130,7 +130,7 @@ void mtx_state::bankswitch(uint8_t data)
{
/* rom based memory map */
program.install_rom(0x0000, 0x1fff, memregion("user1")->base());
- program.install_write_handler(0x0000, 0x1fff, write8_delegate(FUNC(mtx_state::mtx_subpage_w), this));
+ program.install_write_handler(0x0000, 0x1fff, write8_delegate(*this, FUNC(mtx_state::mtx_subpage_w)));
program.install_read_bank(0x2000, 0x3fff, "rommap_bank1");
program.unmap_write(0x2000, 0x3fff);
program.install_readwrite_bank(0x4000, 0x7fff, "rommap_bank2");
diff --git a/src/mame/machine/namcos1.cpp b/src/mame/machine/namcos1.cpp
index 02dc8fedb50..67d79665f30 100644
--- a/src/mame/machine/namcos1.cpp
+++ b/src/mame/machine/namcos1.cpp
@@ -610,7 +610,7 @@ void namcos1_state::driver_init()
}
// kludge! see notes
- m_mcu->space(AS_PROGRAM).install_write_handler(0xc000, 0xc000, write8smo_delegate(FUNC(namcos1_state::mcu_patch_w), this));
+ m_mcu->space(AS_PROGRAM).install_write_handler(0xc000, 0xc000, write8smo_delegate(*this, FUNC(namcos1_state::mcu_patch_w)));
// these are overridden as needed in the specific DRIVER_INIT_MEMBERs
m_key_id = 0;
@@ -625,16 +625,16 @@ void namcos1_state::driver_init()
void namcos1_state::key_type_1_init(int key_id)
{
m_c117->space(AS_PROGRAM).install_readwrite_handler(0x2f8000, 0x2f9fff,
- read8sm_delegate(FUNC(namcos1_state::key_type1_r),this),
- write8sm_delegate(FUNC(namcos1_state::key_type1_w),this));
+ read8sm_delegate(*this, FUNC(namcos1_state::key_type1_r)),
+ write8sm_delegate(*this, FUNC(namcos1_state::key_type1_w)));
m_key_id = key_id;
}
void namcos1_state::key_type_2_init(int key_id)
{
m_c117->space(AS_PROGRAM).install_readwrite_handler(0x2f8000, 0x2f9fff,
- read8sm_delegate(FUNC(namcos1_state::key_type2_r),this),
- write8sm_delegate(FUNC(namcos1_state::key_type2_w),this));
+ read8sm_delegate(*this, FUNC(namcos1_state::key_type2_r)),
+ write8sm_delegate(*this, FUNC(namcos1_state::key_type2_w)));
m_key_id = key_id;
save_item(NAME(m_key_quotient));
save_item(NAME(m_key_reminder));
@@ -644,8 +644,8 @@ void namcos1_state::key_type_2_init(int key_id)
void namcos1_state::key_type_3_init(int key_id, int reg, int rng, int swap4_arg, int swap4, int bottom4, int top4)
{
m_c117->space(AS_PROGRAM).install_readwrite_handler(0x2f8000, 0x2f9fff,
- read8sm_delegate(FUNC(namcos1_state::key_type3_r),this),
- write8sm_delegate(FUNC(namcos1_state::key_type3_w),this));
+ read8sm_delegate(*this, FUNC(namcos1_state::key_type3_r)),
+ write8sm_delegate(*this, FUNC(namcos1_state::key_type3_w)));
m_key_id = key_id;
m_key_reg = reg;
m_key_rng = rng;
@@ -798,7 +798,7 @@ void namcos1_state::init_tankfrc4()
m_stored_input[0] = 0;
m_stored_input[1] = 0;
- m_mcu->space(AS_PROGRAM).install_read_handler(0x1400, 0x1401, read8sm_delegate(FUNC(namcos1_state::faceoff_inputs_r), this));
+ m_mcu->space(AS_PROGRAM).install_read_handler(0x1400, 0x1401, read8sm_delegate(*this, FUNC(namcos1_state::faceoff_inputs_r)));
save_item(NAME(m_input_count));
save_item(NAME(m_stored_input));
}
@@ -878,7 +878,7 @@ void namcos1_state::init_quester()
{
m_strobe = 0;
driver_init();
- m_mcu->space(AS_PROGRAM).install_read_handler(0x1400, 0x1401, read8sm_delegate(FUNC(namcos1_state::quester_paddle_r), this));
+ m_mcu->space(AS_PROGRAM).install_read_handler(0x1400, 0x1401, read8sm_delegate(*this, FUNC(namcos1_state::quester_paddle_r)));
save_item(NAME(m_strobe));
}
@@ -964,7 +964,7 @@ void namcos1_state::init_berabohm()
m_strobe = 0;
m_strobe_count = 0;
driver_init();
- m_mcu->space(AS_PROGRAM).install_read_handler(0x1400, 0x1401, read8sm_delegate(FUNC(namcos1_state::berabohm_buttons_r), this));
+ m_mcu->space(AS_PROGRAM).install_read_handler(0x1400, 0x1401, read8sm_delegate(*this, FUNC(namcos1_state::berabohm_buttons_r)));
save_item(NAME(m_input_count));
save_item(NAME(m_strobe));
save_item(NAME(m_strobe_count));
@@ -1043,7 +1043,7 @@ void namcos1_state::init_faceoff()
m_stored_input[1] = 0;
driver_init();
- m_mcu->space(AS_PROGRAM).install_read_handler(0x1400, 0x1401, read8sm_delegate(FUNC(namcos1_state::faceoff_inputs_r), this));
+ m_mcu->space(AS_PROGRAM).install_read_handler(0x1400, 0x1401, read8sm_delegate(*this, FUNC(namcos1_state::faceoff_inputs_r)));
save_item(NAME(m_input_count));
save_item(NAME(m_stored_input));
}
diff --git a/src/mame/machine/naomi.cpp b/src/mame/machine/naomi.cpp
index 4d1f2ddfd6a..78a7f61ca21 100644
--- a/src/mame/machine/naomi.cpp
+++ b/src/mame/machine/naomi.cpp
@@ -210,8 +210,8 @@ void naomi_state::set_drc_options()
void naomi_state::init_naomi()
{
- //m_maincpu->space(AS_PROGRAM).install_read_handler(0xc2ad238, 0xc2ad23f, read64_delegate(FUNC(naomi_state::naomi_biose_idle_skip_r),this); // rev e bios
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xc2b0600, 0xc2b0607, read64_delegate(FUNC(naomi_state::naomi_biosh_idle_skip_r), this)); // rev h bios
+ //m_maincpu->space(AS_PROGRAM).install_read_handler(0xc2ad238, 0xc2ad23f, read64_delegate(*this, FUNC(naomi_state::naomi_biose_idle_skip_r)); // rev e bios
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xc2b0600, 0xc2b0607, read64_delegate(*this, FUNC(naomi_state::naomi_biosh_idle_skip_r))); // rev h bios
set_drc_options();
create_pic_from_retdat();
@@ -219,7 +219,7 @@ void naomi_state::init_naomi()
void naomi2_state::init_naomi2()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xc2b0600, 0xc2b0607, read64_delegate(FUNC(naomi_state::naomi2_biose_idle_skip_r),this)); // rev e bios
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xc2b0600, 0xc2b0607, read64_delegate(*this, FUNC(naomi_state::naomi2_biose_idle_skip_r))); // rev e bios
set_drc_options();
create_pic_from_retdat();
@@ -298,8 +298,8 @@ CUSTOM_INPUT_MEMBER(naomi_state::naomi_kb_r)
void naomi_state::init_naomi_mp()
{
- //m_maincpu->space(AS_PROGRAM).install_read_handler(0xc2ad238, 0xc2ad23f, read64_delegate(FUNC(naomi_state::naomi_biose_idle_skip_r),this); // rev e bios
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xc2b0600, 0xc2b0607, read64_delegate(FUNC(naomi_state::naomi_biosh_idle_skip_r),this)); // rev h bios
+ //m_maincpu->space(AS_PROGRAM).install_read_handler(0xc2ad238, 0xc2ad23f, read64_delegate(*this, FUNC(naomi_state::naomi_biose_idle_skip_r)); // rev e bios
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xc2b0600, 0xc2b0607, read64_delegate(*this, FUNC(naomi_state::naomi_biosh_idle_skip_r))); // rev h bios
m_mp_mux = 0;
set_drc_options();
@@ -308,8 +308,8 @@ void naomi_state::init_naomi_mp()
void naomi_state::init_naomigd()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xc2ad238, 0xc2ad23f, read64_delegate(FUNC(naomi_state::naomi_biose_idle_skip_r),this)); // rev e bios
- //m_maincpu->space(AS_PROGRAM).install_read_handler(0xc2b0600, 0xc2b0607, read64_delegate(FUNC(naomi_state::naomi_biosh_idle_skip_r),this)); // rev h bios
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xc2ad238, 0xc2ad23f, read64_delegate(*this, FUNC(naomi_state::naomi_biose_idle_skip_r))); // rev e bios
+ //m_maincpu->space(AS_PROGRAM).install_read_handler(0xc2b0600, 0xc2b0607, read64_delegate(*this, FUNC(naomi_state::naomi_biosh_idle_skip_r))); // rev h bios
set_drc_options();
create_pic_from_retdat();
@@ -317,8 +317,8 @@ void naomi_state::init_naomigd()
void naomi_state::init_naomigd_mp()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xc2ad238, 0xc2ad23f, read64_delegate(FUNC(naomi_state::naomi_biose_idle_skip_r),this)); // rev e bios
- //m_maincpu->space(AS_PROGRAM).install_read_handler(0xc2b0600, 0xc2b0607, read64_delegate(FUNC(naomi_state::naomi_biosh_idle_skip_r),this)); // rev h bios
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xc2ad238, 0xc2ad23f, read64_delegate(*this, FUNC(naomi_state::naomi_biose_idle_skip_r))); // rev e bios
+ //m_maincpu->space(AS_PROGRAM).install_read_handler(0xc2b0600, 0xc2b0607, read64_delegate(*this, FUNC(naomi_state::naomi_biosh_idle_skip_r))); // rev h bios
m_mp_mux = 0;
set_drc_options();
@@ -336,7 +336,7 @@ READ64_MEMBER(naomi_state::naomigd_ggxxsla_idle_skip_r )
void naomi_state::init_ggxxsla()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xc1aae18, 0xc1aae1f, read64_delegate(FUNC(naomi_state::naomigd_ggxxsla_idle_skip_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xc1aae18, 0xc1aae1f, read64_delegate(*this, FUNC(naomi_state::naomigd_ggxxsla_idle_skip_r)));
init_naomigd();
}
@@ -351,7 +351,7 @@ READ64_MEMBER(naomi_state::naomigd_ggxx_idle_skip_r )
void naomi_state::init_ggxx()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xc1837b8, 0xc1837bf, read64_delegate(FUNC(naomi_state::naomigd_ggxx_idle_skip_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xc1837b8, 0xc1837bf, read64_delegate(*this, FUNC(naomi_state::naomigd_ggxx_idle_skip_r)));
init_naomigd();
}
@@ -367,7 +367,7 @@ READ64_MEMBER(naomi_state::naomigd_ggxxrl_idle_skip_r )
void naomi_state::init_ggxxrl()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xc18d6c8, 0xc18d6cf, read64_delegate(FUNC(naomi_state::naomigd_ggxxrl_idle_skip_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xc18d6c8, 0xc18d6cf, read64_delegate(*this, FUNC(naomi_state::naomigd_ggxxrl_idle_skip_r)));
init_naomigd();
}
@@ -382,7 +382,7 @@ READ64_MEMBER(naomi_state::naomigd_sfz3ugd_idle_skip_r )
void naomi_state::init_sfz3ugd()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xc5dc900, 0xc5dc907, read64_delegate(FUNC(naomi_state::naomigd_sfz3ugd_idle_skip_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xc5dc900, 0xc5dc907, read64_delegate(*this, FUNC(naomi_state::naomigd_sfz3ugd_idle_skip_r)));
init_naomigd();
}
@@ -400,7 +400,7 @@ READ64_MEMBER(naomi_state::hotd2_idle_skip_r )
void naomi_state::init_hotd2()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xca25fb8, 0xca25fbf, read64_delegate(FUNC(naomi_state::hotd2_idle_skip_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xca25fb8, 0xca25fbf, read64_delegate(*this, FUNC(naomi_state::hotd2_idle_skip_r)));
set_drc_options();
}
diff --git a/src/mame/machine/nes.cpp b/src/mame/machine/nes.cpp
index d46c0ed286d..56db41cf829 100644
--- a/src/mame/machine/nes.cpp
+++ b/src/mame/machine/nes.cpp
@@ -55,21 +55,21 @@ void nes_state::machine_start()
if (m_cartslot && m_cartslot->m_cart)
{
// Set up memory handlers
- space.install_read_handler(0x4100, 0x5fff, read8sm_delegate(FUNC(nes_cart_slot_device::read_l), (nes_cart_slot_device *)m_cartslot));
- space.install_write_handler(0x4100, 0x5fff, write8sm_delegate(FUNC(nes_cart_slot_device::write_l), (nes_cart_slot_device *)m_cartslot));
- space.install_read_handler(0x6000, 0x7fff, read8sm_delegate(FUNC(nes_cart_slot_device::read_m), (nes_cart_slot_device *)m_cartslot));
- space.install_write_handler(0x6000, 0x7fff, write8sm_delegate(FUNC(nes_cart_slot_device::write_m), (nes_cart_slot_device *)m_cartslot));
+ space.install_read_handler(0x4100, 0x5fff, read8sm_delegate(*m_cartslot, FUNC(nes_cart_slot_device::read_l)));
+ space.install_write_handler(0x4100, 0x5fff, write8sm_delegate(*m_cartslot, FUNC(nes_cart_slot_device::write_l)));
+ space.install_read_handler(0x6000, 0x7fff, read8sm_delegate(*m_cartslot, FUNC(nes_cart_slot_device::read_m)));
+ space.install_write_handler(0x6000, 0x7fff, write8sm_delegate(*m_cartslot, FUNC(nes_cart_slot_device::write_m)));
space.install_read_bank(0x8000, 0x9fff, "prg0");
space.install_read_bank(0xa000, 0xbfff, "prg1");
space.install_read_bank(0xc000, 0xdfff, "prg2");
space.install_read_bank(0xe000, 0xffff, "prg3");
- space.install_write_handler(0x8000, 0xffff, write8sm_delegate(FUNC(nes_cart_slot_device::write_h), (nes_cart_slot_device *)m_cartslot));
+ space.install_write_handler(0x8000, 0xffff, write8sm_delegate(*m_cartslot, FUNC(nes_cart_slot_device::write_h)));
- m_ppu->space(AS_PROGRAM).install_readwrite_handler(0, 0x1fff, read8sm_delegate(FUNC(device_nes_cart_interface::chr_r),m_cartslot->m_cart), write8sm_delegate(FUNC(device_nes_cart_interface::chr_w),m_cartslot->m_cart));
- m_ppu->space(AS_PROGRAM).install_readwrite_handler(0x2000, 0x3eff, read8sm_delegate(FUNC(device_nes_cart_interface::nt_r),m_cartslot->m_cart), write8sm_delegate(FUNC(device_nes_cart_interface::nt_w),m_cartslot->m_cart));
- m_ppu->set_scanline_callback(ppu2c0x_device::scanline_delegate(FUNC(device_nes_cart_interface::scanline_irq),m_cartslot->m_cart));
- m_ppu->set_hblank_callback(ppu2c0x_device::hblank_delegate(FUNC(device_nes_cart_interface::hblank_irq),m_cartslot->m_cart));
- m_ppu->set_latch(ppu2c0x_device::latch_delegate(FUNC(device_nes_cart_interface::ppu_latch),m_cartslot->m_cart));
+ m_ppu->space(AS_PROGRAM).install_readwrite_handler(0, 0x1fff, read8sm_delegate(*m_cartslot->m_cart, FUNC(device_nes_cart_interface::chr_r)), write8sm_delegate(*m_cartslot->m_cart, FUNC(device_nes_cart_interface::chr_w)));
+ m_ppu->space(AS_PROGRAM).install_readwrite_handler(0x2000, 0x3eff, read8sm_delegate(*m_cartslot->m_cart, FUNC(device_nes_cart_interface::nt_r)), write8sm_delegate(*m_cartslot->m_cart, FUNC(device_nes_cart_interface::nt_w)));
+ m_ppu->set_scanline_callback(*m_cartslot->m_cart, FUNC(device_nes_cart_interface::scanline_irq));
+ m_ppu->set_hblank_callback(*m_cartslot->m_cart, FUNC(device_nes_cart_interface::hblank_irq));
+ m_ppu->set_latch(*m_cartslot->m_cart, FUNC(device_nes_cart_interface::ppu_latch));
// install additional handlers (read_h, read_ex, write_ex)
if (m_cartslot->get_pcb_id() == STD_EXROM || m_cartslot->get_pcb_id() == STD_NROM368 || m_cartslot->get_pcb_id() == STD_DISKSYS
@@ -82,20 +82,20 @@ void nes_state::machine_start()
|| m_cartslot->get_pcb_id() == BMC_70IN1 || m_cartslot->get_pcb_id() == BMC_800IN1)
{
logerror("read_h installed!\n");
- space.install_read_handler(0x8000, 0xffff, read8sm_delegate(FUNC(nes_cart_slot_device::read_h), (nes_cart_slot_device *)m_cartslot));
+ space.install_read_handler(0x8000, 0xffff, read8sm_delegate(*m_cartslot, FUNC(nes_cart_slot_device::read_h)));
}
if (m_cartslot->get_pcb_id() == BTL_SMB2JB || m_cartslot->get_pcb_id() == UNL_AC08 || m_cartslot->get_pcb_id() == UNL_SMB2J || m_cartslot->get_pcb_id() == BTL_09034A)
{
logerror("write_ex installed!\n");
- space.install_write_handler(0x4020, 0x40ff, write8sm_delegate(FUNC(nes_cart_slot_device::write_ex), (nes_cart_slot_device *)m_cartslot));
+ space.install_write_handler(0x4020, 0x40ff, write8sm_delegate(*m_cartslot, FUNC(nes_cart_slot_device::write_ex)));
}
if (m_cartslot->get_pcb_id() == KAISER_KS7017 || m_cartslot->get_pcb_id() == UNL_603_5052 || m_cartslot->get_pcb_id() == STD_DISKSYS)
{
logerror("write_ex & read_ex installed!\n");
- space.install_read_handler(0x4020, 0x40ff, read8sm_delegate(FUNC(nes_cart_slot_device::read_ex), (nes_cart_slot_device *)m_cartslot));
- space.install_write_handler(0x4020, 0x40ff, write8sm_delegate(FUNC(nes_cart_slot_device::write_ex), (nes_cart_slot_device *)m_cartslot));
+ space.install_read_handler(0x4020, 0x40ff, read8sm_delegate(*m_cartslot, FUNC(nes_cart_slot_device::read_ex)));
+ space.install_write_handler(0x4020, 0x40ff, write8sm_delegate(*m_cartslot, FUNC(nes_cart_slot_device::write_ex)));
}
m_cartslot->pcb_start(m_ciram.get());
@@ -186,7 +186,7 @@ void nes_state::init_famicom()
{
// setup alt input handlers for additional FC input devices
address_space &space = m_maincpu->space(AS_PROGRAM);
- space.install_read_handler(0x4016, 0x4016, read8_delegate(FUNC(nes_state::fc_in0_r), this));
- space.install_write_handler(0x4016, 0x4016, write8_delegate(FUNC(nes_state::fc_in0_w), this));
- space.install_read_handler(0x4017, 0x4017, read8_delegate(FUNC(nes_state::fc_in1_r), this));
+ space.install_read_handler(0x4016, 0x4016, read8_delegate(*this, FUNC(nes_state::fc_in0_r)));
+ space.install_write_handler(0x4016, 0x4016, write8_delegate(*this, FUNC(nes_state::fc_in0_w)));
+ space.install_read_handler(0x4017, 0x4017, read8_delegate(*this, FUNC(nes_state::fc_in1_r)));
}
diff --git a/src/mame/machine/ondra.cpp b/src/mame/machine/ondra.cpp
index 85bea88550e..da540a00c30 100644
--- a/src/mame/machine/ondra.cpp
+++ b/src/mame/machine/ondra.cpp
@@ -49,7 +49,7 @@ void ondra_state::ondra_update_banks()
m_bank3->set_base(m_ram->pointer() + 0xe000);
} else {
space.unmap_write(0xe000, 0xffff);
- space.install_read_handler (0xe000, 0xffff, read8_delegate(FUNC(ondra_state::ondra_keyboard_r),this));
+ space.install_read_handler (0xe000, 0xffff, read8_delegate(*this, FUNC(ondra_state::ondra_keyboard_r)));
}
}
diff --git a/src/mame/machine/orion.cpp b/src/mame/machine/orion.cpp
index a61d6433cd0..b0ac5e4fa54 100644
--- a/src/mame/machine/orion.cpp
+++ b/src/mame/machine/orion.cpp
@@ -267,19 +267,19 @@ void orion_state::orionz80_switch_bank()
if ((m_orionz80_dispatcher & 0x20) == 0)
{
- space.install_write_handler(0xf400, 0xf4ff, write8_delegate(FUNC(orion_state::orion128_system_w),this));
- space.install_write_handler(0xf500, 0xf5ff, write8_delegate(FUNC(orion_state::orion128_romdisk_w),this));
- space.install_write_handler(0xf700, 0xf7ff, write8_delegate(FUNC(orion_state::orionz80_floppy_rtc_w),this));
- space.install_read_handler(0xf400, 0xf4ff, read8_delegate(FUNC(orion_state::orion128_system_r),this));
- space.install_read_handler(0xf500, 0xf5ff, read8_delegate(FUNC(orion_state::orion128_romdisk_r),this));
- space.install_read_handler(0xf700, 0xf7ff, read8_delegate(FUNC(orion_state::orionz80_floppy_rtc_r),this));
-
- space.install_write_handler(0xf800, 0xf8ff, write8_delegate(FUNC(orion_state::orion128_video_mode_w),this));
- space.install_write_handler(0xf900, 0xf9ff, write8_delegate(FUNC(orion_state::orionz80_memory_page_w),this));
- space.install_write_handler(0xfa00, 0xfaff, write8_delegate(FUNC(orion_state::orion128_video_page_w),this));
- space.install_write_handler(0xfb00, 0xfbff, write8_delegate(FUNC(orion_state::orionz80_dispatcher_w),this));
+ space.install_write_handler(0xf400, 0xf4ff, write8_delegate(*this, FUNC(orion_state::orion128_system_w)));
+ space.install_write_handler(0xf500, 0xf5ff, write8_delegate(*this, FUNC(orion_state::orion128_romdisk_w)));
+ space.install_write_handler(0xf700, 0xf7ff, write8_delegate(*this, FUNC(orion_state::orionz80_floppy_rtc_w)));
+ space.install_read_handler(0xf400, 0xf4ff, read8_delegate(*this, FUNC(orion_state::orion128_system_r)));
+ space.install_read_handler(0xf500, 0xf5ff, read8_delegate(*this, FUNC(orion_state::orion128_romdisk_r)));
+ space.install_read_handler(0xf700, 0xf7ff, read8_delegate(*this, FUNC(orion_state::orionz80_floppy_rtc_r)));
+
+ space.install_write_handler(0xf800, 0xf8ff, write8_delegate(*this, FUNC(orion_state::orion128_video_mode_w)));
+ space.install_write_handler(0xf900, 0xf9ff, write8_delegate(*this, FUNC(orion_state::orionz80_memory_page_w)));
+ space.install_write_handler(0xfa00, 0xfaff, write8_delegate(*this, FUNC(orion_state::orion128_video_page_w)));
+ space.install_write_handler(0xfb00, 0xfbff, write8_delegate(*this, FUNC(orion_state::orionz80_dispatcher_w)));
space.unmap_write(0xfc00, 0xfeff);
- space.install_write_handler(0xff00, 0xffff, write8_delegate(FUNC(orion_state::orionz80_sound_w),this));
+ space.install_write_handler(0xff00, 0xffff, write8_delegate(*this, FUNC(orion_state::orionz80_sound_w)));
m_bank3->set_base(m_ram->pointer() + 0xf000);
m_bank5->set_base(m_region_maincpu->base() + 0xf800);
@@ -314,19 +314,19 @@ void orion_z80_state::machine_reset()
space.install_write_bank(0x4000, 0xefff, "bank2");
space.install_write_bank(0xf000, 0xf3ff, "bank3");
- space.install_write_handler(0xf400, 0xf4ff, write8_delegate(FUNC(orion_z80_state::orion128_system_w),this));
- space.install_write_handler(0xf500, 0xf5ff, write8_delegate(FUNC(orion_z80_state::orion128_romdisk_w),this));
- space.install_write_handler(0xf700, 0xf7ff, write8_delegate(FUNC(orion_z80_state::orionz80_floppy_rtc_w),this));
- space.install_read_handler(0xf400, 0xf4ff, read8_delegate(FUNC(orion_z80_state::orion128_system_r),this));
- space.install_read_handler(0xf500, 0xf5ff, read8_delegate(FUNC(orion_z80_state::orion128_romdisk_r),this));
- space.install_read_handler(0xf700, 0xf7ff, read8_delegate(FUNC(orion_z80_state::orionz80_floppy_rtc_r),this));
-
- space.install_write_handler(0xf800, 0xf8ff, write8_delegate(FUNC(orion_z80_state::orion128_video_mode_w),this));
- space.install_write_handler(0xf900, 0xf9ff, write8_delegate(FUNC(orion_z80_state::orionz80_memory_page_w),this));
- space.install_write_handler(0xfa00, 0xfaff, write8_delegate(FUNC(orion_z80_state::orion128_video_page_w),this));
- space.install_write_handler(0xfb00, 0xfbff, write8_delegate(FUNC(orion_z80_state::orionz80_dispatcher_w),this));
+ space.install_write_handler(0xf400, 0xf4ff, write8_delegate(*this, FUNC(orion_z80_state::orion128_system_w)));
+ space.install_write_handler(0xf500, 0xf5ff, write8_delegate(*this, FUNC(orion_z80_state::orion128_romdisk_w)));
+ space.install_write_handler(0xf700, 0xf7ff, write8_delegate(*this, FUNC(orion_z80_state::orionz80_floppy_rtc_w)));
+ space.install_read_handler(0xf400, 0xf4ff, read8_delegate(*this, FUNC(orion_z80_state::orion128_system_r)));
+ space.install_read_handler(0xf500, 0xf5ff, read8_delegate(*this, FUNC(orion_z80_state::orion128_romdisk_r)));
+ space.install_read_handler(0xf700, 0xf7ff, read8_delegate(*this, FUNC(orion_z80_state::orionz80_floppy_rtc_r)));
+
+ space.install_write_handler(0xf800, 0xf8ff, write8_delegate(*this, FUNC(orion_z80_state::orion128_video_mode_w)));
+ space.install_write_handler(0xf900, 0xf9ff, write8_delegate(*this, FUNC(orion_z80_state::orionz80_memory_page_w)));
+ space.install_write_handler(0xfa00, 0xfaff, write8_delegate(*this, FUNC(orion_z80_state::orion128_video_page_w)));
+ space.install_write_handler(0xfb00, 0xfbff, write8_delegate(*this, FUNC(orion_z80_state::orionz80_dispatcher_w)));
space.unmap_write(0xfc00, 0xfeff);
- space.install_write_handler(0xff00, 0xffff, write8_delegate(FUNC(orion_z80_state::orionz80_sound_w),this));
+ space.install_write_handler(0xff00, 0xffff, write8_delegate(*this, FUNC(orion_z80_state::orionz80_sound_w)));
m_bank1->set_base(m_region_maincpu->base() + 0xf800);
@@ -455,20 +455,20 @@ void orion_state::orionpro_bank_switch()
{
m_bank6->set_base(ram + 0x10000 * 0 + 0xf000);
- space.install_write_handler(0xf400, 0xf4ff, write8_delegate(FUNC(orion_state::orion128_system_w),this));
- space.install_write_handler(0xf500, 0xf5ff, write8_delegate(FUNC(orion_state::orion128_romdisk_w),this));
+ space.install_write_handler(0xf400, 0xf4ff, write8_delegate(*this, FUNC(orion_state::orion128_system_w)));
+ space.install_write_handler(0xf500, 0xf5ff, write8_delegate(*this, FUNC(orion_state::orion128_romdisk_w)));
space.unmap_write(0xf600, 0xf6ff);
- space.install_write_handler(0xf700, 0xf7ff, write8_delegate(FUNC(orion_state::orion128_floppy_w),this));
- space.install_read_handler(0xf400, 0xf4ff, read8_delegate(FUNC(orion_state::orion128_system_r),this));
- space.install_read_handler(0xf500, 0xf5ff, read8_delegate(FUNC(orion_state::orion128_romdisk_r),this));
+ space.install_write_handler(0xf700, 0xf7ff, write8_delegate(*this, FUNC(orion_state::orion128_floppy_w)));
+ space.install_read_handler(0xf400, 0xf4ff, read8_delegate(*this, FUNC(orion_state::orion128_system_r)));
+ space.install_read_handler(0xf500, 0xf5ff, read8_delegate(*this, FUNC(orion_state::orion128_romdisk_r)));
space.unmap_read(0xf600, 0xf6ff);
- space.install_read_handler(0xf700, 0xf7ff, read8_delegate(FUNC(orion_state::orion128_floppy_r),this));
+ space.install_read_handler(0xf700, 0xf7ff, read8_delegate(*this, FUNC(orion_state::orion128_floppy_r)));
- space.install_write_handler(0xf800, 0xf8ff, write8_delegate(FUNC(orion_state::orion128_video_mode_w),this));
- space.install_write_handler(0xf900, 0xf9ff, write8_delegate(FUNC(orion_state::orionpro_memory_page_w),this));
- space.install_write_handler(0xfa00, 0xfaff, write8_delegate(FUNC(orion_state::orion128_video_page_w),this));
+ space.install_write_handler(0xf800, 0xf8ff, write8_delegate(*this, FUNC(orion_state::orion128_video_mode_w)));
+ space.install_write_handler(0xf900, 0xf9ff, write8_delegate(*this, FUNC(orion_state::orionpro_memory_page_w)));
+ space.install_write_handler(0xfa00, 0xfaff, write8_delegate(*this, FUNC(orion_state::orion128_video_page_w)));
space.unmap_write(0xfb00, 0xfeff);
- space.install_write_handler(0xff00, 0xffff, write8_delegate(FUNC(orion_state::orionz80_sound_w),this));
+ space.install_write_handler(0xff00, 0xffff, write8_delegate(*this, FUNC(orion_state::orionz80_sound_w)));
m_bank8->set_base(ram + 0x10000 * 0 + 0xf800);
diff --git a/src/mame/machine/osborne1.cpp b/src/mame/machine/osborne1.cpp
index 0eeb5442c31..5fb5f7e669d 100644
--- a/src/mame/machine/osborne1.cpp
+++ b/src/mame/machine/osborne1.cpp
@@ -266,7 +266,7 @@ void osborne1_state::init_osborne1()
m_video_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(osborne1_state::video_callback), this));
m_tilemap = &machine().tilemap().create(
*m_gfxdecode,
- tilemap_get_info_delegate(FUNC(osborne1_state::get_tile_info), this), TILEMAP_SCAN_ROWS,
+ tilemap_get_info_delegate(*this, FUNC(osborne1_state::get_tile_info)), TILEMAP_SCAN_ROWS,
8, 10, 128, 32);
m_acia_rxc_txc_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(osborne1_state::acia_rxc_txc_callback), this));
diff --git a/src/mame/machine/partner.cpp b/src/mame/machine/partner.cpp
index 0b1397b4295..a00be2dd7be 100644
--- a/src/mame/machine/partner.cpp
+++ b/src/mame/machine/partner.cpp
@@ -100,8 +100,8 @@ void partner_state::partner_iomap_bank(uint8_t *rom)
switch(m_win_mem_page) {
case 2 :
// FDD
- space.install_write_handler(0xdc00, 0xddff, write8sm_delegate(FUNC(partner_state::partner_floppy_w),this));
- space.install_read_handler (0xdc00, 0xddff, read8sm_delegate(FUNC(partner_state::partner_floppy_r),this));
+ space.install_write_handler(0xdc00, 0xddff, write8sm_delegate(*this, FUNC(partner_state::partner_floppy_w)));
+ space.install_read_handler (0xdc00, 0xddff, read8sm_delegate(*this, FUNC(partner_state::partner_floppy_r)));
break;
case 4 :
// Timer
diff --git a/src/mame/machine/pce.cpp b/src/mame/machine/pce.cpp
index 5550ab5d2e7..aa9ba6112d5 100644
--- a/src/mame/machine/pce.cpp
+++ b/src/mame/machine/pce.cpp
@@ -120,13 +120,13 @@ MACHINE_RESET_MEMBER(pce_state,mess_pce)
if (m_cartslot->get_type() == PCE_CDSYS3J)
{
m_sys3_card = 1;
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x080000, 0x087fff, read8_delegate(FUNC(pce_state::pce_cd_acard_wram_r),this),write8_delegate(FUNC(pce_state::pce_cd_acard_wram_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x080000, 0x087fff, read8_delegate(*this, FUNC(pce_state::pce_cd_acard_wram_r)), write8_delegate(*this, FUNC(pce_state::pce_cd_acard_wram_w)));
}
if (m_cartslot->get_type() == PCE_CDSYS3U)
{
m_sys3_card = 3;
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x080000, 0x087fff, read8_delegate(FUNC(pce_state::pce_cd_acard_wram_r),this),write8_delegate(FUNC(pce_state::pce_cd_acard_wram_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x080000, 0x087fff, read8_delegate(*this, FUNC(pce_state::pce_cd_acard_wram_r)), write8_delegate(*this, FUNC(pce_state::pce_cd_acard_wram_w)));
}
}
diff --git a/src/mame/machine/pecom.cpp b/src/mame/machine/pecom.cpp
index da12c8d0932..b3cb049347a 100644
--- a/src/mame/machine/pecom.cpp
+++ b/src/mame/machine/pecom.cpp
@@ -73,10 +73,10 @@ WRITE8_MEMBER(pecom_state::pecom_bank_w)
if (data==2)
{
- space2.install_read_handler (0xf000, 0xf7ff, read8_delegate(FUNC(pecom_state::pecom_cdp1869_charram_r),this));
- space2.install_write_handler(0xf000, 0xf7ff, write8_delegate(FUNC(pecom_state::pecom_cdp1869_charram_w),this));
- space2.install_read_handler (0xf800, 0xffff, read8_delegate(FUNC(pecom_state::pecom_cdp1869_pageram_r),this));
- space2.install_write_handler(0xf800, 0xffff, write8_delegate(FUNC(pecom_state::pecom_cdp1869_pageram_w),this));
+ space2.install_read_handler (0xf000, 0xf7ff, read8_delegate(*this, FUNC(pecom_state::pecom_cdp1869_charram_r)));
+ space2.install_write_handler(0xf000, 0xf7ff, write8_delegate(*this, FUNC(pecom_state::pecom_cdp1869_charram_w)));
+ space2.install_read_handler (0xf800, 0xffff, read8_delegate(*this, FUNC(pecom_state::pecom_cdp1869_pageram_r)));
+ space2.install_write_handler(0xf800, 0xffff, write8_delegate(*this, FUNC(pecom_state::pecom_cdp1869_pageram_w)));
}
else
{
diff --git a/src/mame/machine/pgmprot_igs025_igs012.cpp b/src/mame/machine/pgmprot_igs025_igs012.cpp
index 6a981f00338..17a883c4349 100644
--- a/src/mame/machine/pgmprot_igs025_igs012.cpp
+++ b/src/mame/machine/pgmprot_igs025_igs012.cpp
@@ -107,7 +107,7 @@ static const u8 drgw2_source_data[0x08][0xec] =
void pgm_012_025_state::drgw2_common_init()
{
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xd80000, 0xd80003, read16_delegate(FUNC(igs025_device::killbld_igs025_prot_r), (igs025_device*)m_igs025), write16_delegate(FUNC(igs025_device::drgw2_d80000_protection_w), (igs025_device*)m_igs025));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xd80000, 0xd80003, read16_delegate(*m_igs025, FUNC(igs025_device::killbld_igs025_prot_r)), write16_delegate(*m_igs025, FUNC(igs025_device::drgw2_d80000_protection_w)));
m_igs025->m_kb_source_data = drgw2_source_data;
diff --git a/src/mame/machine/pgmprot_igs025_igs022.cpp b/src/mame/machine/pgmprot_igs025_igs022.cpp
index 8d0cb6076fc..4cabfead655 100644
--- a/src/mame/machine/pgmprot_igs025_igs022.cpp
+++ b/src/mame/machine/pgmprot_igs025_igs022.cpp
@@ -347,7 +347,7 @@ void pgm_022_025_state::init_killbld()
pgm_killbld_decrypt();
// install and configure protection device(s)
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xd40000, 0xd40003, read16_delegate(FUNC(igs025_device::killbld_igs025_prot_r), (igs025_device*)m_igs025), write16_delegate(FUNC(igs025_device::killbld_igs025_prot_w), (igs025_device*)m_igs025));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xd40000, 0xd40003, read16_delegate(*m_igs025, FUNC(igs025_device::killbld_igs025_prot_r)), write16_delegate(*m_igs025, FUNC(igs025_device::killbld_igs025_prot_w)));
m_igs025->m_kb_source_data = killbld_source_data;
}
@@ -357,7 +357,7 @@ void pgm_022_025_state::init_drgw3()
pgm_dw3_decrypt();
// install and configure protection device(s)
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xda5610, 0xda5613, read16_delegate(FUNC(igs025_device::killbld_igs025_prot_r), (igs025_device*)m_igs025), write16_delegate(FUNC(igs025_device::killbld_igs025_prot_w), (igs025_device*)m_igs025));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xda5610, 0xda5613, read16_delegate(*m_igs025, FUNC(igs025_device::killbld_igs025_prot_r)), write16_delegate(*m_igs025, FUNC(igs025_device::killbld_igs025_prot_w)));
m_igs025->m_kb_source_data = dw3_source_data;
}
@@ -377,7 +377,7 @@ void pgm_022_025_state::pgm_022_025(machine_config &config)
m_maincpu->set_addrmap(AS_PROGRAM, &pgm_022_025_state::killbld_mem);
IGS025(config, m_igs025, 0);
- m_igs025->set_external_cb(FUNC(pgm_022_025_state::igs025_to_igs022_callback), this);
+ m_igs025->set_external_cb(FUNC(pgm_022_025_state::igs025_to_igs022_callback));
IGS022(config, m_igs022, 0);
diff --git a/src/mame/machine/pgmprot_igs025_igs028.cpp b/src/mame/machine/pgmprot_igs025_igs028.cpp
index ed122330a54..81c472d234d 100644
--- a/src/mame/machine/pgmprot_igs025_igs028.cpp
+++ b/src/mame/machine/pgmprot_igs025_igs028.cpp
@@ -166,7 +166,7 @@ void pgm_028_025_state::init_olds()
{
pgm_basic_init();
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xdcb400, 0xdcb403, read16_delegate(FUNC(igs025_device::killbld_igs025_prot_r), (igs025_device*)m_igs025), write16_delegate(FUNC(igs025_device::olds_w), (igs025_device*)m_igs025));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xdcb400, 0xdcb403, read16_delegate(*m_igs025, FUNC(igs025_device::killbld_igs025_prot_r)), write16_delegate(*m_igs025, FUNC(igs025_device::olds_w)));
m_igs028->m_sharedprotram = m_sharedprotram;
m_igs025->m_kb_source_data = m_olds_source_data;
}
@@ -192,7 +192,7 @@ void pgm_028_025_state::pgm_028_025_ol(machine_config &config)
m_maincpu->set_addrmap(AS_PROGRAM, &pgm_028_025_state::olds_mem);
IGS025(config, m_igs025, 0);
- m_igs025->set_external_cb(FUNC(pgm_028_025_state::igs025_to_igs028_callback), this);
+ m_igs025->set_external_cb(FUNC(pgm_028_025_state::igs025_to_igs028_callback));
IGS028(config, m_igs028, 0);
}
diff --git a/src/mame/machine/pgmprot_igs027a_type1.cpp b/src/mame/machine/pgmprot_igs027a_type1.cpp
index e93af94220a..e3aea0cd43e 100644
--- a/src/mame/machine/pgmprot_igs027a_type1.cpp
+++ b/src/mame/machine/pgmprot_igs027a_type1.cpp
@@ -280,7 +280,7 @@ void pgm_arm_type1_state::init_photoy2k()
pgm_photoy2k_decrypt(machine());
arm7_type1_latch_init();
/* we only have a china internal ROM dumped for now.. allow region to be changed for debugging (to ensure all alt titles / regions can be seen) */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x4f0008, 0x4f0009, read16smo_delegate(FUNC(pgm_arm_type1_state::kovsh_fake_region_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x4f0008, 0x4f0009, read16smo_delegate(*this, FUNC(pgm_arm_type1_state::kovsh_fake_region_r)));
}
void pgm_arm_type1_state::init_kovsh()
@@ -289,7 +289,7 @@ void pgm_arm_type1_state::init_kovsh()
pgm_kovsh_decrypt(machine());
arm7_type1_latch_init();
/* we only have a china internal ROM dumped for now.. allow region to be changed for debugging (to ensure all alt titles / regions can be seen) */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x4f0008, 0x4f0009, read16smo_delegate(FUNC(pgm_arm_type1_state::kovsh_fake_region_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x4f0008, 0x4f0009, read16smo_delegate(*this, FUNC(pgm_arm_type1_state::kovsh_fake_region_r)));
}
/* Fake remapping of ASIC commands to the ones used by KOVSH due to the lack of the real ARM rom for this set */
@@ -357,8 +357,8 @@ void pgm_arm_type1_state::init_kovshp()
pgm_basic_init();
pgm_kovshp_decrypt(machine());
arm7_type1_latch_init();
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x4f0008, 0x4f0009, read16smo_delegate(FUNC(pgm_arm_type1_state::kovsh_fake_region_r),this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x500000, 0x500005, write16sm_delegate(FUNC(pgm_arm_type1_state::kovshp_asic27a_write_word),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x4f0008, 0x4f0009, read16smo_delegate(*this, FUNC(pgm_arm_type1_state::kovsh_fake_region_r)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x500000, 0x500005, write16sm_delegate(*this, FUNC(pgm_arm_type1_state::kovshp_asic27a_write_word)));
}
@@ -369,8 +369,8 @@ void pgm_arm_type1_state::init_kovshxas()
pgm_basic_init();
// pgm_kovshp_decrypt(machine());
arm7_type1_latch_init();
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x4f0008, 0x4f0009, read16smo_delegate(FUNC(pgm_arm_type1_state::kovsh_fake_region_r),this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x500000, 0x500005, write16sm_delegate(FUNC(pgm_arm_type1_state::kovshp_asic27a_write_word),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x4f0008, 0x4f0009, read16smo_delegate(*this, FUNC(pgm_arm_type1_state::kovsh_fake_region_r)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x500000, 0x500005, write16sm_delegate(*this, FUNC(pgm_arm_type1_state::kovshp_asic27a_write_word)));
}
void pgm_arm_type1_state::pgm_decode_kovlsqh2_tiles()
@@ -461,8 +461,8 @@ void pgm_arm_type1_state::init_kovlsqh2()
pgm_decode_kovlsqh2_samples();
pgm_basic_init();
arm7_type1_latch_init();
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x4f0008, 0x4f0009, read16smo_delegate(FUNC(pgm_arm_type1_state::kovsh_fake_region_r),this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x500000, 0x500005, write16sm_delegate(FUNC(pgm_arm_type1_state::kovshp_asic27a_write_word),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x4f0008, 0x4f0009, read16smo_delegate(*this, FUNC(pgm_arm_type1_state::kovsh_fake_region_r)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x500000, 0x500005, write16sm_delegate(*this, FUNC(pgm_arm_type1_state::kovshp_asic27a_write_word)));
}
void pgm_arm_type1_state::init_kovqhsgs()
@@ -483,7 +483,7 @@ void pgm_arm_type1_state::init_kovqhsgs()
pgm_basic_init();
arm7_type1_latch_init();
/* we only have a china internal ROM dumped for now.. allow region to be changed for debugging (to ensure all alt titles / regions can be seen) */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x4f0008, 0x4f0009, read16smo_delegate(FUNC(pgm_arm_type1_state::kovsh_fake_region_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x4f0008, 0x4f0009, read16smo_delegate(*this, FUNC(pgm_arm_type1_state::kovsh_fake_region_r)));
}
/*
@@ -1789,7 +1789,7 @@ void pgm_arm_type1_state::init_ddp3()
pgm_basic_init(false);
pgm_py2k2_decrypt(machine()); // yes, it's the same as photo y2k2
arm_sim_handler = &pgm_arm_type1_state::command_handler_ddp3;
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x500000, 0x500005, read16_delegate(FUNC(pgm_arm_type1_state::arm7_type1_sim_r),this), write16_delegate(FUNC(pgm_arm_type1_state::arm7_type1_sim_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x500000, 0x500005, read16_delegate(*this, FUNC(pgm_arm_type1_state::arm7_type1_sim_r)), write16_delegate(*this, FUNC(pgm_arm_type1_state::arm7_type1_sim_w)));
}
void pgm_arm_type1_state::init_ket()
@@ -1797,7 +1797,7 @@ void pgm_arm_type1_state::init_ket()
pgm_basic_init(false);
pgm_ket_decrypt(machine());
arm_sim_handler = &pgm_arm_type1_state::command_handler_ddp3;
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x400000, 0x400005, read16_delegate(FUNC(pgm_arm_type1_state::arm7_type1_sim_r),this), write16_delegate(FUNC(pgm_arm_type1_state::arm7_type1_sim_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x400000, 0x400005, read16_delegate(*this, FUNC(pgm_arm_type1_state::arm7_type1_sim_r)), write16_delegate(*this, FUNC(pgm_arm_type1_state::arm7_type1_sim_w)));
}
void pgm_arm_type1_state::init_espgal()
@@ -1805,7 +1805,7 @@ void pgm_arm_type1_state::init_espgal()
pgm_basic_init(false);
pgm_espgal_decrypt(machine());
arm_sim_handler = &pgm_arm_type1_state::command_handler_ddp3;
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x400000, 0x400005, read16_delegate(FUNC(pgm_arm_type1_state::arm7_type1_sim_r),this), write16_delegate(FUNC(pgm_arm_type1_state::arm7_type1_sim_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x400000, 0x400005, read16_delegate(*this, FUNC(pgm_arm_type1_state::arm7_type1_sim_r)), write16_delegate(*this, FUNC(pgm_arm_type1_state::arm7_type1_sim_w)));
}
@@ -2090,8 +2090,8 @@ void pgm_arm_type1_state::init_puzzli2()
pgm_puzzli2_decrypt(machine());
arm_sim_handler = &pgm_arm_type1_state::command_handler_puzzli2;
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x500000, 0x500005, read16_delegate(FUNC(pgm_arm_type1_state::arm7_type1_sim_r),this), write16_delegate(FUNC(pgm_arm_type1_state::arm7_type1_sim_w),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x4f0000, 0x4f003f, read16sm_delegate(FUNC(pgm_arm_type1_state::arm7_type1_sim_protram_r),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x500000, 0x500005, read16_delegate(*this, FUNC(pgm_arm_type1_state::arm7_type1_sim_r)), write16_delegate(*this, FUNC(pgm_arm_type1_state::arm7_type1_sim_w)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x4f0000, 0x4f003f, read16sm_delegate(*this, FUNC(pgm_arm_type1_state::arm7_type1_sim_protram_r)));
m_irq4_disabled = 1; // // doesn't like this irq?? - seems to be RTC related
hackcount = 0;
@@ -2219,8 +2219,8 @@ void pgm_arm_type1_state::init_py2k2()
pgm_basic_init();
pgm_py2k2_decrypt(machine());
arm_sim_handler = &pgm_arm_type1_state::command_handler_py2k2;
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x500000, 0x500005, read16_delegate(FUNC(pgm_arm_type1_state::arm7_type1_sim_r),this), write16_delegate(FUNC(pgm_arm_type1_state::arm7_type1_sim_w),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x4f0000, 0x4f003f, read16sm_delegate(FUNC(pgm_arm_type1_state::arm7_type1_sim_protram_r),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x500000, 0x500005, read16_delegate(*this, FUNC(pgm_arm_type1_state::arm7_type1_sim_r)), write16_delegate(*this, FUNC(pgm_arm_type1_state::arm7_type1_sim_w)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x4f0000, 0x4f003f, read16sm_delegate(*this, FUNC(pgm_arm_type1_state::arm7_type1_sim_protram_r)));
}
void pgm_arm_type1_state::init_pgm3in1()
@@ -2228,8 +2228,8 @@ void pgm_arm_type1_state::init_pgm3in1()
pgm_basic_init();
pgm_decrypt_pgm3in1(machine());
arm_sim_handler = &pgm_arm_type1_state::command_handler_py2k2;
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x500000, 0x500005,read16_delegate(FUNC(pgm_arm_type1_state::arm7_type1_sim_r),this), write16_delegate(FUNC(pgm_arm_type1_state::arm7_type1_sim_w),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x4f0000, 0x4f003f, read16sm_delegate(FUNC(pgm_arm_type1_state::arm7_type1_sim_protram_r),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x500000, 0x500005,read16_delegate(*this, FUNC(pgm_arm_type1_state::arm7_type1_sim_r)), write16_delegate(*this, FUNC(pgm_arm_type1_state::arm7_type1_sim_w)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x4f0000, 0x4f003f, read16sm_delegate(*this, FUNC(pgm_arm_type1_state::arm7_type1_sim_protram_r)));
m_irq4_disabled = 1; // // doesn't like this irq??
}
@@ -2248,8 +2248,8 @@ void pgm_arm_type1_state::init_pstar()
memset(m_slots, 0, 16 * sizeof(u32));
arm_sim_handler = &pgm_arm_type1_state::command_handler_pstars;
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x500000, 0x500005, read16_delegate(FUNC(pgm_arm_type1_state::arm7_type1_sim_r),this), write16_delegate(FUNC(pgm_arm_type1_state::arm7_type1_sim_w),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x4f0000, 0x4f003f, read16sm_delegate(FUNC(pgm_arm_type1_state::pstars_arm7_type1_sim_protram_r),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x500000, 0x500005, read16_delegate(*this, FUNC(pgm_arm_type1_state::arm7_type1_sim_r)), write16_delegate(*this, FUNC(pgm_arm_type1_state::arm7_type1_sim_w)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x4f0000, 0x4f003f, read16sm_delegate(*this, FUNC(pgm_arm_type1_state::pstars_arm7_type1_sim_protram_r)));
save_item(NAME(m_pstar_e7_value));
save_item(NAME(m_pstar_b1_value));
@@ -2267,8 +2267,8 @@ void pgm_arm_type1_state::init_kov()
m_kov_cb_value = 0;
m_kov_fe_value = 0;
arm_sim_handler = &pgm_arm_type1_state::command_handler_kov;
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x500000, 0x500005, read16_delegate(FUNC(pgm_arm_type1_state::arm7_type1_sim_r),this), write16_delegate(FUNC(pgm_arm_type1_state::arm7_type1_sim_w),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x4f0000, 0x4f003f, read16sm_delegate(FUNC(pgm_arm_type1_state::arm7_type1_sim_protram_r),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x500000, 0x500005, read16_delegate(*this, FUNC(pgm_arm_type1_state::arm7_type1_sim_r)), write16_delegate(*this, FUNC(pgm_arm_type1_state::arm7_type1_sim_w)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x4f0000, 0x4f003f, read16sm_delegate(*this, FUNC(pgm_arm_type1_state::arm7_type1_sim_protram_r)));
}
void pgm_arm_type1_state::init_kovboot()
@@ -2281,8 +2281,8 @@ void pgm_arm_type1_state::init_kovboot()
m_kov_cb_value = 0;
m_kov_fe_value = 0;
arm_sim_handler = &pgm_arm_type1_state::command_handler_kov;
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x500000, 0x500005, read16_delegate(FUNC(pgm_arm_type1_state::arm7_type1_sim_r),this), write16_delegate(FUNC(pgm_arm_type1_state::arm7_type1_sim_w),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x4f0000, 0x4f003f, read16sm_delegate(FUNC(pgm_arm_type1_state::arm7_type1_sim_protram_r),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x500000, 0x500005, read16_delegate(*this, FUNC(pgm_arm_type1_state::arm7_type1_sim_r)), write16_delegate(*this, FUNC(pgm_arm_type1_state::arm7_type1_sim_w)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x4f0000, 0x4f003f, read16sm_delegate(*this, FUNC(pgm_arm_type1_state::arm7_type1_sim_protram_r)));
}
@@ -2294,8 +2294,8 @@ void pgm_arm_type1_state::init_oldsplus()
memset(m_extra_ram, 0, 0x100 * sizeof(u16));
memset(m_slots, 0, 0x100 * sizeof(u32));
arm_sim_handler = &pgm_arm_type1_state::command_handler_oldsplus;
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x500000, 0x500005, read16_delegate(FUNC(pgm_arm_type1_state::arm7_type1_sim_r),this), write16_delegate(FUNC(pgm_arm_type1_state::arm7_type1_sim_w),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x4f0000, 0x4f003f, read16sm_delegate(FUNC(pgm_arm_type1_state::arm7_type1_sim_protram_r),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x500000, 0x500005, read16_delegate(*this, FUNC(pgm_arm_type1_state::arm7_type1_sim_r)), write16_delegate(*this, FUNC(pgm_arm_type1_state::arm7_type1_sim_w)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x4f0000, 0x4f003f, read16sm_delegate(*this, FUNC(pgm_arm_type1_state::arm7_type1_sim_protram_r)));
save_item(NAME(m_extra_ram));
}
diff --git a/src/mame/machine/pgmprot_igs027a_type2.cpp b/src/mame/machine/pgmprot_igs027a_type2.cpp
index 244e7b61b18..3ef761f2de6 100644
--- a/src/mame/machine/pgmprot_igs027a_type2.cpp
+++ b/src/mame/machine/pgmprot_igs027a_type2.cpp
@@ -180,7 +180,7 @@ void pgm_arm_type2_state::init_kov2()
kov2_latch_init();
// we only have a HK internal ROM dumped for now, allow us to override that for debugging purposes.
- m_prot->space(AS_PROGRAM).install_write_handler(0x48000138, 0x4800013b, write32s_delegate(FUNC(pgm_arm_type2_state::kov2_arm_region_w),this));
+ m_prot->space(AS_PROGRAM).install_write_handler(0x48000138, 0x4800013b, write32s_delegate(*this, FUNC(pgm_arm_type2_state::kov2_arm_region_w)));
}
@@ -194,7 +194,7 @@ void pgm_arm_type2_state::init_kov2p()
kov2_latch_init();
// we only have a China internal ROM dumped for now, allow us to override that for debugging purposes.
- m_prot->space(AS_PROGRAM).install_write_handler(0x48000138, 0x4800013b, write32s_delegate(FUNC(pgm_arm_type2_state::kov2p_arm_region_w),this));
+ m_prot->space(AS_PROGRAM).install_write_handler(0x48000138, 0x4800013b, write32s_delegate(*this, FUNC(pgm_arm_type2_state::kov2p_arm_region_w)));
}
void pgm_arm_type2_state::martmast_arm_region_w(offs_t offset, u32 data, u32 mem_mask)
@@ -213,7 +213,7 @@ void pgm_arm_type2_state::init_martmast()
kov2_latch_init();
// we only have a USA / CHINA internal ROMs dumped for now, allow us to override that for debugging purposes.
- m_prot->space(AS_PROGRAM).install_write_handler(0x48000138, 0x4800013b, write32s_delegate(FUNC(pgm_arm_type2_state::martmast_arm_region_w),this));
+ m_prot->space(AS_PROGRAM).install_write_handler(0x48000138, 0x4800013b, write32s_delegate(*this, FUNC(pgm_arm_type2_state::martmast_arm_region_w)));
}
@@ -256,8 +256,8 @@ void pgm_arm_type2_state::init_ddp2()
pgm_ddp2_decrypt(machine());
kov2_latch_init();
- m_prot->space(AS_PROGRAM).install_read_handler(0x1800300c, 0x1800300f, read32_delegate(FUNC(pgm_arm_type2_state::ddp2_speedup_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x80ee54, 0x80ee55, read16_delegate(FUNC(pgm_arm_type2_state::ddp2_main_speedup_r),this));
+ m_prot->space(AS_PROGRAM).install_read_handler(0x1800300c, 0x1800300f, read32_delegate(*this, FUNC(pgm_arm_type2_state::ddp2_speedup_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x80ee54, 0x80ee55, read16_delegate(*this, FUNC(pgm_arm_type2_state::ddp2_main_speedup_r)));
}
diff --git a/src/mame/machine/pgmprot_igs027a_type3.cpp b/src/mame/machine/pgmprot_igs027a_type3.cpp
index fd513353011..dbc0868e6eb 100644
--- a/src/mame/machine/pgmprot_igs027a_type3.cpp
+++ b/src/mame/machine/pgmprot_igs027a_type3.cpp
@@ -530,7 +530,7 @@ void pgm_arm_type3_state::init_theglad()
pgm_create_dummy_internal_arm_region_theglad(0);
- m_prot->space(AS_PROGRAM).install_read_handler(0x1000000c, 0x1000000f, read32_delegate(FUNC(pgm_arm_type3_state::theglad_speedup_r),this));
+ m_prot->space(AS_PROGRAM).install_read_handler(0x1000000c, 0x1000000f, read32_delegate(*this, FUNC(pgm_arm_type3_state::theglad_speedup_r)));
}
@@ -664,9 +664,7 @@ void pgm_arm_type3_state::init_svg()
svg_latch_init();
pgm_create_dummy_internal_arm_region_theglad(1);
m_armrom = (u32 *)memregion("prot")->base();
- m_prot->space(AS_PROGRAM).install_read_handler(0xB90, 0xB93, read32_delegate(FUNC(pgm_arm_type3_state::svg_speedup_r),this));
-
-
+ m_prot->space(AS_PROGRAM).install_read_handler(0xB90, 0xB93, read32_delegate(*this, FUNC(pgm_arm_type3_state::svg_speedup_r)));
}
void pgm_arm_type3_state::init_svgpcb()
@@ -676,8 +674,7 @@ void pgm_arm_type3_state::init_svgpcb()
svg_latch_init();
pgm_create_dummy_internal_arm_region_theglad(0);
m_armrom = (u32 *)memregion("prot")->base();
- m_prot->space(AS_PROGRAM).install_read_handler(0x9e0, 0x9e3, read32_delegate(FUNC(pgm_arm_type3_state::svgpcb_speedup_r),this));
-
+ m_prot->space(AS_PROGRAM).install_read_handler(0x9e0, 0x9e3, read32_delegate(*this, FUNC(pgm_arm_type3_state::svgpcb_speedup_r)));
}
@@ -695,7 +692,7 @@ void pgm_arm_type3_state::init_killbldp()
pgm_killbldp_decrypt(machine());
svg_latch_init();
- m_prot->space(AS_PROGRAM).install_read_handler(0x1000000c, 0x1000000f, read32_delegate(FUNC(pgm_arm_type3_state::killbldp_speedup_r),this));
+ m_prot->space(AS_PROGRAM).install_read_handler(0x1000000c, 0x1000000f, read32_delegate(*this, FUNC(pgm_arm_type3_state::killbldp_speedup_r)));
// u16 *temp16 = (u16 *)memregion("prot")->base();
// int base = 0xfc; // startup table uploads
@@ -738,8 +735,8 @@ void pgm_arm_type3_state::init_dmnfrnt()
/* put some fake code for the ARM here ... */
pgm_create_dummy_internal_arm_region(0x4000);
- m_prot->space(AS_PROGRAM).install_read_handler(0x18000444, 0x18000447, read32_delegate(FUNC(pgm_arm_type3_state::dmnfrnt_speedup_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x80a03c, 0x80a03d, read16_delegate(FUNC(pgm_arm_type3_state::dmnfrnt_main_speedup_r),this));
+ m_prot->space(AS_PROGRAM).install_read_handler(0x18000444, 0x18000447, read32_delegate(*this, FUNC(pgm_arm_type3_state::dmnfrnt_speedup_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x80a03c, 0x80a03d, read16_delegate(*this, FUNC(pgm_arm_type3_state::dmnfrnt_main_speedup_r)));
m_svg_ram_sel = 1;
@@ -847,5 +844,5 @@ void pgm_arm_type3_state::init_happy6()
svg_latch_init();
pgm_create_dummy_internal_arm_region_theglad(0);
- m_prot->space(AS_PROGRAM).install_read_handler(0x1000000c, 0x1000000f, read32_delegate(FUNC(pgm_arm_type3_state::happy6_speedup_r),this));
+ m_prot->space(AS_PROGRAM).install_read_handler(0x1000000c, 0x1000000f, read32_delegate(*this, FUNC(pgm_arm_type3_state::happy6_speedup_r)));
}
diff --git a/src/mame/machine/pgmprot_orlegend.cpp b/src/mame/machine/pgmprot_orlegend.cpp
index 73db400cbb9..7e4d436f056 100644
--- a/src/mame/machine/pgmprot_orlegend.cpp
+++ b/src/mame/machine/pgmprot_orlegend.cpp
@@ -166,7 +166,7 @@ void pgm_asic3_state::init_orlegend()
{
pgm_basic_init();
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xC04000, 0xC0400f, read16_delegate(FUNC(pgm_asic3_state::pgm_asic3_r),this), write16_delegate(FUNC(pgm_asic3_state::pgm_asic3_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xC04000, 0xC0400f, read16_delegate(*this, FUNC(pgm_asic3_state::pgm_asic3_r)), write16_delegate(*this, FUNC(pgm_asic3_state::pgm_asic3_w)));
m_asic3_reg = 0;
m_asic3_latch[0] = 0;
diff --git a/src/mame/machine/playch10.cpp b/src/mame/machine/playch10.cpp
index d38a4fc87f1..3fbb5b89018 100644
--- a/src/mame/machine/playch10.cpp
+++ b/src/mame/machine/playch10.cpp
@@ -46,8 +46,8 @@ void playch10_state::machine_start()
/* move to individual boards as documentation of actual boards allows */
m_nt_ram = std::make_unique<uint8_t[]>(0x1000);
- m_ppu->space(AS_PROGRAM).install_readwrite_handler(0, 0x1fff, read8_delegate(FUNC(playch10_state::pc10_chr_r),this), write8_delegate(FUNC(playch10_state::pc10_chr_w),this));
- m_ppu->space(AS_PROGRAM).install_readwrite_handler(0x2000, 0x3eff, read8_delegate(FUNC(playch10_state::pc10_nt_r),this),write8_delegate(FUNC(playch10_state::pc10_nt_w),this));
+ m_ppu->space(AS_PROGRAM).install_readwrite_handler(0, 0x1fff, read8_delegate(*this, FUNC(playch10_state::pc10_chr_r)), write8_delegate(*this, FUNC(playch10_state::pc10_chr_w)));
+ m_ppu->space(AS_PROGRAM).install_readwrite_handler(0x2000, 0x3eff, read8_delegate(*this, FUNC(playch10_state::pc10_nt_r)), write8_delegate(*this, FUNC(playch10_state::pc10_nt_w)));
if (nullptr != m_vram)
set_videoram_bank(0, 8, 0, 8);
@@ -69,8 +69,8 @@ MACHINE_START_MEMBER(playch10_state,playch10_hboard)
m_vram = std::make_unique<uint8_t[]>(0x2000);
- m_ppu->space(AS_PROGRAM).install_readwrite_handler(0, 0x1fff, read8_delegate(FUNC(playch10_state::pc10_chr_r),this), write8_delegate(FUNC(playch10_state::pc10_chr_w),this));
- m_ppu->space(AS_PROGRAM).install_readwrite_handler(0x2000, 0x3eff, read8_delegate(FUNC(playch10_state::pc10_nt_r),this), write8_delegate(FUNC(playch10_state::pc10_nt_w),this));
+ m_ppu->space(AS_PROGRAM).install_readwrite_handler(0, 0x1fff, read8_delegate(*this, FUNC(playch10_state::pc10_chr_r)), write8_delegate(*this, FUNC(playch10_state::pc10_chr_w)));
+ m_ppu->space(AS_PROGRAM).install_readwrite_handler(0x2000, 0x3eff, read8_delegate(*this, FUNC(playch10_state::pc10_nt_r)), write8_delegate(*this, FUNC(playch10_state::pc10_nt_w)));
}
/*************************************
@@ -555,7 +555,7 @@ WRITE8_MEMBER(playch10_state::aboard_vrom_switch_w)
void playch10_state::init_pcaboard()
{
/* switches vrom with writes to the $803e-$8041 area */
- m_cartcpu->space(AS_PROGRAM).install_write_handler(0x8000, 0x8fff, write8_delegate(FUNC(playch10_state::aboard_vrom_switch_w),this));
+ m_cartcpu->space(AS_PROGRAM).install_write_handler(0x8000, 0x8fff, write8_delegate(*this, FUNC(playch10_state::aboard_vrom_switch_w)));
/* common init */
init_playch10();
@@ -587,7 +587,7 @@ void playch10_state::init_pcbboard()
memcpy(&prg[0x08000], &prg[0x28000], 0x8000);
/* Roms are banked at $8000 to $bfff */
- m_cartcpu->space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(FUNC(playch10_state::bboard_rom_switch_w),this));
+ m_cartcpu->space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(*this, FUNC(playch10_state::bboard_rom_switch_w)));
/* common init */
init_playch10();
@@ -612,7 +612,7 @@ WRITE8_MEMBER(playch10_state::cboard_vrom_switch_w)
void playch10_state::init_pccboard()
{
/* switches vrom with writes to $6000 */
- m_cartcpu->space(AS_PROGRAM).install_write_handler(0x6000, 0x6000, write8_delegate(FUNC(playch10_state::cboard_vrom_switch_w),this));
+ m_cartcpu->space(AS_PROGRAM).install_write_handler(0x6000, 0x6000, write8_delegate(*this, FUNC(playch10_state::cboard_vrom_switch_w)));
/* we have no vram, make sure switching games doesn't point to an old allocation */
m_vram = nullptr;
@@ -635,7 +635,7 @@ void playch10_state::init_pcdboard()
m_mmc1_rom_mask = 0x07;
/* MMC mapper at writes to $8000-$ffff */
- m_cartcpu->space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(FUNC(playch10_state::mmc1_rom_switch_w),this));
+ m_cartcpu->space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(*this, FUNC(playch10_state::mmc1_rom_switch_w)));
/* common init */
@@ -746,10 +746,10 @@ void playch10_state::init_pceboard()
memcpy(&prg[0x08000], &prg[0x28000], 0x8000);
/* basically a mapper 9 on a nes */
- m_cartcpu->space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(FUNC(playch10_state::eboard_rom_switch_w),this));
+ m_cartcpu->space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(*this, FUNC(playch10_state::eboard_rom_switch_w)));
/* ppu_latch callback */
- m_ppu->set_latch(ppu2c0x_device::latch_delegate(FUNC(playch10_state::mapper9_latch),this));
+ m_ppu->set_latch(*this, FUNC(playch10_state::mapper9_latch));
/* nvram at $6000-$6fff */
m_cartcpu->space(AS_PROGRAM).install_ram(0x6000, 0x6fff);
@@ -776,7 +776,7 @@ void playch10_state::init_pcfboard()
m_mmc1_rom_mask = ((len - 0x10000) / 0x4000) - 1;
/* MMC mapper at writes to $8000-$ffff */
- m_cartcpu->space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(FUNC(playch10_state::mmc1_rom_switch_w),this));
+ m_cartcpu->space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(*this, FUNC(playch10_state::mmc1_rom_switch_w)));
/* common init */
init_playch10();
@@ -960,7 +960,7 @@ void playch10_state::init_pcgboard()
memcpy(&prg[0x0c000], &prg[0x4c000], 0x4000);
/* MMC3 mapper at writes to $8000-$ffff */
- m_cartcpu->space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(FUNC(playch10_state::gboard_rom_switch_w),this));
+ m_cartcpu->space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(*this, FUNC(playch10_state::gboard_rom_switch_w)));
/* extra ram at $6000-$7fff */
m_cartcpu->space(AS_PROGRAM).install_ram(0x6000, 0x7fff);
@@ -976,7 +976,7 @@ void playch10_state::init_pcgboard()
/* common init */
init_playch10();
- m_ppu->set_scanline_callback(ppu2c0x_device::scanline_delegate(FUNC(playch10_state::gboard_scanline_cb),this));
+ m_ppu->set_scanline_callback(*this, FUNC(playch10_state::gboard_scanline_cb));
}
void playch10_state::init_pcgboard_type2()
@@ -1014,7 +1014,7 @@ void playch10_state::init_pciboard()
memcpy(&prg[0x08000], &prg[0x10000], 0x8000);
/* Roms are banked at $8000 to $bfff */
- m_cartcpu->space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(FUNC(playch10_state::iboard_rom_switch_w),this));
+ m_cartcpu->space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(*this, FUNC(playch10_state::iboard_rom_switch_w)));
/* common init */
init_playch10();
@@ -1081,7 +1081,7 @@ void playch10_state::init_pchboard()
memcpy(&prg[0x0c000], &prg[0x4c000], 0x4000);
/* Roms are banked at $8000 to $bfff */
- m_cartcpu->space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(FUNC(playch10_state::hboard_rom_switch_w),this));
+ m_cartcpu->space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(*this, FUNC(playch10_state::hboard_rom_switch_w)));
/* extra ram at $6000-$7fff */
m_cartcpu->space(AS_PROGRAM).install_ram(0x6000, 0x7fff);
@@ -1096,7 +1096,7 @@ void playch10_state::init_pchboard()
/* common init */
init_playch10();
- m_ppu->set_scanline_callback(ppu2c0x_device::scanline_delegate(FUNC(playch10_state::gboard_scanline_cb),this));
+ m_ppu->set_scanline_callback(*this, FUNC(playch10_state::gboard_scanline_cb));
}
/**********************************************************************************/
@@ -1116,7 +1116,7 @@ void playch10_state::init_pckboard()
m_cartcpu->space(AS_PROGRAM).install_ram(0x6000, 0x7fff);
/* Roms are banked at $8000 to $bfff */
- m_cartcpu->space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(FUNC(playch10_state::mmc1_rom_switch_w),this));
+ m_cartcpu->space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(*this, FUNC(playch10_state::mmc1_rom_switch_w)));
/* common init */
init_playch10();
diff --git a/src/mame/machine/pp01.cpp b/src/mame/machine/pp01.cpp
index 665724e5a60..12975f45615 100644
--- a/src/mame/machine/pp01.cpp
+++ b/src/mame/machine/pp01.cpp
@@ -93,28 +93,27 @@ void pp01_state::set_memory(uint8_t block, uint8_t data)
// This is RAM
space.install_read_bank (startaddr, endaddr, bank);
switch(data) {
- case 0xe6 :
- space.install_write_handler(startaddr, endaddr, write8_delegate(FUNC(pp01_state::video_r_1_w),this));
- break;
- case 0xe7 :
- space.install_write_handler(startaddr, endaddr, write8_delegate(FUNC(pp01_state::video_r_2_w),this));
- break;
- case 0xea :
- space.install_write_handler(startaddr, endaddr, write8_delegate(FUNC(pp01_state::video_g_1_w),this));
- break;
- case 0xeb :
- space.install_write_handler(startaddr, endaddr, write8_delegate(FUNC(pp01_state::video_g_2_w),this));
- break;
- case 0xee :
- space.install_write_handler(startaddr, endaddr, write8_delegate(FUNC(pp01_state::video_b_1_w),this));
- break;
- case 0xef :
- space.install_write_handler(startaddr, endaddr, write8_delegate(FUNC(pp01_state::video_b_2_w),this));
- break;
-
- default :
- space.install_write_bank(startaddr, endaddr, bank);
- break;
+ case 0xe6 :
+ space.install_write_handler(startaddr, endaddr, write8_delegate(*this, FUNC(pp01_state::video_r_1_w)));
+ break;
+ case 0xe7:
+ space.install_write_handler(startaddr, endaddr, write8_delegate(*this, FUNC(pp01_state::video_r_2_w)));
+ break;
+ case 0xea:
+ space.install_write_handler(startaddr, endaddr, write8_delegate(*this, FUNC(pp01_state::video_g_1_w)));
+ break;
+ case 0xeb:
+ space.install_write_handler(startaddr, endaddr, write8_delegate(*this, FUNC(pp01_state::video_g_2_w)));
+ break;
+ case 0xee:
+ space.install_write_handler(startaddr, endaddr, write8_delegate(*this, FUNC(pp01_state::video_b_1_w)));
+ break;
+ case 0xef:
+ space.install_write_handler(startaddr, endaddr, write8_delegate(*this, FUNC(pp01_state::video_b_2_w)));
+ break;
+ default:
+ space.install_write_bank(startaddr, endaddr, bank);
+ break;
}
membank(bank)->set_base(m_ram->pointer() + (data & 0x0F)* 0x1000);
diff --git a/src/mame/machine/rm380z.cpp b/src/mame/machine/rm380z.cpp
index 2a3aa0690ab..07376409f41 100644
--- a/src/mame/machine/rm380z.cpp
+++ b/src/mame/machine/rm380z.cpp
@@ -305,7 +305,7 @@ void rm380z_state::config_memory_map()
else
{
program.install_rom( 0x0000, 0x0FFF, rom );
- program.install_readwrite_handler(0x1BFC, 0x1BFF,read8_delegate(FUNC(rm380z_state::port_read_1b00), this),write8_delegate(FUNC(rm380z_state::port_write_1b00), this) );
+ program.install_readwrite_handler(0x1BFC, 0x1BFF, read8_delegate(*this, FUNC(rm380z_state::port_read_1b00)), write8_delegate(*this, FUNC(rm380z_state::port_write_1b00)));
program.install_rom( 0x1C00, 0x1DFF, rom + 0x1400 );
program.install_ram( 0x4000, 0xDFFF, m_ram_p );
}
diff --git a/src/mame/machine/samcoupe.cpp b/src/mame/machine/samcoupe.cpp
index ef5bead3f28..530fafe2ec9 100644
--- a/src/mame/machine/samcoupe.cpp
+++ b/src/mame/machine/samcoupe.cpp
@@ -323,7 +323,7 @@ void samcoupe_state::machine_reset()
if (m_config->read() & 0x01)
{
/* install RTC */
- spaceio.install_readwrite_handler(0xef, 0xef, 0, 0, 0xff00, read8_delegate(FUNC(samcoupe_state::samcoupe_rtc_r),this), write8_delegate(FUNC(samcoupe_state::samcoupe_rtc_w),this));
+ spaceio.install_readwrite_handler(0xef, 0xef, 0, 0, 0xff00, read8_delegate(*this, FUNC(samcoupe_state::samcoupe_rtc_r)), write8_delegate(*this, FUNC(samcoupe_state::samcoupe_rtc_w)));
}
else
{
diff --git a/src/mame/machine/scramble.cpp b/src/mame/machine/scramble.cpp
index 0bf08f83f78..d36d8f7de67 100644
--- a/src/mame/machine/scramble.cpp
+++ b/src/mame/machine/scramble.cpp
@@ -129,13 +129,13 @@ void scramble_state::init_scramble_ppi()
void scramble_state::init_scobra()
{
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xa803, 0xa803, write8_delegate(FUNC(scramble_state::scrambold_background_enable_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xa803, 0xa803, write8_delegate(*this, FUNC(scramble_state::scrambold_background_enable_w)));
}
#ifdef UNUSED_FUNCTION
void scramble_state::init_atlantis()
{
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x6803, 0x6803, write8_delegate(FUNC(scramble_state::scrambold_background_enable_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x6803, 0x6803, write8_delegate(*this, FUNC(scramble_state::scrambold_background_enable_w)));
}
void scramble_state::init_scramble()
@@ -146,14 +146,14 @@ void scramble_state::init_scramble()
void scramble_state::init_stratgyx()
{
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xb000, 0xb000, write8_delegate(FUNC(scramble_state::scrambold_background_green_w),this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xb002, 0xb002, write8_delegate(FUNC(scramble_state::scrambold_background_blue_w),this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xb00a, 0xb00a, write8_delegate(FUNC(scramble_state::scrambold_background_red_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xb000, 0xb000, write8_delegate(*this, FUNC(scramble_state::scrambold_background_green_w)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xb002, 0xb002, write8_delegate(*this, FUNC(scramble_state::scrambold_background_blue_w)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xb00a, 0xb00a, write8_delegate(*this, FUNC(scramble_state::scrambold_background_red_w)));
}
void scramble_state::init_tazmani2()
{
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xb002, 0xb002, write8_delegate(FUNC(scramble_state::scrambold_background_enable_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xb002, 0xb002, write8_delegate(*this, FUNC(scramble_state::scrambold_background_enable_w)));
}
void scramble_state::init_tazmaniet()
@@ -182,8 +182,8 @@ void scramble_state::init_mariner()
m_maincpu->space(AS_PROGRAM).unmap_write(0x5800, 0x67ff);
membank("bank1")->set_base(memregion("maincpu")->base() + 0x5800);
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x9008, 0x9008, read8_delegate(FUNC(scramble_state::mariner_protection_2_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xb401, 0xb401, read8_delegate(FUNC(scramble_state::mariner_protection_1_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x9008, 0x9008, read8_delegate(*this, FUNC(scramble_state::mariner_protection_2_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xb401, 0xb401, read8_delegate(*this, FUNC(scramble_state::mariner_protection_1_r)));
/* ??? (it's NOT a background enable) */
/*m_maincpu->space(AS_PROGRAM).nop_write(0x6803, 0x6803);*/
@@ -259,7 +259,7 @@ void scramble_state::init_cavelon()
cavelon_banksw();
/* A15 switches memory banks */
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x8000, 0xffff, read8_delegate(FUNC(scramble_state::cavelon_banksw_r),this), write8_delegate(FUNC(scramble_state::cavelon_banksw_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x8000, 0xffff, read8_delegate(*this, FUNC(scramble_state::cavelon_banksw_r)), write8_delegate(*this, FUNC(scramble_state::cavelon_banksw_w)));
m_maincpu->space(AS_PROGRAM).nop_write(0x2000, 0x2000); /* ??? */
m_maincpu->space(AS_PROGRAM).nop_write(0x3800, 0x3801); /* looks suspicously like
@@ -271,7 +271,7 @@ void scramble_state::init_cavelon()
void scramble_state::init_darkplnt()
{
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xb00a, 0xb00a, write8_delegate(FUNC(scramble_state::darkplnt_bullet_color_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xb00a, 0xb00a, write8_delegate(*this, FUNC(scramble_state::darkplnt_bullet_color_w)));
}
void scramble_state::init_mimonkey()
@@ -305,17 +305,17 @@ void scramble_state::init_mimonkey()
ROM[A] = ROM[A] ^ xortable[line][col];
ctr++;
}
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xa804, 0xa804, write8_delegate(FUNC(scramble_state::scrambold_background_enable_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xa804, 0xa804, write8_delegate(*this, FUNC(scramble_state::scrambold_background_enable_w)));
}
void scramble_state::init_mimonsco()
{
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xa804, 0xa804, write8_delegate(FUNC(scramble_state::scrambold_background_enable_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xa804, 0xa804, write8_delegate(*this, FUNC(scramble_state::scrambold_background_enable_w)));
}
void scramble_state::init_mimonscr()
{
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x6804, 0x6804, write8_delegate(FUNC(scramble_state::scrambold_background_enable_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x6804, 0x6804, write8_delegate(*this, FUNC(scramble_state::scrambold_background_enable_w)));
}
@@ -638,6 +638,6 @@ void scramble_state::init_newsin7a()
// ROM[0x0067] ^= 0x22; /* rst $00 - should be push hl - the NMI routine is corrupt in this set, but the IRQ routine bypasses it? intentional? */
// attempts to access port at c20x instead of 820x in one location, mirror or bitrot?
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xc200, 0xc20f, read8_delegate(FUNC(scramble_state::mars_ppi8255_1_r),this), write8_delegate(FUNC(scramble_state::mars_ppi8255_1_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xc200, 0xc20f, read8_delegate(*this, FUNC(scramble_state::mars_ppi8255_1_r)), write8_delegate(*this, FUNC(scramble_state::mars_ppi8255_1_w)));
}
diff --git a/src/mame/machine/sorcerer.cpp b/src/mame/machine/sorcerer.cpp
index 8df04fabd50..ee4e6857d25 100644
--- a/src/mame/machine/sorcerer.cpp
+++ b/src/mame/machine/sorcerer.cpp
@@ -463,7 +463,7 @@ void sorcerer_state::machine_start_common(u16 endmem)
}
if (m_cart && m_cart->exists())
- space.install_read_handler(0xc000, 0xdfff, read8sm_delegate(FUNC(generic_slot_device::read_rom),(generic_slot_device*)m_cart));
+ space.install_read_handler(0xc000, 0xdfff, read8sm_delegate(*m_cart, FUNC(generic_slot_device::read_rom)));
}
void sorcerer_state::machine_start()
diff --git a/src/mame/machine/special.cpp b/src/mame/machine/special.cpp
index bd971917260..ba7fc9330aa 100644
--- a/src/mame/machine/special.cpp
+++ b/src/mame/machine/special.cpp
@@ -167,7 +167,7 @@ void special_state::specimx_set_bank(offs_t i, uint8_t data)
{
case 0 :
space.install_write_bank(0x0000, 0x8fff, "bank1");
- space.install_write_handler(0x9000, 0xbfff, write8_delegate(FUNC(special_state::video_memory_w), this));
+ space.install_write_handler(0x9000, 0xbfff, write8_delegate(*this, FUNC(special_state::video_memory_w)));
m_bank1->set_base(ram);
m_bank2->set_base(ram + 0x9000);
@@ -321,7 +321,7 @@ void special_state::erik_set_bank()
m_bank4->set_base(mem + 0x1c000);
space.unmap_write(0xf000, 0xf7ff);
space.nop_read(0xf000, 0xf7ff);
- space.install_readwrite_handler(0xf800, 0xf803, 0, 0x7fc, 0, read8sm_delegate(FUNC(i8255_device::read), (i8255_device*)m_ppi), write8sm_delegate(FUNC(i8255_device::write), (i8255_device*)m_ppi));
+ space.install_readwrite_handler(0xf800, 0xf803, 0, 0x7fc, 0, read8sm_delegate(*m_ppi, FUNC(i8255_device::read)), write8sm_delegate(*m_ppi, FUNC(i8255_device::write)));
break;
}
}
diff --git a/src/mame/machine/st0016.cpp b/src/mame/machine/st0016.cpp
index 17cf6e660be..cadd8bf046d 100644
--- a/src/mame/machine/st0016.cpp
+++ b/src/mame/machine/st0016.cpp
@@ -7,6 +7,8 @@
#include "emupal.h"
#include "speaker.h"
+#include <algorithm>
+
DEFINE_DEVICE_TYPE(ST0016_CPU, st0016_cpu_device, "st0016_cpu", "ST0016")
@@ -33,23 +35,23 @@ void st0016_cpu_device::st0016_cpu_internal_io_map(address_map &map)
// note: a lot of bits are left uninitialized by the games, the default values are uncertain
st0016_cpu_device::st0016_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
- : z80_device(mconfig, ST0016_CPU, tag, owner, clock),
- device_gfx_interface(mconfig, *this, nullptr, "palette"),
- st0016_spr_bank(0),
- st0016_spr2_bank(0),
- st0016_pal_bank(0),
- st0016_char_bank(0),
- spr_dx(0),
- spr_dy(0),
- st0016_ramgfx(0),
- m_io_space_config("io", ENDIANNESS_LITTLE, 8, 16, 0, address_map_constructor(FUNC(st0016_cpu_device::st0016_cpu_internal_io_map), this)),
- m_space_config("regs", ENDIANNESS_LITTLE, 8, 16, 0, address_map_constructor(FUNC(st0016_cpu_device::st0016_cpu_internal_map), this)),
- m_screen(*this, ":screen"),
- m_rom(*this, DEVICE_SELF),
- m_game_flag(-1)
+ : z80_device(mconfig, ST0016_CPU, tag, owner, clock)
+ , device_gfx_interface(mconfig, *this, nullptr, "palette")
+ , st0016_spr_bank(0)
+ , st0016_spr2_bank(0)
+ , st0016_pal_bank(0)
+ , st0016_char_bank(0)
+ , spr_dx(0)
+ , spr_dy(0)
+ , st0016_ramgfx(0)
+ , m_io_space_config("io", ENDIANNESS_LITTLE, 8, 16, 0, address_map_constructor(FUNC(st0016_cpu_device::st0016_cpu_internal_io_map), this))
+ , m_space_config("regs", ENDIANNESS_LITTLE, 8, 16, 0, address_map_constructor(FUNC(st0016_cpu_device::st0016_cpu_internal_map), this))
+ , m_screen(*this, ":screen")
+ , m_rom(*this, DEVICE_SELF)
+ , m_dma_offs_cb(*this)
+ , m_game_flag(-1)
{
- for (auto & elem : st0016_vregs)
- elem = 0;
+ std::fill(std::begin(st0016_vregs), std::end(st0016_vregs), 0);
}
@@ -72,7 +74,7 @@ void st0016_cpu_device::device_start()
{
z80_device::device_start();
startup();
- m_dma_offs_cb.bind_relative_to(*owner());
+ m_dma_offs_cb.resolve();
}
@@ -230,23 +232,21 @@ WRITE8_MEMBER(st0016_cpu_device::st0016_character_ram_w)
READ8_MEMBER(st0016_cpu_device::st0016_vregs_r)
{
-/*
- $0, $1 = max scanline(including vblank)/timer? ($3e7)
-
- $8-$40 = bg tilemaps (8 bytes each) :
- 0 - ? = usually 0/20/ba*
- 1 - 0 = disabled , !zero = address of tilemap in spriteram /$1000 (for example: 3 -> tilemap at $3000 )
- 2 - ? = usually ff/1f/af*
- 3 - priority ? = 0 - under sprites , $ff - over sprites \
- 4 - ? = $7f/$ff
- 5 - ? = $29/$20 (29 when tilemap must be drawn over sprites . maybe this is real priority ?)
- 6 - ? = 0
- 7 - ? =$20/$10/$12*
-
-
- $40-$60 = scroll registers , X.w, Y.w
-
-*/
+ /*
+ $0, $1 = max scanline(including vblank)/timer? ($3e7)
+
+ $8-$40 = bg tilemaps (8 bytes each) :
+ 0 - ? = usually 0/20/ba*
+ 1 - 0 = disabled , !zero = address of tilemap in spriteram /$1000 (for example: 3 -> tilemap at $3000 )
+ 2 - ? = usually ff/1f/af*
+ 3 - priority ? = 0 - under sprites , $ff - over sprites \
+ 4 - ? = $7f/$ff
+ 5 - ? = $29/$20 (29 when tilemap must be drawn over sprites . maybe this is real priority ?)
+ 6 - ? = 0
+ 7 - ? =$20/$10/$12*
+
+ $40-$60 = scroll registers , X.w, Y.w
+ */
switch (offset)
{
diff --git a/src/mame/machine/st0016.h b/src/mame/machine/st0016.h
index 6b2ca54eaef..548d927bf93 100644
--- a/src/mame/machine/st0016.h
+++ b/src/mame/machine/st0016.h
@@ -19,7 +19,7 @@ public:
st0016_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t);
- template <typename... T> void set_dma_offs_callback(T &&... args) { m_dma_offs_cb = dma_offs_delegate(std::forward<T>(args)...); }
+ template <typename... T> void set_dma_offs_callback(T &&... args) { m_dma_offs_cb.set(std::forward<T>(args)...); }
DECLARE_WRITE8_MEMBER(st0016_sprite_bank_w);
DECLARE_WRITE8_MEMBER(st0016_palette_bank_w);
diff --git a/src/mame/machine/stvprot.cpp b/src/mame/machine/stvprot.cpp
index eaf95385624..4344696389a 100644
--- a/src/mame/machine/stvprot.cpp
+++ b/src/mame/machine/stvprot.cpp
@@ -84,7 +84,7 @@ WRITE32_MEMBER ( stv_state::common_prot_w )
void stv_state::install_common_protection()
{
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x4fffff0, 0x4ffffff, read32_delegate(FUNC(stv_state::common_prot_r), this), write32_delegate(FUNC(stv_state::common_prot_w), this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x4fffff0, 0x4ffffff, read32_delegate(*this, FUNC(stv_state::common_prot_r)), write32_delegate(*this, FUNC(stv_state::common_prot_w)));
}
void stv_state::stv_register_protection_savestates()
diff --git a/src/mame/machine/thomson.cpp b/src/mame/machine/thomson.cpp
index f97ffe108ac..37c29966c96 100644
--- a/src/mame/machine/thomson.cpp
+++ b/src/mame/machine/thomson.cpp
@@ -338,7 +338,7 @@ void thomson_state::to7_update_cart_bank()
bank = m_thom_cart_bank % m_thom_cart_nb_banks;
if ( bank != m_old_cart_bank && m_old_cart_bank < 0 )
{
- space.install_read_handler(0x0000, 0x0003, read8_delegate(FUNC(thomson_state::to7_cartridge_r),this) );
+ space.install_read_handler(0x0000, 0x0003, read8_delegate(*this, FUNC(thomson_state::to7_cartridge_r)) );
}
}
if ( bank != m_old_cart_bank )
@@ -1484,8 +1484,8 @@ void thomson_state::mo5_update_cart_bank()
if ( m_old_cart_bank < 0 )
{
space.install_read_bank( 0xb000, 0xefff, m_cartbank);
- space.install_write_handler( 0xb000, 0xefff, write8_delegate(FUNC(thomson_state::mo5_cartridge_w),this) );
- space.install_read_handler( 0xbffc, 0xbfff, read8_delegate(FUNC(thomson_state::mo5_cartridge_r),this) );
+ space.install_write_handler( 0xb000, 0xefff, write8_delegate(*this, FUNC(thomson_state::mo5_cartridge_w)) );
+ space.install_read_handler( 0xbffc, 0xbfff, read8_delegate(*this, FUNC(thomson_state::mo5_cartridge_r)) );
}
LOG_BANK(( "mo5_update_cart_bank: CART is cartridge bank %i\n", bank ));
}
@@ -1496,7 +1496,7 @@ void thomson_state::mo5_update_cart_bank()
if ( m_old_cart_bank != 0 )
{
space.install_read_bank( 0xb000, 0xefff, m_cartbank);
- space.install_write_handler( 0xb000, 0xefff, write8_delegate(FUNC(thomson_state::mo5_cartridge_w),this) );
+ space.install_write_handler( 0xb000, 0xefff, write8_delegate(*this, FUNC(thomson_state::mo5_cartridge_w)) );
LOG_BANK(( "mo5_update_cart_bank: CART is internal\n"));
}
}
@@ -1886,8 +1886,8 @@ void thomson_state::to9_update_cart_bank()
if ( m_old_cart_bank < 0 || m_old_cart_bank > 3 )
{
space.install_read_bank( 0x0000, 0x3fff, m_cartbank );
- space.install_write_handler( 0x0000, 0x3fff, write8_delegate(FUNC(thomson_state::to9_cartridge_w),this) );
- space.install_read_handler( 0x0000, 0x0003, read8_delegate(FUNC(thomson_state::to9_cartridge_r),this) );
+ space.install_write_handler( 0x0000, 0x3fff, write8_delegate(*this, FUNC(thomson_state::to9_cartridge_w)) );
+ space.install_read_handler( 0x0000, 0x0003, read8_delegate(*this, FUNC(thomson_state::to9_cartridge_r)) );
}
LOG_BANK(( "to9_update_cart_bank: CART is cartridge bank %i\n", m_thom_cart_bank ));
}
@@ -3005,7 +3005,7 @@ void thomson_state::to8_update_cart_bank()
}
else
{
- space.install_write_handler( 0x0000, 0x3fff, write8_delegate(FUNC(thomson_state::to8_vcart_w),this));
+ space.install_write_handler( 0x0000, 0x3fff, write8_delegate(*this, FUNC(thomson_state::to8_vcart_w)));
}
}
}
@@ -3047,7 +3047,7 @@ void thomson_state::to8_update_cart_bank()
{
if (m_to8_cart_vpage < 4)
{
- space.install_write_handler( 0x0000, 0x3fff, write8_delegate(FUNC(thomson_state::to8_vcart_w),this));
+ space.install_write_handler( 0x0000, 0x3fff, write8_delegate(*this, FUNC(thomson_state::to8_vcart_w)));
}
else
{
@@ -3072,7 +3072,7 @@ void thomson_state::to8_update_cart_bank()
if ( m_old_cart_bank < 4 || m_old_cart_bank > 7 )
{
space.install_read_bank( 0x0000, 0x3fff, m_cartbank );
- space.install_write_handler( 0x0000, 0x3fff, write8_delegate(FUNC(thomson_state::to8_cartridge_w),this) );
+ space.install_write_handler( 0x0000, 0x3fff, write8_delegate(*this, FUNC(thomson_state::to8_cartridge_w)) );
}
LOG_BANK(( "to8_update_cart_bank: CART is internal bank %i\n", m_to8_soft_bank ));
}
@@ -3088,8 +3088,8 @@ void thomson_state::to8_update_cart_bank()
if ( m_old_cart_bank < 0 || m_old_cart_bank > 3 )
{
space.install_read_bank( 0x0000, 0x3fff, m_cartbank );
- space.install_write_handler( 0x0000, 0x3fff, write8_delegate(FUNC(thomson_state::to8_cartridge_w),this) );
- space.install_read_handler( 0x0000, 0x0003, read8_delegate(FUNC(thomson_state::to8_cartridge_r),this) );
+ space.install_write_handler( 0x0000, 0x3fff, write8_delegate(*this, FUNC(thomson_state::to8_cartridge_w)) );
+ space.install_read_handler( 0x0000, 0x0003, read8_delegate(*this, FUNC(thomson_state::to8_cartridge_r)) );
}
LOG_BANK(( "to8_update_cart_bank: CART is external cartridge bank %i\n", bank ));
}
@@ -3813,8 +3813,8 @@ void thomson_state::mo6_update_cart_bank()
}
else
{
- space.install_write_handler( 0xb000, 0xbfff, write8_delegate(FUNC(thomson_state::mo6_vcart_lo_w),this));
- space.install_write_handler( 0xc000, 0xefff, write8_delegate(FUNC(thomson_state::mo6_vcart_hi_w),this));
+ space.install_write_handler( 0xb000, 0xbfff, write8_delegate(*this, FUNC(thomson_state::mo6_vcart_lo_w)));
+ space.install_write_handler( 0xc000, 0xefff, write8_delegate(*this, FUNC(thomson_state::mo6_vcart_hi_w)));
}
}
}
@@ -3849,8 +3849,8 @@ void thomson_state::mo6_update_cart_bank()
{
if (m_to8_cart_vpage < 4)
{
- space.install_write_handler( 0xb000, 0xbfff, write8_delegate(FUNC(thomson_state::mo6_vcart_lo_w),this));
- space.install_write_handler( 0xc000, 0xefff, write8_delegate(FUNC(thomson_state::mo6_vcart_hi_w),this));
+ space.install_write_handler( 0xb000, 0xbfff, write8_delegate(*this, FUNC(thomson_state::mo6_vcart_lo_w)));
+ space.install_write_handler( 0xc000, 0xefff, write8_delegate(*this, FUNC(thomson_state::mo6_vcart_hi_w)));
}
else
{
@@ -3945,7 +3945,7 @@ void thomson_state::mo6_update_cart_bank()
{
space.install_read_bank( 0xb000, 0xbfff, m_cartlobank );
space.install_read_bank( 0xc000, 0xefff, m_carthibank );
- space.install_write_handler( 0xb000, 0xefff, write8_delegate(FUNC(thomson_state::mo6_cartridge_w),this) );
+ space.install_write_handler( 0xb000, 0xefff, write8_delegate(*this, FUNC(thomson_state::mo6_cartridge_w)) );
}
LOG_BANK(( "mo6_update_cart_bank: CART is internal ROM bank %i\n", b ));
}
@@ -3962,8 +3962,8 @@ void thomson_state::mo6_update_cart_bank()
{
space.install_read_bank( 0xb000, 0xbfff, m_cartlobank );
space.install_read_bank( 0xc000, 0xefff, m_carthibank );
- space.install_write_handler( 0xb000, 0xefff, write8_delegate(FUNC(thomson_state::mo6_cartridge_w),this) );
- space.install_read_handler( 0xbffc, 0xbfff, read8_delegate(FUNC(thomson_state::mo6_cartridge_r),this) );
+ space.install_write_handler( 0xb000, 0xefff, write8_delegate(*this, FUNC(thomson_state::mo6_cartridge_w)) );
+ space.install_read_handler( 0xbffc, 0xbfff, read8_delegate(*this, FUNC(thomson_state::mo6_cartridge_r)) );
}
LOG_BANK(( "mo6_update_cart_bank: CART is external cartridge bank %i\n", bank ));
}
diff --git a/src/mame/machine/toaplan1.cpp b/src/mame/machine/toaplan1.cpp
index 3e10d414f97..9a66cae33c0 100644
--- a/src/mame/machine/toaplan1.cpp
+++ b/src/mame/machine/toaplan1.cpp
@@ -240,7 +240,7 @@ void toaplan1_state::machine_reset()
MACHINE_RESET_MEMBER(toaplan1_state,zerowing)
{
machine_reset();
- m_maincpu->set_reset_callback(write_line_delegate(FUNC(toaplan1_state::reset_callback),this));
+ m_maincpu->set_reset_callback(*this, FUNC(toaplan1_state::reset_callback));
}
void toaplan1_demonwld_state::machine_reset()
diff --git a/src/mame/machine/upd65031.cpp b/src/mame/machine/upd65031.cpp
index 74584e6cbba..d195ef42560 100644
--- a/src/mame/machine/upd65031.cpp
+++ b/src/mame/machine/upd65031.cpp
@@ -196,12 +196,14 @@ inline void upd65031_device::set_mode(int mode)
// upd65031_device - constructor
//-------------------------------------------------
-upd65031_device::upd65031_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
- : device_t(mconfig, UPD65031, tag, owner, clock),
+upd65031_device::upd65031_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
+ device_t(mconfig, UPD65031, tag, owner, clock),
m_read_kb(*this),
m_write_int(*this),
m_write_nmi(*this),
- m_write_spkr(*this)
+ m_write_spkr(*this),
+ m_screen_update_cb(*this),
+ m_out_mem_cb(*this)
{
}
@@ -219,8 +221,8 @@ void upd65031_device::device_start()
m_write_spkr.resolve_safe();
// bind delegates
- m_screen_update_cb.bind_relative_to(*owner());
- m_out_mem_cb.bind_relative_to(*owner());
+ m_screen_update_cb.resolve();
+ m_out_mem_cb.resolve();
// allocate timers
m_rtc_timer = timer_alloc(TIMER_RTC);
diff --git a/src/mame/machine/upd65031.h b/src/mame/machine/upd65031.h
index e6c1b6d927c..5dd208fbe7c 100644
--- a/src/mame/machine/upd65031.h
+++ b/src/mame/machine/upd65031.h
@@ -16,9 +16,6 @@
// TYPE DEFINITIONS
//**************************************************************************
-typedef device_delegate<void (bitmap_ind16 &bitmap, uint16_t sbf, uint16_t hires0, uint16_t hires1, uint16_t lores0, uint16_t lores1, int flash)> upd65031_screen_update_delegate;
-typedef device_delegate<void (int bank, uint16_t page, int rams)> upd65031_memory_update_delegate;
-
#define UPD65031_SCREEN_UPDATE(_name) void _name(bitmap_ind16 &bitmap, uint16_t sbf, uint16_t hires0, uint16_t hires1, uint16_t lores0, uint16_t lores1, int flash)
#define UPD65031_MEMORY_UPDATE(_name) void _name(int bank, uint16_t page, int rams)
@@ -28,6 +25,9 @@ typedef device_delegate<void (int bank, uint16_t page, int rams)> upd65031_memor
class upd65031_device : public device_t
{
public:
+ typedef device_delegate<void (bitmap_ind16 &bitmap, uint16_t sbf, uint16_t hires0, uint16_t hires1, uint16_t lores0, uint16_t lores1, int flash)> screen_update_delegate;
+ typedef device_delegate<void (int bank, uint16_t page, int rams)> memory_update_delegate;
+
// construction/destruction
upd65031_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
@@ -36,8 +36,8 @@ public:
auto nmi_wr_callback() { return m_write_nmi.bind(); }
auto spkr_wr_callback() { return m_write_spkr.bind(); }
- template <typename... T> void set_screen_update_callback(T &&... args) { m_screen_update_cb = upd65031_screen_update_delegate(std::forward<T>(args)...); }
- template <typename... T> void set_memory_update_callback(T &&... args) { m_out_mem_cb = upd65031_memory_update_delegate(std::forward<T>(args)...); }
+ template <typename... T> void set_screen_update_callback(T &&... args) { m_screen_update_cb.set(std::forward<T>(args)...); }
+ template <typename... T> void set_memory_update_callback(T &&... args) { m_out_mem_cb.set(std::forward<T>(args)...); }
DECLARE_READ8_MEMBER( read );
DECLARE_WRITE8_MEMBER( write );
@@ -64,8 +64,8 @@ private:
devcb_write_line m_write_nmi;
devcb_write_line m_write_spkr;
- upd65031_screen_update_delegate m_screen_update_cb; // callback for update the LCD
- upd65031_memory_update_delegate m_out_mem_cb; // callback for update bankswitch
+ screen_update_delegate m_screen_update_cb; // callback for update the LCD
+ memory_update_delegate m_out_mem_cb; // callback for update bankswitch
int m_mode;
uint16_t m_lcd_regs[5]; // LCD registers
diff --git a/src/mame/machine/vectrex.cpp b/src/mame/machine/vectrex.cpp
index a54f3f0227e..8563f3a9665 100644
--- a/src/mame/machine/vectrex.cpp
+++ b/src/mame/machine/vectrex.cpp
@@ -328,9 +328,9 @@ void vectrex_state::machine_start()
{
// install cart accesses
if (m_cart->get_type() == VECTREX_SRAM)
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x0000, 0x7fff, read8_delegate(FUNC(vectrex_cart_slot_device::read_rom),(vectrex_cart_slot_device*)m_cart), write8_delegate(FUNC(vectrex_cart_slot_device::write_ram),m_cart.target()));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x0000, 0x7fff, read8_delegate(*m_cart, FUNC(vectrex_cart_slot_device::read_rom)), write8_delegate(*m_cart, FUNC(vectrex_cart_slot_device::write_ram)));
else
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x0000, 0x7fff, read8_delegate(FUNC(vectrex_cart_slot_device::read_rom),m_cart.target()));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x0000, 0x7fff, read8_delegate(*m_cart, FUNC(vectrex_cart_slot_device::read_rom)));
// setup 3d imager and refresh timer
diff --git a/src/mame/machine/vsnes.cpp b/src/mame/machine/vsnes.cpp
index 317608c8f55..b3fa0904d2b 100644
--- a/src/mame/machine/vsnes.cpp
+++ b/src/mame/machine/vsnes.cpp
@@ -196,7 +196,7 @@ MACHINE_START_MEMBER(vsnes_state,vsnes)
m_nt_page[0][2] = m_nt_ram[0].get() + 0x800;
m_nt_page[0][3] = m_nt_ram[0].get() + 0xc00;
- ppu1_space.install_readwrite_handler(0x2000, 0x3eff, read8_delegate(FUNC(vsnes_state::vsnes_nt0_r),this), write8_delegate(FUNC(vsnes_state::vsnes_nt0_w),this));
+ ppu1_space.install_readwrite_handler(0x2000, 0x3eff, read8_delegate(*this, FUNC(vsnes_state::vsnes_nt0_r)), write8_delegate(*this, FUNC(vsnes_state::vsnes_nt0_w)));
if (m_gfx1_rom != nullptr)
{
@@ -249,8 +249,8 @@ MACHINE_START_MEMBER(vsnes_state,vsdual)
m_nt_page[1][2] = m_nt_ram[1].get() + 0x800;
m_nt_page[1][3] = m_nt_ram[1].get() + 0xc00;
- m_ppu1->space(AS_PROGRAM).install_readwrite_handler(0x2000, 0x3eff, read8_delegate(FUNC(vsnes_state::vsnes_nt0_r),this), write8_delegate(FUNC(vsnes_state::vsnes_nt0_w),this));
- m_ppu2->space(AS_PROGRAM).install_readwrite_handler(0x2000, 0x3eff, read8_delegate(FUNC(vsnes_state::vsnes_nt1_r),this), write8_delegate(FUNC(vsnes_state::vsnes_nt1_w),this));
+ m_ppu1->space(AS_PROGRAM).install_readwrite_handler(0x2000, 0x3eff, read8_delegate(*this, FUNC(vsnes_state::vsnes_nt0_r)), write8_delegate(*this, FUNC(vsnes_state::vsnes_nt0_w)));
+ m_ppu2->space(AS_PROGRAM).install_readwrite_handler(0x2000, 0x3eff, read8_delegate(*this, FUNC(vsnes_state::vsnes_nt1_r)), write8_delegate(*this, FUNC(vsnes_state::vsnes_nt1_w)));
// read only!
m_ppu1->space(AS_PROGRAM).install_read_bank(0x0000, 0x1fff, "bank2");
// read only!
@@ -347,7 +347,7 @@ WRITE8_MEMBER(vsnes_state::vsnormal_vrom_banking)
void vsnes_state::init_vsnormal()
{
/* vrom switching is enabled with bit 2 of $4016 */
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x4016, 0x4016, write8_delegate(FUNC(vsnes_state::vsnormal_vrom_banking),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x4016, 0x4016, write8_delegate(*this, FUNC(vsnes_state::vsnormal_vrom_banking)));
}
/**********************************************************************************/
@@ -430,7 +430,7 @@ WRITE8_MEMBER(vsnes_state::gun_in0_w)
void vsnes_state::init_vsgun()
{
/* VROM switching is enabled with bit 2 of $4016 */
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x4016, 0x4016, read8_delegate(FUNC(vsnes_state::gun_in0_r),this), write8_delegate(FUNC(vsnes_state::gun_in0_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x4016, 0x4016, read8_delegate(*this, FUNC(vsnes_state::gun_in0_r)), write8_delegate(*this, FUNC(vsnes_state::gun_in0_w)));
m_do_vrom_bank = 1;
}
@@ -471,7 +471,7 @@ void vsnes_state::init_vskonami()
memcpy(&prg[0x08000], &prg[0x18000], 0x8000);
/* banking is done with writes to the $8000-$ffff area */
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(FUNC(vsnes_state::vskonami_rom_banking),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(*this, FUNC(vsnes_state::vskonami_rom_banking)));
}
/***********************************************************************/
@@ -498,7 +498,7 @@ void vsnes_state::init_vsgshoe()
memcpy (&prg[0x08000], &prg[0x12000], 0x2000);
/* vrom switching is enabled with bit 2 of $4016 */
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x4016, 0x4016, read8_delegate(FUNC(vsnes_state::gun_in0_r),this), write8_delegate(FUNC(vsnes_state::vsgshoe_gun_in0_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x4016, 0x4016, read8_delegate(*this, FUNC(vsnes_state::gun_in0_r)), write8_delegate(*this, FUNC(vsnes_state::vsgshoe_gun_in0_w)));
m_do_vrom_bank = 1;
}
@@ -627,7 +627,7 @@ void vsnes_state::init_drmario()
memcpy(&prg[0x0c000], &prg[0x1c000], 0x4000);
/* MMC1 mapper at writes to $8000-$ffff */
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(FUNC(vsnes_state::drmario_rom_banking),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(*this, FUNC(vsnes_state::drmario_rom_banking)));
m_drmario_shiftreg = 0;
m_drmario_shiftcount = 0;
@@ -651,7 +651,7 @@ void vsnes_state::init_vsvram()
memcpy(&prg[0x08000], &prg[0x28000], 0x8000);
/* banking is done with writes to the $8000-$ffff area */
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(FUNC(vsnes_state::vsvram_rom_banking),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(*this, FUNC(vsnes_state::vsvram_rom_banking)));
/* allocate m_vram */
m_vram = std::make_unique<uint8_t[]>(0x2000);
@@ -768,12 +768,12 @@ WRITE8_MEMBER(vsnes_state::mapper4_w)
case 0x6000: /* $e000 - Disable IRQs */
m_IRQ_enable = 0;
m_IRQ_count = m_IRQ_count_latch;
- m_ppu1->set_scanline_callback(ppu2c0x_device::scanline_delegate());
+ m_ppu1->set_scanline_callback(nullptr);
break;
case 0x6001: /* $e001 - Enable IRQs */
m_IRQ_enable = 1;
- m_ppu1->set_scanline_callback(ppu2c0x_device::scanline_delegate(FUNC(vsnes_state::mapper4_irq), this));
+ m_ppu1->set_scanline_callback(*this, FUNC(vsnes_state::mapper4_irq));
break;
default:
@@ -802,7 +802,7 @@ void vsnes_state::init_MMC3()
memcpy(&prg[0xe000], &prg[(MMC3_prg_chunks - 1) * 0x4000 + 0x12000], 0x2000);
/* MMC3 mapper at writes to $8000-$ffff */
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(FUNC(vsnes_state::mapper4_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(*this, FUNC(vsnes_state::mapper4_w)));
/* extra ram at $6000-$7fff */
m_maincpu->space(AS_PROGRAM).install_ram(0x6000, 0x7fff);
@@ -842,7 +842,7 @@ void vsnes_state::init_rbibb()
init_MMC3();
/* RBI Base ball hack */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x5e00, 0x5e01, read8_delegate(FUNC(vsnes_state::rbi_hack_r),this)) ;
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x5e00, 0x5e01, read8_delegate(*this, FUNC(vsnes_state::rbi_hack_r)));
}
/* Vs. Super Xevious */
@@ -889,10 +889,10 @@ void vsnes_state::init_supxevs()
init_MMC3();
/* Vs. Super Xevious Protection */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x54ff, 0x54ff, read8_delegate(FUNC(vsnes_state::supxevs_read_prot_1_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x5678, 0x5678, read8_delegate(FUNC(vsnes_state::supxevs_read_prot_2_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x578f, 0x578f, read8_delegate(FUNC(vsnes_state::supxevs_read_prot_3_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x5567, 0x5567, read8_delegate(FUNC(vsnes_state::supxevs_read_prot_4_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x54ff, 0x54ff, read8_delegate(*this, FUNC(vsnes_state::supxevs_read_prot_1_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x5678, 0x5678, read8_delegate(*this, FUNC(vsnes_state::supxevs_read_prot_2_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x578f, 0x578f, read8_delegate(*this, FUNC(vsnes_state::supxevs_read_prot_3_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x5567, 0x5567, read8_delegate(*this, FUNC(vsnes_state::supxevs_read_prot_4_r)));
}
/* Vs. TKO Boxing */
@@ -921,7 +921,7 @@ void vsnes_state::init_tkoboxng()
init_MMC3();
/* security device at $5e00-$5e01 */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x5e00, 0x5e01, read8_delegate(FUNC(vsnes_state::tko_security_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x5e00, 0x5e01, read8_delegate(*this, FUNC(vsnes_state::tko_security_r)));
}
/* Vs. Freedom Force */
@@ -930,7 +930,7 @@ void vsnes_state::init_vsfdf()
{
init_MMC3();
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x4016, 0x4016, read8_delegate(FUNC(vsnes_state::gun_in0_r),this), write8_delegate(FUNC(vsnes_state::gun_in0_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x4016, 0x4016, read8_delegate(*this, FUNC(vsnes_state::gun_in0_r)), write8_delegate(*this, FUNC(vsnes_state::gun_in0_w)));
m_do_vrom_bank = 0;
}
@@ -979,7 +979,7 @@ void vsnes_state::init_platoon()
memcpy(&prg[0x08000], &prg[0x10000], 0x4000);
memcpy(&prg[0x0c000], &prg[0x2c000], 0x4000);
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(FUNC(vsnes_state::mapper68_rom_banking),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(*this, FUNC(vsnes_state::mapper68_rom_banking)));
}
/**********************************************************************************/
@@ -1000,7 +1000,7 @@ READ8_MEMBER(vsnes_state::set_bnglngby_irq_r)
void vsnes_state::init_bnglngby()
{
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x0231, 0x0231, read8_delegate(FUNC(vsnes_state::set_bnglngby_irq_r),this), write8_delegate(FUNC(vsnes_state::set_bnglngby_irq_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x0231, 0x0231, read8_delegate(*this, FUNC(vsnes_state::set_bnglngby_irq_r)), write8_delegate(*this, FUNC(vsnes_state::set_bnglngby_irq_w)));
/* extra ram */
m_maincpu->space(AS_PROGRAM).install_ram(0x6000, 0x7fff);
@@ -1043,8 +1043,8 @@ void vsnes_state::init_vsdual()
uint8_t *prg = memregion("maincpu")->base();
/* vrom switching is enabled with bit 2 of $4016 */
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x4016, 0x4016, write8_delegate(FUNC(vsnes_state::vsdual_vrom_banking_main),this));
- m_subcpu->space(AS_PROGRAM).install_write_handler(0x4016, 0x4016, write8_delegate(FUNC(vsnes_state::vsdual_vrom_banking_sub),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x4016, 0x4016, write8_delegate(*this, FUNC(vsnes_state::vsdual_vrom_banking_main)));
+ m_subcpu->space(AS_PROGRAM).install_write_handler(0x4016, 0x4016, write8_delegate(*this, FUNC(vsnes_state::vsdual_vrom_banking_sub)));
/* shared ram at $6000 */
m_maincpu->space(AS_PROGRAM).install_ram(0x6000, 0x7fff, &prg[0x6000]);
diff --git a/src/mame/machine/wswan.cpp b/src/mame/machine/wswan.cpp
index f403b341c1b..c8a942e1a6e 100644
--- a/src/mame/machine/wswan.cpp
+++ b/src/mame/machine/wswan.cpp
@@ -180,15 +180,15 @@ void wswan_state::common_start()
if (m_cart->exists())
{
// ROM
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x20000, 0x2ffff, read8sm_delegate(FUNC(ws_cart_slot_device::read_rom20),(ws_cart_slot_device*)m_cart));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x30000, 0x3ffff, read8sm_delegate(FUNC(ws_cart_slot_device::read_rom30),(ws_cart_slot_device*)m_cart));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x40000, 0xeffff, read8sm_delegate(FUNC(ws_cart_slot_device::read_rom40),(ws_cart_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x20000, 0x2ffff, read8sm_delegate(*m_cart, FUNC(ws_cart_slot_device::read_rom20)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x30000, 0x3ffff, read8sm_delegate(*m_cart, FUNC(ws_cart_slot_device::read_rom30)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x40000, 0xeffff, read8sm_delegate(*m_cart, FUNC(ws_cart_slot_device::read_rom40)));
// SRAM
if (m_cart->get_type() == WS_SRAM)
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x10000, 0x1ffff, read8sm_delegate(FUNC(ws_cart_slot_device::read_ram),(ws_cart_slot_device*)m_cart));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x10000, 0x1ffff, write8sm_delegate(FUNC(ws_cart_slot_device::write_ram),(ws_cart_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x10000, 0x1ffff, read8sm_delegate(*m_cart, FUNC(ws_cart_slot_device::read_ram)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x10000, 0x1ffff, write8sm_delegate(*m_cart, FUNC(ws_cart_slot_device::write_ram)));
}
}
}
diff --git a/src/mame/machine/xbox_pci.cpp b/src/mame/machine/xbox_pci.cpp
index f56259e68bf..b721162951e 100644
--- a/src/mame/machine/xbox_pci.cpp
+++ b/src/mame/machine/xbox_pci.cpp
@@ -1050,7 +1050,7 @@ void mcpx_ide_device::ide_pri_command(address_map &map)
void mcpx_ide_device::ide_pri_control(address_map &map)
{
// 3f6
- map(2, 2).rw(*this, FUNC(mcpx_ide_device::pri_read_cs1_r), FUNC(mcpx_ide_device::pri_write_cs1_w));
+ map(2, 2).rw(FUNC(mcpx_ide_device::pri_read_cs1_r), FUNC(mcpx_ide_device::pri_write_cs1_w));
}
void mcpx_ide_device::ide_sec_command(address_map &map)
@@ -1061,7 +1061,7 @@ void mcpx_ide_device::ide_sec_command(address_map &map)
void mcpx_ide_device::ide_sec_control(address_map &map)
{
// 376
- map(2, 2).rw(*this, FUNC(mcpx_ide_device::sec_read_cs1_r), FUNC(mcpx_ide_device::sec_write_cs1_w));
+ map(2, 2).rw(FUNC(mcpx_ide_device::sec_read_cs1_r), FUNC(mcpx_ide_device::sec_write_cs1_w));
}
void mcpx_ide_device::ide_io(address_map &map)
diff --git a/src/mame/video/1942.cpp b/src/mame/video/1942.cpp
index 31dfa891649..2c2acdcb5ef 100644
--- a/src/mame/video/1942.cpp
+++ b/src/mame/video/1942.cpp
@@ -140,16 +140,16 @@ TILE_GET_INFO_MEMBER(_1942_state::get_bg_tile_info)
***************************************************************************/
void _1942_state::video_start()
{
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(_1942_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(_1942_state::get_bg_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 32, 16);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(_1942_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(_1942_state::get_bg_tile_info)), TILEMAP_SCAN_COLS, 16, 16, 32, 16);
m_fg_tilemap->set_transparent_pen(0);
}
void _1942p_state::video_start()
{
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(_1942_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(_1942_state::get_bg_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 32, 16);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(_1942_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(_1942_state::get_bg_tile_info)), TILEMAP_SCAN_COLS, 16, 16, 32, 16);
m_fg_tilemap->set_transparent_pen(3);
}
diff --git a/src/mame/video/1943.cpp b/src/mame/video/1943.cpp
index d7262dec3a8..21f428e6583 100644
--- a/src/mame/video/1943.cpp
+++ b/src/mame/video/1943.cpp
@@ -195,9 +195,9 @@ TILE_GET_INFO_MEMBER(_1943_state::get_fg_tile_info)
void _1943_state::video_start()
{
- m_bg2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(_1943_state::get_bg2_tile_info),this), TILEMAP_SCAN_COLS, 32, 32, 2048, 8);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(_1943_state::get_bg_tile_info),this), TILEMAP_SCAN_COLS, 32, 32, 2048, 8);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(_1943_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(_1943_state::get_bg2_tile_info)), TILEMAP_SCAN_COLS, 32, 32, 2048, 8);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(_1943_state::get_bg_tile_info)), TILEMAP_SCAN_COLS, 32, 32, 2048, 8);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(_1943_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_bg_tilemap->configure_groups(*m_gfxdecode->gfx(1), 0x0f);
m_fg_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/40love.cpp b/src/mame/video/40love.cpp
index cb6bc13145a..3e62220c8d3 100644
--- a/src/mame/video/40love.cpp
+++ b/src/mame/video/40love.cpp
@@ -69,7 +69,7 @@ void fortyl_state::video_start()
m_tmp_bitmap1 = std::make_unique<bitmap_ind16>(256, 256);
m_tmp_bitmap2 = std::make_unique<bitmap_ind16>(256, 256);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(fortyl_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(fortyl_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_xoffset = 128; // this never changes
diff --git a/src/mame/video/4enraya.cpp b/src/mame/video/4enraya.cpp
index d4cbe45da7c..3d82b8862dd 100644
--- a/src/mame/video/4enraya.cpp
+++ b/src/mame/video/4enraya.cpp
@@ -26,7 +26,7 @@ TILE_GET_INFO_MEMBER(_4enraya_state::get_tile_info)
void _4enraya_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(_4enraya_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(_4enraya_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
uint32_t _4enraya_state::screen_update_4enraya(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
diff --git a/src/mame/video/abc1600.cpp b/src/mame/video/abc1600.cpp
index d40c864ad74..2093365cbef 100644
--- a/src/mame/video/abc1600.cpp
+++ b/src/mame/video/abc1600.cpp
@@ -11,17 +11,14 @@
#include "abc1600.lh"
#include "render.h"
+//#define VERBOSE 1
+#include "logmacro.h"
+
//**************************************************************************
// CONSTANTS / MACROS
//**************************************************************************
-#define LOG 0
-
-
-#define SY6845E_TAG "sy6845e"
-
-
// video RAM
#define VIDEORAM_SIZE 0x40000
#define VIDEORAM16_MASK 0x3ffff
@@ -213,8 +210,8 @@ void abc1600_mover_device::device_add_mconfig(machine_config &config)
m_crtc->set_screen(SCREEN_TAG);
m_crtc->set_show_border_area(true);
m_crtc->set_char_width(32);
- m_crtc->set_update_row_callback(FUNC(abc1600_mover_device::crtc_update_row), this);
- m_crtc->set_on_update_addr_change_callback(FUNC(abc1600_mover_device::crtc_update), this);
+ m_crtc->set_update_row_callback(FUNC(abc1600_mover_device::crtc_update_row));
+ m_crtc->set_on_update_addr_change_callback(FUNC(abc1600_mover_device::crtc_update));
}
@@ -230,7 +227,7 @@ abc1600_mover_device::abc1600_mover_device(const machine_config &mconfig, const
device_t(mconfig, ABC1600_MOVER, tag, owner, clock),
device_memory_interface(mconfig, *this),
m_space_config("vram", ENDIANNESS_BIG, 16, 18, -1, address_map_constructor(FUNC(abc1600_mover_device::mover_map), this)),
- m_crtc(*this, SY6845E_TAG),
+ m_crtc(*this, "sy6845e"),
m_palette(*this, "palette"),
m_wrmsk_rom(*this, "wrmsk"),
m_shinf_rom(*this, "shinf"),
@@ -356,18 +353,18 @@ WRITE8_MEMBER( abc1600_mover_device::video_ram_w )
{
// WRPORT_LB
m_wrm = (m_wrm & 0xff00) | data;
- if (LOG) logerror("WRM LB %02x -> %04x\n", data, m_wrm);
+ LOG("WRM LB %02x -> %04x\n", data, m_wrm);
}
else
{
// DATAPORT_LB
m_gmdi = (m_gmdi & 0xff00) | data;
- if (LOG) logerror("GMDI LB %02x -> %04x\n", data, m_gmdi);
+ LOG("GMDI LB %02x -> %04x\n", data, m_gmdi);
}
write_videoram(addr, m_gmdi, m_wrm & 0x00ff);
- if (LOG) logerror("Video RAM write LB to %05x : %04x\n", addr, read_videoram(addr));
+ LOG("Video RAM write LB to %05x : %04x\n", addr, read_videoram(addr));
}
else
{
@@ -375,18 +372,18 @@ WRITE8_MEMBER( abc1600_mover_device::video_ram_w )
{
// WRPORT_HB
m_wrm = (data << 8) | (m_wrm & 0xff);
- if (LOG) logerror("WRM HB %02x -> %04x\n", data, m_wrm);
+ LOG("WRM HB %02x -> %04x\n", data, m_wrm);
}
else
{
// DATAPORT_HB
m_gmdi = (data << 8) | (m_gmdi & 0xff);
- if (LOG) logerror("GMDI HB %02x -> %04x\n", data, m_gmdi);
+ LOG("GMDI HB %02x -> %04x\n", data, m_gmdi);
}
write_videoram(addr, m_gmdi, m_wrm & 0xff00);
- if (LOG) logerror("Video RAM write HB to %05x : %04x\n", addr, read_videoram(addr));
+ LOG("Video RAM write HB to %05x : %04x\n", addr, read_videoram(addr));
}
}
@@ -445,7 +442,7 @@ WRITE8_MEMBER( abc1600_mover_device::ldsx_hb_w )
*/
- if (LOG) logerror("%s LDSX HB: %02x\n", machine().describe_context(), data);
+ LOG("%s LDSX HB: %02x\n", machine().describe_context(), data);
m_xsize = ((data & 0x03) << 8) | (m_xsize & 0xff);
m_udy = BIT(data, 2);
@@ -474,7 +471,7 @@ WRITE8_MEMBER( abc1600_mover_device::ldsx_lb_w )
*/
- if (LOG) logerror("%s LDSX LB: %02x\n", machine().describe_context(), data);
+ LOG("%s LDSX LB: %02x\n", machine().describe_context(), data);
m_xsize = (m_xsize & 0x300) | data;
}
@@ -501,7 +498,7 @@ WRITE8_MEMBER( abc1600_mover_device::ldsy_hb_w )
*/
- if (LOG) logerror("%s LDSY HB: %02x\n", machine().describe_context(), data);
+ LOG("%s LDSY HB: %02x\n", machine().describe_context(), data);
m_ysize = ((data & 0x0f) << 8) | (m_ysize & 0xff);
}
@@ -528,7 +525,7 @@ WRITE8_MEMBER( abc1600_mover_device::ldsy_lb_w )
*/
- if (LOG) logerror("%s LDSY LB: %02x\n", machine().describe_context(), data);
+ LOG("%s LDSY LB: %02x\n", machine().describe_context(), data);
m_ysize = (m_ysize & 0xf00) | data;
}
@@ -555,7 +552,7 @@ WRITE8_MEMBER( abc1600_mover_device::ldtx_hb_w )
*/
- if (LOG) logerror("%s LDTX HB: %02x\n", machine().describe_context(), data);
+ LOG("%s LDTX HB: %02x\n", machine().describe_context(), data);
m_xto = ((data & 0x03) << 8) | (m_xto & 0xff);
m_mta = (m_mta & 0x3ffcf) | ((data & 0x03) << 4);
@@ -583,7 +580,7 @@ WRITE8_MEMBER( abc1600_mover_device::ldtx_lb_w )
*/
- if (LOG) logerror("%s LDTX LB: %02x\n", machine().describe_context(), data);
+ LOG("%s LDTX LB: %02x\n", machine().describe_context(), data);
m_xto = (m_xto & 0x300) | data;
m_mta = (m_mta & 0x3fff0) | (data >> 4);
@@ -611,7 +608,7 @@ WRITE8_MEMBER( abc1600_mover_device::ldty_hb_w )
*/
- if (LOG) logerror("%s LDTY HB: %02x\n", machine().describe_context(), data);
+ LOG("%s LDTY HB: %02x\n", machine().describe_context(), data);
if (L_P) return;
@@ -642,7 +639,7 @@ WRITE8_MEMBER( abc1600_mover_device::ldty_lb_w )
*/
- if (LOG) logerror("%s LDTY LB: %02x\n", machine().describe_context(), data);
+ LOG("%s LDTY LB: %02x\n", machine().describe_context(), data);
if (L_P) return;
@@ -673,7 +670,7 @@ WRITE8_MEMBER( abc1600_mover_device::ldfx_hb_w )
*/
- if (LOG) logerror("%s LDFX HB: %02x\n", machine().describe_context(), data);
+ LOG("%s LDFX HB: %02x\n", machine().describe_context(), data);
m_xfrom = ((data & 0x03) << 8) | (m_xfrom & 0xff);
m_mfa = (m_mfa & 0x3ffcf) | ((data & 0x03) << 4);
@@ -701,7 +698,7 @@ WRITE8_MEMBER( abc1600_mover_device::ldfx_lb_w )
*/
- if (LOG) logerror("%s LDFX LB: %02x\n", machine().describe_context(), data);
+ LOG("%s LDFX LB: %02x\n", machine().describe_context(), data);
m_xfrom = (m_xfrom & 0x300) | data;
m_mfa = (m_mfa & 0x3fff0) | (data >> 4);
@@ -729,7 +726,7 @@ WRITE8_MEMBER( abc1600_mover_device::ldfy_hb_w )
*/
- if (LOG) logerror("%s LDFY HB: %02x\n", machine().describe_context(), data);
+ LOG("%s LDFY HB: %02x\n", machine().describe_context(), data);
m_mfa = ((data & 0x0f) << 14) | (m_mfa & 0x3fff);
}
@@ -756,7 +753,7 @@ WRITE8_MEMBER( abc1600_mover_device::ldfy_lb_w )
*/
- if (LOG) logerror("%s LDFY LB: %02x\n", machine().describe_context(), data);
+ LOG("%s LDFY LB: %02x\n", machine().describe_context(), data);
m_mfa = (m_mfa & 0x3c03f) | (data << 6);
@@ -785,7 +782,7 @@ WRITE8_MEMBER( abc1600_mover_device::wrml_w )
*/
- if (LOG) logerror("MS %u : %02x\n", (offset >> 4) & 0x0f, data);
+ LOG("MS %u : %02x\n", (offset >> 4) & 0x0f, data);
if (m_clocks_disabled)
{
@@ -815,7 +812,7 @@ WRITE8_MEMBER( abc1600_mover_device::wrdl_w )
*/
- if (LOG) logerror("WS %u : %02x\n", (offset >> 4) & 0x0f, data);
+ LOG("WS %u : %02x\n", (offset >> 4) & 0x0f, data);
if (m_clocks_disabled)
{
@@ -834,13 +831,13 @@ WRITE8_MEMBER( abc1600_mover_device::wrmask_strobe_hb_w )
{
// DATAPORT_HB
m_gmdi = (data << 8) | (m_gmdi & 0xff);
- if (LOG) logerror("GMDI HB %04x\n", m_gmdi);
+ LOG("GMDI HB %04x\n", m_gmdi);
}
else
{
// WRPORT_HB
m_wrm = (data << 8) | (m_wrm & 0xff);
- if (LOG) logerror("WRM HB %04x\n", m_gmdi);
+ LOG("WRM HB %04x\n", m_gmdi);
}
}
@@ -855,13 +852,13 @@ WRITE8_MEMBER( abc1600_mover_device::wrmask_strobe_lb_w )
{
// DATAPORT_LB
m_gmdi = (m_gmdi & 0xff00) | data;
- if (LOG) logerror("GMDI LB %04x\n", m_gmdi);
+ LOG("GMDI LB %04x\n", m_gmdi);
}
else
{
// WRPORT_LB
m_wrm = (m_wrm & 0xff00) | data;
- if (LOG) logerror("WRM LB %04x\n", m_gmdi);
+ LOG("WRM LB %04x\n", m_gmdi);
}
}
@@ -872,7 +869,7 @@ WRITE8_MEMBER( abc1600_mover_device::wrmask_strobe_lb_w )
WRITE8_MEMBER( abc1600_mover_device::enable_clocks_w )
{
- if (LOG) logerror("ENABLE CLOCKS\n");
+ LOG("ENABLE CLOCKS\n");
m_clocks_disabled = 0;
}
@@ -899,7 +896,7 @@ WRITE8_MEMBER( abc1600_mover_device::flag_strobe_w )
*/
m_flag = data;
- if (LOG) logerror("FLAG %02x\n", m_flag);
+ LOG("FLAG %02x\n", m_flag);
}
@@ -910,7 +907,7 @@ WRITE8_MEMBER( abc1600_mover_device::flag_strobe_w )
WRITE8_MEMBER( abc1600_mover_device::endisp_w )
{
m_endisp = 1;
- if (LOG) logerror("ENDISP\n");
+ LOG("ENDISP\n");
}
@@ -1193,7 +1190,7 @@ inline uint16_t abc1600_mover_device::word_mixer(uint16_t rot)
void abc1600_mover_device::mover()
{
- if (LOG) logerror("XFROM %u XSIZE %u YSIZE %u XTO %u YTO %u MFA %05x MTA %05x U/D*X %u U/D*Y %u\n", m_xfrom, m_xsize, m_ysize, m_xto, m_yto, m_mfa, m_mta, m_udx, m_udy);
+ LOG("XFROM %u XSIZE %u YSIZE %u XTO %u YTO %u MFA %05x MTA %05x U/D*X %u U/D*Y %u\n", m_xfrom, m_xsize, m_ysize, m_xto, m_yto, m_mfa, m_mta, m_udx, m_udy);
m_amm = 1;
diff --git a/src/mame/video/abc800.cpp b/src/mame/video/abc800.cpp
index e03bcf19c81..ffc56559aee 100644
--- a/src/mame/video/abc800.cpp
+++ b/src/mame/video/abc800.cpp
@@ -283,7 +283,7 @@ void abc800m_state::abc800m_video(machine_config &config)
mc6845.set_screen(SCREEN_TAG);
mc6845.set_show_border_area(true);
mc6845.set_char_width(ABC800_CHAR_WIDTH);
- mc6845.set_update_row_callback(FUNC(abc800m_state::abc800m_update_row), this);
+ mc6845.set_update_row_callback(FUNC(abc800m_state::abc800m_update_row));
mc6845.out_vsync_callback().set(m_dart, FUNC(z80dart_device::rib_w)).invert();
screen_device &screen(SCREEN(config, SCREEN_TAG, SCREEN_TYPE_RASTER, rgb_t(0xff, 0xff, 0x00)));
diff --git a/src/mame/video/abc802.cpp b/src/mame/video/abc802.cpp
index 7ea2c43b284..7656e18dd22 100644
--- a/src/mame/video/abc802.cpp
+++ b/src/mame/video/abc802.cpp
@@ -184,7 +184,7 @@ void abc802_state::abc802_video(machine_config &config)
mc6845.set_screen(SCREEN_TAG);
mc6845.set_show_border_area(true);
mc6845.set_char_width(ABC800_CHAR_WIDTH);
- mc6845.set_update_row_callback(FUNC(abc802_state::abc802_update_row), this);
+ mc6845.set_update_row_callback(FUNC(abc802_state::abc802_update_row));
mc6845.out_vsync_callback().set(FUNC(abc802_state::vs_w));
mc6845.out_vsync_callback().append(m_dart, FUNC(z80dart_device::rib_w)).invert();
diff --git a/src/mame/video/abc806.cpp b/src/mame/video/abc806.cpp
index 82dd1238316..0bb243df817 100644
--- a/src/mame/video/abc806.cpp
+++ b/src/mame/video/abc806.cpp
@@ -10,7 +10,9 @@
#include "includes/abc80x.h"
#include "screen.h"
-#define LOG 0
+//#define VERBOSE 1
+#include "logmacro.h"
+
#define HORIZONTAL_PORCH_HACK 109
#define VERTICAL_PORCH_HACK 27
@@ -38,7 +40,7 @@ WRITE8_MEMBER( abc806_state::hrs_w )
*/
- if (LOG) logerror("%s HRS %02x\n", machine().describe_context(), data);
+ LOG("%s HRS %02x\n", machine().describe_context(), data);
m_hrs = data;
}
@@ -124,7 +126,7 @@ READ8_MEMBER( abc806_state::cli_r )
uint16_t hru2_addr = (m_hru2_a8 << 8) | (offset >> 8);
uint8_t data = m_hru2_prom->base()[hru2_addr] & 0x0f;
- if (LOG) logerror("HRU II %03x : %01x\n", hru2_addr, data);
+ LOG("HRU II %03x : %01x\n", hru2_addr, data);
data |= m_rtc->dio_r() << 7;
@@ -169,7 +171,7 @@ WRITE8_MEMBER( abc806_state::sto_w )
{
case 0:
// external memory enable
- if (LOG) logerror("%s EME %u\n", machine().describe_context(), level);
+ LOG("%s EME %u\n", machine().describe_context(), level);
m_eme = level;
break;
case 1:
@@ -483,7 +485,7 @@ void abc806_state::abc806_video(machine_config &config)
m_crtc->set_screen(SCREEN_TAG);
m_crtc->set_show_border_area(true);
m_crtc->set_char_width(ABC800_CHAR_WIDTH);
- m_crtc->set_update_row_callback(FUNC(abc806_state::abc806_update_row), this);
+ m_crtc->set_update_row_callback(FUNC(abc806_state::abc806_update_row));
m_crtc->out_hsync_callback().set(FUNC(abc806_state::hs_w));
m_crtc->out_vsync_callback().set(FUNC(abc806_state::vs_w));
diff --git a/src/mame/video/aeroboto.cpp b/src/mame/video/aeroboto.cpp
index 6718bf0a875..9f663dcca0d 100644
--- a/src/mame/video/aeroboto.cpp
+++ b/src/mame/video/aeroboto.cpp
@@ -42,7 +42,7 @@ TILE_GET_INFO_MEMBER(aeroboto_state::get_tile_info)
void aeroboto_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(aeroboto_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 64);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(aeroboto_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 64);
m_bg_tilemap->set_transparent_pen(0);
m_bg_tilemap->set_scroll_rows(64);
diff --git a/src/mame/video/aerofgt.cpp b/src/mame/video/aerofgt.cpp
index 7b39d8d9181..fd8496923bc 100644
--- a/src/mame/video/aerofgt.cpp
+++ b/src/mame/video/aerofgt.cpp
@@ -73,7 +73,7 @@ void aerofgt_state::aerofgt_register_state_globals( )
VIDEO_START_MEMBER(aerofgt_state,pspikes)
{
- m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(aerofgt_state::get_pspikes_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,32);
+ m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(aerofgt_state::get_pspikes_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 64,32);
/* no bg2 in this game */
m_sprite_gfx = 1;
@@ -84,8 +84,8 @@ VIDEO_START_MEMBER(aerofgt_state,pspikes)
VIDEO_START_MEMBER(aerofgt_state,karatblz)
{
- m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(aerofgt_state::karatblz_tile_info<0>),this),TILEMAP_SCAN_ROWS,8,8,64,64);
- m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(aerofgt_state::karatblz_tile_info<1>),this),TILEMAP_SCAN_ROWS,8,8,64,64);
+ m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(aerofgt_state::karatblz_tile_info<0>)), TILEMAP_SCAN_ROWS, 8,8, 64,64);
+ m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(aerofgt_state::karatblz_tile_info<1>)), TILEMAP_SCAN_ROWS, 8,8, 64,64);
m_tilemap[1]->set_transparent_pen(15);
m_spritepalettebank = 0;
@@ -96,8 +96,8 @@ VIDEO_START_MEMBER(aerofgt_state,karatblz)
VIDEO_START_MEMBER(aerofgt_state,spinlbrk)
{
- m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(aerofgt_state::spinlbrk_tile_info<0>),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(aerofgt_state::karatblz_tile_info<1>),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(aerofgt_state::spinlbrk_tile_info<0>)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(aerofgt_state::karatblz_tile_info<1>)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
m_tilemap[1]->set_transparent_pen(15);
@@ -111,8 +111,8 @@ VIDEO_START_MEMBER(aerofgt_state,spinlbrk)
VIDEO_START_MEMBER(aerofgt_state,turbofrc)
{
- m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(aerofgt_state::get_tile_info<0>),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(aerofgt_state::get_tile_info<1>),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(aerofgt_state::get_tile_info<0>)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(aerofgt_state::get_tile_info<1>)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
m_tilemap[1]->set_transparent_pen(15);
@@ -367,7 +367,7 @@ uint32_t aerofgt_state::screen_update_aerofgt(screen_device &screen, bitmap_ind1
// BOOTLEG
VIDEO_START_MEMBER(aerofgt_state,wbbc97)
{
- m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(aerofgt_state::get_pspikes_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(aerofgt_state::get_pspikes_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
/* no bg2 in this game */
m_tilemap[0]->set_transparent_pen(15);
diff --git a/src/mame/video/airbustr.cpp b/src/mame/video/airbustr.cpp
index 69e7693c08e..2b79c4d4505 100644
--- a/src/mame/video/airbustr.cpp
+++ b/src/mame/video/airbustr.cpp
@@ -79,8 +79,8 @@ TILE_GET_INFO_MEMBER(airbustr_state::get_tile_info)
void airbustr_state::video_start()
{
- m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(airbustr_state::get_tile_info<0>),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(airbustr_state::get_tile_info<1>),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(airbustr_state::get_tile_info<0>)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(airbustr_state::get_tile_info<1>)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
m_tilemap[1]->set_transparent_pen(0);
diff --git a/src/mame/video/airraid_dev.cpp b/src/mame/video/airraid_dev.cpp
index 3dac9982bc7..8e92c27f10e 100644
--- a/src/mame/video/airraid_dev.cpp
+++ b/src/mame/video/airraid_dev.cpp
@@ -81,13 +81,13 @@ void airraid_video_device::device_start()
save_item(NAME(m_hw));
// there might actually be 4 banks of 2048 x 16 tilemaps in here as the upper scroll bits are with the rom banking.
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(airraid_video_device::get_bg_tile_info),this),tilemap_mapper_delegate(FUNC(airraid_video_device::bg_scan),this),16,16,2048, 64);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(airraid_video_device::get_bg_tile_info)), tilemap_mapper_delegate(*this, FUNC(airraid_video_device::bg_scan)), 16, 16, 2048, 64);
// which could in turn mean this is actually 256 x 128, not 256 x 512
-// m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(airraid_video_device::get_fg_tile_info),this),tilemap_mapper_delegate(FUNC(airraid_video_device::fg_scan),this),16,16,256, 512);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(airraid_video_device::get_fg_tile_info),this),tilemap_mapper_delegate(FUNC(airraid_video_device::fg_scan),this),16,16,256, 128);
+// m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(airraid_video_device::get_fg_tile_info)), tilemap_mapper_delegate(*this, FUNC(airraid_video_device::fg_scan)), 16, 16, 256, 512);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(airraid_video_device::get_fg_tile_info)), tilemap_mapper_delegate(*this, FUNC(airraid_video_device::fg_scan)), 16, 16, 256, 128);
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(airraid_video_device::get_cstx_tile_info),this),TILEMAP_SCAN_ROWS, 8,8,32,32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(airraid_video_device::get_cstx_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
// m_fg_tilemap->set_transparent_pen(0);
// m_tx_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/alpha68k.cpp b/src/mame/video/alpha68k.cpp
index bccefa4191d..ca5199ff9c6 100644
--- a/src/mame/video/alpha68k.cpp
+++ b/src/mame/video/alpha68k.cpp
@@ -70,7 +70,7 @@ void alpha68k_II_state::videoram_w(offs_t offset, u16 data)
VIDEO_START_MEMBER(alpha68k_II_state,alpha68k)
{
- m_fix_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(alpha68k_II_state::get_tile_info),this), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
+ m_fix_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(alpha68k_II_state::get_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
m_fix_tilemap->set_transparent_pen(0);
}
diff --git a/src/mame/video/ampoker2.cpp b/src/mame/video/ampoker2.cpp
index fafd36e60c7..88f9cb606b5 100644
--- a/src/mame/video/ampoker2.cpp
+++ b/src/mame/video/ampoker2.cpp
@@ -149,13 +149,13 @@ TILE_GET_INFO_MEMBER(ampoker2_state::s2k_get_bg_tile_info)
void ampoker2_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ampoker2_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS,
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ampoker2_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS,
8, 8, 64, 32);
}
VIDEO_START_MEMBER(ampoker2_state,sigma2k)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ampoker2_state::s2k_get_bg_tile_info),this), TILEMAP_SCAN_ROWS,
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ampoker2_state::s2k_get_bg_tile_info)), TILEMAP_SCAN_ROWS,
8, 8, 64, 32);
}
diff --git a/src/mame/video/amspdwy.cpp b/src/mame/video/amspdwy.cpp
index 28c757f3ae0..49aa683ac50 100644
--- a/src/mame/video/amspdwy.cpp
+++ b/src/mame/video/amspdwy.cpp
@@ -69,7 +69,7 @@ TILEMAP_MAPPER_MEMBER(amspdwy_state::tilemap_scan_cols_back)
void amspdwy_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(amspdwy_state::get_tile_info),this), tilemap_mapper_delegate(FUNC(amspdwy_state::tilemap_scan_cols_back),this), 8, 8, 0x20, 0x20);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(amspdwy_state::get_tile_info)), tilemap_mapper_delegate(*this, FUNC(amspdwy_state::tilemap_scan_cols_back)), 8, 8, 0x20, 0x20);
}
diff --git a/src/mame/video/angelkds.cpp b/src/mame/video/angelkds.cpp
index afe1501c3a6..31e58854505 100644
--- a/src/mame/video/angelkds.cpp
+++ b/src/mame/video/angelkds.cpp
@@ -220,13 +220,13 @@ void angelkds_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprec
void angelkds_state::video_start()
{
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(angelkds_state::get_tx_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(angelkds_state::get_tx_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_tx_tilemap->set_transparent_pen(0);
- m_bgbot_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(angelkds_state::get_bgbot_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bgbot_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(angelkds_state::get_bgbot_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_bgbot_tilemap->set_transparent_pen(15);
- m_bgtop_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(angelkds_state::get_bgtop_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bgtop_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(angelkds_state::get_bgtop_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_bgtop_tilemap->set_transparent_pen(15);
}
diff --git a/src/mame/video/appoooh.cpp b/src/mame/video/appoooh.cpp
index e59b0332e8c..f0e344d0dfa 100644
--- a/src/mame/video/appoooh.cpp
+++ b/src/mame/video/appoooh.cpp
@@ -124,8 +124,8 @@ TILE_GET_INFO_MEMBER(appoooh_state::get_bg_tile_info)
void appoooh_state::video_start()
{
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(appoooh_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(appoooh_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(appoooh_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(appoooh_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(0);
m_fg_tilemap->set_scrolldy(8, 8);
diff --git a/src/mame/video/aquarium.cpp b/src/mame/video/aquarium.cpp
index 1e3b9c794a4..733163d0584 100644
--- a/src/mame/video/aquarium.cpp
+++ b/src/mame/video/aquarium.cpp
@@ -60,9 +60,9 @@ void aquarium_state::bak_videoram_w(offs_t offset, u16 data, u16 mem_mask)
void aquarium_state::video_start()
{
- m_txt_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(aquarium_state::get_txt_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_mid_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(aquarium_state::get_mid_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- m_bak_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(aquarium_state::get_bak_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_txt_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(aquarium_state::get_txt_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_mid_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(aquarium_state::get_mid_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_bak_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(aquarium_state::get_bak_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
m_txt_tilemap->set_transparent_pen(0);
m_mid_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/aquarius.cpp b/src/mame/video/aquarius.cpp
index f291f3e9f60..68d825b144a 100644
--- a/src/mame/video/aquarius.cpp
+++ b/src/mame/video/aquarius.cpp
@@ -67,7 +67,7 @@ TILE_GET_INFO_MEMBER(aquarius_state::aquarius_gettileinfo)
void aquarius_state::video_start()
{
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(aquarius_state::aquarius_gettileinfo),this), TILEMAP_SCAN_ROWS, 8, 8, 40, 25);
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(aquarius_state::aquarius_gettileinfo)), TILEMAP_SCAN_ROWS, 8, 8, 40, 25);
}
uint32_t aquarius_state::screen_update_aquarius(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
diff --git a/src/mame/video/argus.cpp b/src/mame/video/argus.cpp
index 28d0f2f3845..f08b4b25683 100644
--- a/src/mame/video/argus.cpp
+++ b/src/mame/video/argus.cpp
@@ -242,10 +242,10 @@ void argus_common_state::reset_common()
void argus_state::video_start()
{
/* info offset w h col row */
-// m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(argus_state::get_bg0_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 4096, 32); // full 65536 width tilemap
- m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(argus_state::get_bg0_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 1024/16, 32);
- m_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(argus_state::get_bg1_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 32, 32);
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(argus_state::get_tx_tile_info<3>),this), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
+// m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(argus_state::get_bg0_tile_info)), TILEMAP_SCAN_COLS, 16, 16, 4096, 32); // full 65536 width tilemap
+ m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(argus_state::get_bg0_tile_info)), TILEMAP_SCAN_COLS, 16, 16, 1024/16, 32);
+ m_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(argus_state::get_bg1_tile_info)), TILEMAP_SCAN_COLS, 16, 16, 32, 32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(argus_state::get_tx_tile_info<3>)), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
m_bg_tilemap[1]->set_transparent_pen(15);
m_tx_tilemap->set_transparent_pen(15);
@@ -265,8 +265,8 @@ void argus_state::video_reset()
void valtric_state::video_start()
{
/* info offset w h col row */
- m_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(valtric_state::get_bg_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 32, 32);
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(valtric_state::get_tx_tile_info<2>),this), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
+ m_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(valtric_state::get_bg_tile_info)), TILEMAP_SCAN_COLS, 16, 16, 32, 32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(valtric_state::get_tx_tile_info<2>)), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
m_tx_tilemap->set_transparent_pen(15);
@@ -289,9 +289,9 @@ void valtric_state::video_reset()
void butasan_state::video_start()
{
/* info offset w h col row */
- m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(butasan_state::get_bg0_tile_info),this), tilemap_mapper_delegate(FUNC(butasan_state::bg_scan),this), 16, 16, 32, 32);
- m_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(butasan_state::get_bg1_tile_info),this), tilemap_mapper_delegate(FUNC(butasan_state::bg_scan),this), 16, 16, 32, 32);
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(butasan_state::get_tx_tile_info),this), tilemap_mapper_delegate(FUNC(butasan_state::tx_scan),this), 8, 8, 32, 32);
+ m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(butasan_state::get_bg0_tile_info)), tilemap_mapper_delegate(*this, FUNC(butasan_state::bg_scan)), 16, 16, 32, 32);
+ m_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(butasan_state::get_bg1_tile_info)), tilemap_mapper_delegate(*this, FUNC(butasan_state::bg_scan)), 16, 16, 32, 32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(butasan_state::get_tx_tile_info)), tilemap_mapper_delegate(*this, FUNC(butasan_state::tx_scan)), 8, 8, 32, 32);
m_bg_tilemap[1]->set_transparent_pen(15);
m_tx_tilemap->set_transparent_pen(15);
diff --git a/src/mame/video/arkanoid.cpp b/src/mame/video/arkanoid.cpp
index b1996a29279..e1d6a7af08c 100644
--- a/src/mame/video/arkanoid.cpp
+++ b/src/mame/video/arkanoid.cpp
@@ -169,7 +169,7 @@ TILE_GET_INFO_MEMBER(arkanoid_state::get_bg_tile_info)
void arkanoid_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(arkanoid_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(arkanoid_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
void arkanoid_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect )
diff --git a/src/mame/video/armedf.cpp b/src/mame/video/armedf.cpp
index 5e15e0ff151..c1d5d3bf2f7 100644
--- a/src/mame/video/armedf.cpp
+++ b/src/mame/video/armedf.cpp
@@ -115,11 +115,11 @@ VIDEO_START_MEMBER(armedf_state,terraf)
{
m_sprite_offy = (m_scroll_type & 2 ) ? 0 : 128; /* legion, legiono, crazy climber 2 */
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(armedf_state::get_bg_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 64, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(armedf_state::get_fg_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(armedf_state::get_bg_tile_info)), TILEMAP_SCAN_COLS, 16, 16, 64, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(armedf_state::get_fg_tile_info)), TILEMAP_SCAN_COLS, 16, 16, 64, 32);
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(armedf_state::get_nb1414m4_tx_tile_info),this),
- (m_scroll_type == 2) ? tilemap_mapper_delegate(FUNC(armedf_state::armedf_scan_type3),this) : tilemap_mapper_delegate(FUNC(armedf_state::armedf_scan_type2),this), 8, 8, 64, 32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(armedf_state::get_nb1414m4_tx_tile_info)),
+ (m_scroll_type == 2) ? tilemap_mapper_delegate(*this, FUNC(armedf_state::armedf_scan_type3)) : tilemap_mapper_delegate(*this, FUNC(armedf_state::armedf_scan_type2)), 8, 8, 64, 32);
m_bg_tilemap->set_transparent_pen(0xf);
m_fg_tilemap->set_transparent_pen(0xf);
@@ -138,10 +138,10 @@ VIDEO_START_MEMBER(armedf_state,armedf)
{
m_sprite_offy = (m_scroll_type & 2 ) ? 0 : 128; /* legion, legiono, crazy climber 2 */
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(armedf_state::get_bg_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 64, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(armedf_state::get_fg_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(armedf_state::get_bg_tile_info)), TILEMAP_SCAN_COLS, 16, 16, 64, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(armedf_state::get_fg_tile_info)), TILEMAP_SCAN_COLS, 16, 16, 64, 32);
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(armedf_state::get_armedf_tx_tile_info),this), tilemap_mapper_delegate(FUNC(armedf_state::armedf_scan_type1),this), 8, 8, 64, 32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(armedf_state::get_armedf_tx_tile_info)), tilemap_mapper_delegate(*this, FUNC(armedf_state::armedf_scan_type1)), 8, 8, 64, 32);
m_bg_tilemap->set_transparent_pen(0xf);
m_fg_tilemap->set_transparent_pen(0xf);
diff --git a/src/mame/video/ashnojoe.cpp b/src/mame/video/ashnojoe.cpp
index c515d078aa8..a2367c07dc0 100644
--- a/src/mame/video/ashnojoe.cpp
+++ b/src/mame/video/ashnojoe.cpp
@@ -136,12 +136,12 @@ void ashnojoe_state::tilemap_regs_w(offs_t offset, u16 data, u16 mem_mask)
void ashnojoe_state::video_start()
{
- m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ashnojoe_state::get_tile_info_highest),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ashnojoe_state::get_tile_info_midlow),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- m_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ashnojoe_state::get_tile_info_high),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_tilemap[3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ashnojoe_state::get_tile_info_low),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_tilemap[4] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ashnojoe_state::get_tile_info_midhigh),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- m_tilemap[5] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ashnojoe_state::get_tile_info_lowest),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ashnojoe_state::get_tile_info_highest)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ashnojoe_state::get_tile_info_midlow)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ashnojoe_state::get_tile_info_high)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap[3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ashnojoe_state::get_tile_info_low)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap[4] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ashnojoe_state::get_tile_info_midhigh)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_tilemap[5] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ashnojoe_state::get_tile_info_lowest)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
m_tilemap[0]->set_transparent_pen(15);
m_tilemap[1]->set_transparent_pen(15);
diff --git a/src/mame/video/atarifb.cpp b/src/mame/video/atarifb.cpp
index 05c63c7e744..3c68cb2fd2d 100644
--- a/src/mame/video/atarifb.cpp
+++ b/src/mame/video/atarifb.cpp
@@ -88,9 +88,9 @@ WRITE8_MEMBER(atarifb_state::atarifb_field_videoram_w)
void atarifb_state::video_start()
{
- m_alpha1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(atarifb_state::alpha1_get_tile_info),this), TILEMAP_SCAN_COLS, 8, 8, 3, 32);
- m_alpha2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(atarifb_state::alpha2_get_tile_info),this), TILEMAP_SCAN_COLS, 8, 8, 3, 32);
- m_field_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(atarifb_state::field_get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_alpha1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(atarifb_state::alpha1_get_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 3, 32);
+ m_alpha2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(atarifb_state::alpha2_get_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 3, 32);
+ m_field_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(atarifb_state::field_get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
diff --git a/src/mame/video/atetris.cpp b/src/mame/video/atetris.cpp
index 06faefdeabe..448dd71110d 100644
--- a/src/mame/video/atetris.cpp
+++ b/src/mame/video/atetris.cpp
@@ -51,7 +51,7 @@ WRITE8_MEMBER(atetris_state::videoram_w)
void atetris_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(atetris_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8,8, 64,32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(atetris_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 64,32);
}
diff --git a/src/mame/video/bagman.cpp b/src/mame/video/bagman.cpp
index 6d65bc6ea9c..ec93795a4bc 100644
--- a/src/mame/video/bagman.cpp
+++ b/src/mame/video/bagman.cpp
@@ -107,7 +107,7 @@ TILE_GET_INFO_MEMBER(bagman_state::get_bg_tile_info)
void bagman_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(bagman_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS,
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(bagman_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS,
8, 8, 32, 32);
}
diff --git a/src/mame/video/bankp.cpp b/src/mame/video/bankp.cpp
index 44b70c4cd06..44540c0dc5f 100644
--- a/src/mame/video/bankp.cpp
+++ b/src/mame/video/bankp.cpp
@@ -147,8 +147,8 @@ TILE_GET_INFO_MEMBER(bankp_state::get_fg_tile_info)
void bankp_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(bankp_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(bankp_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(bankp_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(bankp_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_bg_tilemap->configure_groups(*m_gfxdecode->gfx(1), 0);
m_fg_tilemap->configure_groups(*m_gfxdecode->gfx(0), 0);
diff --git a/src/mame/video/baraduke.cpp b/src/mame/video/baraduke.cpp
index 3aa646b21f8..6ebc7730183 100644
--- a/src/mame/video/baraduke.cpp
+++ b/src/mame/video/baraduke.cpp
@@ -114,9 +114,9 @@ TILE_GET_INFO_MEMBER(baraduke_state::get_tile_info1)
void baraduke_state::video_start()
{
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(baraduke_state::tx_get_tile_info),this),tilemap_mapper_delegate(FUNC(baraduke_state::tx_tilemap_scan),this),8,8,36,28);
- m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(baraduke_state::get_tile_info0),this),TILEMAP_SCAN_ROWS,8,8,64,32);
- m_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(baraduke_state::get_tile_info1),this),TILEMAP_SCAN_ROWS,8,8,64,32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(baraduke_state::tx_get_tile_info)), tilemap_mapper_delegate(*this, FUNC(baraduke_state::tx_tilemap_scan)), 8,8, 36,28);
+ m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(baraduke_state::get_tile_info0)), TILEMAP_SCAN_ROWS, 8,8, 64,32);
+ m_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(baraduke_state::get_tile_info1)), TILEMAP_SCAN_ROWS, 8,8, 64,32);
m_tx_tilemap->set_transparent_pen(3);
m_bg_tilemap[0]->set_transparent_pen(7);
diff --git a/src/mame/video/battlane.cpp b/src/mame/video/battlane.cpp
index 18e669d84df..0ef5a52ff9a 100644
--- a/src/mame/video/battlane.cpp
+++ b/src/mame/video/battlane.cpp
@@ -137,7 +137,7 @@ TILEMAP_MAPPER_MEMBER(battlane_state::battlane_tilemap_scan_rows_2x2)
void battlane_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(battlane_state::get_tile_info_bg),this), tilemap_mapper_delegate(FUNC(battlane_state::battlane_tilemap_scan_rows_2x2),this), 16, 16, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(battlane_state::get_tile_info_bg)), tilemap_mapper_delegate(*this, FUNC(battlane_state::battlane_tilemap_scan_rows_2x2)), 16, 16, 32, 32);
m_screen_bitmap.allocate(32 * 8, 32 * 8);
save_item(NAME(m_screen_bitmap));
}
diff --git a/src/mame/video/battlex.cpp b/src/mame/video/battlex.cpp
index bd10120f76a..218d3163fb4 100644
--- a/src/mame/video/battlex.cpp
+++ b/src/mame/video/battlex.cpp
@@ -71,12 +71,12 @@ TILE_GET_INFO_MEMBER(battlex_state::get_dodgeman_bg_tile_info)
void battlex_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(battlex_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(battlex_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
}
void battlex_state::video_start_dodgeman()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(battlex_state::get_dodgeman_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(battlex_state::get_dodgeman_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
}
void battlex_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect )
diff --git a/src/mame/video/bbusters.cpp b/src/mame/video/bbusters.cpp
index 41ad5fd5337..5d106814605 100644
--- a/src/mame/video/bbusters.cpp
+++ b/src/mame/video/bbusters.cpp
@@ -51,7 +51,7 @@ WRITE16_MEMBER(bbusters_state_base::video_w)
void bbusters_state_base::video_start()
{
- m_fix_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(bbusters_state_base::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fix_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(bbusters_state_base::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fix_tilemap->set_transparent_pen(15);
save_item(NAME(m_scale_line_count));
@@ -61,8 +61,8 @@ void bbusters_state::video_start()
{
bbusters_state_base::video_start();
- m_pf_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(&bbusters_state::get_pf_tile_info<0,3>, "layer0_gfx3", this), TILEMAP_SCAN_COLS, 16, 16, 128, 32);
- m_pf_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(&bbusters_state::get_pf_tile_info<1,4>, "layer1_gfx4", this), TILEMAP_SCAN_COLS, 16, 16, 128, 32);
+ m_pf_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, NAME((&bbusters_state::get_pf_tile_info<0,3>))), TILEMAP_SCAN_COLS, 16, 16, 128, 32);
+ m_pf_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, NAME((&bbusters_state::get_pf_tile_info<1,4>))), TILEMAP_SCAN_COLS, 16, 16, 128, 32);
m_pf_tilemap[0]->set_transparent_pen(15);
}
@@ -71,8 +71,8 @@ void mechatt_state::video_start()
{
bbusters_state_base::video_start();
- m_pf_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(&mechatt_state::get_pf_tile_info<0,2>, "layer0_gfx2", this), TILEMAP_SCAN_COLS, 16, 16, 256, 32);
- m_pf_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(&mechatt_state::get_pf_tile_info<1,3>, "layer1_gfx3", this), TILEMAP_SCAN_COLS, 16, 16, 256, 32);
+ m_pf_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, NAME((&mechatt_state::get_pf_tile_info<0,2>))), TILEMAP_SCAN_COLS, 16, 16, 256, 32);
+ m_pf_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, NAME((&mechatt_state::get_pf_tile_info<1,3>))), TILEMAP_SCAN_COLS, 16, 16, 256, 32);
m_pf_tilemap[0]->set_transparent_pen(15);
}
diff --git a/src/mame/video/bfm_adr2.cpp b/src/mame/video/bfm_adr2.cpp
index 1da7d078b2e..d660183ec96 100644
--- a/src/mame/video/bfm_adr2.cpp
+++ b/src/mame/video/bfm_adr2.cpp
@@ -233,9 +233,9 @@ void bfm_adder2_device::device_start()
save_item(NAME(m_adder_ram));
save_item(NAME(m_screen_ram));
- m_tilemap0 = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(bfm_adder2_device::get_tile0_info),this), TILEMAP_SCAN_ROWS, 8, 8, 50, 35);
+ m_tilemap0 = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(bfm_adder2_device::get_tile0_info)), TILEMAP_SCAN_ROWS, 8, 8, 50, 35);
- m_tilemap1 = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(bfm_adder2_device::get_tile1_info),this), TILEMAP_SCAN_ROWS, 8, 8, 50, 35);
+ m_tilemap1 = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(bfm_adder2_device::get_tile1_info)), TILEMAP_SCAN_ROWS, 8, 8, 50, 35);
palette().set_pen_color(0,rgb_t(0x00,0x00,0x00));
palette().set_pen_color(1,rgb_t(0x00,0x00,0xFF));
diff --git a/src/mame/video/bigstrkb.cpp b/src/mame/video/bigstrkb.cpp
index 2372d0552ca..b98d4729387 100644
--- a/src/mame/video/bigstrkb.cpp
+++ b/src/mame/video/bigstrkb.cpp
@@ -113,9 +113,9 @@ WRITE16_MEMBER(bigstrkb_state::videoram3_w)
void bigstrkb_state::video_start()
{
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(bigstrkb_state::get_tile_info),this),TILEMAP_SCAN_COLS, 8, 8,64,32);
- m_tilemap2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(bigstrkb_state::get_tile2_info),this),tilemap_mapper_delegate(FUNC(bigstrkb_state::bg_scan),this), 16, 16,128,64);
- m_tilemap3 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(bigstrkb_state::get_tile3_info),this),tilemap_mapper_delegate(FUNC(bigstrkb_state::bg_scan),this), 16, 16,128,64);
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(bigstrkb_state::get_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 64, 32);
+ m_tilemap2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(bigstrkb_state::get_tile2_info)), tilemap_mapper_delegate(*this, FUNC(bigstrkb_state::bg_scan)), 16, 16, 128, 64);
+ m_tilemap3 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(bigstrkb_state::get_tile3_info)), tilemap_mapper_delegate(*this, FUNC(bigstrkb_state::bg_scan)), 16, 16, 128, 64);
m_tilemap->set_transparent_pen(15);
//m_tilemap2->set_transparent_pen(15);
diff --git a/src/mame/video/bking.cpp b/src/mame/video/bking.cpp
index 59d43fbc4dc..52e020d0d4c 100644
--- a/src/mame/video/bking.cpp
+++ b/src/mame/video/bking.cpp
@@ -215,7 +215,7 @@ TILE_GET_INFO_MEMBER(bking_state::get_tile_info)
void bking_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(bking_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(bking_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_screen->register_screen_bitmap(m_colmap_bg);
m_screen->register_screen_bitmap(m_colmap_ball);
}
diff --git a/src/mame/video/blktiger.cpp b/src/mame/video/blktiger.cpp
index 9583ed28750..316ac2343c8 100644
--- a/src/mame/video/blktiger.cpp
+++ b/src/mame/video/blktiger.cpp
@@ -71,9 +71,9 @@ void blktiger_state::video_start()
m_scroll_ram = std::make_unique<uint8_t[]>(BGRAM_BANK_SIZE * BGRAM_BANKS);
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(blktiger_state::get_tx_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_bg_tilemap8x4 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(blktiger_state::get_bg_tile_info),this), tilemap_mapper_delegate(FUNC(blktiger_state::bg8x4_scan),this), 16, 16, 128, 64);
- m_bg_tilemap4x8 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(blktiger_state::get_bg_tile_info),this), tilemap_mapper_delegate(FUNC(blktiger_state::bg4x8_scan),this), 16, 16, 64, 128);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(blktiger_state::get_tx_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap8x4 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(blktiger_state::get_bg_tile_info)), tilemap_mapper_delegate(*this, FUNC(blktiger_state::bg8x4_scan)), 16, 16, 128, 64);
+ m_bg_tilemap4x8 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(blktiger_state::get_bg_tile_info)), tilemap_mapper_delegate(*this, FUNC(blktiger_state::bg4x8_scan)), 16, 16, 64, 128);
m_tx_tilemap->set_transparent_pen(3);
diff --git a/src/mame/video/blmbycar.cpp b/src/mame/video/blmbycar.cpp
index d6bcb3f8e29..0c0c4577ef5 100644
--- a/src/mame/video/blmbycar.cpp
+++ b/src/mame/video/blmbycar.cpp
@@ -77,8 +77,8 @@ TILE_GET_INFO_MEMBER(blmbycar_state::get_tile_info)
void blmbycar_state::video_start()
{
- m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(blmbycar_state::get_tile_info<0>),this), TILEMAP_SCAN_ROWS, 16, 16, DIM_NX, DIM_NY );
- m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(blmbycar_state::get_tile_info<1>),this), TILEMAP_SCAN_ROWS, 16, 16, DIM_NX, DIM_NY );
+ m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(blmbycar_state::get_tile_info<0>)), TILEMAP_SCAN_ROWS, 16, 16, DIM_NX, DIM_NY );
+ m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(blmbycar_state::get_tile_info<1>)), TILEMAP_SCAN_ROWS, 16, 16, DIM_NX, DIM_NY );
m_tilemap[1]->set_transparent_pen(0);
}
diff --git a/src/mame/video/bloodbro.cpp b/src/mame/video/bloodbro.cpp
index 5e9a680eda0..f08d881f5ff 100644
--- a/src/mame/video/bloodbro.cpp
+++ b/src/mame/video/bloodbro.cpp
@@ -58,9 +58,9 @@ TILE_GET_INFO_MEMBER(bloodbro_state::get_tx_tile_info)
void bloodbro_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(bloodbro_state::get_bg_tile_info),this),TILEMAP_SCAN_ROWS,16,16,32,16);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(bloodbro_state::get_fg_tile_info),this),TILEMAP_SCAN_ROWS,16,16,32,16);
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(bloodbro_state::get_tx_tile_info),this),TILEMAP_SCAN_ROWS, 8, 8,32,32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(bloodbro_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 16);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(bloodbro_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 16);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(bloodbro_state::get_tx_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(15);
m_tx_tilemap->set_transparent_pen(15);
diff --git a/src/mame/video/blueprnt.cpp b/src/mame/video/blueprnt.cpp
index 59ea2aa97b8..7005cb5c1f5 100644
--- a/src/mame/video/blueprnt.cpp
+++ b/src/mame/video/blueprnt.cpp
@@ -115,7 +115,7 @@ TILE_GET_INFO_MEMBER(blueprnt_state::get_bg_tile_info)
VIDEO_START_MEMBER(blueprnt_state,blueprnt)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(blueprnt_state::get_bg_tile_info),this), TILEMAP_SCAN_COLS_FLIP_X, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(blueprnt_state::get_bg_tile_info)), TILEMAP_SCAN_COLS_FLIP_X, 8, 8, 32, 32);
m_bg_tilemap->set_transparent_pen(0);
m_bg_tilemap->set_scroll_cols(32);
diff --git a/src/mame/video/bogeyman.cpp b/src/mame/video/bogeyman.cpp
index ed7ed049fa3..8405ae6b06b 100644
--- a/src/mame/video/bogeyman.cpp
+++ b/src/mame/video/bogeyman.cpp
@@ -82,8 +82,8 @@ TILE_GET_INFO_MEMBER(bogeyman_state::get_fg_tile_info)
void bogeyman_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(bogeyman_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 16, 16);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(bogeyman_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(bogeyman_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 16, 16);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(bogeyman_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(0);
}
diff --git a/src/mame/video/bombjack.cpp b/src/mame/video/bombjack.cpp
index d93848e8d3e..eef0d90eac9 100644
--- a/src/mame/video/bombjack.cpp
+++ b/src/mame/video/bombjack.cpp
@@ -64,8 +64,8 @@ TILE_GET_INFO_MEMBER(bombjack_state::get_fg_tile_info)
void bombjack_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(bombjack_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 16, 16);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(bombjack_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(bombjack_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 16, 16);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(bombjack_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(0);
}
diff --git a/src/mame/video/bosco.cpp b/src/mame/video/bosco.cpp
index 6d344c75fb4..7484346281a 100644
--- a/src/mame/video/bosco.cpp
+++ b/src/mame/video/bosco.cpp
@@ -118,8 +118,8 @@ TILE_GET_INFO_MEMBER(bosco_state::fg_get_tile_info )
VIDEO_START_MEMBER(bosco_state,bosco)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(bosco_state::bg_get_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(bosco_state::fg_get_tile_info),this),tilemap_mapper_delegate(FUNC(bosco_state::fg_tilemap_scan),this), 8,8, 8,32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(bosco_state::bg_get_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 32,32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(bosco_state::fg_get_tile_info)), tilemap_mapper_delegate(*this, FUNC(bosco_state::fg_tilemap_scan)), 8,8, 8,32);
m_bg_tilemap->configure_groups(*m_gfxdecode->gfx(0), 0x1f);
m_fg_tilemap->configure_groups(*m_gfxdecode->gfx(0), 0x1f);
diff --git a/src/mame/video/brkthru.cpp b/src/mame/video/brkthru.cpp
index eab926f5310..825616d5f53 100644
--- a/src/mame/video/brkthru.cpp
+++ b/src/mame/video/brkthru.cpp
@@ -108,8 +108,8 @@ WRITE8_MEMBER(brkthru_state::brkthru_fgram_w)
void brkthru_state::video_start()
{
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(brkthru_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(brkthru_state::get_bg_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 32, 16);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(brkthru_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(brkthru_state::get_bg_tile_info)), TILEMAP_SCAN_COLS, 16, 16, 32, 16);
m_fg_tilemap->set_transparent_pen(0);
m_bg_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/bsktball.cpp b/src/mame/video/bsktball.cpp
index 9ac1bc33b39..49f1e6a5285 100644
--- a/src/mame/video/bsktball.cpp
+++ b/src/mame/video/bsktball.cpp
@@ -28,7 +28,7 @@ TILE_GET_INFO_MEMBER(bsktball_state::get_bg_tile_info)
void bsktball_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(bsktball_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(bsktball_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
void bsktball_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect )
diff --git a/src/mame/video/bwing.cpp b/src/mame/video/bwing.cpp
index 5e86169679f..77648217931 100644
--- a/src/mame/video/bwing.cpp
+++ b/src/mame/video/bwing.cpp
@@ -125,9 +125,9 @@ void bwing_state::video_start()
{
int i;
- m_charmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(bwing_state::get_charinfo),this), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
- m_fgmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(bwing_state::get_fgtileinfo),this), tilemap_mapper_delegate(FUNC(bwing_state::scan_cols),this), 16, 16, 64, 64);
- m_bgmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(bwing_state::get_bgtileinfo),this), tilemap_mapper_delegate(FUNC(bwing_state::scan_cols),this), 16, 16, 64, 64);
+ m_charmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(bwing_state::get_charinfo)), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
+ m_fgmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(bwing_state::get_fgtileinfo)), tilemap_mapper_delegate(*this, FUNC(bwing_state::scan_cols)), 16, 16, 64, 64);
+ m_bgmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(bwing_state::get_bgtileinfo)), tilemap_mapper_delegate(*this, FUNC(bwing_state::scan_cols)), 16, 16, 64, 64);
m_charmap->set_transparent_pen(0);
m_fgmap->set_transparent_pen(0);
diff --git a/src/mame/video/c45.cpp b/src/mame/video/c45.cpp
index 2be60a34481..19946abdeee 100644
--- a/src/mame/video/c45.cpp
+++ b/src/mame/video/c45.cpp
@@ -234,8 +234,8 @@ void namco_c45_road_device::draw(bitmap_ind16 &bitmap, const rectangle &cliprect
void namco_c45_road_device::device_start()
{
// create a tilemap for the road
- m_tilemap = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(namco_c45_road_device::get_road_info), this),
- TILEMAP_SCAN_ROWS, ROAD_TILE_SIZE, ROAD_TILE_SIZE, ROAD_COLS, ROAD_ROWS);
+ m_tilemap = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(namco_c45_road_device::get_road_info)),
+ TILEMAP_SCAN_ROWS, ROAD_TILE_SIZE, ROAD_TILE_SIZE, ROAD_COLS, ROAD_ROWS);
}
diff --git a/src/mame/video/cabal.cpp b/src/mame/video/cabal.cpp
index 22b1d396643..3dc32c9263a 100644
--- a/src/mame/video/cabal.cpp
+++ b/src/mame/video/cabal.cpp
@@ -40,8 +40,8 @@ TILE_GET_INFO_MEMBER(cabal_state::get_text_tile_info)
void cabal_state::video_start()
{
- m_background_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cabal_state::get_back_tile_info),this),TILEMAP_SCAN_ROWS,16,16,16,16);
- m_text_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cabal_state::get_text_tile_info),this),TILEMAP_SCAN_ROWS, 8,8,32,32);
+ m_background_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cabal_state::get_back_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 16, 16);
+ m_text_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cabal_state::get_text_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_text_layer->set_transparent_pen(3);
m_background_layer->set_transparent_pen(15);
diff --git a/src/mame/video/calomega.cpp b/src/mame/video/calomega.cpp
index 716d0a592a3..7e23c2bb555 100644
--- a/src/mame/video/calomega.cpp
+++ b/src/mame/video/calomega.cpp
@@ -50,7 +50,7 @@ TILE_GET_INFO_MEMBER(calomega_state::get_bg_tile_info)
void calomega_state::video_start()
{
m_gfxdecode->gfx(0)->set_granularity(8);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(calomega_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 31);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(calomega_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 31);
}
uint32_t calomega_state::screen_update_calomega(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
diff --git a/src/mame/video/canyon.cpp b/src/mame/video/canyon.cpp
index 6daaface4a8..c25ec2f709c 100644
--- a/src/mame/video/canyon.cpp
+++ b/src/mame/video/canyon.cpp
@@ -27,7 +27,7 @@ TILE_GET_INFO_MEMBER(canyon_state::get_bg_tile_info)
void canyon_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(canyon_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(canyon_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
diff --git a/src/mame/video/cbasebal.cpp b/src/mame/video/cbasebal.cpp
index 6c50356d99a..71805e4c938 100644
--- a/src/mame/video/cbasebal.cpp
+++ b/src/mame/video/cbasebal.cpp
@@ -41,8 +41,8 @@ void cbasebal_state::video_start()
m_textram = std::make_unique<uint8_t[]>(0x1000);
m_scrollram = std::make_unique<uint8_t[]>(0x1000);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cbasebal_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cbasebal_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cbasebal_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cbasebal_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_fg_tilemap->set_transparent_pen(3);
diff --git a/src/mame/video/cclimber.cpp b/src/mame/video/cclimber.cpp
index 2e7ff665d84..a7d0d320a78 100644
--- a/src/mame/video/cclimber.cpp
+++ b/src/mame/video/cclimber.cpp
@@ -444,11 +444,11 @@ TILE_GET_INFO_MEMBER(cclimber_state::toproller_get_bg_tile_info)
VIDEO_START_MEMBER(cclimber_state,cclimber)
{
- m_pf_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cclimber_state::cclimber_get_pf_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_pf_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cclimber_state::cclimber_get_pf_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_pf_tilemap->set_transparent_pen(0);
m_pf_tilemap->set_scroll_cols(32);
- m_bs_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cclimber_state::cclimber_get_bs_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bs_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cclimber_state::cclimber_get_bs_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_bs_tilemap->set_scroll_cols(1);
m_bs_tilemap->set_scroll_rows(1);
m_bs_tilemap->set_transmask(0, 0x01, 0); /* pen 0 is transaprent */
@@ -461,11 +461,11 @@ VIDEO_START_MEMBER(cclimber_state,cclimber)
VIDEO_START_MEMBER(cclimber_state,swimmer)
{
- m_pf_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cclimber_state::swimmer_get_pf_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_pf_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cclimber_state::swimmer_get_pf_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_pf_tilemap->set_transparent_pen(0);
m_pf_tilemap->set_scroll_cols(32);
- m_bs_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cclimber_state::cclimber_get_bs_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bs_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cclimber_state::cclimber_get_bs_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_bs_tilemap->set_scroll_cols(1);
m_bs_tilemap->set_scroll_rows(1);
m_bs_tilemap->set_transmask(0, 0x01, 0); /* pen 0 is transaprent */
@@ -480,13 +480,13 @@ VIDEO_START_MEMBER(cclimber_state,swimmer)
VIDEO_START_MEMBER(cclimber_state,toprollr)
{
- m_pf_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cclimber_state::toprollr_get_pf_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_pf_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cclimber_state::toprollr_get_pf_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_pf_tilemap->set_transparent_pen(0);
- m_toproller_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cclimber_state::toproller_get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_toproller_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cclimber_state::toproller_get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_toproller_bg_tilemap->set_scroll_rows(1);
- m_bs_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cclimber_state::toprollr_get_bs_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bs_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cclimber_state::toprollr_get_bs_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_bs_tilemap->set_scroll_cols(1);
m_bs_tilemap->set_scroll_rows(1);
m_bs_tilemap->set_transmask(0, 0x01, 0); /* pen 0 is transaprent */
diff --git a/src/mame/video/centiped.cpp b/src/mame/video/centiped.cpp
index 689cd6059a6..c7d1991ea76 100644
--- a/src/mame/video/centiped.cpp
+++ b/src/mame/video/centiped.cpp
@@ -97,7 +97,7 @@ VIDEO_START_MEMBER(centiped_state,centiped)
init_common();
init_penmask();
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(centiped_state::centiped_get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(centiped_state::centiped_get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
@@ -105,7 +105,7 @@ VIDEO_START_MEMBER(centiped_state,warlords)
{
init_common();
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(centiped_state::warlords_get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(centiped_state::warlords_get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
@@ -114,7 +114,7 @@ VIDEO_START_MEMBER(centiped_state,milliped)
init_common();
init_penmask();
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(centiped_state::milliped_get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(centiped_state::milliped_get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
@@ -123,7 +123,7 @@ VIDEO_START_MEMBER(centiped_state,bullsdrt)
init_common();
init_penmask();
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(centiped_state::bullsdrt_get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(centiped_state::bullsdrt_get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
diff --git a/src/mame/video/chaknpop.cpp b/src/mame/video/chaknpop.cpp
index bfdf5341300..bd2b1b07e90 100644
--- a/src/mame/video/chaknpop.cpp
+++ b/src/mame/video/chaknpop.cpp
@@ -150,7 +150,7 @@ void chaknpop_state::video_start()
uint8_t *RAM = memregion("maincpu")->base();
/* info offset type w h col row */
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(chaknpop_state::get_tx_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(chaknpop_state::get_tx_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_vram1 = &RAM[0x10000];
m_vram2 = &RAM[0x12000];
diff --git a/src/mame/video/champbas.cpp b/src/mame/video/champbas.cpp
index f329bc31622..4a2b577c0d6 100644
--- a/src/mame/video/champbas.cpp
+++ b/src/mame/video/champbas.cpp
@@ -159,12 +159,12 @@ TILE_GET_INFO_MEMBER(exctsccr_state::exctsccr_get_bg_tile_info)
void champbas_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(champbas_state::champbas_get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(champbas_state::champbas_get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
void exctsccr_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(exctsccr_state::exctsccr_get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(exctsccr_state::exctsccr_get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
diff --git a/src/mame/video/cheekyms.cpp b/src/mame/video/cheekyms.cpp
index 8930b3cb2e0..4d984f15a87 100644
--- a/src/mame/video/cheekyms.cpp
+++ b/src/mame/video/cheekyms.cpp
@@ -105,7 +105,7 @@ void cheekyms_state::video_start()
height = m_screen->height();
m_bitmap_buffer = std::make_unique<bitmap_ind16>(width, height);
- m_cm_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cheekyms_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_cm_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cheekyms_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_cm_tilemap->set_transparent_pen(0);
}
diff --git a/src/mame/video/circus.cpp b/src/mame/video/circus.cpp
index c160672f142..3708e1b964a 100644
--- a/src/mame/video/circus.cpp
+++ b/src/mame/video/circus.cpp
@@ -38,7 +38,7 @@ TILE_GET_INFO_MEMBER(circus_state::get_bg_tile_info)
void circus_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(circus_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(circus_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
void circus_state::draw_line( bitmap_ind16 &bitmap, const rectangle &cliprect, int x1, int y1, int x2, int y2, int dotted )
diff --git a/src/mame/video/circusc.cpp b/src/mame/video/circusc.cpp
index fa50b26a0a8..ab44ec4aff2 100644
--- a/src/mame/video/circusc.cpp
+++ b/src/mame/video/circusc.cpp
@@ -118,7 +118,7 @@ TILE_GET_INFO_MEMBER(circusc_state::get_tile_info)
void circusc_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(circusc_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(circusc_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_bg_tilemap->set_scroll_cols(32);
diff --git a/src/mame/video/citycon.cpp b/src/mame/video/citycon.cpp
index d5720c3536c..51594ad7fbc 100644
--- a/src/mame/video/citycon.cpp
+++ b/src/mame/video/citycon.cpp
@@ -52,8 +52,8 @@ TILE_GET_INFO_MEMBER(citycon_state::get_bg_tile_info)
void citycon_state::video_start()
{
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(citycon_state::get_fg_tile_info),this), tilemap_mapper_delegate(FUNC(citycon_state::citycon_scan),this), 8, 8, 128, 32);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(citycon_state::get_bg_tile_info),this), tilemap_mapper_delegate(FUNC(citycon_state::citycon_scan),this), 8, 8, 128, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(citycon_state::get_fg_tile_info)), tilemap_mapper_delegate(*this, FUNC(citycon_state::citycon_scan)), 8, 8, 128, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(citycon_state::get_bg_tile_info)), tilemap_mapper_delegate(*this, FUNC(citycon_state::citycon_scan)), 8, 8, 128, 32);
m_fg_tilemap->set_transparent_pen(0);
m_fg_tilemap->set_scroll_rows(32);
diff --git a/src/mame/video/cloak.cpp b/src/mame/video/cloak.cpp
index 351379a4ada..d07397fe1cc 100644
--- a/src/mame/video/cloak.cpp
+++ b/src/mame/video/cloak.cpp
@@ -161,7 +161,7 @@ TILE_GET_INFO_MEMBER(cloak_state::get_bg_tile_info)
void cloak_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cloak_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cloak_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_bitmap_videoram1 = std::make_unique<uint8_t[]>(256*256);
m_bitmap_videoram2 = std::make_unique<uint8_t[]>(256*256);
diff --git a/src/mame/video/clshroad.cpp b/src/mame/video/clshroad.cpp
index 9b2389fb46a..6c0c459f59a 100644
--- a/src/mame/video/clshroad.cpp
+++ b/src/mame/video/clshroad.cpp
@@ -202,10 +202,10 @@ WRITE8_MEMBER(clshroad_state::vram_1_w)
VIDEO_START_MEMBER(clshroad_state,firebatl)
{
/* These 2 use the graphics and scroll value */
- m_tilemap_0a = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(clshroad_state::get_tile_info_0a),this),TILEMAP_SCAN_ROWS,16,16,0x20,0x10);
- m_tilemap_0b = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(clshroad_state::get_tile_info_0b),this),TILEMAP_SCAN_ROWS,16,16,0x20,0x10);
+ m_tilemap_0a = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(clshroad_state::get_tile_info_0a)), TILEMAP_SCAN_ROWS, 16, 16, 0x20, 0x10);
+ m_tilemap_0b = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(clshroad_state::get_tile_info_0b)), TILEMAP_SCAN_ROWS, 16, 16, 0x20, 0x10);
/* Text (No scrolling) */
- m_tilemap_1 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(clshroad_state::get_tile_info_fb1),this),tilemap_mapper_delegate(FUNC(clshroad_state::tilemap_scan_rows_extra),this),8,8,0x24,0x20);
+ m_tilemap_1 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(clshroad_state::get_tile_info_fb1)), tilemap_mapper_delegate(*this, FUNC(clshroad_state::tilemap_scan_rows_extra)), 8, 8, 0x24, 0x20);
m_tilemap_0a->set_scrolldx(-0x2a, -0xb3);
m_tilemap_0b->set_scrolldx(-0x2a, -0xb3);
@@ -220,10 +220,10 @@ VIDEO_START_MEMBER(clshroad_state,firebatl)
VIDEO_START_MEMBER(clshroad_state,clshroad)
{
/* These 2 use the graphics and scroll value */
- m_tilemap_0a = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(clshroad_state::get_tile_info_0a),this),TILEMAP_SCAN_ROWS,16,16,0x20,0x10);
- m_tilemap_0b = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(clshroad_state::get_tile_info_0b),this),TILEMAP_SCAN_ROWS,16,16,0x20,0x10);
+ m_tilemap_0a = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(clshroad_state::get_tile_info_0a)), TILEMAP_SCAN_ROWS, 16, 16, 0x20, 0x10);
+ m_tilemap_0b = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(clshroad_state::get_tile_info_0b)), TILEMAP_SCAN_ROWS, 16, 16, 0x20, 0x10);
/* Text (No scrolling) */
- m_tilemap_1 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(clshroad_state::get_tile_info_1),this),tilemap_mapper_delegate(FUNC(clshroad_state::tilemap_scan_rows_extra),this),8,8,0x24,0x20);
+ m_tilemap_1 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(clshroad_state::get_tile_info_1)), tilemap_mapper_delegate(*this, FUNC(clshroad_state::tilemap_scan_rows_extra)), 8, 8, 0x24, 0x20);
m_tilemap_0a->set_scrolldx(-0x30, -0xb5);
m_tilemap_0b->set_scrolldx(-0x30, -0xb5);
diff --git a/src/mame/video/combatsc.cpp b/src/mame/video/combatsc.cpp
index c7598bb4b83..a18d116916c 100644
--- a/src/mame/video/combatsc.cpp
+++ b/src/mame/video/combatsc.cpp
@@ -250,9 +250,9 @@ TILE_GET_INFO_MEMBER(combatsc_state::get_text_info_bootleg)
VIDEO_START_MEMBER(combatsc_state,combatsc)
{
- m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(combatsc_state::get_tile_info0),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(combatsc_state::get_tile_info1),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_textlayer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(combatsc_state::get_text_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(combatsc_state::get_tile_info0)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(combatsc_state::get_tile_info1)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_textlayer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(combatsc_state::get_text_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_spriteram[0] = make_unique_clear<uint8_t[]>(0x800);
m_spriteram[1] = make_unique_clear<uint8_t[]>(0x800);
@@ -269,9 +269,9 @@ VIDEO_START_MEMBER(combatsc_state,combatsc)
VIDEO_START_MEMBER(combatsc_state,combatscb)
{
- m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(combatsc_state::get_tile_info0_bootleg),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(combatsc_state::get_tile_info1_bootleg),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_textlayer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(combatsc_state::get_text_info_bootleg),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(combatsc_state::get_tile_info0_bootleg)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(combatsc_state::get_tile_info1_bootleg)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_textlayer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(combatsc_state::get_text_info_bootleg)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_spriteram[0] = make_unique_clear<uint8_t[]>(0x800);
m_spriteram[1] = make_unique_clear<uint8_t[]>(0x800);
diff --git a/src/mame/video/commando.cpp b/src/mame/video/commando.cpp
index f5c13948eff..59cfac0bba2 100644
--- a/src/mame/video/commando.cpp
+++ b/src/mame/video/commando.cpp
@@ -83,8 +83,8 @@ TILE_GET_INFO_MEMBER(commando_state::get_fg_tile_info)
void commando_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(commando_state::get_bg_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 32, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(commando_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(commando_state::get_bg_tile_info)), TILEMAP_SCAN_COLS, 16, 16, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(commando_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(3);
}
diff --git a/src/mame/video/compgolf.cpp b/src/mame/video/compgolf.cpp
index 5d5a026d44c..aca51e9f67e 100644
--- a/src/mame/video/compgolf.cpp
+++ b/src/mame/video/compgolf.cpp
@@ -70,8 +70,8 @@ TILE_GET_INFO_MEMBER(compgolf_state::get_back_info)
void compgolf_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(compgolf_state::get_back_info),this), tilemap_mapper_delegate(FUNC(compgolf_state::back_scan),this), 16, 16, 32, 32);
- m_text_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(compgolf_state::get_text_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(compgolf_state::get_back_info)), tilemap_mapper_delegate(*this, FUNC(compgolf_state::back_scan)), 16, 16, 32, 32);
+ m_text_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(compgolf_state::get_text_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_text_tilemap->set_transparent_pen(0);
}
diff --git a/src/mame/video/contra.cpp b/src/mame/video/contra.cpp
index 9756dfeb528..5d3fc19c191 100644
--- a/src/mame/video/contra.cpp
+++ b/src/mame/video/contra.cpp
@@ -139,9 +139,9 @@ TILE_GET_INFO_MEMBER(contra_state::get_tx_tile_info)
void contra_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(contra_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(contra_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(contra_state::get_tx_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(contra_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(contra_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(contra_state::get_tx_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_buffered_spriteram = std::make_unique<uint8_t[]>(0x800);
m_buffered_spriteram_2 = std::make_unique<uint8_t[]>(0x800);
diff --git a/src/mame/video/cop01.cpp b/src/mame/video/cop01.cpp
index cdf9c478d4a..d6cfd73b368 100644
--- a/src/mame/video/cop01.cpp
+++ b/src/mame/video/cop01.cpp
@@ -97,8 +97,8 @@ TILE_GET_INFO_MEMBER(cop01_state::get_fg_tile_info)
void cop01_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cop01_state::get_bg_tile_info),this),TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cop01_state::get_fg_tile_info),this),TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cop01_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cop01_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(15);
diff --git a/src/mame/video/cps1.cpp b/src/mame/video/cps1.cpp
index 770e8b6fed2..30c96d507d2 100644
--- a/src/mame/video/cps1.cpp
+++ b/src/mame/video/cps1.cpp
@@ -2268,9 +2268,9 @@ void cps_state::video_start()
m_stars_rom_size = 0x2000; /* first 0x4000 of gfx ROM are used, but 0x0000-0x1fff is == 0x2000-0x3fff */
/* create tilemaps */
- m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cps_state::get_tile0_info),this), tilemap_mapper_delegate(FUNC(cps_state::tilemap0_scan),this), 8, 8, 64, 64);
- m_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cps_state::get_tile1_info),this), tilemap_mapper_delegate(FUNC(cps_state::tilemap1_scan),this), 16, 16, 64, 64);
- m_bg_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cps_state::get_tile2_info),this), tilemap_mapper_delegate(FUNC(cps_state::tilemap2_scan),this), 32, 32, 64, 64);
+ m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cps_state::get_tile0_info)), tilemap_mapper_delegate(*this, FUNC(cps_state::tilemap0_scan)), 8, 8, 64, 64);
+ m_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cps_state::get_tile1_info)), tilemap_mapper_delegate(*this, FUNC(cps_state::tilemap1_scan)), 16, 16, 64, 64);
+ m_bg_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cps_state::get_tile2_info)), tilemap_mapper_delegate(*this, FUNC(cps_state::tilemap2_scan)), 32, 32, 64, 64);
/* create empty tiles */
memset(m_empty_tile, 0x0f, sizeof(m_empty_tile));
diff --git a/src/mame/video/crbaloon.cpp b/src/mame/video/crbaloon.cpp
index 3f9771afb23..1078215e3bb 100644
--- a/src/mame/video/crbaloon.cpp
+++ b/src/mame/video/crbaloon.cpp
@@ -63,7 +63,7 @@ TILE_GET_INFO_MEMBER(crbaloon_state::get_bg_tile_info)
void crbaloon_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(crbaloon_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS_FLIP_XY, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(crbaloon_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS_FLIP_XY, 8, 8, 32, 32);
save_item(NAME(m_collision_address));
save_item(NAME(m_collision_address_clear));
diff --git a/src/mame/video/crospang.cpp b/src/mame/video/crospang.cpp
index 5e83d448063..cbb8c71ba6a 100644
--- a/src/mame/video/crospang.cpp
+++ b/src/mame/video/crospang.cpp
@@ -126,8 +126,8 @@ TILE_GET_INFO_MEMBER(crospang_state::get_fg_tile_info)
void crospang_state::video_start()
{
- m_bg_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(crospang_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- m_fg_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(crospang_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_bg_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(crospang_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_fg_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(crospang_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
m_fg_layer->set_transparent_pen(0);
}
diff --git a/src/mame/video/crshrace.cpp b/src/mame/video/crshrace.cpp
index 879d436923d..4a7a55a390d 100644
--- a/src/mame/video/crshrace.cpp
+++ b/src/mame/video/crshrace.cpp
@@ -41,8 +41,8 @@ uint32_t crshrace_state::crshrace_tile_callback( uint32_t code )
void crshrace_state::video_start()
{
- m_tilemap1 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(crshrace_state::get_tile_info1),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
- m_tilemap2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(crshrace_state::get_tile_info2),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap1 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(crshrace_state::get_tile_info1)), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
+ m_tilemap2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(crshrace_state::get_tile_info2)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
m_tilemap1->set_transparent_pen(0x0f);
m_tilemap2->set_transparent_pen(0xff);
diff --git a/src/mame/video/darius.cpp b/src/mame/video/darius.cpp
index f48b1cc490b..bf05c3785bd 100644
--- a/src/mame/video/darius.cpp
+++ b/src/mame/video/darius.cpp
@@ -22,7 +22,7 @@ TILE_GET_INFO_MEMBER(darius_state::get_fg_tile_info)
void darius_state::video_start()
{
m_gfxdecode->gfx(2)->set_granularity(16);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(darius_state::get_fg_tile_info),this),TILEMAP_SCAN_ROWS,8,8,128,64);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(darius_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 128, 64);
m_fg_tilemap->set_transparent_pen(0);
}
diff --git a/src/mame/video/darkmist.cpp b/src/mame/video/darkmist.cpp
index ba2f90efc7b..27ff732ab22 100644
--- a/src/mame/video/darkmist.cpp
+++ b/src/mame/video/darkmist.cpp
@@ -88,9 +88,9 @@ void darkmist_state::darkmist_palette(palette_device &palette) const
void darkmist_state::video_start()
{
- m_bgtilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(darkmist_state::get_bgtile_info),this),TILEMAP_SCAN_ROWS,16,16,512,64 );
- m_fgtilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(darkmist_state::get_fgtile_info),this),TILEMAP_SCAN_ROWS,16,16,64,256 );
- m_txtilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(darkmist_state::get_txttile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32 );
+ m_bgtilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(darkmist_state::get_bgtile_info)), TILEMAP_SCAN_ROWS, 16, 16, 512, 64);
+ m_fgtilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(darkmist_state::get_fgtile_info)), TILEMAP_SCAN_ROWS, 16, 16, 64, 256);
+ m_txtilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(darkmist_state::get_txttile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
// m_fgtilemap->set_transparent_pen(0);
// m_txtilemap->set_transparent_pen(0);
diff --git a/src/mame/video/dbz.cpp b/src/mame/video/dbz.cpp
index 9a50d2803a5..5da4d15e005 100644
--- a/src/mame/video/dbz.cpp
+++ b/src/mame/video/dbz.cpp
@@ -73,8 +73,8 @@ TILE_GET_INFO_MEMBER(dbz_state::get_dbz_bg1_tile_info)
void dbz_state::video_start()
{
- m_bg1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(dbz_state::get_dbz_bg1_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
- m_bg2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(dbz_state::get_dbz_bg2_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
+ m_bg1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dbz_state::get_dbz_bg1_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
+ m_bg2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dbz_state::get_dbz_bg2_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
m_bg1_tilemap->set_transparent_pen(0);
m_bg2_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/dcon.cpp b/src/mame/video/dcon.cpp
index 85bafa1be6f..e54683dcbab 100644
--- a/src/mame/video/dcon.cpp
+++ b/src/mame/video/dcon.cpp
@@ -99,10 +99,10 @@ TILE_GET_INFO_MEMBER(dcon_state::get_text_tile_info)
void dcon_state::video_start()
{
- m_background_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(dcon_state::get_back_tile_info),this),TILEMAP_SCAN_ROWS, 16,16,32,32);
- m_foreground_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(dcon_state::get_fore_tile_info),this),TILEMAP_SCAN_ROWS,16,16,32,32);
- m_midground_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(dcon_state::get_mid_tile_info),this), TILEMAP_SCAN_ROWS,16,16,32,32);
- m_text_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(dcon_state::get_text_tile_info),this),TILEMAP_SCAN_ROWS, 8,8,64,32);
+ m_background_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dcon_state::get_back_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_foreground_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dcon_state::get_fore_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_midground_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dcon_state::get_mid_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_text_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dcon_state::get_text_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_midground_layer->set_transparent_pen(15);
m_foreground_layer->set_transparent_pen(15);
diff --git a/src/mame/video/dday.cpp b/src/mame/video/dday.cpp
index bf90fd389e9..5aae1f36528 100644
--- a/src/mame/video/dday.cpp
+++ b/src/mame/video/dday.cpp
@@ -203,10 +203,10 @@ TILE_GET_INFO_MEMBER(dday_state::get_sl_tile_info)
void dday_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(dday_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(dday_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_text_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(dday_state::get_text_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_sl_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(dday_state::get_sl_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dday_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dday_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_text_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dday_state::get_text_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_sl_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dday_state::get_sl_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_screen->register_screen_bitmap(m_main_bitmap);
diff --git a/src/mame/video/ddragon.cpp b/src/mame/video/ddragon.cpp
index 05b8d36125a..2fa8820c8cf 100644
--- a/src/mame/video/ddragon.cpp
+++ b/src/mame/video/ddragon.cpp
@@ -97,8 +97,8 @@ TILE_GET_INFO_MEMBER(ddragon_state::get_fg_16color_tile_info)
VIDEO_START_MEMBER(ddragon_state,ddragon)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ddragon_state::get_bg_tile_info),this), tilemap_mapper_delegate(FUNC(ddragon_state::background_scan),this), 16, 16, 32, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ddragon_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ddragon_state::get_bg_tile_info)), tilemap_mapper_delegate(*this, FUNC(ddragon_state::background_scan)), 16, 16, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ddragon_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(0);
m_fg_tilemap->set_scrolldx(0, 0);
diff --git a/src/mame/video/ddragon3.cpp b/src/mame/video/ddragon3.cpp
index cdb40e0e3d3..3acdd768cd2 100644
--- a/src/mame/video/ddragon3.cpp
+++ b/src/mame/video/ddragon3.cpp
@@ -124,8 +124,8 @@ void ddragon3_state::video_start()
{
save_item(NAME(m_pri));
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ddragon3_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ddragon3_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ddragon3_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ddragon3_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
m_bg_tilemap->set_transparent_pen(0);
m_fg_tilemap->set_transparent_pen(0);
@@ -138,8 +138,7 @@ void wwfwfest_state::video_start()
{
ddragon3_state::video_start();
-
- m_fg0_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(wwfwfest_state::get_fg0_tile_info),this),TILEMAP_SCAN_ROWS, 8, 8,64,32);
+ m_fg0_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(wwfwfest_state::get_fg0_tile_info)), TILEMAP_SCAN_ROWS, 8, 8,64,32);
m_fg0_tilemap->set_transparent_pen(0);
}
diff --git a/src/mame/video/ddribble.cpp b/src/mame/video/ddribble.cpp
index 477e49db2de..f047708884e 100644
--- a/src/mame/video/ddribble.cpp
+++ b/src/mame/video/ddribble.cpp
@@ -104,8 +104,8 @@ TILE_GET_INFO_MEMBER(ddribble_state::get_bg_tile_info)
void ddribble_state::video_start()
{
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ddribble_state::get_fg_tile_info),this), tilemap_mapper_delegate(FUNC(ddribble_state::tilemap_scan),this), 8, 8, 64, 32);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ddribble_state::get_bg_tile_info),this), tilemap_mapper_delegate(FUNC(ddribble_state::tilemap_scan),this), 8, 8, 64, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ddribble_state::get_fg_tile_info)), tilemap_mapper_delegate(*this, FUNC(ddribble_state::tilemap_scan)), 8, 8, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ddribble_state::get_bg_tile_info)), tilemap_mapper_delegate(*this, FUNC(ddribble_state::tilemap_scan)), 8, 8, 64, 32);
m_fg_tilemap->set_transparent_pen(0);
}
diff --git a/src/mame/video/deadang.cpp b/src/mame/video/deadang.cpp
index bd1766e9921..1db2c115185 100644
--- a/src/mame/video/deadang.cpp
+++ b/src/mame/video/deadang.cpp
@@ -78,10 +78,10 @@ TILE_GET_INFO_MEMBER(deadang_state::get_text_tile_info)
void deadang_state::video_start()
{
- m_pf3_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deadang_state::get_pf3_tile_info),this),tilemap_mapper_delegate(FUNC(deadang_state::bg_scan),this),16,16,128,256);
- m_pf2_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deadang_state::get_pf2_tile_info),this),tilemap_mapper_delegate(FUNC(deadang_state::bg_scan),this),16,16,128,256);
- m_pf1_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deadang_state::get_pf1_tile_info),this),TILEMAP_SCAN_COLS,16,16, 32, 32);
- m_text_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deadang_state::get_text_tile_info),this),TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_pf3_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(deadang_state::get_pf3_tile_info)), tilemap_mapper_delegate(*this, FUNC(deadang_state::bg_scan)), 16, 16, 128, 256);
+ m_pf2_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(deadang_state::get_pf2_tile_info)), tilemap_mapper_delegate(*this, FUNC(deadang_state::bg_scan)), 16, 16, 128, 256);
+ m_pf1_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(deadang_state::get_pf1_tile_info)), TILEMAP_SCAN_COLS, 16, 16, 32, 32);
+ m_text_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(deadang_state::get_text_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_pf2_layer->set_transparent_pen(15);
m_pf1_layer->set_transparent_pen(15);
@@ -108,10 +108,10 @@ TILE_GET_INFO_MEMBER(popnrun_state::get_popnrun_text_tile_info)
void popnrun_state::video_start()
{
- m_pf3_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deadang_state::get_pf3_tile_info),this),tilemap_mapper_delegate(FUNC(deadang_state::bg_scan),this),16,16,128,256);
- m_pf2_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deadang_state::get_pf2_tile_info),this),tilemap_mapper_delegate(FUNC(deadang_state::bg_scan),this),16,16,128,256);
- m_pf1_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deadang_state::get_pf1_tile_info),this),TILEMAP_SCAN_COLS,16,16, 32, 32);
- m_text_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(popnrun_state::get_popnrun_text_tile_info),this),TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_pf3_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(deadang_state::get_pf3_tile_info)), tilemap_mapper_delegate(*this, FUNC(deadang_state::bg_scan)), 16, 16, 128, 256);
+ m_pf2_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(deadang_state::get_pf2_tile_info)), tilemap_mapper_delegate(*this, FUNC(deadang_state::bg_scan)), 16, 16, 128, 256);
+ m_pf1_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(deadang_state::get_pf1_tile_info)), TILEMAP_SCAN_COLS, 16, 16, 32, 32);
+ m_text_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(popnrun_state::get_popnrun_text_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_pf2_layer->set_transparent_pen(0);
m_pf1_layer->set_transparent_pen(0);
diff --git a/src/mame/video/dec8.cpp b/src/mame/video/dec8.cpp
index d58a6b33d71..7fc3ce72562 100644
--- a/src/mame/video/dec8.cpp
+++ b/src/mame/video/dec8.cpp
@@ -249,7 +249,7 @@ TILE_GET_INFO_MEMBER(dec8_state::get_cobracom_fix_tile_info)
VIDEO_START_MEMBER(dec8_state,cobracom)
{
allocate_buffered_spriteram16();
- m_fix_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(dec8_state::get_cobracom_fix_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fix_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dec8_state::get_cobracom_fix_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fix_tilemap->set_transparent_pen(0);
@@ -283,7 +283,7 @@ TILE_GET_INFO_MEMBER(dec8_state::get_ghostb_fix_tile_info)
VIDEO_START_MEMBER(dec8_state,ghostb)
{
allocate_buffered_spriteram16();
- m_fix_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(dec8_state::get_ghostb_fix_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fix_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dec8_state::get_ghostb_fix_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fix_tilemap->set_transparent_pen(0);
m_game_uses_priority = 0;
@@ -325,7 +325,7 @@ TILE_GET_INFO_MEMBER(dec8_state::get_oscar_fix_tile_info)
VIDEO_START_MEMBER(dec8_state,oscar)
{
allocate_buffered_spriteram16();
- m_fix_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(dec8_state::get_oscar_fix_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fix_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dec8_state::get_oscar_fix_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fix_tilemap->set_transparent_pen(0);
@@ -398,8 +398,8 @@ TILE_GET_INFO_MEMBER(dec8_state::get_lastmisn_fix_tile_info)
VIDEO_START_MEMBER(dec8_state,lastmisn)
{
allocate_buffered_spriteram16();
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(dec8_state::get_lastmisn_tile_info),this), tilemap_mapper_delegate(FUNC(dec8_state::lastmisn_scan_rows),this), 16, 16, 32, 32);
- m_fix_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(dec8_state::get_lastmisn_fix_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dec8_state::get_lastmisn_tile_info)), tilemap_mapper_delegate(*this, FUNC(dec8_state::lastmisn_scan_rows)), 16, 16, 32, 32);
+ m_fix_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dec8_state::get_lastmisn_fix_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fix_tilemap->set_transparent_pen(0);
m_game_uses_priority = 0;
@@ -408,11 +408,11 @@ VIDEO_START_MEMBER(dec8_state,lastmisn)
VIDEO_START_MEMBER(dec8_state,shackled)
{
allocate_buffered_spriteram16();
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(dec8_state::get_lastmisn_tile_info),this), tilemap_mapper_delegate(FUNC(dec8_state::lastmisn_scan_rows),this), 16, 16, 32, 32);
- m_fix_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(dec8_state::get_lastmisn_fix_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dec8_state::get_lastmisn_tile_info)), tilemap_mapper_delegate(*this, FUNC(dec8_state::lastmisn_scan_rows)), 16, 16, 32, 32);
+ m_fix_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dec8_state::get_lastmisn_fix_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fix_tilemap->set_transparent_pen(0);
- m_bg_tilemap->set_transmask(0, 0x000f, 0xfff0); /* Bottom 12 pens */
+ m_bg_tilemap->set_transmask(0, 0x000f, 0xfff0); // Bottom 12 pens
m_game_uses_priority = 1;
}
@@ -461,14 +461,14 @@ TILE_GET_INFO_MEMBER(dec8_state::get_srdarwin_tile_info)
VIDEO_START_MEMBER(dec8_state,srdarwin)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(dec8_state::get_srdarwin_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 16);
- m_fix_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(dec8_state::get_srdarwin_fix_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dec8_state::get_srdarwin_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 16);
+ m_fix_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dec8_state::get_srdarwin_fix_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fix_tilemap->set_transparent_pen(0);
- m_bg_tilemap->set_transmask(0, 0xffff, 0x0000); //* draw as background only
- m_bg_tilemap->set_transmask(1, 0x00ff, 0xff00); /* Bottom 8 pens */
- m_bg_tilemap->set_transmask(2, 0x00ff, 0xff00); /* Bottom 8 pens */
- m_bg_tilemap->set_transmask(3, 0x0000, 0xffff); //* draw as foreground only
+ m_bg_tilemap->set_transmask(0, 0xffff, 0x0000); // draw as background only
+ m_bg_tilemap->set_transmask(1, 0x00ff, 0xff00); // Bottom 8 pens
+ m_bg_tilemap->set_transmask(2, 0x00ff, 0xff00); // Bottom 8 pens
+ m_bg_tilemap->set_transmask(3, 0x0000, 0xffff); // draw as foreground only
}
/******************************************************************************/
@@ -537,8 +537,8 @@ TILE_GET_INFO_MEMBER(dec8_state::get_gondo_tile_info)
VIDEO_START_MEMBER(dec8_state,gondo)
{
allocate_buffered_spriteram16();
- m_fix_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(dec8_state::get_gondo_fix_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(dec8_state::get_gondo_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_fix_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dec8_state::get_gondo_fix_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dec8_state::get_gondo_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
m_fix_tilemap->set_transparent_pen(0);
m_bg_tilemap->set_transmask(0, 0x00ff, 0xff00); /* Bottom 8 pens */
@@ -548,8 +548,8 @@ VIDEO_START_MEMBER(dec8_state,gondo)
VIDEO_START_MEMBER(dec8_state,garyoret)
{
allocate_buffered_spriteram16();
- m_fix_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(dec8_state::get_gondo_fix_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(dec8_state::get_gondo_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_fix_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dec8_state::get_gondo_fix_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dec8_state::get_gondo_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
m_fix_tilemap->set_transparent_pen(0);
m_game_uses_priority = 1;
diff --git a/src/mame/video/decbac06.cpp b/src/mame/video/decbac06.cpp
index 9df7665f684..dd432a65d17 100644
--- a/src/mame/video/decbac06.cpp
+++ b/src/mame/video/decbac06.cpp
@@ -219,27 +219,27 @@ void deco_bac06_device::create_tilemaps(int region8x8, int region16x16)
m_tile_region_8 = region8x8;
m_tile_region_16 = region16x16;
- m_pf8x8_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deco_bac06_device::get_pf8x8_tile_info),this),tilemap_mapper_delegate(FUNC(deco_bac06_device::tile_shape0_8x8_scan),this), 8, 8,128, 32);
- m_pf8x8_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deco_bac06_device::get_pf8x8_tile_info),this),tilemap_mapper_delegate(FUNC(deco_bac06_device::tile_shape1_8x8_scan),this), 8, 8, 64, 64);
- m_pf8x8_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deco_bac06_device::get_pf8x8_tile_info),this),tilemap_mapper_delegate(FUNC(deco_bac06_device::tile_shape2_8x8_scan),this), 8, 8, 32,128);
+ m_pf8x8_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(deco_bac06_device::get_pf8x8_tile_info)), tilemap_mapper_delegate(*this, FUNC(deco_bac06_device::tile_shape0_8x8_scan)), 8, 8, 128, 32);
+ m_pf8x8_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(deco_bac06_device::get_pf8x8_tile_info)), tilemap_mapper_delegate(*this, FUNC(deco_bac06_device::tile_shape1_8x8_scan)), 8, 8, 64, 64);
+ m_pf8x8_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(deco_bac06_device::get_pf8x8_tile_info)), tilemap_mapper_delegate(*this, FUNC(deco_bac06_device::tile_shape2_8x8_scan)), 8, 8, 32, 128);
if (m_wide == 2)
{
- m_pf16x16_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deco_bac06_device::get_pf16x16_tile_info),this), tilemap_mapper_delegate(FUNC(deco_bac06_device::tile_shape0_scan),this), 16, 16, 256, 16);
- m_pf16x16_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deco_bac06_device::get_pf16x16_tile_info),this), tilemap_mapper_delegate(FUNC(deco_bac06_device::tile_shape1_scan),this), 16, 16, 128, 32);
- m_pf16x16_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deco_bac06_device::get_pf16x16_tile_info),this), tilemap_mapper_delegate(FUNC(deco_bac06_device::tile_shape2_scan),this), 16, 16, 64, 64);
+ m_pf16x16_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(deco_bac06_device::get_pf16x16_tile_info)), tilemap_mapper_delegate(*this, FUNC(deco_bac06_device::tile_shape0_scan)), 16, 16, 256, 16);
+ m_pf16x16_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(deco_bac06_device::get_pf16x16_tile_info)), tilemap_mapper_delegate(*this, FUNC(deco_bac06_device::tile_shape1_scan)), 16, 16, 128, 32);
+ m_pf16x16_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(deco_bac06_device::get_pf16x16_tile_info)), tilemap_mapper_delegate(*this, FUNC(deco_bac06_device::tile_shape2_scan)), 16, 16, 64, 64);
}
else if (m_wide == 1)
{
- m_pf16x16_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deco_bac06_device::get_pf16x16_tile_info),this), tilemap_mapper_delegate(FUNC(deco_bac06_device::tile_shape0_scan),this), 16, 16, 128, 16);
- m_pf16x16_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deco_bac06_device::get_pf16x16_tile_info),this), tilemap_mapper_delegate(FUNC(deco_bac06_device::tile_shape1_scan),this), 16, 16, 64, 32);
- m_pf16x16_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deco_bac06_device::get_pf16x16_tile_info),this), tilemap_mapper_delegate(FUNC(deco_bac06_device::tile_shape2_scan),this), 16, 16, 32, 64);
+ m_pf16x16_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(deco_bac06_device::get_pf16x16_tile_info)), tilemap_mapper_delegate(*this, FUNC(deco_bac06_device::tile_shape0_scan)), 16, 16, 128, 16);
+ m_pf16x16_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(deco_bac06_device::get_pf16x16_tile_info)), tilemap_mapper_delegate(*this, FUNC(deco_bac06_device::tile_shape1_scan)), 16, 16, 64, 32);
+ m_pf16x16_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(deco_bac06_device::get_pf16x16_tile_info)), tilemap_mapper_delegate(*this, FUNC(deco_bac06_device::tile_shape2_scan)), 16, 16, 32, 64);
}
else
{
- m_pf16x16_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deco_bac06_device::get_pf16x16_tile_info),this),tilemap_mapper_delegate(FUNC(deco_bac06_device::tile_shape0_scan),this), 16, 16, 64, 16);
- m_pf16x16_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deco_bac06_device::get_pf16x16_tile_info),this),tilemap_mapper_delegate(FUNC(deco_bac06_device::tile_shape1_scan),this), 16, 16, 32, 32);
- m_pf16x16_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deco_bac06_device::get_pf16x16_tile_info),this),tilemap_mapper_delegate(FUNC(deco_bac06_device::tile_shape2_scan),this), 16, 16, 16, 64);
+ m_pf16x16_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(deco_bac06_device::get_pf16x16_tile_info)), tilemap_mapper_delegate(*this, FUNC(deco_bac06_device::tile_shape0_scan)), 16, 16, 64, 16);
+ m_pf16x16_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(deco_bac06_device::get_pf16x16_tile_info)), tilemap_mapper_delegate(*this, FUNC(deco_bac06_device::tile_shape1_scan)), 16, 16, 32, 32);
+ m_pf16x16_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(deco_bac06_device::get_pf16x16_tile_info)), tilemap_mapper_delegate(*this, FUNC(deco_bac06_device::tile_shape2_scan)), 16, 16, 16, 64);
}
}
diff --git a/src/mame/video/deckarn.cpp b/src/mame/video/deckarn.cpp
index 16c8c608767..67543ea4239 100644
--- a/src/mame/video/deckarn.cpp
+++ b/src/mame/video/deckarn.cpp
@@ -10,13 +10,14 @@ DEFINE_DEVICE_TYPE(DECO_KARNOVSPRITES, deco_karnovsprites_device, "deco_karnovsp
deco_karnovsprites_device::deco_karnovsprites_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
: device_t(mconfig, DECO_KARNOVSPRITES, tag, owner, clock)
+ , m_colpri_cb(*this)
{
}
void deco_karnovsprites_device::device_start()
{
m_flip_screen = false;
- m_colpri_cb.bind_relative_to(*owner());
+ m_colpri_cb.resolve();
save_item(NAME(m_flip_screen));
}
diff --git a/src/mame/video/deckarn.h b/src/mame/video/deckarn.h
index 7c176a024ca..c25396127db 100644
--- a/src/mame/video/deckarn.h
+++ b/src/mame/video/deckarn.h
@@ -7,23 +7,23 @@
#include "screen.h"
-typedef device_delegate<void (u32 &colour, u32 &pri_mask)> deckarn_colpri_cb_delegate;
-
class deco_karnovsprites_device : public device_t
{
public:
+ typedef device_delegate<void (u32 &colour, u32 &pri_mask)> colpri_cb_delegate;
+
deco_karnovsprites_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, gfx_element *gfx, u16* spriteram, int size);
void set_flip_screen(bool flip) { m_flip_screen = flip; }
- template <typename... T> void set_colpri_callback(T &&... args) { m_colpri_cb = deckarn_colpri_cb_delegate(std::forward<T>(args)...); }
+ template <typename... T> void set_colpri_callback(T &&... args) { m_colpri_cb.set(std::forward<T>(args)...); }
protected:
virtual void device_start() override;
virtual void device_reset() override;
private:
- deckarn_colpri_cb_delegate m_colpri_cb;
+ colpri_cb_delegate m_colpri_cb;
bool m_flip_screen;
};
diff --git a/src/mame/video/decmxc06.cpp b/src/mame/video/decmxc06.cpp
index ebbfa1ad866..0905a096dd8 100644
--- a/src/mame/video/decmxc06.cpp
+++ b/src/mame/video/decmxc06.cpp
@@ -48,6 +48,7 @@ DEFINE_DEVICE_TYPE(DECO_MXC06, deco_mxc06_device, "deco_mxc06", "DECO MXC06 Spri
deco_mxc06_device::deco_mxc06_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: device_t(mconfig, DECO_MXC06, tag, owner, clock)
, device_video_interface(mconfig, *this)
+ , m_colpri_cb(*this)
{
}
@@ -237,7 +238,7 @@ void deco_mxc06_device::draw_sprites_bootleg(screen_device &screen, bitmap_ind16
void deco_mxc06_device::device_start()
{
- m_colpri_cb.bind_relative_to(*owner());
+ m_colpri_cb.resolve();
m_flip_screen = false;
m_spritelist = make_unique_clear<struct sprite_t[]>(0x400);
diff --git a/src/mame/video/decmxc06.h b/src/mame/video/decmxc06.h
index 52bbd7bf61d..b774c7fec6e 100644
--- a/src/mame/video/decmxc06.h
+++ b/src/mame/video/decmxc06.h
@@ -7,15 +7,15 @@
#include "screen.h"
-typedef device_delegate<void (u32 &colour, u32 &pri_mask)> decmxc06_colpri_cb_delegate;
-
class deco_mxc06_device : public device_t, public device_video_interface
{
public:
+ typedef device_delegate<void (u32 &colour, u32 &pri_mask)> colpri_cb_delegate;
+
deco_mxc06_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// configuration
- template <typename... T> void set_colpri_callback(T &&... args) { m_colpri_cb = decmxc06_colpri_cb_delegate(std::forward<T>(args)...); }
+ template <typename... T> void set_colpri_callback(T &&... args) { m_colpri_cb.set(std::forward<T>(args)...); }
void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, gfx_element *gfx, u16* spriteram, int size);
void draw_sprites_bootleg(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, gfx_element *gfx, u16* spriteram, int size);
@@ -34,7 +34,7 @@ private:
bool flipx, flipy;
u32 pri_mask;
};
- decmxc06_colpri_cb_delegate m_colpri_cb;
+ colpri_cb_delegate m_colpri_cb;
bool m_flip_screen;
std::unique_ptr<struct sprite_t[]> m_spritelist;
};
diff --git a/src/mame/video/deco16ic.cpp b/src/mame/video/deco16ic.cpp
index 862c8f0c945..c1f9464d668 100644
--- a/src/mame/video/deco16ic.cpp
+++ b/src/mame/video/deco16ic.cpp
@@ -177,31 +177,33 @@ Rowscroll style:
DEFINE_DEVICE_TYPE(DECO16IC, deco16ic_device, "deco16ic", "DECO 55 / 56 / 74 / 141 Tilemap Generator")
deco16ic_device::deco16ic_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
- : device_t(mconfig, DECO16IC, tag, owner, clock),
- device_video_interface(mconfig, *this),
- m_pf1_data(nullptr),
- m_pf2_data(nullptr),
- m_pf12_control(nullptr),
- m_pf1_rowscroll_ptr(nullptr),
- m_pf2_rowscroll_ptr(nullptr),
- m_use_custom_pf1(0),
- m_use_custom_pf2(0),
- m_pf1_bank(0),
- m_pf2_bank(0),
- m_pf12_last_small(0),
- m_pf12_last_big(0),
- m_pf1_8bpp_mode(0),
- m_pf1_size(0),
- m_pf2_size(0),
- m_pf1_trans_mask(0xf),
- m_pf2_trans_mask(0xf),
- m_pf1_colour_bank(0),
- m_pf2_colour_bank(0),
- m_pf1_colourmask(0xf),
- m_pf2_colourmask(0xf),
- m_pf12_8x8_gfx_bank(0),
- m_pf12_16x16_gfx_bank(0),
- m_gfxdecode(*this, finder_base::DUMMY_TAG)
+ : device_t(mconfig, DECO16IC, tag, owner, clock)
+ , device_video_interface(mconfig, *this)
+ , m_pf1_data(nullptr)
+ , m_pf2_data(nullptr)
+ , m_pf12_control(nullptr)
+ , m_pf1_rowscroll_ptr(nullptr)
+ , m_pf2_rowscroll_ptr(nullptr)
+ , m_bank1_cb(*this)
+ , m_bank2_cb(*this)
+ , m_use_custom_pf1(0)
+ , m_use_custom_pf2(0)
+ , m_pf1_bank(0)
+ , m_pf2_bank(0)
+ , m_pf12_last_small(0)
+ , m_pf12_last_big(0)
+ , m_pf1_8bpp_mode(0)
+ , m_pf1_size(0)
+ , m_pf2_size(0)
+ , m_pf1_trans_mask(0xf)
+ , m_pf2_trans_mask(0xf)
+ , m_pf1_colour_bank(0)
+ , m_pf2_colour_bank(0)
+ , m_pf1_colourmask(0xf)
+ , m_pf2_colourmask(0xf)
+ , m_pf12_8x8_gfx_bank(0)
+ , m_pf12_16x16_gfx_bank(0)
+ , m_gfxdecode(*this, finder_base::DUMMY_TAG)
{
}
@@ -214,8 +216,8 @@ void deco16ic_device::device_start()
if(!m_gfxdecode->started())
throw device_missing_dependencies();
- m_bank1_cb.bind_relative_to(*owner());
- m_bank2_cb.bind_relative_to(*owner());
+ m_bank1_cb.resolve();
+ m_bank2_cb.resolve();
int fullheight1 = 0;
int fullwidth1 = 0;
@@ -235,12 +237,12 @@ void deco16ic_device::device_start()
if (m_pf2_size&DECO_64x32)
fullwidth2 = 1;
- m_pf1_tilemap_16x16 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deco16ic_device::get_pf1_tile_info),this), tilemap_mapper_delegate(FUNC(deco16ic_device::deco16_scan_rows),this), 16, 16, fullwidth1 ? 64 : 32, fullheight1 ? 64 : 32);
-// m_pf1_tilemap_8x8 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deco16ic_device::get_pf1_tile_info_b),this), TILEMAP_SCAN_ROWS, 8, 8, fullwidth1 ? 64 : 32, fullheight1 ? 64 : 32);
- m_pf1_tilemap_8x8 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deco16ic_device::get_pf1_tile_info_b),this), TILEMAP_SCAN_ROWS, 8, 8, fullwidth1 ? 64 : 32, fullheight1 ? 64 : 32);
+ m_pf1_tilemap_16x16 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(deco16ic_device::get_pf1_tile_info)), tilemap_mapper_delegate(*this, FUNC(deco16ic_device::deco16_scan_rows)), 16, 16, fullwidth1 ? 64 : 32, fullheight1 ? 64 : 32);
+// m_pf1_tilemap_8x8 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(deco16ic_device::get_pf1_tile_info_b)), TILEMAP_SCAN_ROWS, 8, 8, fullwidth1 ? 64 : 32, fullheight1 ? 64 : 32);
+ m_pf1_tilemap_8x8 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(deco16ic_device::get_pf1_tile_info_b)), TILEMAP_SCAN_ROWS, 8, 8, fullwidth1 ? 64 : 32, fullheight1 ? 64 : 32);
- m_pf2_tilemap_16x16 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deco16ic_device::get_pf2_tile_info),this), tilemap_mapper_delegate(FUNC(deco16ic_device::deco16_scan_rows),this), 16, 16, fullwidth2 ? 64 : 32, fullheight2 ? 64 : 32);
- m_pf2_tilemap_8x8 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deco16ic_device::get_pf2_tile_info_b),this), TILEMAP_SCAN_ROWS, 8, 8, fullwidth2 ? 64 : 32, fullheight2 ? 64 : 32);
+ m_pf2_tilemap_16x16 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(deco16ic_device::get_pf2_tile_info)), tilemap_mapper_delegate(*this, FUNC(deco16ic_device::deco16_scan_rows)), 16, 16, fullwidth2 ? 64 : 32, fullheight2 ? 64 : 32);
+ m_pf2_tilemap_8x8 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(deco16ic_device::get_pf2_tile_info_b)), TILEMAP_SCAN_ROWS, 8, 8, fullwidth2 ? 64 : 32, fullheight2 ? 64 : 32);
m_pf1_tilemap_8x8->set_transparent_pen(0);
m_pf2_tilemap_8x8->set_transparent_pen(0);
diff --git a/src/mame/video/deco16ic.h b/src/mame/video/deco16ic.h
index 34956db7391..e9bb27c7d5d 100644
--- a/src/mame/video/deco16ic.h
+++ b/src/mame/video/deco16ic.h
@@ -27,18 +27,16 @@
typedef device_delegate<int (int bank)> deco16_bank_cb_delegate;
-class deco16ic_device : public device_t,
- public device_video_interface
+class deco16ic_device : public device_t, public device_video_interface
{
public:
deco16ic_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- ~deco16ic_device() {}
// configuration
template <typename T> void set_gfxdecode_tag(T &&tag) { m_gfxdecode.set_tag(std::forward<T>(tag)); }
// void set_palette_tag(const char *tag);
- template <typename... T> void set_bank1_callback(T &&... args) { m_bank1_cb = deco16_bank_cb_delegate(std::forward<T>(args)...); }
- template <typename... T> void set_bank2_callback(T &&... args) { m_bank2_cb = deco16_bank_cb_delegate(std::forward<T>(args)...); }
+ template <typename... T> void set_bank1_callback(T &&... args) { m_bank1_cb.set(std::forward<T>(args)...); }
+ template <typename... T> void set_bank2_callback(T &&... args) { m_bank2_cb.set(std::forward<T>(args)...); }
void set_pf1_size(int size) { m_pf1_size = size; }
void set_pf2_size(int size) { m_pf2_size = size; }
void set_pf1_trans_mask(int mask) { m_pf1_trans_mask = mask; }
@@ -104,26 +102,25 @@ public:
template<class _BitmapClass>
void custom_tilemap_draw(
- screen_device &screen,
- _BitmapClass &bitmap,
- const rectangle &cliprect,
- tilemap_t *tilemap0_8x8,
- tilemap_t *tilemap0_16x16,
- tilemap_t *tilemap1_8x8,
- tilemap_t *tilemap1_16x16,
- const u16 *rowscroll_ptr,
- const u16 scrollx,
- const u16 scrolly,
- const u16 control0,
- const u16 control1,
- int combine_mask,
- int combine_shift,
- int trans_mask,
- int flags,
- u8 priority,
- int is_tattoo,
- u8 pmask = 0xff
- );
+ screen_device &screen,
+ _BitmapClass &bitmap,
+ const rectangle &cliprect,
+ tilemap_t *tilemap0_8x8,
+ tilemap_t *tilemap0_16x16,
+ tilemap_t *tilemap1_8x8,
+ tilemap_t *tilemap1_16x16,
+ const u16 *rowscroll_ptr,
+ const u16 scrollx,
+ const u16 scrolly,
+ const u16 control0,
+ const u16 control1,
+ int combine_mask,
+ int combine_shift,
+ int trans_mask,
+ int flags,
+ u8 priority,
+ int is_tattoo,
+ u8 pmask = 0xff);
protected:
// device-level overrides
diff --git a/src/mame/video/decocass.cpp b/src/mame/video/decocass.cpp
index bf06d8cd5a9..fc4004b873a 100644
--- a/src/mame/video/decocass.cpp
+++ b/src/mame/video/decocass.cpp
@@ -695,9 +695,9 @@ void decocass_state::draw_edge(bitmap_ind16 &bitmap, const rectangle &cliprect,
void decocass_state::video_start()
{
- m_bg_tilemap_l = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(decocass_state::get_bg_l_tile_info),this), tilemap_mapper_delegate(FUNC(decocass_state::bgvideoram_scan_cols),this), 16, 16, 32, 32);
- m_bg_tilemap_r = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(decocass_state::get_bg_r_tile_info),this), tilemap_mapper_delegate(FUNC(decocass_state::bgvideoram_scan_cols),this), 16, 16, 32, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(decocass_state::get_fg_tile_info),this), tilemap_mapper_delegate(FUNC(decocass_state::fgvideoram_scan_cols),this), 8, 8, 32, 32);
+ m_bg_tilemap_l = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(decocass_state::get_bg_l_tile_info)), tilemap_mapper_delegate(*this, FUNC(decocass_state::bgvideoram_scan_cols)), 16, 16, 32, 32);
+ m_bg_tilemap_r = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(decocass_state::get_bg_r_tile_info)), tilemap_mapper_delegate(*this, FUNC(decocass_state::bgvideoram_scan_cols)), 16, 16, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(decocass_state::get_fg_tile_info)), tilemap_mapper_delegate(*this, FUNC(decocass_state::fgvideoram_scan_cols)), 8, 8, 32, 32);
m_bg_tilemap_l->set_transparent_pen(0);
m_bg_tilemap_r->set_transparent_pen(0);
diff --git a/src/mame/video/decodmd2.cpp b/src/mame/video/decodmd2.cpp
index e57a2ff79d3..b30d2719bc3 100644
--- a/src/mame/video/decodmd2.cpp
+++ b/src/mame/video/decodmd2.cpp
@@ -136,13 +136,13 @@ void decodmd_type2_device::device_add_mconfig(machine_config &config)
config.m_minimum_quantum = attotime::from_hz(60);
- TIMER(config, "firq_timer", 0).configure_periodic(timer_device::expired_delegate(FUNC(decodmd_type2_device::dmd_firq), this), attotime::from_hz(80));
+ TIMER(config, "firq_timer", 0).configure_periodic(FUNC(decodmd_type2_device::dmd_firq), attotime::from_hz(80));
MC6845(config, m_mc6845, XTAL(8'000'000) / 8); // TODO: confirm clock speed
m_mc6845->set_screen(nullptr);
m_mc6845->set_show_border_area(false);
m_mc6845->set_char_width(8);
- m_mc6845->set_update_row_callback(FUNC(decodmd_type2_device::crtc_update_row), this);
+ m_mc6845->set_update_row_callback(FUNC(decodmd_type2_device::crtc_update_row));
screen_device &screen(SCREEN(config, "dmd", SCREEN_TYPE_RASTER));
screen.set_native_aspect();
diff --git a/src/mame/video/decodmd3.cpp b/src/mame/video/decodmd3.cpp
index 9041d92f229..58979b27770 100644
--- a/src/mame/video/decodmd3.cpp
+++ b/src/mame/video/decodmd3.cpp
@@ -138,13 +138,13 @@ void decodmd_type3_device::device_add_mconfig(machine_config &config)
config.m_minimum_quantum = attotime::from_hz(60);
- TIMER(config, "irq_timer", 0).configure_periodic(timer_device::expired_delegate(FUNC(decodmd_type3_device::dmd_irq), this), attotime::from_hz(150));
+ TIMER(config, "irq_timer", 0).configure_periodic(FUNC(decodmd_type3_device::dmd_irq), attotime::from_hz(150));
MC6845(config, m_mc6845, XTAL(12'000'000) / 4); // TODO: confirm clock speed
m_mc6845->set_screen(nullptr);
m_mc6845->set_show_border_area(false);
m_mc6845->set_char_width(16);
- m_mc6845->set_update_row_callback(FUNC(decodmd_type3_device::crtc_update_row), this);
+ m_mc6845->set_update_row_callback(FUNC(decodmd_type3_device::crtc_update_row));
screen_device &screen(SCREEN(config, "dmd", SCREEN_TYPE_RASTER));
screen.set_native_aspect();
diff --git a/src/mame/video/decospr.cpp b/src/mame/video/decospr.cpp
index bdd2d1a02f9..5c6aa4b2a14 100644
--- a/src/mame/video/decospr.cpp
+++ b/src/mame/video/decospr.cpp
@@ -142,25 +142,25 @@ DECOSPR_COLOUR_CB_MEMBER(decospr_device::default_col_cb)
DEFINE_DEVICE_TYPE(DECO_SPRITE, decospr_device, "decospr", "DECO 52 Sprite")
decospr_device::decospr_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
- : device_t(mconfig, DECO_SPRITE, tag, owner, clock),
- device_video_interface(mconfig, *this),
- m_gfxregion(0),
- m_is_bootleg(false),
- m_bootleg_type(0),
- m_x_offset(0),
- m_y_offset(0),
- m_flipallx(0),
- m_transpen(0),
- m_gfxdecode(*this, finder_base::DUMMY_TAG)
+ : device_t(mconfig, DECO_SPRITE, tag, owner, clock)
+ , device_video_interface(mconfig, *this)
+ , m_gfxregion(0)
+ , m_pri_cb(*this)
+ , m_col_cb(*this, DEVICE_SELF, FUNC(decospr_device::default_col_cb)) // default color callback
+ , m_is_bootleg(false)
+ , m_bootleg_type(0)
+ , m_x_offset(0)
+ , m_y_offset(0)
+ , m_flipallx(0)
+ , m_transpen(0)
+ , m_gfxdecode(*this, finder_base::DUMMY_TAG)
{
- // default color callback
- m_col_cb = decospr_col_cb_delegate(FUNC(decospr_device::default_col_cb), this);
}
void decospr_device::device_start()
{
- m_pri_cb.bind_relative_to(*owner());
- m_col_cb.bind_relative_to(*owner());
+ m_pri_cb.resolve();
+ m_col_cb.resolve();
m_alt_format = 0;
m_pixmask = 0xf;
diff --git a/src/mame/video/decospr.h b/src/mame/video/decospr.h
index f2ff8aa39a7..338b67772dc 100644
--- a/src/mame/video/decospr.h
+++ b/src/mame/video/decospr.h
@@ -22,8 +22,8 @@ public:
// configuration
template <typename T> void set_gfxdecode_tag(T &&tag) { m_gfxdecode.set_tag(std::forward<T>(tag)); }
void set_gfx_region(int gfxregion) { m_gfxregion = gfxregion; }
- template <typename... T> void set_pri_callback(T &&... args) { m_pri_cb = decospr_pri_cb_delegate(std::forward<T>(args)...); }
- template <typename... T> void set_col_callback(T &&... args) { m_col_cb = decospr_col_cb_delegate(std::forward<T>(args)...); }
+ template <typename... T> void set_pri_callback(T &&... args) { m_pri_cb.set(std::forward<T>(args)...); }
+ template <typename... T> void set_col_callback(T &&... args) { m_col_cb.set(std::forward<T>(args)...); }
void set_is_bootleg(bool is_bootleg) { m_is_bootleg = is_bootleg; }
void set_bootleg_type(int bootleg_type) { m_bootleg_type = bootleg_type; }
void set_flipallx(int flipallx) { m_flipallx = flipallx; }
diff --git a/src/mame/video/decrmc3.cpp b/src/mame/video/decrmc3.cpp
index cf7faeb23ab..66e7fc1391b 100644
--- a/src/mame/video/decrmc3.cpp
+++ b/src/mame/video/decrmc3.cpp
@@ -19,12 +19,12 @@
DEFINE_DEVICE_TYPE(DECO_RMC3, deco_rmc3_device, "deco_rmc3", "DECO RM-C3 PALETTE")
deco_rmc3_device::deco_rmc3_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
- : device_t(mconfig, DECO_RMC3, tag, owner, clock),
- device_palette_interface(mconfig, *this),
- m_entries(0),
- m_indirect_entries(0),
- m_prom_region(*this, finder_base::DUMMY_TAG),
- m_init(deco_rmc3_palette_init_delegate())
+ : device_t(mconfig, DECO_RMC3, tag, owner, clock)
+ , device_palette_interface(mconfig, *this)
+ , m_entries(0)
+ , m_indirect_entries(0)
+ , m_prom_region(*this, finder_base::DUMMY_TAG)
+ , m_init(*this)
{
}
@@ -153,7 +153,7 @@ WRITE8_MEMBER(deco_rmc3_device::write_indirect_ext)
void deco_rmc3_device::device_start()
{
// bind the init function
- m_init.bind_relative_to(*owner());
+ m_init.resolve();
// find the memory, if present
const memory_share *share = memshare(tag());
diff --git a/src/mame/video/decrmc3.h b/src/mame/video/decrmc3.h
index 5293c9c98a5..30296e2967d 100644
--- a/src/mame/video/decrmc3.h
+++ b/src/mame/video/decrmc3.h
@@ -42,11 +42,7 @@ public:
deco_rmc3_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
// configuration
- void set_init(deco_rmc3_palette_init_delegate init) { m_init = init; }
- template <class FunctionClass> void set_init(const char *devname, void (FunctionClass::*callback)(deco_rmc3_device &), const char *name)
- {
- set_init(deco_rmc3_palette_init_delegate(callback, name, devname, static_cast<FunctionClass *>(nullptr)));
- }
+ template <typename... T> void set_init(T &&... args) { m_init.set(std::forward<T>(args)...); }
// void set_membits(int membits);
// void set_endianness(endianness_t endianness);
void set_entries(u32 entries) { m_entries = entries; }
diff --git a/src/mame/video/deniam.cpp b/src/mame/video/deniam.cpp
index a4ddb3223dd..ebd3b5a9d6c 100644
--- a/src/mame/video/deniam.cpp
+++ b/src/mame/video/deniam.cpp
@@ -97,9 +97,9 @@ TILE_GET_INFO_MEMBER(deniam_state::get_tx_tile_info)
void deniam_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deniam_state::get_bg_tile_info),this), tilemap_mapper_delegate(FUNC(deniam_state::scan_pages),this), 8, 8, 128, 64);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deniam_state::get_fg_tile_info),this), tilemap_mapper_delegate(FUNC(deniam_state::scan_pages),this), 8, 8, 128, 64);
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deniam_state::get_tx_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(deniam_state::get_bg_tile_info)), tilemap_mapper_delegate(*this, FUNC(deniam_state::scan_pages)), 8, 8, 128, 64);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(deniam_state::get_fg_tile_info)), tilemap_mapper_delegate(*this, FUNC(deniam_state::scan_pages)), 8, 8, 128, 64);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(deniam_state::get_tx_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_fg_tilemap->set_transparent_pen(0);
m_tx_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/digdug.cpp b/src/mame/video/digdug.cpp
index 14cfd0d7c79..026bdafe5eb 100644
--- a/src/mame/video/digdug.cpp
+++ b/src/mame/video/digdug.cpp
@@ -146,8 +146,8 @@ VIDEO_START_MEMBER(digdug_state,digdug)
m_bg_disable = 0;
m_bg_color_bank = 0;
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(digdug_state::bg_get_tile_info),this),tilemap_mapper_delegate(FUNC(digdug_state::tilemap_scan),this),8,8,36,28);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(digdug_state::tx_get_tile_info),this),tilemap_mapper_delegate(FUNC(digdug_state::tilemap_scan),this),8,8,36,28);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(digdug_state::bg_get_tile_info)), tilemap_mapper_delegate(*this, FUNC(digdug_state::tilemap_scan)), 8, 8, 36, 28);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(digdug_state::tx_get_tile_info)), tilemap_mapper_delegate(*this, FUNC(digdug_state::tilemap_scan)), 8, 8, 36, 28);
m_fg_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/divebomb.cpp b/src/mame/video/divebomb.cpp
index 1b5bd73fdee..d3b3c55ec52 100644
--- a/src/mame/video/divebomb.cpp
+++ b/src/mame/video/divebomb.cpp
@@ -133,7 +133,7 @@ void divebomb_state::divebomb_palette(palette_device &palette) const
VIDEO_START_MEMBER(divebomb_state,divebomb)
{
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(divebomb_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(divebomb_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(0);
m_fg_tilemap->set_scrolly(0, 16);
}
diff --git a/src/mame/video/djboy.cpp b/src/mame/video/djboy.cpp
index 39bae7bc99b..d323d02f3ec 100644
--- a/src/mame/video/djboy.cpp
+++ b/src/mame/video/djboy.cpp
@@ -39,7 +39,7 @@ WRITE8_MEMBER(djboy_state::djboy_videoram_w)
void djboy_state::video_start()
{
- m_background = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(djboy_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
+ m_background = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(djboy_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
}
WRITE8_MEMBER(djboy_state::djboy_paletteram_w)
diff --git a/src/mame/video/dkong.cpp b/src/mame/video/dkong.cpp
index fe043a54a8c..c765b35b1c6 100644
--- a/src/mame/video/dkong.cpp
+++ b/src/mame/video/dkong.cpp
@@ -953,10 +953,10 @@ VIDEO_START_MEMBER(dkong_state,dkong)
/* fall through */
case HARDWARE_TKG04:
case HARDWARE_TKG02:
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(dkong_state::dkong_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dkong_state::dkong_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
break;
case HARDWARE_TRS01:
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(dkong_state::radarscp1_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dkong_state::radarscp1_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_screen->register_screen_bitmap(m_bg_bits);
m_gfx4 = memregion("gfx4")->base();
diff --git a/src/mame/video/docastle.cpp b/src/mame/video/docastle.cpp
index e4933b3a840..f00a3c3adc9 100644
--- a/src/mame/video/docastle.cpp
+++ b/src/mame/video/docastle.cpp
@@ -104,7 +104,7 @@ TILE_GET_INFO_MEMBER(docastle_state::get_tile_info)
void docastle_state::video_start_common( uint32_t tile_transmask )
{
- m_do_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(docastle_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_do_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(docastle_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_do_tilemap->set_scrolldy(-32, -32);
m_do_tilemap->set_transmask(0, tile_transmask, 0x0000);
}
diff --git a/src/mame/video/dogfgt.cpp b/src/mame/video/dogfgt.cpp
index fffe0ff4e55..5035f64bf78 100644
--- a/src/mame/video/dogfgt.cpp
+++ b/src/mame/video/dogfgt.cpp
@@ -68,7 +68,7 @@ TILE_GET_INFO_MEMBER(dogfgt_state::get_tile_info)
void dogfgt_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(dogfgt_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dogfgt_state::get_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
m_bitmapram = std::make_unique<uint8_t[]>(BITMAPRAM_SIZE);
save_pointer(NAME(m_bitmapram), BITMAPRAM_SIZE);
diff --git a/src/mame/video/dooyong.cpp b/src/mame/video/dooyong.cpp
index bcacce58628..daeb0068293 100644
--- a/src/mame/video/dooyong.cpp
+++ b/src/mame/video/dooyong.cpp
@@ -63,6 +63,7 @@ dooyong_rom_tilemap_device::dooyong_rom_tilemap_device(
: dooyong_tilemap_device_base(mconfig, type, tag, owner, clock)
, m_rows(8)
, m_tilerom(*this, finder_base::DUMMY_TAG)
+ , m_tmap_cb(*this)
, m_tilerom_offset(0)
, m_tilerom_length(~0U)
, m_transparent_pen(~0U)
@@ -108,11 +109,11 @@ void dooyong_rom_tilemap_device::device_start()
if (!m_gfxdecode->started())
throw device_missing_dependencies();
- m_tmap_cb.bind_relative_to(*owner());
+ m_tmap_cb.resolve();
m_tilemap = &machine().tilemap().create(
*m_gfxdecode,
- tilemap_get_info_delegate(FUNC(dooyong_rom_tilemap_device::tile_info), this),
+ tilemap_get_info_delegate(*this, FUNC(dooyong_rom_tilemap_device::tile_info)),
TILEMAP_SCAN_COLS,
gfx().width(),
gfx().height(),
@@ -236,7 +237,7 @@ void dooyong_ram_tilemap_device::device_start()
m_tilemap = &machine().tilemap().create(
*m_gfxdecode,
- tilemap_get_info_delegate(FUNC(dooyong_ram_tilemap_device::tile_info), this),
+ tilemap_get_info_delegate(*this, FUNC(dooyong_ram_tilemap_device::tile_info)),
TILEMAP_SCAN_COLS,
8,
8,
diff --git a/src/mame/video/dooyong.h b/src/mame/video/dooyong.h
index 58ce4ecf5c0..bc871d94fb3 100644
--- a/src/mame/video/dooyong.h
+++ b/src/mame/video/dooyong.h
@@ -62,7 +62,7 @@ public:
void set_transparent_pen(unsigned pen) { m_transparent_pen = pen; }
typedef device_delegate<void (u16 attr, u32 &code, u32 &color)> dooyong_tmap_cb_delegate;
- void set_tile_callback(dooyong_tmap_cb_delegate cb) { m_tmap_cb = cb; }
+ template <typename... T> void set_tile_callback(T &&... args) { m_tmap_cb.set(std::forward<T>(args)...); }
void ctrl_w(offs_t offset, u8 data);
@@ -85,12 +85,12 @@ protected:
private:
required_region_ptr<u16> m_tilerom;
+ dooyong_tmap_cb_delegate m_tmap_cb;
int m_tilerom_offset;
int m_tilerom_length;
unsigned m_transparent_pen;
u8 m_registers[0x10];
- dooyong_tmap_cb_delegate m_tmap_cb;
};
class rshark_rom_tilemap_device : public dooyong_rom_tilemap_device
diff --git a/src/mame/video/dragrace.cpp b/src/mame/video/dragrace.cpp
index d13441aed68..e17f7b28d0d 100644
--- a/src/mame/video/dragrace.cpp
+++ b/src/mame/video/dragrace.cpp
@@ -43,7 +43,7 @@ TILE_GET_INFO_MEMBER(dragrace_state::get_tile_info)
void dragrace_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(dragrace_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 16, 16);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dragrace_state::get_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 16, 16);
}
diff --git a/src/mame/video/drgnmst.cpp b/src/mame/video/drgnmst.cpp
index 4f3449830e0..bc7f785647f 100644
--- a/src/mame/video/drgnmst.cpp
+++ b/src/mame/video/drgnmst.cpp
@@ -138,13 +138,13 @@ TILEMAP_MAPPER_MEMBER(drgnmst_state::bg_tilemap_scan_cols)
void drgnmst_state::video_start()
{
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(drgnmst_state::get_fg_tile_info),this), tilemap_mapper_delegate(FUNC(drgnmst_state::fg_tilemap_scan_cols),this), 8, 8, 64,64);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(drgnmst_state::get_fg_tile_info)), tilemap_mapper_delegate(*this, FUNC(drgnmst_state::fg_tilemap_scan_cols)), 8, 8, 64,64);
m_fg_tilemap->set_transparent_pen(15);
- m_md_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(drgnmst_state::get_md_tile_info),this), tilemap_mapper_delegate(FUNC(drgnmst_state::md_tilemap_scan_cols),this), 16, 16, 64,64);
+ m_md_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(drgnmst_state::get_md_tile_info)), tilemap_mapper_delegate(*this, FUNC(drgnmst_state::md_tilemap_scan_cols)), 16, 16, 64,64);
m_md_tilemap->set_transparent_pen(15);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(drgnmst_state::get_bg_tile_info),this), tilemap_mapper_delegate(FUNC(drgnmst_state::bg_tilemap_scan_cols),this), 32, 32, 64,64);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(drgnmst_state::get_bg_tile_info)), tilemap_mapper_delegate(*this, FUNC(drgnmst_state::bg_tilemap_scan_cols)), 32, 32, 64,64);
m_bg_tilemap->set_transparent_pen(15);
// do the other tilemaps have rowscroll too? probably not ..
diff --git a/src/mame/video/drmicro.cpp b/src/mame/video/drmicro.cpp
index aea10c37bc9..7e430fab461 100644
--- a/src/mame/video/drmicro.cpp
+++ b/src/mame/video/drmicro.cpp
@@ -103,8 +103,8 @@ void drmicro_state::video_start()
m_videoram = std::make_unique<uint8_t[]>(0x1000);
save_pointer(NAME(m_videoram), 0x1000);
- m_bg1 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(drmicro_state::get_bg1_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_bg2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(drmicro_state::get_bg2_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg1 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(drmicro_state::get_bg1_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(drmicro_state::get_bg2_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_bg2->set_transparent_pen(0);
}
diff --git a/src/mame/video/dynduke.cpp b/src/mame/video/dynduke.cpp
index b459e8addaf..616c7b70b06 100644
--- a/src/mame/video/dynduke.cpp
+++ b/src/mame/video/dynduke.cpp
@@ -66,9 +66,9 @@ TILE_GET_INFO_MEMBER(dynduke_state::get_tx_tile_info)
void dynduke_state::video_start()
{
- m_bg_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(dynduke_state::get_bg_tile_info),this),TILEMAP_SCAN_COLS, 16,16,32,32);
- m_fg_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(dynduke_state::get_fg_tile_info),this),TILEMAP_SCAN_COLS,16,16,32,32);
- m_tx_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(dynduke_state::get_tx_tile_info),this),TILEMAP_SCAN_ROWS, 8, 8,32,32);
+ m_bg_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dynduke_state::get_bg_tile_info)), TILEMAP_SCAN_COLS,16,16,32,32);
+ m_fg_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dynduke_state::get_fg_tile_info)), TILEMAP_SCAN_COLS,16,16,32,32);
+ m_tx_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dynduke_state::get_tx_tile_info)), TILEMAP_SCAN_ROWS, 8, 8,32,32);
m_fg_layer->set_transparent_pen(15);
m_tx_layer->set_transparent_pen(15);
diff --git a/src/mame/video/edevices.cpp b/src/mame/video/edevices.cpp
index 205d6a27e52..dcb2ab2974a 100644
--- a/src/mame/video/edevices.cpp
+++ b/src/mame/video/edevices.cpp
@@ -52,10 +52,10 @@ edevices_sforce_device::edevices_sforce_device(const machine_config &mconfig, co
void edevices_device::device_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(edevices_device::get_bg_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 64, 16);
- m_mlow_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(edevices_device::get_mlow_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 64, 16);
- m_mhigh_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(edevices_device::get_mhigh_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 64, 16);
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(edevices_device::get_tx_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(edevices_device::get_bg_tile_info)), TILEMAP_SCAN_COLS, 16, 16, 64, 16);
+ m_mlow_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(edevices_device::get_mlow_tile_info)), TILEMAP_SCAN_COLS, 16, 16, 64, 16);
+ m_mhigh_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(edevices_device::get_mhigh_tile_info)), TILEMAP_SCAN_COLS, 16, 16, 64, 16);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(edevices_device::get_tx_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_mlow_tilemap->set_transparent_pen(0);
m_mhigh_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/equites.cpp b/src/mame/video/equites.cpp
index 55ef68af119..e474e9ba071 100644
--- a/src/mame/video/equites.cpp
+++ b/src/mame/video/equites.cpp
@@ -120,10 +120,10 @@ VIDEO_START_MEMBER(equites_state,equites)
m_fg_videoram = std::make_unique<uint8_t[]>(0x800);
save_pointer(NAME(m_fg_videoram), 0x800);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(equites_state::equites_fg_info),this), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(equites_state::equites_fg_info)), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(0);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(equites_state::equites_bg_info),this), TILEMAP_SCAN_ROWS, 16, 16, 16, 16);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(equites_state::equites_bg_info)), TILEMAP_SCAN_ROWS, 16, 16, 16, 16);
m_bg_tilemap->set_transparent_pen(0);
m_bg_tilemap->set_scrolldx(0, -10);
}
@@ -135,11 +135,11 @@ VIDEO_START_MEMBER(splndrbt_state,splndrbt)
m_fg_videoram = std::make_unique<uint8_t[]>(0x800);
save_pointer(NAME(m_fg_videoram), 0x800);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(splndrbt_state::splndrbt_fg_info),this), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(splndrbt_state::splndrbt_fg_info)), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(0);
m_fg_tilemap->set_scrolldx(8, -8);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(splndrbt_state::splndrbt_bg_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(splndrbt_state::splndrbt_bg_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
m_bg_tilemap->configure_groups(*m_gfxdecode->gfx(1), 0x10);
}
diff --git a/src/mame/video/esd16.cpp b/src/mame/video/esd16.cpp
index 589aadecf64..519c66af28f 100644
--- a/src/mame/video/esd16.cpp
+++ b/src/mame/video/esd16.cpp
@@ -108,14 +108,14 @@ void esd16_state::tilemap0_color_jumppop_w(u16 data)
void esd16_state::video_start()
{
- m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(esd16_state::get_tile_info<0>),this), TILEMAP_SCAN_ROWS, 8, 8, 0x80, 0x40);
- m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(esd16_state::get_tile_info<1>),this), TILEMAP_SCAN_ROWS, 8, 8, 0x80, 0x40);
+ m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(esd16_state::get_tile_info<0>)), TILEMAP_SCAN_ROWS, 8, 8, 0x80, 0x40);
+ m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(esd16_state::get_tile_info<1>)), TILEMAP_SCAN_ROWS, 8, 8, 0x80, 0x40);
/* swatpolc changes tilemap 0 to 16x16 at various times */
- m_tilemap_16x16[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(esd16_state::get_tile_info_16x16<0>),this), TILEMAP_SCAN_ROWS, 16,16, 0x40, 0x40);
+ m_tilemap_16x16[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(esd16_state::get_tile_info_16x16<0>)), TILEMAP_SCAN_ROWS, 16,16, 0x40, 0x40);
/* hedpanic changes tilemap 1 to 16x16 at various times */
- m_tilemap_16x16[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(esd16_state::get_tile_info_16x16<1>),this), TILEMAP_SCAN_ROWS, 16,16, 0x40, 0x40);
+ m_tilemap_16x16[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(esd16_state::get_tile_info_16x16<1>)), TILEMAP_SCAN_ROWS, 16,16, 0x40, 0x40);
m_tilemap[0]->set_scrolldx(-0x60 + 2, -0x60);
m_tilemap[1]->set_scrolldx(-0x60, -0x60 + 2);
diff --git a/src/mame/video/espial.cpp b/src/mame/video/espial.cpp
index 642a9d1532a..7ca9fda3761 100644
--- a/src/mame/video/espial.cpp
+++ b/src/mame/video/espial.cpp
@@ -88,7 +88,7 @@ TILE_GET_INFO_MEMBER(espial_state::get_tile_info)
void espial_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(espial_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(espial_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_bg_tilemap->set_scroll_cols(32);
save_item(NAME(m_flipscreen));
@@ -97,7 +97,7 @@ void espial_state::video_start()
VIDEO_START_MEMBER(espial_state,netwars)
{
/* Net Wars has a tile map that's twice as big as Espial's */
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(espial_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 64);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(espial_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 64);
m_bg_tilemap->set_scroll_cols(32);
m_bg_tilemap->set_scrolldy(0, 0x100);
diff --git a/src/mame/video/excellent_spr.cpp b/src/mame/video/excellent_spr.cpp
index 15c31083183..5c4cc9f9200 100644
--- a/src/mame/video/excellent_spr.cpp
+++ b/src/mame/video/excellent_spr.cpp
@@ -26,6 +26,7 @@ excellent_spr_device::excellent_spr_device(const machine_config &mconfig, const
: device_t(mconfig, EXCELLENT_SPRITE, tag, owner, clock)
, device_gfx_interface(mconfig, *this, nullptr)
, device_video_interface(mconfig, *this)
+ , m_colpri_cb(*this)
, m_gfx_region(*this, DEVICE_SELF)
, m_colbase(0)
{
@@ -48,7 +49,7 @@ void excellent_spr_device::device_start()
};
layout_16x16x4.total = m_gfx_region->bytes() / ((16*16*4) / 8);
- m_colpri_cb.bind_relative_to(*owner());
+ m_colpri_cb.resolve();
m_ram = make_unique_clear<u8[]>(0x1000);
save_pointer(NAME(m_ram), 0x1000);
diff --git a/src/mame/video/excellent_spr.h b/src/mame/video/excellent_spr.h
index bd9ecabfba0..12e27c5922b 100644
--- a/src/mame/video/excellent_spr.h
+++ b/src/mame/video/excellent_spr.h
@@ -5,15 +5,15 @@
#pragma once
-typedef device_delegate<void (u32 &colour, u32 &pri_mask)> excellent_spr_colpri_cb_delegate;
-
class excellent_spr_device : public device_t, public device_gfx_interface, public device_video_interface
{
public:
+ typedef device_delegate<void (u32 &colour, u32 &pri_mask)> colpri_cb_delegate;
+
excellent_spr_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
void set_color_base(u16 base) { m_colbase = base; }
- template <typename... T> void set_colpri_callback(T &&... args) { m_colpri_cb = excellent_spr_colpri_cb_delegate(std::forward<T>(args)...); }
+ template <typename... T> void set_colpri_callback(T &&... args) { m_colpri_cb.set(std::forward<T>(args)...); }
u8 read(offs_t offset);
void write(offs_t offset, u8 data);
@@ -28,7 +28,7 @@ protected:
virtual void device_reset() override;
private:
- excellent_spr_colpri_cb_delegate m_colpri_cb;
+ colpri_cb_delegate m_colpri_cb;
required_memory_region m_gfx_region;
u16 m_colbase;
};
diff --git a/src/mame/video/exedexes.cpp b/src/mame/video/exedexes.cpp
index c1824d20ea9..b52ab5fb96f 100644
--- a/src/mame/video/exedexes.cpp
+++ b/src/mame/video/exedexes.cpp
@@ -158,9 +158,9 @@ TILEMAP_MAPPER_MEMBER(exedexes_state::fg_tilemap_scan)
void exedexes_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(exedexes_state::get_bg_tile_info),this), tilemap_mapper_delegate(FUNC(exedexes_state::bg_tilemap_scan),this), 32, 32, 64, 64);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(exedexes_state::get_fg_tile_info),this), tilemap_mapper_delegate(FUNC(exedexes_state::fg_tilemap_scan),this), 16, 16, 128, 128);
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(exedexes_state::get_tx_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(exedexes_state::get_bg_tile_info)), tilemap_mapper_delegate(*this, FUNC(exedexes_state::bg_tilemap_scan)), 32, 32, 64, 64);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(exedexes_state::get_fg_tile_info)), tilemap_mapper_delegate(*this, FUNC(exedexes_state::fg_tilemap_scan)), 16, 16, 128, 128);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(exedexes_state::get_tx_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(0);
m_tx_tilemap->configure_groups(*m_gfxdecode->gfx(0), 0xcf);
diff --git a/src/mame/video/exprraid.cpp b/src/mame/video/exprraid.cpp
index b3728e0cf78..8c812a01a3d 100644
--- a/src/mame/video/exprraid.cpp
+++ b/src/mame/video/exprraid.cpp
@@ -82,8 +82,8 @@ TILE_GET_INFO_MEMBER(exprraid_state::get_fg_tile_info)
void exprraid_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(exprraid_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(exprraid_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(exprraid_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(exprraid_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_bg_tilemap->set_scroll_rows(2);
m_fg_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/f1gp.cpp b/src/mame/video/f1gp.cpp
index bef4278b8ac..86b4e354724 100644
--- a/src/mame/video/f1gp.cpp
+++ b/src/mame/video/f1gp.cpp
@@ -43,8 +43,8 @@ TILE_GET_INFO_MEMBER(f1gp2_state::get_roz_tile_info)
void f1gp_state::video_start()
{
- m_roz_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(f1gp_state::get_roz_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(f1gp_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_roz_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(f1gp_state::get_roz_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(f1gp_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_fg_tilemap->set_transparent_pen(0xff);
@@ -56,8 +56,8 @@ void f1gp_state::video_start()
void f1gp2_state::video_start()
{
- m_roz_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(f1gp2_state::get_roz_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(f1gp2_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_roz_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(f1gp2_state::get_roz_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(f1gp2_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_fg_tilemap->set_transparent_pen(0xff);
m_roz_tilemap->set_transparent_pen(0x0f);
diff --git a/src/mame/video/fastfred.cpp b/src/mame/video/fastfred.cpp
index 13ae8f0c554..a2e365fede6 100644
--- a/src/mame/video/fastfred.cpp
+++ b/src/mame/video/fastfred.cpp
@@ -97,7 +97,7 @@ TILE_GET_INFO_MEMBER(fastfred_state::get_tile_info)
VIDEO_START_MEMBER(fastfred_state,fastfred)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(fastfred_state::get_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(fastfred_state::get_tile_info)), TILEMAP_SCAN_ROWS,8,8,32,32);
m_bg_tilemap->set_transparent_pen(0);
m_bg_tilemap->set_scroll_cols(32);
@@ -325,9 +325,9 @@ WRITE_LINE_MEMBER(fastfred_state::imago_charbank_w)
VIDEO_START_MEMBER(fastfred_state,imago)
{
- m_web_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(fastfred_state::imago_get_tile_info_web),this),TILEMAP_SCAN_ROWS,8,8,32,32);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(fastfred_state::imago_get_tile_info_bg),this), TILEMAP_SCAN_ROWS,8,8,32,32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(fastfred_state::imago_get_tile_info_fg),this), TILEMAP_SCAN_ROWS,8,8,32,32);
+ m_web_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(fastfred_state::imago_get_tile_info_web)),TILEMAP_SCAN_ROWS,8,8,32,32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(fastfred_state::imago_get_tile_info_bg)), TILEMAP_SCAN_ROWS,8,8,32,32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(fastfred_state::imago_get_tile_info_fg)), TILEMAP_SCAN_ROWS,8,8,32,32);
m_bg_tilemap->set_transparent_pen(0);
m_fg_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/fastlane.cpp b/src/mame/video/fastlane.cpp
index e9b212245f4..f67762b8276 100644
--- a/src/mame/video/fastlane.cpp
+++ b/src/mame/video/fastlane.cpp
@@ -87,8 +87,8 @@ TILE_GET_INFO_MEMBER(fastlane_state::get_tile_info1)
void fastlane_state::video_start()
{
- m_layer0 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(fastlane_state::get_tile_info0),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_layer1 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(fastlane_state::get_tile_info1),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_layer0 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(fastlane_state::get_tile_info0)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_layer1 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(fastlane_state::get_tile_info1)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_layer0->set_scroll_rows(32);
diff --git a/src/mame/video/fcombat.cpp b/src/mame/video/fcombat.cpp
index 859a4d6384f..ada01a16a16 100644
--- a/src/mame/video/fcombat.cpp
+++ b/src/mame/video/fcombat.cpp
@@ -96,7 +96,7 @@ void fcombat_state::fcombat_palette(palette_device &palette) const
void fcombat_state::video_start()
{
- m_bgmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(fcombat_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32 * 8 * 2, 32);
+ m_bgmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(fcombat_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32 * 8 * 2, 32);
}
diff --git a/src/mame/video/finalizr.cpp b/src/mame/video/finalizr.cpp
index e0f05132bb8..1e74a663a84 100644
--- a/src/mame/video/finalizr.cpp
+++ b/src/mame/video/finalizr.cpp
@@ -114,8 +114,8 @@ TILE_GET_INFO_MEMBER(finalizr_state::get_fg_tile_info)
void finalizr_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(finalizr_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(finalizr_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(finalizr_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(finalizr_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
diff --git a/src/mame/video/firetrap.cpp b/src/mame/video/firetrap.cpp
index d395c85a5fa..3a99cf61b4e 100644
--- a/src/mame/video/firetrap.cpp
+++ b/src/mame/video/firetrap.cpp
@@ -122,9 +122,9 @@ TILE_GET_INFO_MEMBER(firetrap_state::get_bg2_tile_info)
void firetrap_state::video_start()
{
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(firetrap_state::get_fg_tile_info),this), tilemap_mapper_delegate(FUNC(firetrap_state::get_fg_memory_offset),this), 8, 8, 32, 32);
- m_bg1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(firetrap_state::get_bg1_tile_info),this), tilemap_mapper_delegate(FUNC(firetrap_state::get_bg_memory_offset),this), 16, 16, 32, 32);
- m_bg2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(firetrap_state::get_bg2_tile_info),this), tilemap_mapper_delegate(FUNC(firetrap_state::get_bg_memory_offset),this), 16, 16, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(firetrap_state::get_fg_tile_info)), tilemap_mapper_delegate(*this, FUNC(firetrap_state::get_fg_memory_offset)), 8, 8, 32, 32);
+ m_bg1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(firetrap_state::get_bg1_tile_info)), tilemap_mapper_delegate(*this, FUNC(firetrap_state::get_bg_memory_offset)), 16, 16, 32, 32);
+ m_bg2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(firetrap_state::get_bg2_tile_info)), tilemap_mapper_delegate(*this, FUNC(firetrap_state::get_bg_memory_offset)), 16, 16, 32, 32);
m_fg_tilemap->set_transparent_pen(0);
m_bg1_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/firetrk.cpp b/src/mame/video/firetrk.cpp
index 29c92d3afbd..ed1808f375a 100644
--- a/src/mame/video/firetrk.cpp
+++ b/src/mame/video/firetrk.cpp
@@ -211,8 +211,8 @@ void firetrk_state::video_start()
m_screen->register_screen_bitmap(m_helper1);
m_screen->register_screen_bitmap(m_helper2);
- m_tilemap1 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(firetrk_state::firetrk_get_tile_info1),this), TILEMAP_SCAN_ROWS, 16, 16, 16, 16);
- m_tilemap2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(firetrk_state::firetrk_get_tile_info2),this), TILEMAP_SCAN_ROWS, 16, 16, 16, 16);
+ m_tilemap1 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(firetrk_state::firetrk_get_tile_info1)), TILEMAP_SCAN_ROWS, 16, 16, 16, 16);
+ m_tilemap2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(firetrk_state::firetrk_get_tile_info2)), TILEMAP_SCAN_ROWS, 16, 16, 16, 16);
}
@@ -221,8 +221,8 @@ VIDEO_START_MEMBER(firetrk_state,superbug)
m_screen->register_screen_bitmap(m_helper1);
m_screen->register_screen_bitmap(m_helper2);
- m_tilemap1 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(firetrk_state::superbug_get_tile_info1),this), TILEMAP_SCAN_ROWS, 16, 16, 16, 16);
- m_tilemap2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(firetrk_state::superbug_get_tile_info2),this), TILEMAP_SCAN_ROWS, 16, 16, 16, 16);
+ m_tilemap1 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(firetrk_state::superbug_get_tile_info1)), TILEMAP_SCAN_ROWS, 16, 16, 16, 16);
+ m_tilemap2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(firetrk_state::superbug_get_tile_info2)), TILEMAP_SCAN_ROWS, 16, 16, 16, 16);
}
@@ -231,8 +231,8 @@ VIDEO_START_MEMBER(firetrk_state,montecar)
m_screen->register_screen_bitmap(m_helper1);
m_screen->register_screen_bitmap(m_helper2);
- m_tilemap1 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(firetrk_state::montecar_get_tile_info1),this), TILEMAP_SCAN_ROWS, 16, 16, 16, 16);
- m_tilemap2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(firetrk_state::montecar_get_tile_info2),this), TILEMAP_SCAN_ROWS, 16, 16, 16, 16);
+ m_tilemap1 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(firetrk_state::montecar_get_tile_info1)), TILEMAP_SCAN_ROWS, 16, 16, 16, 16);
+ m_tilemap2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(firetrk_state::montecar_get_tile_info2)), TILEMAP_SCAN_ROWS, 16, 16, 16, 16);
}
diff --git a/src/mame/video/fitfight.cpp b/src/mame/video/fitfight.cpp
index 720fb53eabd..edad1d5396f 100644
--- a/src/mame/video/fitfight.cpp
+++ b/src/mame/video/fitfight.cpp
@@ -95,13 +95,13 @@ WRITE16_MEMBER(fitfight_state::fof_txt_tileram_w)
void fitfight_state::video_start()
{
- m_fof_bak_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(fitfight_state::get_fof_bak_tile_info),this), TILEMAP_SCAN_COLS, 8, 8, 128, 32);
+ m_fof_bak_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(fitfight_state::get_fof_bak_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 128, 32);
/* opaque */
- m_fof_mid_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(fitfight_state::get_fof_mid_tile_info),this), TILEMAP_SCAN_COLS, 8, 8, 128, 32);
+ m_fof_mid_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(fitfight_state::get_fof_mid_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 128, 32);
m_fof_mid_tilemap->set_transparent_pen(0);
- m_fof_txt_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(fitfight_state::get_fof_txt_tile_info),this), TILEMAP_SCAN_COLS, 8, 8, 128, 32);
+ m_fof_txt_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(fitfight_state::get_fof_txt_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 128, 32);
m_fof_txt_tilemap->set_transparent_pen(0);
}
diff --git a/src/mame/video/flkatck.cpp b/src/mame/video/flkatck.cpp
index ee92aece1e4..49bb7374b74 100644
--- a/src/mame/video/flkatck.cpp
+++ b/src/mame/video/flkatck.cpp
@@ -69,8 +69,8 @@ TILE_GET_INFO_MEMBER(flkatck_state::get_tile_info_B)
void flkatck_state::video_start()
{
- m_k007121_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(flkatck_state::get_tile_info_A),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_k007121_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(flkatck_state::get_tile_info_B),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_k007121_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(flkatck_state::get_tile_info_A)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_k007121_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(flkatck_state::get_tile_info_B)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
diff --git a/src/mame/video/flstory.cpp b/src/mame/video/flstory.cpp
index 8f0f811f8f5..18424efd135 100644
--- a/src/mame/video/flstory.cpp
+++ b/src/mame/video/flstory.cpp
@@ -55,7 +55,7 @@ TILE_GET_INFO_MEMBER(flstory_state::get_rumba_tile_info)
VIDEO_START_MEMBER(flstory_state,flstory)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(flstory_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(flstory_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
// m_bg_tilemap->set_transparent_pen(15);
m_bg_tilemap->set_transmask(0, 0x3fff, 0xc000); /* split type 0 has pens 0-13 transparent in front half */
m_bg_tilemap->set_transmask(1, 0x8000, 0x7fff); /* split type 1 has pen 15 transparent in front half */
@@ -72,7 +72,7 @@ VIDEO_START_MEMBER(flstory_state,flstory)
VIDEO_START_MEMBER(flstory_state,rumba)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(flstory_state::get_rumba_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(flstory_state::get_rumba_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
// m_bg_tilemap->set_transparent_pen(15);
m_bg_tilemap->set_transmask(0, 0x3fff, 0xc000); /* split type 0 has pens 0-13 transparent in front half */
m_bg_tilemap->set_transmask(1, 0x8000, 0x7fff); /* split type 1 has pen 15 transparent in front half */
@@ -89,7 +89,7 @@ VIDEO_START_MEMBER(flstory_state,rumba)
VIDEO_START_MEMBER(flstory_state,victnine)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(flstory_state::victnine_get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(flstory_state::victnine_get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_bg_tilemap->set_scroll_cols(32);
m_paletteram.resize(m_palette->entries());
diff --git a/src/mame/video/freekick.cpp b/src/mame/video/freekick.cpp
index a02f0068ad7..b579cf016da 100644
--- a/src/mame/video/freekick.cpp
+++ b/src/mame/video/freekick.cpp
@@ -18,7 +18,7 @@ TILE_GET_INFO_MEMBER(freekick_state::get_freek_tile_info)
void freekick_state::video_start()
{
- m_freek_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(freekick_state::get_freek_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_freek_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(freekick_state::get_freek_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
diff --git a/src/mame/video/fromanc2.cpp b/src/mame/video/fromanc2.cpp
index 04e3e7601f9..3d1b0cd0aa6 100644
--- a/src/mame/video/fromanc2.cpp
+++ b/src/mame/video/fromanc2.cpp
@@ -257,14 +257,14 @@ WRITE16_MEMBER(fromanc2_state::fromanc4_gfxreg_2_w)
VIDEO_START_MEMBER(fromanc2_state,fromanc2)
{
- m_tilemap[0][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(&fromanc2_state::fromanc2_get_tile_info<0, 0>, "v0_l0", this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_tilemap[0][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(&fromanc2_state::fromanc2_get_tile_info<0, 1>, "v0_l1", this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_tilemap[0][2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(&fromanc2_state::fromanc2_get_tile_info<0, 2>, "v0_l2", this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_tilemap[0][3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(&fromanc2_state::fromanc2_get_tile_info<0, 3>, "v0_l3", this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_tilemap[1][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(&fromanc2_state::fromanc2_get_tile_info<1, 0>, "v1_l0", this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_tilemap[1][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(&fromanc2_state::fromanc2_get_tile_info<1, 1>, "v1_l1", this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_tilemap[1][2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(&fromanc2_state::fromanc2_get_tile_info<1, 2>, "v1_l2", this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_tilemap[1][3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(&fromanc2_state::fromanc2_get_tile_info<1, 3>, "v1_l3", this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap[0][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, NAME((&fromanc2_state::fromanc2_get_tile_info<0, 0>))), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap[0][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, NAME((&fromanc2_state::fromanc2_get_tile_info<0, 1>))), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap[0][2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, NAME((&fromanc2_state::fromanc2_get_tile_info<0, 2>))), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap[0][3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, NAME((&fromanc2_state::fromanc2_get_tile_info<0, 3>))), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap[1][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, NAME((&fromanc2_state::fromanc2_get_tile_info<1, 0>))), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap[1][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, NAME((&fromanc2_state::fromanc2_get_tile_info<1, 1>))), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap[1][2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, NAME((&fromanc2_state::fromanc2_get_tile_info<1, 2>))), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap[1][3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, NAME((&fromanc2_state::fromanc2_get_tile_info<1, 3>))), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
for (int screen = 0; screen < 2; screen++)
{
@@ -295,13 +295,13 @@ VIDEO_START_MEMBER(fromanc2_state,fromanc2)
VIDEO_START_MEMBER(fromanc2_state,fromancr)
{
- m_tilemap[0][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(&fromanc2_state::fromancr_get_tile_info<0, 0>, "v0_l0", this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_tilemap[0][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(&fromanc2_state::fromancr_get_tile_info<0, 1>, "v0_l1", this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_tilemap[0][2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(&fromanc2_state::fromancr_get_tile_info<0, 2>, "v0_l2", this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap[0][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, NAME((&fromanc2_state::fromancr_get_tile_info<0, 0>))), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap[0][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, NAME((&fromanc2_state::fromancr_get_tile_info<0, 1>))), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap[0][2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, NAME((&fromanc2_state::fromancr_get_tile_info<0, 2>))), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
m_tilemap[0][3] = nullptr;
- m_tilemap[1][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(&fromanc2_state::fromancr_get_tile_info<1, 0>, "v1_l0", this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_tilemap[1][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(&fromanc2_state::fromancr_get_tile_info<1, 1>, "v1_l1", this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_tilemap[1][2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(&fromanc2_state::fromancr_get_tile_info<1, 2>, "v1_l2", this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap[1][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, NAME((&fromanc2_state::fromancr_get_tile_info<1, 0>))), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap[1][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, NAME((&fromanc2_state::fromancr_get_tile_info<1, 1>))), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap[1][2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, NAME((&fromanc2_state::fromancr_get_tile_info<1, 2>))), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
m_tilemap[1][3] = nullptr;
for (int screen = 0; screen < 2; screen++)
@@ -331,13 +331,13 @@ VIDEO_START_MEMBER(fromanc2_state,fromancr)
VIDEO_START_MEMBER(fromanc2_state,fromanc4)
{
- m_tilemap[0][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(&fromanc2_state::fromancr_get_tile_info<0, 0>, "v0_l0", this), TILEMAP_SCAN_ROWS, 8, 8, 256, 64);
- m_tilemap[0][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(&fromanc2_state::fromancr_get_tile_info<0, 1>, "v0_l1", this), TILEMAP_SCAN_ROWS, 8, 8, 256, 64);
- m_tilemap[0][2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(&fromanc2_state::fromancr_get_tile_info<0, 2>, "v0_l2", this), TILEMAP_SCAN_ROWS, 8, 8, 256, 64);
+ m_tilemap[0][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, NAME((&fromanc2_state::fromancr_get_tile_info<0, 0>))), TILEMAP_SCAN_ROWS, 8, 8, 256, 64);
+ m_tilemap[0][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, NAME((&fromanc2_state::fromancr_get_tile_info<0, 1>))), TILEMAP_SCAN_ROWS, 8, 8, 256, 64);
+ m_tilemap[0][2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, NAME((&fromanc2_state::fromancr_get_tile_info<0, 2>))), TILEMAP_SCAN_ROWS, 8, 8, 256, 64);
m_tilemap[0][3] = nullptr;
- m_tilemap[1][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(&fromanc2_state::fromancr_get_tile_info<1, 0>, "v1_l0", this), TILEMAP_SCAN_ROWS, 8, 8, 256, 64);
- m_tilemap[1][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(&fromanc2_state::fromancr_get_tile_info<1, 1>, "v1_l1", this), TILEMAP_SCAN_ROWS, 8, 8, 256, 64);
- m_tilemap[1][2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(&fromanc2_state::fromancr_get_tile_info<1, 2>, "v1_l2", this), TILEMAP_SCAN_ROWS, 8, 8, 256, 64);
+ m_tilemap[1][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, NAME((&fromanc2_state::fromancr_get_tile_info<1, 0>))), TILEMAP_SCAN_ROWS, 8, 8, 256, 64);
+ m_tilemap[1][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, NAME((&fromanc2_state::fromancr_get_tile_info<1, 1>))), TILEMAP_SCAN_ROWS, 8, 8, 256, 64);
+ m_tilemap[1][2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, NAME((&fromanc2_state::fromancr_get_tile_info<1, 2>))), TILEMAP_SCAN_ROWS, 8, 8, 256, 64);
m_tilemap[1][3] = nullptr;
for (int screen = 0; screen < 2; screen++)
diff --git a/src/mame/video/fromance.cpp b/src/mame/video/fromance.cpp
index eaad8257137..a9e84600c01 100644
--- a/src/mame/video/fromance.cpp
+++ b/src/mame/video/fromance.cpp
@@ -88,8 +88,8 @@ void fromance_state::init_common( )
VIDEO_START_MEMBER(fromance_state,fromance)
{
/* allocate tilemaps */
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(fromance_state::get_fromance_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 4, 64, 64);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(fromance_state::get_fromance_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 4, 64, 64);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(fromance_state::get_fromance_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 4, 64, 64);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(fromance_state::get_fromance_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 4, 64, 64);
init_common();
}
@@ -97,8 +97,8 @@ VIDEO_START_MEMBER(fromance_state,fromance)
VIDEO_START_MEMBER(fromance_state,nekkyoku)
{
/* allocate tilemaps */
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(fromance_state::get_nekkyoku_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 4, 64, 64);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(fromance_state::get_nekkyoku_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 4, 64, 64);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(fromance_state::get_nekkyoku_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 4, 64, 64);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(fromance_state::get_nekkyoku_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 4, 64, 64);
init_common();
}
diff --git a/src/mame/video/funkybee.cpp b/src/mame/video/funkybee.cpp
index b762dd4e256..007a0130578 100644
--- a/src/mame/video/funkybee.cpp
+++ b/src/mame/video/funkybee.cpp
@@ -85,7 +85,7 @@ TILEMAP_MAPPER_MEMBER(funkybee_state::funkybee_tilemap_scan)
void funkybee_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(funkybee_state::get_bg_tile_info),this), tilemap_mapper_delegate(FUNC(funkybee_state::funkybee_tilemap_scan),this), 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(funkybee_state::get_bg_tile_info)), tilemap_mapper_delegate(*this, FUNC(funkybee_state::funkybee_tilemap_scan)), 8, 8, 32, 32);
}
void funkybee_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect )
diff --git a/src/mame/video/funworld.cpp b/src/mame/video/funworld.cpp
index 3bfdf3a1204..d56b5bae043 100644
--- a/src/mame/video/funworld.cpp
+++ b/src/mame/video/funworld.cpp
@@ -125,22 +125,22 @@ TILE_GET_INFO_MEMBER(funworld_state::get_bg_tile_info)
void funworld_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(funworld_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 4, 8, 96, 29);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(funworld_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 4, 8, 96, 29);
}
void magicrd2_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(magicrd2_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 4, 8, 112, 34);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(magicrd2_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 4, 8, 112, 34);
}
void chinatow_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(chinatow_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 4, 8, 96, 31);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(chinatow_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 4, 8, 96, 31);
}
void multiwin_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(multiwin_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 4, 8, 96, 31);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(multiwin_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 4, 8, 96, 31);
}
diff --git a/src/mame/video/funybubl.cpp b/src/mame/video/funybubl.cpp
index 1e9103156b2..f2116510cea 100644
--- a/src/mame/video/funybubl.cpp
+++ b/src/mame/video/funybubl.cpp
@@ -29,7 +29,7 @@ TILE_GET_INFO_MEMBER(funybubl_state::get_tile_info)
void funybubl_state::video_start()
{
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(funybubl_state::get_tile_info),this),TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(funybubl_state::get_tile_info)),TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_tilemap->set_transparent_pen(0);
}
diff --git a/src/mame/video/fuukifg.cpp b/src/mame/video/fuukifg.cpp
index 4388811fbb7..2add15d2b8a 100644
--- a/src/mame/video/fuukifg.cpp
+++ b/src/mame/video/fuukifg.cpp
@@ -13,6 +13,8 @@ fuukivid_device::fuukivid_device(const machine_config &mconfig, const char *tag,
: device_t(mconfig, FUUKI_VIDEO, tag, owner, clock)
, device_gfx_interface(mconfig, *this, nullptr)
, device_video_interface(mconfig, *this)
+ , m_tile_cb(*this)
+ , m_colpri_cb(*this)
, m_gfx_region(*this, DEVICE_SELF)
, m_colbase(0)
, m_colnum(0x100)
@@ -34,8 +36,8 @@ void fuukivid_device::device_start()
};
layout_16x16x4.total = m_gfx_region->bytes() / ((16*16*4) / 8);
- m_tile_cb.bind_relative_to(*owner());
- m_colpri_cb.bind_relative_to(*owner());
+ m_tile_cb.resolve();
+ m_colpri_cb.resolve();
set_gfx(0, std::make_unique<gfx_element>(&palette(), layout_16x16x4, m_gfx_region->base(), 0, m_colnum, m_colbase));
}
diff --git a/src/mame/video/fuukifg.h b/src/mame/video/fuukifg.h
index 2c2568597bb..2fb522e257f 100644
--- a/src/mame/video/fuukifg.h
+++ b/src/mame/video/fuukifg.h
@@ -5,19 +5,19 @@
#pragma once
-typedef device_delegate<void (u32 &code)> fuukivid_tile_delegate;
-typedef device_delegate<void (u32 &colour, u32 &pri_mask)> fuukivid_colpri_cb_delegate;
-
class fuukivid_device : public device_t, public device_gfx_interface, public device_video_interface
{
public:
+ typedef device_delegate<void (u32 &code)> tile_delegate;
+ typedef device_delegate<void (u32 &colour, u32 &pri_mask)> colpri_cb_delegate;
+
fuukivid_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
// configuration
void set_color_base(u16 base) { m_colbase = base; }
void set_color_num(u16 num) { m_colnum = num; }
- template <typename... T> void set_tile_callback(T &&... args) { m_tile_cb = fuukivid_tile_delegate(std::forward<T>(args)...); }
- template <typename... T> void set_colpri_callback(T &&... args) { m_colpri_cb = fuukivid_colpri_cb_delegate(std::forward<T>(args)...); }
+ template <typename... T> void set_tile_callback(T &&... args) { m_tile_cb.set(std::forward<T>(args)...); }
+ template <typename... T> void set_colpri_callback(T &&... args) { m_colpri_cb.set(std::forward<T>(args)...); }
void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, bool flip_screen, u16 *spriteram, u32 size);
@@ -26,8 +26,8 @@ protected:
virtual void device_reset() override;
private:
- fuukivid_tile_delegate m_tile_cb;
- fuukivid_colpri_cb_delegate m_colpri_cb;
+ tile_delegate m_tile_cb;
+ colpri_cb_delegate m_colpri_cb;
required_memory_region m_gfx_region;
u16 m_colbase;
u16 m_colnum;
diff --git a/src/mame/video/fuukifg2.cpp b/src/mame/video/fuukifg2.cpp
index c363e6fcfc4..fc9aeb1c6c3 100644
--- a/src/mame/video/fuukifg2.cpp
+++ b/src/mame/video/fuukifg2.cpp
@@ -75,9 +75,9 @@ void fuuki16_state::fuuki16_palette(palette_device &palette) const
void fuuki16_state::video_start()
{
- m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(fuuki16_state::get_tile_info<0>),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
- m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(fuuki16_state::get_tile_info<1>),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
- m_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(fuuki16_state::get_tile_info<2>),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(fuuki16_state::get_tile_info<0>)), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
+ m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(fuuki16_state::get_tile_info<1>)), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
+ m_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(fuuki16_state::get_tile_info<2>)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_tilemap[0]->set_transparent_pen(0x0f); // 4 bits
m_tilemap[1]->set_transparent_pen(0xff); // 8 bits
diff --git a/src/mame/video/fuukifg3.cpp b/src/mame/video/fuukifg3.cpp
index 3295cf038ad..f9a1fe465c7 100644
--- a/src/mame/video/fuukifg3.cpp
+++ b/src/mame/video/fuukifg3.cpp
@@ -73,9 +73,9 @@ void fuuki32_state::video_start()
m_buf_spriteram[0] = make_unique_clear<u16[]>(spriteram_size / 2);
m_buf_spriteram[1] = make_unique_clear<u16[]>(spriteram_size / 2);
- m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(&fuuki32_state::get_tile_info<0, 4>, "layer0", this), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
- m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(&fuuki32_state::get_tile_info<1, 4>, "layer1", this), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
- m_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(&fuuki32_state::get_tile_info<2, 0>, "layer2", this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, NAME((&fuuki32_state::get_tile_info<0, 4>))), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
+ m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, NAME((&fuuki32_state::get_tile_info<1, 4>))), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
+ m_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, NAME((&fuuki32_state::get_tile_info<2, 0>))), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_tilemap[0]->set_transparent_pen(0xff); // 8 bits
m_tilemap[1]->set_transparent_pen(0xff); // 8 bits
diff --git a/src/mame/video/gaelco.cpp b/src/mame/video/gaelco.cpp
index e7cc23e3938..ae62d81f0a2 100644
--- a/src/mame/video/gaelco.cpp
+++ b/src/mame/video/gaelco.cpp
@@ -68,17 +68,17 @@ void gaelco_state::vram_w(offs_t offset, u16 data, u16 mem_mask)
VIDEO_START_MEMBER(gaelco_state,bigkarnk)
{
- m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gaelco_state::get_tile_info<0>),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gaelco_state::get_tile_info<1>),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gaelco_state::get_tile_info<0>)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gaelco_state::get_tile_info<1>)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- m_tilemap[0]->set_transmask(0, 0xff01, 0x00ff); /* pens 1-7 opaque, pens 0, 8-15 transparent */
- m_tilemap[1]->set_transmask(0, 0xff01, 0x00ff); /* pens 1-7 opaque, pens 0, 8-15 transparent */
+ m_tilemap[0]->set_transmask(0, 0xff01, 0x00ff); // pens 1-7 opaque, pens 0, 8-15 transparent
+ m_tilemap[1]->set_transmask(0, 0xff01, 0x00ff); // pens 1-7 opaque, pens 0, 8-15 transparent
}
VIDEO_START_MEMBER(gaelco_state,maniacsq)
{
- m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gaelco_state::get_tile_info<0>),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gaelco_state::get_tile_info<1>),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gaelco_state::get_tile_info<0>)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gaelco_state::get_tile_info<1>)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
m_tilemap[0]->set_transparent_pen(0);
m_tilemap[1]->set_transparent_pen(0);
diff --git a/src/mame/video/gaelco2.cpp b/src/mame/video/gaelco2.cpp
index 3c6e5403da8..856ce7201c5 100644
--- a/src/mame/video/gaelco2.cpp
+++ b/src/mame/video/gaelco2.cpp
@@ -258,8 +258,8 @@ VIDEO_START_MEMBER(gaelco2_state,gaelco2)
m_videoram = m_spriteram->live();
/* create tilemaps */
- m_pant[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gaelco2_state::get_tile_info<0>),this),TILEMAP_SCAN_ROWS,16,16,64,32);
- m_pant[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gaelco2_state::get_tile_info<1>),this),TILEMAP_SCAN_ROWS,16,16,64,32);
+ m_pant[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gaelco2_state::get_tile_info<0>)), TILEMAP_SCAN_ROWS, 16,16, 64,32);
+ m_pant[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gaelco2_state::get_tile_info<1>)), TILEMAP_SCAN_ROWS, 16,16, 64,32);
/* set tilemap properties */
m_pant[0]->set_transparent_pen(0);
@@ -278,8 +278,8 @@ VIDEO_START_MEMBER(gaelco2_state,gaelco2_dual)
m_videoram = m_spriteram->live();
/* create tilemaps */
- m_pant[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gaelco2_state::get_tile_info_dual<0>),this),TILEMAP_SCAN_ROWS,16,16,64,32);
- m_pant[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gaelco2_state::get_tile_info_dual<1>),this),TILEMAP_SCAN_ROWS,16,16,64,32);
+ m_pant[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gaelco2_state::get_tile_info_dual<0>)), TILEMAP_SCAN_ROWS, 16,16, 64,32);
+ m_pant[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gaelco2_state::get_tile_info_dual<1>)), TILEMAP_SCAN_ROWS, 16,16, 64,32);
/* set tilemap properties */
m_pant[0]->set_transparent_pen(0);
diff --git a/src/mame/video/gaiden.cpp b/src/mame/video/gaiden.cpp
index 2dd404ec0b1..4deea34fe06 100644
--- a/src/mame/video/gaiden.cpp
+++ b/src/mame/video/gaiden.cpp
@@ -76,9 +76,9 @@ VIDEO_START_MEMBER(gaiden_state,gaiden)
m_screen->register_screen_bitmap(m_tile_bitmap_fg);
m_screen->register_screen_bitmap(m_tile_bitmap_tx);
- m_background = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gaiden_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
- m_foreground = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gaiden_state::get_fg_tile_info_raiga),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
- m_text_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gaiden_state::get_tx_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_background = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gaiden_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
+ m_foreground = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gaiden_state::get_fg_tile_info_raiga)), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
+ m_text_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gaiden_state::get_tx_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
// m_background->set_transparent_pen(0);
// m_foreground->set_transparent_pen(0);
@@ -100,9 +100,9 @@ VIDEO_START_MEMBER(gaiden_state,raiga)
m_screen->register_screen_bitmap(m_tile_bitmap_fg);
m_screen->register_screen_bitmap(m_tile_bitmap_tx);
- m_background = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gaiden_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
- m_foreground = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gaiden_state::get_fg_tile_info_raiga),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
- m_text_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gaiden_state::get_tx_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_background = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gaiden_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
+ m_foreground = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gaiden_state::get_fg_tile_info_raiga)), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
+ m_text_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gaiden_state::get_tx_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
// m_background->set_transparent_pen(0);
// m_foreground->set_transparent_pen(0);
@@ -116,9 +116,9 @@ VIDEO_START_MEMBER(gaiden_state,raiga)
VIDEO_START_MEMBER(gaiden_state,drgnbowl)
{
/* set up tile layers */
- m_background = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gaiden_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
- m_foreground = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gaiden_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
- m_text_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gaiden_state::get_tx_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_background = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gaiden_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
+ m_foreground = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gaiden_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
+ m_text_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gaiden_state::get_tx_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_foreground->set_transparent_pen(15);
m_text_layer->set_transparent_pen(15);
diff --git a/src/mame/video/galaga.cpp b/src/mame/video/galaga.cpp
index 7de370c1713..23fe7653665 100644
--- a/src/mame/video/galaga.cpp
+++ b/src/mame/video/galaga.cpp
@@ -41,271 +41,267 @@ There are 63 stars in each set, 126 displayed at any one time
galaga_state::star const galaga_state::s_star_seed_tab[252]=
{
-/* also shared by Bosconian */
-
-/* star set 0 */
-
-{0x0085,0x0006,0x35, 0x00},
-{0x008F,0x0008,0x30, 0x00},
-{0x00E5,0x001B,0x07, 0x00},
-{0x0022,0x001C,0x31, 0x00},
-{0x00E5,0x0025,0x1D, 0x00},
-{0x0015,0x0026,0x29, 0x00},
-{0x0080,0x002D,0x3B, 0x00},
-{0x0097,0x002E,0x1C, 0x00},
-{0x00BA,0x003B,0x05, 0x00},
-{0x0036,0x003D,0x36, 0x00},
-{0x0057,0x0044,0x09, 0x00},
-{0x00CF,0x0044,0x3D, 0x00},
-{0x0061,0x004E,0x27, 0x00},
-{0x0087,0x0064,0x1A, 0x00},
-{0x00D6,0x0064,0x17, 0x00},
-{0x000B,0x006C,0x3C, 0x00},
-{0x0006,0x006D,0x24, 0x00},
-{0x0018,0x006E,0x3A, 0x00},
-{0x00A9,0x0079,0x23, 0x00},
-{0x008A,0x007B,0x11, 0x00},
-{0x00D6,0x0080,0x0C, 0x00},
-{0x0067,0x0082,0x3F, 0x00},
-{0x0039,0x0083,0x38, 0x00},
-{0x0072,0x0083,0x14, 0x00},
-{0x00EC,0x0084,0x16, 0x00},
-{0x008E,0x0085,0x10, 0x00},
-{0x0020,0x0088,0x25, 0x00},
-{0x0095,0x008A,0x0F, 0x00},
-{0x000E,0x008D,0x00, 0x00},
-{0x0006,0x0091,0x2E, 0x00},
-{0x0007,0x0094,0x0D, 0x00},
-{0x00AE,0x0097,0x0B, 0x00},
-{0x0000,0x0098,0x2D, 0x00},
-{0x0086,0x009B,0x01, 0x00},
-{0x0058,0x00A1,0x34, 0x00},
-{0x00FE,0x00A1,0x3E, 0x00},
-{0x00A2,0x00A8,0x1F, 0x00},
-{0x0041,0x00AA,0x0A, 0x00},
-{0x003F,0x00AC,0x32, 0x00},
-{0x00DE,0x00AC,0x03, 0x00},
-{0x00D4,0x00B9,0x26, 0x00},
-{0x006D,0x00BB,0x1B, 0x00},
-{0x0062,0x00BD,0x39, 0x00},
-{0x00C9,0x00BE,0x18, 0x00},
-{0x006C,0x00C1,0x04, 0x00},
-{0x0059,0x00C3,0x21, 0x00},
-{0x0060,0x00CC,0x0E, 0x00},
-{0x0091,0x00CC,0x12, 0x00},
-{0x003F,0x00CF,0x06, 0x00},
-{0x00F7,0x00CF,0x22, 0x00},
-{0x0044,0x00D0,0x33, 0x00},
-{0x0034,0x00D2,0x08, 0x00},
-{0x00D3,0x00D9,0x20, 0x00},
-{0x0071,0x00DD,0x37, 0x00},
-{0x0073,0x00E1,0x2C, 0x00},
-{0x00B9,0x00E3,0x2F, 0x00},
-{0x00A9,0x00E4,0x13, 0x00},
-{0x00D3,0x00E7,0x19, 0x00},
-{0x0037,0x00ED,0x02, 0x00},
-{0x00BD,0x00F4,0x15, 0x00},
-{0x000F,0x00F6,0x28, 0x00},
-{0x004F,0x00F7,0x2B, 0x00},
-{0x00FB,0x00FF,0x2A, 0x00},
-
-/* star set 1 */
-
-{0x00FE,0x0004,0x3D, 0x01},
-{0x00C4,0x0006,0x10, 0x01},
-{0x001E,0x0007,0x2D, 0x01},
-{0x0083,0x000B,0x1F, 0x01},
-{0x002E,0x000D,0x3C, 0x01},
-{0x001F,0x000E,0x00, 0x01},
-{0x00D8,0x000E,0x2C, 0x01},
-{0x0003,0x000F,0x17, 0x01},
-{0x0095,0x0011,0x3F, 0x01},
-{0x006A,0x0017,0x35, 0x01},
-{0x00CC,0x0017,0x02, 0x01},
-{0x0000,0x0018,0x32, 0x01},
-{0x0092,0x001D,0x36, 0x01},
-{0x00E3,0x0021,0x04, 0x01},
-{0x002F,0x002D,0x37, 0x01},
-{0x00F0,0x002F,0x0C, 0x01},
-{0x009B,0x003E,0x06, 0x01},
-{0x00A4,0x004C,0x07, 0x01},
-{0x00EA,0x004D,0x13, 0x01},
-{0x0084,0x004E,0x21, 0x01},
-{0x0033,0x0052,0x0F, 0x01},
-{0x0070,0x0053,0x0E, 0x01},
-{0x0006,0x0059,0x08, 0x01},
-{0x0081,0x0060,0x28, 0x01},
-{0x0037,0x0061,0x29, 0x01},
-{0x008F,0x0067,0x2F, 0x01},
-{0x001B,0x006A,0x1D, 0x01},
-{0x00BF,0x007C,0x12, 0x01},
-{0x0051,0x007F,0x31, 0x01},
-{0x0061,0x0086,0x25, 0x01},
-{0x006A,0x008F,0x0D, 0x01},
-{0x006A,0x0091,0x19, 0x01},
-{0x0090,0x0092,0x05, 0x01},
-{0x003B,0x0096,0x24, 0x01},
-{0x008C,0x0097,0x0A, 0x01},
-{0x0006,0x0099,0x03, 0x01},
-{0x0038,0x0099,0x38, 0x01},
-{0x00A8,0x0099,0x18, 0x01},
-{0x0076,0x00A6,0x20, 0x01},
-{0x00AD,0x00A6,0x1C, 0x01},
-{0x00EC,0x00A6,0x1E, 0x01},
-{0x0086,0x00AC,0x15, 0x01},
-{0x0078,0x00AF,0x3E, 0x01},
-{0x007B,0x00B3,0x09, 0x01},
-{0x0027,0x00B8,0x39, 0x01},
-{0x0088,0x00C2,0x23, 0x01},
-{0x0044,0x00C3,0x3A, 0x01},
-{0x00CF,0x00C5,0x34, 0x01},
-{0x0035,0x00C9,0x30, 0x01},
-{0x006E,0x00D1,0x3B, 0x01},
-{0x00D6,0x00D7,0x16, 0x01},
-{0x003A,0x00D9,0x2B, 0x01},
-{0x00AB,0x00E0,0x11, 0x01},
-{0x00E0,0x00E2,0x1B, 0x01},
-{0x006F,0x00E6,0x0B, 0x01},
-{0x00B8,0x00E8,0x14, 0x01},
-{0x00D9,0x00E8,0x1A, 0x01},
-{0x00F9,0x00E8,0x22, 0x01},
-{0x0004,0x00F1,0x2E, 0x01},
-{0x0049,0x00F8,0x26, 0x01},
-{0x0010,0x00F9,0x01, 0x01},
-{0x0039,0x00FB,0x33, 0x01},
-{0x0028,0x00FC,0x27, 0x01},
-
-/* star set 2 */
-
-{0x00FA,0x0006,0x19, 0x02},
-{0x00E4,0x0007,0x2D, 0x02},
-{0x0072,0x000A,0x03, 0x02},
-{0x0084,0x001B,0x00, 0x02},
-{0x00BA,0x001D,0x29, 0x02},
-{0x00E3,0x0022,0x04, 0x02},
-{0x00D1,0x0026,0x2A, 0x02},
-{0x0089,0x0032,0x30, 0x02},
-{0x005B,0x0036,0x27, 0x02},
-{0x0084,0x003A,0x36, 0x02},
-{0x0053,0x003F,0x0D, 0x02},
-{0x0008,0x0040,0x1D, 0x02},
-{0x0055,0x0040,0x1A, 0x02},
-{0x00AA,0x0041,0x31, 0x02},
-{0x00FB,0x0041,0x2B, 0x02},
-{0x00BC,0x0046,0x16, 0x02},
-{0x0093,0x0052,0x39, 0x02},
-{0x00B9,0x0057,0x10, 0x02},
-{0x0054,0x0059,0x28, 0x02},
-{0x00E6,0x005A,0x01, 0x02},
-{0x00A7,0x005D,0x1B, 0x02},
-{0x002D,0x005E,0x35, 0x02},
-{0x0014,0x0062,0x21, 0x02},
-{0x0069,0x006D,0x1F, 0x02},
-{0x00CE,0x006F,0x0B, 0x02},
-{0x00DF,0x0075,0x2F, 0x02},
-{0x00CB,0x0077,0x12, 0x02},
-{0x004E,0x007C,0x23, 0x02},
-{0x004A,0x0084,0x0F, 0x02},
-{0x0012,0x0086,0x25, 0x02},
-{0x0068,0x008C,0x32, 0x02},
-{0x0003,0x0095,0x20, 0x02},
-{0x000A,0x009C,0x17, 0x02},
-{0x005B,0x00A3,0x08, 0x02},
-{0x005F,0x00A4,0x3E, 0x02},
-{0x0072,0x00A4,0x2E, 0x02},
-{0x00CC,0x00A6,0x06, 0x02},
-{0x008A,0x00AB,0x0C, 0x02},
-{0x00E0,0x00AD,0x26, 0x02},
-{0x00F3,0x00AF,0x0A, 0x02},
-{0x0075,0x00B4,0x13, 0x02},
-{0x0068,0x00B7,0x11, 0x02},
-{0x006D,0x00C2,0x2C, 0x02},
-{0x0076,0x00C3,0x14, 0x02},
-{0x00CF,0x00C4,0x1E, 0x02},
-{0x0004,0x00C5,0x1C, 0x02},
-{0x0013,0x00C6,0x3F, 0x02},
-{0x00B9,0x00C7,0x3C, 0x02},
-{0x0005,0x00D7,0x34, 0x02},
-{0x0095,0x00D7,0x3A, 0x02},
-{0x00FC,0x00D8,0x02, 0x02},
-{0x00E7,0x00DC,0x09, 0x02},
-{0x001D,0x00E1,0x05, 0x02},
-{0x0005,0x00E6,0x33, 0x02},
-{0x001C,0x00E9,0x3B, 0x02},
-{0x00A2,0x00ED,0x37, 0x02},
-{0x0028,0x00EE,0x07, 0x02},
-{0x00DD,0x00EF,0x18, 0x02},
-{0x006D,0x00F0,0x38, 0x02},
-{0x00A1,0x00F2,0x0E, 0x02},
-{0x0074,0x00F7,0x3D, 0x02},
-{0x0069,0x00F9,0x22, 0x02},
-{0x003F,0x00FF,0x24, 0x02},
-
-/* star set 3 */
-
-{0x0071,0x0010,0x34, 0x03},
-{0x00AF,0x0011,0x23, 0x03},
-{0x00A0,0x0014,0x26, 0x03},
-{0x0002,0x0017,0x02, 0x03},
-{0x004B,0x0019,0x31, 0x03},
-{0x0093,0x001C,0x0E, 0x03},
-{0x001B,0x001E,0x25, 0x03},
-{0x0032,0x0020,0x2E, 0x03},
-{0x00EE,0x0020,0x3A, 0x03},
-{0x0079,0x0022,0x2F, 0x03},
-{0x006C,0x0023,0x17, 0x03},
-{0x00BC,0x0025,0x11, 0x03},
-{0x0041,0x0029,0x30, 0x03},
-{0x001C,0x002E,0x32, 0x03},
-{0x00B9,0x0031,0x01, 0x03},
-{0x0083,0x0032,0x05, 0x03},
-{0x0095,0x003A,0x12, 0x03},
-{0x000D,0x003F,0x07, 0x03},
-{0x0020,0x0041,0x33, 0x03},
-{0x0092,0x0045,0x2C, 0x03},
-{0x00D4,0x0047,0x08, 0x03},
-{0x00A1,0x004B,0x2D, 0x03},
-{0x00D2,0x004B,0x3B, 0x03},
-{0x00D6,0x0052,0x24, 0x03},
-{0x009A,0x005F,0x1C, 0x03},
-{0x0016,0x0060,0x3D, 0x03},
-{0x001A,0x0063,0x1F, 0x03},
-{0x00CD,0x0066,0x28, 0x03},
-{0x00FF,0x0067,0x10, 0x03},
-{0x0035,0x0069,0x20, 0x03},
-{0x008F,0x006C,0x04, 0x03},
-{0x00CA,0x006C,0x2A, 0x03},
-{0x005A,0x0074,0x09, 0x03},
-{0x0060,0x0078,0x38, 0x03},
-{0x0072,0x0079,0x1E, 0x03},
-{0x0037,0x007F,0x29, 0x03},
-{0x0012,0x0080,0x14, 0x03},
-{0x0029,0x0082,0x2B, 0x03},
-{0x0084,0x0098,0x36, 0x03},
-{0x0032,0x0099,0x37, 0x03},
-{0x00BB,0x00A0,0x19, 0x03},
-{0x003E,0x00A3,0x3E, 0x03},
-{0x004A,0x00A6,0x1A, 0x03},
-{0x0029,0x00A7,0x21, 0x03},
-{0x009D,0x00B7,0x22, 0x03},
-{0x006C,0x00B9,0x15, 0x03},
-{0x000C,0x00C0,0x0A, 0x03},
-{0x00C2,0x00C3,0x0F, 0x03},
-{0x002F,0x00C9,0x0D, 0x03},
-{0x00D2,0x00CE,0x16, 0x03},
-{0x00F3,0x00CE,0x0B, 0x03},
-{0x0075,0x00CF,0x27, 0x03},
-{0x001A,0x00D5,0x35, 0x03},
-{0x0026,0x00D6,0x39, 0x03},
-{0x0080,0x00DA,0x3C, 0x03},
-{0x00A9,0x00DD,0x00, 0x03},
-{0x00BC,0x00EB,0x03, 0x03},
-{0x0032,0x00EF,0x1B, 0x03},
-{0x0067,0x00F0,0x3F, 0x03},
-{0x00EF,0x00F1,0x18, 0x03},
-{0x00A8,0x00F3,0x0C, 0x03},
-{0x00DE,0x00F9,0x1D, 0x03},
-{0x002C,0x00FA,0x13, 0x03}
+ // also shared by Bosconian
+
+ // star set 0
+ {0x0085, 0x0006, 0x35, 0x00},
+ {0x008f, 0x0008, 0x30, 0x00},
+ {0x00e5, 0x001b, 0x07, 0x00},
+ {0x0022, 0x001c, 0x31, 0x00},
+ {0x00e5, 0x0025, 0x1d, 0x00},
+ {0x0015, 0x0026, 0x29, 0x00},
+ {0x0080, 0x002d, 0x3b, 0x00},
+ {0x0097, 0x002e, 0x1c, 0x00},
+ {0x00ba, 0x003b, 0x05, 0x00},
+ {0x0036, 0x003d, 0x36, 0x00},
+ {0x0057, 0x0044, 0x09, 0x00},
+ {0x00cf, 0x0044, 0x3d, 0x00},
+ {0x0061, 0x004e, 0x27, 0x00},
+ {0x0087, 0x0064, 0x1a, 0x00},
+ {0x00d6, 0x0064, 0x17, 0x00},
+ {0x000b, 0x006c, 0x3c, 0x00},
+ {0x0006, 0x006d, 0x24, 0x00},
+ {0x0018, 0x006e, 0x3a, 0x00},
+ {0x00a9, 0x0079, 0x23, 0x00},
+ {0x008a, 0x007b, 0x11, 0x00},
+ {0x00d6, 0x0080, 0x0c, 0x00},
+ {0x0067, 0x0082, 0x3f, 0x00},
+ {0x0039, 0x0083, 0x38, 0x00},
+ {0x0072, 0x0083, 0x14, 0x00},
+ {0x00ec, 0x0084, 0x16, 0x00},
+ {0x008e, 0x0085, 0x10, 0x00},
+ {0x0020, 0x0088, 0x25, 0x00},
+ {0x0095, 0x008a, 0x0f, 0x00},
+ {0x000e, 0x008d, 0x00, 0x00},
+ {0x0006, 0x0091, 0x2e, 0x00},
+ {0x0007, 0x0094, 0x0d, 0x00},
+ {0x00ae, 0x0097, 0x0b, 0x00},
+ {0x0000, 0x0098, 0x2d, 0x00},
+ {0x0086, 0x009b, 0x01, 0x00},
+ {0x0058, 0x00a1, 0x34, 0x00},
+ {0x00fe, 0x00a1, 0x3e, 0x00},
+ {0x00a2, 0x00a8, 0x1f, 0x00},
+ {0x0041, 0x00aa, 0x0a, 0x00},
+ {0x003f, 0x00ac, 0x32, 0x00},
+ {0x00de, 0x00ac, 0x03, 0x00},
+ {0x00d4, 0x00b9, 0x26, 0x00},
+ {0x006d, 0x00bb, 0x1b, 0x00},
+ {0x0062, 0x00bd, 0x39, 0x00},
+ {0x00c9, 0x00be, 0x18, 0x00},
+ {0x006c, 0x00c1, 0x04, 0x00},
+ {0x0059, 0x00c3, 0x21, 0x00},
+ {0x0060, 0x00cc, 0x0e, 0x00},
+ {0x0091, 0x00cc, 0x12, 0x00},
+ {0x003f, 0x00cf, 0x06, 0x00},
+ {0x00f7, 0x00cf, 0x22, 0x00},
+ {0x0044, 0x00d0, 0x33, 0x00},
+ {0x0034, 0x00d2, 0x08, 0x00},
+ {0x00d3, 0x00d9, 0x20, 0x00},
+ {0x0071, 0x00dd, 0x37, 0x00},
+ {0x0073, 0x00e1, 0x2c, 0x00},
+ {0x00b9, 0x00e3, 0x2f, 0x00},
+ {0x00a9, 0x00e4, 0x13, 0x00},
+ {0x00d3, 0x00e7, 0x19, 0x00},
+ {0x0037, 0x00ed, 0x02, 0x00},
+ {0x00bd, 0x00f4, 0x15, 0x00},
+ {0x000f, 0x00f6, 0x28, 0x00},
+ {0x004f, 0x00f7, 0x2b, 0x00},
+ {0x00fb, 0x00ff, 0x2a, 0x00},
+
+ // star set 1
+ {0x00fe, 0x0004, 0x3d, 0x01},
+ {0x00c4, 0x0006, 0x10, 0x01},
+ {0x001e, 0x0007, 0x2d, 0x01},
+ {0x0083, 0x000b, 0x1f, 0x01},
+ {0x002e, 0x000d, 0x3c, 0x01},
+ {0x001f, 0x000e, 0x00, 0x01},
+ {0x00d8, 0x000e, 0x2c, 0x01},
+ {0x0003, 0x000f, 0x17, 0x01},
+ {0x0095, 0x0011, 0x3f, 0x01},
+ {0x006a, 0x0017, 0x35, 0x01},
+ {0x00cc, 0x0017, 0x02, 0x01},
+ {0x0000, 0x0018, 0x32, 0x01},
+ {0x0092, 0x001d, 0x36, 0x01},
+ {0x00e3, 0x0021, 0x04, 0x01},
+ {0x002f, 0x002d, 0x37, 0x01},
+ {0x00f0, 0x002f, 0x0c, 0x01},
+ {0x009b, 0x003e, 0x06, 0x01},
+ {0x00a4, 0x004c, 0x07, 0x01},
+ {0x00ea, 0x004d, 0x13, 0x01},
+ {0x0084, 0x004e, 0x21, 0x01},
+ {0x0033, 0x0052, 0x0f, 0x01},
+ {0x0070, 0x0053, 0x0e, 0x01},
+ {0x0006, 0x0059, 0x08, 0x01},
+ {0x0081, 0x0060, 0x28, 0x01},
+ {0x0037, 0x0061, 0x29, 0x01},
+ {0x008f, 0x0067, 0x2f, 0x01},
+ {0x001b, 0x006a, 0x1d, 0x01},
+ {0x00bf, 0x007c, 0x12, 0x01},
+ {0x0051, 0x007f, 0x31, 0x01},
+ {0x0061, 0x0086, 0x25, 0x01},
+ {0x006a, 0x008f, 0x0d, 0x01},
+ {0x006a, 0x0091, 0x19, 0x01},
+ {0x0090, 0x0092, 0x05, 0x01},
+ {0x003b, 0x0096, 0x24, 0x01},
+ {0x008c, 0x0097, 0x0a, 0x01},
+ {0x0006, 0x0099, 0x03, 0x01},
+ {0x0038, 0x0099, 0x38, 0x01},
+ {0x00a8, 0x0099, 0x18, 0x01},
+ {0x0076, 0x00a6, 0x20, 0x01},
+ {0x00ad, 0x00a6, 0x1c, 0x01},
+ {0x00ec, 0x00a6, 0x1e, 0x01},
+ {0x0086, 0x00ac, 0x15, 0x01},
+ {0x0078, 0x00af, 0x3e, 0x01},
+ {0x007b, 0x00b3, 0x09, 0x01},
+ {0x0027, 0x00b8, 0x39, 0x01},
+ {0x0088, 0x00c2, 0x23, 0x01},
+ {0x0044, 0x00c3, 0x3a, 0x01},
+ {0x00cf, 0x00c5, 0x34, 0x01},
+ {0x0035, 0x00c9, 0x30, 0x01},
+ {0x006e, 0x00d1, 0x3b, 0x01},
+ {0x00d6, 0x00d7, 0x16, 0x01},
+ {0x003a, 0x00d9, 0x2b, 0x01},
+ {0x00ab, 0x00e0, 0x11, 0x01},
+ {0x00e0, 0x00e2, 0x1b, 0x01},
+ {0x006f, 0x00e6, 0x0b, 0x01},
+ {0x00b8, 0x00e8, 0x14, 0x01},
+ {0x00d9, 0x00e8, 0x1a, 0x01},
+ {0x00f9, 0x00e8, 0x22, 0x01},
+ {0x0004, 0x00f1, 0x2e, 0x01},
+ {0x0049, 0x00f8, 0x26, 0x01},
+ {0x0010, 0x00f9, 0x01, 0x01},
+ {0x0039, 0x00fb, 0x33, 0x01},
+ {0x0028, 0x00fc, 0x27, 0x01},
+
+ // star set 2
+ {0x00fa, 0x0006, 0x19, 0x02},
+ {0x00e4, 0x0007, 0x2d, 0x02},
+ {0x0072, 0x000a, 0x03, 0x02},
+ {0x0084, 0x001b, 0x00, 0x02},
+ {0x00ba, 0x001d, 0x29, 0x02},
+ {0x00e3, 0x0022, 0x04, 0x02},
+ {0x00d1, 0x0026, 0x2a, 0x02},
+ {0x0089, 0x0032, 0x30, 0x02},
+ {0x005b, 0x0036, 0x27, 0x02},
+ {0x0084, 0x003a, 0x36, 0x02},
+ {0x0053, 0x003f, 0x0d, 0x02},
+ {0x0008, 0x0040, 0x1d, 0x02},
+ {0x0055, 0x0040, 0x1a, 0x02},
+ {0x00aa, 0x0041, 0x31, 0x02},
+ {0x00fb, 0x0041, 0x2b, 0x02},
+ {0x00bc, 0x0046, 0x16, 0x02},
+ {0x0093, 0x0052, 0x39, 0x02},
+ {0x00b9, 0x0057, 0x10, 0x02},
+ {0x0054, 0x0059, 0x28, 0x02},
+ {0x00e6, 0x005a, 0x01, 0x02},
+ {0x00a7, 0x005d, 0x1b, 0x02},
+ {0x002d, 0x005e, 0x35, 0x02},
+ {0x0014, 0x0062, 0x21, 0x02},
+ {0x0069, 0x006d, 0x1f, 0x02},
+ {0x00ce, 0x006f, 0x0b, 0x02},
+ {0x00df, 0x0075, 0x2f, 0x02},
+ {0x00cb, 0x0077, 0x12, 0x02},
+ {0x004e, 0x007c, 0x23, 0x02},
+ {0x004a, 0x0084, 0x0f, 0x02},
+ {0x0012, 0x0086, 0x25, 0x02},
+ {0x0068, 0x008c, 0x32, 0x02},
+ {0x0003, 0x0095, 0x20, 0x02},
+ {0x000a, 0x009c, 0x17, 0x02},
+ {0x005b, 0x00a3, 0x08, 0x02},
+ {0x005f, 0x00a4, 0x3e, 0x02},
+ {0x0072, 0x00a4, 0x2e, 0x02},
+ {0x00cc, 0x00a6, 0x06, 0x02},
+ {0x008a, 0x00ab, 0x0c, 0x02},
+ {0x00e0, 0x00ad, 0x26, 0x02},
+ {0x00f3, 0x00af, 0x0a, 0x02},
+ {0x0075, 0x00b4, 0x13, 0x02},
+ {0x0068, 0x00b7, 0x11, 0x02},
+ {0x006d, 0x00c2, 0x2c, 0x02},
+ {0x0076, 0x00c3, 0x14, 0x02},
+ {0x00cf, 0x00c4, 0x1e, 0x02},
+ {0x0004, 0x00c5, 0x1c, 0x02},
+ {0x0013, 0x00c6, 0x3f, 0x02},
+ {0x00b9, 0x00c7, 0x3c, 0x02},
+ {0x0005, 0x00d7, 0x34, 0x02},
+ {0x0095, 0x00d7, 0x3a, 0x02},
+ {0x00fc, 0x00d8, 0x02, 0x02},
+ {0x00e7, 0x00dc, 0x09, 0x02},
+ {0x001d, 0x00e1, 0x05, 0x02},
+ {0x0005, 0x00e6, 0x33, 0x02},
+ {0x001c, 0x00e9, 0x3b, 0x02},
+ {0x00a2, 0x00ed, 0x37, 0x02},
+ {0x0028, 0x00ee, 0x07, 0x02},
+ {0x00dd, 0x00ef, 0x18, 0x02},
+ {0x006d, 0x00f0, 0x38, 0x02},
+ {0x00a1, 0x00f2, 0x0e, 0x02},
+ {0x0074, 0x00f7, 0x3d, 0x02},
+ {0x0069, 0x00f9, 0x22, 0x02},
+ {0x003f, 0x00ff, 0x24, 0x02},
+
+ // star set 3
+ {0x0071, 0x0010, 0x34, 0x03},
+ {0x00af, 0x0011, 0x23, 0x03},
+ {0x00a0, 0x0014, 0x26, 0x03},
+ {0x0002, 0x0017, 0x02, 0x03},
+ {0x004b, 0x0019, 0x31, 0x03},
+ {0x0093, 0x001c, 0x0e, 0x03},
+ {0x001b, 0x001e, 0x25, 0x03},
+ {0x0032, 0x0020, 0x2e, 0x03},
+ {0x00ee, 0x0020, 0x3a, 0x03},
+ {0x0079, 0x0022, 0x2f, 0x03},
+ {0x006c, 0x0023, 0x17, 0x03},
+ {0x00bc, 0x0025, 0x11, 0x03},
+ {0x0041, 0x0029, 0x30, 0x03},
+ {0x001c, 0x002e, 0x32, 0x03},
+ {0x00b9, 0x0031, 0x01, 0x03},
+ {0x0083, 0x0032, 0x05, 0x03},
+ {0x0095, 0x003a, 0x12, 0x03},
+ {0x000d, 0x003f, 0x07, 0x03},
+ {0x0020, 0x0041, 0x33, 0x03},
+ {0x0092, 0x0045, 0x2c, 0x03},
+ {0x00d4, 0x0047, 0x08, 0x03},
+ {0x00a1, 0x004b, 0x2d, 0x03},
+ {0x00d2, 0x004b, 0x3b, 0x03},
+ {0x00d6, 0x0052, 0x24, 0x03},
+ {0x009a, 0x005f, 0x1c, 0x03},
+ {0x0016, 0x0060, 0x3d, 0x03},
+ {0x001a, 0x0063, 0x1f, 0x03},
+ {0x00cd, 0x0066, 0x28, 0x03},
+ {0x00ff, 0x0067, 0x10, 0x03},
+ {0x0035, 0x0069, 0x20, 0x03},
+ {0x008f, 0x006c, 0x04, 0x03},
+ {0x00ca, 0x006c, 0x2a, 0x03},
+ {0x005a, 0x0074, 0x09, 0x03},
+ {0x0060, 0x0078, 0x38, 0x03},
+ {0x0072, 0x0079, 0x1e, 0x03},
+ {0x0037, 0x007f, 0x29, 0x03},
+ {0x0012, 0x0080, 0x14, 0x03},
+ {0x0029, 0x0082, 0x2b, 0x03},
+ {0x0084, 0x0098, 0x36, 0x03},
+ {0x0032, 0x0099, 0x37, 0x03},
+ {0x00bb, 0x00a0, 0x19, 0x03},
+ {0x003e, 0x00a3, 0x3e, 0x03},
+ {0x004a, 0x00a6, 0x1a, 0x03},
+ {0x0029, 0x00a7, 0x21, 0x03},
+ {0x009d, 0x00b7, 0x22, 0x03},
+ {0x006c, 0x00b9, 0x15, 0x03},
+ {0x000c, 0x00c0, 0x0a, 0x03},
+ {0x00c2, 0x00c3, 0x0f, 0x03},
+ {0x002f, 0x00c9, 0x0d, 0x03},
+ {0x00d2, 0x00ce, 0x16, 0x03},
+ {0x00f3, 0x00ce, 0x0b, 0x03},
+ {0x0075, 0x00cf, 0x27, 0x03},
+ {0x001a, 0x00d5, 0x35, 0x03},
+ {0x0026, 0x00d6, 0x39, 0x03},
+ {0x0080, 0x00da, 0x3c, 0x03},
+ {0x00a9, 0x00dd, 0x00, 0x03},
+ {0x00bc, 0x00eb, 0x03, 0x03},
+ {0x0032, 0x00ef, 0x1b, 0x03},
+ {0x0067, 0x00f0, 0x3f, 0x03},
+ {0x00ef, 0x00f1, 0x18, 0x03},
+ {0x00a8, 0x00f3, 0x0c, 0x03},
+ {0x00de, 0x00f9, 0x1d, 0x03},
+ {0x002c, 0x00fa, 0x13, 0x03}
};
@@ -523,7 +519,7 @@ TILE_GET_INFO_MEMBER(galaga_state::get_tile_info)
VIDEO_START_MEMBER(galaga_state,galaga)
{
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(galaga_state::get_tile_info),this),tilemap_mapper_delegate(FUNC(galaga_state::tilemap_scan),this),8,8,36,28);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(galaga_state::get_tile_info)), tilemap_mapper_delegate(*this, FUNC(galaga_state::tilemap_scan)), 8,8,36,28);
m_fg_tilemap->configure_groups(*m_gfxdecode->gfx(0), 0x1f);
m_galaga_gfxbank = 0;
diff --git a/src/mame/video/galaxia.cpp b/src/mame/video/galaxia.cpp
index bbb46547e2b..e156580afb2 100644
--- a/src/mame/video/galaxia.cpp
+++ b/src/mame/video/galaxia.cpp
@@ -87,7 +87,7 @@ VIDEO_START_MEMBER(galaxia_state,galaxia)
{
init_common();
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(galaxia_state::get_galaxia_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(galaxia_state::get_galaxia_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_bg_tilemap->set_transparent_pen(0);
m_bg_tilemap->set_scroll_cols(8);
@@ -97,7 +97,7 @@ VIDEO_START_MEMBER(galaxia_state,astrowar)
{
init_common();
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(galaxia_state::get_astrowar_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(galaxia_state::get_astrowar_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_bg_tilemap->set_transparent_pen(0);
m_bg_tilemap->set_scroll_cols(8);
m_bg_tilemap->set_scrolldx(8, 8);
diff --git a/src/mame/video/galaxian.cpp b/src/mame/video/galaxian.cpp
index f3a192ad024..d4319477c6b 100644
--- a/src/mame/video/galaxian.cpp
+++ b/src/mame/video/galaxian.cpp
@@ -390,13 +390,13 @@ void galaxian_state::video_start()
if (!m_sfx_tilemap)
{
/* normal galaxian hardware is row-based and individually scrolling columns */
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(galaxian_state::bg_get_tile_info),this), TILEMAP_SCAN_ROWS, m_x_scale*8,8, 32,32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(galaxian_state::bg_get_tile_info)), TILEMAP_SCAN_ROWS, m_x_scale*8,8, 32,32);
m_bg_tilemap->set_scroll_cols(32);
}
else
{
/* sfx hardware is column-based and individually scrolling rows */
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(galaxian_state::bg_get_tile_info),this), TILEMAP_SCAN_COLS, m_x_scale*8,8, 32,32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(galaxian_state::bg_get_tile_info)), TILEMAP_SCAN_COLS, m_x_scale*8,8, 32,32);
m_bg_tilemap->set_scroll_rows(32);
}
m_bg_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/galaxold.cpp b/src/mame/video/galaxold.cpp
index 1303291335f..c9c9676330e 100644
--- a/src/mame/video/galaxold.cpp
+++ b/src/mame/video/galaxold.cpp
@@ -385,7 +385,7 @@ void galaxold_state::video_start_common()
VIDEO_START_MEMBER(galaxold_state,galaxold_plain)
{
video_start_common();
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(galaxold_state::get_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(galaxold_state::get_tile_info)), TILEMAP_SCAN_ROWS,8,8,32,32);
m_bg_tilemap->set_transparent_pen(0);
m_bg_tilemap->set_scroll_cols(32);
@@ -581,7 +581,7 @@ void galaxold_state::rockclim_modify_spritecode(uint8_t *spriteram, int *code, i
VIDEO_START_MEMBER(galaxold_state,rockclim)
{
VIDEO_START_CALL_MEMBER(galaxold);
- m_rockclim_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(galaxold_state::rockclim_get_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,32);
+ m_rockclim_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(galaxold_state::rockclim_get_tile_info)), TILEMAP_SCAN_ROWS,8,8,64,32);
m_draw_background = &galaxold_state::rockclim_draw_background;
m_modify_charcode = &galaxold_state::mooncrst_modify_charcode;
@@ -608,7 +608,7 @@ TILE_GET_INFO_MEMBER(galaxold_state::drivfrcg_get_tile_info)
VIDEO_START_MEMBER(galaxold_state,drivfrcg)
{
video_start_common();
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(galaxold_state::drivfrcg_get_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(galaxold_state::drivfrcg_get_tile_info)), TILEMAP_SCAN_ROWS,8,8,32,32);
m_bg_tilemap->set_transparent_pen(0);
m_bg_tilemap->set_scroll_cols(32);
@@ -622,7 +622,7 @@ VIDEO_START_MEMBER(galaxold_state,drivfrcg)
VIDEO_START_MEMBER(galaxold_state,ad2083)
{
video_start_common();
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(galaxold_state::drivfrcg_get_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(galaxold_state::drivfrcg_get_tile_info)), TILEMAP_SCAN_ROWS,8,8,32,32);
m_bg_tilemap->set_transparent_pen(0);
m_bg_tilemap->set_scroll_cols(32);
@@ -658,7 +658,7 @@ TILE_GET_INFO_MEMBER(galaxold_state::racknrol_get_tile_info)
VIDEO_START_MEMBER(galaxold_state,racknrol)
{
video_start_common();
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(galaxold_state::racknrol_get_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(galaxold_state::racknrol_get_tile_info)), TILEMAP_SCAN_ROWS,8,8,32,32);
m_bg_tilemap->set_transparent_pen(0);
m_bg_tilemap->set_scroll_cols(32);
@@ -689,7 +689,7 @@ void galaxold_state::harem_modify_spritecode(uint8_t *spriteram, int *code, int
VIDEO_START_MEMBER(galaxold_state,harem)
{
video_start_common();
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(galaxold_state::harem_get_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(galaxold_state::harem_get_tile_info)), TILEMAP_SCAN_ROWS,8,8,32,32);
// m_bg_tilemap->set_transparent_pen(0); // opaque tilemap to get sky and sand colors
m_bg_tilemap->set_scroll_cols(32);
@@ -757,7 +757,7 @@ VIDEO_START_MEMBER(galaxold_state,dambustr)
/* make a copy of the tilemap to emulate background priority */
m_dambustr_videoram2 = std::make_unique<uint8_t[]>(0x0400);
- m_dambustr_tilemap2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(galaxold_state::dambustr_get_tile_info2),this),TILEMAP_SCAN_ROWS,8,8,32,32);
+ m_dambustr_tilemap2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(galaxold_state::dambustr_get_tile_info2)), TILEMAP_SCAN_ROWS,8,8,32,32);
m_dambustr_tilemap2->set_transparent_pen(0);
}
diff --git a/src/mame/video/galivan.cpp b/src/mame/video/galivan.cpp
index 747a026bfed..c66eabe36d1 100644
--- a/src/mame/video/galivan.cpp
+++ b/src/mame/video/galivan.cpp
@@ -163,16 +163,16 @@ TILE_GET_INFO_MEMBER(galivan_state::ninjemak_get_tx_tile_info)
VIDEO_START_MEMBER(galivan_state,galivan)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(galivan_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 128, 128);
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(galivan_state::get_tx_tile_info),this), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(galivan_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 128, 128);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(galivan_state::get_tx_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
m_tx_tilemap->set_transparent_pen(15);
}
VIDEO_START_MEMBER(galivan_state,ninjemak)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(galivan_state::ninjemak_get_bg_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 512, 32);
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(galivan_state::ninjemak_get_tx_tile_info),this), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(galivan_state::ninjemak_get_bg_tile_info)), TILEMAP_SCAN_COLS, 16, 16, 512, 32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(galivan_state::ninjemak_get_tx_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
m_tx_tilemap->set_transparent_pen(15);
}
diff --git a/src/mame/video/gaplus.cpp b/src/mame/video/gaplus.cpp
index 875affd31da..6f0c8bbff8b 100644
--- a/src/mame/video/gaplus.cpp
+++ b/src/mame/video/gaplus.cpp
@@ -171,7 +171,7 @@ void gaplus_base_state::starfield_init()
void gaplus_base_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gaplus_state::get_tile_info),this),tilemap_mapper_delegate(FUNC(gaplus_state::tilemap_scan),this),8,8,36,28);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gaplus_state::get_tile_info)), tilemap_mapper_delegate(*this, FUNC(gaplus_state::tilemap_scan)), 8,8,36,28);
m_bg_tilemap->configure_groups(*m_gfxdecode->gfx(0), 0xff);
diff --git a/src/mame/video/gatron.cpp b/src/mame/video/gatron.cpp
index cd47ecae741..822627e7287 100644
--- a/src/mame/video/gatron.cpp
+++ b/src/mame/video/gatron.cpp
@@ -47,7 +47,7 @@ void gatron_state::video_start()
{
m_lamps.resolve();
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gatron_state::get_bg_tile_info), this), TILEMAP_SCAN_COLS, 8, 16, 48, 16);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gatron_state::get_bg_tile_info)), TILEMAP_SCAN_COLS, 8, 16, 48, 16);
}
uint32_t gatron_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
diff --git a/src/mame/video/gberet.cpp b/src/mame/video/gberet.cpp
index f2affc95070..9a6f84bfc23 100644
--- a/src/mame/video/gberet.cpp
+++ b/src/mame/video/gberet.cpp
@@ -111,7 +111,7 @@ TILE_GET_INFO_MEMBER(gberet_state::get_bg_tile_info)
VIDEO_START_MEMBER(gberet_state,gberet)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gberet_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gberet_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_bg_tilemap->configure_groups(*m_gfxdecode->gfx(0), 0x10);
m_bg_tilemap->set_scroll_rows(32);
}
diff --git a/src/mame/video/gcpinbal.cpp b/src/mame/video/gcpinbal.cpp
index fd564330797..f6a87c0901b 100644
--- a/src/mame/video/gcpinbal.cpp
+++ b/src/mame/video/gcpinbal.cpp
@@ -41,9 +41,9 @@ void gcpinbal_state::video_start()
int xoffs = 0;
int yoffs = 0;
- m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gcpinbal_state::get_bg0_tile_info),this),TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gcpinbal_state::get_bg1_tile_info),this),TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- m_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gcpinbal_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gcpinbal_state::get_bg0_tile_info)),TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gcpinbal_state::get_bg1_tile_info)),TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gcpinbal_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
m_tilemap[0]->set_transparent_pen(0);
m_tilemap[1]->set_transparent_pen(0);
diff --git a/src/mame/video/ginganin.cpp b/src/mame/video/ginganin.cpp
index 2b99a30d27d..c9b17e491fb 100644
--- a/src/mame/video/ginganin.cpp
+++ b/src/mame/video/ginganin.cpp
@@ -132,9 +132,9 @@ void ginganin_state::txtram_w(offs_t offset, u16 data, u16 mem_mask)
void ginganin_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ginganin_state::get_bg_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, BG_NX, BG_NY);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ginganin_state::get_fg_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, FG_NX, FG_NY);
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ginganin_state::get_txt_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, TXT_NX, TXT_NY);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ginganin_state::get_bg_tile_info)), TILEMAP_SCAN_COLS, 16, 16, BG_NX, BG_NY);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ginganin_state::get_fg_tile_info)), TILEMAP_SCAN_COLS, 16, 16, FG_NX, FG_NY);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ginganin_state::get_txt_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, TXT_NX, TXT_NY);
m_fg_tilemap->set_transparent_pen(15);
m_tx_tilemap->set_transparent_pen(15);
diff --git a/src/mame/video/gladiatr.cpp b/src/mame/video/gladiatr.cpp
index 016b325d02b..c977b7f5945 100644
--- a/src/mame/video/gladiatr.cpp
+++ b/src/mame/video/gladiatr.cpp
@@ -44,8 +44,8 @@ TILE_GET_INFO_MEMBER(gladiatr_state_base::fg_get_tile_info)
VIDEO_START_MEMBER(ppking_state,ppking)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ppking_state::bg_get_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,64);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ppking_state::fg_get_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,64);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ppking_state::bg_get_tile_info)), TILEMAP_SCAN_ROWS,8,8,32,64);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ppking_state::fg_get_tile_info)), TILEMAP_SCAN_ROWS,8,8,32,64);
m_fg_tilemap->set_transparent_pen(0);
@@ -61,8 +61,8 @@ VIDEO_START_MEMBER(ppking_state,ppking)
VIDEO_START_MEMBER(gladiatr_state,gladiatr)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gladiatr_state::bg_get_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gladiatr_state::fg_get_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gladiatr_state::bg_get_tile_info)), TILEMAP_SCAN_ROWS,8,8,64,32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gladiatr_state::fg_get_tile_info)), TILEMAP_SCAN_ROWS,8,8,64,32);
m_fg_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/glass.cpp b/src/mame/video/glass.cpp
index 9006aa42ca8..dce9c9079aa 100644
--- a/src/mame/video/glass.cpp
+++ b/src/mame/video/glass.cpp
@@ -112,8 +112,8 @@ WRITE16_MEMBER(glass_state::vram_w)
void glass_state::video_start()
{
- m_pant[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(glass_state::get_tile_info<0>),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- m_pant[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(glass_state::get_tile_info<1>),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_pant[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(glass_state::get_tile_info<0>)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_pant[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(glass_state::get_tile_info<1>)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
m_screen_bitmap = std::make_unique<bitmap_ind16>(320, 200);
save_item(NAME(*m_screen_bitmap));
diff --git a/src/mame/video/gng.cpp b/src/mame/video/gng.cpp
index 4dc7a7d08b7..8fbed82cb64 100644
--- a/src/mame/video/gng.cpp
+++ b/src/mame/video/gng.cpp
@@ -47,12 +47,12 @@ TILE_GET_INFO_MEMBER(gng_state::get_bg_tile_info)
void gng_state::video_start()
{
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gng_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gng_state::get_bg_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gng_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gng_state::get_bg_tile_info)), TILEMAP_SCAN_COLS, 16, 16, 32, 32);
m_fg_tilemap->set_transparent_pen(3);
- m_bg_tilemap->set_transmask(0, 0xff, 0x00); /* split type 0 is totally transparent in front half */
- m_bg_tilemap->set_transmask(1, 0x41, 0xbe); /* split type 1 has pens 0 and 6 transparent in front half */
+ m_bg_tilemap->set_transmask(0, 0xff, 0x00); // split type 0 is totally transparent in front half
+ m_bg_tilemap->set_transmask(1, 0x41, 0xbe); // split type 1 has pens 0 and 6 transparent in front half
}
diff --git a/src/mame/video/goal92.cpp b/src/mame/video/goal92.cpp
index 87f4d0cba84..c7c942411a7 100644
--- a/src/mame/video/goal92.cpp
+++ b/src/mame/video/goal92.cpp
@@ -132,9 +132,9 @@ void goal92_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect
void goal92_state::video_start()
{
- m_bg_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(goal92_state::get_back_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- m_fg_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(goal92_state::get_fore_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- m_tx_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(goal92_state::get_text_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(goal92_state::get_back_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_fg_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(goal92_state::get_fore_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_tx_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(goal92_state::get_text_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_buffered_spriteram = std::make_unique<uint16_t[]>(0x400 * 2);
save_pointer(NAME(m_buffered_spriteram), 0x400 * 2);
diff --git a/src/mame/video/goindol.cpp b/src/mame/video/goindol.cpp
index a4c8752e2f8..800fa01eaba 100644
--- a/src/mame/video/goindol.cpp
+++ b/src/mame/video/goindol.cpp
@@ -47,8 +47,8 @@ TILE_GET_INFO_MEMBER(goindol_state::get_bg_tile_info)
void goindol_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(goindol_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(goindol_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(goindol_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(goindol_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(0);
}
diff --git a/src/mame/video/goldstar.cpp b/src/mame/video/goldstar.cpp
index 7ab78f486d2..e2e9ba3b215 100644
--- a/src/mame/video/goldstar.cpp
+++ b/src/mame/video/goldstar.cpp
@@ -105,15 +105,15 @@ TILE_GET_INFO_MEMBER(goldstar_state::get_goldstar_reel3_tile_info)
VIDEO_START_MEMBER(goldstar_state, goldstar)
{
- m_reel1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(goldstar_state::get_goldstar_reel1_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 64, 8);
- m_reel2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(goldstar_state::get_goldstar_reel2_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 64, 8);
- m_reel3_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(goldstar_state::get_goldstar_reel3_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 64, 8);
+ m_reel1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(goldstar_state::get_goldstar_reel1_tile_info)), TILEMAP_SCAN_ROWS, 8,32, 64, 8);
+ m_reel2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(goldstar_state::get_goldstar_reel2_tile_info)), TILEMAP_SCAN_ROWS, 8,32, 64, 8);
+ m_reel3_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(goldstar_state::get_goldstar_reel3_tile_info)), TILEMAP_SCAN_ROWS, 8,32, 64, 8);
m_reel1_tilemap->set_scroll_cols(64);
m_reel2_tilemap->set_scroll_cols(64);
m_reel3_tilemap->set_scroll_cols(64);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(goldstar_state::get_goldstar_fg_tile_info),this),TILEMAP_SCAN_ROWS,8,8, 64, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(goldstar_state::get_goldstar_fg_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 64, 32);
m_fg_tilemap->set_transparent_pen(0);
// is there an enable reg for this game?
@@ -122,9 +122,9 @@ VIDEO_START_MEMBER(goldstar_state, goldstar)
VIDEO_START_MEMBER(goldstar_state, cherrym)
{
- m_reel1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(goldstar_state::get_goldstar_reel1_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 64, 8);
- m_reel2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(goldstar_state::get_goldstar_reel2_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 64, 8);
- m_reel3_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(goldstar_state::get_goldstar_reel3_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 64, 8);
+ m_reel1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(goldstar_state::get_goldstar_reel1_tile_info)), TILEMAP_SCAN_ROWS, 8,32, 64, 8);
+ m_reel2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(goldstar_state::get_goldstar_reel2_tile_info)), TILEMAP_SCAN_ROWS, 8,32, 64, 8);
+ m_reel3_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(goldstar_state::get_goldstar_reel3_tile_info)), TILEMAP_SCAN_ROWS, 8,32, 64, 8);
m_reel1_tilemap->set_scroll_cols(64);
m_reel2_tilemap->set_scroll_cols(64);
@@ -133,7 +133,7 @@ VIDEO_START_MEMBER(goldstar_state, cherrym)
m_cmaster_girl_num = 0;
m_cmaster_girl_pal = 0;
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(goldstar_state::get_cherrym_fg_tile_info),this),TILEMAP_SCAN_ROWS,8,8, 64, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(goldstar_state::get_cherrym_fg_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 64, 32);
m_fg_tilemap->set_transparent_pen(0);
m_cm_enable_reg = 0x0b;
@@ -347,11 +347,11 @@ TILE_GET_INFO_MEMBER(wingco_state::get_magical_fg_tile_info)
VIDEO_START_MEMBER(wingco_state, bingowng)
{
- m_reel1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(wingco_state::get_goldstar_reel1_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 64, 8);
+ m_reel1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(wingco_state::get_goldstar_reel1_tile_info)), TILEMAP_SCAN_ROWS, 8,32, 64, 8);
m_reel1_tilemap->set_scroll_cols(64);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(wingco_state::get_goldstar_fg_tile_info),this),TILEMAP_SCAN_ROWS,8,8, 64, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(wingco_state::get_goldstar_fg_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 64, 32);
m_fg_tilemap->set_transparent_pen(0);
// is there an enable reg for this game?
@@ -360,15 +360,15 @@ VIDEO_START_MEMBER(wingco_state, bingowng)
VIDEO_START_MEMBER(wingco_state, magical)
{
- m_reel1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(wingco_state::get_goldstar_reel1_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 64, 8);
- m_reel2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(wingco_state::get_goldstar_reel2_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 64, 8);
- m_reel3_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(wingco_state::get_goldstar_reel3_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 64, 8);
+ m_reel1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(wingco_state::get_goldstar_reel1_tile_info)), TILEMAP_SCAN_ROWS, 8,32, 64, 8);
+ m_reel2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(wingco_state::get_goldstar_reel2_tile_info)), TILEMAP_SCAN_ROWS, 8,32, 64, 8);
+ m_reel3_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(wingco_state::get_goldstar_reel3_tile_info)), TILEMAP_SCAN_ROWS, 8,32, 64, 8);
m_reel1_tilemap->set_scroll_cols(32);
m_reel2_tilemap->set_scroll_cols(32);
m_reel3_tilemap->set_scroll_cols(32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(wingco_state::get_magical_fg_tile_info),this),TILEMAP_SCAN_ROWS,8,8, 64, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(wingco_state::get_magical_fg_tile_info)),TILEMAP_SCAN_ROWS, 8,8, 64,32);
m_fg_tilemap->set_transparent_pen(0);
// is there an enable reg for this game?
@@ -601,17 +601,17 @@ TILE_GET_INFO_MEMBER(sanghopm_state::get_reel3_tile_info)
VIDEO_START_MEMBER(sanghopm_state, sangho)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sanghopm_state::get_bg_tile_info),this),TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sanghopm_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
- m_reel1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sanghopm_state::get_reel1_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 64, 8);
- m_reel2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sanghopm_state::get_reel2_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 64, 8);
- m_reel3_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sanghopm_state::get_reel3_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 64, 8);
+ m_reel1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sanghopm_state::get_reel1_tile_info)), TILEMAP_SCAN_ROWS, 8,32, 64, 8);
+ m_reel2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sanghopm_state::get_reel2_tile_info)), TILEMAP_SCAN_ROWS, 8,32, 64, 8);
+ m_reel3_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sanghopm_state::get_reel3_tile_info)), TILEMAP_SCAN_ROWS, 8,32, 64, 8);
m_reel1_tilemap->set_scroll_cols(64);
m_reel2_tilemap->set_scroll_cols(64);
m_reel3_tilemap->set_scroll_cols(64);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sanghopm_state::get_fg_tile_info),this),TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sanghopm_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_fg_tilemap->set_transparent_pen(0);
}
@@ -706,9 +706,9 @@ TILE_GET_INFO_MEMBER(unkch_state::get_reel3_tile_info)
VIDEO_START_MEMBER(unkch_state, unkch)
{
- m_reel1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(unkch_state::get_reel1_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 64, 8);
- m_reel2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(unkch_state::get_reel2_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 64, 8);
- m_reel3_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(unkch_state::get_reel3_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 64, 8);
+ m_reel1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(unkch_state::get_reel1_tile_info)), TILEMAP_SCAN_ROWS, 8,32, 64, 8);
+ m_reel2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(unkch_state::get_reel2_tile_info)), TILEMAP_SCAN_ROWS, 8,32, 64, 8);
+ m_reel3_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(unkch_state::get_reel3_tile_info)), TILEMAP_SCAN_ROWS, 8,32, 64, 8);
m_reel1_tilemap->set_scroll_cols(32);
m_reel2_tilemap->set_scroll_cols(32);
@@ -718,7 +718,7 @@ VIDEO_START_MEMBER(unkch_state, unkch)
m_cmaster_girl_pal = 0;
m_vidreg = 0x00;
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(unkch_state::get_cherrym_fg_tile_info),this),TILEMAP_SCAN_ROWS,8,8, 64, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(unkch_state::get_cherrym_fg_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 64, 32);
m_fg_tilemap->set_transparent_pen(0);
m_cm_enable_reg = 0x0b;
diff --git a/src/mame/video/gomoku.cpp b/src/mame/video/gomoku.cpp
index b2f697b8035..01c5d28f1e0 100644
--- a/src/mame/video/gomoku.cpp
+++ b/src/mame/video/gomoku.cpp
@@ -114,7 +114,7 @@ void gomoku_state::video_start()
m_screen->register_screen_bitmap(m_bg_bitmap);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gomoku_state::get_fg_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gomoku_state::get_fg_tile_info)),TILEMAP_SCAN_ROWS,8,8,32, 32);
m_fg_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/gotcha.cpp b/src/mame/video/gotcha.cpp
index 14b722c021f..6493c335ddf 100644
--- a/src/mame/video/gotcha.cpp
+++ b/src/mame/video/gotcha.cpp
@@ -43,8 +43,8 @@ TILE_GET_INFO_MEMBER(gotcha_state::bg_get_tile_info)
void gotcha_state::video_start()
{
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gotcha_state::fg_get_tile_info),this), tilemap_mapper_delegate(FUNC(gotcha_state::gotcha_tilemap_scan),this), 16, 16, 64, 32);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gotcha_state::bg_get_tile_info),this), tilemap_mapper_delegate(FUNC(gotcha_state::gotcha_tilemap_scan),this), 16, 16, 64, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gotcha_state::fg_get_tile_info)), tilemap_mapper_delegate(*this, FUNC(gotcha_state::gotcha_tilemap_scan)), 16, 16, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gotcha_state::bg_get_tile_info)), tilemap_mapper_delegate(*this, FUNC(gotcha_state::gotcha_tilemap_scan)), 16, 16, 64, 32);
m_fg_tilemap->set_transparent_pen(0);
@@ -97,9 +97,6 @@ WRITE16_MEMBER(gotcha_state::gotcha_scroll_w)
}
-
-
-
uint32_t gotcha_state::screen_update_gotcha(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
diff --git a/src/mame/video/gottlieb.cpp b/src/mame/video/gottlieb.cpp
index f108ad2c512..e79cab815e3 100644
--- a/src/mame/video/gottlieb.cpp
+++ b/src/mame/video/gottlieb.cpp
@@ -140,7 +140,7 @@ void gottlieb_state::video_start()
m_transparent0 = false;
/* configure the background tilemap */
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gottlieb_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gottlieb_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_bg_tilemap->set_transparent_pen(0);
/* save some state */
@@ -163,7 +163,7 @@ VIDEO_START_MEMBER(gottlieb_state,screwloo)
m_transparent0 = false;
/* configure the background tilemap */
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gottlieb_state::get_screwloo_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gottlieb_state::get_screwloo_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_bg_tilemap->set_transparent_pen(0);
/* save some state */
diff --git a/src/mame/video/gotya.cpp b/src/mame/video/gotya.cpp
index 473676eef7e..f6953cc034a 100644
--- a/src/mame/video/gotya.cpp
+++ b/src/mame/video/gotya.cpp
@@ -104,7 +104,7 @@ TILEMAP_MAPPER_MEMBER(gotya_state::tilemap_scan_rows_thehand)
void gotya_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gotya_state::get_bg_tile_info),this), tilemap_mapper_delegate(FUNC(gotya_state::tilemap_scan_rows_thehand),this), 8, 8, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gotya_state::get_bg_tile_info)), tilemap_mapper_delegate(*this, FUNC(gotya_state::tilemap_scan_rows_thehand)), 8, 8, 64, 32);
}
void gotya_state::draw_status_row( bitmap_ind16 &bitmap, const rectangle &cliprect, int sx, int col )
diff --git a/src/mame/video/gp9001.cpp b/src/mame/video/gp9001.cpp
index 78bd3202e8e..43ed591639e 100644
--- a/src/mame/video/gp9001.cpp
+++ b/src/mame/video/gp9001.cpp
@@ -213,6 +213,7 @@ gp9001vdp_device::gp9001vdp_device(const machine_config &mconfig, const char *ta
, m_space_config("gp9001vdp", ENDIANNESS_BIG, 16, 14, 0, address_map_constructor(FUNC(gp9001vdp_device::map), this))
, m_vram(*this, "vram_%u", 0)
, m_spriteram(*this, "spriteram")
+ , m_gp9001_cb(*this)
, m_vint_out_cb(*this)
{
}
@@ -258,9 +259,9 @@ void gp9001vdp_device::device_add_mconfig(machine_config &config)
void gp9001vdp_device::create_tilemaps()
{
- m_tm[2].tmap = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(gp9001vdp_device::get_tile_info<2>),this),TILEMAP_SCAN_ROWS,16,16,32,32);
- m_tm[1].tmap = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(gp9001vdp_device::get_tile_info<1>),this),TILEMAP_SCAN_ROWS,16,16,32,32);
- m_tm[0].tmap = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(gp9001vdp_device::get_tile_info<0>),this),TILEMAP_SCAN_ROWS,16,16,32,32);
+ m_tm[2].tmap = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(gp9001vdp_device::get_tile_info<2>)), TILEMAP_SCAN_ROWS, 16,16,32,32);
+ m_tm[1].tmap = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(gp9001vdp_device::get_tile_info<1>)), TILEMAP_SCAN_ROWS, 16,16,32,32);
+ m_tm[0].tmap = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(gp9001vdp_device::get_tile_info<0>)), TILEMAP_SCAN_ROWS, 16,16,32,32);
m_tm[2].tmap->set_transparent_pen(0);
m_tm[1].tmap->set_transparent_pen(0);
@@ -272,7 +273,7 @@ void gp9001vdp_device::device_start()
{
create_tilemaps();
- m_gp9001_cb.bind_relative_to(*owner());
+ m_gp9001_cb.resolve();
m_vint_out_cb.resolve();
m_raise_irq_timer = timer_alloc(TIMER_RAISE_IRQ);
diff --git a/src/mame/video/gp9001.h b/src/mame/video/gp9001.h
index d022f0ac5d4..2b737aba8f2 100644
--- a/src/mame/video/gp9001.h
+++ b/src/mame/video/gp9001.h
@@ -20,10 +20,11 @@ class gp9001vdp_device : public device_t,
};
public:
+ typedef device_delegate<void (u8 layer, u32 &code)> gp9001_cb_delegate;
+
gp9001vdp_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
- typedef device_delegate<void (u8 layer, u32 &code)> gp9001_cb_delegate;
- void set_tile_callback(gp9001_cb_delegate cb) { m_gp9001_cb = cb; }
+ template <typename... T> void set_tile_callback(T &&... args) { m_gp9001_cb.set(std::forward<T>(args)...); }
auto vint_out_cb() { return m_vint_out_cb.bind(); }
diff --git a/src/mame/video/grchamp.cpp b/src/mame/video/grchamp.cpp
index 03eb3b23b6f..377a077a9b7 100644
--- a/src/mame/video/grchamp.cpp
+++ b/src/mame/video/grchamp.cpp
@@ -101,10 +101,10 @@ void grchamp_state::video_start()
m_work_bitmap.allocate(32,32);
/* allocate tilemaps for each of the three sections */
- m_left_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(grchamp_state::get_left_tile_info),this), tilemap_mapper_delegate(FUNC(grchamp_state::get_memory_offset),this), 8,8, 64,32);
- m_text_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(grchamp_state::get_text_tile_info),this), TILEMAP_SCAN_ROWS, 8,8, 32,32);
- m_right_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(grchamp_state::get_right_tile_info),this), tilemap_mapper_delegate(FUNC(grchamp_state::get_memory_offset),this), 8,8, 64,32);
- m_center_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(grchamp_state::get_center_tile_info),this), tilemap_mapper_delegate(FUNC(grchamp_state::get_memory_offset),this), 8,8, 64,32);
+ m_left_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(grchamp_state::get_left_tile_info)), tilemap_mapper_delegate(*this, FUNC(grchamp_state::get_memory_offset)), 8,8, 64,32);
+ m_text_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(grchamp_state::get_text_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 32,32);
+ m_right_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(grchamp_state::get_right_tile_info)), tilemap_mapper_delegate(*this, FUNC(grchamp_state::get_memory_offset)), 8,8, 64,32);
+ m_center_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(grchamp_state::get_center_tile_info)), tilemap_mapper_delegate(*this, FUNC(grchamp_state::get_memory_offset)), 8,8, 64,32);
}
#if 0
diff --git a/src/mame/video/gsword.cpp b/src/mame/video/gsword.cpp
index 69436e9c790..d2967a6f44d 100644
--- a/src/mame/video/gsword.cpp
+++ b/src/mame/video/gsword.cpp
@@ -70,7 +70,7 @@ TILE_GET_INFO_MEMBER(gsword_state_base::get_bg_tile_info)
void gsword_state_base::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gsword_state_base::get_bg_tile_info),this), TILEMAP_SCAN_ROWS,
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gsword_state_base::get_bg_tile_info)), TILEMAP_SCAN_ROWS,
8, 8, 32, 64);
save_item(NAME(m_charbank));
diff --git a/src/mame/video/gumbo.cpp b/src/mame/video/gumbo.cpp
index 7124f587a3f..752b1b16258 100644
--- a/src/mame/video/gumbo.cpp
+++ b/src/mame/video/gumbo.cpp
@@ -34,8 +34,8 @@ TILE_GET_INFO_MEMBER(gumbo_state::get_gumbo_fg_tile_info)
void gumbo_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gumbo_state::get_gumbo_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gumbo_state::get_gumbo_fg_tile_info),this), TILEMAP_SCAN_ROWS, 4, 4, 128, 64);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gumbo_state::get_gumbo_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gumbo_state::get_gumbo_fg_tile_info)), TILEMAP_SCAN_ROWS, 4, 4, 128, 64);
m_fg_tilemap->set_transparent_pen(0xff);
}
diff --git a/src/mame/video/gundealr.cpp b/src/mame/video/gundealr.cpp
index c3d6c0edff8..645a7fe679d 100644
--- a/src/mame/video/gundealr.cpp
+++ b/src/mame/video/gundealr.cpp
@@ -52,8 +52,8 @@ TILE_GET_INFO_MEMBER(gundealr_state::get_fg_tile_info)
void gundealr_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gundealr_state::get_bg_tile_info),this), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gundealr_state::get_fg_tile_info),this), tilemap_mapper_delegate(FUNC(gundealr_state::pagescan),this), 16, 16, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gundealr_state::get_bg_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gundealr_state::get_fg_tile_info)), tilemap_mapper_delegate(*this, FUNC(gundealr_state::pagescan)), 16, 16, 64, 32);
m_fg_tilemap->set_transparent_pen(15);
}
diff --git a/src/mame/video/gunsmoke.cpp b/src/mame/video/gunsmoke.cpp
index 1706da7eda1..e5078d0f2d0 100644
--- a/src/mame/video/gunsmoke.cpp
+++ b/src/mame/video/gunsmoke.cpp
@@ -125,8 +125,8 @@ TILE_GET_INFO_MEMBER(gunsmoke_state::get_fg_tile_info)
void gunsmoke_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gunsmoke_state::get_bg_tile_info),this), TILEMAP_SCAN_COLS, 32, 32, 2048, 8);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gunsmoke_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gunsmoke_state::get_bg_tile_info)), TILEMAP_SCAN_COLS, 32, 32, 2048, 8);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gunsmoke_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fg_tilemap->configure_groups(*m_gfxdecode->gfx(0), 0x4f);
}
diff --git a/src/mame/video/gyruss.cpp b/src/mame/video/gyruss.cpp
index c4787fa72ee..772dd91d8a9 100644
--- a/src/mame/video/gyruss.cpp
+++ b/src/mame/video/gyruss.cpp
@@ -111,9 +111,9 @@ TILE_GET_INFO_MEMBER(gyruss_state::gyruss_get_tile_info)
void gyruss_state::video_start()
{
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gyruss_state::gyruss_get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_tilemap->set_transmask(0, 0x00, 0); /* opaque */
- m_tilemap->set_transmask(1, 0x0f, 0); /* transparent */
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gyruss_state::gyruss_get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_tilemap->set_transmask(0, 0x00, 0); // opaque
+ m_tilemap->set_transmask(1, 0x0f, 0); // transparent
save_item(NAME(m_flipscreen));
}
diff --git a/src/mame/video/hanaawas.cpp b/src/mame/video/hanaawas.cpp
index 2ac87f5288d..789c8bf30de 100644
--- a/src/mame/video/hanaawas.cpp
+++ b/src/mame/video/hanaawas.cpp
@@ -98,7 +98,7 @@ TILE_GET_INFO_MEMBER(hanaawas_state::get_bg_tile_info)
void hanaawas_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(hanaawas_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(hanaawas_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
uint32_t hanaawas_state::screen_update_hanaawas(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
diff --git a/src/mame/video/hcastle.cpp b/src/mame/video/hcastle.cpp
index 72deaece319..2b3b77641f6 100644
--- a/src/mame/video/hcastle.cpp
+++ b/src/mame/video/hcastle.cpp
@@ -105,8 +105,8 @@ TILE_GET_INFO_MEMBER(hcastle_state::get_bg_tile_info)
void hcastle_state::video_start()
{
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(hcastle_state::get_fg_tile_info),this), tilemap_mapper_delegate(FUNC(hcastle_state::tilemap_scan),this), 8, 8, 64, 32);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(hcastle_state::get_bg_tile_info),this), tilemap_mapper_delegate(FUNC(hcastle_state::tilemap_scan),this), 8, 8, 64, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(hcastle_state::get_fg_tile_info)), tilemap_mapper_delegate(*this, FUNC(hcastle_state::tilemap_scan)), 8, 8, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(hcastle_state::get_bg_tile_info)), tilemap_mapper_delegate(*this, FUNC(hcastle_state::tilemap_scan)), 8, 8, 64, 32);
m_fg_tilemap->set_transparent_pen(0);
}
diff --git a/src/mame/video/hexion.cpp b/src/mame/video/hexion.cpp
index 5750e538c59..cfaefbe9479 100644
--- a/src/mame/video/hexion.cpp
+++ b/src/mame/video/hexion.cpp
@@ -41,8 +41,8 @@ TILE_GET_INFO_MEMBER(hexion_state::get_tile_info1)
void hexion_state::video_start()
{
- m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(hexion_state::get_tile_info0),this),TILEMAP_SCAN_ROWS,8,8,64,32);
- m_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(hexion_state::get_tile_info1),this),TILEMAP_SCAN_ROWS, 8,8,64,32);
+ m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(hexion_state::get_tile_info0)), TILEMAP_SCAN_ROWS,8,8,64,32);
+ m_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(hexion_state::get_tile_info1)), TILEMAP_SCAN_ROWS, 8,8,64,32);
m_bg_tilemap[0]->set_transparent_pen(0);
m_bg_tilemap[1]->set_scrollx(0,-4);
diff --git a/src/mame/video/higemaru.cpp b/src/mame/video/higemaru.cpp
index 28087b2f83d..804fad9d572 100644
--- a/src/mame/video/higemaru.cpp
+++ b/src/mame/video/higemaru.cpp
@@ -96,7 +96,7 @@ TILE_GET_INFO_MEMBER(higemaru_state::get_bg_tile_info)
void higemaru_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(higemaru_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(higemaru_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
void higemaru_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect)
diff --git a/src/mame/video/himesiki.cpp b/src/mame/video/himesiki.cpp
index 4634790f8b6..cae38a0d302 100644
--- a/src/mame/video/himesiki.cpp
+++ b/src/mame/video/himesiki.cpp
@@ -24,7 +24,7 @@ TILE_GET_INFO_MEMBER(himesiki_state::get_bg_tile_info)
void himesiki_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(himesiki_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(himesiki_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
}
WRITE8_MEMBER(himesiki_state::himesiki_bg_ram_w)
diff --git a/src/mame/video/hng64.cpp b/src/mame/video/hng64.cpp
index 942bac2c7b3..a1efe3f845a 100644
--- a/src/mame/video/hng64.cpp
+++ b/src/mame/video/hng64.cpp
@@ -1271,21 +1271,21 @@ void hng64_state::video_start()
m_old_tileflags[2] = -1;
m_old_tileflags[3] = -1;
- m_tilemap[0].m_tilemap_8x8 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(hng64_state::get_hng64_tile0_8x8_info),this), TILEMAP_SCAN_ROWS, 8, 8, 128, 128); /* 128x128x4 = 0x10000 */
- m_tilemap[0].m_tilemap_16x16 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(hng64_state::get_hng64_tile0_16x16_info),this), TILEMAP_SCAN_ROWS, 16, 16, 128, 128); /* 128x128x4 = 0x10000 */
- m_tilemap[0].m_tilemap_16x16_alt = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(hng64_state::get_hng64_tile0_16x16_info),this), TILEMAP_SCAN_ROWS, 16, 16, 256, 64); /* 128x128x4 = 0x10000 */
+ m_tilemap[0].m_tilemap_8x8 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(hng64_state::get_hng64_tile0_8x8_info)), TILEMAP_SCAN_ROWS, 8, 8, 128, 128); // 128x128x4 = 0x10000
+ m_tilemap[0].m_tilemap_16x16 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(hng64_state::get_hng64_tile0_16x16_info)), TILEMAP_SCAN_ROWS, 16, 16, 128, 128); // 128x128x4 = 0x10000
+ m_tilemap[0].m_tilemap_16x16_alt = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(hng64_state::get_hng64_tile0_16x16_info)), TILEMAP_SCAN_ROWS, 16, 16, 256, 64); // 128x128x4 = 0x10000
- m_tilemap[1].m_tilemap_8x8 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(hng64_state::get_hng64_tile1_8x8_info),this), TILEMAP_SCAN_ROWS, 8, 8, 128, 128); /* 128x128x4 = 0x10000 */
- m_tilemap[1].m_tilemap_16x16 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(hng64_state::get_hng64_tile1_16x16_info),this), TILEMAP_SCAN_ROWS, 16, 16, 128, 128); /* 128x128x4 = 0x10000 */
- m_tilemap[1].m_tilemap_16x16_alt = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(hng64_state::get_hng64_tile1_16x16_info),this), TILEMAP_SCAN_ROWS, 16, 16, 256, 64); /* 128x128x4 = 0x10000 */
+ m_tilemap[1].m_tilemap_8x8 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(hng64_state::get_hng64_tile1_8x8_info)), TILEMAP_SCAN_ROWS, 8, 8, 128, 128); // 128x128x4 = 0x10000
+ m_tilemap[1].m_tilemap_16x16 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(hng64_state::get_hng64_tile1_16x16_info)), TILEMAP_SCAN_ROWS, 16, 16, 128, 128); // 128x128x4 = 0x10000
+ m_tilemap[1].m_tilemap_16x16_alt = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(hng64_state::get_hng64_tile1_16x16_info)), TILEMAP_SCAN_ROWS, 16, 16, 256, 64); // 128x128x4 = 0x10000
- m_tilemap[2].m_tilemap_8x8 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(hng64_state::get_hng64_tile2_8x8_info),this), TILEMAP_SCAN_ROWS, 8, 8, 128, 128); /* 128x128x4 = 0x10000 */
- m_tilemap[2].m_tilemap_16x16 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(hng64_state::get_hng64_tile2_16x16_info),this), TILEMAP_SCAN_ROWS, 16, 16, 128, 128); /* 128x128x4 = 0x10000 */
- m_tilemap[2].m_tilemap_16x16_alt = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(hng64_state::get_hng64_tile2_16x16_info),this), TILEMAP_SCAN_ROWS, 16, 16, 256, 64); /* 128x128x4 = 0x10000 */
+ m_tilemap[2].m_tilemap_8x8 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(hng64_state::get_hng64_tile2_8x8_info)), TILEMAP_SCAN_ROWS, 8, 8, 128, 128); // 128x128x4 = 0x10000
+ m_tilemap[2].m_tilemap_16x16 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(hng64_state::get_hng64_tile2_16x16_info)), TILEMAP_SCAN_ROWS, 16, 16, 128, 128); // 128x128x4 = 0x10000
+ m_tilemap[2].m_tilemap_16x16_alt = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(hng64_state::get_hng64_tile2_16x16_info)), TILEMAP_SCAN_ROWS, 16, 16, 256, 64); // 128x128x4 = 0x10000
- m_tilemap[3].m_tilemap_8x8 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(hng64_state::get_hng64_tile3_8x8_info),this), TILEMAP_SCAN_ROWS, 8, 8, 128, 128); /* 128x128x4 = 0x10000 */
- m_tilemap[3].m_tilemap_16x16 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(hng64_state::get_hng64_tile3_16x16_info),this), TILEMAP_SCAN_ROWS, 16, 16, 128, 128); /* 128x128x4 = 0x10000 */
- m_tilemap[3].m_tilemap_16x16_alt = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(hng64_state::get_hng64_tile3_16x16_info),this), TILEMAP_SCAN_ROWS, 16, 16, 256, 64); /* 128x128x4 = 0x10000 */
+ m_tilemap[3].m_tilemap_8x8 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(hng64_state::get_hng64_tile3_8x8_info)), TILEMAP_SCAN_ROWS, 8, 8, 128, 128); // 128x128x4 = 0x10000
+ m_tilemap[3].m_tilemap_16x16 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(hng64_state::get_hng64_tile3_16x16_info)), TILEMAP_SCAN_ROWS, 16, 16, 128, 128); // 128x128x4 = 0x10000
+ m_tilemap[3].m_tilemap_16x16_alt = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(hng64_state::get_hng64_tile3_16x16_info)), TILEMAP_SCAN_ROWS, 16, 16, 256, 64); // 128x128x4 = 0x10000
for (auto & elem : m_tilemap)
{
diff --git a/src/mame/video/holeland.cpp b/src/mame/video/holeland.cpp
index 3000a758edb..aed1f41b496 100644
--- a/src/mame/video/holeland.cpp
+++ b/src/mame/video/holeland.cpp
@@ -57,7 +57,7 @@ TILE_GET_INFO_MEMBER(holeland_state::crzrally_get_tile_info)
VIDEO_START_MEMBER(holeland_state,holeland)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(holeland_state::holeland_get_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(holeland_state::holeland_get_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
m_bg_tilemap->set_transmask(0, 0xff, 0x00); /* split type 0 is totally transparent in front half */
m_bg_tilemap->set_transmask(1, 0x01, 0xfe); /* split type 1 has pen 0? transparent in front half */
@@ -67,7 +67,7 @@ VIDEO_START_MEMBER(holeland_state,holeland)
VIDEO_START_MEMBER(holeland_state,crzrally)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(holeland_state::crzrally_get_tile_info),this), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(holeland_state::crzrally_get_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
save_item(NAME(m_palette_offset));
}
diff --git a/src/mame/video/homedata.cpp b/src/mame/video/homedata.cpp
index aec14eb5888..41b3bbfc7ce 100644
--- a/src/mame/video/homedata.cpp
+++ b/src/mame/video/homedata.cpp
@@ -612,10 +612,10 @@ TILE_GET_INFO_MEMBER(homedata_state::mirderby_get_info1_1)
VIDEO_START_MEMBER(homedata_state,mrokumei)
{
- m_bg_tilemap[0][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(homedata_state::mrokumei_get_info0_0),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32 );
- m_bg_tilemap[0][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(homedata_state::mrokumei_get_info0_1),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32 );
- m_bg_tilemap[1][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(homedata_state::mrokumei_get_info1_0),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32 );
- m_bg_tilemap[1][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(homedata_state::mrokumei_get_info1_1),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32 );
+ m_bg_tilemap[0][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(homedata_state::mrokumei_get_info0_0)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32 );
+ m_bg_tilemap[0][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(homedata_state::mrokumei_get_info0_1)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32 );
+ m_bg_tilemap[1][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(homedata_state::mrokumei_get_info1_0)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32 );
+ m_bg_tilemap[1][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(homedata_state::mrokumei_get_info1_1)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32 );
m_bg_tilemap[0][1]->set_transparent_pen(0);
m_bg_tilemap[1][1]->set_transparent_pen(0);
@@ -623,14 +623,14 @@ VIDEO_START_MEMBER(homedata_state,mrokumei)
VIDEO_START_MEMBER(homedata_state,reikaids)
{
- m_bg_tilemap[0][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(homedata_state::reikaids_get_info0_0),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_bg_tilemap[0][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(homedata_state::reikaids_get_info0_1),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_bg_tilemap[0][2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(homedata_state::reikaids_get_info0_2),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_bg_tilemap[0][3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(homedata_state::reikaids_get_info0_3),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_bg_tilemap[1][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(homedata_state::reikaids_get_info1_0),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_bg_tilemap[1][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(homedata_state::reikaids_get_info1_1),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_bg_tilemap[1][2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(homedata_state::reikaids_get_info1_2),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_bg_tilemap[1][3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(homedata_state::reikaids_get_info1_3),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap[0][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(homedata_state::reikaids_get_info0_0)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap[0][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(homedata_state::reikaids_get_info0_1)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap[0][2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(homedata_state::reikaids_get_info0_2)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap[0][3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(homedata_state::reikaids_get_info0_3)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap[1][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(homedata_state::reikaids_get_info1_0)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap[1][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(homedata_state::reikaids_get_info1_1)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap[1][2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(homedata_state::reikaids_get_info1_2)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap[1][3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(homedata_state::reikaids_get_info1_3)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_bg_tilemap[0][0]->set_transparent_pen(0xff);
m_bg_tilemap[0][1]->set_transparent_pen(0xff);
@@ -644,10 +644,10 @@ VIDEO_START_MEMBER(homedata_state,reikaids)
VIDEO_START_MEMBER(homedata_state,pteacher)
{
- m_bg_tilemap[0][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(homedata_state::pteacher_get_info0_0),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_bg_tilemap[0][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(homedata_state::pteacher_get_info0_1),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_bg_tilemap[1][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(homedata_state::pteacher_get_info1_0),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_bg_tilemap[1][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(homedata_state::pteacher_get_info1_1),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap[0][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(homedata_state::pteacher_get_info0_0)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap[0][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(homedata_state::pteacher_get_info0_1)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap[1][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(homedata_state::pteacher_get_info1_0)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap[1][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(homedata_state::pteacher_get_info1_1)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_bg_tilemap[0][1]->set_transparent_pen(0xff);
m_bg_tilemap[1][1]->set_transparent_pen(0xff);
@@ -655,10 +655,10 @@ VIDEO_START_MEMBER(homedata_state,pteacher)
VIDEO_START_MEMBER(homedata_state,lemnangl)
{
- m_bg_tilemap[0][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(homedata_state::lemnangl_get_info0_0),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_bg_tilemap[0][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(homedata_state::lemnangl_get_info0_1),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_bg_tilemap[1][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(homedata_state::lemnangl_get_info1_0),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_bg_tilemap[1][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(homedata_state::lemnangl_get_info1_1),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap[0][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(homedata_state::lemnangl_get_info0_0)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap[0][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(homedata_state::lemnangl_get_info0_1)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap[1][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(homedata_state::lemnangl_get_info1_0)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap[1][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(homedata_state::lemnangl_get_info1_1)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_bg_tilemap[0][1]->set_transparent_pen(0x0f);
m_bg_tilemap[1][1]->set_transparent_pen(0x0f);
@@ -666,10 +666,10 @@ VIDEO_START_MEMBER(homedata_state,lemnangl)
VIDEO_START_MEMBER(homedata_state,mirderby)
{
- m_bg_tilemap[0][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(homedata_state::mirderby_get_info0_0),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32 );
- m_bg_tilemap[0][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(homedata_state::mirderby_get_info0_1),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32 );
- m_bg_tilemap[1][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(homedata_state::mirderby_get_info1_0),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32 );
- m_bg_tilemap[1][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(homedata_state::mirderby_get_info1_1),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32 );
+ m_bg_tilemap[0][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(homedata_state::mirderby_get_info0_0)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap[0][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(homedata_state::mirderby_get_info0_1)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap[1][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(homedata_state::mirderby_get_info1_0)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap[1][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(homedata_state::mirderby_get_info1_1)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_bg_tilemap[0][1]->set_transparent_pen(0);
m_bg_tilemap[1][1]->set_transparent_pen(0);
diff --git a/src/mame/video/homerun.cpp b/src/mame/video/homerun.cpp
index 95878483c04..edf49e7d941 100644
--- a/src/mame/video/homerun.cpp
+++ b/src/mame/video/homerun.cpp
@@ -113,7 +113,7 @@ TILE_GET_INFO_MEMBER(homerun_state::get_tile_info)
void homerun_state::video_start()
{
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(homerun_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(homerun_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
save_item(NAME(m_gfx_ctrl));
save_item(NAME(m_scrolly));
diff --git a/src/mame/video/hyperspt.cpp b/src/mame/video/hyperspt.cpp
index e6e21823296..594545e74c8 100644
--- a/src/mame/video/hyperspt.cpp
+++ b/src/mame/video/hyperspt.cpp
@@ -116,7 +116,7 @@ TILE_GET_INFO_MEMBER(hyperspt_state::get_bg_tile_info)
void hyperspt_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(hyperspt_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(hyperspt_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_bg_tilemap->set_scroll_rows(32);
}
@@ -186,6 +186,6 @@ TILE_GET_INFO_MEMBER(hyperspt_state::roadf_get_bg_tile_info)
VIDEO_START_MEMBER(hyperspt_state,roadf)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(hyperspt_state::roadf_get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(hyperspt_state::roadf_get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_bg_tilemap->set_scroll_rows(32);
}
diff --git a/src/mame/video/igs017_igs031.cpp b/src/mame/video/igs017_igs031.cpp
index f81be2406bc..77acdbc95ad 100644
--- a/src/mame/video/igs017_igs031.cpp
+++ b/src/mame/video/igs017_igs031.cpp
@@ -66,6 +66,7 @@ igs017_igs031_device::igs017_igs031_device(const machine_config &mconfig, const
, device_gfx_interface(mconfig, *this, gfxinfo, "palette")
, device_video_interface(mconfig, *this)
, device_memory_interface(mconfig, *this)
+ , m_palette_scramble_cb(*this, FUNC(igs017_igs031_device::palette_callback_straight))
, m_space_config("igs017_igs031", ENDIANNESS_BIG, 8,15, 0, address_map_constructor(FUNC(igs017_igs031_device::map), this))
, m_spriteram(*this, "spriteram", 0)
, m_fg_videoram(*this, "fg_videoram", 0)
@@ -73,9 +74,8 @@ igs017_igs031_device::igs017_igs031_device(const machine_config &mconfig, const
, m_palram(*this, "palram", 0)
, m_i8255(*this, finder_base::DUMMY_TAG)
, m_palette(*this, "palette")
+ , m_revbits(false)
{
- m_palette_scramble_cb = igs017_igs031_palette_scramble_delegate(FUNC(igs017_igs031_device::palette_callback_straight), this);
- m_revbits = false;
}
device_memory_interface::space_config_vector igs017_igs031_device::memory_space_config() const
@@ -97,10 +97,10 @@ void igs017_igs031_device::device_add_mconfig(machine_config &config)
void igs017_igs031_device::device_start()
{
- m_palette_scramble_cb.bind_relative_to(*owner());
+ m_palette_scramble_cb.resolve();
- m_fg_tilemap = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(igs017_igs031_device::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8,8, 64,32);
- m_bg_tilemap = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(igs017_igs031_device::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8,8, 64,32);
+ m_fg_tilemap = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(igs017_igs031_device::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 64,32);
+ m_bg_tilemap = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(igs017_igs031_device::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 64,32);
m_fg_tilemap->set_transparent_pen(0xf);
m_bg_tilemap->set_transparent_pen(0xf);
diff --git a/src/mame/video/igs017_igs031.h b/src/mame/video/igs017_igs031.h
index 11b7407ece1..8026b8fa14e 100644
--- a/src/mame/video/igs017_igs031.h
+++ b/src/mame/video/igs017_igs031.h
@@ -9,18 +9,19 @@
#include "emupal.h"
#include "tilemap.h"
-typedef device_delegate<u16 (u16)> igs017_igs031_palette_scramble_delegate;
-
-class igs017_igs031_device : public device_t,
- public device_gfx_interface,
- public device_video_interface,
- public device_memory_interface
+class igs017_igs031_device :
+ public device_t,
+ public device_gfx_interface,
+ public device_video_interface,
+ public device_memory_interface
{
public:
+ typedef device_delegate<u16 (u16)> palette_scramble_delegate;
+
igs017_igs031_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
template <typename T> void set_i8255_tag(T &&tag) { m_i8255.set_tag(std::forward<T>(tag)); }
- template <typename... T> void set_palette_scramble_cb(T &&... args) { m_palette_scramble_cb = igs017_igs031_palette_scramble_delegate(std::forward<T>(args)...); }
+ template <typename... T> void set_palette_scramble_cb(T &&... args) { m_palette_scramble_cb.set(std::forward<T>(args)...); }
void set_text_reverse_bits()
{
@@ -29,8 +30,6 @@ public:
u16 palette_callback_straight(u16 bgr) const;
- igs017_igs031_palette_scramble_delegate m_palette_scramble_cb;
-
void map(address_map &map);
u8 read(offs_t offset);
@@ -69,6 +68,8 @@ protected:
DECLARE_GFXDECODE_MEMBER(gfxinfo);
private:
+ palette_scramble_delegate m_palette_scramble_cb;
+
address_space_config m_space_config;
required_shared_ptr<u8> m_spriteram;
diff --git a/src/mame/video/inufuku.cpp b/src/mame/video/inufuku.cpp
index 111ede75c2e..1d60abfab94 100644
--- a/src/mame/video/inufuku.cpp
+++ b/src/mame/video/inufuku.cpp
@@ -117,8 +117,8 @@ uint32_t inufuku_state::inufuku_tile_callback( uint32_t code )
void inufuku_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(inufuku_state::get_inufuku_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(inufuku_state::get_inufuku_tx_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(inufuku_state::get_inufuku_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(inufuku_state::get_inufuku_tx_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
m_bg_tilemap->set_transparent_pen(255);
m_tx_tilemap->set_transparent_pen(255);
diff --git a/src/mame/video/iqblock.cpp b/src/mame/video/iqblock.cpp
index ee594519f1b..d2442dbac19 100644
--- a/src/mame/video/iqblock.cpp
+++ b/src/mame/video/iqblock.cpp
@@ -38,8 +38,8 @@ TILE_GET_INFO_MEMBER(iqblock_state::get_fg_tile_info)
void iqblock_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(iqblock_state::get_bg_tile_info),this),TILEMAP_SCAN_ROWS, 8, 8,64,32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(iqblock_state::get_fg_tile_info),this),TILEMAP_SCAN_ROWS,8,32,64, 8);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(iqblock_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8,64,32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(iqblock_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8,32,64, 8);
m_bg_tilemap->set_transparent_pen(0);
m_fg_tilemap->set_scroll_cols(64);
diff --git a/src/mame/video/ironhors.cpp b/src/mame/video/ironhors.cpp
index eda424a1e15..059a1109e9e 100644
--- a/src/mame/video/ironhors.cpp
+++ b/src/mame/video/ironhors.cpp
@@ -139,7 +139,7 @@ TILE_GET_INFO_MEMBER(ironhors_state::get_bg_tile_info)
void ironhors_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ironhors_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ironhors_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_bg_tilemap->set_scroll_rows(32);
}
@@ -251,7 +251,7 @@ TILE_GET_INFO_MEMBER(ironhors_state::farwest_get_bg_tile_info)
VIDEO_START_MEMBER(ironhors_state,farwest)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ironhors_state::farwest_get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ironhors_state::farwest_get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_bg_tilemap->set_scroll_rows(32);
}
diff --git a/src/mame/video/jack.cpp b/src/mame/video/jack.cpp
index cf79dc5adb0..c338816be8e 100644
--- a/src/mame/video/jack.cpp
+++ b/src/mame/video/jack.cpp
@@ -57,7 +57,7 @@ TILEMAP_MAPPER_MEMBER(jack_state::tilemap_scan_cols_flipy)
void jack_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(jack_state::get_bg_tile_info),this), tilemap_mapper_delegate(FUNC(jack_state::tilemap_scan_cols_flipy),this), 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(jack_state::get_bg_tile_info)), tilemap_mapper_delegate(*this, FUNC(jack_state::tilemap_scan_cols_flipy)), 8, 8, 32, 32);
}
@@ -175,7 +175,7 @@ TILE_GET_INFO_MEMBER(jack_state::joinem_get_bg_tile_info)
VIDEO_START_MEMBER(jack_state,joinem)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(jack_state::joinem_get_bg_tile_info),this), tilemap_mapper_delegate(FUNC(jack_state::tilemap_scan_cols_flipy),this), 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(jack_state::joinem_get_bg_tile_info)), tilemap_mapper_delegate(*this, FUNC(jack_state::tilemap_scan_cols_flipy)), 8, 8, 32, 32);
m_bg_tilemap->set_scroll_cols(32);
}
diff --git a/src/mame/video/jackal.cpp b/src/mame/video/jackal.cpp
index a234e847098..8d0d45bf070 100644
--- a/src/mame/video/jackal.cpp
+++ b/src/mame/video/jackal.cpp
@@ -56,7 +56,7 @@ TILE_GET_INFO_MEMBER(jackal_state::get_bg_tile_info)
void jackal_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(jackal_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(jackal_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
void jackal_state::draw_background( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect )
diff --git a/src/mame/video/jailbrek.cpp b/src/mame/video/jailbrek.cpp
index 943c34629fa..6070c877858 100644
--- a/src/mame/video/jailbrek.cpp
+++ b/src/mame/video/jailbrek.cpp
@@ -56,7 +56,7 @@ TILE_GET_INFO_MEMBER(jailbrek_state::get_bg_tile_info)
void jailbrek_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(jailbrek_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(jailbrek_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
}
void jailbrek_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect )
diff --git a/src/mame/video/k001604.cpp b/src/mame/video/k001604.cpp
index 938c4127ea4..c949edd67f6 100644
--- a/src/mame/video/k001604.cpp
+++ b/src/mame/video/k001604.cpp
@@ -73,17 +73,17 @@ void k001604_device::device_start()
if (m_layer_size)
{
- m_layer_8x8[0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(k001604_device::tile_info_layer_8x8),this), tilemap_mapper_delegate(FUNC(k001604_device::scan_layer_8x8_0_size1),this), 8, 8, 64, 64);
- m_layer_8x8[1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(k001604_device::tile_info_layer_8x8),this), tilemap_mapper_delegate(FUNC(k001604_device::scan_layer_8x8_1_size1),this), 8, 8, 64, 64);
+ m_layer_8x8[0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(k001604_device::tile_info_layer_8x8)), tilemap_mapper_delegate(*this, FUNC(k001604_device::scan_layer_8x8_0_size1)), 8, 8, 64, 64);
+ m_layer_8x8[1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(k001604_device::tile_info_layer_8x8)), tilemap_mapper_delegate(*this, FUNC(k001604_device::scan_layer_8x8_1_size1)), 8, 8, 64, 64);
- m_layer_roz = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(k001604_device::tile_info_layer_roz),this), tilemap_mapper_delegate(FUNC(k001604_device::scan_layer_roz_256),this), roz_tile_size, roz_tile_size, 128, 64);
+ m_layer_roz = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(k001604_device::tile_info_layer_roz)), tilemap_mapper_delegate(*this, FUNC(k001604_device::scan_layer_roz_256)), roz_tile_size, roz_tile_size, 128, 64);
}
else
{
- m_layer_8x8[0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(k001604_device::tile_info_layer_8x8),this), tilemap_mapper_delegate(FUNC(k001604_device::scan_layer_8x8_0_size0),this), 8, 8, 64, 64);
- m_layer_8x8[1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(k001604_device::tile_info_layer_8x8),this), tilemap_mapper_delegate(FUNC(k001604_device::scan_layer_8x8_1_size0),this), 8, 8, 64, 64);
+ m_layer_8x8[0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(k001604_device::tile_info_layer_8x8)), tilemap_mapper_delegate(*this, FUNC(k001604_device::scan_layer_8x8_0_size0)), 8, 8, 64, 64);
+ m_layer_8x8[1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(k001604_device::tile_info_layer_8x8)), tilemap_mapper_delegate(*this, FUNC(k001604_device::scan_layer_8x8_1_size0)), 8, 8, 64, 64);
- m_layer_roz = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(k001604_device::tile_info_layer_roz),this), tilemap_mapper_delegate(FUNC(k001604_device::scan_layer_roz_128),this), roz_tile_size, roz_tile_size, 128, 64);
+ m_layer_roz = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(k001604_device::tile_info_layer_roz)), tilemap_mapper_delegate(*this, FUNC(k001604_device::scan_layer_roz_128)), roz_tile_size, roz_tile_size, 128, 64);
}
m_layer_8x8[0]->set_transparent_pen(0);
diff --git a/src/mame/video/k007342.cpp b/src/mame/video/k007342.cpp
index 5909970e272..0cd29eab5f0 100644
--- a/src/mame/video/k007342.cpp
+++ b/src/mame/video/k007342.cpp
@@ -32,13 +32,14 @@ control registers
#include "k007342.h"
#include "konami_helper.h"
-#define VERBOSE 0
-#define LOG(x) do { if (VERBOSE) logerror x; } while (0)
+//#define VERBOSE 1
+#include "logmacro.h"
+
DEFINE_DEVICE_TYPE(K007342, k007342_device, "k007342", "K007342 Video Controller")
-k007342_device::k007342_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
- : device_t(mconfig, K007342, tag, owner, clock),
+k007342_device::k007342_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
+ device_t(mconfig, K007342, tag, owner, clock),
m_ram(nullptr),
m_scroll_ram(nullptr),
m_videoram_0(nullptr),
@@ -52,6 +53,7 @@ k007342_device::k007342_device(const machine_config &mconfig, const char *tag, d
//m_scrollx[2],
//m_scrolly[2],
m_gfxdecode(*this, finder_base::DUMMY_TAG),
+ m_callback(*this),
m_gfxnum(0)
{
}
@@ -66,10 +68,10 @@ void k007342_device::device_start()
throw device_missing_dependencies();
// bind the init function
- m_callback.bind_relative_to(*owner());
+ m_callback.resolve();
- m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(k007342_device::get_tile_info0),this), tilemap_mapper_delegate(FUNC(k007342_device::scan),this), 8, 8, 64, 32);
- m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(k007342_device::get_tile_info1),this), tilemap_mapper_delegate(FUNC(k007342_device::scan),this), 8, 8, 64, 32);
+ m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(k007342_device::get_tile_info0)), tilemap_mapper_delegate(*this, FUNC(k007342_device::scan)), 8, 8, 64, 32);
+ m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(k007342_device::get_tile_info1)), tilemap_mapper_delegate(*this, FUNC(k007342_device::scan)), 8, 8, 64, 32);
m_ram = make_unique_clear<uint8_t[]>(0x2000);
m_scroll_ram = make_unique_clear<uint8_t[]>(0x0200);
diff --git a/src/mame/video/k007342.h b/src/mame/video/k007342.h
index 807e93db1ff..cceae585f26 100644
--- a/src/mame/video/k007342.h
+++ b/src/mame/video/k007342.h
@@ -8,17 +8,17 @@
#include "tilemap.h"
-typedef device_delegate<void (int layer, int bank, int *code, int *color, int *flags)> k007342_delegate;
-
class k007342_device : public device_t
{
public:
+ using tile_delegate = device_delegate<void (int layer, int bank, int *code, int *color, int *flags)>;
+
k007342_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// configuration
template <typename T> void set_gfxdecode_tag(T &&tag) { m_gfxdecode.set_tag(std::forward<T>(tag)); }
void set_gfxnum(int gfxnum) { m_gfxnum = gfxnum; }
- template <typename... T> void set_tile_callback(T &&... args) { m_callback = k007342_delegate(std::forward<T>(args)...); }
+ template <typename... T> void set_tile_callback(T &&... args) { m_callback.set(std::forward<T>(args)...); }
DECLARE_READ8_MEMBER( read );
DECLARE_WRITE8_MEMBER( write );
@@ -49,7 +49,7 @@ private:
uint16_t m_scrollx[2];
uint8_t m_scrolly[2];
required_device<gfxdecode_device> m_gfxdecode;
- k007342_delegate m_callback;
+ tile_delegate m_callback;
int m_gfxnum;
TILEMAP_MAPPER_MEMBER(scan);
diff --git a/src/mame/video/k007420.cpp b/src/mame/video/k007420.cpp
index ba3942df7b2..18226ba4d54 100644
--- a/src/mame/video/k007420.cpp
+++ b/src/mame/video/k007420.cpp
@@ -27,6 +27,7 @@ k007420_device::k007420_device(const machine_config &mconfig, const char *tag, d
, m_flipscreen(0)
, m_palette(*this, finder_base::DUMMY_TAG)
, m_banklimit(0)
+ , m_callback(*this)
//, m_regs[8]
{
}
@@ -38,7 +39,7 @@ k007420_device::k007420_device(const machine_config &mconfig, const char *tag, d
void k007420_device::device_start()
{
// bind the init function
- m_callback.bind_relative_to(*owner());
+ m_callback.resolve();
m_ram = make_unique_clear<uint8_t[]>(0x200);
diff --git a/src/mame/video/k007420.h b/src/mame/video/k007420.h
index 5a53a3b4bee..a791f9e0638 100644
--- a/src/mame/video/k007420.h
+++ b/src/mame/video/k007420.h
@@ -8,16 +8,16 @@
#include "emupal.h"
-typedef device_delegate<void (int *code, int *color)> k007420_delegate;
-
class k007420_device : public device_t
{
public:
+ using sprite_delegate = device_delegate<void (int *code, int *color)>;
+
k007420_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
template <typename T> void set_palette_tag(T &&tag) { m_palette.set_tag(std::forward<T>(tag)); }
void set_bank_limit(int limit) { m_banklimit = limit; }
- template <typename... T> void set_sprite_callback(T &&... args) { m_callback = k007420_delegate(std::forward<T>(args)...); }
+ template <typename... T> void set_sprite_callback(T &&... args) { m_callback.set(std::forward<T>(args)...); }
DECLARE_READ8_MEMBER( read );
DECLARE_WRITE8_MEMBER( write );
@@ -35,7 +35,7 @@ private:
uint8_t m_regs[8]; // current code uses the 7342 regs!! (only [2])
required_device<palette_device> m_palette;
int m_banklimit;
- k007420_delegate m_callback;
+ sprite_delegate m_callback;
};
DECLARE_DEVICE_TYPE(K007420, k007420_device)
diff --git a/src/mame/video/k037122.cpp b/src/mame/video/k037122.cpp
index a5294904886..0f90673dbc1 100644
--- a/src/mame/video/k037122.cpp
+++ b/src/mame/video/k037122.cpp
@@ -9,15 +9,16 @@ Konami 037122
#include "konami_helper.h"
#include "screen.h"
-#define VERBOSE 0
-#define LOG(x) do { if (VERBOSE) logerror x; } while (0)
+//#define VERBOSE 1
+#include "logmacro.h"
+
#define K037122_NUM_TILES 16384
DEFINE_DEVICE_TYPE(K037122, k037122_device, "k037122", "K037122 2D Tilemap")
-k037122_device::k037122_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
- : device_t(mconfig, K037122, tag, owner, clock),
+k037122_device::k037122_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
+ device_t(mconfig, K037122, tag, owner, clock),
device_video_interface(mconfig, *this),
device_gfx_interface(mconfig, *this, nullptr),
m_tile_ram(nullptr),
@@ -51,8 +52,8 @@ void k037122_device::device_start()
m_tile_ram = make_unique_clear<uint32_t[]>(0x20000 / 4);
m_reg = make_unique_clear<uint32_t[]>(0x400 / 4);
- m_layer[0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(k037122_device::tile_info_layer0),this), TILEMAP_SCAN_ROWS, 8, 8, 256, 64);
- m_layer[1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(k037122_device::tile_info_layer1),this), TILEMAP_SCAN_ROWS, 8, 8, 128, 64);
+ m_layer[0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(k037122_device::tile_info_layer0)), TILEMAP_SCAN_ROWS, 8, 8, 256, 64);
+ m_layer[1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(k037122_device::tile_info_layer1)), TILEMAP_SCAN_ROWS, 8, 8, 128, 64);
m_layer[0]->set_transparent_pen(0);
m_layer[1]->set_transparent_pen(0);
diff --git a/src/mame/video/k051316.cpp b/src/mame/video/k051316.cpp
index 3e770b365ff..cd64d89ac64 100644
--- a/src/mame/video/k051316.cpp
+++ b/src/mame/video/k051316.cpp
@@ -105,14 +105,15 @@ GFXDECODE_END
k051316_device::k051316_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
- : device_t(mconfig, K051316, tag, owner, clock),
- device_gfx_interface(mconfig, *this, gfxinfo),
- m_zoom_rom(*this, DEVICE_SELF),
- m_dx(0),
- m_dy(0),
- m_wrap(0),
- m_pixels_per_byte(2), // 4bpp layout is default
- m_layermask(0)
+ : device_t(mconfig, K051316, tag, owner, clock)
+ , device_gfx_interface(mconfig, *this, gfxinfo)
+ , m_zoom_rom(*this, DEVICE_SELF)
+ , m_dx(0)
+ , m_dy(0)
+ , m_wrap(0)
+ , m_pixels_per_byte(2) // 4bpp layout is default
+ , m_layermask(0)
+ , m_k051316_cb(*this)
{
}
@@ -155,7 +156,7 @@ void k051316_device::device_start()
decode_gfx();
gfx(0)->set_colors(palette().entries() / gfx(0)->depth());
- m_tmap = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(k051316_device::get_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_tmap = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(k051316_device::get_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
m_ram.resize(0x800);
memset(&m_ram[0], 0, 0x800);
@@ -168,7 +169,7 @@ void k051316_device::device_start()
m_tmap->set_transparent_pen(0);
// bind callbacks
- m_k051316_cb.bind_relative_to(*owner());
+ m_k051316_cb.resolve();
save_item(NAME(m_ram));
save_item(NAME(m_ctrlram));
diff --git a/src/mame/video/k051316.h b/src/mame/video/k051316.h
index 8d655fc6877..6d1b928c3f8 100644
--- a/src/mame/video/k051316.h
+++ b/src/mame/video/k051316.h
@@ -8,13 +8,14 @@
#include "tilemap.h"
-typedef device_delegate<void (int *code, int *color, int *flags)> k051316_cb_delegate;
#define K051316_CB_MEMBER(_name) void _name(int *code, int *color, int *flags)
class k051316_device : public device_t, public device_gfx_interface
{
public:
+ using zoom_delegate = device_delegate<void (int *code, int *color, int *flags)>;
+
k051316_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
static const gfx_layout charlayout4;
@@ -26,7 +27,7 @@ public:
DECLARE_GFXDECODE_MEMBER(gfxinfo4_ram);
// configuration
- template <typename... T> void set_zoom_callback(T &&... args) { m_k051316_cb = k051316_cb_delegate(std::forward<T>(args)...); }
+ template <typename... T> void set_zoom_callback(T &&... args) { m_k051316_cb.set(std::forward<T>(args)...); }
void set_wrap(int wrap) { m_wrap = wrap; }
void set_bpp(int bpp);
void set_layermask(int mask) { m_layermask = mask; }
@@ -75,7 +76,7 @@ private:
int m_wrap;
int m_pixels_per_byte;
int m_layermask;
- k051316_cb_delegate m_k051316_cb;
+ zoom_delegate m_k051316_cb;
TILE_GET_INFO_MEMBER(get_tile_info);
};
diff --git a/src/mame/video/k051960.cpp b/src/mame/video/k051960.cpp
index 40023ce2914..580801717c7 100644
--- a/src/mame/video/k051960.cpp
+++ b/src/mame/video/k051960.cpp
@@ -136,6 +136,7 @@ k051960_device::k051960_device(const machine_config &mconfig, const char *tag, d
, m_ram(nullptr)
, m_sprite_rom(*this, DEVICE_SELF)
, m_scanline_timer(nullptr)
+ , m_k051960_cb(*this)
, m_irq_handler(*this)
, m_firq_handler(*this)
, m_nmi_handler(*this)
@@ -193,7 +194,7 @@ void k051960_device::device_start()
m_ram = make_unique_clear<uint8_t[]>(0x400);
// bind callbacks
- m_k051960_cb.bind_relative_to(*owner());
+ m_k051960_cb.resolve();
// resolve callbacks
m_irq_handler.resolve_safe();
diff --git a/src/mame/video/k051960.h b/src/mame/video/k051960.h
index ca3c114f478..43db938c508 100644
--- a/src/mame/video/k051960.h
+++ b/src/mame/video/k051960.h
@@ -13,7 +13,6 @@ enum
};
-typedef device_delegate<void (int *code, int *color, int *priority, int *shadow)> k051960_cb_delegate;
#define K051960_CB_MEMBER(_name) void _name(int *code, int *color, int *priority, int *shadow)
@@ -27,6 +26,8 @@ class k051960_device : public device_t, public device_gfx_interface, public devi
DECLARE_GFXDECODE_MEMBER(gfxinfo_gradius3);
public:
+ using sprite_delegate = device_delegate<void (int *code, int *color, int *priority, int *shadow)>;
+
k051960_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
auto irq_handler() { return m_irq_handler.bind(); }
@@ -37,7 +38,7 @@ public:
// static configuration
- template <typename... T> void set_sprite_callback(T &&... args) { m_k051960_cb = k051960_cb_delegate(std::forward<T>(args)...); }
+ template <typename... T> void set_sprite_callback(T &&... args) { m_k051960_cb.set(std::forward<T>(args)...); }
void set_plane_order(int order);
/*
@@ -77,7 +78,7 @@ private:
emu_timer *m_scanline_timer;
- k051960_cb_delegate m_k051960_cb;
+ sprite_delegate m_k051960_cb;
devcb_write_line m_irq_handler;
// TODO: is this even used by anything?
diff --git a/src/mame/video/k052109.cpp b/src/mame/video/k052109.cpp
index 4c856ce8169..3ebcbb6fa6d 100644
--- a/src/mame/video/k052109.cpp
+++ b/src/mame/video/k052109.cpp
@@ -183,6 +183,7 @@ k052109_device::k052109_device(const machine_config &mconfig, const char *tag, d
m_romsubbank(0),
m_scrollctrl(0),
m_char_rom(*this, DEVICE_SELF),
+ m_k052109_cb(*this),
m_irq_handler(*this),
m_firq_handler(*this),
m_nmi_handler(*this)
@@ -230,16 +231,16 @@ void k052109_device::device_start()
m_videoram2_A = &m_ram[0x4800];
m_videoram2_B = &m_ram[0x5000];
- m_tilemap[0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(k052109_device::get_tile_info0),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_tilemap[1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(k052109_device::get_tile_info1),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_tilemap[2] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(k052109_device::get_tile_info2),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tilemap[0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(k052109_device::get_tile_info0)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tilemap[1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(k052109_device::get_tile_info1)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tilemap[2] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(k052109_device::get_tile_info2)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_tilemap[0]->set_transparent_pen(0);
m_tilemap[1]->set_transparent_pen(0);
m_tilemap[2]->set_transparent_pen(0);
// bind callbacks
- m_k052109_cb.bind_relative_to(*owner());
+ m_k052109_cb.resolve();
// resolve callbacks
m_irq_handler.resolve_safe();
diff --git a/src/mame/video/k052109.h b/src/mame/video/k052109.h
index 1721ade5083..e597e63a7a6 100644
--- a/src/mame/video/k052109.h
+++ b/src/mame/video/k052109.h
@@ -7,7 +7,6 @@
#include "tilemap.h"
-typedef device_delegate<void (int layer, int bank, int *code, int *color, int *flags, int *priority)> k052109_cb_delegate;
#define K052109_CB_MEMBER(_name) void _name(int layer, int bank, int *code, int *color, int *flags, int *priority)
@@ -19,13 +18,15 @@ class k052109_device : public device_t, public device_gfx_interface, public devi
DECLARE_GFXDECODE_MEMBER(gfxinfo_ram);
public:
+ using tile_delegate = device_delegate<void (int layer, int bank, int *code, int *color, int *flags, int *priority)>;
+
k052109_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
~k052109_device() {}
auto irq_handler() { return m_irq_handler.bind(); }
auto firq_handler() { return m_firq_handler.bind(); }
auto nmi_handler() { return m_nmi_handler.bind(); }
- template <typename... T> void set_tile_callback(T &&... args) { m_k052109_cb = k052109_cb_delegate(std::forward<T>(args)...); }
+ template <typename... T> void set_tile_callback(T &&... args) { m_k052109_cb.set(std::forward<T>(args)...); }
void set_char_ram(bool ram);
/*
@@ -87,7 +88,7 @@ private:
optional_region_ptr<uint8_t> m_char_rom;
- k052109_cb_delegate m_k052109_cb;
+ tile_delegate m_k052109_cb;
devcb_write_line m_irq_handler;
devcb_write_line m_firq_handler;
diff --git a/src/mame/video/k053244_k053245.cpp b/src/mame/video/k053244_k053245.cpp
index 3b1e82a9237..a98b464bdce 100644
--- a/src/mame/video/k053244_k053245.cpp
+++ b/src/mame/video/k053244_k053245.cpp
@@ -82,14 +82,15 @@ GFXDECODE_MEMBER( k05324x_device::gfxinfo_6bpp )
GFXDECODE_END
-k05324x_device::k05324x_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
- : device_t(mconfig, K053244, tag, owner, clock),
+k05324x_device::k05324x_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
+ device_t(mconfig, K053244, tag, owner, clock),
device_gfx_interface(mconfig, *this, gfxinfo),
m_ram(nullptr),
m_buffer(nullptr),
m_sprite_rom(*this, DEVICE_SELF),
m_dx(0),
m_dy(0),
+ m_k05324x_cb(*this),
m_rombank(0),
m_ramsize(0),
m_z_rejection(0)
@@ -135,7 +136,7 @@ void k05324x_device::device_start()
m_buffer = make_unique_clear<uint16_t[]>(m_ramsize / 2);
// bind callbacks
- m_k05324x_cb.bind_relative_to(*owner());
+ m_k05324x_cb.resolve();
save_pointer(NAME(m_ram), m_ramsize / 2);
save_pointer(NAME(m_buffer), m_ramsize / 2);
diff --git a/src/mame/video/k053244_k053245.h b/src/mame/video/k053244_k053245.h
index e9be05e7c7c..1f01fd71a8a 100644
--- a/src/mame/video/k053244_k053245.h
+++ b/src/mame/video/k053244_k053245.h
@@ -6,7 +6,6 @@
#pragma once
-typedef device_delegate<void (int *code, int *color, int *priority)> k05324x_cb_delegate;
#define K05324X_CB_MEMBER(_name) void _name(int *code, int *color, int *priority)
@@ -18,11 +17,13 @@ class k05324x_device : public device_t, public device_gfx_interface
DECLARE_GFXDECODE_MEMBER(gfxinfo_6bpp);
public:
+ using sprite_delegate = device_delegate<void (int *code, int *color, int *priority)>;
+
k05324x_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// configuration
void set_bpp(int bpp);
- template <typename... T> void set_sprite_callback(T &&... args) { m_k05324x_cb = k05324x_cb_delegate(std::forward<T>(args)...); }
+ template <typename... T> void set_sprite_callback(T &&... args) { m_k05324x_cb.set(std::forward<T>(args)...); }
void set_offsets(int x_offset, int y_offset)
{
m_dx = x_offset;
@@ -53,9 +54,9 @@ private:
required_region_ptr<uint8_t> m_sprite_rom;
int m_dx, m_dy;
- k05324x_cb_delegate m_k05324x_cb;
+ sprite_delegate m_k05324x_cb;
- uint8_t m_regs[0x10]; // 053244
+ uint8_t m_regs[0x10]; // 053244
int m_rombank; // 053244
int m_ramsize;
int m_z_rejection;
diff --git a/src/mame/video/k053246_k053247_k055673.cpp b/src/mame/video/k053246_k053247_k055673.cpp
index 7b46b032563..750f2a4d084 100644
--- a/src/mame/video/k053246_k053247_k055673.cpp
+++ b/src/mame/video/k053246_k053247_k055673.cpp
@@ -1046,11 +1046,12 @@ k053247_device::k053247_device(const machine_config &mconfig, const char *tag, d
}
k053247_device::k053247_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock)
- : device_t(mconfig, type, tag, owner, clock),
- device_video_interface(mconfig, *this),
- device_gfx_interface(mconfig, *this, nullptr),
- m_gfxrom(*this, DEVICE_SELF),
- m_gfx_num(0)
+ : device_t(mconfig, type, tag, owner, clock)
+ , device_video_interface(mconfig, *this)
+ , device_gfx_interface(mconfig, *this, nullptr)
+ , m_k053247_cb(*this)
+ , m_gfxrom(*this, DEVICE_SELF)
+ , m_gfx_num(0)
{
clear_all();
}
diff --git a/src/mame/video/k053246_k053247_k055673.h b/src/mame/video/k053246_k053247_k055673.h
index dc122084b17..62c93832217 100644
--- a/src/mame/video/k053246_k053247_k055673.h
+++ b/src/mame/video/k053246_k053247_k055673.h
@@ -12,7 +12,6 @@
#define NORMAL_PLANE_ORDER 4
-typedef device_delegate<void (int *code, int *color, int *priority_mask)> k053247_cb_delegate;
#define K053246_CB_MEMBER(_name) void _name(int *code, int *color, int *priority_mask)
#define K055673_CB_MEMBER(_name) void _name(int *code, int *color, int *priority_mask)
@@ -52,11 +51,12 @@ class k053247_device : public device_t,
public device_gfx_interface
{
public:
+ using sprite_delegate = device_delegate<void (int *code, int *color, int *priority_mask)>;
+
k053247_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
// configuration
- void set_k053247_callback(k053247_cb_delegate callback) { m_k053247_cb = callback; }
- template <typename... T> void set_sprite_callback(T &&... args) { m_k053247_cb = k053247_cb_delegate(std::forward<T>(args)...); }
+ template <typename... T> void set_sprite_callback(T &&... args) { m_k053247_cb.set(std::forward<T>(args)...); }
void set_config(int bpp, int dx, int dy)
{
m_bpp = bpp;
@@ -101,7 +101,7 @@ public:
u8 m_objcha_line;
int m_z_rejection;
- k053247_cb_delegate m_k053247_cb;
+ sprite_delegate m_k053247_cb;
required_region_ptr<u8> m_gfxrom;
int m_gfx_num;
diff --git a/src/mame/video/k054156_k054157_k056832.cpp b/src/mame/video/k054156_k054157_k056832.cpp
index 56476fc99ca..36583aa09f7 100644
--- a/src/mame/video/k054156_k054157_k056832.cpp
+++ b/src/mame/video/k054156_k054157_k056832.cpp
@@ -184,8 +184,8 @@ ones. The other 7 words are ignored. Global scrollx is ignored.
DEFINE_DEVICE_TYPE(K056832, k056832_device, "k056832", "K056832 Tilemap Generator")
-k056832_device::k056832_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
- : device_t(mconfig, K056832, tag, owner, clock),
+k056832_device::k056832_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
+ device_t(mconfig, K056832, tag, owner, clock),
device_gfx_interface(mconfig, *this),
//m_tilemap[K056832_PAGE_COUNT],
//*m_pixmap[K056832_PAGE_COUNT],
@@ -194,6 +194,7 @@ k056832_device::k056832_device(const machine_config &mconfig, const char *tag, d
m_rombase(*this, DEVICE_SELF),
m_num_gfx_banks(0),
m_cur_gfx_banks(0),
+ m_k056832_cb(*this),
m_gfx_num(0),
m_bpp(-1),
m_big(0),
@@ -263,22 +264,22 @@ void k056832_device::create_tilemaps()
m_videoram.resize(0x2000 * (K056832_PAGE_COUNT + 1) / 2);
memset(&m_videoram[0], 0, 2*m_videoram.size());
- m_tilemap[0x0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(k056832_device::get_tile_info0),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_tilemap[0x1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(k056832_device::get_tile_info1),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_tilemap[0x2] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(k056832_device::get_tile_info2),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_tilemap[0x3] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(k056832_device::get_tile_info3),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_tilemap[0x4] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(k056832_device::get_tile_info4),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_tilemap[0x5] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(k056832_device::get_tile_info5),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_tilemap[0x6] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(k056832_device::get_tile_info6),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_tilemap[0x7] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(k056832_device::get_tile_info7),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_tilemap[0x8] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(k056832_device::get_tile_info8),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_tilemap[0x9] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(k056832_device::get_tile_info9),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_tilemap[0xa] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(k056832_device::get_tile_infoa),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_tilemap[0xb] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(k056832_device::get_tile_infob),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_tilemap[0xc] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(k056832_device::get_tile_infoc),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_tilemap[0xd] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(k056832_device::get_tile_infod),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_tilemap[0xe] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(k056832_device::get_tile_infoe),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_tilemap[0xf] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(k056832_device::get_tile_infof),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tilemap[0x0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(k056832_device::get_tile_info0)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tilemap[0x1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(k056832_device::get_tile_info1)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tilemap[0x2] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(k056832_device::get_tile_info2)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tilemap[0x3] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(k056832_device::get_tile_info3)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tilemap[0x4] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(k056832_device::get_tile_info4)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tilemap[0x5] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(k056832_device::get_tile_info5)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tilemap[0x6] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(k056832_device::get_tile_info6)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tilemap[0x7] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(k056832_device::get_tile_info7)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tilemap[0x8] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(k056832_device::get_tile_info8)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tilemap[0x9] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(k056832_device::get_tile_info9)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tilemap[0xa] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(k056832_device::get_tile_infoa)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tilemap[0xb] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(k056832_device::get_tile_infob)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tilemap[0xc] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(k056832_device::get_tile_infoc)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tilemap[0xd] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(k056832_device::get_tile_infod)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tilemap[0xe] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(k056832_device::get_tile_infoe)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tilemap[0xf] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(k056832_device::get_tile_infof)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
for (i = 0; i < K056832_PAGE_COUNT; i++)
{
@@ -348,7 +349,7 @@ void k056832_device::device_start()
finalize_init();
// bind callbacks
- m_k056832_cb.bind_relative_to(*owner());
+ m_k056832_cb.resolve();
}
/*****************************************************************************
diff --git a/src/mame/video/k054156_k054157_k056832.h b/src/mame/video/k054156_k054157_k056832.h
index 4be43e75517..57cfeff1c7d 100644
--- a/src/mame/video/k054156_k054157_k056832.h
+++ b/src/mame/video/k054156_k054157_k056832.h
@@ -8,7 +8,6 @@
#include "video/k055555.h" // still needs k055555_get_palette_index
#include "tilemap.h"
-typedef device_delegate<void (int layer, int *code, int *color, int *flags)> k056832_cb_delegate;
#define K056832_CB_MEMBER(_name) void _name(int layer, int *code, int *color, int *flags)
#define K056832_PAGE_COUNT 16
@@ -32,6 +31,8 @@ class k055555_device;
class k056832_device : public device_t, public device_gfx_interface
{
public:
+ using tile_delegate = device_delegate<void (int layer, int *code, int *color, int *flags)>;
+
template <typename T> k056832_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock, T &&mixer_tag)
: k056832_device(mconfig, tag, owner, clock)
{
@@ -40,7 +41,7 @@ public:
k056832_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- template <typename... T> void set_tile_callback(T &&... args) { m_k056832_cb = k056832_cb_delegate(std::forward<T>(args)...); }
+ template <typename... T> void set_tile_callback(T &&... args) { m_k056832_cb.set(std::forward<T>(args)...); }
void set_config(int bpp, int big, int djmain_hack)
{
@@ -122,7 +123,7 @@ private:
int m_num_gfx_banks; // depends on size of graphics ROMs
int m_cur_gfx_banks; // cached info for K056832_regs[0x1a]
- k056832_cb_delegate m_k056832_cb;
+ tile_delegate m_k056832_cb;
int m_gfx_num;
int m_bpp;
diff --git a/src/mame/video/kaneko_tmap.cpp b/src/mame/video/kaneko_tmap.cpp
index 1f9e17b4be0..49679049bb0 100644
--- a/src/mame/video/kaneko_tmap.cpp
+++ b/src/mame/video/kaneko_tmap.cpp
@@ -116,6 +116,7 @@ kaneko_view2_tilemap_device::kaneko_view2_tilemap_device(const machine_config &m
, m_xdim(0)
, m_ydim(0)
, m_invert_flip(0)
+ , m_view2_cb(*this)
, m_regs(nullptr)
{
}
@@ -148,19 +149,19 @@ void kaneko_view2_tilemap_device::device_start()
};
layout.total = m_gfxrom->bytes() / ((16*16*4) / 8);
- m_view2_cb.bind_relative_to(*owner());
+ m_view2_cb.resolve();
m_regs = make_unique_clear<u16[]>(0x20/2);
set_gfx(0, std::make_unique<gfx_element>(&palette(), layout, m_gfxrom->base(), 0, 0x40, m_colbase));
m_tmap[0] = &machine().tilemap().create(
*this,
- tilemap_get_info_delegate(FUNC(kaneko_view2_tilemap_device::get_tile_info<0>),this),
+ tilemap_get_info_delegate(*this, FUNC(kaneko_view2_tilemap_device::get_tile_info<0>)),
TILEMAP_SCAN_ROWS,
16,16, 0x20,0x20);
m_tmap[1] = &machine().tilemap().create(
*this,
- tilemap_get_info_delegate(FUNC(kaneko_view2_tilemap_device::get_tile_info<1>),this),
+ tilemap_get_info_delegate(*this, FUNC(kaneko_view2_tilemap_device::get_tile_info<1>)),
TILEMAP_SCAN_ROWS,
16,16, 0x20,0x20);
diff --git a/src/mame/video/kaneko_tmap.h b/src/mame/video/kaneko_tmap.h
index 5984fb0fc54..c08d4876b2f 100644
--- a/src/mame/video/kaneko_tmap.h
+++ b/src/mame/video/kaneko_tmap.h
@@ -10,6 +10,8 @@
class kaneko_view2_tilemap_device : public device_t, public device_gfx_interface
{
public:
+ typedef device_delegate<void (u8, u32*)> view2_cb_delegate;
+
kaneko_view2_tilemap_device(const machine_config &mconfig, const char *tag, device_t *owner)
: kaneko_view2_tilemap_device(mconfig, tag, owner, (u32)0)
{
@@ -28,8 +30,7 @@ public:
}
void set_invert_flip(int invert_flip) { m_invert_flip = invert_flip; } // for fantasia (bootleg)
- typedef device_delegate<void (u8, u32*)> view2_cb_delegate;
- void set_tile_callback(view2_cb_delegate cb) { m_view2_cb = cb; }
+ template <typename... T> void set_tile_callback(T &&... args) { m_view2_cb.set(std::forward<T>(args)...); }
void vram_w(int _N_, offs_t offset, u16 data, u16 mem_mask = u16(~0));
diff --git a/src/mame/video/karnov.cpp b/src/mame/video/karnov.cpp
index bcc5b1591d8..353ce1c4809 100644
--- a/src/mame/video/karnov.cpp
+++ b/src/mame/video/karnov.cpp
@@ -64,8 +64,8 @@ void karnov_state::playfield_w(offs_t offset, u16 data, u16 mem_mask)
VIDEO_START_MEMBER(karnov_state,karnov)
{
/* Allocate bitmap & tilemap */
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(karnov_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- m_fix_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(karnov_state::get_fix_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(karnov_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_fix_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(karnov_state::get_fix_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fix_tilemap->set_transparent_pen(0);
}
@@ -73,8 +73,8 @@ VIDEO_START_MEMBER(karnov_state,karnov)
VIDEO_START_MEMBER(karnov_state,wndrplnt)
{
/* Allocate bitmap & tilemap */
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(karnov_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- m_fix_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(karnov_state::get_fix_tile_info),this), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(karnov_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_fix_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(karnov_state::get_fix_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
m_fix_tilemap->set_transparent_pen(0);
}
diff --git a/src/mame/video/kchamp.cpp b/src/mame/video/kchamp.cpp
index c1590075173..ea81463be36 100644
--- a/src/mame/video/kchamp.cpp
+++ b/src/mame/video/kchamp.cpp
@@ -52,7 +52,7 @@ TILE_GET_INFO_MEMBER(kchamp_state::get_bg_tile_info)
void kchamp_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(kchamp_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(kchamp_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
/*
diff --git a/src/mame/video/kickgoal.cpp b/src/mame/video/kickgoal.cpp
index fad3864a178..e538a93fdd8 100644
--- a/src/mame/video/kickgoal.cpp
+++ b/src/mame/video/kickgoal.cpp
@@ -118,9 +118,9 @@ VIDEO_START_MEMBER(kickgoal_state,kickgoal)
m_bg2_base = 0x2000 / 4;
m_bg2_mask = (0x2000/4) - 1;
- m_fgtm = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(kickgoal_state::get_kickgoal_fg_tile_info),this), tilemap_mapper_delegate(FUNC(kickgoal_state::tilemap_scan_8x8),this), 8, 8, 64, 64);
- m_bgtm = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(kickgoal_state::get_bg_tile_info),this), tilemap_mapper_delegate(FUNC(kickgoal_state::tilemap_scan_16x16),this), 16, 16, 64, 64);
- m_bg2tm = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(kickgoal_state::get_bg2_tile_info),this), tilemap_mapper_delegate(FUNC(kickgoal_state::tilemap_scan_32x32),this), 32, 32, 64, 64);
+ m_fgtm = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(kickgoal_state::get_kickgoal_fg_tile_info)), tilemap_mapper_delegate(*this, FUNC(kickgoal_state::tilemap_scan_8x8)), 8, 8, 64, 64);
+ m_bgtm = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(kickgoal_state::get_bg_tile_info)), tilemap_mapper_delegate(*this, FUNC(kickgoal_state::tilemap_scan_16x16)), 16, 16, 64, 64);
+ m_bg2tm = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(kickgoal_state::get_bg2_tile_info)), tilemap_mapper_delegate(*this, FUNC(kickgoal_state::tilemap_scan_32x32)), 32, 32, 64, 64);
m_fgtm->set_transparent_pen(15);
m_bgtm->set_transparent_pen(15);
@@ -138,9 +138,9 @@ VIDEO_START_MEMBER(kickgoal_state,actionhw)
m_bg2_base = 0x2000;
m_bg2_mask = 0x2000 - 1;
- m_fgtm = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(kickgoal_state::get_actionhw_fg_tile_info),this), tilemap_mapper_delegate(FUNC(kickgoal_state::tilemap_scan_8x8),this), 8, 8, 64, 64);
- m_bgtm = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(kickgoal_state::get_bg_tile_info),this), tilemap_mapper_delegate(FUNC(kickgoal_state::tilemap_scan_16x16),this), 16, 16, 64, 64);
- m_bg2tm = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(kickgoal_state::get_bg2_tile_info),this), tilemap_mapper_delegate(FUNC(kickgoal_state::tilemap_scan_16x16),this), 16, 16, 64, 64);
+ m_fgtm = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(kickgoal_state::get_actionhw_fg_tile_info)), tilemap_mapper_delegate(*this, FUNC(kickgoal_state::tilemap_scan_8x8)), 8, 8, 64, 64);
+ m_bgtm = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(kickgoal_state::get_bg_tile_info)), tilemap_mapper_delegate(*this, FUNC(kickgoal_state::tilemap_scan_16x16)), 16, 16, 64, 64);
+ m_bg2tm = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(kickgoal_state::get_bg2_tile_info)), tilemap_mapper_delegate(*this, FUNC(kickgoal_state::tilemap_scan_16x16)), 16, 16, 64, 64);
m_fgtm->set_transparent_pen(15);
m_bgtm->set_transparent_pen(15);
diff --git a/src/mame/video/kingobox.cpp b/src/mame/video/kingobox.cpp
index fc5a692786c..0669cb9127f 100644
--- a/src/mame/video/kingobox.cpp
+++ b/src/mame/video/kingobox.cpp
@@ -195,8 +195,8 @@ TILE_GET_INFO_MEMBER(kingofb_state::get_fg_tile_info)
VIDEO_START_MEMBER(kingofb_state,kingofb)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(kingofb_state::get_bg_tile_info),this), TILEMAP_SCAN_COLS_FLIP_Y, 16, 16, 16, 16);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(kingofb_state::get_fg_tile_info),this), TILEMAP_SCAN_COLS_FLIP_Y, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(kingofb_state::get_bg_tile_info)), TILEMAP_SCAN_COLS_FLIP_Y, 16, 16, 16, 16);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(kingofb_state::get_fg_tile_info)), TILEMAP_SCAN_COLS_FLIP_Y, 8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(0);
}
@@ -259,8 +259,8 @@ TILE_GET_INFO_MEMBER(kingofb_state::ringking_get_bg_tile_info)
VIDEO_START_MEMBER(kingofb_state,ringking)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(kingofb_state::ringking_get_bg_tile_info),this), TILEMAP_SCAN_COLS_FLIP_Y, 16, 16, 16, 16);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(kingofb_state::get_fg_tile_info),this), TILEMAP_SCAN_COLS_FLIP_Y, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(kingofb_state::ringking_get_bg_tile_info)), TILEMAP_SCAN_COLS_FLIP_Y, 16, 16, 16, 16);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(kingofb_state::get_fg_tile_info)), TILEMAP_SCAN_COLS_FLIP_Y, 8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(0);
}
diff --git a/src/mame/video/kncljoe.cpp b/src/mame/video/kncljoe.cpp
index a8fd628aea9..5a366683f30 100644
--- a/src/mame/video/kncljoe.cpp
+++ b/src/mame/video/kncljoe.cpp
@@ -99,7 +99,7 @@ TILE_GET_INFO_MEMBER(kncljoe_state::get_bg_tile_info)
void kncljoe_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(kncljoe_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(kncljoe_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_bg_tilemap->set_scroll_rows(4);
}
diff --git a/src/mame/video/konamigx.cpp b/src/mame/video/konamigx.cpp
index de95a75e1d7..875a027bfce 100644
--- a/src/mame/video/konamigx.cpp
+++ b/src/mame/video/konamigx.cpp
@@ -1178,8 +1178,8 @@ VIDEO_START_MEMBER(konamigx_state, konamigx_type3)
common_init();
- m_gx_psac_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(konamigx_state::get_gx_psac3_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 256, 256);
- m_gx_psac_tilemap_alt = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(konamigx_state::get_gx_psac3_alt_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 256, 256);
+ m_gx_psac_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(konamigx_state::get_gx_psac3_tile_info)), TILEMAP_SCAN_COLS, 16, 16, 256, 256);
+ m_gx_psac_tilemap_alt = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(konamigx_state::get_gx_psac3_alt_tile_info)), TILEMAP_SCAN_COLS, 16, 16, 256, 256);
m_gx_rozenable = 0;
m_gx_specialrozenable = 2;
@@ -1214,7 +1214,7 @@ VIDEO_START_MEMBER(konamigx_state, konamigx_type4)
common_init();
- m_gx_psac_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(konamigx_state::get_gx_psac_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 128, 128);
+ m_gx_psac_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(konamigx_state::get_gx_psac_tile_info)), TILEMAP_SCAN_COLS, 16, 16, 128, 128);
m_gx_rozenable = 0;
m_gx_specialrozenable = 3;
@@ -1242,7 +1242,7 @@ VIDEO_START_MEMBER(konamigx_state, konamigx_type4_vsn)
common_init();
- m_gx_psac_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(konamigx_state::get_gx_psac_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 128, 128);
+ m_gx_psac_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(konamigx_state::get_gx_psac_tile_info)), TILEMAP_SCAN_COLS, 16, 16, 128, 128);
m_gx_rozenable = 0;
m_gx_specialrozenable = 3;
@@ -1269,7 +1269,7 @@ VIDEO_START_MEMBER(konamigx_state, konamigx_type4_sd2)
common_init();
- m_gx_psac_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(konamigx_state::get_gx_psac_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 128, 128);
+ m_gx_psac_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(konamigx_state::get_gx_psac_tile_info)), TILEMAP_SCAN_COLS, 16, 16, 128, 128);
m_gx_rozenable = 0;
m_gx_specialrozenable = 3;
@@ -1298,8 +1298,8 @@ VIDEO_START_MEMBER(konamigx_state, opengolf)
m_k056832->set_layer_offs(2, 2+1, 0);
m_k056832->set_layer_offs(3, 3+1, 0);
- m_gx_psac_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(konamigx_state::get_gx_psac1a_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 128, 128);
- m_gx_psac_tilemap2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(konamigx_state::get_gx_psac1b_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 128, 128);
+ m_gx_psac_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(konamigx_state::get_gx_psac1a_tile_info)), TILEMAP_SCAN_COLS, 16, 16, 128, 128);
+ m_gx_psac_tilemap2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(konamigx_state::get_gx_psac1b_tile_info)), TILEMAP_SCAN_COLS, 16, 16, 128, 128);
// transparency will be handled manually in post-processing
//m_gx_psac_tilemap->set_transparent_pen(0);
@@ -1333,8 +1333,8 @@ VIDEO_START_MEMBER(konamigx_state, racinfrc)
m_k056832->set_layer_offs(2, 2+1, -16);
m_k056832->set_layer_offs(3, 3+1, -16);
- m_gx_psac_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(konamigx_state::get_gx_psac1a_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 128, 128);
- m_gx_psac_tilemap2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(konamigx_state::get_gx_psac1b_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 128, 128);
+ m_gx_psac_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(konamigx_state::get_gx_psac1a_tile_info)), TILEMAP_SCAN_COLS, 16, 16, 128, 128);
+ m_gx_psac_tilemap2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(konamigx_state::get_gx_psac1b_tile_info)), TILEMAP_SCAN_COLS, 16, 16, 128, 128);
// transparency will be handled manually in post-processing
//m_gx_psac_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/kopunch.cpp b/src/mame/video/kopunch.cpp
index 15479271459..149cdcab5d6 100644
--- a/src/mame/video/kopunch.cpp
+++ b/src/mame/video/kopunch.cpp
@@ -96,8 +96,8 @@ TILE_GET_INFO_MEMBER(kopunch_state::get_bg_tile_info)
void kopunch_state::video_start()
{
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(kopunch_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(kopunch_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 16, 16);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(kopunch_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(kopunch_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 16, 16);
m_fg_tilemap->set_transparent_pen(0);
}
diff --git a/src/mame/video/ksayakyu.cpp b/src/mame/video/ksayakyu.cpp
index dd070aa039d..c900e78ce66 100644
--- a/src/mame/video/ksayakyu.cpp
+++ b/src/mame/video/ksayakyu.cpp
@@ -116,8 +116,8 @@ void ksayakyu_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &clipre
void ksayakyu_state::video_start()
{
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ksayakyu_state::get_ksayakyu_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32 * 8);
- m_textmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ksayakyu_state::get_text_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ksayakyu_state::get_ksayakyu_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32 * 8);
+ m_textmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ksayakyu_state::get_text_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_textmap->set_transparent_pen(0);
}
diff --git a/src/mame/video/kyugo.cpp b/src/mame/video/kyugo.cpp
index f482b2027b3..756c0a6f777 100644
--- a/src/mame/video/kyugo.cpp
+++ b/src/mame/video/kyugo.cpp
@@ -47,8 +47,8 @@ void kyugo_state::video_start()
{
m_color_codes = memregion("proms")->base() + 0x300;
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(kyugo_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(kyugo_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(kyugo_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(kyugo_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_fg_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/labyrunr.cpp b/src/mame/video/labyrunr.cpp
index c8017a5ed42..e3cf3776d9c 100644
--- a/src/mame/video/labyrunr.cpp
+++ b/src/mame/video/labyrunr.cpp
@@ -103,8 +103,8 @@ TILE_GET_INFO_MEMBER(labyrunr_state::get_tile_info1)
void labyrunr_state::video_start()
{
- m_layer0 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(labyrunr_state::get_tile_info0),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_layer1 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(labyrunr_state::get_tile_info1),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_layer0 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(labyrunr_state::get_tile_info0)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_layer1 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(labyrunr_state::get_tile_info1)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_layer0->set_transparent_pen(0);
m_layer1->set_transparent_pen(0);
diff --git a/src/mame/video/ladybug.cpp b/src/mame/video/ladybug.cpp
index ae69cb4d321..040c8cd6966 100644
--- a/src/mame/video/ladybug.cpp
+++ b/src/mame/video/ladybug.cpp
@@ -101,7 +101,7 @@ void ladybug_video_device::device_start()
std::fill_n(m_spr_ram.get(), 0x0400, 0);
std::fill_n(m_bg_ram.get(), 0x0800, 0);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ladybug_video_device::get_bg_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ladybug_video_device::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_bg_tilemap->set_scroll_rows(32);
m_bg_tilemap->set_transparent_pen(0);
@@ -432,7 +432,7 @@ void sraider_state::video_start()
{
ladybug_base_state::video_start();
- m_grid_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sraider_state::get_grid_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_grid_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sraider_state::get_grid_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_grid_tilemap->set_scroll_rows(32);
m_grid_tilemap->set_transparent_pen(0);
}
diff --git a/src/mame/video/ladyfrog.cpp b/src/mame/video/ladyfrog.cpp
index f0991b0e39e..22d146d568e 100644
--- a/src/mame/video/ladyfrog.cpp
+++ b/src/mame/video/ladyfrog.cpp
@@ -127,7 +127,7 @@ void ladyfrog_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &clipre
VIDEO_START_MEMBER(ladyfrog_state,ladyfrog_common)
{
m_spriteram = std::make_unique<uint8_t[]>(160);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ladyfrog_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ladyfrog_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_paletteram.resize(0x200);
m_paletteram_ext.resize(0x200);
diff --git a/src/mame/video/lasso.cpp b/src/mame/video/lasso.cpp
index 7a083823229..cc0dfc2d766 100644
--- a/src/mame/video/lasso.cpp
+++ b/src/mame/video/lasso.cpp
@@ -154,7 +154,7 @@ TILE_GET_INFO_MEMBER(lasso_state::pinbo_get_bg_tile_info)
void lasso_state::video_start()
{
/* create tilemap */
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(lasso_state::lasso_get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(lasso_state::lasso_get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_bg_tilemap->set_transparent_pen(0);
}
@@ -162,8 +162,8 @@ void lasso_state::video_start()
VIDEO_START_MEMBER(lasso_state,wwjgtin)
{
/* create tilemaps */
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(lasso_state::lasso_get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_track_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(lasso_state::wwjgtin_get_track_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 128, 64);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(lasso_state::lasso_get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_track_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(lasso_state::wwjgtin_get_track_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 128, 64);
m_bg_tilemap->set_transparent_pen(0);
}
@@ -171,7 +171,7 @@ VIDEO_START_MEMBER(lasso_state,wwjgtin)
VIDEO_START_MEMBER(lasso_state,pinbo)
{
/* create tilemap */
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(lasso_state::pinbo_get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(lasso_state::pinbo_get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_bg_tilemap->set_transparent_pen(0);
}
diff --git a/src/mame/video/lastduel.cpp b/src/mame/video/lastduel.cpp
index 3410c948120..ec09ebd9088 100644
--- a/src/mame/video/lastduel.cpp
+++ b/src/mame/video/lastduel.cpp
@@ -78,9 +78,9 @@ TILE_GET_INFO_MEMBER(lastduel_state::get_fix_info)
VIDEO_START_MEMBER(lastduel_state,lastduel)
{
- m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(lastduel_state::ld_get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
- m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(lastduel_state::ld_get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(lastduel_state::get_fix_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(lastduel_state::ld_get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
+ m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(lastduel_state::ld_get_fg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(lastduel_state::get_fix_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_tilemap[0]->set_transmask(0, 0xffff, 0x0001);
m_tilemap[0]->set_transmask(1, 0xf07f, 0x0f81);
@@ -93,9 +93,9 @@ VIDEO_START_MEMBER(lastduel_state,lastduel)
VIDEO_START_MEMBER(lastduel_state,madgear)
{
- m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(lastduel_state::get_bg_tile_info),this),TILEMAP_SCAN_COLS,16,16,64,32);
- m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(lastduel_state::get_fg_tile_info),this),TILEMAP_SCAN_COLS,16,16,64,32);
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(lastduel_state::get_fix_info),this),TILEMAP_SCAN_ROWS,8,8,64,32);
+ m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(lastduel_state::get_bg_tile_info)), TILEMAP_SCAN_COLS, 16, 16, 64, 32);
+ m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(lastduel_state::get_fg_tile_info)), TILEMAP_SCAN_COLS, 16, 16, 64, 32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(lastduel_state::get_fix_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_tilemap[0]->set_transmask(0, 0xffff, 0x8000);
m_tilemap[0]->set_transmask(1, 0x80ff, 0xff00);
diff --git a/src/mame/video/legionna.cpp b/src/mame/video/legionna.cpp
index 4492f7d4d4b..c2acb3c3ffd 100644
--- a/src/mame/video/legionna.cpp
+++ b/src/mame/video/legionna.cpp
@@ -204,17 +204,17 @@ void legionna_state::common_video_start(bool split, bool has_extended_banking, b
{
common_video_allocate_ptr();
- m_background_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(legionna_state::get_back_tile_info),this), TILEMAP_SCAN_ROWS,16,16,32,32);
+ m_background_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(legionna_state::get_back_tile_info)), TILEMAP_SCAN_ROWS,16,16,32,32);
if (split)
{
- m_midground_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(legionna_state::get_mid_tile_info_split),this), TILEMAP_SCAN_ROWS,16,16,32,32);
+ m_midground_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(legionna_state::get_mid_tile_info_split)), TILEMAP_SCAN_ROWS,16,16,32,32);
}
else
{
- m_midground_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(legionna_state::get_mid_tile_info_share_bgrom),this), TILEMAP_SCAN_ROWS,16,16,32,32);
+ m_midground_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(legionna_state::get_mid_tile_info_share_bgrom)), TILEMAP_SCAN_ROWS,16,16,32,32);
}
- m_foreground_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(legionna_state::get_fore_tile_info),this), TILEMAP_SCAN_ROWS,16,16,32,32);
- m_text_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(legionna_state::get_text_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8,64,32);
+ m_foreground_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(legionna_state::get_fore_tile_info)), TILEMAP_SCAN_ROWS,16,16,32,32);
+ m_text_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(legionna_state::get_text_tile_info)), TILEMAP_SCAN_ROWS, 8, 8,64,32);
m_has_extended_banking = has_extended_banking;
m_has_extended_priority = has_extended_priority;
diff --git a/src/mame/video/leland.cpp b/src/mame/video/leland.cpp
index 4301df5e3ce..7861ac0c553 100644
--- a/src/mame/video/leland.cpp
+++ b/src/mame/video/leland.cpp
@@ -96,7 +96,7 @@ TILE_GET_INFO_MEMBER(ataxx_state::ataxx_get_tile_info)
void leland_state::video_start()
{
/* tilemap */
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(leland_state::leland_get_tile_info),this), tilemap_mapper_delegate(FUNC(leland_state::leland_scan),this), 8, 8, 256, 256);
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(leland_state::leland_get_tile_info)), tilemap_mapper_delegate(*this, FUNC(leland_state::leland_scan)), 8, 8, 256, 256);
/* allocate memory */
m_video_ram = make_unique_clear<u8[]>(VRAM_SIZE);
@@ -122,7 +122,7 @@ void ataxx_state::video_start()
{
// TODO: further untangle driver so the base class doesn't have stuff that isn't common and this can call the base implementation
/* tilemap */
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ataxx_state::ataxx_get_tile_info),this), tilemap_mapper_delegate(FUNC(ataxx_state::ataxx_scan),this), 8, 8, 256, 128);
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ataxx_state::ataxx_get_tile_info)), tilemap_mapper_delegate(*this, FUNC(ataxx_state::ataxx_scan)), 8, 8, 256, 128);
/* first do the standard stuff */
m_video_ram = make_unique_clear<u8[]>(VRAM_SIZE);
diff --git a/src/mame/video/lemmings.cpp b/src/mame/video/lemmings.cpp
index c7c3f80a4f4..3a64c13db9b 100644
--- a/src/mame/video/lemmings.cpp
+++ b/src/mame/video/lemmings.cpp
@@ -33,7 +33,7 @@ TILE_GET_INFO_MEMBER(lemmings_state::get_tile_info)
void lemmings_state::video_start()
{
- m_vram_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(lemmings_state::get_tile_info),this), TILEMAP_SCAN_COLS, 8, 8, 64, 32);
+ m_vram_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(lemmings_state::get_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 64, 32);
m_vram_tilemap->set_transparent_pen(0);
m_bitmap0.fill(0x100);
diff --git a/src/mame/video/liberate.cpp b/src/mame/video/liberate.cpp
index 4bd3e8d580b..5c1acb8b79d 100644
--- a/src/mame/video/liberate.cpp
+++ b/src/mame/video/liberate.cpp
@@ -204,8 +204,8 @@ WRITE8_MEMBER(liberate_state::prosport_bg_vram_w)
VIDEO_START_MEMBER(liberate_state,prosoccr)
{
- m_back_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(liberate_state::get_back_tile_info),this), tilemap_mapper_delegate(FUNC(liberate_state::back_scan),this), 16, 16, 32, 32);
- m_fix_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(liberate_state::get_fix_tile_info),this), tilemap_mapper_delegate(FUNC(liberate_state::fix_scan),this), 8, 8, 32, 32);
+ m_back_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(liberate_state::get_back_tile_info)), tilemap_mapper_delegate(*this, FUNC(liberate_state::back_scan)), 16, 16, 32, 32);
+ m_fix_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(liberate_state::get_fix_tile_info)), tilemap_mapper_delegate(*this, FUNC(liberate_state::fix_scan)), 8, 8, 32, 32);
m_fix_tilemap->set_transparent_pen(0);
@@ -218,8 +218,8 @@ VIDEO_START_MEMBER(liberate_state,prosoccr)
VIDEO_START_MEMBER(liberate_state,boomrang)
{
- m_back_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(liberate_state::get_back_tile_info),this), tilemap_mapper_delegate(FUNC(liberate_state::back_scan),this), 16, 16, 32, 32);
- m_fix_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(liberate_state::get_fix_tile_info),this), tilemap_mapper_delegate(FUNC(liberate_state::fix_scan),this), 8, 8, 32, 32);
+ m_back_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(liberate_state::get_back_tile_info)), tilemap_mapper_delegate(*this, FUNC(liberate_state::back_scan)), 16, 16, 32, 32);
+ m_fix_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(liberate_state::get_fix_tile_info)), tilemap_mapper_delegate(*this, FUNC(liberate_state::fix_scan)), 8, 8, 32, 32);
m_back_tilemap->set_transmask(0, 0x0001, 0x007e); /* Bottom 1 pen/Top 7 pens */
m_fix_tilemap->set_transparent_pen(0);
@@ -227,16 +227,16 @@ VIDEO_START_MEMBER(liberate_state,boomrang)
VIDEO_START_MEMBER(liberate_state,liberate)
{
- m_back_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(liberate_state::get_back_tile_info),this), tilemap_mapper_delegate(FUNC(liberate_state::back_scan),this), 16, 16, 32, 32);
- m_fix_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(liberate_state::get_fix_tile_info),this), tilemap_mapper_delegate(FUNC(liberate_state::fix_scan),this), 8, 8, 32, 32);
+ m_back_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(liberate_state::get_back_tile_info)), tilemap_mapper_delegate(*this, FUNC(liberate_state::back_scan)), 16, 16, 32, 32);
+ m_fix_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(liberate_state::get_fix_tile_info)), tilemap_mapper_delegate(*this, FUNC(liberate_state::fix_scan)), 8, 8, 32, 32);
m_fix_tilemap->set_transparent_pen(0);
}
VIDEO_START_MEMBER(liberate_state,prosport)
{
- m_back_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(liberate_state::prosport_get_back_tile_info),this), tilemap_mapper_delegate(FUNC(liberate_state::back_scan),this), 16, 16, 32, 32);
- m_fix_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(liberate_state::get_fix_tile_info),this), tilemap_mapper_delegate(FUNC(liberate_state::fix_scan),this), 8, 8, 32, 32);
+ m_back_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(liberate_state::prosport_get_back_tile_info)), tilemap_mapper_delegate(*this, FUNC(liberate_state::back_scan)), 16, 16, 32, 32);
+ m_fix_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(liberate_state::get_fix_tile_info)), tilemap_mapper_delegate(*this, FUNC(liberate_state::fix_scan)), 8, 8, 32, 32);
m_fix_tilemap->set_transparent_pen(0);
}
diff --git a/src/mame/video/lkage.cpp b/src/mame/video/lkage.cpp
index 4a8824e5f9f..082897d358a 100644
--- a/src/mame/video/lkage.cpp
+++ b/src/mame/video/lkage.cpp
@@ -87,9 +87,9 @@ TILE_GET_INFO_MEMBER(lkage_state::get_tx_tile_info)
void lkage_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(lkage_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(lkage_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(lkage_state::get_tx_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(lkage_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(lkage_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(lkage_state::get_tx_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(0);
m_tx_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/lockon.cpp b/src/mame/video/lockon.cpp
index b234716aa32..5334f22d80f 100644
--- a/src/mame/video/lockon.cpp
+++ b/src/mame/video/lockon.cpp
@@ -886,7 +886,7 @@ void lockon_state::hud_draw( bitmap_ind16 &bitmap, const rectangle &cliprect )
void lockon_state::video_start()
{
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(lockon_state::get_lockon_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(lockon_state::get_lockon_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_tilemap->set_transparent_pen(0);
/* Allocate the two frame buffers for rotation */
diff --git a/src/mame/video/lordgun.cpp b/src/mame/video/lordgun.cpp
index d314ca47e8e..eabeca1e51c 100644
--- a/src/mame/video/lordgun.cpp
+++ b/src/mame/video/lordgun.cpp
@@ -70,16 +70,16 @@ void lordgun_state::video_start()
int h = m_screen->height();
// 0x800 x 200
- m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(lordgun_state::get_tile_info<0>),this), TILEMAP_SCAN_ROWS,8,8, 0x100, 0x40 );
+ m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(lordgun_state::get_tile_info<0>)), TILEMAP_SCAN_ROWS, 8, 8, 0x100, 0x40);
// 0x800 x 200
- m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(lordgun_state::get_tile_info<1>),this), TILEMAP_SCAN_ROWS,16,16, 0x80,0x20 );
+ m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(lordgun_state::get_tile_info<1>)), TILEMAP_SCAN_ROWS, 16,16, 0x80, 0x20);
// 0x800 x 200
- m_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(lordgun_state::get_tile_info<2>),this), TILEMAP_SCAN_ROWS,32,32, 0x40,0x10 );
+ m_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(lordgun_state::get_tile_info<2>)), TILEMAP_SCAN_ROWS, 32,32, 0x40, 0x10);
// 0x200 x 100
- m_tilemap[3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(lordgun_state::get_tile_info<3>),this), TILEMAP_SCAN_ROWS,8,8, 0x40,0x20 );
+ m_tilemap[3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(lordgun_state::get_tile_info<3>)), TILEMAP_SCAN_ROWS, 8, 8, 0x40, 0x20);
m_tilemap[0]->set_scroll_rows(1);
m_tilemap[0]->set_scroll_cols(1);
diff --git a/src/mame/video/lucky74.cpp b/src/mame/video/lucky74.cpp
index adf9b5a5623..c2436f0dc47 100644
--- a/src/mame/video/lucky74.cpp
+++ b/src/mame/video/lucky74.cpp
@@ -227,8 +227,8 @@ TILE_GET_INFO_MEMBER(lucky74_state::get_bg_tile_info)
void lucky74_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(lucky74_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(lucky74_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(lucky74_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(lucky74_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_fg_tilemap->set_transparent_pen(0);
}
diff --git a/src/mame/video/lvcards.cpp b/src/mame/video/lvcards.cpp
index 0434e209fea..f7e19bb21ad 100644
--- a/src/mame/video/lvcards.cpp
+++ b/src/mame/video/lvcards.cpp
@@ -71,7 +71,7 @@ TILE_GET_INFO_MEMBER(lvcards_state::get_bg_tile_info)
void lvcards_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(lvcards_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS,
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(lvcards_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS,
8, 8, 32, 32);
}
diff --git a/src/mame/video/lwings.cpp b/src/mame/video/lwings.cpp
index acda77e9590..e0c36dea97f 100644
--- a/src/mame/video/lwings.cpp
+++ b/src/mame/video/lwings.cpp
@@ -78,21 +78,21 @@ TILE_GET_INFO_MEMBER(lwings_state::get_bg2_tile_info)
void lwings_state::video_start()
{
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(lwings_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_bg1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(lwings_state::lwings_get_bg1_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(lwings_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(lwings_state::lwings_get_bg1_tile_info)), TILEMAP_SCAN_COLS, 16, 16, 32, 32);
m_fg_tilemap->set_transparent_pen(3);
}
VIDEO_START_MEMBER(lwings_state,trojan)
{
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(lwings_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_bg1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(lwings_state::trojan_get_bg1_tile_info),this),TILEMAP_SCAN_COLS, 16, 16, 32, 32);
- m_bg2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(lwings_state::get_bg2_tile_info),this), tilemap_mapper_delegate(FUNC(lwings_state::get_bg2_memory_offset),this), 16, 16, 32, 16);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(lwings_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(lwings_state::trojan_get_bg1_tile_info)),TILEMAP_SCAN_COLS, 16, 16, 32, 32);
+ m_bg2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(lwings_state::get_bg2_tile_info)), tilemap_mapper_delegate(*this, FUNC(lwings_state::get_bg2_memory_offset)), 16, 16, 32, 16);
m_fg_tilemap->set_transparent_pen(3);
- m_bg1_tilemap->set_transmask(0, 0xffff, 0x0001); /* split type 0 is totally transparent in front half */
- m_bg1_tilemap->set_transmask(1, 0xf07f, 0x0f81); /* split type 1 has pens 7-11 opaque in front half */
+ m_bg1_tilemap->set_transmask(0, 0xffff, 0x0001); // split type 0 is totally transparent in front half
+ m_bg1_tilemap->set_transmask(1, 0xf07f, 0x0f81); // split type 1 has pens 7-11 opaque in front half
m_bg2_avenger_hw = 0;
m_spr_avenger_hw = 0;
diff --git a/src/mame/video/m10.cpp b/src/mame/video/m10.cpp
index e3d2fda7e9a..ce111021505 100644
--- a/src/mame/video/m10.cpp
+++ b/src/mame/video/m10.cpp
@@ -97,21 +97,18 @@ inline void m10_state::plot_pixel_m10( bitmap_ind16 &bm, int x, int y, int col )
VIDEO_START_MEMBER(m10_state,m10)
{
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(m10_state::get_tile_info),this), tilemap_mapper_delegate(FUNC(m10_state::tilemap_scan),this), 8, 8, 32, 32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(m10_state::get_tile_info)), tilemap_mapper_delegate(*this, FUNC(m10_state::tilemap_scan)), 8, 8, 32, 32);
m_tx_tilemap->set_transparent_pen(0);
m_gfxdecode->set_gfx(1, std::make_unique<gfx_element>(m_palette, backlayout, m_chargen, 0, 8, 0));
m_back_gfx = m_gfxdecode->gfx(1);
- return ;
}
VIDEO_START_MEMBER(m10_state,m15)
{
m_gfxdecode->set_gfx(0,std::make_unique<gfx_element>(m_palette, charlayout, m_chargen, 0, 8, 0));
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(m10_state::get_tile_info),this),tilemap_mapper_delegate(FUNC(m10_state::tilemap_scan),this), 8, 8, 32, 32);
-
- return ;
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(m10_state::get_tile_info)), tilemap_mapper_delegate(*this, FUNC(m10_state::tilemap_scan)), 8, 8, 32, 32);
}
/***************************************************************************
diff --git a/src/mame/video/m107.cpp b/src/mame/video/m107.cpp
index 3be0b00a65b..880295c76b4 100644
--- a/src/mame/video/m107.cpp
+++ b/src/mame/video/m107.cpp
@@ -127,7 +127,7 @@ void m107_state::video_start()
pf_layer_info *layer = &m_pf_layer[laynum];
/* allocate a tilemaps per layer */
- layer->tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(m107_state::get_pf_tile_info),this), TILEMAP_SCAN_ROWS, 8,8, 64,64);
+ layer->tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(m107_state::get_pf_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 64,64);
/* set the user data to point to the layer */
layer->tmap->set_user_data(&m_pf_layer[laynum]);
diff --git a/src/mame/video/m52.cpp b/src/mame/video/m52.cpp
index dedb6bb33ad..e1f7eab1cbc 100644
--- a/src/mame/video/m52.cpp
+++ b/src/mame/video/m52.cpp
@@ -152,7 +152,7 @@ TILE_GET_INFO_MEMBER(m52_state::get_tile_info)
void m52_state::video_start()
{
- m_tx_tilemap = &machine().tilemap().create(*m_tx_gfxdecode, tilemap_get_info_delegate(FUNC(m52_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_tx_tilemap = &machine().tilemap().create(*m_tx_gfxdecode, tilemap_get_info_delegate(*this, FUNC(m52_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_tx_tilemap->set_transparent_pen(0);
m_tx_tilemap->set_scrolldx(127, 127);
diff --git a/src/mame/video/m57.cpp b/src/mame/video/m57.cpp
index 52abd052a73..be3b81010d0 100644
--- a/src/mame/video/m57.cpp
+++ b/src/mame/video/m57.cpp
@@ -138,7 +138,7 @@ WRITE8_MEMBER(m57_state::m57_videoram_w)
void m57_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(m57_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(m57_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_bg_tilemap->set_scroll_rows(256);
save_item(NAME(m_flipscreen));
diff --git a/src/mame/video/m58.cpp b/src/mame/video/m58.cpp
index 413cca1e90f..1e20b51308c 100644
--- a/src/mame/video/m58.cpp
+++ b/src/mame/video/m58.cpp
@@ -169,7 +169,7 @@ TILEMAP_MAPPER_MEMBER(m58_state::tilemap_scan_rows)
void m58_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(m58_state::get_bg_tile_info),this), tilemap_mapper_delegate(FUNC(m58_state::tilemap_scan_rows),this), 8, 8, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(m58_state::get_bg_tile_info)), tilemap_mapper_delegate(*this, FUNC(m58_state::tilemap_scan_rows)), 8, 8, 64, 32);
m_bg_tilemap->set_scrolldy(32, 32);
m_screen->register_screen_bitmap(m_scroll_panel_bitmap);
diff --git a/src/mame/video/m62.cpp b/src/mame/video/m62.cpp
index 08adb59e029..4e0e61155cf 100644
--- a/src/mame/video/m62.cpp
+++ b/src/mame/video/m62.cpp
@@ -337,7 +337,7 @@ void m62_state::draw_sprites( bitmap_rgb32 &bitmap, const rectangle &cliprect, i
}
}
-void m62_state::m62_start( tilemap_get_info_delegate tile_get_info, int rows, int cols, int x1, int y1, int x2, int y2 )
+void m62_state::m62_start(tilemap_get_info_delegate tile_get_info, int rows, int cols, int x1, int y1, int x2, int y2)
{
m_bg_tilemap = &machine().tilemap().create(*m_chr_decode, tile_get_info, TILEMAP_SCAN_ROWS, x1, y1, x2, y2);
@@ -350,7 +350,7 @@ void m62_state::m62_start( tilemap_get_info_delegate tile_get_info, int rows, in
m_bg_tilemap->set_scroll_cols(cols);
}
-void m62_state::m62_textlayer( tilemap_get_info_delegate tile_get_info, int rows, int cols, int x1, int y1, int x2, int y2 )
+void m62_state::m62_textlayer(tilemap_get_info_delegate tile_get_info, int rows, int cols, int x1, int y1, int x2, int y2)
{
m_fg_tilemap = &machine().tilemap().create(*m_fg_decode, tile_get_info, TILEMAP_SCAN_ROWS, x1, y1, x2, y2);
@@ -390,7 +390,7 @@ TILE_GET_INFO_MEMBER(m62_state::get_kungfum_bg_tile_info)
VIDEO_START_MEMBER(m62_state,kungfum)
{
- m62_start(tilemap_get_info_delegate(FUNC(m62_state::get_kungfum_bg_tile_info),this), 32, 0, 8, 8, 64, 32);
+ m62_start(tilemap_get_info_delegate(*this, FUNC(m62_state::get_kungfum_bg_tile_info)), 32, 0, 8, 8, 64, 32);
}
uint32_t m62_state::screen_update_kungfum(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
@@ -432,9 +432,9 @@ TILE_GET_INFO_MEMBER(m62_state::get_ldrun_bg_tile_info)
void m62_state::video_start()
{
- m62_start(tilemap_get_info_delegate(FUNC(m62_state::get_ldrun_bg_tile_info),this), 1, 1, 8, 8, 64, 32);
- m_bg_tilemap->set_transmask(0, 0xffff, 0x0000); /* split type 0 is totally transparent in front half */
- m_bg_tilemap->set_transmask(1, 0x0001, 0xfffe); /* split type 1 has pen 0 transparent in front half */
+ m62_start(tilemap_get_info_delegate(*this, FUNC(m62_state::get_ldrun_bg_tile_info)), 1, 1, 8, 8, 64, 32);
+ m_bg_tilemap->set_transmask(0, 0xffff, 0x0000); // split type 0 is totally transparent in front half
+ m_bg_tilemap->set_transmask(1, 0x0001, 0xfffe); // split type 1 has pen 0 transparent in front half
}
uint32_t m62_state::screen_update_ldrun(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
@@ -470,7 +470,7 @@ TILE_GET_INFO_MEMBER(m62_state::get_ldrun2_bg_tile_info)
VIDEO_START_MEMBER(m62_state,ldrun2)
{
- m62_start(tilemap_get_info_delegate(FUNC(m62_state::get_ldrun2_bg_tile_info),this), 1, 1, 8, 8, 64, 32);
+ m62_start(tilemap_get_info_delegate(*this, FUNC(m62_state::get_ldrun2_bg_tile_info)), 1, 1, 8, 8, 64, 32);
m_bg_tilemap->set_transmask(0, 0xffff, 0x0000); /* split type 0 is totally transparent in front half */
m_bg_tilemap->set_transmask(1, 0x0001, 0xfffe); /* split type 1 has pen 0 transparent in front half */
}
@@ -532,8 +532,8 @@ TILE_GET_INFO_MEMBER(m62_state::get_battroad_fg_tile_info)
VIDEO_START_MEMBER(m62_state,battroad)
{
- m62_start(tilemap_get_info_delegate(FUNC(m62_state::get_battroad_bg_tile_info),this), 1, 1, 8, 8, 64, 32);
- m62_textlayer(tilemap_get_info_delegate(FUNC(m62_state::get_battroad_fg_tile_info),this), 1, 1, 8, 8, 32, 32);
+ m62_start(tilemap_get_info_delegate(*this, FUNC(m62_state::get_battroad_bg_tile_info)), 1, 1, 8, 8, 64, 32);
+ m62_textlayer(tilemap_get_info_delegate(*this, FUNC(m62_state::get_battroad_fg_tile_info)), 1, 1, 8, 8, 32, 32);
m_bg_tilemap->set_transmask(0, 0xffff, 0x0000); /* split type 0 is totally transparent in front half */
m_bg_tilemap->set_transmask(1, 0x0001, 0xfffe); /* split type 1 has pen 0 transparent in front half */
}
@@ -568,7 +568,7 @@ TILE_GET_INFO_MEMBER(m62_state::get_ldrun4_bg_tile_info)
VIDEO_START_MEMBER(m62_state,ldrun4)
{
- m62_start(tilemap_get_info_delegate(FUNC(m62_state::get_ldrun4_bg_tile_info),this), 1, 0, 8, 8, 64, 32);
+ m62_start(tilemap_get_info_delegate(*this, FUNC(m62_state::get_ldrun4_bg_tile_info)), 1, 0, 8, 8, 64, 32);
}
uint32_t m62_state::screen_update_ldrun4(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
@@ -607,8 +607,8 @@ TILE_GET_INFO_MEMBER(m62_state::get_lotlot_fg_tile_info)
VIDEO_START_MEMBER(m62_state,lotlot)
{
- m62_start(tilemap_get_info_delegate(FUNC(m62_state::get_lotlot_bg_tile_info),this), 1, 1, 12, 10, 32, 64);
- m62_textlayer(tilemap_get_info_delegate(FUNC(m62_state::get_lotlot_fg_tile_info),this), 1, 1, 12, 10, 32, 64);
+ m62_start(tilemap_get_info_delegate(*this, FUNC(m62_state::get_lotlot_bg_tile_info)), 1, 1, 12, 10, 32, 64);
+ m62_textlayer(tilemap_get_info_delegate(*this, FUNC(m62_state::get_lotlot_fg_tile_info)), 1, 1, 12, 10, 32, 64);
}
uint32_t m62_state::screen_update_lotlot(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
@@ -666,13 +666,13 @@ TILE_GET_INFO_MEMBER(m62_state::get_kidniki_fg_tile_info)
VIDEO_START_MEMBER(m62_state,kidniki)
{
- m_bg_tilemap = &machine().tilemap().create(*m_chr_decode, tilemap_get_info_delegate(FUNC(m62_state::get_kidniki_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_bg_tilemap->set_transmask(0, 0xffff, 0x0000); /* split type 0 is totally transparent in front half */
- m_bg_tilemap->set_transmask(1, 0x0001, 0xfffe); /* split type 1 has pen 0 transparent in front half */
+ m_bg_tilemap = &machine().tilemap().create(*m_chr_decode, tilemap_get_info_delegate(*this, FUNC(m62_state::get_kidniki_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap->set_transmask(0, 0xffff, 0x0000); // split type 0 is totally transparent in front half
+ m_bg_tilemap->set_transmask(1, 0x0001, 0xfffe); // split type 1 has pen 0 transparent in front half
register_savestate();
- m62_textlayer(tilemap_get_info_delegate(FUNC(m62_state::get_kidniki_fg_tile_info),this), 1, 1, 12, 8, 32, 64);
+ m62_textlayer(tilemap_get_info_delegate(*this, FUNC(m62_state::get_kidniki_fg_tile_info)), 1, 1, 12, 8, 32, 64);
}
uint32_t m62_state::screen_update_kidniki(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
@@ -721,8 +721,8 @@ TILE_GET_INFO_MEMBER(m62_state::get_spelunkr_fg_tile_info)
VIDEO_START_MEMBER(m62_state,spelunkr)
{
- m62_start(tilemap_get_info_delegate(FUNC(m62_state::get_spelunkr_bg_tile_info),this), 1, 1, 8, 8, 64, 64);
- m62_textlayer(tilemap_get_info_delegate(FUNC(m62_state::get_spelunkr_fg_tile_info),this), 1, 1, 12, 8, 32, 32);
+ m62_start(tilemap_get_info_delegate(*this, FUNC(m62_state::get_spelunkr_bg_tile_info)), 1, 1, 8, 8, 64, 64);
+ m62_textlayer(tilemap_get_info_delegate(*this, FUNC(m62_state::get_spelunkr_fg_tile_info)), 1, 1, 12, 8, 32, 32);
}
uint32_t m62_state::screen_update_spelunkr(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
@@ -763,8 +763,8 @@ TILE_GET_INFO_MEMBER(m62_state::get_spelunk2_bg_tile_info)
VIDEO_START_MEMBER(m62_state,spelunk2)
{
- m62_start(tilemap_get_info_delegate(FUNC(m62_state::get_spelunk2_bg_tile_info),this), 1, 1, 8, 8, 64, 64);
- m62_textlayer(tilemap_get_info_delegate(FUNC(m62_state::get_spelunkr_fg_tile_info),this), 1, 1, 12, 8, 32, 32);
+ m62_start(tilemap_get_info_delegate(*this, FUNC(m62_state::get_spelunk2_bg_tile_info)), 1, 1, 8, 8, 64, 64);
+ m62_textlayer(tilemap_get_info_delegate(*this, FUNC(m62_state::get_spelunkr_fg_tile_info)), 1, 1, 12, 8, 32, 32);
}
uint32_t m62_state::screen_update_spelunk2(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
@@ -806,10 +806,10 @@ TILE_GET_INFO_MEMBER(m62_state::get_youjyudn_fg_tile_info)
VIDEO_START_MEMBER(m62_state,youjyudn)
{
- m62_start(tilemap_get_info_delegate(FUNC(m62_state::get_youjyudn_bg_tile_info),this), 1, 0, 8, 16, 64, 16);
- m62_textlayer(tilemap_get_info_delegate(FUNC(m62_state::get_youjyudn_fg_tile_info),this), 1, 1, 12, 8, 32, 32);
- m_bg_tilemap->set_transmask(0, 0xffff, 0x0000); /* split type 0 is totally transparent in front half */
- m_bg_tilemap->set_transmask(1, 0x0001, 0xfffe); /* split type 1 has pen 0 transparent in front half */
+ m62_start(tilemap_get_info_delegate(*this, FUNC(m62_state::get_youjyudn_bg_tile_info)), 1, 0, 8, 16, 64, 16);
+ m62_textlayer(tilemap_get_info_delegate(*this, FUNC(m62_state::get_youjyudn_fg_tile_info)), 1, 1, 12, 8, 32, 32);
+ m_bg_tilemap->set_transmask(0, 0xffff, 0x0000); // split type 0 is totally transparent in front half
+ m_bg_tilemap->set_transmask(1, 0x0001, 0xfffe); // split type 1 has pen 0 transparent in front half
}
uint32_t m62_state::screen_update_youjyudn(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
@@ -834,10 +834,8 @@ WRITE8_MEMBER(m62_state::horizon_scrollram_w)
TILE_GET_INFO_MEMBER(m62_state::get_horizon_bg_tile_info)
{
- int code;
- int color;
- code = m_m62_tileram[tile_index << 1];
- color = m_m62_tileram[(tile_index << 1) | 1];
+ int const code = m_m62_tileram[tile_index << 1];
+ int const color = m_m62_tileram[(tile_index << 1) | 1];
SET_TILE_INFO_MEMBER(0, code | ((color & 0xc0) << 2) | ((color & 0x20) << 5), color & 0x1f, 0);
if (((color & 0x1f) >> 1) >= 0x08)
@@ -848,18 +846,16 @@ TILE_GET_INFO_MEMBER(m62_state::get_horizon_bg_tile_info)
VIDEO_START_MEMBER(m62_state,horizon)
{
- m62_start(tilemap_get_info_delegate(FUNC(m62_state::get_horizon_bg_tile_info),this), 32, 0, 8, 8, 64, 32);
- m_bg_tilemap->set_transmask(0, 0xffff, 0x0000); /* split type 0 is totally transparent in front half */
- m_bg_tilemap->set_transmask(1, 0x0001, 0xfffe); /* split type 1 has pen 0 transparent in front half */
+ m62_start(tilemap_get_info_delegate(*this, FUNC(m62_state::get_horizon_bg_tile_info)), 32, 0, 8, 8, 64, 32);
+ m_bg_tilemap->set_transmask(0, 0xffff, 0x0000); // split type 0 is totally transparent in front half
+ m_bg_tilemap->set_transmask(1, 0x0001, 0xfffe); // split type 1 has pen 0 transparent in front half
}
uint32_t m62_state::screen_update_horizon(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- int i;
- for (i = 0; i < 32; i++)
- {
+ for (int i = 0; i < 32; i++)
m_bg_tilemap->set_scrollx(i, m_scrollram[i << 1] | (m_scrollram[(i << 1) | 1] << 8));
- }
+
m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
draw_sprites(bitmap, cliprect, 0x1f, 0x00, 0x00);
m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
diff --git a/src/mame/video/m72.cpp b/src/mame/video/m72.cpp
index 7f3415898d2..6cf2a07c0d1 100644
--- a/src/mame/video/m72.cpp
+++ b/src/mame/video/m72.cpp
@@ -95,8 +95,8 @@ void m72_state::register_savestate()
VIDEO_START_MEMBER(m72_state,m72)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(m72_state::get_bg_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,64);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(m72_state::get_fg_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,64);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(m72_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 64,64);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(m72_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 64,64);
m_fg_tilemap->set_transmask(0,0xffff,0x0001);
m_fg_tilemap->set_transmask(1,0x00ff,0xff01);
@@ -178,11 +178,11 @@ TILEMAP_MAPPER_MEMBER(m72_state::m82_scan_rows)
VIDEO_START_MEMBER(m72_state,m82)
{
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(m72_state::rtype2_get_tile_info<0>),this),TILEMAP_SCAN_ROWS,8,8,64,64);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(m72_state::rtype2_get_tile_info<1>),this),TILEMAP_SCAN_ROWS,8,8,64,64);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(m72_state::rtype2_get_tile_info<0>)), TILEMAP_SCAN_ROWS, 8,8, 64,64);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(m72_state::rtype2_get_tile_info<1>)), TILEMAP_SCAN_ROWS, 8,8, 64,64);
// The tilemap can be 256x64, but seems to be used at 128x64 (scroll wraparound).
// The layout ramains 256x64, the right half is just not displayed.
- m_bg_tilemap_large = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(m72_state::rtype2_get_tile_info<1>),this),tilemap_mapper_delegate(FUNC(m72_state::m82_scan_rows),this),8,8,128,64);
+ m_bg_tilemap_large = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(m72_state::rtype2_get_tile_info<1>)), tilemap_mapper_delegate(*this, FUNC(m72_state::m82_scan_rows)), 8,8, 128,64);
m_fg_tilemap->set_transmask(0,0xffff,0x0001);
m_fg_tilemap->set_transmask(1,0x00ff,0xff01);
@@ -216,8 +216,8 @@ VIDEO_START_MEMBER(m72_state,m82)
// M84
VIDEO_START_MEMBER(m72_state,rtype2)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(m72_state::rtype2_get_tile_info<1>),this),TILEMAP_SCAN_ROWS,8,8,64,64);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(m72_state::rtype2_get_tile_info<0>),this),TILEMAP_SCAN_ROWS,8,8,64,64);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(m72_state::rtype2_get_tile_info<1>)), TILEMAP_SCAN_ROWS, 8,8, 64,64);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(m72_state::rtype2_get_tile_info<0>)), TILEMAP_SCAN_ROWS, 8,8, 64,64);
m_fg_tilemap->set_transmask(0,0xffff,0x0001);
m_fg_tilemap->set_transmask(1,0x00ff,0xff01);
diff --git a/src/mame/video/m90.cpp b/src/mame/video/m90.cpp
index 6b581241b26..2bdeef80636 100644
--- a/src/mame/video/m90.cpp
+++ b/src/mame/video/m90.cpp
@@ -50,10 +50,10 @@ TILE_GET_INFO_MEMBER(m90_state::get_tile_info)
void m90_state::common_tilemap_init()
{
- m_pf_layer[0][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(m90_state::get_tile_info),this),TILEMAP_SCAN_ROWS,8,8, 64,64);
- m_pf_layer[0][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(m90_state::get_tile_info),this),TILEMAP_SCAN_ROWS,8,8,128,64);
- m_pf_layer[1][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(m90_state::get_tile_info),this),TILEMAP_SCAN_ROWS,8,8, 64,64);
- m_pf_layer[1][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(m90_state::get_tile_info),this),TILEMAP_SCAN_ROWS,8,8,128,64);
+ m_pf_layer[0][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(m90_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 64,64);
+ m_pf_layer[0][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(m90_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 128,64);
+ m_pf_layer[1][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(m90_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 64,64);
+ m_pf_layer[1][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(m90_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 128,64);
// fix for bootlegs
m_pf_layer[0][0]->set_user_data(&m_video_data[0x0000]);
diff --git a/src/mame/video/m92.cpp b/src/mame/video/m92.cpp
index 4b3ca83cb40..7ac04a05988 100644
--- a/src/mame/video/m92.cpp
+++ b/src/mame/video/m92.cpp
@@ -241,8 +241,8 @@ VIDEO_START_MEMBER(m92_state,m92)
M92_pf_layer_info *layer = &m_pf_layer[laynum];
/* allocate two tilemaps per layer, one normal, one wide */
- layer->tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(m92_state::get_pf_tile_info),this), TILEMAP_SCAN_ROWS, 8,8, 64,64);
- layer->wide_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(m92_state::get_pf_tile_info),this), TILEMAP_SCAN_ROWS, 8,8, 128,64);
+ layer->tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(m92_state::get_pf_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 64,64);
+ layer->wide_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(m92_state::get_pf_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 128,64);
/* set the user data for each one to point to the layer */
layer->tmap->set_user_data(&m_pf_layer[laynum]);
diff --git a/src/mame/video/macrossp.cpp b/src/mame/video/macrossp.cpp
index 6658441b966..b50a8371b3f 100644
--- a/src/mame/video/macrossp.cpp
+++ b/src/mame/video/macrossp.cpp
@@ -168,10 +168,10 @@ void macrossp_state::video_start()
m_spriteram_old = make_unique_clear<uint32_t[]>(m_spriteram.bytes() / 4);
m_spriteram_old2 = make_unique_clear<uint32_t[]>(m_spriteram.bytes() / 4);
- m_text_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(macrossp_state::get_macrossp_text_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
- m_scra_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(macrossp_state::get_macrossp_scra_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
- m_scrb_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(macrossp_state::get_macrossp_scrb_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
- m_scrc_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(macrossp_state::get_macrossp_scrc_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
+ m_text_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(macrossp_state::get_macrossp_text_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
+ m_scra_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(macrossp_state::get_macrossp_scra_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
+ m_scrb_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(macrossp_state::get_macrossp_scrb_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
+ m_scrc_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(macrossp_state::get_macrossp_scrc_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
m_text_tilemap->set_transparent_pen(0);
m_scra_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/madalien.cpp b/src/mame/video/madalien.cpp
index 380d80cba01..56496074be2 100644
--- a/src/mame/video/madalien.cpp
+++ b/src/mame/video/madalien.cpp
@@ -118,27 +118,24 @@ WRITE8_MEMBER(madalien_state::madalien_videoram_w)
void madalien_state::video_start()
{
- static const tilemap_mapper_delegate scan_functions[4] =
+ // can't make this static or it will keep stale pointers after a hard reset
+ const tilemap_mapper_delegate scan_functions[4] =
{
- tilemap_mapper_delegate(FUNC(madalien_state::scan_mode0),this),
- tilemap_mapper_delegate(FUNC(madalien_state::scan_mode1),this),
- tilemap_mapper_delegate(FUNC(madalien_state::scan_mode2),this),
- tilemap_mapper_delegate(FUNC(madalien_state::scan_mode3),this)
+ tilemap_mapper_delegate(*this, FUNC(madalien_state::scan_mode0)),
+ tilemap_mapper_delegate(*this, FUNC(madalien_state::scan_mode1)),
+ tilemap_mapper_delegate(*this, FUNC(madalien_state::scan_mode2)),
+ tilemap_mapper_delegate(*this, FUNC(madalien_state::scan_mode3))
};
- static const int tilemap_cols[4] =
- {
- 16, 16, 32, 32
- };
+ static constexpr int tilemap_cols[4] = { 16, 16, 32, 32 };
- m_tilemap_fg = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(madalien_state::get_tile_info_FG),this), TILEMAP_SCAN_COLS_FLIP_X, 8, 8, 32, 32);
+ m_tilemap_fg = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(madalien_state::get_tile_info_FG)), TILEMAP_SCAN_COLS_FLIP_X, 8, 8, 32, 32);
m_tilemap_fg->set_transparent_pen(0);
for (int i = 0; i < 4; i++)
{
- m_tilemap_edge1[i] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(madalien_state::get_tile_info_BG_1),this), scan_functions[i], 16, 16, tilemap_cols[i], 8);
-
- m_tilemap_edge2[i] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(madalien_state::get_tile_info_BG_2),this), scan_functions[i], 16, 16, tilemap_cols[i], 8);
+ m_tilemap_edge1[i] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(madalien_state::get_tile_info_BG_1)), scan_functions[i], 16, 16, tilemap_cols[i], 8);
+ m_tilemap_edge2[i] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(madalien_state::get_tile_info_BG_2)), scan_functions[i], 16, 16, tilemap_cols[i], 8);
}
m_headlight_bitmap = std::make_unique<bitmap_ind16>(128, 128);
diff --git a/src/mame/video/mainsnk.cpp b/src/mame/video/mainsnk.cpp
index 3d7e4344013..1be055435e2 100644
--- a/src/mame/video/mainsnk.cpp
+++ b/src/mame/video/mainsnk.cpp
@@ -69,8 +69,8 @@ TILE_GET_INFO_MEMBER(mainsnk_state::get_bg_tile_info)
void mainsnk_state::video_start()
{
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mainsnk_state::get_tx_tile_info),this), tilemap_mapper_delegate(FUNC(mainsnk_state::marvins_tx_scan_cols),this), 8, 8, 36, 28);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mainsnk_state::get_bg_tile_info),this), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mainsnk_state::get_tx_tile_info)), tilemap_mapper_delegate(*this, FUNC(mainsnk_state::marvins_tx_scan_cols)), 8, 8, 36, 28);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mainsnk_state::get_bg_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
m_tx_tilemap->set_transparent_pen(15);
m_tx_tilemap->set_scrolldy(8, 8);
diff --git a/src/mame/video/mappy.cpp b/src/mame/video/mappy.cpp
index ccb2a54715c..5a4b7a66d13 100644
--- a/src/mame/video/mappy.cpp
+++ b/src/mame/video/mappy.cpp
@@ -304,7 +304,7 @@ TILE_GET_INFO_MEMBER(mappy_state::mappy_get_tile_info)
VIDEO_START_MEMBER(mappy_state,superpac)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mappy_state::superpac_get_tile_info),this),tilemap_mapper_delegate(FUNC(mappy_state::superpac_tilemap_scan),this),8,8,36,28);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mappy_state::superpac_get_tile_info)), tilemap_mapper_delegate(*this, FUNC(mappy_state::superpac_tilemap_scan)), 8, 8, 36, 28);
m_screen->register_screen_bitmap(m_sprite_bitmap);
m_bg_tilemap->configure_groups(*m_gfxdecode->gfx(0), 31);
@@ -312,14 +312,14 @@ VIDEO_START_MEMBER(mappy_state,superpac)
VIDEO_START_MEMBER(mappy_state,phozon)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mappy_state::phozon_get_tile_info),this),tilemap_mapper_delegate(FUNC(mappy_state::superpac_tilemap_scan),this),8,8,36,28);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mappy_state::phozon_get_tile_info)), tilemap_mapper_delegate(*this, FUNC(mappy_state::superpac_tilemap_scan)), 8, 8, 36, 28);
m_bg_tilemap->configure_groups(*m_gfxdecode->gfx(0), 15);
}
VIDEO_START_MEMBER(mappy_state,mappy)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mappy_state::mappy_get_tile_info),this),tilemap_mapper_delegate(FUNC(mappy_state::mappy_tilemap_scan),this),8,8,36,60);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mappy_state::mappy_get_tile_info)), tilemap_mapper_delegate(*this, FUNC(mappy_state::mappy_tilemap_scan)), 8, 8, 36, 60);
m_bg_tilemap->configure_groups(*m_gfxdecode->gfx(0), 31);
m_bg_tilemap->set_scroll_cols(36);
diff --git a/src/mame/video/marineb.cpp b/src/mame/video/marineb.cpp
index 11fd9de48fb..03995835aa0 100644
--- a/src/mame/video/marineb.cpp
+++ b/src/mame/video/marineb.cpp
@@ -67,7 +67,7 @@ TILE_GET_INFO_MEMBER(marineb_state::get_tile_info)
void marineb_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(marineb_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(marineb_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_bg_tilemap->set_scroll_cols(32);
save_item(NAME(m_palette_bank));
diff --git a/src/mame/video/mario.cpp b/src/mame/video/mario.cpp
index 9619a59bc3e..162d3de1ea4 100644
--- a/src/mame/video/mario.cpp
+++ b/src/mame/video/mario.cpp
@@ -121,7 +121,7 @@ TILE_GET_INFO_MEMBER(mario_state::get_bg_tile_info)
void mario_state::video_start()
{
m_bg_tilemap = &machine().tilemap().create(
- *m_gfxdecode, tilemap_get_info_delegate(FUNC(mario_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS,
+ *m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mario_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS,
8, 8, 32, 32);
m_gfxdecode->gfx(0)->set_granularity(8);
diff --git a/src/mame/video/markham.cpp b/src/mame/video/markham.cpp
index 834faf958a5..38415d8dce0 100644
--- a/src/mame/video/markham.cpp
+++ b/src/mame/video/markham.cpp
@@ -54,7 +54,7 @@ TILE_GET_INFO_MEMBER(markham_state::get_bg_tile_info)
void markham_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(markham_state::get_bg_tile_info),this), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(markham_state::get_bg_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
m_bg_tilemap->set_scroll_rows(32);
}
diff --git a/src/mame/video/mb60553.cpp b/src/mame/video/mb60553.cpp
index 894c7e91710..587c1612a47 100644
--- a/src/mame/video/mb60553.cpp
+++ b/src/mame/video/mb60553.cpp
@@ -48,7 +48,7 @@ void mb60553_zooming_tilemap_device::device_start()
save_item(NAME(m_bank));
save_item(NAME(m_regs));
- m_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mb60553_zooming_tilemap_device::get_tile_info),this),tilemap_mapper_delegate(FUNC(mb60553_zooming_tilemap_device::twc94_scan),this), 16,16,128,64);
+ m_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mb60553_zooming_tilemap_device::get_tile_info)), tilemap_mapper_delegate(*this, FUNC(mb60553_zooming_tilemap_device::twc94_scan)), 16,16,128,64);
m_tmap->set_transparent_pen(0);
}
diff --git a/src/mame/video/mcd212.cpp b/src/mame/video/mcd212.cpp
index 45ac18184bb..a6c394a40cb 100644
--- a/src/mame/video/mcd212.cpp
+++ b/src/mame/video/mcd212.cpp
@@ -1417,6 +1417,7 @@ mcd212_device::mcd212_device(const machine_config &mconfig, const char *tag, dev
: device_t(mconfig, MCD212, tag, owner, clock)
, device_video_interface(mconfig, *this)
, m_int_callback(*this)
+ , m_scanline_callback(*this)
, m_planea(*this, "planea")
, m_planeb(*this, "planeb")
{
@@ -1431,7 +1432,7 @@ mcd212_device::mcd212_device(const machine_config &mconfig, const char *tag, dev
void mcd212_device::device_resolve_objects()
{
m_int_callback.resolve_safe();
- m_scanline_callback.bind_relative_to(*owner());
+ m_scanline_callback.resolve();
}
//-------------------------------------------------
diff --git a/src/mame/video/mcd212.h b/src/mame/video/mcd212.h
index cae78f3159d..bc5ed25a163 100644
--- a/src/mame/video/mcd212.h
+++ b/src/mame/video/mcd212.h
@@ -126,16 +126,7 @@ public:
auto int_callback() { return m_int_callback.bind(); }
- template <typename Object> void set_scanline_callback(Object &&cb) { m_scanline_callback = std::forward<Object>(cb); }
- void set_scanline_callback(scanline_callback_delegate callback) { m_scanline_callback = callback; }
- template <class FunctionClass> void set_scanline_callback(const char *devname, void (FunctionClass::*callback)(int), const char *name)
- {
- set_scanline_callback(scanline_callback_delegate(callback, name, devname, static_cast<FunctionClass *>(nullptr)));
- }
- template <class FunctionClass> void set_scanline_callback(void (FunctionClass::*callback)(int), const char *name)
- {
- set_scanline_callback(scanline_callback_delegate(callback, name, nullptr, static_cast<FunctionClass *>(nullptr)));
- }
+ template <typename... T> void set_scanline_callback(T &&... args) { m_scanline_callback.set(std::forward<T>(args)...); }
// device members
DECLARE_READ16_MEMBER( regs_r );
diff --git a/src/mame/video/mcr.cpp b/src/mame/video/mcr.cpp
index 87c72395cd3..1a0d21a1475 100644
--- a/src/mame/video/mcr.cpp
+++ b/src/mame/video/mcr.cpp
@@ -94,25 +94,25 @@ void mcr_state::video_start()
/* the tilemap callback is based on the CPU board */
switch (m_mcr_cpu_board)
{
- case 90009:
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mcr_state::mcr_90009_get_tile_info),this), TILEMAP_SCAN_ROWS, 16,16, 32,30);
- break;
+ case 90009:
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mcr_state::mcr_90009_get_tile_info)), TILEMAP_SCAN_ROWS, 16,16, 32,30);
+ break;
- case 90010:
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mcr_state::mcr_90010_get_tile_info),this), TILEMAP_SCAN_ROWS, 16,16, 32,30);
- break;
+ case 90010:
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mcr_state::mcr_90010_get_tile_info)), TILEMAP_SCAN_ROWS, 16,16, 32,30);
+ break;
- case 91475:
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mcr_state::mcr_90010_get_tile_info),this), TILEMAP_SCAN_ROWS, 16,16, 32,30);
- break;
+ case 91475:
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mcr_state::mcr_90010_get_tile_info)), TILEMAP_SCAN_ROWS, 16,16, 32,30);
+ break;
- case 91490:
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mcr_state::mcr_91490_get_tile_info),this), TILEMAP_SCAN_ROWS, 16,16, 32,30);
- break;
+ case 91490:
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mcr_state::mcr_91490_get_tile_info)), TILEMAP_SCAN_ROWS, 16,16, 32,30);
+ break;
- default:
- throw emu_fatalerror("mcr_state::video_start: Unknown mcr board");
- break;
+ default:
+ throw emu_fatalerror("mcr_state::video_start: Unknown mcr board");
+ break;
}
}
@@ -392,20 +392,20 @@ uint32_t mcr_state::screen_update_mcr(screen_device &screen, bitmap_ind16 &bitma
/* update the sprites and render them */
switch (m_mcr_sprite_board)
{
- case 91399:
- render_sprites_91399(screen, bitmap, cliprect);
- break;
-
- case 91464:
- if (m_mcr_cpu_board == 91442)
- render_sprites_91464(screen, bitmap, cliprect, 0x00, 0x30, 0x00);
- else if (m_mcr_cpu_board == 91475)
- render_sprites_91464(screen, bitmap, cliprect, 0x00, 0x30, 0x40);
- else if (m_mcr_cpu_board == 91490)
- render_sprites_91464(screen, bitmap, cliprect, 0x00, 0x30, 0x00);
- else if (m_mcr_cpu_board == 91721)
- render_sprites_91464(screen, bitmap, cliprect, 0x00, 0x30, 0x00);
- break;
+ case 91399:
+ render_sprites_91399(screen, bitmap, cliprect);
+ break;
+
+ case 91464:
+ if (m_mcr_cpu_board == 91442)
+ render_sprites_91464(screen, bitmap, cliprect, 0x00, 0x30, 0x00);
+ else if (m_mcr_cpu_board == 91475)
+ render_sprites_91464(screen, bitmap, cliprect, 0x00, 0x30, 0x40);
+ else if (m_mcr_cpu_board == 91490)
+ render_sprites_91464(screen, bitmap, cliprect, 0x00, 0x30, 0x00);
+ else if (m_mcr_cpu_board == 91721)
+ render_sprites_91464(screen, bitmap, cliprect, 0x00, 0x30, 0x00);
+ break;
}
return 0;
}
diff --git a/src/mame/video/mcr3.cpp b/src/mame/video/mcr3.cpp
index 261d5f66456..1d91b11f580 100644
--- a/src/mame/video/mcr3.cpp
+++ b/src/mame/video/mcr3.cpp
@@ -89,17 +89,17 @@ void mcr3_state::spyhunt_palette(palette_device &palette) const
void mcr3_state::video_start()
{
// initialize the background tilemap
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mcr3_state::mcrmono_get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16,16, 32,30);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mcr3_state::mcrmono_get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16,16, 32,30);
}
VIDEO_START_MEMBER(mcr3_state,spyhunt)
{
// initialize the background tilemap
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mcr3_state::spyhunt_get_bg_tile_info),this), tilemap_mapper_delegate(FUNC(mcr3_state::spyhunt_bg_scan),this), 64,32, 64,32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mcr3_state::spyhunt_get_bg_tile_info)), tilemap_mapper_delegate(*this, FUNC(mcr3_state::spyhunt_bg_scan)), 64,32, 64,32);
// initialize the text tilemap
- m_alpha_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mcr3_state::spyhunt_get_alpha_tile_info),this), TILEMAP_SCAN_COLS, 16,16, 32,32);
+ m_alpha_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mcr3_state::spyhunt_get_alpha_tile_info)), TILEMAP_SCAN_COLS, 16,16, 32,32);
m_alpha_tilemap->set_transparent_pen(0);
m_alpha_tilemap->set_scrollx(0, 16);
diff --git a/src/mame/video/mcr68.cpp b/src/mame/video/mcr68.cpp
index 10479d10075..faba58dc3fc 100644
--- a/src/mame/video/mcr68.cpp
+++ b/src/mame/video/mcr68.cpp
@@ -41,7 +41,7 @@ TILE_GET_INFO_MEMBER(mcr68_state::get_bg_tile_info)
VIDEO_START_MEMBER(mcr68_state,mcr68)
{
/* initialize the background tilemap */
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mcr68_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16,16, 32,32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mcr68_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16,16, 32,32);
m_bg_tilemap->set_transparent_pen(0);
}
diff --git a/src/mame/video/meadows.cpp b/src/mame/video/meadows.cpp
index ba5065fe665..9a106a01438 100644
--- a/src/mame/video/meadows.cpp
+++ b/src/mame/video/meadows.cpp
@@ -36,7 +36,7 @@ TILE_GET_INFO_MEMBER(meadows_state::get_tile_info)
void meadows_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(meadows_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8,8, 32,30);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(meadows_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 32,30);
}
diff --git a/src/mame/video/mermaid.cpp b/src/mame/video/mermaid.cpp
index 7b492537a6f..3e3b592d04b 100644
--- a/src/mame/video/mermaid.cpp
+++ b/src/mame/video/mermaid.cpp
@@ -156,10 +156,10 @@ TILE_GET_INFO_MEMBER(mermaid_state::get_fg_tile_info)
void mermaid_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mermaid_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mermaid_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_bg_tilemap->set_scroll_cols(32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mermaid_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mermaid_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fg_tilemap->set_scroll_cols(32);
m_fg_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/metlclsh.cpp b/src/mame/video/metlclsh.cpp
index 462452c4f8d..018a1e71c63 100644
--- a/src/mame/video/metlclsh.cpp
+++ b/src/mame/video/metlclsh.cpp
@@ -135,8 +135,8 @@ void metlclsh_state::video_start()
{
m_otherram = std::make_unique<uint8_t[]>(0x800); // banked ram
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(metlclsh_state::get_bg_tile_info),this), tilemap_mapper_delegate(FUNC(metlclsh_state::metlclsh_bgtilemap_scan),this), 16, 16, 32, 16);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(metlclsh_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(metlclsh_state::get_bg_tile_info)), tilemap_mapper_delegate(*this, FUNC(metlclsh_state::metlclsh_bgtilemap_scan)), 16, 16, 32, 16);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(metlclsh_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_bg_tilemap->set_transparent_pen(0);
m_fg_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/metro.cpp b/src/mame/video/metro.cpp
index d1851f99d3d..b27d5e2fb8b 100644
--- a/src/mame/video/metro.cpp
+++ b/src/mame/video/metro.cpp
@@ -44,12 +44,12 @@ TILEMAP_MAPPER_MEMBER(metro_state::tilemap_scan_gstrik2)
VIDEO_START_MEMBER(metro_state,blzntrnd)
{
- m_k053936_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(metro_state::k053936_get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 256, 512);
+ m_k053936_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(metro_state::k053936_get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 256, 512);
}
VIDEO_START_MEMBER(metro_state,gstrik2)
{
- m_k053936_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(metro_state::k053936_gstrik2_get_tile_info),this), tilemap_mapper_delegate(FUNC(metro_state::tilemap_scan_gstrik2),this), 16, 16, 128, 256);
+ m_k053936_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(metro_state::k053936_gstrik2_get_tile_info)), tilemap_mapper_delegate(*this, FUNC(metro_state::tilemap_scan_gstrik2)), 16, 16, 128, 256);
}
uint32_t metro_state::screen_update_psac_vdp2_mix(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
diff --git a/src/mame/video/microtan.cpp b/src/mame/video/microtan.cpp
index 3a43600b312..39087f4873a 100644
--- a/src/mame/video/microtan.cpp
+++ b/src/mame/video/microtan.cpp
@@ -44,7 +44,7 @@ void microtan_state::video_start()
m_bg_tilemap = &machine().tilemap().create(*
m_gfxdecode,
- tilemap_get_info_delegate(FUNC(microtan_state::get_bg_tile_info),this),
+ tilemap_get_info_delegate(*this, FUNC(microtan_state::get_bg_tile_info)),
TILEMAP_SCAN_ROWS, 8, 16, 32, 16);
m_chunky_buffer = std::make_unique<uint8_t[]>(0x200);
diff --git a/src/mame/video/mikie.cpp b/src/mame/video/mikie.cpp
index 434bbbf82e9..5e1c739dfa3 100644
--- a/src/mame/video/mikie.cpp
+++ b/src/mame/video/mikie.cpp
@@ -127,7 +127,7 @@ TILE_GET_INFO_MEMBER(mikie_state::get_bg_tile_info)
void mikie_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mikie_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mikie_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
void mikie_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect)
diff --git a/src/mame/video/mikromik.cpp b/src/mame/video/mikromik.cpp
index f66a3af4e21..90c779d5179 100644
--- a/src/mame/video/mikromik.cpp
+++ b/src/mame/video/mikromik.cpp
@@ -143,7 +143,7 @@ void mm1_state::mm1m6_video(machine_config &config)
I8275(config, m_crtc, XTAL(18'720'000)/8);
m_crtc->set_character_width(HORIZONTAL_CHARACTER_PIXELS);
- m_crtc->set_display_callback(FUNC(mm1_state::crtc_display_pixels), this);
+ m_crtc->set_display_callback(FUNC(mm1_state::crtc_display_pixels));
m_crtc->drq_wr_callback().set(m_dmac, FUNC(am9517a_device::dreq0_w));
m_crtc->vrtc_wr_callback().set(m_hgdc, FUNC(upd7220_device::ext_sync_w));
m_crtc->set_screen("screen");
diff --git a/src/mame/video/mitchell.cpp b/src/mame/video/mitchell.cpp
index 92c95ecc91f..473abc30d91 100644
--- a/src/mame/video/mitchell.cpp
+++ b/src/mame/video/mitchell.cpp
@@ -36,7 +36,7 @@ TILE_GET_INFO_MEMBER(mitchell_state::get_tile_info)
VIDEO_START_MEMBER(mitchell_state,pang)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mitchell_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mitchell_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_bg_tilemap->set_transparent_pen(15);
/* OBJ RAM */
diff --git a/src/mame/video/mjkjidai.cpp b/src/mame/video/mjkjidai.cpp
index 0f66797bb87..3ba6d090ed6 100644
--- a/src/mame/video/mjkjidai.cpp
+++ b/src/mame/video/mjkjidai.cpp
@@ -28,7 +28,7 @@ TILE_GET_INFO_MEMBER(mjkjidai_state::get_tile_info)
void mjkjidai_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mjkjidai_state::get_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mjkjidai_state::get_tile_info)),TILEMAP_SCAN_ROWS,8,8,64,32);
}
diff --git a/src/mame/video/model3.cpp b/src/mame/video/model3.cpp
index 99e0f378512..77012df954a 100644
--- a/src/mame/video/model3.cpp
+++ b/src/mame/video/model3.cpp
@@ -197,14 +197,14 @@ void model3_state::video_start()
m_vid_reg0 = 0;
- m_layer4[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(model3_state::tile_info_layer0_4bit), this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_layer8[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(model3_state::tile_info_layer0_8bit), this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_layer4[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(model3_state::tile_info_layer1_4bit), this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_layer8[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(model3_state::tile_info_layer1_8bit), this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_layer4[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(model3_state::tile_info_layer2_4bit), this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_layer8[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(model3_state::tile_info_layer2_8bit), this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_layer4[3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(model3_state::tile_info_layer3_4bit), this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_layer8[3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(model3_state::tile_info_layer3_8bit), this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_layer4[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(model3_state::tile_info_layer0_4bit)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_layer8[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(model3_state::tile_info_layer0_8bit)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_layer4[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(model3_state::tile_info_layer1_4bit)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_layer8[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(model3_state::tile_info_layer1_8bit)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_layer4[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(model3_state::tile_info_layer2_4bit)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_layer8[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(model3_state::tile_info_layer2_8bit)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_layer4[3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(model3_state::tile_info_layer3_4bit)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_layer8[3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(model3_state::tile_info_layer3_8bit)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
// 4-bit tiles
m_gfxdecode->set_gfx(0, std::make_unique<gfx_element>(m_palette, char4_layout, (uint8_t*)m_m3_char_ram.get(), 0, m_palette->entries() / 16, 0));
diff --git a/src/mame/video/mosaic.cpp b/src/mame/video/mosaic.cpp
index de94afa235a..d3529f317b9 100644
--- a/src/mame/video/mosaic.cpp
+++ b/src/mame/video/mosaic.cpp
@@ -45,8 +45,8 @@ TILE_GET_INFO_MEMBER(mosaic_state::get_bg_tile_info)
void mosaic_state::video_start()
{
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mosaic_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mosaic_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mosaic_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mosaic_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_fg_tilemap->set_transparent_pen(0xff);
}
diff --git a/src/mame/video/mrdo.cpp b/src/mame/video/mrdo.cpp
index 4917ff2d6a3..dae9fe3f180 100644
--- a/src/mame/video/mrdo.cpp
+++ b/src/mame/video/mrdo.cpp
@@ -160,8 +160,8 @@ TILE_GET_INFO_MEMBER(mrdo_state::get_fg_tile_info)
void mrdo_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mrdo_state::get_bg_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mrdo_state::get_fg_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mrdo_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 32,32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mrdo_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 32,32);
m_bg_tilemap->set_transparent_pen(0);
m_fg_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/mrjong.cpp b/src/mame/video/mrjong.cpp
index 800758a9218..eb0a5875a36 100644
--- a/src/mame/video/mrjong.cpp
+++ b/src/mame/video/mrjong.cpp
@@ -98,7 +98,7 @@ TILE_GET_INFO_MEMBER(mrjong_state::get_bg_tile_info)
void mrjong_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mrjong_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS_FLIP_XY, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mrjong_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS_FLIP_XY, 8, 8, 32, 32);
}
/*
diff --git a/src/mame/video/ms1_tmap.cpp b/src/mame/video/ms1_tmap.cpp
index dd3b0cac990..e1b84e30536 100644
--- a/src/mame/video/ms1_tmap.cpp
+++ b/src/mame/video/ms1_tmap.cpp
@@ -91,31 +91,31 @@ void megasys1_tilemap_device::device_start()
// create 16x16 tilemaps
m_tilemap[0][0] = &machine().tilemap().create(
- *this, tilemap_get_info_delegate(FUNC(megasys1_tilemap_device::get_scroll_tile_info_16x16),this), tilemap_mapper_delegate(FUNC(megasys1_tilemap_device::scan_16x16),this),
- 8,8, TILES_PER_PAGE_X * 16, TILES_PER_PAGE_Y * 2);
+ *this, tilemap_get_info_delegate(*this, FUNC(megasys1_tilemap_device::get_scroll_tile_info_16x16)), tilemap_mapper_delegate(*this, FUNC(megasys1_tilemap_device::scan_16x16)),
+ 8, 8, TILES_PER_PAGE_X * 16, TILES_PER_PAGE_Y * 2);
m_tilemap[0][1] = &machine().tilemap().create(
- *this, tilemap_get_info_delegate(FUNC(megasys1_tilemap_device::get_scroll_tile_info_16x16),this), tilemap_mapper_delegate(FUNC(megasys1_tilemap_device::scan_16x16),this),
- 8,8, TILES_PER_PAGE_X * 8, TILES_PER_PAGE_Y * 4);
+ *this, tilemap_get_info_delegate(*this, FUNC(megasys1_tilemap_device::get_scroll_tile_info_16x16)), tilemap_mapper_delegate(*this, FUNC(megasys1_tilemap_device::scan_16x16)),
+ 8, 8, TILES_PER_PAGE_X * 8, TILES_PER_PAGE_Y * 4);
m_tilemap[0][2] = &machine().tilemap().create(
- *this, tilemap_get_info_delegate(FUNC(megasys1_tilemap_device::get_scroll_tile_info_16x16),this), tilemap_mapper_delegate(FUNC(megasys1_tilemap_device::scan_16x16),this),
- 8,8, TILES_PER_PAGE_X * 4, TILES_PER_PAGE_Y * 8);
+ *this, tilemap_get_info_delegate(*this, FUNC(megasys1_tilemap_device::get_scroll_tile_info_16x16)), tilemap_mapper_delegate(*this, FUNC(megasys1_tilemap_device::scan_16x16)),
+ 8, 8, TILES_PER_PAGE_X * 4, TILES_PER_PAGE_Y * 8);
m_tilemap[0][3] = &machine().tilemap().create(
- *this, tilemap_get_info_delegate(FUNC(megasys1_tilemap_device::get_scroll_tile_info_16x16),this), tilemap_mapper_delegate(FUNC(megasys1_tilemap_device::scan_16x16),this),
- 8,8, TILES_PER_PAGE_X * 2, TILES_PER_PAGE_Y * 16);
+ *this, tilemap_get_info_delegate(*this, FUNC(megasys1_tilemap_device::get_scroll_tile_info_16x16)), tilemap_mapper_delegate(*this, FUNC(megasys1_tilemap_device::scan_16x16)),
+ 8, 8, TILES_PER_PAGE_X * 2, TILES_PER_PAGE_Y * 16);
// create 8x8 tilemaps
m_tilemap[1][0] = &machine().tilemap().create(
- *this, tilemap_get_info_delegate(FUNC(megasys1_tilemap_device::get_scroll_tile_info_8x8),this), tilemap_mapper_delegate(FUNC(megasys1_tilemap_device::scan_8x8),this),
- 8,8, TILES_PER_PAGE_X * 8, TILES_PER_PAGE_Y * 1);
+ *this, tilemap_get_info_delegate(*this, FUNC(megasys1_tilemap_device::get_scroll_tile_info_8x8)), tilemap_mapper_delegate(*this, FUNC(megasys1_tilemap_device::scan_8x8)),
+ 8, 8, TILES_PER_PAGE_X * 8, TILES_PER_PAGE_Y * 1);
m_tilemap[1][1] = &machine().tilemap().create(
- *this, tilemap_get_info_delegate(FUNC(megasys1_tilemap_device::get_scroll_tile_info_8x8),this), tilemap_mapper_delegate(FUNC(megasys1_tilemap_device::scan_8x8),this),
- 8,8, TILES_PER_PAGE_X * 4, TILES_PER_PAGE_Y * 2);
+ *this, tilemap_get_info_delegate(*this, FUNC(megasys1_tilemap_device::get_scroll_tile_info_8x8)), tilemap_mapper_delegate(*this, FUNC(megasys1_tilemap_device::scan_8x8)),
+ 8, 8, TILES_PER_PAGE_X * 4, TILES_PER_PAGE_Y * 2);
m_tilemap[1][2] = &machine().tilemap().create(
- *this, tilemap_get_info_delegate(FUNC(megasys1_tilemap_device::get_scroll_tile_info_8x8),this), tilemap_mapper_delegate(FUNC(megasys1_tilemap_device::scan_8x8),this),
- 8,8, TILES_PER_PAGE_X * 4, TILES_PER_PAGE_Y * 2);
+ *this, tilemap_get_info_delegate(*this, FUNC(megasys1_tilemap_device::get_scroll_tile_info_8x8)), tilemap_mapper_delegate(*this, FUNC(megasys1_tilemap_device::scan_8x8)),
+ 8, 8, TILES_PER_PAGE_X * 4, TILES_PER_PAGE_Y * 2);
m_tilemap[1][3] = &machine().tilemap().create(
- *this, tilemap_get_info_delegate(FUNC(megasys1_tilemap_device::get_scroll_tile_info_8x8),this), tilemap_mapper_delegate(FUNC(megasys1_tilemap_device::scan_8x8),this),
- 8,8, TILES_PER_PAGE_X * 2, TILES_PER_PAGE_Y * 4);
+ *this, tilemap_get_info_delegate(*this, FUNC(megasys1_tilemap_device::get_scroll_tile_info_8x8)), tilemap_mapper_delegate(*this, FUNC(megasys1_tilemap_device::scan_8x8)),
+ 8, 8, TILES_PER_PAGE_X * 2, TILES_PER_PAGE_Y * 4);
// set transparency
for (int i = 0; i < 8; i++)
diff --git a/src/mame/video/ms32.cpp b/src/mame/video/ms32.cpp
index 5eef22b2f9c..f14612374bf 100644
--- a/src/mame/video/ms32.cpp
+++ b/src/mame/video/ms32.cpp
@@ -66,10 +66,10 @@ TILE_GET_INFO_MEMBER(ms32_state::get_ms32_extra_tile_info)
void ms32_state::video_start()
{
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ms32_state::get_ms32_tx_tile_info),this),TILEMAP_SCAN_ROWS,8, 8,64,64);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ms32_state::get_ms32_bg_tile_info),this),TILEMAP_SCAN_ROWS,16,16,64,64);
- m_bg_tilemap_alt = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ms32_state::get_ms32_bg_tile_info),this),TILEMAP_SCAN_ROWS,16,16,256,16); // alt layout, controller by register?
- m_roz_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ms32_state::get_ms32_roz_tile_info),this),TILEMAP_SCAN_ROWS,16,16,128,128);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ms32_state::get_ms32_tx_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ms32_state::get_ms32_bg_tile_info)), TILEMAP_SCAN_ROWS, 16,16, 64, 64);
+ m_bg_tilemap_alt = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ms32_state::get_ms32_bg_tile_info)), TILEMAP_SCAN_ROWS, 16,16, 256, 16); // alt layout, controller by register?
+ m_roz_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ms32_state::get_ms32_roz_tile_info)), TILEMAP_SCAN_ROWS, 16,16, 128,128);
/* set up tile layers */
@@ -117,7 +117,7 @@ VIDEO_START_MEMBER(ms32_state,f1superb)
{
ms32_state::video_start();
- m_extra_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ms32_state::get_ms32_extra_tile_info),this),TILEMAP_SCAN_ROWS,2048,1,1,0x400);
+ m_extra_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ms32_state::get_ms32_extra_tile_info)), TILEMAP_SCAN_ROWS, 2048, 1, 1, 0x400);
}
/********** PALETTE WRITES **********/
diff --git a/src/mame/video/msisaac.cpp b/src/mame/video/msisaac.cpp
index fea78aae6d3..da1624a0985 100644
--- a/src/mame/video/msisaac.cpp
+++ b/src/mame/video/msisaac.cpp
@@ -53,9 +53,9 @@ TILE_GET_INFO_MEMBER(msisaac_state::get_bg2_tile_info)
void msisaac_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(msisaac_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_bg2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(msisaac_state::get_bg2_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(msisaac_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(msisaac_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(msisaac_state::get_bg2_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(msisaac_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_bg2_tilemap->set_transparent_pen(0);
m_fg_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/mugsmash.cpp b/src/mame/video/mugsmash.cpp
index cc2ca8db572..a5adb059819 100644
--- a/src/mame/video/mugsmash.cpp
+++ b/src/mame/video/mugsmash.cpp
@@ -133,10 +133,10 @@ WRITE16_MEMBER(mugsmash_state::mugsmash_reg_w)
void mugsmash_state::video_start()
{
- m_tilemap1 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mugsmash_state::get_mugsmash_tile_info1),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_tilemap1 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mugsmash_state::get_mugsmash_tile_info1)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
m_tilemap1->set_transparent_pen(0);
- m_tilemap2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mugsmash_state::get_mugsmash_tile_info2),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_tilemap2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mugsmash_state::get_mugsmash_tile_info2)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
}
uint32_t mugsmash_state::screen_update_mugsmash(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
diff --git a/src/mame/video/mustache.cpp b/src/mame/video/mustache.cpp
index 9a8f03217b7..317abfcff71 100644
--- a/src/mame/video/mustache.cpp
+++ b/src/mame/video/mustache.cpp
@@ -54,7 +54,7 @@ TILE_GET_INFO_MEMBER(mustache_state::get_bg_tile_info)
void mustache_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mustache_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS_FLIP_X,
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mustache_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS_FLIP_X,
8, 8, 64, 32);
m_bg_tilemap->set_scroll_rows(4);
diff --git a/src/mame/video/mystston.cpp b/src/mame/video/mystston.cpp
index bcf5961e61f..ff1c37aaa1b 100644
--- a/src/mame/video/mystston.cpp
+++ b/src/mame/video/mystston.cpp
@@ -215,9 +215,9 @@ void mystston_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprec
void mystston_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mystston_state::get_bg_tile_info),this), TILEMAP_SCAN_COLS_FLIP_X, 16, 16, 16, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mystston_state::get_bg_tile_info)), TILEMAP_SCAN_COLS_FLIP_X, 16, 16, 16, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mystston_state::get_fg_tile_info),this), TILEMAP_SCAN_COLS_FLIP_X, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mystston_state::get_fg_tile_info)), TILEMAP_SCAN_COLS_FLIP_X, 8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(0);
/* create the interrupt timer */
diff --git a/src/mame/video/mystwarr.cpp b/src/mame/video/mystwarr.cpp
index 9f70374a163..ab0787c7320 100644
--- a/src/mame/video/mystwarr.cpp
+++ b/src/mame/video/mystwarr.cpp
@@ -164,7 +164,7 @@ VIDEO_START_MEMBER(mystwarr_state, gaiapols)
K053936_wraparound_enable(0, 1);
K053936GP_set_offset(0, -10, 0); // floor tiles in demo loop2 (Elaine vs. boss)
- m_ult_936_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mystwarr_state::get_gai_936_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 512, 512);
+ m_ult_936_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mystwarr_state::get_gai_936_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 512, 512);
m_ult_936_tilemap->set_transparent_pen(0);
}
@@ -199,7 +199,7 @@ VIDEO_START_MEMBER(mystwarr_state, dadandrn)
K053936_wraparound_enable(0, 1);
K053936GP_set_offset(0, -8, 0); // Brainy's laser
- m_ult_936_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mystwarr_state::get_ult_936_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 512, 512);
+ m_ult_936_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mystwarr_state::get_ult_936_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 512, 512);
m_ult_936_tilemap->set_transparent_pen(0);
}
diff --git a/src/mame/video/namco_c123tmap.cpp b/src/mame/video/namco_c123tmap.cpp
index a5e25b2c19e..655df74b8a3 100644
--- a/src/mame/video/namco_c123tmap.cpp
+++ b/src/mame/video/namco_c123tmap.cpp
@@ -47,24 +47,24 @@ void namco_c123tmap_device::device_start()
m_tilemapinfo.videoram = std::make_unique<uint16_t[]>(size);
/* four scrolling tilemaps */
- m_tilemapinfo.tmap[0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(namco_c123tmap_device::get_tile_info<0x0000>), this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_tilemapinfo.tmap[1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(namco_c123tmap_device::get_tile_info<0x1000>), this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_tilemapinfo.tmap[2] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(namco_c123tmap_device::get_tile_info<0x2000>), this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemapinfo.tmap[0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(namco_c123tmap_device::get_tile_info<0x0000>)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemapinfo.tmap[1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(namco_c123tmap_device::get_tile_info<0x1000>)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemapinfo.tmap[2] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(namco_c123tmap_device::get_tile_info<0x2000>)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
if (m_tmap3_half_height)
{
- m_tilemapinfo.tmap[3] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(namco_c123tmap_device::get_tile_info<0x3000>), this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tilemapinfo.tmap[3] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(namco_c123tmap_device::get_tile_info<0x3000>)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
/* two non-scrolling tilemaps */
- m_tilemapinfo.tmap[4] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(namco_c123tmap_device::get_tile_info<0x3808>), this), TILEMAP_SCAN_ROWS, 8, 8, 36, 28);
- m_tilemapinfo.tmap[5] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(namco_c123tmap_device::get_tile_info<0x3c08>), this), TILEMAP_SCAN_ROWS, 8, 8, 36, 28);
+ m_tilemapinfo.tmap[4] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(namco_c123tmap_device::get_tile_info<0x3808>)), TILEMAP_SCAN_ROWS, 8, 8, 36, 28);
+ m_tilemapinfo.tmap[5] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(namco_c123tmap_device::get_tile_info<0x3c08>)), TILEMAP_SCAN_ROWS, 8, 8, 36, 28);
}
else
{
- m_tilemapinfo.tmap[3] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(namco_c123tmap_device::get_tile_info<0x3000>), this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemapinfo.tmap[3] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(namco_c123tmap_device::get_tile_info<0x3000>)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
/* two non-scrolling tilemaps */
- m_tilemapinfo.tmap[4] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(namco_c123tmap_device::get_tile_info<0x4008>), this), TILEMAP_SCAN_ROWS, 8, 8, 36, 28);
- m_tilemapinfo.tmap[5] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(namco_c123tmap_device::get_tile_info<0x4408>), this), TILEMAP_SCAN_ROWS, 8, 8, 36, 28);
+ m_tilemapinfo.tmap[4] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(namco_c123tmap_device::get_tile_info<0x4008>)), TILEMAP_SCAN_ROWS, 8, 8, 36, 28);
+ m_tilemapinfo.tmap[5] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(namco_c123tmap_device::get_tile_info<0x4408>)), TILEMAP_SCAN_ROWS, 8, 8, 36, 28);
}
/* define offsets for scrolling */
diff --git a/src/mame/video/namco_c169roz.cpp b/src/mame/video/namco_c169roz.cpp
index 09ab88ec06f..89ca7a3ea2c 100644
--- a/src/mame/video/namco_c169roz.cpp
+++ b/src/mame/video/namco_c169roz.cpp
@@ -51,16 +51,16 @@ void namco_c169roz_device::device_start()
std::fill(std::begin(m_videoram), std::end(m_videoram), 0x0000);
m_tilemap[0] = &machine().tilemap().create(*this,
- tilemap_get_info_delegate(FUNC(namco_c169roz_device::get_info<0>), this),
- tilemap_mapper_delegate(FUNC(namco_c169roz_device::mapper), this),
- 16, 16,
- 256, 256);
+ tilemap_get_info_delegate(*this, FUNC(namco_c169roz_device::get_info<0>)),
+ tilemap_mapper_delegate(*this, FUNC(namco_c169roz_device::mapper)),
+ 16, 16,
+ 256, 256);
m_tilemap[1] = &machine().tilemap().create(*this,
- tilemap_get_info_delegate(FUNC(namco_c169roz_device::get_info<1>), this),
- tilemap_mapper_delegate(FUNC(namco_c169roz_device::mapper), this),
- 16, 16,
- 256, 256);
+ tilemap_get_info_delegate(*this, FUNC(namco_c169roz_device::get_info<1>)),
+ tilemap_mapper_delegate(*this, FUNC(namco_c169roz_device::mapper)),
+ 16, 16,
+ 256, 256);
save_item(NAME(m_control));
save_item(NAME(m_videoram));
diff --git a/src/mame/video/namcona1.cpp b/src/mame/video/namcona1.cpp
index 34f3d89e0a2..aa92be6a294 100644
--- a/src/mame/video/namcona1.cpp
+++ b/src/mame/video/namcona1.cpp
@@ -191,13 +191,13 @@ void namcona1_state::gfxram_w(offs_t offset, u16 data, u16 mem_mask)
void namcona1_state::video_start()
{
// normal tilemaps
- m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(namcona1_state::tilemap_get_info0),this), TILEMAP_SCAN_ROWS, 8,8,64,64);
- m_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(namcona1_state::tilemap_get_info1),this), TILEMAP_SCAN_ROWS, 8,8,64,64);
- m_bg_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(namcona1_state::tilemap_get_info2),this), TILEMAP_SCAN_ROWS, 8,8,64,64);
- m_bg_tilemap[3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(namcona1_state::tilemap_get_info3),this), TILEMAP_SCAN_ROWS, 8,8,64,64);
+ m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(namcona1_state::tilemap_get_info0)), TILEMAP_SCAN_ROWS, 8,8,64,64);
+ m_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(namcona1_state::tilemap_get_info1)), TILEMAP_SCAN_ROWS, 8,8,64,64);
+ m_bg_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(namcona1_state::tilemap_get_info2)), TILEMAP_SCAN_ROWS, 8,8,64,64);
+ m_bg_tilemap[3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(namcona1_state::tilemap_get_info3)), TILEMAP_SCAN_ROWS, 8,8,64,64);
// roz tilemap
- m_bg_tilemap[4] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(namcona1_state::roz_get_info),this), TILEMAP_SCAN_ROWS, 8,8,64,64);
+ m_bg_tilemap[4] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(namcona1_state::roz_get_info)), TILEMAP_SCAN_ROWS, 8,8,64,64);
m_shaperam.resize(0x8000);
diff --git a/src/mame/video/namcos22.cpp b/src/mame/video/namcos22.cpp
index 545fc499067..4a2c9d96900 100644
--- a/src/mame/video/namcos22.cpp
+++ b/src/mame/video/namcos22.cpp
@@ -2576,7 +2576,7 @@ void namcos22_state::video_start()
m_posirq_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(namcos22_state::posirq_callback),this));
m_mix_bitmap = std::make_unique<bitmap_ind16>(640, 480);
- m_bgtilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(namcos22_state::get_text_tile_info), this), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
+ m_bgtilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(namcos22_state::get_text_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
m_bgtilemap->set_transparent_pen(0xf);
m_gfxdecode->gfx(0)->set_source((u8 *)m_cgram.target());
diff --git a/src/mame/video/namcos2_roz.cpp b/src/mame/video/namcos2_roz.cpp
index 934b0e004b9..f4643e6611f 100644
--- a/src/mame/video/namcos2_roz.cpp
+++ b/src/mame/video/namcos2_roz.cpp
@@ -44,7 +44,7 @@ namcos2_roz_device::namcos2_roz_device(const machine_config &mconfig, const char
void namcos2_roz_device::device_start()
{
- m_tilemap_roz = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(namcos2_roz_device::roz_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 256, 256);
+ m_tilemap_roz = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(namcos2_roz_device::roz_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 256, 256);
m_tilemap_roz->set_transparent_pen(0xff);
}
diff --git a/src/mame/video/namcos86.cpp b/src/mame/video/namcos86.cpp
index 803270d78e6..e1fd9a556fa 100644
--- a/src/mame/video/namcos86.cpp
+++ b/src/mame/video/namcos86.cpp
@@ -133,14 +133,14 @@ TILE_GET_INFO_MEMBER(namcos86_state::get_tile_info3)
void namcos86_state::video_start()
{
- m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(namcos86_state::get_tile_info0),this),TILEMAP_SCAN_ROWS,8,8,64,32);
- m_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(namcos86_state::get_tile_info1),this),TILEMAP_SCAN_ROWS,8,8,64,32);
- m_bg_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(namcos86_state::get_tile_info2),this),TILEMAP_SCAN_ROWS,8,8,64,32);
- m_bg_tilemap[3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(namcos86_state::get_tile_info3),this),TILEMAP_SCAN_ROWS,8,8,64,32);
+ m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(namcos86_state::get_tile_info0)), TILEMAP_SCAN_ROWS, 8,8, 64,32);
+ m_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(namcos86_state::get_tile_info1)), TILEMAP_SCAN_ROWS, 8,8, 64,32);
+ m_bg_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(namcos86_state::get_tile_info2)), TILEMAP_SCAN_ROWS, 8,8, 64,32);
+ m_bg_tilemap[3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(namcos86_state::get_tile_info3)), TILEMAP_SCAN_ROWS, 8,8, 64,32);
for (int i = 0; i < 4; i++)
{
- static const int xdisp[] = { 47, 49, 46, 48 };
+ static constexpr int xdisp[] = { 47, 49, 46, 48 };
m_bg_tilemap[i]->set_scrolldx(xdisp[i], 422 - xdisp[i]);
m_bg_tilemap[i]->set_scrolldy(-9, 9);
diff --git a/src/mame/video/nemesis.cpp b/src/mame/video/nemesis.cpp
index aebbf5f7078..e136447af93 100644
--- a/src/mame/video/nemesis.cpp
+++ b/src/mame/video/nemesis.cpp
@@ -253,8 +253,8 @@ void nemesis_state::video_start()
m_spriteram_words = m_spriteram.bytes() / 2;
- m_background = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(nemesis_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_foreground = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(nemesis_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_background = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(nemesis_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_foreground = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(nemesis_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_background->set_transparent_pen(0);
m_foreground->set_transparent_pen(0);
diff --git a/src/mame/video/nes.cpp b/src/mame/video/nes.cpp
index 267c63d7b46..8356e0b53b6 100644
--- a/src/mame/video/nes.cpp
+++ b/src/mame/video/nes.cpp
@@ -13,7 +13,7 @@
void nes_state::video_reset()
{
- m_ppu->set_vidaccess_callback(ppu2c0x_device::vidaccess_delegate(FUNC(nes_state::nes_ppu_vidaccess),this));
+ m_ppu->set_vidaccess_callback(*this, FUNC(nes_state::nes_ppu_vidaccess));
}
void nes_state::video_start()
diff --git a/src/mame/video/newbrain.cpp b/src/mame/video/newbrain.cpp
index 4e49210aeaa..79458eb10f1 100644
--- a/src/mame/video/newbrain.cpp
+++ b/src/mame/video/newbrain.cpp
@@ -76,7 +76,7 @@ void newbrain_state::video_start()
save_item(NAME(m_tvl));
}
-void newbrain_state::screen_update(bitmap_rgb32 &bitmap, const rectangle &cliprect)
+void newbrain_state::do_screen_update(bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
int columns = m_80l ? 80 : 40;
int excess = m_32_40 ? 4 : 24;
@@ -155,13 +155,9 @@ void newbrain_state::screen_update(bitmap_rgb32 &bitmap, const rectangle &clipre
uint32_t newbrain_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
if (m_tvp)
- {
- screen_update(bitmap, cliprect);
- }
+ do_screen_update(bitmap, cliprect);
else
- {
bitmap.fill(rgb_t::black(), cliprect);
- }
return 0;
}
diff --git a/src/mame/video/news.cpp b/src/mame/video/news.cpp
index 19a0367aac0..4284b28ec31 100644
--- a/src/mame/video/news.cpp
+++ b/src/mame/video/news.cpp
@@ -44,10 +44,10 @@ TILE_GET_INFO_MEMBER(news_state::get_bg_tile_info)
void news_state::video_start()
{
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(news_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(news_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(0);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(news_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(news_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
diff --git a/src/mame/video/ninjakd2.cpp b/src/mame/video/ninjakd2.cpp
index f86727520b1..cd80646fec3 100644
--- a/src/mame/video/ninjakd2.cpp
+++ b/src/mame/video/ninjakd2.cpp
@@ -94,7 +94,7 @@ TILE_GET_INFO_MEMBER(robokid_state::robokid_get_bg_tile_info)
void ninjakd2_state::video_init_common()
{
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ninjakd2_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ninjakd2_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(0xf);
m_screen->register_screen_bitmap(m_sprites_bitmap);
@@ -135,7 +135,7 @@ void ninjakd2_state::video_start()
{
video_init_common();
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ninjakd2_state::ninjakd2_get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ninjakd2_state::ninjakd2_get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
m_stencil_compare_function = stencil_ninjakd2;
}
@@ -144,7 +144,7 @@ VIDEO_START_MEMBER(mnight_state,mnight)
{
video_init_common();
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mnight_state::mnight_get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mnight_state::mnight_get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
m_stencil_compare_function = stencil_mnight;
}
@@ -153,7 +153,7 @@ VIDEO_START_MEMBER(mnight_state,arkarea)
{
video_init_common();
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mnight_state::mnight_get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mnight_state::mnight_get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
m_stencil_compare_function = stencil_arkarea;
}
@@ -164,9 +164,9 @@ VIDEO_START_MEMBER(robokid_state,robokid)
video_init_banked(0x0800);
m_robokid_sprites = 1;
- m_robokid_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(robokid_state::robokid_get_bg_tile_info<0>),this), tilemap_mapper_delegate(FUNC(robokid_state::robokid_bg_scan),this), 16, 16, 32, 32);
- m_robokid_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(robokid_state::robokid_get_bg_tile_info<1>),this), tilemap_mapper_delegate(FUNC(robokid_state::robokid_bg_scan),this), 16, 16, 32, 32);
- m_robokid_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(robokid_state::robokid_get_bg_tile_info<2>),this), tilemap_mapper_delegate(FUNC(robokid_state::robokid_bg_scan),this), 16, 16, 32, 32);
+ m_robokid_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(robokid_state::robokid_get_bg_tile_info<0>)), tilemap_mapper_delegate(*this, FUNC(robokid_state::robokid_bg_scan)), 16, 16, 32, 32);
+ m_robokid_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(robokid_state::robokid_get_bg_tile_info<1>)), tilemap_mapper_delegate(*this, FUNC(robokid_state::robokid_bg_scan)), 16, 16, 32, 32);
+ m_robokid_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(robokid_state::robokid_get_bg_tile_info<2>)), tilemap_mapper_delegate(*this, FUNC(robokid_state::robokid_bg_scan)), 16, 16, 32, 32);
m_robokid_tilemap[1]->set_transparent_pen(0xf);
m_robokid_tilemap[2]->set_transparent_pen(0xf);
@@ -180,9 +180,9 @@ VIDEO_START_MEMBER(omegaf_state,omegaf)
video_init_banked(0x2000);
m_robokid_sprites = 1;
- m_robokid_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(omegaf_state::robokid_get_bg_tile_info<0>),this), tilemap_mapper_delegate(FUNC(omegaf_state::omegaf_bg_scan),this), 16, 16, 128, 32);
- m_robokid_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(omegaf_state::robokid_get_bg_tile_info<1>),this), tilemap_mapper_delegate(FUNC(omegaf_state::omegaf_bg_scan),this), 16, 16, 128, 32);
- m_robokid_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(omegaf_state::robokid_get_bg_tile_info<2>),this), tilemap_mapper_delegate(FUNC(omegaf_state::omegaf_bg_scan),this), 16, 16, 128, 32);
+ m_robokid_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(omegaf_state::robokid_get_bg_tile_info<0>)), tilemap_mapper_delegate(*this, FUNC(omegaf_state::omegaf_bg_scan)), 16, 16, 128, 32);
+ m_robokid_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(omegaf_state::robokid_get_bg_tile_info<1>)), tilemap_mapper_delegate(*this, FUNC(omegaf_state::omegaf_bg_scan)), 16, 16, 128, 32);
+ m_robokid_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(omegaf_state::robokid_get_bg_tile_info<2>)), tilemap_mapper_delegate(*this, FUNC(omegaf_state::omegaf_bg_scan)), 16, 16, 128, 32);
m_robokid_tilemap[0]->set_transparent_pen(0xf);
m_robokid_tilemap[1]->set_transparent_pen(0xf);
diff --git a/src/mame/video/nmk16.cpp b/src/mame/video/nmk16.cpp
index cce0877569e..97baf3b98d9 100644
--- a/src/mame/video/nmk16.cpp
+++ b/src/mame/video/nmk16.cpp
@@ -97,9 +97,9 @@ VIDEO_START_MEMBER(nmk16_state, bioship)
{
m_sprlimit = 384 * 263;
// ROM Based Tilemap
- m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(nmk16_state::bioship_get_bg_tile_info), this), tilemap_mapper_delegate(FUNC(nmk16_state::tilemap_scan_pages), this), 16, 16, 256, 32);
- m_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(&nmk16_state::common_get_bg_tile_info<1, 1>, "bg1_gfx1", this), tilemap_mapper_delegate(FUNC(nmk16_state::tilemap_scan_pages), this), 16, 16, 256, 32);
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(nmk16_state::common_get_tx_tile_info), this), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
+ m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(nmk16_state::bioship_get_bg_tile_info)), tilemap_mapper_delegate(*this, FUNC(nmk16_state::tilemap_scan_pages)), 16, 16, 256, 32);
+ m_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, NAME((&nmk16_state::common_get_bg_tile_info<1, 1>))), tilemap_mapper_delegate(*this, FUNC(nmk16_state::tilemap_scan_pages)), 16, 16, 256, 32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(nmk16_state::common_get_tx_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
m_bg_tilemap[1]->set_transparent_pen(15);
m_tx_tilemap->set_transparent_pen(15);
@@ -112,8 +112,8 @@ VIDEO_START_MEMBER(nmk16_state, bioship)
VIDEO_START_MEMBER(nmk16_state,macross)
{
m_sprlimit = 384 * 263;
- m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(&nmk16_state::common_get_bg_tile_info<0, 1>, "bg0_gfx1", this), tilemap_mapper_delegate(FUNC(nmk16_state::tilemap_scan_pages), this), 16, 16, 256, 32);
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(nmk16_state::common_get_tx_tile_info), this), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
+ m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, NAME((&nmk16_state::common_get_bg_tile_info<0, 1>))), tilemap_mapper_delegate(*this, FUNC(nmk16_state::tilemap_scan_pages)), 16, 16, 256, 32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(nmk16_state::common_get_tx_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
m_tx_tilemap->set_transparent_pen(15);
@@ -123,7 +123,7 @@ VIDEO_START_MEMBER(nmk16_state,macross)
VIDEO_START_MEMBER(nmk16_state,strahl)
{
VIDEO_START_CALL_MEMBER(macross);
- m_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(&nmk16_state::common_get_bg_tile_info<1, 3>, "bg1_gfx3", this), tilemap_mapper_delegate(FUNC(nmk16_state::tilemap_scan_pages), this), 16, 16, 256, 32);
+ m_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, NAME((&nmk16_state::common_get_bg_tile_info<1, 3>))), tilemap_mapper_delegate(*this, FUNC(nmk16_state::tilemap_scan_pages)), 16, 16, 256, 32);
m_bg_tilemap[1]->set_transparent_pen(15);
m_sprdma_base = 0xf000;
@@ -132,14 +132,13 @@ VIDEO_START_MEMBER(nmk16_state,strahl)
VIDEO_START_MEMBER(nmk16_state,macross2)
{
m_sprlimit = 512 * 263; // not verified
- m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(&nmk16_state::common_get_bg_tile_info<0, 1>, "bg0_gfx1", this), tilemap_mapper_delegate(FUNC(nmk16_state::tilemap_scan_pages), this), 16, 16, 256, 32);
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(nmk16_state::common_get_tx_tile_info), this), TILEMAP_SCAN_COLS, 8, 8, 64, 32);
+ m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, NAME((&nmk16_state::common_get_bg_tile_info<0, 1>))), tilemap_mapper_delegate(*this, FUNC(nmk16_state::tilemap_scan_pages)), 16, 16, 256, 32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(nmk16_state::common_get_tx_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 64, 32);
m_tx_tilemap->set_transparent_pen(15);
video_init();
- m_videoshift = 64; /* 384x224 screen, leftmost 64 pixels have to be retrieved */
- /* from the other side of the tilemap (!) */
+ m_videoshift = 64; // 384x224 screen, leftmost 64 pixels have to be retrieved from the other side of the tilemap (!)
}
VIDEO_START_MEMBER(nmk16_state,gunnail)
@@ -151,11 +150,10 @@ VIDEO_START_MEMBER(nmk16_state,gunnail)
VIDEO_START_MEMBER(nmk16_state, bjtwin)
{
m_sprlimit = 512 * 263; // not verified
- m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(nmk16_state::bjtwin_get_bg_tile_info), this), TILEMAP_SCAN_COLS, 8, 8, 64, 32);
+ m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(nmk16_state::bjtwin_get_bg_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 64, 32);
video_init();
- m_videoshift = 64; /* 384x224 screen, leftmost 64 pixels have to be retrieved */
- /* from the other side of the tilemap (!) */
+ m_videoshift = 64; // 384x224 screen, leftmost 64 pixels have to be retrieved from the other side of the tilemap (!)
}
void nmk16_state::mustang_scroll_w(u16 data)
@@ -408,8 +406,8 @@ VIDEO_START_MEMBER(afega_state,grdnstrm)
{
m_sprlimit = 384 * 263;
// 8bpp Tilemap
- m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(afega_state::get_bg_tile_info_8bit), this), tilemap_mapper_delegate(FUNC(afega_state::tilemap_scan_pages), this), 16, 16, 256, 32);
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(afega_state::common_get_tx_tile_info), this), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
+ m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(afega_state::get_bg_tile_info_8bit)), tilemap_mapper_delegate(*this, FUNC(afega_state::tilemap_scan_pages)), 16, 16, 256, 32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(afega_state::common_get_tx_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
m_tx_tilemap->set_transparent_pen(15);
diff --git a/src/mame/video/nmk16spr.cpp b/src/mame/video/nmk16spr.cpp
index 3109f1dbccf..22daec39be8 100644
--- a/src/mame/video/nmk16spr.cpp
+++ b/src/mame/video/nmk16spr.cpp
@@ -39,6 +39,8 @@ DEFINE_DEVICE_TYPE(NMK_16BIT_SPRITE, nmk_16bit_sprite_device, "nmk16spr", "NMK 1
nmk_16bit_sprite_device::nmk_16bit_sprite_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: device_t(mconfig, NMK_16BIT_SPRITE, tag, owner, clock)
+ , m_colpri_cb(*this)
+ , m_ext_cb(*this)
, m_flip_screen(false)
, m_videoshift(0)
, m_xmask(0x1ff), m_ymask(0x1ff)
@@ -255,8 +257,8 @@ void nmk_16bit_sprite_device::draw_sprites(screen_device &screen, bitmap_ind16 &
void nmk_16bit_sprite_device::device_start()
{
- m_colpri_cb.bind_relative_to(*owner());
- m_ext_cb.bind_relative_to(*owner());
+ m_colpri_cb.resolve();
+ m_ext_cb.resolve();
m_flip_screen = false;
m_spritelist = make_unique_clear<struct sprite_t[]>((0x1000/0x10) * 16 * 16);
diff --git a/src/mame/video/nmk16spr.h b/src/mame/video/nmk16spr.h
index 06650edd4c1..5d5a7c24124 100644
--- a/src/mame/video/nmk16spr.h
+++ b/src/mame/video/nmk16spr.h
@@ -11,14 +11,14 @@
class nmk_16bit_sprite_device : public device_t
{
public:
- nmk_16bit_sprite_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
-
typedef device_delegate<void (u32 &colour, u32 &pri_mask)> colpri_cb_delegate;
typedef device_delegate<void (u16 attr, int &flipx, int &flipy, int &code)> ext_cb_delegate;
+ nmk_16bit_sprite_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+
// configuration
- template <typename... T> void set_colpri_callback(T &&... args) { m_colpri_cb = colpri_cb_delegate(std::forward<T>(args)...); }
- template <typename... T> void set_ext_callback(T &&... args) { m_ext_cb = ext_cb_delegate(std::forward<T>(args)...); }
+ template <typename... T> void set_colpri_callback(T &&... args) { m_colpri_cb.set(std::forward<T>(args)...); }
+ template <typename... T> void set_ext_callback(T &&... args) { m_ext_cb.set(std::forward<T>(args)...); }
void set_videoshift(int shift) { m_videoshift = shift; }
void set_mask(int xmask, int ymask) { m_xmask = xmask, m_ymask = ymask; }
void set_screen_size(int width, int height) { m_screen_width = width, m_screen_height = height; }
diff --git a/src/mame/video/nova2001.cpp b/src/mame/video/nova2001.cpp
index 4345133c3e4..2362a724bc1 100644
--- a/src/mame/video/nova2001.cpp
+++ b/src/mame/video/nova2001.cpp
@@ -149,30 +149,30 @@ TILE_GET_INFO_MEMBER(nova2001_state::raiders5_get_fg_tile_info)
VIDEO_START_MEMBER(nova2001_state,nova2001)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(nova2001_state::nova2001_get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(nova2001_state::nova2001_get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(nova2001_state::nova2001_get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(nova2001_state::nova2001_get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(0);
m_bg_tilemap->set_scrolldx(0, -7);
}
VIDEO_START_MEMBER(nova2001_state,pkunwar)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(nova2001_state::pkunwar_get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(nova2001_state::pkunwar_get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_bg_tilemap->set_transparent_pen(0);
}
VIDEO_START_MEMBER(nova2001_state,ninjakun)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(nova2001_state::ninjakun_get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(nova2001_state::ninjakun_get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(nova2001_state::ninjakun_get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(nova2001_state::ninjakun_get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(0);
m_bg_tilemap->set_scrolldx(7, 0);
}
VIDEO_START_MEMBER(nova2001_state,raiders5)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(nova2001_state::raiders5_get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(nova2001_state::raiders5_get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(nova2001_state::raiders5_get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(nova2001_state::raiders5_get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(0);
m_bg_tilemap->set_scrolldx(7, 0);
}
diff --git a/src/mame/video/nycaptor.cpp b/src/mame/video/nycaptor.cpp
index ae519916d0f..c3b2abcbb68 100644
--- a/src/mame/video/nycaptor.cpp
+++ b/src/mame/video/nycaptor.cpp
@@ -60,7 +60,7 @@ TILE_GET_INFO_MEMBER(nycaptor_state::get_tile_info)
void nycaptor_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(nycaptor_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32 );
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(nycaptor_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_bg_tilemap->set_transmask(0, 0xf800, 0x7ff); //split 0
m_bg_tilemap->set_transmask(1, 0xfe00, 0x01ff);//split 1
diff --git a/src/mame/video/ohmygod.cpp b/src/mame/video/ohmygod.cpp
index fd035c60d0c..170f4111862 100644
--- a/src/mame/video/ohmygod.cpp
+++ b/src/mame/video/ohmygod.cpp
@@ -29,7 +29,7 @@ TILE_GET_INFO_MEMBER(ohmygod_state::get_tile_info)
void ohmygod_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ohmygod_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ohmygod_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
}
diff --git a/src/mame/video/ojankohs.cpp b/src/mame/video/ojankohs.cpp
index 2391dae1c5a..00c93eebdaf 100644
--- a/src/mame/video/ojankohs.cpp
+++ b/src/mame/video/ojankohs.cpp
@@ -251,7 +251,7 @@ WRITE8_MEMBER(ojankohs_state::ojankoc_videoram_w)
VIDEO_START_MEMBER(ojankohs_state,ojankohs)
{
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ojankohs_state::ojankohs_get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 4, 64, 64);
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ojankohs_state::ojankohs_get_tile_info)), TILEMAP_SCAN_ROWS, 8, 4, 64, 64);
// m_videoram = std::make_unique<uint8_t[]>(0x1000);
// m_colorram = std::make_unique<uint8_t[]>(0x1000);
// m_paletteram = std::make_unique<uint8_t[]>(0x800);
@@ -259,7 +259,7 @@ VIDEO_START_MEMBER(ojankohs_state,ojankohs)
VIDEO_START_MEMBER(ojankohs_state,ojankoy)
{
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ojankohs_state::ojankoy_get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 4, 64, 64);
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ojankohs_state::ojankoy_get_tile_info)), TILEMAP_SCAN_ROWS, 8, 4, 64, 64);
// m_videoram = std::make_unique<uint8_t[]>(0x2000);
// m_colorram = std::make_unique<uint8_t[]>(0x1000);
}
diff --git a/src/mame/video/oneshot.cpp b/src/mame/video/oneshot.cpp
index 76646953b82..4ab2451c528 100644
--- a/src/mame/video/oneshot.cpp
+++ b/src/mame/video/oneshot.cpp
@@ -51,9 +51,9 @@ void oneshot_state::fg_videoram_w(offs_t offset, u16 data, u16 mem_mask)
void oneshot_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(oneshot_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- m_mid_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(oneshot_state::get_mid_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(oneshot_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(oneshot_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_mid_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(oneshot_state::get_mid_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(oneshot_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
m_bg_tilemap->set_transparent_pen(0);
m_mid_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/orbit.cpp b/src/mame/video/orbit.cpp
index 642929e56d7..107f5bce745 100644
--- a/src/mame/video/orbit.cpp
+++ b/src/mame/video/orbit.cpp
@@ -32,7 +32,7 @@ TILE_GET_INFO_MEMBER(orbit_state::get_tile_info)
void orbit_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(orbit_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 30);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(orbit_state::get_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 30);
}
diff --git a/src/mame/video/orca40c.cpp b/src/mame/video/orca40c.cpp
index 67e446ed661..fab592cf092 100644
--- a/src/mame/video/orca40c.cpp
+++ b/src/mame/video/orca40c.cpp
@@ -112,8 +112,8 @@ void orca_ovg_40c_device::device_start()
{
decode_gfx(gfxinfo);
- m_bg_tilemap = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(orca_ovg_40c_device::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_fg_tilemap = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(orca_ovg_40c_device::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(orca_ovg_40c_device::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(orca_ovg_40c_device::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(0);
m_fg_tilemap->set_scroll_cols(32);
@@ -283,7 +283,7 @@ void orca_ovg_40c_device::device_config_complete()
screen().set_raw(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART);
if (!screen().has_screen_update())
- screen().set_screen_update(screen_update_rgb32_delegate(FUNC(orca_ovg_40c_device::screen_update), this));
+ screen().set_screen_update(*this, FUNC(orca_ovg_40c_device::screen_update));
}
void orca_ovg_40c_device::device_add_mconfig(machine_config &config)
diff --git a/src/mame/video/pacland.cpp b/src/mame/video/pacland.cpp
index ebc34135338..cf3dda78933 100644
--- a/src/mame/video/pacland.cpp
+++ b/src/mame/video/pacland.cpp
@@ -190,8 +190,8 @@ void pacland_state::video_start()
m_screen->register_screen_bitmap(m_fg_bitmap);
m_fg_bitmap.fill(0xffff);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(pacland_state::get_bg_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(pacland_state::get_fg_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(pacland_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(pacland_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_bg_tilemap->set_scrolldx(3, 340);
m_fg_tilemap->set_scrolldx(0, 336); /* scrolling portion needs an additional offset when flipped */
diff --git a/src/mame/video/pacman.cpp b/src/mame/video/pacman.cpp
index cda16a3ea48..a0bc5e2eafd 100644
--- a/src/mame/video/pacman.cpp
+++ b/src/mame/video/pacman.cpp
@@ -171,7 +171,7 @@ VIDEO_START_MEMBER(pacman_state,pacman)
/* one pixel to the left to get a more correct placement */
m_xoffsethack = 1;
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(pacman_state::pacman_get_tile_info),this), tilemap_mapper_delegate(FUNC(pacman_state::pacman_scan_rows),this), 8, 8, 36, 28 );
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(pacman_state::pacman_get_tile_info)), tilemap_mapper_delegate(*this, FUNC(pacman_state::pacman_scan_rows)), 8, 8, 36, 28);
}
VIDEO_START_MEMBER(pacman_state,birdiy)
@@ -320,7 +320,7 @@ VIDEO_START_MEMBER(pacman_state,pengo)
m_inv_spr = 0;
m_xoffsethack = 0;
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(pacman_state::pacman_get_tile_info),this), tilemap_mapper_delegate(FUNC(pacman_state::pacman_scan_rows),this), 8, 8, 36, 28 );
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(pacman_state::pacman_get_tile_info)), tilemap_mapper_delegate(*this, FUNC(pacman_state::pacman_scan_rows)), 8, 8, 36, 28);
}
WRITE_LINE_MEMBER(pacman_state::pengo_palettebank_w)
@@ -374,7 +374,7 @@ VIDEO_START_MEMBER(pacman_state,s2650games)
m_inv_spr = 0;
m_xoffsethack = 1;
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(pacman_state::s2650_get_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32 );
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(pacman_state::s2650_get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_bg_tilemap->set_scroll_cols(32);
}
@@ -542,7 +542,7 @@ VIDEO_START_MEMBER(pacman_state,jrpacman)
m_inv_spr = 0;
m_xoffsethack = 1;
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(pacman_state::jrpacman_get_tile_info),this),tilemap_mapper_delegate(FUNC(pacman_state::jrpacman_scan_rows),this),8,8,36,54 );
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(pacman_state::jrpacman_get_tile_info)), tilemap_mapper_delegate(*this, FUNC(pacman_state::jrpacman_scan_rows)), 8, 8, 36, 54);
m_bg_tilemap->set_transparent_pen(0 );
m_bg_tilemap->set_scroll_cols(36 );
diff --git a/src/mame/video/pandoras.cpp b/src/mame/video/pandoras.cpp
index f47f83e1826..e59d2af5a6a 100644
--- a/src/mame/video/pandoras.cpp
+++ b/src/mame/video/pandoras.cpp
@@ -103,7 +103,7 @@ TILE_GET_INFO_MEMBER(pandoras_state::get_tile_info0)
void pandoras_state::video_start()
{
- m_layer0 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(pandoras_state::get_tile_info0),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_layer0 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(pandoras_state::get_tile_info0)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
save_item(NAME(m_flipscreen));
}
diff --git a/src/mame/video/paradise.cpp b/src/mame/video/paradise.cpp
index 51a70c8dc74..3e5a14ba998 100644
--- a/src/mame/video/paradise.cpp
+++ b/src/mame/video/paradise.cpp
@@ -44,8 +44,13 @@ WRITE8_MEMBER(paradise_state::tgtball_flipscreen_w)
void paradise_state::update_pix_palbank()
{
for (int i = 0; i < 15; i++)
- m_palette->set_pen_color(0x800 + i, m_paletteram[0x200 + m_pixbank + i + 0x800 * 0], m_paletteram[0x200 + m_pixbank + i + 0x800 * 1],
- m_paletteram[0x200 + m_pixbank + i + 0x800 * 2]);
+ {
+ m_palette->set_pen_color(
+ 0x800 + i,
+ m_paletteram[0x200 + m_pixbank + i + (0x800 * 0)],
+ m_paletteram[0x200 + m_pixbank + i + (0x800 * 1)],
+ m_paletteram[0x200 + m_pixbank + i + (0x800 * 2)]);
+ }
}
/* 800 bytes for red, followed by 800 bytes for green & 800 bytes for blue */
@@ -152,9 +157,9 @@ WRITE8_MEMBER(paradise_state::pixmap_w)
void paradise_state::video_start()
{
- m_tilemap_0 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(paradise_state::get_tile_info_0),this), TILEMAP_SCAN_ROWS, 8, 8, 0x20, 0x20);
- m_tilemap_1 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(paradise_state::get_tile_info_1),this), TILEMAP_SCAN_ROWS, 8, 8, 0x20, 0x20);
- m_tilemap_2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(paradise_state::get_tile_info_2),this), TILEMAP_SCAN_ROWS, 8, 8, 0x20, 0x20);
+ m_tilemap_0 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(paradise_state::get_tile_info_0)), TILEMAP_SCAN_ROWS, 8, 8, 0x20, 0x20);
+ m_tilemap_1 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(paradise_state::get_tile_info_1)), TILEMAP_SCAN_ROWS, 8, 8, 0x20, 0x20);
+ m_tilemap_2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(paradise_state::get_tile_info_2)), TILEMAP_SCAN_ROWS, 8, 8, 0x20, 0x20);
/* pixmap */
m_screen->register_screen_bitmap(m_tmpbitmap);
diff --git a/src/mame/video/pass.cpp b/src/mame/video/pass.cpp
index 2d903b15ad9..cb8289e7bb9 100644
--- a/src/mame/video/pass.cpp
+++ b/src/mame/video/pass.cpp
@@ -46,8 +46,8 @@ WRITE16_MEMBER(pass_state::pass_fg_videoram_w)
void pass_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(pass_state::get_pass_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(pass_state::get_pass_fg_tile_info),this), TILEMAP_SCAN_ROWS, 4, 4, 128, 64);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(pass_state::get_pass_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(pass_state::get_pass_fg_tile_info)), TILEMAP_SCAN_ROWS, 4, 4, 128, 64);
m_fg_tilemap->set_transparent_pen(255);
}
diff --git a/src/mame/video/pbaction.cpp b/src/mame/video/pbaction.cpp
index 6e339f33c11..15f41317a7f 100644
--- a/src/mame/video/pbaction.cpp
+++ b/src/mame/video/pbaction.cpp
@@ -72,8 +72,8 @@ TILE_GET_INFO_MEMBER(pbaction_state::get_fg_tile_info)
void pbaction_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(pbaction_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(pbaction_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(pbaction_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(pbaction_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(0);
}
diff --git a/src/mame/video/pc080sn.cpp b/src/mame/video/pc080sn.cpp
index 70aba4a083e..58f02203200 100644
--- a/src/mame/video/pc080sn.cpp
+++ b/src/mame/video/pc080sn.cpp
@@ -85,13 +85,13 @@ void pc080sn_device::device_start()
/* use the given gfx set for bg tiles */
if (!m_dblwidth) /* standard tilemaps */
{
- m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(pc080sn_device::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(pc080sn_device::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(pc080sn_device::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(pc080sn_device::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
}
else /* double width tilemaps */
{
- m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(pc080sn_device::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 128, 64);
- m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(pc080sn_device::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 128, 64);
+ m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(pc080sn_device::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 128, 64);
+ m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(pc080sn_device::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 128, 64);
}
m_tilemap[0]->set_transparent_pen(0);
diff --git a/src/mame/video/pc090oj.cpp b/src/mame/video/pc090oj.cpp
index 43d87c2e6f4..2f283eff2d5 100644
--- a/src/mame/video/pc090oj.cpp
+++ b/src/mame/video/pc090oj.cpp
@@ -77,6 +77,7 @@ DEFINE_DEVICE_TYPE(PC090OJ, pc090oj_device, "pc090oj", "Taito PC090OJ")
pc090oj_device::pc090oj_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
: device_t(mconfig, PC090OJ, tag, owner, clock)
, device_gfx_interface(mconfig, *this, nullptr)
+ , m_colpri_cb(*this)
, m_ctrl(0)
, m_sprite_ctrl(0)
, m_ram(nullptr)
@@ -106,6 +107,8 @@ void pc090oj_device::device_start()
decode_gfx(gfxinfo);
gfx(0)->set_colors(palette().entries() / 16);
+ m_colpri_cb.resolve();
+
m_ram = make_unique_clear<u16[]>(PC090OJ_RAM_SIZE / 2);
m_ram_buffered = make_unique_clear<u16[]>(PC090OJ_RAM_SIZE / 2);
diff --git a/src/mame/video/pc090oj.h b/src/mame/video/pc090oj.h
index 6a518d9b669..42a5b5bd245 100644
--- a/src/mame/video/pc090oj.h
+++ b/src/mame/video/pc090oj.h
@@ -5,11 +5,11 @@
#pragma once
-typedef device_delegate<void (u32 &sprite_colbank, u32 &pri_mask, u16 sprite_ctrl)> pc090oj_colpri_cb_delegate;
-
class pc090oj_device : public device_t, public device_gfx_interface
{
public:
+ typedef device_delegate<void (u32 &sprite_colbank, u32 &pri_mask, u16 sprite_ctrl)> colpri_cb_delegate;
+
pc090oj_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
// configuration
@@ -19,7 +19,7 @@ public:
m_x_offset = x_offset;
m_y_offset = y_offset;
}
- template <typename... T> void set_colpri_callback(T &&... args) { m_colpri_cb = pc090oj_colpri_cb_delegate(std::forward<T>(args)...); }
+ template <typename... T> void set_colpri_callback(T &&... args) { m_colpri_cb.set(std::forward<T>(args)...); }
u16 word_r(offs_t offset);
void word_w(offs_t offset, u16 data, u16 mem_mask = 0);
@@ -41,9 +41,9 @@ private:
includes color banking and (optionally) priority. It allows each game to
control these aspects of the sprites in different ways, while keeping the
routines here modular.
+ */
-*/
- pc090oj_colpri_cb_delegate m_colpri_cb;
+ colpri_cb_delegate m_colpri_cb;
// decoding info
DECLARE_GFXDECODE_MEMBER(gfxinfo);
diff --git a/src/mame/video/pc1512.cpp b/src/mame/video/pc1512.cpp
index a075bfe061d..0e6b7f0606a 100644
--- a/src/mame/video/pc1512.cpp
+++ b/src/mame/video/pc1512.cpp
@@ -606,5 +606,5 @@ void pc1512_state::pc1512_video(machine_config &config)
m_vdu->set_screen(m_screen);
m_vdu->set_show_border_area(true);
m_vdu->set_char_width(8);
- m_vdu->set_update_row_callback(FUNC(pc1512_state::crtc_update_row), this);
+ m_vdu->set_update_row_callback(FUNC(pc1512_state::crtc_update_row));
}
diff --git a/src/mame/video/pc_t1t.cpp b/src/mame/video/pc_t1t.cpp
index 047445253c0..39e33ff66b0 100644
--- a/src/mame/video/pc_t1t.cpp
+++ b/src/mame/video/pc_t1t.cpp
@@ -128,7 +128,7 @@ void pcvideo_t1000_device::device_add_mconfig(machine_config &config)
m_mc6845->set_screen(T1000_SCREEN_NAME);
m_mc6845->set_show_border_area(false);
m_mc6845->set_char_width(8);
- m_mc6845->set_update_row_callback(FUNC(pc_t1t_device::crtc_update_row), this);
+ m_mc6845->set_update_row_callback(FUNC(pc_t1t_device::crtc_update_row));
m_mc6845->out_de_callback().set(FUNC(pc_t1t_device::t1000_de_changed));
m_mc6845->out_vsync_callback().set(FUNC(pcvideo_t1000_device::t1000_vsync_changed));
@@ -148,7 +148,7 @@ void pcvideo_pcjr_device::device_add_mconfig(machine_config &config)
m_mc6845->set_screen(T1000_SCREEN_NAME);
m_mc6845->set_show_border_area(false);
m_mc6845->set_char_width(8);
- m_mc6845->set_update_row_callback(FUNC(pcvideo_pcjr_device::crtc_update_row), this);
+ m_mc6845->set_update_row_callback(FUNC(pcvideo_pcjr_device::crtc_update_row));
m_mc6845->out_de_callback().set(FUNC(pc_t1t_device::t1000_de_changed));
m_mc6845->out_vsync_callback().set(FUNC(pcvideo_pcjr_device::pcjr_vsync_changed));
diff --git a/src/mame/video/pcd.cpp b/src/mame/video/pcd.cpp
index bab1c77fdc5..d367e3de11f 100644
--- a/src/mame/video/pcd.cpp
+++ b/src/mame/video/pcd.cpp
@@ -399,8 +399,8 @@ WRITE8_MEMBER(pcx_video_device::p1_w)
void pcd_video_device::device_start()
{
- m_maincpu->space(AS_IO).install_readwrite_handler(0xfb00, 0xfb01, read8_delegate(FUNC(pcdx_video_device::detect_r), this), write8_delegate(FUNC(pcdx_video_device::detect_w), this), 0xff00);
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf0000, 0xf7fff, read8_delegate(FUNC(pcd_video_device::vram_r), this), write8_delegate(FUNC(pcd_video_device::vram_w), this), 0xffff);
+ m_maincpu->space(AS_IO).install_readwrite_handler(0xfb00, 0xfb01, read8_delegate(*this, FUNC(pcdx_video_device::detect_r)), write8_delegate(*this, FUNC(pcdx_video_device::detect_w)), 0xff00);
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf0000, 0xf7fff, read8_delegate(*this, FUNC(pcd_video_device::vram_r)), write8_delegate(*this, FUNC(pcd_video_device::vram_w)), 0xffff);
set_gfx(0, std::make_unique<gfx_element>(&palette(), pcd_charlayout, &m_charram[0], 0, 1, 0));
}
@@ -425,7 +425,7 @@ void pcd_video_device::map(address_map &map)
void pcx_video_device::device_start()
{
- m_maincpu->space(AS_IO).install_readwrite_handler(0xfb00, 0xfb01, read8_delegate(FUNC(pcdx_video_device::detect_r), this), write8_delegate(FUNC(pcdx_video_device::detect_w), this), 0x00ff);
+ m_maincpu->space(AS_IO).install_readwrite_handler(0xfb00, 0xfb01, read8_delegate(*this, FUNC(pcdx_video_device::detect_r)), write8_delegate(*this, FUNC(pcdx_video_device::detect_w)), 0x00ff);
m_txd_handler.resolve_safe();
set_data_frame(1, 8, PARITY_NONE, STOP_BITS_1);
diff --git a/src/mame/video/pgm.cpp b/src/mame/video/pgm.cpp
index 0cd5b4111e0..5fc5016dbad 100644
--- a/src/mame/video/pgm.cpp
+++ b/src/mame/video/pgm.cpp
@@ -578,10 +578,10 @@ void pgm_state::video_start()
m_aoffset = 0;
m_boffset = 0;
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(pgm_state::get_tx_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(pgm_state::get_tx_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_tx_tilemap->set_transparent_pen(15);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(pgm_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 32, 32, 64, 16);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(pgm_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 32, 32, 64, 16);
m_bg_tilemap->set_transparent_pen(31);
m_bg_tilemap->set_scroll_rows(16 * 32);
diff --git a/src/mame/video/pgm2.cpp b/src/mame/video/pgm2.cpp
index 07bb2748b42..5216e6d68c5 100644
--- a/src/mame/video/pgm2.cpp
+++ b/src/mame/video/pgm2.cpp
@@ -371,10 +371,10 @@ TILE_GET_INFO_MEMBER(pgm2_state::get_bg_tile_info)
void pgm2_state::video_start()
{
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode2, tilemap_get_info_delegate(FUNC(pgm2_state::get_fg_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 96, 64); // 0x6000 bytes
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode2, tilemap_get_info_delegate(*this, FUNC(pgm2_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 96, 64); // 0x6000 bytes
m_fg_tilemap->set_transparent_pen(0);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode3, tilemap_get_info_delegate(FUNC(pgm2_state::get_bg_tile_info), this), TILEMAP_SCAN_ROWS, 32, 32, 64, 32); // 0x2000 bytes
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode3, tilemap_get_info_delegate(*this, FUNC(pgm2_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 32, 32, 64, 32); // 0x2000 bytes
m_bg_tilemap->set_transparent_pen(0);
m_bg_tilemap->set_scroll_rows(32 * 32);
diff --git a/src/mame/video/phoenix.cpp b/src/mame/video/phoenix.cpp
index defbfc285d9..9c530ca110e 100644
--- a/src/mame/video/phoenix.cpp
+++ b/src/mame/video/phoenix.cpp
@@ -178,8 +178,8 @@ VIDEO_START_MEMBER(phoenix_state,phoenix)
m_palette_bank = 0;
m_cocktail_mode = 0;
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(phoenix_state::get_fg_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(phoenix_state::get_bg_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(phoenix_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(phoenix_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/pingpong.cpp b/src/mame/video/pingpong.cpp
index ab4170b0aa2..5ca96fd42a3 100644
--- a/src/mame/video/pingpong.cpp
+++ b/src/mame/video/pingpong.cpp
@@ -104,7 +104,7 @@ TILE_GET_INFO_MEMBER(pingpong_state::get_bg_tile_info)
void pingpong_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(pingpong_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(pingpong_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
void pingpong_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect )
diff --git a/src/mame/video/pirates.cpp b/src/mame/video/pirates.cpp
index 66e3be0aa92..56dd486e730 100644
--- a/src/mame/video/pirates.cpp
+++ b/src/mame/video/pirates.cpp
@@ -37,11 +37,11 @@ TILE_GET_INFO_MEMBER(pirates_state::get_bg_tile_info)
void pirates_state::video_start()
{
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(pirates_state::get_tx_tile_info),this),TILEMAP_SCAN_COLS,8,8,36,32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(pirates_state::get_tx_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 36, 32);
- /* Not sure how big they can be, Pirates uses only 32 columns, Genix 44 */
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(pirates_state::get_fg_tile_info),this),TILEMAP_SCAN_COLS,8,8,64,32);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(pirates_state::get_bg_tile_info),this),TILEMAP_SCAN_COLS, 8,8,64,32);
+ // Not sure how big they can be, Pirates uses only 32 columns, Genix 44
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(pirates_state::get_fg_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(pirates_state::get_bg_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 64, 32);
m_tx_tilemap->set_transparent_pen(0);
m_fg_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/pitnrun.cpp b/src/mame/video/pitnrun.cpp
index 6d408cdab09..4d747a5946b 100644
--- a/src/mame/video/pitnrun.cpp
+++ b/src/mame/video/pitnrun.cpp
@@ -170,8 +170,8 @@ void pitnrun_state::pitnrun_palette(palette_device &palette) const
void pitnrun_state::video_start()
{
- m_fg = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(pitnrun_state::get_tile_info1),this),TILEMAP_SCAN_ROWS,8,8,32,32 );
- m_bg = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(pitnrun_state::get_tile_info2),this),TILEMAP_SCAN_ROWS,8,8,32*4,32 );
+ m_fg = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(pitnrun_state::get_tile_info1)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(pitnrun_state::get_tile_info2)), TILEMAP_SCAN_ROWS, 8, 8, 32*4, 32);
m_fg->set_transparent_pen(0 );
m_tmp_bitmap[0] = std::make_unique<bitmap_ind16>(128,128);
m_tmp_bitmap[1] = std::make_unique<bitmap_ind16>(128,128);
diff --git a/src/mame/video/playch10.cpp b/src/mame/video/playch10.cpp
index 935af106c14..e588fb72a7e 100644
--- a/src/mame/video/playch10.cpp
+++ b/src/mame/video/playch10.cpp
@@ -76,7 +76,7 @@ void playch10_state::video_start()
const uint8_t *bios = memregion("maincpu")->base();
m_pc10_bios = (bios[3] == 0x2a) ? 1 : 2;
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(playch10_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS,
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(playch10_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS,
8, 8, 32, 32);
}
@@ -85,7 +85,7 @@ VIDEO_START_MEMBER(playch10_state,playch10_hboard)
const uint8_t *bios = memregion("maincpu")->base();
m_pc10_bios = (bios[3] == 0x2a) ? 1 : 2;
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(playch10_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS,
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(playch10_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS,
8, 8, 32, 32);
}
diff --git a/src/mame/video/playmark.cpp b/src/mame/video/playmark.cpp
index 73d2ef93526..7294bc50ee6 100644
--- a/src/mame/video/playmark.cpp
+++ b/src/mame/video/playmark.cpp
@@ -92,8 +92,8 @@ TILE_GET_INFO_MEMBER(playmark_state::bigtwinb_get_tx_tile_info)
VIDEO_START_MEMBER(playmark_state,bigtwin)
{
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(playmark_state::bigtwin_get_tx_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(playmark_state::bigtwin_get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(playmark_state::bigtwin_get_tx_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(playmark_state::bigtwin_get_fg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
m_tx_tilemap->set_transparent_pen(0);
@@ -108,9 +108,9 @@ VIDEO_START_MEMBER(playmark_state,bigtwin)
VIDEO_START_MEMBER(playmark_state,bigtwinb)
{
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(playmark_state::bigtwinb_get_tx_tile_info),this),TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(playmark_state::hrdtimes_get_fg_tile_info),this),TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(playmark_state::hrdtimes_get_bg_tile_info),this),TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(playmark_state::bigtwinb_get_tx_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(playmark_state::hrdtimes_get_fg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(playmark_state::hrdtimes_get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
m_tx_tilemap->set_transparent_pen(0);
m_fg_tilemap->set_transparent_pen(0);
@@ -128,9 +128,9 @@ VIDEO_START_MEMBER(playmark_state,bigtwinb)
VIDEO_START_MEMBER(playmark_state,wbeachvl)
{
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(playmark_state::wbeachvl_get_tx_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(playmark_state::wbeachvl_get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(playmark_state::wbeachvl_get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(playmark_state::wbeachvl_get_tx_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(playmark_state::wbeachvl_get_fg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(playmark_state::wbeachvl_get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
m_tx_tilemap->set_transparent_pen(0);
m_fg_tilemap->set_transparent_pen(0);
@@ -145,8 +145,8 @@ VIDEO_START_MEMBER(playmark_state,wbeachvl)
VIDEO_START_MEMBER(playmark_state,excelsr)
{
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(playmark_state::bigtwin_get_tx_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(playmark_state::bigtwin_get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(playmark_state::bigtwin_get_tx_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(playmark_state::bigtwin_get_fg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
m_tx_tilemap->set_transparent_pen(0);
@@ -160,9 +160,9 @@ VIDEO_START_MEMBER(playmark_state,excelsr)
VIDEO_START_MEMBER(playmark_state,hotmind)
{
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(playmark_state::hrdtimes_get_tx_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(playmark_state::hrdtimes_get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(playmark_state::hrdtimes_get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(playmark_state::hrdtimes_get_tx_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(playmark_state::hrdtimes_get_fg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(playmark_state::hrdtimes_get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
m_tx_tilemap->set_transparent_pen(0);
m_fg_tilemap->set_transparent_pen(0);
@@ -181,9 +181,9 @@ VIDEO_START_MEMBER(playmark_state,hotmind)
VIDEO_START_MEMBER(playmark_state,luckboomh)
{
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(playmark_state::hrdtimes_get_tx_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(playmark_state::hrdtimes_get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(playmark_state::hrdtimes_get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(playmark_state::hrdtimes_get_tx_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(playmark_state::hrdtimes_get_fg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(playmark_state::hrdtimes_get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
m_tx_tilemap->set_transparent_pen(0);
m_fg_tilemap->set_transparent_pen(0);
@@ -221,9 +221,9 @@ TILEMAP_MAPPER_MEMBER(playmark_state::playmark_tilemap_scan_pages)
VIDEO_START_MEMBER(playmark_state,hrdtimes)
{
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(playmark_state::hrdtimes_get_tx_tile_info),this),TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(playmark_state::hrdtimes_get_fg_tile_info),this),tilemap_mapper_delegate(FUNC(playmark_state::playmark_tilemap_scan_pages),this), 16, 16, 128, 32);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(playmark_state::hrdtimes_get_bg_tile_info),this),TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(playmark_state::hrdtimes_get_tx_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(playmark_state::hrdtimes_get_fg_tile_info)), tilemap_mapper_delegate(*this, FUNC(playmark_state::playmark_tilemap_scan_pages)), 16, 16, 128, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(playmark_state::hrdtimes_get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
m_tx_tilemap->set_transparent_pen(0);
m_fg_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/plygonet.cpp b/src/mame/video/plygonet.cpp
index 51eecb0358e..390be8274f1 100644
--- a/src/mame/video/plygonet.cpp
+++ b/src/mame/video/plygonet.cpp
@@ -105,12 +105,12 @@ void polygonet_state::video_start()
m_gfxdecode->set_gfx(m_ttl_gfx_index, std::make_unique<gfx_element>(m_palette, charlayout, memregion("gfx1")->base(), 0, m_palette->entries() / 16, 0));
/* create the tilemap */
- m_ttl_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(polygonet_state::ttl_get_tile_info),this), tilemap_mapper_delegate(FUNC(polygonet_state::plygonet_scan),this), 8, 8, 64, 32);
+ m_ttl_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(polygonet_state::ttl_get_tile_info)), tilemap_mapper_delegate(*this, FUNC(polygonet_state::plygonet_scan)), 8, 8, 64, 32);
m_ttl_tilemap->set_transparent_pen(0);
/* set up the roz t-map too */
- m_roz_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(polygonet_state::roz_get_tile_info),this), tilemap_mapper_delegate(FUNC(polygonet_state::plygonet_scan_cols),this), 16, 16, 32, 64);
+ m_roz_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(polygonet_state::roz_get_tile_info)), tilemap_mapper_delegate(*this, FUNC(polygonet_state::plygonet_scan_cols)), 16, 16, 32, 64);
m_roz_tilemap->set_transparent_pen(0);
/* save states */
diff --git a/src/mame/video/pokechmp.cpp b/src/mame/video/pokechmp.cpp
index 29be909ca0b..1d55064a01a 100644
--- a/src/mame/video/pokechmp.cpp
+++ b/src/mame/video/pokechmp.cpp
@@ -34,7 +34,7 @@ TILE_GET_INFO_MEMBER(pokechmp_state::get_bg_tile_info)
void pokechmp_state::video_start()
{
m_bg_tilemap = &machine().tilemap().create(
- *m_gfxdecode, tilemap_get_info_delegate(FUNC(pokechmp_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS,
+ *m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(pokechmp_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS,
8, 8, 32, 32);
}
diff --git a/src/mame/video/polepos.cpp b/src/mame/video/polepos.cpp
index e3171c229c3..8b6e4d381eb 100644
--- a/src/mame/video/polepos.cpp
+++ b/src/mame/video/polepos.cpp
@@ -188,8 +188,8 @@ TILE_GET_INFO_MEMBER(polepos_state::tx_get_tile_info)
void polepos_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(polepos_state::bg_get_tile_info),this),TILEMAP_SCAN_COLS,8,8,64,16);
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(polepos_state::tx_get_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(polepos_state::bg_get_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 64, 16);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(polepos_state::tx_get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_tx_tilemap->configure_groups(*m_gfxdecode->gfx(0), 0x2f);
diff --git a/src/mame/video/poolshrk.cpp b/src/mame/video/poolshrk.cpp
index cb396c94bce..973da751bda 100644
--- a/src/mame/video/poolshrk.cpp
+++ b/src/mame/video/poolshrk.cpp
@@ -20,7 +20,7 @@ TILE_GET_INFO_MEMBER(poolshrk_state::get_tile_info)
void poolshrk_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(poolshrk_state::get_tile_info),this), TILEMAP_SCAN_ROWS,
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(poolshrk_state::get_tile_info)), TILEMAP_SCAN_ROWS,
8, 8, 32, 32);
m_bg_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/pooyan.cpp b/src/mame/video/pooyan.cpp
index e1fbc6f2875..cbe34704d3c 100644
--- a/src/mame/video/pooyan.cpp
+++ b/src/mame/video/pooyan.cpp
@@ -113,7 +113,7 @@ TILE_GET_INFO_MEMBER(pooyan_state::get_bg_tile_info)
void pooyan_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(pooyan_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(pooyan_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
diff --git a/src/mame/video/popeye.cpp b/src/mame/video/popeye.cpp
index b5052e8a1b6..ed18ca725ae 100644
--- a/src/mame/video/popeye.cpp
+++ b/src/mame/video/popeye.cpp
@@ -245,7 +245,7 @@ void tnx1_state::video_start()
m_sprite_bitmap = std::make_unique<bitmap_ind16>(512, 512);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tnx1_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tnx1_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
m_fg_tilemap->set_transparent_pen(0);
m_field = 0;
diff --git a/src/mame/video/portrait.cpp b/src/mame/video/portrait.cpp
index b7a387c8aa5..46eb33b7d45 100644
--- a/src/mame/video/portrait.cpp
+++ b/src/mame/video/portrait.cpp
@@ -66,8 +66,8 @@ TILE_GET_INFO_MEMBER(portrait_state::get_fg_tile_info)
void portrait_state::video_start()
{
- m_background = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(portrait_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32 );
- m_foreground = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(portrait_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32 );
+ m_background = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(portrait_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_foreground = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(portrait_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
m_foreground->set_transparent_pen(7);
diff --git a/src/mame/video/powerins.cpp b/src/mame/video/powerins.cpp
index 372a27d515e..18accbb4169 100644
--- a/src/mame/video/powerins.cpp
+++ b/src/mame/video/powerins.cpp
@@ -149,8 +149,8 @@ void powerins_state::video_start()
m_spritebuffer[0] = make_unique_clear<uint16_t[]>(0x1000/2);
m_spritebuffer[1] = make_unique_clear<uint16_t[]>(0x1000/2);
- m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(powerins_state::get_tile_info_0),this),tilemap_mapper_delegate(FUNC(powerins_state::get_memory_offset_0),this),16,16,256,32);
- m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(powerins_state::get_tile_info_1),this),TILEMAP_SCAN_COLS,8,8,64,32);
+ m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(powerins_state::get_tile_info_0)), tilemap_mapper_delegate(*this, FUNC(powerins_state::get_memory_offset_0)), 16, 16, 256, 32);
+ m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(powerins_state::get_tile_info_1)), TILEMAP_SCAN_COLS, 8, 8, 64, 32);
m_tilemap[1]->set_transparent_pen(15);
diff --git a/src/mame/video/prehisle.cpp b/src/mame/video/prehisle.cpp
index dc4289e520d..b545ff0b02d 100644
--- a/src/mame/video/prehisle.cpp
+++ b/src/mame/video/prehisle.cpp
@@ -101,7 +101,7 @@ void prehisle_state::video_start()
// ROM-based background layer
m_bg_tilemap = &machine().tilemap().create(
*m_gfxdecode,
- tilemap_get_info_delegate(FUNC(prehisle_state::get_bg_tile_info), this),
+ tilemap_get_info_delegate(*this, FUNC(prehisle_state::get_bg_tile_info)),
TILEMAP_SCAN_COLS, // scan order
16, 16, // tile size
1024, 32); // tilemap size
@@ -109,7 +109,7 @@ void prehisle_state::video_start()
// RAM-based foreground layer (overlays most sprites)
m_fg_tilemap = &machine().tilemap().create(
*m_gfxdecode,
- tilemap_get_info_delegate(FUNC(prehisle_state::get_fg_tile_info), this),
+ tilemap_get_info_delegate(*this, FUNC(prehisle_state::get_fg_tile_info)),
TILEMAP_SCAN_COLS, // scan order
16, 16, // tile size
256, 32); // tilemap size
@@ -118,7 +118,7 @@ void prehisle_state::video_start()
// text layer
m_tx_tilemap = &machine().tilemap().create(
*m_gfxdecode,
- tilemap_get_info_delegate(FUNC(prehisle_state::get_tx_tile_info), this),
+ tilemap_get_info_delegate(*this, FUNC(prehisle_state::get_tx_tile_info)),
TILEMAP_SCAN_ROWS, // scan order
8, 8, // tile size
32, 32); // tilemap size
diff --git a/src/mame/video/psikyo.cpp b/src/mame/video/psikyo.cpp
index 96cbbe08e5a..75ad95db0d2 100644
--- a/src/mame/video/psikyo.cpp
+++ b/src/mame/video/psikyo.cpp
@@ -103,8 +103,8 @@ VIDEO_START_MEMBER(psikyo_state,psikyo)
for (int size = 0; size < 4; size++)
{
- m_tilemap[0][size] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(psikyo_state::get_tile_info<0>),this), TILEMAP_SCAN_ROWS, 16, 16, 0x20 << size, 0x80 >> size);
- m_tilemap[1][size] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(psikyo_state::get_tile_info<1>),this), TILEMAP_SCAN_ROWS, 16, 16, 0x20 << size, 0x80 >> size);
+ m_tilemap[0][size] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(psikyo_state::get_tile_info<0>)), TILEMAP_SCAN_ROWS, 16, 16, 0x20 << size, 0x80 >> size);
+ m_tilemap[1][size] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(psikyo_state::get_tile_info<1>)), TILEMAP_SCAN_ROWS, 16, 16, 0x20 << size, 0x80 >> size);
for (int layer = 0; layer < 2; layer++)
{
diff --git a/src/mame/video/psychic5.cpp b/src/mame/video/psychic5.cpp
index 8d03ab5d549..863f2ed59e7 100644
--- a/src/mame/video/psychic5.cpp
+++ b/src/mame/video/psychic5.cpp
@@ -188,8 +188,8 @@ VIDEO_START_MEMBER(psychic5_state,psychic5)
{
video_start();
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(psychic5_state::get_bg_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 64, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(psychic5_state::get_fg_tile_info),this), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(psychic5_state::get_bg_tile_info)), TILEMAP_SCAN_COLS, 16, 16, 64, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(psychic5_state::get_fg_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(15);
save_item(NAME(m_title_screen));
@@ -200,8 +200,8 @@ VIDEO_START_MEMBER(psychic5_state,bombsa)
{
video_start();
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(psychic5_state::get_bg_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 128, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(psychic5_state::get_fg_tile_info),this), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(psychic5_state::get_bg_tile_info)), TILEMAP_SCAN_COLS, 16, 16, 128, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(psychic5_state::get_fg_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(15);
save_item(NAME(m_bombsa_unknown));
diff --git a/src/mame/video/punchout.cpp b/src/mame/video/punchout.cpp
index 8d64b464376..fa3285eaa40 100644
--- a/src/mame/video/punchout.cpp
+++ b/src/mame/video/punchout.cpp
@@ -96,12 +96,12 @@ TILEMAP_MAPPER_MEMBER(punchout_state::armwrest_bs1_scan_flipx)
void punchout_state::video_start()
{
- m_bg_top_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(punchout_state::top_get_info),this), TILEMAP_SCAN_ROWS, 8,8, 32,32);
- m_bg_bot_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(punchout_state::bot_get_info),this), TILEMAP_SCAN_ROWS, 8,8, 64,32);
+ m_bg_top_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(punchout_state::top_get_info)), TILEMAP_SCAN_ROWS, 8,8, 32,32);
+ m_bg_bot_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(punchout_state::bot_get_info)), TILEMAP_SCAN_ROWS, 8,8, 64,32);
m_bg_bot_tilemap->set_scroll_rows(32);
- m_spr1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(punchout_state::bs1_get_info),this), TILEMAP_SCAN_ROWS, 8,8, 16,32);
- m_spr2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(punchout_state::bs2_get_info),this), TILEMAP_SCAN_ROWS, 8,8, 16,32);
+ m_spr1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(punchout_state::bs1_get_info)), TILEMAP_SCAN_ROWS, 8,8, 16,32);
+ m_spr2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(punchout_state::bs2_get_info)), TILEMAP_SCAN_ROWS, 8,8, 16,32);
m_fg_tilemap = nullptr;
@@ -112,13 +112,13 @@ void punchout_state::video_start()
VIDEO_START_MEMBER(punchout_state,armwrest)
{
- m_bg_top_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(punchout_state::armwrest_top_get_info),this), TILEMAP_SCAN_ROWS, 8,8, 32,32);
- m_bg_bot_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(punchout_state::armwrest_bot_get_info),this), TILEMAP_SCAN_ROWS, 8,8, 32,32);
+ m_bg_top_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(punchout_state::armwrest_top_get_info)), TILEMAP_SCAN_ROWS, 8,8, 32,32);
+ m_bg_bot_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(punchout_state::armwrest_bot_get_info)), TILEMAP_SCAN_ROWS, 8,8, 32,32);
- m_spr1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(punchout_state::bs1_get_info),this), tilemap_mapper_delegate(FUNC(punchout_state::armwrest_bs1_scan),this), 8,8, 32,16);
- m_spr1_tilemap_flipx = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(punchout_state::bs1_get_info),this), tilemap_mapper_delegate(FUNC(punchout_state::armwrest_bs1_scan_flipx),this), 8,8, 32,16);
- m_spr2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(punchout_state::bs2_get_info),this), TILEMAP_SCAN_ROWS, 8,8, 16,32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(punchout_state::armwrest_fg_get_info),this), TILEMAP_SCAN_ROWS, 8,8, 32,32);
+ m_spr1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(punchout_state::bs1_get_info)), tilemap_mapper_delegate(*this, FUNC(punchout_state::armwrest_bs1_scan)), 8,8, 32,16);
+ m_spr1_tilemap_flipx = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(punchout_state::bs1_get_info)), tilemap_mapper_delegate(*this, FUNC(punchout_state::armwrest_bs1_scan_flipx)), 8,8, 32,16);
+ m_spr2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(punchout_state::bs2_get_info)), TILEMAP_SCAN_ROWS, 8,8, 16,32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(punchout_state::armwrest_fg_get_info)), TILEMAP_SCAN_ROWS, 8,8, 32,32);
m_spr1_tilemap->set_transparent_pen(0x07);
m_spr1_tilemap_flipx->set_transparent_pen(0x07);
diff --git a/src/mame/video/qix.cpp b/src/mame/video/qix.cpp
index 07d2af06ede..62eeb26c27d 100644
--- a/src/mame/video/qix.cpp
+++ b/src/mame/video/qix.cpp
@@ -8,9 +8,10 @@
***************************************************************************/
#include "emu.h"
-#include "video/mc6845.h"
#include "includes/qix.h"
+
#include "cpu/m6809/m6809.h"
+#include "video/mc6845.h"
/*************************************
@@ -389,14 +390,14 @@ void qix_state::qix_video(machine_config &config)
m_crtc->set_screen(m_screen);
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8);
- m_crtc->set_begin_update_callback(FUNC(qix_state::crtc_begin_update), this);
- m_crtc->set_update_row_callback(FUNC(qix_state::crtc_update_row), this);
+ m_crtc->set_begin_update_callback(FUNC(qix_state::crtc_begin_update));
+ m_crtc->set_update_row_callback(FUNC(qix_state::crtc_update_row));
m_crtc->out_de_callback().set(FUNC(qix_state::display_enable_changed));
m_crtc->out_vsync_callback().set(FUNC(qix_state::qix_vsync_changed));
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
m_screen->set_raw(QIX_CHARACTER_CLOCK*8, 0x148, 0, 0x100, 0x111, 0, 0x100); /* from CRTC */
- m_screen->set_screen_update("vid_u18", FUNC(mc6845_device::screen_update));
+ m_screen->set_screen_update(m_crtc, FUNC(mc6845_device::screen_update));
}
void qix_state::kram3_video(machine_config &config)
diff --git a/src/mame/video/quizdna.cpp b/src/mame/video/quizdna.cpp
index ce4f2911194..9ed8ad933f1 100644
--- a/src/mame/video/quizdna.cpp
+++ b/src/mame/video/quizdna.cpp
@@ -56,10 +56,10 @@ void quizdna_state::video_start()
m_bg_ram = std::make_unique<uint8_t[]>(0x2000);
m_fg_ram = std::make_unique<uint8_t[]>(0x1000);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(quizdna_state::get_bg_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,32 );
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(quizdna_state::get_fg_tile_info),this),TILEMAP_SCAN_ROWS,16,8,32,32 );
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(quizdna_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(quizdna_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 16, 8, 32, 32);
- m_fg_tilemap->set_transparent_pen(0 );
+ m_fg_tilemap->set_transparent_pen(0);
save_pointer(NAME(m_bg_ram), 0x2000);
save_pointer(NAME(m_fg_ram), 0x1000);
diff --git a/src/mame/video/quizpani.cpp b/src/mame/video/quizpani.cpp
index 671de543a67..17770ae670c 100644
--- a/src/mame/video/quizpani.cpp
+++ b/src/mame/video/quizpani.cpp
@@ -68,8 +68,8 @@ WRITE16_MEMBER(quizpani_state::tilesbank_w)
void quizpani_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(quizpani_state::bg_tile_info),this), tilemap_mapper_delegate(FUNC(quizpani_state::bg_scan),this),16,16,256,32);
- m_txt_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(quizpani_state::txt_tile_info),this),tilemap_mapper_delegate(FUNC(quizpani_state::bg_scan),this),16,16,256,32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(quizpani_state::bg_tile_info)), tilemap_mapper_delegate(*this, FUNC(quizpani_state::bg_scan)), 16,16, 256,32);
+ m_txt_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(quizpani_state::txt_tile_info)), tilemap_mapper_delegate(*this, FUNC(quizpani_state::bg_scan)), 16,16, 256,32);
m_txt_tilemap->set_transparent_pen(15);
save_item(NAME(m_bgbank));
diff --git a/src/mame/video/raiden.cpp b/src/mame/video/raiden.cpp
index 2b55df6e67d..430d4ea1cf7 100644
--- a/src/mame/video/raiden.cpp
+++ b/src/mame/video/raiden.cpp
@@ -224,9 +224,9 @@ TILE_GET_INFO_MEMBER(raiden_state::get_text_tile_info)
void raiden_state::video_start()
{
- m_bg_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(raiden_state::get_back_tile_info),this),TILEMAP_SCAN_COLS,16,16,32,32);
- m_fg_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(raiden_state::get_fore_tile_info),this),TILEMAP_SCAN_COLS,16,16,32,32);
- m_tx_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(raiden_state::get_text_tile_info),this),TILEMAP_SCAN_ROWS,8, 8, 32,32);
+ m_bg_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(raiden_state::get_back_tile_info)), TILEMAP_SCAN_COLS, 16,16, 32,32);
+ m_fg_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(raiden_state::get_fore_tile_info)), TILEMAP_SCAN_COLS, 16,16, 32,32);
+ m_tx_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(raiden_state::get_text_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32,32);
m_fg_layer->set_transparent_pen(15);
m_tx_layer->set_transparent_pen(15);
@@ -240,9 +240,9 @@ void raiden_state::video_start()
VIDEO_START_MEMBER(raiden_state,raidenb)
{
- m_bg_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(raiden_state::get_back_tile_info),this),TILEMAP_SCAN_COLS,16,16,32,32);
- m_fg_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(raiden_state::get_fore_tile_info),this),TILEMAP_SCAN_COLS,16,16,32,32);
- m_tx_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(raiden_state::get_text_tile_info),this),TILEMAP_SCAN_COLS,8, 8, 32,32);
+ m_bg_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(raiden_state::get_back_tile_info)), TILEMAP_SCAN_COLS, 16,16, 32,32);
+ m_fg_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(raiden_state::get_fore_tile_info)), TILEMAP_SCAN_COLS, 16,16, 32,32);
+ m_tx_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(raiden_state::get_text_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 32,32);
m_fg_layer->set_transparent_pen(15);
m_tx_layer->set_transparent_pen(15);
diff --git a/src/mame/video/raiden2.cpp b/src/mame/video/raiden2.cpp
index 116ef9c0e78..a7237a49c6b 100644
--- a/src/mame/video/raiden2.cpp
+++ b/src/mame/video/raiden2.cpp
@@ -311,10 +311,10 @@ void raiden2_state::video_start()
save_pointer(NAME(m_text_data), 0x1000/2);
save_pointer(NAME(m_palette_data), 0x1000/2);
- m_text_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(raiden2_state::get_text_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64,32 );
- m_background_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(raiden2_state::get_back_tile_info),this), TILEMAP_SCAN_ROWS, 16,16, 32,32 );
- m_midground_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(raiden2_state::get_mid_tile_info),this), TILEMAP_SCAN_ROWS, 16,16, 32,32 );
- m_foreground_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(raiden2_state::get_fore_tile_info),this), TILEMAP_SCAN_ROWS, 16,16, 32,32 );
+ m_text_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(raiden2_state::get_text_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64,32 );
+ m_background_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(raiden2_state::get_back_tile_info)), TILEMAP_SCAN_ROWS, 16,16, 32,32 );
+ m_midground_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(raiden2_state::get_mid_tile_info)), TILEMAP_SCAN_ROWS, 16,16, 32,32 );
+ m_foreground_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(raiden2_state::get_fore_tile_info)), TILEMAP_SCAN_ROWS, 16,16, 32,32 );
}
void raiden2_state::blend_layer(bitmap_rgb32 &bitmap, const rectangle &cliprect, bitmap_ind16 &source, int layer)
diff --git a/src/mame/video/rallyx.cpp b/src/mame/video/rallyx.cpp
index 0823b3fc8e7..f89fc48442a 100644
--- a/src/mame/video/rallyx.cpp
+++ b/src/mame/video/rallyx.cpp
@@ -327,8 +327,8 @@ void rallyx_state::rallyx_video_start_common( )
VIDEO_START_MEMBER(rallyx_state,rallyx)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(rallyx_state::rallyx_bg_get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(rallyx_state::rallyx_fg_get_tile_info),this), tilemap_mapper_delegate(FUNC(rallyx_state::fg_tilemap_scan),this), 8, 8, 8, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(rallyx_state::rallyx_bg_get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(rallyx_state::rallyx_fg_get_tile_info)), tilemap_mapper_delegate(*this, FUNC(rallyx_state::fg_tilemap_scan)), 8, 8, 8, 32);
/* the scrolling tilemap is slightly misplaced in Rally X */
m_bg_tilemap->set_scrolldx(3, 3);
@@ -341,8 +341,8 @@ VIDEO_START_MEMBER(rallyx_state,rallyx)
VIDEO_START_MEMBER(rallyx_state,jungler)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(rallyx_state::rallyx_bg_get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(rallyx_state::rallyx_fg_get_tile_info),this), tilemap_mapper_delegate(FUNC(rallyx_state::fg_tilemap_scan),this), 8, 8, 8, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(rallyx_state::rallyx_bg_get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(rallyx_state::rallyx_fg_get_tile_info)), tilemap_mapper_delegate(*this, FUNC(rallyx_state::fg_tilemap_scan)), 8, 8, 8, 32);
m_spriteram_base = 0x14;
@@ -353,8 +353,8 @@ VIDEO_START_MEMBER(rallyx_state,jungler)
VIDEO_START_MEMBER(rallyx_state,locomotn)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(rallyx_state::locomotn_bg_get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(rallyx_state::locomotn_fg_get_tile_info),this), tilemap_mapper_delegate(FUNC(rallyx_state::fg_tilemap_scan),this), 8, 8, 8, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(rallyx_state::locomotn_bg_get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(rallyx_state::locomotn_fg_get_tile_info)), tilemap_mapper_delegate(*this, FUNC(rallyx_state::fg_tilemap_scan)), 8, 8, 8, 32);
m_spriteram_base = 0x14;
@@ -365,8 +365,8 @@ VIDEO_START_MEMBER(rallyx_state,locomotn)
VIDEO_START_MEMBER(rallyx_state,commsega)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(rallyx_state::locomotn_bg_get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(rallyx_state::locomotn_fg_get_tile_info),this), tilemap_mapper_delegate(FUNC(rallyx_state::fg_tilemap_scan),this), 8, 8, 8, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(rallyx_state::locomotn_bg_get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(rallyx_state::locomotn_fg_get_tile_info)), tilemap_mapper_delegate(*this, FUNC(rallyx_state::fg_tilemap_scan)), 8, 8, 8, 32);
/* commsega has more sprites and bullets than the other games */
m_spriteram_base = 0x00;
diff --git a/src/mame/video/realbrk.cpp b/src/mame/video/realbrk.cpp
index 5edd7558a2c..a0ad8393805 100644
--- a/src/mame/video/realbrk.cpp
+++ b/src/mame/video/realbrk.cpp
@@ -121,11 +121,11 @@ void realbrk_state::vram_2_w(offs_t offset, u16 data, u16 mem_mask)
void realbrk_state::video_start()
{
/* Backgrounds */
- m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(realbrk_state::get_tile_info<0>),this), TILEMAP_SCAN_ROWS, 16, 16, 0x40, 0x20);
- m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(realbrk_state::get_tile_info<1>),this), TILEMAP_SCAN_ROWS, 16, 16, 0x40, 0x20);
+ m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(realbrk_state::get_tile_info<0>)), TILEMAP_SCAN_ROWS, 16, 16, 0x40, 0x20);
+ m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(realbrk_state::get_tile_info<1>)), TILEMAP_SCAN_ROWS, 16, 16, 0x40, 0x20);
/* Text */
- m_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(realbrk_state::get_tile_info_2),this), TILEMAP_SCAN_ROWS, 8, 8, 0x40, 0x20);
+ m_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(realbrk_state::get_tile_info_2)), TILEMAP_SCAN_ROWS, 8, 8, 0x40, 0x20);
m_tilemap[0]->set_transparent_pen(0);
m_tilemap[1]->set_transparent_pen(0);
diff --git a/src/mame/video/redclash.cpp b/src/mame/video/redclash.cpp
index 7737b711fe3..fb7ab34796a 100644
--- a/src/mame/video/redclash.cpp
+++ b/src/mame/video/redclash.cpp
@@ -134,7 +134,7 @@ TILE_GET_INFO_MEMBER(redclash_state::get_fg_tile_info)
void redclash_state::video_start()
{
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(redclash_state::get_fg_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(redclash_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(0);
}
diff --git a/src/mame/video/renegade.cpp b/src/mame/video/renegade.cpp
index 6ecfa8e3016..561f4e20947 100644
--- a/src/mame/video/renegade.cpp
+++ b/src/mame/video/renegade.cpp
@@ -59,8 +59,8 @@ TILE_GET_INFO_MEMBER(renegade_state::get_fg_tilemap_info)
void renegade_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(renegade_state::get_bg_tilemap_info),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 16);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(renegade_state::get_fg_tilemap_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(renegade_state::get_bg_tilemap_info)), TILEMAP_SCAN_ROWS, 16, 16, 64, 16);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(renegade_state::get_fg_tilemap_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(0);
m_bg_tilemap->set_scrolldx(256, 0);
diff --git a/src/mame/video/retofinv.cpp b/src/mame/video/retofinv.cpp
index c539adae368..5497f93d52e 100644
--- a/src/mame/video/retofinv.cpp
+++ b/src/mame/video/retofinv.cpp
@@ -124,8 +124,8 @@ TILE_GET_INFO_MEMBER(retofinv_state::fg_get_tile_info)
void retofinv_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(retofinv_state::bg_get_tile_info),this),tilemap_mapper_delegate(FUNC(retofinv_state::tilemap_scan),this),8,8,36,28);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(retofinv_state::fg_get_tile_info),this),tilemap_mapper_delegate(FUNC(retofinv_state::tilemap_scan),this),8,8,36,28);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(retofinv_state::bg_get_tile_info)), tilemap_mapper_delegate(*this, FUNC(retofinv_state::tilemap_scan)), 8, 8, 36, 28);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(retofinv_state::fg_get_tile_info)), tilemap_mapper_delegate(*this, FUNC(retofinv_state::tilemap_scan)), 8, 8, 36, 28);
m_fg_tilemap->configure_groups(*m_gfxdecode->gfx(0), 0);
diff --git a/src/mame/video/rocnrope.cpp b/src/mame/video/rocnrope.cpp
index f8a253cddec..cce2c4cfec2 100644
--- a/src/mame/video/rocnrope.cpp
+++ b/src/mame/video/rocnrope.cpp
@@ -109,7 +109,7 @@ TILE_GET_INFO_MEMBER(rocnrope_state::get_bg_tile_info)
void rocnrope_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(rocnrope_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(rocnrope_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
void rocnrope_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect )
diff --git a/src/mame/video/rollrace.cpp b/src/mame/video/rollrace.cpp
index 408a6aca06d..22e33b03bc1 100644
--- a/src/mame/video/rollrace.cpp
+++ b/src/mame/video/rollrace.cpp
@@ -22,7 +22,7 @@ TILE_GET_INFO_MEMBER(rollrace_state::get_fg_tile_info)
void rollrace_state::video_start()
{
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(rollrace_state::get_fg_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32 );
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(rollrace_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(0);
m_fg_tilemap->set_scroll_cols(32);
diff --git a/src/mame/video/rpunch.cpp b/src/mame/video/rpunch.cpp
index e52a0516db8..28b829bd959 100644
--- a/src/mame/video/rpunch.cpp
+++ b/src/mame/video/rpunch.cpp
@@ -71,8 +71,8 @@ VIDEO_START_MEMBER(rpunch_state,rpunch)
m_sprite_xoffs = 0;
/* allocate tilemaps for the backgrounds */
- m_background[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(rpunch_state::get_bg0_tile_info),this),TILEMAP_SCAN_COLS,8,8,64,64);
- m_background[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(rpunch_state::get_bg1_tile_info),this),TILEMAP_SCAN_COLS,8,8,64,64);
+ m_background[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(rpunch_state::get_bg0_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 64, 64);
+ m_background[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(rpunch_state::get_bg1_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 64, 64);
/* configure the tilemaps */
m_background[1]->set_transparent_pen(15);
diff --git a/src/mame/video/runaway.cpp b/src/mame/video/runaway.cpp
index 01fdecad60a..218ba16bb13 100644
--- a/src/mame/video/runaway.cpp
+++ b/src/mame/video/runaway.cpp
@@ -69,7 +69,7 @@ TILE_GET_INFO_MEMBER(runaway_state::qwak_get_tile_info)
void runaway_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(runaway_state::runaway_get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 30);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(runaway_state::runaway_get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 30);
save_item(NAME(m_tile_bank));
}
@@ -77,7 +77,7 @@ void runaway_state::video_start()
VIDEO_START_MEMBER(runaway_state,qwak)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(runaway_state::qwak_get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 30);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(runaway_state::qwak_get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 30);
save_item(NAME(m_tile_bank));
}
diff --git a/src/mame/video/rungun.cpp b/src/mame/video/rungun.cpp
index 3dd606422aa..607f970608f 100644
--- a/src/mame/video/rungun.cpp
+++ b/src/mame/video/rungun.cpp
@@ -101,11 +101,11 @@ void rungun_state::video_start()
// create the tilemaps
for(uint32_t screen_num = 0;screen_num < 2;screen_num++)
{
- m_ttl_tilemap[screen_num] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(rungun_state::ttl_get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_ttl_tilemap[screen_num] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(rungun_state::ttl_get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_ttl_tilemap[screen_num]->set_user_data((void *)(uintptr_t)(screen_num * 0x2000));
m_ttl_tilemap[screen_num]->set_transparent_pen(0);
- m_936_tilemap[screen_num] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(rungun_state::get_rng_936_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 128, 128);
+ m_936_tilemap[screen_num] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(rungun_state::get_rng_936_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 128, 128);
m_936_tilemap[screen_num]->set_user_data((void *)(uintptr_t)(screen_num * 0x80000));
m_936_tilemap[screen_num]->set_transparent_pen(0);
diff --git a/src/mame/video/sauro.cpp b/src/mame/video/sauro.cpp
index c6b7965e3e8..1a8bcb4c800 100644
--- a/src/mame/video/sauro.cpp
+++ b/src/mame/video/sauro.cpp
@@ -93,10 +93,10 @@ WRITE8_MEMBER(sauro_state::sauro_scroll_fg_w)
VIDEO_START_MEMBER(sauro_state,sauro)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sauro_state::get_tile_info_bg),this), TILEMAP_SCAN_COLS,
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sauro_state::get_tile_info_bg)), TILEMAP_SCAN_COLS,
8, 8, 32, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sauro_state::get_tile_info_fg),this), TILEMAP_SCAN_COLS,
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sauro_state::get_tile_info_fg)), TILEMAP_SCAN_COLS,
8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(0);
@@ -164,7 +164,7 @@ uint32_t sauro_state::screen_update_sauro(screen_device &screen, bitmap_ind16 &b
VIDEO_START_MEMBER(sauro_state,trckydoc)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sauro_state::get_tile_info_bg),this), TILEMAP_SCAN_COLS,
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sauro_state::get_tile_info_bg)), TILEMAP_SCAN_COLS,
8, 8, 32, 32);
}
diff --git a/src/mame/video/sbasketb.cpp b/src/mame/video/sbasketb.cpp
index f7fc1e0345c..c9adefe411b 100644
--- a/src/mame/video/sbasketb.cpp
+++ b/src/mame/video/sbasketb.cpp
@@ -124,7 +124,7 @@ TILE_GET_INFO_MEMBER(sbasketb_state::get_bg_tile_info)
void sbasketb_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sbasketb_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sbasketb_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_bg_tilemap->set_scroll_cols(32);
save_item(NAME(m_spriteram_select));
diff --git a/src/mame/video/sbugger.cpp b/src/mame/video/sbugger.cpp
index 168ac54788b..cedc1458cef 100644
--- a/src/mame/video/sbugger.cpp
+++ b/src/mame/video/sbugger.cpp
@@ -29,7 +29,7 @@ WRITE8_MEMBER(sbugger_state::videoram_attr_w)
void sbugger_state::video_start()
{
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sbugger_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 16, 64, 16);
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sbugger_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 16, 64, 16);
}
uint32_t sbugger_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
@@ -50,7 +50,5 @@ void sbugger_state::sbugger_palette(palette_device &palette) const
palette.set_pen_color(i*2+1, rgb_t(r, g, b));
palette.set_pen_color(i*2, rgb_t(0, 0, 0));
-
}
-
}
diff --git a/src/mame/video/scotrsht.cpp b/src/mame/video/scotrsht.cpp
index dd4ec24781d..b8ed76edc2c 100644
--- a/src/mame/video/scotrsht.cpp
+++ b/src/mame/video/scotrsht.cpp
@@ -115,7 +115,7 @@ void scotrsht_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprec
void scotrsht_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(scotrsht_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(scotrsht_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_bg_tilemap->set_scroll_cols(64);
diff --git a/src/mame/video/sderby.cpp b/src/mame/video/sderby.cpp
index 1b95d5e3307..14e9e847781 100644
--- a/src/mame/video/sderby.cpp
+++ b/src/mame/video/sderby.cpp
@@ -89,12 +89,12 @@ void sderby_state::draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect,i
void sderby_state::video_start()
{
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sderby_state::get_sderby_tile_info),this),TILEMAP_SCAN_ROWS, 16, 16,32,32);
- m_md_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sderby_state::get_sderby_md_tile_info),this),TILEMAP_SCAN_ROWS, 16, 16,32,32);
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sderby_state::get_sderby_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_md_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sderby_state::get_sderby_md_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
m_md_tilemap->set_transparent_pen(0);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sderby_state::get_sderby_fg_tile_info),this),TILEMAP_SCAN_ROWS, 8, 8,64,32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sderby_state::get_sderby_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_fg_tilemap->set_transparent_pen(0);
}
diff --git a/src/mame/video/segag80r.cpp b/src/mame/video/segag80r.cpp
index f1af8355cdf..d1e4d2e81a7 100644
--- a/src/mame/video/segag80r.cpp
+++ b/src/mame/video/segag80r.cpp
@@ -219,19 +219,19 @@ void segag80r_state::video_start()
/* and one vertically scrolling */
case G80_BACKGROUND_SPACEOD:
spaceod_bg_init_palette();
- m_spaceod_bg_htilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(segag80r_state::spaceod_get_tile_info),this), tilemap_mapper_delegate(FUNC(segag80r_state::spaceod_scan_rows),this), 8,8, 128,32);
- m_spaceod_bg_vtilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(segag80r_state::spaceod_get_tile_info),this), tilemap_mapper_delegate(FUNC(segag80r_state::spaceod_scan_rows),this), 8,8, 32,128);
+ m_spaceod_bg_htilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(segag80r_state::spaceod_get_tile_info)), tilemap_mapper_delegate(*this, FUNC(segag80r_state::spaceod_scan_rows)), 8,8, 128,32);
+ m_spaceod_bg_vtilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(segag80r_state::spaceod_get_tile_info)), tilemap_mapper_delegate(*this, FUNC(segag80r_state::spaceod_scan_rows)), 8,8, 32,128);
break;
/* background tilemap is effectively 1 screen x n screens */
case G80_BACKGROUND_MONSTERB:
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(segag80r_state::bg_get_tile_info),this), TILEMAP_SCAN_ROWS, 8,8, 32,memregion("gfx2")->bytes() / 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(segag80r_state::bg_get_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 32,memregion("gfx2")->bytes() / 32);
break;
/* background tilemap is effectively 4 screens x n screens */
case G80_BACKGROUND_PIGNEWT:
case G80_BACKGROUND_SINDBADM:
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(segag80r_state::bg_get_tile_info),this), TILEMAP_SCAN_ROWS, 8,8, 128,memregion("gfx2")->bytes() / 128);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(segag80r_state::bg_get_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 128,memregion("gfx2")->bytes() / 128);
break;
}
diff --git a/src/mame/video/segaic16.cpp b/src/mame/video/segaic16.cpp
index eb2a7535c30..a3068395a16 100644
--- a/src/mame/video/segaic16.cpp
+++ b/src/mame/video/segaic16.cpp
@@ -537,11 +537,11 @@ segaic16_video_device::segaic16_video_device(const machine_config &mconfig, cons
, m_tileram(*this, "^tileram")
, m_textram(*this, "^textram")
, m_rotateram(*this, "^rotateram")
+ , m_pagelatch_cb(*this, DEVICE_SELF, FUNC(segaic16_video_device::tilemap_16b_fill_latch))
, m_gfxdecode(*this, finder_base::DUMMY_TAG)
{
memset(m_rotate, 0, sizeof(m_rotate));
memset(m_bg_tilemap, 0, sizeof(m_bg_tilemap));
- m_pagelatch_cb = segaic16_video_pagelatch_delegate(FUNC(segaic16_video_device::tilemap_16b_fill_latch), this);
}
void segaic16_video_device::device_start()
@@ -551,7 +551,7 @@ void segaic16_video_device::device_start()
save_item(NAME(m_display_enable));
- m_pagelatch_cb.bind_relative_to(*owner());
+ m_pagelatch_cb.resolve();
}
void segaic16_video_device::device_reset()
@@ -1205,8 +1205,8 @@ static void tilemap_16b_reset(screen_device &screen, segaic16_video_device::tile
void segaic16_video_device::tilemap_init(int which, int type, int colorbase, int xoffs, int numbanks)
{
struct tilemap_info *info = &m_bg_tilemap[which];
- tilemap_get_info_delegate get_text_info;
- tilemap_get_info_delegate get_tile_info;
+ tilemap_get_info_delegate get_text_info(*this);
+ tilemap_get_info_delegate get_tile_info(*this);
int pagenum;
int i;
@@ -1235,8 +1235,8 @@ void segaic16_video_device::tilemap_init(int which, int type, int colorbase, int
switch (type)
{
case TILEMAP_HANGON:
- get_text_info = tilemap_get_info_delegate(FUNC(segaic16_video_device::tilemap_16a_text_info),this);
- get_tile_info = tilemap_get_info_delegate(FUNC(segaic16_video_device::tilemap_16a_tile_info),this);
+ get_text_info = tilemap_get_info_delegate(*this, FUNC(segaic16_video_device::tilemap_16a_text_info));
+ get_tile_info = tilemap_get_info_delegate(*this, FUNC(segaic16_video_device::tilemap_16a_tile_info));
info->numpages = 4;
info->draw_layer = tilemap_16a_draw_layer;
info->reset = nullptr;
@@ -1244,8 +1244,8 @@ void segaic16_video_device::tilemap_init(int which, int type, int colorbase, int
break;
case TILEMAP_16A:
- get_text_info = tilemap_get_info_delegate(FUNC(segaic16_video_device::tilemap_16a_text_info),this);
- get_tile_info = tilemap_get_info_delegate(FUNC(segaic16_video_device::tilemap_16a_tile_info),this);
+ get_text_info = tilemap_get_info_delegate(*this, FUNC(segaic16_video_device::tilemap_16a_text_info));
+ get_tile_info = tilemap_get_info_delegate(*this, FUNC(segaic16_video_device::tilemap_16a_tile_info));
info->numpages = 8;
info->draw_layer = tilemap_16a_draw_layer;
info->reset = nullptr;
@@ -1253,8 +1253,8 @@ void segaic16_video_device::tilemap_init(int which, int type, int colorbase, int
break;
case TILEMAP_16B:
- get_text_info = tilemap_get_info_delegate(FUNC(segaic16_video_device::tilemap_16b_text_info),this);
- get_tile_info = tilemap_get_info_delegate(FUNC(segaic16_video_device::tilemap_16b_tile_info),this);
+ get_text_info = tilemap_get_info_delegate(*this, FUNC(segaic16_video_device::tilemap_16b_text_info));
+ get_tile_info = tilemap_get_info_delegate(*this, FUNC(segaic16_video_device::tilemap_16b_tile_info));
info->numpages = 16;
info->draw_layer = tilemap_16b_draw_layer;
info->reset = tilemap_16b_reset;
@@ -1262,8 +1262,8 @@ void segaic16_video_device::tilemap_init(int which, int type, int colorbase, int
break;
case TILEMAP_16B_ALT:
- get_text_info = tilemap_get_info_delegate(FUNC(segaic16_video_device::tilemap_16b_alt_text_info),this);
- get_tile_info = tilemap_get_info_delegate(FUNC(segaic16_video_device::tilemap_16b_alt_tile_info),this);
+ get_text_info = tilemap_get_info_delegate(*this, FUNC(segaic16_video_device::tilemap_16b_alt_text_info));
+ get_tile_info = tilemap_get_info_delegate(*this, FUNC(segaic16_video_device::tilemap_16b_alt_tile_info));
info->numpages = 16;
info->draw_layer = tilemap_16b_draw_layer;
info->reset = tilemap_16b_reset;
diff --git a/src/mame/video/segaic16.h b/src/mame/video/segaic16.h
index 42ffb1539eb..e563a354d2d 100644
--- a/src/mame/video/segaic16.h
+++ b/src/mame/video/segaic16.h
@@ -129,7 +129,7 @@ public:
segaic16_video_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// configuration
- template <typename... T> void set_pagelatch_cb(T &&... args) { m_pagelatch_cb = segaic16_video_pagelatch_delegate(std::forward<T>(args)...); }
+ template <typename... T> void set_pagelatch_cb(T &&... args) { m_pagelatch_cb.set(std::forward<T>(args)...); }
uint8_t m_display_enable;
optional_shared_ptr<uint16_t> m_tileram;
diff --git a/src/mame/video/segaic24.cpp b/src/mame/video/segaic24.cpp
index 5a5f1d76a14..218c79e5bb7 100644
--- a/src/mame/video/segaic24.cpp
+++ b/src/mame/video/segaic24.cpp
@@ -81,10 +81,10 @@ void segas24_tile_device::device_start()
m_xhout_write_cb.resolve_safe();
m_xvout_write_cb.resolve_safe();
- tile_layer[0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(segas24_tile_device::tile_info_0s),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- tile_layer[1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(segas24_tile_device::tile_info_0w),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- tile_layer[2] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(segas24_tile_device::tile_info_1s),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- tile_layer[3] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(segas24_tile_device::tile_info_1w),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ tile_layer[0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(segas24_tile_device::tile_info_0s)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ tile_layer[1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(segas24_tile_device::tile_info_0w)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ tile_layer[2] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(segas24_tile_device::tile_info_1s)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ tile_layer[3] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(segas24_tile_device::tile_info_1w)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
tile_layer[0]->set_transparent_pen(0);
tile_layer[1]->set_transparent_pen(0);
diff --git a/src/mame/video/segas32.cpp b/src/mame/video/segas32.cpp
index 9d62e0a6627..14d4f97bbd0 100644
--- a/src/mame/video/segas32.cpp
+++ b/src/mame/video/segas32.cpp
@@ -217,7 +217,7 @@ void segas32_state::device_start()
{
struct cache_entry *entry = auto_alloc(machine(), struct cache_entry);
- entry->tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(segas32_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 16,16, 32,16);
+ entry->tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(segas32_state::get_tile_info)), TILEMAP_SCAN_ROWS, 16,16, 32,16);
entry->page = 0xff;
entry->bank = 0;
entry->next = m_cache_head;
diff --git a/src/mame/video/seibuspi.cpp b/src/mame/video/seibuspi.cpp
index 881f62946c7..dd4af0df45d 100644
--- a/src/mame/video/seibuspi.cpp
+++ b/src/mame/video/seibuspi.cpp
@@ -744,10 +744,10 @@ void seibuspi_state::video_start()
m_palette->basemem().set(&m_palette_ram[0], m_palette_ram_size, 32, ENDIANNESS_LITTLE, 2);
- m_text_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(seibuspi_state::get_text_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8,64,32);
- m_back_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(seibuspi_state::get_back_tile_info),this), TILEMAP_SCAN_COLS, 16,16,32,32);
- m_midl_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(seibuspi_state::get_midl_tile_info),this), TILEMAP_SCAN_COLS, 16,16,32,32);
- m_fore_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(seibuspi_state::get_fore_tile_info),this), TILEMAP_SCAN_COLS, 16,16,32,32);
+ m_text_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(seibuspi_state::get_text_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64,32);
+ m_back_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(seibuspi_state::get_back_tile_info)), TILEMAP_SCAN_COLS, 16,16, 32,32);
+ m_midl_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(seibuspi_state::get_midl_tile_info)), TILEMAP_SCAN_COLS, 16,16, 32,32);
+ m_fore_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(seibuspi_state::get_fore_tile_info)), TILEMAP_SCAN_COLS, 16,16, 32,32);
m_text_layer->set_transparent_pen(31);
m_back_layer->set_transparent_pen(63);
diff --git a/src/mame/video/seicross.cpp b/src/mame/video/seicross.cpp
index 5d8556f3a10..f9d43d0ee59 100644
--- a/src/mame/video/seicross.cpp
+++ b/src/mame/video/seicross.cpp
@@ -87,7 +87,7 @@ TILE_GET_INFO_MEMBER(seicross_state::get_bg_tile_info)
void seicross_state::video_start()
{
m_bg_tilemap = &machine().tilemap().create(
- *m_gfxdecode, tilemap_get_info_delegate(FUNC(seicross_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS,
+ *m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(seicross_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS,
8, 8, 32, 32);
m_bg_tilemap->set_scroll_cols(32);
diff --git a/src/mame/video/senjyo.cpp b/src/mame/video/senjyo.cpp
index 4478c221b69..0c2a66e6526 100644
--- a/src/mame/video/senjyo.cpp
+++ b/src/mame/video/senjyo.cpp
@@ -84,19 +84,19 @@ TILE_GET_INFO_MEMBER(senjyo_state::get_bg3_tile_info)
void senjyo_state::video_start()
{
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(senjyo_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(senjyo_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
if (m_is_senjyo)
{
- m_bg1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(senjyo_state::senjyo_bg1_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 16, 32);
- m_bg2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(senjyo_state::get_bg2_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 16, 48); /* only 16x32 used by Star Force */
- m_bg3_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(senjyo_state::get_bg3_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 16, 56); /* only 16x32 used by Star Force */
+ m_bg1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(senjyo_state::senjyo_bg1_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 16, 32);
+ m_bg2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(senjyo_state::get_bg2_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 16, 48); // only 16x32 used by Star Force
+ m_bg3_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(senjyo_state::get_bg3_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 16, 56); // only 16x32 used by Star Force
}
else
{
- m_bg1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(senjyo_state::starforc_bg1_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 16, 32);
- m_bg2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(senjyo_state::get_bg2_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 16, 32); /* only 16x32 used by Star Force */
- m_bg3_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(senjyo_state::get_bg3_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 16, 32); /* only 16x32 used by Star Force */
+ m_bg1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(senjyo_state::starforc_bg1_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 16, 32);
+ m_bg2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(senjyo_state::get_bg2_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 16, 32); // only 16x32 used by Star Force
+ m_bg3_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(senjyo_state::get_bg3_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 16, 32); // only 16x32 used by Star Force
}
m_fg_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/seta.cpp b/src/mame/video/seta.cpp
index 2908e46372d..27a906e0b8b 100644
--- a/src/mame/video/seta.cpp
+++ b/src/mame/video/seta.cpp
@@ -351,12 +351,12 @@ VIDEO_START_MEMBER(seta_state,seta_2_layers)
/* layer 0 */
m_tilemap[0] = &machine().tilemap().create(
- *m_gfxdecode, tilemap_get_info_delegate(FUNC(seta_state::get_tile_info<0>), this), TILEMAP_SCAN_ROWS,
+ *m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(seta_state::get_tile_info<0>)), TILEMAP_SCAN_ROWS,
16, 16, 64, 32);
/* layer 1 */
m_tilemap[1] = &machine().tilemap().create(
- *m_gfxdecode, tilemap_get_info_delegate(FUNC(seta_state::get_tile_info<1>), this), TILEMAP_SCAN_ROWS,
+ *m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(seta_state::get_tile_info<1>)), TILEMAP_SCAN_ROWS,
16, 16, 64, 32);
m_tilemaps_flip = 0;
@@ -388,7 +388,7 @@ VIDEO_START_MEMBER(seta_state,seta_1_layer)
/* layer 0 */
m_tilemap[0] = &machine().tilemap().create(
- *m_gfxdecode, tilemap_get_info_delegate(FUNC(seta_state::get_tile_info<0>),this), TILEMAP_SCAN_ROWS,
+ *m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(seta_state::get_tile_info<0>)), TILEMAP_SCAN_ROWS,
16, 16, 64, 32);
m_color_mode_shift = 4;
@@ -422,7 +422,7 @@ VIDEO_START_MEMBER(seta_state,twineagl_1_layer)
/* layer 0 */
m_tilemap[0] = &machine().tilemap().create(
- *m_gfxdecode, tilemap_get_info_delegate(FUNC(seta_state::twineagl_get_tile_info),this), TILEMAP_SCAN_ROWS,
+ *m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(seta_state::twineagl_get_tile_info)), TILEMAP_SCAN_ROWS,
16, 16, 64, 32);
m_tilemap[0]->set_transparent_pen(0);
diff --git a/src/mame/video/seta001.cpp b/src/mame/video/seta001.cpp
index 231aa339431..c0430dedeb2 100644
--- a/src/mame/video/seta001.cpp
+++ b/src/mame/video/seta001.cpp
@@ -42,6 +42,7 @@ DEFINE_DEVICE_TYPE(SETA001_SPRITE, seta001_device, "seta001", "Seta SETA001 Spri
seta001_device::seta001_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: device_t(mconfig, SETA001_SPRITE, tag, owner, clock)
, m_gfxdecode(*this, finder_base::DUMMY_TAG)
+ , m_gfxbank_cb(*this)
{
}
@@ -96,7 +97,7 @@ void seta001_device::device_start()
m_bgflag = 0x00;
- m_gfxbank_cb.bind_relative_to(*owner());
+ m_gfxbank_cb.resolve();
save_item(NAME(m_bgflag));
save_item(NAME(m_spritectrl));
diff --git a/src/mame/video/seta001.h b/src/mame/video/seta001.h
index ed3a03ca2d6..79307bebe41 100644
--- a/src/mame/video/seta001.h
+++ b/src/mame/video/seta001.h
@@ -16,41 +16,41 @@ public:
// configuration
template <typename T> void set_gfxdecode_tag(T &&tag) { m_gfxdecode.set_tag(std::forward<T>(tag)); }
- template <typename... T> void set_gfxbank_callback(T &&... args) { m_gfxbank_cb = gfxbank_cb_delegate(std::forward<T>(args)...); }
+ template <typename... T> void set_gfxbank_callback(T &&... args) { m_gfxbank_cb.set(std::forward<T>(args)...); }
- DECLARE_WRITE8_MEMBER( spritebgflag_w8 );
+ DECLARE_WRITE8_MEMBER(spritebgflag_w8);
- DECLARE_READ16_MEMBER( spritectrl_r16 );
- DECLARE_WRITE16_MEMBER( spritectrl_w16 );
- DECLARE_READ8_MEMBER( spritectrl_r8 );
- DECLARE_WRITE8_MEMBER( spritectrl_w8 );
+ DECLARE_READ16_MEMBER(spritectrl_r16);
+ DECLARE_WRITE16_MEMBER(spritectrl_w16);
+ DECLARE_READ8_MEMBER(spritectrl_r8);
+ DECLARE_WRITE8_MEMBER(spritectrl_w8);
- DECLARE_READ16_MEMBER( spriteylow_r16 );
- DECLARE_WRITE16_MEMBER( spriteylow_w16 );
- DECLARE_READ8_MEMBER( spriteylow_r8 );
- DECLARE_WRITE8_MEMBER( spriteylow_w8 );
+ DECLARE_READ16_MEMBER(spriteylow_r16);
+ DECLARE_WRITE16_MEMBER(spriteylow_w16);
+ DECLARE_READ8_MEMBER(spriteylow_r8);
+ DECLARE_WRITE8_MEMBER(spriteylow_w8);
- DECLARE_READ8_MEMBER( spritecodelow_r8 );
- DECLARE_WRITE8_MEMBER( spritecodelow_w8 );
- DECLARE_READ8_MEMBER( spritecodehigh_r8 );
- DECLARE_WRITE8_MEMBER( spritecodehigh_w8 );
- DECLARE_READ16_MEMBER( spritecode_r16 );
- DECLARE_WRITE16_MEMBER( spritecode_w16 );
+ DECLARE_READ8_MEMBER(spritecodelow_r8);
+ DECLARE_WRITE8_MEMBER(spritecodelow_w8);
+ DECLARE_READ8_MEMBER(spritecodehigh_r8);
+ DECLARE_WRITE8_MEMBER(spritecodehigh_w8);
+ DECLARE_READ16_MEMBER(spritecode_r16);
+ DECLARE_WRITE16_MEMBER(spritecode_w16);
void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int bank_size);
- void setac_eof( void );
- void tnzs_eof( void );
+ void setac_eof();
+ void tnzs_eof();
// position kludges for seta.c & srmp2.c
- void set_fg_xoffsets( int flip, int noflip ) { m_fg_flipxoffs = flip; m_fg_noflipxoffs = noflip; };
- void set_fg_yoffsets( int flip, int noflip ) { m_fg_flipyoffs = flip; m_fg_noflipyoffs = noflip; };
- void set_bg_yoffsets( int flip, int noflip ) { m_bg_flipyoffs = flip; m_bg_noflipyoffs = noflip; };
- void set_bg_xoffsets( int flip, int noflip ) { m_bg_flipxoffs = flip; m_bg_noflipxoffs = noflip; };
+ void set_fg_xoffsets(int flip, int noflip) { m_fg_flipxoffs = flip; m_fg_noflipxoffs = noflip; };
+ void set_fg_yoffsets(int flip, int noflip) { m_fg_flipyoffs = flip; m_fg_noflipyoffs = noflip; };
+ void set_bg_yoffsets(int flip, int noflip) { m_bg_flipyoffs = flip; m_bg_noflipyoffs = noflip; };
+ void set_bg_xoffsets(int flip, int noflip) { m_bg_flipxoffs = flip; m_bg_noflipxoffs = noflip; };
void set_colorbase(int base) { m_colorbase = base; };
void set_spritelimit(int limit) { m_spritelimit = limit; };
- void set_transpen ( int pen ) { m_transpen = pen; };
+ void set_transpen(int pen) { m_transpen = pen; };
int is_flipped() { return ((m_spritectrl[ 0 ] & 0x40) >> 6); };
@@ -59,9 +59,8 @@ protected:
virtual void device_reset() override;
private:
-
- void draw_background( bitmap_ind16 &bitmap, const rectangle &cliprect, int bank_size);
- void draw_foreground( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int bank_size);
+ void draw_background(bitmap_ind16 &bitmap, const rectangle &cliprect, int bank_size);
+ void draw_foreground(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int bank_size);
required_device<gfxdecode_device> m_gfxdecode;
gfxbank_cb_delegate m_gfxbank_cb;
diff --git a/src/mame/video/sf.cpp b/src/mame/video/sf.cpp
index fe1e62bee9e..d2c1de6804f 100644
--- a/src/mame/video/sf.cpp
+++ b/src/mame/video/sf.cpp
@@ -52,9 +52,9 @@ TILE_GET_INFO_MEMBER(sf_state::get_tx_tile_info)
void sf_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sf_state::get_bg_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 2048, 16);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sf_state::get_fg_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 2048, 16);
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sf_state::get_tx_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sf_state::get_bg_tile_info)), TILEMAP_SCAN_COLS, 16, 16, 2048, 16);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sf_state::get_fg_tile_info)), TILEMAP_SCAN_COLS, 16, 16, 2048, 16);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sf_state::get_tx_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_fg_tilemap->set_transparent_pen(15);
m_tx_tilemap->set_transparent_pen(3);
diff --git a/src/mame/video/sgi_gr1.cpp b/src/mame/video/sgi_gr1.cpp
index 126959cf108..a17b8239c91 100644
--- a/src/mame/video/sgi_gr1.cpp
+++ b/src/mame/video/sgi_gr1.cpp
@@ -107,12 +107,12 @@ void sgi_gr1_device::map_bank(address_map &map)
map(0x8440, 0x845f).rw(m_xmap[2], FUNC(sgi_xmap2_device::reg_r), FUNC(sgi_xmap2_device::reg_w)).umask32(0x000000ff);
map(0x8460, 0x847f).rw(m_xmap[3], FUNC(sgi_xmap2_device::reg_r), FUNC(sgi_xmap2_device::reg_w)).umask32(0x000000ff);
map(0x8480, 0x849f).rw(m_xmap[4], FUNC(sgi_xmap2_device::reg_r), FUNC(sgi_xmap2_device::reg_w)).umask32(0x000000ff);
- map(0x84a0, 0x84bf).lw8("xmap_broadcast",
- [this](offs_t offset, u8 data)
- {
- for (sgi_xmap2_device *xmap : m_xmap)
- xmap->reg_w(offset, data);
- }).umask32(0x000000ff);
+ map(0x84a0, 0x84bf).lw8(
+ [this](offs_t offset, u8 data)
+ {
+ for (sgi_xmap2_device *xmap : m_xmap)
+ xmap->reg_w(offset, data);
+ }, "xmap_broadcast").umask32(0x000000ff);
map(0x84c0, 0x84c3).rw(FUNC(sgi_gr1_device::dr1_r), FUNC(sgi_gr1_device::dr1_w)).umask32(0xff000000);
map(0x84e0, 0x84e3).rw(FUNC(sgi_gr1_device::dr0_r), FUNC(sgi_gr1_device::dr0_w)).umask32(0xff000000);
@@ -134,7 +134,7 @@ void sgi_gr1_device::map_bank(address_map &map)
map(0x0800, 0x0bff).r(m_ge, FUNC(sgi_ge5_device::buffer_r)).mirror(0x8000);
map(0x0800, 0x0bff).w(FUNC(sgi_gr1_device::fifo_w)).mirror(0x8000);
map(0x0c00, 0x0dff).w(m_ge, FUNC(sgi_ge5_device::mar_w)).mirror(0x8000);
- map(0x0e00, 0x0e07).lw32("mar_msb", [this](offs_t offset, u32 data) { m_bank->set_bank(offset); }).mirror(0x8000);
+ map(0x0e00, 0x0e07).lw32([this](offs_t offset, u32 data) { m_bank->set_bank(offset); }, "mar_msb").mirror(0x8000);
map(0x1400, 0x17ff).rw(m_ge, FUNC(sgi_ge5_device::data_r), FUNC(sgi_ge5_device::data_w));
map(0x2000, 0x2007).rw(m_ge, FUNC(sgi_ge5_device::finish_r), FUNC(sgi_ge5_device::finish_w)).mirror(0x8000);
diff --git a/src/mame/video/shadfrce.cpp b/src/mame/video/shadfrce.cpp
index 21789a93afa..1f356244173 100644
--- a/src/mame/video/shadfrce.cpp
+++ b/src/mame/video/shadfrce.cpp
@@ -60,13 +60,13 @@ WRITE16_MEMBER(shadfrce_state::bg1videoram_w)
void shadfrce_state::video_start()
{
- m_fgtilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(shadfrce_state::get_fgtile_info),this),TILEMAP_SCAN_ROWS, 8, 8,64,32);
+ m_fgtilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(shadfrce_state::get_fgtile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_fgtilemap->set_transparent_pen(0);
- m_bg0tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(shadfrce_state::get_bg0tile_info),this),TILEMAP_SCAN_ROWS, 16, 16,32,32);
+ m_bg0tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(shadfrce_state::get_bg0tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
m_bg0tilemap->set_transparent_pen(0);
- m_bg1tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(shadfrce_state::get_bg1tile_info),this),TILEMAP_SCAN_ROWS, 16, 16,32,32);
+ m_bg1tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(shadfrce_state::get_bg1tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
m_spvideoram_old = std::make_unique<uint16_t[]>(m_spvideoram.bytes()/2);
diff --git a/src/mame/video/shangkid.cpp b/src/mame/video/shangkid.cpp
index 7d4975d0c82..ca1b5b9a0c9 100644
--- a/src/mame/video/shangkid.cpp
+++ b/src/mame/video/shangkid.cpp
@@ -46,7 +46,7 @@ TILE_GET_INFO_MEMBER(shangkid_state::get_bg_tile_info)
VIDEO_START_MEMBER(shangkid_state,shangkid)
{
- m_background = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(shangkid_state::get_bg_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,32);
+ m_background = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(shangkid_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 64,32);
}
WRITE8_MEMBER(shangkid_state::videoram_w)
diff --git a/src/mame/video/shaolins.cpp b/src/mame/video/shaolins.cpp
index 62dfbe2fc54..91c7ab8e528 100644
--- a/src/mame/video/shaolins.cpp
+++ b/src/mame/video/shaolins.cpp
@@ -136,7 +136,7 @@ TILE_GET_INFO_MEMBER(shaolins_state::get_bg_tile_info)
void shaolins_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(shaolins_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS,
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(shaolins_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS,
8, 8, 32, 32);
m_bg_tilemap->set_scroll_cols(32);
diff --git a/src/mame/video/shisen.cpp b/src/mame/video/shisen.cpp
index 909e0d534e0..a92d13d1ef2 100644
--- a/src/mame/video/shisen.cpp
+++ b/src/mame/video/shisen.cpp
@@ -49,7 +49,7 @@ TILE_GET_INFO_MEMBER(shisen_state::get_bg_tile_info)
void shisen_state::video_start()
{
m_bg_tilemap = &machine().tilemap().create(
- *m_gfxdecode, tilemap_get_info_delegate(FUNC(shisen_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS,
+ *m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(shisen_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS,
8, 8, 64, 32);
membank("bank1")->configure_entries(0, 8, memregion("maincpu")->base() + 0x10000, 0x4000);
diff --git a/src/mame/video/shootout.cpp b/src/mame/video/shootout.cpp
index a97ea52df94..47c0db18368 100644
--- a/src/mame/video/shootout.cpp
+++ b/src/mame/video/shootout.cpp
@@ -78,9 +78,9 @@ WRITE8_MEMBER(shootout_state::textram_w)
void shootout_state::video_start()
{
- m_background = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(shootout_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_foreground = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(shootout_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_foreground->set_transparent_pen(0 );
+ m_background = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(shootout_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_foreground = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(shootout_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_foreground->set_transparent_pen(0);
save_item(NAME(m_ccnt_old_val));
}
diff --git a/src/mame/video/sidearms.cpp b/src/mame/video/sidearms.cpp
index c84cfd4c08a..a444084b32a 100644
--- a/src/mame/video/sidearms.cpp
+++ b/src/mame/video/sidearms.cpp
@@ -142,17 +142,17 @@ void sidearms_state::video_start()
if (!m_gameid)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sidearms_state::get_sidearms_bg_tile_info),this), tilemap_mapper_delegate(FUNC(sidearms_state::tilemap_scan),this),
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sidearms_state::get_sidearms_bg_tile_info)), tilemap_mapper_delegate(*this, FUNC(sidearms_state::tilemap_scan)),
32, 32, 128, 128);
m_bg_tilemap->set_transparent_pen(15);
}
else
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sidearms_state::get_philko_bg_tile_info),this), tilemap_mapper_delegate(FUNC(sidearms_state::tilemap_scan),this), 32, 32, 128, 128);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sidearms_state::get_philko_bg_tile_info)), tilemap_mapper_delegate(*this, FUNC(sidearms_state::tilemap_scan)), 32, 32, 128, 128);
}
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sidearms_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS,
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sidearms_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS,
8, 8, 64, 64);
m_fg_tilemap->set_transparent_pen(3);
diff --git a/src/mame/video/sidepckt.cpp b/src/mame/video/sidepckt.cpp
index e4d08556c48..e9673a95572 100644
--- a/src/mame/video/sidepckt.cpp
+++ b/src/mame/video/sidepckt.cpp
@@ -71,7 +71,7 @@ TILE_GET_INFO_MEMBER(sidepckt_state::get_tile_info)
void sidepckt_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sidepckt_state::get_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sidepckt_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 32,32);
m_bg_tilemap->set_transmask(0,0xff,0x00); /* split type 0 is totally transparent in front half */
m_bg_tilemap->set_transmask(1,0x01,0xfe); /* split type 1 has pen 0 transparent in front half */
diff --git a/src/mame/video/silkroad.cpp b/src/mame/video/silkroad.cpp
index f9c5b4653a5..7c5147c9561 100644
--- a/src/mame/video/silkroad.cpp
+++ b/src/mame/video/silkroad.cpp
@@ -71,9 +71,9 @@ TILE_GET_INFO_MEMBER(silkroad_state::get_tile_info)
void silkroad_state::video_start()
{
- m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(silkroad_state::get_tile_info<0>),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
- m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(silkroad_state::get_tile_info<1>),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
- m_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(silkroad_state::get_tile_info<2>),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
+ m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(silkroad_state::get_tile_info<0>)), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
+ m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(silkroad_state::get_tile_info<1>)), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
+ m_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(silkroad_state::get_tile_info<2>)), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
m_tilemap[0]->set_transparent_pen(0);
m_tilemap[1]->set_transparent_pen(0);
diff --git a/src/mame/video/skydiver.cpp b/src/mame/video/skydiver.cpp
index 88eb7bd3103..d8201c747b5 100644
--- a/src/mame/video/skydiver.cpp
+++ b/src/mame/video/skydiver.cpp
@@ -38,7 +38,7 @@ TILE_GET_INFO_MEMBER(skydiver_state::get_tile_info)
void skydiver_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(skydiver_state::get_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(skydiver_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 32,32);
save_item(NAME(m_nmion));
save_item(NAME(m_width));
diff --git a/src/mame/video/skykid.cpp b/src/mame/video/skykid.cpp
index 6c08804b0d7..94e7c12275e 100644
--- a/src/mame/video/skykid.cpp
+++ b/src/mame/video/skykid.cpp
@@ -107,8 +107,8 @@ TILE_GET_INFO_MEMBER(skykid_state::bg_get_tile_info)
void skykid_state::video_start()
{
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(skykid_state::tx_get_tile_info),this),tilemap_mapper_delegate(FUNC(skykid_state::tx_tilemap_scan),this), 8,8,36,28);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(skykid_state::bg_get_tile_info),this),TILEMAP_SCAN_ROWS, 8,8,64,32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(skykid_state::tx_get_tile_info)), tilemap_mapper_delegate(*this, FUNC(skykid_state::tx_tilemap_scan)), 8,8, 36,28);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(skykid_state::bg_get_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 64,32);
m_tx_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/slapfght.cpp b/src/mame/video/slapfght.cpp
index cd1ef5465e9..959a2e61110 100644
--- a/src/mame/video/slapfght.cpp
+++ b/src/mame/video/slapfght.cpp
@@ -53,15 +53,15 @@ TILE_GET_INFO_MEMBER(slapfght_state::get_fix_tile_info)
VIDEO_START_MEMBER(slapfght_state, perfrman)
{
- m_pf1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(slapfght_state::get_pf_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_pf1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(slapfght_state::get_pf_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_pf1_tilemap->set_transparent_pen(0);
}
VIDEO_START_MEMBER(slapfght_state, slapfight)
{
- m_pf1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(slapfght_state::get_pf1_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_fix_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(slapfght_state::get_fix_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_pf1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(slapfght_state::get_pf1_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_fix_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(slapfght_state::get_fix_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_fix_tilemap->set_scrolldy(0, 15);
m_pf1_tilemap->set_scrolldy(0, 14);
diff --git a/src/mame/video/snk.cpp b/src/mame/video/snk.cpp
index 60b51cb4f40..fe58fa97438 100644
--- a/src/mame/video/snk.cpp
+++ b/src/mame/video/snk.cpp
@@ -224,9 +224,9 @@ VIDEO_START_MEMBER(snk_state,marvins)
{
VIDEO_START_CALL_MEMBER(snk_3bpp_shadow);
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(snk_state::marvins_get_tx_tile_info),this), tilemap_mapper_delegate(FUNC(snk_state::marvins_tx_scan_cols),this), 8, 8, 36, 28);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(snk_state::marvins_get_fg_tile_info),this), TILEMAP_SCAN_COLS, 8, 8, 64, 32);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(snk_state::marvins_get_bg_tile_info),this), TILEMAP_SCAN_COLS, 8, 8, 64, 32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(snk_state::marvins_get_tx_tile_info)), tilemap_mapper_delegate(*this, FUNC(snk_state::marvins_tx_scan_cols)), 8, 8, 36, 28);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(snk_state::marvins_get_fg_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(snk_state::marvins_get_bg_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 64, 32);
m_tx_tilemap->set_transparent_pen(15);
m_tx_tilemap->set_scrolldy(8, 8);
@@ -245,8 +245,8 @@ VIDEO_START_MEMBER(snk_state,jcross)
{
VIDEO_START_CALL_MEMBER(snk_3bpp_shadow);
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(snk_state::marvins_get_tx_tile_info),this), tilemap_mapper_delegate(FUNC(snk_state::marvins_tx_scan_cols),this), 8, 8, 36, 28);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(snk_state::aso_get_bg_tile_info),this), TILEMAP_SCAN_COLS, 8, 8, 64, 64);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(snk_state::marvins_get_tx_tile_info)), tilemap_mapper_delegate(*this, FUNC(snk_state::marvins_tx_scan_cols)), 8, 8, 36, 28);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(snk_state::aso_get_bg_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 64, 64);
m_tx_tilemap->set_transparent_pen(15);
m_tx_tilemap->set_scrolldy(8, 8);
@@ -264,8 +264,8 @@ VIDEO_START_MEMBER(snk_state,sgladiat)
{
VIDEO_START_CALL_MEMBER(snk_3bpp_shadow);
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(snk_state::marvins_get_tx_tile_info),this), tilemap_mapper_delegate(FUNC(snk_state::marvins_tx_scan_cols),this), 8, 8, 36, 28);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(snk_state::aso_get_bg_tile_info),this), TILEMAP_SCAN_COLS, 8, 8, 64, 32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(snk_state::marvins_get_tx_tile_info)), tilemap_mapper_delegate(*this, FUNC(snk_state::marvins_tx_scan_cols)), 8, 8, 36, 28);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(snk_state::aso_get_bg_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 64, 32);
m_tx_tilemap->set_transparent_pen(15);
m_tx_tilemap->set_scrolldy(8, 8);
@@ -304,8 +304,8 @@ VIDEO_START_MEMBER(snk_state,tnk3)
{
VIDEO_START_CALL_MEMBER(snk_3bpp_shadow);
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(snk_state::marvins_get_tx_tile_info),this), tilemap_mapper_delegate(FUNC(snk_state::marvins_tx_scan_cols),this), 8, 8, 36, 28);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(snk_state::tnk3_get_bg_tile_info),this), TILEMAP_SCAN_COLS, 8, 8, 64, 64);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(snk_state::marvins_get_tx_tile_info)), tilemap_mapper_delegate(*this, FUNC(snk_state::marvins_tx_scan_cols)), 8, 8, 36, 28);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(snk_state::tnk3_get_bg_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 64, 64);
m_tx_tilemap->set_transparent_pen(15);
m_tx_tilemap->set_scrolldy(8, 8);
@@ -322,8 +322,8 @@ VIDEO_START_MEMBER(snk_state,ikari)
{
VIDEO_START_CALL_MEMBER(snk_3bpp_shadow);
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(snk_state::ikari_get_tx_tile_info),this), tilemap_mapper_delegate(FUNC(snk_state::marvins_tx_scan_cols),this), 8, 8, 36, 28);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(snk_state::ikari_get_bg_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 32, 32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(snk_state::ikari_get_tx_tile_info)), tilemap_mapper_delegate(*this, FUNC(snk_state::marvins_tx_scan_cols)), 8, 8, 36, 28);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(snk_state::ikari_get_bg_tile_info)), TILEMAP_SCAN_COLS, 16, 16, 32, 32);
m_tx_tilemap->set_transparent_pen(15);
m_tx_tilemap->set_scrolldy(8, 8);
@@ -344,8 +344,8 @@ VIDEO_START_MEMBER(snk_state,gwar)
memset(m_empty_tile, 0xf, sizeof(m_empty_tile));
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(snk_state::gwar_get_tx_tile_info),this), TILEMAP_SCAN_COLS, 8, 8, 50, 32);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(snk_state::gwar_get_bg_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 32, 32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(snk_state::gwar_get_tx_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 50, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(snk_state::gwar_get_bg_tile_info)), TILEMAP_SCAN_COLS, 16, 16, 32, 32);
m_tx_tilemap->set_transparent_pen(15);
diff --git a/src/mame/video/snk6502.cpp b/src/mame/video/snk6502.cpp
index c188aaf855a..345b9b80972 100644
--- a/src/mame/video/snk6502.cpp
+++ b/src/mame/video/snk6502.cpp
@@ -165,8 +165,8 @@ TILE_GET_INFO_MEMBER(snk6502_state::get_fg_tile_info)
VIDEO_START_MEMBER(snk6502_state,snk6502)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(snk6502_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(snk6502_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(snk6502_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(snk6502_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(0);
@@ -289,8 +289,8 @@ TILE_GET_INFO_MEMBER(snk6502_state::satansat_get_fg_tile_info)
VIDEO_START_MEMBER(snk6502_state,satansat)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(snk6502_state::satansat_get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(snk6502_state::satansat_get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(snk6502_state::satansat_get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(snk6502_state::satansat_get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/snk68.cpp b/src/mame/video/snk68.cpp
index e4a592bc9f3..8b50da0bd53 100644
--- a/src/mame/video/snk68.cpp
+++ b/src/mame/video/snk68.cpp
@@ -58,7 +58,7 @@ void snk68_state::common_video_start()
void snk68_state::video_start()
{
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(snk68_state::get_tile_info),this), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(snk68_state::get_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
m_fg_tile_offset = 0;
common_video_start();
@@ -68,7 +68,7 @@ void snk68_state::video_start()
void searchar_state::video_start()
{
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(searchar_state::get_tile_info),this), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(searchar_state::get_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
snk68_state::common_video_start();
}
diff --git a/src/mame/video/snk68_spr.cpp b/src/mame/video/snk68_spr.cpp
index d1a9746763e..7115713669b 100644
--- a/src/mame/video/snk68_spr.cpp
+++ b/src/mame/video/snk68_spr.cpp
@@ -51,13 +51,13 @@ DEFINE_DEVICE_TYPE(SNK68_SPR, snk68_spr_device, "snk68_spr", "SNK68 Sprites")
snk68_spr_device::snk68_spr_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: device_t(mconfig, SNK68_SPR, tag, owner, clock)
+ , m_newtilecb(*this, FUNC(snk68_spr_device::tile_callback_noindirect))
, m_gfxdecode(*this, finder_base::DUMMY_TAG)
, m_spriteram(*this, "^spriteram")
, m_screen(*this, "^screen")
, m_flipscreen(false)
, m_partialupdates(1)
{
- m_newtilecb = snk68_tile_indirection_delegate(FUNC(snk68_spr_device::tile_callback_noindirect), this);
}
void snk68_spr_device::tile_callback_noindirect(int &tile, int& fx, int& fy, int& region)
@@ -67,7 +67,7 @@ void snk68_spr_device::tile_callback_noindirect(int &tile, int& fx, int& fy, int
void snk68_spr_device::device_start()
{
// bind our handler
- m_newtilecb.bind_relative_to(*owner());
+ m_newtilecb.resolve();
}
void snk68_spr_device::device_reset()
diff --git a/src/mame/video/snk68_spr.h b/src/mame/video/snk68_spr.h
index 994fe55dd1f..e74a8edc71c 100644
--- a/src/mame/video/snk68_spr.h
+++ b/src/mame/video/snk68_spr.h
@@ -7,17 +7,17 @@
#include "screen.h"
-typedef device_delegate<void (int&, int&, int&, int&)> snk68_tile_indirection_delegate;
-
class snk68_spr_device : public device_t
{
public:
+ typedef device_delegate<void (int &, int &, int &, int &)> tile_indirection_delegate;
+
snk68_spr_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// static configuration
template <typename T> void set_gfxdecode_tag(T &&tag) { m_gfxdecode.set_tag(std::forward<T>(tag)); }
- template <typename... T> void set_tile_indirect_cb(T &&... args) { m_newtilecb = snk68_tile_indirection_delegate(std::forward<T>(args)...); }
+ template <typename... T> void set_tile_indirect_cb(T &&... args) { m_newtilecb.set(std::forward<T>(args)...); }
void set_no_partial() { m_partialupdates = 0; }
void set_xpos_shift(u8 data) { m_xpos_shift = data; }
void set_color_entry_mask(u16 data) { m_color_entry_mask = data; }
@@ -28,8 +28,6 @@ public:
void draw_sprites_all(bitmap_ind16 &bitmap, const rectangle &cliprect);
void draw_sprites_alt(bitmap_ind16 &bitmap, const rectangle &cliprect);
- snk68_tile_indirection_delegate m_newtilecb;
-
void tile_callback_noindirect(int& tile, int& fx, int& fy, int& region);
void set_flip(bool flip);
@@ -38,6 +36,7 @@ protected:
virtual void device_reset() override;
private:
+ tile_indirection_delegate m_newtilecb;
required_device<gfxdecode_device> m_gfxdecode;
required_shared_ptr<uint16_t> m_spriteram;
required_device<screen_device> m_screen;
diff --git a/src/mame/video/snookr10.cpp b/src/mame/video/snookr10.cpp
index ecc5529d71f..4dcf95c4351 100644
--- a/src/mame/video/snookr10.cpp
+++ b/src/mame/video/snookr10.cpp
@@ -237,17 +237,17 @@ TILE_GET_INFO_MEMBER(snookr10_state::crystalc_get_bg_tile_info)
void snookr10_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(snookr10_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 4, 8, 128, 30);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(snookr10_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 4, 8, 128, 30);
}
VIDEO_START_MEMBER(snookr10_state, apple10)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(snookr10_state::apple10_get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 4, 8, 128, 30);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(snookr10_state::apple10_get_bg_tile_info)), TILEMAP_SCAN_ROWS, 4, 8, 128, 30);
}
VIDEO_START_MEMBER(snookr10_state, crystalc)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(snookr10_state::crystalc_get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 4, 8, 128, 30);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(snookr10_state::crystalc_get_bg_tile_info)), TILEMAP_SCAN_ROWS, 4, 8, 128, 30);
}
uint32_t snookr10_state::screen_update_snookr10(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
diff --git a/src/mame/video/solomon.cpp b/src/mame/video/solomon.cpp
index d6533cd6bab..d2c74323844 100644
--- a/src/mame/video/solomon.cpp
+++ b/src/mame/video/solomon.cpp
@@ -57,10 +57,10 @@ TILE_GET_INFO_MEMBER(solomon_state::get_fg_tile_info)
void solomon_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(solomon_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS,
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(solomon_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS,
8, 8, 32, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(solomon_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS,
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(solomon_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS,
8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/sonson.cpp b/src/mame/video/sonson.cpp
index f77f557e669..d39d031950a 100644
--- a/src/mame/video/sonson.cpp
+++ b/src/mame/video/sonson.cpp
@@ -128,7 +128,7 @@ TILE_GET_INFO_MEMBER(sonson_state::get_bg_tile_info)
void sonson_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sonson_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sonson_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_bg_tilemap->set_scroll_rows(32);
}
diff --git a/src/mame/video/spbactn.cpp b/src/mame/video/spbactn.cpp
index 983b4ad6af5..cc8b6231657 100644
--- a/src/mame/video/spbactn.cpp
+++ b/src/mame/video/spbactn.cpp
@@ -49,8 +49,8 @@ VIDEO_START_MEMBER(spbactn_state,spbactn)
m_screen->register_screen_bitmap(m_tile_bitmap_fg);
m_screen->register_screen_bitmap(m_sprite_bitmap);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(spbactn_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 8, 64, 128);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(spbactn_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 8, 64, 128);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(spbactn_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 8, 64, 128);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(spbactn_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 16, 8, 64, 128);
m_bg_tilemap->set_transparent_pen(0);
m_fg_tilemap->set_transparent_pen(0);
}
@@ -59,7 +59,7 @@ VIDEO_START_MEMBER(spbactn_state,spbactnp)
{
VIDEO_START_CALL_MEMBER(spbactn);
// no idea..
- m_extra_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(spbactn_state::get_extra_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 16, 16);
+ m_extra_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(spbactn_state::get_extra_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 16, 16);
}
WRITE16_MEMBER( spbactn_state::spbatnp_90006_w )
diff --git a/src/mame/video/spdodgeb.cpp b/src/mame/video/spdodgeb.cpp
index f2da1c13fd0..2dd932b70b5 100644
--- a/src/mame/video/spdodgeb.cpp
+++ b/src/mame/video/spdodgeb.cpp
@@ -71,7 +71,7 @@ TILE_GET_INFO_MEMBER(spdodgeb_state::get_bg_tile_info)
void spdodgeb_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(spdodgeb_state::get_bg_tile_info),this),tilemap_mapper_delegate(FUNC(spdodgeb_state::background_scan),this),8,8,64,32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(spdodgeb_state::get_bg_tile_info)), tilemap_mapper_delegate(*this, FUNC(spdodgeb_state::background_scan)), 8,8, 64,32);
membank("mainbank")->configure_entries(0, 2, memregion("maincpu")->base(), 0x4000);
diff --git a/src/mame/video/speedbal.cpp b/src/mame/video/speedbal.cpp
index 13d654c8967..2642fed1af8 100644
--- a/src/mame/video/speedbal.cpp
+++ b/src/mame/video/speedbal.cpp
@@ -38,8 +38,8 @@ TILE_GET_INFO_MEMBER(speedbal_state::get_tile_info_fg)
void speedbal_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(speedbal_state::get_tile_info_bg),this), TILEMAP_SCAN_COLS_FLIP_X, 16, 16, 16, 16);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(speedbal_state::get_tile_info_fg),this), TILEMAP_SCAN_COLS_FLIP_X, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(speedbal_state::get_tile_info_bg)), TILEMAP_SCAN_COLS_FLIP_X, 16, 16, 16, 16);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(speedbal_state::get_tile_info_fg)), TILEMAP_SCAN_COLS_FLIP_X, 8, 8, 32, 32);
m_bg_tilemap->set_transmask(0,0xffff,0x0000); /* split type 0 is totally transparent in front half */
m_bg_tilemap->set_transmask(1,0x00f7,0x0000); /* split type 1 has pen 0-2, 4-7 transparent in front half */
diff --git a/src/mame/video/speedspn.cpp b/src/mame/video/speedspn.cpp
index f56af8fcd0d..22d01989145 100644
--- a/src/mame/video/speedspn.cpp
+++ b/src/mame/video/speedspn.cpp
@@ -20,7 +20,7 @@ void speedspn_state::video_start()
m_bank_vidram = 0;
m_vidram.resize(0x1000 * 2);
memset(&m_vidram[0], 0, 0x1000*2);
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(speedspn_state::get_tile_info),this),TILEMAP_SCAN_COLS, 8, 8,64,32);
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(speedspn_state::get_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 64, 32);
save_item(NAME(m_display_disable));
save_item(NAME(m_bank_vidram));
diff --git a/src/mame/video/splash.cpp b/src/mame/video/splash.cpp
index e2d7dc0272b..c27573c9eee 100644
--- a/src/mame/video/splash.cpp
+++ b/src/mame/video/splash.cpp
@@ -164,8 +164,8 @@ void splash_state::draw_bitmap(bitmap_ind16 &bitmap, const rectangle &cliprect)
void splash_state::video_start()
{
- m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(splash_state::get_tile_info_tilemap0),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(splash_state::get_tile_info_tilemap1),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(splash_state::get_tile_info_tilemap0)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(splash_state::get_tile_info_tilemap1)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
m_bg_tilemap[0]->set_transparent_pen(0);
m_bg_tilemap[1]->set_transparent_pen(0);
diff --git a/src/mame/video/sprint2.cpp b/src/mame/video/sprint2.cpp
index 03286986220..0d24f6bb120 100644
--- a/src/mame/video/sprint2.cpp
+++ b/src/mame/video/sprint2.cpp
@@ -45,7 +45,7 @@ void sprint2_state::video_start()
{
m_screen->register_screen_bitmap(m_helper);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sprint2_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 16, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sprint2_state::get_tile_info)), TILEMAP_SCAN_ROWS, 16, 8, 32, 32);
}
diff --git a/src/mame/video/sprint4.cpp b/src/mame/video/sprint4.cpp
index 082c106a122..9aeea51b4ab 100644
--- a/src/mame/video/sprint4.cpp
+++ b/src/mame/video/sprint4.cpp
@@ -50,7 +50,7 @@ void sprint4_state::video_start()
{
m_screen->register_screen_bitmap(m_helper);
- m_playfield = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sprint4_state::tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_playfield = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sprint4_state::tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
diff --git a/src/mame/video/sprint8.cpp b/src/mame/video/sprint8.cpp
index 3f13debe6bb..f04d3ab8e8b 100644
--- a/src/mame/video/sprint8.cpp
+++ b/src/mame/video/sprint8.cpp
@@ -31,25 +31,25 @@ void sprint8_state::set_pens()
{
if (m_team)
{
- m_palette->set_indirect_color(i + 0, rgb_t(0xff, 0x00, 0x00)); /* red */
- m_palette->set_indirect_color(i + 1, rgb_t(0x00, 0x00, 0xff)); /* blue */
- m_palette->set_indirect_color(i + 2, rgb_t(0xff, 0xff, 0x00)); /* yellow */
- m_palette->set_indirect_color(i + 3, rgb_t(0x00, 0xff, 0x00)); /* green */
- m_palette->set_indirect_color(i + 4, rgb_t(0xff, 0x00, 0xff)); /* magenta */
- m_palette->set_indirect_color(i + 5, rgb_t(0xe0, 0xc0, 0x70)); /* puce */
- m_palette->set_indirect_color(i + 6, rgb_t(0x00, 0xff, 0xff)); /* cyan */
- m_palette->set_indirect_color(i + 7, rgb_t(0xff, 0xaa, 0xaa)); /* pink */
+ m_palette->set_indirect_color(i + 0, rgb_t(0xff, 0x00, 0x00)); // red
+ m_palette->set_indirect_color(i + 1, rgb_t(0x00, 0x00, 0xff)); // blue
+ m_palette->set_indirect_color(i + 2, rgb_t(0xff, 0xff, 0x00)); // yellow
+ m_palette->set_indirect_color(i + 3, rgb_t(0x00, 0xff, 0x00)); // green
+ m_palette->set_indirect_color(i + 4, rgb_t(0xff, 0x00, 0xff)); // magenta
+ m_palette->set_indirect_color(i + 5, rgb_t(0xe0, 0xc0, 0x70)); // puce
+ m_palette->set_indirect_color(i + 6, rgb_t(0x00, 0xff, 0xff)); // cyan
+ m_palette->set_indirect_color(i + 7, rgb_t(0xff, 0xaa, 0xaa)); // pink
}
else
{
- m_palette->set_indirect_color(i + 0, rgb_t(0xff, 0x00, 0x00)); /* red */
- m_palette->set_indirect_color(i + 1, rgb_t(0x00, 0x00, 0xff)); /* blue */
- m_palette->set_indirect_color(i + 2, rgb_t(0xff, 0x00, 0x00)); /* red */
- m_palette->set_indirect_color(i + 3, rgb_t(0x00, 0x00, 0xff)); /* blue */
- m_palette->set_indirect_color(i + 4, rgb_t(0xff, 0x00, 0x00)); /* red */
- m_palette->set_indirect_color(i + 5, rgb_t(0x00, 0x00, 0xff)); /* blue */
- m_palette->set_indirect_color(i + 6, rgb_t(0xff, 0x00, 0x00)); /* red */
- m_palette->set_indirect_color(i + 7, rgb_t(0x00, 0x00, 0xff)); /* blue */
+ m_palette->set_indirect_color(i + 0, rgb_t(0xff, 0x00, 0x00)); // red
+ m_palette->set_indirect_color(i + 1, rgb_t(0x00, 0x00, 0xff)); // blue
+ m_palette->set_indirect_color(i + 2, rgb_t(0xff, 0x00, 0x00)); // red
+ m_palette->set_indirect_color(i + 3, rgb_t(0x00, 0x00, 0xff)); // blue
+ m_palette->set_indirect_color(i + 4, rgb_t(0xff, 0x00, 0x00)); // red
+ m_palette->set_indirect_color(i + 5, rgb_t(0x00, 0x00, 0xff)); // blue
+ m_palette->set_indirect_color(i + 6, rgb_t(0xff, 0x00, 0x00)); // red
+ m_palette->set_indirect_color(i + 7, rgb_t(0x00, 0x00, 0xff)); // blue
}
}
@@ -111,8 +111,8 @@ void sprint8_state::video_start()
m_screen->register_screen_bitmap(m_helper1);
m_screen->register_screen_bitmap(m_helper2);
- m_tilemap1 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sprint8_state::get_tile_info1),this), TILEMAP_SCAN_ROWS, 16, 8, 32, 32);
- m_tilemap2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sprint8_state::get_tile_info2),this), TILEMAP_SCAN_ROWS, 16, 8, 32, 32);
+ m_tilemap1 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sprint8_state::get_tile_info1)), TILEMAP_SCAN_ROWS, 16, 8, 32, 32);
+ m_tilemap2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sprint8_state::get_tile_info2)), TILEMAP_SCAN_ROWS, 16, 8, 32, 32);
m_tilemap1->set_scrolly(0, +24);
m_tilemap2->set_scrolly(0, +24);
diff --git a/src/mame/video/srumbler.cpp b/src/mame/video/srumbler.cpp
index 013e4f1e196..5a140c5a57c 100644
--- a/src/mame/video/srumbler.cpp
+++ b/src/mame/video/srumbler.cpp
@@ -47,13 +47,13 @@ TILE_GET_INFO_MEMBER(srumbler_state::get_bg_tile_info)
void srumbler_state::video_start()
{
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(srumbler_state::get_fg_tile_info),this),TILEMAP_SCAN_COLS,8,8,64,32);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(srumbler_state::get_bg_tile_info),this),TILEMAP_SCAN_COLS, 16,16,64,64);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(srumbler_state::get_fg_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 64,32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(srumbler_state::get_bg_tile_info)), TILEMAP_SCAN_COLS, 16,16, 64,64);
m_fg_tilemap->set_transparent_pen(3);
- m_bg_tilemap->set_transmask(0,0xffff,0x0000); /* split type 0 is totally transparent in front half */
- m_bg_tilemap->set_transmask(1,0x07ff,0xf800); /* split type 1 has pens 0-10 transparent in front half */
+ m_bg_tilemap->set_transmask(0,0xffff,0x0000); // split type 0 is totally transparent in front half
+ m_bg_tilemap->set_transmask(1,0x07ff,0xf800); // split type 1 has pens 0-10 transparent in front half
save_item(NAME(m_scroll));
}
diff --git a/src/mame/video/sslam.cpp b/src/mame/video/sslam.cpp
index 279998e6920..5f29791efea 100644
--- a/src/mame/video/sslam.cpp
+++ b/src/mame/video/sslam.cpp
@@ -139,9 +139,9 @@ WRITE16_MEMBER(powerbls_state::powerbls_bg_tileram_w)
void sslam_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sslam_state::get_sslam_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- m_md_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sslam_state::get_sslam_md_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sslam_state::get_sslam_tx_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sslam_state::get_sslam_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_md_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sslam_state::get_sslam_md_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sslam_state::get_sslam_tx_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
m_md_tilemap->set_transparent_pen(0);
m_tx_tilemap->set_transparent_pen(0);
@@ -152,7 +152,7 @@ void sslam_state::video_start()
void powerbls_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(powerbls_state::get_powerbls_bg_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,64);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(powerbls_state::get_powerbls_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
m_sprites_x_offset = -21;
save_item(NAME(m_sprites_x_offset));
diff --git a/src/mame/video/ssozumo.cpp b/src/mame/video/ssozumo.cpp
index 51f37bbd789..09cd0b05ed9 100644
--- a/src/mame/video/ssozumo.cpp
+++ b/src/mame/video/ssozumo.cpp
@@ -132,10 +132,10 @@ TILE_GET_INFO_MEMBER(ssozumo_state::get_fg_tile_info)
void ssozumo_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ssozumo_state::get_bg_tile_info),this), TILEMAP_SCAN_COLS_FLIP_X,
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ssozumo_state::get_bg_tile_info)), TILEMAP_SCAN_COLS_FLIP_X,
16, 16, 16, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ssozumo_state::get_fg_tile_info),this), TILEMAP_SCAN_COLS_FLIP_X,
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ssozumo_state::get_fg_tile_info)), TILEMAP_SCAN_COLS_FLIP_X,
8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(0);
@@ -164,11 +164,10 @@ void ssozumo_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect
flipy = !flipy;
}
-
- m_gfxdecode->gfx(2)->transpen(bitmap,cliprect,
- code, color,
- flipx, flipy,
- sx, sy, 0);
+ m_gfxdecode->gfx(2)->transpen(bitmap,cliprect,
+ code, color,
+ flipx, flipy,
+ sx, sy, 0);
}
}
}
diff --git a/src/mame/video/ssrj.cpp b/src/mame/video/ssrj.cpp
index 47a5f67b12a..25554f25f82 100644
--- a/src/mame/video/ssrj.cpp
+++ b/src/mame/video/ssrj.cpp
@@ -220,9 +220,9 @@ static constexpr rgb_t fakecols[4 * 4][8] =
void ssrj_state::video_start()
{
- m_tilemap1 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ssrj_state::get_tile_info1),this), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
- m_tilemap2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ssrj_state::get_tile_info2),this), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
- m_tilemap4 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ssrj_state::get_tile_info4),this), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
+ m_tilemap1 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ssrj_state::get_tile_info1)), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
+ m_tilemap2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ssrj_state::get_tile_info2)), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
+ m_tilemap4 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ssrj_state::get_tile_info4)), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
m_tilemap2->set_transparent_pen(0);
m_tilemap4->set_transparent_pen(0);
diff --git a/src/mame/video/ssv.cpp b/src/mame/video/ssv.cpp
index 7d280915cc5..19d5d4bcc64 100644
--- a/src/mame/video/ssv.cpp
+++ b/src/mame/video/ssv.cpp
@@ -240,7 +240,7 @@ VIDEO_START_MEMBER(ssv_state,gdfs)
{
ssv_state::video_start();
- m_gdfs_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ssv_state::get_tile_info_0),this), TILEMAP_SCAN_ROWS, 16,16, 0x100,0x100);
+ m_gdfs_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ssv_state::get_tile_info_0)), TILEMAP_SCAN_ROWS, 16,16, 0x100,0x100);
m_gdfs_tmap->set_transparent_pen(0);
}
diff --git a/src/mame/video/st0020.cpp b/src/mame/video/st0020.cpp
index b26c1c02aff..c0b8ae6341e 100644
--- a/src/mame/video/st0020.cpp
+++ b/src/mame/video/st0020.cpp
@@ -21,10 +21,10 @@
DEFINE_DEVICE_TYPE(ST0020_SPRITES, st0020_device, "st0020", "Seta ST0020 Sprites")
-#define ST0020_ST0032_BYTESWAP_DATA \
- if (m_is_st0032) data = ((data & 0x00ff)<<8) | ((data & 0xff00)>>8);
-#define ST0020_ST0032_BYTESWAP_MEM_MASK \
- if (m_is_st0032) mem_mask = ((mem_mask & 0x00ff)<<8) | ((mem_mask & 0xff00)>>8);
+#define ST0020_ST0032_BYTESWAP_DATA() \
+ do { if (m_is_st0032) data = ((data & 0x00ff)<<8) | ((data & 0xff00)>>8); } while (false)
+#define ST0020_ST0032_BYTESWAP_MEM_MASK() \
+ do { if (m_is_st0032) mem_mask = ((mem_mask & 0x00ff)<<8) | ((mem_mask & 0xff00)>>8); } while (false)
st0020_device::st0020_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
@@ -68,13 +68,13 @@ void st0020_device::device_start()
// Tilemaps
m_tmap[0] = &machine().tilemap().create(
- *this, tilemap_get_info_delegate(FUNC(st0020_device::get_tile_info<0>), this), tilemap_mapper_delegate(FUNC(st0020_device::scan_16x16),this),16,8, 0x40,0x40*2);
+ *this, tilemap_get_info_delegate(*this, FUNC(st0020_device::get_tile_info<0>)), tilemap_mapper_delegate(*this, FUNC(st0020_device::scan_16x16)), 16,8, 0x40,0x40*2);
m_tmap[1] = &machine().tilemap().create(
- *this, tilemap_get_info_delegate(FUNC(st0020_device::get_tile_info<1>), this), tilemap_mapper_delegate(FUNC(st0020_device::scan_16x16),this),16,8, 0x40,0x40*2);
+ *this, tilemap_get_info_delegate(*this, FUNC(st0020_device::get_tile_info<1>)), tilemap_mapper_delegate(*this, FUNC(st0020_device::scan_16x16)), 16,8, 0x40,0x40*2);
m_tmap[2] = &machine().tilemap().create(
- *this, tilemap_get_info_delegate(FUNC(st0020_device::get_tile_info<2>), this), tilemap_mapper_delegate(FUNC(st0020_device::scan_16x16),this),16,8, 0x40,0x40*2);
+ *this, tilemap_get_info_delegate(*this, FUNC(st0020_device::get_tile_info<2>)), tilemap_mapper_delegate(*this, FUNC(st0020_device::scan_16x16)), 16,8, 0x40,0x40*2);
m_tmap[3] = &machine().tilemap().create(
- *this, tilemap_get_info_delegate(FUNC(st0020_device::get_tile_info<3>), this), tilemap_mapper_delegate(FUNC(st0020_device::scan_16x16),this),16,8, 0x40,0x40*2);
+ *this, tilemap_get_info_delegate(*this, FUNC(st0020_device::get_tile_info<3>)), tilemap_mapper_delegate(*this, FUNC(st0020_device::scan_16x16)), 16,8, 0x40,0x40*2);
for (int i = 0; i < 4; ++i)
{
m_tmap[i]->set_transparent_pen(0);
@@ -92,18 +92,18 @@ void st0020_device::device_start()
// Gfx ram
READ16_MEMBER(st0020_device::gfxram_r)
{
- ST0020_ST0032_BYTESWAP_MEM_MASK
+ ST0020_ST0032_BYTESWAP_MEM_MASK();
uint16_t data = m_gfxram[offset + m_gfxram_bank * 0x100000/2];
- ST0020_ST0032_BYTESWAP_DATA
+ ST0020_ST0032_BYTESWAP_DATA();
return data;
}
WRITE16_MEMBER(st0020_device::gfxram_w)
{
- ST0020_ST0032_BYTESWAP_MEM_MASK
- ST0020_ST0032_BYTESWAP_DATA
+ ST0020_ST0032_BYTESWAP_MEM_MASK();
+ ST0020_ST0032_BYTESWAP_DATA();
offset += m_gfxram_bank * 0x100000/2;
COMBINE_DATA(&m_gfxram[offset]);
diff --git a/src/mame/video/stadhero.cpp b/src/mame/video/stadhero.cpp
index 6a18766b51a..b8edc446323 100644
--- a/src/mame/video/stadhero.cpp
+++ b/src/mame/video/stadhero.cpp
@@ -58,7 +58,7 @@ TILE_GET_INFO_MEMBER(stadhero_state::get_pf1_tile_info)
void stadhero_state::video_start()
{
- m_pf1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(stadhero_state::get_pf1_tile_info),this),TILEMAP_SCAN_ROWS, 8, 8,32,32);
+ m_pf1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(stadhero_state::get_pf1_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 32,32);
m_pf1_tilemap->set_transparent_pen(0);
}
diff --git a/src/mame/video/starshp1.cpp b/src/mame/video/starshp1.cpp
index c00207f17fd..c2b8038ef17 100644
--- a/src/mame/video/starshp1.cpp
+++ b/src/mame/video/starshp1.cpp
@@ -56,7 +56,7 @@ void starshp1_state::video_start()
int i;
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(starshp1_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 16, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(starshp1_state::get_tile_info)), TILEMAP_SCAN_ROWS, 16, 8, 32, 32);
m_bg_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/stfight_dev.cpp b/src/mame/video/stfight_dev.cpp
index 18c81092dea..7c5d26f04b5 100644
--- a/src/mame/video/stfight_dev.cpp
+++ b/src/mame/video/stfight_dev.cpp
@@ -12,8 +12,8 @@
DEFINE_DEVICE_TYPE(STFIGHT_VIDEO, stfight_video_device, "stfight_vid", "Seibu Street Fight Video")
-stfight_video_device::stfight_video_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
- : device_t(mconfig, STFIGHT_VIDEO, tag, owner, clock),
+stfight_video_device::stfight_video_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
+ device_t(mconfig, STFIGHT_VIDEO, tag, owner, clock),
m_gfxdecode(*this, "gfxdecode"),
m_palette(*this,"^palette"),
m_screen(*this, "screen"),
@@ -311,9 +311,9 @@ void stfight_video_device::device_start()
save_item(NAME(m_sprite_base));
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(stfight_video_device::get_bg_tile_info),this),tilemap_mapper_delegate(FUNC(stfight_video_device::bg_scan),this),16,16,128,256);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(stfight_video_device::get_fg_tile_info),this),tilemap_mapper_delegate(FUNC(stfight_video_device::fg_scan),this),16,16,128,256);
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(stfight_video_device::get_tx_tile_info),this),TILEMAP_SCAN_ROWS, 8,8,32,32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(stfight_video_device::get_bg_tile_info)), tilemap_mapper_delegate(*this, FUNC(stfight_video_device::bg_scan)), 16,16, 128,256);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(stfight_video_device::get_fg_tile_info)), tilemap_mapper_delegate(*this, FUNC(stfight_video_device::fg_scan)), 16,16, 128,256);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(stfight_video_device::get_tx_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 32,32);
// we do manual mixing using a temp bitmap
m_screen->register_screen_bitmap(m_temp_sprite_bitmap);
diff --git a/src/mame/video/sub.cpp b/src/mame/video/sub.cpp
index f2e54e5d194..fe431aca7f2 100644
--- a/src/mame/video/sub.cpp
+++ b/src/mame/video/sub.cpp
@@ -59,7 +59,7 @@ WRITE8_MEMBER(sub_state::scrolly_w)
void sub_state::video_start()
{
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sub_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sub_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_tilemap->set_scroll_cols(32);
}
diff --git a/src/mame/video/suna8.cpp b/src/mame/video/suna8.cpp
index f1e4cd650b2..e187d56dd6d 100644
--- a/src/mame/video/suna8.cpp
+++ b/src/mame/video/suna8.cpp
@@ -155,10 +155,8 @@ void suna8_state::suna8_vh_start_common(bool has_text, GFXBANK_TYPE_T gfxbank_ty
}
#if TILEMAPS
- m_bg_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(suna8_state::get_tile_info),this), TILEMAP_SCAN_COLS,
-
- 8, 8, 0x20*(m_has_text ? 4 : 16), 0x20);
-
+ m_bg_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(suna8_state::get_tile_info)), TILEMAP_SCAN_COLS,
+ 8, 8, 0x20*(m_has_text ? 4 : 16), 0x20);
m_bg_tilemap->set_transparent_pen(15);
#endif
}
diff --git a/src/mame/video/superqix.cpp b/src/mame/video/superqix.cpp
index 4f8b8fc7f54..17996e3770e 100644
--- a/src/mame/video/superqix.cpp
+++ b/src/mame/video/superqix.cpp
@@ -51,17 +51,17 @@ TILE_GET_INFO_MEMBER(superqix_state_base::sqix_get_bg_tile_info)
void hotsmash_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(hotsmash_state::pb_get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8,32,32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(hotsmash_state::pb_get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8,32,32);
}
void superqix_state::video_start()
{
m_fg_bitmap[0] = std::make_unique<bitmap_ind16>(256, 256);
m_fg_bitmap[1] = std::make_unique<bitmap_ind16>(256, 256);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(superqix_state_base::sqix_get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(superqix_state_base::sqix_get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_bg_tilemap->set_transmask(0,0xffff,0x0000); /* split type 0 is totally transparent in front half */
- m_bg_tilemap->set_transmask(1,0x0001,0xfffe); /* split type 1 has pen 0 transparent in front half */
+ m_bg_tilemap->set_transmask(0, 0xffff, 0x0000); // split type 0 is totally transparent in front half
+ m_bg_tilemap->set_transmask(1, 0x0001, 0xfffe); // split type 1 has pen 0 transparent in front half
save_item(NAME(*m_fg_bitmap[0]));
save_item(NAME(*m_fg_bitmap[1]));
diff --git a/src/mame/video/suprloco.cpp b/src/mame/video/suprloco.cpp
index 15608323be7..be0b991d78a 100644
--- a/src/mame/video/suprloco.cpp
+++ b/src/mame/video/suprloco.cpp
@@ -90,7 +90,7 @@ TILE_GET_INFO_MEMBER(suprloco_state::get_tile_info)
void suprloco_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(suprloco_state::get_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(suprloco_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 32,32);
m_bg_tilemap->set_scroll_rows(32);
diff --git a/src/mame/video/suprnova.cpp b/src/mame/video/suprnova.cpp
index 25a02e667bd..f32c7a9e8d7 100644
--- a/src/mame/video/suprnova.cpp
+++ b/src/mame/video/suprnova.cpp
@@ -345,10 +345,10 @@ WRITE32_MEMBER(skns_state::v3_regs_w)
void skns_state::video_start()
{
- m_tilemap_A = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(skns_state::get_tilemap_A_tile_info),this),TILEMAP_SCAN_ROWS,16,16,64, 64);
+ m_tilemap_A = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(skns_state::get_tilemap_A_tile_info)), TILEMAP_SCAN_ROWS, 16,16, 64,64);
m_tilemap_A->set_transparent_pen(0);
- m_tilemap_B = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(skns_state::get_tilemap_B_tile_info),this),TILEMAP_SCAN_ROWS,16,16,64, 64);
+ m_tilemap_B = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(skns_state::get_tilemap_B_tile_info)), TILEMAP_SCAN_ROWS, 16,16, 64,64);
m_tilemap_B->set_transparent_pen(0);
m_sprite_bitmap.allocate(1024,1024);
diff --git a/src/mame/video/suprridr.cpp b/src/mame/video/suprridr.cpp
index 1b695465257..645033f85f4 100644
--- a/src/mame/video/suprridr.cpp
+++ b/src/mame/video/suprridr.cpp
@@ -40,9 +40,9 @@ TILE_GET_INFO_MEMBER(suprridr_state::get_tile_info2)
void suprridr_state::video_start()
{
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(suprridr_state::get_tile_info2),this), TILEMAP_SCAN_ROWS, 8,8, 32,32);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(suprridr_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8,8, 32,32);
- m_bg_tilemap_noscroll = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(suprridr_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8,8, 32,32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(suprridr_state::get_tile_info2)), TILEMAP_SCAN_ROWS, 8,8, 32,32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(suprridr_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 32,32);
+ m_bg_tilemap_noscroll = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(suprridr_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 32,32);
m_fg_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/suprslam.cpp b/src/mame/video/suprslam.cpp
index 8797ef12594..222dfeac954 100644
--- a/src/mame/video/suprslam.cpp
+++ b/src/mame/video/suprslam.cpp
@@ -57,8 +57,8 @@ uint32_t suprslam_state::suprslam_tile_callback( uint32_t code )
void suprslam_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(suprslam_state::get_suprslam_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
- m_screen_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(suprslam_state::get_suprslam_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(suprslam_state::get_suprslam_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
+ m_screen_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(suprslam_state::get_suprslam_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_spr_ctrl = 0;
m_screen_tilemap->set_transparent_pen(15);
diff --git a/src/mame/video/system1.cpp b/src/mame/video/system1.cpp
index 745bd7148da..d04a9e6f1b6 100644
--- a/src/mame/video/system1.cpp
+++ b/src/mame/video/system1.cpp
@@ -131,7 +131,7 @@ void system1_state::video_start_common(int pagecount)
/* create the tilemap pages */
for (pagenum = 0; pagenum < pagecount; pagenum++)
{
- m_tilemap_page[pagenum] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(system1_state::tile_get_info),this), TILEMAP_SCAN_ROWS, 8,8, 32,32);
+ m_tilemap_page[pagenum] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(system1_state::tile_get_info)), TILEMAP_SCAN_ROWS, 8,8, 32,32);
m_tilemap_page[pagenum]->set_transparent_pen(0);
m_tilemap_page[pagenum]->set_user_data(m_videoram.get() + 0x800 * pagenum);
}
diff --git a/src/mame/video/system16.cpp b/src/mame/video/system16.cpp
index 1b26cb74807..331f0258cfe 100644
--- a/src/mame/video/system16.cpp
+++ b/src/mame/video/system16.cpp
@@ -36,9 +36,8 @@ void segas1x_bootleg_state::setup_system16_bootleg_spritebanking( )
{
if (m_spritebank_type == 0)
{
- static const uint8_t alternate_banklist[] = { 0,255,255,255, 255,255,255,3, 255,255,255,2, 255,1,0,255 };
- int i;
- for (i = 0; i < 16; i++)
+ static constexpr uint8_t alternate_banklist[] = { 0,255,255,255, 255,255,255,3, 255,255,255,2, 255,1,0,255 };
+ for (int i = 0; i < 16; i++)
m_sprites->set_bank(i, alternate_banklist[i]);
}
@@ -366,24 +365,24 @@ VIDEO_START_MEMBER(segas1x_bootleg_state,system16)
if (!m_bg1_trans)
m_background[0] = &machine().tilemap().create(
- *m_gfxdecode, tilemap_get_info_delegate(FUNC(segas1x_bootleg_state::get_bg_tile_info),this), tilemap_mapper_delegate(FUNC(segas1x_bootleg_state::sys16_bg_map),this),
+ *m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(segas1x_bootleg_state::get_bg_tile_info)), tilemap_mapper_delegate(*this, FUNC(segas1x_bootleg_state::sys16_bg_map)),
8,8,
- 64*2,32*2 );
+ 64*2,32*2);
else
m_background[0] = &machine().tilemap().create(
- *m_gfxdecode, tilemap_get_info_delegate(FUNC(segas1x_bootleg_state::get_bg_tile_info),this), tilemap_mapper_delegate(FUNC(segas1x_bootleg_state::sys16_bg_map),this),
+ *m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(segas1x_bootleg_state::get_bg_tile_info)), tilemap_mapper_delegate(*this, FUNC(segas1x_bootleg_state::sys16_bg_map)),
8,8,
- 64*2,32*2 );
+ 64*2,32*2);
m_foreground[0] = &machine().tilemap().create(
- *m_gfxdecode, tilemap_get_info_delegate(FUNC(segas1x_bootleg_state::get_fg_tile_info),this), tilemap_mapper_delegate(FUNC(segas1x_bootleg_state::sys16_bg_map),this),
+ *m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(segas1x_bootleg_state::get_fg_tile_info)), tilemap_mapper_delegate(*this, FUNC(segas1x_bootleg_state::sys16_bg_map)),
8,8,
- 64*2,32*2 );
+ 64*2,32*2);
m_text_layer = &machine().tilemap().create(
- *m_gfxdecode, tilemap_get_info_delegate(FUNC(segas1x_bootleg_state::get_text_tile_info),this), tilemap_mapper_delegate(FUNC(segas1x_bootleg_state::sys16_text_map),this),
+ *m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(segas1x_bootleg_state::get_text_tile_info)), tilemap_mapper_delegate(*this, FUNC(segas1x_bootleg_state::sys16_text_map)),
8,8,
- 40,28 );
+ 40,28);
if (m_bg1_trans) m_background[0]->set_transparent_pen(0);
m_foreground[0]->set_transparent_pen(0);
@@ -422,14 +421,14 @@ VIDEO_START_MEMBER(segas1x_bootleg_state,system18old)
m_bg1_trans = 1;
m_background[1] = &machine().tilemap().create(
- *m_gfxdecode, tilemap_get_info_delegate(FUNC(segas1x_bootleg_state::get_bg2_tile_info),this), tilemap_mapper_delegate(FUNC(segas1x_bootleg_state::sys16_bg_map),this),
+ *m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(segas1x_bootleg_state::get_bg2_tile_info)), tilemap_mapper_delegate(*this, FUNC(segas1x_bootleg_state::sys16_bg_map)),
8,8,
- 64*2,32*2 );
+ 64*2,32*2);
m_foreground[1] = &machine().tilemap().create(
- *m_gfxdecode, tilemap_get_info_delegate(FUNC(segas1x_bootleg_state::get_fg2_tile_info),this), tilemap_mapper_delegate(FUNC(segas1x_bootleg_state::sys16_bg_map),this),
+ *m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(segas1x_bootleg_state::get_fg2_tile_info)), tilemap_mapper_delegate(*this, FUNC(segas1x_bootleg_state::sys16_bg_map)),
8,8,
- 64*2,32*2 );
+ 64*2,32*2);
m_foreground[1]->set_transparent_pen(0);
@@ -557,11 +556,11 @@ VIDEO_START_MEMBER(segas1x_bootleg_state,s16a_bootleg)
- m_text_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(segas1x_bootleg_state::get_s16a_bootleg_tile_infotxt),this), TILEMAP_SCAN_ROWS, 8,8, 64,32 );
+ m_text_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(segas1x_bootleg_state::get_s16a_bootleg_tile_infotxt)), TILEMAP_SCAN_ROWS, 8,8, 64,32);
// the system16a bootlegs have simple tilemaps instead of the paged system
- m_bg_tilemaps[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(segas1x_bootleg_state::get_s16a_bootleg_tile_info0),this), TILEMAP_SCAN_ROWS, 8,8, 64,32 );
- m_bg_tilemaps[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(segas1x_bootleg_state::get_s16a_bootleg_tile_info1),this), TILEMAP_SCAN_ROWS, 8,8, 64,32 );
+ m_bg_tilemaps[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(segas1x_bootleg_state::get_s16a_bootleg_tile_info0)), TILEMAP_SCAN_ROWS, 8,8, 64,32);
+ m_bg_tilemaps[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(segas1x_bootleg_state::get_s16a_bootleg_tile_info1)), TILEMAP_SCAN_ROWS, 8,8, 64,32);
m_text_tilemap->set_transparent_pen(0);
m_bg_tilemaps[0]->set_transparent_pen(0);
diff --git a/src/mame/video/tagteam.cpp b/src/mame/video/tagteam.cpp
index 2fb421ad380..f46f85a3a27 100644
--- a/src/mame/video/tagteam.cpp
+++ b/src/mame/video/tagteam.cpp
@@ -137,7 +137,7 @@ TILE_GET_INFO_MEMBER(tagteam_state::get_bg_tile_info)
void tagteam_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tagteam_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS_FLIP_X,
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tagteam_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS_FLIP_X,
8, 8, 32, 32);
save_item(NAME(m_palettebank));
diff --git a/src/mame/video/tail2nos.cpp b/src/mame/video/tail2nos.cpp
index b8191e93382..9c3ab1d4282 100644
--- a/src/mame/video/tail2nos.cpp
+++ b/src/mame/video/tail2nos.cpp
@@ -49,7 +49,7 @@ void tail2nos_state::tail2nos_postload()
void tail2nos_state::video_start()
{
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tail2nos_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tail2nos_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_tx_tilemap->set_transparent_pen(15);
diff --git a/src/mame/video/taito_f3.cpp b/src/mame/video/taito_f3.cpp
index 2d1ae3b058e..458f347ff06 100644
--- a/src/mame/video/taito_f3.cpp
+++ b/src/mame/video/taito_f3.cpp
@@ -498,10 +498,10 @@ void taito_f3_state::video_start()
if (m_game_config->extend)
{
- m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info<0>), this), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
- m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info<1>), this), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
- m_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info<2>), this), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
- m_tilemap[3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info<3>), this), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
+ m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(taito_f3_state::get_tile_info<0>)), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
+ m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(taito_f3_state::get_tile_info<1>)), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
+ m_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(taito_f3_state::get_tile_info<2>)), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
+ m_tilemap[3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(taito_f3_state::get_tile_info<3>)), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
m_pf_data[0] = m_pf_ram + (0x0000 / 2);
m_pf_data[1] = m_pf_ram + (0x2000 / 2);
@@ -519,14 +519,14 @@ void taito_f3_state::video_start()
}
else
{
- m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info<0>), this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info<1>), this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- m_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info<2>), this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- m_tilemap[3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info<3>), this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- m_tilemap[4] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info<4>), this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- m_tilemap[5] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info<5>), this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- m_tilemap[6] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info<6>), this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- m_tilemap[7] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info<7>), this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(taito_f3_state::get_tile_info<0>)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(taito_f3_state::get_tile_info<1>)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(taito_f3_state::get_tile_info<2>)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_tilemap[3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(taito_f3_state::get_tile_info<3>)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_tilemap[4] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(taito_f3_state::get_tile_info<4>)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_tilemap[5] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(taito_f3_state::get_tile_info<5>)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_tilemap[6] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(taito_f3_state::get_tile_info<6>)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_tilemap[7] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(taito_f3_state::get_tile_info<7>)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
m_pf_data[0] = m_pf_ram + (0x0000 / 2);
m_pf_data[1] = m_pf_ram + (0x1000 / 2);
@@ -554,8 +554,8 @@ void taito_f3_state::video_start()
m_spriteram16_buffered = std::make_unique<u16[]>(0x10000 / 2);
m_spritelist = std::make_unique<tempsprite[]>(0x400);
m_sprite_end = &m_spritelist[0];
- m_vram_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info_text), this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_pixel_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info_pixel), this), TILEMAP_SCAN_COLS, 8, 8, 64, 32);
+ m_vram_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(taito_f3_state::get_tile_info_text)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_pixel_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(taito_f3_state::get_tile_info_pixel)), TILEMAP_SCAN_COLS, 8, 8, 64, 32);
m_pf_line_inf = std::make_unique<f3_playfield_line_inf[]>(5);
m_sa_line_inf = std::make_unique<f3_spritealpha_line_inf[]>(1);
m_screen->register_screen_bitmap(m_pri_alp_bitmap);
@@ -566,8 +566,7 @@ void taito_f3_state::video_start()
m_vram_layer->set_transparent_pen(0);
m_pixel_layer->set_transparent_pen(0);
- /* Palettes have 4 bpp indexes despite up to 6 bpp data. The unused */
- /* top bits in the gfx data are cleared later. */
+ // Palettes have 4 bpp indexes despite up to 6 bpp data. The unused top bits in the gfx data are cleared later.
m_gfxdecode->gfx(2)->set_granularity(16);
m_gfxdecode->gfx(3)->set_granularity(16);
diff --git a/src/mame/video/taito_l.cpp b/src/mame/video/taito_l.cpp
index 237ce077cf4..6035969cccb 100644
--- a/src/mame/video/taito_l.cpp
+++ b/src/mame/video/taito_l.cpp
@@ -50,9 +50,9 @@ void taitol_state::video_start()
{
m_buff_spriteram = make_unique_clear<u8[]>(SPRITERAM_SIZE);
- m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(taitol_state::get_tile_info<0x8000>),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(taitol_state::get_tile_info<0x9000>),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(taitol_state::get_tx_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(taitol_state::get_tile_info<0x8000>)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(taitol_state::get_tile_info<0x9000>)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(taitol_state::get_tx_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_bg_tilemap[0]->set_transparent_pen(0);
m_tx_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/taitojc.cpp b/src/mame/video/taitojc.cpp
index 25f965eb542..018709783d8 100644
--- a/src/mame/video/taitojc.cpp
+++ b/src/mame/video/taitojc.cpp
@@ -309,7 +309,7 @@ void taitojc_state::video_start()
assert(m_gfx_index != MAX_GFX_ELEMENTS);
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(taitojc_state::taitojc_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(taitojc_state::taitojc_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
m_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/tank8.cpp b/src/mame/video/tank8.cpp
index e0919d373fd..8e76fa7d0db 100644
--- a/src/mame/video/tank8.cpp
+++ b/src/mame/video/tank8.cpp
@@ -104,10 +104,9 @@ void tank8_state::video_start()
m_screen->register_screen_bitmap(m_helper2);
m_screen->register_screen_bitmap(m_helper3);
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tank8_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
-
- /* VBLANK starts on scanline #256 and ends on scanline #24 */
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tank8_state::get_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ // VBLANK starts on scanline #256 and ends on scanline #24
m_tilemap->set_scrolly(0, 2 * 24);
save_item(NAME(m_collision_index));
diff --git a/src/mame/video/tankbatt.cpp b/src/mame/video/tankbatt.cpp
index 847bba56002..067cf00a70b 100644
--- a/src/mame/video/tankbatt.cpp
+++ b/src/mame/video/tankbatt.cpp
@@ -67,22 +67,22 @@ TILE_GET_INFO_MEMBER(tankbatt_state::get_bg_tile_info)
void tankbatt_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tankbatt_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tankbatt_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
void tankbatt_state::draw_bullets(bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- for (int offs = 0;offs < m_bulletsram.bytes();offs += 2)
+ for (int offs = 0; offs < m_bulletsram.bytes(); offs += 2)
{
- int color = 0xff; /* cyan, same color as the tanks */
- int x = m_bulletsram[offs + 1];
- int y = 255 - m_bulletsram[offs] - 2;
+ int const color = 0xff; // cyan, same color as the tanks
+ int const x = m_bulletsram[offs + 1];
+ int const y = 255 - m_bulletsram[offs] - 2;
m_gfxdecode->gfx(1)->opaque(bitmap,cliprect,
- 0, /* this is just a square, generated by the hardware */
- color,
- 0,0,
- x,y);
+ 0, // this is just a square, generated by the hardware
+ color,
+ 0, 0,
+ x, y);
}
}
diff --git a/src/mame/video/tankbust.cpp b/src/mame/video/tankbust.cpp
index e179c067f6a..f79167032c9 100644
--- a/src/mame/video/tankbust.cpp
+++ b/src/mame/video/tankbust.cpp
@@ -79,10 +79,10 @@ TILE_GET_INFO_MEMBER(tankbust_state::get_txt_tile_info)
void tankbust_state::video_start()
{
/* not scrollable */
- m_txt_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tankbust_state::get_txt_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_txt_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tankbust_state::get_txt_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
/* scrollable */
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tankbust_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tankbust_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_txt_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/taotaido.cpp b/src/mame/video/taotaido.cpp
index 9f23e7eb720..2da4879bcff 100644
--- a/src/mame/video/taotaido.cpp
+++ b/src/mame/video/taotaido.cpp
@@ -92,7 +92,7 @@ uint32_t taotaido_state::tile_callback( uint32_t code )
void taotaido_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(taotaido_state::bg_tile_info),this),tilemap_mapper_delegate(FUNC(taotaido_state::tilemap_scan_rows),this),16,16,128,64);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(taotaido_state::bg_tile_info)), tilemap_mapper_delegate(*this, FUNC(taotaido_state::tilemap_scan_rows)), 16,16, 128,64);
m_spriteram_old = std::make_unique<uint16_t[]>(0x2000/2);
m_spriteram_older = std::make_unique<uint16_t[]>(0x2000/2);
diff --git a/src/mame/video/targeth.cpp b/src/mame/video/targeth.cpp
index def35b159d3..5460badc82f 100644
--- a/src/mame/video/targeth.cpp
+++ b/src/mame/video/targeth.cpp
@@ -65,8 +65,8 @@ WRITE16_MEMBER(targeth_state::vram_w)
void targeth_state::video_start()
{
- m_pant[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(targeth_state::get_tile_info<0>),this),TILEMAP_SCAN_ROWS,16,16,64,32);
- m_pant[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(targeth_state::get_tile_info<1>),this),TILEMAP_SCAN_ROWS,16,16,64,32);
+ m_pant[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(targeth_state::get_tile_info<0>)), TILEMAP_SCAN_ROWS, 16,16, 64,32);
+ m_pant[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(targeth_state::get_tile_info<1>)), TILEMAP_SCAN_ROWS, 16,16, 64,32);
m_pant[0]->set_transparent_pen(0);
}
diff --git a/src/mame/video/tatsumi.cpp b/src/mame/video/tatsumi.cpp
index 88491e65f59..511e428d716 100644
--- a/src/mame/video/tatsumi.cpp
+++ b/src/mame/video/tatsumi.cpp
@@ -687,7 +687,7 @@ void apache3_state::draw_ground(bitmap_rgb32 &dst, const rectangle &cliprect)
VIDEO_START_MEMBER(apache3_state,apache3)
{
- m_tx_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tatsumi_state::get_text_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,64);
+ m_tx_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tatsumi_state::get_text_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 64,64);
m_shadow_pen_array = make_unique_clear<uint8_t[]>(8192);
m_temp_bitmap.allocate(512, 512);
m_apache3_road_x_ram = std::make_unique<uint8_t[]>(512);
@@ -754,7 +754,7 @@ WRITE8_MEMBER(roundup5_state::gfxdata_w)
VIDEO_START_MEMBER(roundup5_state,roundup5)
{
- m_tx_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tatsumi_state::get_text_tile_info),this),TILEMAP_SCAN_ROWS,8,8,128,64);
+ m_tx_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tatsumi_state::get_text_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 128,64);
m_shadow_pen_array = make_unique_clear<uint8_t[]>(8192);
m_tx_gfxram = std::make_unique<uint8_t[]>(0x20000);
m_bg_gfxram = std::make_unique<uint8_t[]>(0x20000);
@@ -1185,10 +1185,10 @@ void cyclwarr_state::tile_expand()
VIDEO_START_MEMBER(cyclwarr_state,cyclwarr)
{
tile_expand();
- m_layer[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cyclwarr_state::get_tile_info_bigfight<0>),this),TILEMAP_SCAN_ROWS,8,8,64,512);
- m_layer[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cyclwarr_state::get_tile_info_cyclwarr_road<1>),this),TILEMAP_SCAN_ROWS,8,8,128,256);
- m_layer[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cyclwarr_state::get_tile_info_bigfight<2>),this),TILEMAP_SCAN_ROWS,8,8,64,512);
- m_layer[3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cyclwarr_state::get_tile_info_bigfight<3>),this),TILEMAP_SCAN_ROWS,8,8,64,512);
+ m_layer[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cyclwarr_state::get_tile_info_bigfight<0>)), TILEMAP_SCAN_ROWS, 8,8, 64,512);
+ m_layer[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cyclwarr_state::get_tile_info_cyclwarr_road<1>)), TILEMAP_SCAN_ROWS, 8,8, 128,256);
+ m_layer[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cyclwarr_state::get_tile_info_bigfight<2>)), TILEMAP_SCAN_ROWS, 8,8, 64,512);
+ m_layer[3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cyclwarr_state::get_tile_info_bigfight<3>)), TILEMAP_SCAN_ROWS, 8,8, 64,512);
m_shadow_pen_array = make_unique_clear<uint8_t[]>(8192);
@@ -1209,10 +1209,10 @@ VIDEO_START_MEMBER(cyclwarr_state,cyclwarr)
VIDEO_START_MEMBER(cyclwarr_state,bigfight)
{
tile_expand();
- m_layer[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cyclwarr_state::get_tile_info_bigfight<0>),this),TILEMAP_SCAN_ROWS,8,8,128,256);
- m_layer[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cyclwarr_state::get_tile_info_bigfight<1>),this),TILEMAP_SCAN_ROWS,8,8,128,256);
- m_layer[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cyclwarr_state::get_tile_info_bigfight<2>),this),TILEMAP_SCAN_ROWS,8,8,128,256);
- m_layer[3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cyclwarr_state::get_tile_info_bigfight<3>),this),TILEMAP_SCAN_ROWS,8,8,128,256);
+ m_layer[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cyclwarr_state::get_tile_info_bigfight<0>)), TILEMAP_SCAN_ROWS, 8,8, 128,256);
+ m_layer[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cyclwarr_state::get_tile_info_bigfight<1>)), TILEMAP_SCAN_ROWS, 8,8, 128,256);
+ m_layer[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cyclwarr_state::get_tile_info_bigfight<2>)), TILEMAP_SCAN_ROWS, 8,8, 128,256);
+ m_layer[3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cyclwarr_state::get_tile_info_bigfight<3>)), TILEMAP_SCAN_ROWS, 8,8, 128,256);
m_shadow_pen_array = make_unique_clear<uint8_t[]>(8192);
diff --git a/src/mame/video/tbowl.cpp b/src/mame/video/tbowl.cpp
index 640d5d41616..d060459868c 100644
--- a/src/mame/video/tbowl.cpp
+++ b/src/mame/video/tbowl.cpp
@@ -111,9 +111,9 @@ WRITE8_MEMBER(tbowl_state::bg2yscroll_hi)
void tbowl_state::video_start()
{
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tbowl_state::get_tx_tile_info),this),TILEMAP_SCAN_ROWS, 8, 8,64,32);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tbowl_state::get_bg_tile_info),this),TILEMAP_SCAN_ROWS, 16, 16,128,32);
- m_bg2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tbowl_state::get_bg2_tile_info),this),TILEMAP_SCAN_ROWS, 16, 16,128,32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tbowl_state::get_tx_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64,32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tbowl_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16,16, 128,32);
+ m_bg2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tbowl_state::get_bg2_tile_info)), TILEMAP_SCAN_ROWS, 16,16, 128,32);
m_tx_tilemap->set_transparent_pen(0);
m_bg_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/tc0080vco.cpp b/src/mame/video/tc0080vco.cpp
index fdba11c01cd..645ab6f36a9 100644
--- a/src/mame/video/tc0080vco.cpp
+++ b/src/mame/video/tc0080vco.cpp
@@ -143,8 +143,8 @@ void tc0080vco_device::device_start()
16*8
};
- m_tilemap[0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(tc0080vco_device::get_bg0_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
- m_tilemap[1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(tc0080vco_device::get_bg1_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
+ m_tilemap[0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(tc0080vco_device::get_bg0_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
+ m_tilemap[1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(tc0080vco_device::get_bg1_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
m_tilemap[0]->set_transparent_pen(0);
m_tilemap[1]->set_transparent_pen(0);
@@ -158,7 +158,7 @@ void tc0080vco_device::device_start()
m_tilemap[0]->set_scroll_rows(512);
/* Perform extra initialisations for text layer */
- m_tilemap[2] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(tc0080vco_device::get_tx_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap[2] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(tc0080vco_device::get_tx_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
m_tilemap[2]->set_scrolldx(0, 0);
m_tilemap[2]->set_scrolldy(48, -448);
diff --git a/src/mame/video/tc0100scn.cpp b/src/mame/video/tc0100scn.cpp
index 0238be3d35e..084085b6365 100644
--- a/src/mame/video/tc0100scn.cpp
+++ b/src/mame/video/tc0100scn.cpp
@@ -156,6 +156,7 @@ tc0100scn_base_device::tc0100scn_base_device(const machine_config &mconfig, devi
: device_t(mconfig, type, tag, owner, clock)
, device_gfx_interface(mconfig, *this)
, m_gfxlayout(TC0100SCN_LAYOUT_DEFAULT)
+ , m_tc0100scn_cb(*this)
, m_ram(nullptr)
, m_bgscroll_ram(nullptr)
, m_fgscroll_ram(nullptr)
@@ -227,7 +228,7 @@ GFXDECODE_END
void tc0100scn_base_device::device_start()
{
// bind callbacks
- m_tc0100scn_cb.bind_relative_to(*owner());
+ m_tc0100scn_cb.resolve();
static const gfx_layout charlayout =
{
@@ -248,14 +249,14 @@ void tc0100scn_base_device::device_start()
we're safe as it uses single width tilemaps. */
/* Single width versions */
- m_tilemap[0][0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(&tc0100scn_base_device::get_bg_tile_info<0x00000, 0>, "bg0_std", this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_tilemap[1][0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(&tc0100scn_base_device::get_bg_tile_info<0x04000, 1>, "bg1_std", this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_tilemap[2][0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(&tc0100scn_base_device::get_tx_tile_info<0x02000, 1>, "txt_std", this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap[0][0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, NAME((&tc0100scn_base_device::get_bg_tile_info<0x00000, 0>))), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap[1][0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, NAME((&tc0100scn_base_device::get_bg_tile_info<0x04000, 1>))), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap[2][0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, NAME((&tc0100scn_base_device::get_tx_tile_info<0x02000, 1>))), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
/* Double width versions */
- m_tilemap[0][1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(&tc0100scn_base_device::get_bg_tile_info<0x00000, 0>, "bg0_wide", this), TILEMAP_SCAN_ROWS, 8, 8, 128, 64);
- m_tilemap[1][1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(&tc0100scn_base_device::get_bg_tile_info<0x04000, 1>, "bg1_wide", this), TILEMAP_SCAN_ROWS, 8, 8, 128, 64);
- m_tilemap[2][1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(&tc0100scn_base_device::get_tx_tile_info<0x09000, 2>, "txt_wide", this), TILEMAP_SCAN_ROWS, 8, 8, 128, 32);
+ m_tilemap[0][1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, NAME((&tc0100scn_base_device::get_bg_tile_info<0x00000, 0>))), TILEMAP_SCAN_ROWS, 8, 8, 128, 64);
+ m_tilemap[1][1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, NAME((&tc0100scn_base_device::get_bg_tile_info<0x04000, 1>))), TILEMAP_SCAN_ROWS, 8, 8, 128, 64);
+ m_tilemap[2][1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, NAME((&tc0100scn_base_device::get_tx_tile_info<0x09000, 2>))), TILEMAP_SCAN_ROWS, 8, 8, 128, 32);
m_tilemap[0][0]->set_transparent_pen(0);
m_tilemap[1][0]->set_transparent_pen(0);
diff --git a/src/mame/video/tc0100scn.h b/src/mame/video/tc0100scn.h
index ad2ba68644a..8b99eb7b9a2 100644
--- a/src/mame/video/tc0100scn.h
+++ b/src/mame/video/tc0100scn.h
@@ -17,16 +17,17 @@ enum {
TC0620SCC_LAYOUT_DEFAULT = 0 // default TC0620SCC layout is 6bpp
};
-typedef device_delegate<void (u32 *code, u16 *color)> tc0100scn_cb_delegate;
#define TC0100SCN_CB_MEMBER(_name) void _name(u32 *code, u16 *color)
class tc0100scn_base_device : public device_t, public device_gfx_interface
{
public:
+ typedef device_delegate<void (u32 *code, u16 *color)> tc0100scn_cb_delegate;
+
// configuration
void set_gfxlayout(int layout) { m_gfxlayout = layout; }
void set_color_base(u16 base) { m_col_base = base; }
- template <typename... T> void set_tile_callback(T &&... args) { m_tc0100scn_cb = tc0100scn_cb_delegate(std::forward<T>(args)...); }
+ template <typename... T> void set_tile_callback(T &&... args) { m_tc0100scn_cb.set(std::forward<T>(args)...); }
void set_multiscr_xoffs(int xoffs) { m_multiscrn_xoffs = xoffs; }
void set_multiscr_hack(int hack) { m_multiscrn_hack = hack; }
void set_offsets(int x_offset, int y_offset)
diff --git a/src/mame/video/tc0180vcu.cpp b/src/mame/video/tc0180vcu.cpp
index 7c0f5827070..d8bc1876061 100644
--- a/src/mame/video/tc0180vcu.cpp
+++ b/src/mame/video/tc0180vcu.cpp
@@ -90,9 +90,9 @@ void tc0180vcu_device::device_resolve_objects()
void tc0180vcu_device::device_start()
{
- m_tilemap[0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(tc0180vcu_device::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
- m_tilemap[1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(tc0180vcu_device::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
- m_tilemap[2] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(tc0180vcu_device::get_tx_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tilemap[0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(tc0180vcu_device::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
+ m_tilemap[1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(tc0180vcu_device::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
+ m_tilemap[2] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(tc0180vcu_device::get_tx_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_tilemap[1]->set_transparent_pen(0);
m_tilemap[2]->set_transparent_pen(0);
diff --git a/src/mame/video/tc0280grd.cpp b/src/mame/video/tc0280grd.cpp
index 90c154a389b..8837a1e9440 100644
--- a/src/mame/video/tc0280grd.cpp
+++ b/src/mame/video/tc0280grd.cpp
@@ -59,7 +59,7 @@ void tc0280grd_device::device_start()
decode_gfx(gfxinfo);
gfx(0)->set_colorbase(m_colorbase);
- m_tilemap = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(tc0280grd_device::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(tc0280grd_device::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
m_tilemap->set_transparent_pen(0);
m_ram = make_unique_clear<u16[]>(TC0280GRD_RAM_SIZE / 2);
diff --git a/src/mame/video/tc0480scp.cpp b/src/mame/video/tc0480scp.cpp
index 47f4b5c1b8a..8a52fd5a4e5 100644
--- a/src/mame/video/tc0480scp.cpp
+++ b/src/mame/video/tc0480scp.cpp
@@ -246,18 +246,18 @@ void tc0480scp_device::device_start()
};
/* Single width versions */
- m_tilemap[0][0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(tc0480scp_device::get_bg_tile_info<0x0000>),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- m_tilemap[1][0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(tc0480scp_device::get_bg_tile_info<0x0800>),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- m_tilemap[2][0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(tc0480scp_device::get_bg_tile_info<0x1000>),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- m_tilemap[3][0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(tc0480scp_device::get_bg_tile_info<0x1800>),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- m_tilemap[4][0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(tc0480scp_device::get_tx_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap[0][0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(tc0480scp_device::get_bg_tile_info<0x0000>)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_tilemap[1][0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(tc0480scp_device::get_bg_tile_info<0x0800>)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_tilemap[2][0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(tc0480scp_device::get_bg_tile_info<0x1000>)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_tilemap[3][0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(tc0480scp_device::get_bg_tile_info<0x1800>)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_tilemap[4][0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(tc0480scp_device::get_tx_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
/* Double width versions */
- m_tilemap[0][1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(tc0480scp_device::get_bg_tile_info<0x0000>),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
- m_tilemap[1][1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(tc0480scp_device::get_bg_tile_info<0x1000>),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
- m_tilemap[2][1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(tc0480scp_device::get_bg_tile_info<0x2000>),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
- m_tilemap[3][1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(tc0480scp_device::get_bg_tile_info<0x3000>),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
- m_tilemap[4][1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(tc0480scp_device::get_tx_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap[0][1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(tc0480scp_device::get_bg_tile_info<0x0000>)), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
+ m_tilemap[1][1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(tc0480scp_device::get_bg_tile_info<0x1000>)), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
+ m_tilemap[2][1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(tc0480scp_device::get_bg_tile_info<0x2000>)), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
+ m_tilemap[3][1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(tc0480scp_device::get_bg_tile_info<0x3000>)), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
+ m_tilemap[4][1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(tc0480scp_device::get_tx_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
for (int i = 0; i < 2; i++)
{
diff --git a/src/mame/video/tceptor.cpp b/src/mame/video/tceptor.cpp
index 7b14db0b7b7..556401437c1 100644
--- a/src/mame/video/tceptor.cpp
+++ b/src/mame/video/tceptor.cpp
@@ -377,14 +377,14 @@ void tceptor_state::video_start()
m_c45_road->set_transparent_color(m_palette->pen_indirect(0xfff));
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tceptor_state::get_tx_tile_info),this), TILEMAP_SCAN_COLS, 8, 8, 34, 28);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tceptor_state::get_tx_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 34, 28);
m_tx_tilemap->set_scrollx(0, -2*8);
m_tx_tilemap->set_scrolly(0, 0);
m_tx_tilemap->configure_groups(*m_gfxdecode->gfx(0), 7);
- m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tceptor_state::get_bg1_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tceptor_state::get_bg2_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tceptor_state::get_bg1_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tceptor_state::get_bg2_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
save_pointer(NAME(m_sprite_ram_buffered), 0x200 / 2);
save_item(NAME(m_bg_scroll_x[0]));
diff --git a/src/mame/video/tecmo.cpp b/src/mame/video/tecmo.cpp
index 484bebc3506..16af911473c 100644
--- a/src/mame/video/tecmo.cpp
+++ b/src/mame/video/tecmo.cpp
@@ -80,15 +80,15 @@ void tecmo_state::video_start()
{
if (m_video_type == 2) /* gemini */
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tecmo_state::gemini_get_bg_tile_info),this),TILEMAP_SCAN_ROWS,16,16,32,16);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tecmo_state::gemini_get_fg_tile_info),this),TILEMAP_SCAN_ROWS,16,16,32,16);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tecmo_state::gemini_get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16,16, 32,16);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tecmo_state::gemini_get_fg_tile_info)), TILEMAP_SCAN_ROWS, 16,16, 32,16);
}
else /* rygar, silkworm */
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tecmo_state::get_bg_tile_info),this),TILEMAP_SCAN_ROWS,16,16,32,16);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tecmo_state::get_fg_tile_info),this),TILEMAP_SCAN_ROWS,16,16,32,16);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tecmo_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16,16, 32,16);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tecmo_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 16,16, 32,16);
}
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tecmo_state::get_tx_tile_info),this),TILEMAP_SCAN_ROWS, 8, 8,32,32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tecmo_state::get_tx_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32,32);
m_bg_tilemap->set_transparent_pen(0);
m_fg_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/tecmo16.cpp b/src/mame/video/tecmo16.cpp
index 3b386509751..0dbae63431a 100644
--- a/src/mame/video/tecmo16.cpp
+++ b/src/mame/video/tecmo16.cpp
@@ -74,9 +74,9 @@ void tecmo16_state::video_start()
/* set up sprites */
m_screen->register_screen_bitmap(m_sprite_bitmap);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tecmo16_state::fg_get_tile_info),this),TILEMAP_SCAN_ROWS,16,16,32,32);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tecmo16_state::bg_get_tile_info),this),TILEMAP_SCAN_ROWS,16,16,32,32);
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tecmo16_state::tx_get_tile_info),this),TILEMAP_SCAN_ROWS, 8, 8,64,32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tecmo16_state::fg_get_tile_info)), TILEMAP_SCAN_ROWS, 16,16, 32,32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tecmo16_state::bg_get_tile_info)), TILEMAP_SCAN_ROWS, 16,16, 32,32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tecmo16_state::tx_get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64,32);
m_fg_tilemap->set_transparent_pen(0);
m_bg_tilemap->set_transparent_pen(0);
@@ -99,9 +99,9 @@ VIDEO_START_MEMBER(tecmo16_state,ginkun)
/* set up sprites */
m_screen->register_screen_bitmap(m_sprite_bitmap);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tecmo16_state::fg_get_tile_info),this),TILEMAP_SCAN_ROWS,16,16,64,32);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tecmo16_state::bg_get_tile_info),this),TILEMAP_SCAN_ROWS,16,16,64,32);
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tecmo16_state::tx_get_tile_info),this),TILEMAP_SCAN_ROWS, 8, 8,64,32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tecmo16_state::fg_get_tile_info)), TILEMAP_SCAN_ROWS, 16,16, 64,32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tecmo16_state::bg_get_tile_info)), TILEMAP_SCAN_ROWS, 16,16, 64,32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tecmo16_state::tx_get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64,32);
m_fg_tilemap->set_transparent_pen(0);
m_bg_tilemap->set_transparent_pen(0);
@@ -122,9 +122,9 @@ VIDEO_START_MEMBER(tecmo16_state,riot)
/* set up sprites */
m_screen->register_screen_bitmap(m_sprite_bitmap);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tecmo16_state::fg_get_tile_info),this),TILEMAP_SCAN_ROWS,16,16,64,32);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tecmo16_state::bg_get_tile_info),this),TILEMAP_SCAN_ROWS,16,16,64,32);
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tecmo16_state::tx_get_tile_info),this),TILEMAP_SCAN_ROWS, 8, 8,64,32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tecmo16_state::fg_get_tile_info)), TILEMAP_SCAN_ROWS, 16,16, 64,32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tecmo16_state::bg_get_tile_info)), TILEMAP_SCAN_ROWS, 16,16, 64,32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tecmo16_state::tx_get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64,32);
m_fg_tilemap->set_transparent_pen(0);
m_bg_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/tecmosys.cpp b/src/mame/video/tecmosys.cpp
index 6b9e646f08d..55592297fd5 100644
--- a/src/mame/video/tecmosys.cpp
+++ b/src/mame/video/tecmosys.cpp
@@ -284,16 +284,16 @@ void tecmosys_state::video_start()
m_tmp_tilemap_composebitmap.fill(0x0000);
m_tmp_tilemap_renderbitmap.fill(0x0000);
- m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tecmosys_state::get_tile_info<0>),this),TILEMAP_SCAN_ROWS,8,8,32*2,32*2);
+ m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tecmosys_state::get_tile_info<0>)), TILEMAP_SCAN_ROWS, 8,8, 32*2,32*2);
m_tilemap[0]->set_transparent_pen(0);
- m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tecmosys_state::get_tile_info<1>),this),TILEMAP_SCAN_ROWS,16,16,32,32);
+ m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tecmosys_state::get_tile_info<1>)), TILEMAP_SCAN_ROWS, 16,16, 32,32);
m_tilemap[1]->set_transparent_pen(0);
- m_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tecmosys_state::get_tile_info<2>),this),TILEMAP_SCAN_ROWS,16,16,32,32);
+ m_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tecmosys_state::get_tile_info<2>)), TILEMAP_SCAN_ROWS, 16,16, 32,32);
m_tilemap[2]->set_transparent_pen(0);
- m_tilemap[3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tecmosys_state::get_tile_info<3>),this),TILEMAP_SCAN_ROWS,16,16,32,32);
+ m_tilemap[3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tecmosys_state::get_tile_info<3>)), TILEMAP_SCAN_ROWS, 16,16, 32,32);
m_tilemap[3]->set_transparent_pen(0);
save_item(NAME(m_spritelist));
diff --git a/src/mame/video/tehkanwc.cpp b/src/mame/video/tehkanwc.cpp
index f80d2267828..f8d3341c66d 100644
--- a/src/mame/video/tehkanwc.cpp
+++ b/src/mame/video/tehkanwc.cpp
@@ -90,11 +90,11 @@ TILE_GET_INFO_MEMBER(tehkanwc_state::get_fg_tile_info)
void tehkanwc_state::video_start()
{
m_bg_tilemap = &machine().tilemap().create(
- *m_gfxdecode, tilemap_get_info_delegate(FUNC(tehkanwc_state::get_bg_tile_info),this),
+ *m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tehkanwc_state::get_bg_tile_info)),
TILEMAP_SCAN_ROWS, 16, 8, 32, 32);
m_fg_tilemap = &machine().tilemap().create(
- *m_gfxdecode, tilemap_get_info_delegate(FUNC(tehkanwc_state::get_fg_tile_info),this),
+ *m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tehkanwc_state::get_fg_tile_info)),
TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/terracre.cpp b/src/mame/video/terracre.cpp
index 3da7cad5313..008e748ac4f 100644
--- a/src/mame/video/terracre.cpp
+++ b/src/mame/video/terracre.cpp
@@ -169,8 +169,8 @@ WRITE16_MEMBER(terracre_state::amazon_scrollx_w)
void terracre_state::video_start()
{
- m_background = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(terracre_state::get_bg_tile_info),this),TILEMAP_SCAN_COLS,16,16,64,32);
- m_foreground = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(terracre_state::get_fg_tile_info),this),TILEMAP_SCAN_COLS,8,8,64,32);
+ m_background = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(terracre_state::get_bg_tile_info)), TILEMAP_SCAN_COLS, 16,16, 64,32);
+ m_foreground = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(terracre_state::get_fg_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 64,32);
m_foreground->set_transparent_pen(0xf);
/* register for saving */
diff --git a/src/mame/video/tetrisp2.cpp b/src/mame/video/tetrisp2.cpp
index 881099a042b..4ed9b005e0a 100644
--- a/src/mame/video/tetrisp2.cpp
+++ b/src/mame/video/tetrisp2.cpp
@@ -221,9 +221,9 @@ VIDEO_START_MEMBER(tetrisp2_state,tetrisp2)
{
m_flipscreen_old = -1;
- m_tilemap_bg = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tetrisp2_state::get_tile_info_bg),this),TILEMAP_SCAN_ROWS,16,16,NX_0,NY_0);
- m_tilemap_fg = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tetrisp2_state::get_tile_info_fg),this),TILEMAP_SCAN_ROWS,8,8,NX_1,NY_1);
- m_tilemap_rot = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tetrisp2_state::get_tile_info_rot),this),TILEMAP_SCAN_ROWS,16,16,NX_0*2,NY_0*2);
+ m_tilemap_bg = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tetrisp2_state::get_tile_info_bg)), TILEMAP_SCAN_ROWS, 16,16, NX_0,NY_0);
+ m_tilemap_fg = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tetrisp2_state::get_tile_info_fg)), TILEMAP_SCAN_ROWS, 8,8, NX_1,NY_1);
+ m_tilemap_rot = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tetrisp2_state::get_tile_info_rot)), TILEMAP_SCAN_ROWS, 16,16, NX_0*2,NY_0*2);
m_tilemap_bg->set_transparent_pen(0);
m_tilemap_fg->set_transparent_pen(0);
m_tilemap_rot->set_transparent_pen(0);
@@ -245,9 +245,9 @@ VIDEO_START_MEMBER(tetrisp2_state,rockntread)
{
m_flipscreen_old = -1;
- m_tilemap_bg = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tetrisp2_state::get_tile_info_bg),this),TILEMAP_SCAN_ROWS,16, 16, 256, 16); // rockn ms(main),1,2,3,4
- m_tilemap_fg = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tetrisp2_state::get_tile_info_fg),this),TILEMAP_SCAN_ROWS,8, 8, 64, 64);
- m_tilemap_rot = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tetrisp2_state::get_tile_info_rot),this),TILEMAP_SCAN_ROWS,16, 16, 128, 128);
+ m_tilemap_bg = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tetrisp2_state::get_tile_info_bg)), TILEMAP_SCAN_ROWS, 16,16, 256,16); // rockn ms(main),1,2,3,4
+ m_tilemap_fg = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tetrisp2_state::get_tile_info_fg)), TILEMAP_SCAN_ROWS, 8,8, 64,64);
+ m_tilemap_rot = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tetrisp2_state::get_tile_info_rot)), TILEMAP_SCAN_ROWS, 16,16, 128,128);
m_tilemap_bg->set_transparent_pen(0);
m_tilemap_fg->set_transparent_pen(0);
@@ -265,9 +265,9 @@ VIDEO_START_MEMBER(tetrisp2_state,rocknms)
{
VIDEO_START_CALL_MEMBER( rockntread );
- m_tilemap_sub_bg = &machine().tilemap().create(*m_sub_gfxdecode, tilemap_get_info_delegate(FUNC(tetrisp2_state::get_tile_info_rocknms_sub_bg),this),TILEMAP_SCAN_ROWS,16, 16, 32, 256); // rockn ms(sub)
- m_tilemap_sub_fg = &machine().tilemap().create(*m_sub_gfxdecode, tilemap_get_info_delegate(FUNC(tetrisp2_state::get_tile_info_rocknms_sub_fg),this),TILEMAP_SCAN_ROWS,8, 8, 64, 64);
- m_tilemap_sub_rot = &machine().tilemap().create(*m_sub_gfxdecode, tilemap_get_info_delegate(FUNC(tetrisp2_state::get_tile_info_rocknms_sub_rot),this),TILEMAP_SCAN_ROWS,16, 16, 128, 128);
+ m_tilemap_sub_bg = &machine().tilemap().create(*m_sub_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tetrisp2_state::get_tile_info_rocknms_sub_bg)), TILEMAP_SCAN_ROWS, 16,16, 32,256); // rockn ms(sub)
+ m_tilemap_sub_fg = &machine().tilemap().create(*m_sub_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tetrisp2_state::get_tile_info_rocknms_sub_fg)), TILEMAP_SCAN_ROWS, 8,8, 64,64);
+ m_tilemap_sub_rot = &machine().tilemap().create(*m_sub_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tetrisp2_state::get_tile_info_rocknms_sub_rot)), TILEMAP_SCAN_ROWS, 16,16, 128,128);
m_tilemap_sub_bg->set_transparent_pen(0);
m_tilemap_sub_fg->set_transparent_pen(0);
@@ -726,9 +726,9 @@ VIDEO_START_MEMBER(stepstag_state,stepstag)
{
m_flipscreen_old = -1;
- m_tilemap_bg = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tetrisp2_state::get_tile_info_bg),this),TILEMAP_SCAN_ROWS,16,16,NX_0,NY_0);
- m_tilemap_fg = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tetrisp2_state::stepstag_get_tile_info_fg),this),TILEMAP_SCAN_ROWS,8,8,NX_1,NY_1);
- m_tilemap_rot = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tetrisp2_state::get_tile_info_rot),this),TILEMAP_SCAN_ROWS,16,16,NX_0*2,NY_0*2);
+ m_tilemap_bg = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tetrisp2_state::get_tile_info_bg)), TILEMAP_SCAN_ROWS, 16,16, NX_0,NY_0);
+ m_tilemap_fg = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tetrisp2_state::stepstag_get_tile_info_fg)), TILEMAP_SCAN_ROWS, 8,8, NX_1,NY_1);
+ m_tilemap_rot = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tetrisp2_state::get_tile_info_rot)), TILEMAP_SCAN_ROWS, 16,16, NX_0*2,NY_0*2);
m_tilemap_bg->set_transparent_pen(0);
m_tilemap_fg->set_transparent_pen(0);
m_tilemap_rot->set_transparent_pen(0);
diff --git a/src/mame/video/thedeep.cpp b/src/mame/video/thedeep.cpp
index 8ca4fd02419..60cb5005c29 100644
--- a/src/mame/video/thedeep.cpp
+++ b/src/mame/video/thedeep.cpp
@@ -78,7 +78,7 @@ void thedeep_state::thedeep_palette(palette_device &palette) const
void thedeep_state::video_start()
{
- m_text_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(thedeep_state::get_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 0x20, 0x20);
+ m_text_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(thedeep_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 0x20, 0x20);
m_text_tilemap->set_transparent_pen(0);
}
diff --git a/src/mame/video/thepit.cpp b/src/mame/video/thepit.cpp
index 58d401ca2c4..f139859f2d5 100644
--- a/src/mame/video/thepit.cpp
+++ b/src/mame/video/thepit.cpp
@@ -125,9 +125,9 @@ TILE_GET_INFO_MEMBER(thepit_state::get_tile_info)
void thepit_state::video_start()
{
- m_solid_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(thepit_state::solid_get_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32);
+ m_solid_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(thepit_state::solid_get_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 32,32);
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(thepit_state::get_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32);
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(thepit_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 32,32);
m_tilemap->set_transparent_pen(0);
m_solid_tilemap->set_scroll_cols(32);
diff --git a/src/mame/video/thoop2.cpp b/src/mame/video/thoop2.cpp
index eab176dd317..6b7f2887d9e 100644
--- a/src/mame/video/thoop2.cpp
+++ b/src/mame/video/thoop2.cpp
@@ -70,8 +70,8 @@ WRITE16_MEMBER(thoop2_state::vram_w)
void thoop2_state::video_start()
{
- m_pant[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(thoop2_state::get_tile_info<0>),this),TILEMAP_SCAN_ROWS,16,16,32,32);
- m_pant[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(thoop2_state::get_tile_info<1>),this),TILEMAP_SCAN_ROWS,16,16,32,32);
+ m_pant[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(thoop2_state::get_tile_info<0>)), TILEMAP_SCAN_ROWS, 16,16, 32,32);
+ m_pant[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(thoop2_state::get_tile_info<1>)), TILEMAP_SCAN_ROWS, 16,16, 32,32);
m_pant[0]->set_transmask(0,0xff01,0x00ff); /* pens 1-7 opaque, pens 0, 8-15 transparent */
m_pant[1]->set_transmask(0,0xff01,0x00ff); /* pens 1-7 opaque, pens 0, 8-15 transparent */
diff --git a/src/mame/video/tiamc1.cpp b/src/mame/video/tiamc1.cpp
index 29530f325c6..0fba4cf00fe 100644
--- a/src/mame/video/tiamc1.cpp
+++ b/src/mame/video/tiamc1.cpp
@@ -166,10 +166,10 @@ void tiamc1_state::video_start()
save_pointer(NAME(m_videoram), 0x3050);
- m_bg_tilemap1 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tiamc1_state::get_bg1_tile_info),this), TILEMAP_SCAN_ROWS,
+ m_bg_tilemap1 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tiamc1_state::get_bg1_tile_info)), TILEMAP_SCAN_ROWS,
8, 8, 32, 32);
- m_bg_tilemap2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tiamc1_state::get_bg2_tile_info),this), TILEMAP_SCAN_ROWS,
+ m_bg_tilemap2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tiamc1_state::get_bg2_tile_info)), TILEMAP_SCAN_ROWS,
8, 8, 32, 32);
m_bg_tilemap1->set_scrolldx(4, 4);
m_bg_tilemap2->set_scrolldx(4, 4);
@@ -201,7 +201,7 @@ VIDEO_START_MEMBER(tiamc1_state, kot)
save_pointer(NAME(m_videoram), 0x450);
- m_bg_tilemap1 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tiamc1_state::get_bg1_tile_info), this), TILEMAP_SCAN_ROWS,
+ m_bg_tilemap1 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tiamc1_state::get_bg1_tile_info)), TILEMAP_SCAN_ROWS,
8, 8, 32, 32);
m_bg_tilemap1->set_scrolldx(4, 4);
diff --git a/src/mame/video/tigeroad.cpp b/src/mame/video/tigeroad.cpp
index 2c2be4f24dd..1f4010b1c7e 100644
--- a/src/mame/video/tigeroad.cpp
+++ b/src/mame/video/tigeroad.cpp
@@ -105,11 +105,11 @@ TILEMAP_MAPPER_MEMBER(tigeroad_state::tigeroad_tilemap_scan)
void tigeroad_state::video_start()
{
m_bg_tilemap = &machine().tilemap().create(
- *m_gfxdecode, tilemap_get_info_delegate(FUNC(tigeroad_state::get_bg_tile_info),this), tilemap_mapper_delegate(FUNC(tigeroad_state::tigeroad_tilemap_scan),this),
+ *m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tigeroad_state::get_bg_tile_info)), tilemap_mapper_delegate(*this, FUNC(tigeroad_state::tigeroad_tilemap_scan)),
32, 32, 128, 128);
m_fg_tilemap = &machine().tilemap().create(
- *m_gfxdecode, tilemap_get_info_delegate(FUNC(tigeroad_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS,
+ *m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tigeroad_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS,
8, 8, 32, 32);
m_bg_tilemap->set_transmask(0, 0xffff, 0);
diff --git a/src/mame/video/timelimt.cpp b/src/mame/video/timelimt.cpp
index 3dc75daf30b..f0358d54259 100644
--- a/src/mame/video/timelimt.cpp
+++ b/src/mame/video/timelimt.cpp
@@ -79,10 +79,10 @@ TILE_GET_INFO_MEMBER(timelimt_state::get_fg_tile_info)
void timelimt_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(timelimt_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS,
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(timelimt_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS,
8, 8, 64, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(timelimt_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS,
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(timelimt_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS,
8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/timeplt.cpp b/src/mame/video/timeplt.cpp
index 5c4e3f1da64..7e0224e7214 100644
--- a/src/mame/video/timeplt.cpp
+++ b/src/mame/video/timeplt.cpp
@@ -123,7 +123,7 @@ TILE_GET_INFO_MEMBER(timeplt_state::get_chkun_tile_info)
void timeplt_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(timeplt_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(timeplt_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_video_enable = 0;
save_item(NAME(m_video_enable));
@@ -137,7 +137,7 @@ VIDEO_START_MEMBER(timeplt_state,psurge)
VIDEO_START_MEMBER(timeplt_state,chkun)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(timeplt_state::get_chkun_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(timeplt_state::get_chkun_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_video_enable = 0;
save_item(NAME(m_video_enable));
diff --git a/src/mame/video/tmap038.cpp b/src/mame/video/tmap038.cpp
index ebd4b552b25..95759c2be75 100644
--- a/src/mame/video/tmap038.cpp
+++ b/src/mame/video/tmap038.cpp
@@ -137,6 +137,7 @@ tilemap038_device::tilemap038_device(const machine_config &mconfig, const char *
, m_tiledim(false)
, m_gfxdecode(*this, finder_base::DUMMY_TAG)
, m_gfxno(0)
+ , m_038_cb(*this)
{
}
@@ -178,7 +179,7 @@ TILE_GET_INFO_MEMBER(tilemap038_device::get_tile_info)
void tilemap038_device::device_start()
{
- m_038_cb.bind_relative_to(*owner());
+ m_038_cb.resolve();
m_vregs = make_unique_clear<u16[]>(0x6/2);
if (m_vram_16x16 == nullptr && m_vram_8x8 == nullptr)
@@ -191,7 +192,7 @@ void tilemap038_device::device_start()
m_tmap = &machine().tilemap().create(
*m_gfxdecode,
- tilemap_get_info_delegate(FUNC(tilemap038_device::get_tile_info),this),
+ tilemap_get_info_delegate(*this, FUNC(tilemap038_device::get_tile_info)),
TILEMAP_SCAN_ROWS,
8,8, 512 / 8,512 / 8);
diff --git a/src/mame/video/tmap038.h b/src/mame/video/tmap038.h
index e479933861b..24506f553dc 100644
--- a/src/mame/video/tmap038.h
+++ b/src/mame/video/tmap038.h
@@ -10,6 +10,8 @@
class tilemap038_device : public device_t
{
public:
+ typedef device_delegate<void (bool tiledim, u32 &color, u32 &pri, u32 &code)> tmap038_cb_delegate;
+
tilemap038_device(const machine_config &mconfig, const char *tag, device_t *owner)
: tilemap038_device(mconfig, tag, owner, (u32)0)
{
@@ -19,8 +21,7 @@ public:
// configurations
template <typename T> void set_gfxdecode_tag(T &&tag) { m_gfxdecode.set_tag(std::forward<T>(tag)); }
- typedef device_delegate<void (bool tiledim, u32 &color, u32 &pri, u32 &code)> tmap038_cb_delegate;
- void set_tile_callback(tmap038_cb_delegate cb) { m_038_cb = cb; }
+ template <typename... T> void set_tile_callback(T &&... args) { m_038_cb.set(std::forward<T>(args)...); }
void set_gfx(u16 no) { m_gfxno = no; }
// call to do the rendering etc.
diff --git a/src/mame/video/tmnt.cpp b/src/mame/video/tmnt.cpp
index 24995b3b770..c4025eccd66 100644
--- a/src/mame/video/tmnt.cpp
+++ b/src/mame/video/tmnt.cpp
@@ -254,7 +254,7 @@ VIDEO_START_MEMBER(tmnt_state,lgtnfght)/* also tmnt2, ssriders */
VIDEO_START_MEMBER(glfgreat_state,glfgreat)
{
- m_roz_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(glfgreat_state::glfgreat_get_roz_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 512, 512);
+ m_roz_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(glfgreat_state::glfgreat_get_roz_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 512, 512);
m_roz_tilemap->set_transparent_pen(0);
m_controller_select = 0;
@@ -269,7 +269,7 @@ VIDEO_START_MEMBER(glfgreat_state,glfgreat)
VIDEO_START_MEMBER(prmrsocr_state,prmrsocr)
{
- m_roz_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(prmrsocr_state::prmrsocr_get_roz_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 512, 256);
+ m_roz_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(prmrsocr_state::prmrsocr_get_roz_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 512, 256);
m_roz_tilemap->set_transparent_pen(0);
m_sprite_bank = 0;
diff --git a/src/mame/video/toaplan1.cpp b/src/mame/video/toaplan1.cpp
index 41a9b6ef407..c8923114a38 100644
--- a/src/mame/video/toaplan1.cpp
+++ b/src/mame/video/toaplan1.cpp
@@ -162,10 +162,10 @@ TILE_GET_INFO_MEMBER(toaplan1_state::get_tile_info)
void toaplan1_state::create_tilemaps()
{
- m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(toaplan1_state::get_tile_info<0>),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(toaplan1_state::get_tile_info<1>),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(toaplan1_state::get_tile_info<2>),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_tilemap[3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(toaplan1_state::get_tile_info<3>),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(toaplan1_state::get_tile_info<0>)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(toaplan1_state::get_tile_info<1>)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(toaplan1_state::get_tile_info<2>)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap[3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(toaplan1_state::get_tile_info<3>)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
m_tilemap[0]->set_transparent_pen(0);
m_tilemap[1]->set_transparent_pen(0);
diff --git a/src/mame/video/toaplan2.cpp b/src/mame/video/toaplan2.cpp
index 091dca2041e..192147f1f88 100644
--- a/src/mame/video/toaplan2.cpp
+++ b/src/mame/video/toaplan2.cpp
@@ -53,7 +53,7 @@ TILE_GET_INFO_MEMBER(toaplan2_state::get_text_tile_info)
void toaplan2_state::create_tx_tilemap(int dx, int dx_flipped)
{
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(toaplan2_state::get_text_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(toaplan2_state::get_text_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_tx_tilemap->set_scroll_rows(8*32); /* line scrolling */
m_tx_tilemap->set_scroll_cols(1);
diff --git a/src/mame/video/toki.cpp b/src/mame/video/toki.cpp
index ffd316d9de2..fd8a42196f1 100644
--- a/src/mame/video/toki.cpp
+++ b/src/mame/video/toki.cpp
@@ -83,9 +83,9 @@ TILE_GET_INFO_MEMBER(toki_state::get_fore_tile_info)
void toki_state::video_start()
{
- m_text_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(toki_state::get_text_tile_info),this),TILEMAP_SCAN_ROWS, 8,8,32,32);
- m_background_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(toki_state::get_back_tile_info),this),TILEMAP_SCAN_ROWS,16,16,32,32);
- m_foreground_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(toki_state::get_fore_tile_info),this),TILEMAP_SCAN_ROWS,16,16,32,32);
+ m_text_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(toki_state::get_text_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 32,32);
+ m_background_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(toki_state::get_back_tile_info)), TILEMAP_SCAN_ROWS, 16,16, 32,32);
+ m_foreground_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(toki_state::get_fore_tile_info)), TILEMAP_SCAN_ROWS, 16,16, 32,32);
m_text_layer->set_transparent_pen(15);
m_background_layer->set_transparent_pen(15);
diff --git a/src/mame/video/tp84.cpp b/src/mame/video/tp84.cpp
index 726b97417ff..7851d147b7d 100644
--- a/src/mame/video/tp84.cpp
+++ b/src/mame/video/tp84.cpp
@@ -140,8 +140,8 @@ TILE_GET_INFO_MEMBER(tp84_state::get_fg_tile_info)
void tp84_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tp84_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tp84_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tp84_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tp84_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
diff --git a/src/mame/video/trackfld.cpp b/src/mame/video/trackfld.cpp
index 807ee3961f0..056a64267b8 100644
--- a/src/mame/video/trackfld.cpp
+++ b/src/mame/video/trackfld.cpp
@@ -167,7 +167,7 @@ TILE_GET_INFO_MEMBER(trackfld_state::get_bg_tile_info)
VIDEO_START_MEMBER(trackfld_state,trackfld)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(trackfld_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(trackfld_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_bg_tilemap->set_scroll_rows(32);
m_sprites_gfx_banked = 0;
}
diff --git a/src/mame/video/travrusa.cpp b/src/mame/video/travrusa.cpp
index 42749cf2def..de3e0a9dc29 100644
--- a/src/mame/video/travrusa.cpp
+++ b/src/mame/video/travrusa.cpp
@@ -213,7 +213,7 @@ void travrusa_state::video_start()
{
save_item(NAME(m_scrollx));
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(travrusa_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(travrusa_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_bg_tilemap->set_transmask(0, 0xff, 0x00); /* split type 0 is totally transparent in front half */
m_bg_tilemap->set_transmask(1, 0x3f, 0xc0); /* split type 1 has pens 6 and 7 opaque - tunnels */
diff --git a/src/mame/video/triplhnt.cpp b/src/mame/video/triplhnt.cpp
index b211a167460..333e24726ae 100644
--- a/src/mame/video/triplhnt.cpp
+++ b/src/mame/video/triplhnt.cpp
@@ -22,7 +22,7 @@ void triplhnt_state::video_start()
{
m_screen->register_screen_bitmap(m_helper);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(triplhnt_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 16, 16);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(triplhnt_state::get_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 16, 16);
m_hit_timer = timer_alloc(TIMER_HIT);
diff --git a/src/mame/video/trucocl.cpp b/src/mame/video/trucocl.cpp
index e47fbf4397c..97a9a8af922 100644
--- a/src/mame/video/trucocl.cpp
+++ b/src/mame/video/trucocl.cpp
@@ -74,7 +74,7 @@ TILE_GET_INFO_MEMBER(trucocl_state::get_bg_tile_info)
void trucocl_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(trucocl_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32 );
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(trucocl_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32 );
}
uint32_t trucocl_state::screen_update_trucocl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
diff --git a/src/mame/video/tryout.cpp b/src/mame/video/tryout.cpp
index cdf7d443ff3..90446a5b706 100644
--- a/src/mame/video/tryout.cpp
+++ b/src/mame/video/tryout.cpp
@@ -162,8 +162,8 @@ TILEMAP_MAPPER_MEMBER(tryout_state::get_bg_memory_offset)
void tryout_state::video_start()
{
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tryout_state::get_fg_tile_info),this),tilemap_mapper_delegate(FUNC(tryout_state::get_fg_memory_offset),this),8,8,32,32);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tryout_state::get_bg_tile_info),this),tilemap_mapper_delegate(FUNC(tryout_state::get_bg_memory_offset),this),16,16,64,16);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tryout_state::get_fg_tile_info)), tilemap_mapper_delegate(*this, FUNC(tryout_state::get_fg_memory_offset)), 8, 8, 32,32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tryout_state::get_bg_tile_info)), tilemap_mapper_delegate(*this, FUNC(tryout_state::get_bg_memory_offset)), 16,16, 64,16);
m_vram=std::make_unique<uint8_t[]>(8 * 0x800);
m_vram_gfx=std::make_unique<uint8_t[]>(0x6000);
diff --git a/src/mame/video/tsamurai.cpp b/src/mame/video/tsamurai.cpp
index 9b59bcd4d8a..c5c2e8a74e5 100644
--- a/src/mame/video/tsamurai.cpp
+++ b/src/mame/video/tsamurai.cpp
@@ -52,8 +52,8 @@ void tsamurai_state::video_start()
VIDEO_START_MEMBER(tsamurai_state, tsamurai)
{
- m_background = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tsamurai_state::get_bg_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32);
- m_foreground = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tsamurai_state::get_fg_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32);
+ m_background = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tsamurai_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 32,32);
+ m_foreground = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tsamurai_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 32,32);
m_background->set_transparent_pen(0);
m_foreground->set_transparent_pen(0);
@@ -251,7 +251,7 @@ TILE_GET_INFO_MEMBER(tsamurai_state::get_vsgongf_tile_info)
VIDEO_START_MEMBER(tsamurai_state,vsgongf)
{
- m_foreground = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tsamurai_state::get_vsgongf_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32);
+ m_foreground = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tsamurai_state::get_vsgongf_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 32,32);
save_item(NAME(m_vsgongf_color));
video_start();
diff --git a/src/mame/video/tumbleb.cpp b/src/mame/video/tumbleb.cpp
index a515f219f7d..178eb82026d 100644
--- a/src/mame/video/tumbleb.cpp
+++ b/src/mame/video/tumbleb.cpp
@@ -222,9 +222,9 @@ void tumbleb_state::tumbleb_tilemap_redraw()
VIDEO_START_MEMBER(tumbleb_state,pangpang)
{
- m_pf1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tumbleb_state::pangpang_get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_pf1_alt_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tumbleb_state::pangpang_get_bg1_tile_info),this), tilemap_mapper_delegate(FUNC(tumbleb_state::tumblep_scan),this), 16, 16, 64, 32);
- m_pf2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tumbleb_state::pangpang_get_bg2_tile_info),this), tilemap_mapper_delegate(FUNC(tumbleb_state::tumblep_scan),this), 16, 16, 64, 32);
+ m_pf1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tumbleb_state::pangpang_get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_pf1_alt_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tumbleb_state::pangpang_get_bg1_tile_info)), tilemap_mapper_delegate(*this, FUNC(tumbleb_state::tumblep_scan)), 16, 16, 64, 32);
+ m_pf2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tumbleb_state::pangpang_get_bg2_tile_info)), tilemap_mapper_delegate(*this, FUNC(tumbleb_state::tumblep_scan)), 16, 16, 64, 32);
m_pf1_tilemap->set_transparent_pen(0);
m_pf1_alt_tilemap->set_transparent_pen(0);
@@ -235,9 +235,9 @@ VIDEO_START_MEMBER(tumbleb_state,pangpang)
VIDEO_START_MEMBER(tumbleb_state,tumblepb)
{
- m_pf1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tumbleb_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_pf1_alt_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tumbleb_state::get_bg1_tile_info),this), tilemap_mapper_delegate(FUNC(tumbleb_state::tumblep_scan),this), 16, 16, 64, 32);
- m_pf2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tumbleb_state::get_bg2_tile_info),this), tilemap_mapper_delegate(FUNC(tumbleb_state::tumblep_scan),this), 16, 16, 64, 32);
+ m_pf1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tumbleb_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_pf1_alt_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tumbleb_state::get_bg1_tile_info)), tilemap_mapper_delegate(*this, FUNC(tumbleb_state::tumblep_scan)), 16, 16, 64, 32);
+ m_pf2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tumbleb_state::get_bg2_tile_info)), tilemap_mapper_delegate(*this, FUNC(tumbleb_state::tumblep_scan)), 16, 16, 64, 32);
m_pf1_tilemap->set_transparent_pen(0);
m_pf1_alt_tilemap->set_transparent_pen(0);
@@ -247,9 +247,9 @@ VIDEO_START_MEMBER(tumbleb_state,tumblepb)
VIDEO_START_MEMBER(tumbleb_state,sdfight)
{
- m_pf1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tumbleb_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); // 64*64 to prevent bad tilemap wrapping? - check real behavior
- m_pf1_alt_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tumbleb_state::get_bg1_tile_info),this), tilemap_mapper_delegate(FUNC(tumbleb_state::tumblep_scan),this), 16, 16, 64, 32);
- m_pf2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tumbleb_state::get_bg2_tile_info),this), tilemap_mapper_delegate(FUNC(tumbleb_state::tumblep_scan),this), 16, 16, 64, 32);
+ m_pf1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tumbleb_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); // 64*64 to prevent bad tilemap wrapping? - check real behavior
+ m_pf1_alt_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tumbleb_state::get_bg1_tile_info)), tilemap_mapper_delegate(*this, FUNC(tumbleb_state::tumblep_scan)), 16, 16, 64, 32);
+ m_pf2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tumbleb_state::get_bg2_tile_info)), tilemap_mapper_delegate(*this, FUNC(tumbleb_state::tumblep_scan)), 16, 16, 64, 32);
m_pf1_tilemap->set_transparent_pen(0);
m_pf1_alt_tilemap->set_transparent_pen(0);
@@ -259,9 +259,9 @@ VIDEO_START_MEMBER(tumbleb_state,sdfight)
VIDEO_START_MEMBER(tumbleb_state,fncywld)
{
- m_pf1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tumbleb_state::get_fncywld_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_pf1_alt_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tumbleb_state::get_fncywld_bg1_tile_info),this), tilemap_mapper_delegate(FUNC(tumbleb_state::tumblep_scan),this), 16, 16, 64, 32);
- m_pf2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tumbleb_state::get_fncywld_bg2_tile_info),this), tilemap_mapper_delegate(FUNC(tumbleb_state::tumblep_scan),this), 16, 16, 64, 32);
+ m_pf1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tumbleb_state::get_fncywld_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_pf1_alt_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tumbleb_state::get_fncywld_bg1_tile_info)), tilemap_mapper_delegate(*this, FUNC(tumbleb_state::tumblep_scan)), 16, 16, 64, 32);
+ m_pf2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tumbleb_state::get_fncywld_bg2_tile_info)), tilemap_mapper_delegate(*this, FUNC(tumbleb_state::tumblep_scan)), 16, 16, 64, 32);
m_pf1_tilemap->set_transparent_pen(15);
m_pf1_alt_tilemap->set_transparent_pen(15);
@@ -272,9 +272,9 @@ VIDEO_START_MEMBER(tumbleb_state,fncywld)
VIDEO_START_MEMBER(tumbleb_state,suprtrio)
{
- m_pf1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tumbleb_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_pf1_alt_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tumbleb_state::get_bg1_tile_info),this), tilemap_mapper_delegate(FUNC(tumbleb_state::tumblep_scan),this), 16, 16, 64, 32);
- m_pf2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tumbleb_state::get_bg2_tile_info),this), tilemap_mapper_delegate(FUNC(tumbleb_state::tumblep_scan),this), 16, 16, 64, 32);
+ m_pf1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tumbleb_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_pf1_alt_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tumbleb_state::get_bg1_tile_info)), tilemap_mapper_delegate(*this, FUNC(tumbleb_state::tumblep_scan)), 16, 16, 64, 32);
+ m_pf2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tumbleb_state::get_bg2_tile_info)), tilemap_mapper_delegate(*this, FUNC(tumbleb_state::tumblep_scan)), 16, 16, 64, 32);
m_pf1_alt_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/tunhunt.cpp b/src/mame/video/tunhunt.cpp
index 04cb025ede8..5da4b5d764f 100644
--- a/src/mame/video/tunhunt.cpp
+++ b/src/mame/video/tunhunt.cpp
@@ -76,7 +76,7 @@ void tunhunt_state::video_start()
m_tmpbitmap.allocate(256, 64, m_screen->format());
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tunhunt_state::get_fg_tile_info),this), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tunhunt_state::get_fg_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(0);
m_fg_tilemap->set_scrollx(0, 64);
diff --git a/src/mame/video/turbo.cpp b/src/mame/video/turbo.cpp
index a23d7370906..d5090b3752d 100644
--- a/src/mame/video/turbo.cpp
+++ b/src/mame/video/turbo.cpp
@@ -128,14 +128,14 @@ TILE_GET_INFO_MEMBER(turbo_state::get_fg_tile_info)
VIDEO_START_MEMBER(turbo_state,turbo)
{
/* initialize the foreground tilemap */
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(turbo_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8,8, 32,32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(turbo_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 32,32);
}
VIDEO_START_MEMBER(turbo_state,buckrog)
{
/* initialize the foreground tilemap */
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(turbo_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8,8, 32,32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(turbo_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 32,32);
/* allocate the bitmap RAM */
m_buckrog_bitmap_ram = std::make_unique<uint8_t[]>(0xe000);
diff --git a/src/mame/video/twin16.cpp b/src/mame/video/twin16.cpp
index 03421242f46..0d3fd3b20f7 100644
--- a/src/mame/video/twin16.cpp
+++ b/src/mame/video/twin16.cpp
@@ -435,9 +435,9 @@ TILE_GET_INFO_MEMBER(twin16_state::layer1_tile_info)
void twin16_state::video_start()
{
- m_fixed_tmap = &machine().tilemap().create(*m_gfxdecode,tilemap_get_info_delegate(FUNC(twin16_state::fix_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,32);
- m_scroll_tmap[0] = &machine().tilemap().create(*m_gfxdecode,tilemap_get_info_delegate(FUNC(twin16_state::layer0_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,64);
- m_scroll_tmap[1] = &machine().tilemap().create(*m_gfxdecode,tilemap_get_info_delegate(FUNC(twin16_state::layer1_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,64);
+ m_fixed_tmap = &machine().tilemap().create(*m_gfxdecode,tilemap_get_info_delegate(*this, FUNC(twin16_state::fix_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 64,32);
+ m_scroll_tmap[0] = &machine().tilemap().create(*m_gfxdecode,tilemap_get_info_delegate(*this, FUNC(twin16_state::layer0_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 64,64);
+ m_scroll_tmap[1] = &machine().tilemap().create(*m_gfxdecode,tilemap_get_info_delegate(*this, FUNC(twin16_state::layer1_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 64,64);
m_fixed_tmap->set_transparent_pen(0);
m_scroll_tmap[0]->set_transparent_pen(0);
diff --git a/src/mame/video/twincobr.cpp b/src/mame/video/twincobr.cpp
index 9a91eaa7f06..4f223d94ca7 100644
--- a/src/mame/video/twincobr.cpp
+++ b/src/mame/video/twincobr.cpp
@@ -61,16 +61,16 @@ TILE_GET_INFO_MEMBER(twincobr_state::get_tx_tile_info)
void twincobr_state::twincobr_create_tilemaps()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(twincobr_state::get_bg_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,64);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(twincobr_state::get_fg_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,64);
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(twincobr_state::get_tx_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,32);
-
- m_bg_tilemap->set_scrolldx(-55, -134 );
- m_fg_tilemap->set_scrolldx(-55, -134 );
- m_tx_tilemap->set_scrolldx(-55, -134 );
- m_bg_tilemap->set_scrolldy(-30, -243 );
- m_fg_tilemap->set_scrolldy(-30, -243 );
- m_tx_tilemap->set_scrolldy(-30, -243 );
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(twincobr_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 64,64);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(twincobr_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 64,64);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(twincobr_state::get_tx_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 64,32);
+
+ m_bg_tilemap->set_scrolldx(-55, -134);
+ m_fg_tilemap->set_scrolldx(-55, -134);
+ m_tx_tilemap->set_scrolldx(-55, -134);
+ m_bg_tilemap->set_scrolldy(-30, -243);
+ m_fg_tilemap->set_scrolldy(-30, -243);
+ m_tx_tilemap->set_scrolldy(-30, -243);
m_fg_tilemap->set_transparent_pen(0);
m_tx_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/ultratnk.cpp b/src/mame/video/ultratnk.cpp
index 3f679791793..f629374539b 100644
--- a/src/mame/video/ultratnk.cpp
+++ b/src/mame/video/ultratnk.cpp
@@ -49,7 +49,7 @@ void ultratnk_state::video_start()
{
m_screen->register_screen_bitmap(m_helper);
- m_playfield = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ultratnk_state::tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_playfield = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ultratnk_state::tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
diff --git a/src/mame/video/unico.cpp b/src/mame/video/unico.cpp
index 5525dbe56c6..31e4cfc3116 100644
--- a/src/mame/video/unico.cpp
+++ b/src/mame/video/unico.cpp
@@ -113,15 +113,15 @@ WRITE16_MEMBER(unico_state::spriteram_w) { COMBINE_DATA(&m_spriteram[offset]);
void unico_state::video_start()
{
m_tilemap[0] = &machine().tilemap().create(
- *m_gfxdecode, tilemap_get_info_delegate(FUNC(unico_state::get_tile_info),this),TILEMAP_SCAN_ROWS,
+ *m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(unico_state::get_tile_info)), TILEMAP_SCAN_ROWS,
16,16, 0x40, 0x40);
m_tilemap[1] = &machine().tilemap().create(
- *m_gfxdecode, tilemap_get_info_delegate(FUNC(unico_state::get_tile_info),this),TILEMAP_SCAN_ROWS,
+ *m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(unico_state::get_tile_info)), TILEMAP_SCAN_ROWS,
16,16, 0x40, 0x40);
m_tilemap[2] = &machine().tilemap().create(
- *m_gfxdecode, tilemap_get_info_delegate(FUNC(unico_state::get_tile_info),this),TILEMAP_SCAN_ROWS,
+ *m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(unico_state::get_tile_info)), TILEMAP_SCAN_ROWS,
16,16, 0x40, 0x40);
m_tilemap[0]->set_user_data(&m_vram[0x8000/2]);
diff --git a/src/mame/video/v1050.cpp b/src/mame/video/v1050.cpp
index 2d0ade7b4f8..0c61c38780b 100644
--- a/src/mame/video/v1050.cpp
+++ b/src/mame/video/v1050.cpp
@@ -115,7 +115,7 @@ void v1050_state::v1050_video(machine_config &config)
m_crtc->set_screen(SCREEN_TAG);
m_crtc->set_show_border_area(true);
m_crtc->set_char_width(8);
- m_crtc->set_update_row_callback(FUNC(v1050_state::crtc_update_row), this);
+ m_crtc->set_update_row_callback(FUNC(v1050_state::crtc_update_row));
m_crtc->out_vsync_callback().set(FUNC(v1050_state::crtc_vs_w));
screen_device &screen(SCREEN(config, SCREEN_TAG, SCREEN_TYPE_RASTER, rgb_t::green()));
diff --git a/src/mame/video/vastar.cpp b/src/mame/video/vastar.cpp
index cf6bc3620f2..f601a2e79e7 100644
--- a/src/mame/video/vastar.cpp
+++ b/src/mame/video/vastar.cpp
@@ -60,9 +60,9 @@ TILE_GET_INFO_MEMBER(vastar_state::get_bg2_tile_info)
void vastar_state::video_start()
{
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(vastar_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS,8,8,32,32);
- m_bg1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(vastar_state::get_bg1_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32);
- m_bg2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(vastar_state::get_bg2_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(vastar_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 32,32);
+ m_bg1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(vastar_state::get_bg1_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 32,32);
+ m_bg2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(vastar_state::get_bg2_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 32,32);
m_fg_tilemap->set_transparent_pen(0);
m_bg1_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/vball.cpp b/src/mame/video/vball.cpp
index bdb095a1fe2..08875bbe206 100644
--- a/src/mame/video/vball.cpp
+++ b/src/mame/video/vball.cpp
@@ -40,7 +40,7 @@ TILE_GET_INFO_MEMBER(vball_state::get_bg_tile_info)
void vball_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(vball_state::get_bg_tile_info),this),tilemap_mapper_delegate(FUNC(vball_state::background_scan),this), 8, 8,64,64);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(vball_state::get_bg_tile_info)), tilemap_mapper_delegate(*this, FUNC(vball_state::background_scan)), 8, 8, 64, 64);
m_bg_tilemap->set_scroll_rows(32);
m_gfxset=0;
diff --git a/src/mame/video/videopin.cpp b/src/mame/video/videopin.cpp
index 1db00b15dc2..bf9ddd0f52c 100644
--- a/src/mame/video/videopin.cpp
+++ b/src/mame/video/videopin.cpp
@@ -29,7 +29,7 @@ TILE_GET_INFO_MEMBER(videopin_state::get_tile_info)
void videopin_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(videopin_state::get_tile_info),this), tilemap_mapper_delegate(FUNC(videopin_state::get_memory_offset),this), 8, 8, 48, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(videopin_state::get_tile_info)), tilemap_mapper_delegate(*this, FUNC(videopin_state::get_memory_offset)), 8, 8, 48, 32);
save_item(NAME(m_ball_x));
save_item(NAME(m_ball_y));
diff --git a/src/mame/video/vs920a.cpp b/src/mame/video/vs920a.cpp
index f827b95453f..ea94a9ec2f6 100644
--- a/src/mame/video/vs920a.cpp
+++ b/src/mame/video/vs920a.cpp
@@ -53,7 +53,7 @@ void vs920a_text_tilemap_device::device_start()
save_item(NAME(m_pal_base));
- m_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(vs920a_text_tilemap_device::get_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,32);
+ m_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(vs920a_text_tilemap_device::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_tmap->set_transparent_pen(0);
}
diff --git a/src/mame/video/vsystem_spr.cpp b/src/mame/video/vsystem_spr.cpp
index b0a2e11eba6..0c716e84e9c 100644
--- a/src/mame/video/vsystem_spr.cpp
+++ b/src/mame/video/vsystem_spr.cpp
@@ -68,7 +68,7 @@ DEFINE_DEVICE_TYPE(VSYSTEM_SPR, vsystem_spr_device, "vsystem_spr", "Video System
vsystem_spr_device::vsystem_spr_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: device_t(mconfig, VSYSTEM_SPR, tag, owner, clock)
- , m_newtilecb(FUNC(vsystem_spr_device::tile_callback_noindirect), this)
+ , m_newtilecb(*this, DEVICE_SELF, FUNC(vsystem_spr_device::tile_callback_noindirect))
, m_xoffs(0)
, m_yoffs(0)
, m_pdraw(false)
@@ -89,7 +89,7 @@ uint32_t vsystem_spr_device::tile_callback_noindirect(uint32_t tile)
void vsystem_spr_device::device_start()
{
// bind our handler
- m_newtilecb.bind_relative_to(*owner());
+ m_newtilecb.resolve();
save_item(NAME(m_pal_base));
diff --git a/src/mame/video/vsystem_spr.h b/src/mame/video/vsystem_spr.h
index bd30347baad..40e0a3f1128 100644
--- a/src/mame/video/vsystem_spr.h
+++ b/src/mame/video/vsystem_spr.h
@@ -22,7 +22,7 @@ public:
m_yoffs = yoffs;
}
void set_pdraw(bool pdraw) { m_pdraw = pdraw; }
- template <typename... T> void set_tile_indirect_cb(T &&... args) { m_newtilecb = vsystem_tile_indirection_delegate(std::forward<T>(args)...); }
+ template <typename... T> void set_tile_indirect_cb(T &&... args) { m_newtilecb.set(std::forward<T>(args)...); }
void set_gfx_region(int gfx_region) { m_gfx_region = gfx_region; }
void set_pal_base(int pal_base) { m_pal_base = pal_base; }
void set_pal_mask(int pal_mask) { m_pal_mask = pal_mask; }
diff --git a/src/mame/video/vsystem_spr2.cpp b/src/mame/video/vsystem_spr2.cpp
index 408016822a8..aa62f29ce30 100644
--- a/src/mame/video/vsystem_spr2.cpp
+++ b/src/mame/video/vsystem_spr2.cpp
@@ -31,7 +31,7 @@ DEFINE_DEVICE_TYPE(VSYSTEM_SPR2, vsystem_spr2_device, "vsystem2_spr", "Video Sys
vsystem_spr2_device::vsystem_spr2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: device_t(mconfig, VSYSTEM_SPR2, tag, owner, clock)
- , m_newtilecb(vsystem_tile2_indirection_delegate(FUNC(vsystem_spr2_device::tile_callback_noindirect), this))
+ , m_newtilecb(*this, DEVICE_SELF, FUNC(vsystem_spr2_device::tile_callback_noindirect))
, m_pritype(0) // hack until we have better handling
, m_gfx_region(0)
, m_xoffs(0)
@@ -50,7 +50,7 @@ uint32_t vsystem_spr2_device::tile_callback_noindirect(uint32_t tile)
void vsystem_spr2_device::device_start()
{
// bind our handler
- m_newtilecb.bind_relative_to(*owner());
+ m_newtilecb.resolve();
}
void vsystem_spr2_device::device_reset()
diff --git a/src/mame/video/vsystem_spr2.h b/src/mame/video/vsystem_spr2.h
index 13bcc4d9acd..87e28ecff9e 100644
--- a/src/mame/video/vsystem_spr2.h
+++ b/src/mame/video/vsystem_spr2.h
@@ -12,7 +12,7 @@ class vsystem_spr2_device : public device_t
public:
// configuration
template <typename T> void set_gfxdecode_tag(T &&tag) { m_gfxdecode.set_tag(std::forward<T>(tag)); }
- template <typename... T> void set_tile_indirect_cb(T &&... args) { m_newtilecb = vsystem_tile2_indirection_delegate(std::forward<T>(args)...); }
+ template <typename... T> void set_tile_indirect_cb(T &&... args) { m_newtilecb.set(std::forward<T>(args)...); }
void set_pritype(int pritype) { m_pritype = pritype; }
void set_gfx_region(int gfx_region) { m_gfx_region = gfx_region; }
void set_offsets(int xoffs, int yoffs)
diff --git a/src/mame/video/vulgus.cpp b/src/mame/video/vulgus.cpp
index 40c028eb1a5..eb9d99b338a 100644
--- a/src/mame/video/vulgus.cpp
+++ b/src/mame/video/vulgus.cpp
@@ -109,8 +109,8 @@ TILE_GET_INFO_MEMBER(vulgus_state::get_bg_tile_info)
void vulgus_state::video_start()
{
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(vulgus_state::get_fg_tile_info),this),TILEMAP_SCAN_ROWS, 8, 8,32,32);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(vulgus_state::get_bg_tile_info),this),TILEMAP_SCAN_COLS,16,16,32,32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(vulgus_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32,32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(vulgus_state::get_bg_tile_info)), TILEMAP_SCAN_COLS, 16,16, 32,32);
m_fg_tilemap->configure_groups(*m_gfxdecode->gfx(0), 47);
diff --git a/src/mame/video/warpwarp.cpp b/src/mame/video/warpwarp.cpp
index 10bb73b47f2..929774b7d9a 100644
--- a/src/mame/video/warpwarp.cpp
+++ b/src/mame/video/warpwarp.cpp
@@ -193,17 +193,17 @@ TILE_GET_INFO_MEMBER(warpwarp_state::warpwarp_get_tile_info)
VIDEO_START_MEMBER(warpwarp_state,geebee)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(warpwarp_state::geebee_get_tile_info),this),tilemap_mapper_delegate(FUNC(warpwarp_state::tilemap_scan),this),8,8,34,28);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(warpwarp_state::geebee_get_tile_info)), tilemap_mapper_delegate(*this, FUNC(warpwarp_state::tilemap_scan)), 8,8, 34,28);
}
VIDEO_START_MEMBER(warpwarp_state,navarone)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(warpwarp_state::navarone_get_tile_info),this),tilemap_mapper_delegate(FUNC(warpwarp_state::tilemap_scan),this),8,8,34,28);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(warpwarp_state::navarone_get_tile_info)), tilemap_mapper_delegate(*this, FUNC(warpwarp_state::tilemap_scan)), 8,8, 34,28);
}
VIDEO_START_MEMBER(warpwarp_state,warpwarp)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(warpwarp_state::warpwarp_get_tile_info),this),tilemap_mapper_delegate(FUNC(warpwarp_state::tilemap_scan),this),8,8,34,28);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(warpwarp_state::warpwarp_get_tile_info)), tilemap_mapper_delegate(*this, FUNC(warpwarp_state::tilemap_scan)), 8,8, 34,28);
}
diff --git a/src/mame/video/wc90.cpp b/src/mame/video/wc90.cpp
index d72f6b60234..ca5c08d1476 100644
--- a/src/mame/video/wc90.cpp
+++ b/src/mame/video/wc90.cpp
@@ -71,9 +71,9 @@ TILE_GET_INFO_MEMBER(wc90_state::track_get_fg_tile_info)
void wc90_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(wc90_state::get_bg_tile_info),this),TILEMAP_SCAN_ROWS, 16,16,64,32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(wc90_state::get_fg_tile_info),this),TILEMAP_SCAN_ROWS,16,16,64,32);
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(wc90_state::get_tx_tile_info),this),TILEMAP_SCAN_ROWS, 8, 8,64,32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(wc90_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16,16, 64,32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(wc90_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 16,16, 64,32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(wc90_state::get_tx_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64,32);
m_fg_tilemap->set_transparent_pen(0);
m_tx_tilemap->set_transparent_pen(0);
@@ -81,9 +81,9 @@ void wc90_state::video_start()
VIDEO_START_MEMBER(wc90_state,wc90t)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(wc90_state::track_get_bg_tile_info),this),TILEMAP_SCAN_ROWS, 16,16,64,32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(wc90_state::track_get_fg_tile_info),this),TILEMAP_SCAN_ROWS,16,16,64,32);
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(wc90_state::get_tx_tile_info),this),TILEMAP_SCAN_ROWS, 8, 8,64,32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(wc90_state::track_get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16,16, 64,32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(wc90_state::track_get_fg_tile_info)), TILEMAP_SCAN_ROWS, 16,16, 64,32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(wc90_state::get_tx_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64,32);
m_fg_tilemap->set_transparent_pen(0);
m_tx_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/wc90b.cpp b/src/mame/video/wc90b.cpp
index 416a0ce6ce1..08d5ee88b8f 100644
--- a/src/mame/video/wc90b.cpp
+++ b/src/mame/video/wc90b.cpp
@@ -48,9 +48,9 @@ TILE_GET_INFO_MEMBER(wc90b_state::get_tx_tile_info)
void wc90b_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(wc90b_state::get_bg_tile_info), this), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(wc90b_state::get_fg_tile_info), this), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(wc90b_state::get_tx_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(wc90b_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(wc90b_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(wc90b_state::get_tx_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_fg_tilemap->set_transparent_pen(15);
m_tx_tilemap->set_transparent_pen(15);
diff --git a/src/mame/video/wecleman.cpp b/src/mame/video/wecleman.cpp
index 4bb6c0c1120..11201fcecb7 100644
--- a/src/mame/video/wecleman.cpp
+++ b/src/mame/video/wecleman.cpp
@@ -910,19 +910,19 @@ VIDEO_START_MEMBER(wecleman_state,wecleman)
m_sprite_list = std::make_unique<sprite_t []>(NUM_SPRITES);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(wecleman_state::wecleman_get_bg_tile_info),this),
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(wecleman_state::wecleman_get_bg_tile_info)),
TILEMAP_SCAN_ROWS,
/* We draw part of the road below */
8,8,
PAGE_NX * 2, PAGE_NY * 2 );
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(wecleman_state::wecleman_get_fg_tile_info),this),
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(wecleman_state::wecleman_get_fg_tile_info)),
TILEMAP_SCAN_ROWS,
8,8,
PAGE_NX * 2, PAGE_NY * 2);
- m_txt_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(wecleman_state::wecleman_get_txt_tile_info),this),
+ m_txt_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(wecleman_state::wecleman_get_txt_tile_info)),
TILEMAP_SCAN_ROWS,
8,8,
diff --git a/src/mame/video/welltris.cpp b/src/mame/video/welltris.cpp
index dd03b46388f..59d0c07e760 100644
--- a/src/mame/video/welltris.cpp
+++ b/src/mame/video/welltris.cpp
@@ -71,7 +71,7 @@ WRITE16_MEMBER(welltris_state::charvideoram_w)
void welltris_state::video_start()
{
- m_char_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(welltris_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_char_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(welltris_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_char_tilemap->set_transparent_pen(15);
diff --git a/src/mame/video/wgp.cpp b/src/mame/video/wgp.cpp
index 9f9e46b8995..d9f7160bc70 100644
--- a/src/mame/video/wgp.cpp
+++ b/src/mame/video/wgp.cpp
@@ -23,9 +23,9 @@ TILE_GET_INFO_MEMBER(wgp_state::get_piv_tile_info)
void wgp_state::core_vh_start(int piv_xoffs, int piv_yoffs)
{
- m_piv_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(wgp_state::get_piv_tile_info<0x0000>),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
- m_piv_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(wgp_state::get_piv_tile_info<0x1000>),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
- m_piv_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(wgp_state::get_piv_tile_info<0x2000>),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
+ m_piv_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(wgp_state::get_piv_tile_info<0x0000>)), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
+ m_piv_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(wgp_state::get_piv_tile_info<0x1000>)), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
+ m_piv_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(wgp_state::get_piv_tile_info<0x2000>)), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
m_piv_xoffs = piv_xoffs;
m_piv_yoffs = piv_yoffs;
diff --git a/src/mame/video/williams.cpp b/src/mame/video/williams.cpp
index 60cc6e03f24..e7bdd55087b 100644
--- a/src/mame/video/williams.cpp
+++ b/src/mame/video/williams.cpp
@@ -188,7 +188,7 @@ VIDEO_START_MEMBER(williams2_state,williams2)
blitter_init(m_blitter_config, nullptr);
/* create the tilemap */
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(williams2_state::get_tile_info),this), TILEMAP_SCAN_COLS, 24,16, 128,16);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(williams2_state::get_tile_info)), TILEMAP_SCAN_COLS, 24,16, 128,16);
m_bg_tilemap->set_scrolldx(2, 0);
state_save_register();
diff --git a/src/mame/video/wrally.cpp b/src/mame/video/wrally.cpp
index c3a96bc6fb7..1607483b1f9 100644
--- a/src/mame/video/wrally.cpp
+++ b/src/mame/video/wrally.cpp
@@ -56,8 +56,8 @@ TILE_GET_INFO_MEMBER(wrally_state::get_tile_info)
void wrally_state::video_start()
{
- m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(wrally_state::get_tile_info<0>),this),TILEMAP_SCAN_ROWS,16,16,64,32);
- m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(wrally_state::get_tile_info<1>),this),TILEMAP_SCAN_ROWS,16,16,64,32);
+ m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(wrally_state::get_tile_info<0>)), TILEMAP_SCAN_ROWS, 16,16, 64,32);
+ m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(wrally_state::get_tile_info<1>)), TILEMAP_SCAN_ROWS, 16,16, 64,32);
m_tilemap[0]->set_transmask(0,0xff01,0x00ff); /* this layer is split in two (pens 1..7, pens 8-15) */
m_tilemap[1]->set_transparent_pen(0);
diff --git a/src/mame/video/wswan.cpp b/src/mame/video/wswan.cpp
index 3787167960c..258925e2058 100644
--- a/src/mame/video/wswan.cpp
+++ b/src/mame/video/wswan.cpp
@@ -23,10 +23,16 @@ DEFINE_DEVICE_TYPE(WSWAN_VIDEO, wswan_video_device, "wswan_video", "Bandai Wonde
wswan_video_device::wswan_video_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: device_t(mconfig, WSWAN_VIDEO, tag, owner, clock)
, device_video_interface(mconfig, *this)
+ , m_set_irq_cb(*this)
+ , m_snd_dma_cb(*this)
, m_vdp_type(VDP_TYPE_WSWAN)
{
}
+wswan_video_device::~wswan_video_device()
+{
+}
+
void wswan_video_device::common_save()
{
@@ -88,8 +94,8 @@ void wswan_video_device::device_start()
m_timer->adjust(attotime::from_ticks(256, 3072000), 0, attotime::from_ticks(256, 3072000));
// bind callbacks
- m_set_irq_cb.bind_relative_to(*owner());
- m_snd_dma_cb.bind_relative_to(*owner());
+ m_set_irq_cb.resolve();
+ m_snd_dma_cb.resolve();
if (m_vdp_type == VDP_TYPE_WSC)
{
diff --git a/src/mame/video/wswan.h b/src/mame/video/wswan.h
index 93bbaa76f44..a7df4401e77 100644
--- a/src/mame/video/wswan.h
+++ b/src/mame/video/wswan.h
@@ -27,22 +27,21 @@ enum
#define WSWAN_Y_PIXELS (18*8)
-
-typedef device_delegate<void (int irq)> wswan_video_irq_cb_delegate;
-#define WSWAN_VIDEO_IRQ_CB_MEMBER(_name) void _name(int irq)
-
-typedef device_delegate<void (void)> wswan_video_dmasnd_cb_delegate;
-#define WSWAN_VIDEO_DMASND_CB_MEMBER(_name) void _name(void)
+#define WSWAN_VIDEO_IRQ_CB_MEMBER(_name) void _name(int irq)
+#define WSWAN_VIDEO_DMASND_CB_MEMBER(_name) void _name()
class wswan_video_device : public device_t, public device_video_interface
{
public:
+ typedef device_delegate<void (int irq)> irq_cb_delegate;
+ typedef device_delegate<void ()> dmasnd_cb_delegate;
+
wswan_video_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- ~wswan_video_device() {}
+ ~wswan_video_device();
// static configuration
- template <typename... T> void set_irq_callback(T &&... args) { m_set_irq_cb = wswan_video_irq_cb_delegate(std::forward<T>(args)...); }
- template <typename... T> void set_dmasnd_callback(T &&... args) { m_snd_dma_cb = wswan_video_dmasnd_cb_delegate(std::forward<T>(args)...); }
+ template <typename... T> void set_irq_callback(T &&... args) { m_set_irq_cb.set(std::forward<T>(args)...); }
+ template <typename... T> void set_dmasnd_callback(T &&... args) { m_snd_dma_cb.set(std::forward<T>(args)...); }
void set_vdp_type(int type) { m_vdp_type = type; }
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
@@ -119,8 +118,8 @@ protected:
int m_pal[16][16];
uint8_t m_regs[256];
- wswan_video_irq_cb_delegate m_set_irq_cb;
- wswan_video_dmasnd_cb_delegate m_snd_dma_cb;
+ irq_cb_delegate m_set_irq_cb;
+ dmasnd_cb_delegate m_snd_dma_cb;
int m_vdp_type;
// timer IDs
diff --git a/src/mame/video/wwfsstar.cpp b/src/mame/video/wwfsstar.cpp
index 8bfa8604d18..aeee79c0ffe 100644
--- a/src/mame/video/wwfsstar.cpp
+++ b/src/mame/video/wwfsstar.cpp
@@ -204,10 +204,10 @@ void wwfsstar_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprec
void wwfsstar_state::video_start()
{
- m_fg0_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(wwfsstar_state::get_fg0_tile_info),this),TILEMAP_SCAN_ROWS, 8, 8,32,32);
+ m_fg0_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(wwfsstar_state::get_fg0_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fg0_tilemap->set_transparent_pen(0);
- m_bg0_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(wwfsstar_state::get_bg0_tile_info),this),tilemap_mapper_delegate(FUNC(wwfsstar_state::bg0_scan),this), 16, 16,32,32);
+ m_bg0_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(wwfsstar_state::get_bg0_tile_info)), tilemap_mapper_delegate(*this, FUNC(wwfsstar_state::bg0_scan)), 16, 16, 32, 32);
m_fg0_tilemap->set_transparent_pen(0);
save_item(NAME(m_vblank));
diff --git a/src/mame/video/x68k.cpp b/src/mame/video/x68k.cpp
index 9ef89bea9da..a5b68eb5f17 100644
--- a/src/mame/video/x68k.cpp
+++ b/src/mame/video/x68k.cpp
@@ -611,10 +611,10 @@ void x68k_state::video_start()
m_gfxdecode->gfx(gfx_index)->set_colors(32);
/* Tilemaps */
- m_bg0_8 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(x68k_state::get_bg0_tile),this),TILEMAP_SCAN_ROWS,8,8,64,64);
- m_bg1_8 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(x68k_state::get_bg1_tile),this),TILEMAP_SCAN_ROWS,8,8,64,64);
- m_bg0_16 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(x68k_state::get_bg0_tile_16),this),TILEMAP_SCAN_ROWS,16,16,64,64);
- m_bg1_16 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(x68k_state::get_bg1_tile_16),this),TILEMAP_SCAN_ROWS,16,16,64,64);
+ m_bg0_8 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(x68k_state::get_bg0_tile)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_bg1_8 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(x68k_state::get_bg1_tile)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_bg0_16 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(x68k_state::get_bg0_tile_16)), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
+ m_bg1_16 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(x68k_state::get_bg1_tile_16)), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
m_bg0_8->set_transparent_pen(0);
m_bg1_8->set_transparent_pen(0);
diff --git a/src/mame/video/xain.cpp b/src/mame/video/xain.cpp
index e400dee7cf8..70b9af7f601 100644
--- a/src/mame/video/xain.cpp
+++ b/src/mame/video/xain.cpp
@@ -75,9 +75,9 @@ TILE_GET_INFO_MEMBER(xain_state::get_char_tile_info)
void xain_state::video_start()
{
- m_bg_tilemaps[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(xain_state::get_bg_tile_info<0>), this), tilemap_mapper_delegate(FUNC(xain_state::back_scan), this), 16,16,32,32);
- m_bg_tilemaps[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(xain_state::get_bg_tile_info<1>), this), tilemap_mapper_delegate(FUNC(xain_state::back_scan), this), 16,16,32,32);
- m_char_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(xain_state::get_char_tile_info), this), TILEMAP_SCAN_ROWS, 8,8,32,32);
+ m_bg_tilemaps[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(xain_state::get_bg_tile_info<0>)), tilemap_mapper_delegate(*this, FUNC(xain_state::back_scan)), 16, 16, 32, 32);
+ m_bg_tilemaps[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(xain_state::get_bg_tile_info<1>)), tilemap_mapper_delegate(*this, FUNC(xain_state::back_scan)), 16, 16, 32, 32);
+ m_char_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(xain_state::get_char_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_bg_tilemaps[0]->set_transparent_pen(0);
m_bg_tilemaps[1]->set_transparent_pen(0);
diff --git a/src/mame/video/xevious.cpp b/src/mame/video/xevious.cpp
index ba83d17d6b4..c290a0b84f8 100644
--- a/src/mame/video/xevious.cpp
+++ b/src/mame/video/xevious.cpp
@@ -142,8 +142,8 @@ TILE_GET_INFO_MEMBER(xevious_state::get_bg_tile_info)
VIDEO_START_MEMBER(xevious_state,xevious)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(xevious_state::get_bg_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(xevious_state::get_fg_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(xevious_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(xevious_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_bg_tilemap->set_scrolldx(-20,288+27);
m_bg_tilemap->set_scrolldy(-16,-16);
diff --git a/src/mame/video/xorworld.cpp b/src/mame/video/xorworld.cpp
index 46ed0f62593..54c4b98f969 100644
--- a/src/mame/video/xorworld.cpp
+++ b/src/mame/video/xorworld.cpp
@@ -77,7 +77,7 @@ TILE_GET_INFO_MEMBER(xorworld_state::get_bg_tile_info)
void xorworld_state::video_start()
{
m_bg_tilemap = &machine().tilemap().create(
- *m_gfxdecode, tilemap_get_info_delegate(FUNC(xorworld_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS,
+ *m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(xorworld_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS,
8, 8, 32, 32);
}
diff --git a/src/mame/video/xxmissio.cpp b/src/mame/video/xxmissio.cpp
index 4c4c551620d..92ef34dbf5c 100644
--- a/src/mame/video/xxmissio.cpp
+++ b/src/mame/video/xxmissio.cpp
@@ -63,8 +63,8 @@ TILE_GET_INFO_MEMBER(xxmissio_state::get_fg_tile_info)
void xxmissio_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(xxmissio_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 8, 32, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(xxmissio_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(xxmissio_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(xxmissio_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 16, 8, 32, 32);
m_bg_tilemap->set_scroll_cols(1);
m_bg_tilemap->set_scroll_rows(1);
diff --git a/src/mame/video/xyonix.cpp b/src/mame/video/xyonix.cpp
index d5e9d38fdd5..48c33a51b10 100644
--- a/src/mame/video/xyonix.cpp
+++ b/src/mame/video/xyonix.cpp
@@ -51,7 +51,7 @@ WRITE8_MEMBER(xyonix_state::vidram_w)
void xyonix_state::video_start()
{
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(xyonix_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 4, 8, 80, 32);
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(xyonix_state::get_tile_info)), TILEMAP_SCAN_ROWS, 4, 8, 80, 32);
}
uint32_t xyonix_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
diff --git a/src/mame/video/ygv608.cpp b/src/mame/video/ygv608.cpp
index 5f7860b5a81..fa0d6f4393d 100644
--- a/src/mame/video/ygv608.cpp
+++ b/src/mame/video/ygv608.cpp
@@ -359,21 +359,21 @@ void ygv608_device::device_start()
save_item(NAME(m_namcond1_gfxbank));
/* create tilemaps of all sizes and combinations */
- m_tilemap_A_cache_8[0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(ygv608_device::get_tile_info_A_8),this), tilemap_mapper_delegate(FUNC(ygv608_device::get_tile_offset),this), 8,8, 32,32);
- m_tilemap_A_cache_8[1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(ygv608_device::get_tile_info_A_8),this), tilemap_mapper_delegate(FUNC(ygv608_device::get_tile_offset),this), 8,8, 64,32);
- m_tilemap_A_cache_8[2] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(ygv608_device::get_tile_info_A_8),this), tilemap_mapper_delegate(FUNC(ygv608_device::get_tile_offset),this), 8,8, 32,64);
+ m_tilemap_A_cache_8[0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(ygv608_device::get_tile_info_A_8)), tilemap_mapper_delegate(*this, FUNC(ygv608_device::get_tile_offset)), 8,8, 32,32);
+ m_tilemap_A_cache_8[1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(ygv608_device::get_tile_info_A_8)), tilemap_mapper_delegate(*this, FUNC(ygv608_device::get_tile_offset)), 8,8, 64,32);
+ m_tilemap_A_cache_8[2] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(ygv608_device::get_tile_info_A_8)), tilemap_mapper_delegate(*this, FUNC(ygv608_device::get_tile_offset)), 8,8, 32,64);
- m_tilemap_A_cache_16[0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(ygv608_device::get_tile_info_A_16),this), tilemap_mapper_delegate(FUNC(ygv608_device::get_tile_offset),this), 16,16, 32,32);
- m_tilemap_A_cache_16[1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(ygv608_device::get_tile_info_A_16),this), tilemap_mapper_delegate(FUNC(ygv608_device::get_tile_offset),this), 16,16, 64,32);
- m_tilemap_A_cache_16[2] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(ygv608_device::get_tile_info_A_16),this), tilemap_mapper_delegate(FUNC(ygv608_device::get_tile_offset),this), 16,16, 32,64);
+ m_tilemap_A_cache_16[0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(ygv608_device::get_tile_info_A_16)), tilemap_mapper_delegate(*this, FUNC(ygv608_device::get_tile_offset)), 16,16, 32,32);
+ m_tilemap_A_cache_16[1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(ygv608_device::get_tile_info_A_16)), tilemap_mapper_delegate(*this, FUNC(ygv608_device::get_tile_offset)), 16,16, 64,32);
+ m_tilemap_A_cache_16[2] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(ygv608_device::get_tile_info_A_16)), tilemap_mapper_delegate(*this, FUNC(ygv608_device::get_tile_offset)), 16,16, 32,64);
- m_tilemap_B_cache_8[0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(ygv608_device::get_tile_info_B_8),this), tilemap_mapper_delegate(FUNC(ygv608_device::get_tile_offset),this), 8,8, 32,32);
- m_tilemap_B_cache_8[1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(ygv608_device::get_tile_info_B_8),this), tilemap_mapper_delegate(FUNC(ygv608_device::get_tile_offset),this), 8,8, 64,32);
- m_tilemap_B_cache_8[2] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(ygv608_device::get_tile_info_B_8),this), tilemap_mapper_delegate(FUNC(ygv608_device::get_tile_offset),this), 8,8, 32,64);
+ m_tilemap_B_cache_8[0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(ygv608_device::get_tile_info_B_8)), tilemap_mapper_delegate(*this, FUNC(ygv608_device::get_tile_offset)), 8,8, 32,32);
+ m_tilemap_B_cache_8[1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(ygv608_device::get_tile_info_B_8)), tilemap_mapper_delegate(*this, FUNC(ygv608_device::get_tile_offset)), 8,8, 64,32);
+ m_tilemap_B_cache_8[2] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(ygv608_device::get_tile_info_B_8)), tilemap_mapper_delegate(*this, FUNC(ygv608_device::get_tile_offset)), 8,8, 32,64);
- m_tilemap_B_cache_16[0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(ygv608_device::get_tile_info_B_16),this), tilemap_mapper_delegate(FUNC(ygv608_device::get_tile_offset),this), 16,16, 32,32);
- m_tilemap_B_cache_16[1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(ygv608_device::get_tile_info_B_16),this), tilemap_mapper_delegate(FUNC(ygv608_device::get_tile_offset),this), 16,16, 64,32);
- m_tilemap_B_cache_16[2] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(ygv608_device::get_tile_info_B_16),this), tilemap_mapper_delegate(FUNC(ygv608_device::get_tile_offset),this), 16,16, 32,64);
+ m_tilemap_B_cache_16[0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(ygv608_device::get_tile_info_B_16)), tilemap_mapper_delegate(*this, FUNC(ygv608_device::get_tile_offset)), 16,16, 32,32);
+ m_tilemap_B_cache_16[1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(ygv608_device::get_tile_info_B_16)), tilemap_mapper_delegate(*this, FUNC(ygv608_device::get_tile_offset)), 16,16, 64,32);
+ m_tilemap_B_cache_16[2] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(ygv608_device::get_tile_info_B_16)), tilemap_mapper_delegate(*this, FUNC(ygv608_device::get_tile_offset)), 16,16, 32,64);
m_tilemap_A = nullptr;
m_tilemap_B = nullptr;
diff --git a/src/mame/video/yiear.cpp b/src/mame/video/yiear.cpp
index 3e8c3526f0f..7adbafbd09a 100644
--- a/src/mame/video/yiear.cpp
+++ b/src/mame/video/yiear.cpp
@@ -101,7 +101,7 @@ TILE_GET_INFO_MEMBER(yiear_state::get_bg_tile_info)
void yiear_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(yiear_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(yiear_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
void yiear_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect )
diff --git a/src/mame/video/yunsun16.cpp b/src/mame/video/yunsun16.cpp
index 5815c073320..bdec312cf33 100644
--- a/src/mame/video/yunsun16.cpp
+++ b/src/mame/video/yunsun16.cpp
@@ -69,10 +69,10 @@ TILE_GET_INFO_MEMBER(yunsun16_state::get_tile_info)
void yunsun16_state::video_start()
{
m_tilemap[0] = &machine().tilemap().create(
- *m_gfxdecode, tilemap_get_info_delegate(FUNC(yunsun16_state::get_tile_info<0>),this),tilemap_mapper_delegate(FUNC(yunsun16_state::tilemap_scan_pages),this),
+ *m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(yunsun16_state::get_tile_info<0>)), tilemap_mapper_delegate(*this, FUNC(yunsun16_state::tilemap_scan_pages)),
16, 16, 0x40, 0x40);
m_tilemap[1] = &machine().tilemap().create(
- *m_gfxdecode, tilemap_get_info_delegate(FUNC(yunsun16_state::get_tile_info<1>),this),tilemap_mapper_delegate(FUNC(yunsun16_state::tilemap_scan_pages),this),
+ *m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(yunsun16_state::get_tile_info<1>)), tilemap_mapper_delegate(*this, FUNC(yunsun16_state::tilemap_scan_pages)),
16, 16, 0x40, 0x40);
m_tilemap[0]->set_scrolldx(-0x34, 0);
diff --git a/src/mame/video/yunsung8.cpp b/src/mame/video/yunsung8.cpp
index ca18599aa09..cd0514df32b 100644
--- a/src/mame/video/yunsung8.cpp
+++ b/src/mame/video/yunsung8.cpp
@@ -172,8 +172,8 @@ TILE_GET_INFO_MEMBER(yunsung8_state::get_fg_tile_info)
void yunsung8_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(yunsung8_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, DIM_NX_0, DIM_NY_0 );
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(yunsung8_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, DIM_NX_1, DIM_NY_1 );
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(yunsung8_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, DIM_NX_0, DIM_NY_0 );
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(yunsung8_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, DIM_NX_1, DIM_NY_1 );
m_fg_tilemap->set_transparent_pen(0);
}
diff --git a/src/mame/video/zac2650.cpp b/src/mame/video/zac2650.cpp
index 7283d1291cf..f028a23c792 100644
--- a/src/mame/video/zac2650.cpp
+++ b/src/mame/video/zac2650.cpp
@@ -120,7 +120,7 @@ TILE_GET_INFO_MEMBER(zac2650_state::get_bg_tile_info)
void zac2650_state::video_start()
{
m_bg_tilemap = &machine().tilemap().create(
- *m_gfxdecode, tilemap_get_info_delegate(FUNC(zac2650_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS,
+ *m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(zac2650_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS,
24, 24, 32, 32);
m_screen->register_screen_bitmap(m_bitmap);
diff --git a/src/mame/video/zaccaria.cpp b/src/mame/video/zaccaria.cpp
index 99e898b0c27..98786d730ff 100644
--- a/src/mame/video/zaccaria.cpp
+++ b/src/mame/video/zaccaria.cpp
@@ -128,7 +128,7 @@ TILE_GET_INFO_MEMBER(zaccaria_state::get_tile_info)
void zaccaria_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(zaccaria_state::get_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(zaccaria_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_bg_tilemap->set_scroll_cols(32);
}
diff --git a/src/mame/video/zaxxon.cpp b/src/mame/video/zaxxon.cpp
index ae7be184bf3..b4475bd71ef 100644
--- a/src/mame/video/zaxxon.cpp
+++ b/src/mame/video/zaxxon.cpp
@@ -114,7 +114,7 @@ TILE_GET_INFO_MEMBER(zaxxon_state::congo_get_fg_tile_info)
*
*************************************/
-void zaxxon_state::video_start_common(tilemap_get_info_delegate fg_tile_info)
+void zaxxon_state::video_start_common(tilemap_get_info_delegate &&fg_tile_info)
{
/* reset globals */
m_bg_enable = 0;
@@ -126,14 +126,14 @@ void zaxxon_state::video_start_common(tilemap_get_info_delegate fg_tile_info)
m_congo_color_bank = 0;
memset(m_congo_custom, 0, sizeof(m_congo_custom));
- /* create a background and foreground tilemap */
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(zaxxon_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8,8, 32,512);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, fg_tile_info, TILEMAP_SCAN_ROWS, 8,8, 32,32);
+ // create a background and foreground tilemap
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(zaxxon_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 32,512);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, std::move(fg_tile_info), TILEMAP_SCAN_ROWS, 8,8, 32,32);
- /* configure the foreground tilemap */
+ // configure the foreground tilemap
m_fg_tilemap->set_transparent_pen(0);
- /* register for save states */
+ // register for save states
save_item(NAME(m_bg_enable));
save_item(NAME(m_bg_color));
save_item(NAME(m_bg_position));
@@ -144,13 +144,13 @@ void zaxxon_state::video_start_common(tilemap_get_info_delegate fg_tile_info)
void zaxxon_state::video_start()
{
- video_start_common(tilemap_get_info_delegate(FUNC(zaxxon_state::zaxxon_get_fg_tile_info),this));
+ video_start_common(tilemap_get_info_delegate(*this, FUNC(zaxxon_state::zaxxon_get_fg_tile_info)));
}
VIDEO_START_MEMBER(zaxxon_state,razmataz)
{
- video_start_common(tilemap_get_info_delegate(FUNC(zaxxon_state::razmataz_get_fg_tile_info),this));
+ video_start_common(tilemap_get_info_delegate(*this, FUNC(zaxxon_state::razmataz_get_fg_tile_info)));
}
@@ -164,7 +164,7 @@ VIDEO_START_MEMBER(zaxxon_state,congo)
save_item(NAME(m_congo_color_bank));
save_item(NAME(m_congo_custom));
- video_start_common(tilemap_get_info_delegate(FUNC(zaxxon_state::congo_get_fg_tile_info),this));
+ video_start_common(tilemap_get_info_delegate(*this, FUNC(zaxxon_state::congo_get_fg_tile_info)));
}
diff --git a/src/mame/video/zerozone.cpp b/src/mame/video/zerozone.cpp
index d7b5fb3e85b..59a6c2545eb 100644
--- a/src/mame/video/zerozone.cpp
+++ b/src/mame/video/zerozone.cpp
@@ -38,7 +38,7 @@ void zerozone_state::video_start()
{
// i'm not 100% sure it should be opaque, pink title screen looks strange in las vegas girls
// but if its transparent other things look incorrect
- m_zz_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(zerozone_state::get_zerozone_tile_info),this), TILEMAP_SCAN_COLS, 8, 8, 64, 32);
+ m_zz_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(zerozone_state::get_zerozone_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 64, 32);
}
uint32_t zerozone_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)