From f81fbdb8d4356b7a526a902726463e2f1af00615 Mon Sep 17 00:00:00 2001 From: Vas Crabb Date: Sat, 26 Oct 2019 12:47:04 +1100 Subject: 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 void set_foo(T &&...args) { m_foo_cb.set(std::forward(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 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. --- docs/source/initialsetup/compilingmame.rst | 50 +- scripts/genie.lua | 14 +- src/devices/bus/a1bus/a1cassette.cpp | 2 +- src/devices/bus/a1bus/a1cffa.cpp | 2 +- src/devices/bus/a2bus/a2ultraterm.cpp | 2 +- src/devices/bus/a2bus/a2videoterm.cpp | 2 +- src/devices/bus/acorn/atom/discpack.cpp | 2 +- src/devices/bus/acorn/atom/econet.cpp | 4 +- src/devices/bus/acorn/atom/sid.cpp | 2 +- src/devices/bus/acorn/cms/4080term.cpp | 4 +- src/devices/bus/acorn/cms/fdc.cpp | 4 +- src/devices/bus/acorn/cms/hires.cpp | 4 +- src/devices/bus/acorn/system/8k.cpp | 4 +- src/devices/bus/acorn/system/econet.cpp | 4 +- src/devices/bus/acorn/system/fdc.cpp | 2 +- src/devices/bus/acorn/system/vdu40.cpp | 6 +- src/devices/bus/acorn/system/vdu80.cpp | 10 +- src/devices/bus/acorn/system/vib.cpp | 4 +- src/devices/bus/amiga/zorro/a2052.cpp | 4 +- src/devices/bus/amiga/zorro/a2058.cpp | 4 +- src/devices/bus/amiga/zorro/a2065.cpp | 16 +- src/devices/bus/amiga/zorro/a2232.cpp | 24 +- src/devices/bus/amiga/zorro/buddha.cpp | 8 +- src/devices/bus/bbc/exp/mertec.cpp | 4 +- src/devices/bus/bbc/tube/tube_80286.cpp | 2 +- src/devices/bus/bbc/tube/tube_z80.cpp | 2 +- src/devices/bus/bml3/bml3kanji.cpp | 2 +- src/devices/bus/bml3/bml3mp1802.cpp | 4 +- src/devices/bus/bml3/bml3mp1805.cpp | 4 +- src/devices/bus/c64/xl80.cpp | 2 +- src/devices/bus/cbus/pc9801_118.cpp | 4 +- src/devices/bus/cbus/pc9801_26.cpp | 6 +- src/devices/bus/cbus/pc9801_86.cpp | 12 +- src/devices/bus/cbus/pc9801_amd98.cpp | 12 +- src/devices/bus/cgenie/expansion/floppy.cpp | 6 +- src/devices/bus/coco/coco_dcmodem.cpp | 4 +- src/devices/bus/coco/coco_multi.cpp | 2 +- src/devices/bus/coco/coco_orch90.cpp | 4 +- src/devices/bus/coco/coco_rs232.cpp | 4 +- src/devices/bus/coco/coco_ssc.cpp | 6 +- src/devices/bus/comx35/clm.cpp | 2 +- src/devices/bus/cpc/amdrum.cpp | 2 +- src/devices/bus/cpc/brunword4.cpp | 2 +- src/devices/bus/cpc/cpc_pds.cpp | 4 +- src/devices/bus/cpc/cpc_rs232.cpp | 4 +- src/devices/bus/cpc/cpc_ssa1.cpp | 6 +- src/devices/bus/cpc/ddi1.cpp | 6 +- src/devices/bus/cpc/doubler.cpp | 2 +- src/devices/bus/cpc/hd20.cpp | 6 +- src/devices/bus/cpc/magicsound.cpp | 8 +- src/devices/bus/cpc/musicmachine.cpp | 6 +- src/devices/bus/cpc/playcity.cpp | 10 +- src/devices/bus/cpc/smartwatch.cpp | 4 +- src/devices/bus/cpc/symbfac2.cpp | 10 +- src/devices/bus/cpc/transtape.cpp | 4 +- src/devices/bus/dmv/k220.cpp | 4 +- src/devices/bus/dmv/k230.cpp | 2 +- src/devices/bus/dmv/k806.cpp | 2 +- src/devices/bus/ecbbus/grip.cpp | 2 +- src/devices/bus/einstein/pipe/silicon_disc.cpp | 4 +- src/devices/bus/einstein/pipe/speculator.cpp | 12 +- src/devices/bus/einstein/pipe/tk02.cpp | 4 +- src/devices/bus/electron/cart/ap5.cpp | 4 +- src/devices/bus/electron/cart/romp144.cpp | 14 +- src/devices/bus/electron/plus2.cpp | 6 +- src/devices/bus/electron/rombox.cpp | 16 +- src/devices/bus/electron/romboxp.cpp | 8 +- src/devices/bus/ep64/exdos.cpp | 4 +- src/devices/bus/generic/slot.cpp | 24 +- src/devices/bus/generic/slot.h | 4 +- src/devices/bus/gio64/gio64.cpp | 6 +- src/devices/bus/hp80_io/82937.cpp | 2 +- src/devices/bus/hp9845_io/hp9845_io.cpp | 10 +- src/devices/bus/hp9845_io/hp9845_io.h | 2 +- src/devices/bus/hp_dio/hp98265a.cpp | 4 +- src/devices/bus/hp_dio/hp98543.cpp | 16 +- src/devices/bus/hp_dio/hp98544.cpp | 12 +- src/devices/bus/hp_dio/hp98550.cpp | 16 +- src/devices/bus/hp_dio/hp98603a.cpp | 4 +- src/devices/bus/hp_dio/hp98603b.cpp | 5 +- src/devices/bus/hp_dio/hp98620.cpp | 4 +- src/devices/bus/hp_dio/hp98643.cpp | 26 +- src/devices/bus/hp_dio/hp98644.cpp | 4 +- src/devices/bus/hp_dio/human_interface.cpp | 8 +- src/devices/bus/intellec4/insdatastor.cpp | 4 +- src/devices/bus/intellec4/tapereader.cpp | 8 +- src/devices/bus/interpro/keyboard/lle.cpp | 10 +- src/devices/bus/interpro/sr/edge.cpp | 42 +- src/devices/bus/interpro/sr/sr.h | 4 +- src/devices/bus/isa/3c503.cpp | 4 +- src/devices/bus/isa/3c505.cpp | 26 +- src/devices/bus/isa/adlib.cpp | 2 +- src/devices/bus/isa/aga.cpp | 14 +- src/devices/bus/isa/aha1542c.cpp | 7 +- src/devices/bus/isa/asc88.cpp | 8 +- src/devices/bus/isa/cga.cpp | 32 +- src/devices/bus/isa/chessmdr.cpp | 2 +- src/devices/bus/isa/chessmsr.cpp | 2 +- src/devices/bus/isa/com.cpp | 8 +- src/devices/bus/isa/dectalk.cpp | 2 +- src/devices/bus/isa/ega.cpp | 16 +- src/devices/bus/isa/eis_sad8852.cpp | 4 +- src/devices/bus/isa/finalchs.cpp | 2 +- src/devices/bus/isa/gblaster.cpp | 6 +- src/devices/bus/isa/gus.cpp | 8 +- src/devices/bus/isa/hdc.cpp | 2 +- src/devices/bus/isa/ibm_mfc.cpp | 2 +- src/devices/bus/isa/lpt.cpp | 9 +- src/devices/bus/isa/mc1502_fdc.cpp | 12 +- src/devices/bus/isa/mda.cpp | 16 +- src/devices/bus/isa/mpu401.cpp | 2 +- src/devices/bus/isa/myb3k_com.cpp | 12 +- src/devices/bus/isa/ne1000.cpp | 2 +- src/devices/bus/isa/ne2000.cpp | 2 +- src/devices/bus/isa/num9rev.cpp | 14 +- src/devices/bus/isa/omti8621.cpp | 2 +- src/devices/bus/isa/p1_fdc.cpp | 6 +- src/devices/bus/isa/p1_hdc.cpp | 4 +- src/devices/bus/isa/p1_sound.cpp | 24 +- src/devices/bus/isa/pc1640_iga.cpp | 6 +- src/devices/bus/isa/pcmidi.cpp | 4 +- src/devices/bus/isa/pds.cpp | 4 +- src/devices/bus/isa/pgc.cpp | 3 +- src/devices/bus/isa/s3virge.cpp | 2 +- src/devices/bus/isa/sb16.cpp | 20 +- src/devices/bus/isa/sblaster.cpp | 48 +- src/devices/bus/isa/sc499.cpp | 2 +- src/devices/bus/isa/side116.cpp | 2 +- src/devices/bus/isa/ssi2001.cpp | 5 +- src/devices/bus/isa/stereo_fx.cpp | 16 +- src/devices/bus/isa/svga_cirrus.cpp | 28 +- src/devices/bus/isa/svga_cirrus.h | 4 +- src/devices/bus/isa/svga_s3.cpp | 99 ++- src/devices/bus/isa/svga_s3.h | 10 +- src/devices/bus/isa/svga_trident.cpp | 26 +- src/devices/bus/isa/svga_trident.h | 2 +- src/devices/bus/isa/svga_tseng.cpp | 16 +- src/devices/bus/isa/svga_tseng.h | 2 +- src/devices/bus/isa/trident.cpp | 2 +- src/devices/bus/isa/vga.cpp | 17 +- src/devices/bus/isa/vga.h | 2 +- src/devices/bus/isa/vga_ati.cpp | 361 ++++++----- src/devices/bus/isa/vga_ati.h | 10 +- src/devices/bus/isa/wdxt_gen.cpp | 2 +- src/devices/bus/isa/xtide.cpp | 4 +- src/devices/bus/lpci/i82371sb.cpp | 6 +- src/devices/bus/lpci/southbridge.cpp | 30 +- src/devices/bus/macpds/hyperdrive.cpp | 2 +- src/devices/bus/macpds/pds_tpdfpd.cpp | 4 +- src/devices/bus/msx_cart/arc.cpp | 4 +- src/devices/bus/msx_cart/bm_012.cpp | 4 +- src/devices/bus/msx_cart/fmpac.cpp | 2 +- src/devices/bus/msx_cart/konami.cpp | 6 +- src/devices/bus/msx_cart/korean.cpp | 2 +- src/devices/bus/msx_cart/moonsound.cpp | 6 +- src/devices/bus/msx_cart/msx_audio.cpp | 16 +- src/devices/bus/msx_cart/superloderunner.cpp | 2 +- src/devices/bus/msx_cart/yamaha.cpp | 2 +- src/devices/bus/msx_slot/disk.cpp | 4 +- src/devices/bus/msx_slot/music.cpp | 2 +- src/devices/bus/msx_slot/ram_mm.cpp | 4 +- src/devices/bus/mtx/sdx.cpp | 16 +- src/devices/bus/nasbus/avc.cpp | 10 +- src/devices/bus/nasbus/floppy.cpp | 6 +- src/devices/bus/nubus/bootbug.cpp | 2 +- src/devices/bus/nubus/nubus_48gc.cpp | 2 +- src/devices/bus/nubus/nubus_asntmc3b.cpp | 8 +- src/devices/bus/nubus/nubus_cb264.cpp | 4 +- src/devices/bus/nubus/nubus_image.cpp | 14 +- src/devices/bus/nubus/nubus_m2hires.cpp | 6 +- src/devices/bus/nubus/nubus_m2video.cpp | 6 +- src/devices/bus/nubus/nubus_radiustpd.cpp | 8 +- src/devices/bus/nubus/nubus_spec8.cpp | 6 +- src/devices/bus/nubus/nubus_specpdq.cpp | 4 +- src/devices/bus/nubus/nubus_vikbw.cpp | 4 +- src/devices/bus/nubus/nubus_wsportrait.cpp | 6 +- src/devices/bus/nubus/pds30_30hr.cpp | 4 +- src/devices/bus/nubus/pds30_cb264.cpp | 4 +- src/devices/bus/nubus/pds30_mc30.cpp | 4 +- src/devices/bus/nubus/pds30_procolor816.cpp | 6 +- src/devices/bus/nubus/pds30_sigmalview.cpp | 6 +- src/devices/bus/nubus/quadralink.cpp | 2 +- src/devices/bus/sbus/sbus.cpp | 6 +- src/devices/bus/snes_ctrl/ctrl.cpp | 9 +- src/devices/bus/snes_ctrl/ctrl.h | 13 +- src/devices/bus/spectrum/intf2.cpp | 2 +- src/devices/bus/svi3x8/slot/sv806.cpp | 2 +- src/devices/bus/tanbus/mpvdu.cpp | 2 +- src/devices/bus/tanbus/ravdu.cpp | 2 +- src/devices/bus/ti99x/990_hd.cpp | 16 +- src/devices/bus/vic20/videopak.cpp | 2 +- src/devices/bus/vme/vme_fccpu20.cpp | 6 +- src/devices/bus/vme/vme_mzr8300.cpp | 20 +- src/devices/bus/vtech/ioexp/joystick.cpp | 2 +- src/devices/bus/vtech/ioexp/printer.cpp | 6 +- src/devices/bus/vtech/memexp/memory.cpp | 2 +- src/devices/bus/vtech/memexp/rs232.cpp | 4 +- src/devices/bus/vtech/memexp/rtty.cpp | 6 +- src/devices/bus/wangpc/lvc.cpp | 2 +- src/devices/bus/wangpc/mvc.cpp | 2 +- src/devices/bus/x68k/x68k_midi.cpp | 2 +- src/devices/bus/x68k/x68k_neptunex.cpp | 2 +- src/devices/bus/x68k/x68k_scsiext.cpp | 2 +- src/devices/cpu/ccpu/ccpu.cpp | 3 +- src/devices/cpu/ccpu/ccpu.h | 12 +- src/devices/cpu/dsp16/dsp16.cpp | 6 +- src/devices/cpu/e0c6200/e0c6s46.cpp | 6 +- src/devices/cpu/e0c6200/e0c6s46.h | 12 +- src/devices/cpu/esrip/esrip.cpp | 3 +- src/devices/cpu/esrip/esrip.h | 12 +- src/devices/cpu/g65816/g65816.cpp | 25 +- src/devices/cpu/i386/athlon.cpp | 2 +- src/devices/cpu/i8085/i8085.cpp | 3 +- src/devices/cpu/i8085/i8085.h | 10 +- src/devices/cpu/i86/i186.cpp | 4 +- src/devices/cpu/lc8670/lc8670.cpp | 3 +- src/devices/cpu/lc8670/lc8670.h | 13 +- src/devices/cpu/m6502/xavix.cpp | 20 +- src/devices/cpu/m6502/xavix.h | 17 +- src/devices/cpu/m68000/m68000.h | 8 +- src/devices/cpu/m68000/m68kcpu.cpp | 50 +- src/devices/cpu/m6805/m68705.cpp | 4 +- src/devices/cpu/mcs40/mcs40.cpp | 4 +- src/devices/cpu/mcs40/mcs40.h | 2 +- src/devices/cpu/mcs48/mcs48.cpp | 4 +- src/devices/cpu/mcs48/mcs48.h | 11 +- src/devices/cpu/mcs96/i8x9x.cpp | 2 +- src/devices/cpu/mcs96/i8xc196.cpp | 2 +- src/devices/cpu/nec/v5x.cpp | 64 +- src/devices/cpu/powerpc/ppc.h | 6 +- src/devices/cpu/powerpc/ppccom.cpp | 10 +- src/devices/cpu/psx/psx.cpp | 16 +- src/devices/cpu/sh/sh2.cpp | 9 +- src/devices/cpu/sh/sh2.h | 21 +- src/devices/cpu/tms32082/tms32082.cpp | 7 +- src/devices/cpu/tms32082/tms32082.h | 3 +- src/devices/cpu/tms34010/tms34010.cpp | 12 +- src/devices/cpu/tms34010/tms34010.h | 70 +-- src/devices/imagedev/diablo.cpp | 7 +- src/devices/imagedev/harddriv.cpp | 7 +- src/devices/imagedev/harddriv.h | 4 +- src/devices/imagedev/snapquik.cpp | 3 + src/devices/imagedev/snapquik.h | 2 +- src/devices/machine/53c810.cpp | 9 +- src/devices/machine/53c810.h | 14 +- src/devices/machine/68307.cpp | 21 +- src/devices/machine/68340.cpp | 35 +- src/devices/machine/acorn_vidc.cpp | 2 +- src/devices/machine/adc083x.cpp | 13 +- src/devices/machine/adc083x.h | 10 +- src/devices/machine/adc1038.cpp | 3 +- src/devices/machine/adc1038.h | 11 +- src/devices/machine/adc1213x.cpp | 3 +- src/devices/machine/adc1213x.h | 10 +- src/devices/machine/cs4031.cpp | 26 +- src/devices/machine/dmac.cpp | 8 +- src/devices/machine/f3853.cpp | 3 +- src/devices/machine/f3853.h | 2 +- src/devices/machine/fdc37c93x.cpp | 4 +- src/devices/machine/gt64xxx.cpp | 28 +- src/devices/machine/i82357.cpp | 36 +- src/devices/machine/i82371sb.cpp | 4 +- src/devices/machine/keyboard.cpp | 4 +- src/devices/machine/keyboard.h | 13 +- src/devices/machine/laserdsc.cpp | 9 +- src/devices/machine/laserdsc.h | 23 +- src/devices/machine/lpci.cpp | 16 +- src/devices/machine/lpci.h | 20 +- src/devices/machine/mc6854.cpp | 7 +- src/devices/machine/mc6854.h | 13 +- src/devices/machine/microtch.cpp | 2 + src/devices/machine/microtch.h | 10 +- src/devices/machine/msm6253.cpp | 15 +- src/devices/machine/msm6253.h | 12 +- src/devices/machine/myb3k_kbd.cpp | 5 +- src/devices/machine/myb3k_kbd.h | 13 +- src/devices/machine/netlist.cpp | 24 +- src/devices/machine/netlist.h | 16 +- src/devices/machine/nvram.cpp | 3 +- src/devices/machine/nvram.h | 12 +- src/devices/machine/pci.cpp | 12 +- src/devices/machine/s3c2400.cpp | 46 +- src/devices/machine/s3c2410.cpp | 50 +- src/devices/machine/s3c2440.cpp | 54 +- src/devices/machine/tc009xlvc.cpp | 10 +- src/devices/machine/terminal.cpp | 4 +- src/devices/machine/terminal.h | 13 +- src/devices/machine/timer.cpp | 26 +- src/devices/machine/timer.h | 65 +- src/devices/machine/upd7002.cpp | 13 +- src/devices/machine/upd7002.h | 4 +- src/devices/machine/vrc4373.cpp | 20 +- src/devices/machine/vrc5074.cpp | 16 +- src/devices/machine/wd7600.cpp | 72 +-- src/devices/sound/bsmt2000.cpp | 4 +- src/devices/sound/bsmt2000.h | 10 +- src/devices/sound/cdp1864.cpp | 2 +- src/devices/sound/cdp1869.cpp | 9 +- src/devices/sound/cdp1869.h | 45 +- src/devices/sound/cem3394.cpp | 6 +- src/devices/sound/cem3394.h | 2 +- src/devices/sound/k054539.cpp | 3 +- src/devices/sound/k054539.h | 14 +- src/devices/sound/lc7535.cpp | 3 +- src/devices/sound/lc7535.h | 10 +- src/devices/sound/pokey.cpp | 22 +- src/devices/sound/pokey.h | 20 +- src/devices/sound/rf5c68.cpp | 3 +- src/devices/sound/rf5c68.h | 10 +- src/devices/sound/samples.cpp | 3 +- src/devices/sound/samples.h | 10 +- src/devices/video/315_5313.cpp | 9 +- src/devices/video/315_5313.h | 6 +- src/devices/video/cdp1861.cpp | 2 +- src/devices/video/clgd542x.cpp | 2 +- src/devices/video/crt9021.cpp | 3 + src/devices/video/crt9021.h | 2 +- src/devices/video/crt9028.cpp | 2 +- src/devices/video/crtc_ega.cpp | 7 +- src/devices/video/crtc_ega.h | 6 +- src/devices/video/ef9369.cpp | 3 +- src/devices/video/ef9369.h | 12 +- src/devices/video/epic12.cpp | 14 +- src/devices/video/fixfreq.cpp | 2 +- src/devices/video/hd44780.cpp | 3 +- src/devices/video/hd44780.h | 13 +- src/devices/video/hd63484.cpp | 7 +- src/devices/video/hd63484.h | 2 +- src/devices/video/i82730.cpp | 3 +- src/devices/video/i82730.h | 7 +- src/devices/video/i8275.cpp | 3 +- src/devices/video/i8275.h | 15 +- src/devices/video/mc6845.cpp | 21 +- src/devices/video/mc6845.h | 10 +- src/devices/video/mc6847.cpp | 5 +- src/devices/video/mc6847.h | 11 +- src/devices/video/nt7534.cpp | 3 + src/devices/video/nt7534.h | 2 +- src/devices/video/pc_vga.cpp | 3 +- src/devices/video/pc_vga.h | 4 +- src/devices/video/pcd8544.cpp | 5 +- src/devices/video/pcd8544.h | 2 +- src/devices/video/ppu2c0x.cpp | 12 +- src/devices/video/ppu2c0x.h | 10 +- src/devices/video/psx.cpp | 2 +- src/devices/video/scn2674.cpp | 12 +- src/devices/video/scn2674.h | 19 +- src/devices/video/sed1520.cpp | 4 +- src/devices/video/sed1520.h | 12 +- src/devices/video/tms9928a.cpp | 2 +- src/devices/video/tms9928a.h | 2 +- src/devices/video/upd3301.cpp | 3 +- src/devices/video/upd3301.h | 13 +- src/devices/video/upd7220.cpp | 6 +- src/devices/video/upd7220.h | 47 +- src/devices/video/v9938.cpp | 2 +- src/devices/video/virge_pci.cpp | 8 +- src/devices/video/voodoo_pci.cpp | 4 +- src/emu/addrmap.cpp | 186 +++--- src/emu/addrmap.h | 96 ++- src/emu/devcb.h | 91 +-- src/emu/devdelegate.cpp | 31 +- src/emu/devdelegate.h | 262 ++++++-- src/emu/device.cpp | 2 +- src/emu/device.h | 1 + src/emu/device.ipp | 13 + src/emu/didisasm.cpp | 4 +- src/emu/didisasm.h | 8 +- src/emu/diexec.cpp | 9 +- src/emu/diexec.h | 46 +- src/emu/emumem.cpp | 819 +++++++++---------------- src/emu/emumem.h | 438 +++++-------- src/emu/emumem_hedp.h | 4 +- src/emu/emupal.cpp | 39 +- src/emu/emupal.h | 58 +- src/emu/ioport.cpp | 9 +- src/emu/ioport.h | 34 +- src/emu/screen.cpp | 6 +- src/emu/screen.h | 40 +- src/emu/tilemap.cpp | 122 ++-- src/emu/tilemap.h | 55 +- src/lib/util/delegate.h | 64 +- src/mame/audio/cage.cpp | 2 +- src/mame/audio/dcs.cpp | 11 +- src/mame/audio/jaguar.cpp | 2 +- src/mame/audio/leland.cpp | 4 +- src/mame/audio/lynx.cpp | 6 +- src/mame/audio/lynx.h | 2 +- src/mame/audio/midway.cpp | 58 +- src/mame/audio/midway.h | 17 +- src/mame/audio/segasnd.cpp | 5 +- src/mame/audio/sente6vb.cpp | 14 +- src/mame/drivers/1943.cpp | 8 +- src/mame/drivers/1945kiii.cpp | 2 +- src/mame/drivers/39in1.cpp | 2 +- src/mame/drivers/3x3puzzl.cpp | 6 +- src/mame/drivers/4dpi.cpp | 122 ++-- src/mame/drivers/4enlinea.cpp | 4 +- src/mame/drivers/5clown.cpp | 2 +- src/mame/drivers/88games.cpp | 6 +- src/mame/drivers/a2600.cpp | 38 +- src/mame/drivers/a7800.cpp | 105 ++-- src/mame/drivers/aa310.cpp | 2 +- src/mame/drivers/abc1600.cpp | 6 +- src/mame/drivers/abc80.cpp | 2 +- src/mame/drivers/abc80x.cpp | 2 +- src/mame/drivers/aci_ggm.cpp | 2 +- src/mame/drivers/adm23.cpp | 4 +- src/mame/drivers/aerofgt.cpp | 28 +- src/mame/drivers/aim65.cpp | 14 +- src/mame/drivers/airbustr.cpp | 2 +- src/mame/drivers/ajax.cpp | 6 +- src/mame/drivers/akkaarrh.cpp | 8 +- src/mame/drivers/albazg.cpp | 2 +- src/mame/drivers/alcat7100.cpp | 2 +- src/mame/drivers/alesis.cpp | 2 +- src/mame/drivers/aliens.cpp | 4 +- src/mame/drivers/alpha68k.cpp | 8 +- src/mame/drivers/alpha68k_n.cpp | 4 +- src/mame/drivers/alphasma.cpp | 2 +- src/mame/drivers/alphatro.cpp | 4 +- src/mame/drivers/altair.cpp | 2 +- src/mame/drivers/altos5.cpp | 2 +- src/mame/drivers/ambush.cpp | 6 +- src/mame/drivers/amstrad.cpp | 6 +- src/mame/drivers/amusco.cpp | 7 +- src/mame/drivers/amust.cpp | 2 +- src/mame/drivers/apf.cpp | 4 +- src/mame/drivers/apollo.cpp | 10 +- src/mame/drivers/apple1.cpp | 2 +- src/mame/drivers/apple2.cpp | 3 +- src/mame/drivers/apple2e.cpp | 2 +- src/mame/drivers/applix.cpp | 4 +- src/mame/drivers/apricot.cpp | 2 +- src/mame/drivers/apricotp.cpp | 2 +- src/mame/drivers/aquarium.cpp | 2 +- src/mame/drivers/arcadia.cpp | 12 +- src/mame/drivers/argo.cpp | 2 +- src/mame/drivers/arkanoid.cpp | 14 +- src/mame/drivers/armedf.cpp | 16 +- src/mame/drivers/artmagic.cpp | 2 +- src/mame/drivers/asterix.cpp | 4 +- src/mame/drivers/asteroid.cpp | 2 +- src/mame/drivers/astrof.cpp | 16 +- src/mame/drivers/astrohome.cpp | 6 +- src/mame/drivers/asuka.cpp | 10 +- src/mame/drivers/atari400.cpp | 56 +- src/mame/drivers/atarig1.cpp | 2 +- src/mame/drivers/atarig42.cpp | 4 +- src/mame/drivers/atarigt.cpp | 2 +- src/mame/drivers/atarigx2.cpp | 10 +- src/mame/drivers/atarist.cpp | 6 +- src/mame/drivers/atarittl.cpp | 2 +- src/mame/drivers/atom.cpp | 8 +- src/mame/drivers/attache.cpp | 2 +- src/mame/drivers/aussiebyte.cpp | 6 +- src/mame/drivers/ave_arb.cpp | 2 +- src/mame/drivers/avigo.cpp | 2 +- src/mame/drivers/avt.cpp | 2 +- src/mame/drivers/babbage.cpp | 2 +- src/mame/drivers/backfire.cpp | 14 +- src/mame/drivers/balsente.cpp | 4 +- src/mame/drivers/banctec.cpp | 4 +- src/mame/drivers/battlnts.cpp | 4 +- src/mame/drivers/bbc.cpp | 24 +- src/mame/drivers/bbcbc.cpp | 10 +- src/mame/drivers/berzerk.cpp | 8 +- src/mame/drivers/bestleag.cpp | 6 +- src/mame/drivers/beta.cpp | 4 +- src/mame/drivers/bfm_sc2.cpp | 4 +- src/mame/drivers/bfm_sc4.cpp | 8 +- src/mame/drivers/bigbord2.cpp | 2 +- src/mame/drivers/binbug.cpp | 2 +- src/mame/drivers/bionicc.cpp | 8 +- src/mame/drivers/bishi.cpp | 4 +- src/mame/drivers/blackt96.cpp | 4 +- src/mame/drivers/bladestl.cpp | 4 +- src/mame/drivers/blitz68k.cpp | 14 +- src/mame/drivers/blockade.cpp | 2 +- src/mame/drivers/blockhl.cpp | 4 +- src/mame/drivers/bloodbro.cpp | 2 +- src/mame/drivers/bmcpokr.cpp | 4 +- src/mame/drivers/bml3.cpp | 67 +- src/mame/drivers/bnstars.cpp | 16 +- src/mame/drivers/boogwing.cpp | 6 +- src/mame/drivers/bottom9.cpp | 6 +- src/mame/drivers/btime.cpp | 2 +- src/mame/drivers/bw12.cpp | 4 +- src/mame/drivers/bzone.cpp | 4 +- src/mame/drivers/c128.cpp | 4 +- src/mame/drivers/c2color.cpp | 2 +- src/mame/drivers/c64.cpp | 6 +- src/mame/drivers/cabaret.cpp | 4 +- src/mame/drivers/calchase.cpp | 14 +- src/mame/drivers/calcune.cpp | 4 +- src/mame/drivers/calorie.cpp | 4 +- src/mame/drivers/camplynx.cpp | 4 +- src/mame/drivers/cardline.cpp | 4 +- src/mame/drivers/carjmbre.cpp | 2 +- src/mame/drivers/casloopy.cpp | 2 +- src/mame/drivers/caswin.cpp | 2 +- src/mame/drivers/cat.cpp | 2 +- src/mame/drivers/cave.cpp | 2 +- src/mame/drivers/cb2001.cpp | 6 +- src/mame/drivers/cball.cpp | 2 +- src/mame/drivers/cbm2.cpp | 8 +- src/mame/drivers/cbuster.cpp | 10 +- src/mame/drivers/cc40.cpp | 4 +- src/mame/drivers/cd2650.cpp | 2 +- src/mame/drivers/cgc7900.cpp | 2 +- src/mame/drivers/cgenie.cpp | 10 +- src/mame/drivers/cham24.cpp | 2 +- src/mame/drivers/chanbara.cpp | 4 +- src/mame/drivers/chance32.cpp | 4 +- src/mame/drivers/channelf.cpp | 10 +- src/mame/drivers/chinagat.cpp | 4 +- src/mame/drivers/chinsan.cpp | 2 +- src/mame/drivers/chqflag.cpp | 6 +- src/mame/drivers/cinemat.cpp | 8 +- src/mame/drivers/cischeat.cpp | 4 +- src/mame/drivers/clickstart.cpp | 2 +- src/mame/drivers/clpoker.cpp | 4 +- src/mame/drivers/cmi.cpp | 63 +- src/mame/drivers/cninja.cpp | 40 +- src/mame/drivers/cntsteer.cpp | 8 +- src/mame/drivers/cobra.cpp | 11 +- src/mame/drivers/coinmstr.cpp | 2 +- src/mame/drivers/coleco.cpp | 2 +- src/mame/drivers/combatsc.cpp | 4 +- src/mame/drivers/comx35.cpp | 2 +- src/mame/drivers/coolridr.cpp | 4 +- src/mame/drivers/cosmic.cpp | 8 +- src/mame/drivers/cosmicos.cpp | 2 +- src/mame/drivers/cp1.cpp | 2 +- src/mame/drivers/cps1.cpp | 34 +- src/mame/drivers/cps2.cpp | 8 +- src/mame/drivers/cps3.cpp | 8 +- src/mame/drivers/crgolf.cpp | 2 +- src/mame/drivers/crimfght.cpp | 4 +- src/mame/drivers/crshrace.cpp | 2 +- src/mame/drivers/crvision.cpp | 4 +- src/mame/drivers/csplayh5.cpp | 6 +- src/mame/drivers/cswat.cpp | 6 +- src/mame/drivers/cultures.cpp | 10 +- src/mame/drivers/cv1k.cpp | 2 +- src/mame/drivers/cvs.cpp | 6 +- src/mame/drivers/cybertnk.cpp | 6 +- src/mame/drivers/cybiko.cpp | 4 +- src/mame/drivers/cz101.cpp | 2 +- src/mame/drivers/d6800.cpp | 2 +- src/mame/drivers/d6809.cpp | 2 +- src/mame/drivers/d9final.cpp | 2 +- src/mame/drivers/dacholer.cpp | 6 +- src/mame/drivers/dassault.cpp | 8 +- src/mame/drivers/dblewing.cpp | 6 +- src/mame/drivers/dbz.cpp | 6 +- src/mame/drivers/dccons.cpp | 4 +- src/mame/drivers/ddayjlc.cpp | 4 +- src/mame/drivers/ddealer.cpp | 4 +- src/mame/drivers/ddenlovr.cpp | 2 +- src/mame/drivers/deadang.cpp | 4 +- src/mame/drivers/dec0.cpp | 20 +- src/mame/drivers/dec8.cpp | 6 +- src/mame/drivers/deco156.cpp | 12 +- src/mame/drivers/deco32.cpp | 50 +- src/mame/drivers/deco_mlc.cpp | 2 +- src/mame/drivers/decocass.cpp | 8 +- src/mame/drivers/dectalk.cpp | 2 +- src/mame/drivers/dgn_beta.cpp | 2 +- src/mame/drivers/dietgo.cpp | 4 +- src/mame/drivers/dim68k.cpp | 2 +- src/mame/drivers/divebomb.cpp | 4 +- src/mame/drivers/djmain.cpp | 2 +- src/mame/drivers/dkong.cpp | 18 +- src/mame/drivers/dm7000.cpp | 4 +- src/mame/drivers/dmndrby.cpp | 2 +- src/mame/drivers/dmv.cpp | 2 +- src/mame/drivers/dooyong.cpp | 22 +- src/mame/drivers/dpb7000.cpp | 4 +- src/mame/drivers/dragon.cpp | 2 +- src/mame/drivers/dreambal.cpp | 4 +- src/mame/drivers/dreamwld.cpp | 10 +- src/mame/drivers/drtomy.cpp | 4 +- src/mame/drivers/drw80pkr.cpp | 2 +- src/mame/drivers/duet16.cpp | 2 +- src/mame/drivers/dunhuang.cpp | 4 +- src/mame/drivers/dynadice.cpp | 4 +- src/mame/drivers/dynax.cpp | 2 +- src/mame/drivers/ec65.cpp | 2 +- src/mame/drivers/ecoinfr.cpp | 3 +- src/mame/drivers/efdt.cpp | 4 +- src/mame/drivers/egghunt.cpp | 2 +- src/mame/drivers/eispc.cpp | 74 ++- src/mame/drivers/elf.cpp | 4 +- src/mame/drivers/ep64.cpp | 2 +- src/mame/drivers/equites.cpp | 6 +- src/mame/drivers/esd16.cpp | 2 +- src/mame/drivers/esprit.cpp | 6 +- src/mame/drivers/eti660.cpp | 2 +- src/mame/drivers/ettrivia.cpp | 4 +- src/mame/drivers/excali64.cpp | 2 +- src/mame/drivers/exidy440.cpp | 10 +- src/mame/drivers/expro02.cpp | 2 +- src/mame/drivers/exprraid.cpp | 4 +- src/mame/drivers/f1gp.cpp | 7 +- src/mame/drivers/facit4440.cpp | 2 +- src/mame/drivers/falcots.cpp | 4 +- src/mame/drivers/famibox.cpp | 2 +- src/mame/drivers/fanucspmg.cpp | 4 +- src/mame/drivers/fastfred.cpp | 12 +- src/mame/drivers/fb01.cpp | 2 +- src/mame/drivers/fc100.cpp | 2 +- src/mame/drivers/fccpu30.cpp | 2 +- src/mame/drivers/fcrash.cpp | 12 +- src/mame/drivers/fidel_as12.cpp | 2 +- src/mame/drivers/fidel_cc1.cpp | 2 +- src/mame/drivers/fidel_eag68k.cpp | 2 +- src/mame/drivers/fidel_elite.cpp | 2 +- src/mame/drivers/fidel_sc12.cpp | 2 +- src/mame/drivers/fidel_sc6.cpp | 2 +- src/mame/drivers/fidel_sc9.cpp | 2 +- src/mame/drivers/fireball.cpp | 2 +- src/mame/drivers/firebeat.cpp | 16 +- src/mame/drivers/firefox.cpp | 2 +- src/mame/drivers/fitfight.cpp | 6 +- src/mame/drivers/flipjack.cpp | 2 +- src/mame/drivers/flower.cpp | 4 +- src/mame/drivers/flyball.cpp | 2 +- src/mame/drivers/fm7.cpp | 30 +- src/mame/drivers/force68k.cpp | 6 +- src/mame/drivers/fp1100.cpp | 4 +- src/mame/drivers/freeway.cpp | 2 +- src/mame/drivers/fresh.cpp | 4 +- src/mame/drivers/fs3216.cpp | 4 +- src/mame/drivers/funkball.cpp | 6 +- src/mame/drivers/funtech.cpp | 8 +- src/mame/drivers/fuukifg2.cpp | 2 +- src/mame/drivers/fuukifg3.cpp | 12 +- src/mame/drivers/gaelco.cpp | 6 +- src/mame/drivers/gaelco3d.cpp | 8 +- src/mame/drivers/galaga.cpp | 4 +- src/mame/drivers/galaxi.cpp | 10 +- src/mame/drivers/galaxian.cpp | 46 +- src/mame/drivers/galaxy.cpp | 4 +- src/mame/drivers/galivan.cpp | 10 +- src/mame/drivers/gamecom.cpp | 4 +- src/mame/drivers/gamecstl.cpp | 6 +- src/mame/drivers/gameking.cpp | 2 +- src/mame/drivers/gba.cpp | 34 +- src/mame/drivers/gcpinbal.cpp | 2 +- src/mame/drivers/geniusiq.cpp | 4 +- src/mame/drivers/ghosteo.cpp | 2 +- src/mame/drivers/giclassic.cpp | 6 +- src/mame/drivers/gijoe.cpp | 4 +- src/mame/drivers/gluck2.cpp | 2 +- src/mame/drivers/gmaster.cpp | 2 +- src/mame/drivers/goldngam.cpp | 4 +- src/mame/drivers/goldnpkr.cpp | 6 +- src/mame/drivers/goldstar.cpp | 40 +- src/mame/drivers/good.cpp | 4 +- src/mame/drivers/goodejan.cpp | 18 +- src/mame/drivers/gottlieb.cpp | 16 +- src/mame/drivers/goupil.cpp | 4 +- src/mame/drivers/gradius3.cpp | 4 +- src/mame/drivers/gridlee.cpp | 2 +- src/mame/drivers/groundfx.cpp | 2 +- src/mame/drivers/gstream.cpp | 6 +- src/mame/drivers/gstriker.cpp | 8 +- src/mame/drivers/gsword.cpp | 4 +- src/mame/drivers/gts3a.cpp | 2 +- src/mame/drivers/gunbustr.cpp | 2 +- src/mame/drivers/h19.cpp | 2 +- src/mame/drivers/h89.cpp | 6 +- src/mame/drivers/harddriv.cpp | 238 +++---- src/mame/drivers/hazeltin.cpp | 6 +- src/mame/drivers/headonb.cpp | 2 +- src/mame/drivers/hektor.cpp | 6 +- src/mame/drivers/hh_tms1k.cpp | 4 +- src/mame/drivers/hitme.cpp | 4 +- src/mame/drivers/hnayayoi.cpp | 4 +- src/mame/drivers/homelab.cpp | 6 +- src/mame/drivers/hornet.cpp | 6 +- src/mame/drivers/hotstuff.cpp | 55 +- src/mame/drivers/hp16500.cpp | 6 +- src/mame/drivers/hp64k.cpp | 2 +- src/mame/drivers/hp700.cpp | 10 +- src/mame/drivers/hp9825.cpp | 12 +- src/mame/drivers/hp9845.cpp | 4 +- src/mame/drivers/hp9k_3xx.cpp | 2 +- src/mame/drivers/hprot1.cpp | 2 +- src/mame/drivers/hunter16.cpp | 2 +- src/mame/drivers/hvyunit.cpp | 6 +- src/mame/drivers/hx20.cpp | 2 +- src/mame/drivers/hyprduel.cpp | 8 +- src/mame/drivers/i7000.cpp | 8 +- src/mame/drivers/ibmpcjr.cpp | 4 +- src/mame/drivers/icatel.cpp | 2 +- src/mame/drivers/icebox.cpp | 8 +- src/mame/drivers/icecold.cpp | 4 +- src/mame/drivers/igs009.cpp | 20 +- src/mame/drivers/igs011.cpp | 12 +- src/mame/drivers/igs017.cpp | 34 +- src/mame/drivers/igspoker.cpp | 6 +- src/mame/drivers/instruct.cpp | 2 +- src/mame/drivers/intellec4.cpp | 4 +- src/mame/drivers/intellect02.cpp | 2 +- src/mame/drivers/interpro.cpp | 10 +- src/mame/drivers/inufuku.cpp | 2 +- src/mame/drivers/ipds.cpp | 2 +- src/mame/drivers/iqblock.cpp | 4 +- src/mame/drivers/is48x.cpp | 2 +- src/mame/drivers/istrebiteli.cpp | 4 +- src/mame/drivers/itech32.cpp | 42 +- src/mame/drivers/itech8.cpp | 2 +- src/mame/drivers/itt1700.cpp | 2 +- src/mame/drivers/jackie.cpp | 8 +- src/mame/drivers/jaguar.cpp | 34 +- src/mame/drivers/jalmah.cpp | 26 +- src/mame/drivers/jangou.cpp | 2 +- src/mame/drivers/jazz.cpp | 42 +- src/mame/drivers/jchan.cpp | 4 +- src/mame/drivers/jclub2.cpp | 4 +- src/mame/drivers/jensen.cpp | 58 +- src/mame/drivers/jokrwild.cpp | 2 +- src/mame/drivers/jollyjgr.cpp | 2 +- src/mame/drivers/joystand.cpp | 4 +- src/mame/drivers/jr100.cpp | 2 +- src/mame/drivers/jtc.cpp | 2 +- src/mame/drivers/jubilee.cpp | 2 +- src/mame/drivers/juicebox.cpp | 34 +- src/mame/drivers/jupace.cpp | 2 +- src/mame/drivers/k28.cpp | 2 +- src/mame/drivers/kangaroo.cpp | 2 +- src/mame/drivers/karnov.cpp | 4 +- src/mame/drivers/kaypro.cpp | 6 +- src/mame/drivers/kc.cpp | 4 +- src/mame/drivers/kdt6.cpp | 6 +- src/mame/drivers/kenseim.cpp | 2 +- src/mame/drivers/kickgoal.cpp | 10 +- src/mame/drivers/kingdrby.cpp | 6 +- src/mame/drivers/koftball.cpp | 11 +- src/mame/drivers/koikoi.cpp | 2 +- src/mame/drivers/konamigx.cpp | 22 +- src/mame/drivers/konamim2.cpp | 8 +- src/mame/drivers/konin.cpp | 14 +- src/mame/drivers/konmedal.cpp | 8 +- src/mame/drivers/konmedal68k.cpp | 2 +- src/mame/drivers/ksys573.cpp | 2 +- src/mame/drivers/laserbas.cpp | 2 +- src/mame/drivers/lbeach.cpp | 4 +- src/mame/drivers/ldplayer.cpp | 4 +- src/mame/drivers/leapfrog_leappad.cpp | 4 +- src/mame/drivers/leapster.cpp | 2 +- src/mame/drivers/legionna.cpp | 48 +- src/mame/drivers/leland.cpp | 54 +- src/mame/drivers/lethal.cpp | 4 +- src/mame/drivers/lethalj.cpp | 6 +- src/mame/drivers/liberate.cpp | 6 +- src/mame/drivers/limenko.cpp | 14 +- src/mame/drivers/lola8a.cpp | 2 +- src/mame/drivers/looping.cpp | 4 +- src/mame/drivers/ltcasino.cpp | 4 +- src/mame/drivers/luckgrln.cpp | 8 +- src/mame/drivers/lviv.cpp | 2 +- src/mame/drivers/lwings.cpp | 4 +- src/mame/drivers/lynx.cpp | 8 +- src/mame/drivers/m14.cpp | 2 +- src/mame/drivers/m20.cpp | 2 +- src/mame/drivers/m3.cpp | 2 +- src/mame/drivers/m5.cpp | 16 +- src/mame/drivers/m63.cpp | 4 +- src/mame/drivers/m68705prg.cpp | 4 +- src/mame/drivers/m72.cpp | 16 +- src/mame/drivers/m90.cpp | 2 +- src/mame/drivers/macrossp.cpp | 4 +- src/mame/drivers/macs.cpp | 2 +- src/mame/drivers/magic10.cpp | 6 +- src/mame/drivers/magicfly.cpp | 4 +- src/mame/drivers/magictg.cpp | 12 +- src/mame/drivers/mainevt.cpp | 8 +- src/mame/drivers/majorpkr.cpp | 4 +- src/mame/drivers/mappy.cpp | 4 +- src/mame/drivers/marinedt.cpp | 2 +- src/mame/drivers/mastboyo.cpp | 2 +- src/mame/drivers/maygay1b.cpp | 2 +- src/mame/drivers/maygayv1.cpp | 2 +- src/mame/drivers/mbc200.cpp | 2 +- src/mame/drivers/mbc55x.cpp | 2 +- src/mame/drivers/mbee.cpp | 16 +- src/mame/drivers/mcatadv.cpp | 4 +- src/mame/drivers/mcr.cpp | 48 +- src/mame/drivers/mcr3.cpp | 46 +- src/mame/drivers/mcr68.cpp | 20 +- src/mame/drivers/mediagx.cpp | 66 +- src/mame/drivers/megadriv.cpp | 48 +- src/mame/drivers/megadriv_acbl.cpp | 30 +- src/mame/drivers/megadriv_rad.cpp | 4 +- src/mame/drivers/megaplay.cpp | 8 +- src/mame/drivers/megasys1.cpp | 28 +- src/mame/drivers/megatech.cpp | 36 +- src/mame/drivers/mekd2.cpp | 2 +- src/mame/drivers/mekd3.cpp | 2 +- src/mame/drivers/mekd4.cpp | 2 +- src/mame/drivers/merit.cpp | 4 +- src/mame/drivers/meritm.cpp | 6 +- src/mame/drivers/meritum.cpp | 2 +- src/mame/drivers/metro.cpp | 6 +- src/mame/drivers/mgames.cpp | 2 +- src/mame/drivers/mgavegas.cpp | 6 +- src/mame/drivers/mgolf.cpp | 2 +- src/mame/drivers/micro20.cpp | 7 +- src/mame/drivers/micro3d.cpp | 2 +- src/mame/drivers/microtan.cpp | 4 +- src/mame/drivers/microvsn.cpp | 2 +- src/mame/drivers/midqslvr.cpp | 6 +- src/mame/drivers/midvunit.cpp | 34 +- src/mame/drivers/midzeus.cpp | 10 +- src/mame/drivers/mikrosha.cpp | 4 +- src/mame/drivers/mil4000.cpp | 8 +- src/mame/drivers/mindset.cpp | 4 +- src/mame/drivers/miniboy7.cpp | 2 +- src/mame/drivers/mips.cpp | 65 +- src/mame/drivers/mirage.cpp | 4 +- src/mame/drivers/mjsenpu.cpp | 16 +- src/mame/drivers/ml20.cpp | 2 +- src/mame/drivers/mmm.cpp | 8 +- src/mame/drivers/model3.cpp | 86 +-- src/mame/drivers/mogura.cpp | 2 +- src/mame/drivers/mole.cpp | 2 +- src/mame/drivers/monon_color.cpp | 2 +- src/mame/drivers/moo.cpp | 8 +- src/mame/drivers/mpu12wbk.cpp | 2 +- src/mame/drivers/mpu3.cpp | 5 +- src/mame/drivers/mpu4vid.cpp | 2 +- src/mame/drivers/mtx.cpp | 8 +- src/mame/drivers/multfish.cpp | 4 +- src/mame/drivers/multi16.cpp | 2 +- src/mame/drivers/multi8.cpp | 2 +- src/mame/drivers/multigam.cpp | 24 +- src/mame/drivers/munchmo.cpp | 2 +- src/mame/drivers/mx2178.cpp | 2 +- src/mame/drivers/myb3k.cpp | 2 +- src/mame/drivers/mycom.cpp | 2 +- src/mame/drivers/mystwarr.cpp | 24 +- src/mame/drivers/myvision.cpp | 4 +- src/mame/drivers/n64.cpp | 8 +- src/mame/drivers/namcona1.cpp | 6 +- src/mame/drivers/namcos11.cpp | 2 +- src/mame/drivers/namcos22.cpp | 6 +- src/mame/drivers/namcos23.cpp | 2 +- src/mame/drivers/naomi.cpp | 2 +- src/mame/drivers/nascom1.cpp | 8 +- src/mame/drivers/naughtyb.cpp | 8 +- src/mame/drivers/nc.cpp | 4 +- src/mame/drivers/neogeo.cpp | 208 +++---- src/mame/drivers/neogeocd.cpp | 6 +- src/mame/drivers/neopcb.cpp | 2 +- src/mame/drivers/nes.cpp | 26 +- src/mame/drivers/nes_vt.cpp | 12 +- src/mame/drivers/ngen.cpp | 10 +- src/mame/drivers/ngp.cpp | 8 +- src/mame/drivers/nibble.cpp | 2 +- src/mame/drivers/nightgal.cpp | 4 +- src/mame/drivers/ninjakd2.cpp | 2 +- src/mame/drivers/nmg5.cpp | 4 +- src/mame/drivers/nmk16.cpp | 62 +- src/mame/drivers/nokia_3310.cpp | 2 +- src/mame/drivers/novag_diablo.cpp | 2 +- src/mame/drivers/novag_sexpert.cpp | 2 +- src/mame/drivers/nsmpoker.cpp | 2 +- src/mame/drivers/nyny.cpp | 4 +- src/mame/drivers/offtwall.cpp | 12 +- src/mame/drivers/olibochu.cpp | 2 +- src/mame/drivers/olyboss.cpp | 2 +- src/mame/drivers/onetwo.cpp | 2 +- src/mame/drivers/onyx.cpp | 20 +- src/mame/drivers/opwolf.cpp | 4 +- src/mame/drivers/osborne1.cpp | 4 +- src/mame/drivers/othello.cpp | 2 +- src/mame/drivers/overdriv.cpp | 6 +- src/mame/drivers/pacman.cpp | 12 +- src/mame/drivers/palestra.cpp | 2 +- src/mame/drivers/panicr.cpp | 6 +- src/mame/drivers/paradise.cpp | 4 +- src/mame/drivers/parodius.cpp | 4 +- src/mame/drivers/partner.cpp | 2 +- src/mame/drivers/pasha2.cpp | 2 +- src/mame/drivers/pasopia.cpp | 2 +- src/mame/drivers/patapata.cpp | 8 +- src/mame/drivers/patinho_feio.cpp | 2 +- src/mame/drivers/pbaction.cpp | 8 +- src/mame/drivers/pc100.cpp | 5 +- src/mame/drivers/pc2000.cpp | 2 +- src/mame/drivers/pc6001.cpp | 2 +- src/mame/drivers/pc8001.cpp | 4 +- src/mame/drivers/pc9801.cpp | 4 +- src/mame/drivers/pcw.cpp | 4 +- src/mame/drivers/pcxt.cpp | 2 +- src/mame/drivers/pegasus.cpp | 20 +- src/mame/drivers/pencil2.cpp | 2 +- src/mame/drivers/pentagon.cpp | 4 +- src/mame/drivers/peoplepc.cpp | 2 +- src/mame/drivers/peplus.cpp | 4 +- src/mame/drivers/pet.cpp | 16 +- src/mame/drivers/pg685.cpp | 6 +- src/mame/drivers/pgm2.cpp | 14 +- src/mame/drivers/photoply.cpp | 7 +- src/mame/drivers/phunsy.cpp | 2 +- src/mame/drivers/piggypas.cpp | 6 +- src/mame/drivers/pinball2k.cpp | 3 +- src/mame/drivers/pingpong.cpp | 4 +- src/mame/drivers/pipbug.cpp | 2 +- src/mame/drivers/pipedrm.cpp | 2 +- src/mame/drivers/pipeline.cpp | 4 +- src/mame/drivers/pirates.cpp | 2 +- src/mame/drivers/piratesh.cpp | 6 +- src/mame/drivers/pkscram.cpp | 6 +- src/mame/drivers/pktgaldx.cpp | 4 +- src/mame/drivers/plus4.cpp | 2 +- src/mame/drivers/pockchal.cpp | 4 +- src/mame/drivers/pockstat.cpp | 2 +- src/mame/drivers/poisk1.cpp | 2 +- src/mame/drivers/pokemini.cpp | 2 +- src/mame/drivers/polepos.cpp | 2 +- src/mame/drivers/policetr.cpp | 2 +- src/mame/drivers/poly88.cpp | 2 +- src/mame/drivers/pong.cpp | 28 +- src/mame/drivers/popobear.cpp | 8 +- src/mame/drivers/popper.cpp | 4 +- src/mame/drivers/powerbal.cpp | 4 +- src/mame/drivers/powerins.cpp | 4 +- src/mame/drivers/ppmast93.cpp | 4 +- src/mame/drivers/prehisle.cpp | 12 +- src/mame/drivers/primo.cpp | 4 +- src/mame/drivers/psion.cpp | 4 +- src/mame/drivers/psx.cpp | 2 +- src/mame/drivers/pturn.cpp | 4 +- src/mame/drivers/pv1000.cpp | 4 +- src/mame/drivers/pv2000.cpp | 4 +- src/mame/drivers/pwrview.cpp | 2 +- src/mame/drivers/pyl601.cpp | 4 +- src/mame/drivers/pzletime.cpp | 4 +- src/mame/drivers/qdrmfgp.cpp | 4 +- src/mame/drivers/queen.cpp | 6 +- src/mame/drivers/quickpick5.cpp | 4 +- src/mame/drivers/quizpun2.cpp | 4 +- src/mame/drivers/quizshow.cpp | 2 +- src/mame/drivers/qvt102.cpp | 2 +- src/mame/drivers/qvt190.cpp | 2 +- src/mame/drivers/qx10.cpp | 2 +- src/mame/drivers/r2dtank.cpp | 2 +- src/mame/drivers/r2dx_v33.cpp | 6 +- src/mame/drivers/rabbit.cpp | 8 +- src/mame/drivers/radio86.cpp | 2 +- src/mame/drivers/raiden2.cpp | 18 +- src/mame/drivers/rainbow.cpp | 12 +- src/mame/drivers/rastan.cpp | 2 +- src/mame/drivers/rastersp.cpp | 4 +- src/mame/drivers/ravens.cpp | 4 +- src/mame/drivers/rbisland.cpp | 2 +- src/mame/drivers/rc702.cpp | 4 +- src/mame/drivers/rd100.cpp | 2 +- src/mame/drivers/rex6000.cpp | 4 +- src/mame/drivers/rmhaihai.cpp | 2 +- src/mame/drivers/rockrage.cpp | 4 +- src/mame/drivers/rohga.cpp | 40 +- src/mame/drivers/rollerg.cpp | 4 +- src/mame/drivers/rollext.cpp | 2 +- src/mame/drivers/ron.cpp | 2 +- src/mame/drivers/rt1715.cpp | 2 +- src/mame/drivers/rungun.cpp | 2 +- src/mame/drivers/rx78.cpp | 4 +- src/mame/drivers/rz1.cpp | 2 +- src/mame/drivers/safarir.cpp | 4 +- src/mame/drivers/sage2.cpp | 2 +- src/mame/drivers/saitek_corona.cpp | 2 +- src/mame/drivers/saitek_stratos.cpp | 2 +- src/mame/drivers/saitek_superstar.cpp | 2 +- src/mame/drivers/sangho.cpp | 2 +- src/mame/drivers/sanremo.cpp | 2 +- src/mame/drivers/sapi1.cpp | 2 +- src/mame/drivers/saturn.cpp | 62 +- src/mame/drivers/savquest.cpp | 9 +- src/mame/drivers/sbowling.cpp | 2 +- src/mame/drivers/sbrain.cpp | 2 +- src/mame/drivers/sbrkout.cpp | 2 +- src/mame/drivers/scopus.cpp | 2 +- src/mame/drivers/scorpion.cpp | 2 +- src/mame/drivers/seabattl.cpp | 2 +- src/mame/drivers/sega_beena.cpp | 2 +- src/mame/drivers/segac2.cpp | 61 +- src/mame/drivers/segag80r.cpp | 40 +- src/mame/drivers/segag80v.cpp | 58 +- src/mame/drivers/segaorun.cpp | 34 +- src/mame/drivers/segapico.cpp | 16 +- src/mame/drivers/segas16a.cpp | 18 +- src/mame/drivers/segas16b.cpp | 68 +- src/mame/drivers/segas18.cpp | 46 +- src/mame/drivers/segas24.cpp | 2 +- src/mame/drivers/segas32.cpp | 32 +- src/mame/drivers/segaxbd.cpp | 14 +- src/mame/drivers/seibuspi.cpp | 18 +- src/mame/drivers/seicupbl.cpp | 8 +- src/mame/drivers/sengokmj.cpp | 8 +- src/mame/drivers/seta.cpp | 118 ++-- src/mame/drivers/seta2.cpp | 2 +- src/mame/drivers/sfbonus.cpp | 10 +- src/mame/drivers/sg1000.cpp | 8 +- src/mame/drivers/silvmil.cpp | 4 +- src/mame/drivers/simpl156.cpp | 16 +- src/mame/drivers/simpsons.cpp | 4 +- src/mame/drivers/sk101bl.cpp | 2 +- src/mame/drivers/skyarmy.cpp | 2 +- src/mame/drivers/skylncr.cpp | 10 +- src/mame/drivers/slotcarn.cpp | 8 +- src/mame/drivers/sm1800.cpp | 2 +- src/mame/drivers/smc777.cpp | 2 +- src/mame/drivers/snes.cpp | 94 +-- src/mame/drivers/snesb.cpp | 76 +-- src/mame/drivers/snk68.cpp | 18 +- src/mame/drivers/snowbros.cpp | 8 +- src/mame/drivers/sorcerer.cpp | 4 +- src/mame/drivers/spartanxtec.cpp | 2 +- src/mame/drivers/spc1500.cpp | 4 +- src/mame/drivers/spdheat.cpp | 8 +- src/mame/drivers/spectrum.cpp | 4 +- src/mame/drivers/spiders.cpp | 2 +- src/mame/drivers/splash.cpp | 8 +- src/mame/drivers/spoker.cpp | 4 +- src/mame/drivers/spool99.cpp | 2 +- src/mame/drivers/sprint2.cpp | 4 +- src/mame/drivers/spy.cpp | 4 +- src/mame/drivers/spyhuntertec.cpp | 8 +- src/mame/drivers/squale.cpp | 2 +- src/mame/drivers/srmp2.cpp | 4 +- src/mame/drivers/ssem.cpp | 2 +- src/mame/drivers/sshangha.cpp | 4 +- src/mame/drivers/sshot.cpp | 2 +- src/mame/drivers/ssingles.cpp | 4 +- src/mame/drivers/stadhero.cpp | 2 +- src/mame/drivers/starfire.cpp | 8 +- src/mame/drivers/statriv2.cpp | 12 +- src/mame/drivers/storio.cpp | 2 +- src/mame/drivers/studio2.cpp | 12 +- src/mame/drivers/stuntair.cpp | 4 +- src/mame/drivers/stv.cpp | 40 +- src/mame/drivers/subsino.cpp | 16 +- src/mame/drivers/subsino2.cpp | 4 +- src/mame/drivers/supduck.cpp | 6 +- src/mame/drivers/super80.cpp | 6 +- src/mame/drivers/superchs.cpp | 4 +- src/mame/drivers/supercrd.cpp | 2 +- src/mame/drivers/superdq.cpp | 2 +- src/mame/drivers/superwng.cpp | 4 +- src/mame/drivers/supracan.cpp | 42 +- src/mame/drivers/suprgolf.cpp | 2 +- src/mame/drivers/suprnova.cpp | 30 +- src/mame/drivers/suprslam.cpp | 2 +- src/mame/drivers/surpratk.cpp | 4 +- src/mame/drivers/sv8000.cpp | 4 +- src/mame/drivers/svi318.cpp | 2 +- src/mame/drivers/svision.cpp | 2 +- src/mame/drivers/svmu.cpp | 2 +- src/mame/drivers/swtpc8212.cpp | 2 +- src/mame/drivers/sys9002.cpp | 2 +- src/mame/drivers/system1.cpp | 20 +- src/mame/drivers/system16.cpp | 4 +- src/mame/drivers/tail2nos.cpp | 2 +- src/mame/drivers/taito_f2.cpp | 2 +- src/mame/drivers/taito_l.cpp | 4 +- src/mame/drivers/taitojc.cpp | 6 +- src/mame/drivers/taitopjc.cpp | 4 +- src/mame/drivers/taitosj.cpp | 12 +- src/mame/drivers/taitowlf.cpp | 6 +- src/mame/drivers/tandy1t.cpp | 4 +- src/mame/drivers/taotaido.cpp | 2 +- src/mame/drivers/tapatune.cpp | 12 +- src/mame/drivers/tasman.cpp | 4 +- src/mame/drivers/tatsumi.cpp | 2 +- src/mame/drivers/tattack.cpp | 2 +- src/mame/drivers/tavernie.cpp | 2 +- src/mame/drivers/techno.cpp | 2 +- src/mame/drivers/testpat.cpp | 4 +- src/mame/drivers/thepit.cpp | 2 +- src/mame/drivers/thomson.cpp | 8 +- src/mame/drivers/thoop2.cpp | 2 +- src/mame/drivers/thunderx.cpp | 6 +- src/mame/drivers/ti74.cpp | 10 +- src/mame/drivers/ti85.cpp | 4 +- src/mame/drivers/ti89.cpp | 4 +- src/mame/drivers/tim100.cpp | 2 +- src/mame/drivers/timeplt.cpp | 2 +- src/mame/drivers/timex.cpp | 2 +- src/mame/drivers/tispeak.cpp | 12 +- src/mame/drivers/tmaster.cpp | 2 +- src/mame/drivers/tmc1800.cpp | 8 +- src/mame/drivers/tmnt.cpp | 54 +- src/mame/drivers/tmspoker.cpp | 2 +- src/mame/drivers/toaplan2.cpp | 22 +- src/mame/drivers/tomy_princ.cpp | 6 +- src/mame/drivers/tourvis.cpp | 2 +- src/mame/drivers/trackfld.cpp | 2 +- src/mame/drivers/travrusa.cpp | 2 +- src/mame/drivers/trs80.cpp | 2 +- src/mame/drivers/trs80dt1.cpp | 2 +- src/mame/drivers/trs80m2.cpp | 4 +- src/mame/drivers/trs80m3.cpp | 2 +- src/mame/drivers/trvmadns.cpp | 2 +- src/mame/drivers/ts803.cpp | 4 +- src/mame/drivers/tsamurai.cpp | 2 +- src/mame/drivers/tumbleb.cpp | 20 +- src/mame/drivers/tv910.cpp | 4 +- src/mame/drivers/tv950.cpp | 4 +- src/mame/drivers/tvc.cpp | 6 +- src/mame/drivers/twin16.cpp | 2 +- src/mame/drivers/ultraman.cpp | 8 +- src/mame/drivers/umipoker.cpp | 8 +- src/mame/drivers/unichamp.cpp | 4 +- src/mame/drivers/unior.cpp | 2 +- src/mame/drivers/unistar.cpp | 2 +- src/mame/drivers/usgames.cpp | 2 +- src/mame/drivers/uzebox.cpp | 4 +- src/mame/drivers/v6809.cpp | 4 +- src/mame/drivers/vamphalf.cpp | 68 +- src/mame/drivers/vaportra.cpp | 10 +- src/mame/drivers/vc4000.cpp | 40 +- src/mame/drivers/vector06.cpp | 6 +- src/mame/drivers/vendetta.cpp | 6 +- src/mame/drivers/vgmplay.cpp | 6 +- src/mame/drivers/vic20.cpp | 2 +- src/mame/drivers/victor9k.cpp | 2 +- src/mame/drivers/videopkr.cpp | 4 +- src/mame/drivers/vii.cpp | 8 +- src/mame/drivers/vip.cpp | 2 +- src/mame/drivers/viper.cpp | 26 +- src/mame/drivers/vis.cpp | 8 +- src/mame/drivers/vk100.cpp | 2 +- src/mame/drivers/vlc.cpp | 2 +- src/mame/drivers/volfied.cpp | 2 +- src/mame/drivers/voyager.cpp | 6 +- src/mame/drivers/vp60.cpp | 2 +- src/mame/drivers/vroulet.cpp | 2 +- src/mame/drivers/vtech1.cpp | 2 +- src/mame/drivers/vtech2.cpp | 10 +- src/mame/drivers/wallc.cpp | 6 +- src/mame/drivers/warpsped.cpp | 4 +- src/mame/drivers/wecleman.cpp | 4 +- src/mame/drivers/wicat.cpp | 2 +- src/mame/drivers/williams.cpp | 4 +- src/mame/drivers/wink.cpp | 2 +- src/mame/drivers/witch.cpp | 8 +- src/mame/drivers/wrally.cpp | 2 +- src/mame/drivers/wswan.cpp | 4 +- src/mame/drivers/wy100.cpp | 2 +- src/mame/drivers/wyvernf0.cpp | 4 +- src/mame/drivers/x07.cpp | 8 +- src/mame/drivers/x68k.cpp | 2 +- src/mame/drivers/xerox820.cpp | 4 +- src/mame/drivers/xexex.cpp | 4 +- src/mame/drivers/xmen.cpp | 8 +- src/mame/drivers/xor100.cpp | 6 +- src/mame/drivers/xtom3d.cpp | 6 +- src/mame/drivers/ymmu50.cpp | 8 +- src/mame/drivers/z100.cpp | 2 +- src/mame/drivers/z1013.cpp | 2 +- src/mame/drivers/z88.cpp | 12 +- src/mame/drivers/zaxxon.cpp | 2 +- src/mame/drivers/zorba.cpp | 2 +- src/mame/drivers/zr107.cpp | 2 +- src/mame/drivers/zrt80.cpp | 2 +- src/mame/drivers/zwackery.cpp | 4 +- src/mame/includes/decocass.h | 6 +- src/mame/includes/goldstar.h | 21 +- src/mame/includes/hp48.h | 46 +- src/mame/includes/megadriv.h | 4 +- src/mame/includes/newbrain.h | 2 +- src/mame/includes/segaorun.h | 14 +- src/mame/includes/segas16a.h | 2 + src/mame/includes/segas16b.h | 2 + src/mame/includes/segas18.h | 2 + src/mame/includes/sprint2.h | 2 +- src/mame/includes/starfire.h | 21 +- src/mame/includes/zaxxon.h | 2 +- src/mame/machine/315-5881_crypt.cpp | 3 +- src/mame/machine/315-5881_crypt.h | 7 +- src/mame/machine/315_5195.cpp | 5 +- src/mame/machine/315_5195.h | 2 +- src/mame/machine/3dom2.cpp | 20 +- src/mame/machine/6883sam.cpp | 15 +- src/mame/machine/6883sam.h | 18 +- src/mame/machine/aim65.cpp | 14 +- src/mame/machine/amiga.cpp | 2 +- src/mame/machine/amstrad.cpp | 24 +- src/mame/machine/atarigen.cpp | 2 +- src/mame/machine/b2m.cpp | 8 +- src/mame/machine/bbc.cpp | 4 +- src/mame/machine/coco12.cpp | 10 +- src/mame/machine/decocass.cpp | 54 +- src/mame/machine/dgn_beta.cpp | 44 +- src/mame/machine/dragon.cpp | 6 +- src/mame/machine/fd1094.cpp | 6 +- src/mame/machine/gamepock.cpp | 17 +- src/mame/machine/gridkeyb.cpp | 4 +- src/mame/machine/gridkeyb.h | 7 +- src/mame/machine/hp48.cpp | 26 +- src/mame/machine/hp48_port.cpp | 8 +- src/mame/machine/hp48_port.h | 2 +- src/mame/machine/igs025.cpp | 4 +- src/mame/machine/igs025.h | 2 +- src/mame/machine/imds2ioc.cpp | 2 +- src/mame/machine/intv.cpp | 28 +- src/mame/machine/jazz_mct_adr.cpp | 126 ++-- src/mame/machine/kc.cpp | 32 +- src/mame/machine/konamigx.cpp | 2 +- src/mame/machine/mac.cpp | 4 +- src/mame/machine/mbee.cpp | 8 +- src/mame/machine/mega32x.cpp | 32 +- src/mame/machine/megacd.cpp | 40 +- src/mame/machine/megacdcd.cpp | 25 +- src/mame/machine/megacdcd.h | 25 +- src/mame/machine/megadriv.cpp | 6 +- src/mame/machine/mhavoc.cpp | 4 +- src/mame/machine/micro3d.cpp | 4 +- src/mame/machine/midtunit.cpp | 26 +- src/mame/machine/midwayic.cpp | 12 +- src/mame/machine/midwunit.cpp | 6 +- src/mame/machine/midxunit.cpp | 2 +- src/mame/machine/midyunit.cpp | 28 +- src/mame/machine/model1io2.cpp | 4 +- src/mame/machine/mpu4.cpp | 22 +- src/mame/machine/msx_systemflags.cpp | 4 +- src/mame/machine/mtx.cpp | 2 +- src/mame/machine/namcos1.cpp | 22 +- src/mame/machine/naomi.cpp | 28 +- src/mame/machine/nes.cpp | 34 +- src/mame/machine/ondra.cpp | 2 +- src/mame/machine/orion.cpp | 68 +- src/mame/machine/osborne1.cpp | 2 +- src/mame/machine/partner.cpp | 4 +- src/mame/machine/pce.cpp | 4 +- src/mame/machine/pecom.cpp | 8 +- src/mame/machine/pgmprot_igs025_igs012.cpp | 2 +- src/mame/machine/pgmprot_igs025_igs022.cpp | 6 +- src/mame/machine/pgmprot_igs025_igs028.cpp | 4 +- src/mame/machine/pgmprot_igs027a_type1.cpp | 52 +- src/mame/machine/pgmprot_igs027a_type2.cpp | 10 +- src/mame/machine/pgmprot_igs027a_type3.cpp | 17 +- src/mame/machine/pgmprot_orlegend.cpp | 2 +- src/mame/machine/playch10.cpp | 34 +- src/mame/machine/pp01.cpp | 43 +- src/mame/machine/rm380z.cpp | 2 +- src/mame/machine/samcoupe.cpp | 2 +- src/mame/machine/scramble.cpp | 28 +- src/mame/machine/sorcerer.cpp | 2 +- src/mame/machine/special.cpp | 4 +- src/mame/machine/st0016.cpp | 68 +- src/mame/machine/st0016.h | 2 +- src/mame/machine/stvprot.cpp | 2 +- src/mame/machine/thomson.cpp | 36 +- src/mame/machine/toaplan1.cpp | 2 +- src/mame/machine/upd65031.cpp | 12 +- src/mame/machine/upd65031.h | 14 +- src/mame/machine/vectrex.cpp | 4 +- src/mame/machine/vsnes.cpp | 46 +- src/mame/machine/wswan.cpp | 10 +- src/mame/machine/xbox_pci.cpp | 4 +- src/mame/video/1942.cpp | 8 +- src/mame/video/1943.cpp | 6 +- src/mame/video/40love.cpp | 2 +- src/mame/video/4enraya.cpp | 2 +- src/mame/video/abc1600.cpp | 71 +-- src/mame/video/abc800.cpp | 2 +- src/mame/video/abc802.cpp | 2 +- src/mame/video/abc806.cpp | 12 +- src/mame/video/aeroboto.cpp | 2 +- src/mame/video/aerofgt.cpp | 16 +- src/mame/video/airbustr.cpp | 4 +- src/mame/video/airraid_dev.cpp | 8 +- src/mame/video/alpha68k.cpp | 2 +- src/mame/video/ampoker2.cpp | 4 +- src/mame/video/amspdwy.cpp | 2 +- src/mame/video/angelkds.cpp | 6 +- src/mame/video/appoooh.cpp | 4 +- src/mame/video/aquarium.cpp | 6 +- src/mame/video/aquarius.cpp | 2 +- src/mame/video/argus.cpp | 18 +- src/mame/video/arkanoid.cpp | 2 +- src/mame/video/armedf.cpp | 14 +- src/mame/video/ashnojoe.cpp | 12 +- src/mame/video/atarifb.cpp | 6 +- src/mame/video/atetris.cpp | 2 +- src/mame/video/bagman.cpp | 2 +- src/mame/video/bankp.cpp | 4 +- src/mame/video/baraduke.cpp | 6 +- src/mame/video/battlane.cpp | 2 +- src/mame/video/battlex.cpp | 4 +- src/mame/video/bbusters.cpp | 10 +- src/mame/video/bfm_adr2.cpp | 4 +- src/mame/video/bigstrkb.cpp | 6 +- src/mame/video/bking.cpp | 2 +- src/mame/video/blktiger.cpp | 6 +- src/mame/video/blmbycar.cpp | 4 +- src/mame/video/bloodbro.cpp | 6 +- src/mame/video/blueprnt.cpp | 2 +- src/mame/video/bogeyman.cpp | 4 +- src/mame/video/bombjack.cpp | 4 +- src/mame/video/bosco.cpp | 4 +- src/mame/video/brkthru.cpp | 4 +- src/mame/video/bsktball.cpp | 2 +- src/mame/video/bwing.cpp | 6 +- src/mame/video/c45.cpp | 4 +- src/mame/video/cabal.cpp | 4 +- src/mame/video/calomega.cpp | 2 +- src/mame/video/canyon.cpp | 2 +- src/mame/video/cbasebal.cpp | 4 +- src/mame/video/cclimber.cpp | 14 +- src/mame/video/centiped.cpp | 8 +- src/mame/video/chaknpop.cpp | 2 +- src/mame/video/champbas.cpp | 4 +- src/mame/video/cheekyms.cpp | 2 +- src/mame/video/circus.cpp | 2 +- src/mame/video/circusc.cpp | 2 +- src/mame/video/citycon.cpp | 4 +- src/mame/video/cloak.cpp | 2 +- src/mame/video/clshroad.cpp | 12 +- src/mame/video/combatsc.cpp | 12 +- src/mame/video/commando.cpp | 4 +- src/mame/video/compgolf.cpp | 4 +- src/mame/video/contra.cpp | 6 +- src/mame/video/cop01.cpp | 4 +- src/mame/video/cps1.cpp | 6 +- src/mame/video/crbaloon.cpp | 2 +- src/mame/video/crospang.cpp | 4 +- src/mame/video/crshrace.cpp | 4 +- src/mame/video/darius.cpp | 2 +- src/mame/video/darkmist.cpp | 6 +- src/mame/video/dbz.cpp | 4 +- src/mame/video/dcon.cpp | 8 +- src/mame/video/dday.cpp | 8 +- src/mame/video/ddragon.cpp | 4 +- src/mame/video/ddragon3.cpp | 7 +- src/mame/video/ddribble.cpp | 4 +- src/mame/video/deadang.cpp | 16 +- src/mame/video/dec8.cpp | 36 +- src/mame/video/decbac06.cpp | 24 +- src/mame/video/deckarn.cpp | 3 +- src/mame/video/deckarn.h | 8 +- src/mame/video/decmxc06.cpp | 3 +- src/mame/video/decmxc06.h | 8 +- src/mame/video/deco16ic.cpp | 66 +- src/mame/video/deco16ic.h | 47 +- src/mame/video/decocass.cpp | 6 +- src/mame/video/decodmd2.cpp | 4 +- src/mame/video/decodmd3.cpp | 4 +- src/mame/video/decospr.cpp | 28 +- src/mame/video/decospr.h | 4 +- src/mame/video/decrmc3.cpp | 14 +- src/mame/video/decrmc3.h | 6 +- src/mame/video/deniam.cpp | 6 +- src/mame/video/digdug.cpp | 4 +- src/mame/video/divebomb.cpp | 2 +- src/mame/video/djboy.cpp | 2 +- src/mame/video/dkong.cpp | 4 +- src/mame/video/docastle.cpp | 2 +- src/mame/video/dogfgt.cpp | 2 +- src/mame/video/dooyong.cpp | 7 +- src/mame/video/dooyong.h | 4 +- src/mame/video/dragrace.cpp | 2 +- src/mame/video/drgnmst.cpp | 6 +- src/mame/video/drmicro.cpp | 4 +- src/mame/video/dynduke.cpp | 6 +- src/mame/video/edevices.cpp | 8 +- src/mame/video/equites.cpp | 8 +- src/mame/video/esd16.cpp | 8 +- src/mame/video/espial.cpp | 4 +- src/mame/video/excellent_spr.cpp | 3 +- src/mame/video/excellent_spr.h | 8 +- src/mame/video/exedexes.cpp | 6 +- src/mame/video/exprraid.cpp | 4 +- src/mame/video/f1gp.cpp | 8 +- src/mame/video/fastfred.cpp | 8 +- src/mame/video/fastlane.cpp | 4 +- src/mame/video/fcombat.cpp | 2 +- src/mame/video/finalizr.cpp | 4 +- src/mame/video/firetrap.cpp | 6 +- src/mame/video/firetrk.cpp | 12 +- src/mame/video/fitfight.cpp | 6 +- src/mame/video/flkatck.cpp | 4 +- src/mame/video/flstory.cpp | 6 +- src/mame/video/freekick.cpp | 2 +- src/mame/video/fromanc2.cpp | 40 +- src/mame/video/fromance.cpp | 8 +- src/mame/video/funkybee.cpp | 2 +- src/mame/video/funworld.cpp | 8 +- src/mame/video/funybubl.cpp | 2 +- src/mame/video/fuukifg.cpp | 6 +- src/mame/video/fuukifg.h | 14 +- src/mame/video/fuukifg2.cpp | 6 +- src/mame/video/fuukifg3.cpp | 6 +- src/mame/video/gaelco.cpp | 12 +- src/mame/video/gaelco2.cpp | 8 +- src/mame/video/gaiden.cpp | 18 +- src/mame/video/galaga.cpp | 528 ++++++++-------- src/mame/video/galaxia.cpp | 4 +- src/mame/video/galaxian.cpp | 4 +- src/mame/video/galaxold.cpp | 14 +- src/mame/video/galivan.cpp | 8 +- src/mame/video/gaplus.cpp | 2 +- src/mame/video/gatron.cpp | 2 +- src/mame/video/gberet.cpp | 2 +- src/mame/video/gcpinbal.cpp | 6 +- src/mame/video/ginganin.cpp | 6 +- src/mame/video/gladiatr.cpp | 8 +- src/mame/video/glass.cpp | 4 +- src/mame/video/gng.cpp | 8 +- src/mame/video/goal92.cpp | 6 +- src/mame/video/goindol.cpp | 4 +- src/mame/video/goldstar.cpp | 46 +- src/mame/video/gomoku.cpp | 2 +- src/mame/video/gotcha.cpp | 7 +- src/mame/video/gottlieb.cpp | 4 +- src/mame/video/gotya.cpp | 2 +- src/mame/video/gp9001.cpp | 9 +- src/mame/video/gp9001.h | 5 +- src/mame/video/grchamp.cpp | 8 +- src/mame/video/gsword.cpp | 2 +- src/mame/video/gumbo.cpp | 4 +- src/mame/video/gundealr.cpp | 4 +- src/mame/video/gunsmoke.cpp | 4 +- src/mame/video/gyruss.cpp | 6 +- src/mame/video/hanaawas.cpp | 2 +- src/mame/video/hcastle.cpp | 4 +- src/mame/video/hexion.cpp | 4 +- src/mame/video/higemaru.cpp | 2 +- src/mame/video/himesiki.cpp | 2 +- src/mame/video/hng64.cpp | 24 +- src/mame/video/holeland.cpp | 4 +- src/mame/video/homedata.cpp | 48 +- src/mame/video/homerun.cpp | 2 +- src/mame/video/hyperspt.cpp | 4 +- src/mame/video/igs017_igs031.cpp | 10 +- src/mame/video/igs017_igs031.h | 19 +- src/mame/video/inufuku.cpp | 4 +- src/mame/video/iqblock.cpp | 4 +- src/mame/video/ironhors.cpp | 4 +- src/mame/video/jack.cpp | 4 +- src/mame/video/jackal.cpp | 2 +- src/mame/video/jailbrek.cpp | 2 +- src/mame/video/k001604.cpp | 12 +- src/mame/video/k007342.cpp | 16 +- src/mame/video/k007342.h | 8 +- src/mame/video/k007420.cpp | 3 +- src/mame/video/k007420.h | 8 +- src/mame/video/k037122.cpp | 13 +- src/mame/video/k051316.cpp | 21 +- src/mame/video/k051316.h | 7 +- src/mame/video/k051960.cpp | 3 +- src/mame/video/k051960.h | 7 +- src/mame/video/k052109.cpp | 9 +- src/mame/video/k052109.h | 7 +- src/mame/video/k053244_k053245.cpp | 7 +- src/mame/video/k053244_k053245.h | 9 +- src/mame/video/k053246_k053247_k055673.cpp | 11 +- src/mame/video/k053246_k053247_k055673.h | 8 +- src/mame/video/k054156_k054157_k056832.cpp | 39 +- src/mame/video/k054156_k054157_k056832.h | 7 +- src/mame/video/kaneko_tmap.cpp | 7 +- src/mame/video/kaneko_tmap.h | 5 +- src/mame/video/karnov.cpp | 8 +- src/mame/video/kchamp.cpp | 2 +- src/mame/video/kickgoal.cpp | 12 +- src/mame/video/kingobox.cpp | 8 +- src/mame/video/kncljoe.cpp | 2 +- src/mame/video/konamigx.cpp | 18 +- src/mame/video/kopunch.cpp | 4 +- src/mame/video/ksayakyu.cpp | 4 +- src/mame/video/kyugo.cpp | 4 +- src/mame/video/labyrunr.cpp | 4 +- src/mame/video/ladybug.cpp | 4 +- src/mame/video/ladyfrog.cpp | 2 +- src/mame/video/lasso.cpp | 8 +- src/mame/video/lastduel.cpp | 12 +- src/mame/video/legionna.cpp | 10 +- src/mame/video/leland.cpp | 4 +- src/mame/video/lemmings.cpp | 2 +- src/mame/video/liberate.cpp | 16 +- src/mame/video/lkage.cpp | 6 +- src/mame/video/lockon.cpp | 2 +- src/mame/video/lordgun.cpp | 8 +- src/mame/video/lucky74.cpp | 4 +- src/mame/video/lvcards.cpp | 2 +- src/mame/video/lwings.cpp | 14 +- src/mame/video/m10.cpp | 7 +- src/mame/video/m107.cpp | 2 +- src/mame/video/m52.cpp | 2 +- src/mame/video/m57.cpp | 2 +- src/mame/video/m58.cpp | 2 +- src/mame/video/m62.cpp | 66 +- src/mame/video/m72.cpp | 14 +- src/mame/video/m90.cpp | 8 +- src/mame/video/m92.cpp | 4 +- src/mame/video/macrossp.cpp | 8 +- src/mame/video/madalien.cpp | 23 +- src/mame/video/mainsnk.cpp | 4 +- src/mame/video/mappy.cpp | 6 +- src/mame/video/marineb.cpp | 2 +- src/mame/video/mario.cpp | 2 +- src/mame/video/markham.cpp | 2 +- src/mame/video/mb60553.cpp | 2 +- src/mame/video/mcd212.cpp | 3 +- src/mame/video/mcd212.h | 11 +- src/mame/video/mcr.cpp | 58 +- src/mame/video/mcr3.cpp | 6 +- src/mame/video/mcr68.cpp | 2 +- src/mame/video/meadows.cpp | 2 +- src/mame/video/mermaid.cpp | 4 +- src/mame/video/metlclsh.cpp | 4 +- src/mame/video/metro.cpp | 4 +- src/mame/video/microtan.cpp | 2 +- src/mame/video/mikie.cpp | 2 +- src/mame/video/mikromik.cpp | 2 +- src/mame/video/mitchell.cpp | 2 +- src/mame/video/mjkjidai.cpp | 2 +- src/mame/video/model3.cpp | 16 +- src/mame/video/mosaic.cpp | 4 +- src/mame/video/mrdo.cpp | 4 +- src/mame/video/mrjong.cpp | 2 +- src/mame/video/ms1_tmap.cpp | 32 +- src/mame/video/ms32.cpp | 10 +- src/mame/video/msisaac.cpp | 6 +- src/mame/video/mugsmash.cpp | 4 +- src/mame/video/mustache.cpp | 2 +- src/mame/video/mystston.cpp | 4 +- src/mame/video/mystwarr.cpp | 4 +- src/mame/video/namco_c123tmap.cpp | 18 +- src/mame/video/namco_c169roz.cpp | 16 +- src/mame/video/namcona1.cpp | 10 +- src/mame/video/namcos22.cpp | 2 +- src/mame/video/namcos2_roz.cpp | 2 +- src/mame/video/namcos86.cpp | 10 +- src/mame/video/nemesis.cpp | 4 +- src/mame/video/nes.cpp | 2 +- src/mame/video/newbrain.cpp | 8 +- src/mame/video/news.cpp | 4 +- src/mame/video/ninjakd2.cpp | 20 +- src/mame/video/nmk16.cpp | 28 +- src/mame/video/nmk16spr.cpp | 6 +- src/mame/video/nmk16spr.h | 8 +- src/mame/video/nova2001.cpp | 14 +- src/mame/video/nycaptor.cpp | 2 +- src/mame/video/ohmygod.cpp | 2 +- src/mame/video/ojankohs.cpp | 4 +- src/mame/video/oneshot.cpp | 6 +- src/mame/video/orbit.cpp | 2 +- src/mame/video/orca40c.cpp | 6 +- src/mame/video/pacland.cpp | 4 +- src/mame/video/pacman.cpp | 8 +- src/mame/video/pandoras.cpp | 2 +- src/mame/video/paradise.cpp | 15 +- src/mame/video/pass.cpp | 4 +- src/mame/video/pbaction.cpp | 4 +- src/mame/video/pc080sn.cpp | 8 +- src/mame/video/pc090oj.cpp | 3 + src/mame/video/pc090oj.h | 10 +- src/mame/video/pc1512.cpp | 2 +- src/mame/video/pc_t1t.cpp | 4 +- src/mame/video/pcd.cpp | 6 +- src/mame/video/pgm.cpp | 4 +- src/mame/video/pgm2.cpp | 4 +- src/mame/video/phoenix.cpp | 4 +- src/mame/video/pingpong.cpp | 2 +- src/mame/video/pirates.cpp | 8 +- src/mame/video/pitnrun.cpp | 4 +- src/mame/video/playch10.cpp | 4 +- src/mame/video/playmark.cpp | 38 +- src/mame/video/plygonet.cpp | 4 +- src/mame/video/pokechmp.cpp | 2 +- src/mame/video/polepos.cpp | 4 +- src/mame/video/poolshrk.cpp | 2 +- src/mame/video/pooyan.cpp | 2 +- src/mame/video/popeye.cpp | 2 +- src/mame/video/portrait.cpp | 4 +- src/mame/video/powerins.cpp | 4 +- src/mame/video/prehisle.cpp | 6 +- src/mame/video/psikyo.cpp | 4 +- src/mame/video/psychic5.cpp | 8 +- src/mame/video/punchout.cpp | 20 +- src/mame/video/qix.cpp | 9 +- src/mame/video/quizdna.cpp | 6 +- src/mame/video/quizpani.cpp | 4 +- src/mame/video/raiden.cpp | 12 +- src/mame/video/raiden2.cpp | 8 +- src/mame/video/rallyx.cpp | 16 +- src/mame/video/realbrk.cpp | 6 +- src/mame/video/redclash.cpp | 2 +- src/mame/video/renegade.cpp | 4 +- src/mame/video/retofinv.cpp | 4 +- src/mame/video/rocnrope.cpp | 2 +- src/mame/video/rollrace.cpp | 2 +- src/mame/video/rpunch.cpp | 4 +- src/mame/video/runaway.cpp | 4 +- src/mame/video/rungun.cpp | 4 +- src/mame/video/sauro.cpp | 6 +- src/mame/video/sbasketb.cpp | 2 +- src/mame/video/sbugger.cpp | 4 +- src/mame/video/scotrsht.cpp | 2 +- src/mame/video/sderby.cpp | 6 +- src/mame/video/segag80r.cpp | 8 +- src/mame/video/segaic16.cpp | 24 +- src/mame/video/segaic16.h | 2 +- src/mame/video/segaic24.cpp | 8 +- src/mame/video/segas32.cpp | 2 +- src/mame/video/seibuspi.cpp | 8 +- src/mame/video/seicross.cpp | 2 +- src/mame/video/senjyo.cpp | 14 +- src/mame/video/seta.cpp | 8 +- src/mame/video/seta001.cpp | 3 +- src/mame/video/seta001.h | 51 +- src/mame/video/sf.cpp | 6 +- src/mame/video/sgi_gr1.cpp | 14 +- src/mame/video/shadfrce.cpp | 6 +- src/mame/video/shangkid.cpp | 2 +- src/mame/video/shaolins.cpp | 2 +- src/mame/video/shisen.cpp | 2 +- src/mame/video/shootout.cpp | 6 +- src/mame/video/sidearms.cpp | 6 +- src/mame/video/sidepckt.cpp | 2 +- src/mame/video/silkroad.cpp | 6 +- src/mame/video/skydiver.cpp | 2 +- src/mame/video/skykid.cpp | 4 +- src/mame/video/slapfght.cpp | 6 +- src/mame/video/snk.cpp | 26 +- src/mame/video/snk6502.cpp | 8 +- src/mame/video/snk68.cpp | 4 +- src/mame/video/snk68_spr.cpp | 4 +- src/mame/video/snk68_spr.h | 9 +- src/mame/video/snookr10.cpp | 6 +- src/mame/video/solomon.cpp | 4 +- src/mame/video/sonson.cpp | 2 +- src/mame/video/spbactn.cpp | 6 +- src/mame/video/spdodgeb.cpp | 2 +- src/mame/video/speedbal.cpp | 4 +- src/mame/video/speedspn.cpp | 2 +- src/mame/video/splash.cpp | 4 +- src/mame/video/sprint2.cpp | 2 +- src/mame/video/sprint4.cpp | 2 +- src/mame/video/sprint8.cpp | 36 +- src/mame/video/srumbler.cpp | 8 +- src/mame/video/sslam.cpp | 8 +- src/mame/video/ssozumo.cpp | 13 +- src/mame/video/ssrj.cpp | 6 +- src/mame/video/ssv.cpp | 2 +- src/mame/video/st0020.cpp | 24 +- src/mame/video/stadhero.cpp | 2 +- src/mame/video/starshp1.cpp | 2 +- src/mame/video/stfight_dev.cpp | 10 +- src/mame/video/sub.cpp | 2 +- src/mame/video/suna8.cpp | 6 +- src/mame/video/superqix.cpp | 8 +- src/mame/video/suprloco.cpp | 2 +- src/mame/video/suprnova.cpp | 4 +- src/mame/video/suprridr.cpp | 6 +- src/mame/video/suprslam.cpp | 4 +- src/mame/video/system1.cpp | 2 +- src/mame/video/system16.cpp | 35 +- src/mame/video/tagteam.cpp | 2 +- src/mame/video/tail2nos.cpp | 2 +- src/mame/video/taito_f3.cpp | 31 +- src/mame/video/taito_l.cpp | 6 +- src/mame/video/taitojc.cpp | 2 +- src/mame/video/tank8.cpp | 5 +- src/mame/video/tankbatt.cpp | 18 +- src/mame/video/tankbust.cpp | 4 +- src/mame/video/taotaido.cpp | 2 +- src/mame/video/targeth.cpp | 4 +- src/mame/video/tatsumi.cpp | 20 +- src/mame/video/tbowl.cpp | 6 +- src/mame/video/tc0080vco.cpp | 6 +- src/mame/video/tc0100scn.cpp | 15 +- src/mame/video/tc0100scn.h | 5 +- src/mame/video/tc0180vcu.cpp | 6 +- src/mame/video/tc0280grd.cpp | 2 +- src/mame/video/tc0480scp.cpp | 20 +- src/mame/video/tceptor.cpp | 6 +- src/mame/video/tecmo.cpp | 10 +- src/mame/video/tecmo16.cpp | 18 +- src/mame/video/tecmosys.cpp | 8 +- src/mame/video/tehkanwc.cpp | 4 +- src/mame/video/terracre.cpp | 4 +- src/mame/video/tetrisp2.cpp | 24 +- src/mame/video/thedeep.cpp | 2 +- src/mame/video/thepit.cpp | 4 +- src/mame/video/thoop2.cpp | 4 +- src/mame/video/tiamc1.cpp | 6 +- src/mame/video/tigeroad.cpp | 4 +- src/mame/video/timelimt.cpp | 4 +- src/mame/video/timeplt.cpp | 4 +- src/mame/video/tmap038.cpp | 5 +- src/mame/video/tmap038.h | 5 +- src/mame/video/tmnt.cpp | 4 +- src/mame/video/toaplan1.cpp | 8 +- src/mame/video/toaplan2.cpp | 2 +- src/mame/video/toki.cpp | 6 +- src/mame/video/tp84.cpp | 4 +- src/mame/video/trackfld.cpp | 2 +- src/mame/video/travrusa.cpp | 2 +- src/mame/video/triplhnt.cpp | 2 +- src/mame/video/trucocl.cpp | 2 +- src/mame/video/tryout.cpp | 4 +- src/mame/video/tsamurai.cpp | 6 +- src/mame/video/tumbleb.cpp | 30 +- src/mame/video/tunhunt.cpp | 2 +- src/mame/video/turbo.cpp | 4 +- src/mame/video/twin16.cpp | 6 +- src/mame/video/twincobr.cpp | 20 +- src/mame/video/ultratnk.cpp | 2 +- src/mame/video/unico.cpp | 6 +- src/mame/video/v1050.cpp | 2 +- src/mame/video/vastar.cpp | 6 +- src/mame/video/vball.cpp | 2 +- src/mame/video/videopin.cpp | 2 +- src/mame/video/vs920a.cpp | 2 +- src/mame/video/vsystem_spr.cpp | 4 +- src/mame/video/vsystem_spr.h | 2 +- src/mame/video/vsystem_spr2.cpp | 4 +- src/mame/video/vsystem_spr2.h | 2 +- src/mame/video/vulgus.cpp | 4 +- src/mame/video/warpwarp.cpp | 6 +- src/mame/video/wc90.cpp | 12 +- src/mame/video/wc90b.cpp | 6 +- src/mame/video/wecleman.cpp | 6 +- src/mame/video/welltris.cpp | 2 +- src/mame/video/wgp.cpp | 6 +- src/mame/video/williams.cpp | 2 +- src/mame/video/wrally.cpp | 4 +- src/mame/video/wswan.cpp | 10 +- src/mame/video/wswan.h | 21 +- src/mame/video/wwfsstar.cpp | 4 +- src/mame/video/x68k.cpp | 8 +- src/mame/video/xain.cpp | 6 +- src/mame/video/xevious.cpp | 4 +- src/mame/video/xorworld.cpp | 2 +- src/mame/video/xxmissio.cpp | 4 +- src/mame/video/xyonix.cpp | 2 +- src/mame/video/ygv608.cpp | 24 +- src/mame/video/yiear.cpp | 2 +- src/mame/video/yunsun16.cpp | 4 +- src/mame/video/yunsung8.cpp | 4 +- src/mame/video/zac2650.cpp | 2 +- src/mame/video/zaccaria.cpp | 2 +- src/mame/video/zaxxon.cpp | 18 +- src/mame/video/zerozone.cpp | 2 +- 1752 files changed, 9073 insertions(+), 9692 deletions(-) diff --git a/docs/source/initialsetup/compilingmame.rst b/docs/source/initialsetup/compilingmame.rst index 47d6d9f6da5..49c717372f1 100644 --- a/docs/source/initialsetup/compilingmame.rst +++ b/docs/source/initialsetup/compilingmame.rst @@ -8,19 +8,42 @@ Compiling MAME All Platforms ------------- -* Whenever you are changing build parameters, (such as switching between a SDL-based build and a native Windows renderer one, or adding tools to the compile list) you need to run a **make REGENIE=1** to allow the settings to be regenerated. Failure to do this will cause you very difficult to troubleshoot problems. - -* If you want to add various additional tools to the compile, such as *CHDMAN*, add a **TOOLS=1** to your make statement, like **make REGENIE=1 TOOLS=1** - -* You can do driver specific builds by using *SOURCES=* in your make statement. For instance, building Pac-Man by itself would be **make SOURCES=src/mame/drivers/pacman.cpp REGENIE=1** including the necessary *REGENIE* for rebuilding the settings. - -* Speeding up the compilation can be done by using more cores from your CPU. This is done with the **-j** parameter. *Note: the maximum number you should use is the number of cores your CPU has, plus one. No higher than that will speed up the compilation, and may in fact slow it down.* For instance, **make -j5** on a quad-core CPU will provide optimal speed. - -* Debugging information can be added to a compile using *SYMBOLS=1* though most users will not want or need to use this. +* To compile MAME, you need a C++14 compiler and runtime library. We + support building with GCC version 7.2 or later and clang version 5 or + later. MAME should run with GNU libstdc++ version 5.1 or later. + +* Whenever you are changing build parameters, (such as switching between + a SDL-based build and a native Windows renderer one, or adding tools + to the compile list) you need to run a **make REGENIE=1** to allow the + settings to be regenerated. Failure to do this will cause you very + difficult to troubleshoot problems. + +* If you want to add various additional tools to the compile, such as + *CHDMAN*, add a **TOOLS=1** to your make statement, like + **make REGENIE=1 TOOLS=1** + +* You can do driver specific builds by using *SOURCES=* in your + make statement. For instance, building Pac-Man by itself would be + **make SOURCES=src/mame/drivers/pacman.cpp REGENIE=1** including the + necessary *REGENIE* for rebuilding the settings. + +* Speeding up the compilation can be done by using more cores from your + CPU. This is done with the **-j** parameter. *Note: a good number to + start with is the total number of CPU cores in your system plus one. + An excessive number of concurrent jobs may increase compilation time. + The optimal number depends on many factors, including number of CPU + cores, available RAM, disk and filesystem performance, and memory + bandwidh.* For instance, **make -j5** is a good starting point on a + system with a quad-core CPU. + +* Debugging information can be added to a compile using *SYMBOLS=1* + though most users will not want or need to use this. This increases + compile time and disk space used. Putting all of these together, we get a couple of examples: -Rebuilding MAME for just the Pac-Man driver, with tools, on a quad-core (e.g. i5 or i7) machine: +Rebuilding MAME for just the Pac-Man driver, with tools, on a quad-core +(e.g. i5 or i7) machine: | **make SOURCES=src/mame/drivers/pacman.cpp TOOLS=1 REGENIE=1 -j5** | @@ -421,9 +444,6 @@ Known Issues Issues with specific compiler versions ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -* GCC 5 for Linux reports spurious errors on encountering deprecation warnings. - Adding **DEPRECATED=0** to your build options works around this by disabling - deprecation warnings. * MinGW GCC 7 for Windows i386 produces spurious out-of-bounds access warnings. Adding **NOWERROR=1** to your build options works around this by not treating warnings as errors. @@ -514,9 +534,9 @@ want to build MAME on a Linux distribution that still uses a version of GNU libstdC++ that predates C++14 support. To use an alternate GCC installation to, build MAME, set the C and C++ compilers to the full paths to the **gcc** and **g++** commands, and add the library path to the run-time search path. If you -installed GCC in /opt/local/gcc63, you might use a command like this: +installed GCC in /opt/local/gcc72, you might use a command like this: -**make OVERRIDE_CC=/opt/local/gcc63/bin/gcc OVERRIDE_CXX=/opt/local/gcc63/bin/g++ ARCHOPTS=-Wl,-R,/opt/local/gcc63/lib64** +**make OVERRIDE_CC=/opt/local/gcc72/bin/gcc OVERRIDE_CXX=/opt/local/gcc72/bin/g++ ARCHOPTS=-Wl,-R,/opt/local/gcc72/lib64** You can add these options to a prefix makefile if you plan to use this configuration regularly. diff --git a/scripts/genie.lua b/scripts/genie.lua index b29e02f9d90..6aa28173b1d 100644 --- a/scripts/genie.lua +++ b/scripts/genie.lua @@ -93,16 +93,10 @@ end function addprojectflags() local version = str_to_version(_OPTIONS["gcc_version"]) if _OPTIONS["gcc"]~=nil and string.find(_OPTIONS["gcc"], "gcc") then - if version >= 50100 then - buildoptions_cpp { - "-Wsuggest-override", - } - end - if version >= 60000 then - buildoptions_cpp { - "-flifetime-dse=1", - } - end + buildoptions_cpp { + "-Wsuggest-override", + "-flifetime-dse=1", + } end end diff --git a/src/devices/bus/a1bus/a1cassette.cpp b/src/devices/bus/a1bus/a1cassette.cpp index 13140382f48..fc470ef7f94 100644 --- a/src/devices/bus/a1bus/a1cassette.cpp +++ b/src/devices/bus/a1bus/a1cassette.cpp @@ -72,7 +72,7 @@ a1bus_cassette_device::a1bus_cassette_device(const machine_config &mconfig, devi void a1bus_cassette_device::device_start() { - install_device(0xc000, 0xc0ff, read8_delegate(FUNC(a1bus_cassette_device::cassette_r), this), write8_delegate(FUNC(a1bus_cassette_device::cassette_w), this)); + install_device(0xc000, 0xc0ff, read8_delegate(*this, FUNC(a1bus_cassette_device::cassette_r)), write8_delegate(*this, FUNC(a1bus_cassette_device::cassette_w))); install_bank(0xc100, 0xc1ff, "bank_a1cas", &m_rom[0]); save_item(NAME(m_cassette_output_flipflop)); diff --git a/src/devices/bus/a1bus/a1cffa.cpp b/src/devices/bus/a1bus/a1cffa.cpp index 105abba1eff..8c68e818531 100644 --- a/src/devices/bus/a1bus/a1cffa.cpp +++ b/src/devices/bus/a1bus/a1cffa.cpp @@ -68,7 +68,7 @@ a1bus_cffa_device::a1bus_cffa_device(const machine_config &mconfig, device_type void a1bus_cffa_device::device_start() { - install_device(0xafe0, 0xafff, read8_delegate(FUNC(a1bus_cffa_device::cffa_r), this), write8_delegate(FUNC(a1bus_cffa_device::cffa_w), this)); + install_device(0xafe0, 0xafff, read8_delegate(*this, FUNC(a1bus_cffa_device::cffa_r)), write8_delegate(*this, FUNC(a1bus_cffa_device::cffa_w))); install_bank(0x9000, 0xafdf, "bank_cffa1", &m_rom[0]); save_item(NAME(m_lastdata)); diff --git a/src/devices/bus/a2bus/a2ultraterm.cpp b/src/devices/bus/a2bus/a2ultraterm.cpp index fd8fb2a895a..7b6caa40624 100644 --- a/src/devices/bus/a2bus/a2ultraterm.cpp +++ b/src/devices/bus/a2bus/a2ultraterm.cpp @@ -114,7 +114,7 @@ void a2bus_videx160_device::device_add_mconfig(machine_config &config) m_crtc->set_screen(ULTRATERM_SCREEN_NAME); m_crtc->set_show_border_area(false); m_crtc->set_char_width(8); - m_crtc->set_update_row_callback(FUNC(a2bus_videx160_device::crtc_update_row), this); + m_crtc->set_update_row_callback(FUNC(a2bus_videx160_device::crtc_update_row)); m_crtc->out_vsync_callback().set(FUNC(a2bus_videx160_device::vsync_changed)); } diff --git a/src/devices/bus/a2bus/a2videoterm.cpp b/src/devices/bus/a2bus/a2videoterm.cpp index 64d614bc60c..b0fda659783 100644 --- a/src/devices/bus/a2bus/a2videoterm.cpp +++ b/src/devices/bus/a2bus/a2videoterm.cpp @@ -120,7 +120,7 @@ void a2bus_videx80_device::device_add_mconfig(machine_config &config) m_crtc->set_screen(VIDEOTERM_SCREEN_NAME); m_crtc->set_show_border_area(false); m_crtc->set_char_width(9); - m_crtc->set_update_row_callback(FUNC(a2bus_videx80_device::crtc_update_row), this); + m_crtc->set_update_row_callback(FUNC(a2bus_videx80_device::crtc_update_row)); } void a2bus_ap16_device::device_add_mconfig(machine_config &config) diff --git a/src/devices/bus/acorn/atom/discpack.cpp b/src/devices/bus/acorn/atom/discpack.cpp index fd33ec293a6..dd8d3021301 100644 --- a/src/devices/bus/acorn/atom/discpack.cpp +++ b/src/devices/bus/acorn/atom/discpack.cpp @@ -84,7 +84,7 @@ void atom_discpack_device::device_start() address_space &space = m_bus->memspace(); space.install_device(0x0a00, 0x0a03, *m_fdc, &i8271_device::map); - space.install_readwrite_handler(0x0a04, 0x0a04, 0, 0x1f8, 0, read8smo_delegate(FUNC(i8271_device::data_r), m_fdc.target()), write8smo_delegate(FUNC(i8271_device::data_w), m_fdc.target())); + space.install_readwrite_handler(0x0a04, 0x0a04, 0, 0x1f8, 0, read8smo_delegate(*m_fdc, FUNC(i8271_device::data_r)), write8smo_delegate(*m_fdc, FUNC(i8271_device::data_w))); space.install_ram(0x2000, 0x23ff); space.install_ram(0x2400, 0x27ff); space.install_ram(0x3c00, 0x3fff); diff --git a/src/devices/bus/acorn/atom/econet.cpp b/src/devices/bus/acorn/atom/econet.cpp index 5051fd0e8e7..f615313bdad 100644 --- a/src/devices/bus/acorn/atom/econet.cpp +++ b/src/devices/bus/acorn/atom/econet.cpp @@ -63,8 +63,8 @@ void atom_econet_device::device_start() { address_space &space = m_bus->memspace(); - space.install_readwrite_handler(0xb400, 0xb403, read8sm_delegate(FUNC(mc6854_device::read), m_adlc.target()), write8sm_delegate(FUNC(mc6854_device::write), m_adlc.target())); - space.install_read_handler(0xb404, 0xb404, read8_delegate(FUNC(atom_econet_device::statid_r), this)); + space.install_readwrite_handler(0xb400, 0xb403, read8sm_delegate(*m_adlc, FUNC(mc6854_device::read)), write8sm_delegate(*m_adlc, FUNC(mc6854_device::write))); + space.install_read_handler(0xb404, 0xb404, read8_delegate(*this, FUNC(atom_econet_device::statid_r))); } //************************************************************************** diff --git a/src/devices/bus/acorn/atom/sid.cpp b/src/devices/bus/acorn/atom/sid.cpp index 8b5cd738cfe..4b0e1f7ff4d 100644 --- a/src/devices/bus/acorn/atom/sid.cpp +++ b/src/devices/bus/acorn/atom/sid.cpp @@ -55,5 +55,5 @@ void atom_sid_device::device_start() { address_space &space = m_bus->memspace(); - space.install_readwrite_handler(0xbdc0, 0xbddf, read8sm_delegate(FUNC(mos6581_device::read), m_sid.target()), write8sm_delegate(FUNC(mos6581_device::write), m_sid.target())); + space.install_readwrite_handler(0xbdc0, 0xbddf, read8sm_delegate(*m_sid, FUNC(mos6581_device::read)), write8sm_delegate(*m_sid, FUNC(mos6581_device::write))); } diff --git a/src/devices/bus/acorn/cms/4080term.cpp b/src/devices/bus/acorn/cms/4080term.cpp index 629b4915fdd..f5ae26633e5 100644 --- a/src/devices/bus/acorn/cms/4080term.cpp +++ b/src/devices/bus/acorn/cms/4080term.cpp @@ -147,9 +147,9 @@ void cms_4080term_device::device_start() { address_space &space = m_bus->memspace(); - space.install_readwrite_handler(0xfd20, 0xfd2f, read8sm_delegate(FUNC(ef9345_device::data_r), m_ef9345.target()), write8sm_delegate(FUNC(ef9345_device::data_w), m_ef9345.target())); + space.install_readwrite_handler(0xfd20, 0xfd2f, read8sm_delegate(*m_ef9345, FUNC(ef9345_device::data_r)), write8sm_delegate(*m_ef9345, FUNC(ef9345_device::data_w))); space.install_device(0xfd30, 0xfd3f, *m_via, &via6522_device::map); - space.install_readwrite_handler(0xfd40, 0xfd4f, read8sm_delegate(FUNC(mos6551_device::read), m_acia.target()), write8sm_delegate(FUNC(mos6551_device::write), m_acia.target())); + space.install_readwrite_handler(0xfd40, 0xfd4f, read8sm_delegate(*m_acia, FUNC(mos6551_device::read)), write8sm_delegate(*m_acia, FUNC(mos6551_device::write))); uint8_t *FNT = memregion("ef9345")->base(); uint16_t dest = 0x2000; diff --git a/src/devices/bus/acorn/cms/fdc.cpp b/src/devices/bus/acorn/cms/fdc.cpp index 833fa2b09a4..1d2c81dabf5 100644 --- a/src/devices/bus/acorn/cms/fdc.cpp +++ b/src/devices/bus/acorn/cms/fdc.cpp @@ -75,8 +75,8 @@ void cms_fdc_device::device_start() { address_space &space = m_bus->memspace(); - space.install_readwrite_handler(0xfc50, 0xfc5f, read8_delegate(FUNC(cms_fdc_device::wd1770_state_r), this), write8_delegate(FUNC(cms_fdc_device::wd1770_control_w), this)); - space.install_readwrite_handler(0xfc40, 0xfc4f, read8sm_delegate(FUNC(wd1770_device::read), m_fdc.target()), write8sm_delegate(FUNC(wd1770_device::write), m_fdc.target())); + space.install_readwrite_handler(0xfc50, 0xfc5f, read8_delegate(*this, FUNC(cms_fdc_device::wd1770_state_r)), write8_delegate(*this, FUNC(cms_fdc_device::wd1770_control_w))); + space.install_readwrite_handler(0xfc40, 0xfc4f, read8sm_delegate(*m_fdc, FUNC(wd1770_device::read)), write8sm_delegate(*m_fdc, FUNC(wd1770_device::write))); } diff --git a/src/devices/bus/acorn/cms/hires.cpp b/src/devices/bus/acorn/cms/hires.cpp index 9e6e169737b..f0c23ef39b8 100644 --- a/src/devices/bus/acorn/cms/hires.cpp +++ b/src/devices/bus/acorn/cms/hires.cpp @@ -71,8 +71,8 @@ void cms_hires_device::device_start() { address_space &space = m_bus->memspace(); - space.install_readwrite_handler(0xfc10, 0xfc1f, read8sm_delegate(FUNC(ef9365_device::data_r), m_gdp.target()), write8sm_delegate(FUNC(ef9365_device::data_w), m_gdp.target())); - space.install_write_handler(0xfc20, 0xfc2f, write8_delegate(FUNC(cms_hires_device::colour_reg_w), this)); + space.install_readwrite_handler(0xfc10, 0xfc1f, read8sm_delegate(*m_gdp, FUNC(ef9365_device::data_r)), write8sm_delegate(*m_gdp, FUNC(ef9365_device::data_w))); + space.install_write_handler(0xfc20, 0xfc2f, write8_delegate(*this, FUNC(cms_hires_device::colour_reg_w))); save_item(NAME(m_flash_state)); } diff --git a/src/devices/bus/acorn/system/8k.cpp b/src/devices/bus/acorn/system/8k.cpp index b8635920aab..97939b7362f 100644 --- a/src/devices/bus/acorn/system/8k.cpp +++ b/src/devices/bus/acorn/system/8k.cpp @@ -70,8 +70,8 @@ ioport_constructor acorn_8k_device::device_input_ports() const void acorn_8k_device::device_add_mconfig(machine_config &config) { /* rom sockets */ - GENERIC_SOCKET(config, "rom0", generic_plain_slot, "acrnsys_rom", "bin,rom").set_device_load(FUNC(acorn_8k_device::rom0_load), this); // IC17 - GENERIC_SOCKET(config, "rom1", generic_plain_slot, "acrnsys_rom", "bin,rom").set_device_load(FUNC(acorn_8k_device::rom1_load), this); // IC18 + GENERIC_SOCKET(config, "rom0", generic_plain_slot, "acrnsys_rom", "bin,rom").set_device_load(FUNC(acorn_8k_device::rom0_load)); // IC17 + GENERIC_SOCKET(config, "rom1", generic_plain_slot, "acrnsys_rom", "bin,rom").set_device_load(FUNC(acorn_8k_device::rom1_load)); // IC18 } diff --git a/src/devices/bus/acorn/system/econet.cpp b/src/devices/bus/acorn/system/econet.cpp index 261fb4261a1..f617d0266ae 100644 --- a/src/devices/bus/acorn/system/econet.cpp +++ b/src/devices/bus/acorn/system/econet.cpp @@ -70,8 +70,8 @@ void acorn_econet_device::device_reset() { address_space &space = m_bus->memspace(); - space.install_readwrite_handler(0x1940, 0x1943, read8sm_delegate(FUNC(mc6854_device::read), m_adlc.target()), write8sm_delegate(FUNC(mc6854_device::write), m_adlc.target())); - space.install_read_handler(0x1944, 0x1944, read8_delegate(FUNC(acorn_econet_device::statid_r), this)); + space.install_readwrite_handler(0x1940, 0x1943, read8sm_delegate(*m_adlc, FUNC(mc6854_device::read)), write8sm_delegate(*m_adlc, FUNC(mc6854_device::write))); + space.install_read_handler(0x1944, 0x1944, read8_delegate(*this, FUNC(acorn_econet_device::statid_r))); } //************************************************************************** diff --git a/src/devices/bus/acorn/system/fdc.cpp b/src/devices/bus/acorn/system/fdc.cpp index 179b914d3cf..185a10da7d7 100644 --- a/src/devices/bus/acorn/system/fdc.cpp +++ b/src/devices/bus/acorn/system/fdc.cpp @@ -85,7 +85,7 @@ void acorn_fdc_device::device_reset() address_space &space = m_bus->memspace(); space.install_device(0x0a00, 0x0a03, *m_fdc, &i8271_device::map); - space.install_readwrite_handler(0x0a04, 0x0a04, 0, 0x1f8, 0, read8smo_delegate(FUNC(i8271_device::data_r), m_fdc.target()), write8smo_delegate(FUNC(i8271_device::data_w), m_fdc.target())); + space.install_readwrite_handler(0x0a04, 0x0a04, 0, 0x1f8, 0, read8smo_delegate(*m_fdc, FUNC(i8271_device::data_r)), write8smo_delegate(*m_fdc, FUNC(i8271_device::data_w))); } diff --git a/src/devices/bus/acorn/system/vdu40.cpp b/src/devices/bus/acorn/system/vdu40.cpp index 916d7309dc3..dcee8cd9b53 100644 --- a/src/devices/bus/acorn/system/vdu40.cpp +++ b/src/devices/bus/acorn/system/vdu40.cpp @@ -38,7 +38,7 @@ void acorn_vdu40_device::device_add_mconfig(machine_config &config) m_crtc->set_show_border_area(false); m_crtc->set_char_width(12); m_crtc->out_vsync_callback().set(FUNC(acorn_vdu40_device::vsync_changed)); - m_crtc->set_update_row_callback(FUNC(acorn_vdu40_device::crtc_update_row), this); + m_crtc->set_update_row_callback(FUNC(acorn_vdu40_device::crtc_update_row)); SAA5050(config, m_trom, 12_MHz_XTAL / 2); m_trom->set_screen_size(40, 25, 40); @@ -82,8 +82,8 @@ void acorn_vdu40_device::device_reset() address_space &space = m_bus->memspace(); space.install_ram(0x0400, 0x07ff, m_videoram.get()); - space.install_readwrite_handler(0x0800, 0x0800, read8smo_delegate(FUNC(mc6845_device::status_r), m_crtc.target()), write8smo_delegate(FUNC(mc6845_device::address_w), m_crtc.target())); - space.install_readwrite_handler(0x0801, 0x0801, read8smo_delegate(FUNC(mc6845_device::register_r), m_crtc.target()), write8smo_delegate(FUNC(mc6845_device::register_w), m_crtc.target())); + space.install_readwrite_handler(0x0800, 0x0800, read8smo_delegate(*m_crtc, FUNC(mc6845_device::status_r)), write8smo_delegate(*m_crtc, FUNC(mc6845_device::address_w))); + space.install_readwrite_handler(0x0801, 0x0801, read8smo_delegate(*m_crtc, FUNC(mc6845_device::register_r)), write8smo_delegate(*m_crtc, FUNC(mc6845_device::register_w))); } diff --git a/src/devices/bus/acorn/system/vdu80.cpp b/src/devices/bus/acorn/system/vdu80.cpp index 702041c3cf1..5cf995d8d3c 100644 --- a/src/devices/bus/acorn/system/vdu80.cpp +++ b/src/devices/bus/acorn/system/vdu80.cpp @@ -101,7 +101,7 @@ void acorn_vdu80_device::device_add_mconfig(machine_config &config) m_crtc->set_screen("screen"); m_crtc->set_show_border_area(false); m_crtc->set_char_width(6); - m_crtc->set_update_row_callback(FUNC(acorn_vdu80_device::crtc_update_row), this); + m_crtc->set_update_row_callback(FUNC(acorn_vdu80_device::crtc_update_row)); } @@ -152,15 +152,15 @@ void acorn_vdu80_device::device_reset() { space.install_ram(0xf000, 0x0f7ff, m_videoram.get()); - space.install_readwrite_handler(0xe840, 0xe840, 0, 0x3f, 0, read8smo_delegate(FUNC(mc6845_device::status_r), m_crtc.target()), write8smo_delegate(FUNC(mc6845_device::address_w), m_crtc.target())); - space.install_readwrite_handler(0xe841, 0xe841, 0, 0x3e, 0, read8smo_delegate(FUNC(mc6845_device::register_r), m_crtc.target()), write8smo_delegate(FUNC(mc6845_device::register_w), m_crtc.target())); + space.install_readwrite_handler(0xe840, 0xe840, 0, 0x3f, 0, read8smo_delegate(*m_crtc, FUNC(mc6845_device::status_r)), write8smo_delegate(*m_crtc, FUNC(mc6845_device::address_w))); + space.install_readwrite_handler(0xe841, 0xe841, 0, 0x3e, 0, read8smo_delegate(*m_crtc, FUNC(mc6845_device::register_r)), write8smo_delegate(*m_crtc, FUNC(mc6845_device::register_w))); } else { space.install_ram(0x1000, 0x017ff, m_videoram.get()); - space.install_readwrite_handler(0x1840, 0x1840, 0, 0x3f, 0, read8smo_delegate(FUNC(mc6845_device::status_r), m_crtc.target()), write8smo_delegate(FUNC(mc6845_device::address_w), m_crtc.target())); - space.install_readwrite_handler(0x1841, 0x1841, 0, 0x3e, 0, read8smo_delegate(FUNC(mc6845_device::register_r), m_crtc.target()), write8smo_delegate(FUNC(mc6845_device::register_w), m_crtc.target())); + space.install_readwrite_handler(0x1840, 0x1840, 0, 0x3f, 0, read8smo_delegate(*m_crtc, FUNC(mc6845_device::status_r)), write8smo_delegate(*m_crtc, FUNC(mc6845_device::address_w))); + space.install_readwrite_handler(0x1841, 0x1841, 0, 0x3e, 0, read8smo_delegate(*m_crtc, FUNC(mc6845_device::register_r)), write8smo_delegate(*m_crtc, FUNC(mc6845_device::register_w))); } } diff --git a/src/devices/bus/acorn/system/vib.cpp b/src/devices/bus/acorn/system/vib.cpp index a204cbb038c..e4ca10e6146 100644 --- a/src/devices/bus/acorn/system/vib.cpp +++ b/src/devices/bus/acorn/system/vib.cpp @@ -113,8 +113,8 @@ void acorn_vib_device::device_reset() space.install_device(0x0c00, 0x0c0f, *m_via6522, &via6522_device::map); space.install_device(0x0c10, 0x0c1f, *m_via6522, &via6522_device::map); - space.install_readwrite_handler(0x0c20, 0x0c21, 0, 0x1e, 0, read8sm_delegate(FUNC(acia6850_device::read), m_acia.target()), write8sm_delegate(FUNC(acia6850_device::write), m_acia.target())); - space.install_readwrite_handler(0x0c40, 0x0c43, 0, 0x1c, 0, read8sm_delegate(FUNC(i8255_device::read), m_ppi8255.target()), write8sm_delegate(FUNC(i8255_device::write), m_ppi8255.target())); + space.install_readwrite_handler(0x0c20, 0x0c21, 0, 0x1e, 0, read8sm_delegate(*m_acia, FUNC(acia6850_device::read)), write8sm_delegate(*m_acia, FUNC(acia6850_device::write))); + space.install_readwrite_handler(0x0c40, 0x0c43, 0, 0x1c, 0, read8sm_delegate(*m_ppi8255, FUNC(i8255_device::read)), write8sm_delegate(*m_ppi8255, FUNC(i8255_device::write))); m_mc14411->timer_disable_all(); m_mc14411->timer_enable(mc14411_device::timer_id(m_txc->read()), true); diff --git a/src/devices/bus/amiga/zorro/a2052.cpp b/src/devices/bus/amiga/zorro/a2052.cpp index 515c568c019..4aa54e52bbc 100644 --- a/src/devices/bus/amiga/zorro/a2052.cpp +++ b/src/devices/bus/amiga/zorro/a2052.cpp @@ -129,7 +129,7 @@ WRITE_LINE_MEMBER( a2052_device::cfgin_w ) // install autoconfig handler m_slot->space().install_readwrite_handler(0xe80000, 0xe8007f, - read16_delegate(FUNC(amiga_autoconfig::autoconfig_read), static_cast(this)), - write16_delegate(FUNC(amiga_autoconfig::autoconfig_write), static_cast(this)), 0xffff); + read16_delegate(*this, FUNC(amiga_autoconfig::autoconfig_read)), + write16_delegate(*this, FUNC(amiga_autoconfig::autoconfig_write)), 0xffff); } } diff --git a/src/devices/bus/amiga/zorro/a2058.cpp b/src/devices/bus/amiga/zorro/a2058.cpp index e8d6e8c28fb..d0ecee24526 100644 --- a/src/devices/bus/amiga/zorro/a2058.cpp +++ b/src/devices/bus/amiga/zorro/a2058.cpp @@ -141,7 +141,7 @@ WRITE_LINE_MEMBER( a2058_device::cfgin_w ) // install autoconfig handler m_slot->space().install_readwrite_handler(0xe80000, 0xe8007f, - read16_delegate(FUNC(amiga_autoconfig::autoconfig_read), static_cast(this)), - write16_delegate(FUNC(amiga_autoconfig::autoconfig_write), static_cast(this)), 0xffff); + read16_delegate(*this, FUNC(amiga_autoconfig::autoconfig_read)), + write16_delegate(*this, FUNC(amiga_autoconfig::autoconfig_write)), 0xffff); } } diff --git a/src/devices/bus/amiga/zorro/a2065.cpp b/src/devices/bus/amiga/zorro/a2065.cpp index b1b747594cc..392601e1421 100644 --- a/src/devices/bus/amiga/zorro/a2065.cpp +++ b/src/devices/bus/amiga/zorro/a2065.cpp @@ -85,18 +85,18 @@ void a2065_device::autoconfig_base_address(offs_t address) // install autoconfig handler to new location m_slot->space().install_readwrite_handler(address, address + 0x7f, - read16_delegate(FUNC(amiga_autoconfig::autoconfig_read), static_cast(this)), - write16_delegate(FUNC(amiga_autoconfig::autoconfig_write), static_cast(this)), 0xffff); + read16_delegate(*this, FUNC(amiga_autoconfig::autoconfig_read)), + write16_delegate(*this, FUNC(amiga_autoconfig::autoconfig_write)), 0xffff); // install access to lance registers m_slot->space().install_readwrite_handler(address + 0x4000, address + 0x4003, - read16_delegate(FUNC(am7990_device::regs_r), &(*m_lance)), - write16_delegate(FUNC(am7990_device::regs_w), &(*m_lance)), 0xffff); + read16_delegate(*m_lance, FUNC(am7990_device::regs_r)), + write16_delegate(*m_lance, FUNC(am7990_device::regs_w)), 0xffff); // install access to onboard ram (32k) m_slot->space().install_readwrite_handler(address + 0x8000, address + 0x8000 + 0x7fff, - read16_delegate(FUNC(a2065_device::host_ram_r), this), - write16_delegate(FUNC(a2065_device::host_ram_w), this), 0xffff); + read16_delegate(*this, FUNC(a2065_device::host_ram_r)), + write16_delegate(*this, FUNC(a2065_device::host_ram_w)), 0xffff); // we're done m_slot->cfgout_w(0); @@ -124,8 +124,8 @@ WRITE_LINE_MEMBER( a2065_device::cfgin_w ) // install autoconfig handler m_slot->space().install_readwrite_handler(0xe80000, 0xe8007f, - read16_delegate(FUNC(amiga_autoconfig::autoconfig_read), static_cast(this)), - write16_delegate(FUNC(amiga_autoconfig::autoconfig_write), static_cast(this)), 0xffff); + read16_delegate(*this, FUNC(amiga_autoconfig::autoconfig_read)), + write16_delegate(*this, FUNC(amiga_autoconfig::autoconfig_write)), 0xffff); } } diff --git a/src/devices/bus/amiga/zorro/a2232.cpp b/src/devices/bus/amiga/zorro/a2232.cpp index 24020d7a25d..8afa7e245f3 100644 --- a/src/devices/bus/amiga/zorro/a2232.cpp +++ b/src/devices/bus/amiga/zorro/a2232.cpp @@ -191,24 +191,24 @@ void a2232_device::autoconfig_base_address(offs_t address) m_slot->space().unmap_readwrite(0xe80000, 0xe8007f); m_slot->space().install_readwrite_handler(address, address + 0x3fff, - read16_delegate(FUNC(a2232_device::shared_ram_r), this), - write16_delegate(FUNC(a2232_device::shared_ram_w), this), 0xffff); + read16_delegate(*this, FUNC(a2232_device::shared_ram_r)), + write16_delegate(*this, FUNC(a2232_device::shared_ram_w)), 0xffff); m_slot->space().install_readwrite_handler(address + 0x4000, address + 0x4001, - read16_delegate(FUNC(a2232_device::irq_ack_r), this), - write16_delegate(FUNC(a2232_device::irq_ack_w), this), 0xffff); + read16_delegate(*this, FUNC(a2232_device::irq_ack_r)), + write16_delegate(*this, FUNC(a2232_device::irq_ack_w)), 0xffff); m_slot->space().install_readwrite_handler(address + 0x8000, address + 0x8001, - read16_delegate(FUNC(a2232_device::reset_low_r), this), - write16_delegate(FUNC(a2232_device::reset_low_w), this), 0xffff); + read16_delegate(*this, FUNC(a2232_device::reset_low_r)), + write16_delegate(*this, FUNC(a2232_device::reset_low_w)), 0xffff); m_slot->space().install_readwrite_handler(address + 0xa000, address + 0xa001, - read16_delegate(FUNC(a2232_device::irq_r), this), - write16_delegate(FUNC(a2232_device::irq_w), this), 0xffff); + read16_delegate(*this, FUNC(a2232_device::irq_r)), + write16_delegate(*this, FUNC(a2232_device::irq_w)), 0xffff); m_slot->space().install_readwrite_handler(address + 0xc000, address + 0xc001, - read16_delegate(FUNC(a2232_device::reset_high_r), this), - write16_delegate(FUNC(a2232_device::reset_high_w), this), 0xffff); + read16_delegate(*this, FUNC(a2232_device::reset_high_r)), + write16_delegate(*this, FUNC(a2232_device::reset_high_w)), 0xffff); // we're done m_slot->cfgout_w(0); @@ -237,8 +237,8 @@ WRITE_LINE_MEMBER( a2232_device::cfgin_w ) // install autoconfig handler m_slot->space().install_readwrite_handler(0xe80000, 0xe8007f, - read16_delegate(FUNC(amiga_autoconfig::autoconfig_read), static_cast(this)), - write16_delegate(FUNC(amiga_autoconfig::autoconfig_write), static_cast(this)), 0xffff); + read16_delegate(*this, FUNC(amiga_autoconfig::autoconfig_read)), + write16_delegate(*this, FUNC(amiga_autoconfig::autoconfig_write)), 0xffff); } } diff --git a/src/devices/bus/amiga/zorro/buddha.cpp b/src/devices/bus/amiga/zorro/buddha.cpp index 376e2824660..ddb3ba3344c 100644 --- a/src/devices/bus/amiga/zorro/buddha.cpp +++ b/src/devices/bus/amiga/zorro/buddha.cpp @@ -150,8 +150,8 @@ void buddha_device::autoconfig_base_address(offs_t address) // install autoconfig handler to new location m_slot->space().install_readwrite_handler(address, address + 0x7f, - read16_delegate(FUNC(amiga_autoconfig::autoconfig_read), static_cast(this)), - write16_delegate(FUNC(amiga_autoconfig::autoconfig_write), static_cast(this)), 0xffff); + read16_delegate(*this, FUNC(amiga_autoconfig::autoconfig_read)), + write16_delegate(*this, FUNC(amiga_autoconfig::autoconfig_write)), 0xffff); // install access to the rom space m_slot->space().install_rom(address + 0x1000, address + 0xffff, memregion("bootrom")->base() + 0x1000); @@ -182,8 +182,8 @@ WRITE_LINE_MEMBER( buddha_device::cfgin_w ) // install autoconfig handler m_slot->space().install_readwrite_handler(0xe80000, 0xe8007f, - read16_delegate(FUNC(amiga_autoconfig::autoconfig_read), static_cast(this)), - write16_delegate(FUNC(amiga_autoconfig::autoconfig_write), static_cast(this)), 0xffff); + read16_delegate(*this, FUNC(amiga_autoconfig::autoconfig_read)), + write16_delegate(*this, FUNC(amiga_autoconfig::autoconfig_write)), 0xffff); } } diff --git a/src/devices/bus/bbc/exp/mertec.cpp b/src/devices/bus/bbc/exp/mertec.cpp index ab9dc3c2f6e..11b3c9dccb9 100644 --- a/src/devices/bus/bbc/exp/mertec.cpp +++ b/src/devices/bus/bbc/exp/mertec.cpp @@ -53,8 +53,8 @@ void bbc_mertec_device::device_add_mconfig(machine_config &config) /* adc */ UPD7002(config, m_upd7002, DERIVED_CLOCK(1, 8)); - m_upd7002->set_get_analogue_callback(FUNC(bbc_mertec_device::get_analogue_input), this); - m_upd7002->set_eoc_callback(FUNC(bbc_mertec_device::upd7002_eoc), this); + m_upd7002->set_get_analogue_callback(FUNC(bbc_mertec_device::get_analogue_input)); + m_upd7002->set_eoc_callback(FUNC(bbc_mertec_device::upd7002_eoc)); /* analogue port */ BBC_ANALOGUE_SLOT(config, m_analog, bbc_analogue_devices, nullptr); diff --git a/src/devices/bus/bbc/tube/tube_80286.cpp b/src/devices/bus/bbc/tube/tube_80286.cpp index e8ff167d0fb..de26a61ab48 100644 --- a/src/devices/bus/bbc/tube/tube_80286.cpp +++ b/src/devices/bus/bbc/tube/tube_80286.cpp @@ -62,7 +62,7 @@ void bbc_tube_80286_device::device_add_mconfig(machine_config &config) I80286(config, m_i80286, 12_MHz_XTAL / 2); m_i80286->set_addrmap(AS_PROGRAM, &bbc_tube_80286_device::tube_80286_mem); m_i80286->set_addrmap(AS_IO, &bbc_tube_80286_device::tube_80286_io); - m_i80286->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(bbc_tube_80286_device::irq_callback), this)); + m_i80286->set_irq_acknowledge_callback(FUNC(bbc_tube_80286_device::irq_callback)); TUBE(config, m_ula); m_ula->pnmi_handler().set_inputline(m_i80286, INPUT_LINE_NMI); diff --git a/src/devices/bus/bbc/tube/tube_z80.cpp b/src/devices/bus/bbc/tube/tube_z80.cpp index 06e6931c7a3..8704a1ee771 100644 --- a/src/devices/bus/bbc/tube/tube_z80.cpp +++ b/src/devices/bus/bbc/tube/tube_z80.cpp @@ -67,7 +67,7 @@ void bbc_tube_z80_device::device_add_mconfig(machine_config &config) m_z80->set_addrmap(AS_PROGRAM, &bbc_tube_z80_device::tube_z80_mem); m_z80->set_addrmap(AS_OPCODES, &bbc_tube_z80_device::tube_z80_fetch); m_z80->set_addrmap(AS_IO, &bbc_tube_z80_device::tube_z80_io); - m_z80->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(bbc_tube_z80_device::irq_callback), this)); + m_z80->set_irq_acknowledge_callback(FUNC(bbc_tube_z80_device::irq_callback)); TUBE(config, m_ula); m_ula->hirq_handler().set(DEVICE_SELF_OWNER, FUNC(bbc_tube_slot_device::irq_w)); diff --git a/src/devices/bus/bml3/bml3kanji.cpp b/src/devices/bus/bml3/bml3kanji.cpp index 375dcd7becf..ff1b3a9fae7 100644 --- a/src/devices/bus/bml3/bml3kanji.cpp +++ b/src/devices/bus/bml3/bml3kanji.cpp @@ -79,7 +79,7 @@ void bml3bus_kanji_device::device_start() // install into memory address_space &space_prg = m_bml3bus->space(); - space_prg.install_readwrite_handler(0xff75, 0xff76, read8_delegate( FUNC(bml3bus_kanji_device::bml3_kanji_r), this), write8_delegate(FUNC(bml3bus_kanji_device::bml3_kanji_w), this) ); + space_prg.install_readwrite_handler(0xff75, 0xff76, read8_delegate(*this, FUNC(bml3bus_kanji_device::bml3_kanji_r)), write8_delegate(*this, FUNC(bml3bus_kanji_device::bml3_kanji_w))); } void bml3bus_kanji_device::device_reset() diff --git a/src/devices/bus/bml3/bml3mp1802.cpp b/src/devices/bus/bml3/bml3mp1802.cpp index 18fd6702871..76c96a43040 100644 --- a/src/devices/bus/bml3/bml3mp1802.cpp +++ b/src/devices/bus/bml3/bml3mp1802.cpp @@ -132,8 +132,8 @@ void bml3bus_mp1802_device::device_start() // install into memory address_space &space_prg = m_bml3bus->space(); - space_prg.install_readwrite_handler(0xff00, 0xff03, read8sm_delegate(FUNC(mb8866_device::read), m_fdc.target()), write8sm_delegate(FUNC(mb8866_device::write), m_fdc.target())); - space_prg.install_readwrite_handler(0xff04, 0xff04, read8_delegate(FUNC(bml3bus_mp1802_device::bml3_mp1802_r), this), write8_delegate(FUNC(bml3bus_mp1802_device::bml3_mp1802_w), this)); + space_prg.install_readwrite_handler(0xff00, 0xff03, read8sm_delegate(*m_fdc, FUNC(mb8866_device::read)), write8sm_delegate(*m_fdc, FUNC(mb8866_device::write))); + space_prg.install_readwrite_handler(0xff04, 0xff04, read8_delegate(*this, FUNC(bml3bus_mp1802_device::bml3_mp1802_r)), write8_delegate(*this, FUNC(bml3bus_mp1802_device::bml3_mp1802_w))); // overwriting the main ROM (rather than using e.g. install_rom) should mean that bank switches for RAM expansion still work... uint8_t *mainrom = device().machine().root_device().memregion("maincpu")->base(); memcpy(mainrom + 0xf800, m_rom + 0xf800, 0x800); diff --git a/src/devices/bus/bml3/bml3mp1805.cpp b/src/devices/bus/bml3/bml3mp1805.cpp index 4ac4dc66df6..1b3bfb1d6b1 100644 --- a/src/devices/bus/bml3/bml3mp1805.cpp +++ b/src/devices/bus/bml3/bml3mp1805.cpp @@ -156,8 +156,8 @@ void bml3bus_mp1805_device::device_start() // install into memory address_space &space_prg = m_bml3bus->space(); - space_prg.install_readwrite_handler(0xff18, 0xff1f, read8_delegate( FUNC(mc6843_device::read), (mc6843_device*)m_mc6843), write8_delegate(FUNC(mc6843_device::write), (mc6843_device*)m_mc6843) ); - space_prg.install_readwrite_handler(0xff20, 0xff20, read8_delegate( FUNC(bml3bus_mp1805_device::bml3_mp1805_r), this), write8_delegate(FUNC(bml3bus_mp1805_device::bml3_mp1805_w), this) ); + space_prg.install_readwrite_handler(0xff18, 0xff1f, read8_delegate(*m_mc6843, FUNC(mc6843_device::read)), write8_delegate(*m_mc6843, FUNC(mc6843_device::write))); + space_prg.install_readwrite_handler(0xff20, 0xff20, read8_delegate(*this, FUNC(bml3bus_mp1805_device::bml3_mp1805_r)), write8_delegate(*this, FUNC(bml3bus_mp1805_device::bml3_mp1805_w))); // overwriting the main ROM (rather than using e.g. install_rom) should mean that bank switches for RAM expansion still work... uint8_t *mainrom = device().machine().root_device().memregion("maincpu")->base(); memcpy(mainrom + 0xf800, m_rom + 0xf800, 0x800); diff --git a/src/devices/bus/c64/xl80.cpp b/src/devices/bus/c64/xl80.cpp index 19a2f768a2c..8f0f35b523f 100644 --- a/src/devices/bus/c64/xl80.cpp +++ b/src/devices/bus/c64/xl80.cpp @@ -138,7 +138,7 @@ void c64_xl80_device::device_add_mconfig(machine_config &config) m_crtc->set_screen(MC6845_SCREEN_TAG); m_crtc->set_show_border_area(true); m_crtc->set_char_width(8); - m_crtc->set_update_row_callback(FUNC(c64_xl80_device::crtc_update_row), this); + m_crtc->set_update_row_callback(FUNC(c64_xl80_device::crtc_update_row)); } diff --git a/src/devices/bus/cbus/pc9801_118.cpp b/src/devices/bus/cbus/pc9801_118.cpp index a9271ecb0bf..2a2ec411a18 100644 --- a/src/devices/bus/cbus/pc9801_118.cpp +++ b/src/devices/bus/cbus/pc9801_118.cpp @@ -114,7 +114,7 @@ void pc9801_118_device::device_validity_check(validity_checker &valid) const void pc9801_118_device::device_start() { - m_bus->install_io(0xa460, 0xa463, read8_delegate(FUNC(pc9801_118_device::id_r), this), write8_delegate(FUNC(pc9801_118_device::ext_w), this) ); + m_bus->install_io(0xa460, 0xa463, read8_delegate(*this, FUNC(pc9801_118_device::id_r)), write8_delegate(*this, FUNC(pc9801_118_device::ext_w))); save_item(NAME(m_ext_reg)); } @@ -128,7 +128,7 @@ void pc9801_118_device::device_reset() { uint16_t port_base = (ioport("OPN3_DSW")->read() & 1) << 8; m_bus->io_space().unmap_readwrite(0x0088, 0x008b, 0x100); - m_bus->install_io(port_base + 0x0088, port_base + 0x008f, read8_delegate(FUNC(pc9801_118_device::opn3_r), this), write8_delegate(FUNC(pc9801_118_device::opn3_w), this) ); + m_bus->install_io(port_base + 0x0088, port_base + 0x008f, read8_delegate(*this, FUNC(pc9801_118_device::opn3_r)), write8_delegate(*this, FUNC(pc9801_118_device::opn3_w))); m_ext_reg = 1; // TODO: enabled or disabled? } diff --git a/src/devices/bus/cbus/pc9801_26.cpp b/src/devices/bus/cbus/pc9801_26.cpp index 603ea4a80b3..3d70d603665 100644 --- a/src/devices/bus/cbus/pc9801_26.cpp +++ b/src/devices/bus/cbus/pc9801_26.cpp @@ -133,7 +133,7 @@ void pc9801_26_device::device_reset() uint16_t port_base = (ioport("OPN_DSW")->read() & 1) << 8; m_bus->io_space().unmap_readwrite(0x0088, 0x008b, 0x100); - m_bus->install_io(port_base + 0x0088, port_base + 0x008b, read8_delegate(FUNC(pc9801_26_device::opn_r), this), write8_delegate(FUNC(pc9801_26_device::opn_w), this) ); + m_bus->install_io(port_base + 0x0088, port_base + 0x008b, read8_delegate(*this, FUNC(pc9801_26_device::opn_r)), write8_delegate(*this, FUNC(pc9801_26_device::opn_w))); } @@ -150,7 +150,7 @@ READ8_MEMBER(pc9801_26_device::opn_r) } else // odd { - printf("Read to undefined port [%02x]\n",offset+0x188); + logerror("Read to undefined port [%02x]\n", offset+0x188); return 0xff; } } @@ -161,5 +161,5 @@ WRITE8_MEMBER(pc9801_26_device::opn_w) if((offset & 5) == 0) m_opn->write(offset >> 1, data); else // odd - printf("PC9801-26: Write to undefined port [%02x] %02x\n",offset+0x188,data); + logerror("PC9801-26: Write to undefined port [%02x] %02x\n", offset+0x188, data); } diff --git a/src/devices/bus/cbus/pc9801_86.cpp b/src/devices/bus/cbus/pc9801_86.cpp index d9d6150a9fa..73f95aafc24 100644 --- a/src/devices/bus/cbus/pc9801_86.cpp +++ b/src/devices/bus/cbus/pc9801_86.cpp @@ -160,10 +160,10 @@ void pc9801_86_device::device_validity_check(validity_checker &valid) const void pc9801_86_device::device_start() { m_bus->program_space().install_rom(0xcc000,0xcffff,memregion(this->subtag("sound_bios").c_str())->base()); - m_bus->install_io(0xa460, 0xa463, read8_delegate(FUNC(pc9801_86_device::id_r), this), write8_delegate(FUNC(pc9801_86_device::mask_w), this)); - m_bus->install_io(0xa464, 0xa46f, read8_delegate(FUNC(pc9801_86_device::pcm_r), this), write8_delegate(FUNC(pc9801_86_device::pcm_w), this)); - m_bus->install_io(0xa66c, 0xa66f, read8_delegate([this](address_space &s, offs_t o, u8 mm){ return o == 2 ? m_pcm_mute : 0xff; }, "pc9801_86_mute_r"), - write8_delegate([this](address_space &s, offs_t o, u8 d, u8 mm){ if(o == 2) m_pcm_mute = d; }, "pc9801_86_mute_w")); + m_bus->install_io(0xa460, 0xa463, read8_delegate(*this, FUNC(pc9801_86_device::id_r)), write8_delegate(*this, FUNC(pc9801_86_device::mask_w))); + m_bus->install_io(0xa464, 0xa46f, read8_delegate(*this, FUNC(pc9801_86_device::pcm_r)), write8_delegate(*this, FUNC(pc9801_86_device::pcm_w))); + m_bus->install_io(0xa66c, 0xa66f, read8_delegate(*this, [this](address_space &s, offs_t o, u8 mm){ return o == 2 ? m_pcm_mute : 0xff; }, "pc9801_86_mute_r"), + write8_delegate(*this, [this](address_space &s, offs_t o, u8 d, u8 mm){ if(o == 2) m_pcm_mute = d; }, "pc9801_86_mute_w")); m_dac_timer = timer_alloc(); save_item(NAME(m_count)); @@ -180,7 +180,7 @@ void pc9801_86_device::device_reset() { uint16_t port_base = (ioport("OPNA_DSW")->read() & 1) << 8; m_bus->io_space().unmap_readwrite(0x0088, 0x008f, 0x100); - m_bus->install_io(port_base + 0x0088, port_base + 0x008f, read8_delegate(FUNC(pc9801_86_device::opna_r), this), write8_delegate(FUNC(pc9801_86_device::opna_w), this) ); + m_bus->install_io(port_base + 0x0088, port_base + 0x008f, read8_delegate(*this, FUNC(pc9801_86_device::opna_r)), write8_delegate(*this, FUNC(pc9801_86_device::opna_w))); m_mask = 0; m_head = m_tail = m_count = 0; @@ -412,7 +412,7 @@ void pc9801_speakboard_device::device_start() { pc9801_86_device::device_start(); - m_bus->install_io(0x0588, 0x058f, read8_delegate(FUNC(pc9801_speakboard_device::opna_slave_r), this), write8_delegate(FUNC(pc9801_speakboard_device::opna_slave_w), this) ); + m_bus->install_io(0x0588, 0x058f, read8_delegate(*this, FUNC(pc9801_speakboard_device::opna_slave_r)), write8_delegate(*this, FUNC(pc9801_speakboard_device::opna_slave_w))); } void pc9801_speakboard_device::device_reset() diff --git a/src/devices/bus/cbus/pc9801_amd98.cpp b/src/devices/bus/cbus/pc9801_amd98.cpp index ca7b32e7b4e..684dc8978df 100644 --- a/src/devices/bus/cbus/pc9801_amd98.cpp +++ b/src/devices/bus/cbus/pc9801_amd98.cpp @@ -134,9 +134,9 @@ void pc9801_amd98_device::device_start() void pc9801_amd98_device::device_reset() { - m_bus->install_io(0x00d8, 0x00df, read8_delegate(FUNC(pc9801_amd98_device::read), this), write8_delegate(FUNC(pc9801_amd98_device::write), this) ); + m_bus->install_io(0x00d8, 0x00df, read8_delegate(*this, FUNC(pc9801_amd98_device::read)), write8_delegate(*this, FUNC(pc9801_amd98_device::write))); // Thexder access with following - m_bus->install_io(0x38d8, 0x38df, read8_delegate(FUNC(pc9801_amd98_device::read), this), write8_delegate(FUNC(pc9801_amd98_device::write), this) ); + m_bus->install_io(0x38d8, 0x38df, read8_delegate(*this, FUNC(pc9801_amd98_device::read)), write8_delegate(*this, FUNC(pc9801_amd98_device::write))); } @@ -154,7 +154,7 @@ READ8_MEMBER(pc9801_amd98_device::read) return m_ay2->data_r(); } - printf("%02x\n",offset); + logerror("%02x\n",offset); return 0xff; } @@ -176,7 +176,7 @@ WRITE8_MEMBER(pc9801_amd98_device::write) m_ay2->data_w(data); break; default: - printf("%02x %02x\n",offset,data); + logerror("%02x %02x\n",offset,data); } } @@ -191,11 +191,11 @@ WRITE8_MEMBER(pc9801_amd98_device::ay3_data_latch_w) switch(data) { case 0x47: - //printf("%02x addr\n",m_ay3_latch); + //logerror("%02x addr\n",m_ay3_latch); m_ay3->address_w(m_ay3_latch); break; case 0x43: - //printf("%02x data\n",m_ay3_latch); + //logerror("%02x data\n",m_ay3_latch); m_ay3->data_w(m_ay3_latch); break; } diff --git a/src/devices/bus/cgenie/expansion/floppy.cpp b/src/devices/bus/cgenie/expansion/floppy.cpp index a25e49c7019..6238aaa936f 100644 --- a/src/devices/bus/cgenie/expansion/floppy.cpp +++ b/src/devices/bus/cgenie/expansion/floppy.cpp @@ -97,7 +97,7 @@ void cgenie_fdc_device::device_add_mconfig(machine_config &config) // SOFTWARE_LIST(config, "floppy_list").set_original("cgenie_flop"); - GENERIC_SOCKET(config, "socket", generic_plain_slot, "cgenie_flop_rom", "bin,rom").set_device_load(FUNC(cgenie_fdc_device::socket_load), this); + GENERIC_SOCKET(config, "socket", generic_plain_slot, "cgenie_flop_rom", "bin,rom").set_device_load(FUNC(cgenie_fdc_device::socket_load)); SOFTWARE_LIST(config, "rom_list").set_original("cgenie_flop_rom"); } @@ -147,9 +147,7 @@ void cgenie_fdc_device::device_reset() // map extra socket if (m_socket->exists()) - { - m_slot->m_program->install_read_handler(0xe000, 0xefff, read8sm_delegate(FUNC(generic_slot_device::read_rom), (generic_slot_device *) m_socket)); - } + m_slot->m_program->install_read_handler(0xe000, 0xefff, read8sm_delegate(*m_socket, FUNC(generic_slot_device::read_rom))); } diff --git a/src/devices/bus/coco/coco_dcmodem.cpp b/src/devices/bus/coco/coco_dcmodem.cpp index ab6ba20a622..4344314604b 100644 --- a/src/devices/bus/coco/coco_dcmodem.cpp +++ b/src/devices/bus/coco/coco_dcmodem.cpp @@ -59,8 +59,8 @@ namespace virtual void device_start() override { install_readwrite_handler(0xFF6C, 0xFF6F, - read8sm_delegate(FUNC(mos6551_device::read), (mos6551_device *)m_uart), - write8sm_delegate(FUNC(mos6551_device::write), (mos6551_device *)m_uart)); + read8sm_delegate(*m_uart, FUNC(mos6551_device::read)), + write8sm_delegate(*m_uart, FUNC(mos6551_device::write))); } virtual const tiny_rom_entry *device_rom_region() const override; diff --git a/src/devices/bus/coco/coco_multi.cpp b/src/devices/bus/coco/coco_multi.cpp index d6c5627ca11..a6705a7b751 100644 --- a/src/devices/bus/coco/coco_multi.cpp +++ b/src/devices/bus/coco/coco_multi.cpp @@ -252,7 +252,7 @@ coco_multipak_device::coco_multipak_device(const machine_config &mconfig, const void coco_multipak_device::device_start() { // install $FF7F handler - install_readwrite_handler(0xFF7F, 0xFF7F, read8_delegate(FUNC(coco_multipak_device::ff7f_read), this),write8_delegate(FUNC(coco_multipak_device::ff7f_write), this)); + install_readwrite_handler(0xFF7F, 0xFF7F, read8_delegate(*this, FUNC(coco_multipak_device::ff7f_read)), write8_delegate(*this, FUNC(coco_multipak_device::ff7f_write))); // initial state m_select = 0xFF; diff --git a/src/devices/bus/coco/coco_orch90.cpp b/src/devices/bus/coco/coco_orch90.cpp index e7506be7c2b..384dd2b76d9 100644 --- a/src/devices/bus/coco/coco_orch90.cpp +++ b/src/devices/bus/coco/coco_orch90.cpp @@ -75,8 +75,8 @@ namespace virtual void device_start() override { // install handlers - install_write_handler(0xFF7A, 0xFF7A, write8_delegate(FUNC(coco_orch90_device::write_left), this)); - install_write_handler(0xFF7B, 0xFF7B, write8_delegate(FUNC(coco_orch90_device::write_right), this)); + install_write_handler(0xFF7A, 0xFF7A, write8_delegate(*this, FUNC(coco_orch90_device::write_left))); + install_write_handler(0xFF7B, 0xFF7B, write8_delegate(*this, FUNC(coco_orch90_device::write_right))); // Orch-90 ties CART to Q set_line_value(line::CART, line_value::Q); diff --git a/src/devices/bus/coco/coco_rs232.cpp b/src/devices/bus/coco/coco_rs232.cpp index 5668034b80d..31da94f3e4f 100644 --- a/src/devices/bus/coco/coco_rs232.cpp +++ b/src/devices/bus/coco/coco_rs232.cpp @@ -57,8 +57,8 @@ namespace virtual void device_start() override { install_readwrite_handler(0xFF68, 0xFF6B, - read8sm_delegate(FUNC(mos6551_device::read), (mos6551_device *)m_uart), - write8sm_delegate(FUNC(mos6551_device::write), (mos6551_device *)m_uart)); + read8sm_delegate(*m_uart, FUNC(mos6551_device::read)), + write8sm_delegate(*m_uart, FUNC(mos6551_device::write))); } virtual const tiny_rom_entry *device_rom_region() const override; diff --git a/src/devices/bus/coco/coco_ssc.cpp b/src/devices/bus/coco/coco_ssc.cpp index 6dcd34a8f03..cc50f7cf6ad 100644 --- a/src/devices/bus/coco/coco_ssc.cpp +++ b/src/devices/bus/coco/coco_ssc.cpp @@ -211,9 +211,9 @@ coco_ssc_device::coco_ssc_device(const machine_config &mconfig, const char *tag, void coco_ssc_device::device_start() { // install $FF7D-E handler - write8_delegate wh = write8_delegate(FUNC(coco_ssc_device::ff7d_write), this); - read8_delegate rh = read8_delegate(FUNC(coco_ssc_device::ff7d_read), this); - install_readwrite_handler(0xFF7D, 0xFF7E, rh, wh); + install_readwrite_handler(0xFF7D, 0xFF7E, + read8_delegate(*this, FUNC(coco_ssc_device::ff7d_read)), + write8_delegate(*this, FUNC(coco_ssc_device::ff7d_write))); save_item(NAME(m_reset_line)); save_item(NAME(m_tms7000_busy)); diff --git a/src/devices/bus/comx35/clm.cpp b/src/devices/bus/comx35/clm.cpp index 745606875f0..ebf7e1f271e 100644 --- a/src/devices/bus/comx35/clm.cpp +++ b/src/devices/bus/comx35/clm.cpp @@ -153,7 +153,7 @@ void comx_clm_device::device_add_mconfig(machine_config &config) m_crtc->set_screen(MC6845_SCREEN_TAG); m_crtc->set_show_border_area(true); m_crtc->set_char_width(8); - m_crtc->set_update_row_callback(FUNC(comx_clm_device::crtc_update_row), this); + m_crtc->set_update_row_callback(FUNC(comx_clm_device::crtc_update_row)); } diff --git a/src/devices/bus/cpc/amdrum.cpp b/src/devices/bus/cpc/amdrum.cpp index 587577edf52..a9c612b4870 100644 --- a/src/devices/bus/cpc/amdrum.cpp +++ b/src/devices/bus/cpc/amdrum.cpp @@ -51,7 +51,7 @@ void cpc_amdrum_device::device_start() { m_slot = dynamic_cast(owner()); address_space &space = m_slot->cpu().space(AS_IO); - space.install_write_handler(0xff00,0xffff,write8_delegate(FUNC(cpc_amdrum_device::dac_w),this)); + space.install_write_handler(0xff00,0xffff, write8_delegate(*this, FUNC(cpc_amdrum_device::dac_w))); } //------------------------------------------------- diff --git a/src/devices/bus/cpc/brunword4.cpp b/src/devices/bus/cpc/brunword4.cpp index db5e8e1b57d..914ada94f15 100644 --- a/src/devices/bus/cpc/brunword4.cpp +++ b/src/devices/bus/cpc/brunword4.cpp @@ -74,7 +74,7 @@ void cpc_brunword4_device::device_start() { m_slot = dynamic_cast(owner()); address_space &space = m_slot->cpu().space(AS_IO); - space.install_write_handler(0xdf00,0xdfff,write8_delegate(FUNC(cpc_brunword4_device::rombank_w),this)); + space.install_write_handler(0xdf00,0xdfff, write8_delegate(*this, FUNC(cpc_brunword4_device::rombank_w))); } void cpc_brunword4_device::device_reset() diff --git a/src/devices/bus/cpc/cpc_pds.cpp b/src/devices/bus/cpc/cpc_pds.cpp index 0509ab866dc..43f1fc2cd05 100644 --- a/src/devices/bus/cpc/cpc_pds.cpp +++ b/src/devices/bus/cpc/cpc_pds.cpp @@ -33,7 +33,7 @@ cpc_pds_device::cpc_pds_device(const machine_config &mconfig, const char *tag, d device_t(mconfig, CPC_PDS, tag, owner, clock), device_cpc_expansion_card_interface(mconfig, *this), m_slot(nullptr), - m_pio(*this,"pio") + m_pio(*this, "pio") { } @@ -46,7 +46,7 @@ void cpc_pds_device::device_start() m_slot = dynamic_cast(owner()); address_space &space = m_slot->cpu().space(AS_IO); - space.install_readwrite_handler(0xfbec,0xfbef,read8_delegate(FUNC(cpc_pds_device::pio_r),this),write8_delegate(FUNC(cpc_pds_device::pio_w),this)); + space.install_readwrite_handler(0xfbec,0xfbef, read8_delegate(*this, FUNC(cpc_pds_device::pio_r)), write8_delegate(*this, FUNC(cpc_pds_device::pio_w))); } //------------------------------------------------- diff --git a/src/devices/bus/cpc/cpc_rs232.cpp b/src/devices/bus/cpc/cpc_rs232.cpp index 40fc0853539..d360175cba4 100644 --- a/src/devices/bus/cpc/cpc_rs232.cpp +++ b/src/devices/bus/cpc/cpc_rs232.cpp @@ -106,8 +106,8 @@ void cpc_rs232_device::device_start() m_slot = dynamic_cast(owner()); address_space &space = m_slot->cpu().space(AS_IO); - space.install_readwrite_handler(0xfadc,0xfadf,read8_delegate(FUNC(cpc_rs232_device::dart_r),this),write8_delegate(FUNC(cpc_rs232_device::dart_w),this)); - space.install_readwrite_handler(0xfbdc,0xfbdf,read8_delegate(FUNC(cpc_rs232_device::pit_r),this),write8_delegate(FUNC(cpc_rs232_device::pit_w),this)); + space.install_readwrite_handler(0xfadc,0xfadf, read8_delegate(*this, FUNC(cpc_rs232_device::dart_r)), write8_delegate(*this, FUNC(cpc_rs232_device::dart_w))); + space.install_readwrite_handler(0xfbdc,0xfbdf, read8_delegate(*this, FUNC(cpc_rs232_device::pit_r)), write8_delegate(*this, FUNC(cpc_rs232_device::pit_w))); } //------------------------------------------------- diff --git a/src/devices/bus/cpc/cpc_ssa1.cpp b/src/devices/bus/cpc/cpc_ssa1.cpp index bdfedce16ed..c009cc5a4e6 100644 --- a/src/devices/bus/cpc/cpc_ssa1.cpp +++ b/src/devices/bus/cpc/cpc_ssa1.cpp @@ -177,8 +177,8 @@ void cpc_ssa1_device::device_start() m_rom = memregion("sp0256")->base(); - space.install_readwrite_handler(0xfaee,0xfaee,read8_delegate(FUNC(cpc_ssa1_device::ssa1_r),this),write8_delegate(FUNC(cpc_ssa1_device::ssa1_w),this)); - space.install_readwrite_handler(0xfbee,0xfbee,read8_delegate(FUNC(cpc_ssa1_device::ssa1_r),this),write8_delegate(FUNC(cpc_ssa1_device::ssa1_w),this)); + space.install_readwrite_handler(0xfaee,0xfaee, read8_delegate(*this, FUNC(cpc_ssa1_device::ssa1_r)), write8_delegate(*this, FUNC(cpc_ssa1_device::ssa1_w))); + space.install_readwrite_handler(0xfbee,0xfbee, read8_delegate(*this, FUNC(cpc_ssa1_device::ssa1_r)), write8_delegate(*this, FUNC(cpc_ssa1_device::ssa1_w))); } void cpc_dkspeech_device::device_start() @@ -188,7 +188,7 @@ void cpc_dkspeech_device::device_start() m_rom = memregion("sp0256")->base(); - space.install_readwrite_handler(0xfbfe,0xfbfe,read8_delegate(FUNC(cpc_dkspeech_device::dkspeech_r),this),write8_delegate(FUNC(cpc_dkspeech_device::dkspeech_w),this)); + space.install_readwrite_handler(0xfbfe,0xfbfe, read8_delegate(*this, FUNC(cpc_dkspeech_device::dkspeech_r)), write8_delegate(*this, FUNC(cpc_dkspeech_device::dkspeech_w))); } //------------------------------------------------- diff --git a/src/devices/bus/cpc/ddi1.cpp b/src/devices/bus/cpc/ddi1.cpp index 76e09d36f34..c835a8e547f 100644 --- a/src/devices/bus/cpc/ddi1.cpp +++ b/src/devices/bus/cpc/ddi1.cpp @@ -75,9 +75,9 @@ void cpc_ddi1_device::device_start() m_slot = dynamic_cast(owner()); address_space &space = m_slot->cpu().space(AS_IO); - space.install_write_handler(0xfa7e,0xfa7f,write8_delegate(FUNC(cpc_ddi1_device::motor_w),this)); - space.install_readwrite_handler(0xfb7e,0xfb7f,read8_delegate(FUNC(cpc_ddi1_device::fdc_r),this),write8_delegate(FUNC(cpc_ddi1_device::fdc_w),this)); - space.install_write_handler(0xdf00,0xdfff,write8_delegate(FUNC(cpc_ddi1_device::rombank_w),this)); + space.install_write_handler(0xfa7e,0xfa7f, write8_delegate(*this, FUNC(cpc_ddi1_device::motor_w))); + space.install_readwrite_handler(0xfb7e,0xfb7f, read8_delegate(*this, FUNC(cpc_ddi1_device::fdc_r)), write8_delegate(*this, FUNC(cpc_ddi1_device::fdc_w))); + space.install_write_handler(0xdf00,0xdfff, write8_delegate(*this, FUNC(cpc_ddi1_device::rombank_w))); } //------------------------------------------------- diff --git a/src/devices/bus/cpc/doubler.cpp b/src/devices/bus/cpc/doubler.cpp index e9ed2e5b5f4..ff2d9988f31 100644 --- a/src/devices/bus/cpc/doubler.cpp +++ b/src/devices/bus/cpc/doubler.cpp @@ -46,7 +46,7 @@ void cpc_doubler_device::device_start() { m_slot = dynamic_cast(owner()); address_space &space = m_slot->cpu().space(AS_IO); - space.install_read_handler(0xf0e0,0xf0e0,read8_delegate(FUNC(cpc_doubler_device::ext_tape_r),this)); + space.install_read_handler(0xf0e0,0xf0e0, read8_delegate(*this, FUNC(cpc_doubler_device::ext_tape_r))); } //------------------------------------------------- diff --git a/src/devices/bus/cpc/hd20.cpp b/src/devices/bus/cpc/hd20.cpp index c13ffca6b4b..582a61df262 100644 --- a/src/devices/bus/cpc/hd20.cpp +++ b/src/devices/bus/cpc/hd20.cpp @@ -46,7 +46,7 @@ const tiny_rom_entry *cpc_hd20_device::device_rom_region() const cpc_hd20_device::cpc_hd20_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : device_t(mconfig, CPC_HD20, tag, owner, clock), device_cpc_expansion_card_interface(mconfig, *this), m_slot(nullptr), - m_hdc(*this,"hdc") + m_hdc(*this, "hdc") { } @@ -58,8 +58,8 @@ void cpc_hd20_device::device_start() { m_slot = dynamic_cast(owner()); address_space &space = m_slot->cpu().space(AS_IO); - space.install_write_handler(0xfbe0,0xfbe4,write8_delegate(FUNC(cpc_hd20_device::hdc_w),this)); - space.install_read_handler(0xfbe0,0xfbe4,read8_delegate(FUNC(cpc_hd20_device::hdc_r),this)); + space.install_write_handler(0xfbe0,0xfbe4, write8_delegate(*this, FUNC(cpc_hd20_device::hdc_w))); + space.install_read_handler(0xfbe0,0xfbe4, read8_delegate(*this, FUNC(cpc_hd20_device::hdc_r))); } //------------------------------------------------- diff --git a/src/devices/bus/cpc/magicsound.cpp b/src/devices/bus/cpc/magicsound.cpp index 1a85915dca1..a9c06b3f123 100644 --- a/src/devices/bus/cpc/magicsound.cpp +++ b/src/devices/bus/cpc/magicsound.cpp @@ -89,10 +89,10 @@ void al_magicsound_device::device_start() { m_slot = dynamic_cast(owner()); address_space &space = m_slot->cpu().space(AS_IO); - space.install_readwrite_handler(0xf8d0,0xf8df,read8_delegate(FUNC(al_magicsound_device::dmac_r),this),write8_delegate(FUNC(al_magicsound_device::dmac_w),this)); - space.install_write_handler(0xf9d0,0xf9df,write8_delegate(FUNC(al_magicsound_device::timer_w),this)); - space.install_write_handler(0xfad0,0xfadf,write8_delegate(FUNC(al_magicsound_device::volume_w),this)); - space.install_write_handler(0xfbd0,0xfbdf,write8_delegate(FUNC(al_magicsound_device::mapper_w),this)); + space.install_readwrite_handler(0xf8d0,0xf8df, read8_delegate(*this, FUNC(al_magicsound_device::dmac_r)), write8_delegate(*this, FUNC(al_magicsound_device::dmac_w))); + space.install_write_handler(0xf9d0,0xf9df, write8_delegate(*this, FUNC(al_magicsound_device::timer_w))); + space.install_write_handler(0xfad0,0xfadf, write8_delegate(*this, FUNC(al_magicsound_device::volume_w))); + space.install_write_handler(0xfbd0,0xfbdf, write8_delegate(*this, FUNC(al_magicsound_device::mapper_w))); m_ramptr = machine().device(":" RAM_TAG); diff --git a/src/devices/bus/cpc/musicmachine.cpp b/src/devices/bus/cpc/musicmachine.cpp index 4d43f20c1fe..90361578851 100644 --- a/src/devices/bus/cpc/musicmachine.cpp +++ b/src/devices/bus/cpc/musicmachine.cpp @@ -61,9 +61,9 @@ void cpc_musicmachine_device::device_start() m_slot = dynamic_cast(owner()); address_space &space = m_slot->cpu().space(AS_IO); - space.install_write_handler(0xf8e8,0xf8e8,write8_delegate(FUNC(cpc_musicmachine_device::irqsel_w),this)); - space.install_readwrite_handler(0xf8ec,0xf8ef,read8_delegate(FUNC(cpc_musicmachine_device::acia_r), this),write8_delegate(FUNC(cpc_musicmachine_device::acia_w),this)); - space.install_write_handler(0xf8f0,0xf8f0,write8_delegate(FUNC(cpc_musicmachine_device::dac_w),this)); + space.install_write_handler(0xf8e8,0xf8e8, write8_delegate(*this, FUNC(cpc_musicmachine_device::irqsel_w))); + space.install_readwrite_handler(0xf8ec,0xf8ef, read8_delegate(*this, FUNC(cpc_musicmachine_device::acia_r)), write8_delegate(*this, FUNC(cpc_musicmachine_device::acia_w))); + space.install_write_handler(0xf8f0,0xf8f0, write8_delegate(*this, FUNC(cpc_musicmachine_device::dac_w))); // 0xf8f4 - ADC read8_delegate // 0xf8f8 - ADC start } diff --git a/src/devices/bus/cpc/playcity.cpp b/src/devices/bus/cpc/playcity.cpp index 7d444abb03b..4a11189aacb 100644 --- a/src/devices/bus/cpc/playcity.cpp +++ b/src/devices/bus/cpc/playcity.cpp @@ -69,11 +69,11 @@ void cpc_playcity_device::device_start() m_slot = dynamic_cast(owner()); address_space &space = m_slot->cpu().space(AS_IO); - space.install_readwrite_handler(0xf880,0xf883,read8_delegate(FUNC(cpc_playcity_device::ctc_r),this),write8_delegate(FUNC(cpc_playcity_device::ctc_w),this)); - space.install_readwrite_handler(0xf884,0xf884,read8_delegate(FUNC(cpc_playcity_device::ymz1_data_r),this),write8_delegate(FUNC(cpc_playcity_device::ymz1_data_w),this)); - space.install_readwrite_handler(0xf888,0xf888,read8_delegate(FUNC(cpc_playcity_device::ymz2_data_r),this),write8_delegate(FUNC(cpc_playcity_device::ymz2_data_w),this)); - space.install_write_handler(0xf984,0xf984,write8_delegate(FUNC(cpc_playcity_device::ymz1_address_w),this)); - space.install_write_handler(0xf988,0xf988,write8_delegate(FUNC(cpc_playcity_device::ymz2_address_w),this)); + space.install_readwrite_handler(0xf880,0xf883, read8_delegate(*this, FUNC(cpc_playcity_device::ctc_r)), write8_delegate(*this, FUNC(cpc_playcity_device::ctc_w))); + space.install_readwrite_handler(0xf884,0xf884, read8_delegate(*this, FUNC(cpc_playcity_device::ymz1_data_r)), write8_delegate(*this, FUNC(cpc_playcity_device::ymz1_data_w))); + space.install_readwrite_handler(0xf888,0xf888, read8_delegate(*this, FUNC(cpc_playcity_device::ymz2_data_r)), write8_delegate(*this, FUNC(cpc_playcity_device::ymz2_data_w))); + space.install_write_handler(0xf984,0xf984, write8_delegate(*this, FUNC(cpc_playcity_device::ymz1_address_w))); + space.install_write_handler(0xf988,0xf988, write8_delegate(*this, FUNC(cpc_playcity_device::ymz2_address_w))); } //------------------------------------------------- diff --git a/src/devices/bus/cpc/smartwatch.cpp b/src/devices/bus/cpc/smartwatch.cpp index 272b7ca953e..5b4e63df728 100644 --- a/src/devices/bus/cpc/smartwatch.cpp +++ b/src/devices/bus/cpc/smartwatch.cpp @@ -63,8 +63,8 @@ void cpc_smartwatch_device::device_start() void cpc_smartwatch_device::device_reset() { address_space &space = m_slot->cpu().space(AS_PROGRAM); - space.install_read_handler(0xc000,0xc001,read8_delegate(FUNC(cpc_smartwatch_device::rtc_w),this)); - space.install_read_handler(0xc004,0xc004,read8_delegate(FUNC(cpc_smartwatch_device::rtc_r),this)); + space.install_read_handler(0xc000,0xc001, read8_delegate(*this, FUNC(cpc_smartwatch_device::rtc_w))); + space.install_read_handler(0xc004,0xc004, read8_delegate(*this, FUNC(cpc_smartwatch_device::rtc_r))); m_bank = membank(":bank7"); } diff --git a/src/devices/bus/cpc/symbfac2.cpp b/src/devices/bus/cpc/symbfac2.cpp index a59a73bf72e..8710717de6c 100644 --- a/src/devices/bus/cpc/symbfac2.cpp +++ b/src/devices/bus/cpc/symbfac2.cpp @@ -90,11 +90,11 @@ void cpc_symbiface2_device::device_start() { m_slot = dynamic_cast(owner()); address_space &space = m_slot->cpu().space(AS_IO); - space.install_readwrite_handler(0xfd00,0xfd07,read8_delegate(FUNC(cpc_symbiface2_device::ide_cs1_r),this),write8_delegate(FUNC(cpc_symbiface2_device::ide_cs1_w),this)); - space.install_readwrite_handler(0xfd08,0xfd0f,read8_delegate(FUNC(cpc_symbiface2_device::ide_cs0_r),this),write8_delegate(FUNC(cpc_symbiface2_device::ide_cs0_w),this)); - space.install_read_handler(0xfd10,0xfd10,read8_delegate(FUNC(cpc_symbiface2_device::mouse_r),this)); - space.install_readwrite_handler(0xfd14,0xfd15,read8_delegate(FUNC(cpc_symbiface2_device::rtc_r),this),write8_delegate(FUNC(cpc_symbiface2_device::rtc_w),this)); - space.install_readwrite_handler(0xfd17,0xfd17,read8_delegate(FUNC(cpc_symbiface2_device::rom_rewrite_r),this),write8_delegate(FUNC(cpc_symbiface2_device::rom_rewrite_w),this)); + space.install_readwrite_handler(0xfd00,0xfd07, read8_delegate(*this, FUNC(cpc_symbiface2_device::ide_cs1_r)), write8_delegate(*this, FUNC(cpc_symbiface2_device::ide_cs1_w))); + space.install_readwrite_handler(0xfd08,0xfd0f, read8_delegate(*this, FUNC(cpc_symbiface2_device::ide_cs0_r)), write8_delegate(*this, FUNC(cpc_symbiface2_device::ide_cs0_w))); + space.install_read_handler(0xfd10,0xfd10, read8_delegate(*this, FUNC(cpc_symbiface2_device::mouse_r))); + space.install_readwrite_handler(0xfd14,0xfd15, read8_delegate(*this, FUNC(cpc_symbiface2_device::rtc_r)), write8_delegate(*this, FUNC(cpc_symbiface2_device::rtc_w))); + space.install_readwrite_handler(0xfd17,0xfd17, read8_delegate(*this, FUNC(cpc_symbiface2_device::rom_rewrite_r)), write8_delegate(*this, FUNC(cpc_symbiface2_device::rom_rewrite_w))); // set up ROM space (these can be writable, when mapped to &4000, or completely disabled, allowing the built-in ROMs to be visible) // 32 banks of 16kB (512kB) diff --git a/src/devices/bus/cpc/transtape.cpp b/src/devices/bus/cpc/transtape.cpp index 78ec1f15c72..3b3d29e53c0 100644 --- a/src/devices/bus/cpc/transtape.cpp +++ b/src/devices/bus/cpc/transtape.cpp @@ -63,8 +63,8 @@ void cpc_transtape_device::device_start() m_ram = make_unique_clear(0x2000); - m_space->install_write_handler(0xfbf0,0xfbf0,write8_delegate(FUNC(cpc_transtape_device::output_w),this)); - m_space->install_read_handler(0xfbff,0xfbff,read8_delegate(FUNC(cpc_transtape_device::input_r),this)); + m_space->install_write_handler(0xfbf0,0xfbf0, write8_delegate(*this, FUNC(cpc_transtape_device::output_w))); + m_space->install_read_handler(0xfbff,0xfbff, read8_delegate(*this, FUNC(cpc_transtape_device::input_r))); } //------------------------------------------------- diff --git a/src/devices/bus/dmv/k220.cpp b/src/devices/bus/dmv/k220.cpp index 4ba32c77950..9251d453e57 100644 --- a/src/devices/bus/dmv/k220.cpp +++ b/src/devices/bus/dmv/k220.cpp @@ -140,8 +140,8 @@ dmv_k220_device::dmv_k220_device(const machine_config &mconfig, const char *tag, void dmv_k220_device::device_start() { address_space &space = *m_bus->m_iospace; - space.install_readwrite_handler(0x08, 0x0b, read8sm_delegate(FUNC(pit8253_device::read), &(*m_pit)), write8sm_delegate(FUNC(pit8253_device::write), &(*m_pit)), 0); - space.install_readwrite_handler(0x0c, 0x0f, read8sm_delegate(FUNC(i8255_device::read), &(*m_ppi)), write8sm_delegate(FUNC(i8255_device::write), &(*m_ppi)), 0); + space.install_readwrite_handler(0x08, 0x0b, read8sm_delegate(*m_pit, FUNC(pit8253_device::read)), write8sm_delegate(*m_pit, FUNC(pit8253_device::write)), 0); + space.install_readwrite_handler(0x0c, 0x0f, read8sm_delegate(*m_ppi, FUNC(i8255_device::read)), write8sm_delegate(*m_ppi, FUNC(i8255_device::write)), 0); m_digits.resolve(); diff --git a/src/devices/bus/dmv/k230.cpp b/src/devices/bus/dmv/k230.cpp index a58ced0492a..8c1d6e43ac3 100644 --- a/src/devices/bus/dmv/k230.cpp +++ b/src/devices/bus/dmv/k230.cpp @@ -148,7 +148,7 @@ void dmv_k230_device::device_start() void dmv_k234_device::device_start() { dmv_k230_device::device_start(); - m_bus->m_iospace->install_readwrite_handler(0xd8, 0xdf, read8_delegate(FUNC(dmv_k234_device::snr_r), this), write8_delegate(FUNC(dmv_k234_device::snr_w), this), 0); + m_bus->m_iospace->install_readwrite_handler(0xd8, 0xdf, read8_delegate(*this, FUNC(dmv_k234_device::snr_r)), write8_delegate(*this, FUNC(dmv_k234_device::snr_w)), 0); // register for state saving save_item(NAME(m_snr)); diff --git a/src/devices/bus/dmv/k806.cpp b/src/devices/bus/dmv/k806.cpp index 7daa744b3ff..87a0002c091 100644 --- a/src/devices/bus/dmv/k806.cpp +++ b/src/devices/bus/dmv/k806.cpp @@ -119,7 +119,7 @@ void dmv_k806_device::device_add_mconfig(machine_config &config) m_mcu->p2_out_cb().set(FUNC(dmv_k806_device::port2_w)); m_mcu->t1_in_cb().set(FUNC(dmv_k806_device::portt1_r)); - TIMER(config, "mouse_timer", 0).configure_periodic(timer_device::expired_delegate(FUNC(dmv_k806_device::mouse_timer), this), attotime::from_hz(1000)); + TIMER(config, "mouse_timer", 0).configure_periodic(FUNC(dmv_k806_device::mouse_timer), attotime::from_hz(1000)); } //------------------------------------------------- diff --git a/src/devices/bus/ecbbus/grip.cpp b/src/devices/bus/ecbbus/grip.cpp index f7abc75aac5..1fcedf58ccc 100644 --- a/src/devices/bus/ecbbus/grip.cpp +++ b/src/devices/bus/ecbbus/grip.cpp @@ -435,7 +435,7 @@ void ecb_grip21_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(8); - m_crtc->set_update_row_callback(FUNC(ecb_grip21_device::crtc_update_row), this); + m_crtc->set_update_row_callback(FUNC(ecb_grip21_device::crtc_update_row)); m_crtc->out_de_callback().set(m_sti, FUNC(z80sti_device::i1_w)); m_crtc->out_cur_callback().set(m_sti, FUNC(z80sti_device::i1_w)); diff --git a/src/devices/bus/einstein/pipe/silicon_disc.cpp b/src/devices/bus/einstein/pipe/silicon_disc.cpp index b9017cd6e56..ff4ac92a910 100644 --- a/src/devices/bus/einstein/pipe/silicon_disc.cpp +++ b/src/devices/bus/einstein/pipe/silicon_disc.cpp @@ -87,8 +87,8 @@ void einstein_silicon_disc_device::device_reset() // install i/o ports io_space().install_device(0xf0, 0xff, *this, &einstein_silicon_disc_device::map); io_space().install_readwrite_handler(0xfa, 0xfa, 0, 0, 0xff00, - read8_delegate(FUNC(einstein_silicon_disc_device::ram_r), this), - write8_delegate(FUNC(einstein_silicon_disc_device::ram_w), this)); + read8_delegate(*this, FUNC(einstein_silicon_disc_device::ram_r)), + write8_delegate(*this, FUNC(einstein_silicon_disc_device::ram_w))); } diff --git a/src/devices/bus/einstein/pipe/speculator.cpp b/src/devices/bus/einstein/pipe/speculator.cpp index ed35973ab12..c4afaa4ac2d 100644 --- a/src/devices/bus/einstein/pipe/speculator.cpp +++ b/src/devices/bus/einstein/pipe/speculator.cpp @@ -97,18 +97,18 @@ void einstein_speculator_device::device_reset() { // ram: range 0x1f, 0x3f, 0x5f, 0x7f, 0x9f, 0xbf, 0xdf, 0xff io_space().install_readwrite_handler(0x1f, 0x1f, 0, 0, 0xffe0, - read8_delegate(FUNC(einstein_speculator_device::ram_r), this), - write8_delegate(FUNC(einstein_speculator_device::ram_w), this)); + read8_delegate(*this, FUNC(einstein_speculator_device::ram_r)), + write8_delegate(*this, FUNC(einstein_speculator_device::ram_w))); // ram: range 0x60 - 0xff io_space().install_readwrite_handler(0x60, 0x60, 0, 0, 0xff9f, - read8_delegate(FUNC(einstein_speculator_device::ram_r), this), - write8_delegate(FUNC(einstein_speculator_device::ram_w), this)); + read8_delegate(*this, FUNC(einstein_speculator_device::ram_r)), + write8_delegate(*this, FUNC(einstein_speculator_device::ram_w))); // tape read/nmi write register: range 0xff io_space().install_readwrite_handler(0xff, 0xff, 0, 0, 0xff00, - read8_delegate(FUNC(einstein_speculator_device::tape_r), this), - write8_delegate(FUNC(einstein_speculator_device::nmi_w), this)); + read8_delegate(*this, FUNC(einstein_speculator_device::tape_r)), + write8_delegate(*this, FUNC(einstein_speculator_device::nmi_w))); } diff --git a/src/devices/bus/einstein/pipe/tk02.cpp b/src/devices/bus/einstein/pipe/tk02.cpp index 0564a5eaaad..5f0a38ed27b 100644 --- a/src/devices/bus/einstein/pipe/tk02.cpp +++ b/src/devices/bus/einstein/pipe/tk02.cpp @@ -111,7 +111,7 @@ void tk02_device::device_add_mconfig(machine_config &config) m_crtc->set_screen("mono"); m_crtc->set_show_border_area(false); m_crtc->set_char_width(8); - m_crtc->set_update_row_callback(FUNC(tk02_device::crtc_update_row), this); + m_crtc->set_update_row_callback(FUNC(tk02_device::crtc_update_row)); m_crtc->out_de_callback().set(FUNC(tk02_device::de_w)); TATUNG_PIPE(config, m_pipe, DERIVED_CLOCK(1, 1), tatung_pipe_cards, nullptr); @@ -160,7 +160,7 @@ void tk02_device::device_start() void tk02_device::device_reset() { io_space().install_device(0x40, 0x4f, *this, &tk02_device::map); - io_space().install_readwrite_handler(0x40, 0x47, 0, 0, 0xff00, read8_delegate(FUNC(tk02_device::ram_r), this), write8_delegate(FUNC(tk02_device::ram_w), this)); + io_space().install_readwrite_handler(0x40, 0x47, 0, 0, 0xff00, read8_delegate(*this, FUNC(tk02_device::ram_r)), write8_delegate(*this, FUNC(tk02_device::ram_w))); } diff --git a/src/devices/bus/electron/cart/ap5.cpp b/src/devices/bus/electron/cart/ap5.cpp index e72e9ac4e25..2929374cd48 100644 --- a/src/devices/bus/electron/cart/ap5.cpp +++ b/src/devices/bus/electron/cart/ap5.cpp @@ -26,9 +26,9 @@ void electron_ap5_device::device_add_mconfig(machine_config &config) { /* rom sockets */ GENERIC_SOCKET(config, m_romslot[0], generic_plain_slot, "electron_rom", "bin,rom"); // ROM SLOT 14 - m_romslot[0]->set_device_load(FUNC(electron_ap5_device::rom1_load), this); + m_romslot[0]->set_device_load(FUNC(electron_ap5_device::rom1_load)); GENERIC_SOCKET(config, m_romslot[1], generic_plain_slot, "electron_rom", "bin,rom"); // ROM SLOT 15 - m_romslot[1]->set_device_load(FUNC(electron_ap5_device::rom2_load), this); + m_romslot[1]->set_device_load(FUNC(electron_ap5_device::rom2_load)); /* via */ VIA6522(config, m_via, DERIVED_CLOCK(1, 16)); diff --git a/src/devices/bus/electron/cart/romp144.cpp b/src/devices/bus/electron/cart/romp144.cpp index 14853d86949..de947454fd8 100644 --- a/src/devices/bus/electron/cart/romp144.cpp +++ b/src/devices/bus/electron/cart/romp144.cpp @@ -26,19 +26,19 @@ void electron_romp144_device::device_add_mconfig(machine_config &config) { /* rom sockets */ GENERIC_SOCKET(config, m_romslot[0], generic_plain_slot, "electron_rom", "bin,rom"); - m_romslot[0]->set_device_load(FUNC(electron_romp144_device::rom0), this); + m_romslot[0]->set_device_load(FUNC(electron_romp144_device::rom0)); GENERIC_SOCKET(config, m_romslot[1], generic_plain_slot, "electron_rom", "bin,rom"); - m_romslot[1]->set_device_load(FUNC(electron_romp144_device::rom1), this); + m_romslot[1]->set_device_load(FUNC(electron_romp144_device::rom1)); GENERIC_SOCKET(config, m_romslot[2], generic_plain_slot, "electron_rom", "bin,rom"); - m_romslot[2]->set_device_load(FUNC(electron_romp144_device::rom2), this); + m_romslot[2]->set_device_load(FUNC(electron_romp144_device::rom2)); GENERIC_SOCKET(config, m_romslot[3], generic_plain_slot, "electron_rom", "bin,rom"); - m_romslot[3]->set_device_load(FUNC(electron_romp144_device::rom3), this); + m_romslot[3]->set_device_load(FUNC(electron_romp144_device::rom3)); GENERIC_SOCKET(config, m_romslot[4], generic_plain_slot, "electron_rom", "bin,rom"); - m_romslot[4]->set_device_load(FUNC(electron_romp144_device::rom4), this); + m_romslot[4]->set_device_load(FUNC(electron_romp144_device::rom4)); GENERIC_SOCKET(config, m_romslot[5], generic_plain_slot, "electron_rom", "bin,rom"); - m_romslot[5]->set_device_load(FUNC(electron_romp144_device::rom5), this); + m_romslot[5]->set_device_load(FUNC(electron_romp144_device::rom5)); GENERIC_SOCKET(config, m_romslot[6], generic_plain_slot, "electron_rom", "bin,rom"); - m_romslot[6]->set_device_load(FUNC(electron_romp144_device::rom6), this); + m_romslot[6]->set_device_load(FUNC(electron_romp144_device::rom6)); } //************************************************************************** diff --git a/src/devices/bus/electron/plus2.cpp b/src/devices/bus/electron/plus2.cpp index dd8be6e09eb..bb7d1342ebc 100644 --- a/src/devices/bus/electron/plus2.cpp +++ b/src/devices/bus/electron/plus2.cpp @@ -33,11 +33,11 @@ void electron_plus2_device::device_add_mconfig(machine_config &config) { /* rom sockets */ GENERIC_SOCKET(config, m_rom[0], generic_plain_slot, "electron_rom", "bin,rom"); // ROM SLOT 13 - m_rom[0]->set_device_load(FUNC(electron_plus2_device::rom1_load), this); + m_rom[0]->set_device_load(FUNC(electron_plus2_device::rom1_load)); GENERIC_SOCKET(config, m_rom[1], generic_plain_slot, "electron_rom", "bin,rom"); // ROM SLOT 14 - m_rom[1]->set_device_load(FUNC(electron_plus2_device::rom2_load), this); + m_rom[1]->set_device_load(FUNC(electron_plus2_device::rom2_load)); GENERIC_SOCKET(config, m_rom[2], generic_plain_slot, "electron_rom", "bin,rom"); // ROM SLOT 15 - m_rom[2]->set_device_load(FUNC(electron_plus2_device::rom3_load), this); + m_rom[2]->set_device_load(FUNC(electron_plus2_device::rom3_load)); /* cartridges */ ELECTRON_CARTSLOT(config, m_cart[0], DERIVED_CLOCK(1, 1), electron_cart, nullptr); diff --git a/src/devices/bus/electron/rombox.cpp b/src/devices/bus/electron/rombox.cpp index 05d0a7c9092..920419c2d66 100644 --- a/src/devices/bus/electron/rombox.cpp +++ b/src/devices/bus/electron/rombox.cpp @@ -55,21 +55,21 @@ void electron_rombox_device::device_add_mconfig(machine_config &config) { /* rom sockets */ GENERIC_SOCKET(config, m_rom[0], generic_plain_slot, "electron_rom", "bin,rom"); - m_rom[0]->set_device_load(FUNC(electron_rombox_device::rom1_load), this); + m_rom[0]->set_device_load(FUNC(electron_rombox_device::rom1_load)); GENERIC_SOCKET(config, m_rom[1], generic_plain_slot, "electron_rom", "bin,rom"); - m_rom[1]->set_device_load(FUNC(electron_rombox_device::rom2_load), this); + m_rom[1]->set_device_load(FUNC(electron_rombox_device::rom2_load)); GENERIC_SOCKET(config, m_rom[2], generic_plain_slot, "electron_rom", "bin,rom"); - m_rom[2]->set_device_load(FUNC(electron_rombox_device::rom3_load), this); + m_rom[2]->set_device_load(FUNC(electron_rombox_device::rom3_load)); GENERIC_SOCKET(config, m_rom[3], generic_plain_slot, "electron_rom", "bin,rom"); - m_rom[3]->set_device_load(FUNC(electron_rombox_device::rom4_load), this); + m_rom[3]->set_device_load(FUNC(electron_rombox_device::rom4_load)); GENERIC_SOCKET(config, m_rom[4], generic_plain_slot, "electron_rom", "bin,rom"); - m_rom[4]->set_device_load(FUNC(electron_rombox_device::rom5_load), this); + m_rom[4]->set_device_load(FUNC(electron_rombox_device::rom5_load)); GENERIC_SOCKET(config, m_rom[5], generic_plain_slot, "electron_rom", "bin,rom"); - m_rom[5]->set_device_load(FUNC(electron_rombox_device::rom6_load), this); + m_rom[5]->set_device_load(FUNC(electron_rombox_device::rom6_load)); GENERIC_SOCKET(config, m_rom[6], generic_plain_slot, "electron_rom", "bin,rom"); - m_rom[6]->set_device_load(FUNC(electron_rombox_device::rom7_load), this); + m_rom[6]->set_device_load(FUNC(electron_rombox_device::rom7_load)); GENERIC_SOCKET(config, m_rom[7], generic_plain_slot, "electron_rom", "bin,rom"); - m_rom[7]->set_device_load(FUNC(electron_rombox_device::rom8_load), this); + m_rom[7]->set_device_load(FUNC(electron_rombox_device::rom8_load)); /* pass-through */ ELECTRON_EXPANSION_SLOT(config, m_exp, DERIVED_CLOCK(1, 1), electron_expansion_devices, nullptr); diff --git a/src/devices/bus/electron/romboxp.cpp b/src/devices/bus/electron/romboxp.cpp index 7581cf5b2e1..cb8fb77e81d 100644 --- a/src/devices/bus/electron/romboxp.cpp +++ b/src/devices/bus/electron/romboxp.cpp @@ -94,13 +94,13 @@ void electron_romboxp_device::device_add_mconfig(machine_config &config) /* rom sockets */ GENERIC_SOCKET(config, m_rom[0], generic_plain_slot, "electron_rom", "bin,rom"); // ROM SLOT 4/12 - m_rom[0]->set_device_load(FUNC(electron_romboxp_device::rom1_load), this); + m_rom[0]->set_device_load(FUNC(electron_romboxp_device::rom1_load)); GENERIC_SOCKET(config, m_rom[1], generic_plain_slot, "electron_rom", "bin,rom"); // ROM SLOT 5/13 - m_rom[1]->set_device_load(FUNC(electron_romboxp_device::rom2_load), this); + m_rom[1]->set_device_load(FUNC(electron_romboxp_device::rom2_load)); GENERIC_SOCKET(config, m_rom[2], generic_plain_slot, "electron_rom", "bin,rom"); // ROM SLOT 6/14 also ROM/RAM - m_rom[2]->set_device_load(FUNC(electron_romboxp_device::rom3_load), this); + m_rom[2]->set_device_load(FUNC(electron_romboxp_device::rom3_load)); GENERIC_SOCKET(config, m_rom[3], generic_plain_slot, "electron_rom", "bin,rom"); // ROM SLOT 7/15 - m_rom[3]->set_device_load(FUNC(electron_romboxp_device::rom4_load), this); + m_rom[3]->set_device_load(FUNC(electron_romboxp_device::rom4_load)); /* cartridges */ ELECTRON_CARTSLOT(config, m_cart[0], DERIVED_CLOCK(1, 1), electron_cart, nullptr); // ROM SLOT 0/1 diff --git a/src/devices/bus/ep64/exdos.cpp b/src/devices/bus/ep64/exdos.cpp index a4487db6ba4..f443bb60693 100644 --- a/src/devices/bus/ep64/exdos.cpp +++ b/src/devices/bus/ep64/exdos.cpp @@ -144,8 +144,8 @@ void ep64_exdos_device::device_start() { m_slot->program().install_rom(0x080000, 0x087fff, m_rom->base()); - m_slot->io().install_readwrite_handler(0x10, 0x13, 0, 0x04, 0, read8sm_delegate(FUNC(wd_fdc_device_base::read), m_fdc.target()), write8sm_delegate(FUNC(wd_fdc_device_base::write), m_fdc.target())); - m_slot->io().install_readwrite_handler(0x18, 0x18, 0, 0x04, 0, READ8_DELEGATE(ep64_exdos_device, read), WRITE8_DELEGATE(ep64_exdos_device, write)); + m_slot->io().install_readwrite_handler(0x10, 0x13, 0, 0x04, 0, read8sm_delegate(*m_fdc, FUNC(wd_fdc_device_base::read)), write8sm_delegate(*m_fdc, FUNC(wd_fdc_device_base::write))); + m_slot->io().install_readwrite_handler(0x18, 0x18, 0, 0x04, 0, read8_delegate(*this, FUNC(ep64_exdos_device::read)), write8_delegate(*this, FUNC(ep64_exdos_device::write))); } diff --git a/src/devices/bus/generic/slot.cpp b/src/devices/bus/generic/slot.cpp index 557e1d8dcef..9d2f6294ab2 100644 --- a/src/devices/bus/generic/slot.cpp +++ b/src/devices/bus/generic/slot.cpp @@ -36,11 +36,11 @@ DEFINE_DEVICE_TYPE(GENERIC_CARTSLOT, generic_cartslot_device, "generic_cartslot" // device_generic_cart_interface - constructor //------------------------------------------------- -device_generic_cart_interface::device_generic_cart_interface(const machine_config &mconfig, device_t &device) - : device_slot_card_interface(mconfig, device), - m_rom(nullptr), - m_rom_size(0), - m_region(*this, DEVICE_SELF) +device_generic_cart_interface::device_generic_cart_interface(const machine_config &mconfig, device_t &device) : + device_slot_card_interface(mconfig, device), + m_rom(nullptr), + m_rom_size(0), + m_region(*this, DEVICE_SELF) { } @@ -95,17 +95,19 @@ generic_slot_device::generic_slot_device(const machine_config &mconfig, device_t m_must_be_loaded(false), m_width(GENERIC_ROM8_WIDTH), m_endianness(ENDIANNESS_LITTLE), - m_cart(nullptr) + m_cart(nullptr), + m_device_image_load(*this), + m_device_image_unload(*this) { } -generic_socket_device::generic_socket_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : generic_slot_device(mconfig, GENERIC_SOCKET, tag, owner, clock) +generic_socket_device::generic_socket_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + generic_slot_device(mconfig, GENERIC_SOCKET, tag, owner, clock) { } -generic_cartslot_device::generic_cartslot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : generic_slot_device(mconfig, GENERIC_CARTSLOT, tag, owner, clock) +generic_cartslot_device::generic_cartslot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + generic_slot_device(mconfig, GENERIC_CARTSLOT, tag, owner, clock) { } @@ -124,6 +126,8 @@ generic_slot_device::~generic_slot_device() void generic_slot_device::device_start() { m_cart = dynamic_cast(get_card_device()); + m_device_image_load.resolve(); + m_device_image_unload.resolve(); } diff --git a/src/devices/bus/generic/slot.h b/src/devices/bus/generic/slot.h index a67fd25b9e5..9df3bf44a76 100644 --- a/src/devices/bus/generic/slot.h +++ b/src/devices/bus/generic/slot.h @@ -78,8 +78,8 @@ public: generic_slot_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); virtual ~generic_slot_device(); - template void set_device_load(T &&... args) { m_device_image_load = load_delegate(std::forward(args)...); } - template void set_device_unload(T &&... args) { m_device_image_unload = unload_delegate(std::forward(args)...); } + template void set_device_load(T &&... args) { m_device_image_load.set(std::forward(args)...); } + template void set_device_unload(T &&... args) { m_device_image_unload.set(std::forward(args)...); } void set_interface(const char * interface) { m_interface = interface; } void set_default_card(const char * def) { m_default_card = def; } diff --git a/src/devices/bus/gio64/gio64.cpp b/src/devices/bus/gio64/gio64.cpp index 20caf53124b..ba35bb38c9d 100644 --- a/src/devices/bus/gio64/gio64.cpp +++ b/src/devices/bus/gio64/gio64.cpp @@ -93,9 +93,9 @@ void gio64_device::device_start() std::fill(std::begin(m_device_list), std::end(m_device_list), nullptr); m_space = &space(0); - m_space->install_readwrite_handler(0x00000000, 0x003fffff, read64_delegate(FUNC(gio64_device::no_gfx_r), this), write64_delegate(FUNC(gio64_device::no_gfx_w), this)); - m_space->install_readwrite_handler(0x00400000, 0x005fffff, read64_delegate(FUNC(gio64_device::no_exp0_r), this), write64_delegate(FUNC(gio64_device::no_exp0_w), this)); - m_space->install_readwrite_handler(0x00600000, 0x009fffff, read64_delegate(FUNC(gio64_device::no_exp1_r), this), write64_delegate(FUNC(gio64_device::no_exp1_w), this)); + m_space->install_readwrite_handler(0x00000000, 0x003fffff, read64_delegate(*this, FUNC(gio64_device::no_gfx_r)), write64_delegate(*this, FUNC(gio64_device::no_gfx_w))); + m_space->install_readwrite_handler(0x00400000, 0x005fffff, read64_delegate(*this, FUNC(gio64_device::no_exp0_r)), write64_delegate(*this, FUNC(gio64_device::no_exp0_w))); + m_space->install_readwrite_handler(0x00600000, 0x009fffff, read64_delegate(*this, FUNC(gio64_device::no_exp1_r)), write64_delegate(*this, FUNC(gio64_device::no_exp1_w))); } READ64_MEMBER(gio64_device::no_gfx_r) { return ~0ULL; } diff --git a/src/devices/bus/hp80_io/82937.cpp b/src/devices/bus/hp80_io/82937.cpp index 171d4a62204..c150b6d36fa 100644 --- a/src/devices/bus/hp80_io/82937.cpp +++ b/src/devices/bus/hp80_io/82937.cpp @@ -70,7 +70,7 @@ hp82937_io_card_device::~hp82937_io_card_device() void hp82937_io_card_device::install_read_write_handlers(address_space& space , uint16_t base_addr) { - space.install_readwrite_handler(base_addr , base_addr + 1 , READ8_DEVICE_DELEGATE(m_translator , hp_1mb5_device , cpu_r) , WRITE8_DEVICE_DELEGATE(m_translator , hp_1mb5_device , cpu_w)); + space.install_readwrite_handler(base_addr, base_addr + 1, read8_delegate(*m_translator, FUNC(hp_1mb5_device::cpu_r)), write8_delegate(*m_translator, FUNC(hp_1mb5_device::cpu_w))); } void hp82937_io_card_device::inten() diff --git a/src/devices/bus/hp9845_io/hp9845_io.cpp b/src/devices/bus/hp9845_io/hp9845_io.cpp index 663c8fd9977..a8e1d43c8bc 100644 --- a/src/devices/bus/hp9845_io/hp9845_io.cpp +++ b/src/devices/bus/hp9845_io/hp9845_io.cpp @@ -101,9 +101,9 @@ int hp9845_io_slot_device::get_rw_handlers(read16_delegate& rhandler , write16_d { hp9845_io_card_device *card = dynamic_cast(get_card_device()); - if (card != nullptr) { - rhandler = read16_delegate(FUNC(hp9845_io_card_device::reg_r) , card); - whandler = write16_delegate(FUNC(hp9845_io_card_device::reg_w) , card); + if (card) { + rhandler = read16_delegate(*card, FUNC(hp9845_io_card_device::reg_r)); + whandler = write16_delegate(*card, FUNC(hp9845_io_card_device::reg_w)); return card->get_sc(); } else { return -1; @@ -114,7 +114,7 @@ bool hp9845_io_slot_device::has_dual_sc() const { hp9845_io_card_device *card = dynamic_cast(get_card_device()); - if (card != nullptr) { + if (card) { return card->has_dual_sc(); } else { return false; @@ -129,7 +129,7 @@ void hp9845_io_card_device::set_slot_device(hp9845_io_slot_device* dev) m_slot_dev = dev; } -uint8_t hp9845_io_card_device::get_sc(void) +uint8_t hp9845_io_card_device::get_sc() { return m_select_code_port->read() + HP9845_IO_FIRST_SC; } diff --git a/src/devices/bus/hp9845_io/hp9845_io.h b/src/devices/bus/hp9845_io/hp9845_io.h index c62c8625563..b3018f7edf8 100644 --- a/src/devices/bus/hp9845_io/hp9845_io.h +++ b/src/devices/bus/hp9845_io/hp9845_io.h @@ -86,7 +86,7 @@ public: virtual DECLARE_WRITE16_MEMBER(reg_w) = 0; // SC getter - uint8_t get_sc(void); + uint8_t get_sc(); virtual bool has_dual_sc() const; diff --git a/src/devices/bus/hp_dio/hp98265a.cpp b/src/devices/bus/hp_dio/hp98265a.cpp index 623f2d00be1..436fbc1c910 100644 --- a/src/devices/bus/hp_dio/hp98265a.cpp +++ b/src/devices/bus/hp_dio/hp98265a.cpp @@ -164,8 +164,8 @@ void dio16_98265a_device::device_reset() program_space().install_readwrite_handler( 0x600000 + (code * 0x10000), 0x6007ff + (code * 0x10000), - read16_delegate(FUNC(dio16_98265a_device::io_r), this), - write16_delegate(FUNC(dio16_98265a_device::io_w), this)); + read16_delegate(*this, FUNC(dio16_98265a_device::io_r)), + write16_delegate(*this, FUNC(dio16_98265a_device::io_w))); program_space().install_device(0x6e0020, 0x6e003f, *m_spc, &mb87030_device::map, 0x00ff00ff); m_installed_io = true; } diff --git a/src/devices/bus/hp_dio/hp98543.cpp b/src/devices/bus/hp_dio/hp98543.cpp index 31251039ea6..280597f3a22 100644 --- a/src/devices/bus/hp_dio/hp98543.cpp +++ b/src/devices/bus/hp_dio/hp98543.cpp @@ -102,21 +102,21 @@ void dio16_98543_device::device_start() dio().install_memory( 0x200000, 0x27ffff, - read16_delegate(FUNC(dio16_98543_device::vram_r), this), - write16_delegate(FUNC(dio16_98543_device::vram_w), this)); + read16_delegate(*this, FUNC(dio16_98543_device::vram_r)), + write16_delegate(*this, FUNC(dio16_98543_device::vram_w))); dio().install_memory( 0x560000, 0x563fff, - read16_delegate(FUNC(dio16_98543_device::rom_r), this), - write16_delegate(FUNC(dio16_98543_device::rom_w), this)); + read16_delegate(*this, FUNC(dio16_98543_device::rom_r)), + write16_delegate(*this, FUNC(dio16_98543_device::rom_w))); dio().install_memory( 0x564000, 0x565fff, - read16_delegate(FUNC(dio16_98543_device::ctrl_r), this), - write16_delegate(FUNC(dio16_98543_device::ctrl_w), this)); + read16_delegate(*this, FUNC(dio16_98543_device::ctrl_r)), + write16_delegate(*this, FUNC(dio16_98543_device::ctrl_w))); dio().install_memory( 0x566000, 0x567fff, - read16_delegate(FUNC(nereid_device::ctrl_r), static_cast(m_nereid)), - write16_delegate(FUNC(nereid_device::ctrl_w), static_cast(m_nereid))); + read16_delegate(*m_nereid, FUNC(nereid_device::ctrl_r)), + write16_delegate(*m_nereid, FUNC(nereid_device::ctrl_w))); } void dio16_98543_device::device_reset() diff --git a/src/devices/bus/hp_dio/hp98544.cpp b/src/devices/bus/hp_dio/hp98544.cpp index 9565d4632d2..83cd9f25fe7 100644 --- a/src/devices/bus/hp_dio/hp98544.cpp +++ b/src/devices/bus/hp_dio/hp98544.cpp @@ -101,16 +101,16 @@ void dio16_98544_device::device_start() save_item(NAME(m_intreg)); dio().install_memory( 0x200000, 0x2fffff, - read16_delegate(FUNC(topcat_device::vram_r), static_cast(m_topcat)), - write16_delegate(FUNC(topcat_device::vram_w), static_cast(m_topcat))); + read16_delegate(*m_topcat, FUNC(topcat_device::vram_r)), + write16_delegate(*m_topcat, FUNC(topcat_device::vram_w))); dio().install_memory( 0x560000, 0x563fff, - read16_delegate(FUNC(dio16_98544_device::rom_r), this), - write16_delegate(FUNC(dio16_98544_device::rom_w), this)); + read16_delegate(*this, FUNC(dio16_98544_device::rom_r)), + write16_delegate(*this, FUNC(dio16_98544_device::rom_w))); dio().install_memory( 0x564000, 0x567fff, - read16_delegate(FUNC(topcat_device::ctrl_r), static_cast(m_topcat)), - write16_delegate(FUNC(topcat_device::ctrl_w), static_cast(m_topcat))); + read16_delegate(*m_topcat, FUNC(topcat_device::ctrl_r)), + write16_delegate(*m_topcat, FUNC(topcat_device::ctrl_w))); } //------------------------------------------------- diff --git a/src/devices/bus/hp_dio/hp98550.cpp b/src/devices/bus/hp_dio/hp98550.cpp index 28d87d5a52f..ed91b99ca3f 100644 --- a/src/devices/bus/hp_dio/hp98550.cpp +++ b/src/devices/bus/hp_dio/hp98550.cpp @@ -87,23 +87,23 @@ void dio32_98550_device::device_start() dio().install_memory( 0x200000, 0x3fffff, - read16_delegate(FUNC(dio32_98550_device::vram_r), this), - write16_delegate(FUNC(dio32_98550_device::vram_w), this)); + read16_delegate(*this, FUNC(dio32_98550_device::vram_r)), + write16_delegate(*this, FUNC(dio32_98550_device::vram_w))); dio().install_memory( 0x560000, 0x56ffff, - read16_delegate(FUNC(dio32_98550_device::rom_r), this), - write16_delegate(FUNC(dio32_98550_device::rom_w), this)); + read16_delegate(*this, FUNC(dio32_98550_device::rom_r)), + write16_delegate(*this, FUNC(dio32_98550_device::rom_w))); dio().install_memory( 0x564000, 0x5648ff, - read16_delegate(FUNC(dio32_98550_device::catseye_r), this), - write16_delegate(FUNC(dio32_98550_device::catseye_w), this)); + read16_delegate(*this, FUNC(dio32_98550_device::catseye_r)), + write16_delegate(*this, FUNC(dio32_98550_device::catseye_w))); dio().install_memory( 0x566000, 0x5660ff, - read16_delegate(FUNC(nereid_device::ctrl_r), &(*m_nereid)), - write16_delegate(FUNC(nereid_device::ctrl_w), &(*m_nereid))); + read16_delegate(*m_nereid, FUNC(nereid_device::ctrl_r)), + write16_delegate(*m_nereid, FUNC(nereid_device::ctrl_w))); } void dio32_98550_device::device_reset() diff --git a/src/devices/bus/hp_dio/hp98603a.cpp b/src/devices/bus/hp_dio/hp98603a.cpp index ac04f7479bd..9295fc1606d 100644 --- a/src/devices/bus/hp_dio/hp98603a.cpp +++ b/src/devices/bus/hp_dio/hp98603a.cpp @@ -67,8 +67,8 @@ void dio16_98603a_device::device_reset() { m_rom = device().machine().root_device().memregion(this->subtag(HP98603A_ROM_REGION).c_str())->base(); dio().install_memory(0x80000, 0xfffff, - read16_delegate(FUNC(dio16_98603a_device::rom_r), this), - write16_delegate(FUNC(dio16_98603a_device::rom_w), this)); + read16_delegate(*this, FUNC(dio16_98603a_device::rom_r)), + write16_delegate(*this, FUNC(dio16_98603a_device::rom_w))); } READ16_MEMBER(dio16_98603a_device::rom_r) diff --git a/src/devices/bus/hp_dio/hp98603b.cpp b/src/devices/bus/hp_dio/hp98603b.cpp index 6c8cff6b95a..638f5fba6e7 100644 --- a/src/devices/bus/hp_dio/hp98603b.cpp +++ b/src/devices/bus/hp_dio/hp98603b.cpp @@ -61,8 +61,9 @@ void dio16_98603b_device::device_start() void dio16_98603b_device::device_reset() { m_rom = device().machine().root_device().memregion(this->subtag(HP98603B_ROM_REGION).c_str())->base(); - dio().install_memory(0x100000, 0x1fffff, read16_delegate(FUNC(dio16_98603b_device::rom_r), this), - write16_delegate(FUNC(dio16_98603b_device::rom_w), this)); + dio().install_memory(0x100000, 0x1fffff, + read16_delegate(*this, FUNC(dio16_98603b_device::rom_r)), + write16_delegate(*this, FUNC(dio16_98603b_device::rom_w))); } READ16_MEMBER(dio16_98603b_device::rom_r) diff --git a/src/devices/bus/hp_dio/hp98620.cpp b/src/devices/bus/hp_dio/hp98620.cpp index fcd0e9d95aa..8988ef56266 100644 --- a/src/devices/bus/hp_dio/hp98620.cpp +++ b/src/devices/bus/hp_dio/hp98620.cpp @@ -75,8 +75,8 @@ void dio16_98620_device::device_reset() if (!m_installed_io) { program_space().install_readwrite_handler(0x500000, 0x50020f, - read16_delegate(FUNC(dio16_98620_device::dma_r), this), - write16_delegate(FUNC(dio16_98620_device::dma_w), this)); + read16_delegate(*this, FUNC(dio16_98620_device::dma_r)), + write16_delegate(*this, FUNC(dio16_98620_device::dma_w))); m_installed_io = true; } m_control = 0; diff --git a/src/devices/bus/hp_dio/hp98643.cpp b/src/devices/bus/hp_dio/hp98643.cpp index 57bc4d1a283..ae468d3d490 100644 --- a/src/devices/bus/hp_dio/hp98643.cpp +++ b/src/devices/bus/hp_dio/hp98643.cpp @@ -194,19 +194,19 @@ void dio16_98643_device::addrmap(address_map &map) { map(0x0000, 0x0001).rw(FUNC(dio16_98643_device::id_r), FUNC(dio16_98643_device::id_w)); map(0x0002, 0x0003).rw(FUNC(dio16_98643_device::sc_r), FUNC(dio16_98643_device::sc_w)); - map(0x4000, 0x4003).lrw16("lance", - [this](address_space &space, offs_t offset, u16 mem_mask) -> u16 { - m_sc |= REG_STATUS_ACK; - return m_lance->regs_r(space, offset, mem_mask); - }, - [this](address_space &space, offs_t offset, u16 data, u16 mem_mask) { - m_sc |= REG_STATUS_ACK; - return m_lance->regs_w(space, offset, data, mem_mask); - }); - - map(0x8000, 0xbfff).lrw16("lanceram", - [this](offs_t offset) -> u16 { return m_ram[offset]; }, - [this](offs_t offset, u16 data, u16 mem_mask) { COMBINE_DATA(&m_ram[offset]); }); + map(0x4000, 0x4003).lrw16( + [this] (address_space &space, offs_t offset, u16 mem_mask) -> u16 { + m_sc |= REG_STATUS_ACK; + return m_lance->regs_r(space, offset, mem_mask); + }, "lance_r", + [this] (address_space &space, offs_t offset, u16 data, u16 mem_mask) { + m_sc |= REG_STATUS_ACK; + return m_lance->regs_w(space, offset, data, mem_mask); + }, "lance_w"); + + map(0x8000, 0xbfff).lrw16( + NAME([this] (offs_t offset) -> u16 { return m_ram[offset]; }), + NAME([this] (offs_t offset, u16 data, u16 mem_mask) { COMBINE_DATA(&m_ram[offset]); })); map(0xc000, 0xffff).rw(FUNC(dio16_98643_device::novram_r), FUNC(dio16_98643_device::novram_w)); } diff --git a/src/devices/bus/hp_dio/hp98644.cpp b/src/devices/bus/hp_dio/hp98644.cpp index d3c347b6d31..8545220b074 100644 --- a/src/devices/bus/hp_dio/hp98644.cpp +++ b/src/devices/bus/hp_dio/hp98644.cpp @@ -161,8 +161,8 @@ void dio16_98644_device::device_reset() dio().install_memory( 0x600000 + (code * 0x10000), 0x6007ff + (code * 0x10000), - read16_delegate(FUNC(dio16_98644_device::io_r), this), - write16_delegate(FUNC(dio16_98644_device::io_w), this)); + read16_delegate(*this, FUNC(dio16_98644_device::io_r)), + write16_delegate(*this, FUNC(dio16_98644_device::io_w))); m_installed_io = true; } } diff --git a/src/devices/bus/hp_dio/human_interface.cpp b/src/devices/bus/hp_dio/human_interface.cpp index 509a2151a3b..3bf1823ffae 100644 --- a/src/devices/bus/hp_dio/human_interface.cpp +++ b/src/devices/bus/hp_dio/human_interface.cpp @@ -115,12 +115,12 @@ human_interface_device::human_interface_device(const machine_config &mconfig, de void human_interface_device::device_start() { program_space().install_readwrite_handler(0x420000, 0x420003, 0x0003, 0xfffc, 0, - read8_delegate(FUNC(upi41_cpu_device::upi41_master_r), &(*m_iocpu)), - write8_delegate(FUNC(upi41_cpu_device::upi41_master_w), &(*m_iocpu)), 0x00ff00ff); + read8_delegate(*m_iocpu, FUNC(upi41_cpu_device::upi41_master_r)), + write8_delegate(*m_iocpu, FUNC(upi41_cpu_device::upi41_master_w)), 0x00ff00ff); program_space().install_readwrite_handler(0x470000, 0x47001f, 0x1f, 0xffe0, 0, - read8_delegate(FUNC(human_interface_device::gpib_r), this), - write8_delegate(FUNC(human_interface_device::gpib_w), this), 0x00ff00ff); + read8_delegate(*this, FUNC(human_interface_device::gpib_r)), + write8_delegate(*this, FUNC(human_interface_device::gpib_w)), 0x00ff00ff); save_item(NAME(m_hil_read)); save_item(NAME(m_kbd_nmi)); diff --git a/src/devices/bus/intellec4/insdatastor.cpp b/src/devices/bus/intellec4/insdatastor.cpp index f271ef4b91f..9f4e3c53072 100644 --- a/src/devices/bus/intellec4/insdatastor.cpp +++ b/src/devices/bus/intellec4/insdatastor.cpp @@ -155,7 +155,7 @@ void imm4_22_device::map_ram_io() { memory_space().install_ram(start << 8, (start << 8) | 0x00ffU, m_memory); status_space().install_ram(start << 6, (start << 6) | 0x003fU, m_status); - ram_ports_space().install_write_handler(start << 2, (start << 2) | 0x03U, write8_delegate(FUNC(imm4_22_device::ram_out), this)); + ram_ports_space().install_write_handler(start << 2, (start << 2) | 0x03U, write8_delegate(*this, FUNC(imm4_22_device::ram_out))); } offs_t const rom_ports_start(offs_t(m_rom_page) << 6); @@ -163,7 +163,7 @@ void imm4_22_device::map_ram_io() offs_t const rom_ports_mirror(m_rom_mirror ? 0x1f00U : 0x0700U); rom_ports_space().install_readwrite_handler( rom_ports_start, rom_ports_end, 0U, rom_ports_mirror, 0U, - read8_delegate(FUNC(imm4_22_device::rom_in), this), write8_delegate(FUNC(imm4_22_device::rom_out), this)); + read8_delegate(*this, FUNC(imm4_22_device::rom_in)), write8_delegate(*this, FUNC(imm4_22_device::rom_out))); if (is_loaded()) map_prom(); diff --git a/src/devices/bus/intellec4/tapereader.cpp b/src/devices/bus/intellec4/tapereader.cpp index dad9c62f494..581735b39f0 100644 --- a/src/devices/bus/intellec4/tapereader.cpp +++ b/src/devices/bus/intellec4/tapereader.cpp @@ -50,10 +50,10 @@ void imm4_90_device::device_start() save_item(NAME(m_advance)); save_item(NAME(m_stepping)); - rom_ports_space().install_read_handler(0x0040U, 0x004fU, 0x0000U, 0x1f00U, 0x0000, read8_delegate(FUNC(imm4_90_device::rom4_in), this)); - rom_ports_space().install_read_handler(0x0060U, 0x006fU, 0x0000U, 0x1f00U, 0x0000, read8_delegate(FUNC(imm4_90_device::rom6_in), this)); - rom_ports_space().install_read_handler(0x0070U, 0x007fU, 0x0000U, 0x1f00U, 0x0000, read8_delegate(FUNC(imm4_90_device::rom7_in), this)); - rom_ports_space().install_write_handler(0x0040U, 0x004fU, 0x0000U, 0x1f00U, 0x0000, write8_delegate(FUNC(imm4_90_device::rom4_out), this)); + rom_ports_space().install_read_handler(0x0040U, 0x004fU, 0x0000U, 0x1f00U, 0x0000, read8_delegate(*this, FUNC(imm4_90_device::rom4_in))); + rom_ports_space().install_read_handler(0x0060U, 0x006fU, 0x0000U, 0x1f00U, 0x0000, read8_delegate(*this, FUNC(imm4_90_device::rom6_in))); + rom_ports_space().install_read_handler(0x0070U, 0x007fU, 0x0000U, 0x1f00U, 0x0000, read8_delegate(*this, FUNC(imm4_90_device::rom7_in))); + rom_ports_space().install_write_handler(0x0040U, 0x004fU, 0x0000U, 0x1f00U, 0x0000, write8_delegate(*this, FUNC(imm4_90_device::rom4_out))); } diff --git a/src/devices/bus/interpro/keyboard/lle.cpp b/src/devices/bus/interpro/keyboard/lle.cpp index 595130b4c74..8edfb8c1ab6 100644 --- a/src/devices/bus/interpro/keyboard/lle.cpp +++ b/src/devices/bus/interpro/keyboard/lle.cpp @@ -480,11 +480,11 @@ void lle_device_base::ext_map(address_map &map) // not clear what these addresses correspond to, possibly // used in manufacturer testing? if (VERBOSE & LOG_GENERAL) - map(0x7fe, 0x7ff).lw8("write", - [this](address_space &space, offs_t offset, u8 data, u8 mem_mask) - { - LOG("write offset 0x%03f data 0x%02x (%s)\n", offset, data, machine().describe_context()); - }); + map(0x7fe, 0x7ff).lw8( + [this] (offs_t offset, u8 data, u8 mem_mask) + { + LOG("write offset 0x%03f data 0x%02x (%s)\n", offset, data, machine().describe_context()); + }, "write"); } READ_LINE_MEMBER(lle_device_base::t0_r) diff --git a/src/devices/bus/interpro/sr/edge.cpp b/src/devices/bus/interpro/sr/edge.cpp index 4c6453a5341..b8927438efc 100644 --- a/src/devices/bus/interpro/sr/edge.cpp +++ b/src/devices/bus/interpro/sr/edge.cpp @@ -301,14 +301,14 @@ void edge1_device_base::map(address_map &map) void edge1_device_base::map_dynamic(address_map &map) { // TODO: map using lambdas until mixed-size submaps work - map(0x00000000, 0x0001ffff).lrw8("sram", - [this](address_space &space, offs_t offset, u8 mem_mask) { return m_sram->read(offset); }, - [this](address_space &space, offs_t offset, u8 data, u8 mem_mask) { m_sram->write(offset, data); }); + map(0x00000000, 0x0001ffff).lrw8( + NAME([this](address_space &space, offs_t offset, u8 mem_mask) { return m_sram->read(offset); }), + NAME([this](address_space &space, offs_t offset, u8 data, u8 mem_mask) { m_sram->write(offset, data); })); - map(0x01000000, 0x013fffff).lrw8("vram", - [this](address_space &space, offs_t offset, u8 mem_mask) { return m_vram->read((offset >> 2) | (offset & 0x3)); }, - [this](address_space &space, offs_t offset, u8 data, u8 mem_mask) { m_vram->write((offset >> 2) | (offset & 0x3), data); }); + map(0x01000000, 0x013fffff).lrw8( + NAME([this](address_space &space, offs_t offset, u8 mem_mask) { return m_vram->read((offset >> 2) | (offset & 0x3)); }), + NAME([this](address_space &space, offs_t offset, u8 data, u8 mem_mask) { m_vram->write((offset >> 2) | (offset & 0x3), data); })); //map(0x02028200, 0x0202827f).lr32("idprom", // [this](address_space &space, offs_t offset, u8 mem_mask) { return memregion("idprom")->as_u32(offset); }); @@ -350,8 +350,8 @@ void edge2plus_processor_device_base::map(address_map &map) { map(0x000, 0x003).rw(FUNC(edge2plus_processor_device_base::reg0_r), FUNC(edge2plus_processor_device_base::reg0_w)); - map(0x008, 0x008).lr8("mouse_x", []() { return 0; }); - map(0x00c, 0x00c).lr8("mouse_y", []() { return 0; }); + map(0x008, 0x008).lr8([]() { return 0; }, "mouse_x"); + map(0x00c, 0x00c).lr8([]() { return 0; }, "mouse_y"); map(0x010, 0x01f).rw("scc", FUNC(z80scc_device::dc_ab_r), FUNC(z80scc_device::dc_ab_w)).umask32(0x000000ff); @@ -377,18 +377,18 @@ void edge2plus_framebuffer_device_base::map_dynamic(address_map &map) { // TODO: map using lambdas until mixed-size submaps work - map(0x00000000, 0x0003ffff).lrw8("sram", - [this](address_space &space, offs_t offset, u8 mem_mask) { return m_sram->read(offset); }, - [this](address_space &space, offs_t offset, u8 data, u8 mem_mask) { m_sram->write(offset, data); }); + map(0x00000000, 0x0003ffff).lrw8( + NAME([this](address_space &space, offs_t offset, u8 mem_mask) { return m_sram->read(offset); }), + NAME([this](address_space &space, offs_t offset, u8 data, u8 mem_mask) { m_sram->write(offset, data); })); - map(0x01000000, 0x01ffffff).lrw8("vram", - [this](address_space &space, offs_t offset, u8 mem_mask) { return m_vram->read(offset); }, - [this](address_space &space, offs_t offset, u8 data, u8 mem_mask) { m_vram->write(offset, data); }); + map(0x01000000, 0x01ffffff).lrw8( + NAME([this](address_space &space, offs_t offset, u8 mem_mask) { return m_vram->read(offset); }), + NAME([this](address_space &space, offs_t offset, u8 data, u8 mem_mask) { m_vram->write(offset, data); })); map(0x02028088, 0x0202808b).w(FUNC(edge2plus_framebuffer_device_base::select_w)); - map(0x02028200, 0x0202827f).lr32("idprom", - [this](address_space &space, offs_t offset, u8 mem_mask) { return m_select == 0 ? memregion("idprom")->as_u32(offset) : space.unmap(); }); + map(0x02028200, 0x0202827f).lr32( + NAME([this](address_space &space, offs_t offset, u8 mem_mask) { return m_select == 0 ? memregion("idprom")->as_u32(offset) : space.unmap(); })); map(0x02028290, 0x02028293).w(FUNC(edge2plus_framebuffer_device_base::lut_select_w)); map(0x02028300, 0x02028303).w(FUNC(edge2plus_framebuffer_device_base::unk_300_w)); @@ -832,12 +832,12 @@ WRITE_LINE_MEMBER(edge2plus_processor_device_base::holda) void edge2plus_processor_device_base::dsp1_map(address_map &map) { - map(0x00000, 0x3ffff).lrw8("sram", - [this](address_space &space, offs_t offset, u8 mem_mask) { return m_sram->read(offset); }, - [this](address_space &space, offs_t offset, u8 data, u8 mem_mask) { m_sram->write(offset, data); }); + map(0x00000, 0x3ffff).lrw8( + NAME([this](address_space &space, offs_t offset, u8 mem_mask) { return m_sram->read(offset); }), + NAME([this](address_space &space, offs_t offset, u8 data, u8 mem_mask) { m_sram->write(offset, data); })); - map(0x40000, 0x7ffff).lr32("prg1", - [this](address_space &space, offs_t offset, u32 mem_mask) { return memregion("prg1")->as_u32(offset); }); + map(0x40000, 0x7ffff).lr32( + NAME([this](address_space &space, offs_t offset, u32 mem_mask) { return memregion("prg1")->as_u32(offset); })); } diff --git a/src/devices/bus/interpro/sr/sr.h b/src/devices/bus/interpro/sr/sr.h index 858590f5075..feb8724547e 100644 --- a/src/devices/bus/interpro/sr/sr.h +++ b/src/devices/bus/interpro/sr/sr.h @@ -75,7 +75,7 @@ public: offs_t end = start + (CBUS_SIZE - 1); // install the idprom region - read32_delegate idprom_r([idprom](address_space &space, offs_t offset, u32 mem_mask) { return idprom->as_u32(offset); }, idprom->name()); + read32_delegate idprom_r(*this, [idprom] (address_space &space, offs_t offset, u32 mem_mask) { return idprom->as_u32(offset); }, idprom->name()); m_main_space->install_read_handler(start, start | 0x7f, idprom_r); m_io_space->install_read_handler(start, start | 0x7f, idprom_r); @@ -171,7 +171,7 @@ public: offs_t end = start + (SRX_SIZE - 1); // install the idprom region - read32_delegate idprom_r([idprom](address_space &space, offs_t offset, u32 mem_mask) { return idprom->as_u32(offset); }, idprom->name()); + read32_delegate idprom_r(*this, [idprom] (address_space &space, offs_t offset, u32 mem_mask) { return idprom->as_u32(offset); }, idprom->name()); m_main_space->install_read_handler(start | 0x7f80, start | 0x7fff, idprom_r); m_io_space->install_read_handler(start | 0x7f80, start | 0x7fff, idprom_r); diff --git a/src/devices/bus/isa/3c503.cpp b/src/devices/bus/isa/3c503.cpp index 34202e2246d..44955657475 100644 --- a/src/devices/bus/isa/3c503.cpp +++ b/src/devices/bus/isa/3c503.cpp @@ -32,8 +32,8 @@ void el2_3c503_device::device_start() { memset(m_rom, 0, 8*1024); // empty m_dp8390->set_mac(mac); set_isa_device(); - m_isa->install_device(0x0300, 0x030f, read8_delegate(FUNC(el2_3c503_device::el2_3c503_loport_r), this), write8_delegate(FUNC(el2_3c503_device::el2_3c503_loport_w), this)); - m_isa->install_device(0x0700, 0x070f, read8_delegate(FUNC(el2_3c503_device::el2_3c503_hiport_r), this), write8_delegate(FUNC(el2_3c503_device::el2_3c503_hiport_w), this)); + m_isa->install_device(0x0300, 0x030f, read8_delegate(*this, FUNC(el2_3c503_device::el2_3c503_loport_r)), write8_delegate(*this, FUNC(el2_3c503_device::el2_3c503_loport_w))); + m_isa->install_device(0x0700, 0x070f, read8_delegate(*this, FUNC(el2_3c503_device::el2_3c503_hiport_r)), write8_delegate(*this, FUNC(el2_3c503_device::el2_3c503_hiport_w))); // TODO: This is wrong, fix if anything actually uses it // DMA can change in runtime diff --git a/src/devices/bus/isa/3c505.cpp b/src/devices/bus/isa/3c505.cpp index 6dd695165c2..8efc0471ff4 100644 --- a/src/devices/bus/isa/3c505.cpp +++ b/src/devices/bus/isa/3c505.cpp @@ -327,19 +327,19 @@ void isa16_3c505_device::map_io(address_map &map) * A read or write to I/O location 00H will cause an active transition on * the CA input. */ - map(0x0000, 0x0000).lrw8("ca", - [this]() - { - m_net->ca(1); - m_net->ca(0); - - return 0; - }, - [this](u8 data) - { - m_net->ca(1); - m_net->ca(0); - }); + map(0x0000, 0x0000).lrw8( + NAME([this]() + { + m_net->ca(1); + m_net->ca(0); + + return 0; + }), + NAME([this](u8 data) + { + m_net->ca(1); + m_net->ca(0); + })); /* * A read or write to I/O location 80H will produce a CAS before RAS cycle diff --git a/src/devices/bus/isa/adlib.cpp b/src/devices/bus/isa/adlib.cpp index 6a900b0e09d..192f6091ad5 100644 --- a/src/devices/bus/isa/adlib.cpp +++ b/src/devices/bus/isa/adlib.cpp @@ -72,7 +72,7 @@ isa8_adlib_device::isa8_adlib_device(const machine_config &mconfig, const char * void isa8_adlib_device::device_start() { set_isa_device(); - m_isa->install_device(0x0388, 0x0389, read8_delegate( FUNC(isa8_adlib_device::ym3812_16_r), this ), write8_delegate( FUNC(isa8_adlib_device::ym3812_16_w), this ) ); + m_isa->install_device(0x0388, 0x0389, read8_delegate(*this, FUNC(isa8_adlib_device::ym3812_16_r)), write8_delegate(*this, FUNC(isa8_adlib_device::ym3812_16_w))); } //------------------------------------------------- diff --git a/src/devices/bus/isa/aga.cpp b/src/devices/bus/isa/aga.cpp index 0e974bf5f41..78e87d54213 100644 --- a/src/devices/bus/isa/aga.cpp +++ b/src/devices/bus/isa/aga.cpp @@ -103,9 +103,9 @@ void isa8_aga_device::device_start() m_videoram = std::make_unique(0x10000); set_isa_device(); - m_isa->install_memory(0xb0000, 0xbffff, read8_delegate(FUNC(isa8_aga_device::pc_aga_videoram_r),this), write8_delegate(FUNC(isa8_aga_device::pc_aga_videoram_w),this)); - m_isa->install_device(0x3b0, 0x3bf, read8_delegate(FUNC(isa8_aga_device::pc_aga_mda_r), this), write8_delegate(FUNC(isa8_aga_device::pc_aga_mda_w), this)); - m_isa->install_device(0x3d0, 0x3df, read8_delegate(FUNC(isa8_aga_device::pc_aga_cga_r), this), write8_delegate(FUNC(isa8_aga_device::pc_aga_cga_w), this)); + m_isa->install_memory(0xb0000, 0xbffff, read8_delegate(*this, FUNC(isa8_aga_device::pc_aga_videoram_r)), write8_delegate(*this, FUNC(isa8_aga_device::pc_aga_videoram_w))); + m_isa->install_device(0x3b0, 0x3bf, read8_delegate(*this, FUNC(isa8_aga_device::pc_aga_mda_r)), write8_delegate(*this, FUNC(isa8_aga_device::pc_aga_mda_w))); + m_isa->install_device(0x3d0, 0x3df, read8_delegate(*this, FUNC(isa8_aga_device::pc_aga_cga_r)), write8_delegate(*this, FUNC(isa8_aga_device::pc_aga_cga_w))); /* Initialise the cga palette */ @@ -181,9 +181,9 @@ void isa8_aga_pc200_device::device_start() m_videoram = std::make_unique(0x10000); set_isa_device(); - m_isa->install_memory(0xb0000, 0xbffff, read8_delegate(FUNC(isa8_aga_pc200_device::pc200_videoram_r),this), write8_delegate(FUNC(isa8_aga_pc200_device::pc200_videoram_w),this)); - m_isa->install_device(0x3b0, 0x3bf, read8_delegate(FUNC(isa8_aga_pc200_device::pc_aga_mda_r), this), write8_delegate(FUNC(isa8_aga_pc200_device::pc_aga_mda_w), this)); - m_isa->install_device(0x3d0, 0x3df, read8_delegate(FUNC(isa8_aga_pc200_device::pc200_cga_r), this), write8_delegate(FUNC(isa8_aga_pc200_device::pc200_cga_w), this)); + m_isa->install_memory(0xb0000, 0xbffff, read8_delegate(*this, FUNC(isa8_aga_pc200_device::pc200_videoram_r)), write8_delegate(*this, FUNC(isa8_aga_pc200_device::pc200_videoram_w))); + m_isa->install_device(0x3b0, 0x3bf, read8_delegate(*this, FUNC(isa8_aga_pc200_device::pc_aga_mda_r)), write8_delegate(*this, FUNC(isa8_aga_pc200_device::pc_aga_mda_w))); + m_isa->install_device(0x3d0, 0x3df, read8_delegate(*this, FUNC(isa8_aga_pc200_device::pc200_cga_r)), write8_delegate(*this, FUNC(isa8_aga_pc200_device::pc200_cga_w))); /* Initialise the cga palette */ @@ -271,7 +271,7 @@ void isa8_aga_device::device_add_mconfig(machine_config &config) m_mc6845->set_screen(AGA_SCREEN_NAME); m_mc6845->set_show_border_area(false); m_mc6845->set_char_width(8); - m_mc6845->set_update_row_callback(FUNC(isa8_aga_device::aga_update_row), this); + m_mc6845->set_update_row_callback(FUNC(isa8_aga_device::aga_update_row)); m_mc6845->out_hsync_callback().set(FUNC(isa8_aga_device::hsync_changed)); m_mc6845->out_vsync_callback().set(FUNC(isa8_aga_device::vsync_changed)); } diff --git a/src/devices/bus/isa/aha1542c.cpp b/src/devices/bus/isa/aha1542c.cpp index d5c35166b1f..d0bb112728c 100644 --- a/src/devices/bus/isa/aha1542c.cpp +++ b/src/devices/bus/isa/aha1542c.cpp @@ -228,7 +228,7 @@ void aha1542c_device::z84c0010_mem(address_map &map) map(0xa000, 0xa000).portr("SWITCHES"); map(0xb000, 0xb000).w(FUNC(aha1542c_device::local_latch_w)); map(0xe000, 0xe0ff).ram(); // probably PC<->Z80 communication area - map(0xe003, 0xe003).lr8("e003_r", []() { return 0x20; }); + map(0xe003, 0xe003).lr8(NAME([] () { return 0x20; })); } u8 aha1542cp_device::eeprom_r() @@ -377,8 +377,9 @@ void aha1542c_device::device_start() { set_isa_device(); m_isa->install_rom(this, 0xdc000, 0xdffff, "aha1542", "aha1542"); - m_isa->install_device(0x330, 0x333, read8_delegate(FUNC( aha1542cf_device::aha1542_r ), this), - write8_delegate(FUNC( aha1542cf_device::aha1542_w ), this) ); + m_isa->install_device(0x330, 0x333, + read8_delegate(*this, FUNC(aha1542cf_device::aha1542_r)), + write8_delegate(*this, FUNC(aha1542cf_device::aha1542_w))); } diff --git a/src/devices/bus/isa/asc88.cpp b/src/devices/bus/isa/asc88.cpp index c04570725f8..8843aad29a1 100644 --- a/src/devices/bus/isa/asc88.cpp +++ b/src/devices/bus/isa/asc88.cpp @@ -53,11 +53,11 @@ void asc88_device::device_reset() m_isa->install_rom(this, baseaddr, baseaddr | 0x37ff, "asc88", "bios"); m_isa->install_bank(baseaddr | 0x3800, baseaddr | 0x3fef, "ascram", m_ram.get()); m_isa->install_memory(baseaddr | 0x3ff0, baseaddr | 0x3ff7, - read8sm_delegate(FUNC(ncr5380n_device::read), &*m_scsic), - write8sm_delegate(FUNC(ncr5380n_device::write), &*m_scsic)); + read8sm_delegate(*m_scsic, FUNC(ncr5380n_device::read)), + write8sm_delegate(*m_scsic, FUNC(ncr5380n_device::write))); m_isa->install_memory(baseaddr | 0x3ff8, baseaddr | 0x3ff8, - read8smo_delegate(FUNC(asc88_device::eeprom_r), this), - write8smo_delegate(FUNC(asc88_device::control_w), this)); + read8smo_delegate(*this, FUNC(asc88_device::eeprom_r)), + write8smo_delegate(*this, FUNC(asc88_device::control_w))); control_w(0); } diff --git a/src/devices/bus/isa/cga.cpp b/src/devices/bus/isa/cga.cpp index 78c35957884..5b825bac73f 100644 --- a/src/devices/bus/isa/cga.cpp +++ b/src/devices/bus/isa/cga.cpp @@ -273,10 +273,10 @@ void isa8_cga_device::device_add_mconfig(machine_config &config) m_crtc->set_screen(nullptr); m_crtc->set_show_border_area(false); m_crtc->set_char_width(8); - m_crtc->set_update_row_callback(FUNC(isa8_cga_device::crtc_update_row), this); + m_crtc->set_update_row_callback(FUNC(isa8_cga_device::crtc_update_row)); m_crtc->out_hsync_callback().set(FUNC(isa8_cga_device::hsync_changed)); m_crtc->out_vsync_callback().set(FUNC(isa8_cga_device::vsync_changed)); - m_crtc->set_reconfigure_callback(FUNC(isa8_cga_device::reconfigure), this); + m_crtc->set_reconfigure_callback(FUNC(isa8_cga_device::reconfigure)); } ioport_constructor isa8_cga_device::device_input_ports() const @@ -331,7 +331,7 @@ void isa8_cga_device::device_start() set_isa_device(); m_vram.resize(m_vram_size); - m_isa->install_device(0x3d0, 0x3df, read8_delegate( FUNC(isa8_cga_device::io_read), this ), write8_delegate( FUNC(isa8_cga_device::io_write), this ) ); + m_isa->install_device(0x3d0, 0x3df, read8_delegate(*this, FUNC(isa8_cga_device::io_read)), write8_delegate(*this, FUNC(isa8_cga_device::io_write))); m_isa->install_bank(0xb8000, 0xb8000 + (std::min)(0x8000, m_vram_size) - 1, "bank_cga", &m_vram[0]); if(m_vram_size == 0x4000) m_isa->install_bank(0xbc000, 0xbffff, "bank_cga", &m_vram[0]); @@ -1346,13 +1346,13 @@ void isa8_cga_pc1512_device::device_start() { isa8_cga_device::device_start(); - m_isa->install_device(0x3d0, 0x3df, read8_delegate( FUNC(isa8_cga_pc1512_device::io_read), this ), write8_delegate( FUNC(isa8_cga_pc1512_device::io_write), this ) ); + m_isa->install_device(0x3d0, 0x3df, read8_delegate(*this, FUNC(isa8_cga_pc1512_device::io_read)), write8_delegate(*this, FUNC(isa8_cga_pc1512_device::io_write))); m_isa->install_bank(0xb8000, 0xbbfff, "bank1", &m_vram[0]); address_space &space = m_isa->memspace(); - space.install_write_handler( 0xb8000, 0xbbfff, write8_delegate( FUNC(isa8_cga_pc1512_device::vram_w), this ) ); - space.install_write_handler( 0xbc000, 0xbffff, write8_delegate( FUNC(isa8_cga_pc1512_device::vram_w), this ) ); + space.install_write_handler(0xb8000, 0xbbfff, write8_delegate(*this, FUNC(isa8_cga_pc1512_device::vram_w))); + space.install_write_handler(0xbc000, 0xbffff, write8_delegate(*this, FUNC(isa8_cga_pc1512_device::vram_w))); } void isa8_cga_pc1512_device::device_reset() @@ -1485,7 +1485,7 @@ void isa8_wyse700_device::device_start() { isa8_cga_device::device_start(); - m_isa->install_device(0x3d0, 0x3df, read8_delegate( FUNC(isa8_wyse700_device::io_read), this ), write8_delegate( FUNC(isa8_wyse700_device::io_write), this ) ); + m_isa->install_device(0x3d0, 0x3df, read8_delegate(*this, FUNC(isa8_wyse700_device::io_read)), write8_delegate(*this, FUNC(isa8_wyse700_device::io_write))); m_isa->install_bank(0xa0000, 0xaffff, "bank_wy1", &m_vram[0x00000]); m_isa->install_bank(0xb0000, 0xbffff, "bank_cga", &m_vram[0x10000]); } @@ -1547,7 +1547,7 @@ void isa8_ec1841_0002_device::device_start() { isa8_cga_device::device_start(); - m_isa->install_device(0x3d0, 0x3df, read8_delegate( FUNC(isa8_ec1841_0002_device::io_read), this ), write8_delegate( FUNC(isa8_ec1841_0002_device::io_write), this ) ); + m_isa->install_device(0x3d0, 0x3df, read8_delegate(*this, FUNC(isa8_ec1841_0002_device::io_read)), write8_delegate(*this, FUNC(isa8_ec1841_0002_device::io_write))); } void isa8_ec1841_0002_device::device_reset() @@ -1580,12 +1580,12 @@ WRITE8_MEMBER( isa8_ec1841_0002_device::io_write ) m_p3df = data; if (data & 1) { m_isa->install_memory(0xb8000, 0xb9fff, - read8_delegate( FUNC(isa8_ec1841_0002_device::char_ram_read), this), - write8_delegate(FUNC(isa8_ec1841_0002_device::char_ram_write), this) ); + read8_delegate( *this, FUNC(isa8_ec1841_0002_device::char_ram_read)), + write8_delegate(*this, FUNC(isa8_ec1841_0002_device::char_ram_write))); if(m_vram_size == 0x4000) m_isa->install_memory(0xbc000, 0xbdfff, - read8_delegate( FUNC(isa8_ec1841_0002_device::char_ram_read), this), - write8_delegate(FUNC(isa8_ec1841_0002_device::char_ram_write), this) ); + read8_delegate( *this, FUNC(isa8_ec1841_0002_device::char_ram_read)), + write8_delegate(*this, FUNC(isa8_ec1841_0002_device::char_ram_write))); } else { m_isa->install_bank(0xb8000, 0xb8000 + (std::min)(0x8000, m_vram_size) - 1, "bank_cga", &m_vram[0]); if(m_vram_size == 0x4000) @@ -1699,7 +1699,7 @@ void isa8_cga_m24_device::device_add_mconfig(machine_config &config) isa8_cga_device::device_add_mconfig(config); subdevice(CGA_SCREEN_NAME)->set_raw(XTAL(14'318'181), 912, 0, 640, 462, 0, 400); - m_crtc->set_reconfigure_callback(FUNC(isa8_cga_m24_device::reconfigure), this); + m_crtc->set_reconfigure_callback(FUNC(isa8_cga_m24_device::reconfigure)); } isa8_cga_m24_device::isa8_cga_m24_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : @@ -1912,8 +1912,8 @@ const tiny_rom_entry *isa8_cga_cportiii_device::device_rom_region() const void isa8_cga_cportiii_device::device_reset() { isa8_cga_m24_device::device_reset(); - m_isa->install_device(0x13c6, 0x13c7, read8_delegate(FUNC(isa8_cga_cportiii_device::port_13c6_r), this), write8_delegate(FUNC(isa8_cga_cportiii_device::port_13c6_w), this)); - m_isa->install_device(0x23c6, 0x23c7, read8_delegate(FUNC(isa8_cga_cportiii_device::port_23c6_r), this), write8_delegate(FUNC(isa8_cga_cportiii_device::port_23c6_w), this)); + m_isa->install_device(0x13c6, 0x13c7, read8_delegate(*this, FUNC(isa8_cga_cportiii_device::port_13c6_r)), write8_delegate(*this, FUNC(isa8_cga_cportiii_device::port_13c6_w))); + m_isa->install_device(0x23c6, 0x23c7, read8_delegate(*this, FUNC(isa8_cga_cportiii_device::port_23c6_r)), write8_delegate(*this, FUNC(isa8_cga_cportiii_device::port_23c6_w))); m_palette->set_pen_color(0, 100, 25, 0); m_chr_gen_offset[0] = m_chr_gen_offset[2] = 0x0000; m_chr_gen_offset[1] = m_chr_gen_offset[3] = 0x1000; @@ -1947,7 +1947,7 @@ WRITE8_MEMBER(isa8_cga_cportiii_device::port_23c6_w) { m_mode2 = data & 1; if(BIT(data, 3)) - m_isa->install_memory(0xb8000, 0xb9fff, read8_delegate(FUNC(isa8_cga_cportiii_device::char_ram_read), this), write8_delegate(FUNC(isa8_cga_cportiii_device::char_ram_write), this)); + m_isa->install_memory(0xb8000, 0xb9fff, read8_delegate(*this, FUNC(isa8_cga_cportiii_device::char_ram_read)), write8_delegate(*this, FUNC(isa8_cga_cportiii_device::char_ram_write))); else m_isa->install_bank(0xb8000, 0xb8000 + 0x8000 - 1, "bank_cga", &m_vram[0]); } diff --git a/src/devices/bus/isa/chessmdr.cpp b/src/devices/bus/isa/chessmdr.cpp index 00182d9e5ff..8af46575421 100644 --- a/src/devices/bus/isa/chessmdr.cpp +++ b/src/devices/bus/isa/chessmdr.cpp @@ -49,7 +49,7 @@ void isa8_chessmdr_device::device_reset() { // MAME doesn't allow reading ioport at device_start u16 port = ioport("DSW")->read() * 0x40 + 0x10; - m_isa->install_device(port, port+1, read8_delegate(FUNC(isa8_chessmdr_device::chessmdr_r), this), write8_delegate(FUNC(isa8_chessmdr_device::chessmdr_w), this)); + m_isa->install_device(port, port+1, read8_delegate(*this, FUNC(isa8_chessmdr_device::chessmdr_r)), write8_delegate(*this, FUNC(isa8_chessmdr_device::chessmdr_w))); m_installed = true; } diff --git a/src/devices/bus/isa/chessmsr.cpp b/src/devices/bus/isa/chessmsr.cpp index bd878b18a67..fb1485045dc 100644 --- a/src/devices/bus/isa/chessmsr.cpp +++ b/src/devices/bus/isa/chessmsr.cpp @@ -60,7 +60,7 @@ void isa8_chessmsr_device::device_reset() { // MAME doesn't allow reading ioport at device_start u16 port = ioport("DSW")->read() * 0x40 + 0x10; - m_isa->install_device(port, port+1, read8_delegate(FUNC(isa8_chessmsr_device::chessmsr_r), this), write8_delegate(FUNC(isa8_chessmsr_device::chessmsr_w), this)); + m_isa->install_device(port, port+1, read8_delegate(*this, FUNC(isa8_chessmsr_device::chessmsr_r)), write8_delegate(*this, FUNC(isa8_chessmsr_device::chessmsr_w))); m_maincpu->set_unscaled_clock(ioport("CPU")->read() ? (32_MHz_XTAL) : (30_MHz_XTAL/2)); diff --git a/src/devices/bus/isa/com.cpp b/src/devices/bus/isa/com.cpp index 6ab3c393ccd..4a1cc1ebd00 100644 --- a/src/devices/bus/isa/com.cpp +++ b/src/devices/bus/isa/com.cpp @@ -118,10 +118,10 @@ isa8_com_device::isa8_com_device(const machine_config &mconfig, device_type type void isa8_com_device::device_start() { set_isa_device(); - m_isa->install_device(0x03f8, 0x03ff, read8sm_delegate(FUNC(ins8250_device::ins8250_r), subdevice("uart_0")), write8sm_delegate(FUNC(ins8250_device::ins8250_w), subdevice("uart_0")) ); - m_isa->install_device(0x02f8, 0x02ff, read8sm_delegate(FUNC(ins8250_device::ins8250_r), subdevice("uart_1")), write8sm_delegate(FUNC(ins8250_device::ins8250_w), subdevice("uart_1")) ); -// m_isa->install_device(0x03e8, 0x03ef, read8sm_delegate(FUNC(ins8250_device::ins8250_r), subdevice("uart_2")), write8sm_delegate(FUNC(ins8250_device::ins8250_w), subdevice("uart_2")) ); -// m_isa->install_device(0x02e8, 0x02ef, read8sm_delegate(FUNC(ins8250_device::ins8250_r), subdevice("uart_3")), write8sm_delegate(FUNC(ins8250_device::ins8250_w), subdevice("uart_3")) ); + m_isa->install_device(0x03f8, 0x03ff, read8sm_delegate(*subdevice("uart_0"), FUNC(ins8250_device::ins8250_r)), write8sm_delegate(*subdevice("uart_0"), FUNC(ins8250_device::ins8250_w))); + m_isa->install_device(0x02f8, 0x02ff, read8sm_delegate(*subdevice("uart_1"), FUNC(ins8250_device::ins8250_r)), write8sm_delegate(*subdevice("uart_1"), FUNC(ins8250_device::ins8250_w))); +// m_isa->install_device(0x03e8, 0x03ef, read8sm_delegate(*subdevice("uart_2"), FUNC(ins8250_device::ins8250_r)), write8sm_delegate(*subdevice("uart_2"), FUNC(ins8250_device::ins8250_w))); +// m_isa->install_device(0x02e8, 0x02ef, read8sm_delegate(*subdevice("uart_3"), FUNC(ins8250_device::ins8250_r)), write8sm_delegate(*subdevice("uart_3"), FUNC(ins8250_device::ins8250_w))); } //------------------------------------------------- diff --git a/src/devices/bus/isa/dectalk.cpp b/src/devices/bus/isa/dectalk.cpp index da45a2ec18b..07aa5181a9d 100644 --- a/src/devices/bus/isa/dectalk.cpp +++ b/src/devices/bus/isa/dectalk.cpp @@ -224,7 +224,7 @@ READ8_MEMBER(dectalk_isa_device::read) void dectalk_isa_device::device_start() { set_isa_device(); - m_isa->install_device(0x0250, 0x0257, read8_delegate(FUNC(dectalk_isa_device::read), this), write8_delegate(FUNC(dectalk_isa_device::write), this)); + m_isa->install_device(0x0250, 0x0257, read8_delegate(*this, FUNC(dectalk_isa_device::read)), write8_delegate(*this, FUNC(dectalk_isa_device::write))); } void dectalk_isa_device::device_reset() diff --git a/src/devices/bus/isa/ega.cpp b/src/devices/bus/isa/ega.cpp index 32175304f20..abca884e810 100644 --- a/src/devices/bus/isa/ega.cpp +++ b/src/devices/bus/isa/ega.cpp @@ -549,7 +549,7 @@ void isa8_ega_device::device_add_mconfig(machine_config &config) CRTC_EGA(config, m_crtc_ega, 16.257_MHz_XTAL/8); m_crtc_ega->set_screen(EGA_SCREEN_NAME); m_crtc_ega->config_set_hpixels_per_column(8); - m_crtc_ega->set_row_update_callback(FUNC(isa8_ega_device::ega_update_row), this); + m_crtc_ega->set_row_update_callback(FUNC(isa8_ega_device::ega_update_row)); m_crtc_ega->res_out_de_callback().set(FUNC(isa8_ega_device::de_changed)); m_crtc_ega->res_out_hsync_callback().set(FUNC(isa8_ega_device::hsync_changed)); m_crtc_ega->res_out_vsync_callback().set(FUNC(isa8_ega_device::vsync_changed)); @@ -637,9 +637,9 @@ void isa8_ega_device::device_start() m_plane[3] = m_videoram + 0x30000; m_isa->install_rom(this, 0xc0000, 0xc3fff, "ega", "user2"); - m_isa->install_device(0x3b0, 0x3bf, read8_delegate(FUNC(isa8_ega_device::pc_ega8_3b0_r), this), write8_delegate(FUNC(isa8_ega_device::pc_ega8_3b0_w), this)); - m_isa->install_device(0x3c0, 0x3cf, read8_delegate(FUNC(isa8_ega_device::pc_ega8_3c0_r), this), write8_delegate(FUNC(isa8_ega_device::pc_ega8_3c0_w), this)); - m_isa->install_device(0x3d0, 0x3df, read8_delegate(FUNC(isa8_ega_device::pc_ega8_3d0_r), this), write8_delegate(FUNC(isa8_ega_device::pc_ega8_3d0_w), this)); + m_isa->install_device(0x3b0, 0x3bf, read8_delegate(*this, FUNC(isa8_ega_device::pc_ega8_3b0_r)), write8_delegate(*this, FUNC(isa8_ega_device::pc_ega8_3b0_w))); + m_isa->install_device(0x3c0, 0x3cf, read8_delegate(*this, FUNC(isa8_ega_device::pc_ega8_3c0_r)), write8_delegate(*this, FUNC(isa8_ega_device::pc_ega8_3c0_w))); + m_isa->install_device(0x3d0, 0x3df, read8_delegate(*this, FUNC(isa8_ega_device::pc_ega8_3d0_r)), write8_delegate(*this, FUNC(isa8_ega_device::pc_ega8_3d0_w))); } //------------------------------------------------- @@ -693,7 +693,7 @@ void isa8_ega_device::install_banks() case 0x00: /* 0xA0000, 128KB */ if ( m_misc_output & 0x02 ) { - m_isa->install_memory(0xa0000, 0xbffff, read8_delegate(FUNC(isa8_ega_device::read), this), write8_delegate(FUNC(isa8_ega_device::write), this)); + m_isa->install_memory(0xa0000, 0xbffff, read8_delegate(*this, FUNC(isa8_ega_device::read)), write8_delegate(*this, FUNC(isa8_ega_device::write))); } else { @@ -705,7 +705,7 @@ void isa8_ega_device::install_banks() case 0x04: /* 0xA0000, 64KB */ if ( m_misc_output & 0x02 ) { - m_isa->install_memory(0xa0000, 0xaffff, read8_delegate(FUNC(isa8_ega_device::read), this), write8_delegate(FUNC(isa8_ega_device::write), this)); + m_isa->install_memory(0xa0000, 0xaffff, read8_delegate(*this, FUNC(isa8_ega_device::read)), write8_delegate(*this, FUNC(isa8_ega_device::write))); } else { @@ -718,7 +718,7 @@ void isa8_ega_device::install_banks() case 0x08: /* 0xB0000, 32KB */ if ( m_misc_output & 0x02 ) { - m_isa->install_memory(0xb0000, 0xb7fff, read8_delegate(FUNC(isa8_ega_device::read), this), write8_delegate(FUNC(isa8_ega_device::write), this)); + m_isa->install_memory(0xb0000, 0xb7fff, read8_delegate(*this, FUNC(isa8_ega_device::read)), write8_delegate(*this, FUNC(isa8_ega_device::write))); } else { @@ -731,7 +731,7 @@ void isa8_ega_device::install_banks() case 0x0c: /* 0xB8000, 32KB */ if ( m_misc_output & 0x02 ) { - m_isa->install_memory(0xb8000, 0xbffff, read8_delegate(FUNC(isa8_ega_device::read), this), write8_delegate(FUNC(isa8_ega_device::write), this)); + m_isa->install_memory(0xb8000, 0xbffff, read8_delegate(*this, FUNC(isa8_ega_device::read)), write8_delegate(*this, FUNC(isa8_ega_device::write))); } else { diff --git a/src/devices/bus/isa/eis_sad8852.cpp b/src/devices/bus/isa/eis_sad8852.cpp index f4d634d1033..6e22a5f6d76 100644 --- a/src/devices/bus/isa/eis_sad8852.cpp +++ b/src/devices/bus/isa/eis_sad8852.cpp @@ -236,8 +236,8 @@ void isa16_sad8852_device::device_reset() { m_isa->install_device( 0x378, 0x378, // Wrong, need to find real i/o addresses - read8_delegate(FUNC( isa16_sad8852_device::sad8852_r ), this), - write8_delegate(FUNC( isa16_sad8852_device::sad8852_w ), this)); + read8_delegate(*this, FUNC(isa16_sad8852_device::sad8852_r)), + write8_delegate(*this, FUNC(isa16_sad8852_device::sad8852_w))); m_irq = m_isairq->read(); m_installed = true; } diff --git a/src/devices/bus/isa/finalchs.cpp b/src/devices/bus/isa/finalchs.cpp index 84b81220c42..da3cd23ec1b 100644 --- a/src/devices/bus/isa/finalchs.cpp +++ b/src/devices/bus/isa/finalchs.cpp @@ -58,7 +58,7 @@ void isa8_finalchs_device::device_reset() { // MAME doesn't allow reading ioport at device_start u16 port = ioport("DSW")->read() * 0x10 + 0x100; - m_isa->install_device(port, port+1, read8_delegate(FUNC(isa8_finalchs_device::finalchs_r), this), write8_delegate(FUNC(isa8_finalchs_device::finalchs_w), this)); + m_isa->install_device(port, port+1, read8_delegate(*this, FUNC(isa8_finalchs_device::finalchs_r)), write8_delegate(*this, FUNC(isa8_finalchs_device::finalchs_w))); m_installed = true; } diff --git a/src/devices/bus/isa/gblaster.cpp b/src/devices/bus/isa/gblaster.cpp index e579070fbf6..d3035091580 100644 --- a/src/devices/bus/isa/gblaster.cpp +++ b/src/devices/bus/isa/gblaster.cpp @@ -104,9 +104,9 @@ isa8_gblaster_device::isa8_gblaster_device(const machine_config &mconfig, const void isa8_gblaster_device::device_start() { set_isa_device(); - m_isa->install_device(0x0220, 0x0221, read8_delegate( FUNC(isa8_gblaster_device::saa1099_16_r), this ), write8_delegate( FUNC(isa8_gblaster_device::saa1099_1_16_w), this ) ); - m_isa->install_device(0x0222, 0x0223, read8_delegate( FUNC(isa8_gblaster_device::saa1099_16_r), this ), write8_delegate( FUNC(isa8_gblaster_device::saa1099_2_16_w), this ) ); - m_isa->install_device(0x0224, 0x022F, read8_delegate( FUNC(isa8_gblaster_device::detect_r), this ), write8_delegate( FUNC(isa8_gblaster_device::detect_w), this ) ); + m_isa->install_device(0x0220, 0x0221, read8_delegate(*this, FUNC(isa8_gblaster_device::saa1099_16_r)), write8_delegate(*this, FUNC(isa8_gblaster_device::saa1099_1_16_w))); + m_isa->install_device(0x0222, 0x0223, read8_delegate(*this, FUNC(isa8_gblaster_device::saa1099_16_r)), write8_delegate(*this, FUNC(isa8_gblaster_device::saa1099_2_16_w))); + m_isa->install_device(0x0224, 0x022F, read8_delegate(*this, FUNC(isa8_gblaster_device::detect_r)), write8_delegate(*this, FUNC(isa8_gblaster_device::detect_w))); } //------------------------------------------------- diff --git a/src/devices/bus/isa/gus.cpp b/src/devices/bus/isa/gus.cpp index 423c1e3629f..bb0d6e30b26 100644 --- a/src/devices/bus/isa/gus.cpp +++ b/src/devices/bus/isa/gus.cpp @@ -1296,10 +1296,10 @@ isa16_gus_device::isa16_gus_device(const machine_config &mconfig, const char *ta void isa16_gus_device::device_start() { set_isa_device(); - m_isa->install_device(0x0200, 0x0201, read8_delegate(FUNC(isa16_gus_device::joy_r),this), write8_delegate(FUNC(isa16_gus_device::joy_w),this) ); - m_isa->install_device(0x0220, 0x022f, read8_delegate(FUNC(isa16_gus_device::board_r),this), write8_delegate(FUNC(isa16_gus_device::board_w),this) ); - m_isa->install_device(0x0320, 0x0327, read8_delegate(FUNC(isa16_gus_device::synth_r),this), write8_delegate(FUNC(isa16_gus_device::synth_w),this) ); - m_isa->install_device(0x0388, 0x0389, read8_delegate(FUNC(isa16_gus_device::adlib_r),this), write8_delegate(FUNC(isa16_gus_device::adlib_w),this) ); + m_isa->install_device(0x0200, 0x0201, read8_delegate(*this, FUNC(isa16_gus_device::joy_r)), write8_delegate(*this, FUNC(isa16_gus_device::joy_w))); + m_isa->install_device(0x0220, 0x022f, read8_delegate(*this, FUNC(isa16_gus_device::board_r)), write8_delegate(*this, FUNC(isa16_gus_device::board_w))); + m_isa->install_device(0x0320, 0x0327, read8_delegate(*this, FUNC(isa16_gus_device::synth_r)), write8_delegate(*this, FUNC(isa16_gus_device::synth_w))); + m_isa->install_device(0x0388, 0x0389, read8_delegate(*this, FUNC(isa16_gus_device::adlib_r)), write8_delegate(*this, FUNC(isa16_gus_device::adlib_w))); } void isa16_gus_device::device_reset() diff --git a/src/devices/bus/isa/hdc.cpp b/src/devices/bus/isa/hdc.cpp index 2492d0eaa89..8d5d84bfe1e 100644 --- a/src/devices/bus/isa/hdc.cpp +++ b/src/devices/bus/isa/hdc.cpp @@ -987,7 +987,7 @@ isa8_hdc_ec1841_device::isa8_hdc_ec1841_device(const machine_config &mconfig, co void isa8_hdc_device::device_start() { set_isa_device(); - m_isa->install_device(0x0320, 0x0323, read8_delegate( FUNC(isa8_hdc_device::pc_hdc_r), this ), write8_delegate( FUNC(isa8_hdc_device::pc_hdc_w), this ) ); + m_isa->install_device(0x0320, 0x0323, read8_delegate(*this, FUNC(isa8_hdc_device::pc_hdc_r)), write8_delegate(*this, FUNC(isa8_hdc_device::pc_hdc_w))); m_isa->set_dma_channel(3, this, false); } diff --git a/src/devices/bus/isa/ibm_mfc.cpp b/src/devices/bus/isa/ibm_mfc.cpp index 40ce54ff6fc..b7f5d8e70b5 100644 --- a/src/devices/bus/isa/ibm_mfc.cpp +++ b/src/devices/bus/isa/ibm_mfc.cpp @@ -463,7 +463,7 @@ isa8_ibm_mfc_device::isa8_ibm_mfc_device(const machine_config &mconfig, const ch void isa8_ibm_mfc_device::device_start() { set_isa_device(); - m_isa->install_device(0x2a20, 0x2a20 + 15, read8_delegate(FUNC(isa8_ibm_mfc_device::ibm_mfc_r), this), write8_delegate(FUNC(isa8_ibm_mfc_device::ibm_mfc_w), this)); + m_isa->install_device(0x2a20, 0x2a20 + 15, read8_delegate(*this, FUNC(isa8_ibm_mfc_device::ibm_mfc_r)), write8_delegate(*this, FUNC(isa8_ibm_mfc_device::ibm_mfc_w))); } diff --git a/src/devices/bus/isa/lpt.cpp b/src/devices/bus/isa/lpt.cpp index e47404a498d..5c4baf5aaeb 100644 --- a/src/devices/bus/isa/lpt.cpp +++ b/src/devices/bus/isa/lpt.cpp @@ -45,14 +45,11 @@ void isa8_lpt_device::device_start() void isa8_lpt_device::device_reset() { m_is_primary = (ioport("DSW")->read() & 1) ? false : true; + pc_lpt_device &lpt(*subdevice("lpt")); if (m_is_primary) - { - m_isa->install_device(0x0378, 0x037b, read8_delegate(FUNC(pc_lpt_device::read), subdevice("lpt")), write8_delegate(FUNC(pc_lpt_device::write), subdevice("lpt"))); - } + m_isa->install_device(0x0378, 0x037b, read8_delegate(lpt, FUNC(pc_lpt_device::read)), write8_delegate(lpt, FUNC(pc_lpt_device::write))); else - { - m_isa->install_device(0x0278, 0x027b, read8_delegate(FUNC(pc_lpt_device::read), subdevice("lpt")), write8_delegate(FUNC(pc_lpt_device::write), subdevice("lpt"))); - } + m_isa->install_device(0x0278, 0x027b, read8_delegate(lpt, FUNC(pc_lpt_device::read)), write8_delegate(lpt, FUNC(pc_lpt_device::write))); } WRITE_LINE_MEMBER(isa8_lpt_device::pc_cpu_line) diff --git a/src/devices/bus/isa/mc1502_fdc.cpp b/src/devices/bus/isa/mc1502_fdc.cpp index 3f85534a72b..1760f602115 100644 --- a/src/devices/bus/isa/mc1502_fdc.cpp +++ b/src/devices/bus/isa/mc1502_fdc.cpp @@ -205,16 +205,12 @@ void mc1502_fdc_device::device_start() set_isa_device(); // BIOS 5.0-5.2x - m_isa->install_device(0x010c, 0x010f, - read8sm_delegate(FUNC(fd1793_device::read), m_fdc.target()), - write8sm_delegate(FUNC(fd1793_device::write), m_fdc.target())); - m_isa->install_device(0x0100, 0x010b, read8_delegate( FUNC(mc1502_fdc_device::mc1502_fdc_r), this ), write8_delegate( FUNC(mc1502_fdc_device::mc1502_fdc_w), this ) ); + m_isa->install_device(0x010c, 0x010f, read8sm_delegate(*m_fdc, FUNC(fd1793_device::read)), write8sm_delegate(*m_fdc, FUNC(fd1793_device::write))); + m_isa->install_device(0x0100, 0x010b, read8_delegate(*this, FUNC(mc1502_fdc_device::mc1502_fdc_r)), write8_delegate(*this, FUNC(mc1502_fdc_device::mc1502_fdc_w))); // BIOS 5.3x - m_isa->install_device(0x0048, 0x004b, - read8sm_delegate(FUNC(fd1793_device::read), m_fdc.target()), - write8sm_delegate(FUNC(fd1793_device::write), m_fdc.target())); - m_isa->install_device(0x004c, 0x004f, read8_delegate( FUNC(mc1502_fdc_device::mc1502_fdcv2_r), this ), write8_delegate( FUNC(mc1502_fdc_device::mc1502_fdc_w), this ) ); + m_isa->install_device(0x0048, 0x004b, read8sm_delegate(*m_fdc, FUNC(fd1793_device::read)), write8sm_delegate(*m_fdc, FUNC(fd1793_device::write))); + m_isa->install_device(0x004c, 0x004f, read8_delegate(*this, FUNC(mc1502_fdc_device::mc1502_fdcv2_r)), write8_delegate(*this, FUNC(mc1502_fdc_device::mc1502_fdc_w))); motor_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(mc1502_fdc_device::motor_callback),this)); motor_on = 0; diff --git a/src/devices/bus/isa/mda.cpp b/src/devices/bus/isa/mda.cpp index eca9cbaa5a6..a620c891580 100644 --- a/src/devices/bus/isa/mda.cpp +++ b/src/devices/bus/isa/mda.cpp @@ -131,7 +131,7 @@ void isa8_mda_device::device_add_mconfig(machine_config &config) m_crtc->set_screen(MDA_SCREEN_NAME); m_crtc->set_show_border_area(false); m_crtc->set_char_width(9); - m_crtc->set_update_row_callback(FUNC(isa8_mda_device::crtc_update_row), this); + m_crtc->set_update_row_callback(FUNC(isa8_mda_device::crtc_update_row)); m_crtc->out_hsync_callback().set(FUNC(isa8_mda_device::hsync_changed)); m_crtc->out_vsync_callback().set(FUNC(isa8_mda_device::vsync_changed)); @@ -182,7 +182,7 @@ void isa8_mda_device::device_start() set_isa_device(); m_videoram.resize(0x1000); - m_isa->install_device(0x3b0, 0x3bf, read8_delegate( FUNC(isa8_mda_device::io_read), this ), write8_delegate( FUNC(isa8_mda_device::io_write), this ) ); + m_isa->install_device(0x3b0, 0x3bf, read8_delegate(*this, FUNC(isa8_mda_device::io_read)), write8_delegate(*this, FUNC(isa8_mda_device::io_write))); m_isa->install_bank(0xb0000, 0xb0fff, "bank_mda", &m_videoram[0]); m_isa->install_bank(0xb1000, 0xb1fff, "bank_mda", &m_videoram[0]); m_isa->install_bank(0xb2000, 0xb2fff, "bank_mda", &m_videoram[0]); @@ -558,7 +558,7 @@ void isa8_hercules_device::device_add_mconfig(machine_config &config) m_crtc->set_screen(HERCULES_SCREEN_NAME); m_crtc->set_show_border_area(false); m_crtc->set_char_width(9); - m_crtc->set_update_row_callback(FUNC(isa8_hercules_device::crtc_update_row), this); + m_crtc->set_update_row_callback(FUNC(isa8_hercules_device::crtc_update_row)); m_crtc->out_hsync_callback().set(FUNC(isa8_mda_device::hsync_changed)); m_crtc->out_vsync_callback().set(FUNC(isa8_mda_device::vsync_changed)); @@ -601,7 +601,7 @@ void isa8_hercules_device::device_start() m_videoram.resize(0x10000); set_isa_device(); - m_isa->install_device(0x3b0, 0x3bf, read8_delegate( FUNC(isa8_hercules_device::io_read), this ), write8_delegate( FUNC(isa8_hercules_device::io_write), this ) ); + m_isa->install_device(0x3b0, 0x3bf, read8_delegate(*this, FUNC(isa8_hercules_device::io_read)), write8_delegate(*this, FUNC(isa8_hercules_device::io_write))); m_isa->install_bank(0xb0000, 0xbffff, "bank_hercules", &m_videoram[0]); /* Initialise the mda palette */ @@ -772,7 +772,7 @@ void isa8_ec1840_0002_device::device_add_mconfig(machine_config &config) m_crtc->set_screen(MDA_SCREEN_NAME); m_crtc->set_show_border_area(false); m_crtc->set_char_width(8); - m_crtc->set_update_row_callback(FUNC(isa8_mda_device::crtc_update_row), this); + m_crtc->set_update_row_callback(FUNC(isa8_mda_device::crtc_update_row)); m_crtc->out_hsync_callback().set(FUNC(isa8_mda_device::hsync_changed)); m_crtc->out_vsync_callback().set(FUNC(isa8_mda_device::vsync_changed)); } @@ -1094,7 +1094,7 @@ void isa8_epc_mda_device::device_add_mconfig(machine_config &config) m_crtc->set_show_border_area(false); m_crtc->set_char_width(8); - m_crtc->set_update_row_callback(FUNC(isa8_epc_mda_device::crtc_update_row), this); + m_crtc->set_update_row_callback(FUNC(isa8_epc_mda_device::crtc_update_row)); m_crtc->out_hsync_callback().set(FUNC(isa8_epc_mda_device::hsync_changed)); m_crtc->out_vsync_callback().set(FUNC(isa8_epc_mda_device::vsync_changed)); @@ -1175,13 +1175,13 @@ void isa8_epc_mda_device::device_reset() if (m_installed == false) { - m_isa->install_device(0x3b0, 0x3bf, read8_delegate( FUNC(isa8_epc_mda_device::io_read), this ), write8_delegate( FUNC(isa8_epc_mda_device::io_write), this ) ); + m_isa->install_device(0x3b0, 0x3bf, read8_delegate(*this, FUNC(isa8_epc_mda_device::io_read)), write8_delegate(*this, FUNC(isa8_epc_mda_device::io_write))); m_isa->install_bank(0xb0000, 0xb7fff, "bank_epc", &m_videoram[0]); // Monochrome emulation mode VRAM address // This check allows a color monitor adapter to be installed at this address range if color emulation is disabled if (m_color_mode & 1) { - m_isa->install_device(0x3d0, 0x3df, read8_delegate( FUNC(isa8_epc_mda_device::io_read), this ), write8_delegate( FUNC(isa8_epc_mda_device::io_write), this ) ); + m_isa->install_device(0x3d0, 0x3df, read8_delegate(*this, FUNC(isa8_epc_mda_device::io_read)), write8_delegate(*this, FUNC(isa8_epc_mda_device::io_write))); m_isa->install_bank(0xb8000, 0xbffff, "bank_epc", &m_videoram[0]); // Color emulation mode VRAM address, but same 32KB areas as there are only this amount on the board } m_installed = true; diff --git a/src/devices/bus/isa/mpu401.cpp b/src/devices/bus/isa/mpu401.cpp index 2ce9e1feae2..b7a49506094 100644 --- a/src/devices/bus/isa/mpu401.cpp +++ b/src/devices/bus/isa/mpu401.cpp @@ -77,7 +77,7 @@ void isa8_mpu401_device::device_start() { set_isa_device(); - m_isa->install_device(0x330, 0x0331, READ8_DEVICE_DELEGATE(m_mpu401, mpu401_device, mpu_r), WRITE8_DEVICE_DELEGATE(m_mpu401, mpu401_device, mpu_w)); + m_isa->install_device(0x330, 0x0331, read8_delegate(*m_mpu401, FUNC(mpu401_device::mpu_r)), write8_delegate(*m_mpu401, FUNC(mpu401_device::mpu_w))); } //------------------------------------------------- diff --git a/src/devices/bus/isa/myb3k_com.cpp b/src/devices/bus/isa/myb3k_com.cpp index 88987e87e41..e2d6facff40 100644 --- a/src/devices/bus/isa/myb3k_com.cpp +++ b/src/devices/bus/isa/myb3k_com.cpp @@ -103,16 +103,16 @@ void isa8_myb3k_com_device::device_reset() // IO base factory setting is 0x540 uint32_t base = m_iobase->read(); m_isa->install_device(base, base + 1, - read8sm_delegate(FUNC(i8251_device::read), m_usart.target()), - write8sm_delegate(FUNC(i8251_device::write), m_usart.target()) ); + read8sm_delegate(*m_usart, FUNC(i8251_device::read)), + write8sm_delegate(*m_usart, FUNC(i8251_device::write))); m_isa->install_device(base + 2, base + 2, - read8_delegate(FUNC(isa8_myb3k_com_device::dce_status), this), - write8_delegate(FUNC(isa8_myb3k_com_device::dce_control), this) ); + read8_delegate(*this, FUNC(isa8_myb3k_com_device::dce_status)), + write8_delegate(*this, FUNC(isa8_myb3k_com_device::dce_control))); m_isa->install_device(base + 4, base + 7, - read8sm_delegate(FUNC(pit8253_device::read), subdevice("pit")), - write8sm_delegate(FUNC(pit8253_device::write), subdevice("pit")) ); + read8sm_delegate(*subdevice("pit"), FUNC(pit8253_device::read)), + write8sm_delegate(*subdevice("pit"), FUNC(pit8253_device::write))); m_irq = m_isairq->read(); m_installed = true; diff --git a/src/devices/bus/isa/ne1000.cpp b/src/devices/bus/isa/ne1000.cpp index 1eaef942105..0be12869dca 100644 --- a/src/devices/bus/isa/ne1000.cpp +++ b/src/devices/bus/isa/ne1000.cpp @@ -31,7 +31,7 @@ void ne1000_device::device_start() { memcpy(m_prom, mac, 6); m_dp8390->set_mac(mac); set_isa_device(); - m_isa->install_device(0x0300, 0x031f, read8_delegate(FUNC(ne1000_device::ne1000_port_r), this), write8_delegate(FUNC(ne1000_device::ne1000_port_w), this)); + m_isa->install_device(0x0300, 0x031f, read8_delegate(*this, FUNC(ne1000_device::ne1000_port_r)), write8_delegate(*this, FUNC(ne1000_device::ne1000_port_w))); } void ne1000_device::device_reset() { diff --git a/src/devices/bus/isa/ne2000.cpp b/src/devices/bus/isa/ne2000.cpp index 3ad2cc592ef..246447836ba 100644 --- a/src/devices/bus/isa/ne2000.cpp +++ b/src/devices/bus/isa/ne2000.cpp @@ -31,7 +31,7 @@ void ne2000_device::device_start() { memcpy(m_prom, mac, 6); m_dp8390->set_mac(mac); set_isa_device(); - m_isa->install16_device(0x0300, 0x031f, read16_delegate(FUNC(ne2000_device::ne2000_port_r), this), write16_delegate(FUNC(ne2000_device::ne2000_port_w), this)); + m_isa->install16_device(0x0300, 0x031f, read16_delegate(*this, FUNC(ne2000_device::ne2000_port_r)), write16_delegate(*this, FUNC(ne2000_device::ne2000_port_w))); } void ne2000_device::device_reset() { diff --git a/src/devices/bus/isa/num9rev.cpp b/src/devices/bus/isa/num9rev.cpp index ebe44a379f4..00e22a31101 100644 --- a/src/devices/bus/isa/num9rev.cpp +++ b/src/devices/bus/isa/num9rev.cpp @@ -94,13 +94,13 @@ void isa8_number_9_rev_device::device_start() { set_isa_device(); - m_isa->install_memory(0xc0000, 0xc0001, read8sm_delegate(FUNC(upd7220_device::read), (upd7220_device *)m_upd7220), write8sm_delegate(FUNC(upd7220_device::write), (upd7220_device *)m_upd7220)); - m_isa->install_memory(0xc0100, 0xc03ff, read8_delegate(FUNC(isa8_number_9_rev_device::pal8_r), this), write8_delegate(FUNC(isa8_number_9_rev_device::pal8_w), this)); - m_isa->install_memory(0xc0400, 0xc0401, read8_delegate(FUNC(isa8_number_9_rev_device::bank_r), this), write8_delegate(FUNC(isa8_number_9_rev_device::bank_w), this)); - m_isa->install_memory(0xc0500, 0xc06ff, read8_delegate(FUNC(isa8_number_9_rev_device::overlay_r), this), write8_delegate(FUNC(isa8_number_9_rev_device::overlay_w), this)); - m_isa->install_memory(0xc0700, 0xc070f, read8_delegate(FUNC(isa8_number_9_rev_device::ctrl_r), this), write8_delegate(FUNC(isa8_number_9_rev_device::ctrl_w), this)); - m_isa->install_memory(0xc1000, 0xc3fff, read8_delegate(FUNC(isa8_number_9_rev_device::pal12_r), this), write8_delegate(FUNC(isa8_number_9_rev_device::pal12_w), this)); - m_isa->install_memory(0xa0000, 0xaffff, read8_delegate(FUNC(isa8_number_9_rev_device::read8), this), write8_delegate(FUNC(isa8_number_9_rev_device::write8), this)); + m_isa->install_memory(0xc0000, 0xc0001, read8sm_delegate(*m_upd7220, FUNC(upd7220_device::read)), write8sm_delegate(*m_upd7220, FUNC(upd7220_device::write))); + m_isa->install_memory(0xc0100, 0xc03ff, read8_delegate(*this, FUNC(isa8_number_9_rev_device::pal8_r)), write8_delegate(*this, FUNC(isa8_number_9_rev_device::pal8_w))); + m_isa->install_memory(0xc0400, 0xc0401, read8_delegate(*this, FUNC(isa8_number_9_rev_device::bank_r)), write8_delegate(*this, FUNC(isa8_number_9_rev_device::bank_w))); + m_isa->install_memory(0xc0500, 0xc06ff, read8_delegate(*this, FUNC(isa8_number_9_rev_device::overlay_r)), write8_delegate(*this, FUNC(isa8_number_9_rev_device::overlay_w))); + m_isa->install_memory(0xc0700, 0xc070f, read8_delegate(*this, FUNC(isa8_number_9_rev_device::ctrl_r)), write8_delegate(*this, FUNC(isa8_number_9_rev_device::ctrl_w))); + m_isa->install_memory(0xc1000, 0xc3fff, read8_delegate(*this, FUNC(isa8_number_9_rev_device::pal12_r)), write8_delegate(*this, FUNC(isa8_number_9_rev_device::pal12_w))); + m_isa->install_memory(0xa0000, 0xaffff, read8_delegate(*this, FUNC(isa8_number_9_rev_device::read8)), write8_delegate(*this, FUNC(isa8_number_9_rev_device::write8))); } //------------------------------------------------- diff --git a/src/devices/bus/isa/omti8621.cpp b/src/devices/bus/isa/omti8621.cpp index bea87f420ee..38560f26df6 100644 --- a/src/devices/bus/isa/omti8621.cpp +++ b/src/devices/bus/isa/omti8621.cpp @@ -309,7 +309,7 @@ void omti8621_device::device_reset() int esdi_base = io_bases[m_iobase->read() & 7]; // install the ESDI ports - m_isa->install16_device(esdi_base, esdi_base + 7, read16_delegate(FUNC(omti8621_device::read), this), write16_delegate(FUNC(omti8621_device::write), this)); + m_isa->install16_device(esdi_base, esdi_base + 7, read16_delegate(*this, FUNC(omti8621_device::read)), write16_delegate(*this, FUNC(omti8621_device::write))); // and the onboard AT FDC ports if (m_iobase->read() & 8) diff --git a/src/devices/bus/isa/p1_fdc.cpp b/src/devices/bus/isa/p1_fdc.cpp index 9b62451e65a..5d3b25b3d5a 100644 --- a/src/devices/bus/isa/p1_fdc.cpp +++ b/src/devices/bus/isa/p1_fdc.cpp @@ -174,10 +174,8 @@ void p1_fdc_device::device_start() { set_isa_device(); m_isa->install_rom(this, 0xe0000, 0xe07ff, "XXX", "p1_fdc"); - m_isa->install_device(0x00c0, 0x00c3, - read8sm_delegate(FUNC(fd1793_device::read), m_fdc.target()), - write8sm_delegate(FUNC(fd1793_device::write), m_fdc.target())); - m_isa->install_device(0x00c4, 0x00c7, read8_delegate( FUNC(p1_fdc_device::p1_fdc_r), this ), write8_delegate( FUNC(p1_fdc_device::p1_fdc_w), this ) ); + m_isa->install_device(0x00c0, 0x00c3, read8sm_delegate(*m_fdc, FUNC(fd1793_device::read)), write8sm_delegate(*m_fdc, FUNC(fd1793_device::write))); + m_isa->install_device(0x00c4, 0x00c7, read8_delegate(*this, FUNC(p1_fdc_device::p1_fdc_r)), write8_delegate(*this, FUNC(p1_fdc_device::p1_fdc_w))); } diff --git a/src/devices/bus/isa/p1_hdc.cpp b/src/devices/bus/isa/p1_hdc.cpp index 129c7a6ce37..36f93811694 100644 --- a/src/devices/bus/isa/p1_hdc.cpp +++ b/src/devices/bus/isa/p1_hdc.cpp @@ -127,9 +127,7 @@ void p1_hdc_device::device_start() { set_isa_device(); m_isa->install_rom(this, 0xe2000, 0xe27ff, "XXX", "p1_hdc"); - m_isa->install_memory(0xd0000, 0xd0fff, - READ8_DELEGATE(p1_hdc_device, p1_HDC_r), - WRITE8_DELEGATE(p1_hdc_device, p1_HDC_w) ); + m_isa->install_memory(0xd0000, 0xd0fff, read8_delegate(*this, FUNC(p1_hdc_device::p1_HDC_r)), write8_delegate(*this, FUNC(p1_hdc_device::p1_HDC_w))); } diff --git a/src/devices/bus/isa/p1_sound.cpp b/src/devices/bus/isa/p1_sound.cpp index b8e37a57368..0311264fb44 100644 --- a/src/devices/bus/isa/p1_sound.cpp +++ b/src/devices/bus/isa/p1_sound.cpp @@ -161,28 +161,28 @@ void p1_sound_device::device_start() // EFC00 -- ADC output m_isa->install_memory(0xea000, 0xea01f, - read8_delegate(FUNC(p1_sound_device::adc_r), this), // XXX not really - write8_delegate(FUNC(p1_sound_device::dac_w), this)); + read8_delegate(*this, FUNC(p1_sound_device::adc_r)), // XXX not really + write8_delegate(*this, FUNC(p1_sound_device::dac_w))); m_isa->install_memory(0xee000, 0xee000, - read8smo_delegate(FUNC(i8251_device::data_r), m_midi.target()), - write8smo_delegate(FUNC(i8251_device::data_w), m_midi.target())); + read8smo_delegate(*m_midi, FUNC(i8251_device::data_r)), + write8smo_delegate(*m_midi, FUNC(i8251_device::data_w))); m_isa->install_memory(0xee002, 0xee002, - read8smo_delegate(FUNC(i8251_device::status_r), m_midi.target()), - write8smo_delegate(FUNC(i8251_device::control_w), m_midi.target())); + read8smo_delegate(*m_midi, FUNC(i8251_device::status_r)), + write8smo_delegate(*m_midi, FUNC(i8251_device::control_w))); // sync generator m_isa->install_memory(0xef000, 0xef007, - read8_delegate(FUNC(p1_sound_device::d14_r), this), - write8_delegate(FUNC(p1_sound_device::d14_w), this)); + read8_delegate(*this, FUNC(p1_sound_device::d14_r)), + write8_delegate(*this, FUNC(p1_sound_device::d14_w))); // 6 music channels m_isa->install_memory(0xef400, 0xef407, - read8_delegate(FUNC(p1_sound_device::d16_r), this), - write8_delegate(FUNC(p1_sound_device::d16_w), this)); + read8_delegate(*this, FUNC(p1_sound_device::d16_r)), + write8_delegate(*this, FUNC(p1_sound_device::d16_w))); m_isa->install_memory(0xef800, 0xef807, - read8_delegate(FUNC(p1_sound_device::d17_r), this), - write8_delegate(FUNC(p1_sound_device::d17_w), this)); + read8_delegate(*this, FUNC(p1_sound_device::d17_r)), + write8_delegate(*this, FUNC(p1_sound_device::d17_w))); } diff --git a/src/devices/bus/isa/pc1640_iga.cpp b/src/devices/bus/isa/pc1640_iga.cpp index dfab59f2e76..7b7b5a89354 100644 --- a/src/devices/bus/isa/pc1640_iga.cpp +++ b/src/devices/bus/isa/pc1640_iga.cpp @@ -102,7 +102,7 @@ void isa8_pc1640_iga_device::device_start() m_plane[3] = m_videoram + 0x30000; m_isa->install_rom(this, 0xc0000, 0xc7fff, "ega", "iga"); - m_isa->install_device(0x3b0, 0x3bf, read8_delegate(FUNC(isa8_ega_device::pc_ega8_3b0_r), this), write8_delegate(FUNC(isa8_ega_device::pc_ega8_3b0_w), this)); - m_isa->install_device(0x3c0, 0x3cf, read8_delegate(FUNC(isa8_ega_device::pc_ega8_3c0_r), this), write8_delegate(FUNC(isa8_ega_device::pc_ega8_3c0_w), this)); - m_isa->install_device(0x3d0, 0x3df, read8_delegate(FUNC(isa8_ega_device::pc_ega8_3d0_r), this), write8_delegate(FUNC(isa8_ega_device::pc_ega8_3d0_w), this)); + m_isa->install_device(0x3b0, 0x3bf, read8_delegate(*this, FUNC(isa8_ega_device::pc_ega8_3b0_r)), write8_delegate(*this, FUNC(isa8_ega_device::pc_ega8_3b0_w))); + m_isa->install_device(0x3c0, 0x3cf, read8_delegate(*this, FUNC(isa8_ega_device::pc_ega8_3c0_r)), write8_delegate(*this, FUNC(isa8_ega_device::pc_ega8_3c0_w))); + m_isa->install_device(0x3d0, 0x3df, read8_delegate(*this, FUNC(isa8_ega_device::pc_ega8_3d0_r)), write8_delegate(*this, FUNC(isa8_ega_device::pc_ega8_3d0_w))); } diff --git a/src/devices/bus/isa/pcmidi.cpp b/src/devices/bus/isa/pcmidi.cpp index 94e52ae8f51..45cc41ff4f4 100644 --- a/src/devices/bus/isa/pcmidi.cpp +++ b/src/devices/bus/isa/pcmidi.cpp @@ -100,8 +100,8 @@ void isa8_pcmidi_device::device_reset() { offs_t ioaddr = BIT(m_config->read(), 0) ? 0x300 : 0x330; m_isa->install_device(ioaddr, ioaddr + 1, - read8sm_delegate(FUNC(isa8_pcmidi_device::host_r), this), - write8sm_delegate(FUNC(isa8_pcmidi_device::host_w), this)); + read8sm_delegate(*this, FUNC(isa8_pcmidi_device::host_r)), + write8sm_delegate(*this, FUNC(isa8_pcmidi_device::host_w))); set_host_irq(false); } diff --git a/src/devices/bus/isa/pds.cpp b/src/devices/bus/isa/pds.cpp index 65a35db2b14..dab0f498b63 100644 --- a/src/devices/bus/isa/pds.cpp +++ b/src/devices/bus/isa/pds.cpp @@ -6,7 +6,7 @@ * Used to connect up to two 8-bit systems to the PC, allowing the download of assembled code directly to the * target 8-bit system (Spectrum, CPC, MSX, C64 and maybe the BBC?) * - * The editor software require the ISA card to be present. + * The editor software requires the ISA card to be present. * * The PC end hardware consists of an 8-bit ISA card containing an 8255 PPI hooked up to the two connectors on the * back of the card. @@ -45,7 +45,7 @@ WRITE8_MEMBER(isa8_pds_device::ppi_w) void isa8_pds_device::device_start() { set_isa_device(); - m_isa->install_device(0x0300, 0x0307, read8_delegate(FUNC(isa8_pds_device::ppi_r),this), write8_delegate(FUNC(isa8_pds_device::ppi_w),this) ); + m_isa->install_device(0x0300, 0x0307, read8_delegate(*this, FUNC(isa8_pds_device::ppi_r)), write8_delegate(*this, FUNC(isa8_pds_device::ppi_w))); } void isa8_pds_device::device_reset() diff --git a/src/devices/bus/isa/pgc.cpp b/src/devices/bus/isa/pgc.cpp index 9e65cd819d0..4d7de335616 100644 --- a/src/devices/bus/isa/pgc.cpp +++ b/src/devices/bus/isa/pgc.cpp @@ -389,8 +389,7 @@ READ8_MEMBER(isa8_pgc_device::init_r) membank("eram")->set_base(m_eram.get()); LOG("INIT: mapping LUT\n"); - space.install_write_handler(0xf8400, 0xf85ff, - write8_delegate(FUNC(isa8_pgc_device::lut_w), this)); + space.install_write_handler(0xf8400, 0xf85ff, write8_delegate(*this, FUNC(isa8_pgc_device::lut_w))); return 0; // XXX ignored } diff --git a/src/devices/bus/isa/s3virge.cpp b/src/devices/bus/isa/s3virge.cpp index 5dae6c8afa2..959e9a2e79f 100644 --- a/src/devices/bus/isa/s3virge.cpp +++ b/src/devices/bus/isa/s3virge.cpp @@ -73,7 +73,7 @@ void s3virge_vga_device::device_start() vga.crtc.maximum_scan_line = 1; // copy over interfaces - vga.read_dipswitch = read8_delegate(); //read_dipswitch; + vga.read_dipswitch.set(nullptr); //read_dipswitch; vga.svga_intf.seq_regcount = 0x1c; vga.svga_intf.crtc_regcount = 0x19; vga.svga_intf.vram_size = 0x400000; diff --git a/src/devices/bus/isa/sb16.cpp b/src/devices/bus/isa/sb16.cpp index f48cda320da..0f2123409f9 100644 --- a/src/devices/bus/isa/sb16.cpp +++ b/src/devices/bus/isa/sb16.cpp @@ -702,18 +702,18 @@ void sb16_lle_device::device_start() rom[i] = rom[i] ^ xor_table[i & 0x3f]; - ymf262_device *ymf262 = subdevice("ymf262"); + ymf262_device &ymf262 = *subdevice("ymf262"); set_isa_device(); - m_isa->install_device(0x0200, 0x0207, read8_delegate(FUNC(pc_joy_device::joy_port_r), subdevice("pc_joy")), write8_delegate(FUNC(pc_joy_device::joy_port_w), subdevice("pc_joy"))); - m_isa->install_device(0x0226, 0x0227, read8_delegate(FUNC(sb16_lle_device::invalid_r), this), write8_delegate(FUNC(sb16_lle_device::dsp_reset_w), this)); - m_isa->install_device(0x022a, 0x022b, read8_delegate(FUNC(sb16_lle_device::host_data_r), this), write8_delegate(FUNC(sb16_lle_device::invalid_w), this) ); - m_isa->install_device(0x022c, 0x022d, read8_delegate(FUNC(sb16_lle_device::dsp_wbuf_status_r), this), write8_delegate(FUNC(sb16_lle_device::host_cmd_w), this) ); - m_isa->install_device(0x022e, 0x022f, read8_delegate(FUNC(sb16_lle_device::dsp_rbuf_status_r), this), write8_delegate(FUNC(sb16_lle_device::invalid_w), this) ); - m_isa->install_device(0x0330, 0x0331, read8_delegate(FUNC(sb16_lle_device::mpu401_r), this), write8_delegate(FUNC(sb16_lle_device::mpu401_w), this)); - m_isa->install_device(0x0388, 0x0389, read8sm_delegate(FUNC(ymf262_device::read), ymf262), write8sm_delegate(FUNC(ymf262_device::write), ymf262)); - m_isa->install_device(0x0220, 0x0223, read8sm_delegate(FUNC(ymf262_device::read), ymf262), write8sm_delegate(FUNC(ymf262_device::write), ymf262)); - m_isa->install_device(0x0228, 0x0229, read8sm_delegate(FUNC(ymf262_device::read), ymf262), write8sm_delegate(FUNC(ymf262_device::write), ymf262)); + m_isa->install_device(0x0200, 0x0207, read8_delegate(*subdevice("pc_joy"), FUNC(pc_joy_device::joy_port_r)), write8_delegate(*subdevice("pc_joy"), FUNC(pc_joy_device::joy_port_w))); + m_isa->install_device(0x0226, 0x0227, read8_delegate(*this, FUNC(sb16_lle_device::invalid_r)), write8_delegate(*this, FUNC(sb16_lle_device::dsp_reset_w))); + m_isa->install_device(0x022a, 0x022b, read8_delegate(*this, FUNC(sb16_lle_device::host_data_r)), write8_delegate(*this, FUNC(sb16_lle_device::invalid_w)) ); + m_isa->install_device(0x022c, 0x022d, read8_delegate(*this, FUNC(sb16_lle_device::dsp_wbuf_status_r)), write8_delegate(*this, FUNC(sb16_lle_device::host_cmd_w)) ); + m_isa->install_device(0x022e, 0x022f, read8_delegate(*this, FUNC(sb16_lle_device::dsp_rbuf_status_r)), write8_delegate(*this, FUNC(sb16_lle_device::invalid_w)) ); + m_isa->install_device(0x0330, 0x0331, read8_delegate(*this, FUNC(sb16_lle_device::mpu401_r)), write8_delegate(*this, FUNC(sb16_lle_device::mpu401_w))); + m_isa->install_device(0x0388, 0x0389, read8sm_delegate(ymf262, FUNC(ymf262_device::read)), write8sm_delegate(ymf262, FUNC(ymf262_device::write))); + m_isa->install_device(0x0220, 0x0223, read8sm_delegate(ymf262, FUNC(ymf262_device::read)), write8sm_delegate(ymf262, FUNC(ymf262_device::write))); + m_isa->install_device(0x0228, 0x0229, read8sm_delegate(ymf262, FUNC(ymf262_device::read)), write8sm_delegate(ymf262, FUNC(ymf262_device::write))); m_isa->set_dma_channel(1, this, false); m_isa->set_dma_channel(5, this, false); m_timer = timer_alloc(); diff --git a/src/devices/bus/isa/sblaster.cpp b/src/devices/bus/isa/sblaster.cpp index 73e98a297f8..3e4ba9beca1 100644 --- a/src/devices/bus/isa/sblaster.cpp +++ b/src/devices/bus/isa/sblaster.cpp @@ -1251,23 +1251,23 @@ isa16_sblaster16_device::isa16_sblaster16_device(const machine_config &mconfig, void sb8_device::device_start() { - m_isa->install_device(0x0200, 0x0207, read8_delegate(FUNC(pc_joy_device::joy_port_r), subdevice("pc_joy")), write8_delegate(FUNC(pc_joy_device::joy_port_w), subdevice("pc_joy"))); - m_isa->install_device(0x0226, 0x0227, read8_delegate(FUNC(sb_device::dsp_reset_r), this), write8_delegate(FUNC(sb_device::dsp_reset_w), this)); - m_isa->install_device(0x022a, 0x022b, read8_delegate(FUNC(sb_device::dsp_data_r), this), write8_delegate(FUNC(sb_device::dsp_data_w), this) ); - m_isa->install_device(0x022c, 0x022d, read8_delegate(FUNC(sb_device::dsp_wbuf_status_r), this), write8_delegate(FUNC(sb_device::dsp_cmd_w), this) ); - m_isa->install_device(0x022e, 0x022f, read8_delegate(FUNC(sb_device::dsp_rbuf_status_r), this), write8_delegate(FUNC(sb_device::dsp_rbuf_status_w), this) ); + m_isa->install_device(0x0200, 0x0207, read8_delegate(*subdevice("pc_joy"), FUNC(pc_joy_device::joy_port_r)), write8_delegate(*subdevice("pc_joy"), FUNC(pc_joy_device::joy_port_w))); + m_isa->install_device(0x0226, 0x0227, read8_delegate(*this, FUNC(sb_device::dsp_reset_r)), write8_delegate(*this, FUNC(sb_device::dsp_reset_w))); + m_isa->install_device(0x022a, 0x022b, read8_delegate(*this, FUNC(sb_device::dsp_data_r)), write8_delegate(*this, FUNC(sb_device::dsp_data_w))); + m_isa->install_device(0x022c, 0x022d, read8_delegate(*this, FUNC(sb_device::dsp_wbuf_status_r)), write8_delegate(*this, FUNC(sb_device::dsp_cmd_w))); + m_isa->install_device(0x022e, 0x022f, read8_delegate(*this, FUNC(sb_device::dsp_rbuf_status_r)), write8_delegate(*this, FUNC(sb_device::dsp_rbuf_status_w))); if(m_dsp.version >= 0x0301) { - ymf262_device *ymf262 = subdevice("ymf262"); + ymf262_device &ymf262 = *subdevice("ymf262"); - m_isa->install_device(0x0388, 0x038b, read8sm_delegate(FUNC(ymf262_device::read), ymf262), write8sm_delegate(FUNC(ymf262_device::write), ymf262)); - m_isa->install_device(0x0220, 0x0223, read8sm_delegate(FUNC(ymf262_device::read), ymf262), write8sm_delegate(FUNC(ymf262_device::write), ymf262)); - m_isa->install_device(0x0228, 0x0229, read8sm_delegate(FUNC(ymf262_device::read), ymf262), write8sm_delegate(FUNC(ymf262_device::write), ymf262)); + m_isa->install_device(0x0388, 0x038b, read8sm_delegate(ymf262, FUNC(ymf262_device::read)), write8sm_delegate(ymf262, FUNC(ymf262_device::write))); + m_isa->install_device(0x0220, 0x0223, read8sm_delegate(ymf262, FUNC(ymf262_device::read)), write8sm_delegate(ymf262, FUNC(ymf262_device::write))); + m_isa->install_device(0x0228, 0x0229, read8sm_delegate(ymf262, FUNC(ymf262_device::read)), write8sm_delegate(ymf262, FUNC(ymf262_device::write))); } else { - m_isa->install_device(0x0388, 0x0389, read8_delegate( FUNC(sb8_device::ym3812_16_r), this ), write8_delegate( FUNC(sb8_device::ym3812_16_w), this ) ); - m_isa->install_device(0x0228, 0x0229, read8_delegate( FUNC(sb8_device::ym3812_16_r), this ), write8_delegate( FUNC(sb8_device::ym3812_16_w), this ) ); + m_isa->install_device(0x0388, 0x0389, read8_delegate(*this, FUNC(sb8_device::ym3812_16_r)), write8_delegate(*this, FUNC(sb8_device::ym3812_16_w))); + m_isa->install_device(0x0228, 0x0229, read8_delegate(*this, FUNC(sb8_device::ym3812_16_r)), write8_delegate(*this, FUNC(sb8_device::ym3812_16_w))); } sb_device::device_start(); @@ -1277,8 +1277,8 @@ void isa8_sblaster1_0_device::device_start() { set_isa_device(); // 1.0 always has the SAA1099s for CMS back-compatibility - m_isa->install_device(0x0220, 0x0221, read8_delegate( FUNC(isa8_sblaster1_0_device::saa1099_16_r), this ), write8_delegate( FUNC(isa8_sblaster1_0_device::saa1099_1_16_w), this ) ); - m_isa->install_device(0x0222, 0x0223, read8_delegate( FUNC(isa8_sblaster1_0_device::saa1099_16_r), this ), write8_delegate( FUNC(isa8_sblaster1_0_device::saa1099_2_16_w), this ) ); + m_isa->install_device(0x0220, 0x0221, read8_delegate(*this, FUNC(isa8_sblaster1_0_device::saa1099_16_r)), write8_delegate(*this, FUNC(isa8_sblaster1_0_device::saa1099_1_16_w))); + m_isa->install_device(0x0222, 0x0223, read8_delegate(*this, FUNC(isa8_sblaster1_0_device::saa1099_16_r)), write8_delegate(*this, FUNC(isa8_sblaster1_0_device::saa1099_2_16_w))); m_isa->set_dma_channel(1, this, false); m_dsp.version = 0x0105; sb8_device::device_start(); @@ -1295,17 +1295,17 @@ void isa8_sblaster1_5_device::device_start() void sb16_device::device_start() { - ymf262_device *ymf262 = subdevice("ymf262"); - m_isa->install_device(0x0200, 0x0207, read8_delegate(FUNC(pc_joy_device::joy_port_r), subdevice("pc_joy")), write8_delegate(FUNC(pc_joy_device::joy_port_w), subdevice("pc_joy"))); - m_isa->install_device(0x0226, 0x0227, read8_delegate(FUNC(sb_device::dsp_reset_r), this), write8_delegate(FUNC(sb_device::dsp_reset_w), this)); - m_isa->install_device(0x022a, 0x022b, read8_delegate(FUNC(sb_device::dsp_data_r), this), write8_delegate(FUNC(sb_device::dsp_data_w), this) ); - m_isa->install_device(0x022c, 0x022d, read8_delegate(FUNC(sb_device::dsp_wbuf_status_r), this), write8_delegate(FUNC(sb_device::dsp_cmd_w), this) ); - m_isa->install_device(0x022e, 0x022f, read8_delegate(FUNC(sb_device::dsp_rbuf_status_r), this), write8_delegate(FUNC(sb_device::dsp_rbuf_status_w), this) ); - m_isa->install_device(0x0224, 0x0225, read8_delegate(FUNC(sb16_device::mixer_r), this), write8_delegate(FUNC(sb16_device::mixer_w), this)); - m_isa->install_device(0x0330, 0x0331, read8_delegate(FUNC(sb16_device::mpu401_r), this), write8_delegate(FUNC(sb16_device::mpu401_w), this)); - m_isa->install_device(0x0388, 0x038b, read8sm_delegate(FUNC(ymf262_device::read), ymf262), write8sm_delegate(FUNC(ymf262_device::write), ymf262)); - m_isa->install_device(0x0220, 0x0223, read8sm_delegate(FUNC(ymf262_device::read), ymf262), write8sm_delegate(FUNC(ymf262_device::write), ymf262)); - m_isa->install_device(0x0228, 0x0229, read8sm_delegate(FUNC(ymf262_device::read), ymf262), write8sm_delegate(FUNC(ymf262_device::write), ymf262)); + ymf262_device &ymf262 = *subdevice("ymf262"); + m_isa->install_device(0x0200, 0x0207, read8_delegate(*subdevice("pc_joy"), FUNC(pc_joy_device::joy_port_r)), write8_delegate(*subdevice("pc_joy"), FUNC(pc_joy_device::joy_port_w))); + m_isa->install_device(0x0226, 0x0227, read8_delegate(*this, FUNC(sb_device::dsp_reset_r)), write8_delegate(*this, FUNC(sb_device::dsp_reset_w))); + m_isa->install_device(0x022a, 0x022b, read8_delegate(*this, FUNC(sb_device::dsp_data_r)), write8_delegate(*this, FUNC(sb_device::dsp_data_w))); + m_isa->install_device(0x022c, 0x022d, read8_delegate(*this, FUNC(sb_device::dsp_wbuf_status_r)), write8_delegate(*this, FUNC(sb_device::dsp_cmd_w))); + m_isa->install_device(0x022e, 0x022f, read8_delegate(*this, FUNC(sb_device::dsp_rbuf_status_r)), write8_delegate(*this, FUNC(sb_device::dsp_rbuf_status_w))); + m_isa->install_device(0x0224, 0x0225, read8_delegate(*this, FUNC(sb16_device::mixer_r)), write8_delegate(*this, FUNC(sb16_device::mixer_w))); + m_isa->install_device(0x0330, 0x0331, read8_delegate(*this, FUNC(sb16_device::mpu401_r)), write8_delegate(*this, FUNC(sb16_device::mpu401_w))); + m_isa->install_device(0x0388, 0x038b, read8sm_delegate(ymf262, FUNC(ymf262_device::read)), write8sm_delegate(ymf262, FUNC(ymf262_device::write))); + m_isa->install_device(0x0220, 0x0223, read8sm_delegate(ymf262, FUNC(ymf262_device::read)), write8sm_delegate(ymf262, FUNC(ymf262_device::write))); + m_isa->install_device(0x0228, 0x0229, read8sm_delegate(ymf262, FUNC(ymf262_device::read)), write8sm_delegate(ymf262, FUNC(ymf262_device::write))); save_item(NAME(m_mixer.data)); save_item(NAME(m_mixer.status)); diff --git a/src/devices/bus/isa/sc499.cpp b/src/devices/bus/isa/sc499.cpp index 92f049f0402..eaa3d7ba2c4 100644 --- a/src/devices/bus/isa/sc499.cpp +++ b/src/devices/bus/isa/sc499.cpp @@ -389,7 +389,7 @@ void sc499_device::device_reset() m_irq = m_irqdrq->read() & 7; m_drq = m_irqdrq->read()>>4; - m_isa->install_device(base, base+7, read8_delegate(FUNC(sc499_device::read), this), write8_delegate(FUNC(sc499_device::write), this)); + m_isa->install_device(base, base+7, read8_delegate(*this, FUNC(sc499_device::read)), write8_delegate(*this, FUNC(sc499_device::write))); m_isa->set_dma_channel(m_drq, this, true); m_installed = true; diff --git a/src/devices/bus/isa/side116.cpp b/src/devices/bus/isa/side116.cpp index 19c806ec8be..e11b8588d60 100644 --- a/src/devices/bus/isa/side116.cpp +++ b/src/devices/bus/isa/side116.cpp @@ -121,7 +121,7 @@ void side116_device::device_reset() // install io access if ((m_config->read() & 0x20) == 0x20) - m_isa->install_device(0x360, 0x36f, read8_delegate(FUNC(side116_device::read), this), write8_delegate(FUNC(side116_device::write), this)); + m_isa->install_device(0x360, 0x36f, read8_delegate(*this, FUNC(side116_device::read)), write8_delegate(*this, FUNC(side116_device::write))); } diff --git a/src/devices/bus/isa/ssi2001.cpp b/src/devices/bus/isa/ssi2001.cpp index 2c433321847..bff7a4c7d92 100644 --- a/src/devices/bus/isa/ssi2001.cpp +++ b/src/devices/bus/isa/ssi2001.cpp @@ -29,11 +29,10 @@ ssi2001_device::ssi2001_device(const machine_config &mconfig, const char *tag, d void ssi2001_device::device_start() { set_isa_device(); - m_isa->install_device(0x0200, 0x0207, read8_delegate(FUNC(pc_joy_device::joy_port_r), subdevice("pc_joy")), write8_delegate(FUNC(pc_joy_device::joy_port_w), subdevice("pc_joy"))); - m_isa->install_device(0x0280, 0x029F, read8sm_delegate(FUNC(mos6581_device::read), subdevice("sid6581")), write8sm_delegate(FUNC(mos6581_device::write), subdevice("sid6581"))); + m_isa->install_device(0x0200, 0x0207, read8_delegate(*subdevice("pc_joy"), FUNC(pc_joy_device::joy_port_r)), write8_delegate(*subdevice("pc_joy"), FUNC(pc_joy_device::joy_port_w))); + m_isa->install_device(0x0280, 0x029F, read8sm_delegate(*subdevice("sid6581"), FUNC(mos6581_device::read)), write8sm_delegate(*subdevice("sid6581"), FUNC(mos6581_device::write))); } - void ssi2001_device::device_reset() { } diff --git a/src/devices/bus/isa/stereo_fx.cpp b/src/devices/bus/isa/stereo_fx.cpp index 71ea8dfbe25..9a12302d7c0 100644 --- a/src/devices/bus/isa/stereo_fx.cpp +++ b/src/devices/bus/isa/stereo_fx.cpp @@ -207,16 +207,16 @@ stereo_fx_device::stereo_fx_device(const machine_config &mconfig, const char *ta void stereo_fx_device::device_start() { - ym3812_device *ym3812 = subdevice("ym3812"); + ym3812_device &ym3812 = *subdevice("ym3812"); set_isa_device(); - m_isa->install_device(0x0200, 0x0207, read8_delegate(FUNC(pc_joy_device::joy_port_r), subdevice("pc_joy")), write8_delegate(FUNC(pc_joy_device::joy_port_w), subdevice("pc_joy"))); - m_isa->install_device(0x0226, 0x0227, read8_delegate(FUNC(stereo_fx_device::invalid_r), this), write8_delegate(FUNC(stereo_fx_device::dsp_reset_w), this)); - m_isa->install_device(0x022a, 0x022b, read8_delegate(FUNC(stereo_fx_device::dsp_data_r), this), write8_delegate(FUNC(stereo_fx_device::invalid_w), this) ); - m_isa->install_device(0x022c, 0x022d, read8_delegate(FUNC(stereo_fx_device::dsp_wbuf_status_r), this), write8_delegate(FUNC(stereo_fx_device::dsp_cmd_w), this) ); - m_isa->install_device(0x022e, 0x022f, read8_delegate(FUNC(stereo_fx_device::dsp_rbuf_status_r), this), write8_delegate(FUNC(stereo_fx_device::invalid_w), this) ); - m_isa->install_device(0x0388, 0x0389, read8sm_delegate(FUNC(ym3812_device::read), ym3812), write8sm_delegate(FUNC(ym3812_device::write), ym3812)); - m_isa->install_device(0x0228, 0x0229, read8sm_delegate(FUNC(ym3812_device::read), ym3812), write8sm_delegate(FUNC(ym3812_device::write), ym3812)); + m_isa->install_device(0x0200, 0x0207, read8_delegate(*subdevice("pc_joy"), FUNC(pc_joy_device::joy_port_r)), write8_delegate(*subdevice("pc_joy"), FUNC(pc_joy_device::joy_port_w))); + m_isa->install_device(0x0226, 0x0227, read8_delegate(*this, FUNC(stereo_fx_device::invalid_r)), write8_delegate(*this, FUNC(stereo_fx_device::dsp_reset_w))); + m_isa->install_device(0x022a, 0x022b, read8_delegate(*this, FUNC(stereo_fx_device::dsp_data_r)), write8_delegate(*this, FUNC(stereo_fx_device::invalid_w))); + m_isa->install_device(0x022c, 0x022d, read8_delegate(*this, FUNC(stereo_fx_device::dsp_wbuf_status_r)), write8_delegate(*this, FUNC(stereo_fx_device::dsp_cmd_w))); + m_isa->install_device(0x022e, 0x022f, read8_delegate(*this, FUNC(stereo_fx_device::dsp_rbuf_status_r)), write8_delegate(*this, FUNC(stereo_fx_device::invalid_w))); + m_isa->install_device(0x0388, 0x0389, read8sm_delegate(ym3812, FUNC(ym3812_device::read)), write8sm_delegate(ym3812, FUNC(ym3812_device::write))); + m_isa->install_device(0x0228, 0x0229, read8sm_delegate(ym3812, FUNC(ym3812_device::read)), write8sm_delegate(ym3812, FUNC(ym3812_device::write))); m_timer = timer_alloc(); m_timer->adjust(attotime::from_hz(2000000), 0, attotime::from_hz(2000000)); m_isa->set_dma_channel(1, this, false); diff --git a/src/devices/bus/isa/svga_cirrus.cpp b/src/devices/bus/isa/svga_cirrus.cpp index 7ee541184d2..74b3c581a39 100644 --- a/src/devices/bus/isa/svga_cirrus.cpp +++ b/src/devices/bus/isa/svga_cirrus.cpp @@ -36,7 +36,7 @@ void isa16_svga_cirrus_device::device_add_mconfig(machine_config &config) screen.set_raw(25.175_MHz_XTAL, 800, 0, 640, 524, 0, 480); screen.set_screen_update("vga", FUNC(cirrus_gd5430_device::screen_update)); - CIRRUS_GD5430(config, "vga", 0).set_screen("screen"); + CIRRUS_GD5430(config, m_vga, 0).set_screen("screen"); } //------------------------------------------------- @@ -59,7 +59,7 @@ const tiny_rom_entry *isa16_svga_cirrus_device::device_rom_region() const isa16_svga_cirrus_device::isa16_svga_cirrus_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : device_t(mconfig, ISA16_SVGA_CIRRUS, tag, owner, clock), device_isa16_card_interface(mconfig, *this), - m_vga(nullptr) + m_vga(*this, "vga") { } @@ -72,15 +72,13 @@ void isa16_svga_cirrus_device::device_start() { set_isa_device(); - m_vga = subdevice("vga"); - m_isa->install_rom(this, 0xc0000, 0xc7fff, "svga", "dm_clgd5430"); - m_isa->install_device(0x03b0, 0x03bf, read8_delegate(FUNC(cirrus_gd5430_device::port_03b0_r),m_vga), write8_delegate(FUNC(cirrus_gd5430_device::port_03b0_w),m_vga)); - m_isa->install_device(0x03c0, 0x03cf, read8_delegate(FUNC(cirrus_gd5430_device::port_03c0_r),m_vga), write8_delegate(FUNC(cirrus_gd5430_device::port_03c0_w),m_vga)); - m_isa->install_device(0x03d0, 0x03df, read8_delegate(FUNC(cirrus_gd5430_device::port_03d0_r),m_vga), write8_delegate(FUNC(cirrus_gd5430_device::port_03d0_w),m_vga)); + m_isa->install_device(0x03b0, 0x03bf, read8_delegate(*m_vga, FUNC(cirrus_gd5430_device::port_03b0_r)), write8_delegate(*m_vga, FUNC(cirrus_gd5430_device::port_03b0_w))); + m_isa->install_device(0x03c0, 0x03cf, read8_delegate(*m_vga, FUNC(cirrus_gd5430_device::port_03c0_r)), write8_delegate(*m_vga, FUNC(cirrus_gd5430_device::port_03c0_w))); + m_isa->install_device(0x03d0, 0x03df, read8_delegate(*m_vga, FUNC(cirrus_gd5430_device::port_03d0_r)), write8_delegate(*m_vga, FUNC(cirrus_gd5430_device::port_03d0_w))); - m_isa->install_memory(0xa0000, 0xbffff, read8_delegate(FUNC(cirrus_gd5430_device::mem_r),m_vga), write8_delegate(FUNC(cirrus_gd5430_device::mem_w),m_vga)); + m_isa->install_memory(0xa0000, 0xbffff, read8_delegate(*m_vga, FUNC(cirrus_gd5430_device::mem_r)), write8_delegate(*m_vga, FUNC(cirrus_gd5430_device::mem_w))); } //------------------------------------------------- @@ -116,7 +114,7 @@ void isa16_svga_cirrus_gd542x_device::device_add_mconfig(machine_config &config) screen.set_raw(25.175_MHz_XTAL, 800, 0, 640, 524, 0, 480); screen.set_screen_update("vga", FUNC(cirrus_gd5428_device::screen_update)); - CIRRUS_GD5428(config, "vga", 0).set_screen("screen"); + CIRRUS_GD5428(config, m_vga, 0).set_screen("screen"); } //------------------------------------------------- @@ -139,7 +137,7 @@ const tiny_rom_entry *isa16_svga_cirrus_gd542x_device::device_rom_region() const isa16_svga_cirrus_gd542x_device::isa16_svga_cirrus_gd542x_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : device_t(mconfig, ISA16_SVGA_CIRRUS_GD542X, tag, owner, clock), device_isa16_card_interface(mconfig, *this), - m_vga(nullptr) + m_vga(*this, "vga") { } @@ -152,15 +150,13 @@ void isa16_svga_cirrus_gd542x_device::device_start() { set_isa_device(); - m_vga = subdevice("vga"); - m_isa->install_rom(this, 0xc0000, 0xc7fff, "svga", "clgd542x"); - m_isa->install_device(0x03b0, 0x03bf, read8_delegate(FUNC(cirrus_gd5428_device::port_03b0_r),m_vga), write8_delegate(FUNC(cirrus_gd5428_device::port_03b0_w),m_vga)); - m_isa->install_device(0x03c0, 0x03cf, read8_delegate(FUNC(cirrus_gd5428_device::port_03c0_r),m_vga), write8_delegate(FUNC(cirrus_gd5428_device::port_03c0_w),m_vga)); - m_isa->install_device(0x03d0, 0x03df, read8_delegate(FUNC(cirrus_gd5428_device::port_03d0_r),m_vga), write8_delegate(FUNC(cirrus_gd5428_device::port_03d0_w),m_vga)); + m_isa->install_device(0x03b0, 0x03bf, read8_delegate(*m_vga, FUNC(cirrus_gd5428_device::port_03b0_r)), write8_delegate(*m_vga, FUNC(cirrus_gd5428_device::port_03b0_w))); + m_isa->install_device(0x03c0, 0x03cf, read8_delegate(*m_vga, FUNC(cirrus_gd5428_device::port_03c0_r)), write8_delegate(*m_vga, FUNC(cirrus_gd5428_device::port_03c0_w))); + m_isa->install_device(0x03d0, 0x03df, read8_delegate(*m_vga, FUNC(cirrus_gd5428_device::port_03d0_r)), write8_delegate(*m_vga, FUNC(cirrus_gd5428_device::port_03d0_w))); - m_isa->install_memory(0xa0000, 0xbffff, read8_delegate(FUNC(cirrus_gd5428_device::mem_r),m_vga), write8_delegate(FUNC(cirrus_gd5428_device::mem_w),m_vga)); + m_isa->install_memory(0xa0000, 0xbffff, read8_delegate(*m_vga, FUNC(cirrus_gd5428_device::mem_r)), write8_delegate(*m_vga, FUNC(cirrus_gd5428_device::mem_w))); } //------------------------------------------------- diff --git a/src/devices/bus/isa/svga_cirrus.h b/src/devices/bus/isa/svga_cirrus.h index 46b0cfcfc04..c1a97a5730b 100644 --- a/src/devices/bus/isa/svga_cirrus.h +++ b/src/devices/bus/isa/svga_cirrus.h @@ -32,7 +32,7 @@ protected: virtual const tiny_rom_entry *device_rom_region() const override; private: - cirrus_gd5430_device *m_vga; + required_device m_vga; }; class isa16_svga_cirrus_gd542x_device : @@ -55,7 +55,7 @@ protected: virtual const tiny_rom_entry *device_rom_region() const override; private: - cirrus_gd5428_device *m_vga; + required_device m_vga; }; diff --git a/src/devices/bus/isa/svga_s3.cpp b/src/devices/bus/isa/svga_s3.cpp index 0734a286998..ddac8fc77c1 100644 --- a/src/devices/bus/isa/svga_s3.cpp +++ b/src/devices/bus/isa/svga_s3.cpp @@ -44,9 +44,9 @@ void isa16_svga_s3_device::device_add_mconfig(machine_config &config) { screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); screen.set_raw(25.175_MHz_XTAL, 800, 0, 640, 524, 0, 480); - screen.set_screen_update("vga", FUNC(s3_vga_device::screen_update)); + screen.set_screen_update(m_vga, FUNC(s3_vga_device::screen_update)); - S3_VGA(config, "vga", 0).set_screen("screen"); + S3_VGA(config, m_vga, 0).set_screen("screen"); } //------------------------------------------------- @@ -69,7 +69,7 @@ const tiny_rom_entry *isa16_svga_s3_device::device_rom_region() const isa16_svga_s3_device::isa16_svga_s3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : device_t(mconfig, ISA16_SVGA_S3, tag, owner, clock), device_isa16_card_interface(mconfig, *this), - m_vga(nullptr), m_8514(nullptr) + m_vga(*this, "vga"), m_8514(*this, "vga:8514a") { } @@ -82,32 +82,29 @@ void isa16_svga_s3_device::device_start() { set_isa_device(); - m_vga = subdevice("vga"); - m_8514 = subdevice("vga:8514a"); - m_isa->install_rom(this, 0xc0000, 0xc7fff, "svga", "s3_764"); - m_isa->install_device(0x03b0, 0x03bf, read8_delegate(FUNC(s3_vga_device::port_03b0_r),m_vga), write8_delegate(FUNC(s3_vga_device::port_03b0_w),m_vga)); - m_isa->install_device(0x03c0, 0x03cf, read8_delegate(FUNC(s3_vga_device::port_03c0_r),m_vga), write8_delegate(FUNC(s3_vga_device::port_03c0_w),m_vga)); - m_isa->install_device(0x03d0, 0x03df, read8_delegate(FUNC(s3_vga_device::port_03d0_r),m_vga), write8_delegate(FUNC(s3_vga_device::port_03d0_w),m_vga)); - m_isa->install16_device(0x82e8, 0x82eb, read16_delegate(FUNC(ibm8514a_device::ibm8514_currenty_r),m_8514), write16_delegate(FUNC(ibm8514a_device::ibm8514_currenty_w),m_8514)); - m_isa->install16_device(0x86e8, 0x86eb, read16_delegate(FUNC(ibm8514a_device::ibm8514_currentx_r),m_8514), write16_delegate(FUNC(ibm8514a_device::ibm8514_currentx_w),m_8514)); - m_isa->install16_device(0x8ae8, 0x8aeb, read16_delegate(FUNC(ibm8514a_device::ibm8514_desty_r),m_8514), write16_delegate(FUNC(ibm8514a_device::ibm8514_desty_w),m_8514)); - m_isa->install16_device(0x8ee8, 0x8eeb, read16_delegate(FUNC(ibm8514a_device::ibm8514_destx_r),m_8514), write16_delegate(FUNC(ibm8514a_device::ibm8514_destx_w),m_8514)); - m_isa->install16_device(0x92e8, 0x92eb, read16_delegate(FUNC(ibm8514a_device::ibm8514_line_error_r),m_8514), write16_delegate(FUNC(ibm8514a_device::ibm8514_line_error_w),m_8514)); - m_isa->install16_device(0x96e8, 0x96eb, read16_delegate(FUNC(ibm8514a_device::ibm8514_width_r),m_8514), write16_delegate(FUNC(ibm8514a_device::ibm8514_width_w),m_8514)); - m_isa->install16_device(0x9ae8, 0x9aeb, read16_delegate(FUNC(ibm8514a_device::ibm8514_gpstatus_r),m_8514), write16_delegate(FUNC(ibm8514a_device::ibm8514_cmd_w),m_8514)); - m_isa->install16_device(0x9ee8, 0x9eeb, read16_delegate(FUNC(ibm8514a_device::ibm8514_ssv_r),m_8514), write16_delegate(FUNC(ibm8514a_device::ibm8514_ssv_w),m_8514)); - m_isa->install16_device(0xa2e8, 0xa2eb, read16_delegate(FUNC(ibm8514a_device::ibm8514_bgcolour_r),m_8514), write16_delegate(FUNC(ibm8514a_device::ibm8514_bgcolour_w),m_8514)); - m_isa->install16_device(0xa6e8, 0xa6eb, read16_delegate(FUNC(ibm8514a_device::ibm8514_fgcolour_r),m_8514), write16_delegate(FUNC(ibm8514a_device::ibm8514_fgcolour_w),m_8514)); - m_isa->install16_device(0xaae8, 0xaaeb, read16_delegate(FUNC(ibm8514a_device::ibm8514_write_mask_r),m_8514), write16_delegate(FUNC(ibm8514a_device::ibm8514_write_mask_w),m_8514)); - m_isa->install16_device(0xaee8, 0xaeeb, read16_delegate(FUNC(ibm8514a_device::ibm8514_read_mask_r),m_8514), write16_delegate(FUNC(ibm8514a_device::ibm8514_read_mask_w),m_8514)); - m_isa->install16_device(0xb6e8, 0xb6eb, read16_delegate(FUNC(ibm8514a_device::ibm8514_backmix_r),m_8514), write16_delegate(FUNC(ibm8514a_device::ibm8514_backmix_w),m_8514)); - m_isa->install16_device(0xbae8, 0xbaeb, read16_delegate(FUNC(ibm8514a_device::ibm8514_foremix_r),m_8514), write16_delegate(FUNC(ibm8514a_device::ibm8514_foremix_w),m_8514)); - m_isa->install16_device(0xbee8, 0xbeeb, read16_delegate(FUNC(ibm8514a_device::ibm8514_multifunc_r),m_8514), write16_delegate(FUNC(ibm8514a_device::ibm8514_multifunc_w),m_8514)); - m_isa->install16_device(0xe2e8, 0xe2eb, read16_delegate(FUNC(ibm8514a_device::ibm8514_pixel_xfer_r),m_8514), write16_delegate(FUNC(ibm8514a_device::ibm8514_pixel_xfer_w),m_8514)); - - m_isa->install_memory(0xa0000, 0xbffff, read8_delegate(FUNC(s3_vga_device::mem_r),m_vga), write8_delegate(FUNC(s3_vga_device::mem_w),m_vga)); + m_isa->install_device(0x03b0, 0x03bf, read8_delegate(*m_vga, FUNC(s3_vga_device::port_03b0_r)), write8_delegate(*m_vga, FUNC(s3_vga_device::port_03b0_w))); + m_isa->install_device(0x03c0, 0x03cf, read8_delegate(*m_vga, FUNC(s3_vga_device::port_03c0_r)), write8_delegate(*m_vga, FUNC(s3_vga_device::port_03c0_w))); + m_isa->install_device(0x03d0, 0x03df, read8_delegate(*m_vga, FUNC(s3_vga_device::port_03d0_r)), write8_delegate(*m_vga, FUNC(s3_vga_device::port_03d0_w))); + m_isa->install16_device(0x82e8, 0x82eb, read16_delegate(*m_8514, FUNC(ibm8514a_device::ibm8514_currenty_r)), write16_delegate(*m_8514, FUNC(ibm8514a_device::ibm8514_currenty_w))); + m_isa->install16_device(0x86e8, 0x86eb, read16_delegate(*m_8514, FUNC(ibm8514a_device::ibm8514_currentx_r)), write16_delegate(*m_8514, FUNC(ibm8514a_device::ibm8514_currentx_w))); + m_isa->install16_device(0x8ae8, 0x8aeb, read16_delegate(*m_8514, FUNC(ibm8514a_device::ibm8514_desty_r)), write16_delegate(*m_8514, FUNC(ibm8514a_device::ibm8514_desty_w))); + m_isa->install16_device(0x8ee8, 0x8eeb, read16_delegate(*m_8514, FUNC(ibm8514a_device::ibm8514_destx_r)), write16_delegate(*m_8514, FUNC(ibm8514a_device::ibm8514_destx_w))); + m_isa->install16_device(0x92e8, 0x92eb, read16_delegate(*m_8514, FUNC(ibm8514a_device::ibm8514_line_error_r)), write16_delegate(*m_8514, FUNC(ibm8514a_device::ibm8514_line_error_w))); + m_isa->install16_device(0x96e8, 0x96eb, read16_delegate(*m_8514, FUNC(ibm8514a_device::ibm8514_width_r)), write16_delegate(*m_8514, FUNC(ibm8514a_device::ibm8514_width_w))); + m_isa->install16_device(0x9ae8, 0x9aeb, read16_delegate(*m_8514, FUNC(ibm8514a_device::ibm8514_gpstatus_r)), write16_delegate(*m_8514, FUNC(ibm8514a_device::ibm8514_cmd_w))); + m_isa->install16_device(0x9ee8, 0x9eeb, read16_delegate(*m_8514, FUNC(ibm8514a_device::ibm8514_ssv_r)), write16_delegate(*m_8514, FUNC(ibm8514a_device::ibm8514_ssv_w))); + m_isa->install16_device(0xa2e8, 0xa2eb, read16_delegate(*m_8514, FUNC(ibm8514a_device::ibm8514_bgcolour_r)), write16_delegate(*m_8514, FUNC(ibm8514a_device::ibm8514_bgcolour_w))); + m_isa->install16_device(0xa6e8, 0xa6eb, read16_delegate(*m_8514, FUNC(ibm8514a_device::ibm8514_fgcolour_r)), write16_delegate(*m_8514, FUNC(ibm8514a_device::ibm8514_fgcolour_w))); + m_isa->install16_device(0xaae8, 0xaaeb, read16_delegate(*m_8514, FUNC(ibm8514a_device::ibm8514_write_mask_r)), write16_delegate(*m_8514, FUNC(ibm8514a_device::ibm8514_write_mask_w))); + m_isa->install16_device(0xaee8, 0xaeeb, read16_delegate(*m_8514, FUNC(ibm8514a_device::ibm8514_read_mask_r)), write16_delegate(*m_8514, FUNC(ibm8514a_device::ibm8514_read_mask_w))); + m_isa->install16_device(0xb6e8, 0xb6eb, read16_delegate(*m_8514, FUNC(ibm8514a_device::ibm8514_backmix_r)), write16_delegate(*m_8514, FUNC(ibm8514a_device::ibm8514_backmix_w))); + m_isa->install16_device(0xbae8, 0xbaeb, read16_delegate(*m_8514, FUNC(ibm8514a_device::ibm8514_foremix_r)), write16_delegate(*m_8514, FUNC(ibm8514a_device::ibm8514_foremix_w))); + m_isa->install16_device(0xbee8, 0xbeeb, read16_delegate(*m_8514, FUNC(ibm8514a_device::ibm8514_multifunc_r)), write16_delegate(*m_8514, FUNC(ibm8514a_device::ibm8514_multifunc_w))); + m_isa->install16_device(0xe2e8, 0xe2eb, read16_delegate(*m_8514, FUNC(ibm8514a_device::ibm8514_pixel_xfer_r)), write16_delegate(*m_8514, FUNC(ibm8514a_device::ibm8514_pixel_xfer_w))); + + m_isa->install_memory(0xa0000, 0xbffff, read8_delegate(*m_vga, FUNC(s3_vga_device::mem_r)), write8_delegate(*m_vga, FUNC(s3_vga_device::mem_w))); } //------------------------------------------------- @@ -150,9 +147,9 @@ void isa16_s3virge_device::device_add_mconfig(machine_config &config) { screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); screen.set_raw(25.175_MHz_XTAL, 800, 0, 640, 524, 0, 480); - screen.set_screen_update("vga", FUNC(s3virge_vga_device::screen_update)); + screen.set_screen_update(m_vga, FUNC(s3virge_vga_device::screen_update)); - S3VIRGE(config, "vga", 0).set_screen("screen"); + S3VIRGE(config, m_vga, 0).set_screen("screen"); } //------------------------------------------------- @@ -175,7 +172,7 @@ const tiny_rom_entry *isa16_s3virge_device::device_rom_region() const isa16_s3virge_device::isa16_s3virge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : device_t(mconfig, ISA16_S3VIRGE, tag, owner, clock), device_isa16_card_interface(mconfig, *this), - m_vga(nullptr) + m_vga(*this, "vga") { } @@ -188,15 +185,13 @@ void isa16_s3virge_device::device_start() { set_isa_device(); - m_vga = subdevice("vga"); - m_isa->install_rom(this, 0xc0000, 0xc7fff, "svga", "s3virge"); - m_isa->install_device(0x03b0, 0x03bf, read8_delegate(FUNC(s3virge_vga_device::port_03b0_r),m_vga), write8_delegate(FUNC(s3virge_vga_device::port_03b0_w),m_vga)); - m_isa->install_device(0x03c0, 0x03cf, read8_delegate(FUNC(s3virge_vga_device::port_03c0_r),m_vga), write8_delegate(FUNC(s3virge_vga_device::port_03c0_w),m_vga)); - m_isa->install_device(0x03d0, 0x03df, read8_delegate(FUNC(s3virge_vga_device::port_03d0_r),m_vga), write8_delegate(FUNC(s3virge_vga_device::port_03d0_w),m_vga)); + m_isa->install_device(0x03b0, 0x03bf, read8_delegate(*m_vga, FUNC(s3virge_vga_device::port_03b0_r)), write8_delegate(*m_vga, FUNC(s3virge_vga_device::port_03b0_w))); + m_isa->install_device(0x03c0, 0x03cf, read8_delegate(*m_vga, FUNC(s3virge_vga_device::port_03c0_r)), write8_delegate(*m_vga, FUNC(s3virge_vga_device::port_03c0_w))); + m_isa->install_device(0x03d0, 0x03df, read8_delegate(*m_vga, FUNC(s3virge_vga_device::port_03d0_r)), write8_delegate(*m_vga, FUNC(s3virge_vga_device::port_03d0_w))); - m_isa->install_memory(0xa0000, 0xbffff, read8_delegate(FUNC(s3virge_vga_device::mem_r),m_vga), write8_delegate(FUNC(s3virge_vga_device::mem_w),m_vga)); + m_isa->install_memory(0xa0000, 0xbffff, read8_delegate(*m_vga, FUNC(s3virge_vga_device::mem_r)), write8_delegate(*m_vga, FUNC(s3virge_vga_device::mem_w))); } //------------------------------------------------- @@ -231,9 +226,9 @@ void isa16_s3virgedx_device::device_add_mconfig(machine_config &config) { screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); screen.set_raw(25.175_MHz_XTAL, 800, 0, 640, 524, 0, 480); - screen.set_screen_update("vga", FUNC(s3virgedx_vga_device::screen_update)); + screen.set_screen_update(m_vga, FUNC(s3virgedx_vga_device::screen_update)); - S3VIRGEDX(config, "vga", 0).set_screen("screen"); + S3VIRGEDX(config, m_vga, 0).set_screen("screen"); } //------------------------------------------------- @@ -256,7 +251,7 @@ const tiny_rom_entry *isa16_s3virgedx_device::device_rom_region() const isa16_s3virgedx_device::isa16_s3virgedx_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : device_t(mconfig, ISA16_S3VIRGEDX, tag, owner, clock), device_isa16_card_interface(mconfig, *this), - m_vga(nullptr) + m_vga(*this, "vga") { } @@ -269,15 +264,13 @@ void isa16_s3virgedx_device::device_start() { set_isa_device(); - m_vga = subdevice("vga"); - m_isa->install_rom(this, 0xc0000, 0xc7fff, "svga", "s3virgedx"); - m_isa->install_device(0x03b0, 0x03bf, read8_delegate(FUNC(s3virge_vga_device::port_03b0_r),m_vga), write8_delegate(FUNC(s3virge_vga_device::port_03b0_w),m_vga)); - m_isa->install_device(0x03c0, 0x03cf, read8_delegate(FUNC(s3virge_vga_device::port_03c0_r),m_vga), write8_delegate(FUNC(s3virge_vga_device::port_03c0_w),m_vga)); - m_isa->install_device(0x03d0, 0x03df, read8_delegate(FUNC(s3virge_vga_device::port_03d0_r),m_vga), write8_delegate(FUNC(s3virge_vga_device::port_03d0_w),m_vga)); + m_isa->install_device(0x03b0, 0x03bf, read8_delegate(*m_vga, FUNC(s3virge_vga_device::port_03b0_r)), write8_delegate(*m_vga, FUNC(s3virge_vga_device::port_03b0_w))); + m_isa->install_device(0x03c0, 0x03cf, read8_delegate(*m_vga, FUNC(s3virge_vga_device::port_03c0_r)), write8_delegate(*m_vga, FUNC(s3virge_vga_device::port_03c0_w))); + m_isa->install_device(0x03d0, 0x03df, read8_delegate(*m_vga, FUNC(s3virge_vga_device::port_03d0_r)), write8_delegate(*m_vga, FUNC(s3virge_vga_device::port_03d0_w))); - m_isa->install_memory(0xa0000, 0xbffff, read8_delegate(FUNC(s3virge_vga_device::mem_r),m_vga), write8_delegate(FUNC(s3virge_vga_device::mem_w),m_vga)); + m_isa->install_memory(0xa0000, 0xbffff, read8_delegate(*m_vga, FUNC(s3virge_vga_device::mem_r)), write8_delegate(*m_vga, FUNC(s3virge_vga_device::mem_w))); } //------------------------------------------------- @@ -313,9 +306,9 @@ void isa16_stealth3d2kpro_device::device_add_mconfig(machine_config &config) { screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); screen.set_raw(25.175_MHz_XTAL, 800, 0, 640, 524, 0, 480); - screen.set_screen_update("vga", FUNC(s3virgedx_rev1_vga_device::screen_update)); + screen.set_screen_update(m_vga, FUNC(s3virgedx_rev1_vga_device::screen_update)); - S3VIRGEDX1(config, "vga", 0).set_screen("screen"); + S3VIRGEDX1(config, m_vga, 0).set_screen("screen"); } //------------------------------------------------- @@ -338,7 +331,7 @@ const tiny_rom_entry *isa16_stealth3d2kpro_device::device_rom_region() const isa16_stealth3d2kpro_device::isa16_stealth3d2kpro_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : device_t(mconfig, ISA16_DMS3D2KPRO, tag, owner, clock), device_isa16_card_interface(mconfig, *this), - m_vga(nullptr) + m_vga(*this, "vga") { } @@ -351,15 +344,13 @@ void isa16_stealth3d2kpro_device::device_start() { set_isa_device(); - m_vga = subdevice("vga"); - m_isa->install_rom(this, 0xc0000, 0xc7fff, "svga", "stealth3d"); - m_isa->install_device(0x03b0, 0x03bf, read8_delegate(FUNC(s3virge_vga_device::port_03b0_r),m_vga), write8_delegate(FUNC(s3virge_vga_device::port_03b0_w),m_vga)); - m_isa->install_device(0x03c0, 0x03cf, read8_delegate(FUNC(s3virge_vga_device::port_03c0_r),m_vga), write8_delegate(FUNC(s3virge_vga_device::port_03c0_w),m_vga)); - m_isa->install_device(0x03d0, 0x03df, read8_delegate(FUNC(s3virge_vga_device::port_03d0_r),m_vga), write8_delegate(FUNC(s3virge_vga_device::port_03d0_w),m_vga)); + m_isa->install_device(0x03b0, 0x03bf, read8_delegate(*m_vga, FUNC(s3virge_vga_device::port_03b0_r)), write8_delegate(*m_vga, FUNC(s3virge_vga_device::port_03b0_w))); + m_isa->install_device(0x03c0, 0x03cf, read8_delegate(*m_vga, FUNC(s3virge_vga_device::port_03c0_r)), write8_delegate(*m_vga, FUNC(s3virge_vga_device::port_03c0_w))); + m_isa->install_device(0x03d0, 0x03df, read8_delegate(*m_vga, FUNC(s3virge_vga_device::port_03d0_r)), write8_delegate(*m_vga, FUNC(s3virge_vga_device::port_03d0_w))); - m_isa->install_memory(0xa0000, 0xbffff, read8_delegate(FUNC(s3virge_vga_device::mem_r),m_vga), write8_delegate(FUNC(s3virge_vga_device::mem_w),m_vga)); + m_isa->install_memory(0xa0000, 0xbffff, read8_delegate(*m_vga, FUNC(s3virge_vga_device::mem_r)), write8_delegate(*m_vga, FUNC(s3virge_vga_device::mem_w))); } //------------------------------------------------- diff --git a/src/devices/bus/isa/svga_s3.h b/src/devices/bus/isa/svga_s3.h index f60141518de..3889a2ed8e8 100644 --- a/src/devices/bus/isa/svga_s3.h +++ b/src/devices/bus/isa/svga_s3.h @@ -35,8 +35,8 @@ protected: virtual const tiny_rom_entry *device_rom_region() const override; private: - s3_vga_device *m_vga; - ibm8514a_device *m_8514; + required_device m_vga; + required_device m_8514; }; class isa16_s3virge_device : @@ -59,7 +59,7 @@ protected: virtual const tiny_rom_entry *device_rom_region() const override; private: - s3virge_vga_device *m_vga; + required_device m_vga; }; class isa16_s3virgedx_device : @@ -82,7 +82,7 @@ protected: virtual const tiny_rom_entry *device_rom_region() const override; private: - s3virgedx_vga_device *m_vga; + required_device m_vga; }; class isa16_stealth3d2kpro_device : @@ -105,7 +105,7 @@ protected: virtual const tiny_rom_entry *device_rom_region() const override; private: - s3virgedx_vga_device *m_vga; + required_device m_vga; }; diff --git a/src/devices/bus/isa/svga_trident.cpp b/src/devices/bus/isa/svga_trident.cpp index 31f2120f548..bc07c57a425 100644 --- a/src/devices/bus/isa/svga_trident.cpp +++ b/src/devices/bus/isa/svga_trident.cpp @@ -34,9 +34,9 @@ void isa16_svga_tgui9680_device::device_add_mconfig(machine_config &config) { screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); screen.set_raw(25.175_MHz_XTAL, 800, 0, 640, 524, 0, 480); - screen.set_screen_update("vga", FUNC(trident_vga_device::screen_update)); + screen.set_screen_update(m_vga, FUNC(trident_vga_device::screen_update)); - TRIDENT_VGA(config, "vga", 0).set_screen("screen"); + TRIDENT_VGA(config, m_vga, 0).set_screen("screen"); } //------------------------------------------------- @@ -59,7 +59,7 @@ const tiny_rom_entry *isa16_svga_tgui9680_device::device_rom_region() const isa16_svga_tgui9680_device::isa16_svga_tgui9680_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : device_t(mconfig, ISA16_SVGA_TGUI9680, tag, owner, clock), device_isa16_card_interface(mconfig, *this), - m_vga(nullptr) + m_vga(*this, "vga") { } @@ -72,26 +72,24 @@ void isa16_svga_tgui9680_device::device_start() { set_isa_device(); - m_vga = subdevice("vga"); - m_isa->install_rom(this, 0xc0000, 0xc7fff, "tgui9680", "tgui9680"); - m_isa->install_device(0x3b0, 0x3bf, read8_delegate(FUNC(trident_vga_device::port_03b0_r),m_vga), write8_delegate(FUNC(trident_vga_device::port_03b0_w),m_vga)); - m_isa->install_device(0x3c0, 0x3cf, read8_delegate(FUNC(trident_vga_device::port_03c0_r),m_vga), write8_delegate(FUNC(trident_vga_device::port_03c0_w),m_vga)); - m_isa->install_device(0x3d0, 0x3df, read8_delegate(FUNC(trident_vga_device::port_03d0_r),m_vga), write8_delegate(FUNC(trident_vga_device::port_03d0_w),m_vga)); - m_isa->install_device(0x43c4, 0x43cb, read8_delegate(FUNC(trident_vga_device::port_43c6_r),m_vga), write8_delegate(FUNC(trident_vga_device::port_43c6_w),m_vga)); - m_isa->install_device(0x83c4, 0x83cb, read8_delegate(FUNC(trident_vga_device::port_83c6_r),m_vga), write8_delegate(FUNC(trident_vga_device::port_83c6_w),m_vga)); + m_isa->install_device(0x3b0, 0x3bf, read8_delegate(*m_vga, FUNC(trident_vga_device::port_03b0_r)), write8_delegate(*m_vga, FUNC(trident_vga_device::port_03b0_w))); + m_isa->install_device(0x3c0, 0x3cf, read8_delegate(*m_vga, FUNC(trident_vga_device::port_03c0_r)), write8_delegate(*m_vga, FUNC(trident_vga_device::port_03c0_w))); + m_isa->install_device(0x3d0, 0x3df, read8_delegate(*m_vga, FUNC(trident_vga_device::port_03d0_r)), write8_delegate(*m_vga, FUNC(trident_vga_device::port_03d0_w))); + m_isa->install_device(0x43c4, 0x43cb, read8_delegate(*m_vga, FUNC(trident_vga_device::port_43c6_r)), write8_delegate(*m_vga, FUNC(trident_vga_device::port_43c6_w))); + m_isa->install_device(0x83c4, 0x83cb, read8_delegate(*m_vga, FUNC(trident_vga_device::port_83c6_r)), write8_delegate(*m_vga, FUNC(trident_vga_device::port_83c6_w))); - m_isa->install_memory(0xa0000, 0xbffff, read8_delegate(FUNC(trident_vga_device::mem_r),m_vga), write8_delegate(FUNC(trident_vga_device::mem_w),m_vga)); + m_isa->install_memory(0xa0000, 0xbffff, read8_delegate(*m_vga, FUNC(trident_vga_device::mem_r)), write8_delegate(*m_vga, FUNC(trident_vga_device::mem_w))); // uncomment to test Windows 3.1 TGUI9440AGi driver -// m_isa->install_memory(0x4400000, 0x45fffff, read8_delegate(FUNC(trident_vga_device::vram_r),m_vga), write8_delegate(FUNC(trident_vga_device::vram_w),m_vga)); +// m_isa->install_memory(0x4400000, 0x45fffff, read8_delegate(*m_vga, FUNC(trident_vga_device::vram_r)), write8_delegate(*m_vga, FUNC(trident_vga_device::vram_w))); // win95 drivers -// m_isa->install_memory(0x4000000, 0x41fffff, read8_delegate(FUNC(trident_vga_device::vram_r),m_vga), write8_delegate(FUNC(trident_vga_device::vram_w),m_vga)); +// m_isa->install_memory(0x4000000, 0x41fffff, read8_delegate(*m_vga, FUNC(trident_vga_device::vram_r)), write8_delegate(FUNC(*m_vga, trident_vga_device::vram_w))); // acceleration ports - m_isa->install_device(0x2120, 0x21ff, read8_delegate(FUNC(trident_vga_device::accel_r),m_vga), write8_delegate(FUNC(trident_vga_device::accel_w),m_vga)); + m_isa->install_device(0x2120, 0x21ff, read8_delegate(*m_vga, FUNC(trident_vga_device::accel_r)), write8_delegate(*m_vga, FUNC(trident_vga_device::accel_w))); } //------------------------------------------------- diff --git a/src/devices/bus/isa/svga_trident.h b/src/devices/bus/isa/svga_trident.h index d8be1458591..47019e6b16e 100644 --- a/src/devices/bus/isa/svga_trident.h +++ b/src/devices/bus/isa/svga_trident.h @@ -39,7 +39,7 @@ protected: virtual const tiny_rom_entry *device_rom_region() const override; private: - trident_vga_device *m_vga; + required_device m_vga; }; diff --git a/src/devices/bus/isa/svga_tseng.cpp b/src/devices/bus/isa/svga_tseng.cpp index 354643fd96d..53dc3d72a5d 100644 --- a/src/devices/bus/isa/svga_tseng.cpp +++ b/src/devices/bus/isa/svga_tseng.cpp @@ -33,9 +33,9 @@ void isa8_svga_et4k_device::device_add_mconfig(machine_config &config) { screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); screen.set_raw(25.175_MHz_XTAL, 800, 0, 640, 524, 0, 480); - screen.set_screen_update("vga", FUNC(tseng_vga_device::screen_update)); + screen.set_screen_update(m_vga, FUNC(tseng_vga_device::screen_update)); - TSENG_VGA(config, "vga", 0).set_screen("screen"); + TSENG_VGA(config, m_vga, 0).set_screen("screen"); } //------------------------------------------------- @@ -58,7 +58,7 @@ const tiny_rom_entry *isa8_svga_et4k_device::device_rom_region() const isa8_svga_et4k_device::isa8_svga_et4k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : device_t(mconfig, ISA8_SVGA_ET4K, tag, owner, clock), device_isa8_card_interface(mconfig, *this), - m_vga(nullptr) + m_vga(*this, "vga") { } @@ -71,8 +71,6 @@ void isa8_svga_et4k_device::device_start() { set_isa_device(); - m_vga = subdevice("vga"); - map_io(); map_ram(); map_rom(); @@ -104,14 +102,14 @@ void isa8_svga_et4k_device::remap(int space_id, offs_t start, offs_t end) void isa8_svga_et4k_device::map_io() { - m_isa->install_device(0x3b0, 0x3bf, read8_delegate(FUNC(tseng_vga_device::port_03b0_r), m_vga), write8_delegate(FUNC(tseng_vga_device::port_03b0_w), m_vga)); - m_isa->install_device(0x3c0, 0x3cf, read8_delegate(FUNC(tseng_vga_device::port_03c0_r), m_vga), write8_delegate(FUNC(tseng_vga_device::port_03c0_w), m_vga)); - m_isa->install_device(0x3d0, 0x3df, read8_delegate(FUNC(tseng_vga_device::port_03d0_r), m_vga), write8_delegate(FUNC(tseng_vga_device::port_03d0_w), m_vga)); + m_isa->install_device(0x3b0, 0x3bf, read8_delegate(*m_vga, FUNC(tseng_vga_device::port_03b0_r)), write8_delegate(*m_vga, FUNC(tseng_vga_device::port_03b0_w))); + m_isa->install_device(0x3c0, 0x3cf, read8_delegate(*m_vga, FUNC(tseng_vga_device::port_03c0_r)), write8_delegate(*m_vga, FUNC(tseng_vga_device::port_03c0_w))); + m_isa->install_device(0x3d0, 0x3df, read8_delegate(*m_vga, FUNC(tseng_vga_device::port_03d0_r)), write8_delegate(*m_vga, FUNC(tseng_vga_device::port_03d0_w))); } void isa8_svga_et4k_device::map_ram() { - m_isa->install_memory(0xa0000, 0xbffff, read8_delegate(FUNC(tseng_vga_device::mem_r), m_vga), write8_delegate(FUNC(tseng_vga_device::mem_w), m_vga)); + m_isa->install_memory(0xa0000, 0xbffff, read8_delegate(*m_vga, FUNC(tseng_vga_device::mem_r)), write8_delegate(*m_vga, FUNC(tseng_vga_device::mem_w))); } void isa8_svga_et4k_device::map_rom() diff --git a/src/devices/bus/isa/svga_tseng.h b/src/devices/bus/isa/svga_tseng.h index f83460e86ff..f267aad2634 100644 --- a/src/devices/bus/isa/svga_tseng.h +++ b/src/devices/bus/isa/svga_tseng.h @@ -39,7 +39,7 @@ private: void map_io(); void map_ram(); void map_rom(); - tseng_vga_device *m_vga; + required_device m_vga; }; diff --git a/src/devices/bus/isa/trident.cpp b/src/devices/bus/isa/trident.cpp index a3cd123305b..9110c2205ef 100644 --- a/src/devices/bus/isa/trident.cpp +++ b/src/devices/bus/isa/trident.cpp @@ -169,7 +169,7 @@ void trident_vga_device::device_start() // copy over interfaces - vga.read_dipswitch = read8_delegate(); //read_dipswitch; + vga.read_dipswitch.set(nullptr); //read_dipswitch; vga.svga_intf.vram_size = 0x200000; vga.memory.resize(vga.svga_intf.vram_size); diff --git a/src/devices/bus/isa/vga.cpp b/src/devices/bus/isa/vga.cpp index 121f689d711..3fafec340b0 100644 --- a/src/devices/bus/isa/vga.cpp +++ b/src/devices/bus/isa/vga.cpp @@ -31,9 +31,9 @@ void isa8_vga_device::device_add_mconfig(machine_config &config) { screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); screen.set_raw(25.175_MHz_XTAL, 800, 0, 640, 524, 0, 480); - screen.set_screen_update("vga", FUNC(vga_device::screen_update)); + screen.set_screen_update(m_vga, FUNC(vga_device::screen_update)); - VGA(config, "vga", 0).set_screen("screen"); + VGA(config, m_vga, 0).set_screen("screen"); } //------------------------------------------------- @@ -55,7 +55,8 @@ const tiny_rom_entry *isa8_vga_device::device_rom_region() const isa8_vga_device::isa8_vga_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : device_t(mconfig, ISA8_VGA, tag, owner, clock), - device_isa8_card_interface(mconfig, *this), m_vga(nullptr) + device_isa8_card_interface(mconfig, *this), + m_vga(*this, "vga") { } @@ -68,15 +69,13 @@ void isa8_vga_device::device_start() { set_isa_device(); - m_vga = subdevice("vga"); - m_isa->install_rom(this, 0xc0000, 0xc7fff, "ibm_vga", "ibm_vga"); - m_isa->install_device(0x3b0, 0x3bf, read8_delegate(FUNC(vga_device::port_03b0_r),m_vga), write8_delegate(FUNC(vga_device::port_03b0_w),m_vga)); - m_isa->install_device(0x3c0, 0x3cf, read8_delegate(FUNC(vga_device::port_03c0_r),m_vga), write8_delegate(FUNC(vga_device::port_03c0_w),m_vga)); - m_isa->install_device(0x3d0, 0x3df, read8_delegate(FUNC(vga_device::port_03d0_r),m_vga), write8_delegate(FUNC(vga_device::port_03d0_w),m_vga)); + m_isa->install_device(0x3b0, 0x3bf, read8_delegate(*m_vga, FUNC(vga_device::port_03b0_r)), write8_delegate(*m_vga, FUNC(vga_device::port_03b0_w))); + m_isa->install_device(0x3c0, 0x3cf, read8_delegate(*m_vga, FUNC(vga_device::port_03c0_r)), write8_delegate(*m_vga, FUNC(vga_device::port_03c0_w))); + m_isa->install_device(0x3d0, 0x3df, read8_delegate(*m_vga, FUNC(vga_device::port_03d0_r)), write8_delegate(*m_vga, FUNC(vga_device::port_03d0_w))); - m_isa->install_memory(0xa0000, 0xbffff, read8_delegate(FUNC(vga_device::mem_r),m_vga), write8_delegate(FUNC(vga_device::mem_w),m_vga)); + m_isa->install_memory(0xa0000, 0xbffff, read8_delegate(*m_vga, FUNC(vga_device::mem_r)), write8_delegate(*m_vga, FUNC(vga_device::mem_w))); } //------------------------------------------------- diff --git a/src/devices/bus/isa/vga.h b/src/devices/bus/isa/vga.h index 856016ecc5a..4f18d8ff053 100644 --- a/src/devices/bus/isa/vga.h +++ b/src/devices/bus/isa/vga.h @@ -34,7 +34,7 @@ protected: virtual const tiny_rom_entry *device_rom_region() const override; private: - vga_device *m_vga; + required_device m_vga; }; diff --git a/src/devices/bus/isa/vga_ati.cpp b/src/devices/bus/isa/vga_ati.cpp index 63f9a1ec987..37617ae62d4 100644 --- a/src/devices/bus/isa/vga_ati.cpp +++ b/src/devices/bus/isa/vga_ati.cpp @@ -80,27 +80,27 @@ void isa16_vga_gfxultra_device::device_add_mconfig(machine_config &config) { screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); screen.set_raw(25.175_MHz_XTAL, 800, 0, 640, 524, 0, 480); - screen.set_screen_update("vga", FUNC(ati_vga_device::screen_update)); + screen.set_screen_update(m_vga, FUNC(ati_vga_device::screen_update)); - ATI_VGA(config, "vga", 0).set_screen("screen"); + ATI_VGA(config, m_vga, 0).set_screen("screen"); } void isa16_vga_gfxultrapro_device::device_add_mconfig(machine_config &config) { screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); screen.set_raw(25.175_MHz_XTAL, 800, 0, 640, 524, 0, 480); - screen.set_screen_update("vga", FUNC(mach32_device::screen_update)); + screen.set_screen_update(m_vga, FUNC(mach32_device::screen_update)); - ATIMACH32(config, "vga", 0).set_screen("screen"); + ATIMACH32(config, m_vga, 0).set_screen("screen"); } void isa16_vga_mach64_device::device_add_mconfig(machine_config &config) { screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); screen.set_raw(25.175_MHz_XTAL, 800, 0, 640, 524, 0, 480); - screen.set_screen_update("vga", FUNC(mach64_device::screen_update)); + screen.set_screen_update(m_vga, FUNC(mach64_device::screen_update)); - ATIMACH64(config, "vga", 0).set_screen("screen"); + ATIMACH64(config, m_vga, 0).set_screen("screen"); } @@ -134,21 +134,21 @@ const tiny_rom_entry *isa16_vga_mach64_device::device_rom_region() const isa16_vga_gfxultra_device::isa16_vga_gfxultra_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : device_t(mconfig, ISA16_VGA_GFXULTRA, tag, owner, clock), device_isa16_card_interface(mconfig, *this), - m_vga(nullptr), m_8514(nullptr) + m_vga(*this, "vga"), m_8514(*this, "vga:8514a") { } isa16_vga_gfxultrapro_device::isa16_vga_gfxultrapro_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : device_t(mconfig, ISA16_SVGA_GFXULTRAPRO, tag, owner, clock), device_isa16_card_interface(mconfig, *this), - m_vga(nullptr) + m_vga(*this, "vga") { } isa16_vga_mach64_device::isa16_vga_mach64_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : device_t(mconfig, ISA16_SVGA_MACH64, tag, owner, clock), device_isa16_card_interface(mconfig, *this), - m_vga(nullptr) + m_vga(*this, "vga") { } @@ -163,199 +163,192 @@ void isa16_vga_gfxultra_device::device_start() { set_isa_device(); - m_vga = subdevice("vga"); - m_8514 = subdevice("vga:8514a"); - m_isa->install_rom(this, 0xc0000, 0xc7fff, "vga", "gfxultra"); - m_isa->install_device(0x1ce, 0x1cf, read8_delegate(FUNC(ati_vga_device::ati_port_ext_r),m_vga), write8_delegate(FUNC(ati_vga_device::ati_port_ext_w),m_vga)); - m_isa->install_device(0x2e8, 0x2ef, read8_delegate(FUNC(mach8_device::ibm8514_status_r),m_8514), write8_delegate(FUNC(mach8_device::ibm8514_htotal_w),m_8514)); - m_isa->install_device(0x3b0, 0x3bf, read8_delegate(FUNC(ati_vga_device::port_03b0_r),m_vga), write8_delegate(FUNC(vga_device::port_03b0_w),m_vga)); - m_isa->install_device(0x3c0, 0x3cf, read8_delegate(FUNC(ati_vga_device::port_03c0_r),m_vga), write8_delegate(FUNC(vga_device::port_03c0_w),m_vga)); - m_isa->install_device(0x3d0, 0x3df, read8_delegate(FUNC(ati_vga_device::port_03d0_r),m_vga), write8_delegate(FUNC(vga_device::port_03d0_w),m_vga)); - m_isa->install16_device(0x12e8, 0x12eb, read16_delegate(FUNC(mach8_device::ibm8514_vtotal_r),m_8514), write16_delegate(FUNC(mach8_device::ibm8514_vtotal_w),m_8514)); - m_isa->install16_device(0x12ec, 0x12ef, read16_delegate(FUNC(mach8_device::mach8_config1_r),m_8514), write16_delegate()); - m_isa->install16_device(0x16e8, 0x16eb, read16_delegate(FUNC(mach8_device::ibm8514_vdisp_r),m_8514), write16_delegate(FUNC(mach8_device::ibm8514_vdisp_w),m_8514)); - m_isa->install16_device(0x16ec, 0x16ef, read16_delegate(FUNC(mach8_device::mach8_config2_r),m_8514), write16_delegate()); - m_isa->install16_device(0x1ae8, 0x1aeb, read16_delegate(FUNC(mach8_device::ibm8514_vsync_r),m_8514), write16_delegate(FUNC(mach8_device::ibm8514_vsync_w),m_8514)); - m_isa->install16_device(0x22e8, 0x22eb, read16_delegate(FUNC(mach8_device::mach8_readonly_r),m_8514),write16_delegate(FUNC(mach8_device::ibm8514_display_ctrl_w),m_8514)); - m_isa->install16_device(0x26e8, 0x26eb, read16_delegate(FUNC(mach8_device::ibm8514_htotal_r),m_8514),write16_delegate()); - m_isa->install16_device(0x26ec, 0x26ef, read16_delegate(FUNC(mach8_device::mach8_readonly_r),m_8514),write16_delegate(FUNC(mach8_device::mach8_crt_pitch_w),m_8514)); - m_isa->install16_device(0x2ee8, 0x2eeb, read16_delegate(FUNC(mach8_device::ibm8514_subcontrol_r),m_8514),write16_delegate()); - m_isa->install16_device(0x42e8, 0x42eb, read16_delegate(FUNC(mach8_device::ibm8514_substatus_r),m_8514), write16_delegate(FUNC(mach8_device::ibm8514_subcontrol_w),m_8514)); - m_isa->install16_device(0x4ae8, 0x4aeb, read16_delegate(FUNC(mach8_device::mach8_readonly_r),m_8514), write16_delegate(FUNC(mach8_device::mach8_advfunc_w),m_8514)); - m_isa->install16_device(0x4aec, 0x4aef, read16_delegate(FUNC(mach8_device::mach8_clksel_r),m_8514), write16_delegate(FUNC(mach8_device::mach8_clksel_w),m_8514)); - m_isa->install16_device(0x52e8, 0x52eb, read16_delegate(FUNC(mach8_device::mach8_ec0_r),m_8514), write16_delegate(FUNC(mach8_device::mach8_ec0_w),m_8514)); - m_isa->install16_device(0x52ec, 0x52ef, read16_delegate(FUNC(mach8_device::mach8_scratch0_r),m_8514), write16_delegate(FUNC(mach8_device::mach8_scratch0_w),m_8514)); - m_isa->install16_device(0x56e8, 0x56eb, read16_delegate(FUNC(mach8_device::mach8_ec1_r),m_8514), write16_delegate(FUNC(mach8_device::mach8_ec1_w),m_8514)); - m_isa->install16_device(0x56ec, 0x56ef, read16_delegate(FUNC(mach8_device::mach8_scratch0_r),m_8514), write16_delegate(FUNC(mach8_device::mach8_scratch0_w),m_8514)); - m_isa->install16_device(0x5ae8, 0x5aeb, read16_delegate(FUNC(mach8_device::mach8_ec2_r),m_8514), write16_delegate(FUNC(mach8_device::mach8_ec2_w),m_8514)); - m_isa->install16_device(0x5ee8, 0x5eeb, read16_delegate(FUNC(mach8_device::mach8_ec3_r),m_8514), write16_delegate(FUNC(mach8_device::mach8_ec3_w),m_8514)); - m_isa->install16_device(0x6eec, 0x6eef, read16_delegate(FUNC(mach8_device::mach8_readonly_r),m_8514), write16_delegate(FUNC(mach8_device::mach8_ge_offset_l_w),m_8514)); - m_isa->install16_device(0x72ec, 0x72ef, read16_delegate(FUNC(mach8_device::mach8_readonly_r),m_8514), write16_delegate(FUNC(mach8_device::mach8_ge_offset_h_w),m_8514)); - m_isa->install16_device(0x76ec, 0x76ef, read16_delegate(FUNC(mach8_device::mach8_readonly_r),m_8514), write16_delegate(FUNC(mach8_device::mach8_ge_pitch_w),m_8514)); - m_isa->install16_device(0x7aec, 0x7aef, read16_delegate(FUNC(mach8_device::mach8_readonly_r),m_8514), write16_delegate(FUNC(mach8_device::mach8_ge_ext_config_w),m_8514)); - m_isa->install16_device(0x82e8, 0x82eb, read16_delegate(FUNC(mach8_device::ibm8514_currenty_r),m_8514), write16_delegate(FUNC(mach8_device::ibm8514_currenty_w),m_8514)); - m_isa->install16_device(0x86e8, 0x86eb, read16_delegate(FUNC(mach8_device::ibm8514_currentx_r),m_8514), write16_delegate(FUNC(mach8_device::ibm8514_currentx_w),m_8514)); - m_isa->install16_device(0x8ae8, 0x8aeb, read16_delegate(FUNC(mach8_device::ibm8514_desty_r),m_8514), write16_delegate(FUNC(mach8_device::ibm8514_desty_w),m_8514)); - m_isa->install16_device(0x8ee8, 0x8eeb, read16_delegate(FUNC(mach8_device::ibm8514_destx_r),m_8514), write16_delegate(FUNC(mach8_device::ibm8514_destx_w),m_8514)); - m_isa->install16_device(0x8eec, 0x8eef, read16_delegate(FUNC(mach8_device::mach8_ge_ext_config_r),m_8514), write16_delegate(FUNC(mach8_device::mach8_patt_data_w),m_8514)); - m_isa->install16_device(0x92e8, 0x92eb, read16_delegate(FUNC(mach8_device::ibm8514_line_error_r),m_8514), write16_delegate(FUNC(mach8_device::ibm8514_line_error_w),m_8514)); - m_isa->install16_device(0x96e8, 0x96eb, read16_delegate(FUNC(mach8_device::ibm8514_width_r),m_8514), write16_delegate(FUNC(mach8_device::ibm8514_width_w),m_8514)); - m_isa->install16_device(0x96ec, 0x96ef, read16_delegate(FUNC(mach8_device::mach8_bresenham_count_r),m_8514), write16_delegate(FUNC(mach8_device::mach8_bresenham_count_w),m_8514)); - m_isa->install16_device(0x9ae8, 0x9aeb, read16_delegate(FUNC(mach8_device::ibm8514_gpstatus_r),m_8514), write16_delegate(FUNC(mach8_device::ibm8514_cmd_w),m_8514)); - m_isa->install16_device(0x9aec, 0x9aef, read16_delegate(FUNC(mach8_device::mach8_ext_fifo_r),m_8514), write16_delegate(FUNC(mach8_device::mach8_linedraw_index_w),m_8514)); - m_isa->install16_device(0x9ee8, 0x9eeb, read16_delegate(FUNC(mach8_device::ibm8514_ssv_r),m_8514), write16_delegate(FUNC(mach8_device::ibm8514_ssv_w),m_8514)); - m_isa->install16_device(0xa2e8, 0xa2eb, read16_delegate(FUNC(mach8_device::ibm8514_bgcolour_r),m_8514), write16_delegate(FUNC(mach8_device::ibm8514_bgcolour_w),m_8514)); - m_isa->install16_device(0xa6e8, 0xa6eb, read16_delegate(FUNC(mach8_device::ibm8514_fgcolour_r),m_8514), write16_delegate(FUNC(mach8_device::ibm8514_fgcolour_w),m_8514)); - m_isa->install16_device(0xaae8, 0xaaeb, read16_delegate(FUNC(ibm8514a_device::ibm8514_write_mask_r),m_8514), write16_delegate(FUNC(ibm8514a_device::ibm8514_write_mask_w),m_8514)); - m_isa->install16_device(0xaee8, 0xaeeb, read16_delegate(FUNC(ibm8514a_device::ibm8514_read_mask_r),m_8514), write16_delegate(FUNC(ibm8514a_device::ibm8514_read_mask_w),m_8514)); - m_isa->install16_device(0xb6e8, 0xb6eb, read16_delegate(FUNC(mach8_device::ibm8514_backmix_r),m_8514), write16_delegate(FUNC(mach8_device::ibm8514_backmix_w),m_8514)); - m_isa->install16_device(0xbae8, 0xbaeb, read16_delegate(FUNC(mach8_device::ibm8514_foremix_r),m_8514), write16_delegate(FUNC(mach8_device::ibm8514_foremix_w),m_8514)); - m_isa->install16_device(0xbee8, 0xbeeb, read16_delegate(FUNC(mach8_device::ibm8514_multifunc_r),m_8514), write16_delegate(FUNC(mach8_device::ibm8514_multifunc_w),m_8514)); - m_isa->install16_device(0xcaec, 0xcaef, read16_delegate(FUNC(mach8_device::mach8_readonly_r),m_8514), write16_delegate(FUNC(mach8_device::mach8_scan_x_w),m_8514)); - m_isa->install16_device(0xceec, 0xceef, read16_delegate(FUNC(mach8_device::mach8_readonly_r),m_8514), write16_delegate(FUNC(mach8_device::mach8_dp_config_w),m_8514)); - m_isa->install16_device(0xe2e8, 0xe2eb, read16_delegate(FUNC(mach8_device::ibm8514_pixel_xfer_r),m_8514), write16_delegate(FUNC(mach8_device::mach8_pixel_xfer_w),m_8514)); - m_isa->install16_device(0xdaec, 0xdaef, read16_delegate(FUNC(mach8_device::mach8_sourcex_r),m_8514), write16_delegate(FUNC(mach8_device::mach8_ext_leftscissor_w),m_8514)); - m_isa->install16_device(0xdeec, 0xdeef, read16_delegate(FUNC(mach8_device::mach8_sourcey_r),m_8514), write16_delegate(FUNC(mach8_device::mach8_ext_topscissor_w),m_8514)); - m_isa->install16_device(0xfeec, 0xfeef, read16_delegate(FUNC(mach8_device::mach8_linedraw_r),m_8514), write16_delegate(FUNC(mach8_device::mach8_linedraw_w),m_8514)); - - m_isa->install_memory(0xa0000, 0xbffff, read8_delegate(FUNC(ati_vga_device::mem_r),m_vga), write8_delegate(FUNC(ati_vga_device::mem_w),m_vga)); + m_isa->install_device(0x1ce, 0x1cf, read8_delegate(*m_vga, FUNC(ati_vga_device::ati_port_ext_r)), write8_delegate(*m_vga, FUNC(ati_vga_device::ati_port_ext_w))); + m_isa->install_device(0x2e8, 0x2ef, read8_delegate(*m_8514, FUNC(mach8_device::ibm8514_status_r)), write8_delegate(*m_8514, FUNC(mach8_device::ibm8514_htotal_w))); + m_isa->install_device(0x3b0, 0x3bf, read8_delegate(*m_vga, FUNC(ati_vga_device::port_03b0_r)), write8_delegate(*m_vga, FUNC(vga_device::port_03b0_w))); + m_isa->install_device(0x3c0, 0x3cf, read8_delegate(*m_vga, FUNC(ati_vga_device::port_03c0_r)), write8_delegate(*m_vga, FUNC(vga_device::port_03c0_w))); + m_isa->install_device(0x3d0, 0x3df, read8_delegate(*m_vga, FUNC(ati_vga_device::port_03d0_r)), write8_delegate(*m_vga, FUNC(vga_device::port_03d0_w))); + m_isa->install16_device(0x12e8, 0x12eb, read16_delegate(*m_8514, FUNC(mach8_device::ibm8514_vtotal_r)), write16_delegate(*m_8514, FUNC(mach8_device::ibm8514_vtotal_w))); + m_isa->install16_device(0x12ec, 0x12ef, read16_delegate(*m_8514, FUNC(mach8_device::mach8_config1_r)), write16_delegate(*this)); + m_isa->install16_device(0x16e8, 0x16eb, read16_delegate(*m_8514, FUNC(mach8_device::ibm8514_vdisp_r)), write16_delegate(*m_8514, FUNC(mach8_device::ibm8514_vdisp_w))); + m_isa->install16_device(0x16ec, 0x16ef, read16_delegate(*m_8514, FUNC(mach8_device::mach8_config2_r)), write16_delegate(*this)); + m_isa->install16_device(0x1ae8, 0x1aeb, read16_delegate(*m_8514, FUNC(mach8_device::ibm8514_vsync_r)), write16_delegate(*m_8514, FUNC(mach8_device::ibm8514_vsync_w))); + m_isa->install16_device(0x22e8, 0x22eb, read16_delegate(*m_8514, FUNC(mach8_device::mach8_readonly_r)), write16_delegate(*m_8514, FUNC(mach8_device::ibm8514_display_ctrl_w))); + m_isa->install16_device(0x26e8, 0x26eb, read16_delegate(*m_8514, FUNC(mach8_device::ibm8514_htotal_r)), write16_delegate(*this)); + m_isa->install16_device(0x26ec, 0x26ef, read16_delegate(*m_8514, FUNC(mach8_device::mach8_readonly_r)), write16_delegate(*m_8514, FUNC(mach8_device::mach8_crt_pitch_w))); + m_isa->install16_device(0x2ee8, 0x2eeb, read16_delegate(*m_8514, FUNC(mach8_device::ibm8514_subcontrol_r)), write16_delegate(*this)); + m_isa->install16_device(0x42e8, 0x42eb, read16_delegate(*m_8514, FUNC(mach8_device::ibm8514_substatus_r)), write16_delegate(*m_8514, FUNC(mach8_device::ibm8514_subcontrol_w))); + m_isa->install16_device(0x4ae8, 0x4aeb, read16_delegate(*m_8514, FUNC(mach8_device::mach8_readonly_r)), write16_delegate(*m_8514, FUNC(mach8_device::mach8_advfunc_w))); + m_isa->install16_device(0x4aec, 0x4aef, read16_delegate(*m_8514, FUNC(mach8_device::mach8_clksel_r)), write16_delegate(*m_8514, FUNC(mach8_device::mach8_clksel_w))); + m_isa->install16_device(0x52e8, 0x52eb, read16_delegate(*m_8514, FUNC(mach8_device::mach8_ec0_r)), write16_delegate(*m_8514, FUNC(mach8_device::mach8_ec0_w))); + m_isa->install16_device(0x52ec, 0x52ef, read16_delegate(*m_8514, FUNC(mach8_device::mach8_scratch0_r)), write16_delegate(*m_8514, FUNC(mach8_device::mach8_scratch0_w))); + m_isa->install16_device(0x56e8, 0x56eb, read16_delegate(*m_8514, FUNC(mach8_device::mach8_ec1_r)), write16_delegate(*m_8514, FUNC(mach8_device::mach8_ec1_w))); + m_isa->install16_device(0x56ec, 0x56ef, read16_delegate(*m_8514, FUNC(mach8_device::mach8_scratch0_r)), write16_delegate(*m_8514, FUNC(mach8_device::mach8_scratch0_w))); + m_isa->install16_device(0x5ae8, 0x5aeb, read16_delegate(*m_8514, FUNC(mach8_device::mach8_ec2_r)), write16_delegate(*m_8514, FUNC(mach8_device::mach8_ec2_w))); + m_isa->install16_device(0x5ee8, 0x5eeb, read16_delegate(*m_8514, FUNC(mach8_device::mach8_ec3_r)), write16_delegate(*m_8514, FUNC(mach8_device::mach8_ec3_w))); + m_isa->install16_device(0x6eec, 0x6eef, read16_delegate(*m_8514, FUNC(mach8_device::mach8_readonly_r)), write16_delegate(*m_8514, FUNC(mach8_device::mach8_ge_offset_l_w))); + m_isa->install16_device(0x72ec, 0x72ef, read16_delegate(*m_8514, FUNC(mach8_device::mach8_readonly_r)), write16_delegate(*m_8514, FUNC(mach8_device::mach8_ge_offset_h_w))); + m_isa->install16_device(0x76ec, 0x76ef, read16_delegate(*m_8514, FUNC(mach8_device::mach8_readonly_r)), write16_delegate(*m_8514, FUNC(mach8_device::mach8_ge_pitch_w))); + m_isa->install16_device(0x7aec, 0x7aef, read16_delegate(*m_8514, FUNC(mach8_device::mach8_readonly_r)), write16_delegate(*m_8514, FUNC(mach8_device::mach8_ge_ext_config_w))); + m_isa->install16_device(0x82e8, 0x82eb, read16_delegate(*m_8514, FUNC(mach8_device::ibm8514_currenty_r)), write16_delegate(*m_8514, FUNC(mach8_device::ibm8514_currenty_w))); + m_isa->install16_device(0x86e8, 0x86eb, read16_delegate(*m_8514, FUNC(mach8_device::ibm8514_currentx_r)), write16_delegate(*m_8514, FUNC(mach8_device::ibm8514_currentx_w))); + m_isa->install16_device(0x8ae8, 0x8aeb, read16_delegate(*m_8514, FUNC(mach8_device::ibm8514_desty_r)), write16_delegate(*m_8514, FUNC(mach8_device::ibm8514_desty_w))); + m_isa->install16_device(0x8ee8, 0x8eeb, read16_delegate(*m_8514, FUNC(mach8_device::ibm8514_destx_r)), write16_delegate(*m_8514, FUNC(mach8_device::ibm8514_destx_w))); + m_isa->install16_device(0x8eec, 0x8eef, read16_delegate(*m_8514, FUNC(mach8_device::mach8_ge_ext_config_r)), write16_delegate(*m_8514, FUNC(mach8_device::mach8_patt_data_w))); + m_isa->install16_device(0x92e8, 0x92eb, read16_delegate(*m_8514, FUNC(mach8_device::ibm8514_line_error_r)), write16_delegate(*m_8514, FUNC(mach8_device::ibm8514_line_error_w))); + m_isa->install16_device(0x96e8, 0x96eb, read16_delegate(*m_8514, FUNC(mach8_device::ibm8514_width_r)), write16_delegate(*m_8514, FUNC(mach8_device::ibm8514_width_w))); + m_isa->install16_device(0x96ec, 0x96ef, read16_delegate(*m_8514, FUNC(mach8_device::mach8_bresenham_count_r)), write16_delegate(*m_8514, FUNC(mach8_device::mach8_bresenham_count_w))); + m_isa->install16_device(0x9ae8, 0x9aeb, read16_delegate(*m_8514, FUNC(mach8_device::ibm8514_gpstatus_r)), write16_delegate(*m_8514, FUNC(mach8_device::ibm8514_cmd_w))); + m_isa->install16_device(0x9aec, 0x9aef, read16_delegate(*m_8514, FUNC(mach8_device::mach8_ext_fifo_r)), write16_delegate(*m_8514, FUNC(mach8_device::mach8_linedraw_index_w))); + m_isa->install16_device(0x9ee8, 0x9eeb, read16_delegate(*m_8514, FUNC(mach8_device::ibm8514_ssv_r)), write16_delegate(*m_8514, FUNC(mach8_device::ibm8514_ssv_w))); + m_isa->install16_device(0xa2e8, 0xa2eb, read16_delegate(*m_8514, FUNC(mach8_device::ibm8514_bgcolour_r)), write16_delegate(*m_8514, FUNC(mach8_device::ibm8514_bgcolour_w))); + m_isa->install16_device(0xa6e8, 0xa6eb, read16_delegate(*m_8514, FUNC(mach8_device::ibm8514_fgcolour_r)), write16_delegate(*m_8514, FUNC(mach8_device::ibm8514_fgcolour_w))); + m_isa->install16_device(0xaae8, 0xaaeb, read16_delegate(*m_8514, FUNC(ibm8514a_device::ibm8514_write_mask_r)), write16_delegate(*m_8514, FUNC(ibm8514a_device::ibm8514_write_mask_w))); + m_isa->install16_device(0xaee8, 0xaeeb, read16_delegate(*m_8514, FUNC(ibm8514a_device::ibm8514_read_mask_r)), write16_delegate(*m_8514, FUNC(ibm8514a_device::ibm8514_read_mask_w))); + m_isa->install16_device(0xb6e8, 0xb6eb, read16_delegate(*m_8514, FUNC(mach8_device::ibm8514_backmix_r)), write16_delegate(*m_8514, FUNC(mach8_device::ibm8514_backmix_w))); + m_isa->install16_device(0xbae8, 0xbaeb, read16_delegate(*m_8514, FUNC(mach8_device::ibm8514_foremix_r)), write16_delegate(*m_8514, FUNC(mach8_device::ibm8514_foremix_w))); + m_isa->install16_device(0xbee8, 0xbeeb, read16_delegate(*m_8514, FUNC(mach8_device::ibm8514_multifunc_r)), write16_delegate(*m_8514, FUNC(mach8_device::ibm8514_multifunc_w))); + m_isa->install16_device(0xcaec, 0xcaef, read16_delegate(*m_8514, FUNC(mach8_device::mach8_readonly_r)), write16_delegate(*m_8514, FUNC(mach8_device::mach8_scan_x_w))); + m_isa->install16_device(0xceec, 0xceef, read16_delegate(*m_8514, FUNC(mach8_device::mach8_readonly_r)), write16_delegate(*m_8514, FUNC(mach8_device::mach8_dp_config_w))); + m_isa->install16_device(0xe2e8, 0xe2eb, read16_delegate(*m_8514, FUNC(mach8_device::ibm8514_pixel_xfer_r)), write16_delegate(*m_8514, FUNC(mach8_device::mach8_pixel_xfer_w))); + m_isa->install16_device(0xdaec, 0xdaef, read16_delegate(*m_8514, FUNC(mach8_device::mach8_sourcex_r)), write16_delegate(*m_8514, FUNC(mach8_device::mach8_ext_leftscissor_w))); + m_isa->install16_device(0xdeec, 0xdeef, read16_delegate(*m_8514, FUNC(mach8_device::mach8_sourcey_r)), write16_delegate(*m_8514, FUNC(mach8_device::mach8_ext_topscissor_w))); + m_isa->install16_device(0xfeec, 0xfeef, read16_delegate(*m_8514, FUNC(mach8_device::mach8_linedraw_r)), write16_delegate(*m_8514, FUNC(mach8_device::mach8_linedraw_w))); + + m_isa->install_memory(0xa0000, 0xbffff, read8_delegate(*m_vga, FUNC(ati_vga_device::mem_r)), write8_delegate(*m_vga, FUNC(ati_vga_device::mem_w))); } void isa16_vga_gfxultrapro_device::device_start() { set_isa_device(); - m_vga = subdevice("vga"); - m_isa->install_rom(this, 0xc0000, 0xc7fff, "vga", "gfxultrapro"); - m_isa->install_device(0x1ce, 0x1cf, read8_delegate(FUNC(mach32_device::ati_port_ext_r),m_vga), write8_delegate(FUNC(mach32_device::ati_port_ext_w),m_vga)); - m_isa->install_device(0x2e8, 0x2ef, read8_delegate(FUNC(mach32_device::mach32_status_r),m_vga), write8_delegate(FUNC(mach32_device::ibm8514_htotal_w),m_vga)); - m_isa->install_device(0x3b0, 0x3bf, read8_delegate(FUNC(mach32_device::port_03b0_r),m_vga), write8_delegate(FUNC(mach32_device::port_03b0_w),m_vga)); - m_isa->install_device(0x3c0, 0x3cf, read8_delegate(FUNC(mach32_device::port_03c0_r),m_vga), write8_delegate(FUNC(mach32_device::port_03c0_w),m_vga)); - m_isa->install_device(0x3d0, 0x3df, read8_delegate(FUNC(mach32_device::port_03d0_r),m_vga), write8_delegate(FUNC(mach32_device::port_03d0_w),m_vga)); - m_isa->install16_device(0xaec, 0xaef, read16_delegate(FUNC(mach32_device::mach32_readonly_r),m_vga), write16_delegate(FUNC(mach32_device::mach32_cursor_l_w),m_vga)); - m_isa->install16_device(0xeec, 0xeef, read16_delegate(FUNC(mach32_device::mach32_readonly_r),m_vga), write16_delegate(FUNC(mach32_device::mach32_cursor_h_w),m_vga)); - m_isa->install16_device(0x12e8, 0x12eb, read16_delegate(FUNC(mach32_device::ibm8514_vtotal_r),m_vga), write16_delegate(FUNC(mach32_device::ibm8514_vtotal_w),m_vga)); - m_isa->install16_device(0x12ec, 0x12ef, read16_delegate(FUNC(mach32_device::mach32_config1_r),m_vga), write16_delegate(FUNC(mach32_device::mach32_cursor_pos_h),m_vga)); - m_isa->install16_device(0x16e8, 0x16eb, read16_delegate(FUNC(mach32_device::ibm8514_vdisp_r),m_vga), write16_delegate(FUNC(mach32_device::ibm8514_vdisp_w),m_vga)); - m_isa->install16_device(0x16ec, 0x16ef, read16_delegate(FUNC(mach32_device::mach8_config2_r),m_vga), write16_delegate(FUNC(mach32_device::mach32_cursor_pos_v),m_vga)); - m_isa->install16_device(0x1ae8, 0x1aeb, read16_delegate(FUNC(mach32_device::ibm8514_vsync_r),m_vga), write16_delegate(FUNC(mach32_device::ibm8514_vsync_w),m_vga)); - m_isa->install16_device(0x1aec, 0x1aef, read16_delegate(FUNC(mach32_device::mach32_readonly_r),m_vga), write16_delegate(FUNC(mach32_device::mach32_cursor_colour_b_w),m_vga)); - m_isa->install16_device(0x1eec, 0x1eef, read16_delegate(FUNC(mach32_device::mach32_readonly_r),m_vga), write16_delegate(FUNC(mach32_device::mach32_cursor_offset_w),m_vga)); - m_isa->install16_device(0x26e8, 0x26eb, read16_delegate(FUNC(mach32_device::ibm8514_htotal_r),m_vga),write16_delegate()); - m_isa->install16_device(0x26ec, 0x26ef, read16_delegate(FUNC(mach32_device::mach32_readonly_r),m_vga),write16_delegate(FUNC(mach32_device::mach8_crt_pitch_w),m_vga)); - m_isa->install16_device(0x2ee8, 0x2eeb, read16_delegate(FUNC(mach32_device::ibm8514_subcontrol_r),m_vga),write16_delegate()); - m_isa->install16_device(0x3aec, 0x3aef, read16_delegate(FUNC(mach32_device::mach32_readonly_r),m_vga), write16_delegate(FUNC(mach32_device::mach32_cursor_colour_0_w),m_vga)); - m_isa->install16_device(0x3eec, 0x3eef, read16_delegate(FUNC(mach32_device::mach32_readonly_r),m_vga), write16_delegate(FUNC(mach32_device::mach32_cursor_colour_0_w),m_vga)); - m_isa->install16_device(0x42e8, 0x42eb, read16_delegate(FUNC(mach32_device::ibm8514_substatus_r),m_vga), write16_delegate(FUNC(mach32_device::ibm8514_subcontrol_w),m_vga)); - m_isa->install16_device(0x42ec, 0x42ef, read16_delegate(FUNC(mach32_device::mach32_mem_boundary_r),m_vga), write16_delegate(FUNC(mach32_device::mach32_mem_boundary_w),m_vga)); - m_isa->install16_device(0x4ae8, 0x4aeb, read16_delegate(FUNC(mach32_device::mach32_readonly_r),m_vga), write16_delegate(FUNC(mach32_device::mach8_advfunc_w),m_vga)); - m_isa->install16_device(0x4aec, 0x4aef, read16_delegate(FUNC(mach32_device::mach8_clksel_r),m_vga), write16_delegate(FUNC(mach32_device::mach8_clksel_w),m_vga)); - m_isa->install16_device(0x52e8, 0x52eb, read16_delegate(FUNC(mach32_device::mach8_ec0_r),m_vga), write16_delegate(FUNC(mach32_device::mach8_ec0_w),m_vga)); - m_isa->install16_device(0x52ec, 0x52ef, read16_delegate(FUNC(mach32_device::mach8_scratch0_r),m_vga), write16_delegate(FUNC(mach32_device::mach8_scratch0_w),m_vga)); - m_isa->install16_device(0x56e8, 0x56eb, read16_delegate(FUNC(mach32_device::mach8_ec1_r),m_vga), write16_delegate(FUNC(mach32_device::mach8_ec1_w),m_vga)); - m_isa->install16_device(0x56ec, 0x56ef, read16_delegate(FUNC(mach32_device::mach8_scratch0_r),m_vga), write16_delegate(FUNC(mach32_device::mach8_scratch0_w),m_vga)); - m_isa->install16_device(0x5ae8, 0x5aeb, read16_delegate(FUNC(mach32_device::mach8_ec2_r),m_vga), write16_delegate(FUNC(mach32_device::mach8_ec2_w),m_vga)); - m_isa->install16_device(0x5ee8, 0x5eeb, read16_delegate(FUNC(mach32_device::mach8_ec3_r),m_vga), write16_delegate(FUNC(mach32_device::mach8_ec3_w),m_vga)); - m_isa->install16_device(0x62ec, 0x62ef, read16_delegate(FUNC(mach32_device::mach32_ext_ge_r),m_vga), write16_delegate(FUNC(mach32_device::mach32_horz_overscan_w),m_vga)); - m_isa->install16_device(0x6eec, 0x6eef, read16_delegate(FUNC(mach32_device::mach32_readonly_r),m_vga), write16_delegate(FUNC(mach32_device::mach8_ge_offset_l_w),m_vga)); - m_isa->install16_device(0x72ec, 0x72ef, read16_delegate(FUNC(mach32_device::mach32_readonly_r),m_vga), write16_delegate(FUNC(mach32_device::mach8_ge_offset_h_w),m_vga)); - m_isa->install16_device(0x76ec, 0x76ef, read16_delegate(FUNC(mach32_device::mach32_readonly_r),m_vga), write16_delegate(FUNC(mach32_device::mach8_ge_pitch_w),m_vga)); - m_isa->install16_device(0x7aec, 0x7aef, read16_delegate(FUNC(mach32_device::mach32_readonly_r),m_vga), write16_delegate(FUNC(mach32_device::mach32_ge_ext_config_w),m_vga)); - m_isa->install16_device(0x82e8, 0x82eb, read16_delegate(FUNC(mach32_device::ibm8514_currenty_r),m_vga), write16_delegate(FUNC(mach32_device::ibm8514_currenty_w),m_vga)); - m_isa->install16_device(0x86e8, 0x86eb, read16_delegate(FUNC(mach32_device::ibm8514_currentx_r),m_vga), write16_delegate(FUNC(mach32_device::ibm8514_currentx_w),m_vga)); - m_isa->install16_device(0x8ae8, 0x8aeb, read16_delegate(FUNC(mach32_device::ibm8514_desty_r),m_vga), write16_delegate(FUNC(mach32_device::ibm8514_desty_w),m_vga)); - m_isa->install16_device(0x8ee8, 0x8eeb, read16_delegate(FUNC(mach32_device::ibm8514_destx_r),m_vga), write16_delegate(FUNC(mach32_device::ibm8514_destx_w),m_vga)); - m_isa->install16_device(0x8eec, 0x8eef, read16_delegate(FUNC(mach32_device::mach8_ge_ext_config_r),m_vga), write16_delegate(FUNC(mach32_device::mach8_patt_data_w),m_vga)); - m_isa->install16_device(0x92e8, 0x92eb, read16_delegate(FUNC(mach32_device::ibm8514_line_error_r),m_vga), write16_delegate(FUNC(mach32_device::ibm8514_line_error_w),m_vga)); - m_isa->install16_device(0x96e8, 0x96eb, read16_delegate(FUNC(mach32_device::ibm8514_width_r),m_vga), write16_delegate(FUNC(mach32_device::ibm8514_width_w),m_vga)); - m_isa->install16_device(0x96ec, 0x96ef, read16_delegate(FUNC(mach32_device::mach8_bresenham_count_r),m_vga), write16_delegate(FUNC(mach32_device::mach8_bresenham_count_w),m_vga)); - m_isa->install16_device(0x9ae8, 0x9aeb, read16_delegate(FUNC(mach32_device::ibm8514_gpstatus_r),m_vga), write16_delegate(FUNC(mach32_device::ibm8514_cmd_w),m_vga)); - m_isa->install16_device(0x9aec, 0x9aef, read16_delegate(FUNC(mach32_device::mach8_ext_fifo_r),m_vga), write16_delegate(FUNC(mach32_device::mach8_linedraw_index_w),m_vga)); - m_isa->install16_device(0x9ee8, 0x9eeb, read16_delegate(FUNC(mach32_device::ibm8514_ssv_r),m_vga), write16_delegate(FUNC(mach32_device::ibm8514_ssv_w),m_vga)); - m_isa->install16_device(0xa2e8, 0xa2eb, read16_delegate(FUNC(mach32_device::ibm8514_bgcolour_r),m_vga), write16_delegate(FUNC(mach32_device::ibm8514_bgcolour_w),m_vga)); - m_isa->install16_device(0xa6e8, 0xa6eb, read16_delegate(FUNC(mach32_device::ibm8514_fgcolour_r),m_vga), write16_delegate(FUNC(mach32_device::ibm8514_fgcolour_w),m_vga)); - m_isa->install16_device(0xaae8, 0xaaeb, read16_delegate(FUNC(mach32_device::ibm8514_write_mask_r),m_vga), write16_delegate(FUNC(mach32_device::ibm8514_write_mask_w),m_vga)); - m_isa->install16_device(0xaee8, 0xaeeb, read16_delegate(FUNC(mach32_device::ibm8514_read_mask_r),m_vga), write16_delegate(FUNC(mach32_device::ibm8514_read_mask_w),m_vga)); - m_isa->install16_device(0xb6e8, 0xb6eb, read16_delegate(FUNC(mach32_device::ibm8514_backmix_r),m_vga), write16_delegate(FUNC(mach32_device::ibm8514_backmix_w),m_vga)); - m_isa->install16_device(0xbae8, 0xbaeb, read16_delegate(FUNC(mach32_device::ibm8514_foremix_r),m_vga), write16_delegate(FUNC(mach32_device::ibm8514_foremix_w),m_vga)); - m_isa->install16_device(0xbee8, 0xbeeb, read16_delegate(FUNC(mach32_device::ibm8514_multifunc_r),m_vga), write16_delegate(FUNC(mach32_device::ibm8514_multifunc_w),m_vga)); - m_isa->install16_device(0xcaec, 0xcaef, read16_delegate(FUNC(mach32_device::mach32_readonly_r),m_vga), write16_delegate(FUNC(mach32_device::mach8_scan_x_w),m_vga)); - m_isa->install16_device(0xceec, 0xceef, read16_delegate(FUNC(mach32_device::mach32_readonly_r),m_vga), write16_delegate(FUNC(mach32_device::mach8_dp_config_w),m_vga)); - m_isa->install16_device(0xe2e8, 0xe2eb, read16_delegate(FUNC(mach32_device::ibm8514_pixel_xfer_r),m_vga), write16_delegate(FUNC(mach32_device::mach8_pixel_xfer_w),m_vga)); - m_isa->install16_device(0xdaec, 0xdaef, read16_delegate(FUNC(mach32_device::mach8_sourcex_r),m_vga), write16_delegate(FUNC(mach32_device::mach8_ext_leftscissor_w),m_vga)); - m_isa->install16_device(0xdeec, 0xdeef, read16_delegate(FUNC(mach32_device::mach8_sourcey_r),m_vga), write16_delegate(FUNC(mach32_device::mach8_ext_topscissor_w),m_vga)); - m_isa->install16_device(0xfaec, 0xfaef, read16_delegate(FUNC(mach32_device::mach32_chipid_r),m_vga), write16_delegate()); - m_isa->install16_device(0xfeec, 0xfeef, read16_delegate(FUNC(mach32_device::mach8_linedraw_r),m_vga), write16_delegate(FUNC(mach32_device::mach8_linedraw_w),m_vga)); - - m_isa->install_memory(0xa0000, 0xbffff, read8_delegate(FUNC(mach32_device::mem_r),m_vga), write8_delegate(FUNC(mach32_device::mem_w),m_vga)); + m_isa->install_device(0x1ce, 0x1cf, read8_delegate(*m_vga, FUNC(mach32_device::ati_port_ext_r)), write8_delegate(*m_vga, FUNC(mach32_device::ati_port_ext_w))); + m_isa->install_device(0x2e8, 0x2ef, read8_delegate(*m_vga, FUNC(mach32_device::mach32_status_r)), write8_delegate(*m_vga, FUNC(mach32_device::ibm8514_htotal_w))); + m_isa->install_device(0x3b0, 0x3bf, read8_delegate(*m_vga, FUNC(mach32_device::port_03b0_r)), write8_delegate(*m_vga, FUNC(mach32_device::port_03b0_w))); + m_isa->install_device(0x3c0, 0x3cf, read8_delegate(*m_vga, FUNC(mach32_device::port_03c0_r)), write8_delegate(*m_vga, FUNC(mach32_device::port_03c0_w))); + m_isa->install_device(0x3d0, 0x3df, read8_delegate(*m_vga, FUNC(mach32_device::port_03d0_r)), write8_delegate(*m_vga, FUNC(mach32_device::port_03d0_w))); + m_isa->install16_device(0xaec, 0xaef, read16_delegate(*m_vga, FUNC(mach32_device::mach32_readonly_r)), write16_delegate(*m_vga, FUNC(mach32_device::mach32_cursor_l_w))); + m_isa->install16_device(0xeec, 0xeef, read16_delegate(*m_vga, FUNC(mach32_device::mach32_readonly_r)), write16_delegate(*m_vga, FUNC(mach32_device::mach32_cursor_h_w))); + m_isa->install16_device(0x12e8, 0x12eb, read16_delegate(*m_vga, FUNC(mach32_device::ibm8514_vtotal_r)), write16_delegate(*m_vga, FUNC(mach32_device::ibm8514_vtotal_w))); + m_isa->install16_device(0x12ec, 0x12ef, read16_delegate(*m_vga, FUNC(mach32_device::mach32_config1_r)), write16_delegate(*m_vga, FUNC(mach32_device::mach32_cursor_pos_h))); + m_isa->install16_device(0x16e8, 0x16eb, read16_delegate(*m_vga, FUNC(mach32_device::ibm8514_vdisp_r)), write16_delegate(*m_vga, FUNC(mach32_device::ibm8514_vdisp_w))); + m_isa->install16_device(0x16ec, 0x16ef, read16_delegate(*m_vga, FUNC(mach32_device::mach8_config2_r)), write16_delegate(*m_vga, FUNC(mach32_device::mach32_cursor_pos_v))); + m_isa->install16_device(0x1ae8, 0x1aeb, read16_delegate(*m_vga, FUNC(mach32_device::ibm8514_vsync_r)), write16_delegate(*m_vga, FUNC(mach32_device::ibm8514_vsync_w))); + m_isa->install16_device(0x1aec, 0x1aef, read16_delegate(*m_vga, FUNC(mach32_device::mach32_readonly_r)), write16_delegate(*m_vga, FUNC(mach32_device::mach32_cursor_colour_b_w))); + m_isa->install16_device(0x1eec, 0x1eef, read16_delegate(*m_vga, FUNC(mach32_device::mach32_readonly_r)), write16_delegate(*m_vga, FUNC(mach32_device::mach32_cursor_offset_w))); + m_isa->install16_device(0x26e8, 0x26eb, read16_delegate(*m_vga, FUNC(mach32_device::ibm8514_htotal_r)), write16_delegate(*this)); + m_isa->install16_device(0x26ec, 0x26ef, read16_delegate(*m_vga, FUNC(mach32_device::mach32_readonly_r)), write16_delegate(*m_vga, FUNC(mach32_device::mach8_crt_pitch_w))); + m_isa->install16_device(0x2ee8, 0x2eeb, read16_delegate(*m_vga, FUNC(mach32_device::ibm8514_subcontrol_r)), write16_delegate(*this)); + m_isa->install16_device(0x3aec, 0x3aef, read16_delegate(*m_vga, FUNC(mach32_device::mach32_readonly_r)), write16_delegate(*m_vga, FUNC(mach32_device::mach32_cursor_colour_0_w))); + m_isa->install16_device(0x3eec, 0x3eef, read16_delegate(*m_vga, FUNC(mach32_device::mach32_readonly_r)), write16_delegate(*m_vga, FUNC(mach32_device::mach32_cursor_colour_0_w))); + m_isa->install16_device(0x42e8, 0x42eb, read16_delegate(*m_vga, FUNC(mach32_device::ibm8514_substatus_r)), write16_delegate(*m_vga, FUNC(mach32_device::ibm8514_subcontrol_w))); + m_isa->install16_device(0x42ec, 0x42ef, read16_delegate(*m_vga, FUNC(mach32_device::mach32_mem_boundary_r)), write16_delegate(*m_vga, FUNC(mach32_device::mach32_mem_boundary_w))); + m_isa->install16_device(0x4ae8, 0x4aeb, read16_delegate(*m_vga, FUNC(mach32_device::mach32_readonly_r)), write16_delegate(*m_vga, FUNC(mach32_device::mach8_advfunc_w))); + m_isa->install16_device(0x4aec, 0x4aef, read16_delegate(*m_vga, FUNC(mach32_device::mach8_clksel_r)), write16_delegate(*m_vga, FUNC(mach32_device::mach8_clksel_w))); + m_isa->install16_device(0x52e8, 0x52eb, read16_delegate(*m_vga, FUNC(mach32_device::mach8_ec0_r)), write16_delegate(*m_vga, FUNC(mach32_device::mach8_ec0_w))); + m_isa->install16_device(0x52ec, 0x52ef, read16_delegate(*m_vga, FUNC(mach32_device::mach8_scratch0_r)), write16_delegate(*m_vga, FUNC(mach32_device::mach8_scratch0_w))); + m_isa->install16_device(0x56e8, 0x56eb, read16_delegate(*m_vga, FUNC(mach32_device::mach8_ec1_r)), write16_delegate(*m_vga, FUNC(mach32_device::mach8_ec1_w))); + m_isa->install16_device(0x56ec, 0x56ef, read16_delegate(*m_vga, FUNC(mach32_device::mach8_scratch0_r)), write16_delegate(*m_vga, FUNC(mach32_device::mach8_scratch0_w))); + m_isa->install16_device(0x5ae8, 0x5aeb, read16_delegate(*m_vga, FUNC(mach32_device::mach8_ec2_r)), write16_delegate(*m_vga, FUNC(mach32_device::mach8_ec2_w))); + m_isa->install16_device(0x5ee8, 0x5eeb, read16_delegate(*m_vga, FUNC(mach32_device::mach8_ec3_r)), write16_delegate(*m_vga, FUNC(mach32_device::mach8_ec3_w))); + m_isa->install16_device(0x62ec, 0x62ef, read16_delegate(*m_vga, FUNC(mach32_device::mach32_ext_ge_r)), write16_delegate(*m_vga, FUNC(mach32_device::mach32_horz_overscan_w))); + m_isa->install16_device(0x6eec, 0x6eef, read16_delegate(*m_vga, FUNC(mach32_device::mach32_readonly_r)), write16_delegate(*m_vga, FUNC(mach32_device::mach8_ge_offset_l_w))); + m_isa->install16_device(0x72ec, 0x72ef, read16_delegate(*m_vga, FUNC(mach32_device::mach32_readonly_r)), write16_delegate(*m_vga, FUNC(mach32_device::mach8_ge_offset_h_w))); + m_isa->install16_device(0x76ec, 0x76ef, read16_delegate(*m_vga, FUNC(mach32_device::mach32_readonly_r)), write16_delegate(*m_vga, FUNC(mach32_device::mach8_ge_pitch_w))); + m_isa->install16_device(0x7aec, 0x7aef, read16_delegate(*m_vga, FUNC(mach32_device::mach32_readonly_r)), write16_delegate(*m_vga, FUNC(mach32_device::mach32_ge_ext_config_w))); + m_isa->install16_device(0x82e8, 0x82eb, read16_delegate(*m_vga, FUNC(mach32_device::ibm8514_currenty_r)), write16_delegate(*m_vga, FUNC(mach32_device::ibm8514_currenty_w))); + m_isa->install16_device(0x86e8, 0x86eb, read16_delegate(*m_vga, FUNC(mach32_device::ibm8514_currentx_r)), write16_delegate(*m_vga, FUNC(mach32_device::ibm8514_currentx_w))); + m_isa->install16_device(0x8ae8, 0x8aeb, read16_delegate(*m_vga, FUNC(mach32_device::ibm8514_desty_r)), write16_delegate(*m_vga, FUNC(mach32_device::ibm8514_desty_w))); + m_isa->install16_device(0x8ee8, 0x8eeb, read16_delegate(*m_vga, FUNC(mach32_device::ibm8514_destx_r)), write16_delegate(*m_vga, FUNC(mach32_device::ibm8514_destx_w))); + m_isa->install16_device(0x8eec, 0x8eef, read16_delegate(*m_vga, FUNC(mach32_device::mach8_ge_ext_config_r)), write16_delegate(*m_vga, FUNC(mach32_device::mach8_patt_data_w))); + m_isa->install16_device(0x92e8, 0x92eb, read16_delegate(*m_vga, FUNC(mach32_device::ibm8514_line_error_r)), write16_delegate(*m_vga, FUNC(mach32_device::ibm8514_line_error_w))); + m_isa->install16_device(0x96e8, 0x96eb, read16_delegate(*m_vga, FUNC(mach32_device::ibm8514_width_r)), write16_delegate(*m_vga, FUNC(mach32_device::ibm8514_width_w))); + m_isa->install16_device(0x96ec, 0x96ef, read16_delegate(*m_vga, FUNC(mach32_device::mach8_bresenham_count_r)), write16_delegate(*m_vga, FUNC(mach32_device::mach8_bresenham_count_w))); + m_isa->install16_device(0x9ae8, 0x9aeb, read16_delegate(*m_vga, FUNC(mach32_device::ibm8514_gpstatus_r)), write16_delegate(*m_vga, FUNC(mach32_device::ibm8514_cmd_w))); + m_isa->install16_device(0x9aec, 0x9aef, read16_delegate(*m_vga, FUNC(mach32_device::mach8_ext_fifo_r)), write16_delegate(*m_vga, FUNC(mach32_device::mach8_linedraw_index_w))); + m_isa->install16_device(0x9ee8, 0x9eeb, read16_delegate(*m_vga, FUNC(mach32_device::ibm8514_ssv_r)), write16_delegate(*m_vga, FUNC(mach32_device::ibm8514_ssv_w))); + m_isa->install16_device(0xa2e8, 0xa2eb, read16_delegate(*m_vga, FUNC(mach32_device::ibm8514_bgcolour_r)), write16_delegate(*m_vga, FUNC(mach32_device::ibm8514_bgcolour_w))); + m_isa->install16_device(0xa6e8, 0xa6eb, read16_delegate(*m_vga, FUNC(mach32_device::ibm8514_fgcolour_r)), write16_delegate(*m_vga, FUNC(mach32_device::ibm8514_fgcolour_w))); + m_isa->install16_device(0xaae8, 0xaaeb, read16_delegate(*m_vga, FUNC(mach32_device::ibm8514_write_mask_r)), write16_delegate(*m_vga, FUNC(mach32_device::ibm8514_write_mask_w))); + m_isa->install16_device(0xaee8, 0xaeeb, read16_delegate(*m_vga, FUNC(mach32_device::ibm8514_read_mask_r)), write16_delegate(*m_vga, FUNC(mach32_device::ibm8514_read_mask_w))); + m_isa->install16_device(0xb6e8, 0xb6eb, read16_delegate(*m_vga, FUNC(mach32_device::ibm8514_backmix_r)), write16_delegate(*m_vga, FUNC(mach32_device::ibm8514_backmix_w))); + m_isa->install16_device(0xbae8, 0xbaeb, read16_delegate(*m_vga, FUNC(mach32_device::ibm8514_foremix_r)), write16_delegate(*m_vga, FUNC(mach32_device::ibm8514_foremix_w))); + m_isa->install16_device(0xbee8, 0xbeeb, read16_delegate(*m_vga, FUNC(mach32_device::ibm8514_multifunc_r)), write16_delegate(*m_vga, FUNC(mach32_device::ibm8514_multifunc_w))); + m_isa->install16_device(0xcaec, 0xcaef, read16_delegate(*m_vga, FUNC(mach32_device::mach32_readonly_r)), write16_delegate(*m_vga, FUNC(mach32_device::mach8_scan_x_w))); + m_isa->install16_device(0xceec, 0xceef, read16_delegate(*m_vga, FUNC(mach32_device::mach32_readonly_r)), write16_delegate(*m_vga, FUNC(mach32_device::mach8_dp_config_w))); + m_isa->install16_device(0xe2e8, 0xe2eb, read16_delegate(*m_vga, FUNC(mach32_device::ibm8514_pixel_xfer_r)), write16_delegate(*m_vga, FUNC(mach32_device::mach8_pixel_xfer_w))); + m_isa->install16_device(0xdaec, 0xdaef, read16_delegate(*m_vga, FUNC(mach32_device::mach8_sourcex_r)), write16_delegate(*m_vga, FUNC(mach32_device::mach8_ext_leftscissor_w))); + m_isa->install16_device(0xdeec, 0xdeef, read16_delegate(*m_vga, FUNC(mach32_device::mach8_sourcey_r)), write16_delegate(*m_vga, FUNC(mach32_device::mach8_ext_topscissor_w))); + m_isa->install16_device(0xfaec, 0xfaef, read16_delegate(*m_vga, FUNC(mach32_device::mach32_chipid_r)), write16_delegate(*this)); + m_isa->install16_device(0xfeec, 0xfeef, read16_delegate(*m_vga, FUNC(mach32_device::mach8_linedraw_r)), write16_delegate(*m_vga, FUNC(mach32_device::mach8_linedraw_w))); + + m_isa->install_memory(0xa0000, 0xbffff, read8_delegate(*m_vga, FUNC(mach32_device::mem_r)), write8_delegate(*m_vga, FUNC(mach32_device::mem_w))); } void isa16_vga_mach64_device::device_start() { set_isa_device(); - m_vga = subdevice("vga"); - m_isa->install_rom(this, 0xc0000, 0xc7fff, "vga", "mach64"); - m_isa->install_device(0x1ce, 0x1cf, read8_delegate(FUNC(mach64_device::ati_port_ext_r),m_vga), write8_delegate(FUNC(mach64_device::ati_port_ext_w),m_vga)); - m_isa->install_device(0x2e8, 0x2ef, read8_delegate(FUNC(mach64_device::mach32_status_r),m_vga), write8_delegate(FUNC(mach64_device::ibm8514_htotal_w),m_vga)); - m_isa->install_device(0x3b0, 0x3bf, read8_delegate(FUNC(mach64_device::port_03b0_r),m_vga), write8_delegate(FUNC(mach64_device::port_03b0_w),m_vga)); - m_isa->install_device(0x3c0, 0x3cf, read8_delegate(FUNC(mach64_device::port_03c0_r),m_vga), write8_delegate(FUNC(mach64_device::port_03c0_w),m_vga)); - m_isa->install_device(0x3d0, 0x3df, read8_delegate(FUNC(mach64_device::port_03d0_r),m_vga), write8_delegate(FUNC(mach64_device::port_03d0_w),m_vga)); - m_isa->install16_device(0x12e8, 0x12eb, read16_delegate(FUNC(mach64_device::ibm8514_vtotal_r),m_vga), write16_delegate(FUNC(mach64_device::ibm8514_vtotal_w),m_vga)); - m_isa->install16_device(0x12ec, 0x12ef, read16_delegate(FUNC(mach64_device::mach32_config1_r),m_vga), write16_delegate(FUNC(mach64_device::mach64_config1_w),m_vga)); - m_isa->install16_device(0x16e8, 0x16eb, read16_delegate(FUNC(mach64_device::ibm8514_vdisp_r),m_vga), write16_delegate(FUNC(mach64_device::ibm8514_vdisp_w),m_vga)); - m_isa->install16_device(0x16ec, 0x16ef, read16_delegate(FUNC(mach64_device::mach8_config2_r),m_vga), write16_delegate(FUNC(mach64_device::mach64_config2_w),m_vga)); - m_isa->install16_device(0x1ae8, 0x1aeb, read16_delegate(FUNC(mach64_device::ibm8514_vsync_r),m_vga), write16_delegate(FUNC(mach64_device::ibm8514_vsync_w),m_vga)); - m_isa->install16_device(0x26e8, 0x26eb, read16_delegate(FUNC(mach64_device::ibm8514_htotal_r),m_vga),write16_delegate()); - m_isa->install16_device(0x26ec, 0x26ef, read16_delegate(FUNC(mach64_device::mach32_readonly_r),m_vga),write16_delegate(FUNC(mach64_device::mach8_crt_pitch_w),m_vga)); - m_isa->install16_device(0x2ee8, 0x2eeb, read16_delegate(FUNC(mach64_device::ibm8514_subcontrol_r),m_vga),write16_delegate()); - m_isa->install16_device(0x42e8, 0x42eb, read16_delegate(FUNC(mach64_device::ibm8514_substatus_r),m_vga), write16_delegate(FUNC(mach64_device::ibm8514_subcontrol_w),m_vga)); - m_isa->install16_device(0x42ec, 0x42ef, read16_delegate(FUNC(mach64_device::mach32_mem_boundary_r),m_vga), write16_delegate(FUNC(mach64_device::mach32_mem_boundary_w),m_vga)); - m_isa->install16_device(0x4ae8, 0x4aeb, read16_delegate(FUNC(mach64_device::mach32_readonly_r),m_vga), write16_delegate(FUNC(mach64_device::mach8_advfunc_w),m_vga)); - m_isa->install16_device(0x4aec, 0x4aef, read16_delegate(FUNC(mach64_device::mach8_clksel_r),m_vga), write16_delegate(FUNC(mach64_device::mach8_clksel_w),m_vga)); - m_isa->install16_device(0x52e8, 0x52eb, read16_delegate(FUNC(mach64_device::mach8_ec0_r),m_vga), write16_delegate(FUNC(mach64_device::mach8_ec0_w),m_vga)); - m_isa->install16_device(0x52ec, 0x52ef, read16_delegate(FUNC(mach64_device::mach8_scratch0_r),m_vga), write16_delegate(FUNC(mach64_device::mach8_scratch0_w),m_vga)); - m_isa->install16_device(0x56e8, 0x56eb, read16_delegate(FUNC(mach64_device::mach8_ec1_r),m_vga), write16_delegate(FUNC(mach64_device::mach8_ec1_w),m_vga)); - m_isa->install16_device(0x56ec, 0x56ef, read16_delegate(FUNC(mach64_device::mach8_scratch0_r),m_vga), write16_delegate(FUNC(mach64_device::mach8_scratch0_w),m_vga)); - m_isa->install16_device(0x5ae8, 0x5aeb, read16_delegate(FUNC(mach64_device::mach8_ec2_r),m_vga), write16_delegate(FUNC(mach64_device::mach8_ec2_w),m_vga)); - m_isa->install16_device(0x5ee8, 0x5eeb, read16_delegate(FUNC(mach64_device::mach8_ec3_r),m_vga), write16_delegate(FUNC(mach64_device::mach8_ec3_w),m_vga)); - m_isa->install16_device(0x6eec, 0x6eef, read16_delegate(FUNC(mach64_device::mach32_readonly_r),m_vga), write16_delegate(FUNC(mach64_device::mach8_ge_offset_l_w),m_vga)); - m_isa->install16_device(0x72ec, 0x72ef, read16_delegate(FUNC(mach64_device::mach32_readonly_r),m_vga), write16_delegate(FUNC(mach64_device::mach8_ge_offset_h_w),m_vga)); - m_isa->install16_device(0x76ec, 0x76ef, read16_delegate(FUNC(mach64_device::mach32_readonly_r),m_vga), write16_delegate(FUNC(mach64_device::mach8_ge_pitch_w),m_vga)); - m_isa->install16_device(0x7aec, 0x7aef, read16_delegate(FUNC(mach64_device::mach32_readonly_r),m_vga), write16_delegate(FUNC(mach64_device::mach32_ge_ext_config_w),m_vga)); - m_isa->install16_device(0x82e8, 0x82eb, read16_delegate(FUNC(mach64_device::ibm8514_currenty_r),m_vga), write16_delegate(FUNC(mach64_device::ibm8514_currenty_w),m_vga)); - m_isa->install16_device(0x86e8, 0x86eb, read16_delegate(FUNC(mach64_device::ibm8514_currentx_r),m_vga), write16_delegate(FUNC(mach64_device::ibm8514_currentx_w),m_vga)); - m_isa->install16_device(0x8ae8, 0x8aeb, read16_delegate(FUNC(mach64_device::ibm8514_desty_r),m_vga), write16_delegate(FUNC(mach64_device::ibm8514_desty_w),m_vga)); - m_isa->install16_device(0x8ee8, 0x8eeb, read16_delegate(FUNC(mach64_device::ibm8514_destx_r),m_vga), write16_delegate(FUNC(mach64_device::ibm8514_destx_w),m_vga)); - m_isa->install16_device(0x8eec, 0x8eef, read16_delegate(FUNC(mach64_device::mach8_ge_ext_config_r),m_vga), write16_delegate(FUNC(mach64_device::mach8_patt_data_w),m_vga)); - m_isa->install16_device(0x92e8, 0x92eb, read16_delegate(FUNC(mach64_device::ibm8514_line_error_r),m_vga), write16_delegate(FUNC(mach64_device::ibm8514_line_error_w),m_vga)); - m_isa->install16_device(0x96e8, 0x96eb, read16_delegate(FUNC(mach64_device::ibm8514_width_r),m_vga), write16_delegate(FUNC(mach64_device::ibm8514_width_w),m_vga)); - m_isa->install16_device(0x96ec, 0x96ef, read16_delegate(FUNC(mach64_device::mach8_bresenham_count_r),m_vga), write16_delegate(FUNC(mach64_device::mach8_bresenham_count_w),m_vga)); - m_isa->install16_device(0x9ae8, 0x9aeb, read16_delegate(FUNC(mach64_device::ibm8514_gpstatus_r),m_vga), write16_delegate(FUNC(mach64_device::ibm8514_cmd_w),m_vga)); - m_isa->install16_device(0x9aec, 0x9aef, read16_delegate(FUNC(mach64_device::mach8_ext_fifo_r),m_vga), write16_delegate(FUNC(mach64_device::mach8_linedraw_index_w),m_vga)); - m_isa->install16_device(0x9ee8, 0x9eeb, read16_delegate(FUNC(mach64_device::ibm8514_ssv_r),m_vga), write16_delegate(FUNC(mach64_device::ibm8514_ssv_w),m_vga)); - m_isa->install16_device(0xa2e8, 0xa2eb, read16_delegate(FUNC(mach64_device::ibm8514_bgcolour_r),m_vga), write16_delegate(FUNC(mach64_device::ibm8514_bgcolour_w),m_vga)); - m_isa->install16_device(0xa6e8, 0xa6eb, read16_delegate(FUNC(mach64_device::ibm8514_fgcolour_r),m_vga), write16_delegate(FUNC(mach64_device::ibm8514_fgcolour_w),m_vga)); - m_isa->install16_device(0xaae8, 0xaaeb, read16_delegate(FUNC(mach64_device::ibm8514_write_mask_r),m_vga), write16_delegate(FUNC(mach64_device::ibm8514_write_mask_w),m_vga)); - m_isa->install16_device(0xaee8, 0xaeeb, read16_delegate(FUNC(mach64_device::ibm8514_read_mask_r),m_vga), write16_delegate(FUNC(mach64_device::ibm8514_read_mask_w),m_vga)); - m_isa->install16_device(0xb6e8, 0xb6eb, read16_delegate(FUNC(mach64_device::ibm8514_backmix_r),m_vga), write16_delegate(FUNC(mach64_device::ibm8514_backmix_w),m_vga)); - m_isa->install16_device(0xbae8, 0xbaeb, read16_delegate(FUNC(mach64_device::ibm8514_foremix_r),m_vga), write16_delegate(FUNC(mach64_device::ibm8514_foremix_w),m_vga)); - m_isa->install16_device(0xbee8, 0xbeeb, read16_delegate(FUNC(mach64_device::ibm8514_multifunc_r),m_vga), write16_delegate(FUNC(mach64_device::ibm8514_multifunc_w),m_vga)); - m_isa->install16_device(0xcaec, 0xcaef, read16_delegate(FUNC(mach64_device::mach32_readonly_r),m_vga), write16_delegate(FUNC(mach64_device::mach8_scan_x_w),m_vga)); - m_isa->install16_device(0xceec, 0xceef, read16_delegate(FUNC(mach64_device::mach32_readonly_r),m_vga), write16_delegate(FUNC(mach64_device::mach8_dp_config_w),m_vga)); - m_isa->install16_device(0xe2e8, 0xe2eb, read16_delegate(FUNC(mach64_device::ibm8514_pixel_xfer_r),m_vga), write16_delegate(FUNC(mach64_device::mach8_pixel_xfer_w),m_vga)); - m_isa->install16_device(0xdaec, 0xdaef, read16_delegate(FUNC(mach64_device::mach8_sourcex_r),m_vga), write16_delegate(FUNC(mach64_device::mach8_ext_leftscissor_w),m_vga)); - m_isa->install16_device(0xdeec, 0xdeef, read16_delegate(FUNC(mach64_device::mach8_sourcey_r),m_vga), write16_delegate(FUNC(mach64_device::mach8_ext_topscissor_w),m_vga)); - m_isa->install16_device(0xfaec, 0xfaef, read16_delegate(FUNC(mach64_device::mach32_chipid_r),m_vga), write16_delegate()); - m_isa->install16_device(0xfeec, 0xfeef, read16_delegate(FUNC(mach64_device::mach8_linedraw_r),m_vga), write16_delegate(FUNC(mach64_device::mach8_linedraw_w),m_vga)); - - m_isa->install_memory(0xa0000, 0xbffff, read8_delegate(FUNC(mach64_device::mem_r),m_vga), write8_delegate(FUNC(mach64_device::mem_w),m_vga)); + m_isa->install_device(0x1ce, 0x1cf, read8_delegate(*m_vga, FUNC(mach64_device::ati_port_ext_r)), write8_delegate(*m_vga, FUNC(mach64_device::ati_port_ext_w))); + m_isa->install_device(0x2e8, 0x2ef, read8_delegate(*m_vga, FUNC(mach64_device::mach32_status_r)), write8_delegate(*m_vga, FUNC(mach64_device::ibm8514_htotal_w))); + m_isa->install_device(0x3b0, 0x3bf, read8_delegate(*m_vga, FUNC(mach64_device::port_03b0_r)), write8_delegate(*m_vga, FUNC(mach64_device::port_03b0_w))); + m_isa->install_device(0x3c0, 0x3cf, read8_delegate(*m_vga, FUNC(mach64_device::port_03c0_r)), write8_delegate(*m_vga, FUNC(mach64_device::port_03c0_w))); + m_isa->install_device(0x3d0, 0x3df, read8_delegate(*m_vga, FUNC(mach64_device::port_03d0_r)), write8_delegate(*m_vga, FUNC(mach64_device::port_03d0_w))); + m_isa->install16_device(0x12e8, 0x12eb, read16_delegate(*m_vga, FUNC(mach64_device::ibm8514_vtotal_r)), write16_delegate(*m_vga, FUNC(mach64_device::ibm8514_vtotal_w))); + m_isa->install16_device(0x12ec, 0x12ef, read16_delegate(*m_vga, FUNC(mach64_device::mach32_config1_r)), write16_delegate(*m_vga, FUNC(mach64_device::mach64_config1_w))); + m_isa->install16_device(0x16e8, 0x16eb, read16_delegate(*m_vga, FUNC(mach64_device::ibm8514_vdisp_r)), write16_delegate(*m_vga, FUNC(mach64_device::ibm8514_vdisp_w))); + m_isa->install16_device(0x16ec, 0x16ef, read16_delegate(*m_vga, FUNC(mach64_device::mach8_config2_r)), write16_delegate(*m_vga, FUNC(mach64_device::mach64_config2_w))); + m_isa->install16_device(0x1ae8, 0x1aeb, read16_delegate(*m_vga, FUNC(mach64_device::ibm8514_vsync_r)), write16_delegate(*m_vga, FUNC(mach64_device::ibm8514_vsync_w))); + m_isa->install16_device(0x26e8, 0x26eb, read16_delegate(*m_vga, FUNC(mach64_device::ibm8514_htotal_r)), write16_delegate(*this)); + m_isa->install16_device(0x26ec, 0x26ef, read16_delegate(*m_vga, FUNC(mach64_device::mach32_readonly_r)), write16_delegate(*m_vga, FUNC(mach64_device::mach8_crt_pitch_w))); + m_isa->install16_device(0x2ee8, 0x2eeb, read16_delegate(*m_vga, FUNC(mach64_device::ibm8514_subcontrol_r)),write16_delegate(*this)); + m_isa->install16_device(0x42e8, 0x42eb, read16_delegate(*m_vga, FUNC(mach64_device::ibm8514_substatus_r)), write16_delegate(*m_vga, FUNC(mach64_device::ibm8514_subcontrol_w))); + m_isa->install16_device(0x42ec, 0x42ef, read16_delegate(*m_vga, FUNC(mach64_device::mach32_mem_boundary_r)), write16_delegate(*m_vga, FUNC(mach64_device::mach32_mem_boundary_w))); + m_isa->install16_device(0x4ae8, 0x4aeb, read16_delegate(*m_vga, FUNC(mach64_device::mach32_readonly_r)), write16_delegate(*m_vga, FUNC(mach64_device::mach8_advfunc_w))); + m_isa->install16_device(0x4aec, 0x4aef, read16_delegate(*m_vga, FUNC(mach64_device::mach8_clksel_r)), write16_delegate(*m_vga, FUNC(mach64_device::mach8_clksel_w))); + m_isa->install16_device(0x52e8, 0x52eb, read16_delegate(*m_vga, FUNC(mach64_device::mach8_ec0_r)), write16_delegate(*m_vga, FUNC(mach64_device::mach8_ec0_w))); + m_isa->install16_device(0x52ec, 0x52ef, read16_delegate(*m_vga, FUNC(mach64_device::mach8_scratch0_r)), write16_delegate(*m_vga, FUNC(mach64_device::mach8_scratch0_w))); + m_isa->install16_device(0x56e8, 0x56eb, read16_delegate(*m_vga, FUNC(mach64_device::mach8_ec1_r)), write16_delegate(*m_vga, FUNC(mach64_device::mach8_ec1_w))); + m_isa->install16_device(0x56ec, 0x56ef, read16_delegate(*m_vga, FUNC(mach64_device::mach8_scratch0_r)), write16_delegate(*m_vga, FUNC(mach64_device::mach8_scratch0_w))); + m_isa->install16_device(0x5ae8, 0x5aeb, read16_delegate(*m_vga, FUNC(mach64_device::mach8_ec2_r)), write16_delegate(*m_vga, FUNC(mach64_device::mach8_ec2_w))); + m_isa->install16_device(0x5ee8, 0x5eeb, read16_delegate(*m_vga, FUNC(mach64_device::mach8_ec3_r)), write16_delegate(*m_vga, FUNC(mach64_device::mach8_ec3_w))); + m_isa->install16_device(0x6eec, 0x6eef, read16_delegate(*m_vga, FUNC(mach64_device::mach32_readonly_r)), write16_delegate(*m_vga, FUNC(mach64_device::mach8_ge_offset_l_w))); + m_isa->install16_device(0x72ec, 0x72ef, read16_delegate(*m_vga, FUNC(mach64_device::mach32_readonly_r)), write16_delegate(*m_vga, FUNC(mach64_device::mach8_ge_offset_h_w))); + m_isa->install16_device(0x76ec, 0x76ef, read16_delegate(*m_vga, FUNC(mach64_device::mach32_readonly_r)), write16_delegate(*m_vga, FUNC(mach64_device::mach8_ge_pitch_w))); + m_isa->install16_device(0x7aec, 0x7aef, read16_delegate(*m_vga, FUNC(mach64_device::mach32_readonly_r)), write16_delegate(*m_vga, FUNC(mach64_device::mach32_ge_ext_config_w))); + m_isa->install16_device(0x82e8, 0x82eb, read16_delegate(*m_vga, FUNC(mach64_device::ibm8514_currenty_r)), write16_delegate(*m_vga, FUNC(mach64_device::ibm8514_currenty_w))); + m_isa->install16_device(0x86e8, 0x86eb, read16_delegate(*m_vga, FUNC(mach64_device::ibm8514_currentx_r)), write16_delegate(*m_vga, FUNC(mach64_device::ibm8514_currentx_w))); + m_isa->install16_device(0x8ae8, 0x8aeb, read16_delegate(*m_vga, FUNC(mach64_device::ibm8514_desty_r)), write16_delegate(*m_vga, FUNC(mach64_device::ibm8514_desty_w))); + m_isa->install16_device(0x8ee8, 0x8eeb, read16_delegate(*m_vga, FUNC(mach64_device::ibm8514_destx_r)), write16_delegate(*m_vga, FUNC(mach64_device::ibm8514_destx_w))); + m_isa->install16_device(0x8eec, 0x8eef, read16_delegate(*m_vga, FUNC(mach64_device::mach8_ge_ext_config_r)), write16_delegate(*m_vga, FUNC(mach64_device::mach8_patt_data_w))); + m_isa->install16_device(0x92e8, 0x92eb, read16_delegate(*m_vga, FUNC(mach64_device::ibm8514_line_error_r)), write16_delegate(*m_vga, FUNC(mach64_device::ibm8514_line_error_w))); + m_isa->install16_device(0x96e8, 0x96eb, read16_delegate(*m_vga, FUNC(mach64_device::ibm8514_width_r)), write16_delegate(*m_vga, FUNC(mach64_device::ibm8514_width_w))); + m_isa->install16_device(0x96ec, 0x96ef, read16_delegate(*m_vga, FUNC(mach64_device::mach8_bresenham_count_r)), write16_delegate(*m_vga, FUNC(mach64_device::mach8_bresenham_count_w))); + m_isa->install16_device(0x9ae8, 0x9aeb, read16_delegate(*m_vga, FUNC(mach64_device::ibm8514_gpstatus_r)), write16_delegate(*m_vga, FUNC(mach64_device::ibm8514_cmd_w))); + m_isa->install16_device(0x9aec, 0x9aef, read16_delegate(*m_vga, FUNC(mach64_device::mach8_ext_fifo_r)), write16_delegate(*m_vga, FUNC(mach64_device::mach8_linedraw_index_w))); + m_isa->install16_device(0x9ee8, 0x9eeb, read16_delegate(*m_vga, FUNC(mach64_device::ibm8514_ssv_r)), write16_delegate(*m_vga, FUNC(mach64_device::ibm8514_ssv_w))); + m_isa->install16_device(0xa2e8, 0xa2eb, read16_delegate(*m_vga, FUNC(mach64_device::ibm8514_bgcolour_r)), write16_delegate(*m_vga, FUNC(mach64_device::ibm8514_bgcolour_w))); + m_isa->install16_device(0xa6e8, 0xa6eb, read16_delegate(*m_vga, FUNC(mach64_device::ibm8514_fgcolour_r)), write16_delegate(*m_vga, FUNC(mach64_device::ibm8514_fgcolour_w))); + m_isa->install16_device(0xaae8, 0xaaeb, read16_delegate(*m_vga, FUNC(mach64_device::ibm8514_write_mask_r)), write16_delegate(*m_vga, FUNC(mach64_device::ibm8514_write_mask_w))); + m_isa->install16_device(0xaee8, 0xaeeb, read16_delegate(*m_vga, FUNC(mach64_device::ibm8514_read_mask_r)), write16_delegate(*m_vga, FUNC(mach64_device::ibm8514_read_mask_w))); + m_isa->install16_device(0xb6e8, 0xb6eb, read16_delegate(*m_vga, FUNC(mach64_device::ibm8514_backmix_r)), write16_delegate(*m_vga, FUNC(mach64_device::ibm8514_backmix_w))); + m_isa->install16_device(0xbae8, 0xbaeb, read16_delegate(*m_vga, FUNC(mach64_device::ibm8514_foremix_r)), write16_delegate(*m_vga, FUNC(mach64_device::ibm8514_foremix_w))); + m_isa->install16_device(0xbee8, 0xbeeb, read16_delegate(*m_vga, FUNC(mach64_device::ibm8514_multifunc_r)), write16_delegate(*m_vga, FUNC(mach64_device::ibm8514_multifunc_w))); + m_isa->install16_device(0xcaec, 0xcaef, read16_delegate(*m_vga, FUNC(mach64_device::mach32_readonly_r)), write16_delegate(*m_vga, FUNC(mach64_device::mach8_scan_x_w))); + m_isa->install16_device(0xceec, 0xceef, read16_delegate(*m_vga, FUNC(mach64_device::mach32_readonly_r)), write16_delegate(*m_vga, FUNC(mach64_device::mach8_dp_config_w))); + m_isa->install16_device(0xe2e8, 0xe2eb, read16_delegate(*m_vga, FUNC(mach64_device::ibm8514_pixel_xfer_r)), write16_delegate(*m_vga, FUNC(mach64_device::mach8_pixel_xfer_w))); + m_isa->install16_device(0xdaec, 0xdaef, read16_delegate(*m_vga, FUNC(mach64_device::mach8_sourcex_r)), write16_delegate(*m_vga, FUNC(mach64_device::mach8_ext_leftscissor_w))); + m_isa->install16_device(0xdeec, 0xdeef, read16_delegate(*m_vga, FUNC(mach64_device::mach8_sourcey_r)), write16_delegate(*m_vga, FUNC(mach64_device::mach8_ext_topscissor_w))); + m_isa->install16_device(0xfaec, 0xfaef, read16_delegate(*m_vga, FUNC(mach64_device::mach32_chipid_r)), write16_delegate(*this)); + m_isa->install16_device(0xfeec, 0xfeef, read16_delegate(*m_vga, FUNC(mach64_device::mach8_linedraw_r)), write16_delegate(*m_vga, FUNC(mach64_device::mach8_linedraw_w))); + + m_isa->install_memory(0xa0000, 0xbffff, read8_delegate(*m_vga, FUNC(mach64_device::mem_r)), write8_delegate(*m_vga, FUNC(mach64_device::mem_w))); } //------------------------------------------------- diff --git a/src/devices/bus/isa/vga_ati.h b/src/devices/bus/isa/vga_ati.h index e626f8a45ab..f05b2fdae2d 100644 --- a/src/devices/bus/isa/vga_ati.h +++ b/src/devices/bus/isa/vga_ati.h @@ -42,8 +42,8 @@ protected: virtual const tiny_rom_entry *device_rom_region() const override; private: - ati_vga_device *m_vga; - mach8_device *m_8514; + required_device m_vga; + required_device m_8514; }; class isa16_vga_gfxultrapro_device : @@ -65,8 +65,8 @@ protected: virtual void device_add_mconfig(machine_config &config) override; virtual const tiny_rom_entry *device_rom_region() const override; - private: - mach32_device *m_vga; +private: + required_device m_vga; }; class isa16_vga_mach64_device : @@ -89,7 +89,7 @@ protected: virtual const tiny_rom_entry *device_rom_region() const override; private: - mach64_device *m_vga; + required_device m_vga; }; diff --git a/src/devices/bus/isa/wdxt_gen.cpp b/src/devices/bus/isa/wdxt_gen.cpp index 57dec00af89..8670610ea40 100644 --- a/src/devices/bus/isa/wdxt_gen.cpp +++ b/src/devices/bus/isa/wdxt_gen.cpp @@ -200,7 +200,7 @@ void wdxt_gen_device::device_start() { set_isa_device(); m_isa->install_rom(this, 0xc8000, 0xc9fff, "hdc", "hdc"); - m_isa->install_device(0x0320, 0x0323, READ8_DEVICE_DELEGATE(m_host, wd11c00_17_device, io_r), WRITE8_DEVICE_DELEGATE(m_host, wd11c00_17_device, io_w)); + m_isa->install_device(0x0320, 0x0323, read8_delegate(*m_host, FUNC(wd11c00_17_device::io_r)), write8_delegate(*m_host, FUNC(wd11c00_17_device::io_w))); m_isa->set_dma_channel(3, this, false); } diff --git a/src/devices/bus/isa/xtide.cpp b/src/devices/bus/isa/xtide.cpp index 1388a7d174b..2a7898fc903 100644 --- a/src/devices/bus/isa/xtide.cpp +++ b/src/devices/bus/isa/xtide.cpp @@ -323,8 +323,8 @@ void xtide_device::device_reset() int io_address = ((ioport("IO_ADDRESS")->read() & 0x0F) * 0x20) + 0x200; m_irq_number = (ioport("IRQ")->read() & 0x07); - m_isa->install_memory(base_address, base_address + 0x1fff, read8_delegate(FUNC(eeprom_parallel_28xx_device::read), &(*m_eeprom)), write8_delegate(FUNC(eeprom_parallel_28xx_device::write), &(*m_eeprom))); - m_isa->install_device(io_address, io_address + 0xf, read8_delegate(FUNC(xtide_device::read), this), write8_delegate(FUNC(xtide_device::write), this)); + m_isa->install_memory(base_address, base_address + 0x1fff, read8_delegate(*m_eeprom, FUNC(eeprom_parallel_28xx_device::read)), write8_delegate(*m_eeprom, FUNC(eeprom_parallel_28xx_device::write))); + m_isa->install_device(io_address, io_address + 0xf, read8_delegate(*this, FUNC(xtide_device::read)), write8_delegate(*this, FUNC(xtide_device::write))); //logerror("xtide_device::device_reset(), bios_base=0x%5X to 0x%5X, I/O=0x%3X, IRQ=%d\n",base_address,base_address + (16*1024) -1 ,io_address,irq); } diff --git a/src/devices/bus/lpci/i82371sb.cpp b/src/devices/bus/lpci/i82371sb.cpp index 738c725f530..5e2160088ff 100644 --- a/src/devices/bus/lpci/i82371sb.cpp +++ b/src/devices/bus/lpci/i82371sb.cpp @@ -163,8 +163,8 @@ void i82371sb_device::map_busmaster_dma() { if (m_base != 0) { - spaceio->install_readwrite_handler(m_base, m_base + 0x7, read32_delegate(FUNC(bus_master_ide_controller_device::bmdma_r), &(*m_ide)), write32_delegate(FUNC(bus_master_ide_controller_device::bmdma_w), &(*m_ide)), 0xffffffff); - spaceio->install_readwrite_handler(m_base + 0x8, m_base + 0xf, read32_delegate(FUNC(bus_master_ide_controller_device::bmdma_r), &(*m_ide2)), write32_delegate(FUNC(bus_master_ide_controller_device::bmdma_w), &(*m_ide2)), 0xffffffff); + spaceio->install_readwrite_handler(m_base, m_base + 0x7, read32_delegate(*m_ide, FUNC(bus_master_ide_controller_device::bmdma_r)), write32_delegate(*m_ide, FUNC(bus_master_ide_controller_device::bmdma_w)), 0xffffffff); + spaceio->install_readwrite_handler(m_base + 0x8, m_base + 0xf, read32_delegate(*m_ide2, FUNC(bus_master_ide_controller_device::bmdma_r)), write32_delegate(*m_ide2, FUNC(bus_master_ide_controller_device::bmdma_w)), 0xffffffff); } } @@ -253,7 +253,7 @@ void i82371sb_device::device_start() southbridge_device::device_start(); m_ide_io_ports_enabled = false; - spaceio.install_readwrite_handler(0x00b0, 0x00b3, read8_delegate(FUNC(i82371sb_device::read_apmcapms), this), write8_delegate(FUNC(i82371sb_device::write_apmcapms), this), 0xffff0000); + spaceio.install_readwrite_handler(0x00b0, 0x00b3, read8_delegate(*this, FUNC(i82371sb_device::read_apmcapms)), write8_delegate(*this, FUNC(i82371sb_device::write_apmcapms)), 0xffff0000); m_smi_callback.resolve_safe(); m_boot_state_hook.resolve_safe(); // setup save states diff --git a/src/devices/bus/lpci/southbridge.cpp b/src/devices/bus/lpci/southbridge.cpp index c4ce2257ed1..5813fed47b5 100644 --- a/src/devices/bus/lpci/southbridge.cpp +++ b/src/devices/bus/lpci/southbridge.cpp @@ -219,18 +219,18 @@ void southbridge_device::device_start() { spaceio = &m_maincpu->space(AS_IO); - spaceio->install_readwrite_handler(0x0000, 0x001f, read8sm_delegate(FUNC(am9517a_device::read), &(*m_dma8237_1)), write8sm_delegate(FUNC(am9517a_device::write), &(*m_dma8237_1)), 0xffffffff); - spaceio->install_readwrite_handler(0x0020, 0x003f, read8sm_delegate(FUNC(pic8259_device::read), &(*m_pic8259_master)), write8sm_delegate(FUNC(pic8259_device::write), &(*m_pic8259_master)), 0xffffffff); - spaceio->install_readwrite_handler(0x0040, 0x005f, read8sm_delegate(FUNC(pit8254_device::read), &(*m_pit8254)), write8sm_delegate(FUNC(pit8254_device::write), &(*m_pit8254)), 0xffffffff); - spaceio->install_readwrite_handler(0x0060, 0x0063, read8_delegate(FUNC(southbridge_device::at_portb_r), this), write8_delegate(FUNC(southbridge_device::at_portb_w), this), 0x0000ff00); - spaceio->install_readwrite_handler(0x0080, 0x009f, read8_delegate(FUNC(southbridge_device::at_page8_r), this), write8_delegate(FUNC(southbridge_device::at_page8_w), this), 0xffffffff); - spaceio->install_readwrite_handler(0x00a0, 0x00bf, read8sm_delegate(FUNC(pic8259_device::read), &(*m_pic8259_slave)), write8sm_delegate(FUNC(pic8259_device::write), &(*m_pic8259_slave)), 0xffffffff); - spaceio->install_readwrite_handler(0x00c0, 0x00df, read8_delegate(FUNC(southbridge_device::at_dma8237_2_r), this), write8_delegate(FUNC(southbridge_device::at_dma8237_2_w), this), 0xffffffff); - spaceio->install_readwrite_handler(0x0170, 0x0177, read32_delegate(FUNC(southbridge_device::ide2_read32_cs0_r), this), write32_delegate(FUNC(southbridge_device::ide2_write32_cs0_w), this), 0xffffffff); - spaceio->install_readwrite_handler(0x01f0, 0x01f7, read32_delegate(FUNC(southbridge_device::ide1_read32_cs0_r), this), write32_delegate(FUNC(southbridge_device::ide1_write32_cs0_w), this), 0xffffffff); - spaceio->install_readwrite_handler(0x0374, 0x0377, read8_delegate(FUNC(southbridge_device::ide2_read_cs1_r), this), write8_delegate(FUNC(southbridge_device::ide2_write_cs1_w), this), 0xff0000); - spaceio->install_readwrite_handler(0x03f4, 0x03f7, read8_delegate(FUNC(southbridge_device::ide1_read_cs1_r), this), write8_delegate(FUNC(southbridge_device::ide1_write_cs1_w), this), 0xff0000); - spaceio->install_readwrite_handler(0x04d0, 0x04d3, read8_delegate(FUNC(southbridge_device::eisa_irq_read), this), write8_delegate(FUNC(southbridge_device::eisa_irq_write), this), 0x0000ffff); + spaceio->install_readwrite_handler(0x0000, 0x001f, read8sm_delegate(*m_dma8237_1, FUNC(am9517a_device::read)), write8sm_delegate(*m_dma8237_1, FUNC(am9517a_device::write)), 0xffffffff); + spaceio->install_readwrite_handler(0x0020, 0x003f, read8sm_delegate(*m_pic8259_master, FUNC(pic8259_device::read)), write8sm_delegate(*m_pic8259_master, FUNC(pic8259_device::write)), 0xffffffff); + spaceio->install_readwrite_handler(0x0040, 0x005f, read8sm_delegate(*m_pit8254, FUNC(pit8254_device::read)), write8sm_delegate(*m_pit8254, FUNC(pit8254_device::write)), 0xffffffff); + spaceio->install_readwrite_handler(0x0060, 0x0063, read8_delegate(*this, FUNC(southbridge_device::at_portb_r)), write8_delegate(*this, FUNC(southbridge_device::at_portb_w)), 0x0000ff00); + spaceio->install_readwrite_handler(0x0080, 0x009f, read8_delegate(*this, FUNC(southbridge_device::at_page8_r)), write8_delegate(*this, FUNC(southbridge_device::at_page8_w)), 0xffffffff); + spaceio->install_readwrite_handler(0x00a0, 0x00bf, read8sm_delegate(*m_pic8259_slave, FUNC(pic8259_device::read)), write8sm_delegate(*m_pic8259_slave, FUNC(pic8259_device::write)), 0xffffffff); + spaceio->install_readwrite_handler(0x00c0, 0x00df, read8_delegate(*this, FUNC(southbridge_device::at_dma8237_2_r)), write8_delegate(*this, FUNC(southbridge_device::at_dma8237_2_w)), 0xffffffff); + spaceio->install_readwrite_handler(0x0170, 0x0177, read32_delegate(*this, FUNC(southbridge_device::ide2_read32_cs0_r)), write32_delegate(*this, FUNC(southbridge_device::ide2_write32_cs0_w)), 0xffffffff); + spaceio->install_readwrite_handler(0x01f0, 0x01f7, read32_delegate(*this, FUNC(southbridge_device::ide1_read32_cs0_r)), write32_delegate(*this, FUNC(southbridge_device::ide1_write32_cs0_w)), 0xffffffff); + spaceio->install_readwrite_handler(0x0374, 0x0377, read8_delegate(*this, FUNC(southbridge_device::ide2_read_cs1_r)), write8_delegate(*this, FUNC(southbridge_device::ide2_write_cs1_w)), 0xff0000); + spaceio->install_readwrite_handler(0x03f4, 0x03f7, read8_delegate(*this, FUNC(southbridge_device::ide1_read_cs1_r)), write8_delegate(*this, FUNC(southbridge_device::ide1_write_cs1_w)), 0xff0000); + spaceio->install_readwrite_handler(0x04d0, 0x04d3, read8_delegate(*this, FUNC(southbridge_device::eisa_irq_read)), write8_delegate(*this, FUNC(southbridge_device::eisa_irq_write)), 0x0000ffff); spaceio->nop_readwrite(0x00e0, 0x00ef); } @@ -560,9 +560,9 @@ void southbridge_extended_device::device_start() southbridge_device::device_start(); - spaceio.install_readwrite_handler(0x0060, 0x0063, read8smo_delegate(FUNC(at_keyboard_controller_device::data_r), &(*m_keybc)), write8smo_delegate(FUNC(at_keyboard_controller_device::data_w), &(*m_keybc)), 0x000000ff); - spaceio.install_readwrite_handler(0x0064, 0x0067, read8smo_delegate(FUNC(at_keyboard_controller_device::status_r), &(*m_keybc)), write8smo_delegate(FUNC(at_keyboard_controller_device::command_w), &(*m_keybc)), 0xffffffff); - spaceio.install_readwrite_handler(0x0070, 0x007f, read8sm_delegate(FUNC(ds12885_device::read), &(*m_ds12885)), write8sm_delegate(FUNC(ds12885_device::write), &(*m_ds12885)), 0xffffffff); + spaceio.install_readwrite_handler(0x0060, 0x0063, read8smo_delegate(*m_keybc, FUNC(at_keyboard_controller_device::data_r)), write8smo_delegate(*m_keybc, FUNC(at_keyboard_controller_device::data_w)), 0x000000ff); + spaceio.install_readwrite_handler(0x0064, 0x0067, read8smo_delegate(*m_keybc, FUNC(at_keyboard_controller_device::status_r)), write8smo_delegate(*m_keybc, FUNC(at_keyboard_controller_device::command_w)), 0xffffffff); + spaceio.install_readwrite_handler(0x0070, 0x007f, read8sm_delegate(*m_ds12885, FUNC(ds12885_device::read)), write8sm_delegate(*m_ds12885, FUNC(ds12885_device::write)), 0xffffffff); } //------------------------------------------------- diff --git a/src/devices/bus/macpds/hyperdrive.cpp b/src/devices/bus/macpds/hyperdrive.cpp index 0c64d077765..d880ed9ec17 100644 --- a/src/devices/bus/macpds/hyperdrive.cpp +++ b/src/devices/bus/macpds/hyperdrive.cpp @@ -159,7 +159,7 @@ void macpds_hyperdrive_device::device_start() install_rom(this, HYPERDRIVE_ROM_REGION, 0xf80000); // WD200x registers - m_macpds->install_device(0xfc0000, 0xfc000f, read16_delegate(FUNC(macpds_hyperdrive_device::hyperdrive_r), this), write16_delegate(FUNC(macpds_hyperdrive_device::hyperdrive_w), this)); + m_macpds->install_device(0xfc0000, 0xfc000f, read16_delegate(*this, FUNC(macpds_hyperdrive_device::hyperdrive_r)), write16_delegate(*this, FUNC(macpds_hyperdrive_device::hyperdrive_w))); } //------------------------------------------------- diff --git a/src/devices/bus/macpds/pds_tpdfpd.cpp b/src/devices/bus/macpds/pds_tpdfpd.cpp index 1a3f2671e5c..a6d6a0216f0 100644 --- a/src/devices/bus/macpds/pds_tpdfpd.cpp +++ b/src/devices/bus/macpds/pds_tpdfpd.cpp @@ -112,8 +112,8 @@ void macpds_sedisplay_device::device_start() static const char bankname[] = { "radpds_ram" }; m_macpds->install_bank(0xc40000, 0xc40000+VRAM_SIZE-1, bankname, m_vram.get()); - m_macpds->install_device(0x770000, 0x77000f, read16_delegate(FUNC(macpds_sedisplay_device::ramdac_r), this), write16_delegate(FUNC(macpds_sedisplay_device::ramdac_w), this)); - m_macpds->install_device(0xc10000, 0xc2ffff, read16_delegate(FUNC(macpds_sedisplay_device::sedisplay_r), this), write16_delegate(FUNC(macpds_sedisplay_device::sedisplay_w), this)); + m_macpds->install_device(0x770000, 0x77000f, read16_delegate(*this, FUNC(macpds_sedisplay_device::ramdac_r)), write16_delegate(*this, FUNC(macpds_sedisplay_device::ramdac_w))); + m_macpds->install_device(0xc10000, 0xc2ffff, read16_delegate(*this, FUNC(macpds_sedisplay_device::sedisplay_r)), write16_delegate(*this, FUNC(macpds_sedisplay_device::sedisplay_w))); m_timer = timer_alloc(0, nullptr); m_timer->adjust(screen().time_until_pos(879, 0), 0); diff --git a/src/devices/bus/msx_cart/arc.cpp b/src/devices/bus/msx_cart/arc.cpp index 406ec8f4de3..6f5af572bd1 100644 --- a/src/devices/bus/msx_cart/arc.cpp +++ b/src/devices/bus/msx_cart/arc.cpp @@ -18,8 +18,8 @@ msx_cart_arc_device::msx_cart_arc_device(const machine_config &mconfig, const ch void msx_cart_arc_device::device_start() { // Install IO read/write handlers - io_space().install_write_handler(0x7f, 0x7f, write8smo_delegate(FUNC(msx_cart_arc_device::io_7f_w), this)); - io_space().install_read_handler(0x7f, 0x7f, read8smo_delegate(FUNC(msx_cart_arc_device::io_7f_r), this)); + io_space().install_write_handler(0x7f, 0x7f, write8smo_delegate(*this, FUNC(msx_cart_arc_device::io_7f_w))); + io_space().install_read_handler(0x7f, 0x7f, read8smo_delegate(*this, FUNC(msx_cart_arc_device::io_7f_r))); } diff --git a/src/devices/bus/msx_cart/bm_012.cpp b/src/devices/bus/msx_cart/bm_012.cpp index 158de522e4d..020348dd843 100644 --- a/src/devices/bus/msx_cart/bm_012.cpp +++ b/src/devices/bus/msx_cart/bm_012.cpp @@ -94,8 +94,8 @@ const tiny_rom_entry *msx_cart_bm_012_device::device_rom_region() const void msx_cart_bm_012_device::device_start() { // Install IO read/write handlers - io_space().install_write_handler(0x70, 0x73, write8sm_delegate(FUNC(z80pio_device::write_alt), m_bm012_pio.target())); - io_space().install_read_handler(0x70, 0x73, read8sm_delegate(FUNC(z80pio_device::read_alt), m_bm012_pio.target())); + io_space().install_write_handler(0x70, 0x73, write8sm_delegate(*m_bm012_pio, FUNC(z80pio_device::write_alt))); + io_space().install_read_handler(0x70, 0x73, read8sm_delegate(*m_bm012_pio, FUNC(z80pio_device::read_alt))); } diff --git a/src/devices/bus/msx_cart/fmpac.cpp b/src/devices/bus/msx_cart/fmpac.cpp index a5229a6c61e..75af22353dc 100644 --- a/src/devices/bus/msx_cart/fmpac.cpp +++ b/src/devices/bus/msx_cart/fmpac.cpp @@ -47,7 +47,7 @@ void msx_cart_fmpac_device::device_start() save_item(NAME(m_7ff6)); // Install IO read/write handlers - io_space().install_write_handler(0x7c, 0x7d, write8sm_delegate(FUNC(msx_cart_fmpac_device::write_ym2413), this)); + io_space().install_write_handler(0x7c, 0x7d, write8sm_delegate(*this, FUNC(msx_cart_fmpac_device::write_ym2413))); } diff --git a/src/devices/bus/msx_cart/konami.cpp b/src/devices/bus/msx_cart/konami.cpp index f5ac42be362..f2caa5f6940 100644 --- a/src/devices/bus/msx_cart/konami.cpp +++ b/src/devices/bus/msx_cart/konami.cpp @@ -903,9 +903,9 @@ void msx_cart_keyboard_master_device::device_add_mconfig(machine_config &config) void msx_cart_keyboard_master_device::device_start() { // Install IO read/write handlers - io_space().install_write_handler(0x00, 0x00, write8smo_delegate(FUNC(vlm5030_device::data_w), m_vlm5030.target())); - io_space().install_write_handler(0x20, 0x20, write8smo_delegate(FUNC(msx_cart_keyboard_master_device::io_20_w), this)); - io_space().install_read_handler(0x00, 0x00, read8smo_delegate(FUNC(msx_cart_keyboard_master_device::io_00_r), this)); + io_space().install_write_handler(0x00, 0x00, write8smo_delegate(*m_vlm5030, FUNC(vlm5030_device::data_w))); + io_space().install_write_handler(0x20, 0x20, write8smo_delegate(*this, FUNC(msx_cart_keyboard_master_device::io_20_w))); + io_space().install_read_handler(0x00, 0x00, read8smo_delegate(*this, FUNC(msx_cart_keyboard_master_device::io_00_r))); } diff --git a/src/devices/bus/msx_cart/korean.cpp b/src/devices/bus/msx_cart/korean.cpp index 1906a5eb51b..e12f15bd43d 100644 --- a/src/devices/bus/msx_cart/korean.cpp +++ b/src/devices/bus/msx_cart/korean.cpp @@ -117,7 +117,7 @@ void msx_cart_korean_90in1_device::device_start() save_item(NAME(m_selected_bank)); // Install IO read/write handlers - io_space().install_write_handler(0x77, 0x77, write8smo_delegate(FUNC(msx_cart_korean_90in1_device::banking), this)); + io_space().install_write_handler(0x77, 0x77, write8smo_delegate(*this, FUNC(msx_cart_korean_90in1_device::banking))); } diff --git a/src/devices/bus/msx_cart/moonsound.cpp b/src/devices/bus/msx_cart/moonsound.cpp index afdb3c039eb..74e13d4af90 100644 --- a/src/devices/bus/msx_cart/moonsound.cpp +++ b/src/devices/bus/msx_cart/moonsound.cpp @@ -71,9 +71,9 @@ const tiny_rom_entry *msx_cart_moonsound_device::device_rom_region() const void msx_cart_moonsound_device::device_start() { // Install IO read/write handlers - io_space().install_readwrite_handler(0x7e, 0x7f, read8sm_delegate(FUNC(msx_cart_moonsound_device::read_ymf278b_pcm), this), write8sm_delegate(FUNC(msx_cart_moonsound_device::write_ymf278b_pcm), this)); - io_space().install_readwrite_handler(0xc4, 0xc7, read8sm_delegate(FUNC(msx_cart_moonsound_device::read_ymf278b_fm), this), write8sm_delegate(FUNC(msx_cart_moonsound_device::write_ymf278b_fm), this)); - io_space().install_read_handler(0xc0, 0xc0, read8smo_delegate(FUNC(msx_cart_moonsound_device::read_c0), this)); + io_space().install_readwrite_handler(0x7e, 0x7f, read8sm_delegate(*this, FUNC(msx_cart_moonsound_device::read_ymf278b_pcm)), write8sm_delegate(*this, FUNC(msx_cart_moonsound_device::write_ymf278b_pcm))); + io_space().install_readwrite_handler(0xc4, 0xc7, read8sm_delegate(*this, FUNC(msx_cart_moonsound_device::read_ymf278b_fm)), write8sm_delegate(*this, FUNC(msx_cart_moonsound_device::write_ymf278b_fm))); + io_space().install_read_handler(0xc0, 0xc0, read8smo_delegate(*this, FUNC(msx_cart_moonsound_device::read_c0))); } diff --git a/src/devices/bus/msx_cart/msx_audio.cpp b/src/devices/bus/msx_cart/msx_audio.cpp index 679c035b014..924ae60e40a 100644 --- a/src/devices/bus/msx_cart/msx_audio.cpp +++ b/src/devices/bus/msx_cart/msx_audio.cpp @@ -96,8 +96,8 @@ void msx_cart_msx_audio_hxmu900_device::device_add_mconfig(machine_config &confi void msx_cart_msx_audio_hxmu900_device::device_start() { // Install IO read/write handlers - io_space().install_write_handler(0xc0, 0xc1, write8sm_delegate(FUNC(y8950_device::write), m_y8950.target())); - io_space().install_read_handler(0xc0, 0xc1, read8sm_delegate(FUNC(y8950_device::read), m_y8950.target())); + io_space().install_write_handler(0xc0, 0xc1, write8sm_delegate(*m_y8950, FUNC(y8950_device::write))); + io_space().install_read_handler(0xc0, 0xc1, read8sm_delegate(*m_y8950, FUNC(y8950_device::read))); } @@ -200,10 +200,10 @@ WRITE_LINE_MEMBER(msx_cart_msx_audio_nms1205_device::midi_in) void msx_cart_msx_audio_nms1205_device::device_start() { // Install IO read/write handlers - io_space().install_write_handler(0xc0, 0xc1, write8sm_delegate(FUNC(y8950_device::write), m_y8950.target())); - io_space().install_read_handler(0xc0, 0xc1, read8sm_delegate(FUNC(y8950_device::read), m_y8950.target())); - io_space().install_write_handler(0x00, 0x01, write8sm_delegate(FUNC(acia6850_device::write), m_acia6850.target())); - io_space().install_read_handler(0x04, 0x05, read8sm_delegate(FUNC(acia6850_device::read), m_acia6850.target())); + io_space().install_write_handler(0xc0, 0xc1, write8sm_delegate(*m_y8950, FUNC(y8950_device::write))); + io_space().install_read_handler(0xc0, 0xc1, read8sm_delegate(*m_y8950, FUNC(y8950_device::read))); + io_space().install_write_handler(0x00, 0x01, write8sm_delegate(*m_acia6850, FUNC(acia6850_device::write))); + io_space().install_read_handler(0x04, 0x05, read8sm_delegate(*m_acia6850, FUNC(acia6850_device::read))); } @@ -287,8 +287,8 @@ const tiny_rom_entry *msx_cart_msx_audio_fsca1_device::device_rom_region() const void msx_cart_msx_audio_fsca1_device::device_start() { // Install IO read/write handlers - io_space().install_write_handler(0xc0, 0xc3, write8sm_delegate(FUNC(msx_cart_msx_audio_fsca1_device::write_y8950), this)); - io_space().install_read_handler(0xc0, 0xc3, read8sm_delegate(FUNC(msx_cart_msx_audio_fsca1_device::read_y8950), this)); + io_space().install_write_handler(0xc0, 0xc3, write8sm_delegate(*this, FUNC(msx_cart_msx_audio_fsca1_device::write_y8950))); + io_space().install_read_handler(0xc0, 0xc3, read8sm_delegate(*this, FUNC(msx_cart_msx_audio_fsca1_device::read_y8950))); } diff --git a/src/devices/bus/msx_cart/superloderunner.cpp b/src/devices/bus/msx_cart/superloderunner.cpp index b846a935953..168f9187f8d 100644 --- a/src/devices/bus/msx_cart/superloderunner.cpp +++ b/src/devices/bus/msx_cart/superloderunner.cpp @@ -20,7 +20,7 @@ void msx_cart_superloderunner_device::device_start() save_item(NAME(m_selected_bank)); // Install evil memory write handler - memory_space().install_write_handler(0x0000, 0x0000, write8smo_delegate(FUNC(msx_cart_superloderunner_device::banking), this)); + memory_space().install_write_handler(0x0000, 0x0000, write8smo_delegate(*this, FUNC(msx_cart_superloderunner_device::banking))); } diff --git a/src/devices/bus/msx_cart/yamaha.cpp b/src/devices/bus/msx_cart/yamaha.cpp index c7a33a7e4c7..472b8680b12 100644 --- a/src/devices/bus/msx_cart/yamaha.cpp +++ b/src/devices/bus/msx_cart/yamaha.cpp @@ -106,7 +106,7 @@ void msx_cart_sfg_device::device_start() // This should probably moved up in the bus/slot hierarchy for the msx driver cpu_device *maincpu = machine().device("maincpu"); - maincpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(msx_cart_sfg_device::irq_callback),this)); + maincpu->set_irq_acknowledge_callback(FUNC(msx_cart_sfg_device::irq_callback)); } diff --git a/src/devices/bus/msx_slot/disk.cpp b/src/devices/bus/msx_slot/disk.cpp index 309b7f2d80f..78a15b7d841 100644 --- a/src/devices/bus/msx_slot/disk.cpp +++ b/src/devices/bus/msx_slot/disk.cpp @@ -533,8 +533,8 @@ void msx_slot_disk5_device::device_start() save_item(NAME(m_control)); // Install IO read/write handlers - io_space().install_write_handler(0xd0, 0xd4, write8sm_delegate(FUNC(msx_slot_disk5_device::io_write), this)); - io_space().install_read_handler(0xd0, 0xd4, read8sm_delegate(FUNC(msx_slot_disk5_device::io_read), this)); + io_space().install_write_handler(0xd0, 0xd4, write8sm_delegate(*this, FUNC(msx_slot_disk5_device::io_write))); + io_space().install_read_handler(0xd0, 0xd4, read8sm_delegate(*this, FUNC(msx_slot_disk5_device::io_read))); } diff --git a/src/devices/bus/msx_slot/music.cpp b/src/devices/bus/msx_slot/music.cpp index 0e3ae00b0f3..1c5daf86b67 100644 --- a/src/devices/bus/msx_slot/music.cpp +++ b/src/devices/bus/msx_slot/music.cpp @@ -32,7 +32,7 @@ void msx_slot_music_device::device_start() } // Install IO read/write handlers - io_space().install_write_handler(0x7c, 0x7d, write8sm_delegate(FUNC(msx_slot_music_device::write_ym2413), this)); + io_space().install_write_handler(0x7c, 0x7d, write8sm_delegate(*this, FUNC(msx_slot_music_device::write_ym2413))); } diff --git a/src/devices/bus/msx_slot/ram_mm.cpp b/src/devices/bus/msx_slot/ram_mm.cpp index ade67f6eb66..84498f9afe1 100644 --- a/src/devices/bus/msx_slot/ram_mm.cpp +++ b/src/devices/bus/msx_slot/ram_mm.cpp @@ -41,8 +41,8 @@ void msx_slot_ram_mm_device::device_start() save_item(NAME(m_bank_selected)); // Install IO read/write handlers - io_space().install_read_handler(0xFC, 0xFF, read8sm_delegate(FUNC(msx_slot_ram_mm_device::read_mapper_bank), this)); - io_space().install_write_handler(0xFC, 0xFF, write8sm_delegate(FUNC(msx_slot_ram_mm_device::write_mapper_bank), this)); + io_space().install_read_handler(0xFC, 0xFF, read8sm_delegate(*this, FUNC(msx_slot_ram_mm_device::read_mapper_bank))); + io_space().install_write_handler(0xFC, 0xFF, write8sm_delegate(*this, FUNC(msx_slot_ram_mm_device::write_mapper_bank))); } void msx_slot_ram_mm_device::device_post_load() diff --git a/src/devices/bus/mtx/sdx.cpp b/src/devices/bus/mtx/sdx.cpp index d34e73e7605..6f3a9d33417 100644 --- a/src/devices/bus/mtx/sdx.cpp +++ b/src/devices/bus/mtx/sdx.cpp @@ -163,7 +163,7 @@ void mtx_sdxcpm_device::device_add_mconfig(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(mtx_sdxcpm_device::crtc_update_row), this); + m_crtc->set_update_row_callback(FUNC(mtx_sdxcpm_device::crtc_update_row)); } @@ -239,8 +239,8 @@ void mtx_sdxbas_device::device_reset() machine().root_device().membank("rommap_bank1")->configure_entry(3, m_sdx_rom->base()); /* SDX FDC */ - io_space().install_readwrite_handler(0x10, 0x13, read8sm_delegate(FUNC(mb8877_device::read), m_fdc.target()), write8sm_delegate(FUNC(mb8877_device::write), m_fdc.target())); - io_space().install_readwrite_handler(0x14, 0x14, read8_delegate(FUNC(mtx_sdx_device::sdx_status_r), this), write8_delegate(FUNC(mtx_sdx_device::sdx_control_w), this)); + io_space().install_readwrite_handler(0x10, 0x13, read8sm_delegate(*m_fdc, FUNC(mb8877_device::read)), write8sm_delegate(*m_fdc, FUNC(mb8877_device::write))); + io_space().install_readwrite_handler(0x14, 0x14, read8_delegate(*this, FUNC(mtx_sdx_device::sdx_status_r)), write8_delegate(*this, FUNC(mtx_sdx_device::sdx_control_w))); } void mtx_sdxcpm_device::device_reset() @@ -248,13 +248,13 @@ void mtx_sdxcpm_device::device_reset() machine().root_device().membank("rommap_bank1")->configure_entry(3, m_sdx_rom->base()); /* SDX FDC */ - io_space().install_readwrite_handler(0x10, 0x13, read8sm_delegate(FUNC(mb8877_device::read), m_fdc.target()), write8sm_delegate(FUNC(mb8877_device::write), m_fdc.target())); - io_space().install_readwrite_handler(0x14, 0x14, read8_delegate(FUNC(mtx_sdx_device::sdx_status_r), this), write8_delegate(FUNC(mtx_sdx_device::sdx_control_w), this)); + io_space().install_readwrite_handler(0x10, 0x13, read8sm_delegate(*m_fdc, FUNC(mb8877_device::read)), write8sm_delegate(*m_fdc, FUNC(mb8877_device::write))); + io_space().install_readwrite_handler(0x14, 0x14, read8_delegate(*this, FUNC(mtx_sdx_device::sdx_status_r)), write8_delegate(*this, FUNC(mtx_sdx_device::sdx_control_w))); /* 80 column */ - io_space().install_readwrite_handler(0x30, 0x33, read8_delegate(FUNC(mtx_sdxcpm_device::mtx_80col_r), this), write8_delegate(FUNC(mtx_sdxcpm_device::mtx_80col_w), this)); - io_space().install_readwrite_handler(0x38, 0x38, read8smo_delegate(FUNC(mc6845_device::status_r), m_crtc.target()), write8smo_delegate(FUNC(mc6845_device::address_w), m_crtc.target())); - io_space().install_readwrite_handler(0x39, 0x39, read8smo_delegate(FUNC(mc6845_device::register_r), m_crtc.target()), write8smo_delegate(FUNC(mc6845_device::register_w), m_crtc.target())); + io_space().install_readwrite_handler(0x30, 0x33, read8_delegate(*this, FUNC(mtx_sdxcpm_device::mtx_80col_r)), write8_delegate(*this, FUNC(mtx_sdxcpm_device::mtx_80col_w))); + io_space().install_readwrite_handler(0x38, 0x38, read8smo_delegate(*m_crtc, FUNC(mc6845_device::status_r)), write8smo_delegate(*m_crtc, FUNC(mc6845_device::address_w))); + io_space().install_readwrite_handler(0x39, 0x39, read8smo_delegate(*m_crtc, FUNC(mc6845_device::register_r)), write8smo_delegate(*m_crtc, FUNC(mc6845_device::register_w))); memset(m_80col_char_ram, 0, sizeof(m_80col_char_ram)); memset(m_80col_attr_ram, 0, sizeof(m_80col_attr_ram)); diff --git a/src/devices/bus/nasbus/avc.cpp b/src/devices/bus/nasbus/avc.cpp index 4aacc354567..e25e6164f75 100644 --- a/src/devices/bus/nasbus/avc.cpp +++ b/src/devices/bus/nasbus/avc.cpp @@ -34,7 +34,7 @@ void nascom_avc_device::device_add_mconfig(machine_config &config) m_crtc->set_screen("screen"); m_crtc->set_show_border_area(false); m_crtc->set_char_width(6); - m_crtc->set_update_row_callback(FUNC(nascom_avc_device::crtc_update_row), this); + m_crtc->set_update_row_callback(FUNC(nascom_avc_device::crtc_update_row)); } @@ -78,9 +78,9 @@ void nascom_avc_device::device_start() void nascom_avc_device::device_reset() { - io_space().install_write_handler(0xb0, 0xb0, write8smo_delegate(FUNC(mc6845_device::address_w), m_crtc.target())); - io_space().install_readwrite_handler(0xb1, 0xb1, read8smo_delegate(FUNC(mc6845_device::register_r), m_crtc.target()), write8smo_delegate(FUNC(mc6845_device::register_w), m_crtc.target())); - io_space().install_write_handler(0xb2, 0xb2, write8_delegate(FUNC(nascom_avc_device::control_w), this)); + io_space().install_write_handler(0xb0, 0xb0, write8smo_delegate(*m_crtc, FUNC(mc6845_device::address_w))); + io_space().install_readwrite_handler(0xb1, 0xb1, read8smo_delegate(*m_crtc, FUNC(mc6845_device::register_r)), write8smo_delegate(*m_crtc, FUNC(mc6845_device::register_w))); + io_space().install_write_handler(0xb2, 0xb2, write8_delegate(*this, FUNC(nascom_avc_device::control_w))); } @@ -132,7 +132,7 @@ WRITE8_MEMBER( nascom_avc_device::control_w ) if (((m_control & 0x07) == 0) && (data & 0x07)) { m_nasbus->ram_disable_w(0); - program_space().install_readwrite_handler(0x8000, 0xbfff, read8_delegate(FUNC(nascom_avc_device::vram_r), this), write8_delegate(FUNC(nascom_avc_device::vram_w), this)); + program_space().install_readwrite_handler(0x8000, 0xbfff, read8_delegate(*this, FUNC(nascom_avc_device::vram_r)), write8_delegate(*this, FUNC(nascom_avc_device::vram_w))); } else if ((data & 0x07) == 0) { diff --git a/src/devices/bus/nasbus/floppy.cpp b/src/devices/bus/nasbus/floppy.cpp index 0f19c846bd0..4b57d7ee0aa 100644 --- a/src/devices/bus/nasbus/floppy.cpp +++ b/src/devices/bus/nasbus/floppy.cpp @@ -89,9 +89,9 @@ void nascom_fdc_device::device_start() void nascom_fdc_device::device_reset() { - io_space().install_readwrite_handler(0xe0, 0xe3, read8sm_delegate(FUNC(fd1793_device::read), m_fdc.target()), write8sm_delegate(FUNC(fd1793_device::write), m_fdc.target())); - io_space().install_readwrite_handler(0xe4, 0xe4, read8_delegate(FUNC(nascom_fdc_device::select_r), this), write8_delegate(FUNC(nascom_fdc_device::select_w), this)); - io_space().install_read_handler(0xe5, 0xe5, read8_delegate(FUNC(nascom_fdc_device::status_r), this)); + io_space().install_readwrite_handler(0xe0, 0xe3, read8sm_delegate(*m_fdc, FUNC(fd1793_device::read)), write8sm_delegate(*m_fdc, FUNC(fd1793_device::write))); + io_space().install_readwrite_handler(0xe4, 0xe4, read8_delegate(*this, FUNC(nascom_fdc_device::select_r)), write8_delegate(*this, FUNC(nascom_fdc_device::select_w))); + io_space().install_read_handler(0xe5, 0xe5, read8_delegate(*this, FUNC(nascom_fdc_device::status_r))); } //------------------------------------------------- diff --git a/src/devices/bus/nubus/bootbug.cpp b/src/devices/bus/nubus/bootbug.cpp index 24763b64dc2..427d35b33b5 100644 --- a/src/devices/bus/nubus/bootbug.cpp +++ b/src/devices/bus/nubus/bootbug.cpp @@ -102,7 +102,7 @@ void nubus_bootbug_device::device_start() slotspace = get_slotspace(); - nubus().install_device(slotspace, slotspace+0xff, read32_delegate(FUNC(nubus_bootbug_device::dev_r), this), write32_delegate(FUNC(nubus_bootbug_device::dev_w), this)); + nubus().install_device(slotspace, slotspace+0xff, read32_delegate(*this, FUNC(nubus_bootbug_device::dev_r)), write32_delegate(*this, FUNC(nubus_bootbug_device::dev_w))); } //------------------------------------------------- diff --git a/src/devices/bus/nubus/nubus_48gc.cpp b/src/devices/bus/nubus/nubus_48gc.cpp index 86f4fca21ec..f54c98ff3f1 100644 --- a/src/devices/bus/nubus/nubus_48gc.cpp +++ b/src/devices/bus/nubus/nubus_48gc.cpp @@ -109,7 +109,7 @@ void jmfb_device::device_start() m_vram.resize(VRAM_SIZE); install_bank(slotspace, slotspace+VRAM_SIZE-1, "bank_48gc", &m_vram[0]); - nubus().install_device(slotspace+0x200000, slotspace+0x2003ff, read32_delegate(FUNC(jmfb_device::mac_48gc_r), this), write32_delegate(FUNC(jmfb_device::mac_48gc_w), this)); + nubus().install_device(slotspace+0x200000, slotspace+0x2003ff, read32_delegate(*this, FUNC(jmfb_device::mac_48gc_r)), write32_delegate(*this, FUNC(jmfb_device::mac_48gc_w))); m_timer = timer_alloc(0, nullptr); m_screen = nullptr; // can we look this up now? diff --git a/src/devices/bus/nubus/nubus_asntmc3b.cpp b/src/devices/bus/nubus/nubus_asntmc3b.cpp index f6c0135af5f..2da81f791db 100644 --- a/src/devices/bus/nubus/nubus_asntmc3b.cpp +++ b/src/devices/bus/nubus/nubus_asntmc3b.cpp @@ -111,10 +111,10 @@ void nubus_mac8390_device::device_start() // TODO: move 24-bit mirroring down into nubus.c uint32_t ofs_24bit = slotno()<<20; - nubus().install_device(slotspace+0xd0000, slotspace+0xdffff, read8_delegate(FUNC(nubus_mac8390_device::asntm3b_ram_r), this), write8_delegate(FUNC(nubus_mac8390_device::asntm3b_ram_w), this)); - nubus().install_device(slotspace+0xe0000, slotspace+0xe003f, read32_delegate(FUNC(nubus_mac8390_device::en_r), this), write32_delegate(FUNC(nubus_mac8390_device::en_w), this)); - nubus().install_device(slotspace+0xd0000+ofs_24bit, slotspace+0xdffff+ofs_24bit, read8_delegate(FUNC(nubus_mac8390_device::asntm3b_ram_r), this), write8_delegate(FUNC(nubus_mac8390_device::asntm3b_ram_w), this)); - nubus().install_device(slotspace+0xe0000+ofs_24bit, slotspace+0xe003f+ofs_24bit, read32_delegate(FUNC(nubus_mac8390_device::en_r), this), write32_delegate(FUNC(nubus_mac8390_device::en_w), this)); + nubus().install_device(slotspace+0xd0000, slotspace+0xdffff, read8_delegate(*this, FUNC(nubus_mac8390_device::asntm3b_ram_r)), write8_delegate(*this, FUNC(nubus_mac8390_device::asntm3b_ram_w))); + nubus().install_device(slotspace+0xe0000, slotspace+0xe003f, read32_delegate(*this, FUNC(nubus_mac8390_device::en_r)), write32_delegate(*this, FUNC(nubus_mac8390_device::en_w))); + nubus().install_device(slotspace+0xd0000+ofs_24bit, slotspace+0xdffff+ofs_24bit, read8_delegate(*this, FUNC(nubus_mac8390_device::asntm3b_ram_r)), write8_delegate(*this, FUNC(nubus_mac8390_device::asntm3b_ram_w))); + nubus().install_device(slotspace+0xe0000+ofs_24bit, slotspace+0xe003f+ofs_24bit, read32_delegate(*this, FUNC(nubus_mac8390_device::en_r)), write32_delegate(*this, FUNC(nubus_mac8390_device::en_w))); } //------------------------------------------------- diff --git a/src/devices/bus/nubus/nubus_cb264.cpp b/src/devices/bus/nubus/nubus_cb264.cpp index 01bff0877da..99d67081ecd 100644 --- a/src/devices/bus/nubus/nubus_cb264.cpp +++ b/src/devices/bus/nubus/nubus_cb264.cpp @@ -95,8 +95,8 @@ void nubus_cb264_device::device_start() m_vram.resize(VRAM_SIZE); install_bank(slotspace, slotspace+VRAM_SIZE-1, "bank_cb264", &m_vram[0]); - nubus().install_device(slotspace+0xff6000, slotspace+0xff60ff, read32_delegate(FUNC(nubus_cb264_device::cb264_r), this), write32_delegate(FUNC(nubus_cb264_device::cb264_w), this)); - nubus().install_device(slotspace+0xff7000, slotspace+0xff70ff, read32_delegate(FUNC(nubus_cb264_device::cb264_ramdac_r), this), write32_delegate(FUNC(nubus_cb264_device::cb264_ramdac_w), this)); + nubus().install_device(slotspace+0xff6000, slotspace+0xff60ff, read32_delegate(*this, FUNC(nubus_cb264_device::cb264_r)), write32_delegate(*this, FUNC(nubus_cb264_device::cb264_w))); + nubus().install_device(slotspace+0xff7000, slotspace+0xff70ff, read32_delegate(*this, FUNC(nubus_cb264_device::cb264_ramdac_r)), write32_delegate(*this, FUNC(nubus_cb264_device::cb264_ramdac_w))); } //------------------------------------------------- diff --git a/src/devices/bus/nubus/nubus_image.cpp b/src/devices/bus/nubus/nubus_image.cpp index 36f40eb3184..1dd6bc2ab56 100644 --- a/src/devices/bus/nubus/nubus_image.cpp +++ b/src/devices/bus/nubus/nubus_image.cpp @@ -180,13 +180,13 @@ void nubus_image_device::device_start() // printf("[image %p] slotspace = %x, super = %x\n", this, slotspace, superslotspace); - nubus().install_device(slotspace, slotspace+3, read32_delegate(FUNC(nubus_image_device::image_r), this), write32_delegate(FUNC(nubus_image_device::image_w), this)); - nubus().install_device(slotspace+4, slotspace+7, read32_delegate(FUNC(nubus_image_device::image_status_r), this), write32_delegate(FUNC(nubus_image_device::image_status_w), this)); - nubus().install_device(slotspace+8, slotspace+11, read32_delegate(FUNC(nubus_image_device::file_cmd_r), this), write32_delegate(FUNC(nubus_image_device::file_cmd_w), this)); - nubus().install_device(slotspace+12, slotspace+15, read32_delegate(FUNC(nubus_image_device::file_data_r), this), write32_delegate(FUNC(nubus_image_device::file_data_w), this)); - nubus().install_device(slotspace+16, slotspace+19, read32_delegate(FUNC(nubus_image_device::file_len_r), this), write32_delegate(FUNC(nubus_image_device::file_len_w), this)); - nubus().install_device(slotspace+20, slotspace+147, read32_delegate(FUNC(nubus_image_device::file_name_r), this), write32_delegate(FUNC(nubus_image_device::file_name_w), this)); - nubus().install_device(superslotspace, superslotspace+((256*1024*1024)-1), read32_delegate(FUNC(nubus_image_device::image_super_r), this), write32_delegate(FUNC(nubus_image_device::image_super_w), this)); + nubus().install_device(slotspace, slotspace+3, read32_delegate(*this, FUNC(nubus_image_device::image_r)), write32_delegate(*this, FUNC(nubus_image_device::image_w))); + nubus().install_device(slotspace+4, slotspace+7, read32_delegate(*this, FUNC(nubus_image_device::image_status_r)), write32_delegate(*this, FUNC(nubus_image_device::image_status_w))); + nubus().install_device(slotspace+8, slotspace+11, read32_delegate(*this, FUNC(nubus_image_device::file_cmd_r)), write32_delegate(*this, FUNC(nubus_image_device::file_cmd_w))); + nubus().install_device(slotspace+12, slotspace+15, read32_delegate(*this, FUNC(nubus_image_device::file_data_r)), write32_delegate(*this, FUNC(nubus_image_device::file_data_w))); + nubus().install_device(slotspace+16, slotspace+19, read32_delegate(*this, FUNC(nubus_image_device::file_len_r)), write32_delegate(*this, FUNC(nubus_image_device::file_len_w))); + nubus().install_device(slotspace+20, slotspace+147, read32_delegate(*this, FUNC(nubus_image_device::file_name_r)), write32_delegate(*this, FUNC(nubus_image_device::file_name_w))); + nubus().install_device(superslotspace, superslotspace+((256*1024*1024)-1), read32_delegate(*this, FUNC(nubus_image_device::image_super_r)), write32_delegate(*this, FUNC(nubus_image_device::image_super_w))); m_image = subdevice(IMAGE_DISK0_TAG); diff --git a/src/devices/bus/nubus/nubus_m2hires.cpp b/src/devices/bus/nubus/nubus_m2hires.cpp index c575f7d94b1..7ba4efe9b30 100644 --- a/src/devices/bus/nubus/nubus_m2hires.cpp +++ b/src/devices/bus/nubus/nubus_m2hires.cpp @@ -93,9 +93,9 @@ void nubus_m2hires_device::device_start() m_vram.resize(VRAM_SIZE); m_vram32 = (uint32_t *)&m_vram[0]; - nubus().install_device(slotspace, slotspace+VRAM_SIZE-1, read32_delegate(FUNC(nubus_m2hires_device::vram_r), this), write32_delegate(FUNC(nubus_m2hires_device::vram_w), this)); - nubus().install_device(slotspace+0x900000, slotspace+VRAM_SIZE-1+0x900000, read32_delegate(FUNC(nubus_m2hires_device::vram_r), this), write32_delegate(FUNC(nubus_m2hires_device::vram_w), this)); - nubus().install_device(slotspace+0x80000, slotspace+0xeffff, read32_delegate(FUNC(nubus_m2hires_device::m2hires_r), this), write32_delegate(FUNC(nubus_m2hires_device::m2hires_w), this)); + nubus().install_device(slotspace, slotspace+VRAM_SIZE-1, read32_delegate(*this, FUNC(nubus_m2hires_device::vram_r)), write32_delegate(*this, FUNC(nubus_m2hires_device::vram_w))); + nubus().install_device(slotspace+0x900000, slotspace+VRAM_SIZE-1+0x900000, read32_delegate(*this, FUNC(nubus_m2hires_device::vram_r)), write32_delegate(*this, FUNC(nubus_m2hires_device::vram_w))); + nubus().install_device(slotspace+0x80000, slotspace+0xeffff, read32_delegate(*this, FUNC(nubus_m2hires_device::m2hires_r)), write32_delegate(*this, FUNC(nubus_m2hires_device::m2hires_w))); m_timer = timer_alloc(0, nullptr); m_timer->adjust(screen().time_until_pos(479, 0), 0); diff --git a/src/devices/bus/nubus/nubus_m2video.cpp b/src/devices/bus/nubus/nubus_m2video.cpp index b16391b640d..ea515895cb3 100644 --- a/src/devices/bus/nubus/nubus_m2video.cpp +++ b/src/devices/bus/nubus/nubus_m2video.cpp @@ -95,9 +95,9 @@ void nubus_m2video_device::device_start() m_vram.resize(VRAM_SIZE); m_vram32 = (uint32_t *)&m_vram[0]; - nubus().install_device(slotspace, slotspace+VRAM_SIZE-1, read32_delegate(FUNC(nubus_m2video_device::vram_r), this), write32_delegate(FUNC(nubus_m2video_device::vram_w), this)); - nubus().install_device(slotspace+0x900000, slotspace+VRAM_SIZE-1+0x900000, read32_delegate(FUNC(nubus_m2video_device::vram_r), this), write32_delegate(FUNC(nubus_m2video_device::vram_w), this)); - nubus().install_device(slotspace+0x80000, slotspace+0xeffff, read32_delegate(FUNC(nubus_m2video_device::m2video_r), this), write32_delegate(FUNC(nubus_m2video_device::m2video_w), this)); + nubus().install_device(slotspace, slotspace+VRAM_SIZE-1, read32_delegate(*this, FUNC(nubus_m2video_device::vram_r)), write32_delegate(*this, FUNC(nubus_m2video_device::vram_w))); + nubus().install_device(slotspace+0x900000, slotspace+VRAM_SIZE-1+0x900000, read32_delegate(*this, FUNC(nubus_m2video_device::vram_r)), write32_delegate(*this, FUNC(nubus_m2video_device::vram_w))); + nubus().install_device(slotspace+0x80000, slotspace+0xeffff, read32_delegate(*this, FUNC(nubus_m2video_device::m2video_r)), write32_delegate(*this, FUNC(nubus_m2video_device::m2video_w))); m_timer = timer_alloc(0, nullptr); m_timer->adjust(screen().time_until_pos(479, 0), 0); diff --git a/src/devices/bus/nubus/nubus_radiustpd.cpp b/src/devices/bus/nubus/nubus_radiustpd.cpp index 1ee2e0cb7fb..3f1ccfc9146 100644 --- a/src/devices/bus/nubus/nubus_radiustpd.cpp +++ b/src/devices/bus/nubus/nubus_radiustpd.cpp @@ -94,10 +94,10 @@ void nubus_radiustpd_device::device_start() m_vram.resize(VRAM_SIZE); m_vram32 = (uint32_t *)&m_vram[0]; - nubus().install_device(slotspace, slotspace+VRAM_SIZE-1, read32_delegate(FUNC(nubus_radiustpd_device::vram_r), this), write32_delegate(FUNC(nubus_radiustpd_device::vram_w), this)); - nubus().install_device(slotspace+0x900000, slotspace+VRAM_SIZE-1+0x900000, read32_delegate(FUNC(nubus_radiustpd_device::vram_r), this), write32_delegate(FUNC(nubus_radiustpd_device::vram_w), this)); - nubus().install_device(slotspace+0x80000, slotspace+0xeffff, read32_delegate(FUNC(nubus_radiustpd_device::radiustpd_r), this), write32_delegate(FUNC(nubus_radiustpd_device::radiustpd_w), this)); - nubus().install_device(slotspace+0x980000, slotspace+0x9effff, read32_delegate(FUNC(nubus_radiustpd_device::radiustpd_r), this), write32_delegate(FUNC(nubus_radiustpd_device::radiustpd_w), this)); + nubus().install_device(slotspace, slotspace+VRAM_SIZE-1, read32_delegate(*this, FUNC(nubus_radiustpd_device::vram_r)), write32_delegate(*this, FUNC(nubus_radiustpd_device::vram_w))); + nubus().install_device(slotspace+0x900000, slotspace+VRAM_SIZE-1+0x900000, read32_delegate(*this, FUNC(nubus_radiustpd_device::vram_r)), write32_delegate(*this, FUNC(nubus_radiustpd_device::vram_w))); + nubus().install_device(slotspace+0x80000, slotspace+0xeffff, read32_delegate(*this, FUNC(nubus_radiustpd_device::radiustpd_r)), write32_delegate(*this, FUNC(nubus_radiustpd_device::radiustpd_w))); + nubus().install_device(slotspace+0x980000, slotspace+0x9effff, read32_delegate(*this, FUNC(nubus_radiustpd_device::radiustpd_r)), write32_delegate(*this, FUNC(nubus_radiustpd_device::radiustpd_w))); m_timer = timer_alloc(0, nullptr); m_timer->adjust(screen().time_until_pos(479, 0), 0); diff --git a/src/devices/bus/nubus/nubus_spec8.cpp b/src/devices/bus/nubus/nubus_spec8.cpp index 1353d3b9a9d..00f5481aee8 100644 --- a/src/devices/bus/nubus/nubus_spec8.cpp +++ b/src/devices/bus/nubus/nubus_spec8.cpp @@ -97,9 +97,9 @@ void nubus_spec8s3_device::device_start() m_vram.resize(VRAM_SIZE); m_vram32 = (uint32_t *)&m_vram[0]; - nubus().install_device(slotspace, slotspace+VRAM_SIZE-1, read32_delegate(FUNC(nubus_spec8s3_device::vram_r), this), write32_delegate(FUNC(nubus_spec8s3_device::vram_w), this)); - nubus().install_device(slotspace+0x900000, slotspace+VRAM_SIZE-1+0x900000, read32_delegate(FUNC(nubus_spec8s3_device::vram_r), this), write32_delegate(FUNC(nubus_spec8s3_device::vram_w), this)); - nubus().install_device(slotspace+0xd0000, slotspace+0xfffff, read32_delegate(FUNC(nubus_spec8s3_device::spec8s3_r), this), write32_delegate(FUNC(nubus_spec8s3_device::spec8s3_w), this)); + nubus().install_device(slotspace, slotspace+VRAM_SIZE-1, read32_delegate(*this, FUNC(nubus_spec8s3_device::vram_r)), write32_delegate(*this, FUNC(nubus_spec8s3_device::vram_w))); + nubus().install_device(slotspace+0x900000, slotspace+VRAM_SIZE-1+0x900000, read32_delegate(*this, FUNC(nubus_spec8s3_device::vram_r)), write32_delegate(*this, FUNC(nubus_spec8s3_device::vram_w))); + nubus().install_device(slotspace+0xd0000, slotspace+0xfffff, read32_delegate(*this, FUNC(nubus_spec8s3_device::spec8s3_r)), write32_delegate(*this, FUNC(nubus_spec8s3_device::spec8s3_w))); m_timer = timer_alloc(0, nullptr); m_timer->adjust(screen().time_until_pos(767, 0), 0); diff --git a/src/devices/bus/nubus/nubus_specpdq.cpp b/src/devices/bus/nubus/nubus_specpdq.cpp index 2e09a258bd2..b3d85466ee5 100644 --- a/src/devices/bus/nubus/nubus_specpdq.cpp +++ b/src/devices/bus/nubus/nubus_specpdq.cpp @@ -114,8 +114,8 @@ void nubus_specpdq_device::device_start() m_vram.resize(VRAM_SIZE); m_vram32 = (uint32_t *)&m_vram[0]; - nubus().install_device(slotspace, slotspace+VRAM_SIZE-1, read32_delegate(FUNC(nubus_specpdq_device::vram_r), this), write32_delegate(FUNC(nubus_specpdq_device::vram_w), this)); - nubus().install_device(slotspace+0x400000, slotspace+0xfbffff, read32_delegate(FUNC(nubus_specpdq_device::specpdq_r), this), write32_delegate(FUNC(nubus_specpdq_device::specpdq_w), this)); + nubus().install_device(slotspace, slotspace+VRAM_SIZE-1, read32_delegate(*this, FUNC(nubus_specpdq_device::vram_r)), write32_delegate(*this, FUNC(nubus_specpdq_device::vram_w))); + nubus().install_device(slotspace+0x400000, slotspace+0xfbffff, read32_delegate(*this, FUNC(nubus_specpdq_device::specpdq_r)), write32_delegate(*this, FUNC(nubus_specpdq_device::specpdq_w))); m_timer = timer_alloc(0, nullptr); m_timer->adjust(screen().time_until_pos(843, 0), 0); diff --git a/src/devices/bus/nubus/nubus_vikbw.cpp b/src/devices/bus/nubus/nubus_vikbw.cpp index ab3af18fe72..875ddf676f4 100644 --- a/src/devices/bus/nubus/nubus_vikbw.cpp +++ b/src/devices/bus/nubus/nubus_vikbw.cpp @@ -92,8 +92,8 @@ void nubus_vikbw_device::device_start() install_bank(slotspace+0x40000, slotspace+0x40000+VRAM_SIZE-1, "bank_vikbw", &m_vram[0]); install_bank(slotspace+0x940000, slotspace+0x940000+VRAM_SIZE-1, "bank_vikbw2", &m_vram[0]); - nubus().install_device(slotspace, slotspace+3, read32_delegate(FUNC(nubus_vikbw_device::viking_enable_r), this), write32_delegate(FUNC(nubus_vikbw_device::viking_disable_w), this)); - nubus().install_device(slotspace+0x80000, slotspace+0x80000+3, read32_delegate(FUNC(nubus_vikbw_device::viking_ack_r), this), write32_delegate(FUNC(nubus_vikbw_device::viking_ack_w), this)); + nubus().install_device(slotspace, slotspace+3, read32_delegate(*this, FUNC(nubus_vikbw_device::viking_enable_r)), write32_delegate(*this, FUNC(nubus_vikbw_device::viking_disable_w))); + nubus().install_device(slotspace+0x80000, slotspace+0x80000+3, read32_delegate(*this, FUNC(nubus_vikbw_device::viking_ack_r)), write32_delegate(*this, FUNC(nubus_vikbw_device::viking_ack_w))); } //------------------------------------------------- diff --git a/src/devices/bus/nubus/nubus_wsportrait.cpp b/src/devices/bus/nubus/nubus_wsportrait.cpp index 12702c052a6..fd85e99b99b 100644 --- a/src/devices/bus/nubus/nubus_wsportrait.cpp +++ b/src/devices/bus/nubus/nubus_wsportrait.cpp @@ -96,9 +96,9 @@ void nubus_wsportrait_device::device_start() m_vram.resize(VRAM_SIZE); m_vram32 = (uint32_t *)&m_vram[0]; - nubus().install_device(slotspace, slotspace+VRAM_SIZE-1, read32_delegate(FUNC(nubus_wsportrait_device::vram_r), this), write32_delegate(FUNC(nubus_wsportrait_device::vram_w), this)); - nubus().install_device(slotspace+0x900000, slotspace+0x900000+VRAM_SIZE-1, read32_delegate(FUNC(nubus_wsportrait_device::vram_r), this), write32_delegate(FUNC(nubus_wsportrait_device::vram_w), this)); - nubus().install_device(slotspace+0x80000, slotspace+0xeffff, read32_delegate(FUNC(nubus_wsportrait_device::wsportrait_r), this), write32_delegate(FUNC(nubus_wsportrait_device::wsportrait_w), this)); + nubus().install_device(slotspace, slotspace+VRAM_SIZE-1, read32_delegate(*this, FUNC(nubus_wsportrait_device::vram_r)), write32_delegate(*this, FUNC(nubus_wsportrait_device::vram_w))); + nubus().install_device(slotspace+0x900000, slotspace+0x900000+VRAM_SIZE-1, read32_delegate(*this, FUNC(nubus_wsportrait_device::vram_r)), write32_delegate(*this, FUNC(nubus_wsportrait_device::vram_w))); + nubus().install_device(slotspace+0x80000, slotspace+0xeffff, read32_delegate(*this, FUNC(nubus_wsportrait_device::wsportrait_r)), write32_delegate(*this, FUNC(nubus_wsportrait_device::wsportrait_w))); m_timer = timer_alloc(0, nullptr); m_timer->adjust(screen().time_until_pos(869, 0), 0); diff --git a/src/devices/bus/nubus/pds30_30hr.cpp b/src/devices/bus/nubus/pds30_30hr.cpp index 190872708f6..dbd0018cecd 100644 --- a/src/devices/bus/nubus/pds30_30hr.cpp +++ b/src/devices/bus/nubus/pds30_30hr.cpp @@ -96,8 +96,8 @@ void nubus_xceed30hr_device::device_start() m_vram.resize(VRAM_SIZE); m_vram32 = (uint32_t *)&m_vram[0]; - nubus().install_device(slotspace, slotspace+VRAM_SIZE-1, read32_delegate(FUNC(nubus_xceed30hr_device::vram_r), this), write32_delegate(FUNC(nubus_xceed30hr_device::vram_w), this)); - nubus().install_device(slotspace+0x800000, slotspace+0xefffff, read32_delegate(FUNC(nubus_xceed30hr_device::xceed30hr_r), this), write32_delegate(FUNC(nubus_xceed30hr_device::xceed30hr_w), this)); + nubus().install_device(slotspace, slotspace+VRAM_SIZE-1, read32_delegate(*this, FUNC(nubus_xceed30hr_device::vram_r)), write32_delegate(*this, FUNC(nubus_xceed30hr_device::vram_w))); + nubus().install_device(slotspace+0x800000, slotspace+0xefffff, read32_delegate(*this, FUNC(nubus_xceed30hr_device::xceed30hr_r)), write32_delegate(*this, FUNC(nubus_xceed30hr_device::xceed30hr_w))); m_timer = timer_alloc(0, nullptr); m_timer->adjust(screen().time_until_pos(479, 0), 0); diff --git a/src/devices/bus/nubus/pds30_cb264.cpp b/src/devices/bus/nubus/pds30_cb264.cpp index 4d153596fe0..f7111b2a8e6 100644 --- a/src/devices/bus/nubus/pds30_cb264.cpp +++ b/src/devices/bus/nubus/pds30_cb264.cpp @@ -90,8 +90,8 @@ void nubus_cb264se30_device::device_start() m_vram.resize(VRAM_SIZE); m_vram32 = (uint32_t *)&m_vram[0]; - nubus().install_device(slotspace, slotspace+VRAM_SIZE-1, read32_delegate(FUNC(nubus_cb264se30_device::vram_r), this), write32_delegate(FUNC(nubus_cb264se30_device::vram_w), this)); - nubus().install_device(slotspace+0xf00000, slotspace+0xfeffff, read32_delegate(FUNC(nubus_cb264se30_device::cb264se30_r), this), write32_delegate(FUNC(nubus_cb264se30_device::cb264se30_w), this)); + nubus().install_device(slotspace, slotspace+VRAM_SIZE-1, read32_delegate(*this, FUNC(nubus_cb264se30_device::vram_r)), write32_delegate(*this, FUNC(nubus_cb264se30_device::vram_w))); + nubus().install_device(slotspace+0xf00000, slotspace+0xfeffff, read32_delegate(*this, FUNC(nubus_cb264se30_device::cb264se30_r)), write32_delegate(*this, FUNC(nubus_cb264se30_device::cb264se30_w))); m_timer = timer_alloc(0, nullptr); m_timer->adjust(screen().time_until_pos(479, 0), 0); diff --git a/src/devices/bus/nubus/pds30_mc30.cpp b/src/devices/bus/nubus/pds30_mc30.cpp index 6770b517deb..068ce736156 100644 --- a/src/devices/bus/nubus/pds30_mc30.cpp +++ b/src/devices/bus/nubus/pds30_mc30.cpp @@ -92,8 +92,8 @@ void nubus_xceedmc30_device::device_start() m_vram.resize(VRAM_SIZE); m_vram32 = (uint32_t *)&m_vram[0]; - nubus().install_device(slotspace, slotspace+VRAM_SIZE-1, read32_delegate(FUNC(nubus_xceedmc30_device::vram_r), this), write32_delegate(FUNC(nubus_xceedmc30_device::vram_w), this)); - nubus().install_device(slotspace+0x800000, slotspace+0xefffff, read32_delegate(FUNC(nubus_xceedmc30_device::xceedmc30_r), this), write32_delegate(FUNC(nubus_xceedmc30_device::xceedmc30_w), this)); + nubus().install_device(slotspace, slotspace+VRAM_SIZE-1, read32_delegate(*this, FUNC(nubus_xceedmc30_device::vram_r)), write32_delegate(*this, FUNC(nubus_xceedmc30_device::vram_w))); + nubus().install_device(slotspace+0x800000, slotspace+0xefffff, read32_delegate(*this, FUNC(nubus_xceedmc30_device::xceedmc30_r)), write32_delegate(*this, FUNC(nubus_xceedmc30_device::xceedmc30_w))); m_timer = timer_alloc(0, nullptr); m_timer->adjust(screen().time_until_pos(479, 0), 0); diff --git a/src/devices/bus/nubus/pds30_procolor816.cpp b/src/devices/bus/nubus/pds30_procolor816.cpp index 440ba6c86d7..0399378216f 100644 --- a/src/devices/bus/nubus/pds30_procolor816.cpp +++ b/src/devices/bus/nubus/pds30_procolor816.cpp @@ -95,9 +95,9 @@ void nubus_procolor816_device::device_start() m_vram.resize(VRAM_SIZE); m_vram32 = (uint32_t *)&m_vram[0]; - nubus().install_device(slotspace, slotspace+VRAM_SIZE-1, read32_delegate(FUNC(nubus_procolor816_device::vram_r), this), write32_delegate(FUNC(nubus_procolor816_device::vram_w), this)); - nubus().install_device(slotspace+0x900000, slotspace+VRAM_SIZE-1+0x900000, read32_delegate(FUNC(nubus_procolor816_device::vram_r), this), write32_delegate(FUNC(nubus_procolor816_device::vram_w), this)); - nubus().install_device(slotspace+0xf00000, slotspace+0xff7fff, read32_delegate(FUNC(nubus_procolor816_device::procolor816_r), this), write32_delegate(FUNC(nubus_procolor816_device::procolor816_w), this)); + nubus().install_device(slotspace, slotspace+VRAM_SIZE-1, read32_delegate(*this, FUNC(nubus_procolor816_device::vram_r)), write32_delegate(*this, FUNC(nubus_procolor816_device::vram_w))); + nubus().install_device(slotspace+0x900000, slotspace+VRAM_SIZE-1+0x900000, read32_delegate(*this, FUNC(nubus_procolor816_device::vram_r)), write32_delegate(*this, FUNC(nubus_procolor816_device::vram_w))); + nubus().install_device(slotspace+0xf00000, slotspace+0xff7fff, read32_delegate(*this, FUNC(nubus_procolor816_device::procolor816_r)), write32_delegate(*this, FUNC(nubus_procolor816_device::procolor816_w))); m_timer = timer_alloc(0, nullptr); m_timer->adjust(screen().time_until_pos(479, 0), 0); diff --git a/src/devices/bus/nubus/pds30_sigmalview.cpp b/src/devices/bus/nubus/pds30_sigmalview.cpp index 51f27a03713..84e5fee67c0 100644 --- a/src/devices/bus/nubus/pds30_sigmalview.cpp +++ b/src/devices/bus/nubus/pds30_sigmalview.cpp @@ -90,9 +90,9 @@ void nubus_lview_device::device_start() m_vram.resize(VRAM_SIZE); m_vram32 = (uint32_t *)&m_vram[0]; - nubus().install_device(slotspace, slotspace+VRAM_SIZE-1, read32_delegate(FUNC(nubus_lview_device::vram_r), this), write32_delegate(FUNC(nubus_lview_device::vram_w), this)); - nubus().install_device(slotspace+0x900000, slotspace+VRAM_SIZE-1+0x900000, read32_delegate(FUNC(nubus_lview_device::vram_r), this), write32_delegate(FUNC(nubus_lview_device::vram_w), this)); - nubus().install_device(slotspace+0xb0000, slotspace+0xbffff, read32_delegate(FUNC(nubus_lview_device::lview_r), this), write32_delegate(FUNC(nubus_lview_device::lview_w), this)); + nubus().install_device(slotspace, slotspace+VRAM_SIZE-1, read32_delegate(*this, FUNC(nubus_lview_device::vram_r)), write32_delegate(*this, FUNC(nubus_lview_device::vram_w))); + nubus().install_device(slotspace+0x900000, slotspace+VRAM_SIZE-1+0x900000, read32_delegate(*this, FUNC(nubus_lview_device::vram_r)), write32_delegate(*this, FUNC(nubus_lview_device::vram_w))); + nubus().install_device(slotspace+0xb0000, slotspace+0xbffff, read32_delegate(*this, FUNC(nubus_lview_device::lview_r)), write32_delegate(*this, FUNC(nubus_lview_device::lview_w))); m_timer = timer_alloc(0, nullptr); m_timer->adjust(screen().time_until_pos(599, 0), 0); diff --git a/src/devices/bus/nubus/quadralink.cpp b/src/devices/bus/nubus/quadralink.cpp index 9ba40a99748..84855baebc3 100644 --- a/src/devices/bus/nubus/quadralink.cpp +++ b/src/devices/bus/nubus/quadralink.cpp @@ -110,7 +110,7 @@ void nubus_quadralink_device::device_start() slotspace = get_slotspace(); - nubus().install_device(slotspace, slotspace+0xefffff, read32_delegate(FUNC(nubus_quadralink_device::dev_r), this), write32_delegate(FUNC(nubus_quadralink_device::dev_w), this)); + nubus().install_device(slotspace, slotspace+0xefffff, read32_delegate(*this, FUNC(nubus_quadralink_device::dev_r)), write32_delegate(*this, FUNC(nubus_quadralink_device::dev_w))); } //------------------------------------------------- diff --git a/src/devices/bus/sbus/sbus.cpp b/src/devices/bus/sbus/sbus.cpp index 3fa46c124a0..8409d8a2598 100644 --- a/src/devices/bus/sbus/sbus.cpp +++ b/src/devices/bus/sbus/sbus.cpp @@ -111,9 +111,9 @@ void sbus_device::device_start() std::fill(std::begin(m_device_list), std::end(m_device_list), nullptr); m_space = &space(0); - m_space->install_readwrite_handler(0x00000000, 0x01ffffff, read32_delegate(FUNC(sbus_device::slot_timeout_r<0>), this), write32_delegate(FUNC(sbus_device::slot_timeout_w<0>), this)); - m_space->install_readwrite_handler(0x02000000, 0x03ffffff, read32_delegate(FUNC(sbus_device::slot_timeout_r<1>), this), write32_delegate(FUNC(sbus_device::slot_timeout_w<1>), this)); - m_space->install_readwrite_handler(0x04000000, 0x05ffffff, read32_delegate(FUNC(sbus_device::slot_timeout_r<2>), this), write32_delegate(FUNC(sbus_device::slot_timeout_w<2>), this)); + m_space->install_readwrite_handler(0x00000000, 0x01ffffff, read32_delegate(*this, FUNC(sbus_device::slot_timeout_r<0>)), write32_delegate(*this, FUNC(sbus_device::slot_timeout_w<0>))); + m_space->install_readwrite_handler(0x02000000, 0x03ffffff, read32_delegate(*this, FUNC(sbus_device::slot_timeout_r<1>)), write32_delegate(*this, FUNC(sbus_device::slot_timeout_w<1>))); + m_space->install_readwrite_handler(0x04000000, 0x05ffffff, read32_delegate(*this, FUNC(sbus_device::slot_timeout_r<2>)), write32_delegate(*this, FUNC(sbus_device::slot_timeout_w<2>))); } template READ32_MEMBER(sbus_device::slot_timeout_r) diff --git a/src/devices/bus/snes_ctrl/ctrl.cpp b/src/devices/bus/snes_ctrl/ctrl.cpp index 09079bd9c91..c628a049b8c 100644 --- a/src/devices/bus/snes_ctrl/ctrl.cpp +++ b/src/devices/bus/snes_ctrl/ctrl.cpp @@ -61,7 +61,10 @@ device_snes_control_port_interface::~device_snes_control_port_interface() snes_control_port_device::snes_control_port_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : device_t(mconfig, SNES_CONTROL_PORT, tag, owner, clock), - device_slot_interface(mconfig, *this), m_device(nullptr) + device_slot_interface(mconfig, *this), + m_onscreen_cb(*this), + m_gunlatch_cb(*this), + m_device(nullptr) { } @@ -82,8 +85,8 @@ snes_control_port_device::~snes_control_port_device() void snes_control_port_device::device_start() { m_device = dynamic_cast(get_card_device()); - m_onscreen_cb.bind_relative_to(*owner()); - m_gunlatch_cb.bind_relative_to(*owner()); + m_onscreen_cb.resolve(); + m_gunlatch_cb.resolve(); } diff --git a/src/devices/bus/snes_ctrl/ctrl.h b/src/devices/bus/snes_ctrl/ctrl.h index 37db69537cc..cfcc8f03de9 100644 --- a/src/devices/bus/snes_ctrl/ctrl.h +++ b/src/devices/bus/snes_ctrl/ctrl.h @@ -37,10 +37,8 @@ protected: snes_control_port_device *m_port; }; -typedef device_delegate snesctrl_onscreen_delegate; #define SNESCTRL_ONSCREEN_CB(name) bool name(int16_t x, int16_t y) -typedef device_delegate snesctrl_gunlatch_delegate; #define SNESCTRL_GUNLATCH_CB(name) void name(int16_t x, int16_t y) // ======================> snes_control_port_device @@ -48,6 +46,9 @@ typedef device_delegate snesctrl_gunlatch_delegate; class snes_control_port_device : public device_t, public device_slot_interface { public: + typedef device_delegate onscreen_delegate; + typedef device_delegate gunlatch_delegate; + // construction/destruction template snes_control_port_device(machine_config const &mconfig, char const *tag, device_t *owner, T &&opts, char const *dflt) @@ -61,8 +62,8 @@ public: snes_control_port_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0); virtual ~snes_control_port_device(); - template void set_onscreen_callback(T &&... args) { m_onscreen_cb = snesctrl_onscreen_delegate(std::forward(args)...); } - template void set_gunlatch_callback(T &&... args) { m_gunlatch_cb = snesctrl_gunlatch_delegate(std::forward(args)...); } + template void set_onscreen_callback(T &&... args) { m_onscreen_cb.set(std::forward(args)...); } + template void set_gunlatch_callback(T &&... args) { m_gunlatch_cb.set(std::forward(args)...); } uint8_t read_pin4(); uint8_t read_pin5(); @@ -77,8 +78,8 @@ protected: // device-level overrides virtual void device_start() override; - snesctrl_onscreen_delegate m_onscreen_cb; - snesctrl_gunlatch_delegate m_gunlatch_cb; + onscreen_delegate m_onscreen_cb; + gunlatch_delegate m_gunlatch_cb; device_snes_control_port_interface *m_device; }; diff --git a/src/devices/bus/spectrum/intf2.cpp b/src/devices/bus/spectrum/intf2.cpp index ab9caf68f8c..7442dfe49a9 100644 --- a/src/devices/bus/spectrum/intf2.cpp +++ b/src/devices/bus/spectrum/intf2.cpp @@ -58,7 +58,7 @@ void spectrum_intf2_device::device_add_mconfig(machine_config &config) { /* cartridge */ GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "spectrum_cart", "bin,rom"); - m_cart->set_device_load(FUNC(spectrum_intf2_device::cart_load), this); + m_cart->set_device_load(FUNC(spectrum_intf2_device::cart_load)); SOFTWARE_LIST(config, "cart_list").set_original("spectrum_cart"); } diff --git a/src/devices/bus/svi3x8/slot/sv806.cpp b/src/devices/bus/svi3x8/slot/sv806.cpp index e2319516781..bc4dafbd415 100644 --- a/src/devices/bus/svi3x8/slot/sv806.cpp +++ b/src/devices/bus/svi3x8/slot/sv806.cpp @@ -52,7 +52,7 @@ void sv806_device::device_add_mconfig(machine_config &config) m_crtc->set_screen("80col"); m_crtc->set_show_border_area(false); m_crtc->set_char_width(8); - m_crtc->set_update_row_callback(FUNC(sv806_device::crtc_update_row), this); + m_crtc->set_update_row_callback(FUNC(sv806_device::crtc_update_row)); } diff --git a/src/devices/bus/tanbus/mpvdu.cpp b/src/devices/bus/tanbus/mpvdu.cpp index 8463d90b6c5..d172c93cae0 100644 --- a/src/devices/bus/tanbus/mpvdu.cpp +++ b/src/devices/bus/tanbus/mpvdu.cpp @@ -42,7 +42,7 @@ void tanbus_mpvdu_device::device_add_mconfig(machine_config &config) m_crtc->set_show_border_area(false); m_crtc->set_char_width(12); m_crtc->out_vsync_callback().set(FUNC(tanbus_mpvdu_device::vsync_changed)); - m_crtc->set_update_row_callback(FUNC(tanbus_mpvdu_device::crtc_update_row), this); + m_crtc->set_update_row_callback(FUNC(tanbus_mpvdu_device::crtc_update_row)); SAA5050(config, m_trom, DERIVED_CLOCK(1, 1)); m_trom->d_cb().set(FUNC(tanbus_mpvdu_device::videoram_r)); diff --git a/src/devices/bus/tanbus/ravdu.cpp b/src/devices/bus/tanbus/ravdu.cpp index a68a609c18e..2a53497d079 100644 --- a/src/devices/bus/tanbus/ravdu.cpp +++ b/src/devices/bus/tanbus/ravdu.cpp @@ -43,7 +43,7 @@ void tanbus_ravdu_device::device_add_mconfig(machine_config &config) m_crtc->set_show_border_area(false); m_crtc->set_char_width(12); m_crtc->out_vsync_callback().set(FUNC(tanbus_ravdu_device::vsync_changed)); - m_crtc->set_update_row_callback(FUNC(tanbus_ravdu_device::crtc_update_row), this); + m_crtc->set_update_row_callback(FUNC(tanbus_ravdu_device::crtc_update_row)); SAA5055(config, m_trom, DERIVED_CLOCK(1, 1)); m_trom->d_cb().set(FUNC(tanbus_ravdu_device::videoram_r)); diff --git a/src/devices/bus/ti99x/990_hd.cpp b/src/devices/bus/ti99x/990_hd.cpp index 8e9c08648a5..a6ae9e63136 100644 --- a/src/devices/bus/ti99x/990_hd.cpp +++ b/src/devices/bus/ti99x/990_hd.cpp @@ -1007,18 +1007,18 @@ void ti990_hdc_device::device_start() void ti990_hdc_device::device_add_mconfig(machine_config &config) { harddisk_image_device &harddisk1(HARDDISK(config, "harddisk1")); - harddisk1.set_device_load(FUNC(ti990_hdc_device::load_hd), this); - harddisk1.set_device_unload(FUNC(ti990_hdc_device::unload_hd), this); + harddisk1.set_device_load(FUNC(ti990_hdc_device::load_hd)); + harddisk1.set_device_unload(FUNC(ti990_hdc_device::unload_hd)); harddisk_image_device &harddisk2(HARDDISK(config, "harddisk2")); - harddisk2.set_device_load(FUNC(ti990_hdc_device::load_hd), this); - harddisk2.set_device_unload(FUNC(ti990_hdc_device::unload_hd), this); + harddisk2.set_device_load(FUNC(ti990_hdc_device::load_hd)); + harddisk2.set_device_unload(FUNC(ti990_hdc_device::unload_hd)); harddisk_image_device &harddisk3(HARDDISK(config, "harddisk3")); - harddisk3.set_device_load(FUNC(ti990_hdc_device::load_hd), this); - harddisk3.set_device_unload(FUNC(ti990_hdc_device::unload_hd), this); + harddisk3.set_device_load(FUNC(ti990_hdc_device::load_hd)); + harddisk3.set_device_unload(FUNC(ti990_hdc_device::unload_hd)); harddisk_image_device &harddisk4(HARDDISK(config, "harddisk4")); - harddisk4.set_device_load(FUNC(ti990_hdc_device::load_hd), this); - harddisk4.set_device_unload(FUNC(ti990_hdc_device::unload_hd), this); + harddisk4.set_device_load(FUNC(ti990_hdc_device::load_hd)); + harddisk4.set_device_unload(FUNC(ti990_hdc_device::unload_hd)); } diff --git a/src/devices/bus/vic20/videopak.cpp b/src/devices/bus/vic20/videopak.cpp index 98a6c054d22..187224721be 100644 --- a/src/devices/bus/vic20/videopak.cpp +++ b/src/devices/bus/vic20/videopak.cpp @@ -112,7 +112,7 @@ void vic20_video_pak_device::device_add_mconfig(machine_config &config) m_crtc->set_screen(MC6845_SCREEN_TAG); m_crtc->set_show_border_area(true); m_crtc->set_char_width(8); - m_crtc->set_update_row_callback(FUNC(vic20_video_pak_device::crtc_update_row), this); + m_crtc->set_update_row_callback(FUNC(vic20_video_pak_device::crtc_update_row)); } diff --git a/src/devices/bus/vme/vme_fccpu20.cpp b/src/devices/bus/vme/vme_fccpu20.cpp index d9096ca13e2..1866a3c128e 100644 --- a/src/devices/bus/vme/vme_fccpu20.cpp +++ b/src/devices/bus/vme/vme_fccpu20.cpp @@ -254,7 +254,7 @@ DEVICE_INPUT_DEFAULTS_END void vme_fccpu20_device::cpu_space_map(address_map &map) { - map(0xfffffff2, 0xffffffff).lr16("bim irq", [this](offs_t offset) -> u16 { return m_bim->iack(offset+1); }); + map(0xfffffff2, 0xffffffff).lr16(NAME([this](offs_t offset) -> u16 { return m_bim->iack(offset+1); })); } void vme_fccpu20_device::device_add_mconfig(machine_config &config) @@ -459,9 +459,9 @@ void vme_fccpu20_device::device_start() #if 0 // TODO: Setup VME access handlers for shared memory area uint32_t base = 0xFFFF5000; m_vme->install_device(base + 0, base + 1, // Channel B - Data - read8_delegate(FUNC(z80sio_device::db_r), subdevice("pit")), write8_delegate(FUNC(z80sio_device::db_w), subdevice("pit")), 0x00ff); + read8_delegate(*subdevice("pit"), FUNC(z80sio_device::db_r)), write8_delegate(*subdevice("pit"), FUNC(z80sio_device::db_w)), 0x00ff); m_vme->install_device(base + 2, base + 3, // Channel B - Control - read8_delegate(FUNC(z80sio_device::cb_r), subdevice("pit")), write8_delegate(FUNC(z80sio_device::cb_w), subdevice("pit")), 0x00ff); + read8_delegate(*subdevice("pit"), FUNC(z80sio_device::cb_r)), write8_delegate(*subdevice("pit"), FUNC(z80sio_device::cb_w)), 0x00ff); #endif } diff --git a/src/devices/bus/vme/vme_mzr8300.cpp b/src/devices/bus/vme/vme_mzr8300.cpp index 133c17e9f49..a318ced143f 100644 --- a/src/devices/bus/vme/vme_mzr8300.cpp +++ b/src/devices/bus/vme/vme_mzr8300.cpp @@ -175,20 +175,20 @@ void vme_mzr8300_card_device::device_start() // m_vme->static_set_custom_spaces(*this); m_vme->install_device(vme_device::A16_SC, base + 0, base + 1, // Channel B - Data - read8smo_delegate(FUNC(z80sio_device::db_r), subdevice("sio0")), - write8smo_delegate(FUNC(z80sio_device::db_w), subdevice("sio0")), 0x00ff); + read8smo_delegate(*subdevice("sio0"), FUNC(z80sio_device::db_r)), + write8smo_delegate(*subdevice("sio0"), FUNC(z80sio_device::db_w)), 0x00ff); m_vme->install_device(vme_device::A16_SC, base + 2, base + 3, // Channel B - Control - read8smo_delegate(FUNC(z80sio_device::cb_r), subdevice("sio0")), - write8smo_delegate(FUNC(z80sio_device::cb_w), subdevice("sio0")), 0x00ff); + read8smo_delegate(*subdevice("sio0"), FUNC(z80sio_device::cb_r)), + write8smo_delegate(*subdevice("sio0"), FUNC(z80sio_device::cb_w)), 0x00ff); m_vme->install_device(vme_device::A16_SC, base + 4, base + 5, // Channel A - Data - read8smo_delegate(FUNC(z80sio_device::da_r), subdevice("sio0")), - write8smo_delegate(FUNC(z80sio_device::da_w), subdevice("sio0")), 0x00ff); + read8smo_delegate(*subdevice("sio0"), FUNC(z80sio_device::da_r)), + write8smo_delegate(*subdevice("sio0"), FUNC(z80sio_device::da_w)), 0x00ff); m_vme->install_device(vme_device::A16_SC, base + 6, base + 7, // Channel A - Control - read8smo_delegate(FUNC(z80sio_device::ca_r), subdevice("sio0")), - write8smo_delegate(FUNC(z80sio_device::ca_w), subdevice("sio0")), 0x00ff); + read8smo_delegate(*subdevice("sio0"), FUNC(z80sio_device::ca_r)), + write8smo_delegate(*subdevice("sio0"), FUNC(z80sio_device::ca_w)), 0x00ff); m_vme->install_device(vme_device::A16_SC, base + 0x10, base + 0x13, // Am9513 - read8sm_delegate(FUNC(am9513_device::read8), subdevice("stc")), - write8sm_delegate(FUNC(am9513_device::write8), subdevice("stc")), 0x00ff); + read8sm_delegate(*subdevice("stc"), FUNC(am9513_device::read8)), + write8sm_delegate(*subdevice("stc"), FUNC(am9513_device::write8)), 0x00ff); } void vme_mzr8300_card_device::device_reset() diff --git a/src/devices/bus/vtech/ioexp/joystick.cpp b/src/devices/bus/vtech/ioexp/joystick.cpp index 7570deca3b5..f8521538195 100644 --- a/src/devices/bus/vtech/ioexp/joystick.cpp +++ b/src/devices/bus/vtech/ioexp/joystick.cpp @@ -89,7 +89,7 @@ void vtech_joystick_interface_device::device_start() void vtech_joystick_interface_device::device_reset() { - io_space().install_read_handler(0x20, 0x2f, read8_delegate(FUNC(vtech_joystick_interface_device::joystick_r), this)); + io_space().install_read_handler(0x20, 0x2f, read8_delegate(*this, FUNC(vtech_joystick_interface_device::joystick_r))); } diff --git a/src/devices/bus/vtech/ioexp/printer.cpp b/src/devices/bus/vtech/ioexp/printer.cpp index b927f41d3c4..17e9ab7f139 100644 --- a/src/devices/bus/vtech/ioexp/printer.cpp +++ b/src/devices/bus/vtech/ioexp/printer.cpp @@ -64,9 +64,9 @@ void vtech_printer_interface_device::device_start() void vtech_printer_interface_device::device_reset() { - io_space().install_read_handler(0x00, 0x00, read8_delegate(FUNC(vtech_printer_interface_device::busy_r), this)); - io_space().install_write_handler(0x0d, 0x0d, write8_delegate(FUNC(vtech_printer_interface_device::strobe_w), this)); - io_space().install_write_handler(0x0e, 0x0e, write8_delegate(FUNC(output_latch_device::bus_w), m_latch.target())); + io_space().install_read_handler(0x00, 0x00, read8_delegate(*this, FUNC(vtech_printer_interface_device::busy_r))); + io_space().install_write_handler(0x0d, 0x0d, write8_delegate(*this, FUNC(vtech_printer_interface_device::strobe_w))); + io_space().install_write_handler(0x0e, 0x0e, write8_delegate(*m_latch, FUNC(output_latch_device::bus_w))); } diff --git a/src/devices/bus/vtech/memexp/memory.cpp b/src/devices/bus/vtech/memexp/memory.cpp index 15ccbeb949e..19330332bed 100644 --- a/src/devices/bus/vtech/memexp/memory.cpp +++ b/src/devices/bus/vtech/memexp/memory.cpp @@ -158,7 +158,7 @@ void vtech_laser_64k_device::device_reset() membank(tag())->set_entry(1); // bank switch - io_space().install_write_handler(0x70, 0x7f, write8_delegate(FUNC(vtech_laser_64k_device::bankswitch_w), this)); + io_space().install_write_handler(0x70, 0x7f, write8_delegate(*this, FUNC(vtech_laser_64k_device::bankswitch_w))); } WRITE8_MEMBER( vtech_laser_64k_device::bankswitch_w ) diff --git a/src/devices/bus/vtech/memexp/rs232.cpp b/src/devices/bus/vtech/memexp/rs232.cpp index cf21b7ee006..959ef7d1adc 100644 --- a/src/devices/bus/vtech/memexp/rs232.cpp +++ b/src/devices/bus/vtech/memexp/rs232.cpp @@ -75,8 +75,8 @@ void vtech_rs232_interface_device::device_reset() program_space().install_rom(0x4000, 0x47ff, 0x800, memregion("software")->base()); // data - program_space().install_read_handler(0x5000, 0x57ff, read8_delegate(FUNC(vtech_rs232_interface_device::receive_data_r), this)); - program_space().install_write_handler(0x5800, 0x5fff, write8_delegate(FUNC(vtech_rs232_interface_device::transmit_data_w), this)); + program_space().install_read_handler(0x5000, 0x57ff, read8_delegate(*this, FUNC(vtech_rs232_interface_device::receive_data_r))); + program_space().install_write_handler(0x5800, 0x5fff, write8_delegate(*this, FUNC(vtech_rs232_interface_device::transmit_data_w))); } diff --git a/src/devices/bus/vtech/memexp/rtty.cpp b/src/devices/bus/vtech/memexp/rtty.cpp index 96e394bfb4d..02b3aba005b 100644 --- a/src/devices/bus/vtech/memexp/rtty.cpp +++ b/src/devices/bus/vtech/memexp/rtty.cpp @@ -63,9 +63,9 @@ void vtech_rtty_interface_device::device_reset() program_space().install_rom(0x4000, 0x4fff, 0x1000, memregion("software")->base()); // data - program_space().install_read_handler(0x5000, 0x57ff, read8_delegate(FUNC(vtech_rtty_interface_device::receive_data_r), this)); - program_space().install_write_handler(0x5800, 0x5fff, write8_delegate(FUNC(vtech_rtty_interface_device::transmit_data_w), this)); - program_space().install_write_handler(0x6000, 0x67ff, write8_delegate(FUNC(vtech_rtty_interface_device::relay_w), this)); + program_space().install_read_handler(0x5000, 0x57ff, read8_delegate(*this, FUNC(vtech_rtty_interface_device::receive_data_r))); + program_space().install_write_handler(0x5800, 0x5fff, write8_delegate(*this, FUNC(vtech_rtty_interface_device::transmit_data_w))); + program_space().install_write_handler(0x6000, 0x67ff, write8_delegate(*this, FUNC(vtech_rtty_interface_device::relay_w))); } diff --git a/src/devices/bus/wangpc/lvc.cpp b/src/devices/bus/wangpc/lvc.cpp index 9f6a8d59626..4d31a7b9367 100644 --- a/src/devices/bus/wangpc/lvc.cpp +++ b/src/devices/bus/wangpc/lvc.cpp @@ -129,7 +129,7 @@ void wangpc_lvc_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(8); - m_crtc->set_update_row_callback(FUNC(wangpc_lvc_device::crtc_update_row), this); + m_crtc->set_update_row_callback(FUNC(wangpc_lvc_device::crtc_update_row)); m_crtc->out_vsync_callback().set(FUNC(wangpc_lvc_device::vsync_w)); } diff --git a/src/devices/bus/wangpc/mvc.cpp b/src/devices/bus/wangpc/mvc.cpp index af78d16cc29..562e277f982 100644 --- a/src/devices/bus/wangpc/mvc.cpp +++ b/src/devices/bus/wangpc/mvc.cpp @@ -149,7 +149,7 @@ void wangpc_mvc_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(10); - m_crtc->set_update_row_callback(FUNC(wangpc_mvc_device::crtc_update_row), this); + m_crtc->set_update_row_callback(FUNC(wangpc_mvc_device::crtc_update_row)); m_crtc->out_vsync_callback().set(FUNC(wangpc_mvc_device::vsync_w)); } diff --git a/src/devices/bus/x68k/x68k_midi.cpp b/src/devices/bus/x68k/x68k_midi.cpp index 011fe5f734f..e4e639fff04 100644 --- a/src/devices/bus/x68k/x68k_midi.cpp +++ b/src/devices/bus/x68k/x68k_midi.cpp @@ -40,7 +40,7 @@ x68k_midi_device::x68k_midi_device(const machine_config &mconfig, const char *ta void x68k_midi_device::device_start() { m_slot = dynamic_cast(owner()); - m_slot->space().install_readwrite_handler(0xeafa00,0xeafa0f,read8_delegate(FUNC(x68k_midi_device::x68k_midi_reg_r),this),write8_delegate(FUNC(x68k_midi_device::x68k_midi_reg_w),this),0x00ff00ff); + m_slot->space().install_readwrite_handler(0xeafa00,0xeafa0f, read8_delegate(*this, FUNC(x68k_midi_device::x68k_midi_reg_r)), write8_delegate(*this, FUNC(x68k_midi_device::x68k_midi_reg_w)), 0x00ff00ff); } void x68k_midi_device::device_reset() diff --git a/src/devices/bus/x68k/x68k_neptunex.cpp b/src/devices/bus/x68k/x68k_neptunex.cpp index 2bf97fa474d..9cc8c022d23 100644 --- a/src/devices/bus/x68k/x68k_neptunex.cpp +++ b/src/devices/bus/x68k/x68k_neptunex.cpp @@ -47,7 +47,7 @@ void x68k_neptune_device::device_start() mac[0] = 0; mac[1] = 0; // avoid gcc warning memcpy(m_prom, mac, 6); m_dp8390->set_mac(mac); - m_slot->space().install_readwrite_handler(0xece000,0xece3ff,read16_delegate(FUNC(x68k_neptune_device::x68k_neptune_port_r),this),write16_delegate(FUNC(x68k_neptune_device::x68k_neptune_port_w),this),0xffffffff); + m_slot->space().install_readwrite_handler(0xece000,0xece3ff, read16_delegate(*this, FUNC(x68k_neptune_device::x68k_neptune_port_r)), write16_delegate(*this, FUNC(x68k_neptune_device::x68k_neptune_port_w)), 0xffffffff); } void x68k_neptune_device::device_reset() { diff --git a/src/devices/bus/x68k/x68k_scsiext.cpp b/src/devices/bus/x68k/x68k_scsiext.cpp index b4233875f1e..67dffd2e33e 100644 --- a/src/devices/bus/x68k/x68k_scsiext.cpp +++ b/src/devices/bus/x68k/x68k_scsiext.cpp @@ -72,7 +72,7 @@ void x68k_scsiext_device::device_start() uint8_t *ROM = machine().root_device().memregion(subtag("scsiexrom").c_str())->base(); machine().root_device().membank("scsi_ext")->set_base(ROM); -m_slot->space().install_readwrite_handler(0xea0000,0xea001f,read8_delegate(FUNC(x68k_scsiext_device::register_r),this),write8_delegate(FUNC(x68k_scsiext_device::register_w),this),0x00ff00ff); + m_slot->space().install_readwrite_handler(0xea0000,0xea001f, read8_delegate(*this, FUNC(x68k_scsiext_device::register_r)), write8_delegate(*this, FUNC(x68k_scsiext_device::register_w)), 0x00ff00ff); } void x68k_scsiext_device::device_reset() diff --git a/src/devices/cpu/ccpu/ccpu.cpp b/src/devices/cpu/ccpu/ccpu.cpp index 740c803ad44..6afb97916b2 100644 --- a/src/devices/cpu/ccpu/ccpu.cpp +++ b/src/devices/cpu/ccpu/ccpu.cpp @@ -69,6 +69,7 @@ ccpu_cpu_device::ccpu_cpu_device(const machine_config &mconfig, const char *tag, , m_data_config("data", ENDIANNESS_BIG, 16, 32, -1) , m_io_config("io", ENDIANNESS_BIG, 8, 5, 0) , m_external_input(*this) + , m_vector_callback(*this) , m_flags(0) { } @@ -103,7 +104,7 @@ void ccpu_cpu_device::device_start() { /* copy input params */ m_external_input.resolve_safe(0); - m_vector_callback.bind_relative_to(*owner()); + m_vector_callback.resolve(); assert(!m_vector_callback.isnull()); m_program = &space(AS_PROGRAM); diff --git a/src/devices/cpu/ccpu/ccpu.h b/src/devices/cpu/ccpu/ccpu.h index c42687aaa0c..359bac3e4ce 100644 --- a/src/devices/cpu/ccpu/ccpu.h +++ b/src/devices/cpu/ccpu/ccpu.h @@ -47,17 +47,7 @@ public: // configuration helpers auto external_func() { return m_external_input.bind(); } - template void set_vector_func(Object &&cb) { m_vector_callback = std::forward(cb); } - void set_vector_func(vector_delegate callback) { m_vector_callback = callback; } - template void set_vector_func(const char *devname, - void (FunctionClass::*callback)(int16_t, int16_t, int16_t, int16_t, uint8_t), const char *name) - { - set_vector_func(vector_delegate(callback, name, devname, static_cast(nullptr))); - } - template void set_vector_func(void (FunctionClass::*callback)(int16_t, int16_t, int16_t, int16_t, uint8_t), const char *name) - { - set_vector_func(vector_delegate(callback, name, nullptr, static_cast(nullptr))); - } + template void set_vector_func(T &&... args) { m_vector_callback.set(std::forward(args)...); } DECLARE_READ8_MEMBER( read_jmi ); void wdt_timer_trigger(); diff --git a/src/devices/cpu/dsp16/dsp16.cpp b/src/devices/cpu/dsp16/dsp16.cpp index 5fbc4c2ad10..a8536761a24 100644 --- a/src/devices/cpu/dsp16/dsp16.cpp +++ b/src/devices/cpu/dsp16/dsp16.cpp @@ -2092,7 +2092,7 @@ void dsp16_device::external_memory_enable(address_space &space, bool enable) // this assumes internal ROM is mirrored above 2KiB, but actual hardware behaviour is unknown space.unmap_read(0x0000, 0xffff); if (enable) - space.install_read_handler(0x0000, 0xffff, read16_delegate(FUNC(dsp16_device::external_memory_r<0x0000>), this)); + space.install_read_handler(0x0000, 0xffff, read16_delegate(*this, FUNC(dsp16_device::external_memory_r<0x0000>))); else space.install_rom(0x0000, 0x07ff, 0xf800, &m_rom[0]); } @@ -2123,12 +2123,12 @@ void dsp16a_device::external_memory_enable(address_space &space, bool enable) space.unmap_read(0x0000, 0xffff); if (enable) { - space.install_read_handler(0x0000, 0xffff, read16_delegate(FUNC(dsp16a_device::external_memory_r<0x0000>), this)); + space.install_read_handler(0x0000, 0xffff, read16_delegate(*this, FUNC(dsp16a_device::external_memory_r<0x0000>))); } else { space.install_rom(0x0000, 0x0fff, &m_rom[0]); - space.install_read_handler(0x1000, 0xffff, read16_delegate(FUNC(dsp16a_device::external_memory_r<0x1000>), this)); + space.install_read_handler(0x1000, 0xffff, read16_delegate(*this, FUNC(dsp16a_device::external_memory_r<0x1000>))); } } diff --git a/src/devices/cpu/e0c6200/e0c6s46.cpp b/src/devices/cpu/e0c6200/e0c6s46.cpp index ce0687b5088..f6788aae67f 100644 --- a/src/devices/cpu/e0c6200/e0c6s46.cpp +++ b/src/devices/cpu/e0c6200/e0c6s46.cpp @@ -51,7 +51,9 @@ void e0c6s46_device::e0c6s46_data(address_map &map) e0c6s46_device::e0c6s46_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) : e0c6200_cpu_device(mconfig, E0C6S46, tag, owner, clock, address_map_constructor(FUNC(e0c6s46_device::e0c6s46_program), this), address_map_constructor(FUNC(e0c6s46_device::e0c6s46_data), this)) , m_vram1(*this, "vram1") - , m_vram2(*this, "vram2"), m_osc(0), m_svd(0), m_lcd_control(0), m_lcd_contrast(0) + , m_vram2(*this, "vram2") + , m_osc(0), m_svd(0), m_lcd_control(0), m_lcd_contrast(0) + , m_pixel_update_cb(*this) , m_write_r{{*this}, {*this}, {*this}, {*this}, {*this}} , m_read_p{{*this}, {*this}, {*this}, {*this}} , m_write_p{{*this}, {*this}, {*this}, {*this}} @@ -83,7 +85,7 @@ void e0c6s46_device::device_start() m_write_p[i].resolve_safe(); } - m_pixel_update_cb.bind_relative_to(*owner()); + m_pixel_update_cb.resolve(); // create timers m_core_256_handle = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(e0c6s46_device::core_256_cb), this)); diff --git a/src/devices/cpu/e0c6200/e0c6s46.h b/src/devices/cpu/e0c6200/e0c6s46.h index e0b9e247d8c..2448654d948 100644 --- a/src/devices/cpu/e0c6200/e0c6s46.h +++ b/src/devices/cpu/e0c6200/e0c6s46.h @@ -60,17 +60,7 @@ public: template auto read_p() { return m_read_p[Port].bind(); } template auto write_p() { return m_write_p[Port].bind(); } - void set_pixel_update_cb(pixel_update_delegate callback) { m_pixel_update_cb = callback; } - template void set_pixel_update_cb(const char *devname, - void (FunctionClass::*callback)(bitmap_ind16 &, const rectangle &, int, int, int, int), const char *name) - { - set_pixel_update_cb(pixel_update_delegate(callback, name, devname, static_cast(nullptr))); - } - template void set_pixel_update_cb(void (FunctionClass::*callback)(bitmap_ind16 &, const rectangle &, int, int, int, int), - const char *name) - { - set_pixel_update_cb(pixel_update_delegate(callback, name, nullptr, static_cast(nullptr))); - } + template void set_pixel_update_cb(T &&... args) { m_pixel_update_cb.set(std::forward(args)...); } DECLARE_READ8_MEMBER(io_r); DECLARE_WRITE8_MEMBER(io_w); diff --git a/src/devices/cpu/esrip/esrip.cpp b/src/devices/cpu/esrip/esrip.cpp index d3b8b54e225..023d3038670 100644 --- a/src/devices/cpu/esrip/esrip.cpp +++ b/src/devices/cpu/esrip/esrip.cpp @@ -187,7 +187,7 @@ void esrip_device::device_start() m_fdt_w.resolve_safe(); m_lbrm = (uint8_t*)machine().root_device().memregion(m_lbrm_prom)->base(); m_status_in.resolve_safe(0); - m_draw.bind_relative_to(*owner()); + m_draw.resolve(); /* Allocate image pointer table RAM */ m_ipt_ram.resize(IPT_RAM_SIZE/2); @@ -1674,6 +1674,7 @@ esrip_device::esrip_device(const machine_config &mconfig, const char *tag, devic , m_fdt_r(*this) , m_fdt_w(*this) , m_status_in(*this) + , m_draw(*this) , m_screen(*this, finder_base::DUMMY_TAG) , m_lbrm_prom(nullptr) { diff --git a/src/devices/cpu/esrip/esrip.h b/src/devices/cpu/esrip/esrip.h index 2508b11976a..878a9836265 100644 --- a/src/devices/cpu/esrip/esrip.h +++ b/src/devices/cpu/esrip/esrip.h @@ -37,23 +37,13 @@ public: // inline configuration helpers void set_lbrm_prom_region(const char *name) { m_lbrm_prom = name; } template void set_screen_tag(T &&tag) { m_screen.set_tag(std::forward(tag)); } - void set_draw_callback(draw_delegate callback) { m_draw = callback; } - template void set_draw_callback(const char *devname, int (FunctionClass::*callback)(int, int, int, int, int, int, int, int), - const char *name) - { - set_draw_callback(draw_delegate(callback, name, devname, static_cast(nullptr))); - } - template void set_draw_callback(int (FunctionClass::*callback)(int, int, int, int, int, int, int, int), const char *name) - { - set_draw_callback(draw_delegate(callback, name, nullptr, static_cast(nullptr))); - } + template void set_draw_callback(T &&... args) { m_draw.set(std::forward(args)...); } // devcb3 accessors auto fdt_r() { return m_fdt_r.bind(); } auto fdt_w() { return m_fdt_w.bind(); } auto status_in() { return m_status_in.bind(); } - // public interfaces uint8_t get_rip_status(); diff --git a/src/devices/cpu/g65816/g65816.cpp b/src/devices/cpu/g65816/g65816.cpp index eb46c11242d..f5a4bc4c9ca 100644 --- a/src/devices/cpu/g65816/g65816.cpp +++ b/src/devices/cpu/g65816/g65816.cpp @@ -1155,21 +1155,16 @@ READ8_MEMBER( _5a22_device::rdmpyh_r ) void _5a22_device::set_5a22_map() { - space(AS_PROGRAM).install_write_handler(0x4202, 0x4202, 0, 0xbf0000, 0, write8_delegate(FUNC(_5a22_device::wrmpya_w),this)); - space(AS_PROGRAM).install_write_handler(0x4203, 0x4203, 0, 0xbf0000, 0, write8_delegate(FUNC(_5a22_device::wrmpyb_w),this)); - space(AS_PROGRAM).install_write_handler(0x4204, 0x4204, 0, 0xbf0000, 0, write8_delegate(FUNC(_5a22_device::wrdivl_w),this)); - space(AS_PROGRAM).install_write_handler(0x4205, 0x4205, 0, 0xbf0000, 0, write8_delegate(FUNC(_5a22_device::wrdivh_w),this)); - space(AS_PROGRAM).install_write_handler(0x4206, 0x4206, 0, 0xbf0000, 0, write8_delegate(FUNC(_5a22_device::wrdvdd_w),this)); + space(AS_PROGRAM).install_write_handler(0x4202, 0x4202, 0, 0xbf0000, 0, write8_delegate(*this, FUNC(_5a22_device::wrmpya_w))); + space(AS_PROGRAM).install_write_handler(0x4203, 0x4203, 0, 0xbf0000, 0, write8_delegate(*this, FUNC(_5a22_device::wrmpyb_w))); + space(AS_PROGRAM).install_write_handler(0x4204, 0x4204, 0, 0xbf0000, 0, write8_delegate(*this, FUNC(_5a22_device::wrdivl_w))); + space(AS_PROGRAM).install_write_handler(0x4205, 0x4205, 0, 0xbf0000, 0, write8_delegate(*this, FUNC(_5a22_device::wrdivh_w))); + space(AS_PROGRAM).install_write_handler(0x4206, 0x4206, 0, 0xbf0000, 0, write8_delegate(*this, FUNC(_5a22_device::wrdvdd_w))); - space(AS_PROGRAM).install_write_handler(0x420d, 0x420d, 0, 0xbf0000, 0, write8_delegate(FUNC(_5a22_device::memsel_w),this)); + space(AS_PROGRAM).install_write_handler(0x420d, 0x420d, 0, 0xbf0000, 0, write8_delegate(*this, FUNC(_5a22_device::memsel_w))); - space(AS_PROGRAM).install_read_handler(0x4214, 0x4214, 0, 0xbf0000, 0, read8_delegate(FUNC(_5a22_device::rddivl_r),this)); - space(AS_PROGRAM).install_read_handler(0x4215, 0x4215, 0, 0xbf0000, 0, read8_delegate(FUNC(_5a22_device::rddivh_r),this)); - space(AS_PROGRAM).install_read_handler(0x4216, 0x4216, 0, 0xbf0000, 0, read8_delegate(FUNC(_5a22_device::rdmpyl_r),this)); - space(AS_PROGRAM).install_read_handler(0x4217, 0x4217, 0, 0xbf0000, 0, read8_delegate(FUNC(_5a22_device::rdmpyh_r),this)); + space(AS_PROGRAM).install_read_handler(0x4214, 0x4214, 0, 0xbf0000, 0, read8_delegate(*this, FUNC(_5a22_device::rddivl_r))); + space(AS_PROGRAM).install_read_handler(0x4215, 0x4215, 0, 0xbf0000, 0, read8_delegate(*this, FUNC(_5a22_device::rddivh_r))); + space(AS_PROGRAM).install_read_handler(0x4216, 0x4216, 0, 0xbf0000, 0, read8_delegate(*this, FUNC(_5a22_device::rdmpyl_r))); + space(AS_PROGRAM).install_read_handler(0x4217, 0x4217, 0, 0xbf0000, 0, read8_delegate(*this, FUNC(_5a22_device::rdmpyh_r))); } - - -/* ======================================================================== */ -/* ============================== END OF FILE ============================= */ -/* ======================================================================== */ diff --git a/src/devices/cpu/i386/athlon.cpp b/src/devices/cpu/i386/athlon.cpp index 9448bfdd2f1..a391a476e96 100644 --- a/src/devices/cpu/i386/athlon.cpp +++ b/src/devices/cpu/i386/athlon.cpp @@ -31,7 +31,7 @@ void athlonxp_device::device_start() m_data = &space(AS_DATA); m_opcodes = &space(AS_OPCODES); mmacache32 = m_data->cache<2, 0, ENDIANNESS_LITTLE>(); - m_opcodes->install_read_handler(0, 0xffffffff, read32_delegate(FUNC(athlonxp_device::debug_read_memory), this)); + m_opcodes->install_read_handler(0, 0xffffffff, read32_delegate(*this, FUNC(athlonxp_device::debug_read_memory))); build_x87_opcode_table(); build_opcode_table(OP_I386 | OP_FPU | OP_I486 | OP_PENTIUM | OP_PPRO | OP_MMX | OP_SSE); diff --git a/src/devices/cpu/i8085/i8085.cpp b/src/devices/cpu/i8085/i8085.cpp index 0e2bfeaecd1..a0f58190824 100644 --- a/src/devices/cpu/i8085/i8085.cpp +++ b/src/devices/cpu/i8085/i8085.cpp @@ -216,6 +216,7 @@ i8085a_cpu_device::i8085a_cpu_device(const machine_config &mconfig, device_type , m_out_inte_func(*this) , m_in_sid_func(*this) , m_out_sod_func(*this) + , m_clk_out_func(*this) , m_cputype(cputype) { } @@ -245,7 +246,7 @@ device_memory_interface::space_config_vector i8085a_cpu_device::memory_space_con void i8085a_cpu_device::device_config_complete() { - m_clk_out_func.bind_relative_to(*owner()); + m_clk_out_func.resolve(); if (!m_clk_out_func.isnull()) m_clk_out_func(clock() / 2); } diff --git a/src/devices/cpu/i8085/i8085.h b/src/devices/cpu/i8085/i8085.h index fd8628961d7..5dac2de7f75 100644 --- a/src/devices/cpu/i8085/i8085.h +++ b/src/devices/cpu/i8085/i8085.h @@ -43,15 +43,7 @@ public: i8085a_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); // CLK rate callback (8085A only) - void set_clk_out(clock_update_delegate callback) { m_clk_out_func = callback; } - template void set_clk_out(const char *devname, void (FunctionClass::*callback)(uint32_t), const char *name) - { - set_clk_out(clock_update_delegate(callback, name, devname, static_cast(nullptr))); - } - template void set_clk_out(void (FunctionClass::*callback)(uint32_t), const char *name) - { - set_clk_out(clock_update_delegate(callback, name, nullptr, static_cast(nullptr))); - } + template void set_clk_out(T &&... args) { m_clk_out_func.set(std::forward(args)...); } // STATUS changed callback auto out_status_func() { return m_out_status_func.bind(); } diff --git a/src/devices/cpu/i86/i186.cpp b/src/devices/cpu/i86/i186.cpp index 4145ceb06b4..3a700aded9d 100644 --- a/src/devices/cpu/i86/i186.cpp +++ b/src/devices/cpu/i86/i186.cpp @@ -125,14 +125,14 @@ i80188_cpu_device::i80188_cpu_device(const machine_config &mconfig, const char * : i80186_cpu_device(mconfig, I80188, tag, owner, clock, 8) { memcpy(m_timing, m_i80186_timing, sizeof(m_i80186_timing)); - set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(i80186_cpu_device::int_callback), this)); + set_irq_acknowledge_callback(*this, FUNC(i80186_cpu_device::int_callback)); } i80186_cpu_device::i80186_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : i80186_cpu_device(mconfig, I80186, tag, owner, clock, 16) { memcpy(m_timing, m_i80186_timing, sizeof(m_i80186_timing)); - set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(i80186_cpu_device::int_callback), this)); + set_irq_acknowledge_callback(*this, FUNC(i80186_cpu_device::int_callback)); } i80186_cpu_device::i80186_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int data_bus_size) diff --git a/src/devices/cpu/lc8670/lc8670.cpp b/src/devices/cpu/lc8670/lc8670.cpp index 325c93eadff..b35a25329bd 100644 --- a/src/devices/cpu/lc8670/lc8670.cpp +++ b/src/devices/cpu/lc8670/lc8670.cpp @@ -180,6 +180,7 @@ lc8670_cpu_device::lc8670_cpu_device(const machine_config &mconfig, const char * , m_pc(0) , m_ppc(0) , m_bankswitch_func(*this) + , m_lcd_update_func(*this) { memset(m_sfr, 0x00, sizeof(m_sfr)); memset(m_timer0, 0x00, sizeof(m_timer0)); @@ -202,8 +203,8 @@ void lc8670_cpu_device::device_start() set_icountptr(m_icount); // resolve callbacks - m_lcd_update_func.bind_relative_to(*owner()); m_bankswitch_func.resolve(); + m_lcd_update_func.resolve(); // setup timers m_basetimer = timer_alloc(BASE_TIMER); diff --git a/src/devices/cpu/lc8670/lc8670.h b/src/devices/cpu/lc8670/lc8670.h index 82b78fee058..f4845bf0cf9 100644 --- a/src/devices/cpu/lc8670/lc8670.h +++ b/src/devices/cpu/lc8670/lc8670.h @@ -80,18 +80,7 @@ public: auto bank_cb() { return m_bankswitch_func.bind(); } - template void set_lcd_update_cb(Object &&cb) { m_lcd_update_func = std::forward(cb); } - void set_lcd_update_cb(lcd_update_delegate callback) { m_lcd_update_func = callback; } - template void set_lcd_update_cb(const char *devname, - uint32_t (FunctionClass::*callback)(bitmap_ind16 &, const rectangle &, uint8_t*, bool, uint8_t), const char *name) - { - set_lcd_update_cb(lcd_update_delegate(callback, name, devname, static_cast(nullptr))); - } - template void set_lcd_update_cb( - uint32_t (FunctionClass::*callback)(bitmap_ind16 &, const rectangle &, uint8_t*, bool, uint8_t), const char *name) - { - set_lcd_update_cb(lcd_update_delegate(callback, name, nullptr, static_cast(nullptr))); - } + template void set_lcd_update_cb(T &&... args) { m_lcd_update_func.set(std::forward(args)...); } void lc8670_internal_map(address_map &map); protected: diff --git a/src/devices/cpu/m6502/xavix.cpp b/src/devices/cpu/m6502/xavix.cpp index 522d9374b5f..de7726d7239 100644 --- a/src/devices/cpu/m6502/xavix.cpp +++ b/src/devices/cpu/m6502/xavix.cpp @@ -34,28 +34,16 @@ DEFINE_DEVICE_TYPE(XAVIX, xavix_device, "xavix", "XaviX (SSD 97 / SSD 98)") xavix_device::xavix_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - m6502_device(mconfig, XAVIX, tag, owner, clock), - XPC(0), - m_lowbus_config("lowbus", ENDIANNESS_LITTLE, 8, 15), - m_extbus_config("extbus", ENDIANNESS_LITTLE, 8, 24) + xavix_device(mconfig, XAVIX, tag, owner, clock) { - program_config.m_addr_width = 24; - program_config.m_logaddr_width = 24; - sprogram_config.m_addr_width = 24; - sprogram_config.m_logaddr_width = 24; - // XaviX specific spaces - m_lowbus_config.m_addr_width = 15; - m_lowbus_config.m_logaddr_width = 15; - m_extbus_config.m_addr_width = 24; - m_extbus_config.m_logaddr_width = 24; - } xavix_device::xavix_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : m6502_device(mconfig, type, tag, owner, clock), XPC(0), m_lowbus_config("lowbus", ENDIANNESS_LITTLE, 8, 15), - m_extbus_config("extbus", ENDIANNESS_LITTLE, 8, 24) + m_extbus_config("extbus", ENDIANNESS_LITTLE, 8, 24), + m_vector_callback(*this) { program_config.m_addr_width = 24; program_config.m_logaddr_width = 24; @@ -89,7 +77,7 @@ void xavix_device::device_start() mintf = std::make_unique(this); // bind delegates - m_vector_callback.bind_relative_to(*owner()); + m_vector_callback.resolve(); init(); diff --git a/src/devices/cpu/m6502/xavix.h b/src/devices/cpu/m6502/xavix.h index 89f97f574bd..240730f46f3 100644 --- a/src/devices/cpu/m6502/xavix.h +++ b/src/devices/cpu/m6502/xavix.h @@ -135,22 +135,11 @@ public: - typedef device_delegate xavix_interrupt_vector_delegate; - - template void set_vector_callback(Object &&cb) { m_vector_callback = std::forward(cb); } - void set_vector_callback(xavix_interrupt_vector_delegate callback) { m_vector_callback = callback; } - template void set_vector_callback(const char *devname, int16_t (FunctionClass::*callback)(int, int), const char *name) - { - set_vector_callback(xavix_interrupt_vector_delegate(callback, name, devname, static_cast(nullptr))); - } - template void set_vector_callback(int16_t (FunctionClass::*callback)(int, int), const char *name) - { - set_vector_callback(xavix_interrupt_vector_delegate(callback, name, nullptr, static_cast(nullptr))); - } - - #undef O + typedef device_delegate xavix_interrupt_vector_delegate; + + template void set_vector_callback(T &&... args) { m_vector_callback.set(std::forward(args)...); } uint8_t read_full_data(uint8_t databank, uint16_t addr); uint8_t read_full_data(uint32_t addr); diff --git a/src/devices/cpu/m68000/m68000.h b/src/devices/cpu/m68000/m68000.h index ed730d93b24..13db7934454 100644 --- a/src/devices/cpu/m68000/m68000.h +++ b/src/devices/cpu/m68000/m68000.h @@ -159,10 +159,10 @@ protected: void define_state(void); public: - void set_reset_callback(write_line_delegate callback); - void set_cmpild_callback(write32_delegate callback); - void set_rte_callback(write_line_delegate callback); - void set_tas_write_callback(write8_delegate callback); + template void set_reset_callback(T &&... args) { m_reset_instr_callback.set(std::forward(args)...); } + template void set_cmpild_callback(T &&... args) { m_cmpild_instr_callback.set(std::forward(args)...); } + template void set_rte_callback(T &&... args) { m_rte_instr_callback.set(std::forward(args)...); } + template void set_tas_write_callback(T &&... args) { m_tas_write_callback.set(std::forward(args)...); } u16 get_fc(); void set_hmmu_enable(int enable); int get_pmmu_enable() {return m_pmmu_enabled;}; diff --git a/src/devices/cpu/m68000/m68kcpu.cpp b/src/devices/cpu/m68000/m68kcpu.cpp index 896a046cd77..f4a4583e604 100644 --- a/src/devices/cpu/m68000/m68kcpu.cpp +++ b/src/devices/cpu/m68000/m68kcpu.cpp @@ -1652,11 +1652,6 @@ void m68000_base_device::init32hmmu(address_space &space, address_space &ospace) }; } -void m68000_base_device::set_reset_callback(write_line_delegate callback) -{ - m_reset_instr_callback = callback; -} - // fault_addr = address to indicate fault at // rw = 1 for read, 0 for write // fc = 3-bit function code of access (usually you'd just put what m68k_get_fc() returns here) @@ -1668,21 +1663,6 @@ void m68000_base_device::set_buserror_details(u32 fault_addr, u8 rw, u8 fc) m_mmu_tmp_buserror_address = fault_addr; // Hack for x68030 } -void m68000_base_device::set_cmpild_callback(write32_delegate callback) -{ - m_cmpild_instr_callback = callback; -} - -void m68000_base_device::set_rte_callback(write_line_delegate callback) -{ - m_rte_instr_callback = callback; -} - -void m68000_base_device::set_tas_write_callback(write8_delegate callback) -{ - m_tas_write_callback = callback; -} - u16 m68000_base_device::get_fc() { return m_mmu_tmp_fc; @@ -2342,7 +2322,11 @@ m68000_base_device::m68000_base_device(const machine_config &mconfig, const char m_oprogram_config("decrypted_opcodes", ENDIANNESS_BIG, prg_data_width, prg_address_bits, 0, internal_map), m_cpu_space_config("cpu space", ENDIANNESS_BIG, prg_data_width, prg_address_bits, 0, address_map_constructor(FUNC(m68000_base_device::default_autovectors_map), this)), m_interrupt_mixer(true), - m_cpu_space_id(AS_CPU_SPACE) + m_cpu_space_id(AS_CPU_SPACE), + m_reset_instr_callback(*this), + m_cmpild_instr_callback(*this), + m_rte_instr_callback(*this), + m_tas_write_callback(*this) { clear_all(); } @@ -2355,7 +2339,11 @@ m68000_base_device::m68000_base_device(const machine_config &mconfig, const char m_oprogram_config("decrypted_opcodes", ENDIANNESS_BIG, prg_data_width, prg_address_bits), m_cpu_space_config("cpu space", ENDIANNESS_BIG, prg_data_width, prg_address_bits, 0, address_map_constructor(FUNC(m68000_base_device::default_autovectors_map), this)), m_interrupt_mixer(true), - m_cpu_space_id(AS_CPU_SPACE) + m_cpu_space_id(AS_CPU_SPACE), + m_reset_instr_callback(*this), + m_cmpild_instr_callback(*this), + m_rte_instr_callback(*this), + m_tas_write_callback(*this) { clear_all(); } @@ -2480,13 +2468,13 @@ void m68000_base_device::autovectors_map(address_map &map) { // Eventually add the sync to E due to vpa // 8-bit handlers are used here to be compatible with all bus widths - map(0x3, 0x3).lr8("avec1", []() -> u8 { return autovector(1); }); - map(0x5, 0x5).lr8("avec2", []() -> u8 { return autovector(2); }); - map(0x7, 0x7).lr8("avec3", []() -> u8 { return autovector(3); }); - map(0x9, 0x9).lr8("avec4", []() -> u8 { return autovector(4); }); - map(0xb, 0xb).lr8("avec5", []() -> u8 { return autovector(5); }); - map(0xd, 0xd).lr8("avec6", []() -> u8 { return autovector(6); }); - map(0xf, 0xf).lr8("avec7", []() -> u8 { return autovector(7); }); + map(0x3, 0x3).lr8(NAME([] () -> u8 { return autovector(1); })); + map(0x5, 0x5).lr8(NAME([] () -> u8 { return autovector(2); })); + map(0x7, 0x7).lr8(NAME([] () -> u8 { return autovector(3); })); + map(0x9, 0x9).lr8(NAME([] () -> u8 { return autovector(4); })); + map(0xb, 0xb).lr8(NAME([] () -> u8 { return autovector(5); })); + map(0xd, 0xd).lr8(NAME([] () -> u8 { return autovector(6); })); + map(0xf, 0xf).lr8(NAME([] () -> u8 { return autovector(7); })); } void m68000_base_device::default_autovectors_map(address_map &map) @@ -2499,6 +2487,10 @@ void m68000_base_device::default_autovectors_map(address_map &map) void m68000_base_device::device_start() { + m_reset_instr_callback.resolve(); + m_cmpild_instr_callback.resolve(); + m_rte_instr_callback.resolve(); + m_tas_write_callback.resolve(); } void m68000_base_device::device_stop() diff --git a/src/devices/cpu/m6805/m68705.cpp b/src/devices/cpu/m6805/m68705.cpp index 450c7583c63..84b24978430 100644 --- a/src/devices/cpu/m6805/m68705.cpp +++ b/src/devices/cpu/m6805/m68705.cpp @@ -836,8 +836,8 @@ void m6805_hmos_device::internal_map(address_map &map) map(0x0005, 0x0005).w(FUNC(m6805_hmos_device::port_ddr_w<1>)); map(0x0006, 0x0006).w(FUNC(m6805_hmos_device::port_ddr_w<2>)); - map(0x0008, 0x0008).lrw8("tdr", [this]() { return m_timer.tdr_r(); }, [this](u8 data) { m_timer.tdr_w(data); }); - map(0x0009, 0x0009).lrw8("tcr", [this]() { return m_timer.tcr_r(); }, [this](u8 data) { m_timer.tcr_w(data); }); + map(0x0008, 0x0008).lrw8(NAME([this]() { return m_timer.tdr_r(); }), NAME([this](u8 data) { m_timer.tdr_w(data); })); + map(0x0009, 0x0009).lrw8(NAME([this]() { return m_timer.tcr_r(); }), NAME([this](u8 data) { m_timer.tcr_w(data); })); // M68?05Px devices don't have Port D or the Miscellaneous register if (m_port_mask[3] != 0xff) diff --git a/src/devices/cpu/mcs40/mcs40.cpp b/src/devices/cpu/mcs40/mcs40.cpp index fa70e9d389e..25d99c89835 100644 --- a/src/devices/cpu/mcs40/mcs40.cpp +++ b/src/devices/cpu/mcs40/mcs40.cpp @@ -103,7 +103,7 @@ mcs40_cpu_device_base::mcs40_cpu_device_base( { "program", ENDIANNESS_LITTLE, 8, u8(rom_width - 3), 0 }, } , m_spaces{ nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr } , m_cache(nullptr) - , m_bus_cycle_cb() + , m_bus_cycle_cb(*this) , m_sync_cb(*this) , m_cm_rom_cb{ { *this }, { *this } } , m_cm_ram_cb{ { *this }, { *this }, { *this }, { *this }, } @@ -144,7 +144,7 @@ void mcs40_cpu_device_base::device_start() m_spaces[AS_PROGRAM_MEMORY] = &space(AS_PROGRAM_MEMORY); m_cache = m_spaces[AS_ROM]->cache<0, 0, ENDIANNESS_LITTLE>(); - m_bus_cycle_cb.bind_relative_to(*owner()); + m_bus_cycle_cb.resolve(); m_sync_cb.resolve_safe(); m_cm_rom_cb[0].resolve_safe(); m_cm_rom_cb[1].resolve_safe(); diff --git a/src/devices/cpu/mcs40/mcs40.h b/src/devices/cpu/mcs40/mcs40.h index d8ca4059631..3dd82db95bc 100644 --- a/src/devices/cpu/mcs40/mcs40.h +++ b/src/devices/cpu/mcs40/mcs40.h @@ -51,7 +51,7 @@ public: template void set_ram_status_map(T &&... args) { set_addrmap(AS_RAM_STATUS, std::forward(args)...); } template void set_ram_ports_map(T &&... args) { set_addrmap(AS_RAM_PORTS, std::forward(args)...); } template void set_program_memory_map(T &&... args) { set_addrmap(AS_PROGRAM_MEMORY, std::forward(args)...); } - template void set_bus_cycle_cb(T &&... args) { m_bus_cycle_cb = bus_cycle_delegate(std::forward(args)...); } + template void set_bus_cycle_cb(T &&... args) { m_bus_cycle_cb.set(std::forward(args)...); } auto i4289_pm_cb() { return m_4289_pm_cb.bind(); } auto i4289_f_l_cb() { return m_4289_f_l_cb.bind(); } diff --git a/src/devices/cpu/mcs48/mcs48.cpp b/src/devices/cpu/mcs48/mcs48.cpp index afc71fbf651..3c41c8af987 100644 --- a/src/devices/cpu/mcs48/mcs48.cpp +++ b/src/devices/cpu/mcs48/mcs48.cpp @@ -223,7 +223,7 @@ mcs48_cpu_device::mcs48_cpu_device(const machine_config &mconfig, device_type ty , m_bus_in_cb(*this) , m_bus_out_cb(*this) , m_test_in_cb{{*this}, {*this}} - , m_t0_clk_func() + , m_t0_clk_func(*this) , m_prog_out_cb(*this) , m_psw(0) , m_dataptr(*this, "data") @@ -1085,7 +1085,7 @@ const mcs48_cpu_device::mcs48_ophandler mcs48_cpu_device::s_i8022_opcodes[256] = void mcs48_cpu_device::device_config_complete() { - m_t0_clk_func.bind_relative_to(*owner()); + m_t0_clk_func.resolve(); if (!m_t0_clk_func.isnull()) m_t0_clk_func(clock() / 3); } diff --git a/src/devices/cpu/mcs48/mcs48.h b/src/devices/cpu/mcs48/mcs48.h index dc3749f99b0..3fc45cbfac3 100644 --- a/src/devices/cpu/mcs48/mcs48.h +++ b/src/devices/cpu/mcs48/mcs48.h @@ -137,15 +137,8 @@ public: void program_11bit(address_map &map); void program_12bit(address_map &map); - void set_t0_clk_cb(clock_update_delegate callback) { m_t0_clk_func = callback; } - template void set_t0_clk_cb(const char *devname, void (FunctionClass::*callback)(uint32_t), const char *name) - { - set_t0_clk_cb(clock_update_delegate(callback, name, devname, static_cast(nullptr))); - } - template void set_t0_clk_cb(void (FunctionClass::*callback)(uint32_t), const char *name) - { - set_t0_clk_cb(clock_update_delegate(callback, name, nullptr, static_cast(nullptr))); - } + template void set_t0_clk_cb(T &&... args) { m_t0_clk_func.set(std::forward(args)...); } + protected: typedef int (mcs48_cpu_device::*mcs48_ophandler)(); diff --git a/src/devices/cpu/mcs96/i8x9x.cpp b/src/devices/cpu/mcs96/i8x9x.cpp index b550c422642..a0b53ac7272 100644 --- a/src/devices/cpu/mcs96/i8x9x.cpp +++ b/src/devices/cpu/mcs96/i8x9x.cpp @@ -170,7 +170,7 @@ void i8x9x_device::serial_send_done() void i8x9x_device::internal_regs(address_map &map) { - map(0x00, 0x01).lr16("r0", []() -> u16 { return 0; }).nopw(); + map(0x00, 0x01).lr16([] () -> u16 { return 0; }, "r0").nopw(); map(0x02, 0x03).r(FUNC(i8x9x_device::ad_result_r)); // 8-bit access map(0x02, 0x02).w(FUNC(i8x9x_device::ad_command_w)); map(0x03, 0x03).w(FUNC(i8x9x_device::hsi_mode_w)); diff --git a/src/devices/cpu/mcs96/i8xc196.cpp b/src/devices/cpu/mcs96/i8xc196.cpp index 3a9e657baa2..dd10d5a6b60 100644 --- a/src/devices/cpu/mcs96/i8xc196.cpp +++ b/src/devices/cpu/mcs96/i8xc196.cpp @@ -24,7 +24,7 @@ std::unique_ptr i8xc196_device::create_disassembler() void i8xc196_device::internal_regs(address_map &map) { - map(0x00, 0x01).lr16("r0", []() -> u16 { return 0; }).nopw(); + map(0x00, 0x01).lr16([] () -> u16 { return 0; }, "r0").nopw(); map(0x08, 0x08).rw(FUNC(i8xc196_device::int_mask_r), FUNC(i8xc196_device::int_mask_w)); map(0x09, 0x09).rw(FUNC(i8xc196_device::int_pending_r), FUNC(i8xc196_device::int_pending_w)); map(0x18, 0xff).ram().share("register_file"); diff --git a/src/devices/cpu/nec/v5x.cpp b/src/devices/cpu/nec/v5x.cpp index 2a4414e3710..cf119d7b87a 100644 --- a/src/devices/cpu/nec/v5x.cpp +++ b/src/devices/cpu/nec/v5x.cpp @@ -194,7 +194,7 @@ void v50_base_device::device_start() { nec_common_device::device_start(); - set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(v5x_icu_device::inta_cb), m_icu.target())); + set_irq_acknowledge_callback(*m_icu, FUNC(v5x_icu_device::inta_cb)); save_item(NAME(m_OPCN)); } @@ -209,8 +209,8 @@ void v40_device::install_peripheral_io() u16 const base = ((m_OPHA << 8) | m_DULA) & 0xfff0; space(AS_IO).install_readwrite_handler(base + 0x00, base + 0x0f, - read8sm_delegate(FUNC(v5x_dmau_device::read), m_dmau.target()), - write8sm_delegate(FUNC(v5x_dmau_device::write), m_dmau.target())); + read8sm_delegate(*m_dmau, FUNC(v5x_dmau_device::read)), + write8sm_delegate(*m_dmau, FUNC(v5x_dmau_device::write))); } if (m_OPSEL & OPSEL_IS) @@ -218,8 +218,8 @@ void v40_device::install_peripheral_io() u16 const base = ((m_OPHA << 8) | m_IULA) & 0xfff0; space(AS_IO).install_readwrite_handler(base + 0x00, base + 0x01, - read8sm_delegate(FUNC(v5x_icu_device::read), m_icu.target()), - write8sm_delegate(FUNC(v5x_icu_device::write), m_icu.target())); + read8sm_delegate(*m_icu, FUNC(v5x_icu_device::read)), + write8sm_delegate(*m_icu, FUNC(v5x_icu_device::write))); } if (m_OPSEL & OPSEL_TS) @@ -227,8 +227,8 @@ void v40_device::install_peripheral_io() u16 const base = ((m_OPHA << 8) | m_TULA) & 0xfff0; space(AS_IO).install_readwrite_handler(base + 0x00, base + 0x03, - read8sm_delegate(FUNC(pit8253_device::read), m_tcu.target()), - write8sm_delegate(FUNC(pit8253_device::write), m_tcu.target())); + read8sm_delegate(*m_tcu, FUNC(pit8253_device::read)), + write8sm_delegate(*m_tcu, FUNC(pit8253_device::write))); } if (m_OPSEL & OPSEL_SS) @@ -236,8 +236,8 @@ void v40_device::install_peripheral_io() u16 const base = ((m_OPHA << 8) | m_SULA) & 0xfff0; space(AS_IO).install_readwrite_handler(base + 0x00, base + 0x03, - read8sm_delegate(FUNC(v5x_scu_device::read), m_scu.target()), - write8sm_delegate(FUNC(v5x_scu_device::write), m_scu.target())); + read8sm_delegate(*m_scu, FUNC(v5x_scu_device::read)), + write8sm_delegate(*m_scu, FUNC(v5x_scu_device::write))); } } @@ -251,8 +251,8 @@ void v50_device::install_peripheral_io() u16 const base = ((m_OPHA << 8) | m_DULA) & 0xfffe; space(AS_IO).install_readwrite_handler(base + 0x00, base + 0x0f, - read8sm_delegate(FUNC(v5x_dmau_device::read), m_dmau.target()), - write8sm_delegate(FUNC(v5x_dmau_device::write), m_dmau.target()), 0xffff); + read8sm_delegate(*m_dmau, FUNC(v5x_dmau_device::read)), + write8sm_delegate(*m_dmau, FUNC(v5x_dmau_device::write)), 0xffff); } if (m_OPSEL & OPSEL_IS) @@ -260,8 +260,8 @@ void v50_device::install_peripheral_io() u16 const base = ((m_OPHA << 8) | m_IULA) & 0xfffe; space(AS_IO).install_readwrite_handler(base + 0x00, base + 0x03, - read8sm_delegate(FUNC(v5x_icu_device::read), m_icu.target()), - write8sm_delegate(FUNC(v5x_icu_device::write), m_icu.target()), 0x00ff); + read8sm_delegate(*m_icu, FUNC(v5x_icu_device::read)), + write8sm_delegate(*m_icu, FUNC(v5x_icu_device::write)), 0x00ff); } if (m_OPSEL & OPSEL_TS) @@ -269,8 +269,8 @@ void v50_device::install_peripheral_io() u16 const base = ((m_OPHA << 8) | m_TULA) & 0xfffe; space(AS_IO).install_readwrite_handler(base + 0x00, base + 0x07, - read8sm_delegate(FUNC(pit8253_device::read), m_tcu.target()), - write8sm_delegate(FUNC(pit8253_device::write), m_tcu.target()), 0x00ff); + read8sm_delegate(*m_tcu, FUNC(pit8253_device::read)), + write8sm_delegate(*m_tcu, FUNC(pit8253_device::write)), 0x00ff); } if (m_OPSEL & OPSEL_SS) @@ -278,8 +278,8 @@ void v50_device::install_peripheral_io() u16 const base = ((m_OPHA << 8) | m_SULA) & 0xfffe; space(AS_IO).install_readwrite_handler(base + 0x00, base + 0x07, - read8sm_delegate(FUNC(v5x_scu_device::read), m_scu.target()), - write8sm_delegate(FUNC(v5x_scu_device::write), m_scu.target()), 0x00ff); + read8sm_delegate(*m_scu, FUNC(v5x_scu_device::read)), + write8sm_delegate(*m_scu, FUNC(v5x_scu_device::write)), 0x00ff); } } @@ -359,7 +359,7 @@ void v53_device::device_start() { v33_base_device::device_start(); - set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(v5x_icu_device::inta_cb), m_icu.target())); + set_irq_acknowledge_callback(*m_icu, FUNC(v5x_icu_device::inta_cb)); save_item(NAME(m_SCTL)); } @@ -390,8 +390,8 @@ void v53_device::install_peripheral_io() } else // uPD71071 mode space(AS_IO).install_readwrite_handler(base + 0x00, base + 0x0f, - read8sm_delegate(FUNC(v5x_dmau_device::read), m_dmau.target()), - write8sm_delegate(FUNC(v5x_dmau_device::write), m_dmau.target()), 0xffff); + read8sm_delegate(*m_dmau, FUNC(v5x_dmau_device::read)), + write8sm_delegate(*m_dmau, FUNC(v5x_dmau_device::write)), 0xffff); } if (m_OPSEL & OPSEL_IS) @@ -400,12 +400,12 @@ void v53_device::install_peripheral_io() if (IOAG) // 8-bit space(AS_IO).install_readwrite_handler(base + 0x00, base + 0x01, - read8sm_delegate(FUNC(v5x_icu_device::read), m_icu.target()), - write8sm_delegate(FUNC(v5x_icu_device::write), m_icu.target()), 0xffff); + read8sm_delegate(*m_icu, FUNC(v5x_icu_device::read)), + write8sm_delegate(*m_icu, FUNC(v5x_icu_device::write)), 0xffff); else space(AS_IO).install_readwrite_handler(base + 0x00, base + 0x03, - read8sm_delegate(FUNC(v5x_icu_device::read), m_icu.target()), - write8sm_delegate(FUNC(v5x_icu_device::write), m_icu.target()), 0x00ff); + read8sm_delegate(*m_icu, FUNC(v5x_icu_device::read)), + write8sm_delegate(*m_icu, FUNC(v5x_icu_device::write)), 0x00ff); } if (m_OPSEL & OPSEL_TS) @@ -414,12 +414,12 @@ void v53_device::install_peripheral_io() if (IOAG) // 8-bit space(AS_IO).install_readwrite_handler(base + 0x00, base + 0x03, - read8sm_delegate(FUNC(pit8253_device::read), m_tcu.target()), - write8sm_delegate(FUNC(pit8253_device::write), m_tcu.target()), 0xffff); + read8sm_delegate(*m_tcu, FUNC(pit8253_device::read)), + write8sm_delegate(*m_tcu, FUNC(pit8253_device::write)), 0xffff); else space(AS_IO).install_readwrite_handler(base + 0x00, base + 0x07, - read8sm_delegate(FUNC(pit8253_device::read), m_tcu.target()), - write8sm_delegate(FUNC(pit8253_device::write), m_tcu.target()), 0x00ff); + read8sm_delegate(*m_tcu, FUNC(pit8253_device::read)), + write8sm_delegate(*m_tcu, FUNC(pit8253_device::write)), 0x00ff); } if (m_OPSEL & OPSEL_SS) @@ -428,12 +428,12 @@ void v53_device::install_peripheral_io() if (IOAG) // 8-bit space(AS_IO).install_readwrite_handler(base + 0x00, base + 0x03, - read8sm_delegate(FUNC(v5x_scu_device::read), m_scu.target()), - write8sm_delegate(FUNC(v5x_scu_device::write), m_scu.target()), 0xffff); + read8sm_delegate(*m_scu, FUNC(v5x_scu_device::read)), + write8sm_delegate(*m_scu, FUNC(v5x_scu_device::write)), 0xffff); else space(AS_IO).install_readwrite_handler(base + 0x00, base + 0x07, - read8sm_delegate(FUNC(v5x_scu_device::read), m_scu.target()), - write8sm_delegate(FUNC(v5x_scu_device::write), m_scu.target()), 0x00ff); + read8sm_delegate(*m_scu, FUNC(v5x_scu_device::read)), + write8sm_delegate(*m_scu, FUNC(v5x_scu_device::write)), 0x00ff); } } diff --git a/src/devices/cpu/powerpc/ppc.h b/src/devices/cpu/powerpc/ppc.h index 4e4e1e144e2..4c11de761d3 100644 --- a/src/devices/cpu/powerpc/ppc.h +++ b/src/devices/cpu/powerpc/ppc.h @@ -469,6 +469,8 @@ protected: /* PowerPC 4XX-specific serial port state */ struct ppc4xx_spu_state { + ppc4xx_spu_state(device_t &owner) : tx_cb(owner) { } + uint8_t regs[9]; uint8_t txbuf; uint8_t rxbuf; @@ -502,8 +504,8 @@ protected: write32_delegate m_dcstore_cb; - read32_delegate m_ext_dma_read_cb[4]; - write32_delegate m_ext_dma_write_cb[4]; + read32_delegate::array<4> m_ext_dma_read_cb; + write32_delegate::array<4> m_ext_dma_write_cb; /* PowerPC function pointers for memory accesses/exceptions */ #ifdef PPC_H_INCLUDED_FROM_PPC_C diff --git a/src/devices/cpu/powerpc/ppccom.cpp b/src/devices/cpu/powerpc/ppccom.cpp index e0944cb0952..10133d73a01 100644 --- a/src/devices/cpu/powerpc/ppccom.cpp +++ b/src/devices/cpu/powerpc/ppccom.cpp @@ -217,6 +217,12 @@ ppc_device::ppc_device(const machine_config &mconfig, device_type type, const ch , m_flavor(flavor) , m_cap(cap) , m_tb_divisor(tb_divisor) + , m_spu(*this) + , m_dcr_read_func(*this) + , m_dcr_write_func(*this) + , m_dcstore_cb(*this) + , m_ext_dma_read_cb(*this) + , m_ext_dma_write_cb(*this) , m_cache(CACHE_SIZE + sizeof(internal_ppc_state)) , m_drcuml(nullptr) , m_drcfe(nullptr) @@ -740,8 +746,8 @@ void ppc_device::device_start() }; } m_system_clock = c_bus_frequency != 0 ? c_bus_frequency : clock(); - m_dcr_read_func = read32_delegate(); - m_dcr_write_func = write32_delegate(); + m_dcr_read_func.set(nullptr); + m_dcr_write_func.set(nullptr); m_tb_divisor = (m_tb_divisor * clock() + m_system_clock / 2 - 1) / m_system_clock; diff --git a/src/devices/cpu/psx/psx.cpp b/src/devices/cpu/psx/psx.cpp index 171ff14a5bb..741b96934e4 100644 --- a/src/devices/cpu/psx/psx.cpp +++ b/src/devices/cpu/psx/psx.cpp @@ -1338,11 +1338,11 @@ void psxcpu_device::update_scratchpad() { if( ( m_biu & BIU_RAM ) == 0 ) { - m_program->install_readwrite_handler( 0x1f800000, 0x1f8003ff, read32_delegate( FUNC( psxcpu_device::berr_r ), this ), write32_delegate( FUNC( psxcpu_device::berr_w ), this ) ); + m_program->install_readwrite_handler( 0x1f800000, 0x1f8003ff, read32_delegate(*this, FUNC(psxcpu_device::berr_r)), write32_delegate(*this, FUNC(psxcpu_device::berr_w)) ); } else if( ( m_biu & BIU_DS ) == 0 ) { - m_program->install_read_handler( 0x1f800000, 0x1f8003ff, read32_delegate( FUNC( psxcpu_device::berr_r ), this ) ); + m_program->install_read_handler( 0x1f800000, 0x1f8003ff, read32_delegate(*this, FUNC(psxcpu_device::berr_r)) ); m_program->nop_write( 0x1f800000, 0x1f8003ff ); } else @@ -1397,9 +1397,9 @@ void psxcpu_device::update_ram_config() } } - m_program->install_readwrite_handler( 0x00000000 + window_size, 0x1effffff, read32_delegate( FUNC( psxcpu_device::berr_r ), this ), write32_delegate( FUNC( psxcpu_device::berr_w ), this ) ); - m_program->install_readwrite_handler( 0x80000000 + window_size, 0x9effffff, read32_delegate( FUNC( psxcpu_device::berr_r ), this ), write32_delegate( FUNC( psxcpu_device::berr_w ), this ) ); - m_program->install_readwrite_handler( 0xa0000000 + window_size, 0xbeffffff, read32_delegate( FUNC( psxcpu_device::berr_r ), this ), write32_delegate( FUNC( psxcpu_device::berr_w ), this ) ); + m_program->install_readwrite_handler( 0x00000000 + window_size, 0x1effffff, read32_delegate(*this, FUNC(psxcpu_device::berr_r)), write32_delegate(*this, FUNC(psxcpu_device::berr_w)) ); + m_program->install_readwrite_handler( 0x80000000 + window_size, 0x9effffff, read32_delegate(*this, FUNC(psxcpu_device::berr_r)), write32_delegate(*this, FUNC(psxcpu_device::berr_w)) ); + m_program->install_readwrite_handler( 0xa0000000 + window_size, 0xbeffffff, read32_delegate(*this, FUNC(psxcpu_device::berr_r)), write32_delegate(*this, FUNC(psxcpu_device::berr_w)) ); } void psxcpu_device::update_rom_config() @@ -1434,9 +1434,9 @@ void psxcpu_device::update_rom_config() if( window_size < max_window_size && !m_disable_rom_berr) { - m_program->install_readwrite_handler( 0x1fc00000 + window_size, 0x1fffffff, read32_delegate( FUNC( psxcpu_device::berr_r ), this ), write32_delegate( FUNC( psxcpu_device::berr_w ), this ) ); - m_program->install_readwrite_handler( 0x9fc00000 + window_size, 0x9fffffff, read32_delegate( FUNC( psxcpu_device::berr_r ), this ), write32_delegate( FUNC( psxcpu_device::berr_w ), this ) ); - m_program->install_readwrite_handler( 0xbfc00000 + window_size, 0xbfffffff, read32_delegate( FUNC( psxcpu_device::berr_r ), this ), write32_delegate( FUNC( psxcpu_device::berr_w ), this ) ); + m_program->install_readwrite_handler( 0x1fc00000 + window_size, 0x1fffffff, read32_delegate(*this, FUNC(psxcpu_device::berr_r)), write32_delegate(*this, FUNC(psxcpu_device::berr_w)) ); + m_program->install_readwrite_handler( 0x9fc00000 + window_size, 0x9fffffff, read32_delegate(*this, FUNC(psxcpu_device::berr_r)), write32_delegate(*this, FUNC(psxcpu_device::berr_w)) ); + m_program->install_readwrite_handler( 0xbfc00000 + window_size, 0xbfffffff, read32_delegate(*this, FUNC(psxcpu_device::berr_r)), write32_delegate(*this, FUNC(psxcpu_device::berr_w)) ); } } diff --git a/src/devices/cpu/sh/sh2.cpp b/src/devices/cpu/sh/sh2.cpp index 8feb977bbec..b9be01f3c7e 100644 --- a/src/devices/cpu/sh/sh2.cpp +++ b/src/devices/cpu/sh/sh2.cpp @@ -255,6 +255,9 @@ sh2_device::sh2_device(const machine_config &mconfig, device_type type, const ch , m_program_config("program", ENDIANNESS_BIG, 32, addrlines, 0, internal_map) , m_decrypted_program_config("decrypted_opcodes", ENDIANNESS_BIG, 32, addrlines, 0) , m_is_slave(0) + , m_dma_kludge_cb(*this) + , m_dma_fifo_data_available_cb(*this) + , m_ftcsr_read_cb(*this) , m_drcfe(nullptr) , m_debugger_temp(0) { @@ -520,9 +523,9 @@ void sh2_device::device_start() m_dma_current_active_timer[1]->adjust(attotime::never); /* resolve callbacks */ - m_dma_kludge_cb.bind_relative_to(*owner()); - m_dma_fifo_data_available_cb.bind_relative_to(*owner()); - m_ftcsr_read_cb.bind_relative_to(*owner()); + m_dma_kludge_cb.resolve(); + m_dma_fifo_data_available_cb.resolve(); + m_ftcsr_read_cb.resolve(); m_decrypted_program = has_space(AS_OPCODES) ? &space(AS_OPCODES) : &space(AS_PROGRAM); auto cache = m_decrypted_program->cache<2, 0, ENDIANNESS_BIG>(); diff --git a/src/devices/cpu/sh/sh2.h b/src/devices/cpu/sh/sh2.h index 0226c346407..fd4e9c01bcd 100644 --- a/src/devices/cpu/sh/sh2.h +++ b/src/devices/cpu/sh/sh2.h @@ -60,26 +60,11 @@ public: void set_is_slave(int slave) { m_is_slave = slave; } - template void set_dma_kludge_callback(Object &&cb) { m_dma_kludge_cb = std::forward(cb); } - template void set_dma_kludge_callback( - int (FunctionClass::*callback)(uint32_t, uint32_t, uint32_t, int), const char *name) - { - set_dma_kludge_callback(dma_kludge_delegate(callback, name, nullptr, static_cast(nullptr))); - } + template void set_dma_kludge_callback(T &&... args) { m_dma_kludge_cb.set(std::forward(args)...); } - template void set_dma_fifo_data_available_callback(Object &&cb) { m_dma_fifo_data_available_cb = std::forward(cb); } - template void set_dma_fifo_data_available_callback( - int (FunctionClass::*callback)(uint32_t, uint32_t, uint32_t, int), const char *name) - { - set_dma_fifo_data_available_callback(dma_fifo_data_available_delegate(callback, name, nullptr, static_cast(nullptr))); - } - - template void set_ftcsr_read_callback(Object &&cb) { m_ftcsr_read_cb = std::forward(cb); } - template void set_ftcsr_read_callback(void (FunctionClass::*callback)(uint32_t), const char *name) - { - set_ftcsr_read_callback(ftcsr_read_delegate(callback, name, nullptr, static_cast(nullptr))); - } + template void set_dma_fifo_data_available_callback(T &&... args) { m_dma_fifo_data_available_cb.set(std::forward(args)...); } + template void set_ftcsr_read_callback(T &&... args) { m_ftcsr_read_cb.set(std::forward(args)...); } DECLARE_READ32_MEMBER(sh2_internal_a5); diff --git a/src/devices/cpu/tms32082/tms32082.cpp b/src/devices/cpu/tms32082/tms32082.cpp index 3ccebccd923..a14bf89c346 100644 --- a/src/devices/cpu/tms32082/tms32082.cpp +++ b/src/devices/cpu/tms32082/tms32082.cpp @@ -47,6 +47,7 @@ const uint32_t tms32082_mp_device::SHIFT_MASK[] = tms32082_mp_device::tms32082_mp_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : cpu_device(mconfig, TMS32082_MP, tag, owner, clock) , m_program_config("program", ENDIANNESS_BIG, 32, 32, 0, address_map_constructor(FUNC(tms32082_mp_device::mp_internal_map), this)) + , m_cmd_callback(*this) { } @@ -70,11 +71,6 @@ std::unique_ptr tms32082_mp_device::create_disassembler( return std::make_unique(); } -void tms32082_mp_device::set_command_callback(write32_delegate callback) -{ - m_cmd_callback = callback; -} - READ32_MEMBER(tms32082_mp_device::mp_param_r) { @@ -156,6 +152,7 @@ WRITE32_MEMBER(tms32082_mp_device::mp_param_w) void tms32082_mp_device::device_start() { m_program = &space(AS_PROGRAM); + m_cmd_callback.resolve(); save_item(NAME(m_pc)); save_item(NAME(m_fetchpc)); diff --git a/src/devices/cpu/tms32082/tms32082.h b/src/devices/cpu/tms32082/tms32082.h index d281ac0eb78..b2f537f1536 100644 --- a/src/devices/cpu/tms32082/tms32082.h +++ b/src/devices/cpu/tms32082/tms32082.h @@ -71,8 +71,7 @@ public: DECLARE_READ32_MEMBER(mp_param_r); DECLARE_WRITE32_MEMBER(mp_param_w); - void set_command_callback(write32_delegate callback); - + template void set_command_callback(T &&... args) { m_cmd_callback.set(std::forward(args)...); } void mp_internal_map(address_map &map); protected: diff --git a/src/devices/cpu/tms34010/tms34010.cpp b/src/devices/cpu/tms34010/tms34010.cpp index 7b2bc7d30ba..bd039d7e706 100644 --- a/src/devices/cpu/tms34010/tms34010.cpp +++ b/src/devices/cpu/tms34010/tms34010.cpp @@ -88,8 +88,12 @@ tms340x0_device::tms340x0_device(const machine_config &mconfig, device_type type , m_pixperclock(0) , m_scantimer(nullptr) , m_icount(0) + , m_scanline_ind16_cb(*this) + , m_scanline_rgb32_cb(*this) , m_output_int_cb(*this) , m_ioreg_pre_write_cb(*this) + , m_to_shiftreg_cb(*this) + , m_from_shiftreg_cb(*this) { } @@ -629,12 +633,12 @@ void tms340x0_device::check_interrupt() void tms340x0_device::device_start() { - m_scanline_ind16_cb.bind_relative_to(*owner()); - m_scanline_rgb32_cb.bind_relative_to(*owner()); + m_scanline_ind16_cb.resolve(); + m_scanline_rgb32_cb.resolve(); m_output_int_cb.resolve(); m_ioreg_pre_write_cb.resolve(); - m_to_shiftreg_cb.bind_relative_to(*owner()); - m_from_shiftreg_cb.bind_relative_to(*owner()); + m_to_shiftreg_cb.resolve(); + m_from_shiftreg_cb.resolve(); m_external_host_access = false; diff --git a/src/devices/cpu/tms34010/tms34010.h b/src/devices/cpu/tms34010/tms34010.h index 313f94d3503..e4488f3ca72 100644 --- a/src/devices/cpu/tms34010/tms34010.h +++ b/src/devices/cpu/tms34010/tms34010.h @@ -137,72 +137,32 @@ public: auto output_int() { return m_output_int_cb.bind(); } auto ioreg_pre_write() { return m_ioreg_pre_write_cb.bind(); } - // Setters for ind16 scanline callback - template - void set_scanline_ind16_callback(void (FunctionClass::*callback)(screen_device &, bitmap_ind16 &, int, const display_params *), - const char *name) + // Setter for ind16 scanline callback + template + void set_scanline_ind16_callback(T &&... args) { - set_scanline_ind16_callback(scanline_ind16_cb_delegate(callback, name, nullptr, static_cast(nullptr))); - } - template - void set_scanline_ind16_callback(const char *devname, void (FunctionClass::*callback)(screen_device &, bitmap_ind16 &, int, const display_params *), - const char *name) - { - set_scanline_ind16_callback(scanline_ind16_cb_delegate(callback, name, devname, static_cast(nullptr))); - } - void set_scanline_ind16_callback(scanline_ind16_cb_delegate callback) - { - m_scanline_ind16_cb = callback; + m_scanline_ind16_cb.set(std::forward(args)...); } - // Setters for rgb32 scanline callback - template - void set_scanline_rgb32_callback(void (FunctionClass::*callback)(screen_device &, bitmap_rgb32 &, int, const display_params *), - const char *name) - { - set_scanline_rgb32_callback(scanline_rgb32_cb_delegate(callback, name, nullptr, static_cast(nullptr))); - } - template - void set_scanline_rgb32_callback(const char *devname, void (FunctionClass::*callback)(screen_device &, bitmap_rgb32 &, int, const display_params *), - const char *name) - { - set_scanline_rgb32_callback(scanline_rgb32_cb_delegate(callback, name, devname, static_cast(nullptr))); - } - void set_scanline_rgb32_callback(scanline_rgb32_cb_delegate callback) + // Setter for rgb32 scanline callback + template + void set_scanline_rgb32_callback(T &&... args) { - m_scanline_rgb32_cb = callback; + m_scanline_rgb32_cb.set(std::forward(args)...); } - // Setters for shift register input callback - template - void set_shiftreg_in_callback(void (FunctionClass::*callback)(address_space &, offs_t, uint16_t *), const char *name) + // Setter for shift register input callback + template + void set_shiftreg_in_callback(T &&... args) { - set_shiftreg_in_callback(shiftreg_in_cb_delegate(callback, name, nullptr, static_cast(nullptr))); - } - template - void set_shiftreg_in_callback(const char *devname, void (FunctionClass::*callback)(address_space &, offs_t, uint16_t *), const char *name) - { - set_shiftreg_in_callback(shiftreg_in_cb_delegate(callback, name, devname, static_cast(nullptr))); - } - void set_shiftreg_in_callback(shiftreg_in_cb_delegate callback) - { - m_to_shiftreg_cb = callback; + m_to_shiftreg_cb.set(std::forward(args)...); } // Setters for shift register output callback - template - void set_shiftreg_out_callback(void (FunctionClass::*callback)(address_space &, offs_t, uint16_t *), const char *name) - { - set_shiftreg_out_callback(shiftreg_out_cb_delegate(callback, name, nullptr, static_cast(nullptr))); - } - template - void set_shiftreg_out_callback(const char *devname, void (FunctionClass::*callback)(address_space &, offs_t, uint16_t *), const char *name) - { - set_shiftreg_out_callback(shiftreg_out_cb_delegate(callback, name, devname, static_cast(nullptr))); - } - void set_shiftreg_out_callback(shiftreg_out_cb_delegate callback) + template + void set_shiftreg_out_callback(T &&... args) { - m_from_shiftreg_cb = callback; + m_from_shiftreg_cb.set(std::forward(args)...); } void get_display_params(display_params *params); diff --git a/src/devices/imagedev/diablo.cpp b/src/devices/imagedev/diablo.cpp index f7da6fa26cb..58a34a664f6 100644 --- a/src/devices/imagedev/diablo.cpp +++ b/src/devices/imagedev/diablo.cpp @@ -36,8 +36,8 @@ diablo_image_device::diablo_image_device(const machine_config &mconfig, const ch device_image_interface(mconfig, *this), m_chd(nullptr), m_hard_disk_handle(nullptr), - m_device_image_load(load_delegate()), - m_device_image_unload(unload_delegate()), + m_device_image_load(*this), + m_device_image_unload(*this), m_interface(nullptr) { } @@ -72,6 +72,9 @@ const util::option_guide &diablo_image_device::create_option_guide() const void diablo_image_device::device_start() { + m_device_image_load.resolve(); + m_device_image_unload.resolve(); + m_chd = nullptr; // try to locate the CHD from a DISK_REGION diff --git a/src/devices/imagedev/harddriv.cpp b/src/devices/imagedev/harddriv.cpp index cdb4f72e098..e6e0c56f896 100644 --- a/src/devices/imagedev/harddriv.cpp +++ b/src/devices/imagedev/harddriv.cpp @@ -53,8 +53,8 @@ harddisk_image_device::harddisk_image_device(const machine_config &mconfig, devi device_image_interface(mconfig, *this), m_chd(nullptr), m_hard_disk_handle(nullptr), - m_device_image_load(load_delegate()), - m_device_image_unload(unload_delegate()), + m_device_image_load(*this), + m_device_image_unload(*this), m_interface(nullptr) { } @@ -89,6 +89,9 @@ const util::option_guide &harddisk_image_device::create_option_guide() const void harddisk_image_device::device_start() { + m_device_image_load.resolve(); + m_device_image_unload.resolve(); + m_chd = nullptr; // try to locate the CHD from a DISK_REGION diff --git a/src/devices/imagedev/harddriv.h b/src/devices/imagedev/harddriv.h index 65a13df10d3..a6a9e721bc5 100644 --- a/src/devices/imagedev/harddriv.h +++ b/src/devices/imagedev/harddriv.h @@ -33,8 +33,8 @@ public: harddisk_image_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0); virtual ~harddisk_image_device(); - template void set_device_load(T &&... args) { m_device_image_load = load_delegate(std::forward(args)...); } - template void set_device_unload(T &&... args) { m_device_image_unload = unload_delegate(std::forward(args)...); } + template void set_device_load(T &&... args) { m_device_image_load.set(std::forward(args)...); } + template void set_device_unload(T &&... args) { m_device_image_unload.set(std::forward(args)...); } void set_interface(const char *interface) { m_interface = interface; } // image-level overrides diff --git a/src/devices/imagedev/snapquik.cpp b/src/devices/imagedev/snapquik.cpp index 811910c1422..4cc0e8b6491 100644 --- a/src/devices/imagedev/snapquik.cpp +++ b/src/devices/imagedev/snapquik.cpp @@ -26,6 +26,7 @@ snapshot_image_device::snapshot_image_device(const machine_config &mconfig, cons snapshot_image_device::snapshot_image_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_image_interface(mconfig, *this) + , m_load(*this) , m_file_extensions(nullptr) , m_interface(nullptr) , m_delay(attotime::zero) @@ -56,6 +57,8 @@ TIMER_CALLBACK_MEMBER(snapshot_image_device::process_snapshot_or_quickload) void snapshot_image_device::device_start() { + m_load.resolve(); + /* allocate a timer */ m_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(snapshot_image_device::process_snapshot_or_quickload),this)); } diff --git a/src/devices/imagedev/snapquik.h b/src/devices/imagedev/snapquik.h index bb3d9f1f1c3..7ad476a0a3b 100644 --- a/src/devices/imagedev/snapquik.h +++ b/src/devices/imagedev/snapquik.h @@ -49,7 +49,7 @@ public: void set_extensions(const char *ext) { m_file_extensions = ext; } void set_delay(attotime delay) { m_delay = delay; } - template void set_load_callback(T &&... args) { m_load = load_delegate(std::forward(args)...); } + template void set_load_callback(T &&... args) { m_load.set(std::forward(args)...); } protected: snapshot_image_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); diff --git a/src/devices/machine/53c810.cpp b/src/devices/machine/53c810.cpp index b97999f5ad4..30fd7b08f33 100644 --- a/src/devices/machine/53c810.cpp +++ b/src/devices/machine/53c810.cpp @@ -623,6 +623,9 @@ void lsi53c810_device::add_opcode(uint8_t op, uint8_t mask, opcode_handler_deleg lsi53c810_device::lsi53c810_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : legacy_scsi_host_adapter(mconfig, LSI53C810, tag, owner, clock) + , m_irq_cb(*this) + , m_dma_cb(*this) + , m_fetch_cb(*this) { } @@ -630,9 +633,9 @@ void lsi53c810_device::device_start() { legacy_scsi_host_adapter::device_start(); - m_irq_cb.bind_relative_to(*owner()); - m_dma_cb.bind_relative_to(*owner()); - m_fetch_cb.bind_relative_to(*owner()); + m_irq_cb.resolve(); + m_dma_cb.resolve(); + m_fetch_cb.resolve(); for (auto & elem : dma_opcode) { diff --git a/src/devices/machine/53c810.h b/src/devices/machine/53c810.h index b80c0aa2c4a..b6ecd035072 100644 --- a/src/devices/machine/53c810.h +++ b/src/devices/machine/53c810.h @@ -17,19 +17,19 @@ public: // construction/destruction lsi53c810_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0); - template void set_irq_callback(void (FunctionClass::*callback)(int), const char *name) + template void set_irq_callback(T &&... args) { - m_irq_cb = irq_delegate(callback, name, nullptr, static_cast(nullptr)); + m_irq_cb.set(std::forward(args)...); } - template void set_dma_callback(void (FunctionClass::*callback)(uint32_t, uint32_t, int, int), const char *name) + template void set_dma_callback(T &&... args) { - m_dma_cb = dma_delegate(callback, name, nullptr, static_cast(nullptr)); + m_dma_cb.set(std::forward(args)...); } - template void set_fetch_callback(uint32_t (FunctionClass::*callback)(uint32_t), const char *name) + template void set_fetch_callback(T &&... args) { - m_fetch_cb = fetch_delegate(callback, name, nullptr, static_cast(nullptr)); + m_fetch_cb.set(std::forward(args)...); } uint8_t reg_r(int offset); @@ -40,7 +40,7 @@ protected: virtual void device_start() override; private: - typedef delegate opcode_handler_delegate; + typedef delegate opcode_handler_delegate; opcode_handler_delegate dma_opcode[256]; irq_delegate m_irq_cb; diff --git a/src/devices/machine/68307.cpp b/src/devices/machine/68307.cpp index ca98bbfa85b..70992f45b07 100644 --- a/src/devices/machine/68307.cpp +++ b/src/devices/machine/68307.cpp @@ -56,13 +56,17 @@ void m68307_cpu_device::device_add_mconfig(machine_config &config) } -m68307_cpu_device::m68307_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : m68000_device(mconfig, tag, owner, clock, M68307, 16, 24, address_map_constructor(FUNC(m68307_cpu_device::internal_map), this)), +m68307_cpu_device::m68307_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + m68000_device(mconfig, tag, owner, clock, M68307, 16, 24, address_map_constructor(FUNC(m68307_cpu_device::internal_map), this)), m_write_irq(*this), m_write_a_tx(*this), m_write_b_tx(*this), m_read_inport(*this), m_write_outport(*this), + m_porta_r(*this), + m_porta_w(*this), + m_portb_r(*this), + m_portb_w(*this), m_duart(*this, "internal68681") { m_m68307SIM = nullptr; @@ -266,7 +270,10 @@ void m68307_cpu_device::device_start() m_read_inport.resolve(); m_write_outport.resolve_safe(); - set_port_callbacks(porta_read_delegate(), porta_write_delegate(), portb_read_delegate(), portb_write_delegate()); + m_porta_r.set(nullptr); + m_porta_w.set(nullptr); + m_portb_r.set(nullptr); + m_portb_w.set(nullptr); } @@ -312,10 +319,10 @@ WRITE16_MEMBER( m68307_cpu_device::m68307_internal_base_w ) base = (m_m68307_base & 0x0fff) << 12; //mask = (m_m68307_base & 0xe000) >> 13; //if ( m_m68307_base & 0x1000 ) mask |= 7; - m_internal->install_readwrite_handler(base + 0x000, base + 0x04f, read16_delegate(FUNC(m68307_cpu_device::m68307_internal_sim_r),this), write16_delegate(FUNC(m68307_cpu_device::m68307_internal_sim_w),this)); - m_internal->install_readwrite_handler(base + 0x100, base + 0x11f, read8_delegate(FUNC(m68307_cpu_device::m68307_internal_serial_r),this), write8_delegate(FUNC(m68307_cpu_device::m68307_internal_serial_w),this), 0xffff); - m_internal->install_readwrite_handler(base + 0x120, base + 0x13f, read16_delegate(FUNC(m68307_cpu_device::m68307_internal_timer_r),this), write16_delegate(FUNC(m68307_cpu_device::m68307_internal_timer_w),this)); - m_internal->install_readwrite_handler(base + 0x140, base + 0x149, read8_delegate(FUNC(m68307_cpu_device::m68307_internal_mbus_r),this), write8_delegate(FUNC(m68307_cpu_device::m68307_internal_mbus_w),this), 0xffff); + m_internal->install_readwrite_handler(base + 0x000, base + 0x04f, read16_delegate(*this, FUNC(m68307_cpu_device::m68307_internal_sim_r)), write16_delegate(*this, FUNC(m68307_cpu_device::m68307_internal_sim_w))); + m_internal->install_readwrite_handler(base + 0x100, base + 0x11f, read8_delegate(*this, FUNC(m68307_cpu_device::m68307_internal_serial_r)), write8_delegate(*this, FUNC(m68307_cpu_device::m68307_internal_serial_w)), 0xffff); + m_internal->install_readwrite_handler(base + 0x120, base + 0x13f, read16_delegate(*this, FUNC(m68307_cpu_device::m68307_internal_timer_r)), write16_delegate(*this, FUNC(m68307_cpu_device::m68307_internal_timer_w))); + m_internal->install_readwrite_handler(base + 0x140, base + 0x149, read8_delegate(*this, FUNC(m68307_cpu_device::m68307_internal_mbus_r)), write8_delegate(*this, FUNC(m68307_cpu_device::m68307_internal_mbus_w)), 0xffff); break; diff --git a/src/devices/machine/68340.cpp b/src/devices/machine/68340.cpp index 312aabed99b..c5a9c7637f5 100644 --- a/src/devices/machine/68340.cpp +++ b/src/devices/machine/68340.cpp @@ -157,42 +157,37 @@ WRITE32_MEMBER( m68340_cpu_device::m68340_internal_base_w ) LOGMASKED(LOG_BASE, "%08x m68340_internal_base_w %08x, %08x (%08x) (m_m68340_base write)\n", pc(), offset*4,data,mem_mask); // map new modules - if (m_m68340_base&1) + if (m_m68340_base & 1) { int base = m_m68340_base & 0xfffff000; m_internal->install_readwrite_handler(base + 0x000, base + 0x03f, - read16_delegate(FUNC(m68340_cpu_device::m68340_internal_sim_r),this), - write16_delegate(FUNC(m68340_cpu_device::m68340_internal_sim_w),this),0xffffffff); + read16_delegate(*this, FUNC(m68340_cpu_device::m68340_internal_sim_r)), + write16_delegate(*this, FUNC(m68340_cpu_device::m68340_internal_sim_w)),0xffffffff); m_internal->install_readwrite_handler(base + 0x010, base + 0x01f, // Intentionally punches a hole in previous address mapping - read8_delegate(FUNC(m68340_cpu_device::m68340_internal_sim_ports_r),this), - write8_delegate(FUNC(m68340_cpu_device::m68340_internal_sim_ports_w),this),0xffffffff); + read8_delegate(*this, FUNC(m68340_cpu_device::m68340_internal_sim_ports_r)), + write8_delegate(*this, FUNC(m68340_cpu_device::m68340_internal_sim_ports_w)),0xffffffff); m_internal->install_readwrite_handler(base + 0x040, base + 0x05f, - read32_delegate(FUNC(m68340_cpu_device::m68340_internal_sim_cs_r),this), - write32_delegate(FUNC(m68340_cpu_device::m68340_internal_sim_cs_w),this)); + read32_delegate(*this, FUNC(m68340_cpu_device::m68340_internal_sim_cs_r)), + write32_delegate(*this, FUNC(m68340_cpu_device::m68340_internal_sim_cs_w))); m_internal->install_readwrite_handler(base + 0x600, base + 0x63f, - READ16_DEVICE_DELEGATE(m_timer[0], mc68340_timer_module_device, read), - WRITE16_DEVICE_DELEGATE(m_timer[0], mc68340_timer_module_device, write),0xffffffff); + read16_delegate(*m_timer[0], FUNC(mc68340_timer_module_device::read)), + write16_delegate(*m_timer[0], FUNC(mc68340_timer_module_device::write)),0xffffffff); m_internal->install_readwrite_handler(base + 0x640, base + 0x67f, - READ16_DEVICE_DELEGATE(m_timer[1], mc68340_timer_module_device, read), - WRITE16_DEVICE_DELEGATE(m_timer[1], mc68340_timer_module_device, write),0xffffffff); + read16_delegate(*m_timer[1], FUNC(mc68340_timer_module_device::read)), + write16_delegate(*m_timer[1], FUNC(mc68340_timer_module_device::write)),0xffffffff); m_internal->install_readwrite_handler(base + 0x700, base + 0x723, - read8sm_delegate(FUNC(mc68340_serial_module_device::read), &*m_serial), - write8sm_delegate(FUNC(mc68340_serial_module_device::write), &*m_serial),0xffffffff); + read8sm_delegate(*m_serial, FUNC(mc68340_serial_module_device::read)), + write8sm_delegate(*m_serial, FUNC(mc68340_serial_module_device::write)),0xffffffff); m_internal->install_readwrite_handler(base + 0x780, base + 0x7bf, - read32_delegate(FUNC(m68340_cpu_device::m68340_internal_dma_r),this), - write32_delegate(FUNC(m68340_cpu_device::m68340_internal_dma_w),this)); - + read32_delegate(*this, FUNC(m68340_cpu_device::m68340_internal_dma_r)), + write32_delegate(*this, FUNC(m68340_cpu_device::m68340_internal_dma_w))); } - } else { LOGMASKED(LOG_BASE, "%08x m68340_internal_base_w %08x, %04x (%04x) (should fall through?)\n", pc(), offset*4,data,mem_mask); } - - - } void m68340_cpu_device::m68340_internal_map(address_map &map) diff --git a/src/devices/machine/acorn_vidc.cpp b/src/devices/machine/acorn_vidc.cpp index 1bc5f9fc1e4..358b49dff4c 100644 --- a/src/devices/machine/acorn_vidc.cpp +++ b/src/devices/machine/acorn_vidc.cpp @@ -128,7 +128,7 @@ void acorn_vidc10_device::device_config_complete() screen().set_raw(clock() * 2 / 3, 1024,0,735, 624/2,0,292); // RiscOS 3 default screen settings if (!screen().has_screen_update()) - screen().set_screen_update(screen_update_rgb32_delegate(FUNC(acorn_vidc10_device::screen_update), this)); + screen().set_screen_update(*this, FUNC(acorn_vidc10_device::screen_update)); } //------------------------------------------------- diff --git a/src/devices/machine/adc083x.cpp b/src/devices/machine/adc083x.cpp index 26323a1d146..1e0fd2dd7e7 100644 --- a/src/devices/machine/adc083x.cpp +++ b/src/devices/machine/adc083x.cpp @@ -51,8 +51,8 @@ DEFINE_DEVICE_TYPE(ADC0832, adc0832_device, "adc0832", "ADC0832 A/D Converter") DEFINE_DEVICE_TYPE(ADC0834, adc0834_device, "adc0834", "ADC0834 A/D Converter") DEFINE_DEVICE_TYPE(ADC0838, adc0838_device, "adc0838", "ADC0838 A/D Converter") -adc083x_device::adc083x_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t mux_bits) - : device_t(mconfig, type, tag, owner, clock), +adc083x_device::adc083x_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t mux_bits) : + device_t(mconfig, type, tag, owner, clock), m_mux_bits(mux_bits), m_cs(0), m_clk(0), @@ -65,7 +65,8 @@ adc083x_device::adc083x_device(const machine_config &mconfig, device_type type, m_sel0(0), m_state(STATE_IDLE), m_bit(0), - m_output(0) + m_output(0), + m_input_callback(*this) { } @@ -97,10 +98,10 @@ void adc083x_device::device_start() { clear_sars(); - /* resolve callbacks */ - m_input_callback.bind_relative_to(*owner()); + // resolve callbacks + m_input_callback.resolve(); - /* register for state saving */ + // register for state saving save_item( NAME(m_cs) ); save_item( NAME(m_clk) ); save_item( NAME(m_di) ); diff --git a/src/devices/machine/adc083x.h b/src/devices/machine/adc083x.h index 202c0ba94f5..babde2515b1 100644 --- a/src/devices/machine/adc083x.h +++ b/src/devices/machine/adc083x.h @@ -40,15 +40,7 @@ public: typedef device_delegate input_delegate; // configuration helpers - void set_input_callback(input_delegate callback) { m_input_callback = callback; } - template void set_input_callback(const char *devname, double (FunctionClass::*callback)(uint8_t), const char *name) - { - set_input_callback(input_delegate(callback, name, devname, static_cast(nullptr))); - } - template void set_input_callback(double (FunctionClass::*callback)(uint8_t), const char *name) - { - set_input_callback(input_delegate(callback, name, nullptr, static_cast(nullptr))); - } + template void set_input_callback(T &&... args) { m_input_callback.set(std::forward(args)...); } DECLARE_WRITE_LINE_MEMBER( cs_write ); DECLARE_WRITE_LINE_MEMBER( clk_write ); diff --git a/src/devices/machine/adc1038.cpp b/src/devices/machine/adc1038.cpp index afdf9a2185d..3baac1fd1be 100644 --- a/src/devices/machine/adc1038.cpp +++ b/src/devices/machine/adc1038.cpp @@ -25,6 +25,7 @@ adc1038_device::adc1038_device(const machine_config &mconfig, const char *tag, d , m_adc_data(0) , m_sars(0) , m_gticlub_hack(false) + , m_input_cb(*this) { } @@ -34,7 +35,7 @@ adc1038_device::adc1038_device(const machine_config &mconfig, const char *tag, d void adc1038_device::device_start() { - m_input_cb.bind_relative_to(*owner()); + m_input_cb.resolve(); save_item(NAME(m_cycle)); save_item(NAME(m_clk)); diff --git a/src/devices/machine/adc1038.h b/src/devices/machine/adc1038.h index 0149c79a20e..d4ee5362fd0 100644 --- a/src/devices/machine/adc1038.h +++ b/src/devices/machine/adc1038.h @@ -8,7 +8,6 @@ Track/hold Function ***************************************************************************/ - #ifndef MAME_MACHINE_ADC1038_H #define MAME_MACHINE_ADC1038_H @@ -32,15 +31,7 @@ public: adc1038_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template void set_input_callback(Object &&cb) { m_input_cb = std::forward(cb); } - template void set_input_callback(const char *devname, int (FunctionClass::*callback)(int), const char *name) - { - set_input_callback(input_delegate(callback, name, devname, static_cast(nullptr))); - } - template void set_input_callback(int (FunctionClass::*callback)(int), const char *name) - { - set_input_callback(input_delegate(callback, name, nullptr, static_cast(nullptr))); - } + template void set_input_callback(T &&... args) { m_input_cb.set(std::forward(args)...); } void set_gti_club_hack(bool hack) { m_gticlub_hack = hack; } diff --git a/src/devices/machine/adc1213x.cpp b/src/devices/machine/adc1213x.cpp index 1931498f58c..2f73575909c 100644 --- a/src/devices/machine/adc1213x.cpp +++ b/src/devices/machine/adc1213x.cpp @@ -57,6 +57,7 @@ adc12138_device::adc12138_device(const machine_config &mconfig, const char *tag, } adc12138_device::adc12138_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : device_t(mconfig, type, tag, owner, clock) + , m_ipt_read_cb(*this) { } @@ -76,7 +77,7 @@ void adc12138_device::device_start() m_end_conv = 0; /* resolve callbacks */ - m_ipt_read_cb.bind_relative_to(*owner()); + m_ipt_read_cb.resolve(); /* register for state saving */ save_item(NAME(m_cycle)); diff --git a/src/devices/machine/adc1213x.h b/src/devices/machine/adc1213x.h index 985659be2e3..7d3f69caccd 100644 --- a/src/devices/machine/adc1213x.h +++ b/src/devices/machine/adc1213x.h @@ -26,15 +26,7 @@ public: adc12138_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - void set_ipt_convert_callback(ipt_convert_delegate callback) { m_ipt_read_cb = callback; } - template void set_ipt_convert_callback(const char *devname, double (FunctionClass::*callback)(uint8_t), const char *name) - { - set_ipt_convert_callback(ipt_convert_delegate(callback, name, devname, static_cast(nullptr))); - } - template void set_ipt_convert_callback(double (FunctionClass::*callback)(uint8_t), const char *name) - { - set_ipt_convert_callback(ipt_convert_delegate(callback, name, nullptr, static_cast(nullptr))); - } + template void set_ipt_convert_callback(T &&... args) { m_ipt_read_cb.set(std::forward(args)...); } void di_w(u8 data); void cs_w(u8 data); diff --git a/src/devices/machine/cs4031.cpp b/src/devices/machine/cs4031.cpp index 13ec9b90a6d..4cc990b43df 100644 --- a/src/devices/machine/cs4031.cpp +++ b/src/devices/machine/cs4031.cpp @@ -263,19 +263,19 @@ void cs4031_device::device_start() m_space->install_rom(0xffff0000, 0xffffffff, m_bios + 0xf0000); // install i/o accesses - m_space_io->install_readwrite_handler(0x0000, 0x000f, read8sm_delegate(FUNC(am9517a_device::read), &(*m_dma1)), write8sm_delegate(FUNC(am9517a_device::write), &(*m_dma1)), 0xffffffff); - m_space_io->install_readwrite_handler(0x0020, 0x0023, read8sm_delegate(FUNC(pic8259_device::read), &(*m_intc1)), write8sm_delegate(FUNC(pic8259_device::write), &(*m_intc1)), 0x0000ffff); - m_space_io->install_write_handler(0x0020, 0x0023, write8smo_delegate(FUNC(cs4031_device::config_address_w), this), 0x00ff0000); - m_space_io->install_readwrite_handler(0x0020, 0x0023, read8smo_delegate(FUNC(cs4031_device::config_data_r), this), write8smo_delegate(FUNC(cs4031_device::config_data_w), this), 0xff000000); - m_space_io->install_readwrite_handler(0x0040, 0x0043, read8sm_delegate(FUNC(pit8254_device::read), &(*m_ctc)), write8sm_delegate(FUNC(pit8254_device::write), &(*m_ctc)), 0xffffffff); - m_space_io->install_readwrite_handler(0x0060, 0x0063, read8smo_delegate(FUNC(cs4031_device::keyb_data_r), this), write8smo_delegate(FUNC(cs4031_device::keyb_data_w), this), 0x000000ff); - m_space_io->install_readwrite_handler(0x0060, 0x0063, read8smo_delegate(FUNC(cs4031_device::portb_r), this), write8smo_delegate(FUNC(cs4031_device::portb_w), this), 0x0000ff00); - m_space_io->install_readwrite_handler(0x0064, 0x0067, read8smo_delegate(FUNC(cs4031_device::keyb_status_r), this), write8smo_delegate(FUNC(cs4031_device::keyb_command_w), this), 0x000000ff); - m_space_io->install_readwrite_handler(0x0070, 0x0073, read8sm_delegate(FUNC(mc146818_device::read), &(*m_rtc)), write8sm_delegate(FUNC(cs4031_device::rtc_w), this), 0x0000ffff); - m_space_io->install_readwrite_handler(0x0080, 0x008f, read8sm_delegate(FUNC(cs4031_device::dma_page_r), this), write8sm_delegate(FUNC(cs4031_device::dma_page_w), this), 0xffffffff); - m_space_io->install_readwrite_handler(0x0090, 0x0093, read8smo_delegate(FUNC(cs4031_device::sysctrl_r), this), write8smo_delegate(FUNC(cs4031_device::sysctrl_w), this), 0x00ff0000); - m_space_io->install_readwrite_handler(0x00a0, 0x00a3, read8sm_delegate(FUNC(pic8259_device::read), &(*m_intc2)), write8sm_delegate(FUNC(pic8259_device::write), &(*m_intc2)), 0x0000ffff); - m_space_io->install_readwrite_handler(0x00c0, 0x00df, read8sm_delegate(FUNC(cs4031_device::dma2_r),this), write8sm_delegate(FUNC(cs4031_device::dma2_w),this), 0xffffffff); + m_space_io->install_readwrite_handler(0x0000, 0x000f, read8sm_delegate(*m_dma1, FUNC(am9517a_device::read)), write8sm_delegate(*m_dma1, FUNC(am9517a_device::write)), 0xffffffff); + m_space_io->install_readwrite_handler(0x0020, 0x0023, read8sm_delegate(*m_intc1, FUNC(pic8259_device::read)), write8sm_delegate(*m_intc1, FUNC(pic8259_device::write)), 0x0000ffff); + m_space_io->install_write_handler(0x0020, 0x0023, write8smo_delegate(*this, FUNC(cs4031_device::config_address_w)), 0x00ff0000); + m_space_io->install_readwrite_handler(0x0020, 0x0023, read8smo_delegate(*this, FUNC(cs4031_device::config_data_r)), write8smo_delegate(*this, FUNC(cs4031_device::config_data_w)), 0xff000000); + m_space_io->install_readwrite_handler(0x0040, 0x0043, read8sm_delegate(*m_ctc, FUNC(pit8254_device::read)), write8sm_delegate(*m_ctc, FUNC(pit8254_device::write)), 0xffffffff); + m_space_io->install_readwrite_handler(0x0060, 0x0063, read8smo_delegate(*this, FUNC(cs4031_device::keyb_data_r)), write8smo_delegate(*this, FUNC(cs4031_device::keyb_data_w)), 0x000000ff); + m_space_io->install_readwrite_handler(0x0060, 0x0063, read8smo_delegate(*this, FUNC(cs4031_device::portb_r)), write8smo_delegate(*this, FUNC(cs4031_device::portb_w)), 0x0000ff00); + m_space_io->install_readwrite_handler(0x0064, 0x0067, read8smo_delegate(*this, FUNC(cs4031_device::keyb_status_r)), write8smo_delegate(*this, FUNC(cs4031_device::keyb_command_w)), 0x000000ff); + m_space_io->install_readwrite_handler(0x0070, 0x0073, read8sm_delegate(*m_rtc, FUNC(mc146818_device::read)), write8sm_delegate(*this, FUNC(cs4031_device::rtc_w)), 0x0000ffff); + m_space_io->install_readwrite_handler(0x0080, 0x008f, read8sm_delegate(*this, FUNC(cs4031_device::dma_page_r)), write8sm_delegate(*this, FUNC(cs4031_device::dma_page_w)), 0xffffffff); + m_space_io->install_readwrite_handler(0x0090, 0x0093, read8smo_delegate(*this, FUNC(cs4031_device::sysctrl_r)), write8smo_delegate(*this, FUNC(cs4031_device::sysctrl_w)), 0x00ff0000); + m_space_io->install_readwrite_handler(0x00a0, 0x00a3, read8sm_delegate(*m_intc2, FUNC(pic8259_device::read)), write8sm_delegate(*m_intc2, FUNC(pic8259_device::write)), 0x0000ffff); + m_space_io->install_readwrite_handler(0x00c0, 0x00df, read8sm_delegate(*this, FUNC(cs4031_device::dma2_r)), write8sm_delegate(*this, FUNC(cs4031_device::dma2_w)), 0xffffffff); } //------------------------------------------------- diff --git a/src/devices/machine/dmac.cpp b/src/devices/machine/dmac.cpp index 88762d95237..811b660d0a5 100644 --- a/src/devices/machine/dmac.cpp +++ b/src/devices/machine/dmac.cpp @@ -113,8 +113,8 @@ void amiga_dmac_device::autoconfig_base_address(offs_t address) // internal dmac registers m_space->install_readwrite_handler(address, address + 0xff, - read16_delegate(FUNC(amiga_dmac_device::register_read), this), - write16_delegate(FUNC(amiga_dmac_device::register_write), this), 0xffff); + read16_delegate(*this, FUNC(amiga_dmac_device::register_read)), + write16_delegate(*this, FUNC(amiga_dmac_device::register_write)), 0xffff); // install access to the rom space if (m_rom) @@ -381,8 +381,8 @@ WRITE_LINE_MEMBER( amiga_dmac_device::configin_w ) // install autoconfig handler m_space->install_readwrite_handler(0xe80000, 0xe8007f, - read16_delegate(FUNC(amiga_autoconfig::autoconfig_read), static_cast(this)), - write16_delegate(FUNC(amiga_autoconfig::autoconfig_write), static_cast(this)), 0xffff); + read16_delegate(*this, FUNC(amiga_autoconfig::autoconfig_read)), + write16_delegate(*this, FUNC(amiga_autoconfig::autoconfig_write)), 0xffff); } } diff --git a/src/devices/machine/f3853.cpp b/src/devices/machine/f3853.cpp index 7a23f5a04d0..7657a97bf36 100644 --- a/src/devices/machine/f3853.cpp +++ b/src/devices/machine/f3853.cpp @@ -47,6 +47,7 @@ f3853_device::f3853_device(const machine_config &mconfig, device_type type, cons device_t(mconfig, type, tag, owner, clock), m_int_req_callback(*this), m_pri_out_callback(*this), + m_int_daisy_chain_callback(*this), m_int_vector(0), m_prescaler(31), m_priority_line(false), @@ -89,7 +90,7 @@ void f3853_device::device_resolve_objects() { m_int_req_callback.resolve_safe(); m_pri_out_callback.resolve_safe(); // TODO: not implemented - m_int_daisy_chain_callback.bind_relative_to(*owner()); + m_int_daisy_chain_callback.resolve(); } void f3851_device::device_resolve_objects() diff --git a/src/devices/machine/f3853.h b/src/devices/machine/f3853.h index 48d0543dfec..5ebfbf450ca 100644 --- a/src/devices/machine/f3853.h +++ b/src/devices/machine/f3853.h @@ -71,7 +71,7 @@ public: auto int_req_callback() { return m_int_req_callback.bind(); } auto pri_out_callback() { return m_pri_out_callback.bind(); } - template void set_int_daisy_chain_callback(Object &&cb) { m_int_daisy_chain_callback = std::forward(cb); } + template void set_int_daisy_chain_callback(T &&... args) { m_int_daisy_chain_callback.set(std::forward(args)...); } virtual DECLARE_READ8_MEMBER(read); virtual DECLARE_WRITE8_MEMBER(write); diff --git a/src/devices/machine/fdc37c93x.cpp b/src/devices/machine/fdc37c93x.cpp index 0d5b80f2d7d..48991186a70 100644 --- a/src/devices/machine/fdc37c93x.cpp +++ b/src/devices/machine/fdc37c93x.cpp @@ -722,9 +722,9 @@ void fdc37c93x_device::remap(int space_id, offs_t start, offs_t end) if (space_id == AS_IO) { if (sysopt_pin == 0) - m_isa->install_device(0x03f0, 0x03f3, read8_delegate(FUNC(fdc37c93x_device::read_fdc37c93x), this), write8_delegate(FUNC(fdc37c93x_device::write_fdc37c93x), this)); + m_isa->install_device(0x03f0, 0x03f3, read8_delegate(*this, FUNC(fdc37c93x_device::read_fdc37c93x)), write8_delegate(*this, FUNC(fdc37c93x_device::write_fdc37c93x))); else - m_isa->install_device(0x0370, 0x0373, read8_delegate(FUNC(fdc37c93x_device::read_fdc37c93x), this), write8_delegate(FUNC(fdc37c93x_device::write_fdc37c93x), this)); + m_isa->install_device(0x0370, 0x0373, read8_delegate(*this, FUNC(fdc37c93x_device::read_fdc37c93x)), write8_delegate(*this, FUNC(fdc37c93x_device::write_fdc37c93x))); if (enabled_logical[LogicalDevice::FDC] == true) map_fdc_addresses(); if (enabled_logical[LogicalDevice::Parallel] == true) diff --git a/src/devices/machine/gt64xxx.cpp b/src/devices/machine/gt64xxx.cpp index fdde2d52c66..21ebec2ce6c 100644 --- a/src/devices/machine/gt64xxx.cpp +++ b/src/devices/machine/gt64xxx.cpp @@ -367,22 +367,22 @@ void gt64xxx_device::map_cpu_space() // PCI IO Window winStart = m_reg[GREG_PCI_IO_LO]<<21; winEnd = (m_reg[GREG_PCI_IO_LO]<<21) | (m_reg[GREG_PCI_IO_HI]<<21) | 0x1fffff; - m_cpu_space->install_read_handler(winStart, winEnd, read32_delegate(FUNC(gt64xxx_device::master_io_r), this)); - m_cpu_space->install_write_handler(winStart, winEnd, write32_delegate(FUNC(gt64xxx_device::master_io_w), this)); + m_cpu_space->install_read_handler(winStart, winEnd, read32_delegate(*this, FUNC(gt64xxx_device::master_io_r))); + m_cpu_space->install_write_handler(winStart, winEnd, write32_delegate(*this, FUNC(gt64xxx_device::master_io_w))); logerror("map_cpu_space pci_io start: %08X end: %08X\n", winStart, winEnd); // PCI MEM0 Window winStart = m_reg[GREG_PCI_MEM0_LO]<<21; winEnd = (m_reg[GREG_PCI_MEM0_LO]<<21) | (m_reg[GREG_PCI_MEM0_HI]<<21) | 0x1fffff; - m_cpu_space->install_read_handler(winStart, winEnd, read32_delegate(FUNC(gt64xxx_device::master_mem0_r), this)); - m_cpu_space->install_write_handler(winStart, winEnd, write32_delegate(FUNC(gt64xxx_device::master_mem0_w), this)); + m_cpu_space->install_read_handler(winStart, winEnd, read32_delegate(*this, FUNC(gt64xxx_device::master_mem0_r))); + m_cpu_space->install_write_handler(winStart, winEnd, write32_delegate(*this, FUNC(gt64xxx_device::master_mem0_w))); logerror("map_cpu_space pci_mem0 start: %08X end: %08X\n", winStart, winEnd); // PCI MEM1 Window winStart = m_reg[GREG_PCI_MEM1_LO]<<21; winEnd = (m_reg[GREG_PCI_MEM1_LO]<<21) | (m_reg[GREG_PCI_MEM1_HI]<<21) | 0x1fffff; - m_cpu_space->install_read_handler(winStart, winEnd, read32_delegate(FUNC(gt64xxx_device::master_mem1_r), this)); - m_cpu_space->install_write_handler(winStart, winEnd, write32_delegate(FUNC(gt64xxx_device::master_mem1_w), this)); + m_cpu_space->install_read_handler(winStart, winEnd, read32_delegate(*this, FUNC(gt64xxx_device::master_mem1_r))); + m_cpu_space->install_write_handler(winStart, winEnd, write32_delegate(*this, FUNC(gt64xxx_device::master_mem1_w))); logerror("map_cpu_space pci_mem1 start: %08X end: %08X\n", winStart, winEnd); // Setup the address mapping table for DMA lookups @@ -424,8 +424,8 @@ void gt64xxx_device::map_extra(uint64_t memory_window_start, uint64_t memory_win winStart = (m_reg[GREG_R1_0_LO + 0x10 / 4 * (ramIndex / 2)] << 21) | (m_reg[GREG_RAS0_LO + 0x8 / 4 * ramIndex] << 20); winEnd = (m_reg[GREG_R1_0_LO + 0x10 / 4 * (ramIndex / 2)] << 21) | (m_reg[GREG_RAS0_HI + 0x8 / 4 * ramIndex] << 20) | 0xfffff; winSize = winEnd - winStart + 1; - memory_space->install_read_handler(winStart, winEnd, read32_delegate(FUNC(gt64xxx_device::ras_0_r), this)); - memory_space->install_write_handler(winStart, winEnd, write32_delegate(FUNC(gt64xxx_device::ras_0_w), this)); + memory_space->install_read_handler(winStart, winEnd, read32_delegate(*this, FUNC(gt64xxx_device::ras_0_r))); + memory_space->install_write_handler(winStart, winEnd, write32_delegate(*this, FUNC(gt64xxx_device::ras_0_w))); LOGGALILEO("map_extra RAS0 start=%08X end=%08X size=%08X\n", winStart, winEnd, winSize); // RAS1 @@ -433,8 +433,8 @@ void gt64xxx_device::map_extra(uint64_t memory_window_start, uint64_t memory_win winStart = (m_reg[GREG_R1_0_LO + 0x10 / 4 * (ramIndex / 2)] << 21) | (m_reg[GREG_RAS0_LO + 0x8 / 4 * ramIndex] << 20); winEnd = (m_reg[GREG_R1_0_LO + 0x10 / 4 * (ramIndex / 2)] << 21) | (m_reg[GREG_RAS0_HI + 0x8 / 4 * ramIndex] << 20) | 0xfffff; winSize = winEnd - winStart + 1; - memory_space->install_read_handler(winStart, winEnd, read32_delegate(FUNC(gt64xxx_device::ras_1_r), this)); - memory_space->install_write_handler(winStart, winEnd, write32_delegate(FUNC(gt64xxx_device::ras_1_w), this)); + memory_space->install_read_handler(winStart, winEnd, read32_delegate(*this, FUNC(gt64xxx_device::ras_1_r))); + memory_space->install_write_handler(winStart, winEnd, write32_delegate(*this, FUNC(gt64xxx_device::ras_1_w))); LOGGALILEO("map_extra RAS1 start=%08X end=%08X size=%08X\n", winStart, winEnd, winSize); // RAS2 @@ -442,8 +442,8 @@ void gt64xxx_device::map_extra(uint64_t memory_window_start, uint64_t memory_win winStart = (m_reg[GREG_R1_0_LO + 0x10 / 4 * (ramIndex / 2)] << 21) | (m_reg[GREG_RAS0_LO + 0x8 / 4 * ramIndex] << 20); winEnd = (m_reg[GREG_R1_0_LO + 0x10 / 4 * (ramIndex / 2)] << 21) | (m_reg[GREG_RAS0_HI + 0x8 / 4 * ramIndex] << 20) | 0xfffff; winSize = winEnd - winStart + 1; - memory_space->install_read_handler(winStart, winEnd, read32_delegate(FUNC(gt64xxx_device::ras_2_r), this)); - memory_space->install_write_handler(winStart, winEnd, write32_delegate(FUNC(gt64xxx_device::ras_2_w), this)); + memory_space->install_read_handler(winStart, winEnd, read32_delegate(*this, FUNC(gt64xxx_device::ras_2_r))); + memory_space->install_write_handler(winStart, winEnd, write32_delegate(*this, FUNC(gt64xxx_device::ras_2_w))); LOGGALILEO("map_extra RAS2 start=%08X end=%08X size=%08X\n", winStart, winEnd, winSize); // RAS3 @@ -451,8 +451,8 @@ void gt64xxx_device::map_extra(uint64_t memory_window_start, uint64_t memory_win winStart = (m_reg[GREG_R1_0_LO + 0x10 / 4 * (ramIndex / 2)] << 21) | (m_reg[GREG_RAS0_LO + 0x8 / 4 * ramIndex] << 20); winEnd = (m_reg[GREG_R1_0_LO + 0x10 / 4 * (ramIndex / 2)] << 21) | (m_reg[GREG_RAS0_HI + 0x8 / 4 * ramIndex] << 20) | 0xfffff; winSize = winEnd - winStart + 1; - memory_space->install_read_handler(winStart, winEnd, read32_delegate(FUNC(gt64xxx_device::ras_3_r), this)); - memory_space->install_write_handler(winStart, winEnd, write32_delegate(FUNC(gt64xxx_device::ras_3_w), this)); + memory_space->install_read_handler(winStart, winEnd, read32_delegate(*this, FUNC(gt64xxx_device::ras_3_r))); + memory_space->install_write_handler(winStart, winEnd, write32_delegate(*this, FUNC(gt64xxx_device::ras_3_w))); LOGGALILEO("map_extra RAS3 start=%08X end=%08X size=%08X\n", winStart, winEnd, winSize); } diff --git a/src/devices/machine/i82357.cpp b/src/devices/machine/i82357.cpp index c1ff793ab87..6c6c75e838d 100644 --- a/src/devices/machine/i82357.cpp +++ b/src/devices/machine/i82357.cpp @@ -122,15 +122,15 @@ void i82357_device::map(address_map &map) map(0x061, 0x061).rw(FUNC(i82357_device::nmi_reg_r), FUNC(i82357_device::nmi_reg_w)); // NMI Enable Register (0x70, 72, 74, 76) - map(0x070, 0x077).lw8("nmi_rtc", - [this](offs_t offset, u8 data) - { - m_nmi_enabled = !BIT(data, 7); + map(0x070, 0x077).lw8( + [this] (offs_t offset, u8 data) + { + m_nmi_enabled = !BIT(data, 7); - m_out_rtc(0, data & 0x7f); + m_out_rtc(0, data & 0x7f); - m_nmi_check->adjust(attotime::zero); - }).umask64(0xff); + m_nmi_check->adjust(attotime::zero); + }, "nmi_rtc").umask64(0xff); map(0x081, 0x081).rw(m_dma[0], FUNC(eisa_dma_device::get_address_page<2>), FUNC(eisa_dma_device::set_address_page<2>)); map(0x082, 0x082).rw(m_dma[0], FUNC(eisa_dma_device::get_address_page<3>), FUNC(eisa_dma_device::set_address_page<3>)); @@ -158,16 +158,16 @@ void i82357_device::map(address_map &map) //map(0x40f, 0x40f); // ISP Test Register map(0x461, 0x461).rw(FUNC(i82357_device::nmi_ext_r), FUNC(i82357_device::nmi_ext_w)); - map(0x462, 0x462).lw8("nmi_ioport", - [this](u8 data) - { - if (m_nmi_ext & NMI_EXT_EN_IOPORT) + map(0x462, 0x462).lw8( + [this] (u8 data) { - m_nmi_ext |= NMI_EXT_IOPORT; + if (m_nmi_ext & NMI_EXT_EN_IOPORT) + { + m_nmi_ext |= NMI_EXT_IOPORT; - m_nmi_check->adjust(attotime::zero); - } - }); + m_nmi_check->adjust(attotime::zero); + } + }, "nmi_ioport"); //map(0x464, 0x464); // Last 32-bit bus master granted (L) map(0x481, 0x481).rw(m_dma[0], FUNC(eisa_dma_device::get_address_page_high<2>), FUNC(eisa_dma_device::set_address_page_high<2>)); @@ -183,9 +183,9 @@ void i82357_device::map(address_map &map) map(0x4c6, 0x4c6).rw(m_dma[1], FUNC(eisa_dma_device::get_count_high<1>), FUNC(eisa_dma_device::set_count_high<1>)); map(0x4ca, 0x4ca).rw(m_dma[1], FUNC(eisa_dma_device::get_count_high<2>), FUNC(eisa_dma_device::set_count_high<2>)); map(0x4ce, 0x4ce).rw(m_dma[1], FUNC(eisa_dma_device::get_count_high<3>), FUNC(eisa_dma_device::set_count_high<3>)); - map(0x4d0, 0x4d1).lrw8("elcr", - [this](offs_t offset) { return m_elcr[offset]; }, - [this](offs_t offset, u8 data) { m_elcr[offset] = data; }); + map(0x4d0, 0x4d1).lrw8( + NAME([this] (offs_t offset) { return m_elcr[offset]; }), + NAME([this] (offs_t offset, u8 data) { m_elcr[offset] = data; })); //map(0x4d4, 0x4d4); // DMA2 Set Chaining Mode //map(0x4d6, 0x4d6); // DMA2 Ext Write Mode Register diff --git a/src/devices/machine/i82371sb.cpp b/src/devices/machine/i82371sb.cpp index b149d98a48f..8a83514ed82 100644 --- a/src/devices/machine/i82371sb.cpp +++ b/src/devices/machine/i82371sb.cpp @@ -961,8 +961,8 @@ void i82371sb_ide_device::map_extra(uint64_t memory_window_start, uint64_t memor { offs_t m_base = bmiba & 0xfff0; - io_space->install_readwrite_handler(m_base, m_base + 0x7, read32_delegate(FUNC(bus_master_ide_controller_device::bmdma_r), &(*m_ide1)), write32_delegate(FUNC(bus_master_ide_controller_device::bmdma_w), &(*m_ide1)), 0xffffffff); - io_space->install_readwrite_handler(m_base + 0x8, m_base + 0xf, read32_delegate(FUNC(bus_master_ide_controller_device::bmdma_r), &(*m_ide2)), write32_delegate(FUNC(bus_master_ide_controller_device::bmdma_w), &(*m_ide2)), 0xffffffff); + io_space->install_readwrite_handler(m_base, m_base + 0x7, read32_delegate(*m_ide1, FUNC(bus_master_ide_controller_device::bmdma_r)), write32_delegate(*m_ide1, FUNC(bus_master_ide_controller_device::bmdma_w)), 0xffffffff); + io_space->install_readwrite_handler(m_base + 0x8, m_base + 0xf, read32_delegate(*m_ide2, FUNC(bus_master_ide_controller_device::bmdma_r)), write32_delegate(*m_ide2, FUNC(bus_master_ide_controller_device::bmdma_w)), 0xffffffff); } } diff --git a/src/devices/machine/keyboard.cpp b/src/devices/machine/keyboard.cpp index 52502597227..182751b46cc 100644 --- a/src/devices/machine/keyboard.cpp +++ b/src/devices/machine/keyboard.cpp @@ -253,7 +253,7 @@ generic_keyboard_device::generic_keyboard_device( , m_config(*this, "GENKBD_CFG") , m_modifiers(*this, "GENKBD_MOD") , m_last_modifiers(0U) - , m_keyboard_cb() + , m_keyboard_cb(*this) { } @@ -272,7 +272,7 @@ ioport_constructor generic_keyboard_device::device_input_ports() const void generic_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/devices/machine/keyboard.h b/src/devices/machine/keyboard.h index 4788d51f33b..2b4f32e856f 100644 --- a/src/devices/machine/keyboard.h +++ b/src/devices/machine/keyboard.h @@ -79,18 +79,11 @@ public: device_t *owner, u32 clock); - template - void set_keyboard_callback(void (FunctionClass::*callback)(u8 character), const char *name) - { - set_keyboard_callback(output_delegate(callback, name, nullptr, static_cast(nullptr))); - } - // FIXME: this should be aware of current device for resolving the tag - template - void set_keyboard_callback(const char *devname, void (FunctionClass::*callback)(u8 character), const char *name) + template + void set_keyboard_callback(T &&... args) { - set_keyboard_callback(output_delegate(callback, name, devname, static_cast(nullptr))); + m_keyboard_cb.set(std::forward(args)...); } - void set_keyboard_callback(output_delegate callback) { m_keyboard_cb = callback; } virtual ioport_constructor device_input_ports() const override; diff --git a/src/devices/machine/laserdsc.cpp b/src/devices/machine/laserdsc.cpp index 436a238fe88..8176ac14f29 100644 --- a/src/devices/machine/laserdsc.cpp +++ b/src/devices/machine/laserdsc.cpp @@ -62,9 +62,12 @@ laserdisc_device::laserdisc_device(const machine_config &mconfig, device_type ty : device_t(mconfig, type, tag, owner, clock), device_sound_interface(mconfig, *this), device_video_interface(mconfig, *this), + m_getdisc_callback(*this), + m_audio_callback(*this), m_overwidth(0), m_overheight(0), m_overclip(0, -1, 0, -1), + m_overupdate_rgb32(*this), m_disc(nullptr), m_width(0), m_height(0), @@ -629,6 +632,8 @@ int32_t laserdisc_device::generic_update(const vbi_metadata &vbi, int fieldnum, void laserdisc_device::init_disc() { + m_getdisc_callback.resolve(); + // get a handle to the disc to play if (!m_getdisc_callback.isnull()) m_disc = m_getdisc_callback(); @@ -730,7 +735,7 @@ void laserdisc_device::init_video() if (m_overenable) { // bind our handlers - m_overupdate_rgb32.bind_relative_to(*owner()); + m_overupdate_rgb32.resolve(); // allocate overlay bitmaps for (auto & elem : m_overbitmap) @@ -754,6 +759,8 @@ void laserdisc_device::init_video() void laserdisc_device::init_audio() { + m_audio_callback.resolve(); + // allocate a stream m_stream = stream_alloc(0, 2, 48000); diff --git a/src/devices/machine/laserdsc.h b/src/devices/machine/laserdsc.h index 78f4ad2702a..e2877a4a216 100644 --- a/src/devices/machine/laserdsc.h +++ b/src/devices/machine/laserdsc.h @@ -18,6 +18,9 @@ #include "vbiparse.h" #include "avhuff.h" +#include +#include + //************************************************************************** // CONSTANTS @@ -122,25 +125,15 @@ public: void set_overlay_config(const laserdisc_overlay_config &config) { static_cast(*this) = config; } // configuration helpers - template void set_get_disc(T &&... args) { m_getdisc_callback = get_disc_delegate(std::forward(args)...); } - template void set_audio(T &&... args) { m_audio_callback = audio_delegate(std::forward(args)...); } - // FIXME: these should be aware of current device for resolving the tag - template - void set_overlay(uint32_t width, uint32_t height, u32 (FunctionClass::*callback)(screen_device &, bitmap_rgb32 &, const rectangle &), const char *name) - { - set_overlay(width, height, screen_update_rgb32_delegate(callback, name, nullptr, static_cast(nullptr))); - } - template - void set_overlay(uint32_t width, uint32_t height, const char *devname, u32 (FunctionClass::*callback)(screen_device &, bitmap_rgb32 &, const rectangle &), const char *name) - { - set_overlay(width, height, screen_update_rgb32_delegate(callback, name, devname, static_cast(nullptr))); - } - void set_overlay(uint32_t width, uint32_t height, screen_update_rgb32_delegate &&update) + template void set_get_disc(T &&... args) { m_getdisc_callback.set(std::forward(args)...); } + template void set_audio(T &&... args) { m_audio_callback.set(std::forward(args)...); } + template + void set_overlay(uint32_t width, uint32_t height, T &&... args) { m_overwidth = width; m_overheight = height; m_overclip.set(0, width - 1, 0, height - 1); - m_overupdate_rgb32 = std::move(update); + m_overupdate_rgb32.set(std::forward(args)...); } void set_overlay_clip(int32_t minx, int32_t maxx, int32_t miny, int32_t maxy) { m_overclip.set(minx, maxx, miny, maxy); } void set_overlay_position(float posx, float posy) diff --git a/src/devices/machine/lpci.cpp b/src/devices/machine/lpci.cpp index fdbdc218b31..134fd1924c3 100644 --- a/src/devices/machine/lpci.cpp +++ b/src/devices/machine/lpci.cpp @@ -93,9 +93,13 @@ DEFINE_DEVICE_TYPE(PCI_BUS_LEGACY, pci_bus_legacy_device, "pci_bus_legacy", "PCI //------------------------------------------------- pci_bus_legacy_device::pci_bus_legacy_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : device_t(mconfig, PCI_BUS_LEGACY, tag, owner, clock), - m_father(nullptr) + m_read_callback(*this), + m_write_callback(*this), + m_father(nullptr), + m_siblings_count(0) { - m_siblings_count = 0; + std::fill(std::begin(m_siblings), std::end(m_siblings), nullptr); + std::fill(std::begin(m_siblings_busnum), std::end(m_siblings_busnum), 0); } /*************************************************************************** @@ -255,12 +259,10 @@ void pci_bus_legacy_device::device_start() m_devicenum = -1; /* find all our device callbacks */ - for (auto &cb : m_read_callback) - cb.bind_relative_to(*owner()); - for (auto &cb : m_write_callback) - cb.bind_relative_to(*owner()); + m_read_callback.resolve_all(); + m_write_callback.resolve_all(); - if (m_father != nullptr) { + if (m_father) { pci_bus_legacy_device *father = machine().device(m_father); if (father) father->add_sibling(this, m_busnum); diff --git a/src/devices/machine/lpci.h b/src/devices/machine/lpci.h index 46aeb83aa5d..a95b31c3170 100644 --- a/src/devices/machine/lpci.h +++ b/src/devices/machine/lpci.h @@ -42,8 +42,19 @@ public: void set_busnum(int busnum) { m_busnum = busnum; } void set_father(const char *father) { m_father = father; } - template void set_device_read(int num, T &&... args) { m_read_callback[num] = pci_bus_legacy_read_delegate(std::forward(args)...); } - template void set_device_write(int num, T &&... args) { m_write_callback[num] = pci_bus_legacy_write_delegate(std::forward(args)...); } + template + void set_device(int num, F &&read, const char *rname, G &&write, const char *wname) + { + m_read_callback[num].set(std::forward(read), rname); + m_write_callback[num].set(std::forward(write), wname); + } + + template + void set_device(int num, T &&target, F &&read, const char *rname, G &&write, const char *wname) + { + m_read_callback[num].set(target, std::forward(read), rname); + m_write_callback[num].set(target, std::forward(write), wname); + } pci_bus_legacy_device *pci_search_bustree(int busnum, int devicenum, pci_bus_legacy_device *pcibus); void add_sibling(pci_bus_legacy_device *sibling, int busnum); @@ -56,8 +67,8 @@ protected: private: uint8_t m_busnum; - pci_bus_legacy_read_delegate m_read_callback[32]; - pci_bus_legacy_write_delegate m_write_callback[32]; + pci_bus_legacy_read_delegate::array<32> m_read_callback; + pci_bus_legacy_write_delegate::array<32> m_write_callback; const char * m_father; pci_bus_legacy_device * m_siblings[8]; uint8_t m_siblings_busnum[8]; @@ -72,5 +83,4 @@ private: // device type definition DECLARE_DEVICE_TYPE(PCI_BUS_LEGACY, pci_bus_legacy_device) - #endif // MAME_MACHINE_LPCI_H diff --git a/src/devices/machine/mc6854.cpp b/src/devices/machine/mc6854.cpp index acaa74b0cf9..2cb16191140 100644 --- a/src/devices/machine/mc6854.cpp +++ b/src/devices/machine/mc6854.cpp @@ -166,10 +166,11 @@ static const int word_length[4] = { 5, 6, 7, 8 }; DEFINE_DEVICE_TYPE(MC6854, mc6854_device, "mc6854", "Motorola MC6854 ADLC") -mc6854_device::mc6854_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MC6854, tag, owner, clock), +mc6854_device::mc6854_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, MC6854, tag, owner, clock), m_out_irq_cb(*this), m_out_txd_cb(*this), + m_out_frame_cb(*this), m_out_rts_cb(*this), m_out_dtr_cb(*this), m_cr1(0), @@ -210,7 +211,7 @@ void mc6854_device::device_start() { m_out_irq_cb.resolve_safe(); m_out_txd_cb.resolve(); - m_out_frame_cb.bind_relative_to(*owner()); + m_out_frame_cb.resolve(); m_out_rts_cb.resolve_safe(); m_out_dtr_cb.resolve_safe(); diff --git a/src/devices/machine/mc6854.h b/src/devices/machine/mc6854.h index 0f90544336b..defd3aa76c1 100644 --- a/src/devices/machine/mc6854.h +++ b/src/devices/machine/mc6854.h @@ -28,16 +28,7 @@ public: auto out_rts_cb() { return m_out_rts_cb.bind(); } auto out_dtr_cb() { return m_out_dtr_cb.bind(); } - template void set_out_frame_callback(Object &&cb) { m_out_frame_cb = std::forward(cb); } - void set_out_frame_callback(out_frame_delegate callback) { m_out_frame_cb = callback; } - template void set_out_frame_callback(const char *devname, void (FunctionClass::*callback)(uint8_t *, int), const char *name) - { - set_out_frame_callback(out_frame_delegate(callback, name, devname, static_cast(nullptr))); - } - template void set_out_frame_callback(void (FunctionClass::*callback)(uint8_t *, int), const char *name) - { - set_out_frame_callback(out_frame_delegate(callback, name, nullptr, static_cast(nullptr))); - } + template void set_out_frame_callback(T &&... args) { m_out_frame_cb.set(std::forward(args)...); } /* interface to CPU via address/data bus*/ uint8_t read(offs_t offset); @@ -71,7 +62,7 @@ private: /* low-level, bit-based interface */ devcb_write_line m_out_txd_cb; /* transmit bit */ - /* high-level, frame-based interface */ + /* high-level, frame-based interface */ out_frame_delegate m_out_frame_cb; /* control lines */ diff --git a/src/devices/machine/microtch.cpp b/src/devices/machine/microtch.cpp index 368f943d2bf..6d4ae2c246f 100644 --- a/src/devices/machine/microtch.cpp +++ b/src/devices/machine/microtch.cpp @@ -25,6 +25,7 @@ microtouch_device::microtouch_device(const machine_config &mconfig, const char * device_serial_interface(mconfig, *this), m_rx_buffer_ptr(0), m_tx_buffer_num(0), m_tx_buffer_ptr(0), m_reset_done(0), m_format(0), m_mode(0), m_last_touch_state(0), m_last_x(0), m_last_y(0), + m_out_touch_cb(*this), m_out_stx_func(*this), m_touch(*this, "TOUCH"), m_touchx(*this, "TOUCH_X"), @@ -203,6 +204,7 @@ void microtouch_device::device_start() set_data_frame(1, 8, PARITY_NONE, STOP_BITS_1); //8N1? set_tra_rate(clock()); set_rcv_rate(clock()); + m_out_touch_cb.resolve(); m_out_stx_func.resolve_safe(); m_output_valid = false; diff --git a/src/devices/machine/microtch.h b/src/devices/machine/microtch.h index 0cb486aa3f1..ed56310baca 100644 --- a/src/devices/machine/microtch.h +++ b/src/devices/machine/microtch.h @@ -12,19 +12,23 @@ class microtouch_device : public device_serial_interface { public: + typedef device_delegate touch_cb; + microtouch_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); auto stx() { return m_out_stx_func.bind(); } - virtual ioport_constructor device_input_ports() const override; DECLARE_WRITE_LINE_MEMBER(rx) { device_serial_interface::rx_w(state); } DECLARE_INPUT_CHANGED_MEMBER(touch); - typedef device_delegate touch_cb; - template void set_touch_callback(T &&... args) { m_out_touch_cb = touch_cb(std::forward(args)...); } + template void set_touch_callback(T &&... args) { m_out_touch_cb.set(std::forward(args)...); } protected: + // device_t implementation + virtual ioport_constructor device_input_ports() const override; virtual void device_start() override; virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + + // device_serial_interface implementation virtual void tra_callback() override; virtual void tra_complete() override; virtual void rcv_complete() override; diff --git a/src/devices/machine/msm6253.cpp b/src/devices/machine/msm6253.cpp index 96722247d08..6653156c826 100644 --- a/src/devices/machine/msm6253.cpp +++ b/src/devices/machine/msm6253.cpp @@ -26,12 +26,13 @@ DEFINE_DEVICE_TYPE(MSM6253, msm6253_device, "msm6253", "OKI MSM6253 A/D Converte msm6253_device::msm6253_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) : device_t(mconfig, MSM6253, tag, owner, clock) , m_analog_ports(*this, {finder_base::DUMMY_TAG, finder_base::DUMMY_TAG, finder_base::DUMMY_TAG, finder_base::DUMMY_TAG}) + , m_analog_input_cb(*this) , m_shift_register(0) { - m_analog_input_cb[0] = port_read_delegate(FUNC(msm6253_device::port_read<0>), this); - m_analog_input_cb[1] = port_read_delegate(FUNC(msm6253_device::port_read<1>), this); - m_analog_input_cb[2] = port_read_delegate(FUNC(msm6253_device::port_read<2>), this); - m_analog_input_cb[3] = port_read_delegate(FUNC(msm6253_device::port_read<3>), this); + m_analog_input_cb[0].set(*this, FUNC(msm6253_device::port_read<0>)); + m_analog_input_cb[1].set(*this, FUNC(msm6253_device::port_read<1>)); + m_analog_input_cb[2].set(*this, FUNC(msm6253_device::port_read<2>)); + m_analog_input_cb[3].set(*this, FUNC(msm6253_device::port_read<3>)); } //------------------------------------------------- @@ -40,11 +41,11 @@ msm6253_device::msm6253_device(const machine_config &mconfig, const char *tag, d void msm6253_device::device_start() { + // resolve each callback + m_analog_input_cb.resolve_all(); + for (int port = 0; port < 4; port++) { - // resolve each callback - m_analog_input_cb[port].bind_relative_to(*owner()); - // ensure that any configured ports truly are analog if (m_analog_ports[port].found()) { diff --git a/src/devices/machine/msm6253.h b/src/devices/machine/msm6253.h index bfb5920ef16..8830c7dc969 100644 --- a/src/devices/machine/msm6253.h +++ b/src/devices/machine/msm6253.h @@ -39,15 +39,7 @@ public: // configuration template void set_input_tag(const char *tag) { m_analog_ports[P].set_tag(tag); } - template void set_input_cb(port_read_delegate callback) { m_analog_input_cb[P] = callback; } - template void set_input_cb(const char *devname, ioport_value (FunctionClass::*callback)(), const char *name) - { - set_input_cb

(port_read_delegate(callback, name, devname, static_cast(nullptr))); - } - template void set_input_cb(ioport_value (FunctionClass::*callback)(), const char *name) - { - set_input_cb

(port_read_delegate(callback, name, nullptr, static_cast(nullptr))); - } + template void set_input_cb(T &&... args) { m_analog_input_cb[P].set(std::forward(args)...); } // write handlers WRITE8_MEMBER(address_w); @@ -68,7 +60,7 @@ private: // input configuration optional_ioport_array<4> m_analog_ports; - port_read_delegate m_analog_input_cb[4]; + port_read_delegate::array<4> m_analog_input_cb; // private data u8 m_shift_register; diff --git a/src/devices/machine/myb3k_kbd.cpp b/src/devices/machine/myb3k_kbd.cpp index b1a1c626cd7..9b4519cccb1 100644 --- a/src/devices/machine/myb3k_kbd.cpp +++ b/src/devices/machine/myb3k_kbd.cpp @@ -336,7 +336,7 @@ myb3k_keyboard_device::myb3k_keyboard_device( device_t *owner, u32 clock) : device_t(mconfig, type, tag, owner, clock) - , m_keyboard_cb() + , m_keyboard_cb(*this) , m_io_kbd_t(*this, "MYB3K_T%X", 0U) { } @@ -353,8 +353,7 @@ ioport_constructor myb3k_keyboard_device::device_input_ports() const void myb3k_keyboard_device::device_start() { - m_keyboard_cb.bind_relative_to(*owner()); - device_reset(); + m_keyboard_cb.resolve(); } void myb3k_keyboard_device::device_reset() diff --git a/src/devices/machine/myb3k_kbd.h b/src/devices/machine/myb3k_kbd.h index 34c2c5cc414..384d837bf20 100644 --- a/src/devices/machine/myb3k_kbd.h +++ b/src/devices/machine/myb3k_kbd.h @@ -43,18 +43,11 @@ public: TIMER_ID_SECOND_BYTE }; - template - void set_keyboard_callback(void (FunctionClass::*callback)(u8 character), const char *name) + template + void set_keyboard_callback(T &&... args) { - set_keyboard_callback(output_delegate(callback, name, nullptr, static_cast(nullptr))); + m_keyboard_cb.set(std::forward(args)...); } - // FIXME: this should be aware of current device for resolving the tag - template - void set_keyboard_callback(const char *devname, void (FunctionClass::*callback)(u8 character), const char *name) - { - set_keyboard_callback(output_delegate(callback, name, devname, static_cast(nullptr))); - } - void set_keyboard_callback(output_delegate callback) { m_keyboard_cb = callback; } protected: myb3k_keyboard_device( diff --git a/src/devices/machine/netlist.cpp b/src/devices/machine/netlist.cpp index 2d0ba8244b4..08d1e59a889 100644 --- a/src/devices/machine/netlist.cpp +++ b/src/devices/machine/netlist.cpp @@ -184,7 +184,7 @@ public: ATTR_COLD void register_callback(netlist_mame_analog_output_device::output_delegate &&callback) { - m_callback = std::move(callback); + m_callback.reset(new netlist_mame_analog_output_device::output_delegate(std::move(callback))); } NETLIB_UPDATEI() @@ -196,7 +196,7 @@ public: if (std::fabs(cur - m_last) > 1e-6) { m_cpu_device->update_icount(exec().time()); - m_callback(cur, m_cpu_device->local_time()); + (*m_callback)(cur, m_cpu_device->local_time()); m_cpu_device->check_mame_abort_slice(); m_last = cur; } @@ -204,7 +204,7 @@ public: private: netlist::analog_input_t m_in; - netlist_mame_analog_output_device::output_delegate m_callback; + std::unique_ptr m_callback; // TODO: change to std::optional for C++17 netlist_mame_cpu_device *m_cpu_device; netlist::state_var m_last; }; @@ -234,7 +234,7 @@ public: ATTR_COLD void register_callback(netlist_mame_logic_output_device::output_delegate &&callback) { - m_callback = std::move(callback); + m_callback.reset(new netlist_mame_logic_output_device::output_delegate(std::move(callback))); } NETLIB_UPDATEI() @@ -246,7 +246,7 @@ public: if (cur != m_last) { m_cpu_device->update_icount(exec().time()); - m_callback(cur, m_cpu_device->local_time()); + (*m_callback)(cur, m_cpu_device->local_time()); m_cpu_device->check_mame_abort_slice(); m_last = cur; } @@ -254,7 +254,7 @@ public: private: netlist::logic_input_t m_in; - netlist_mame_logic_output_device::output_delegate m_callback; + std::unique_ptr m_callback; // TODO: change to std::optional for C++17 netlist_mame_cpu_device *m_cpu_device; netlist::state_var m_last; }; @@ -719,6 +719,7 @@ netlist_mame_analog_output_device::netlist_mame_analog_output_device(const machi : device_t(mconfig, NETLIST_ANALOG_OUTPUT, tag, owner, clock) , netlist_mame_sub_interface(*owner) , m_in("") + , m_delegate(*this) { } @@ -730,7 +731,7 @@ void netlist_mame_analog_output_device::custom_netlist_additions(netlist::netlis /* ignore if no running machine -> called within device_validity_check context */ if (owner()->has_running_machine()) - m_delegate.bind_relative_to(owner()->machine().root_device()); + m_delegate.resolve(); auto dev = netlist::pool().make_unique(nlstate, dfqn); //static_cast(dev.get())->register_callback(std::move(m_delegate)); @@ -753,15 +754,10 @@ netlist_mame_logic_output_device::netlist_mame_logic_output_device(const machine : device_t(mconfig, NETLIST_LOGIC_OUTPUT, tag, owner, clock) , netlist_mame_sub_interface(*owner) , m_in("") + , m_delegate(*this) { } -void netlist_mame_logic_output_device::set_params(const char *in_name, output_delegate &&adelegate) -{ - m_in = in_name; - m_delegate = std::move(adelegate); -} - void netlist_mame_logic_output_device::custom_netlist_additions(netlist::netlist_state_t &nlstate) { pstring pin(m_in); @@ -770,7 +766,7 @@ void netlist_mame_logic_output_device::custom_netlist_additions(netlist::netlist /* ignore if no running machine -> called within device_validity_check context */ if (owner()->has_running_machine()) - m_delegate.bind_relative_to(owner()->machine().root_device()); + m_delegate.resolve(); auto dev = netlist::pool().make_unique(nlstate, dfqn); dev->register_callback(std::move(m_delegate)); diff --git a/src/devices/machine/netlist.h b/src/devices/machine/netlist.h index 52d7602248a..85116ec8f34 100644 --- a/src/devices/machine/netlist.h +++ b/src/devices/machine/netlist.h @@ -337,12 +337,10 @@ public: // construction/destruction netlist_mame_analog_output_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0); - template - void set_params(const char *in_name, void (FC::*callback)(const double, const attotime &), - const char *name, const char *tag) + template void set_params(const char *in_name, T &&... args) { m_in = in_name; - m_delegate = std::move(output_delegate(callback, name, tag, (FC *)nullptr)); + m_delegate.set(std::forward(args)...); } @@ -368,14 +366,10 @@ public: // construction/destruction netlist_mame_logic_output_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0); - void set_params(const char *in_name, output_delegate &&adelegate); - template void set_params(const char *in_name, void (FunctionClass::*callback)(const int, const attotime &), const char *name) + template void set_params(const char *in_name, T &&... args) { - set_params(in_name, output_delegate(callback, name, nullptr, static_cast(nullptr))); - } - template void set_params(const char *in_name, const char *devname, void (FunctionClass::*callback)(const int, const attotime &), const char *name) - { - set_params(in_name, output_delegate(callback, name, devname, static_cast(nullptr))); + m_in = in_name; + m_delegate.set(std::forward(args)...); } protected: diff --git a/src/devices/machine/nvram.cpp b/src/devices/machine/nvram.cpp index 6d7c2302ae8..e00d10447a8 100644 --- a/src/devices/machine/nvram.cpp +++ b/src/devices/machine/nvram.cpp @@ -27,6 +27,7 @@ nvram_device::nvram_device(const machine_config &mconfig, const char *tag, devic device_nvram_interface(mconfig, *this), m_region(*this, DEVICE_SELF), m_default_value(DEFAULT_ALL_1), + m_custom_handler(*this), m_base(nullptr), m_length(0) { @@ -40,7 +41,7 @@ nvram_device::nvram_device(const machine_config &mconfig, const char *tag, devic void nvram_device::device_start() { // bind our handler - m_custom_handler.bind_relative_to(*owner()); + m_custom_handler.resolve(); } diff --git a/src/devices/machine/nvram.h b/src/devices/machine/nvram.h index 45c01bad0c1..a25cc665988 100644 --- a/src/devices/machine/nvram.h +++ b/src/devices/machine/nvram.h @@ -40,18 +40,10 @@ public: // inline configuration helpers void set_default_value(default_value value) { m_default_value = value; } - template void set_custom_handler(Object &&cb) + template void set_custom_handler(T &&... args) { m_default_value = DEFAULT_CUSTOM; - m_custom_handler = std::forward(cb); - } - template void set_custom_handler(const char *devname, void (FunctionClass::*callback)(nvram_device &, void *, size_t), const char *name) - { - set_custom_handler(init_delegate(callback, name, devname, static_cast(nullptr))); - } - template void set_custom_handler(void (FunctionClass::*callback)(nvram_device &, void *, size_t), const char *name) - { - set_custom_handler(init_delegate(callback, name, nullptr, static_cast(nullptr))); + m_custom_handler.set(std::forward(args)...); } // controls diff --git a/src/devices/machine/pci.cpp b/src/devices/machine/pci.cpp index 7148c37ee81..804fcbe6c1f 100644 --- a/src/devices/machine/pci.cpp +++ b/src/devices/machine/pci.cpp @@ -328,12 +328,12 @@ void pci_device::map_device(uint64_t memory_window_start, uint64_t memory_window } uint64_t end = start + bi.size-1; switch(i) { - case 0: space->install_readwrite_handler(start, end, read32_delegate(FUNC(pci_device::unmapped0_r), this), write32_delegate(FUNC(pci_device::unmapped0_w), this)); break; - case 1: space->install_readwrite_handler(start, end, read32_delegate(FUNC(pci_device::unmapped1_r), this), write32_delegate(FUNC(pci_device::unmapped1_w), this)); break; - case 2: space->install_readwrite_handler(start, end, read32_delegate(FUNC(pci_device::unmapped2_r), this), write32_delegate(FUNC(pci_device::unmapped2_w), this)); break; - case 3: space->install_readwrite_handler(start, end, read32_delegate(FUNC(pci_device::unmapped3_r), this), write32_delegate(FUNC(pci_device::unmapped3_w), this)); break; - case 4: space->install_readwrite_handler(start, end, read32_delegate(FUNC(pci_device::unmapped4_r), this), write32_delegate(FUNC(pci_device::unmapped4_w), this)); break; - case 5: space->install_readwrite_handler(start, end, read32_delegate(FUNC(pci_device::unmapped5_r), this), write32_delegate(FUNC(pci_device::unmapped5_w), this)); break; + case 0: space->install_readwrite_handler(start, end, read32_delegate(*this, FUNC(pci_device::unmapped0_r)), write32_delegate(*this, FUNC(pci_device::unmapped0_w))); break; + case 1: space->install_readwrite_handler(start, end, read32_delegate(*this, FUNC(pci_device::unmapped1_r)), write32_delegate(*this, FUNC(pci_device::unmapped1_w))); break; + case 2: space->install_readwrite_handler(start, end, read32_delegate(*this, FUNC(pci_device::unmapped2_r)), write32_delegate(*this, FUNC(pci_device::unmapped2_w))); break; + case 3: space->install_readwrite_handler(start, end, read32_delegate(*this, FUNC(pci_device::unmapped3_r)), write32_delegate(*this, FUNC(pci_device::unmapped3_w))); break; + case 4: space->install_readwrite_handler(start, end, read32_delegate(*this, FUNC(pci_device::unmapped4_r)), write32_delegate(*this, FUNC(pci_device::unmapped4_w))); break; + case 5: space->install_readwrite_handler(start, end, read32_delegate(*this, FUNC(pci_device::unmapped5_r)), write32_delegate(*this, FUNC(pci_device::unmapped5_w))); break; } space->install_device_delegate(start, end, *bi.device, bi.map); diff --git a/src/devices/machine/s3c2400.cpp b/src/devices/machine/s3c2400.cpp index 0484eb74e93..3a4201f976d 100644 --- a/src/devices/machine/s3c2400.cpp +++ b/src/devices/machine/s3c2400.cpp @@ -225,29 +225,29 @@ void s3c2400_device::device_start() { s3c24xx_device_start(); - address_space &space = m_cpu->memory().space( AS_PROGRAM); - space.install_readwrite_handler(0x14000000, 0x1400003b, read32_delegate(FUNC(s3c2400_device::s3c24xx_memcon_r), this), write32_delegate(FUNC(s3c2400_device::s3c24xx_memcon_w), this)); - space.install_readwrite_handler(0x14200000, 0x1420005b, read32_delegate(FUNC(s3c2400_device::s3c24xx_usb_host_r), this), write32_delegate(FUNC(s3c2400_device::s3c24xx_usb_host_w), this)); - space.install_readwrite_handler(0x14400000, 0x14400017, read32_delegate(FUNC(s3c2400_device::s3c24xx_irq_r), this), write32_delegate(FUNC(s3c2400_device::s3c24xx_irq_w), this)); - space.install_readwrite_handler(0x14600000, 0x1460001b, read32_delegate(FUNC(s3c2400_device::s3c24xx_dma_0_r), this), write32_delegate(FUNC(s3c2400_device::s3c24xx_dma_0_w), this)); - space.install_readwrite_handler(0x14600020, 0x1460003b, read32_delegate(FUNC(s3c2400_device::s3c24xx_dma_1_r), this), write32_delegate(FUNC(s3c2400_device::s3c24xx_dma_1_w), this)); - space.install_readwrite_handler(0x14600040, 0x1460005b, read32_delegate(FUNC(s3c2400_device::s3c24xx_dma_2_r), this), write32_delegate(FUNC(s3c2400_device::s3c24xx_dma_2_w), this)); - space.install_readwrite_handler(0x14600060, 0x1460007b, read32_delegate(FUNC(s3c2400_device::s3c24xx_dma_3_r), this), write32_delegate(FUNC(s3c2400_device::s3c24xx_dma_3_w), this)); - space.install_readwrite_handler(0x14800000, 0x14800017, read32_delegate(FUNC(s3c2400_device::s3c24xx_clkpow_r), this), write32_delegate(FUNC(s3c2400_device::s3c24xx_clkpow_w), this)); - space.install_readwrite_handler(0x14a00000, 0x14a003ff, read32_delegate(FUNC(s3c2400_device::s3c24xx_lcd_r), this), write32_delegate(FUNC(s3c2400_device::s3c24xx_lcd_w), this)); - space.install_readwrite_handler(0x14a00400, 0x14a007ff, read32_delegate(FUNC(s3c2400_device::s3c24xx_lcd_palette_r), this), write32_delegate(FUNC(s3c2400_device::s3c24xx_lcd_palette_w), this)); - space.install_readwrite_handler(0x15000000, 0x1500002b, read32_delegate(FUNC(s3c2400_device::s3c24xx_uart_0_r), this), write32_delegate(FUNC(s3c2400_device::s3c24xx_uart_0_w), this)); - space.install_readwrite_handler(0x15004000, 0x1500402b, read32_delegate(FUNC(s3c2400_device::s3c24xx_uart_1_r), this), write32_delegate(FUNC(s3c2400_device::s3c24xx_uart_1_w), this)); - space.install_readwrite_handler(0x15100000, 0x15100043, read32_delegate(FUNC(s3c2400_device::s3c24xx_pwm_r), this), write32_delegate(FUNC(s3c2400_device::s3c24xx_pwm_w), this)); - space.install_readwrite_handler(0x15200140, 0x152001fb, read32_delegate(FUNC(s3c2400_device::s3c24xx_usb_device_r), this), write32_delegate(FUNC(s3c2400_device::s3c24xx_usb_device_w), this)); - space.install_readwrite_handler(0x15300000, 0x1530000b, read32_delegate(FUNC(s3c2400_device::s3c24xx_wdt_r), this), write32_delegate(FUNC(s3c2400_device::s3c24xx_wdt_w), this)); - space.install_readwrite_handler(0x15400000, 0x1540000f, read32_delegate(FUNC(s3c2400_device::s3c24xx_iic_r), this), write32_delegate(FUNC(s3c2400_device::s3c24xx_iic_w), this)); - space.install_readwrite_handler(0x15508000, 0x15508013, read32_delegate(FUNC(s3c2400_device::s3c24xx_iis_r), this), write32_delegate(FUNC(s3c2400_device::s3c24xx_iis_w), this)); - space.install_readwrite_handler(0x15600000, 0x1560005b, read32_delegate(FUNC(s3c2400_device::s3c24xx_gpio_r), this), write32_delegate(FUNC(s3c2400_device::s3c24xx_gpio_w), this)); - space.install_readwrite_handler(0x15700040, 0x1570008b, read32_delegate(FUNC(s3c2400_device::s3c24xx_rtc_r), this), write32_delegate(FUNC(s3c2400_device::s3c24xx_rtc_w), this)); - space.install_readwrite_handler(0x15800000, 0x15800007, read32_delegate(FUNC(s3c2400_device::s3c24xx_adc_r), this), write32_delegate(FUNC(s3c2400_device::s3c24xx_adc_w), this)); - space.install_readwrite_handler(0x15900000, 0x15900017, read32_delegate(FUNC(s3c2400_device::s3c24xx_spi_0_r), this), write32_delegate(FUNC(s3c2400_device::s3c24xx_spi_0_w), this)); - space.install_readwrite_handler(0x15a00000, 0x15a0003f, read32_delegate(FUNC(s3c2400_device::s3c24xx_mmc_r), this), write32_delegate(FUNC(s3c2400_device::s3c24xx_mmc_w), this)); + address_space &space = m_cpu->memory().space(AS_PROGRAM); + space.install_readwrite_handler(0x14000000, 0x1400003b, read32_delegate(*this, FUNC(s3c2400_device::s3c24xx_memcon_r)), write32_delegate(*this, FUNC(s3c2400_device::s3c24xx_memcon_w))); + space.install_readwrite_handler(0x14200000, 0x1420005b, read32_delegate(*this, FUNC(s3c2400_device::s3c24xx_usb_host_r)), write32_delegate(*this, FUNC(s3c2400_device::s3c24xx_usb_host_w))); + space.install_readwrite_handler(0x14400000, 0x14400017, read32_delegate(*this, FUNC(s3c2400_device::s3c24xx_irq_r)), write32_delegate(*this, FUNC(s3c2400_device::s3c24xx_irq_w))); + space.install_readwrite_handler(0x14600000, 0x1460001b, read32_delegate(*this, FUNC(s3c2400_device::s3c24xx_dma_0_r)), write32_delegate(*this, FUNC(s3c2400_device::s3c24xx_dma_0_w))); + space.install_readwrite_handler(0x14600020, 0x1460003b, read32_delegate(*this, FUNC(s3c2400_device::s3c24xx_dma_1_r)), write32_delegate(*this, FUNC(s3c2400_device::s3c24xx_dma_1_w))); + space.install_readwrite_handler(0x14600040, 0x1460005b, read32_delegate(*this, FUNC(s3c2400_device::s3c24xx_dma_2_r)), write32_delegate(*this, FUNC(s3c2400_device::s3c24xx_dma_2_w))); + space.install_readwrite_handler(0x14600060, 0x1460007b, read32_delegate(*this, FUNC(s3c2400_device::s3c24xx_dma_3_r)), write32_delegate(*this, FUNC(s3c2400_device::s3c24xx_dma_3_w))); + space.install_readwrite_handler(0x14800000, 0x14800017, read32_delegate(*this, FUNC(s3c2400_device::s3c24xx_clkpow_r)), write32_delegate(*this, FUNC(s3c2400_device::s3c24xx_clkpow_w))); + space.install_readwrite_handler(0x14a00000, 0x14a003ff, read32_delegate(*this, FUNC(s3c2400_device::s3c24xx_lcd_r)), write32_delegate(*this, FUNC(s3c2400_device::s3c24xx_lcd_w))); + space.install_readwrite_handler(0x14a00400, 0x14a007ff, read32_delegate(*this, FUNC(s3c2400_device::s3c24xx_lcd_palette_r)), write32_delegate(*this, FUNC(s3c2400_device::s3c24xx_lcd_palette_w))); + space.install_readwrite_handler(0x15000000, 0x1500002b, read32_delegate(*this, FUNC(s3c2400_device::s3c24xx_uart_0_r)), write32_delegate(*this, FUNC(s3c2400_device::s3c24xx_uart_0_w))); + space.install_readwrite_handler(0x15004000, 0x1500402b, read32_delegate(*this, FUNC(s3c2400_device::s3c24xx_uart_1_r)), write32_delegate(*this, FUNC(s3c2400_device::s3c24xx_uart_1_w))); + space.install_readwrite_handler(0x15100000, 0x15100043, read32_delegate(*this, FUNC(s3c2400_device::s3c24xx_pwm_r)), write32_delegate(*this, FUNC(s3c2400_device::s3c24xx_pwm_w))); + space.install_readwrite_handler(0x15200140, 0x152001fb, read32_delegate(*this, FUNC(s3c2400_device::s3c24xx_usb_device_r)), write32_delegate(*this, FUNC(s3c2400_device::s3c24xx_usb_device_w))); + space.install_readwrite_handler(0x15300000, 0x1530000b, read32_delegate(*this, FUNC(s3c2400_device::s3c24xx_wdt_r)), write32_delegate(*this, FUNC(s3c2400_device::s3c24xx_wdt_w))); + space.install_readwrite_handler(0x15400000, 0x1540000f, read32_delegate(*this, FUNC(s3c2400_device::s3c24xx_iic_r)), write32_delegate(*this, FUNC(s3c2400_device::s3c24xx_iic_w))); + space.install_readwrite_handler(0x15508000, 0x15508013, read32_delegate(*this, FUNC(s3c2400_device::s3c24xx_iis_r)), write32_delegate(*this, FUNC(s3c2400_device::s3c24xx_iis_w))); + space.install_readwrite_handler(0x15600000, 0x1560005b, read32_delegate(*this, FUNC(s3c2400_device::s3c24xx_gpio_r)), write32_delegate(*this, FUNC(s3c2400_device::s3c24xx_gpio_w))); + space.install_readwrite_handler(0x15700040, 0x1570008b, read32_delegate(*this, FUNC(s3c2400_device::s3c24xx_rtc_r)), write32_delegate(*this, FUNC(s3c2400_device::s3c24xx_rtc_w))); + space.install_readwrite_handler(0x15800000, 0x15800007, read32_delegate(*this, FUNC(s3c2400_device::s3c24xx_adc_r)), write32_delegate(*this, FUNC(s3c2400_device::s3c24xx_adc_w))); + space.install_readwrite_handler(0x15900000, 0x15900017, read32_delegate(*this, FUNC(s3c2400_device::s3c24xx_spi_0_r)), write32_delegate(*this, FUNC(s3c2400_device::s3c24xx_spi_0_w))); + space.install_readwrite_handler(0x15a00000, 0x15a0003f, read32_delegate(*this, FUNC(s3c2400_device::s3c24xx_mmc_r)), write32_delegate(*this, FUNC(s3c2400_device::s3c24xx_mmc_w))); s3c24xx_video_start(); } diff --git a/src/devices/machine/s3c2410.cpp b/src/devices/machine/s3c2410.cpp index a44c9151f6b..52f4243120e 100644 --- a/src/devices/machine/s3c2410.cpp +++ b/src/devices/machine/s3c2410.cpp @@ -288,31 +288,31 @@ void s3c2410_device::device_start() s3c24xx_device_start(); address_space &space = m_cpu->memory().space( AS_PROGRAM); - space.install_readwrite_handler( 0x48000000, 0x4800003b, read32_delegate(FUNC(s3c2410_device::s3c24xx_memcon_r), this), write32_delegate(FUNC(s3c2410_device::s3c24xx_memcon_w), this)); - space.install_readwrite_handler( 0x49000000, 0x4900005b, read32_delegate(FUNC(s3c2410_device::s3c24xx_usb_host_r), this), write32_delegate(FUNC(s3c2410_device::s3c24xx_usb_host_w), this)); - space.install_readwrite_handler( 0x4a000000, 0x4a00001f, read32_delegate(FUNC(s3c2410_device::s3c24xx_irq_r), this), write32_delegate(FUNC(s3c2410_device::s3c24xx_irq_w), this)); - space.install_readwrite_handler( 0x4b000000, 0x4b000023, read32_delegate(FUNC(s3c2410_device::s3c24xx_dma_0_r), this), write32_delegate(FUNC(s3c2410_device::s3c24xx_dma_0_w), this)); - space.install_readwrite_handler( 0x4b000040, 0x4b000063, read32_delegate(FUNC(s3c2410_device::s3c24xx_dma_1_r), this), write32_delegate(FUNC(s3c2410_device::s3c24xx_dma_1_w), this)); - space.install_readwrite_handler( 0x4b000080, 0x4b0000a3, read32_delegate(FUNC(s3c2410_device::s3c24xx_dma_2_r), this), write32_delegate(FUNC(s3c2410_device::s3c24xx_dma_2_w), this)); - space.install_readwrite_handler( 0x4b0000c0, 0x4b0000e3, read32_delegate(FUNC(s3c2410_device::s3c24xx_dma_3_r), this), write32_delegate(FUNC(s3c2410_device::s3c24xx_dma_3_w), this)); - space.install_readwrite_handler( 0x4c000000, 0x4c000017, read32_delegate(FUNC(s3c2410_device::s3c24xx_clkpow_r), this), write32_delegate(FUNC(s3c2410_device::s3c24xx_clkpow_w), this)); - space.install_readwrite_handler( 0x4d000000, 0x4d000063, read32_delegate(FUNC(s3c2410_device::s3c24xx_lcd_r), this), write32_delegate(FUNC(s3c2410_device::s3c24xx_lcd_w), this)); - space.install_readwrite_handler( 0x4d000400, 0x4d0007ff, read32_delegate(FUNC(s3c2410_device::s3c24xx_lcd_palette_r), this), write32_delegate(FUNC(s3c2410_device::s3c24xx_lcd_palette_w), this)); - space.install_readwrite_handler( 0x4e000000, 0x4e000017, read32_delegate(FUNC(s3c2410_device::s3c24xx_nand_r), this), write32_delegate(FUNC(s3c2410_device::s3c24xx_nand_w), this)); - space.install_readwrite_handler( 0x50000000, 0x5000002b, read32_delegate(FUNC(s3c2410_device::s3c24xx_uart_0_r), this), write32_delegate(FUNC(s3c2410_device::s3c24xx_uart_0_w), this)); - space.install_readwrite_handler( 0x50004000, 0x5000402b, read32_delegate(FUNC(s3c2410_device::s3c24xx_uart_1_r), this), write32_delegate(FUNC(s3c2410_device::s3c24xx_uart_1_w), this)); - space.install_readwrite_handler( 0x50008000, 0x5000802b, read32_delegate(FUNC(s3c2410_device::s3c24xx_uart_2_r), this), write32_delegate(FUNC(s3c2410_device::s3c24xx_uart_2_w), this)); - space.install_readwrite_handler( 0x51000000, 0x51000043, read32_delegate(FUNC(s3c2410_device::s3c24xx_pwm_r), this), write32_delegate(FUNC(s3c2410_device::s3c24xx_pwm_w), this)); - space.install_readwrite_handler( 0x52000140, 0x5200026f, read32_delegate(FUNC(s3c2410_device::s3c24xx_usb_device_r), this), write32_delegate(FUNC(s3c2410_device::s3c24xx_usb_device_w), this)); - space.install_readwrite_handler( 0x53000000, 0x5300000b, read32_delegate(FUNC(s3c2410_device::s3c24xx_wdt_r), this), write32_delegate(FUNC(s3c2410_device::s3c24xx_wdt_w), this)); - space.install_readwrite_handler( 0x54000000, 0x5400000f, read32_delegate(FUNC(s3c2410_device::s3c24xx_iic_r), this), write32_delegate(FUNC(s3c2410_device::s3c24xx_iic_w), this)); - space.install_readwrite_handler( 0x55000000, 0x55000013, read32_delegate(FUNC(s3c2410_device::s3c24xx_iis_r), this), write32_delegate(FUNC(s3c2410_device::s3c24xx_iis_w), this)); - space.install_readwrite_handler( 0x56000000, 0x560000bf, read32_delegate(FUNC(s3c2410_device::s3c24xx_gpio_r), this), write32_delegate(FUNC(s3c2410_device::s3c24xx_gpio_w), this)); - space.install_readwrite_handler( 0x57000040, 0x5700008b, read32_delegate(FUNC(s3c2410_device::s3c24xx_rtc_r), this), write32_delegate(FUNC(s3c2410_device::s3c24xx_rtc_w), this)); - space.install_readwrite_handler( 0x58000000, 0x58000013, read32_delegate(FUNC(s3c2410_device::s3c24xx_adc_r), this), write32_delegate(FUNC(s3c2410_device::s3c24xx_adc_w), this)); - space.install_readwrite_handler( 0x59000000, 0x59000017, read32_delegate(FUNC(s3c2410_device::s3c24xx_spi_0_r), this), write32_delegate(FUNC(s3c2410_device::s3c24xx_spi_0_w), this)); - space.install_readwrite_handler( 0x59000020, 0x59000037, read32_delegate(FUNC(s3c2410_device::s3c24xx_spi_1_r), this), write32_delegate(FUNC(s3c2410_device::s3c24xx_spi_1_w), this)); - space.install_readwrite_handler( 0x5a000000, 0x5a000043, read32_delegate(FUNC(s3c2410_device::s3c24xx_sdi_r), this), write32_delegate(FUNC(s3c2410_device::s3c24xx_sdi_w), this)); + space.install_readwrite_handler( 0x48000000, 0x4800003b, read32_delegate(*this, FUNC(s3c2410_device::s3c24xx_memcon_r)), write32_delegate(*this, FUNC(s3c2410_device::s3c24xx_memcon_w))); + space.install_readwrite_handler( 0x49000000, 0x4900005b, read32_delegate(*this, FUNC(s3c2410_device::s3c24xx_usb_host_r)), write32_delegate(*this, FUNC(s3c2410_device::s3c24xx_usb_host_w))); + space.install_readwrite_handler( 0x4a000000, 0x4a00001f, read32_delegate(*this, FUNC(s3c2410_device::s3c24xx_irq_r)), write32_delegate(*this, FUNC(s3c2410_device::s3c24xx_irq_w))); + space.install_readwrite_handler( 0x4b000000, 0x4b000023, read32_delegate(*this, FUNC(s3c2410_device::s3c24xx_dma_0_r)), write32_delegate(*this, FUNC(s3c2410_device::s3c24xx_dma_0_w))); + space.install_readwrite_handler( 0x4b000040, 0x4b000063, read32_delegate(*this, FUNC(s3c2410_device::s3c24xx_dma_1_r)), write32_delegate(*this, FUNC(s3c2410_device::s3c24xx_dma_1_w))); + space.install_readwrite_handler( 0x4b000080, 0x4b0000a3, read32_delegate(*this, FUNC(s3c2410_device::s3c24xx_dma_2_r)), write32_delegate(*this, FUNC(s3c2410_device::s3c24xx_dma_2_w))); + space.install_readwrite_handler( 0x4b0000c0, 0x4b0000e3, read32_delegate(*this, FUNC(s3c2410_device::s3c24xx_dma_3_r)), write32_delegate(*this, FUNC(s3c2410_device::s3c24xx_dma_3_w))); + space.install_readwrite_handler( 0x4c000000, 0x4c000017, read32_delegate(*this, FUNC(s3c2410_device::s3c24xx_clkpow_r)), write32_delegate(*this, FUNC(s3c2410_device::s3c24xx_clkpow_w))); + space.install_readwrite_handler( 0x4d000000, 0x4d000063, read32_delegate(*this, FUNC(s3c2410_device::s3c24xx_lcd_r)), write32_delegate(*this, FUNC(s3c2410_device::s3c24xx_lcd_w))); + space.install_readwrite_handler( 0x4d000400, 0x4d0007ff, read32_delegate(*this, FUNC(s3c2410_device::s3c24xx_lcd_palette_r)), write32_delegate(*this, FUNC(s3c2410_device::s3c24xx_lcd_palette_w))); + space.install_readwrite_handler( 0x4e000000, 0x4e000017, read32_delegate(*this, FUNC(s3c2410_device::s3c24xx_nand_r)), write32_delegate(*this, FUNC(s3c2410_device::s3c24xx_nand_w))); + space.install_readwrite_handler( 0x50000000, 0x5000002b, read32_delegate(*this, FUNC(s3c2410_device::s3c24xx_uart_0_r)), write32_delegate(*this, FUNC(s3c2410_device::s3c24xx_uart_0_w))); + space.install_readwrite_handler( 0x50004000, 0x5000402b, read32_delegate(*this, FUNC(s3c2410_device::s3c24xx_uart_1_r)), write32_delegate(*this, FUNC(s3c2410_device::s3c24xx_uart_1_w))); + space.install_readwrite_handler( 0x50008000, 0x5000802b, read32_delegate(*this, FUNC(s3c2410_device::s3c24xx_uart_2_r)), write32_delegate(*this, FUNC(s3c2410_device::s3c24xx_uart_2_w))); + space.install_readwrite_handler( 0x51000000, 0x51000043, read32_delegate(*this, FUNC(s3c2410_device::s3c24xx_pwm_r)), write32_delegate(*this, FUNC(s3c2410_device::s3c24xx_pwm_w))); + space.install_readwrite_handler( 0x52000140, 0x5200026f, read32_delegate(*this, FUNC(s3c2410_device::s3c24xx_usb_device_r)), write32_delegate(*this, FUNC(s3c2410_device::s3c24xx_usb_device_w))); + space.install_readwrite_handler( 0x53000000, 0x5300000b, read32_delegate(*this, FUNC(s3c2410_device::s3c24xx_wdt_r)), write32_delegate(*this, FUNC(s3c2410_device::s3c24xx_wdt_w))); + space.install_readwrite_handler( 0x54000000, 0x5400000f, read32_delegate(*this, FUNC(s3c2410_device::s3c24xx_iic_r)), write32_delegate(*this, FUNC(s3c2410_device::s3c24xx_iic_w))); + space.install_readwrite_handler( 0x55000000, 0x55000013, read32_delegate(*this, FUNC(s3c2410_device::s3c24xx_iis_r)), write32_delegate(*this, FUNC(s3c2410_device::s3c24xx_iis_w))); + space.install_readwrite_handler( 0x56000000, 0x560000bf, read32_delegate(*this, FUNC(s3c2410_device::s3c24xx_gpio_r)), write32_delegate(*this, FUNC(s3c2410_device::s3c24xx_gpio_w))); + space.install_readwrite_handler( 0x57000040, 0x5700008b, read32_delegate(*this, FUNC(s3c2410_device::s3c24xx_rtc_r)), write32_delegate(*this, FUNC(s3c2410_device::s3c24xx_rtc_w))); + space.install_readwrite_handler( 0x58000000, 0x58000013, read32_delegate(*this, FUNC(s3c2410_device::s3c24xx_adc_r)), write32_delegate(*this, FUNC(s3c2410_device::s3c24xx_adc_w))); + space.install_readwrite_handler( 0x59000000, 0x59000017, read32_delegate(*this, FUNC(s3c2410_device::s3c24xx_spi_0_r)), write32_delegate(*this, FUNC(s3c2410_device::s3c24xx_spi_0_w))); + space.install_readwrite_handler( 0x59000020, 0x59000037, read32_delegate(*this, FUNC(s3c2410_device::s3c24xx_spi_1_r)), write32_delegate(*this, FUNC(s3c2410_device::s3c24xx_spi_1_w))); + space.install_readwrite_handler( 0x5a000000, 0x5a000043, read32_delegate(*this, FUNC(s3c2410_device::s3c24xx_sdi_r)), write32_delegate(*this, FUNC(s3c2410_device::s3c24xx_sdi_w))); s3c24xx_video_start(); } diff --git a/src/devices/machine/s3c2440.cpp b/src/devices/machine/s3c2440.cpp index d11a1b0c88f..c00026f23ff 100644 --- a/src/devices/machine/s3c2440.cpp +++ b/src/devices/machine/s3c2440.cpp @@ -303,33 +303,33 @@ s3c2440_device::~s3c2440_device() void s3c2440_device::device_start() { address_space &space = m_cpu->memory().space( AS_PROGRAM); - space.install_readwrite_handler(0x48000000, 0x4800003b, read32_delegate(FUNC(s3c2440_device::s3c24xx_memcon_r), this), write32_delegate(FUNC(s3c2440_device::s3c24xx_memcon_w), this)); - space.install_readwrite_handler(0x49000000, 0x4900005b, read32_delegate(FUNC(s3c2440_device::s3c24xx_usb_host_r), this), write32_delegate(FUNC(s3c2440_device::s3c24xx_usb_host_w), this)); - space.install_readwrite_handler(0x4a000000, 0x4a00001f, read32_delegate(FUNC(s3c2440_device::s3c24xx_irq_r), this), write32_delegate(FUNC(s3c2440_device::s3c24xx_irq_w), this)); - space.install_readwrite_handler(0x4b000000, 0x4b000023, read32_delegate(FUNC(s3c2440_device::s3c24xx_dma_0_r), this), write32_delegate(FUNC(s3c2440_device::s3c24xx_dma_0_w), this)); - space.install_readwrite_handler(0x4b000040, 0x4b000063, read32_delegate(FUNC(s3c2440_device::s3c24xx_dma_1_r), this), write32_delegate(FUNC(s3c2440_device::s3c24xx_dma_1_w), this)); - space.install_readwrite_handler(0x4b000080, 0x4b0000a3, read32_delegate(FUNC(s3c2440_device::s3c24xx_dma_2_r), this), write32_delegate(FUNC(s3c2440_device::s3c24xx_dma_2_w), this)); - space.install_readwrite_handler(0x4b0000c0, 0x4b0000e3, read32_delegate(FUNC(s3c2440_device::s3c24xx_dma_3_r), this), write32_delegate(FUNC(s3c2440_device::s3c24xx_dma_3_w), this)); - space.install_readwrite_handler(0x4c000000, 0x4c00001b, read32_delegate(FUNC(s3c2440_device::s3c24xx_clkpow_r), this), write32_delegate(FUNC(s3c2440_device::s3c24xx_clkpow_w), this)); - space.install_readwrite_handler(0x4d000000, 0x4d000063, read32_delegate(FUNC(s3c2440_device::s3c24xx_lcd_r), this), write32_delegate(FUNC(s3c2440_device::s3c24xx_lcd_w), this)); - space.install_readwrite_handler(0x4d000400, 0x4d0007ff, read32_delegate(FUNC(s3c2440_device::s3c24xx_lcd_palette_r), this), write32_delegate(FUNC(s3c2440_device::s3c24xx_lcd_palette_w), this)); - space.install_readwrite_handler(0x4e000000, 0x4e00003f, read32_delegate(FUNC(s3c2440_device::s3c24xx_nand_r), this), write32_delegate(FUNC(s3c2440_device::s3c24xx_nand_w), this)); - space.install_readwrite_handler(0x4f000000, 0x4f0000a3, read32_delegate(FUNC(s3c2440_device::s3c24xx_cam_r), this), write32_delegate(FUNC(s3c2440_device::s3c24xx_cam_w), this)); - space.install_readwrite_handler(0x50000000, 0x5000002b, read32_delegate(FUNC(s3c2440_device::s3c24xx_uart_0_r), this), write32_delegate(FUNC(s3c2440_device::s3c24xx_uart_0_w), this)); - space.install_readwrite_handler(0x50004000, 0x5000402b, read32_delegate(FUNC(s3c2440_device::s3c24xx_uart_1_r), this), write32_delegate(FUNC(s3c2440_device::s3c24xx_uart_1_w), this)); - space.install_readwrite_handler(0x50008000, 0x5000802b, read32_delegate(FUNC(s3c2440_device::s3c24xx_uart_2_r), this), write32_delegate(FUNC(s3c2440_device::s3c24xx_uart_2_w), this)); - space.install_readwrite_handler(0x51000000, 0x51000043, read32_delegate(FUNC(s3c2440_device::s3c24xx_pwm_r), this), write32_delegate(FUNC(s3c2440_device::s3c24xx_pwm_w), this)); - space.install_readwrite_handler(0x52000140, 0x5200026f, read32_delegate(FUNC(s3c2440_device::s3c24xx_usb_device_r), this), write32_delegate(FUNC(s3c2440_device::s3c24xx_usb_device_w), this)); - space.install_readwrite_handler(0x53000000, 0x5300000b, read32_delegate(FUNC(s3c2440_device::s3c24xx_wdt_r), this), write32_delegate(FUNC(s3c2440_device::s3c24xx_wdt_w), this)); - space.install_readwrite_handler(0x54000000, 0x54000013, read32_delegate(FUNC(s3c2440_device::s3c24xx_iic_r), this), write32_delegate(FUNC(s3c2440_device::s3c24xx_iic_w), this)); - space.install_readwrite_handler(0x55000000, 0x55000013, read32_delegate(FUNC(s3c2440_device::s3c24xx_iis_r), this), write32_delegate(FUNC(s3c2440_device::s3c24xx_iis_w), this)); - space.install_readwrite_handler(0x56000000, 0x560000df, read32_delegate(FUNC(s3c2440_device::s3c24xx_gpio_r), this), write32_delegate(FUNC(s3c2440_device::s3c24xx_gpio_w), this)); - space.install_readwrite_handler(0x57000040, 0x5700008b, read32_delegate(FUNC(s3c2440_device::s3c24xx_rtc_r), this), write32_delegate(FUNC(s3c2440_device::s3c24xx_rtc_w), this)); - space.install_readwrite_handler(0x58000000, 0x58000017, read32_delegate(FUNC(s3c2440_device::s3c24xx_adc_r), this), write32_delegate(FUNC(s3c2440_device::s3c24xx_adc_w), this)); - space.install_readwrite_handler(0x59000000, 0x59000017, read32_delegate(FUNC(s3c2440_device::s3c24xx_spi_0_r), this), write32_delegate(FUNC(s3c2440_device::s3c24xx_spi_0_w), this)); - space.install_readwrite_handler(0x59000020, 0x59000037, read32_delegate(FUNC(s3c2440_device::s3c24xx_spi_1_r), this), write32_delegate(FUNC(s3c2440_device::s3c24xx_spi_1_w), this)); - space.install_readwrite_handler(0x5a000000, 0x5a000043, read32_delegate(FUNC(s3c2440_device::s3c24xx_sdi_r), this), write32_delegate(FUNC(s3c2440_device::s3c24xx_sdi_w), this)); - space.install_readwrite_handler(0x5b000000, 0x5b00001f, read32_delegate(FUNC(s3c2440_device::s3c24xx_ac97_r), this), write32_delegate(FUNC(s3c2440_device::s3c24xx_ac97_w), this)); + space.install_readwrite_handler(0x48000000, 0x4800003b, read32_delegate(*this, FUNC(s3c2440_device::s3c24xx_memcon_r)), write32_delegate(*this, FUNC(s3c2440_device::s3c24xx_memcon_w))); + space.install_readwrite_handler(0x49000000, 0x4900005b, read32_delegate(*this, FUNC(s3c2440_device::s3c24xx_usb_host_r)), write32_delegate(*this, FUNC(s3c2440_device::s3c24xx_usb_host_w))); + space.install_readwrite_handler(0x4a000000, 0x4a00001f, read32_delegate(*this, FUNC(s3c2440_device::s3c24xx_irq_r)), write32_delegate(*this, FUNC(s3c2440_device::s3c24xx_irq_w))); + space.install_readwrite_handler(0x4b000000, 0x4b000023, read32_delegate(*this, FUNC(s3c2440_device::s3c24xx_dma_0_r)), write32_delegate(*this, FUNC(s3c2440_device::s3c24xx_dma_0_w))); + space.install_readwrite_handler(0x4b000040, 0x4b000063, read32_delegate(*this, FUNC(s3c2440_device::s3c24xx_dma_1_r)), write32_delegate(*this, FUNC(s3c2440_device::s3c24xx_dma_1_w))); + space.install_readwrite_handler(0x4b000080, 0x4b0000a3, read32_delegate(*this, FUNC(s3c2440_device::s3c24xx_dma_2_r)), write32_delegate(*this, FUNC(s3c2440_device::s3c24xx_dma_2_w))); + space.install_readwrite_handler(0x4b0000c0, 0x4b0000e3, read32_delegate(*this, FUNC(s3c2440_device::s3c24xx_dma_3_r)), write32_delegate(*this, FUNC(s3c2440_device::s3c24xx_dma_3_w))); + space.install_readwrite_handler(0x4c000000, 0x4c00001b, read32_delegate(*this, FUNC(s3c2440_device::s3c24xx_clkpow_r)), write32_delegate(*this, FUNC(s3c2440_device::s3c24xx_clkpow_w))); + space.install_readwrite_handler(0x4d000000, 0x4d000063, read32_delegate(*this, FUNC(s3c2440_device::s3c24xx_lcd_r)), write32_delegate(*this, FUNC(s3c2440_device::s3c24xx_lcd_w))); + space.install_readwrite_handler(0x4d000400, 0x4d0007ff, read32_delegate(*this, FUNC(s3c2440_device::s3c24xx_lcd_palette_r)), write32_delegate(*this, FUNC(s3c2440_device::s3c24xx_lcd_palette_w))); + space.install_readwrite_handler(0x4e000000, 0x4e00003f, read32_delegate(*this, FUNC(s3c2440_device::s3c24xx_nand_r)), write32_delegate(*this, FUNC(s3c2440_device::s3c24xx_nand_w))); + space.install_readwrite_handler(0x4f000000, 0x4f0000a3, read32_delegate(*this, FUNC(s3c2440_device::s3c24xx_cam_r)), write32_delegate(*this, FUNC(s3c2440_device::s3c24xx_cam_w))); + space.install_readwrite_handler(0x50000000, 0x5000002b, read32_delegate(*this, FUNC(s3c2440_device::s3c24xx_uart_0_r)), write32_delegate(*this, FUNC(s3c2440_device::s3c24xx_uart_0_w))); + space.install_readwrite_handler(0x50004000, 0x5000402b, read32_delegate(*this, FUNC(s3c2440_device::s3c24xx_uart_1_r)), write32_delegate(*this, FUNC(s3c2440_device::s3c24xx_uart_1_w))); + space.install_readwrite_handler(0x50008000, 0x5000802b, read32_delegate(*this, FUNC(s3c2440_device::s3c24xx_uart_2_r)), write32_delegate(*this, FUNC(s3c2440_device::s3c24xx_uart_2_w))); + space.install_readwrite_handler(0x51000000, 0x51000043, read32_delegate(*this, FUNC(s3c2440_device::s3c24xx_pwm_r)), write32_delegate(*this, FUNC(s3c2440_device::s3c24xx_pwm_w))); + space.install_readwrite_handler(0x52000140, 0x5200026f, read32_delegate(*this, FUNC(s3c2440_device::s3c24xx_usb_device_r)), write32_delegate(*this, FUNC(s3c2440_device::s3c24xx_usb_device_w))); + space.install_readwrite_handler(0x53000000, 0x5300000b, read32_delegate(*this, FUNC(s3c2440_device::s3c24xx_wdt_r)), write32_delegate(*this, FUNC(s3c2440_device::s3c24xx_wdt_w))); + space.install_readwrite_handler(0x54000000, 0x54000013, read32_delegate(*this, FUNC(s3c2440_device::s3c24xx_iic_r)), write32_delegate(*this, FUNC(s3c2440_device::s3c24xx_iic_w))); + space.install_readwrite_handler(0x55000000, 0x55000013, read32_delegate(*this, FUNC(s3c2440_device::s3c24xx_iis_r)), write32_delegate(*this, FUNC(s3c2440_device::s3c24xx_iis_w))); + space.install_readwrite_handler(0x56000000, 0x560000df, read32_delegate(*this, FUNC(s3c2440_device::s3c24xx_gpio_r)), write32_delegate(*this, FUNC(s3c2440_device::s3c24xx_gpio_w))); + space.install_readwrite_handler(0x57000040, 0x5700008b, read32_delegate(*this, FUNC(s3c2440_device::s3c24xx_rtc_r)), write32_delegate(*this, FUNC(s3c2440_device::s3c24xx_rtc_w))); + space.install_readwrite_handler(0x58000000, 0x58000017, read32_delegate(*this, FUNC(s3c2440_device::s3c24xx_adc_r)), write32_delegate(*this, FUNC(s3c2440_device::s3c24xx_adc_w))); + space.install_readwrite_handler(0x59000000, 0x59000017, read32_delegate(*this, FUNC(s3c2440_device::s3c24xx_spi_0_r)), write32_delegate(*this, FUNC(s3c2440_device::s3c24xx_spi_0_w))); + space.install_readwrite_handler(0x59000020, 0x59000037, read32_delegate(*this, FUNC(s3c2440_device::s3c24xx_spi_1_r)), write32_delegate(*this, FUNC(s3c2440_device::s3c24xx_spi_1_w))); + space.install_readwrite_handler(0x5a000000, 0x5a000043, read32_delegate(*this, FUNC(s3c2440_device::s3c24xx_sdi_r)), write32_delegate(*this, FUNC(s3c2440_device::s3c24xx_sdi_w))); + space.install_readwrite_handler(0x5b000000, 0x5b00001f, read32_delegate(*this, FUNC(s3c2440_device::s3c24xx_ac97_r)), write32_delegate(*this, FUNC(s3c2440_device::s3c24xx_ac97_w))); s3c24xx_device_start(); diff --git a/src/devices/machine/tc009xlvc.cpp b/src/devices/machine/tc009xlvc.cpp index a0a474996ef..e48e04fc501 100644 --- a/src/devices/machine/tc009xlvc.cpp +++ b/src/devices/machine/tc009xlvc.cpp @@ -92,7 +92,7 @@ void tc0091lvc_device::cpu_map(address_map &map) { // 0x0000-0x7fff ROM (0x0000-0x5fff Fixed, 0x6000-0x7fff Bankswitched) map(0x0000, 0x5fff).r(FUNC(tc0091lvc_device::rom_r)); - map(0x6000, 0x7fff).lr8("banked_rom_r", [this](offs_t offset) { return rom_r((m_rom_bank << 13) | (offset & 0x1fff)); }); + map(0x6000, 0x7fff).lr8(NAME([this] (offs_t offset) { return rom_r((m_rom_bank << 13) | (offset & 0x1fff)); })); // 0x8000-0xbfff External mappable area @@ -110,7 +110,7 @@ void tc0091lvc_device::banked_map(address_map &map) map(0x010000, 0x01ffff).readonly().share("vram"); // note, the way tiles are addressed suggests that 0x0000-0x3fff of this might be usable, // but we don't map it anywhere, so the first tiles are always blank at the moment. - map(0x014000, 0x01ffff).lw8("vram_w", [this](offs_t offset, u8 data) { vram_w(offset + 0x4000, data); }); + map(0x014000, 0x01ffff).lw8(NAME([this] (offs_t offset, u8 data) { vram_w(offset + 0x4000, data); })); map(0x040000, 0x05ffff).ram().share("bitmap_ram"); map(0x080000, 0x0801ff).ram().w("palette", FUNC(palette_device::write8)).share("palette"); } @@ -183,9 +183,9 @@ void tc0091lvc_device::device_start() m_vregs = make_unique_clear(0x100); m_sprram_buffer = make_unique_clear(0x400); - tx_tilemap = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(tc0091lvc_device::get_tx_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); - bg_tilemap[0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(tc0091lvc_device::get_tile_info<0x8000>), this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); - bg_tilemap[1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(tc0091lvc_device::get_tile_info<0x9000>), this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); + tx_tilemap = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(tc0091lvc_device::get_tx_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); + bg_tilemap[0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(tc0091lvc_device::get_tile_info<0x8000>)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); + bg_tilemap[1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(tc0091lvc_device::get_tile_info<0x9000>)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); tx_tilemap->set_transparent_pen(0); bg_tilemap[0]->set_transparent_pen(0); diff --git a/src/devices/machine/terminal.cpp b/src/devices/machine/terminal.cpp index c2e5c5be205..fd07c5bff35 100644 --- a/src/devices/machine/terminal.cpp +++ b/src/devices/machine/terminal.cpp @@ -154,7 +154,7 @@ generic_terminal_device::generic_terminal_device(const machine_config &mconfig, , m_y_pos(0) , m_bell_timer(nullptr) , m_beeper(*this, "beeper") - , m_keyboard_cb() + , m_keyboard_cb(*this) { } @@ -347,7 +347,7 @@ void generic_terminal_device::device_start() { m_buffer = std::make_unique(m_width * m_height); m_bell_timer = timer_alloc(BELL_TIMER_ID); - m_keyboard_cb.bind_relative_to(*owner()); + m_keyboard_cb.resolve(); save_pointer(NAME(m_buffer), m_width * m_height); save_item(NAME(m_x_pos)); save_item(NAME(m_framecnt)); diff --git a/src/devices/machine/terminal.h b/src/devices/machine/terminal.h index dab8bd40578..aa98c91dc62 100644 --- a/src/devices/machine/terminal.h +++ b/src/devices/machine/terminal.h @@ -23,18 +23,11 @@ class generic_terminal_device : public device_t public: generic_terminal_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template - void set_keyboard_callback(void (FunctionClass::*callback)(u8 character), const char *name) + template + void set_keyboard_callback(T &&... args) { - set_keyboard_callback(generic_keyboard_device::output_delegate(callback, name, nullptr, static_cast(nullptr))); + m_keyboard_cb.set(std::forward(args)...); } - // FIXME: this should be aware of current device for resolving the tag - template - void set_keyboard_callback(const char *devname, void (FunctionClass::*callback)(u8 character), const char *name) - { - set_keyboard_callback(generic_keyboard_device::output_delegate(callback, name, devname, static_cast(nullptr))); - } - void set_keyboard_callback(generic_keyboard_device::output_delegate callback) { m_keyboard_cb = callback; } void write(u8 data) { term_write(data); } diff --git a/src/devices/machine/timer.cpp b/src/devices/machine/timer.cpp index b30471279f0..2461fb4da30 100644 --- a/src/devices/machine/timer.cpp +++ b/src/devices/machine/timer.cpp @@ -10,7 +10,6 @@ #include "emu.h" #include "machine/timer.h" -#include "screen.h" /*************************************************************************** @@ -37,13 +36,12 @@ DEFINE_DEVICE_TYPE(TIMER, timer_device, "timer", "Timer") timer_device::timer_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) : device_t(mconfig, TIMER, tag, owner, clock), m_type(TIMER_TYPE_GENERIC), - m_callback(), + m_callback(*this), m_ptr(nullptr), m_start_delay(attotime::zero), m_period(attotime::zero), m_param(0), - m_screen_tag(nullptr), - m_screen(nullptr), + m_screen(*this, finder_base::DUMMY_TAG), m_first_vpos(0), m_increment(0), m_timer(nullptr), @@ -63,14 +61,14 @@ void timer_device::device_validity_check(validity_checker &valid) const switch (m_type) { case TIMER_TYPE_GENERIC: - if (m_screen_tag != nullptr || m_first_vpos != 0 || m_start_delay != attotime::zero) + if (m_screen.finder_tag() != finder_base::DUMMY_TAG || m_first_vpos != 0 || m_start_delay != attotime::zero) osd_printf_warning("Generic timer specified parameters for a scanline timer\n"); if (m_period != attotime::zero || m_start_delay != attotime::zero) osd_printf_warning("Generic timer specified parameters for a periodic timer\n"); break; case TIMER_TYPE_PERIODIC: - if (m_screen_tag != nullptr || m_first_vpos != 0) + if (m_screen.finder_tag() != finder_base::DUMMY_TAG || m_first_vpos != 0) osd_printf_warning("Periodic timer specified parameters for a scanline timer\n"); if (m_period <= attotime::zero) osd_printf_error("Periodic timer specified invalid period\n"); @@ -81,10 +79,10 @@ void timer_device::device_validity_check(validity_checker &valid) const osd_printf_warning("Scanline timer specified parameters for a periodic timer\n"); if (m_param != 0) osd_printf_warning("Scanline timer specified parameter which is ignored\n"); - if (m_screen_tag == nullptr) + if (m_screen.finder_tag() == finder_base::DUMMY_TAG) osd_printf_error("Scanline timer has no screen specified\n"); - else if (dynamic_cast(siblingdevice(m_screen_tag)) == nullptr) - osd_printf_error("Scanline timer specifies nonexistent screen %s\n", m_screen_tag); + else if (!m_screen) + osd_printf_error("Scanline timer specifies nonexistent screen %s\n", m_screen.finder_tag()); // if (m_first_vpos < 0) // osd_printf_error("Scanline timer specified invalid initial position\n"); // if (m_increment < 0) @@ -105,14 +103,10 @@ void timer_device::device_validity_check(validity_checker &valid) const void timer_device::device_start() { - // fetch the screen - if (m_screen_tag != nullptr) - m_screen = siblingdevice(m_screen_tag); - // allocate the timer m_timer = timer_alloc(); - m_callback.bind_relative_to(*owner()); + m_callback.resolve(); // register for save states save_item(NAME(m_first_time)); @@ -149,8 +143,8 @@ void timer_device::device_reset() } case TIMER_TYPE_SCANLINE: - if (m_screen == nullptr) - fatalerror("timer '%s': unable to find screen '%s'\n", tag(), m_screen_tag); + if (!m_screen) + fatalerror("timer '%s': unable to find screen '%s'\n", tag(), m_screen.finder_tag()); // set the timer to fire immediately m_first_time = true; diff --git a/src/devices/machine/timer.h b/src/devices/machine/timer.h index 944db93c1e5..64dc66f38c5 100644 --- a/src/devices/machine/timer.h +++ b/src/devices/machine/timer.h @@ -7,12 +7,12 @@ Timer devices. ***************************************************************************/ - -#pragma once - #ifndef MAME_MACHINE_TIMER_H #define MAME_MACHINE_TIMER_H +#pragma once + +#include "screen.h" //************************************************************************** @@ -38,63 +38,43 @@ public: timer_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock = 0); // inline configuration helpers - template void configure_generic(Object &&cb) + template void configure_generic(T &&... args) { m_type = TIMER_TYPE_GENERIC; - m_callback = std::forward(cb); - } - template void configure_generic(void (FunctionClass::*callback)(timer_device &, void *, s32), const char *name) - { - configure_generic(expired_delegate(callback, name, nullptr, static_cast(nullptr))); + m_callback.set(std::forward(args)...); } - template void configure_generic(const char *devname, void (FunctionClass::*callback)(timer_device &, void *, s32), const char *name) - { - configure_generic(expired_delegate(callback, name, devname, static_cast(nullptr))); - } - - template void configure_periodic(Object &&cb, const attotime &period) + template void configure_periodic(F &&callback, const char *name, const attotime &period) { m_type = TIMER_TYPE_PERIODIC; - m_callback = std::forward(cb); + m_callback.set(std::forward(callback), name); m_period = period; } - template void configure_periodic(void (FunctionClass::*callback)(timer_device &, void *, s32), const char *name, - const attotime &period) - { - configure_periodic(expired_delegate(callback, name, nullptr, static_cast(nullptr)), period); - } - - template void configure_periodic(const char *devname, void (FunctionClass::*callback)(timer_device &, void *, s32), - const char *name, const attotime &period) + template void configure_periodic(T &&target, F &&callback, const char *name, const attotime &period) { - configure_periodic(expired_delegate(callback, name, devname, static_cast(nullptr)), period); + m_type = TIMER_TYPE_PERIODIC; + m_callback.set(std::forward(target), std::forward(callback), name); + m_period = period; } - template void configure_scanline(Object &&cb, const char *screen, int first_vpos, int increment) + template void configure_scanline(F &&callback, const char *name, U &&screen, int first_vpos, int increment) { m_type = TIMER_TYPE_SCANLINE; - m_callback = std::forward(cb); - m_screen_tag = screen; + m_callback.set(std::forward(callback), name); + m_screen.set_tag(std::forward(screen)); m_first_vpos = first_vpos; m_increment = increment; } - template void configure_scanline(void (FunctionClass::*callback)(timer_device &, void *, s32), - const char *name, const char *screen, int first_vpos, int increment) - { - configure_scanline(expired_delegate(callback, name, nullptr, static_cast(nullptr)), screen, first_vpos, increment); - } - template void configure_scanline(const char *devname, void (FunctionClass::*callback)(timer_device &, void *, s32), - const char *name, const char *screen, int first_vpos, int increment) + template void configure_scanline(T &&target, F &&callback, const char *name, U &&screen, int first_vpos, int increment) { - configure_scanline(expired_delegate(callback, name, devname, static_cast(nullptr)), screen, first_vpos, increment); + m_type = TIMER_TYPE_SCANLINE; + m_callback.set(std::forward(target), std::forward(callback), name); + m_screen.set_tag(std::forward(screen)); + m_first_vpos = first_vpos; + m_increment = increment; } - template void set_callback(Object &&cb) { m_callback = std::forward(cb); } - template void set_callback(void (FunctionClass::*callback)(timer_device &, void *, s32), const char *name) - { - set_callback(expired_delegate(callback, name, nullptr, static_cast(nullptr))); - } + template void set_callback(T &&... args) { m_callback.set(std::forward(args)...); } void set_start_delay(const attotime &delay) { m_start_delay = delay; } void config_param(int param) { m_param = param; } @@ -150,8 +130,7 @@ private: s32 m_param; // the integer parameter passed to the timer callback // scanline timers only - const char * m_screen_tag; // the tag of the screen this timer tracks - screen_device * m_screen; // pointer to the screen device + optional_device m_screen; // pointer to the screen device u32 m_first_vpos; // the first vertical scanline position the timer fires on u32 m_increment; // the number of scanlines between firings diff --git a/src/devices/machine/upd7002.cpp b/src/devices/machine/upd7002.cpp index 7dd57725147..2d4d2ad4bc6 100644 --- a/src/devices/machine/upd7002.cpp +++ b/src/devices/machine/upd7002.cpp @@ -19,7 +19,14 @@ DEFINE_DEVICE_TYPE(UPD7002, upd7002_device, "upd7002", "uPD7002 ADC") upd7002_device::upd7002_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, UPD7002, tag, owner, clock), m_status(0), m_data1(0), m_data0(0), m_digitalvalue(0), m_conversion_counter(0) + : device_t(mconfig, UPD7002, tag, owner, clock) + , m_status(0) + , m_data1(0) + , m_data0(0) + , m_digitalvalue(0) + , m_conversion_counter(0) + , m_get_analogue_cb(*this) + , m_eoc_cb(*this) { } @@ -29,8 +36,8 @@ upd7002_device::upd7002_device(const machine_config &mconfig, const char *tag, d void upd7002_device::device_start() { - m_get_analogue_cb.bind_relative_to(*owner()); - m_eoc_cb.bind_relative_to(*owner()); + m_get_analogue_cb.resolve(); + m_eoc_cb.resolve(); // register for state saving save_item(NAME(m_status)); diff --git a/src/devices/machine/upd7002.h b/src/devices/machine/upd7002.h index 2a68774d435..5f9e88928c7 100644 --- a/src/devices/machine/upd7002.h +++ b/src/devices/machine/upd7002.h @@ -27,8 +27,8 @@ public: upd7002_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template void set_get_analogue_callback(T &&... args) { m_get_analogue_cb = get_analogue_delegate(std::forward(args)...); } - template void set_eoc_callback(T &&... args) { m_eoc_cb = eoc_delegate(std::forward(args)...); } + template void set_get_analogue_callback(T &&... args) { m_get_analogue_cb.set(std::forward(args)...); } + template void set_eoc_callback(T &&... args) { m_eoc_cb.set(std::forward(args)...); } DECLARE_READ_LINE_MEMBER(eoc_r); uint8_t read(offs_t offset); diff --git a/src/devices/machine/vrc4373.cpp b/src/devices/machine/vrc4373.cpp index 1ed8e0508c9..992bfc355ef 100644 --- a/src/devices/machine/vrc4373.cpp +++ b/src/devices/machine/vrc4373.cpp @@ -235,8 +235,8 @@ void vrc4373_device::map_cpu_space() winStart = m_cpu_regs[NREG_PCIMW1]&0xff000000; winEnd = winStart | (~(0x80000000 | (((m_cpu_regs[NREG_PCIMW1]>>13)&0x7f)<<24))); winSize = winEnd - winStart + 1; - m_cpu_space->install_read_handler(winStart, winEnd, read32_delegate(FUNC(vrc4373_device::master1_r), this)); - m_cpu_space->install_write_handler(winStart, winEnd, write32_delegate(FUNC(vrc4373_device::master1_w), this)); + m_cpu_space->install_read_handler(winStart, winEnd, read32_delegate(*this, FUNC(vrc4373_device::master1_r))); + m_cpu_space->install_write_handler(winStart, winEnd, write32_delegate(*this, FUNC(vrc4373_device::master1_w))); LOGNILE("map_cpu_space Master Window 1 start=%08X end=%08X size=%08X laddr=%08X\n", winStart, winEnd, winSize, m_pci1_laddr); } // PCI Master Window 2 @@ -244,8 +244,8 @@ void vrc4373_device::map_cpu_space() winStart = m_cpu_regs[NREG_PCIMW2]&0xff000000; winEnd = winStart | (~(0x80000000 | (((m_cpu_regs[NREG_PCIMW2]>>13)&0x7f)<<24))); winSize = winEnd - winStart + 1; - m_cpu_space->install_read_handler(winStart, winEnd, read32_delegate(FUNC(vrc4373_device::master2_r), this)); - m_cpu_space->install_write_handler(winStart, winEnd, write32_delegate(FUNC(vrc4373_device::master2_w), this)); + m_cpu_space->install_read_handler(winStart, winEnd, read32_delegate(*this, FUNC(vrc4373_device::master2_r))); + m_cpu_space->install_write_handler(winStart, winEnd, write32_delegate(*this, FUNC(vrc4373_device::master2_w))); LOGNILE("map_cpu_space Master Window 2 start=%08X end=%08X size=%08X laddr=%08X\n", winStart, winEnd, winSize, m_pci2_laddr); } // PCI IO Window @@ -253,8 +253,8 @@ void vrc4373_device::map_cpu_space() winStart = m_cpu_regs[NREG_PCIMIOW]&0xff000000; winEnd = winStart | (~(0x80000000 | (((m_cpu_regs[NREG_PCIMIOW]>>13)&0x7f)<<24))); winSize = winEnd - winStart + 1; - m_cpu_space->install_read_handler(winStart, winEnd, read32_delegate(FUNC(vrc4373_device::master_io_r), this)); - m_cpu_space->install_write_handler(winStart, winEnd, write32_delegate(FUNC(vrc4373_device::master_io_w), this)); + m_cpu_space->install_read_handler(winStart, winEnd, read32_delegate(*this, FUNC(vrc4373_device::master_io_r))); + m_cpu_space->install_write_handler(winStart, winEnd, write32_delegate(*this, FUNC(vrc4373_device::master_io_w))); LOGNILE("map_cpu_space IO Window start=%08X end=%08X size=%08X laddr=%08X\n", tag(), winStart, winEnd, winSize, m_pci_io_laddr); } } @@ -269,8 +269,8 @@ void vrc4373_device::map_extra(uint64_t memory_window_start, uint64_t memory_win winStart = m_cpu_regs[NREG_PCITW1]&0xffe00000; winEnd = winStart | (~(0xf0000000 | (((m_cpu_regs[NREG_PCITW1]>>13)&0x7f)<<21))); winSize = winEnd - winStart + 1; - memory_space->install_read_handler(winStart, winEnd, read32_delegate(FUNC(vrc4373_device::target1_r), this)); - memory_space->install_write_handler(winStart, winEnd, write32_delegate(FUNC(vrc4373_device::target1_w), this)); + memory_space->install_read_handler(winStart, winEnd, read32_delegate(*this, FUNC(vrc4373_device::target1_r))); + memory_space->install_write_handler(winStart, winEnd, write32_delegate(*this, FUNC(vrc4373_device::target1_w))); LOGNILE("map_extra Target Window 1 start=%08X end=%08X size=%08X laddr=%08X\n", winStart, winEnd, winSize, m_target1_laddr); } // PCI Target Window 2 @@ -278,8 +278,8 @@ void vrc4373_device::map_extra(uint64_t memory_window_start, uint64_t memory_win winStart = m_cpu_regs[NREG_PCITW2]&0xffe00000; winEnd = winStart | (~(0xf0000000 | (((m_cpu_regs[NREG_PCITW2]>>13)&0x7f)<<21))); winSize = winEnd - winStart + 1; - memory_space->install_read_handler(winStart, winEnd, read32_delegate(FUNC(vrc4373_device::target2_r), this)); - memory_space->install_write_handler(winStart, winEnd, write32_delegate(FUNC(vrc4373_device::target2_w), this)); + memory_space->install_read_handler(winStart, winEnd, read32_delegate(*this, FUNC(vrc4373_device::target2_r))); + memory_space->install_write_handler(winStart, winEnd, write32_delegate(*this, FUNC(vrc4373_device::target2_w))); LOGNILE("map_extra Target Window 2 start=%08X end=%08X size=%08X laddr=%08X\n", winStart, winEnd, winSize, m_target2_laddr); } } diff --git a/src/devices/machine/vrc5074.cpp b/src/devices/machine/vrc5074.cpp index 0aeef7ebfdc..30fcbc3fe1b 100644 --- a/src/devices/machine/vrc5074.cpp +++ b/src/devices/machine/vrc5074.cpp @@ -333,12 +333,12 @@ void vrc5074_device::map_cpu_space() winStart = regConfig & 0xffe00000; if (winSize > 0) { if (index == 0) { - m_cpu_space->install_read_handler(winStart, winStart + winSize - 1, read32_delegate(FUNC(vrc5074_device::pci0_r), this)); - m_cpu_space->install_write_handler(winStart, winStart + winSize - 1, write32_delegate(FUNC(vrc5074_device::pci0_w), this)); + m_cpu_space->install_read_handler(winStart, winStart + winSize - 1, read32_delegate(*this, FUNC(vrc5074_device::pci0_r))); + m_cpu_space->install_write_handler(winStart, winStart + winSize - 1, write32_delegate(*this, FUNC(vrc5074_device::pci0_w))); } else { - m_cpu_space->install_read_handler(winStart, winStart + winSize - 1, read32_delegate(FUNC(vrc5074_device::pci1_r), this)); - m_cpu_space->install_write_handler(winStart, winStart + winSize - 1, write32_delegate(FUNC(vrc5074_device::pci1_w), this)); + m_cpu_space->install_read_handler(winStart, winStart + winSize - 1, read32_delegate(*this, FUNC(vrc5074_device::pci1_r))); + m_cpu_space->install_write_handler(winStart, winStart + winSize - 1, write32_delegate(*this, FUNC(vrc5074_device::pci1_w))); } } if (LOG_NILE | LOG_MAP) @@ -362,8 +362,8 @@ void vrc5074_device::map_extra(uint64_t memory_window_start, uint64_t memory_win winStart = 0x0; winEnd = winStart + winSize -1; - memory_space->install_read_handler(winStart, winEnd, read32_delegate(FUNC(vrc5074_device::target1_r), this)); - memory_space->install_write_handler(winStart, winEnd, write32_delegate(FUNC(vrc5074_device::target1_w), this)); + memory_space->install_read_handler(winStart, winEnd, read32_delegate(*this, FUNC(vrc5074_device::target1_r))); + memory_space->install_write_handler(winStart, winEnd, write32_delegate(*this, FUNC(vrc5074_device::target1_w))); if (LOG_NILE | LOG_MAP) logerror("%s: map_extra Target Window 1 start=%08X end=%08X size=%08X\n", tag(), winStart, winEnd, winSize); } @@ -372,8 +372,8 @@ void vrc5074_device::map_extra(uint64_t memory_window_start, uint64_t memory_win // winStart = m_cpu_regs[NREG_PCITW2]&0xffe00000; // winEnd = winStart | (~(0xf0000000 | (((m_cpu_regs[NREG_PCITW2]>>13)&0x7f)<<21))); // winSize = winEnd - winStart + 1; - // memory_space->install_read_handler(winStart, winEnd, read32_delegate(FUNC(vrc5074_device::target2_r), this)); - // memory_space->install_write_handler(winStart, winEnd, write32_delegate(FUNC(vrc5074_device::target2_w), this)); + // memory_space->install_read_handler(winStart, winEnd, read32_delegate(*this, FUNC(vrc5074_device::target2_r))); + // memory_space->install_write_handler(winStart, winEnd, write32_delegate(*this, FUNC(vrc5074_device::target2_w))); // if (LOG_NILE) // logerror("%s: map_extra Target Window 2 start=%08X end=%08X size=%08X laddr=%08X\n", tag(), winStart, winEnd, winSize, m_target2_laddr); //} diff --git a/src/devices/machine/wd7600.cpp b/src/devices/machine/wd7600.cpp index 373c371cb5f..e1f81e0282b 100644 --- a/src/devices/machine/wd7600.cpp +++ b/src/devices/machine/wd7600.cpp @@ -159,46 +159,46 @@ void wd7600_device::device_start() if (m_space_io->data_width() == 16) { // FIXME: are all these address ranges correct? - m_space_io->install_readwrite_handler(0x0000, 0x000f, read8sm_delegate(FUNC(am9517a_device::read), &(*m_dma1)), write8sm_delegate(FUNC(am9517a_device::write), &(*m_dma1)), 0xffff); - m_space_io->install_readwrite_handler(0x0020, 0x003f, read8sm_delegate(FUNC(pic8259_device::read), &(*m_pic1)), write8sm_delegate(FUNC(pic8259_device::write), &(*m_pic1)), 0xffff); - m_space_io->install_readwrite_handler(0x0040, 0x0043, read8sm_delegate(FUNC(pit8254_device::read), &(*m_ctc)), write8sm_delegate(FUNC(pit8254_device::write), &(*m_ctc)), 0xffff); - m_space_io->install_readwrite_handler(0x0060, 0x0061, read8smo_delegate(FUNC(wd7600_device::keyb_data_r), this), write8smo_delegate(FUNC(wd7600_device::keyb_data_w), this), 0x00ff); - m_space_io->install_readwrite_handler(0x0060, 0x0061, read8smo_delegate(FUNC(wd7600_device::portb_r), this), write8smo_delegate(FUNC(wd7600_device::portb_w), this), 0xff00); - m_space_io->install_readwrite_handler(0x0064, 0x0065, read8smo_delegate(FUNC(wd7600_device::keyb_status_r), this), write8smo_delegate(FUNC(wd7600_device::keyb_cmd_w), this), 0x00ff); - m_space_io->install_readwrite_handler(0x0070, 0x007f, read8sm_delegate(FUNC(mc146818_device::read), &(*m_rtc)), write8sm_delegate(FUNC(wd7600_device::rtc_w), this), 0xffff); - m_space_io->install_readwrite_handler(0x0080, 0x008f, read8sm_delegate(FUNC(wd7600_device::dma_page_r), this), write8sm_delegate(FUNC(wd7600_device::dma_page_w), this), 0xffff); - m_space_io->install_readwrite_handler(0x0092, 0x0093, read8smo_delegate(FUNC(wd7600_device::a20_reset_r), this), write8smo_delegate(FUNC(wd7600_device::a20_reset_w), this), 0x00ff); - m_space_io->install_readwrite_handler(0x00a0, 0x00a3, read8sm_delegate(FUNC(pic8259_device::read), &(*m_pic2)), write8sm_delegate(FUNC(pic8259_device::write), &(*m_pic2)), 0xffff); - m_space_io->install_readwrite_handler(0x00c0, 0x00df, read8sm_delegate(FUNC(am9517a_device::read), &(*m_dma2)), write8sm_delegate(FUNC(am9517a_device::write), &(*m_dma2)), 0x00ff); - m_space_io->install_readwrite_handler(0x2072, 0x2073, read16smo_delegate(FUNC(wd7600_device::refresh_r), this), write16smo_delegate(FUNC(wd7600_device::refresh_w), this)); - m_space_io->install_readwrite_handler(0x2872, 0x2873, read16smo_delegate(FUNC(wd7600_device::chipsel_r), this), write16smo_delegate(FUNC(wd7600_device::chipsel_w), this)); - m_space_io->install_readwrite_handler(0x3872, 0x3873, read16smo_delegate(FUNC(wd7600_device::mem_ctrl_r), this), write16smo_delegate(FUNC(wd7600_device::mem_ctrl_w), this)); - m_space_io->install_readwrite_handler(0x4872, 0x4873, read16s_delegate(FUNC(wd7600_device::bank_01_start_r), this), write16s_delegate(FUNC(wd7600_device::bank_01_start_w), this)); - m_space_io->install_readwrite_handler(0x5072, 0x5073, read16s_delegate(FUNC(wd7600_device::bank_23_start_r), this), write16s_delegate(FUNC(wd7600_device::bank_23_start_w), this)); - m_space_io->install_readwrite_handler(0x5872, 0x5873, read16smo_delegate(FUNC(wd7600_device::split_addr_r), this), write16smo_delegate(FUNC(wd7600_device::split_addr_w), this)); - m_space_io->install_readwrite_handler(0x9872, 0x9873, read16smo_delegate(FUNC(wd7600_device::diag_r), this), write16smo_delegate(FUNC(wd7600_device::diag_w), this)); + m_space_io->install_readwrite_handler(0x0000, 0x000f, read8sm_delegate(*m_dma1, FUNC(am9517a_device::read)), write8sm_delegate(*m_dma1, FUNC(am9517a_device::write)), 0xffff); + m_space_io->install_readwrite_handler(0x0020, 0x003f, read8sm_delegate(*m_pic1, FUNC(pic8259_device::read)), write8sm_delegate(*m_pic1, FUNC(pic8259_device::write)), 0xffff); + m_space_io->install_readwrite_handler(0x0040, 0x0043, read8sm_delegate(*m_ctc, FUNC(pit8254_device::read)), write8sm_delegate(*m_ctc, FUNC(pit8254_device::write)), 0xffff); + m_space_io->install_readwrite_handler(0x0060, 0x0061, read8smo_delegate(*this, FUNC(wd7600_device::keyb_data_r)), write8smo_delegate(*this, FUNC(wd7600_device::keyb_data_w)), 0x00ff); + m_space_io->install_readwrite_handler(0x0060, 0x0061, read8smo_delegate(*this, FUNC(wd7600_device::portb_r)), write8smo_delegate(*this, FUNC(wd7600_device::portb_w)), 0xff00); + m_space_io->install_readwrite_handler(0x0064, 0x0065, read8smo_delegate(*this, FUNC(wd7600_device::keyb_status_r)), write8smo_delegate(*this, FUNC(wd7600_device::keyb_cmd_w)), 0x00ff); + m_space_io->install_readwrite_handler(0x0070, 0x007f, read8sm_delegate(*m_rtc, FUNC(mc146818_device::read)), write8sm_delegate(*this, FUNC(wd7600_device::rtc_w)), 0xffff); + m_space_io->install_readwrite_handler(0x0080, 0x008f, read8sm_delegate(*this, FUNC(wd7600_device::dma_page_r)), write8sm_delegate(*this, FUNC(wd7600_device::dma_page_w)), 0xffff); + m_space_io->install_readwrite_handler(0x0092, 0x0093, read8smo_delegate(*this, FUNC(wd7600_device::a20_reset_r)), write8smo_delegate(*this, FUNC(wd7600_device::a20_reset_w)), 0x00ff); + m_space_io->install_readwrite_handler(0x00a0, 0x00a3, read8sm_delegate(*m_pic2, FUNC(pic8259_device::read)), write8sm_delegate(*m_pic2, FUNC(pic8259_device::write)), 0xffff); + m_space_io->install_readwrite_handler(0x00c0, 0x00df, read8sm_delegate(*m_dma2, FUNC(am9517a_device::read)), write8sm_delegate(*m_dma2, FUNC(am9517a_device::write)), 0x00ff); + m_space_io->install_readwrite_handler(0x2072, 0x2073, read16smo_delegate(*this, FUNC(wd7600_device::refresh_r)), write16smo_delegate(*this, FUNC(wd7600_device::refresh_w))); + m_space_io->install_readwrite_handler(0x2872, 0x2873, read16smo_delegate(*this, FUNC(wd7600_device::chipsel_r)), write16smo_delegate(*this, FUNC(wd7600_device::chipsel_w))); + m_space_io->install_readwrite_handler(0x3872, 0x3873, read16smo_delegate(*this, FUNC(wd7600_device::mem_ctrl_r)), write16smo_delegate(*this, FUNC(wd7600_device::mem_ctrl_w))); + m_space_io->install_readwrite_handler(0x4872, 0x4873, read16s_delegate(*this, FUNC(wd7600_device::bank_01_start_r)), write16s_delegate(*this, FUNC(wd7600_device::bank_01_start_w))); + m_space_io->install_readwrite_handler(0x5072, 0x5073, read16s_delegate(*this, FUNC(wd7600_device::bank_23_start_r)), write16s_delegate(*this, FUNC(wd7600_device::bank_23_start_w))); + m_space_io->install_readwrite_handler(0x5872, 0x5873, read16smo_delegate(*this, FUNC(wd7600_device::split_addr_r)), write16smo_delegate(*this, FUNC(wd7600_device::split_addr_w))); + m_space_io->install_readwrite_handler(0x9872, 0x9873, read16smo_delegate(*this, FUNC(wd7600_device::diag_r)), write16smo_delegate(*this, FUNC(wd7600_device::diag_w))); } else { assert(m_space_io->data_width() == 32); - m_space_io->install_readwrite_handler(0x0000, 0x000f, read8sm_delegate(FUNC(am9517a_device::read), &(*m_dma1)), write8sm_delegate(FUNC(am9517a_device::write), &(*m_dma1)), 0xffffffff); - m_space_io->install_readwrite_handler(0x0020, 0x003f, read8sm_delegate(FUNC(pic8259_device::read), &(*m_pic1)), write8sm_delegate(FUNC(pic8259_device::write), &(*m_pic1)), 0x0000ffff); - m_space_io->install_readwrite_handler(0x0040, 0x0043, read8sm_delegate(FUNC(pit8254_device::read), &(*m_ctc)), write8sm_delegate(FUNC(pit8254_device::write), &(*m_ctc)), 0xffffffff); - m_space_io->install_readwrite_handler(0x0060, 0x0063, read8smo_delegate(FUNC(wd7600_device::keyb_data_r), this), write8smo_delegate(FUNC(wd7600_device::keyb_data_w), this), 0x000000ff); - m_space_io->install_readwrite_handler(0x0060, 0x0063, read8smo_delegate(FUNC(wd7600_device::portb_r), this), write8smo_delegate(FUNC(wd7600_device::portb_w), this), 0x0000ff00); - m_space_io->install_readwrite_handler(0x0064, 0x0067, read8smo_delegate(FUNC(wd7600_device::keyb_status_r), this), write8smo_delegate(FUNC(wd7600_device::keyb_cmd_w), this), 0x000000ff); - m_space_io->install_readwrite_handler(0x0070, 0x007f, read8sm_delegate(FUNC(mc146818_device::read), &(*m_rtc)), write8sm_delegate(FUNC(wd7600_device::rtc_w), this), 0x0000ffff); - m_space_io->install_readwrite_handler(0x0080, 0x008f, read8sm_delegate(FUNC(wd7600_device::dma_page_r), this), write8sm_delegate(FUNC(wd7600_device::dma_page_w), this), 0xffffffff); - m_space_io->install_readwrite_handler(0x0090, 0x0093, read8smo_delegate(FUNC(wd7600_device::a20_reset_r), this), write8smo_delegate(FUNC(wd7600_device::a20_reset_w), this), 0x00ff0000); - m_space_io->install_readwrite_handler(0x00a0, 0x00a3, read8sm_delegate(FUNC(pic8259_device::read), &(*m_pic2)), write8sm_delegate(FUNC(pic8259_device::write), &(*m_pic2)), 0x0000ffff); - m_space_io->install_readwrite_handler(0x00c0, 0x00df, read8sm_delegate(FUNC(am9517a_device::read), &(*m_dma2)), write8sm_delegate(FUNC(am9517a_device::write), &(*m_dma2)), 0x00ff00ff); - m_space_io->install_readwrite_handler(0x2070, 0x2073, read16smo_delegate(FUNC(wd7600_device::refresh_r), this), write16smo_delegate(FUNC(wd7600_device::refresh_w), this), 0xffff0000); - m_space_io->install_readwrite_handler(0x2870, 0x2873, read16smo_delegate(FUNC(wd7600_device::chipsel_r), this), write16smo_delegate(FUNC(wd7600_device::chipsel_w), this), 0xffff0000); - m_space_io->install_readwrite_handler(0x3870, 0x3873, read16smo_delegate(FUNC(wd7600_device::mem_ctrl_r), this), write16smo_delegate(FUNC(wd7600_device::mem_ctrl_w), this), 0xffff0000); - m_space_io->install_readwrite_handler(0x4870, 0x4873, read16s_delegate(FUNC(wd7600_device::bank_01_start_r), this), write16s_delegate(FUNC(wd7600_device::bank_01_start_w), this), 0xffff0000); - m_space_io->install_readwrite_handler(0x5070, 0x5073, read16s_delegate(FUNC(wd7600_device::bank_23_start_r), this), write16s_delegate(FUNC(wd7600_device::bank_23_start_w), this), 0xffff0000); - m_space_io->install_readwrite_handler(0x5870, 0x5873, read16smo_delegate(FUNC(wd7600_device::split_addr_r), this), write16smo_delegate(FUNC(wd7600_device::split_addr_w), this), 0xffff0000); - m_space_io->install_readwrite_handler(0x9870, 0x9873, read16smo_delegate(FUNC(wd7600_device::diag_r), this), write16smo_delegate(FUNC(wd7600_device::diag_w), this), 0xffff0000); + m_space_io->install_readwrite_handler(0x0000, 0x000f, read8sm_delegate(*m_dma1, FUNC(am9517a_device::read)), write8sm_delegate(*m_dma1, FUNC(am9517a_device::write)), 0xffffffff); + m_space_io->install_readwrite_handler(0x0020, 0x003f, read8sm_delegate(*m_pic1, FUNC(pic8259_device::read)), write8sm_delegate(*m_pic1, FUNC(pic8259_device::write)), 0x0000ffff); + m_space_io->install_readwrite_handler(0x0040, 0x0043, read8sm_delegate(*m_ctc, FUNC(pit8254_device::read)), write8sm_delegate(*m_ctc, FUNC(pit8254_device::write)), 0xffffffff); + m_space_io->install_readwrite_handler(0x0060, 0x0063, read8smo_delegate(*this, FUNC(wd7600_device::keyb_data_r)), write8smo_delegate(*this, FUNC(wd7600_device::keyb_data_w)), 0x000000ff); + m_space_io->install_readwrite_handler(0x0060, 0x0063, read8smo_delegate(*this, FUNC(wd7600_device::portb_r)), write8smo_delegate(*this, FUNC(wd7600_device::portb_w)), 0x0000ff00); + m_space_io->install_readwrite_handler(0x0064, 0x0067, read8smo_delegate(*this, FUNC(wd7600_device::keyb_status_r)), write8smo_delegate(*this, FUNC(wd7600_device::keyb_cmd_w)), 0x000000ff); + m_space_io->install_readwrite_handler(0x0070, 0x007f, read8sm_delegate(*m_rtc, FUNC(mc146818_device::read)), write8sm_delegate(*this, FUNC(wd7600_device::rtc_w)), 0x0000ffff); + m_space_io->install_readwrite_handler(0x0080, 0x008f, read8sm_delegate(*this, FUNC(wd7600_device::dma_page_r)), write8sm_delegate(*this, FUNC(wd7600_device::dma_page_w)), 0xffffffff); + m_space_io->install_readwrite_handler(0x0090, 0x0093, read8smo_delegate(*this, FUNC(wd7600_device::a20_reset_r)), write8smo_delegate(*this, FUNC(wd7600_device::a20_reset_w)), 0x00ff0000); + m_space_io->install_readwrite_handler(0x00a0, 0x00a3, read8sm_delegate(*m_pic2, FUNC(pic8259_device::read)), write8sm_delegate(*m_pic2, FUNC(pic8259_device::write)), 0x0000ffff); + m_space_io->install_readwrite_handler(0x00c0, 0x00df, read8sm_delegate(*m_dma2, FUNC(am9517a_device::read)), write8sm_delegate(*m_dma2, FUNC(am9517a_device::write)), 0x00ff00ff); + m_space_io->install_readwrite_handler(0x2070, 0x2073, read16smo_delegate(*this, FUNC(wd7600_device::refresh_r)), write16smo_delegate(*this, FUNC(wd7600_device::refresh_w)), 0xffff0000); + m_space_io->install_readwrite_handler(0x2870, 0x2873, read16smo_delegate(*this, FUNC(wd7600_device::chipsel_r)), write16smo_delegate(*this, FUNC(wd7600_device::chipsel_w)), 0xffff0000); + m_space_io->install_readwrite_handler(0x3870, 0x3873, read16smo_delegate(*this, FUNC(wd7600_device::mem_ctrl_r)), write16smo_delegate(*this, FUNC(wd7600_device::mem_ctrl_w)), 0xffff0000); + m_space_io->install_readwrite_handler(0x4870, 0x4873, read16s_delegate(*this, FUNC(wd7600_device::bank_01_start_r)), write16s_delegate(*this, FUNC(wd7600_device::bank_01_start_w)), 0xffff0000); + m_space_io->install_readwrite_handler(0x5070, 0x5073, read16s_delegate(*this, FUNC(wd7600_device::bank_23_start_r)), write16s_delegate(*this, FUNC(wd7600_device::bank_23_start_w)), 0xffff0000); + m_space_io->install_readwrite_handler(0x5870, 0x5873, read16smo_delegate(*this, FUNC(wd7600_device::split_addr_r)), write16smo_delegate(*this, FUNC(wd7600_device::split_addr_w)), 0xffff0000); + m_space_io->install_readwrite_handler(0x9870, 0x9873, read16smo_delegate(*this, FUNC(wd7600_device::diag_r)), write16smo_delegate(*this, FUNC(wd7600_device::diag_w)), 0xffff0000); } } diff --git a/src/devices/sound/bsmt2000.cpp b/src/devices/sound/bsmt2000.cpp index f29e429390a..9b5610fac5c 100644 --- a/src/devices/sound/bsmt2000.cpp +++ b/src/devices/sound/bsmt2000.cpp @@ -65,7 +65,7 @@ bsmt2000_device::bsmt2000_device(const machine_config &mconfig, const char *tag, : device_t(mconfig, BSMT2000, tag, owner, clock) , device_sound_interface(mconfig, *this) , device_rom_interface(mconfig, *this, 32) - , m_ready_callback() + , m_ready_callback(*this) , m_stream(nullptr) , m_cpu(*this, "bsmt2000") , m_register_select(0) @@ -110,7 +110,7 @@ void bsmt2000_device::device_add_mconfig(machine_config &config) void bsmt2000_device::device_start() { - m_ready_callback.bind_relative_to(*owner()); + m_ready_callback.resolve(); // create the stream; BSMT typically runs at 24MHz and writes to a DAC, so // in theory we should generate a 24MHz stream, but that's certainly overkill diff --git a/src/devices/sound/bsmt2000.h b/src/devices/sound/bsmt2000.h index 6f720478f90..361d270b282 100644 --- a/src/devices/sound/bsmt2000.h +++ b/src/devices/sound/bsmt2000.h @@ -34,15 +34,7 @@ public: bsmt2000_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // inline configuration helpers - void set_ready_callback(ready_callback callback) { m_ready_callback = callback; } - template void set_ready_callback(const char *devname, void (FunctionClass::*callback)(), const char *name) - { - set_ready_callback(ready_callback(callback, name, devname, static_cast(nullptr))); - } - template void set_ready_callback(void (FunctionClass::*callback)(), const char *name) - { - set_ready_callback(ready_callback(callback, name, nullptr, static_cast(nullptr))); - } + template void set_ready_callback(T &&... args) { m_ready_callback.set(std::forward(args)...); } // public interface uint16_t read_status(); diff --git a/src/devices/sound/cdp1864.cpp b/src/devices/sound/cdp1864.cpp index 97df1a0aad2..ace6a34781e 100644 --- a/src/devices/sound/cdp1864.cpp +++ b/src/devices/sound/cdp1864.cpp @@ -95,7 +95,7 @@ void cdp1864_device::device_config_complete() screen().set_raw(clock(), SCREEN_WIDTH, HBLANK_END, HBLANK_START, TOTAL_SCANLINES, SCANLINE_VBLANK_END, SCANLINE_VBLANK_START); if (!screen().has_screen_update()) - screen().set_screen_update(screen_update_rgb32_delegate(FUNC(cdp1864_device::screen_update), this)); + screen().set_screen_update(*this, FUNC(cdp1864_device::screen_update)); } diff --git a/src/devices/sound/cdp1869.cpp b/src/devices/sound/cdp1869.cpp index 661611531d8..169b87cf7f7 100644 --- a/src/devices/sound/cdp1869.cpp +++ b/src/devices/sound/cdp1869.cpp @@ -357,6 +357,9 @@ cdp1869_device::cdp1869_device(const machine_config &mconfig, const char *tag, d device_memory_interface(mconfig, *this), m_read_pal_ntsc(*this), m_write_prd(*this), + m_in_pcb_func(*this), + m_in_char_ram_func(*this), + m_out_char_ram_func(*this), m_color_clock(0), m_stream(nullptr), m_palette(*this, "palette"), @@ -384,9 +387,9 @@ void cdp1869_device::device_start() // resolve callbacks m_read_pal_ntsc.resolve_safe(0); m_write_prd.resolve_safe(); - m_in_pcb_func.bind_relative_to(*owner()); - m_in_char_ram_func.bind_relative_to(*owner()); - m_out_char_ram_func.bind_relative_to(*owner()); + m_in_pcb_func.resolve(); + m_in_char_ram_func.resolve(); + m_out_char_ram_func.resolve(); // allocate timers m_prd_timer = timer_alloc(); diff --git a/src/devices/sound/cdp1869.h b/src/devices/sound/cdp1869.h index 96f8b4dbbf3..ac377a9815c 100644 --- a/src/devices/sound/cdp1869.h +++ b/src/devices/sound/cdp1869.h @@ -141,6 +141,10 @@ public: static constexpr unsigned PALETTE_LENGTH = 8+64; + typedef device_delegate char_ram_read_delegate; + typedef device_delegate char_ram_write_delegate; + typedef device_delegate pcb_read_delegate; + // construction/destruction template cdp1869_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock, T &&addrmap) @@ -156,44 +160,9 @@ public: void set_color_clock(const XTAL &xtal) { xtal.validate("selecting cdp1869 clock"); set_color_clock(xtal.value()); } // delegate setters - typedef device_delegate char_ram_read_delegate; - void set_char_ram_read_callback(char_ram_read_delegate callback) { m_in_char_ram_func = callback; } - template void set_char_ram_read_callback(const char *devname, - uint8_t (FunctionClass::*callback)(uint16_t, uint8_t, uint8_t), const char *name) - { - set_char_ram_read_callback(char_ram_read_delegate(callback, name, devname, static_cast(nullptr))); - } - template void set_char_ram_read_callback( - uint8_t (FunctionClass::*callback)(uint16_t, uint8_t, uint8_t), const char *name) - { - set_char_ram_read_callback(char_ram_read_delegate(callback, name, nullptr, static_cast(nullptr))); - } - - typedef device_delegate char_ram_write_delegate; - void set_char_ram_write_callback(char_ram_write_delegate callback) { m_out_char_ram_func = callback; } - template void set_char_ram_write_callback(const char *devname, - void (FunctionClass::*callback)(uint16_t, uint8_t, uint8_t, uint8_t), const char *name) - { - set_char_ram_write_callback(char_ram_write_delegate(callback, name, devname, static_cast(nullptr))); - } - template void set_char_ram_write_callback( - void (FunctionClass::*callback)(uint16_t, uint8_t, uint8_t, uint8_t), const char *name) - { - set_char_ram_write_callback(char_ram_write_delegate(callback, name, nullptr, static_cast(nullptr))); - } - - typedef device_delegate pcb_read_delegate; - void set_pcb_read_callback(pcb_read_delegate callback) { m_in_pcb_func = callback; } - template void set_pcb_read_callback(const char *devname, - int (FunctionClass::*callback)(uint16_t, uint8_t, uint8_t), const char *name) - { - set_pcb_read_callback(pcb_read_delegate(callback, name, devname, static_cast(nullptr))); - } - template void set_pcb_read_callback( - int (FunctionClass::*callback)(uint16_t, uint8_t, uint8_t), const char *name) - { - set_pcb_read_callback(pcb_read_delegate(callback, name, nullptr, static_cast(nullptr))); - } + template void set_char_ram_read_callback(T &&... args) { m_in_char_ram_func.set(std::forward(args)...); } + template void set_char_ram_write_callback(T &&... args) { m_out_char_ram_func.set(std::forward(args)...); } + template void set_pcb_read_callback(T &&... args) { m_in_pcb_func.set(std::forward(args)...); } // helper functions template screen_device& add_pal_screen(machine_config &config, T &&screen_tag, U &&clock) diff --git a/src/devices/sound/cem3394.cpp b/src/devices/sound/cem3394.cpp index 22894cfcbfd..60381d97723 100644 --- a/src/devices/sound/cem3394.cpp +++ b/src/devices/sound/cem3394.cpp @@ -16,6 +16,7 @@ #include "emu.h" #include "cem3394.h" +#include /* waveform generation parameters */ @@ -118,6 +119,7 @@ DEFINE_DEVICE_TYPE(CEM3394, cem3394_device, "cem3394", "CEM3394 Synthesizer Voic cem3394_device::cem3394_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : device_t(mconfig, CEM3394, tag, owner, clock), device_sound_interface(mconfig, *this), + m_ext_cb(*this), m_stream(nullptr), m_vco_zero_freq(0.0), m_filter_zero_freq(0.0), @@ -137,7 +139,7 @@ cem3394_device::cem3394_device(const machine_config &mconfig, const char *tag, d m_mixer_buffer(nullptr), m_external_buffer(nullptr) { - memset(m_values, 0, 8*sizeof(double)); + std::fill(std::begin(m_values), std::end(m_values), 0.0); } @@ -333,7 +335,7 @@ void cem3394_device::device_start() /* allocate stream channels, 1 per chip */ m_stream = stream_alloc(0, 1, m_sample_rate); - m_ext_cb.bind_relative_to(*owner()); + m_ext_cb.resolve(); /* allocate memory for a mixer buffer and external buffer (1 second should do it!) */ m_mixer_buffer = std::make_unique(m_sample_rate); diff --git a/src/devices/sound/cem3394.h b/src/devices/sound/cem3394.h index 3a2d59afc02..40a6a2d0204 100644 --- a/src/devices/sound/cem3394.h +++ b/src/devices/sound/cem3394.h @@ -30,7 +30,7 @@ public: cem3394_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template void set_ext_input_callback(T &&... args) { m_ext_cb = ext_input_delegate(std::forward(args)...); } + template void set_ext_input_callback(T &&... args) { m_ext_cb.set(std::forward(args)...); } void set_vco_zero_freq(double freq) { m_vco_zero_freq = freq; } void set_filter_zero_freq(double freq) { m_filter_zero_freq = freq; } diff --git a/src/devices/sound/k054539.cpp b/src/devices/sound/k054539.cpp index 17dd9c97501..b824650544d 100644 --- a/src/devices/sound/k054539.cpp +++ b/src/devices/sound/k054539.cpp @@ -32,6 +32,7 @@ k054539_device::k054539_device(const machine_config &mconfig, const char *tag, d , m_timer(nullptr) , m_timer_state(0) , m_timer_handler(*this) + , m_apan_cb(*this) { } @@ -503,7 +504,7 @@ void k054539_device::device_start() // resolve / bind callbacks m_timer_handler.resolve_safe(); - m_apan_cb.bind_relative_to(*owner()); + m_apan_cb.resolve(); for (auto & elem : gain) elem = 1.0; diff --git a/src/devices/sound/k054539.h b/src/devices/sound/k054539.h index 9e7bafdb0fc..65a551b1c4b 100644 --- a/src/devices/sound/k054539.h +++ b/src/devices/sound/k054539.h @@ -26,7 +26,7 @@ public: UPDATE_AT_KEYON = 4 }; - typedef device_delegate cb_delegate; + using apan_delegate = device_delegate; // construction/destruction k054539_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); @@ -34,15 +34,7 @@ public: // configuration helpers auto timer_handler() { return m_timer_handler.bind(); } - void set_analog_callback(cb_delegate callback) { m_apan_cb = callback; } - template void set_analog_callback(const char *devname, void (FunctionClass::*callback)(double, double), const char *name) - { - set_analog_callback(cb_delegate(callback, name, devname, static_cast(nullptr))); - } - template void set_analog_callback(void (FunctionClass::*callback)(double, double), const char *name) - { - set_analog_callback(cb_delegate(callback, name, nullptr, static_cast(nullptr))); - } + template void set_analog_callback(T &&... args) { m_apan_cb.set(std::forward(args)...); } void write(offs_t offset, u8 data); u8 read(offs_t offset); @@ -105,7 +97,7 @@ private: emu_timer *m_timer; uint32_t m_timer_state; devcb_write_line m_timer_handler; - cb_delegate m_apan_cb; + apan_delegate m_apan_cb; bool regupdate(); void keyon(int channel); diff --git a/src/devices/sound/lc7535.cpp b/src/devices/sound/lc7535.cpp index 00f86ea2945..0f05bb14456 100644 --- a/src/devices/sound/lc7535.cpp +++ b/src/devices/sound/lc7535.cpp @@ -41,6 +41,7 @@ DEFINE_DEVICE_TYPE(LC7535, lc7535_device, "lc7535", "Sanyo LC7535") lc7535_device::lc7535_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : device_t(mconfig, LC7535, tag, owner, clock), m_select_cb(*this), + m_volume_cb(*this), m_addr(0), m_data(0), m_count(0), m_ce(0), m_di(0), m_clk(0) @@ -55,7 +56,7 @@ void lc7535_device::device_start() { // resolve callbacks m_select_cb.resolve(); - m_volume_cb.bind_relative_to(*owner()); + m_volume_cb.resolve(); // register for save states save_item(NAME(m_addr)); diff --git a/src/devices/sound/lc7535.h b/src/devices/sound/lc7535.h index f2137fd82c7..4fcf649abd9 100644 --- a/src/devices/sound/lc7535.h +++ b/src/devices/sound/lc7535.h @@ -42,15 +42,7 @@ public: typedef device_delegate volume_delegate; auto select() { return m_select_cb.bind(); } - void set_volume_callback(volume_delegate callback) { m_volume_cb = callback; } - template void set_volume_callback(const char *devname, void (FunctionClass::*callback)(int, int, bool), const char *name) - { - set_volume_callback(volume_delegate(callback, name, devname, static_cast(nullptr))); - } - template void set_volume_callback(void (FunctionClass::*callback)(int, int, bool), const char *name) - { - set_volume_callback(volume_delegate(callback, name, nullptr, static_cast(nullptr))); - } + template void set_volume_callback(T &&... args) { m_volume_cb.set(std::forward(args)...); } // serial interface DECLARE_WRITE_LINE_MEMBER( ce_w ); diff --git a/src/devices/sound/pokey.cpp b/src/devices/sound/pokey.cpp index 29baecb352e..d157745fca5 100644 --- a/src/devices/sound/pokey.cpp +++ b/src/devices/sound/pokey.cpp @@ -178,6 +178,8 @@ pokey_device::pokey_device(const machine_config &mconfig, const char *tag, devic m_allpot_r_cb(*this), m_serin_r_cb(*this), m_serout_w_cb(*this), + m_keyboard_r(*this), + m_irq_f(*this), m_output_type(LEGACY_LINEAR) { } @@ -189,10 +191,9 @@ pokey_device::pokey_device(const machine_config &mconfig, const char *tag, devic void pokey_device::device_start() { //int sample_rate = clock(); - int i; /* Setup channels */ - for (i=0; i kb_cb_delegate; - void set_keyboard_callback(kb_cb_delegate callback) { m_keyboard_r = callback; } - template void set_keyboard_callback(const char *devname, uint8_t (FunctionClass::*callback)(uint8_t), const char *name) - { - set_keyboard_callback(kb_cb_delegate(callback, name, devname, static_cast(nullptr))); - } - template void set_keyboard_callback(uint8_t (FunctionClass::*callback)(uint8_t), const char *name) - { - set_keyboard_callback(kb_cb_delegate(callback, name, nullptr, static_cast(nullptr))); - } + template void set_keyboard_callback(T &&... args) { m_keyboard_r.set(std::forward(args)...); } typedef device_delegate int_cb_delegate; - void set_interrupt_callback(int_cb_delegate callback) { m_irq_f = callback; } - template void set_interrupt_callback(const char *devname, void (FunctionClass::*callback)(int), const char *name) - { - set_interrupt_callback(int_cb_delegate(callback, name, devname, static_cast(nullptr))); - } - template void set_interrupt_callback(void (FunctionClass::*callback)(int), const char *name) - { - set_interrupt_callback(int_cb_delegate(callback, name, nullptr, static_cast(nullptr))); - } + template void set_interrupt_callback(T &&... args) { m_irq_f.set(std::forward(args)...); } uint8_t read(offs_t offset); void write(offs_t offset, uint8_t data); diff --git a/src/devices/sound/rf5c68.cpp b/src/devices/sound/rf5c68.cpp index 9ec522b7d92..56661d9a6d4 100644 --- a/src/devices/sound/rf5c68.cpp +++ b/src/devices/sound/rf5c68.cpp @@ -33,6 +33,7 @@ rf5c68_device::rf5c68_device(const machine_config & mconfig, device_type type, c , m_cbank(0) , m_wbank(0) , m_enable(0) + , m_sample_end_cb(*this) { } @@ -61,7 +62,7 @@ void rf5c68_device::device_start() m_data = &space(0); // Find our direct access m_cache = space().cache<0, 0, ENDIANNESS_LITTLE>(); - m_sample_end_cb.bind_relative_to(*owner()); + m_sample_end_cb.resolve(); /* allocate the stream */ m_stream = stream_alloc(0, 2, clock() / 384); diff --git a/src/devices/sound/rf5c68.h b/src/devices/sound/rf5c68.h index 262efb54286..d8cd3bf344a 100644 --- a/src/devices/sound/rf5c68.h +++ b/src/devices/sound/rf5c68.h @@ -28,15 +28,7 @@ public: rf5c68_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - void set_end_callback(sample_end_cb_delegate callback) { m_sample_end_cb = callback; } - template void set_end_callback(const char *devname, void (FunctionClass::*callback)(int), const char *name) - { - set_end_callback(sample_end_cb_delegate(callback, name, devname, static_cast(nullptr))); - } - template void set_end_callback(void (FunctionClass::*callback)(int), const char *name) - { - set_end_callback(sample_end_cb_delegate(callback, name, nullptr, static_cast(nullptr))); - } + template void set_end_callback(T &&... args) { m_sample_end_cb.set(std::forward(args)...); } u8 rf5c68_r(offs_t offset); void rf5c68_w(offs_t offset, u8 data); diff --git a/src/devices/sound/samples.cpp b/src/devices/sound/samples.cpp index 40ff619cdce..f03ee6fe275 100644 --- a/src/devices/sound/samples.cpp +++ b/src/devices/sound/samples.cpp @@ -57,6 +57,7 @@ samples_device::samples_device(const machine_config &mconfig, device_type type, , device_sound_interface(mconfig, *this) , m_channels(0) , m_names(nullptr) + , m_samples_start_cb(*this) { } @@ -262,7 +263,7 @@ void samples_device::device_start() } // initialize any custom handlers - m_samples_start_cb.bind_relative_to(*owner()); + m_samples_start_cb.resolve(); if (!m_samples_start_cb.isnull()) m_samples_start_cb(); diff --git a/src/devices/sound/samples.h b/src/devices/sound/samples.h index f5f1ca088f0..aae6aa2cef1 100644 --- a/src/devices/sound/samples.h +++ b/src/devices/sound/samples.h @@ -43,15 +43,7 @@ public: void set_samples_names(const char *const *names) { m_names = names; } // start callback helpers - void set_samples_start_callback(start_cb_delegate callback) { m_samples_start_cb = callback; } - template void set_samples_start_callback(const char *devname, void (FunctionClass::*callback)(), const char *name) - { - set_samples_start_callback(start_cb_delegate(callback, name, devname, static_cast(nullptr))); - } - template void set_samples_start_callback(void (FunctionClass::*callback)(), const char *name) - { - set_samples_start_callback(start_cb_delegate(callback, name, nullptr, static_cast(nullptr))); - } + template void set_samples_start_callback(T &&...args) { m_samples_start_cb.set(std::forward(args)...); } // getters bool playing(uint8_t channel) const; diff --git a/src/devices/video/315_5313.cpp b/src/devices/video/315_5313.cpp index d664909bfae..891e9ad0328 100644 --- a/src/devices/video/315_5313.cpp +++ b/src/devices/video/315_5313.cpp @@ -169,6 +169,9 @@ sega315_5313_device::sega315_5313_device(const machine_config &mconfig, const ch , m_sndirqline_callback(*this) , m_lv6irqline_callback(*this) , m_lv4irqline_callback(*this) + , m_32x_scanline_func(*this) + , m_32x_interrupt_func(*this) + , m_32x_scanline_helper_func(*this) , m_command_pending(0) , m_command_part1(0) , m_command_part2(0) @@ -283,9 +286,9 @@ void sega315_5313_device::device_start() m_lv6irqline_callback.resolve_safe(); m_lv4irqline_callback.resolve_safe(); - m_32x_scanline_func.bind_relative_to(*owner()); - m_32x_interrupt_func.bind_relative_to(*owner()); - m_32x_scanline_helper_func.bind_relative_to(*owner()); + m_32x_scanline_func.resolve(); + m_32x_interrupt_func.resolve(); + m_32x_scanline_helper_func.resolve(); m_vram = std::make_unique(0x10000 / 2); m_cram = std::make_unique(0x80 / 2); diff --git a/src/devices/video/315_5313.h b/src/devices/video/315_5313.h index fe68bb9d9a9..72fcd51a6ed 100644 --- a/src/devices/video/315_5313.h +++ b/src/devices/video/315_5313.h @@ -37,9 +37,9 @@ public: template void set_ext_palette(T &&tag) { m_ext_palette.set_tag(std::forward(tag)); } // Temporary solution while 32x VDP mixing and scanline interrupting is moved outside MD VDP - template void set_md_32x_scanline(T &&... args) { m_32x_scanline_func = md_32x_scanline_delegate(std::forward(args)...); } - template void set_md_32x_interrupt(T &&... args) { m_32x_interrupt_func = md_32x_interrupt_delegate(std::forward(args)...); } - template void set_md_32x_scanline_helper(T &&... args) { m_32x_scanline_helper_func = md_32x_scanline_helper_delegate(std::forward(args)...); } + template void set_md_32x_scanline(T &&... args) { m_32x_scanline_func.set(std::forward(args)...); } + template void set_md_32x_interrupt(T &&... args) { m_32x_interrupt_func.set(std::forward(args)...); } + template void set_md_32x_scanline_helper(T &&... args) { m_32x_scanline_helper_func.set(std::forward(args)...); } int m_use_alt_timing; // use MAME scanline timer instead, render only one scanline to a single line buffer, to be rendered by a partial update call.. experimental diff --git a/src/devices/video/cdp1861.cpp b/src/devices/video/cdp1861.cpp index 27f8d0e3729..dfe71100411 100644 --- a/src/devices/video/cdp1861.cpp +++ b/src/devices/video/cdp1861.cpp @@ -99,7 +99,7 @@ void cdp1861_device::device_config_complete() screen().set_raw(clock(), SCREEN_WIDTH, HBLANK_END, HBLANK_START, TOTAL_SCANLINES, SCANLINE_VBLANK_END, SCANLINE_VBLANK_START); if (!screen().has_screen_update()) - screen().set_screen_update(screen_update_rgb32_delegate(FUNC(cdp1861_device::screen_update), this)); + screen().set_screen_update(*this, FUNC(cdp1861_device::screen_update)); } diff --git a/src/devices/video/clgd542x.cpp b/src/devices/video/clgd542x.cpp index 47b91c8743a..f9bdf1a288a 100644 --- a/src/devices/video/clgd542x.cpp +++ b/src/devices/video/clgd542x.cpp @@ -78,7 +78,7 @@ void cirrus_gd5428_device::device_start() vga.crtc.maximum_scan_line = 1; // copy over interfaces - vga.read_dipswitch = read8_delegate(); //read_dipswitch; + vga.read_dipswitch.set(nullptr); //read_dipswitch; vga.svga_intf.seq_regcount = 0x1f; vga.svga_intf.crtc_regcount = 0x2d; vga.svga_intf.vram_size = 0x200000; diff --git a/src/devices/video/crt9021.cpp b/src/devices/video/crt9021.cpp index a0dabe4d1c3..2ed5680559f 100644 --- a/src/devices/video/crt9021.cpp +++ b/src/devices/video/crt9021.cpp @@ -62,6 +62,7 @@ DEFINE_DEVICE_TYPE(CRT9021, crt9021_device, "crt9021", "SMC CRT9021 VAC") crt9021_device::crt9021_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : device_t(mconfig, CRT9021, tag, owner, clock), device_video_interface(mconfig, *this), + m_display_cb(*this), m_data(0), m_ms0(0), m_ms1(0), @@ -94,6 +95,8 @@ crt9021_device::crt9021_device(const machine_config &mconfig, const char *tag, d void crt9021_device::device_start() { + m_display_cb.resolve(); + // register bitmap screen().register_screen_bitmap(m_bitmap); diff --git a/src/devices/video/crt9021.h b/src/devices/video/crt9021.h index 65de1032a64..a98c76251b0 100644 --- a/src/devices/video/crt9021.h +++ b/src/devices/video/crt9021.h @@ -53,7 +53,7 @@ public: // construction/destruction crt9021_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template void set_display_callback(T &&... args) { m_display_cb = draw_character_delegate(std::forward(args)...); } + template void set_display_callback(T &&... args) { m_display_cb.set(std::forward(args)...); } void write(uint8_t data) { m_data = data; } DECLARE_WRITE8_MEMBER( write ) { write(data); } diff --git a/src/devices/video/crt9028.cpp b/src/devices/video/crt9028.cpp index 07f877e3095..94cc2429e13 100644 --- a/src/devices/video/crt9028.cpp +++ b/src/devices/video/crt9028.cpp @@ -132,7 +132,7 @@ void crt9028_device::device_config_complete() } if (!screen().has_screen_update()) - screen().set_screen_update(screen_update_rgb32_delegate(FUNC(crt9028_device::screen_update), this)); + screen().set_screen_update(*this, FUNC(crt9028_device::screen_update)); } diff --git a/src/devices/video/crtc_ega.cpp b/src/devices/video/crtc_ega.cpp index 7d03b09f131..7b3641423e5 100644 --- a/src/devices/video/crtc_ega.cpp +++ b/src/devices/video/crtc_ega.cpp @@ -23,6 +23,7 @@ DEFINE_DEVICE_TYPE(CRTC_EGA, crtc_ega_device, "crtc_ega", "IBM EGA CRT Controlle crtc_ega_device::crtc_ega_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : device_t(mconfig, CRTC_EGA, tag, owner, clock), device_video_interface(mconfig, *this, false) , m_res_out_de_cb(*this), m_res_out_hsync_cb(*this), m_res_out_vsync_cb(*this), m_res_out_vblank_cb(*this) + , m_begin_update_cb(*this), m_row_update_cb(*this), m_end_update_cb(*this) , m_horiz_char_total(0), m_horiz_disp(0), m_horiz_blank_start(0), m_horiz_blank_end(0) , m_ena_vert_access(0), m_de_skew(0) , m_horiz_retr_start(0), m_horiz_retr_end(0), m_horiz_retr_skew(0) @@ -599,9 +600,9 @@ void crtc_ega_device::device_start() m_res_out_vblank_cb.resolve(); /* bind delegates */ - m_begin_update_cb.bind_relative_to(*owner()); - m_row_update_cb.bind_relative_to(*owner()); - m_end_update_cb.bind_relative_to(*owner()); + m_begin_update_cb.resolve(); + m_row_update_cb.resolve(); + m_end_update_cb.resolve(); /* create the timers */ m_line_timer = timer_alloc(TIMER_LINE); diff --git a/src/devices/video/crtc_ega.h b/src/devices/video/crtc_ega.h index 9d03177b494..e5a267bed90 100644 --- a/src/devices/video/crtc_ega.h +++ b/src/devices/video/crtc_ega.h @@ -34,9 +34,9 @@ public: auto res_out_vsync_callback() { return m_res_out_vsync_cb.bind(); } auto res_out_vblank_callback() { return m_res_out_vblank_cb.bind(); } - template void set_begin_update_callback(T &&... args) { m_begin_update_cb = begin_update_delegate(std::forward(args)...); } - template void set_row_update_callback(T &&... args) { m_row_update_cb = row_update_delegate(std::forward(args)...); } - template void set_end_update_callback(T &&... args) { m_end_update_cb = end_update_delegate(std::forward(args)...); } + template void set_begin_update_callback(T &&... args) { m_begin_update_cb.set(std::forward(args)...); } + template void set_row_update_callback(T &&... args) { m_row_update_cb.set(std::forward(args)...); } + template void set_end_update_callback(T &&... args) { m_end_update_cb.set(std::forward(args)...); } void config_set_hpixels_per_column(int hpixels_per_column) { m_hpixels_per_column = hpixels_per_column; } /* select one of the registers for reading or writing */ diff --git a/src/devices/video/ef9369.cpp b/src/devices/video/ef9369.cpp index fa2e1eb3456..49da6402bf7 100644 --- a/src/devices/video/ef9369.cpp +++ b/src/devices/video/ef9369.cpp @@ -30,6 +30,7 @@ DEFINE_DEVICE_TYPE(EF9369, ef9369_device, "ef9369", "Thomson EF9369 Single Chip ef9369_device::ef9369_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : device_t(mconfig, EF9369, tag, owner, clock) + , m_color_update_cb(*this) , m_address(0) { std::fill(m_ca, m_ca + NUMCOLORS, 0); @@ -45,7 +46,7 @@ ef9369_device::ef9369_device(const machine_config &mconfig, const char *tag, dev void ef9369_device::device_start() { // bind delegate - m_color_update_cb.bind_relative_to(*owner()); + m_color_update_cb.resolve(); // register for save states save_pointer(NAME(m_ca), NUMCOLORS); diff --git a/src/devices/video/ef9369.h b/src/devices/video/ef9369.h index ecea48d6122..1e2a1af6f0d 100644 --- a/src/devices/video/ef9369.h +++ b/src/devices/video/ef9369.h @@ -46,17 +46,7 @@ public: ef9369_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0); // configuration - template void set_color_update_callback(Object &&cb) { m_color_update_cb = std::forward(cb); } - void set_color_update_callback(color_update_delegate callback) { m_color_update_cb = callback; } - template void set_color_update_callback(const char *devname, - void (FunctionClass::*callback)(int, bool, uint8_t, uint8_t, uint8_t), const char *name) - { - set_color_update_callback(color_update_delegate(callback, name, devname, static_cast(nullptr))); - } - template void set_color_update_callback(void (FunctionClass::*callback)(int, bool, uint8_t, uint8_t, uint8_t), const char *name) - { - set_color_update_callback(color_update_delegate(callback, name, nullptr, static_cast(nullptr))); - } + template void set_color_update_callback(T &&... args) { m_color_update_cb.set(std::forward(args)...); } DECLARE_READ8_MEMBER(data_r); DECLARE_WRITE8_MEMBER(data_w); diff --git a/src/devices/video/epic12.cpp b/src/devices/video/epic12.cpp index f4e9a70d352..49c407cb5d0 100644 --- a/src/devices/video/epic12.cpp +++ b/src/devices/video/epic12.cpp @@ -933,22 +933,22 @@ void epic12_device::install_handlers(int addr1, int addr2) { address_space &space = m_maincpu->space(AS_PROGRAM); - read32_delegate read; - write32_delegate write; + read32_delegate read(*this); + write32_delegate write(*this); if (m_is_unsafe) { printf("using unsafe blit code!\n"); - read = read32_delegate(FUNC(epic12_device::blitter_r_unsafe), this); - write = write32_delegate(FUNC(epic12_device::blitter_w_unsafe), this); + read = read32_delegate(*this, FUNC(epic12_device::blitter_r_unsafe)); + write = write32_delegate(*this, FUNC(epic12_device::blitter_w_unsafe)); } else { - read = read32_delegate(FUNC(epic12_device::blitter_r), this); - write = write32_delegate(FUNC(epic12_device::blitter_w), this); + read = read32_delegate(*this, FUNC(epic12_device::blitter_r)); + write = write32_delegate(*this, FUNC(epic12_device::blitter_w)); } - space.install_readwrite_handler(addr1, addr2, read , write, 0xffffffffffffffffU); + space.install_readwrite_handler(addr1, addr2, std::move(read), std::move(write), 0xffffffffffffffffU); } u64 epic12_device::fpga_r() diff --git a/src/devices/video/fixfreq.cpp b/src/devices/video/fixfreq.cpp index 58eec1722e3..615fe4ce0cf 100644 --- a/src/devices/video/fixfreq.cpp +++ b/src/devices/video/fixfreq.cpp @@ -180,7 +180,7 @@ void fixedfreq_device::device_config_complete() m_monitor.m_vbackporch); if (!screen().has_screen_update()) - screen().set_screen_update(screen_update_rgb32_delegate(FUNC(fixedfreq_device::screen_update), this)); + screen().set_screen_update(*this, FUNC(fixedfreq_device::screen_update)); } void fixedfreq_device::device_start() diff --git a/src/devices/video/hd44780.cpp b/src/devices/video/hd44780.cpp index 0c64922aa3f..ac19c97ffcc 100644 --- a/src/devices/video/hd44780.cpp +++ b/src/devices/video/hd44780.cpp @@ -55,6 +55,7 @@ hd44780_device::hd44780_device(const machine_config &mconfig, const char *tag, d hd44780_device::hd44780_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : device_t(mconfig, type, tag, owner, clock) + , m_pixel_update_cb(*this) , m_cgrom(nullptr) , m_cgrom_region(*this, DEVICE_SELF) , m_rs_input(0) @@ -94,7 +95,7 @@ void hd44780_device::device_start() { m_cgrom = m_cgrom_region.found() ? m_cgrom_region : memregion("cgrom")->base(); - m_pixel_update_cb.bind_relative_to(*owner()); + m_pixel_update_cb.resolve(); m_busy_timer = timer_alloc(TIMER_BUSY); m_blink_timer = timer_alloc(TIMER_BLINKING); diff --git a/src/devices/video/hd44780.h b/src/devices/video/hd44780.h index c31cd67b426..ec45d0005d1 100644 --- a/src/devices/video/hd44780.h +++ b/src/devices/video/hd44780.h @@ -31,18 +31,7 @@ public: // static configuration helpers void set_lcd_size(int lines, int chars) { m_lines = lines; m_chars = chars; } - template void set_pixel_update_cb(T &&... args) { m_pixel_update_cb = pixel_update_delegate(std::forward(args)...); } - void set_pixel_update_cb(pixel_update_delegate callback) { m_pixel_update_cb = callback; } - template void set_pixel_update_cb(const char *devname, - void (FunctionClass::*callback)(bitmap_ind16 &, u8, u8, u8, u8, int), const char *name) - { - set_pixel_update_cb(pixel_update_delegate(callback, name, devname, static_cast(nullptr))); - } - template void set_pixel_update_cb( - void (FunctionClass::*callback)(bitmap_ind16 &, u8, u8, u8, u8, int), const char *name) - { - set_pixel_update_cb(pixel_update_delegate(callback, name, nullptr, static_cast(nullptr))); - } + template void set_pixel_update_cb(T &&... args) { m_pixel_update_cb.set(std::forward(args)...); } // device interface void write(offs_t offset, u8 data); diff --git a/src/devices/video/hd63484.cpp b/src/devices/video/hd63484.cpp index 873904d3793..1ae83881fbc 100644 --- a/src/devices/video/hd63484.cpp +++ b/src/devices/video/hd63484.cpp @@ -24,10 +24,11 @@ // hd63484_device - constructor //------------------------------------------------- -hd63484_device::hd63484_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, HD63484, tag, owner, clock), +hd63484_device::hd63484_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, HD63484, tag, owner, clock), device_memory_interface(mconfig, *this), device_video_interface(mconfig, *this), + m_display_cb(*this), m_auto_configure_screen(true), m_external_skew(0), m_ar(0), @@ -2003,7 +2004,7 @@ WRITE8_MEMBER( hd63484_device::data8_w ) void hd63484_device::device_start() { - m_display_cb.bind_relative_to(*owner()); + m_display_cb.resolve(); register_save_state(); } diff --git a/src/devices/video/hd63484.h b/src/devices/video/hd63484.h index 73a321fc117..508579aed73 100644 --- a/src/devices/video/hd63484.h +++ b/src/devices/video/hd63484.h @@ -27,7 +27,7 @@ public: // construction/destruction hd63484_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template void set_display_callback(T &&... args) { m_display_cb = display_delegate(std::forward(args)...); } + template void set_display_callback(T &&... args) { m_display_cb.set(std::forward(args)...); } void set_auto_configure_screen(bool auto_configure_screen) { m_auto_configure_screen = auto_configure_screen; } void set_external_skew(int skew) { m_external_skew = skew; } diff --git a/src/devices/video/i82730.cpp b/src/devices/video/i82730.cpp index 5db1bf4e6a9..eeeedd3b4d1 100644 --- a/src/devices/video/i82730.cpp +++ b/src/devices/video/i82730.cpp @@ -58,6 +58,7 @@ i82730_device::i82730_device(const machine_config &mconfig, const char *tag, dev device_t(mconfig, I82730, tag, owner, clock), device_video_interface(mconfig, *this), m_sint_handler(*this), + m_update_row_cb(*this), m_cpu(*this, finder_base::DUMMY_TAG), m_program(nullptr), m_row_timer(nullptr), @@ -101,7 +102,7 @@ void i82730_device::device_start() m_sint_handler.resolve_safe(); // bind delegates - m_update_row_cb.bind_relative_to(*owner()); + m_update_row_cb.resolve(); // allocate row timer m_row_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(i82730_device::row_update), this)); diff --git a/src/devices/video/i82730.h b/src/devices/video/i82730.h index 03165358a22..2efc8c0a523 100644 --- a/src/devices/video/i82730.h +++ b/src/devices/video/i82730.h @@ -40,12 +40,7 @@ public: auto sint() { return m_sint_handler.bind(); } // inline configuration - void set_update_row_callback(update_row_delegate callback) { m_update_row_cb = callback; } - template void set_update_row_callback(void (FunctionClass::*callback)(bitmap_rgb32 &, uint16_t *, uint8_t, uint16_t, int) - , const char *name) - { - set_update_row_callback(update_row_delegate(callback, name, nullptr, static_cast(nullptr))); - } + template void set_update_row_callback(T &&... args) { m_update_row_cb.set(std::forward(args)...); } uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); diff --git a/src/devices/video/i8275.cpp b/src/devices/video/i8275.cpp index 4419d01fad2..ea9a22f498d 100644 --- a/src/devices/video/i8275.cpp +++ b/src/devices/video/i8275.cpp @@ -106,6 +106,7 @@ i8275_device::i8275_device(const machine_config &mconfig, device_type type, cons m_write_hrtc(*this), m_write_vrtc(*this), m_write_lc(*this), + m_display_cb(*this), m_refresh_hack(false), m_status(0), m_param_idx(0), @@ -149,12 +150,12 @@ void i8275_device::device_start() screen().register_screen_bitmap(m_bitmap); // resolve callbacks - m_display_cb.bind_relative_to(*owner()); m_write_drq.resolve_safe(); m_write_irq.resolve_safe(); m_write_hrtc.resolve_safe(); m_write_vrtc.resolve_safe(); m_write_lc.resolve_safe(); + m_display_cb.resolve(); // allocate timers m_hrtc_on_timer = timer_alloc(TIMER_HRTC_ON); diff --git a/src/devices/video/i8275.h b/src/devices/video/i8275.h index 5a9744886c0..b43fcbdefa8 100644 --- a/src/devices/video/i8275.h +++ b/src/devices/video/i8275.h @@ -62,20 +62,7 @@ public: void set_character_width(int value) { m_hpixels_per_column = value; } void set_refresh_hack(bool hack) { m_refresh_hack = hack; } - template void set_display_callback(T &&... args) { m_display_cb = draw_character_delegate(std::forward(args)...); } - void set_display_callback(draw_character_delegate callback) { m_display_cb = callback; } - template void set_display_callback(const char *devname, - void (FunctionClass::*callback)(bitmap_rgb32 &, int, int, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t), - const char *name) - { - set_display_callback(draw_character_delegate(callback, name, devname, static_cast(nullptr))); - } - template void set_display_callback( - void (FunctionClass::*callback)(bitmap_rgb32 &, int, int, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t), - const char *name) - { - set_display_callback(draw_character_delegate(callback, name, nullptr, static_cast(nullptr))); - } + template void set_display_callback(T &&... args) { m_display_cb.set(std::forward(args)...); } auto drq_wr_callback() { return m_write_drq.bind(); } auto irq_wr_callback() { return m_write_irq.bind(); } diff --git a/src/devices/video/mc6845.cpp b/src/devices/video/mc6845.cpp index 119297553ef..be0adeefc84 100644 --- a/src/devices/video/mc6845.cpp +++ b/src/devices/video/mc6845.cpp @@ -112,6 +112,11 @@ mc6845_device::mc6845_device(const machine_config &mconfig, device_type type, co m_visarea_adjust_min_y(0), m_visarea_adjust_max_y(0), m_hpixels_per_column(0), + m_reconfigure_cb(*this), + m_begin_update_cb(*this), + m_update_row_cb(*this), + m_end_update_cb(*this), + m_on_update_addr_changed_cb(*this), m_out_de_cb(*this), m_out_cur_cb(*this), m_out_hsync_cb(*this), @@ -1135,19 +1140,19 @@ void mc6845_device::device_start() assert(clock() > 0); assert(m_hpixels_per_column > 0); + /* bind delegates */ + m_reconfigure_cb.resolve(); + m_begin_update_cb.resolve(); + m_update_row_cb.resolve(); + m_end_update_cb.resolve(); + m_on_update_addr_changed_cb.resolve(); + /* resolve callbacks */ m_out_de_cb.resolve_safe(); m_out_cur_cb.resolve_safe(); m_out_hsync_cb.resolve_safe(); m_out_vsync_cb.resolve_safe(); - /* bind delegates */ - m_reconfigure_cb.bind_relative_to(*owner()); - m_begin_update_cb.bind_relative_to(*owner()); - m_update_row_cb.bind_relative_to(*owner()); - m_end_update_cb.bind_relative_to(*owner()); - m_on_update_addr_changed_cb.bind_relative_to(*owner()); - /* create the timers */ m_line_timer = timer_alloc(TIMER_LINE); m_de_off_timer = timer_alloc(TIMER_DE_OFF); @@ -1390,7 +1395,7 @@ void mos8563_device::device_start() m_update_ready_bit = 1; // default update_row delegate - m_update_row_cb = update_row_delegate(FUNC(mos8563_device::vdc_update_row), this); + m_update_row_cb.set(*this, FUNC(mos8563_device::vdc_update_row)); m_char_blink_state = false; m_char_blink_count = 0; diff --git a/src/devices/video/mc6845.h b/src/devices/video/mc6845.h index f20b83e5eff..46dfd9b19fb 100644 --- a/src/devices/video/mc6845.h +++ b/src/devices/video/mc6845.h @@ -72,11 +72,11 @@ public: } void set_char_width(int pixels) { m_hpixels_per_column = pixels; } - template void set_reconfigure_callback(T &&... args) { m_reconfigure_cb = reconfigure_delegate(std::forward(args)...); } - template void set_begin_update_callback(T &&... args) { m_begin_update_cb = begin_update_delegate(std::forward(args)...); } - template void set_update_row_callback(T &&... args) { m_update_row_cb = update_row_delegate(std::forward(args)...); } - template void set_end_update_callback(T &&... args) { m_end_update_cb = end_update_delegate(std::forward(args)...); } - template void set_on_update_addr_change_callback(T &&... args) { m_on_update_addr_changed_cb = on_update_addr_changed_delegate(std::forward(args)...); } + template void set_reconfigure_callback(T &&... args) { m_reconfigure_cb.set(std::forward(args)...); } + template void set_begin_update_callback(T &&... args) { m_begin_update_cb.set(std::forward(args)...); } + template void set_update_row_callback(T &&... args) { m_update_row_cb.set(std::forward(args)...); } + template void set_end_update_callback(T &&... args) { m_end_update_cb.set(std::forward(args)...); } + template void set_on_update_addr_change_callback(T &&... args) { m_on_update_addr_changed_cb.set(std::forward(args)...); } auto out_de_callback() { return m_out_de_cb.bind(); } auto out_cur_callback() { return m_out_cur_cb.bind(); } diff --git a/src/devices/video/mc6847.cpp b/src/devices/video/mc6847.cpp index bc4c8d393ea..e60da56ab2b 100644 --- a/src/devices/video/mc6847.cpp +++ b/src/devices/video/mc6847.cpp @@ -135,6 +135,7 @@ mc6847_friend_device::mc6847_friend_device(const machine_config &mconfig, device , device_video_interface(mconfig, *this) , m_write_hsync(*this) , m_write_fsync(*this) + , m_charrom_cb(*this) , m_character_map(fontdata, is_mc6847t1) , m_tpfs(tpfs) , m_divider(divider) @@ -599,7 +600,7 @@ void mc6847_base_device::device_config_complete() } if (!screen().has_screen_update()) - screen().set_screen_update(screen_update_rgb32_delegate(FUNC(mc6847_base_device::screen_update), this)); + screen().set_screen_update(*this, FUNC(mc6847_base_device::screen_update)); } @@ -617,7 +618,7 @@ void mc6847_base_device::device_start() /* resolve callbacks */ m_input_cb.resolve_safe(0); - m_charrom_cb.bind_relative_to(*owner()); + m_charrom_cb.resolve(); /* set up fixed mode */ setup_fixed_mode(); diff --git a/src/devices/video/mc6847.h b/src/devices/video/mc6847.h index 8402db86c2e..78a8ad57345 100644 --- a/src/devices/video/mc6847.h +++ b/src/devices/video/mc6847.h @@ -54,16 +54,7 @@ public: auto hsync_wr_callback() { return m_write_hsync.bind(); } auto fsync_wr_callback() { return m_write_fsync.bind(); } - template void set_get_char_rom(Object &&cb) { m_charrom_cb = std::forward(cb); } - void set_get_char_rom(get_char_rom_delegate cb) { m_charrom_cb = cb; } - template void set_get_char_rom(const char *devname, uint8_t (FunctionClass::*cb)(uint8_t, int), const char *name) - { - set_get_char_rom(get_char_rom_delegate(cb, name, devname, static_cast(nullptr))); - } - template void set_get_char_rom(uint8_t (FunctionClass::*cb)(uint8_t, int), const char *name) - { - set_get_char_rom(get_char_rom_delegate(cb, name, nullptr, static_cast(nullptr))); - } + template void set_get_char_rom(T &&... args) { m_charrom_cb.set(std::forward(args)...); } protected: mc6847_friend_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, diff --git a/src/devices/video/nt7534.cpp b/src/devices/video/nt7534.cpp index cacda7a11d9..a4cb9fb33f7 100644 --- a/src/devices/video/nt7534.cpp +++ b/src/devices/video/nt7534.cpp @@ -34,6 +34,7 @@ nt7534_device::nt7534_device(const machine_config &mconfig, const char *tag, dev nt7534_device::nt7534_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : device_t(mconfig, type, tag, owner, clock) + , m_pixel_update_cb(*this) { } @@ -45,6 +46,8 @@ void nt7534_device::device_start() { m_busy_timer = timer_alloc(TIMER_BUSY); + m_pixel_update_cb.resolve(); + // state saving save_item(NAME(m_busy_flag)); save_item(NAME(m_page)); diff --git a/src/devices/video/nt7534.h b/src/devices/video/nt7534.h index 75390f8acaa..caece0de4d1 100644 --- a/src/devices/video/nt7534.h +++ b/src/devices/video/nt7534.h @@ -29,7 +29,7 @@ public: // construction/destruction nt7534_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0); - template void set_pixel_update_cb(T &&... args) { m_pixel_update_cb = pixel_update_delegate(std::forward(args)...); } + template void set_pixel_update_cb(T &&... args) { m_pixel_update_cb.set(std::forward(args)...); } // device interface virtual DECLARE_WRITE8_MEMBER(write); diff --git a/src/devices/video/pc_vga.cpp b/src/devices/video/pc_vga.cpp index 7e15f1efe5e..cc30d50bae7 100644 --- a/src/devices/video/pc_vga.cpp +++ b/src/devices/video/pc_vga.cpp @@ -134,6 +134,7 @@ vga_device::vga_device(const machine_config &mconfig, device_type type, const ch : device_t(mconfig, type, tag, owner, clock) , device_video_interface(mconfig, *this) , device_palette_interface(mconfig, *this) + , vga(*this) { } @@ -252,7 +253,7 @@ void vga_device::device_start() // copy over interfaces - vga.read_dipswitch = read8_delegate(); //read_dipswitch; + vga.read_dipswitch.set(nullptr); //read_dipswitch; vga.svga_intf.seq_regcount = 0x05; vga.svga_intf.crtc_regcount = 0x19; vga.svga_intf.vram_size = 0x100000; diff --git a/src/devices/video/pc_vga.h b/src/devices/video/pc_vga.h index 07823707606..22d8ba33a65 100644 --- a/src/devices/video/pc_vga.h +++ b/src/devices/video/pc_vga.h @@ -110,8 +110,10 @@ protected: } - struct + struct vga_t { + vga_t(device_t &owner) : read_dipswitch(owner) { } + read8_delegate read_dipswitch; struct { diff --git a/src/devices/video/pcd8544.cpp b/src/devices/video/pcd8544.cpp index 0cca6742b05..b0592592509 100644 --- a/src/devices/video/pcd8544.cpp +++ b/src/devices/video/pcd8544.cpp @@ -31,7 +31,8 @@ DEFINE_DEVICE_TYPE(PCD8544, pcd8544_device, "pcd8544_device", "Philips PCD8544 L //------------------------------------------------- pcd8544_device::pcd8544_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, PCD8544, tag, owner, clock) + device_t(mconfig, PCD8544, tag, owner, clock), + m_screen_update_cb(*this) { } @@ -41,7 +42,7 @@ pcd8544_device::pcd8544_device(const machine_config &mconfig, const char *tag, d void pcd8544_device::device_start() { - m_screen_update_cb.bind_relative_to(*owner()); + m_screen_update_cb.resolve(); // state saving save_item(NAME(m_sdin)); diff --git a/src/devices/video/pcd8544.h b/src/devices/video/pcd8544.h index 069984e9483..6706097a4db 100644 --- a/src/devices/video/pcd8544.h +++ b/src/devices/video/pcd8544.h @@ -28,7 +28,7 @@ public: // construction/destruction pcd8544_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template void set_screen_update_cb(T &&... args) { m_screen_update_cb = screen_update_delegate(std::forward(args)...); } + template void set_screen_update_cb(T &&... args) { m_screen_update_cb.set(std::forward(args)...); } // device interface DECLARE_WRITE_LINE_MEMBER(sdin_w); diff --git a/src/devices/video/ppu2c0x.cpp b/src/devices/video/ppu2c0x.cpp index f0b20856c57..4f2c6c587e7 100644 --- a/src/devices/video/ppu2c0x.cpp +++ b/src/devices/video/ppu2c0x.cpp @@ -117,10 +117,10 @@ device_memory_interface::space_config_vector ppu2c0x_device::memory_space_config void ppu2c0x_device::device_config_complete() { /* reset the callbacks */ - m_latch = latch_delegate(); - m_scanline_callback_proc = scanline_delegate(); - m_hblank_callback_proc = hblank_delegate(); - m_vidaccess_callback_proc = vidaccess_delegate(); + m_scanline_callback_proc.set(nullptr); + m_hblank_callback_proc.set(nullptr); + m_vidaccess_callback_proc.set(nullptr); + m_latch.set(nullptr); } ppu2c0x_device::ppu2c0x_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) @@ -131,6 +131,9 @@ ppu2c0x_device::ppu2c0x_device(const machine_config &mconfig, device_type type, , m_space_config("videoram", ENDIANNESS_LITTLE, 8, 17, 0, address_map_constructor(FUNC(ppu2c0x_device::ppu2c0x), this)) , m_cpu(*this, finder_base::DUMMY_TAG) , m_scanline(0) // reset the scanline count + , m_scanline_callback_proc(*this) + , m_hblank_callback_proc(*this) + , m_vidaccess_callback_proc(*this) , m_int_callback(*this) , m_refresh_data(0) , m_refresh_latch(0) @@ -146,6 +149,7 @@ ppu2c0x_device::ppu2c0x_device(const machine_config &mconfig, device_type type, , m_scan_scale(1) // set the scan scale (this is for dual monitor vertical setups) , m_tilecount(0) , m_draw_phase(0) + , m_latch(*this) , m_use_sprite_write_limitation(true) { for (auto & elem : m_regs) diff --git a/src/devices/video/ppu2c0x.h b/src/devices/video/ppu2c0x.h index 78ebef0b2ce..5660876674a 100644 --- a/src/devices/video/ppu2c0x.h +++ b/src/devices/video/ppu2c0x.h @@ -96,10 +96,10 @@ public: uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); int get_current_scanline() { return m_scanline; } - void set_scanline_callback( scanline_delegate &&cb ) { m_scanline_callback_proc = std::move(cb); m_scanline_callback_proc.bind_relative_to(*owner()); } - void set_hblank_callback( hblank_delegate &&cb ) { m_hblank_callback_proc = std::move(cb); m_hblank_callback_proc.bind_relative_to(*owner()); } - void set_vidaccess_callback( vidaccess_delegate &&cb ) { m_vidaccess_callback_proc = std::move(cb); m_vidaccess_callback_proc.bind_relative_to(*owner()); } - void set_scanlines_per_frame( int scanlines ) { m_scanlines_per_frame = scanlines; } + template void set_scanline_callback(T &&... args) { m_scanline_callback_proc.set(std::forward(args)...); m_scanline_callback_proc.resolve(); /* FIXME: if this is supposed to be set at config time, it should be resolved on start */ } + template void set_hblank_callback(T &&... args) { m_hblank_callback_proc.set(std::forward(args)...); m_hblank_callback_proc.resolve(); /* FIXME: if this is supposed to be set at config time, it should be resolved on start */ } + template void set_vidaccess_callback(T &&... args) { m_vidaccess_callback_proc.set(std::forward(args)...); m_vidaccess_callback_proc.resolve(); /* FIXME: if this is supposed to be set at config time, it should be resolved on start */ } + void set_scanlines_per_frame(int scanlines) { m_scanlines_per_frame = scanlines; } // MMC5 has to be able to check this int is_sprite_8x16() { return m_regs[PPU_CONTROL0] & PPU_CONTROL0_SPRITE_SIZE; } @@ -107,7 +107,7 @@ public: int get_tilenum() { return m_tilecount; } //27/12/2002 (HACK!) - void set_latch( latch_delegate &&cb ) { m_latch = std::move(cb); m_latch.bind_relative_to(*owner()); } + template void set_latch(T &&... args) { m_latch.set(std::forward(args)...); m_latch.resolve(); /* FIXME: if this is supposed to be set at config time, it should be resolved on start */ } // void update_screen(bitmap_t &bitmap, const rectangle &cliprect); diff --git a/src/devices/video/psx.cpp b/src/devices/video/psx.cpp index 471bfc5b50b..6a689edf14f 100644 --- a/src/devices/video/psx.cpp +++ b/src/devices/video/psx.cpp @@ -3542,5 +3542,5 @@ void psxgpu_device::device_config_complete() } if (!screen().has_screen_update()) - screen().set_screen_update(screen_update_rgb32_delegate(FUNC(psxgpu_device::update_screen), this)); + screen().set_screen_update(*this, FUNC(psxgpu_device::update_screen)); } diff --git a/src/devices/video/scn2674.cpp b/src/devices/video/scn2674.cpp index 1e6cf3d68b5..cc8121a923f 100644 --- a/src/devices/video/scn2674.cpp +++ b/src/devices/video/scn2674.cpp @@ -86,6 +86,7 @@ scn2674_device::scn2674_device(const machine_config &mconfig, device_type type, , m_dbl1(0) , m_char_buffer(0), m_attr_buffer(0) , m_linecounter(0), m_address(0), m_start1change(0) + , m_display_cb(*this) , m_scanline_timer(nullptr) , m_breq_timer(nullptr) , m_vblank_timer(nullptr) @@ -97,18 +98,15 @@ scn2674_device::scn2674_device(const machine_config &mconfig, device_type type, device_memory_interface::space_config_vector scn2674_device::memory_space_config() const { - return has_configured_map(1) ? space_config_vector { - std::make_pair(0, &m_char_space_config), - std::make_pair(1, &m_attr_space_config) - } : space_config_vector { - std::make_pair(0, &m_char_space_config) - }; + return has_configured_map(1) + ? space_config_vector{ std::make_pair(0, &m_char_space_config), std::make_pair(1, &m_attr_space_config) } + : space_config_vector{ std::make_pair(0, &m_char_space_config) }; } void scn2674_device::device_start() { // resolve callbacks - m_display_cb.bind_relative_to(*owner()); + m_display_cb.resolve(); m_intr_cb.resolve_safe(); m_breq_cb.resolve_safe(); m_mbc_cb.resolve_safe(); diff --git a/src/devices/video/scn2674.h b/src/devices/video/scn2674.h index 2b7367eeed0..f3bd19b406a 100644 --- a/src/devices/video/scn2674.h +++ b/src/devices/video/scn2674.h @@ -16,8 +16,6 @@ class scn2674_device : public device_t, public device_memory_interface { public: - scn2674_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - typedef device_delegate draw_character_delegate; // static configuration @@ -28,20 +26,9 @@ public: auto mbc_attr_callback() { return m_mbc_attr_cb.bind(); } void set_character_width(int value) { m_hpixels_per_column = value; } - template - void set_display_callback(void (FunctionClass::*callback)(bitmap_rgb32 &, int, int, uint8_t, uint8_t, uint8_t, uint16_t, bool, bool, bool, bool, bool), const char *name) - { - set_display_callback(draw_character_delegate(callback, name, nullptr, static_cast(nullptr))); - } - template - void set_display_callback(const char *devname, void (FunctionClass::*callback)(bitmap_rgb32 &, int, int, uint8_t, uint8_t, uint8_t, uint16_t, bool, bool, bool, bool, bool), const char *name) - { - set_display_callback(draw_character_delegate(callback, name, devname, static_cast(nullptr))); - } - void set_display_callback(draw_character_delegate callback) - { - m_display_cb = callback; - } + template void set_display_callback(T &&... args) { m_display_cb.set(std::forward(args)...); } + + scn2674_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); uint8_t read(offs_t offset); void write(offs_t offset, uint8_t data); diff --git a/src/devices/video/sed1520.cpp b/src/devices/video/sed1520.cpp index feca2ed10fd..8573725835f 100644 --- a/src/devices/video/sed1520.cpp +++ b/src/devices/video/sed1520.cpp @@ -33,7 +33,7 @@ DEFINE_DEVICE_TYPE(SED1520, sed1520_device, "sed1520", "Epson SED1520") sed1520_device::sed1520_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : device_t(mconfig, SED1520, tag, owner, clock), m_lcd_on(0), m_busy(0), m_page(0), m_column(0), m_old_column(0), m_start_line(0), m_adc(0), m_static_drive(0), m_modify_write(false), - m_screen_update_cb() + m_screen_update_cb(*this) { } @@ -44,7 +44,7 @@ sed1520_device::sed1520_device(const machine_config &mconfig, const char *tag, d void sed1520_device::device_start() { - m_screen_update_cb.bind_relative_to(*owner()); + m_screen_update_cb.resolve(); // state saving save_item(NAME(m_lcd_on)); diff --git a/src/devices/video/sed1520.h b/src/devices/video/sed1520.h index 9ca1358713e..2857b978d10 100644 --- a/src/devices/video/sed1520.h +++ b/src/devices/video/sed1520.h @@ -33,17 +33,7 @@ public: sed1520_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0); // sconfiguration helpers - void set_screen_update_cb(screen_update_delegate callback) { m_screen_update_cb = callback; } - template void set_screen_update_cb(const char *devname, - uint32_t (FunctionClass::*callback)(bitmap_ind16 &, const rectangle &, uint8_t *, int, int), const char *name) - { - set_screen_update_cb(screen_update_delegate(callback, name, devname, static_cast(nullptr))); - } - template void set_screen_update_cb( - uint32_t (FunctionClass::*callback)(bitmap_ind16 &, const rectangle &, uint8_t *, int, int), const char *name) - { - set_screen_update_cb(screen_update_delegate(callback, name, nullptr, static_cast(nullptr))); - } + template void set_screen_update_cb(T &&... args) { m_screen_update_cb.set(std::forward(args)...); } // device interface virtual DECLARE_WRITE8_MEMBER(write); diff --git a/src/devices/video/tms9928a.cpp b/src/devices/video/tms9928a.cpp index c068d8b4ce8..129b364e860 100644 --- a/src/devices/video/tms9928a.cpp +++ b/src/devices/video/tms9928a.cpp @@ -78,7 +78,7 @@ void tms9928a_device::device_config_complete() return; if (!screen().has_screen_update()) - screen().set_screen_update(screen_update_rgb32_delegate(FUNC(tms9928a_device::screen_update), this)); + screen().set_screen_update(*this, FUNC(tms9928a_device::screen_update)); if (!screen().refresh_attoseconds()) { diff --git a/src/devices/video/tms9928a.h b/src/devices/video/tms9928a.h index 72c466d464b..cc5a5192f14 100644 --- a/src/devices/video/tms9928a.h +++ b/src/devices/video/tms9928a.h @@ -82,7 +82,7 @@ public: void register_write(u8 data); /* update the screen */ - uint32_t screen_update( screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect ); + uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); bitmap_rgb32 &get_bitmap() { return m_tmpbmp; } /* RESET pin */ diff --git a/src/devices/video/upd3301.cpp b/src/devices/video/upd3301.cpp index 07b8a32c99b..166f623dc30 100644 --- a/src/devices/video/upd3301.cpp +++ b/src/devices/video/upd3301.cpp @@ -84,6 +84,7 @@ upd3301_device::upd3301_device(const machine_config &mconfig, const char *tag, d m_write_drq(*this), m_write_hrtc(*this), m_write_vrtc(*this), + m_display_cb(*this), m_width(0), m_status(0), m_param_count(0), @@ -115,11 +116,11 @@ void upd3301_device::device_start() { screen().register_screen_bitmap(m_bitmap); // resolve callbacks - m_display_cb.bind_relative_to(*owner()); m_write_drq.resolve_safe(); m_write_int.resolve_safe(); m_write_hrtc.resolve_safe(); m_write_vrtc.resolve_safe(); + m_display_cb.resolve(); // allocate timers m_hrtc_timer = timer_alloc(TIMER_HRTC); diff --git a/src/devices/video/upd3301.h b/src/devices/video/upd3301.h index 147c12c5b7d..293aaa91613 100644 --- a/src/devices/video/upd3301.h +++ b/src/devices/video/upd3301.h @@ -60,18 +60,7 @@ public: upd3301_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); void set_character_width(int value) { m_width = value; } - template void set_display_callback(T &&... args) { m_display_cb = draw_character_delegate(std::forward(args)...); } - void set_display_callback(draw_character_delegate callback) { m_display_cb = callback; } - template void set_display_callback(const char *devname, - void (FunctionClass::*callback)(bitmap_rgb32 &, int, int, uint8_t, uint8_t, int, int, int, int, int, int, int), const char *name) - { - set_display_callback(draw_character_delegate(callback, name, devname, static_cast(nullptr))); - } - template void set_display_callback( - void (FunctionClass::*callback)(bitmap_rgb32 &, int, int, uint8_t, uint8_t, int, int, int, int, int, int, int), const char *name) - { - set_display_callback(draw_character_delegate(callback, name, nullptr, static_cast(nullptr))); - } + template void set_display_callback(T &&... args) { m_display_cb.set(std::forward(args)...); } auto drq_wr_callback() { return m_write_drq.bind(); } auto int_wr_callback() { return m_write_int.bind(); } diff --git a/src/devices/video/upd7220.cpp b/src/devices/video/upd7220.cpp index 50e1cc9bd1c..235a1a99cf6 100644 --- a/src/devices/video/upd7220.cpp +++ b/src/devices/video/upd7220.cpp @@ -615,6 +615,8 @@ upd7220_device::upd7220_device(const machine_config &mconfig, const char *tag, d device_t(mconfig, UPD7220, tag, owner, clock), device_memory_interface(mconfig, *this), device_video_interface(mconfig, *this), + m_display_cb(*this), + m_draw_text_cb(*this), m_write_drq(*this), m_write_hsync(*this), m_write_vsync(*this), @@ -676,8 +678,8 @@ upd7220_device::upd7220_device(const machine_config &mconfig, const char *tag, d void upd7220_device::device_start() { // resolve callbacks - m_display_cb.bind_relative_to(*owner()); - m_draw_text_cb.bind_relative_to(*owner()); + m_display_cb.resolve(); + m_draw_text_cb.resolve(); m_write_drq.resolve_safe(); m_write_hsync.resolve_safe(); diff --git a/src/devices/video/upd7220.h b/src/devices/video/upd7220.h index 7c7370c0cd9..d1f8806c6ac 100644 --- a/src/devices/video/upd7220.h +++ b/src/devices/video/upd7220.h @@ -56,53 +56,14 @@ class upd7220_device : public device_t, public device_video_interface { public: - typedef device_delegate display_pixels_delegate; - typedef device_delegate draw_text_delegate; + using display_pixels_delegate = device_delegate; + using draw_text_delegate = device_delegate; // construction/destruction upd7220_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // FIXME: these should be aware of current device for resolving the tag - template - void set_display_pixels(void (FunctionClass::*init)(bitmap_rgb32 &, int, int, uint32_t), const char *name) - { - m_display_cb = display_pixels_delegate(init, name, nullptr, static_cast(nullptr)); - } - template - void set_display_pixels(void (FunctionClass::*init)(bitmap_rgb32 &, int, int, uint32_t) const, const char *name) - { - m_display_cb = display_pixels_delegate(init, name, nullptr, static_cast(nullptr)); - } - template - void set_display_pixels(const char *devname, void (FunctionClass::*init)(bitmap_rgb32 &, int, int, uint32_t), const char *name) - { - m_display_cb = display_pixels_delegate(init, name, devname, static_cast(nullptr)); - } - template - void set_display_pixels(const char *devname, void (FunctionClass::*init)(bitmap_rgb32 &, int, int, uint32_t) const, const char *name) - { - m_display_cb = display_pixels_delegate(init, name, devname, static_cast(nullptr)); - } - template - void set_draw_text(void (FunctionClass::*init)(bitmap_rgb32 &, uint32_t, int, int, int, int, int, int), const char *name) - { - m_draw_text_cb = draw_text_delegate(init, name, nullptr, static_cast(nullptr)); - } - template - void set_draw_text(void (FunctionClass::*init)(bitmap_rgb32 &, uint32_t, int, int, int, int, int, int) const, const char *name) - { - m_draw_text_cb = draw_text_delegate(init, name, nullptr, static_cast(nullptr)); - } - template - void set_draw_text(const char *devname, void (FunctionClass::*init)(bitmap_rgb32 &, uint32_t, int, int, int, int, int, int), const char *name) - { - m_draw_text_cb = draw_text_delegate(init, name, devname, static_cast(nullptr)); - } - template - void set_draw_text(const char *devname, void (FunctionClass::*init)(bitmap_rgb32 &, uint32_t, int, int, int, int, int, int) const, const char *name) - { - m_draw_text_cb = draw_text_delegate(init, name, devname, static_cast(nullptr)); - } + template void set_display_pixels(T &&... args) { m_display_cb.set(std::forward(args)...); } + template void set_draw_text(T &&... args) { m_draw_text_cb.set(std::forward(args)...); } auto drq_wr_callback() { return m_write_drq.bind(); } auto hsync_wr_callback() { return m_write_hsync.bind(); } diff --git a/src/devices/video/v9938.cpp b/src/devices/video/v9938.cpp index 97c584fddc6..4549dae9e6e 100644 --- a/src/devices/video/v9938.cpp +++ b/src/devices/video/v9938.cpp @@ -169,7 +169,7 @@ void v99x8_device::device_config_complete() (m_pal_config ? VVISIBLE_PAL : VVISIBLE_NTSC) * 2 - 1 - VERTICAL_ADJUST * 2); if (!screen().has_screen_update()) - screen().set_screen_update(screen_update_rgb32_delegate(FUNC(v99x8_device::screen_update), this)); + screen().set_screen_update(*this, FUNC(v99x8_device::screen_update)); } diff --git a/src/devices/video/virge_pci.cpp b/src/devices/video/virge_pci.cpp index bc5755d3550..c3d55f4cc62 100644 --- a/src/devices/video/virge_pci.cpp +++ b/src/devices/video/virge_pci.cpp @@ -251,11 +251,11 @@ void virgedx_pci_device::device_start() void virge_pci_device::map_extra(uint64_t memory_window_start, uint64_t memory_window_end, uint64_t memory_offset, address_space *memory_space, uint64_t io_window_start, uint64_t io_window_end, uint64_t io_offset, address_space *io_space) { - memory_space->install_readwrite_handler(0xa0000, 0xbffff, read8_delegate(FUNC(virge_pci_device::vram_r),this), write8_delegate(FUNC(virge_pci_device::vram_w),this)); + memory_space->install_readwrite_handler(0xa0000, 0xbffff, read8_delegate(*this, FUNC(virge_pci_device::vram_r)), write8_delegate(*this, FUNC(virge_pci_device::vram_w))); - io_space->install_readwrite_handler(0x3b0, 0x3bf, read32_delegate(FUNC(virge_pci_device::vga_3b0_r), this), write32_delegate(FUNC(virge_pci_device::vga_3b0_w), this)); - io_space->install_readwrite_handler(0x3c0, 0x3cf, read32_delegate(FUNC(virge_pci_device::vga_3c0_r), this), write32_delegate(FUNC(virge_pci_device::vga_3c0_w), this)); - io_space->install_readwrite_handler(0x3d0, 0x3df, read32_delegate(FUNC(virge_pci_device::vga_3d0_r), this), write32_delegate(FUNC(virge_pci_device::vga_3d0_w), this)); + io_space->install_readwrite_handler(0x3b0, 0x3bf, read32_delegate(*this, FUNC(virge_pci_device::vga_3b0_r)), write32_delegate(*this, FUNC(virge_pci_device::vga_3b0_w))); + io_space->install_readwrite_handler(0x3c0, 0x3cf, read32_delegate(*this, FUNC(virge_pci_device::vga_3c0_r)), write32_delegate(*this, FUNC(virge_pci_device::vga_3c0_w))); + io_space->install_readwrite_handler(0x3d0, 0x3df, read32_delegate(*this, FUNC(virge_pci_device::vga_3d0_r)), write32_delegate(*this, FUNC(virge_pci_device::vga_3d0_w))); } void virge_pci_device::device_add_mconfig(machine_config &config) diff --git a/src/devices/video/voodoo_pci.cpp b/src/devices/video/voodoo_pci.cpp index 191eaec4bf3..494bd32a5dd 100644 --- a/src/devices/video/voodoo_pci.cpp +++ b/src/devices/video/voodoo_pci.cpp @@ -178,7 +178,7 @@ void voodoo_banshee_pci_device::map_extra(uint64_t memory_window_start, uint64_t // Should really be dependent on voodoo VGAINIT0 bit 8 and IO base + 0xc3 bit 0 uint64_t start = io_offset + 0x3b0; uint64_t end = io_offset + 0x3df; - io_space->install_readwrite_handler(start, end, read32_delegate(FUNC(voodoo_pci_device::vga_r), this), write32_delegate(FUNC(voodoo_pci_device::vga_w), this)); + io_space->install_readwrite_handler(start, end, read32_delegate(*this, FUNC(voodoo_pci_device::vga_r)), write32_delegate(*this, FUNC(voodoo_pci_device::vga_w))); logerror("%s: map %s at %0*x-%0*x\n", this->tag(), "vga_r/w", 4, uint32_t(start), 4, uint32_t(end)); } @@ -191,7 +191,7 @@ void voodoo_3_pci_device::map_extra(uint64_t memory_window_start, uint64_t memor // Should really be dependent on voodoo VGAINIT0 bit 8 and IO base + 0xc3 bit 0 uint64_t start = io_offset + 0x3b0; uint64_t end = io_offset + 0x3df; - io_space->install_readwrite_handler(start, end, read32_delegate(FUNC(voodoo_pci_device::vga_r), this), write32_delegate(FUNC(voodoo_pci_device::vga_w), this)); + io_space->install_readwrite_handler(start, end, read32_delegate(*this, FUNC(voodoo_pci_device::vga_r)), write32_delegate(*this, FUNC(voodoo_pci_device::vga_w))); logerror("%s: map %s at %0*x-%0*x\n", this->tag(), "vga_r/w", 4, uint32_t(start), 4, uint32_t(end)); } diff --git a/src/emu/addrmap.cpp b/src/emu/addrmap.cpp index eca9457e76e..c1ba4545492 100644 --- a/src/emu/addrmap.cpp +++ b/src/emu/addrmap.cpp @@ -61,21 +61,69 @@ static char *core_i64_hex_format(u64 value, u8 mindigits) //------------------------------------------------- address_map_entry::address_map_entry(device_t &device, address_map &map, offs_t start, offs_t end) - : m_next(nullptr), - m_map(map), - m_devbase(device), - m_addrstart(start), - m_addrend(end), - m_addrmirror(0), - m_addrmask(0), - m_addrselect(0), - m_mask(0), - m_cswidth(0), - m_share(nullptr), - m_region(nullptr), - m_rgnoffs(0), - m_submap_device(nullptr), - m_memory(nullptr) + : m_next(nullptr) + , m_map(map) + , m_devbase(device) + , m_addrstart(start) + , m_addrend(end) + , m_addrmirror(0) + , m_addrmask(0) + , m_addrselect(0) + , m_mask(0) + , m_cswidth(0) + , m_share(nullptr) + , m_region(nullptr) + , m_rgnoffs(0) + , m_rproto8(device) + , m_rproto16(device) + , m_rproto32(device) + , m_rproto64(device) + , m_wproto8(device) + , m_wproto16(device) + , m_wproto32(device) + , m_wproto64(device) + , m_rproto8m(device) + , m_rproto16m(device) + , m_rproto32m(device) + , m_rproto64m(device) + , m_wproto8m(device) + , m_wproto16m(device) + , m_wproto32m(device) + , m_wproto64m(device) + , m_rproto8s(device) + , m_rproto16s(device) + , m_rproto32s(device) + , m_rproto64s(device) + , m_wproto8s(device) + , m_wproto16s(device) + , m_wproto32s(device) + , m_wproto64s(device) + , m_rproto8sm(device) + , m_rproto16sm(device) + , m_rproto32sm(device) + , m_rproto64sm(device) + , m_wproto8sm(device) + , m_wproto16sm(device) + , m_wproto32sm(device) + , m_wproto64sm(device) + , m_rproto8mo(device) + , m_rproto16mo(device) + , m_rproto32mo(device) + , m_rproto64mo(device) + , m_wproto8mo(device) + , m_wproto16mo(device) + , m_wproto32mo(device) + , m_wproto64mo(device) + , m_rproto8smo(device) + , m_rproto16smo(device) + , m_rproto32smo(device) + , m_rproto64smo(device) + , m_wproto8smo(device) + , m_wproto16smo(device) + , m_wproto32smo(device) + , m_wproto64smo(device) + , m_submap_device(nullptr) + , m_memory(nullptr) { } @@ -1142,71 +1190,71 @@ void address_map::map_validity_check(validity_checker &valid, int spacenum) cons if (entry.m_read.m_type == AMH_DEVICE_DELEGATE || entry.m_read.m_type == AMH_DEVICE_DELEGATE_M || entry.m_read.m_type == AMH_DEVICE_DELEGATE_S || entry.m_read.m_type == AMH_DEVICE_DELEGATE_SM || entry.m_read.m_type == AMH_DEVICE_DELEGATE_MO || entry.m_read.m_type == AMH_DEVICE_DELEGATE_SMO) { // extract the device tag from the proto-delegate - const char *devtag = nullptr; + std::pair, const char *> devtag(entry.m_devbase, nullptr); switch (entry.m_read.m_bits) { case 8: if (entry.m_read.m_type == AMH_DEVICE_DELEGATE) - devtag = entry.m_rproto8.device_name(); + devtag = entry.m_rproto8.finder_target(); else if (entry.m_read.m_type == AMH_DEVICE_DELEGATE_M) - devtag = entry.m_rproto8m.device_name(); + devtag = entry.m_rproto8m.finder_target(); else if (entry.m_read.m_type == AMH_DEVICE_DELEGATE_S) - devtag = entry.m_rproto8s.device_name(); + devtag = entry.m_rproto8s.finder_target(); else if (entry.m_read.m_type == AMH_DEVICE_DELEGATE_SM) - devtag = entry.m_rproto8sm.device_name(); + devtag = entry.m_rproto8sm.finder_target(); else if (entry.m_read.m_type == AMH_DEVICE_DELEGATE_MO) - devtag = entry.m_rproto8mo.device_name(); + devtag = entry.m_rproto8mo.finder_target(); else - devtag = entry.m_rproto8smo.device_name(); + devtag = entry.m_rproto8smo.finder_target(); break; case 16: if (entry.m_read.m_type == AMH_DEVICE_DELEGATE) - devtag = entry.m_rproto16.device_name(); + devtag = entry.m_rproto16.finder_target(); else if (entry.m_read.m_type == AMH_DEVICE_DELEGATE_M) - devtag = entry.m_rproto16m.device_name(); + devtag = entry.m_rproto16m.finder_target(); else if (entry.m_read.m_type == AMH_DEVICE_DELEGATE_S) - devtag = entry.m_rproto16s.device_name(); + devtag = entry.m_rproto16s.finder_target(); else if (entry.m_read.m_type == AMH_DEVICE_DELEGATE_SM) - devtag = entry.m_rproto16sm.device_name(); + devtag = entry.m_rproto16sm.finder_target(); else if (entry.m_read.m_type == AMH_DEVICE_DELEGATE_MO) - devtag = entry.m_rproto16mo.device_name(); + devtag = entry.m_rproto16mo.finder_target(); else - devtag = entry.m_rproto16smo.device_name(); + devtag = entry.m_rproto16smo.finder_target(); break; case 32: if (entry.m_read.m_type == AMH_DEVICE_DELEGATE) - devtag = entry.m_rproto32.device_name(); + devtag = entry.m_rproto32.finder_target(); else if (entry.m_read.m_type == AMH_DEVICE_DELEGATE_M) - devtag = entry.m_rproto32m.device_name(); + devtag = entry.m_rproto32m.finder_target(); else if (entry.m_read.m_type == AMH_DEVICE_DELEGATE_S) - devtag = entry.m_rproto32s.device_name(); + devtag = entry.m_rproto32s.finder_target(); else if (entry.m_read.m_type == AMH_DEVICE_DELEGATE_SM) - devtag = entry.m_rproto32sm.device_name(); + devtag = entry.m_rproto32sm.finder_target(); else if (entry.m_read.m_type == AMH_DEVICE_DELEGATE_MO) - devtag = entry.m_rproto32mo.device_name(); + devtag = entry.m_rproto32mo.finder_target(); else - devtag = entry.m_rproto32smo.device_name(); + devtag = entry.m_rproto32smo.finder_target(); break; case 64: if (entry.m_read.m_type == AMH_DEVICE_DELEGATE) - devtag = entry.m_rproto64.device_name(); + devtag = entry.m_rproto64.finder_target(); else if (entry.m_read.m_type == AMH_DEVICE_DELEGATE_M) - devtag = entry.m_rproto64m.device_name(); + devtag = entry.m_rproto64m.finder_target(); else if (entry.m_read.m_type == AMH_DEVICE_DELEGATE_S) - devtag = entry.m_rproto64s.device_name(); + devtag = entry.m_rproto64s.finder_target(); else if (entry.m_read.m_type == AMH_DEVICE_DELEGATE_SM) - devtag = entry.m_rproto64sm.device_name(); + devtag = entry.m_rproto64sm.finder_target(); else if (entry.m_read.m_type == AMH_DEVICE_DELEGATE_MO) - devtag = entry.m_rproto64mo.device_name(); + devtag = entry.m_rproto64mo.finder_target(); else - devtag = entry.m_rproto64smo.device_name(); + devtag = entry.m_rproto64smo.finder_target(); break; } - if (entry.m_devbase.subdevice(devtag) == nullptr) - osd_printf_error("%s space memory map entry reads from nonexistent device '%s'\n", spaceconfig.m_name, devtag ? devtag : ""); + if (devtag.second && !devtag.first.get().subdevice(devtag.second)) + osd_printf_error("%s space memory map entry reads from nonexistent device '%s'\n", spaceconfig.m_name, devtag.first.get().subtag(devtag.second).c_str()); #ifndef MAME_DEBUG // assert will catch this earlier (void)entry.unitmask_is_appropriate(entry.m_read.m_bits, entry.m_mask, entry.m_read.m_name); #endif @@ -1214,71 +1262,71 @@ void address_map::map_validity_check(validity_checker &valid, int spacenum) cons if (entry.m_write.m_type == AMH_DEVICE_DELEGATE || entry.m_read.m_type == AMH_DEVICE_DELEGATE_M || entry.m_write.m_type == AMH_DEVICE_DELEGATE_S || entry.m_write.m_type == AMH_DEVICE_DELEGATE_SM || entry.m_read.m_type == AMH_DEVICE_DELEGATE_MO || entry.m_write.m_type == AMH_DEVICE_DELEGATE_SMO) { // extract the device tag from the proto-delegate - const char *devtag = nullptr; + std::pair, const char *> devtag(entry.m_devbase, nullptr); switch (entry.m_write.m_bits) { case 8: if (entry.m_write.m_type == AMH_DEVICE_DELEGATE) - devtag = entry.m_wproto8.device_name(); + devtag = entry.m_wproto8.finder_target(); else if (entry.m_write.m_type == AMH_DEVICE_DELEGATE_M) - devtag = entry.m_wproto8m.device_name(); + devtag = entry.m_wproto8m.finder_target(); else if (entry.m_write.m_type == AMH_DEVICE_DELEGATE_S) - devtag = entry.m_wproto8s.device_name(); + devtag = entry.m_wproto8s.finder_target(); else if (entry.m_write.m_type == AMH_DEVICE_DELEGATE_SM) - devtag = entry.m_wproto8sm.device_name(); + devtag = entry.m_wproto8sm.finder_target(); else if (entry.m_write.m_type == AMH_DEVICE_DELEGATE_MO) - devtag = entry.m_wproto8mo.device_name(); + devtag = entry.m_wproto8mo.finder_target(); else - devtag = entry.m_wproto8smo.device_name(); + devtag = entry.m_wproto8smo.finder_target(); break; case 16: if (entry.m_write.m_type == AMH_DEVICE_DELEGATE) - devtag = entry.m_wproto16.device_name(); + devtag = entry.m_wproto16.finder_target(); else if (entry.m_write.m_type == AMH_DEVICE_DELEGATE_M) - devtag = entry.m_wproto16m.device_name(); + devtag = entry.m_wproto16m.finder_target(); else if (entry.m_write.m_type == AMH_DEVICE_DELEGATE_S) - devtag = entry.m_wproto16s.device_name(); + devtag = entry.m_wproto16s.finder_target(); else if (entry.m_write.m_type == AMH_DEVICE_DELEGATE_SM) - devtag = entry.m_wproto16sm.device_name(); + devtag = entry.m_wproto16sm.finder_target(); else if (entry.m_write.m_type == AMH_DEVICE_DELEGATE_MO) - devtag = entry.m_wproto16mo.device_name(); + devtag = entry.m_wproto16mo.finder_target(); else - devtag = entry.m_wproto16smo.device_name(); + devtag = entry.m_wproto16smo.finder_target(); break; case 32: if (entry.m_write.m_type == AMH_DEVICE_DELEGATE) - devtag = entry.m_wproto32.device_name(); + devtag = entry.m_wproto32.finder_target(); else if (entry.m_write.m_type == AMH_DEVICE_DELEGATE_M) - devtag = entry.m_wproto32m.device_name(); + devtag = entry.m_wproto32m.finder_target(); else if (entry.m_write.m_type == AMH_DEVICE_DELEGATE_S) - devtag = entry.m_wproto32s.device_name(); + devtag = entry.m_wproto32s.finder_target(); else if (entry.m_write.m_type == AMH_DEVICE_DELEGATE_SM) - devtag = entry.m_wproto32sm.device_name(); + devtag = entry.m_wproto32sm.finder_target(); else if (entry.m_write.m_type == AMH_DEVICE_DELEGATE_MO) - devtag = entry.m_wproto32mo.device_name(); + devtag = entry.m_wproto32mo.finder_target(); else - devtag = entry.m_wproto32smo.device_name(); + devtag = entry.m_wproto32smo.finder_target(); break; case 64: if (entry.m_write.m_type == AMH_DEVICE_DELEGATE) - devtag = entry.m_wproto64.device_name(); + devtag = entry.m_wproto64.finder_target(); else if (entry.m_write.m_type == AMH_DEVICE_DELEGATE_M) - devtag = entry.m_wproto64m.device_name(); + devtag = entry.m_wproto64m.finder_target(); else if (entry.m_write.m_type == AMH_DEVICE_DELEGATE_S) - devtag = entry.m_wproto64s.device_name(); + devtag = entry.m_wproto64s.finder_target(); else if (entry.m_write.m_type == AMH_DEVICE_DELEGATE_SM) - devtag = entry.m_wproto64sm.device_name(); + devtag = entry.m_wproto64sm.finder_target(); else if (entry.m_write.m_type == AMH_DEVICE_DELEGATE_MO) - devtag = entry.m_wproto64mo.device_name(); + devtag = entry.m_wproto64mo.finder_target(); else - devtag = entry.m_wproto64smo.device_name(); + devtag = entry.m_wproto64smo.finder_target(); break; } - if (entry.m_devbase.subdevice(devtag) == nullptr) - osd_printf_error("%s space memory map entry writes to nonexistent device '%s'\n", spaceconfig.m_name, devtag ? devtag : ""); + if (devtag.second && !devtag.first.get().subdevice(devtag.second)) + osd_printf_error("%s space memory map entry writes to nonexistent device '%s'\n", spaceconfig.m_name, devtag.first.get().subtag(devtag.second).c_str()); #ifndef MAME_DEBUG // assert will catch this earlier (void)entry.unitmask_is_appropriate(entry.m_write.m_bits, entry.m_mask, entry.m_write.m_name); #endif diff --git a/src/emu/addrmap.h b/src/emu/addrmap.h index ee6b0e4e3b6..b201201c4dd 100644 --- a/src/emu/addrmap.h +++ b/src/emu/addrmap.h @@ -81,7 +81,7 @@ class address_map_entry static device_t &find_device(const device_finder &finder) { const std::pair target(finder.finder_target()); device_t *device(target.first.subdevice(target.second)); - if (device == nullptr) + if (!device) throw emu_fatalerror("Device %s not found in %s\n", target.second, target.first.tag()); return *device; } @@ -186,15 +186,15 @@ public: // implicit base -> delegate converter template address_map_entry &r(Ret (T::*read)(Params...), const char *read_name) - { return r(emu::detail::make_delegate(read, read_name, m_devbase.tag(), make_pointer(m_devbase))); } + { return r(emu::detail::make_delegate(*make_pointer(m_devbase), read, read_name)); } template address_map_entry &w(Ret (T::*write)(Params...), const char *write_name) - { return w(emu::detail::make_delegate(write, write_name, m_devbase.tag(), make_pointer(m_devbase))); } + { return w(emu::detail::make_delegate(*make_pointer(m_devbase), write, write_name)); } template address_map_entry &rw(RetR (T::*read)(ParamsR...), const char *read_name, RetW (U::*write)(ParamsW...), const char *write_name) - { return r(emu::detail::make_delegate(read, read_name, m_devbase.tag(), make_pointer(m_devbase))).w(emu::detail::make_delegate(write, write_name, m_devbase.tag(), make_pointer(m_devbase))); } + { return r(emu::detail::make_delegate(*make_pointer(m_devbase), read, read_name)).w(emu::detail::make_delegate(*make_pointer(m_devbase), write, write_name)); } template address_map_entry &m(Ret (T::*map)(Params...), const char *map_name) @@ -204,15 +204,15 @@ public: // device tag -> delegate converter template address_map_entry &r(const char *tag, Ret (T::*read)(Params...), const char *read_name) - { return r(emu::detail::make_delegate(read, read_name, tag, nullptr)); } + { return r(emu::detail::make_delegate(m_devbase, tag, read, read_name)); } template address_map_entry &w(const char *tag, Ret (T::*write)(Params...), const char *write_name) - { return w(emu::detail::make_delegate(write, write_name, tag, nullptr)); } + { return w(emu::detail::make_delegate(m_devbase, tag, write, write_name)); } template address_map_entry &rw(const char *tag, RetR (T::*read)(ParamsR...), const char *read_name, RetW (U::*write)(ParamsW...), const char *write_name) - { return r(emu::detail::make_delegate(read, read_name, tag, nullptr)).w(emu::detail::make_delegate(write, write_name, tag, nullptr)); } + { return r(emu::detail::make_delegate(m_devbase, tag, read, read_name)).w(emu::detail::make_delegate(m_devbase, tag, write, write_name)); } template address_map_entry &m(const char *tag, Ret (T::*map)(Params...), const char *map_name) @@ -222,15 +222,15 @@ public: // device reference -> delegate converter template address_map_entry &r(T &obj, Ret (U::*read)(Params...), const char *read_name) - { return r(emu::detail::make_delegate(read, read_name, get_tag(obj), make_pointer(obj))); } + { return r(emu::detail::make_delegate(*make_pointer(obj), read, read_name)); } template address_map_entry &w(T &obj, Ret (U::*write)(Params...), const char *write_name) - { return w(emu::detail::make_delegate(write, write_name, get_tag(obj), make_pointer(obj))); } + { return w(emu::detail::make_delegate(*make_pointer(obj), write, write_name)); } template address_map_entry &rw(T &obj, RetR (U::*read)(ParamsR...), const char *read_name, RetW (V::*write)(ParamsW...), const char *write_name) - { return r(emu::detail::make_delegate(read, read_name, get_tag(obj), make_pointer(obj))).w(emu::detail::make_delegate(write, write_name, get_tag(obj), make_pointer(obj))); } + { return r(emu::detail::make_delegate(*make_pointer(obj), read, read_name)).w(emu::detail::make_delegate(make_pointer(obj), write, write_name)); } template address_map_entry &m(T &obj, Ret (U::*map)(Params...), const char *map_name) @@ -241,39 +241,39 @@ public: template address_map_entry &r(device_finder &finder, Ret (U::*read)(Params...), const char *read_name) { device_t &device(find_device(finder)); - return r(emu::detail::make_delegate(read, read_name, device.tag(), make_pointer(device))); + return r(emu::detail::make_delegate(device, DEVICE_SELF, read, read_name)); } template address_map_entry &r(const device_finder &finder, Ret (U::*read)(Params...), const char *read_name) { device_t &device(find_device(finder)); - return r(emu::detail::make_delegate(read, read_name, device.tag(), make_pointer(device))); + return r(emu::detail::make_delegate(device, DEVICE_SELF, read, read_name)); } template address_map_entry &w(device_finder &finder, Ret (U::*write)(Params...), const char *write_name) { device_t &device(find_device(finder)); - return w(emu::detail::make_delegate(write, write_name, device.tag(), make_pointer(device))); + return w(emu::detail::make_delegate(device, DEVICE_SELF, write, write_name)); } template address_map_entry &w(const device_finder &finder, Ret (U::*write)(Params...), const char *write_name) { device_t &device(find_device(finder)); - return w(emu::detail::make_delegate(write, write_name, device.tag(), make_pointer(device))); + return w(emu::detail::make_delegate(device, DEVICE_SELF, write, write_name)); } template address_map_entry &rw(device_finder &finder, RetR (U::*read)(ParamsR...), const char *read_name, RetW (V::*write)(ParamsW...), const char *write_name) { device_t &device(find_device(finder)); - return r(emu::detail::make_delegate(read, read_name, device.tag(), make_pointer(device))) - .w(emu::detail::make_delegate(write, write_name, device.tag(), make_pointer(device))); + return r(emu::detail::make_delegate(device, DEVICE_SELF, read, read_name)) + .w(emu::detail::make_delegate(device, DEVICE_SELF, write, write_name)); } template address_map_entry &rw(const device_finder &finder, RetR (U::*read)(ParamsR...), const char *read_name, RetW (V::*write)(ParamsW...), const char *write_name) { device_t &device(find_device(finder)); - return r(emu::detail::make_delegate(read, read_name, device.tag(), make_pointer(device))) - .w(emu::detail::make_delegate(write, write_name, device.tag(), make_pointer(device))); + return r(emu::detail::make_delegate(device, DEVICE_SELF, read, read_name)) + .w(emu::detail::make_delegate(device, DEVICE_SELF, write, write_name)); } template @@ -290,53 +290,41 @@ public: // lambda -> delegate converter - template address_map_entry &lr8(const char *name, _lr &&read) { - return r(emu::detail::make_lr8_delegate(read, name)); - } + template address_map_entry &lr8(T &&read, const char *name) + { return r(emu::detail::make_lr8_delegate(m_devbase, std::forward(read), name)); } - template address_map_entry &lr16(const char *name, _lr &&read) { - return r(emu::detail::make_lr16_delegate(read, name)); - } + template address_map_entry &lr16(T &&read, const char *name) + { return r(emu::detail::make_lr16_delegate(m_devbase, std::forward(read), name)); } - template address_map_entry &lr32(const char *name, _lr &&read) { - return r(emu::detail::make_lr32_delegate(read, name)); - } + template address_map_entry &lr32(T &&read, const char *name) + { return r(emu::detail::make_lr32_delegate(m_devbase, std::forward(read), name)); } - template address_map_entry &lr64(const char *name, _lr &&read) { - return r(emu::detail::make_lr64_delegate(read, name)); - } + template address_map_entry &lr64(T &&read, const char *name) + { return r(emu::detail::make_lr64_delegate(m_devbase, std::forward(read), name)); } - template address_map_entry &lw8(const char *name, _lw &&write) { - return w(emu::detail::make_lw8_delegate(write, name)); - } + template address_map_entry &lw8(T &&write, const char *name) + { return w(emu::detail::make_lw8_delegate(m_devbase, std::forward(write), name)); } - template address_map_entry &lw16(const char *name, _lw &&write) { - return w(emu::detail::make_lw16_delegate(write, name)); - } + template address_map_entry &lw16(T &&write, const char *name) + { return w(emu::detail::make_lw16_delegate(m_devbase, std::forward(write), name)); } - template address_map_entry &lw32(const char *name, _lw &&write) { - return w(emu::detail::make_lw32_delegate(write, name)); - } + template address_map_entry &lw32(T &&write, const char *name) + { return w(emu::detail::make_lw32_delegate(m_devbase, std::forward(write), name)); } - template address_map_entry &lw64(const char *name, _lw &&write) { - return w(emu::detail::make_lw64_delegate(write, name)); - } + template address_map_entry &lw64(T &&write, const char *name) + { return w(emu::detail::make_lw64_delegate(m_devbase, std::forward(write), name)); } - template address_map_entry &lrw8(const char *name, _lr &&read, _lw &&write) { - return r(emu::detail::make_lr8_delegate(read, name)).w(emu::detail::make_lw8_delegate(write, name)); - } + template address_map_entry &lrw8(T &&read, const char *read_name, U &&write, const char *write_name) + { return r(emu::detail::make_lr8_delegate(m_devbase, std::forward(read), read_name)).w(emu::detail::make_lw8_delegate(m_devbase, std::forward(write), write_name)); } - template address_map_entry &lrw16(const char *name, _lr &&read, _lw &&write) { - return r(emu::detail::make_lr16_delegate(read, name)).w(emu::detail::make_lw16_delegate(write, name)); - } + template address_map_entry &lrw16(T &&read, const char *read_name, U &&write, const char *write_name) + { return r(emu::detail::make_lr16_delegate(m_devbase, std::forward(read), read_name)).w(emu::detail::make_lw16_delegate(m_devbase, std::forward(write), write_name)); } - template address_map_entry &lrw32(const char *name, _lr &&read, _lw &&write) { - return r(emu::detail::make_lr32_delegate(read, name)).w(emu::detail::make_lw32_delegate(write, name)); - } + template address_map_entry &lrw32(T &&read, const char *read_name, U &&write, const char *write_name) + { return r(emu::detail::make_lr32_delegate(m_devbase, std::forward(read), read_name)).w(emu::detail::make_lw32_delegate(m_devbase, std::forward(write), write_name)); } - template address_map_entry &lrw64(const char *name, _lr &&read, _lw &&write) { - return r(emu::detail::make_lr64_delegate(read, name)).w(emu::detail::make_lw64_delegate(write, name)); - } + template address_map_entry &lrw64(T &&read, const char *read_name, U &&write, const char *write_name) + { return r(emu::detail::make_lr64_delegate(m_devbase, std::forward(read), read_name)).w(emu::detail::make_lw64_delegate(m_devbase, std::forward(write), write_name)); } // public state address_map_entry * m_next; // pointer to the next entry diff --git a/src/emu/devcb.h b/src/emu/devcb.h index 6b16c37b33a..321d0831fe1 100644 --- a/src/emu/devcb.h +++ b/src/emu/devcb.h @@ -44,16 +44,8 @@ typedef device_delegate write_line_delegate; namespace emu { namespace detail { -template struct read_line_device_class { }; -template struct write_line_device_class { }; - -template -inline read_line_delegate make_delegate(T &&func, char const *name, char const *tag, rw_device_class_t > *obj) -{ return read_line_delegate(func, name, tag, obj); } - -template -inline write_line_delegate make_delegate(T &&func, char const *name, char const *tag, rw_device_class_t > *obj) -{ return write_line_delegate(func, name, tag, obj); } +template struct rw_delegate_type > > > { using type = read_line_delegate; using device_class = rw_device_class_t >; }; +template struct rw_delegate_type > > > { using type = write_line_delegate; using device_class = rw_device_class_t >; }; } } // namespace emu::detail @@ -115,43 +107,8 @@ protected: template using transform_result_t = typename transform_result::type; // Mapping method types to delegate types - template struct delegate_type; - template struct delegate_type > > > { using type = read8_delegate; using device_class = emu::detail::rw_device_class_t >; }; - template struct delegate_type > > > { using type = read16_delegate; using device_class = emu::detail::rw_device_class_t >; }; - template struct delegate_type > > > { using type = read32_delegate; using device_class = emu::detail::rw_device_class_t >; }; - template struct delegate_type > > > { using type = read64_delegate; using device_class = emu::detail::rw_device_class_t >; }; - template struct delegate_type > > > { using type = read8s_delegate; using device_class = emu::detail::rw_device_class_t >; }; - template struct delegate_type > > > { using type = read16s_delegate; using device_class = emu::detail::rw_device_class_t >; }; - template struct delegate_type > > > { using type = read32s_delegate; using device_class = emu::detail::rw_device_class_t >; }; - template struct delegate_type > > > { using type = read64s_delegate; using device_class = emu::detail::rw_device_class_t >; }; - template struct delegate_type > > > { using type = read8sm_delegate; using device_class = emu::detail::rw_device_class_t >; }; - template struct delegate_type > > > { using type = read16sm_delegate; using device_class = emu::detail::rw_device_class_t >; }; - template struct delegate_type > > > { using type = read32sm_delegate; using device_class = emu::detail::rw_device_class_t >; }; - template struct delegate_type > > > { using type = read64sm_delegate; using device_class = emu::detail::rw_device_class_t >; }; - template struct delegate_type > > > { using type = read8smo_delegate; using device_class = emu::detail::rw_device_class_t >; }; - template struct delegate_type > > > { using type = read16smo_delegate; using device_class = emu::detail::rw_device_class_t >; }; - template struct delegate_type > > > { using type = read32smo_delegate; using device_class = emu::detail::rw_device_class_t >; }; - template struct delegate_type > > > { using type = read64smo_delegate; using device_class = emu::detail::rw_device_class_t >; }; - template struct delegate_type > > > { using type = read_line_delegate; using device_class = emu::detail::rw_device_class_t >; }; - template struct delegate_type > > > { using type = write8_delegate; using device_class = emu::detail::rw_device_class_t >; }; - template struct delegate_type > > > { using type = write16_delegate; using device_class = emu::detail::rw_device_class_t >; }; - template struct delegate_type > > > { using type = write32_delegate; using device_class = emu::detail::rw_device_class_t >; }; - template struct delegate_type > > > { using type = write64_delegate; using device_class = emu::detail::rw_device_class_t >; }; - template struct delegate_type > > > { using type = write8s_delegate; using device_class = emu::detail::rw_device_class_t >; }; - template struct delegate_type > > > { using type = write16s_delegate; using device_class = emu::detail::rw_device_class_t >; }; - template struct delegate_type > > > { using type = write32s_delegate; using device_class = emu::detail::rw_device_class_t >; }; - template struct delegate_type > > > { using type = write64s_delegate; using device_class = emu::detail::rw_device_class_t >; }; - template struct delegate_type > > > { using type = write8sm_delegate; using device_class = emu::detail::rw_device_class_t >; }; - template struct delegate_type > > > { using type = write16sm_delegate; using device_class = emu::detail::rw_device_class_t >; }; - template struct delegate_type > > > { using type = write32sm_delegate; using device_class = emu::detail::rw_device_class_t >; }; - template struct delegate_type > > > { using type = write64sm_delegate; using device_class = emu::detail::rw_device_class_t >; }; - template struct delegate_type > > > { using type = write8smo_delegate; using device_class = emu::detail::rw_device_class_t >; }; - template struct delegate_type > > > { using type = write16smo_delegate; using device_class = emu::detail::rw_device_class_t >; }; - template struct delegate_type > > > { using type = write32smo_delegate; using device_class = emu::detail::rw_device_class_t >; }; - template struct delegate_type > > > { using type = write64smo_delegate; using device_class = emu::detail::rw_device_class_t >; }; - template struct delegate_type > > > { using type = write_line_delegate; using device_class = emu::detail::rw_device_class_t >; }; - template using delegate_type_t = typename delegate_type::type; - template using delegate_device_class_t = typename delegate_type::device_class; + template using delegate_type_t = emu::detail::rw_delegate_type_t; + template using delegate_device_class_t = emu::detail::rw_delegate_device_class_t; // Invoking transform callbacks template static std::enable_if_t::value, mask_t, Result> > invoke_transform(T const &cb, address_space &space, offs_t &offset, Input data, std::make_unsigned_t &mem_mask) { return std::make_unsigned_t >(cb(space, offset, data, mem_mask)); } @@ -638,20 +595,17 @@ private: delegate_builder(devcb_read &target, bool append, device_t &devbase, char const *tag, T &&func, char const *name) : builder_base(target, append) , transform_base(DefaultMask & delegate_traits::default_mask) - , m_devbase(devbase) - , m_delegate(std::forward(func), name, tag, std::add_pointer_t >(nullptr)) + , m_delegate(devbase, tag, std::forward(func), name) { } template delegate_builder(devcb_read &target, bool append, device_t &devbase, devcb_read::delegate_device_class_t &obj, T &&func, char const *name) : builder_base(target, append) , transform_base(DefaultMask & delegate_traits::default_mask) - , m_devbase(devbase) - , m_delegate(std::forward(func), name, devcb_read::get_tag(obj), &obj) + , m_delegate(obj, std::forward(func), name) { } delegate_builder(delegate_builder &&that) : builder_base(std::move(that)) , transform_base(std::move(that)) - , m_devbase(that.m_devbase) , m_delegate(std::move(that.m_delegate)) { that.consume(); @@ -670,8 +624,9 @@ private: void validity_check(validity_checker &valid) const { - if (!m_devbase.subdevice(m_delegate.device_name())) - osd_printf_error("Read callback bound to non-existent object tag %s (%s)\n", m_delegate.device_name(), m_delegate.name()); + auto const target(m_delegate.finder_target()); + if (target.second && !target.first.subdevice(target.second)) + osd_printf_error("Read callback bound to non-existent object tag %s (%s)\n", target.first.subtag(target.second).c_str(), m_delegate.name()); } template @@ -679,7 +634,7 @@ private: { assert(this->m_consumed); this->built(); - m_delegate.bind_relative_to(m_devbase); + m_delegate.resolve(); chain( [cb = std::move(this->m_delegate), exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_mask_t mem_mask) { return (devcb_read::invoke_read(cb, space, offset, mem_mask & mask) ^ exor) & mask; }); @@ -690,7 +645,6 @@ private: delegate_builder &operator=(delegate_builder const &) = delete; delegate_builder &operator=(delegate_builder &&that) = delete; - device_t &m_devbase; Delegate m_delegate; }; @@ -1328,7 +1282,6 @@ private: wrapped_builder(delegate_builder &&that) : builder_base(std::move(that)) - , m_devbase(that.m_devbase) , m_delegate(std::move(that.m_delegate)) { that.consume(); @@ -1336,7 +1289,6 @@ private: } wrapped_builder(wrapped_builder &&that) : builder_base(std::move(that)) - , m_devbase(that.m_devbase) , m_delegate(std::move(that.m_delegate)) { that.consume(); @@ -1345,15 +1297,16 @@ private: void validity_check(validity_checker &valid) const { - if (!m_devbase.subdevice(m_delegate.device_name())) - osd_printf_error("Write callback bound to non-existent object tag %s (%s)\n", m_delegate.device_name(), m_delegate.name()); + auto const target(m_delegate.finder_target()); + if (target.second && !target.first.subdevice(target.second)) + osd_printf_error("Write callback bound to non-existent object tag %s (%s)\n", target.first.subtag(target.second).c_str(), m_delegate.name()); } auto build() { assert(this->m_consumed); this->built(); - m_delegate.bind_relative_to(m_devbase); + m_delegate.resolve(); return [cb = std::move(this->m_delegate)] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t mem_mask) { devcb_write::invoke_write(cb, space, offset, data, mem_mask); }; @@ -1364,7 +1317,6 @@ private: wrapped_builder operator=(wrapped_builder const &) = delete; wrapped_builder operator=(wrapped_builder &&that) = delete; - device_t &m_devbase; Delegate m_delegate; }; @@ -1374,7 +1326,6 @@ private: delegate_builder &operator=(delegate_builder const &) = delete; delegate_builder &operator=(delegate_builder &&that) = delete; - device_t &m_devbase; Delegate m_delegate; public: @@ -1384,20 +1335,17 @@ private: delegate_builder(devcb_write &target, bool append, device_t &devbase, char const *tag, T &&func, char const *name) : builder_base(target, append) , transform_base::input_t>, delegate_builder>(DefaultMask & delegate_traits::default_mask) - , m_devbase(devbase) - , m_delegate(std::forward(func), name, tag, std::add_pointer_t >(nullptr)) + , m_delegate(devbase, tag, std::forward(func), name) { } template delegate_builder(devcb_write &target, bool append, device_t &devbase, devcb_write::delegate_device_class_t &obj, T &&func, char const *name) : builder_base(target, append) , transform_base::input_t>, delegate_builder>(DefaultMask & delegate_traits::default_mask) - , m_devbase(devbase) - , m_delegate(std::forward(func), name, devcb_write::get_tag(obj), &obj) + , m_delegate(obj, std::forward(func), name) { } delegate_builder(delegate_builder &&that) : builder_base(std::move(that)) , transform_base::input_t>, delegate_builder>(std::move(that)) - , m_devbase(that.m_devbase) , m_delegate(std::move(that.m_delegate)) { that.consume(); @@ -1415,15 +1363,16 @@ private: void validity_check(validity_checker &valid) const { - if (!m_devbase.subdevice(m_delegate.device_name())) - osd_printf_error("Write callback bound to non-existent object tag %s (%s)\n", m_delegate.device_name(), m_delegate.name()); + auto const target(m_delegate.finder_target()); + if (target.second && !target.first.subdevice(target.second)) + osd_printf_error("Write callback bound to non-existent object tag %s (%s)\n", target.first.subtag(target.second).c_str(), m_delegate.name()); } auto build() { assert(this->m_consumed); this->built(); - m_delegate.bind_relative_to(m_devbase); + m_delegate.resolve(); return [cb = std::move(this->m_delegate), exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t mem_mask) { devcb_write::invoke_write(cb, space, offset, (data ^ exor) & mask, mem_mask & mask); }; diff --git a/src/emu/devdelegate.cpp b/src/emu/devdelegate.cpp index 380f01180e2..0396b583706 100644 --- a/src/emu/devdelegate.cpp +++ b/src/emu/devdelegate.cpp @@ -1,5 +1,5 @@ // license:BSD-3-Clause -// copyright-holders:Aaron Giles +// copyright-holders:Aaron Giles, Vas Crabb /*************************************************************************** devdelegate.c @@ -9,29 +9,26 @@ ***************************************************************************/ #include "emu.h" +#include "devdelegate.h" -//------------------------------------------------- -// bound_object - use the device name to locate -// a device relative to the given search root; -// fatal error if not found -//------------------------------------------------- +namespace emu { namespace detail { -delegate_late_bind &device_delegate_helper::bound_object(device_t &search_root) const +delegate_late_bind &device_delegate_helper::bound_object() const { - device_t *device = search_root.subdevice(m_device_name); - if (device == nullptr) - throw emu_fatalerror("Unable to locate device '%s' relative to '%s'\n", m_device_name, search_root.tag()); + if (!m_tag) + return m_base.get(); + device_t *const device(m_base.get().subdevice(m_tag)); + if (!device) + throw emu_fatalerror("Unable to locate device '%s' relative to '%s'\n", m_tag, m_base.get().tag()); return *device; } -//------------------------------------------------- -// safe_tag - return a tag string or (unknown) if -// the object is not valid -//------------------------------------------------- - -const char *device_delegate_helper::safe_tag(device_t *object) +void device_delegate_helper::set_tag(char const *tag) { - return (object != nullptr) ? object->tag() : "(unknown)"; + m_base = m_base.get().mconfig().current_device(); + m_tag = tag; } + +} } // namespace emu::detail diff --git a/src/emu/devdelegate.h b/src/emu/devdelegate.h index 8bdef60f880..bbb94930d43 100644 --- a/src/emu/devdelegate.h +++ b/src/emu/devdelegate.h @@ -1,5 +1,5 @@ // license:BSD-3-Clause -// copyright-holders:Aaron Giles +// copyright-holders:Aaron Giles, Vas Crabb /*************************************************************************** devdelegate.h @@ -7,7 +7,6 @@ Delegates that are late-bound to MAME devices. ***************************************************************************/ - #ifndef MAME_EMU_DEVDELEGATE_H #define MAME_EMU_DEVDELEGATE_H @@ -15,28 +14,59 @@ #include "delegate.h" +#include +#include +#include +#include + + +namespace emu { + +//************************************************************************** +// FORWARD DECLARATIONS +//************************************************************************** + +template class device_delegate_array; + + //************************************************************************** // TYPE DEFINITIONS //************************************************************************** +namespace detail { + // ======================> device_delegate_helper // device_delegate_helper does non-template work class device_delegate_helper { +public: + // accessors + char const *finder_tag() const { return m_tag; } + std::pair finder_target() const { return std::make_pair(m_base, m_tag); } + protected: - // constructor - device_delegate_helper(const char *devname) : m_device_name(devname) { } + // construct/assign + device_delegate_helper(device_t &owner, char const *tag = nullptr) : m_base(owner), m_tag(tag) { } + template device_delegate_helper(device_finder const &finder); + device_delegate_helper(device_delegate_helper const &) = default; + device_delegate_helper &operator=(device_delegate_helper const &) = default; // internal helpers - delegate_late_bind &bound_object(device_t &search_root) const; - static const char *safe_tag(device_t *object); + delegate_late_bind &bound_object() const; + void set_tag(device_t &object) { m_base = object; m_tag = nullptr; } + void set_tag(device_t &base, char const *tag) { m_base = base; m_tag = tag; } + void set_tag(char const *tag); + template void set_tag(device_finder const &finder); - // internal state - const char *m_device_name; +private: + std::reference_wrapper m_base; + char const *m_tag; }; +} // namespace detail + // ======================> named_delegate template @@ -45,7 +75,7 @@ class named_delegate : public delegate private: using basetype = delegate; - const char * m_name; // name string + char const *m_name = nullptr; // name string protected: template using member_func_type = typename basetype::template member_func_type; @@ -54,59 +84,193 @@ protected: public: // create a standard set of constructors - named_delegate() : basetype(), m_name(nullptr) { } - explicit named_delegate(const basetype &src) : basetype(src), m_name(src.m_name) { } - named_delegate(const basetype &src, delegate_late_bind &object) : basetype(src, object), m_name(src.m_name) { } - template named_delegate(member_func_type funcptr, const char *name, FunctionClass *object) : basetype(funcptr, object), m_name(name) { } - template named_delegate(const_member_func_type funcptr, const char *name, FunctionClass *object) : basetype(funcptr, object), m_name(name) { } - explicit named_delegate(std::function funcptr, const char *name) : basetype(funcptr), m_name(name) { } - template named_delegate(static_ref_func_type funcptr, const char *name, FunctionClass *object) : basetype(funcptr, object), m_name(name) { } - named_delegate &operator=(const basetype &src) { basetype::operator=(src); m_name = src.m_name; return *this; } - - const char *name() const { return m_name; } + named_delegate() = default; + named_delegate(named_delegate const &) = default; + named_delegate(named_delegate const &src, delegate_late_bind &object) : basetype(src, object), m_name(src.m_name) { } + template named_delegate(member_func_type funcptr, char const *name, FunctionClass *object) : basetype(funcptr, object), m_name(name) { } + template named_delegate(const_member_func_type funcptr, char const *name, FunctionClass *object) : basetype(funcptr, object), m_name(name) { } + template named_delegate(static_ref_func_type funcptr, char const *name, FunctionClass *object) : basetype(funcptr, object), m_name(name) { } + template named_delegate(T &&funcptr, std::enable_if_t, T>::value, char const *> name) : basetype(std::forward(funcptr)), m_name(name) { } + + // allow assignment + named_delegate &operator=(named_delegate const &src) = default; + + char const *name() const { return m_name; } }; // ======================> device_delegate // device_delegate is a delegate that wraps with a device tag and can be easily // late bound without replicating logic everywhere -template -class device_delegate : public named_delegate, public device_delegate_helper +template class device_delegate; + +template +class device_delegate : protected named_delegate, public detail::device_delegate_helper { - using thistype = device_delegate; - using basetype = named_delegate; - template using member_func_type = typename basetype::template member_func_type; - template using const_member_func_type = typename basetype::template const_member_func_type; - template using static_ref_func_type = typename basetype::template static_ref_func_type; +private: + using basetype = named_delegate; + + template struct is_related_device_implementation + { static constexpr bool value = std::is_base_of::value && std::is_base_of::value; }; + template struct is_related_device_interface + { static constexpr bool value = std::is_base_of::value && std::is_base_of::value && !std::is_base_of::value; }; + template struct is_related_device + { static constexpr bool value = is_related_device_implementation::value || is_related_device_interface::value; }; + + template static std::enable_if_t::value, device_t &> get_device(T &object) { return object; } + template static std::enable_if_t::value, device_t &> get_device(T &object) { return object.device(); } public: - // provide the same constructors as the base class - device_delegate() : basetype(), device_delegate_helper(nullptr) { } - device_delegate(const basetype &src) : basetype(src), device_delegate_helper(src.m_device_name) { } - device_delegate(const basetype &src, delegate_late_bind &object) : basetype(src, object), device_delegate_helper(src.m_device_name) { } - template device_delegate(member_func_type funcptr, const char *name, FunctionClass *object) : basetype(funcptr, name, object), device_delegate_helper(safe_tag(dynamic_cast(object))) { } - template device_delegate(const_member_func_type funcptr, const char *name, FunctionClass *object) : basetype(funcptr, name, object), device_delegate_helper(safe_tag(dynamic_cast(object))) { } - template device_delegate(static_ref_func_type funcptr, const char *name, FunctionClass *object) : basetype(funcptr, name, object), device_delegate_helper(safe_tag(dynamic_cast(object))) { } - device_delegate(std::function funcptr, const char *name) : basetype(funcptr, name), device_delegate_helper(nullptr) { } - device_delegate &operator=(const thistype &src) { basetype::operator=(src); m_device_name = src.m_device_name; return *this; } - - // provide additional constructors that take a device name string - template device_delegate(member_func_type funcptr, const char *name, const char *devname) : basetype(funcptr, name, static_cast(nullptr)), device_delegate_helper(devname) { } - template device_delegate(member_func_type funcptr, const char *name, const char *devname, FunctionClass *) : basetype(funcptr, name, static_cast(nullptr)), device_delegate_helper(devname) { } - template device_delegate(const_member_func_type funcptr, const char *name, const char *devname) : basetype(funcptr, name, static_cast(nullptr)), device_delegate_helper(devname) { } - template device_delegate(const_member_func_type funcptr, const char *name, const char *devname, FunctionClass *) : basetype(funcptr, name, static_cast(nullptr)), device_delegate_helper(devname) { } - template device_delegate(static_ref_func_type funcptr, const char *name, const char *devname, FunctionClass *) : basetype(funcptr, name, static_cast(nullptr)), device_delegate_helper(devname) { } - device_delegate(static_ref_func_type funcptr, const char *name) : basetype(funcptr, name, static_cast(nullptr)), device_delegate_helper(nullptr) { } - - // and constructors that provide a search root - device_delegate(const thistype &src, device_t &search_root) : basetype(src), device_delegate_helper(src.m_device_name) { bind_relative_to(search_root); } + template using array = device_delegate_array; + + template struct supports_callback + { static constexpr bool value = std::is_constructible::value; }; + + // construct/assign + explicit device_delegate(device_t &owner) : basetype(), detail::device_delegate_helper(owner) { } + device_delegate(device_delegate const &) = default; + device_delegate &operator=(device_delegate const &) = default; + + // construct with prototype and target + device_delegate(basetype const &proto, device_t &object) : basetype(proto, object), detail::device_delegate_helper(object) { } + device_delegate(device_delegate const &proto, device_t &object) : basetype(proto, object), detail::device_delegate_helper(object) { } + + // construct with base and tag + template + device_delegate(device_t &base, char const *tag, ReturnType (D::*funcptr)(Params...), char const *name) + : basetype(funcptr, name, static_cast(nullptr)) + , detail::device_delegate_helper(base, tag) + { } + template + device_delegate(device_t &base, char const *tag, ReturnType (D::*funcptr)(Params...) const, char const *name) + : basetype(funcptr, name, static_cast(nullptr)) + , detail::device_delegate_helper(base, tag) + { } + template + device_delegate(device_t &base, char const *tag, ReturnType (*funcptr)(D &, Params...), char const *name) + : basetype(funcptr, name, static_cast(nullptr)) + , detail::device_delegate_helper(base, tag) + { } + + // construct with device finder + template + device_delegate(device_finder const &finder, ReturnType (E::*funcptr)(Params...), char const *name) + : basetype(funcptr, name, static_cast(nullptr)) + , detail::device_delegate_helper(finder) + { } + template + device_delegate(device_finder const &finder, ReturnType (E::*funcptr)(Params...) const, char const *name) + : basetype(funcptr, name, static_cast(nullptr)) + , detail::device_delegate_helper(finder) + { } + template + device_delegate(device_finder const &finder, ReturnType (*funcptr)(E &, Params...), char const *name) + : basetype(funcptr, name, static_cast(nullptr)) + , detail::device_delegate_helper(finder) + { } + + // construct with target object + template + device_delegate(T &object, ReturnType (D::*funcptr)(Params...), std::enable_if_t::value, char const *> name) + : basetype(funcptr, name, static_cast(&object)) + , detail::device_delegate_helper(get_device(object)) + { } + template + device_delegate(T &object, ReturnType (D::*funcptr)(Params...) const, std::enable_if_t::value, char const *> name) + : basetype(funcptr, name, static_cast(&object)) + , detail::device_delegate_helper(get_device(object)) + { } + template + device_delegate(T &object, ReturnType (*funcptr)(D &, Params...), std::enable_if_t::value, char const *> name) + : basetype(funcptr, name, static_cast(&object)) + , detail::device_delegate_helper(get_device(object)) + { } + + // construct with callable object + template + device_delegate(device_t &owner, T &&funcptr, std::enable_if_t, T>::value, char const *> name) + : basetype(std::forward(funcptr), name) + , detail::device_delegate_helper(owner) + { basetype::operator=(basetype(std::forward(funcptr), name)); } + + // setters that implicitly bind to the current device + template void set(ReturnType (D::*funcptr)(Params...), char const *name) + { basetype::operator=(basetype(funcptr, name, static_cast(nullptr))); set_tag(nullptr); } + template void set(ReturnType (D::*funcptr)(Params...) const, char const *name) + { basetype::operator=(basetype(funcptr, name, static_cast(nullptr))); set_tag(nullptr); } + template void set(ReturnType (*funcptr)(D &, Params...), char const *name) + { basetype::operator=(basetype(funcptr, name, static_cast(nullptr))); set_tag(nullptr); } + + // setters that take a tag-like object specifying the target + template void set(T &&tag, ReturnType (D::*funcptr)(Params...), char const *name) + { basetype::operator=(basetype(funcptr, name, static_cast(nullptr))); set_tag(std::forward(tag)); } + template void set(T &&tag, ReturnType (D::*funcptr)(Params...) const, char const *name) + { basetype::operator=(basetype(funcptr, name, static_cast(nullptr))); set_tag(std::forward(tag)); } + template void set(T &&tag, ReturnType (*funcptr)(D &, Params...), char const *name) + { basetype::operator=(basetype(funcptr, name, static_cast(nullptr))); set_tag(std::forward(tag)); } + + // setters that take a target object + template std::enable_if_t::value> set(T &object, ReturnType (D::*funcptr)(Params...), char const *name) + { basetype::operator=(basetype(funcptr, name, static_cast(&object))); set_tag(finder_target().first); } + template std::enable_if_t::value> set(T &object, ReturnType (D::*funcptr)(Params...) const, char const *name) + { basetype::operator=(basetype(funcptr, name, static_cast(&object))); set_tag(finder_target().first); } + template std::enable_if_t::value> set(T &object, ReturnType (*funcptr)(D &, Params...), char const *name) + { basetype::operator=(basetype(funcptr, name, static_cast(&object))); set_tag(finder_target().first); } + + // setter that takes a functoid + template std::enable_if_t, T>::value> set(T &&funcptr, char const *name) + { basetype::operator=(basetype(std::forward(funcptr), name)); } + + // unsetter + void set(std::nullptr_t) + { basetype::operator=(basetype()); set_tag(finder_target().first); } // perform the binding - void bind_relative_to(device_t &search_root) { if (!basetype::isnull()) basetype::late_bind(bound_object(search_root)); } + void resolve() { if (!basetype::isnull() && !basetype::has_object()) basetype::late_bind(bound_object()); } - // getter (for validation purposes) - const char *device_name() const { return m_device_name; } + // accessors + using basetype::operator(); + using basetype::isnull; + using basetype::has_object; + using basetype::name; }; +// simplifies constructing an array of delegates with a single owner +template +class device_delegate_array : public std::array, Count> +{ +private: + template + device_delegate_array(device_t &owner, std::integer_sequence const &) + : std::array, Count>{ make_one(owner)... } + { + } + + template device_delegate make_one(device_t &owner) + { + return device_delegate(owner); + } + +public: + using std::array, Count>::array; + + device_delegate_array(device_t &owner) + : device_delegate_array(owner, std::make_integer_sequence()) + { + } + + void resolve_all() + { + for (device_delegate &elem : *this) + elem.resolve(); + } +}; + +} // namespace emu + + +using emu::named_delegate; +using emu::device_delegate; + #endif // MAME_EMU_DEVDELEGATE_H diff --git a/src/emu/device.cpp b/src/emu/device.cpp index 42edf893168..5dc0366d99e 100644 --- a/src/emu/device.cpp +++ b/src/emu/device.cpp @@ -852,7 +852,7 @@ device_t *device_t::subdevice_slow(const char *tag) const // we presume the result is a rooted path; also doubled colons mess up our // tree walk, so catch them early assert(fulltag[0] == ':'); - assert(fulltag.find("::") == -1); + assert(fulltag.find("::") == std::string::npos); // walk the device list to the final path device_t *curdevice = &mconfig().root_device(); diff --git a/src/emu/device.h b/src/emu/device.h index 257311deb7f..a99c4589eab 100644 --- a/src/emu/device.h +++ b/src/emu/device.h @@ -596,6 +596,7 @@ public: u32 unscaled_clock() const { return m_unscaled_clock; } void set_unscaled_clock(u32 clock); void set_unscaled_clock(const XTAL &xtal) { set_unscaled_clock(xtal.value()); } + void set_unscaled_clock_int(u32 clock) { set_unscaled_clock(clock); } // non-overloaded name because binding to overloads is ugly double clock_scale() const { return m_clock_scale; } void set_clock_scale(double clockscale); attotime clocks_to_attotime(u64 clocks) const; diff --git a/src/emu/device.ipp b/src/emu/device.ipp index 9cc7a791278..2d7a5a29b7b 100644 --- a/src/emu/device.ipp +++ b/src/emu/device.ipp @@ -60,6 +60,19 @@ inline DeviceClass &device_type_impl::operator()(machine_config_rep return finder = result; } + +template +inline device_delegate_helper::device_delegate_helper(device_finder const &finder) + : device_delegate_helper(finder.finder_target().first, finder.finder_tag()) +{ +} + +template +inline void device_delegate_helper::set_tag(device_finder const &finder) +{ + std::tie(m_base, m_tag) = finder.finder_target(); +} + } } // namespace emu::detail diff --git a/src/emu/didisasm.cpp b/src/emu/didisasm.cpp index 7454e54ec3c..cd30ae6fd9a 100644 --- a/src/emu/didisasm.cpp +++ b/src/emu/didisasm.cpp @@ -49,7 +49,7 @@ private: device_disasm_interface::device_disasm_interface(const machine_config &mconfig, device_t &device) - : device_interface(device, "disasm"), m_disasm(), m_dasm_override(), m_started(false) + : device_interface(device, "disasm"), m_disasm(), m_dasm_override(device), m_started(false) { } @@ -69,6 +69,6 @@ void device_disasm_interface::interface_pre_start() if (!m_started) { m_started = true; - m_dasm_override.bind_relative_to(*device().owner()); + m_dasm_override.resolve(); } } diff --git a/src/emu/didisasm.h b/src/emu/didisasm.h index c63fe0cc421..4a727dc7834 100644 --- a/src/emu/didisasm.h +++ b/src/emu/didisasm.h @@ -35,13 +35,7 @@ public: virtual ~device_disasm_interface() = default; // Override - template void set_dasm_override(Obj &&cb) { m_dasm_override = std::forward(cb); } - void set_dasm_override(dasm_override_delegate callback) { m_dasm_override = callback; } - template void set_dasm_override(offs_t (FunctionClass::*callback)(std::ostream &, offs_t, - const util::disasm_interface::data_buffer &, const util::disasm_interface::data_buffer &), const char *name) - { - set_dasm_override(dasm_override_delegate(callback, name, nullptr, static_cast(nullptr))); - } + template void set_dasm_override(T &&... args) { m_dasm_override.set(std::forward(args)...); } // disassembler request util::disasm_interface &get_disassembler(); diff --git a/src/emu/diexec.cpp b/src/emu/diexec.cpp index fba63aa1e7d..4df8bb33493 100644 --- a/src/emu/diexec.cpp +++ b/src/emu/diexec.cpp @@ -46,9 +46,12 @@ device_execute_interface::device_execute_interface(const machine_config &mconfig : device_interface(device, "execute") , m_scheduler(nullptr) , m_disabled(false) + , m_vblank_interrupt(device) , m_vblank_interrupt_screen(nullptr) + , m_timed_interrupt(device) , m_timed_interrupt_period(attotime::zero) , m_nextexec(nullptr) + , m_driver_irq(device) , m_timedint_timer(nullptr) , m_profiler(PROFILER_IDLE) , m_icountptr(nullptr) @@ -371,9 +374,9 @@ void device_execute_interface::interface_pre_start() m_scheduler = &device().machine().scheduler(); // bind delegates - m_vblank_interrupt.bind_relative_to(*device().owner()); - m_timed_interrupt.bind_relative_to(*device().owner()); - m_driver_irq.bind_relative_to(*device().owner()); + m_vblank_interrupt.resolve(); + m_timed_interrupt.resolve(); + m_driver_irq.resolve(); // fill in the initial states int const index = device_iterator(device().machine().root_device()).indexof(*this); diff --git a/src/emu/diexec.h b/src/emu/diexec.h index 663cc6ddb1c..056033b95c6 100644 --- a/src/emu/diexec.h +++ b/src/emu/diexec.h @@ -114,53 +114,41 @@ public: // inline configuration helpers void set_disable() { m_disabled = true; } - template void set_vblank_int(Object &&cb, const char *tag) - { - m_vblank_interrupt = std::forward(cb); - m_vblank_interrupt_screen = tag; - } - void set_vblank_int(device_interrupt_delegate callback, const char *tag) + + template void set_vblank_int(const char *tag, T &&... args) { - m_vblank_interrupt = callback; + m_vblank_interrupt.set(std::forward(args)...); m_vblank_interrupt_screen = tag; } - template void set_vblank_int(const char *tag, const char *devname, void (FunctionClass::*callback)(device_t &), const char *name) + void remove_vblank_int() { - set_vblank_int(device_interrupt_delegate(callback, name, devname, static_cast(nullptr)), tag); - } - template void set_vblank_int(const char *tag, void (FunctionClass::*callback)(device_t &), const char *name) - { - set_vblank_int(device_interrupt_delegate(callback, name, nullptr, static_cast(nullptr)), tag); + m_vblank_interrupt = device_interrupt_delegate(*this); + m_vblank_interrupt_screen = nullptr; } - template void set_periodic_int(Object &&cb, const attotime &rate) + template void set_periodic_int(F &&cb, const char *name, const attotime &rate) { - m_timed_interrupt = std::forward(cb); + m_timed_interrupt.set(std::forward(cb), name); m_timed_interrupt_period = rate; } - void set_periodic_int(device_interrupt_delegate callback, const attotime &rate) + template void set_periodic_int(T &&target, F &&cb, const char *name, const attotime &rate) { - m_timed_interrupt = callback; + m_timed_interrupt.set(std::forward(target), std::forward(cb), name); m_timed_interrupt_period = rate; } - template void set_periodic_int(const char *devname, void (FunctionClass::*callback)(device_t &), const char *name, const attotime &rate) - { - set_periodic_int(device_interrupt_delegate(callback, name, devname, static_cast(nullptr)), rate); - } - template void set_periodic_int(void (FunctionClass::*callback)(device_t &), const char *name, const attotime &rate) + void remove_periodic_int() { - set_periodic_int(device_interrupt_delegate(callback, name, nullptr, static_cast(nullptr)), rate); + m_timed_interrupt = device_interrupt_delegate(*this); + m_timed_interrupt_period = attotime(); } - template void set_irq_acknowledge_callback(Object &&cb) { m_driver_irq = std::forward(cb); } - void set_irq_acknowledge_callback(device_irq_acknowledge_delegate callback) { m_driver_irq = callback; } - template void set_irq_acknowledge_callback(const char *devname, int (FunctionClass::*callback)(device_t &, int), const char *name) + template void set_irq_acknowledge_callback(T &&... args) { - set_irq_acknowledge_callback(device_irq_acknowledge_delegate(callback, name, devname, static_cast(nullptr))); + m_driver_irq.set(std::forward(args)...); } - template void set_irq_acknowledge_callback(int (FunctionClass::*callback)(device_t &, int), const char *name) + void remove_irq_acknowledge_callback() { - set_irq_acknowledge_callback(device_irq_acknowledge_delegate(callback, name, nullptr, static_cast(nullptr))); + m_driver_irq = device_irq_acknowledge_delegate(*this); } // execution management diff --git a/src/emu/emumem.cpp b/src/emu/emumem.cpp index 57032751880..cccee057ad1 100644 --- a/src/emu/emumem.cpp +++ b/src/emu/emumem.cpp @@ -226,6 +226,56 @@ class address_space_specific : public address_space using NativeType = uX; using this_type = address_space_specific; + template struct handler_width; + template struct handler_width { static constexpr int value = 0; }; + template struct handler_width { static constexpr int value = 0; }; + template struct handler_width { static constexpr int value = 0; }; + template struct handler_width { static constexpr int value = 0; }; + template struct handler_width { static constexpr int value = 0; }; + template struct handler_width { static constexpr int value = 0; }; + template struct handler_width { static constexpr int value = 0; }; + template struct handler_width { static constexpr int value = 0; }; + template struct handler_width { static constexpr int value = 0; }; + template struct handler_width { static constexpr int value = 0; }; + template struct handler_width { static constexpr int value = 0; }; + template struct handler_width { static constexpr int value = 0; }; + template struct handler_width { static constexpr int value = 1; }; + template struct handler_width { static constexpr int value = 1; }; + template struct handler_width { static constexpr int value = 1; }; + template struct handler_width { static constexpr int value = 1; }; + template struct handler_width { static constexpr int value = 1; }; + template struct handler_width { static constexpr int value = 1; }; + template struct handler_width { static constexpr int value = 1; }; + template struct handler_width { static constexpr int value = 1; }; + template struct handler_width { static constexpr int value = 1; }; + template struct handler_width { static constexpr int value = 1; }; + template struct handler_width { static constexpr int value = 1; }; + template struct handler_width { static constexpr int value = 1; }; + template struct handler_width { static constexpr int value = 2; }; + template struct handler_width { static constexpr int value = 2; }; + template struct handler_width { static constexpr int value = 2; }; + template struct handler_width { static constexpr int value = 2; }; + template struct handler_width { static constexpr int value = 2; }; + template struct handler_width { static constexpr int value = 2; }; + template struct handler_width { static constexpr int value = 2; }; + template struct handler_width { static constexpr int value = 2; }; + template struct handler_width { static constexpr int value = 2; }; + template struct handler_width { static constexpr int value = 2; }; + template struct handler_width { static constexpr int value = 2; }; + template struct handler_width { static constexpr int value = 2; }; + template struct handler_width { static constexpr int value = 3; }; + template struct handler_width { static constexpr int value = 3; }; + template struct handler_width { static constexpr int value = 3; }; + template struct handler_width { static constexpr int value = 3; }; + template struct handler_width { static constexpr int value = 3; }; + template struct handler_width { static constexpr int value = 3; }; + template struct handler_width { static constexpr int value = 3; }; + template struct handler_width { static constexpr int value = 3; }; + template struct handler_width { static constexpr int value = 3; }; + template struct handler_width { static constexpr int value = 3; }; + template struct handler_width { static constexpr int value = 3; }; + template struct handler_width { static constexpr int value = 3; }; + // constants describing the native size static constexpr u32 NATIVE_BYTES = 1 << Width; static constexpr u32 NATIVE_STEP = AddrShift >= 0 ? NATIVE_BYTES << iabs(AddrShift) : NATIVE_BYTES >> iabs(AddrShift); @@ -245,83 +295,155 @@ public: void install_readwrite_port(offs_t addrstart, offs_t addrend, offs_t addrmirror, std::string rtag, std::string wtag) override; void install_device_delegate(offs_t addrstart, offs_t addrend, device_t &device, address_map_constructor &map, u64 unitmask = 0, int cswidth = 0) override; - void install_read_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read8_delegate rhandler, u64 unitmask = 0, int cswidth = 0) override; - void install_write_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, write8_delegate whandler, u64 unitmask = 0, int cswidth = 0) override; - void install_readwrite_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read8_delegate rhandler, write8_delegate whandler, u64 unitmask = 0, int cswidth = 0) override; - void install_read_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read16_delegate rhandler, u64 unitmask = 0, int cswidth = 0) override; - void install_write_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, write16_delegate whandler, u64 unitmask = 0, int cswidth = 0) override; - void install_readwrite_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read16_delegate rhandler, write16_delegate whandler, u64 unitmask = 0, int cswidth = 0) override; - void install_read_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read32_delegate rhandler, u64 unitmask = 0, int cswidth = 0) override; - void install_write_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, write32_delegate whandler, u64 unitmask = 0, int cswidth = 0) override; - void install_readwrite_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read32_delegate rhandler, write32_delegate whandler, u64 unitmask = 0, int cswidth = 0) override; - void install_read_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read64_delegate rhandler, u64 unitmask = 0, int cswidth = 0) override; - void install_write_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, write64_delegate whandler, u64 unitmask = 0, int cswidth = 0) override; - void install_readwrite_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read64_delegate rhandler, write64_delegate whandler, u64 unitmask = 0, int cswidth = 0) override; - - void install_read_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read8m_delegate rhandler, u64 unitmask = 0, int cswidth = 0) override; - void install_write_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, write8m_delegate whandler, u64 unitmask = 0, int cswidth = 0) override; - void install_readwrite_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read8m_delegate rhandler, write8m_delegate whandler, u64 unitmask = 0, int cswidth = 0) override; - void install_read_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read16m_delegate rhandler, u64 unitmask = 0, int cswidth = 0) override; - void install_write_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, write16m_delegate whandler, u64 unitmask = 0, int cswidth = 0) override; - void install_readwrite_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read16m_delegate rhandler, write16m_delegate whandler, u64 unitmask = 0, int cswidth = 0) override; - void install_read_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read32m_delegate rhandler, u64 unitmask = 0, int cswidth = 0) override; - void install_write_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, write32m_delegate whandler, u64 unitmask = 0, int cswidth = 0) override; - void install_readwrite_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read32m_delegate rhandler, write32m_delegate whandler, u64 unitmask = 0, int cswidth = 0) override; - void install_read_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read64m_delegate rhandler, u64 unitmask = 0, int cswidth = 0) override; - void install_write_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, write64m_delegate whandler, u64 unitmask = 0, int cswidth = 0) override; - void install_readwrite_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read64m_delegate rhandler, write64m_delegate whandler, u64 unitmask = 0, int cswidth = 0) override; - - void install_read_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read8s_delegate rhandler, u64 unitmask = 0, int cswidth = 0) override; - void install_write_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, write8s_delegate whandler, u64 unitmask = 0, int cswidth = 0) override; - void install_readwrite_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read8s_delegate rhandler, write8s_delegate whandler, u64 unitmask = 0, int cswidth = 0) override; - void install_read_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read16s_delegate rhandler, u64 unitmask = 0, int cswidth = 0) override; - void install_write_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, write16s_delegate whandler, u64 unitmask = 0, int cswidth = 0) override; - void install_readwrite_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read16s_delegate rhandler, write16s_delegate whandler, u64 unitmask = 0, int cswidth = 0) override; - void install_read_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read32s_delegate rhandler, u64 unitmask = 0, int cswidth = 0) override; - void install_write_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, write32s_delegate whandler, u64 unitmask = 0, int cswidth = 0) override; - void install_readwrite_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read32s_delegate rhandler, write32s_delegate whandler, u64 unitmask = 0, int cswidth = 0) override; - void install_read_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read64s_delegate rhandler, u64 unitmask = 0, int cswidth = 0) override; - void install_write_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, write64s_delegate whandler, u64 unitmask = 0, int cswidth = 0) override; - void install_readwrite_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read64s_delegate rhandler, write64s_delegate whandler, u64 unitmask = 0, int cswidth = 0) override; - - void install_read_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read8sm_delegate rhandler, u64 unitmask = 0, int cswidth = 0) override; - void install_write_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, write8sm_delegate whandler, u64 unitmask = 0, int cswidth = 0) override; - void install_readwrite_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read8sm_delegate rhandler, write8sm_delegate whandler, u64 unitmask = 0, int cswidth = 0) override; - void install_read_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read16sm_delegate rhandler, u64 unitmask = 0, int cswidth = 0) override; - void install_write_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, write16sm_delegate whandler, u64 unitmask = 0, int cswidth = 0) override; - void install_readwrite_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read16sm_delegate rhandler, write16sm_delegate whandler, u64 unitmask = 0, int cswidth = 0) override; - void install_read_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read32sm_delegate rhandler, u64 unitmask = 0, int cswidth = 0) override; - void install_write_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, write32sm_delegate whandler, u64 unitmask = 0, int cswidth = 0) override; - void install_readwrite_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read32sm_delegate rhandler, write32sm_delegate whandler, u64 unitmask = 0, int cswidth = 0) override; - void install_read_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read64sm_delegate rhandler, u64 unitmask = 0, int cswidth = 0) override; - void install_write_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, write64sm_delegate whandler, u64 unitmask = 0, int cswidth = 0) override; - void install_readwrite_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read64sm_delegate rhandler, write64sm_delegate whandler, u64 unitmask = 0, int cswidth = 0) override; - - void install_read_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read8mo_delegate rhandler, u64 unitmask = 0, int cswidth = 0) override; - void install_write_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, write8mo_delegate whandler, u64 unitmask = 0, int cswidth = 0) override; - void install_readwrite_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read8mo_delegate rhandler, write8mo_delegate whandler, u64 unitmask = 0, int cswidth = 0) override; - void install_read_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read16mo_delegate rhandler, u64 unitmask = 0, int cswidth = 0) override; - void install_write_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, write16mo_delegate whandler, u64 unitmask = 0, int cswidth = 0) override; - void install_readwrite_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read16mo_delegate rhandler, write16mo_delegate whandler, u64 unitmask = 0, int cswidth = 0) override; - void install_read_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read32mo_delegate rhandler, u64 unitmask = 0, int cswidth = 0) override; - void install_write_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, write32mo_delegate whandler, u64 unitmask = 0, int cswidth = 0) override; - void install_readwrite_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read32mo_delegate rhandler, write32mo_delegate whandler, u64 unitmask = 0, int cswidth = 0) override; - void install_read_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read64mo_delegate rhandler, u64 unitmask = 0, int cswidth = 0) override; - void install_write_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, write64mo_delegate whandler, u64 unitmask = 0, int cswidth = 0) override; - void install_readwrite_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read64mo_delegate rhandler, write64mo_delegate whandler, u64 unitmask = 0, int cswidth = 0) override; - - void install_read_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read8smo_delegate rhandler, u64 unitmask = 0, int cswidth = 0) override; - void install_write_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, write8smo_delegate whandler, u64 unitmask = 0, int cswidth = 0) override; - void install_readwrite_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read8smo_delegate rhandler, write8smo_delegate whandler, u64 unitmask = 0, int cswidth = 0) override; - void install_read_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read16smo_delegate rhandler, u64 unitmask = 0, int cswidth = 0) override; - void install_write_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, write16smo_delegate whandler, u64 unitmask = 0, int cswidth = 0) override; - void install_readwrite_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read16smo_delegate rhandler, write16smo_delegate whandler, u64 unitmask = 0, int cswidth = 0) override; - void install_read_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read32smo_delegate rhandler, u64 unitmask = 0, int cswidth = 0) override; - void install_write_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, write32smo_delegate whandler, u64 unitmask = 0, int cswidth = 0) override; - void install_readwrite_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read32smo_delegate rhandler, write32smo_delegate whandler, u64 unitmask = 0, int cswidth = 0) override; - void install_read_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read64smo_delegate rhandler, u64 unitmask = 0, int cswidth = 0) override; - void install_write_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, write64smo_delegate whandler, u64 unitmask = 0, int cswidth = 0) override; - void install_readwrite_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read64smo_delegate rhandler, write64smo_delegate whandler, u64 unitmask = 0, int cswidth = 0) override; + void install_read_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read8_delegate rhandler, u64 unitmask = 0, int cswidth = 0) override + { install_read_handler_impl(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, rhandler); } + void install_write_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, write8_delegate whandler, u64 unitmask = 0, int cswidth = 0) override + { install_write_handler_impl(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, whandler); } + void install_readwrite_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read8_delegate rhandler, write8_delegate whandler, u64 unitmask = 0, int cswidth = 0) override + { install_readwrite_handler_impl(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, rhandler, whandler); } + void install_read_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read16_delegate rhandler, u64 unitmask = 0, int cswidth = 0) override + { install_read_handler_impl(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, rhandler); } + void install_write_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, write16_delegate whandler, u64 unitmask = 0, int cswidth = 0) override + { install_write_handler_impl(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, whandler); } + void install_readwrite_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read16_delegate rhandler, write16_delegate whandler, u64 unitmask = 0, int cswidth = 0) override + { install_readwrite_handler_impl(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, rhandler, whandler); } + void install_read_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read32_delegate rhandler, u64 unitmask = 0, int cswidth = 0) override + { install_read_handler_impl(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, rhandler); } + void install_write_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, write32_delegate whandler, u64 unitmask = 0, int cswidth = 0) override + { install_write_handler_impl(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, whandler); } + void install_readwrite_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read32_delegate rhandler, write32_delegate whandler, u64 unitmask = 0, int cswidth = 0) override + { install_readwrite_handler_impl(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, rhandler, whandler); } + void install_read_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read64_delegate rhandler, u64 unitmask = 0, int cswidth = 0) override + { install_read_handler_impl(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, rhandler); } + void install_write_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, write64_delegate whandler, u64 unitmask = 0, int cswidth = 0) override + { install_write_handler_impl(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, whandler); } + void install_readwrite_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read64_delegate rhandler, write64_delegate whandler, u64 unitmask = 0, int cswidth = 0) override + { install_readwrite_handler_impl(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, rhandler, whandler); } + + void install_read_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read8m_delegate rhandler, u64 unitmask = 0, int cswidth = 0) override + { install_read_handler_impl(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, rhandler); } + void install_write_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, write8m_delegate whandler, u64 unitmask = 0, int cswidth = 0) override + { install_write_handler_impl(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, whandler); } + void install_readwrite_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read8m_delegate rhandler, write8m_delegate whandler, u64 unitmask = 0, int cswidth = 0) override + { install_readwrite_handler_impl(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, rhandler, whandler); } + void install_read_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read16m_delegate rhandler, u64 unitmask = 0, int cswidth = 0) override + { install_read_handler_impl(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, rhandler); } + void install_write_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, write16m_delegate whandler, u64 unitmask = 0, int cswidth = 0) override + { install_write_handler_impl(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, whandler); } + void install_readwrite_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read16m_delegate rhandler, write16m_delegate whandler, u64 unitmask = 0, int cswidth = 0) override + { install_readwrite_handler_impl(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, rhandler, whandler); } + void install_read_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read32m_delegate rhandler, u64 unitmask = 0, int cswidth = 0) override + { install_read_handler_impl(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, rhandler); } + void install_write_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, write32m_delegate whandler, u64 unitmask = 0, int cswidth = 0) override + { install_write_handler_impl(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, whandler); } + void install_readwrite_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read32m_delegate rhandler, write32m_delegate whandler, u64 unitmask = 0, int cswidth = 0) override + { install_readwrite_handler_impl(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, rhandler, whandler); } + void install_read_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read64m_delegate rhandler, u64 unitmask = 0, int cswidth = 0) override + { install_read_handler_impl(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, rhandler); } + void install_write_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, write64m_delegate whandler, u64 unitmask = 0, int cswidth = 0) override + { install_write_handler_impl(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, whandler); } + void install_readwrite_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read64m_delegate rhandler, write64m_delegate whandler, u64 unitmask = 0, int cswidth = 0) override + { install_readwrite_handler_impl(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, rhandler, whandler); } + + void install_read_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read8s_delegate rhandler, u64 unitmask = 0, int cswidth = 0) override + { install_read_handler_impl(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, rhandler); } + void install_write_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, write8s_delegate whandler, u64 unitmask = 0, int cswidth = 0) override + { install_write_handler_impl(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, whandler); } + void install_readwrite_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read8s_delegate rhandler, write8s_delegate whandler, u64 unitmask = 0, int cswidth = 0) override + { install_readwrite_handler_impl(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, rhandler, whandler); } + void install_read_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read16s_delegate rhandler, u64 unitmask = 0, int cswidth = 0) override + { install_read_handler_impl(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, rhandler); } + void install_write_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, write16s_delegate whandler, u64 unitmask = 0, int cswidth = 0) override + { install_write_handler_impl(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, whandler); } + void install_readwrite_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read16s_delegate rhandler, write16s_delegate whandler, u64 unitmask = 0, int cswidth = 0) override + { install_readwrite_handler_impl(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, rhandler, whandler); } + void install_read_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read32s_delegate rhandler, u64 unitmask = 0, int cswidth = 0) override + { install_read_handler_impl(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, rhandler); } + void install_write_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, write32s_delegate whandler, u64 unitmask = 0, int cswidth = 0) override + { install_write_handler_impl(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, whandler); } + void install_readwrite_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read32s_delegate rhandler, write32s_delegate whandler, u64 unitmask = 0, int cswidth = 0) override + { install_readwrite_handler_impl(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, rhandler, whandler); } + void install_read_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read64s_delegate rhandler, u64 unitmask = 0, int cswidth = 0) override + { install_read_handler_impl(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, rhandler); } + void install_write_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, write64s_delegate whandler, u64 unitmask = 0, int cswidth = 0) override + { install_write_handler_impl(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, whandler); } + void install_readwrite_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read64s_delegate rhandler, write64s_delegate whandler, u64 unitmask = 0, int cswidth = 0) override + { install_readwrite_handler_impl(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, rhandler, whandler); } + + void install_read_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read8sm_delegate rhandler, u64 unitmask = 0, int cswidth = 0) override + { install_read_handler_impl(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, rhandler); } + void install_write_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, write8sm_delegate whandler, u64 unitmask = 0, int cswidth = 0) override + { install_write_handler_impl(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, whandler); } + void install_readwrite_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read8sm_delegate rhandler, write8sm_delegate whandler, u64 unitmask = 0, int cswidth = 0) override + { install_readwrite_handler_impl(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, rhandler, whandler); } + void install_read_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read16sm_delegate rhandler, u64 unitmask = 0, int cswidth = 0) override + { install_read_handler_impl(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, rhandler); } + void install_write_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, write16sm_delegate whandler, u64 unitmask = 0, int cswidth = 0) override + { install_write_handler_impl(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, whandler); } + void install_readwrite_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read16sm_delegate rhandler, write16sm_delegate whandler, u64 unitmask = 0, int cswidth = 0) override + { install_readwrite_handler_impl(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, rhandler, whandler); } + void install_read_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read32sm_delegate rhandler, u64 unitmask = 0, int cswidth = 0) override + { install_read_handler_impl(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, rhandler); } + void install_write_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, write32sm_delegate whandler, u64 unitmask = 0, int cswidth = 0) override + { install_write_handler_impl(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, whandler); } + void install_readwrite_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read32sm_delegate rhandler, write32sm_delegate whandler, u64 unitmask = 0, int cswidth = 0) override + { install_readwrite_handler_impl(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, rhandler, whandler); } + void install_read_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read64sm_delegate rhandler, u64 unitmask = 0, int cswidth = 0) override + { install_read_handler_impl(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, rhandler); } + void install_write_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, write64sm_delegate whandler, u64 unitmask = 0, int cswidth = 0) override + { install_write_handler_impl(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, whandler); } + void install_readwrite_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read64sm_delegate rhandler, write64sm_delegate whandler, u64 unitmask = 0, int cswidth = 0) override + { install_readwrite_handler_impl(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, rhandler, whandler); } + + void install_read_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read8mo_delegate rhandler, u64 unitmask = 0, int cswidth = 0) override + { install_read_handler_impl(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, rhandler); } + void install_write_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, write8mo_delegate whandler, u64 unitmask = 0, int cswidth = 0) override + { install_write_handler_impl(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, whandler); } + void install_readwrite_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read8mo_delegate rhandler, write8mo_delegate whandler, u64 unitmask = 0, int cswidth = 0) override + { install_readwrite_handler_impl(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, rhandler, whandler); } + void install_read_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read16mo_delegate rhandler, u64 unitmask = 0, int cswidth = 0) override + { install_read_handler_impl(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, rhandler); } + void install_write_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, write16mo_delegate whandler, u64 unitmask = 0, int cswidth = 0) override + { install_write_handler_impl(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, whandler); } + void install_readwrite_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read16mo_delegate rhandler, write16mo_delegate whandler, u64 unitmask = 0, int cswidth = 0) override + { install_readwrite_handler_impl(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, rhandler, whandler); } + void install_read_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read32mo_delegate rhandler, u64 unitmask = 0, int cswidth = 0) override + { install_read_handler_impl(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, rhandler); } + void install_write_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, write32mo_delegate whandler, u64 unitmask = 0, int cswidth = 0) override + { install_write_handler_impl(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, whandler); } + void install_readwrite_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read32mo_delegate rhandler, write32mo_delegate whandler, u64 unitmask = 0, int cswidth = 0) override + { install_readwrite_handler_impl(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, rhandler, whandler); } + void install_read_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read64mo_delegate rhandler, u64 unitmask = 0, int cswidth = 0) override + { install_read_handler_impl(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, rhandler); } + void install_write_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, write64mo_delegate whandler, u64 unitmask = 0, int cswidth = 0) override + { install_write_handler_impl(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, whandler); } + void install_readwrite_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read64mo_delegate rhandler, write64mo_delegate whandler, u64 unitmask = 0, int cswidth = 0) override + { install_readwrite_handler_impl(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, rhandler, whandler); } + + void install_read_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read8smo_delegate rhandler, u64 unitmask = 0, int cswidth = 0) override + { install_read_handler_impl(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, rhandler); } + void install_write_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, write8smo_delegate whandler, u64 unitmask = 0, int cswidth = 0) override + { install_write_handler_impl(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, whandler); } + void install_readwrite_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read8smo_delegate rhandler, write8smo_delegate whandler, u64 unitmask = 0, int cswidth = 0) override + { install_readwrite_handler_impl(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, rhandler, whandler); } + void install_read_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read16smo_delegate rhandler, u64 unitmask = 0, int cswidth = 0) override + { install_read_handler_impl(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, rhandler); } + void install_write_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, write16smo_delegate whandler, u64 unitmask = 0, int cswidth = 0) override + { install_write_handler_impl(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, whandler); } + void install_readwrite_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read16smo_delegate rhandler, write16smo_delegate whandler, u64 unitmask = 0, int cswidth = 0) override + { install_readwrite_handler_impl(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, rhandler, whandler); } + void install_read_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read32smo_delegate rhandler, u64 unitmask = 0, int cswidth = 0) override + { install_read_handler_impl(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, rhandler); } + void install_write_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, write32smo_delegate whandler, u64 unitmask = 0, int cswidth = 0) override + { install_write_handler_impl(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, whandler); } + void install_readwrite_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read32smo_delegate rhandler, write32smo_delegate whandler, u64 unitmask = 0, int cswidth = 0) override + { install_readwrite_handler_impl(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, rhandler, whandler); } + void install_read_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read64smo_delegate rhandler, u64 unitmask = 0, int cswidth = 0) override + { install_read_handler_impl(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, rhandler); } + void install_write_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, write64smo_delegate whandler, u64 unitmask = 0, int cswidth = 0) override + { install_write_handler_impl(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, whandler); } + void install_readwrite_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read64smo_delegate rhandler, write64smo_delegate whandler, u64 unitmask = 0, int cswidth = 0) override + { install_readwrite_handler_impl(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, rhandler, whandler); } using address_space::install_read_tap; using address_space::install_write_tap; @@ -537,9 +659,47 @@ public: std::unordered_set m_delayed_unrefs; private: + template + void install_read_handler_impl(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, u64 unitmask, int cswidth, READ &handler_r) + { + try { handler_r.resolve(); } + catch (const binding_type_exception &) { + osd_printf_error("Binding error while installing read handler %s for range 0x%X-0x%X mask 0x%X mirror 0x%X select 0x%X umask 0x%X\n", handler_r.name(), addrstart, addrend, addrmask, addrmirror, addrselect, unitmask); + throw; + } + install_read_handler_helper::value>(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, handler_r); + } + + template + void install_write_handler_impl(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, u64 unitmask, int cswidth, WRITE &handler_w) + { + try { handler_w.resolve(); } + catch (const binding_type_exception &) { + osd_printf_error("Binding error while installing write handler %s for range 0x%X-0x%X mask 0x%X mirror 0x%X select 0x%X umask 0x%X\n", handler_w.name(), addrstart, addrend, addrmask, addrmirror, addrselect, unitmask); + throw; + } + install_write_handler_helper::value>(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, handler_w); + } + + template + void install_readwrite_handler_impl(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, u64 unitmask, int cswidth, READ &handler_r, WRITE &handler_w) + { + static_assert(handler_width::value == handler_width::value, "handler widths do not match"); + try { handler_r.resolve(); } + catch (const binding_type_exception &) { + osd_printf_error("Binding error while installing read handler %s for range 0x%X-0x%X mask 0x%X mirror 0x%X select 0x%X umask 0x%X\n", handler_r.name(), addrstart, addrend, addrmask, addrmirror, addrselect, unitmask); + throw; + } + try { handler_w.resolve(); } + catch (const binding_type_exception &) { + osd_printf_error("Binding error while installing write handler %s for range 0x%X-0x%X mask 0x%X mirror 0x%X select 0x%X umask 0x%X\n", handler_w.name(), addrstart, addrend, addrmask, addrmirror, addrselect, unitmask); + throw; + } + install_readwrite_handler_helper::value>(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, handler_r, handler_w); + } + template std::enable_if_t<(Width == AccessWidth)> - install_read_handler_helper(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, u64 unitmask, int cswidth, - READ handler_r) + install_read_handler_helper(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, u64 unitmask, int cswidth, const READ &handler_r) { VPRINTF(("address_space::install_read_handler(%s-%s mask=%s mirror=%s, space width=%d, handler width=%d, %s, %s)\n", core_i64_hex_format(addrstart, m_addrchars), core_i64_hex_format(addrend, m_addrchars), @@ -560,7 +720,7 @@ private: template std::enable_if_t<(Width > AccessWidth)> install_read_handler_helper(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, u64 unitmask, int cswidth, - READ handler_r) + const READ &handler_r) { VPRINTF(("address_space::install_read_handler(%s-%s mask=%s mirror=%s, space width=%d, handler width=%d, %s, %s)\n", core_i64_hex_format(addrstart, m_addrchars), core_i64_hex_format(addrend, m_addrchars), @@ -584,14 +744,14 @@ private: template std::enable_if_t<(Width < AccessWidth)> install_read_handler_helper(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, u64 unitmask, int cswidth, - READ handler_r) + const READ &handler_r) { fatalerror("install_read_handler: cannot install a %d-wide handler in a %d-wide bus", 8 << AccessWidth, 8 << Width); } template std::enable_if_t<(Width == AccessWidth)> install_write_handler_helper(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, u64 unitmask, int cswidth, - WRITE handler_w) + const WRITE &handler_w) { VPRINTF(("address_space::install_write_handler(%s-%s mask=%s mirror=%s, space width=%d, handler width=%d, %s, %s)\n", core_i64_hex_format(addrstart, m_addrchars), core_i64_hex_format(addrend, m_addrchars), @@ -612,7 +772,7 @@ private: template std::enable_if_t<(Width > AccessWidth)> install_write_handler_helper(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, u64 unitmask, int cswidth, - WRITE handler_w) + const WRITE &handler_w) { VPRINTF(("address_space::install_write_handler(%s-%s mask=%s mirror=%s, space width=%d, handler width=%d, %s, %s)\n", core_i64_hex_format(addrstart, m_addrchars), core_i64_hex_format(addrend, m_addrchars), @@ -636,7 +796,7 @@ private: template std::enable_if_t<(Width < AccessWidth)> install_write_handler_helper(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, u64 unitmask, int cswidth, - WRITE handler_w) + const WRITE &handler_w) { fatalerror("install_write_handler: cannot install a %d-wide handler in a %d-wide bus", 8 << AccessWidth, 8 << Width); } @@ -645,8 +805,8 @@ private: template std::enable_if_t<(Width == AccessWidth)> install_readwrite_handler_helper(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, u64 unitmask, int cswidth, - READ handler_r, - WRITE handler_w) + const READ &handler_r, + const WRITE &handler_w) { VPRINTF(("address_space::install_readwrite_handler(%s-%s mask=%s mirror=%s, space width=%d, handler width=%d, %s, %s, %s)\n", core_i64_hex_format(addrstart, m_addrchars), core_i64_hex_format(addrend, m_addrchars), @@ -672,8 +832,8 @@ private: template std::enable_if_t<(Width > AccessWidth)> install_readwrite_handler_helper(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, u64 unitmask, int cswidth, - READ handler_r, - WRITE handler_w) + const READ &handler_r, + const WRITE &handler_w) { VPRINTF(("address_space::install_readwrite_handler(%s-%s mask=%s mirror=%s, space width=%d, handler width=%d, %s, %s, %s)\n", core_i64_hex_format(addrstart, m_addrchars), core_i64_hex_format(addrend, m_addrchars), @@ -704,8 +864,8 @@ private: template std::enable_if_t<(Width < AccessWidth)> install_readwrite_handler_helper(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, u64 unitmask, int cswidth, - READ handler_r, - WRITE handler_w) + const READ &handler_r, + const WRITE &handler_w) { fatalerror("install_readwrite_handler: cannot install a %d-wide handler in a %d-wide bus", 8 << AccessWidth, 8 << Width); } @@ -1370,18 +1530,18 @@ void address_space::populate_map_entry(const address_map_entry &entry, read_or_w if (readorwrite == read_or_write::READ) switch (data.m_bits) { - case 8: install_read_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, read8_delegate(entry.m_rproto8, entry.m_devbase), entry.m_mask, entry.m_cswidth); break; - case 16: install_read_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, read16_delegate(entry.m_rproto16, entry.m_devbase), entry.m_mask, entry.m_cswidth); break; - case 32: install_read_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, read32_delegate(entry.m_rproto32, entry.m_devbase), entry.m_mask, entry.m_cswidth); break; - case 64: install_read_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, read64_delegate(entry.m_rproto64, entry.m_devbase), entry.m_mask, entry.m_cswidth); break; + case 8: install_read_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, entry.m_rproto8, entry.m_mask, entry.m_cswidth); break; + case 16: install_read_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, entry.m_rproto16, entry.m_mask, entry.m_cswidth); break; + case 32: install_read_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, entry.m_rproto32, entry.m_mask, entry.m_cswidth); break; + case 64: install_read_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, entry.m_rproto64, entry.m_mask, entry.m_cswidth); break; } else switch (data.m_bits) { - case 8: install_write_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, write8_delegate(entry.m_wproto8, entry.m_devbase), entry.m_mask, entry.m_cswidth); break; - case 16: install_write_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, write16_delegate(entry.m_wproto16, entry.m_devbase), entry.m_mask, entry.m_cswidth); break; - case 32: install_write_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, write32_delegate(entry.m_wproto32, entry.m_devbase), entry.m_mask, entry.m_cswidth); break; - case 64: install_write_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, write64_delegate(entry.m_wproto64, entry.m_devbase), entry.m_mask, entry.m_cswidth); break; + case 8: install_write_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, entry.m_wproto8, entry.m_mask, entry.m_cswidth); break; + case 16: install_write_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, entry.m_wproto16, entry.m_mask, entry.m_cswidth); break; + case 32: install_write_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, entry.m_wproto32, entry.m_mask, entry.m_cswidth); break; + case 64: install_write_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, entry.m_wproto64, entry.m_mask, entry.m_cswidth); break; } break; @@ -1389,18 +1549,18 @@ void address_space::populate_map_entry(const address_map_entry &entry, read_or_w if (readorwrite == read_or_write::READ) switch (data.m_bits) { - case 8: install_read_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, read8m_delegate(entry.m_rproto8m, entry.m_devbase), entry.m_mask, entry.m_cswidth); break; - case 16: install_read_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, read16m_delegate(entry.m_rproto16m, entry.m_devbase), entry.m_mask, entry.m_cswidth); break; - case 32: install_read_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, read32m_delegate(entry.m_rproto32m, entry.m_devbase), entry.m_mask, entry.m_cswidth); break; - case 64: install_read_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, read64m_delegate(entry.m_rproto64m, entry.m_devbase), entry.m_mask, entry.m_cswidth); break; + case 8: install_read_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, entry.m_rproto8m, entry.m_mask, entry.m_cswidth); break; + case 16: install_read_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, entry.m_rproto16m, entry.m_mask, entry.m_cswidth); break; + case 32: install_read_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, entry.m_rproto32m, entry.m_mask, entry.m_cswidth); break; + case 64: install_read_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, entry.m_rproto64m, entry.m_mask, entry.m_cswidth); break; } else switch (data.m_bits) { - case 8: install_write_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, write8m_delegate(entry.m_wproto8m, entry.m_devbase), entry.m_mask, entry.m_cswidth); break; - case 16: install_write_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, write16m_delegate(entry.m_wproto16m, entry.m_devbase), entry.m_mask, entry.m_cswidth); break; - case 32: install_write_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, write32m_delegate(entry.m_wproto32m, entry.m_devbase), entry.m_mask, entry.m_cswidth); break; - case 64: install_write_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, write64m_delegate(entry.m_wproto64m, entry.m_devbase), entry.m_mask, entry.m_cswidth); break; + case 8: install_write_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, entry.m_wproto8m, entry.m_mask, entry.m_cswidth); break; + case 16: install_write_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, entry.m_wproto16m, entry.m_mask, entry.m_cswidth); break; + case 32: install_write_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, entry.m_wproto32m, entry.m_mask, entry.m_cswidth); break; + case 64: install_write_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, entry.m_wproto64m, entry.m_mask, entry.m_cswidth); break; } break; @@ -1408,18 +1568,18 @@ void address_space::populate_map_entry(const address_map_entry &entry, read_or_w if (readorwrite == read_or_write::READ) switch (data.m_bits) { - case 8: install_read_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, read8s_delegate(entry.m_rproto8s, entry.m_devbase), entry.m_mask, entry.m_cswidth); break; - case 16: install_read_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, read16s_delegate(entry.m_rproto16s, entry.m_devbase), entry.m_mask, entry.m_cswidth); break; - case 32: install_read_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, read32s_delegate(entry.m_rproto32s, entry.m_devbase), entry.m_mask, entry.m_cswidth); break; - case 64: install_read_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, read64s_delegate(entry.m_rproto64s, entry.m_devbase), entry.m_mask, entry.m_cswidth); break; + case 8: install_read_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, entry.m_rproto8s, entry.m_mask, entry.m_cswidth); break; + case 16: install_read_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, entry.m_rproto16s, entry.m_mask, entry.m_cswidth); break; + case 32: install_read_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, entry.m_rproto32s, entry.m_mask, entry.m_cswidth); break; + case 64: install_read_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, entry.m_rproto64s, entry.m_mask, entry.m_cswidth); break; } else switch (data.m_bits) { - case 8: install_write_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, write8s_delegate(entry.m_wproto8s, entry.m_devbase), entry.m_mask, entry.m_cswidth); break; - case 16: install_write_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, write16s_delegate(entry.m_wproto16s, entry.m_devbase), entry.m_mask, entry.m_cswidth); break; - case 32: install_write_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, write32s_delegate(entry.m_wproto32s, entry.m_devbase), entry.m_mask, entry.m_cswidth); break; - case 64: install_write_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, write64s_delegate(entry.m_wproto64s, entry.m_devbase), entry.m_mask, entry.m_cswidth); break; + case 8: install_write_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, entry.m_wproto8s, entry.m_mask, entry.m_cswidth); break; + case 16: install_write_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, entry.m_wproto16s, entry.m_mask, entry.m_cswidth); break; + case 32: install_write_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, entry.m_wproto32s, entry.m_mask, entry.m_cswidth); break; + case 64: install_write_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, entry.m_wproto64s, entry.m_mask, entry.m_cswidth); break; } break; @@ -1427,18 +1587,18 @@ void address_space::populate_map_entry(const address_map_entry &entry, read_or_w if (readorwrite == read_or_write::READ) switch (data.m_bits) { - case 8: install_read_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, read8sm_delegate(entry.m_rproto8sm, entry.m_devbase), entry.m_mask, entry.m_cswidth); break; - case 16: install_read_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, read16sm_delegate(entry.m_rproto16sm, entry.m_devbase), entry.m_mask, entry.m_cswidth); break; - case 32: install_read_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, read32sm_delegate(entry.m_rproto32sm, entry.m_devbase), entry.m_mask, entry.m_cswidth); break; - case 64: install_read_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, read64sm_delegate(entry.m_rproto64sm, entry.m_devbase), entry.m_mask, entry.m_cswidth); break; + case 8: install_read_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, entry.m_rproto8sm, entry.m_mask, entry.m_cswidth); break; + case 16: install_read_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, entry.m_rproto16sm, entry.m_mask, entry.m_cswidth); break; + case 32: install_read_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, entry.m_rproto32sm, entry.m_mask, entry.m_cswidth); break; + case 64: install_read_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, entry.m_rproto64sm, entry.m_mask, entry.m_cswidth); break; } else switch (data.m_bits) { - case 8: install_write_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, write8sm_delegate(entry.m_wproto8sm, entry.m_devbase), entry.m_mask, entry.m_cswidth); break; - case 16: install_write_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, write16sm_delegate(entry.m_wproto16sm, entry.m_devbase), entry.m_mask, entry.m_cswidth); break; - case 32: install_write_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, write32sm_delegate(entry.m_wproto32sm, entry.m_devbase), entry.m_mask, entry.m_cswidth); break; - case 64: install_write_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, write64sm_delegate(entry.m_wproto64sm, entry.m_devbase), entry.m_mask, entry.m_cswidth); break; + case 8: install_write_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, entry.m_wproto8sm, entry.m_mask, entry.m_cswidth); break; + case 16: install_write_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, entry.m_wproto16sm, entry.m_mask, entry.m_cswidth); break; + case 32: install_write_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, entry.m_wproto32sm, entry.m_mask, entry.m_cswidth); break; + case 64: install_write_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, entry.m_wproto64sm, entry.m_mask, entry.m_cswidth); break; } break; @@ -1446,18 +1606,18 @@ void address_space::populate_map_entry(const address_map_entry &entry, read_or_w if (readorwrite == read_or_write::READ) switch (data.m_bits) { - case 8: install_read_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, read8mo_delegate(entry.m_rproto8mo, entry.m_devbase), entry.m_mask, entry.m_cswidth); break; - case 16: install_read_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, read16mo_delegate(entry.m_rproto16mo, entry.m_devbase), entry.m_mask, entry.m_cswidth); break; - case 32: install_read_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, read32mo_delegate(entry.m_rproto32mo, entry.m_devbase), entry.m_mask, entry.m_cswidth); break; - case 64: install_read_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, read64mo_delegate(entry.m_rproto64mo, entry.m_devbase), entry.m_mask, entry.m_cswidth); break; + case 8: install_read_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, entry.m_rproto8mo, entry.m_mask, entry.m_cswidth); break; + case 16: install_read_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, entry.m_rproto16mo, entry.m_mask, entry.m_cswidth); break; + case 32: install_read_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, entry.m_rproto32mo, entry.m_mask, entry.m_cswidth); break; + case 64: install_read_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, entry.m_rproto64mo, entry.m_mask, entry.m_cswidth); break; } else switch (data.m_bits) { - case 8: install_write_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, write8mo_delegate(entry.m_wproto8mo, entry.m_devbase), entry.m_mask, entry.m_cswidth); break; - case 16: install_write_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, write16mo_delegate(entry.m_wproto16mo, entry.m_devbase), entry.m_mask, entry.m_cswidth); break; - case 32: install_write_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, write32mo_delegate(entry.m_wproto32mo, entry.m_devbase), entry.m_mask, entry.m_cswidth); break; - case 64: install_write_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, write64mo_delegate(entry.m_wproto64mo, entry.m_devbase), entry.m_mask, entry.m_cswidth); break; + case 8: install_write_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, entry.m_wproto8mo, entry.m_mask, entry.m_cswidth); break; + case 16: install_write_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, entry.m_wproto16mo, entry.m_mask, entry.m_cswidth); break; + case 32: install_write_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, entry.m_wproto32mo, entry.m_mask, entry.m_cswidth); break; + case 64: install_write_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, entry.m_wproto64mo, entry.m_mask, entry.m_cswidth); break; } break; @@ -1465,18 +1625,18 @@ void address_space::populate_map_entry(const address_map_entry &entry, read_or_w if (readorwrite == read_or_write::READ) switch (data.m_bits) { - case 8: install_read_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, read8smo_delegate(entry.m_rproto8smo, entry.m_devbase), entry.m_mask, entry.m_cswidth); break; - case 16: install_read_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, read16smo_delegate(entry.m_rproto16smo, entry.m_devbase), entry.m_mask, entry.m_cswidth); break; - case 32: install_read_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, read32smo_delegate(entry.m_rproto32smo, entry.m_devbase), entry.m_mask, entry.m_cswidth); break; - case 64: install_read_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, read64smo_delegate(entry.m_rproto64smo, entry.m_devbase), entry.m_mask, entry.m_cswidth); break; + case 8: install_read_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, entry.m_rproto8smo, entry.m_mask, entry.m_cswidth); break; + case 16: install_read_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, entry.m_rproto16smo, entry.m_mask, entry.m_cswidth); break; + case 32: install_read_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, entry.m_rproto32smo, entry.m_mask, entry.m_cswidth); break; + case 64: install_read_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, entry.m_rproto64smo, entry.m_mask, entry.m_cswidth); break; } else switch (data.m_bits) { - case 8: install_write_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, write8smo_delegate(entry.m_wproto8smo, entry.m_devbase), entry.m_mask, entry.m_cswidth); break; - case 16: install_write_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, write16smo_delegate(entry.m_wproto16smo, entry.m_devbase), entry.m_mask, entry.m_cswidth); break; - case 32: install_write_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, write32smo_delegate(entry.m_wproto32smo, entry.m_devbase), entry.m_mask, entry.m_cswidth); break; - case 64: install_write_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, write64smo_delegate(entry.m_wproto64smo, entry.m_devbase), entry.m_mask, entry.m_cswidth); break; + case 8: install_write_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, entry.m_wproto8smo, entry.m_mask, entry.m_cswidth); break; + case 16: install_write_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, entry.m_wproto16smo, entry.m_mask, entry.m_cswidth); break; + case 32: install_write_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, entry.m_wproto32smo, entry.m_mask, entry.m_cswidth); break; + case 64: install_write_handler(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_addrselect, entry.m_wproto64smo, entry.m_mask, entry.m_cswidth); break; } break; @@ -2080,389 +2240,6 @@ template void address_space_speci } -//------------------------------------------------- -// install_handler - install 8-bit read/write -// delegate handlers for the space -//------------------------------------------------- - -template void address_space_specific::install_read_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read8_delegate handler, u64 unitmask, int cswidth) -{ - install_read_handler_helper<0>(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, handler); -} - -template void address_space_specific::install_write_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, write8_delegate handler, u64 unitmask, int cswidth) -{ - install_write_handler_helper<0>(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, handler); -} - -template void address_space_specific::install_readwrite_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read8_delegate rhandler, write8_delegate whandler, u64 unitmask, int cswidth) -{ - install_readwrite_handler_helper<0>(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, rhandler, whandler); -} - -template void address_space_specific::install_read_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read8m_delegate handler, u64 unitmask, int cswidth) -{ - install_read_handler_helper<0>(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, handler); -} - -template void address_space_specific::install_write_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, write8m_delegate handler, u64 unitmask, int cswidth) -{ - install_write_handler_helper<0>(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, handler); -} - -template void address_space_specific::install_readwrite_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read8m_delegate rhandler, write8m_delegate whandler, u64 unitmask, int cswidth) -{ - install_readwrite_handler_helper<0>(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, rhandler, whandler); -} - -template void address_space_specific::install_read_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read8s_delegate handler, u64 unitmask, int cswidth) -{ - install_read_handler_helper<0>(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, handler); -} - -template void address_space_specific::install_write_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, write8s_delegate handler, u64 unitmask, int cswidth) -{ - install_write_handler_helper<0>(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, handler); -} - -template void address_space_specific::install_readwrite_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read8s_delegate rhandler, write8s_delegate whandler, u64 unitmask, int cswidth) -{ - install_readwrite_handler_helper<0>(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, rhandler, whandler); -} - -template void address_space_specific::install_read_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read8sm_delegate handler, u64 unitmask, int cswidth) -{ - install_read_handler_helper<0>(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, handler); -} - -template void address_space_specific::install_write_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, write8sm_delegate handler, u64 unitmask, int cswidth) -{ - install_write_handler_helper<0>(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, handler); -} - -template void address_space_specific::install_readwrite_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read8sm_delegate rhandler, write8sm_delegate whandler, u64 unitmask, int cswidth) -{ - install_readwrite_handler_helper<0>(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, rhandler, whandler); -} - -template void address_space_specific::install_read_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read8mo_delegate handler, u64 unitmask, int cswidth) -{ - install_read_handler_helper<0>(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, handler); -} - -template void address_space_specific::install_write_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, write8mo_delegate handler, u64 unitmask, int cswidth) -{ - install_write_handler_helper<0>(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, handler); -} - -template void address_space_specific::install_readwrite_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read8mo_delegate rhandler, write8mo_delegate whandler, u64 unitmask, int cswidth) -{ - install_readwrite_handler_helper<0>(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, rhandler, whandler); -} - -template void address_space_specific::install_read_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read8smo_delegate handler, u64 unitmask, int cswidth) -{ - install_read_handler_helper<0>(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, handler); -} - -template void address_space_specific::install_write_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, write8smo_delegate handler, u64 unitmask, int cswidth) -{ - install_write_handler_helper<0>(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, handler); -} - -template void address_space_specific::install_readwrite_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read8smo_delegate rhandler, write8smo_delegate whandler, u64 unitmask, int cswidth) -{ - install_readwrite_handler_helper<0>(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, rhandler, whandler); -} - - -//------------------------------------------------- -// install_handler - install 16-bit read/write -// delegate handlers for the space -//------------------------------------------------- - -template void address_space_specific::install_read_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read16_delegate handler, u64 unitmask, int cswidth) -{ - install_read_handler_helper<1>(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, handler); -} - -template void address_space_specific::install_write_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, write16_delegate handler, u64 unitmask, int cswidth) -{ - install_write_handler_helper<1>(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, handler); -} - -template void address_space_specific::install_readwrite_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read16_delegate rhandler, write16_delegate whandler, u64 unitmask, int cswidth) -{ - install_readwrite_handler_helper<1>(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, rhandler, whandler); -} - -template void address_space_specific::install_read_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read16m_delegate handler, u64 unitmask, int cswidth) -{ - install_read_handler_helper<1>(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, handler); -} - -template void address_space_specific::install_write_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, write16m_delegate handler, u64 unitmask, int cswidth) -{ - install_write_handler_helper<1>(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, handler); -} - -template void address_space_specific::install_readwrite_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read16m_delegate rhandler, write16m_delegate whandler, u64 unitmask, int cswidth) -{ - install_readwrite_handler_helper<1>(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, rhandler, whandler); -} - -template void address_space_specific::install_read_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read16s_delegate handler, u64 unitmask, int cswidth) -{ - install_read_handler_helper<1>(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, handler); -} - -template void address_space_specific::install_write_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, write16s_delegate handler, u64 unitmask, int cswidth) -{ - install_write_handler_helper<1>(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, handler); -} - -template void address_space_specific::install_readwrite_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read16s_delegate rhandler, write16s_delegate whandler, u64 unitmask, int cswidth) -{ - install_readwrite_handler_helper<1>(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, rhandler, whandler); -} - -template void address_space_specific::install_read_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read16sm_delegate handler, u64 unitmask, int cswidth) -{ - install_read_handler_helper<1>(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, handler); -} - -template void address_space_specific::install_write_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, write16sm_delegate handler, u64 unitmask, int cswidth) -{ - install_write_handler_helper<1>(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, handler); -} - -template void address_space_specific::install_readwrite_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read16sm_delegate rhandler, write16sm_delegate whandler, u64 unitmask, int cswidth) -{ - install_readwrite_handler_helper<1>(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, rhandler, whandler); -} - -template void address_space_specific::install_read_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read16smo_delegate handler, u64 unitmask, int cswidth) -{ - install_read_handler_helper<1>(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, handler); -} - -template void address_space_specific::install_write_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, write16smo_delegate handler, u64 unitmask, int cswidth) -{ - install_write_handler_helper<1>(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, handler); -} - -template void address_space_specific::install_readwrite_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read16smo_delegate rhandler, write16smo_delegate whandler, u64 unitmask, int cswidth) -{ - install_readwrite_handler_helper<1>(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, rhandler, whandler); -} - -template void address_space_specific::install_read_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read16mo_delegate handler, u64 unitmask, int cswidth) -{ - install_read_handler_helper<1>(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, handler); -} - -template void address_space_specific::install_write_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, write16mo_delegate handler, u64 unitmask, int cswidth) -{ - install_write_handler_helper<1>(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, handler); -} - -template void address_space_specific::install_readwrite_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read16mo_delegate rhandler, write16mo_delegate whandler, u64 unitmask, int cswidth) -{ - install_readwrite_handler_helper<1>(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, rhandler, whandler); -} - - -//------------------------------------------------- -// install_handler - install 32-bit read/write -// delegate handlers for the space -//------------------------------------------------- - -template void address_space_specific::install_read_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read32_delegate handler, u64 unitmask, int cswidth) -{ - install_read_handler_helper<2>(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, handler); -} - -template void address_space_specific::install_write_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, write32_delegate handler, u64 unitmask, int cswidth) -{ - install_write_handler_helper<2>(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, handler); -} - -template void address_space_specific::install_readwrite_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read32_delegate rhandler, write32_delegate whandler, u64 unitmask, int cswidth) -{ - install_readwrite_handler_helper<2>(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, rhandler, whandler); -} - -template void address_space_specific::install_read_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read32m_delegate handler, u64 unitmask, int cswidth) -{ - install_read_handler_helper<2>(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, handler); -} - -template void address_space_specific::install_write_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, write32m_delegate handler, u64 unitmask, int cswidth) -{ - install_write_handler_helper<2>(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, handler); -} - -template void address_space_specific::install_readwrite_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read32m_delegate rhandler, write32m_delegate whandler, u64 unitmask, int cswidth) -{ - install_readwrite_handler_helper<2>(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, rhandler, whandler); -} - -template void address_space_specific::install_read_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read32s_delegate handler, u64 unitmask, int cswidth) -{ - install_read_handler_helper<2>(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, handler); -} - -template void address_space_specific::install_write_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, write32s_delegate handler, u64 unitmask, int cswidth) -{ - install_write_handler_helper<2>(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, handler); -} - -template void address_space_specific::install_readwrite_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read32s_delegate rhandler, write32s_delegate whandler, u64 unitmask, int cswidth) -{ - install_readwrite_handler_helper<2>(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, rhandler, whandler); -} - -template void address_space_specific::install_read_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read32sm_delegate handler, u64 unitmask, int cswidth) -{ - install_read_handler_helper<2>(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, handler); -} - -template void address_space_specific::install_write_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, write32sm_delegate handler, u64 unitmask, int cswidth) -{ - install_write_handler_helper<2>(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, handler); -} - -template void address_space_specific::install_readwrite_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read32sm_delegate rhandler, write32sm_delegate whandler, u64 unitmask, int cswidth) -{ - install_readwrite_handler_helper<2>(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, rhandler, whandler); -} - -template void address_space_specific::install_read_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read32mo_delegate handler, u64 unitmask, int cswidth) -{ - install_read_handler_helper<2>(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, handler); -} - -template void address_space_specific::install_write_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, write32mo_delegate handler, u64 unitmask, int cswidth) -{ - install_write_handler_helper<2>(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, handler); -} - -template void address_space_specific::install_readwrite_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read32mo_delegate rhandler, write32mo_delegate whandler, u64 unitmask, int cswidth) -{ - install_readwrite_handler_helper<2>(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, rhandler, whandler); -} - -template void address_space_specific::install_read_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read32smo_delegate handler, u64 unitmask, int cswidth) -{ - install_read_handler_helper<2>(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, handler); -} - -template void address_space_specific::install_write_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, write32smo_delegate handler, u64 unitmask, int cswidth) -{ - install_write_handler_helper<2>(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, handler); -} - -template void address_space_specific::install_readwrite_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read32smo_delegate rhandler, write32smo_delegate whandler, u64 unitmask, int cswidth) -{ - install_readwrite_handler_helper<2>(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, rhandler, whandler); -} - - -//------------------------------------------------- -// install_handler64 - install 64-bit read/write -// delegate handlers for the space -//------------------------------------------------- - -template void address_space_specific::install_read_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read64_delegate handler, u64 unitmask, int cswidth) -{ - install_read_handler_helper<3>(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, handler); -} - -template void address_space_specific::install_write_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, write64_delegate handler, u64 unitmask, int cswidth) -{ - install_write_handler_helper<3>(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, handler); -} - -template void address_space_specific::install_readwrite_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read64_delegate rhandler, write64_delegate whandler, u64 unitmask, int cswidth) -{ - install_readwrite_handler_helper<3>(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, rhandler, whandler); -} - -template void address_space_specific::install_read_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read64m_delegate handler, u64 unitmask, int cswidth) -{ - install_read_handler_helper<3>(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, handler); -} - -template void address_space_specific::install_write_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, write64m_delegate handler, u64 unitmask, int cswidth) -{ - install_write_handler_helper<3>(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, handler); -} - -template void address_space_specific::install_readwrite_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read64m_delegate rhandler, write64m_delegate whandler, u64 unitmask, int cswidth) -{ - install_readwrite_handler_helper<3>(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, rhandler, whandler); -} - -template void address_space_specific::install_read_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read64s_delegate handler, u64 unitmask, int cswidth) -{ - install_read_handler_helper<3>(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, handler); -} - -template void address_space_specific::install_write_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, write64s_delegate handler, u64 unitmask, int cswidth) -{ - install_write_handler_helper<3>(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, handler); -} - -template void address_space_specific::install_readwrite_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read64s_delegate rhandler, write64s_delegate whandler, u64 unitmask, int cswidth) -{ - install_readwrite_handler_helper<3>(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, rhandler, whandler); -} - -template void address_space_specific::install_read_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read64sm_delegate handler, u64 unitmask, int cswidth) -{ - install_read_handler_helper<3>(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, handler); -} - -template void address_space_specific::install_write_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, write64sm_delegate handler, u64 unitmask, int cswidth) -{ - install_write_handler_helper<3>(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, handler); -} - -template void address_space_specific::install_readwrite_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read64sm_delegate rhandler, write64sm_delegate whandler, u64 unitmask, int cswidth) -{ - install_readwrite_handler_helper<3>(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, rhandler, whandler); -} - -template void address_space_specific::install_read_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read64mo_delegate handler, u64 unitmask, int cswidth) -{ - install_read_handler_helper<3>(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, handler); -} - -template void address_space_specific::install_write_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, write64mo_delegate handler, u64 unitmask, int cswidth) -{ - install_write_handler_helper<3>(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, handler); -} - -template void address_space_specific::install_readwrite_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read64mo_delegate rhandler, write64mo_delegate whandler, u64 unitmask, int cswidth) -{ - install_readwrite_handler_helper<3>(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, rhandler, whandler); -} - -template void address_space_specific::install_read_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read64smo_delegate handler, u64 unitmask, int cswidth) -{ - install_read_handler_helper<3>(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, handler); -} - -template void address_space_specific::install_write_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, write64smo_delegate handler, u64 unitmask, int cswidth) -{ - install_write_handler_helper<3>(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, handler); -} - -template void address_space_specific::install_readwrite_handler(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, offs_t addrselect, read64smo_delegate rhandler, write64smo_delegate whandler, u64 unitmask, int cswidth) -{ - install_readwrite_handler_helper<3>(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, rhandler, whandler); -} - //************************************************************************** // MEMORY MAPPING HELPERS //************************************************************************** diff --git a/src/emu/emumem.h b/src/emu/emumem.h index 0bd3de898ca..4e0cf858bb4 100644 --- a/src/emu/emumem.h +++ b/src/emu/emumem.h @@ -156,372 +156,275 @@ using write64smo_delegate = device_delegate; namespace emu { namespace detail { +// TODO: replace with std::void_t when we move to C++17 +template struct void_wrapper { using type = void; }; +template using void_t = typename void_wrapper::type; + template struct rw_device_class { }; template -struct rw_device_class::value> > { using type = T; }; +struct rw_device_class::value> > { using type = T; }; template -struct rw_device_class::value> > { using type = T; }; +struct rw_device_class::value> > { using type = T; }; template -struct rw_device_class::value> > { using type = T; }; - -template using rw_device_class_t = typename rw_device_class ::type; - -template -inline read8_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t > *obj) -{ return read8_delegate(func, name, tag, obj); } -template -inline read16_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t > *obj) -{ return read16_delegate(func, name, tag, obj); } -template -inline read32_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t > *obj) -{ return read32_delegate(func, name, tag, obj); } -template -inline read64_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t > *obj) -{ return read64_delegate(func, name, tag, obj); } - -template -inline write8_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t > *obj) -{ return write8_delegate(func, name, tag, obj); } -template -inline write16_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t > *obj) -{ return write16_delegate(func, name, tag, obj); } -template -inline write32_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t > *obj) -{ return write32_delegate(func, name, tag, obj); } -template -inline write64_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t > *obj) -{ return write64_delegate(func, name, tag, obj); } - - -template -inline read8m_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t > *obj) -{ return read8m_delegate(func, name, tag, obj); } -template -inline read16m_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t > *obj) -{ return read16m_delegate(func, name, tag, obj); } -template -inline read32m_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t > *obj) -{ return read32m_delegate(func, name, tag, obj); } -template -inline read64m_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t > *obj) -{ return read64m_delegate(func, name, tag, obj); } - -template -inline write8m_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t > *obj) -{ return write8m_delegate(func, name, tag, obj); } -template -inline write16m_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t > *obj) -{ return write16m_delegate(func, name, tag, obj); } -template -inline write32m_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t > *obj) -{ return write32m_delegate(func, name, tag, obj); } -template -inline write64m_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t > *obj) -{ return write64m_delegate(func, name, tag, obj); } - - -template -inline read8s_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t > *obj) -{ return read8s_delegate(func, name, tag, obj); } -template -inline read16s_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t > *obj) -{ return read16s_delegate(func, name, tag, obj); } -template -inline read32s_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t > *obj) -{ return read32s_delegate(func, name, tag, obj); } -template -inline read64s_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t > *obj) -{ return read64s_delegate(func, name, tag, obj); } - -template -inline write8s_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t > *obj) -{ return write8s_delegate(func, name, tag, obj); } -template -inline write16s_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t > *obj) -{ return write16s_delegate(func, name, tag, obj); } -template -inline write32s_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t > *obj) -{ return write32s_delegate(func, name, tag, obj); } -template -inline write64s_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t > *obj) -{ return write64s_delegate(func, name, tag, obj); } - - -template -inline read8sm_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t > *obj) -{ return read8sm_delegate(func, name, tag, obj); } -template -inline read16sm_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t > *obj) -{ return read16sm_delegate(func, name, tag, obj); } -template -inline read32sm_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t > *obj) -{ return read32sm_delegate(func, name, tag, obj); } -template -inline read64sm_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t > *obj) -{ return read64sm_delegate(func, name, tag, obj); } - -template -inline write8sm_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t > *obj) -{ return write8sm_delegate(func, name, tag, obj); } -template -inline write16sm_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t > *obj) -{ return write16sm_delegate(func, name, tag, obj); } -template -inline write32sm_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t > *obj) -{ return write32sm_delegate(func, name, tag, obj); } -template -inline write64sm_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t > *obj) -{ return write64sm_delegate(func, name, tag, obj); } - - -template -inline read8mo_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t > *obj) -{ return read8mo_delegate(func, name, tag, obj); } -template -inline read16mo_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t > *obj) -{ return read16mo_delegate(func, name, tag, obj); } -template -inline read32mo_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t > *obj) -{ return read32mo_delegate(func, name, tag, obj); } -template -inline read64mo_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t > *obj) -{ return read64mo_delegate(func, name, tag, obj); } - -template -inline write8mo_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t > *obj) -{ return write8mo_delegate(func, name, tag, obj); } -template -inline write16mo_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t > *obj) -{ return write16mo_delegate(func, name, tag, obj); } -template -inline write32mo_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t > *obj) -{ return write32mo_delegate(func, name, tag, obj); } -template -inline write64mo_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t > *obj) -{ return write64mo_delegate(func, name, tag, obj); } +struct rw_device_class::value> > { using type = T; }; + +template using rw_device_class_t = typename rw_device_class::type; + +template struct rw_delegate_type; +template struct rw_delegate_type > > > { using type = read8_delegate; using device_class = rw_device_class_t >; }; +template struct rw_delegate_type > > > { using type = read16_delegate; using device_class = rw_device_class_t >; }; +template struct rw_delegate_type > > > { using type = read32_delegate; using device_class = rw_device_class_t >; }; +template struct rw_delegate_type > > > { using type = read64_delegate; using device_class = rw_device_class_t >; }; +template struct rw_delegate_type > > > { using type = read8m_delegate; using device_class = rw_device_class_t >; }; +template struct rw_delegate_type > > > { using type = read16m_delegate; using device_class = rw_device_class_t >; }; +template struct rw_delegate_type > > > { using type = read32m_delegate; using device_class = rw_device_class_t >; }; +template struct rw_delegate_type > > > { using type = read64m_delegate; using device_class = rw_device_class_t >; }; +template struct rw_delegate_type > > > { using type = read8s_delegate; using device_class = rw_device_class_t >; }; +template struct rw_delegate_type > > > { using type = read16s_delegate; using device_class = rw_device_class_t >; }; +template struct rw_delegate_type > > > { using type = read32s_delegate; using device_class = rw_device_class_t >; }; +template struct rw_delegate_type > > > { using type = read64s_delegate; using device_class = rw_device_class_t >; }; +template struct rw_delegate_type > > > { using type = read8sm_delegate; using device_class = rw_device_class_t >; }; +template struct rw_delegate_type > > > { using type = read16sm_delegate; using device_class = rw_device_class_t >; }; +template struct rw_delegate_type > > > { using type = read32sm_delegate; using device_class = rw_device_class_t >; }; +template struct rw_delegate_type > > > { using type = read64sm_delegate; using device_class = rw_device_class_t >; }; +template struct rw_delegate_type > > > { using type = read8mo_delegate; using device_class = rw_device_class_t >; }; +template struct rw_delegate_type > > > { using type = read16mo_delegate; using device_class = rw_device_class_t >; }; +template struct rw_delegate_type > > > { using type = read32mo_delegate; using device_class = rw_device_class_t >; }; +template struct rw_delegate_type > > > { using type = read64mo_delegate; using device_class = rw_device_class_t >; }; +template struct rw_delegate_type > > > { using type = read8smo_delegate; using device_class = rw_device_class_t >; }; +template struct rw_delegate_type > > > { using type = read16smo_delegate; using device_class = rw_device_class_t >; }; +template struct rw_delegate_type > > > { using type = read32smo_delegate; using device_class = rw_device_class_t >; }; +template struct rw_delegate_type > > > { using type = read64smo_delegate; using device_class = rw_device_class_t >; }; +template struct rw_delegate_type > > > { using type = write8_delegate; using device_class = rw_device_class_t >; }; +template struct rw_delegate_type > > > { using type = write16_delegate; using device_class = rw_device_class_t >; }; +template struct rw_delegate_type > > > { using type = write32_delegate; using device_class = rw_device_class_t >; }; +template struct rw_delegate_type > > > { using type = write64_delegate; using device_class = rw_device_class_t >; }; +template struct rw_delegate_type > > > { using type = write8m_delegate; using device_class = rw_device_class_t >; }; +template struct rw_delegate_type > > > { using type = write16m_delegate; using device_class = rw_device_class_t >; }; +template struct rw_delegate_type > > > { using type = write32m_delegate; using device_class = rw_device_class_t >; }; +template struct rw_delegate_type > > > { using type = write64m_delegate; using device_class = rw_device_class_t >; }; +template struct rw_delegate_type > > > { using type = write8s_delegate; using device_class = rw_device_class_t >; }; +template struct rw_delegate_type > > > { using type = write16s_delegate; using device_class = rw_device_class_t >; }; +template struct rw_delegate_type > > > { using type = write32s_delegate; using device_class = rw_device_class_t >; }; +template struct rw_delegate_type > > > { using type = write64s_delegate; using device_class = rw_device_class_t >; }; +template struct rw_delegate_type > > > { using type = write8sm_delegate; using device_class = rw_device_class_t >; }; +template struct rw_delegate_type > > > { using type = write16sm_delegate; using device_class = rw_device_class_t >; }; +template struct rw_delegate_type > > > { using type = write32sm_delegate; using device_class = rw_device_class_t >; }; +template struct rw_delegate_type > > > { using type = write64sm_delegate; using device_class = rw_device_class_t >; }; +template struct rw_delegate_type > > > { using type = write8mo_delegate; using device_class = rw_device_class_t >; }; +template struct rw_delegate_type > > > { using type = write16mo_delegate; using device_class = rw_device_class_t >; }; +template struct rw_delegate_type > > > { using type = write32mo_delegate; using device_class = rw_device_class_t >; }; +template struct rw_delegate_type > > > { using type = write64mo_delegate; using device_class = rw_device_class_t >; }; +template struct rw_delegate_type > > > { using type = write8smo_delegate; using device_class = rw_device_class_t >; }; +template struct rw_delegate_type > > > { using type = write16smo_delegate; using device_class = rw_device_class_t >; }; +template struct rw_delegate_type > > > { using type = write32smo_delegate; using device_class = rw_device_class_t >; }; +template struct rw_delegate_type > > > { using type = write64smo_delegate; using device_class = rw_device_class_t >; }; +template using rw_delegate_type_t = typename rw_delegate_type::type; +template using rw_delegate_device_class_t = typename rw_delegate_type::device_class; template -inline read8smo_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t > *obj) -{ return read8smo_delegate(func, name, tag, obj); } -template -inline read16smo_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t > *obj) -{ return read16smo_delegate(func, name, tag, obj); } -template -inline read32smo_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t > *obj) -{ return read32smo_delegate(func, name, tag, obj); } -template -inline read64smo_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t > *obj) -{ return read64smo_delegate(func, name, tag, obj); } +inline rw_delegate_type_t make_delegate(device_t &base, char const *tag, T &&func, char const *name) +{ return rw_delegate_type_t(base, tag, std::forward(func), name); } template -inline write8smo_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t > *obj) -{ return write8smo_delegate(func, name, tag, obj); } -template -inline write16smo_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t > *obj) -{ return write16smo_delegate(func, name, tag, obj); } -template -inline write32smo_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t > *obj) -{ return write32smo_delegate(func, name, tag, obj); } -template -inline write64smo_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t > *obj) -{ return write64smo_delegate(func, name, tag, obj); } - +inline rw_delegate_type_t make_delegate(rw_delegate_device_class_t &object, T &&func, char const *name) +{ return rw_delegate_type_t(object, std::forward(func), name); } template -inline std::enable_if_t::value, read8_delegate> make_lr8_delegate(L l, const char *name) -{ return read8_delegate(l, name); } +inline std::enable_if_t::value, read8_delegate> make_lr8_delegate(device_t &owner, L &&l, const char *name) +{ return read8_delegate(owner, std::forward(l), name); } template -inline std::enable_if_t::value, read8m_delegate> make_lr8_delegate(L l, const char *name) -{ return read8m_delegate(l, name); } +inline std::enable_if_t::value, read8m_delegate> make_lr8_delegate(device_t &owner, L &&l, const char *name) +{ return read8m_delegate(owner, std::forward(l), name); } template -inline std::enable_if_t::value, read8s_delegate> make_lr8_delegate(L l, const char *name) -{ return read8s_delegate(l, name); } +inline std::enable_if_t::value, read8s_delegate> make_lr8_delegate(device_t &owner, L &&l, const char *name) +{ return read8s_delegate(owner, std::forward(l), name); } template -inline std::enable_if_t::value, read8sm_delegate> make_lr8_delegate(L l, const char *name) -{ return read8sm_delegate(l, name); } +inline std::enable_if_t::value, read8sm_delegate> make_lr8_delegate(device_t &owner, L &&l, const char *name) +{ return read8sm_delegate(owner, std::forward(l), name); } template -inline std::enable_if_t::value, read8mo_delegate> make_lr8_delegate(L l, const char *name) -{ return read8mo_delegate(l, name); } +inline std::enable_if_t::value, read8mo_delegate> make_lr8_delegate(device_t &owner, L &&l, const char *name) +{ return read8mo_delegate(owner, std::forward(l), name); } template -inline std::enable_if_t::value, read8smo_delegate> make_lr8_delegate(L l, const char *name) -{ return read8smo_delegate(l, name); } +inline std::enable_if_t::value, read8smo_delegate> make_lr8_delegate(device_t &owner, L &&l, const char *name) +{ return read8smo_delegate(owner, std::forward(l), name); } template -inline std::enable_if_t::value, read16_delegate> make_lr16_delegate(L l, const char *name) -{ return read16_delegate(l, name); } +inline std::enable_if_t::value, read16_delegate> make_lr16_delegate(device_t &owner, L &&l, const char *name) +{ return read16_delegate(owner, std::forward(l), name); } template -inline std::enable_if_t::value, read16m_delegate> make_lr16_delegate(L l, const char *name) -{ return read16m_delegate(l, name); } +inline std::enable_if_t::value, read16m_delegate> make_lr16_delegate(device_t &owner, L &&l, const char *name) +{ return read16m_delegate(owner, std::forward(l), name); } template -inline std::enable_if_t::value, read16s_delegate> make_lr16_delegate(L l, const char *name) -{ return read16s_delegate(l, name); } +inline std::enable_if_t::value, read16s_delegate> make_lr16_delegate(device_t &owner, L &&l, const char *name) +{ return read16s_delegate(owner, std::forward(l), name); } template -inline std::enable_if_t::value, read16sm_delegate> make_lr16_delegate(L l, const char *name) -{ return read16sm_delegate(l, name); } +inline std::enable_if_t::value, read16sm_delegate> make_lr16_delegate(device_t &owner, L &&l, const char *name) +{ return read16sm_delegate(owner, std::forward(l), name); } template -inline std::enable_if_t::value, read16mo_delegate> make_lr16_delegate(L l, const char *name) -{ return read16mo_delegate(l, name); } +inline std::enable_if_t::value, read16mo_delegate> make_lr16_delegate(device_t &owner, L &&l, const char *name) +{ return read16mo_delegate(owner, std::forward(l), name); } template -inline std::enable_if_t::value, read16smo_delegate> make_lr16_delegate(L l, const char *name) -{ return read16smo_delegate(l, name); } +inline std::enable_if_t::value, read16smo_delegate> make_lr16_delegate(device_t &owner, L &&l, const char *name) +{ return read16smo_delegate(owner, std::forward(l), name); } template -inline std::enable_if_t::value, read32_delegate> make_lr32_delegate(L l, const char *name) -{ return read32_delegate(l, name); } +inline std::enable_if_t::value, read32_delegate> make_lr32_delegate(device_t &owner, L &&l, const char *name) +{ return read32_delegate(owner, std::forward(l), name); } template -inline std::enable_if_t::value, read32m_delegate> make_lr32_delegate(L l, const char *name) -{ return read32m_delegate(l, name); } +inline std::enable_if_t::value, read32m_delegate> make_lr32_delegate(device_t &owner, L &&l, const char *name) +{ return read32m_delegate(owner, std::forward(l), name); } template -inline std::enable_if_t::value, read32s_delegate> make_lr32_delegate(L l, const char *name) -{ return read32s_delegate(l, name); } +inline std::enable_if_t::value, read32s_delegate> make_lr32_delegate(device_t &owner, L &&l, const char *name) +{ return read32s_delegate(owner, std::forward(l), name); } template -inline std::enable_if_t::value, read32sm_delegate> make_lr32_delegate(L l, const char *name) -{ return read32sm_delegate(l, name); } +inline std::enable_if_t::value, read32sm_delegate> make_lr32_delegate(device_t &owner, L &&l, const char *name) +{ return read32sm_delegate(owner, std::forward(l), name); } template -inline std::enable_if_t::value, read32mo_delegate> make_lr32_delegate(L l, const char *name) -{ return read32mo_delegate(l, name); } +inline std::enable_if_t::value, read32mo_delegate> make_lr32_delegate(device_t &owner, L &&l, const char *name) +{ return read32mo_delegate(owner, std::forward(l), name); } template -inline std::enable_if_t::value, read32smo_delegate> make_lr32_delegate(L l, const char *name) -{ return read32smo_delegate(l, name); } +inline std::enable_if_t::value, read32smo_delegate> make_lr32_delegate(device_t &owner, L &&l, const char *name) +{ return read32smo_delegate(owner, std::forward(l), name); } template -inline std::enable_if_t::value, read64_delegate> make_lr64_delegate(L l, const char *name) -{ return read64_delegate(l, name); } +inline std::enable_if_t::value, read64_delegate> make_lr64_delegate(device_t &owner, L &&l, const char *name) +{ return read64_delegate(owner, std::forward(l), name); } template -inline std::enable_if_t::value, read64m_delegate> make_lr64_delegate(L l, const char *name) -{ return read64m_delegate(l, name); } +inline std::enable_if_t::value, read64m_delegate> make_lr64_delegate(device_t &owner, L &&l, const char *name) +{ return read64m_delegate(owner, std::forward(l), name); } template -inline std::enable_if_t::value, read64s_delegate> make_lr64_delegate(L l, const char *name) -{ return read64s_delegate(l, name); } +inline std::enable_if_t::value, read64s_delegate> make_lr64_delegate(device_t &owner, L &&l, const char *name) +{ return read64s_delegate(owner, std::forward(l), name); } template -inline std::enable_if_t::value, read64sm_delegate> make_lr64_delegate(L l, const char *name) -{ return read64sm_delegate(l, name); } +inline std::enable_if_t::value, read64sm_delegate> make_lr64_delegate(device_t &owner, L &&l, const char *name) +{ return read64sm_delegate(owner, std::forward(l), name); } template -inline std::enable_if_t::value, read64mo_delegate> make_lr64_delegate(L l, const char *name) -{ return read64mo_delegate(l, name); } +inline std::enable_if_t::value, read64mo_delegate> make_lr64_delegate(device_t &owner, L &&l, const char *name) +{ return read64mo_delegate(owner, std::forward(l), name); } template -inline std::enable_if_t::value, read64smo_delegate> make_lr64_delegate(L l, const char *name) -{ return read64smo_delegate(l, name); } +inline std::enable_if_t::value, read64smo_delegate> make_lr64_delegate(device_t &owner, L &&l, const char *name) +{ return read64smo_delegate(owner, std::forward(l), name); } template -inline std::enable_if_t::value, write8_delegate> make_lw8_delegate(L l, const char *name) -{ return write8_delegate(l, name); } +inline std::enable_if_t::value, write8_delegate> make_lw8_delegate(device_t &owner, L &&l, const char *name) +{ return write8_delegate(owner, std::forward(l), name); } template -inline std::enable_if_t::value, write8m_delegate> make_lw8_delegate(L l, const char *name) -{ return write8m_delegate(l, name); } +inline std::enable_if_t::value, write8m_delegate> make_lw8_delegate(device_t &owner, L &&l, const char *name) +{ return write8m_delegate(owner, std::forward(l), name); } template -inline std::enable_if_t::value, write8s_delegate> make_lw8_delegate(L l, const char *name) -{ return write8s_delegate(l, name); } +inline std::enable_if_t::value, write8s_delegate> make_lw8_delegate(device_t &owner, L &&l, const char *name) +{ return write8s_delegate(owner, std::forward(l), name); } template -inline std::enable_if_t::value, write8sm_delegate> make_lw8_delegate(L l, const char *name) -{ return write8sm_delegate(l, name); } +inline std::enable_if_t::value, write8sm_delegate> make_lw8_delegate(device_t &owner, L &&l, const char *name) +{ return write8sm_delegate(owner, std::forward(l), name); } template -inline std::enable_if_t::value, write8mo_delegate> make_lw8_delegate(L l, const char *name) -{ return write8mo_delegate(l, name); } +inline std::enable_if_t::value, write8mo_delegate> make_lw8_delegate(device_t &owner, L &&l, const char *name) +{ return write8mo_delegate(owner, std::forward(l), name); } template -inline std::enable_if_t::value, write8smo_delegate> make_lw8_delegate(L l, const char *name) -{ return write8smo_delegate(l, name); } +inline std::enable_if_t::value, write8smo_delegate> make_lw8_delegate(device_t &owner, L &&l, const char *name) +{ return write8smo_delegate(owner, std::forward(l), name); } template -inline std::enable_if_t::value, write16_delegate> make_lw16_delegate(L l, const char *name) -{ return write16_delegate(l, name); } +inline std::enable_if_t::value, write16_delegate> make_lw16_delegate(device_t &owner, L &&l, const char *name) +{ return write16_delegate(owner, std::forward(l), name); } template -inline std::enable_if_t::value, write16m_delegate> make_lw16_delegate(L l, const char *name) -{ return write16m_delegate(l, name); } +inline std::enable_if_t::value, write16m_delegate> make_lw16_delegate(device_t &owner, L &&l, const char *name) +{ return write16m_delegate(owner, std::forward(l), name); } template -inline std::enable_if_t::value, write16s_delegate> make_lw16_delegate(L l, const char *name) -{ return write16s_delegate(l, name); } +inline std::enable_if_t::value, write16s_delegate> make_lw16_delegate(device_t &owner, L &&l, const char *name) +{ return write16s_delegate(owner, std::forward(l), name); } template -inline std::enable_if_t::value, write16sm_delegate> make_lw16_delegate(L l, const char *name) -{ return write16sm_delegate(l, name); } +inline std::enable_if_t::value, write16sm_delegate> make_lw16_delegate(device_t &owner, L &&l, const char *name) +{ return write16sm_delegate(owner, std::forward(l), name); } template -inline std::enable_if_t::value, write16mo_delegate> make_lw16_delegate(L l, const char *name) -{ return write16mo_delegate(l, name); } +inline std::enable_if_t::value, write16mo_delegate> make_lw16_delegate(device_t &owner, L &&l, const char *name) +{ return write16mo_delegate(owner, std::forward(l), name); } template -inline std::enable_if_t::value, write16smo_delegate> make_lw16_delegate(L l, const char *name) -{ return write16smo_delegate(l, name); } +inline std::enable_if_t::value, write16smo_delegate> make_lw16_delegate(device_t &owner, L &&l, const char *name) +{ return write16smo_delegate(owner, std::forward(l), name); } template -inline std::enable_if_t::value, write32_delegate> make_lw32_delegate(L l, const char *name) -{ return write32_delegate(l, name); } +inline std::enable_if_t::value, write32_delegate> make_lw32_delegate(device_t &owner, L &&l, const char *name) +{ return write32_delegate(owner, std::forward(l), name); } template -inline std::enable_if_t::value, write32m_delegate> make_lw32_delegate(L l, const char *name) -{ return write32m_delegate(l, name); } +inline std::enable_if_t::value, write32m_delegate> make_lw32_delegate(device_t &owner, L &&l, const char *name) +{ return write32m_delegate(owner, std::forward(l), name); } template -inline std::enable_if_t::value, write32s_delegate> make_lw32_delegate(L l, const char *name) -{ return write32s_delegate(l, name); } +inline std::enable_if_t::value, write32s_delegate> make_lw32_delegate(device_t &owner, L &&l, const char *name) +{ return write32s_delegate(owner, std::forward(l), name); } template -inline std::enable_if_t::value, write32sm_delegate> make_lw32_delegate(L l, const char *name) -{ return write32sm_delegate(l, name); } +inline std::enable_if_t::value, write32sm_delegate> make_lw32_delegate(device_t &owner, L &&l, const char *name) +{ return write32sm_delegate(owner, std::forward(l), name); } template -inline std::enable_if_t::value, write32mo_delegate> make_lw32_delegate(L l, const char *name) -{ return write32mo_delegate(l, name); } +inline std::enable_if_t::value, write32mo_delegate> make_lw32_delegate(device_t &owner, L &&l, const char *name) +{ return write32mo_delegate(owner, std::forward(l), name); } template -inline std::enable_if_t::value, write32smo_delegate> make_lw32_delegate(L l, const char *name) -{ return write32smo_delegate(l, name); } +inline std::enable_if_t::value, write32smo_delegate> make_lw32_delegate(device_t &owner, L &&l, const char *name) +{ return write32smo_delegate(owner, std::forward(l), name); } template -inline std::enable_if_t::value, write64_delegate> make_lw64_delegate(L l, const char *name) -{ return write64_delegate(l, name); } +inline std::enable_if_t::value, write64_delegate> make_lw64_delegate(device_t &owner, L &&l, const char *name) +{ return write64_delegate(owner, std::forward(l), name); } template -inline std::enable_if_t::value, write64m_delegate> make_lw64_delegate(L l, const char *name) -{ return write64m_delegate(l, name); } +inline std::enable_if_t::value, write64m_delegate> make_lw64_delegate(device_t &owner, L &&l, const char *name) +{ return write64m_delegate(owner, std::forward(l), name); } template -inline std::enable_if_t::value, write64s_delegate> make_lw64_delegate(L l, const char *name) -{ return write64s_delegate(l, name); } +inline std::enable_if_t::value, write64s_delegate> make_lw64_delegate(device_t &owner, L &&l, const char *name) +{ return write64s_delegate(owner, std::forward(l), name); } template -inline std::enable_if_t::value, write64sm_delegate> make_lw64_delegate(L l, const char *name) -{ return write64sm_delegate(l, name); } +inline std::enable_if_t::value, write64sm_delegate> make_lw64_delegate(device_t &owner, L &&l, const char *name) +{ return write64sm_delegate(owner, std::forward(l), name); } template -inline std::enable_if_t::value, write64mo_delegate> make_lw64_delegate(L l, const char *name) -{ return write64mo_delegate(l, name); } +inline std::enable_if_t::value, write64mo_delegate> make_lw64_delegate(device_t &owner, L &&l, const char *name) +{ return write64mo_delegate(owner, std::forward(l), name); } template -inline std::enable_if_t::value, write64smo_delegate> make_lw64_delegate(L l, const char *name) -{ return write64smo_delegate(l, name); } +inline std::enable_if_t::value, write64smo_delegate> make_lw64_delegate(device_t &owner, L &&l, const char *name) +{ return write64smo_delegate(owner, std::forward(l), name); } @@ -1837,25 +1740,6 @@ private: #define DECLARE_READ64_MEMBER(name) u64 name(ATTR_UNUSED address_space &space, ATTR_UNUSED offs_t offset, ATTR_UNUSED u64 mem_mask = 0xffffffffffffffffU) #define DECLARE_WRITE64_MEMBER(name) void name(ATTR_UNUSED address_space &space, ATTR_UNUSED offs_t offset, ATTR_UNUSED u64 data, ATTR_UNUSED u64 mem_mask = 0xffffffffffffffffU) -// device delegate macros -#define READ8_DELEGATE(_class, _member) read8_delegate(FUNC(_class::_member), this) -#define WRITE8_DELEGATE(_class, _member) write8_delegate(FUNC(_class::_member), this) -#define READ16_DELEGATE(_class, _member) read16_delegate(FUNC(_class::_member), this) -#define WRITE16_DELEGATE(_class, _member) write16_delegate(FUNC(_class::_member), this) -#define READ32_DELEGATE(_class, _member) read32_delegate(FUNC(_class::_member), this) -#define WRITE32_DELEGATE(_class, _member) write32_delegate(FUNC(_class::_member), this) -#define READ64_DELEGATE(_class, _member) read64_delegate(FUNC(_class::_member), this) -#define WRITE64_DELEGATE(_class, _member) write64_delegate(FUNC(_class::_member), this) - -#define READ8_DEVICE_DELEGATE(_device, _class, _member) read8_delegate(FUNC(_class::_member), (_class *)_device) -#define WRITE8_DEVICE_DELEGATE(_device, _class, _member) write8_delegate(FUNC(_class::_member), (_class *)_device) -#define READ16_DEVICE_DELEGATE(_device, _class, _member) read16_delegate(FUNC(_class::_member), (_class *)_device) -#define WRITE16_DEVICE_DELEGATE(_device, _class, _member) write16_delegate(FUNC(_class::_member), (_class *)_device) -#define READ32_DEVICE_DELEGATE(_device, _class, _member) read32_delegate(FUNC(_class::_member), (_class *)_device) -#define WRITE32_DEVICE_DELEGATE(_device, _class, _member) write32_delegate(FUNC(_class::_member), (_class *)_device) -#define READ64_DEVICE_DELEGATE(_device, _class, _member) read64_delegate(FUNC(_class::_member), (_class *)_device) -#define WRITE64_DEVICE_DELEGATE(_device, _class, _member) write64_delegate(FUNC(_class::_member), (_class *)_device) - // helper macro for merging data with the memory mask #define COMBINE_DATA(varptr) (*(varptr) = (*(varptr) & ~mem_mask) | (data & mem_mask)) diff --git a/src/emu/emumem_hedp.h b/src/emu/emumem_hedp.h index cba4877b20c..37b47747d61 100644 --- a/src/emu/emumem_hedp.h +++ b/src/emu/emumem_hedp.h @@ -11,7 +11,7 @@ public: using uX = typename emu::detail::handler_entry_size::uX; using inh = handler_entry_read_address; - handler_entry_read_delegate(address_space *space, READ delegate) : handler_entry_read_address(space, 0), m_delegate(delegate) {} + handler_entry_read_delegate(address_space *space, const READ &delegate) : handler_entry_read_address(space, 0), m_delegate(delegate) {} ~handler_entry_read_delegate() = default; uX read(offs_t offset, uX mem_mask) override; @@ -70,7 +70,7 @@ public: using uX = typename emu::detail::handler_entry_size::uX; using inh = handler_entry_write_address; - handler_entry_write_delegate(address_space *space, WRITE delegate) : handler_entry_write_address(space, 0), m_delegate(delegate) {} + handler_entry_write_delegate(address_space *space, const WRITE &delegate) : handler_entry_write_address(space, 0), m_delegate(delegate) {} ~handler_entry_write_delegate() = default; void write(offs_t offset, uX data, uX mem_mask) override; diff --git a/src/emu/emupal.cpp b/src/emu/emupal.cpp index 6d0955f3484..536eff6577d 100644 --- a/src/emu/emupal.cpp +++ b/src/emu/emupal.cpp @@ -21,83 +21,82 @@ DEFINE_DEVICE_TYPE(PALETTE, palette_device, "palette", "palette") palette_device::palette_device(const machine_config &mconfig, const char *tag, device_t *owner, init_delegate &&init, u32 entries, u32 indirect) : palette_device(mconfig, tag, owner, 0U) { - set_entries(entries); - set_indirect_entries(indirect); - set_init(std::move(init)); + set_entries(entries, indirect); + m_init = std::move(init); } palette_device::palette_device(const machine_config &mconfig, const char *tag, device_t *owner, black_t, u32 entries) - : palette_device(mconfig, tag, owner, init_delegate(FUNC(palette_device::palette_init_all_black), tag, this), entries) + : palette_device(mconfig, tag, owner, init_delegate(*this, FUNC(palette_device::palette_init_all_black)), entries) { } palette_device::palette_device(const machine_config &mconfig, const char *tag, device_t *owner, mono_t) - : palette_device(mconfig, tag, owner, init_delegate(FUNC(palette_device::palette_init_monochrome), tag, this), 2) + : palette_device(mconfig, tag, owner, init_delegate(*this, FUNC(palette_device::palette_init_monochrome)), 2) { } palette_device::palette_device(const machine_config &mconfig, const char *tag, device_t *owner, mono_inv_t) - : palette_device(mconfig, tag, owner, init_delegate(FUNC(palette_device::palette_init_monochrome_inverted), tag, this), 2) + : palette_device(mconfig, tag, owner, init_delegate(*this, FUNC(palette_device::palette_init_monochrome_inverted)), 2) { } palette_device::palette_device(const machine_config &mconfig, const char *tag, device_t *owner, mono_hi_t) - : palette_device(mconfig, tag, owner, init_delegate(FUNC(palette_device::palette_init_monochrome_highlight), tag, this), 3) + : palette_device(mconfig, tag, owner, init_delegate(*this, FUNC(palette_device::palette_init_monochrome_highlight)), 3) { } palette_device::palette_device(const machine_config &mconfig, const char *tag, device_t *owner, rgb_3b_t) - : palette_device(mconfig, tag, owner, init_delegate(FUNC(palette_device::palette_init_3bit_rgb), tag, this), 8) + : palette_device(mconfig, tag, owner, init_delegate(*this, FUNC(palette_device::palette_init_3bit_rgb)), 8) { } palette_device::palette_device(const machine_config &mconfig, const char *tag, device_t *owner, rbg_3b_t) - : palette_device(mconfig, tag, owner, init_delegate(FUNC(palette_device::palette_init_3bit_rbg), tag, this), 8) + : palette_device(mconfig, tag, owner, init_delegate(*this, FUNC(palette_device::palette_init_3bit_rbg)), 8) { } palette_device::palette_device(const machine_config &mconfig, const char *tag, device_t *owner, grb_3b_t) - : palette_device(mconfig, tag, owner, init_delegate(FUNC(palette_device::palette_init_3bit_grb), tag, this), 8) + : palette_device(mconfig, tag, owner, init_delegate(*this, FUNC(palette_device::palette_init_3bit_grb)), 8) { } palette_device::palette_device(const machine_config &mconfig, const char *tag, device_t *owner, gbr_3b_t) - : palette_device(mconfig, tag, owner, init_delegate(FUNC(palette_device::palette_init_3bit_gbr), tag, this), 8) + : palette_device(mconfig, tag, owner, init_delegate(*this, FUNC(palette_device::palette_init_3bit_gbr)), 8) { } palette_device::palette_device(const machine_config &mconfig, const char *tag, device_t *owner, brg_3b_t) - : palette_device(mconfig, tag, owner, init_delegate(FUNC(palette_device::palette_init_3bit_brg), tag, this), 8) + : palette_device(mconfig, tag, owner, init_delegate(*this, FUNC(palette_device::palette_init_3bit_brg)), 8) { } palette_device::palette_device(const machine_config &mconfig, const char *tag, device_t *owner, bgr_3b_t) - : palette_device(mconfig, tag, owner, init_delegate(FUNC(palette_device::palette_init_3bit_bgr), tag, this), 8) + : palette_device(mconfig, tag, owner, init_delegate(*this, FUNC(palette_device::palette_init_3bit_bgr)), 8) { } palette_device::palette_device(const machine_config &mconfig, const char *tag, device_t *owner, rgb_555_t) - : palette_device(mconfig, tag, owner, init_delegate(FUNC(palette_device::palette_init_rgb_555), tag, this), 32768) + : palette_device(mconfig, tag, owner, init_delegate(*this, FUNC(palette_device::palette_init_rgb_555)), 32768) { } palette_device::palette_device(const machine_config &mconfig, const char *tag, device_t *owner, grb_555_t) - : palette_device(mconfig, tag, owner, init_delegate(FUNC(palette_device::palette_init_grb_555), tag, this), 32768) + : palette_device(mconfig, tag, owner, init_delegate(*this, FUNC(palette_device::palette_init_grb_555)), 32768) { } palette_device::palette_device(const machine_config &mconfig, const char *tag, device_t *owner, bgr_555_t) - : palette_device(mconfig, tag, owner, init_delegate(FUNC(palette_device::palette_init_bgr_555), tag, this), 32768) + : palette_device(mconfig, tag, owner, init_delegate(*this, FUNC(palette_device::palette_init_bgr_555)), 32768) { } palette_device::palette_device(const machine_config &mconfig, const char *tag, device_t *owner, rgb_565_t) - : palette_device(mconfig, tag, owner, init_delegate(FUNC(palette_device::palette_init_rgb_565), tag, this), 65536) + : palette_device(mconfig, tag, owner, init_delegate(*this, FUNC(palette_device::palette_init_rgb_565)), 65536) { } palette_device::palette_device(const machine_config &mconfig, const char *tag, device_t *owner, bgr_565_t) - : palette_device(mconfig, tag, owner, init_delegate(FUNC(palette_device::palette_init_bgr_565), tag, this), 65536) + : palette_device(mconfig, tag, owner, init_delegate(*this, FUNC(palette_device::palette_init_bgr_565)), 65536) { } @@ -114,7 +113,7 @@ palette_device::palette_device(const machine_config &mconfig, const char *tag, d , m_endianness() , m_endianness_supplied(false) , m_prom_region(*this, finder_base::DUMMY_TAG) - , m_init() + , m_init(*this) , m_raw_to_rgb() { } @@ -495,7 +494,7 @@ void palette_device::write_indirect_ext(offs_t offset, u8 data) void palette_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/emu/emupal.h b/src/emu/emupal.h index acc528110f1..9e6ffb62a9b 100644 --- a/src/emu/emupal.h +++ b/src/emu/emupal.h @@ -95,15 +95,14 @@ #pragma once +#include +#include + //************************************************************************** // TYPE DEFINITIONS //************************************************************************** -class palette_device; -typedef device_delegate palette_init_delegate; - - // ======================> raw_to_rgb_converter class raw_to_rgb_converter @@ -271,31 +270,22 @@ public: template palette_device(const machine_config &mconfig, const char *tag, device_t *owner, rgb_444_prom_t, T &®ion, u32 entries) - : palette_device(mconfig, tag, owner, init_delegate(FUNC(palette_device::palette_init_rgb_444_proms), tag, this), entries) + : palette_device(mconfig, tag, owner, init_delegate(*this, FUNC(palette_device::palette_init_rgb_444_proms)), entries) { set_prom_region(std::forward(region)); } - // FIXME: these should be aware of current device for resolving the tag - template - palette_device(const machine_config &mconfig, const char *tag, device_t *owner, void (FunctionClass::*init)(palette_device &), const char *name, u32 entries = 0U, u32 indirect = 0U) - : palette_device(mconfig, tag, owner, init_delegate(init, name, nullptr, static_cast(nullptr)), entries, indirect) - { } - template - palette_device(const machine_config &mconfig, const char *tag, device_t *owner, void (FunctionClass::*init)(palette_device &) const, const char *name, u32 entries = 0U, u32 indirect = 0U) - : palette_device(mconfig, tag, owner, init_delegate(init, name, nullptr, static_cast(nullptr)), entries, indirect) - { } - template - palette_device(const machine_config &mconfig, const char *tag, device_t *owner, const char *devname, void (FunctionClass::*init)(palette_device &), const char *name, u32 entries = 0U, u32 indirect = 0U) - : palette_device(mconfig, tag, owner, init_delegate(init, name, devname, static_cast(nullptr)), entries, indirect) - { } - template - palette_device(const machine_config &mconfig, const char *tag, device_t *owner, const char *devname, void (FunctionClass::*init)(palette_device &) const, const char *name, u32 entries = 0U, u32 indirect = 0U) - : palette_device(mconfig, tag, owner, init_delegate(init, name, devname, static_cast(nullptr)), entries, indirect) - { } + template + palette_device(const machine_config &mconfig, const char *tag, device_t *owner, F &&init, std::enable_if_t::value, const char *> name, u32 entries = 0U, u32 indirect = 0U) + : palette_device(mconfig, tag, owner, 0U) + { set_init(std::forward(init), name).set_entries(entries, indirect); } + template + palette_device(const machine_config &mconfig, const char *tag, device_t *owner, T &&devname, F &&init, std::enable_if_t::value, const char *> name, u32 entries = 0U, u32 indirect = 0U) + : palette_device(mconfig, tag, owner, 0U) + { set_init(std::forward(devname), std::forward(init), name).set_entries(entries, indirect); } // configuration - template void set_init(Object &&init) { m_init = std::forward(init); } + template palette_device &set_init(T &&... args) { m_init.set(std::forward(args)...); return *this; } palette_device &set_format(raw_to_rgb_converter raw_to_rgb) { m_raw_to_rgb = raw_to_rgb; return *this; } palette_device &set_format(int bytes_per_entry, raw_to_rgb_converter::raw_to_rgb_func func, u32 entries); palette_device &set_format(rgb_332_t, u32 entries); @@ -347,28 +337,6 @@ public: palette_device &enable_hilights() { m_enable_hilights = true; return *this; } template palette_device &set_prom_region(T &®ion) { m_prom_region.set_tag(std::forward(region)); return *this; } - // FIXME: these should be aware of current device for resolving the tag - template - void set_init(void (FunctionClass::*init)(palette_device &), const char *name) - { - m_init = init_delegate(init, name, nullptr, static_cast(nullptr)); - } - template - void set_init(void (FunctionClass::*init)(palette_device &) const, const char *name) - { - m_init = init_delegate(init, name, nullptr, static_cast(nullptr)); - } - template - void set_init(const char *devname, void (FunctionClass::*init)(palette_device &), const char *name) - { - m_init = init_delegate(init, name, devname, static_cast(nullptr)); - } - template - void set_init(const char *devname, void (FunctionClass::*init)(palette_device &) const, const char *name) - { - m_init = init_delegate(init, name, devname, static_cast(nullptr)); - } - // palette RAM accessors memory_array &basemem() { return m_paletteram; } memory_array &extmem() { return m_paletteram_ext; } diff --git a/src/emu/ioport.cpp b/src/emu/ioport.cpp index 58161b78a83..7e064e27698 100644 --- a/src/emu/ioport.cpp +++ b/src/emu/ioport.cpp @@ -597,6 +597,8 @@ ioport_field::ioport_field(ioport_port &port, ioport_type type, ioport_value def m_flags(0), m_impulse(0), m_name(name), + m_read(port.device()), + m_write(port.device()), m_write_param(0), m_digital_value(false), m_min(0), @@ -608,6 +610,7 @@ ioport_field::ioport_field(ioport_port &port, ioport_type type, ioport_value def m_crosshair_scale(1.0), m_crosshair_offset(0), m_crosshair_altaxis(0), + m_crosshair_mapper(port.device()), m_full_turn_count(0), m_remap_table(nullptr), m_way(0) @@ -1329,9 +1332,9 @@ void ioport_field::expand_diplocation(const char *location, std::string &errorbu void ioport_field::init_live_state(analog_field *analog) { // resolve callbacks - m_read.bind_relative_to(device()); - m_write.bind_relative_to(device()); - m_crosshair_mapper.bind_relative_to(device()); + m_read.resolve(); + m_write.resolve(); + m_crosshair_mapper.resolve(); // allocate live state m_live = std::make_unique(*this, analog); diff --git a/src/emu/ioport.h b/src/emu/ioport.h index df7d2ad026b..bb9a8f47830 100644 --- a/src/emu/ioport.h +++ b/src/emu/ioport.h @@ -1710,25 +1710,45 @@ ATTR_COLD void INPUT_PORTS_NAME(_name)(device_t &owner, ioport_list &portlist, s // read callbacks #define PORT_CUSTOM_MEMBER(_class, _member) \ - configurer.field_set_dynamic_read(ioport_field_read_delegate(&_class::_member, #_class "::" #_member, DEVICE_SELF, (_class *)nullptr)); + configurer.field_set_dynamic_read(ioport_field_read_delegate(owner, DEVICE_SELF, &_class::_member, #_class "::" #_member)); #define PORT_CUSTOM_DEVICE_MEMBER(_device, _class, _member) \ - configurer.field_set_dynamic_read(ioport_field_read_delegate(&_class::_member, #_class "::" #_member, _device, (_class *)nullptr)); + configurer.field_set_dynamic_read(ioport_field_read_delegate(owner, _device, &_class::_member, #_class "::" #_member)); // write callbacks #define PORT_CHANGED_MEMBER(_device, _class, _member, _param) \ - configurer.field_set_dynamic_write(ioport_field_write_delegate(&_class::_member, #_class "::" #_member, _device, (_class *)nullptr), (_param)); + configurer.field_set_dynamic_write(ioport_field_write_delegate(owner, _device, &_class::_member, #_class "::" #_member), (_param)); // input device handler #define PORT_READ_LINE_MEMBER(_class, _member) \ - configurer.field_set_dynamic_read(ioport_field_read_delegate([](_class &device)->ioport_value { return (device._member() & 1) ? ~ioport_value(0) : 0; } , #_class "::" #_member, DEVICE_SELF, (_class *)nullptr)); + configurer.field_set_dynamic_read( \ + ioport_field_read_delegate( \ + owner, \ + DEVICE_SELF, \ + static_cast([] (_class &device) -> ioport_value { return (device._member() & 1) ? ~ioport_value(0) : 0; }), \ + #_class "::" #_member)); #define PORT_READ_LINE_DEVICE_MEMBER(_device, _class, _member) \ - configurer.field_set_dynamic_read(ioport_field_read_delegate([](_class &device)->ioport_value { return (device._member() & 1) ? ~ioport_value(0) : 0; } , #_class "::" #_member, _device, (_class *)nullptr)); + configurer.field_set_dynamic_read( \ + ioport_field_read_delegate( \ + owner, \ + _device, \ + static_cast([] (_class &device) -> ioport_value { return (device._member() & 1) ? ~ioport_value(0) : 0; }), \ + #_class "::" #_member)); // output device handler #define PORT_WRITE_LINE_MEMBER(_class, _member) \ - configurer.field_set_dynamic_write(ioport_field_write_delegate([](_class &device, ioport_field &field, u32 param, ioport_value oldval, ioport_value newval) { device._member(newval); }, #_class "::" #_member, DEVICE_SELF, (_class *)nullptr)); + configurer.field_set_dynamic_write( \ + ioport_field_write_delegate( \ + owner, \ + DEVICE_SELF, \ + static_cast([] (_class &device, ioport_field &field, u32 param, ioport_value oldval, ioport_value newval) { device._member(newval); }), \ + #_class "::" #_member)); #define PORT_WRITE_LINE_DEVICE_MEMBER(_device, _class, _member) \ - configurer.field_set_dynamic_write(ioport_field_write_delegate([](_class &device, ioport_field &field, u32 param, ioport_value oldval, ioport_value newval) { device._member(newval); }, #_class "::" #_member, _device, (_class *)nullptr)); + configurer.field_set_dynamic_write( \ + ioport_field_write_delegate( \ + owner, \ + _device, \ + static_cast([] (_class &device, ioport_field &field, u32 param, ioport_value oldval, ioport_value newval) { device._member(newval); }), \ + #_class "::" #_member)); // dip switch definition #define PORT_DIPNAME(_mask, _default, _name) \ diff --git a/src/emu/screen.cpp b/src/emu/screen.cpp index a946fb22bd2..647bce77425 100644 --- a/src/emu/screen.cpp +++ b/src/emu/screen.cpp @@ -542,6 +542,8 @@ screen_device::screen_device(const machine_config &mconfig, const char *tag, dev , m_yoffset(0.0f) , m_xscale(1.0f) , m_yscale(1.0f) + , m_screen_update_ind16(*this) + , m_screen_update_rgb32(*this) , m_screen_vblank(*this) , m_scanline_cb(*this) , m_palette(*this, finder_base::DUMMY_TAG) @@ -700,8 +702,8 @@ std::pair screen_device::physical_aspect() const void screen_device::device_resolve_objects() { // bind our handlers - m_screen_update_ind16.bind_relative_to(*owner()); - m_screen_update_rgb32.bind_relative_to(*owner()); + m_screen_update_ind16.resolve(); + m_screen_update_rgb32.resolve(); m_screen_vblank.resolve_safe(); m_scanline_cb.resolve(); diff --git a/src/emu/screen.h b/src/emu/screen.h index c43c5fe7278..3842a65b2e6 100644 --- a/src/emu/screen.h +++ b/src/emu/screen.h @@ -12,6 +12,7 @@ #pragma once +#include #include @@ -338,36 +339,29 @@ public: m_yoffset = yoffs; } - // FIXME: these should be aware of current device for resolving the tag - template - void set_screen_update(u32 (FunctionClass::*callback)(screen_device &, bitmap_ind16 &, const rectangle &), const char *name) + template + std::enable_if_t::value> set_screen_update(F &&callback, const char *name) { - set_screen_update(screen_update_ind16_delegate(callback, name, nullptr, static_cast(nullptr))); + m_screen_update_ind16.set(std::forward(callback), name); + m_screen_update_rgb32 = screen_update_rgb32_delegate(*this); } - template - void set_screen_update(u32 (FunctionClass::*callback)(screen_device &, bitmap_rgb32 &, const rectangle &), const char *name) + template + std::enable_if_t::value> set_screen_update(F &&callback, const char *name) { - set_screen_update(screen_update_rgb32_delegate(callback, name, nullptr, static_cast(nullptr))); + m_screen_update_ind16 = screen_update_ind16_delegate(*this); + m_screen_update_rgb32.set(std::forward(callback), name); } - template - void set_screen_update(const char *devname, u32 (FunctionClass::*callback)(screen_device &, bitmap_ind16 &, const rectangle &), const char *name) + template + std::enable_if_t::value> set_screen_update(T &&target, F &&callback, const char *name) { - set_screen_update(screen_update_ind16_delegate(callback, name, devname, static_cast(nullptr))); + m_screen_update_ind16.set(std::forward(target), std::forward(callback), name); + m_screen_update_rgb32 = screen_update_rgb32_delegate(*this); } - template - void set_screen_update(const char *devname, u32 (FunctionClass::*callback)(screen_device &, bitmap_rgb32 &, const rectangle &), const char *name) + template + std::enable_if_t::value> set_screen_update(T &&target, F &&callback, const char *name) { - set_screen_update(screen_update_rgb32_delegate(callback, name, devname, static_cast(nullptr))); - } - void set_screen_update(screen_update_ind16_delegate callback) - { - m_screen_update_ind16 = callback; - m_screen_update_rgb32 = screen_update_rgb32_delegate(); - } - void set_screen_update(screen_update_rgb32_delegate callback) - { - m_screen_update_ind16 = screen_update_ind16_delegate(); - m_screen_update_rgb32 = callback; + m_screen_update_ind16 = screen_update_ind16_delegate(*this); + m_screen_update_rgb32.set(std::forward(target), std::forward(callback), name); } auto screen_vblank() { return m_screen_vblank.bind(); } diff --git a/src/emu/tilemap.cpp b/src/emu/tilemap.cpp index 083b4b4ef5a..44360a2a486 100644 --- a/src/emu/tilemap.cpp +++ b/src/emu/tilemap.cpp @@ -336,7 +336,9 @@ inline void tilemap_t::scanline_draw_masked_rgb32_alpha(u32 *dest, const u16 *so // tilemap_t - constructor //------------------------------------------------- -tilemap_t::tilemap_t() +tilemap_t::tilemap_t(device_t &owner) + : m_mapper(owner) + , m_tile_get_info(owner) { // until init() is called, data is floating; this is deliberate } @@ -346,11 +348,18 @@ tilemap_t::tilemap_t() // init - initialize the tilemap //------------------------------------------------- -tilemap_t &tilemap_t::init(tilemap_manager &manager, device_gfx_interface &decoder, tilemap_get_info_delegate tile_get_info, tilemap_mapper_delegate mapper, u16 tilewidth, u16 tileheight, u32 cols, u32 rows) +void tilemap_t::init_common( + tilemap_manager &manager, + device_gfx_interface &decoder, + tilemap_get_info_delegate tile_get_info, + u16 tilewidth, + u16 tileheight, + u32 cols, + u32 rows) { // populate managers and devices m_manager = &manager; - m_device = dynamic_cast(this); + m_device = dynamic_cast(this); m_palette = &decoder.palette(); m_next = nullptr; m_user_data = nullptr; @@ -363,9 +372,6 @@ tilemap_t &tilemap_t::init(tilemap_manager &manager, device_gfx_interface &decod m_width = cols * tilewidth; m_height = rows * tileheight; - // populate logical <-> memory mappings - m_mapper = mapper; - // initialize tile information geters m_tile_get_info = tile_get_info; @@ -426,6 +432,52 @@ tilemap_t &tilemap_t::init(tilemap_manager &manager, device_gfx_interface &decod // reset everything after a load machine().save().register_postload(save_prepost_delegate(FUNC(tilemap_t::postload), this)); +} + +tilemap_t &tilemap_t::init( + tilemap_manager &manager, + device_gfx_interface &decoder, + tilemap_get_info_delegate tile_get_info, + tilemap_mapper_delegate mapper, + u16 tilewidth, + u16 tileheight, + u32 cols, + u32 rows) +{ + // populate logical <-> memory mappings + m_mapper = mapper; + + init_common(manager, decoder, tile_get_info, tilewidth, tileheight, cols, rows); + + return *this; +} + +tilemap_t &tilemap_t::init( + tilemap_manager &manager, + device_gfx_interface &decoder, + tilemap_get_info_delegate tile_get_info, + tilemap_standard_mapper mapper, + u16 tilewidth, + u16 tileheight, + u32 cols, + u32 rows) +{ + // populate logical <-> memory mappings + switch (mapper) + { + case TILEMAP_SCAN_ROWS: m_mapper.set(*this, FUNC(tilemap_t::scan_rows)); break; + case TILEMAP_SCAN_ROWS_FLIP_X: m_mapper.set(*this, FUNC(tilemap_t::scan_rows_flip_x)); break; + case TILEMAP_SCAN_ROWS_FLIP_Y: m_mapper.set(*this, FUNC(tilemap_t::scan_rows_flip_y)); break; + case TILEMAP_SCAN_ROWS_FLIP_XY: m_mapper.set(*this, FUNC(tilemap_t::scan_rows_flip_xy)); break; + case TILEMAP_SCAN_COLS: m_mapper.set(*this, FUNC(tilemap_t::scan_cols)); break; + case TILEMAP_SCAN_COLS_FLIP_X: m_mapper.set(*this, FUNC(tilemap_t::scan_cols_flip_x)); break; + case TILEMAP_SCAN_COLS_FLIP_Y: m_mapper.set(*this, FUNC(tilemap_t::scan_cols_flip_y)); break; + case TILEMAP_SCAN_COLS_FLIP_XY: m_mapper.set(*this, FUNC(tilemap_t::scan_cols_flip_xy)); break; + default: throw emu_fatalerror("Tilemap init unknown mapper %d", mapper); + } + + init_common(manager, decoder, tile_get_info, tilewidth, tileheight, cols, rows); + return *this; } @@ -1529,14 +1581,13 @@ tilemap_manager::tilemap_manager(running_machine &machine) tilemap_manager::~tilemap_manager() { - // detach all device tilemaps since they will be destroyed - // as subdevices elsewhere + // detach all device tilemaps since they will be destroyed as subdevices elsewhere bool found = true; while (found) { found = false; for (tilemap_t &tmap : m_tilemap_list) - if (tmap.device() != nullptr) + if (tmap.m_device) { found = true; m_tilemap_list.detach(tmap); @@ -1553,28 +1604,16 @@ tilemap_manager::~tilemap_manager() tilemap_t &tilemap_manager::create(device_gfx_interface &decoder, tilemap_get_info_delegate tile_get_info, tilemap_mapper_delegate mapper, u16 tilewidth, u16 tileheight, u32 cols, u32 rows, tilemap_t *allocated) { - if (allocated == nullptr) - allocated = global_alloc(tilemap_t); + if (!allocated) + allocated = global_alloc(tilemap_t)(machine().root_device()); return m_tilemap_list.append(allocated->init(*this, decoder, tile_get_info, mapper, tilewidth, tileheight, cols, rows)); } tilemap_t &tilemap_manager::create(device_gfx_interface &decoder, tilemap_get_info_delegate tile_get_info, tilemap_standard_mapper mapper, u16 tilewidth, u16 tileheight, u32 cols, u32 rows, tilemap_t *allocated) { - if (allocated == nullptr) - allocated = global_alloc(tilemap_t); - - switch (mapper) - { - case TILEMAP_SCAN_ROWS :return m_tilemap_list.append(allocated->init(*this, decoder, tile_get_info, tilemap_mapper_delegate(FUNC(tilemap_t::scan_rows), allocated), tilewidth, tileheight, cols, rows)); - case TILEMAP_SCAN_ROWS_FLIP_X:return m_tilemap_list.append(allocated->init(*this, decoder, tile_get_info, tilemap_mapper_delegate(FUNC(tilemap_t::scan_rows_flip_x), allocated), tilewidth, tileheight, cols, rows)); - case TILEMAP_SCAN_ROWS_FLIP_Y:return m_tilemap_list.append(allocated->init(*this, decoder, tile_get_info, tilemap_mapper_delegate(FUNC(tilemap_t::scan_rows_flip_y), allocated), tilewidth, tileheight, cols, rows)); - case TILEMAP_SCAN_ROWS_FLIP_XY:return m_tilemap_list.append(allocated->init(*this, decoder, tile_get_info, tilemap_mapper_delegate(FUNC(tilemap_t::scan_rows_flip_xy),allocated), tilewidth, tileheight, cols, rows)); - case TILEMAP_SCAN_COLS:return m_tilemap_list.append(allocated->init(*this, decoder, tile_get_info, tilemap_mapper_delegate(FUNC(tilemap_t::scan_cols),allocated), tilewidth, tileheight, cols, rows)); - case TILEMAP_SCAN_COLS_FLIP_X:return m_tilemap_list.append(allocated->init(*this, decoder, tile_get_info, tilemap_mapper_delegate(FUNC(tilemap_t::scan_cols_flip_x),allocated), tilewidth, tileheight, cols, rows)); - case TILEMAP_SCAN_COLS_FLIP_Y:return m_tilemap_list.append(allocated->init(*this, decoder, tile_get_info, tilemap_mapper_delegate(FUNC(tilemap_t::scan_cols_flip_y),allocated), tilewidth, tileheight, cols, rows)); - case TILEMAP_SCAN_COLS_FLIP_XY:return m_tilemap_list.append(allocated->init(*this, decoder, tile_get_info, tilemap_mapper_delegate(FUNC(tilemap_t::scan_cols_flip_xy),allocated), tilewidth, tileheight, cols, rows)); - default: throw emu_fatalerror("Tilemap manager create unknown mapper %d", mapper); - } + if (!allocated) + allocated = global_alloc(tilemap_t)(machine().root_device()); + return m_tilemap_list.append(allocated->init(*this, decoder, tile_get_info, mapper, tilewidth, tileheight, cols, rows)); } @@ -1615,16 +1654,19 @@ DEFINE_DEVICE_TYPE(TILEMAP, tilemap_device, "tilemap", "Tilemap") //------------------------------------------------- tilemap_device::tilemap_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : device_t(mconfig, TILEMAP, tag, owner, clock), - m_gfxdecode(*this, finder_base::DUMMY_TAG), - m_standard_mapper(TILEMAP_STANDARD_COUNT), - m_bytes_per_entry(0), - m_tile_width(8), - m_tile_height(8), - m_num_columns(64), - m_num_rows(64), - m_transparent_pen_set(false), - m_transparent_pen(0) + : device_t(mconfig, TILEMAP, tag, owner, clock) + , tilemap_t(static_cast(*this)) + , m_gfxdecode(*this, finder_base::DUMMY_TAG) + , m_get_info(*this) + , m_standard_mapper(TILEMAP_STANDARD_COUNT) + , m_mapper(*this) + , m_bytes_per_entry(0) + , m_tile_width(8) + , m_tile_height(8) + , m_num_columns(64) + , m_num_rows(64) + , m_transparent_pen_set(false) + , m_transparent_pen(0) { } @@ -1719,14 +1761,14 @@ void tilemap_device::device_start() throw device_missing_dependencies(); // bind our callbacks - m_get_info.bind_relative_to(*owner()); - m_mapper.bind_relative_to(*owner()); + m_get_info.resolve(); + m_mapper.resolve(); // allocate the tilemap if (m_standard_mapper == TILEMAP_STANDARD_COUNT) - machine().tilemap().create(*m_gfxdecode, m_get_info, m_mapper, m_tile_width, m_tile_height, m_num_columns, m_num_rows, this); + machine().tilemap().create(*m_gfxdecode, m_get_info, m_mapper, m_tile_width, m_tile_height, m_num_columns, m_num_rows, *this); else - machine().tilemap().create(*m_gfxdecode, m_get_info, m_standard_mapper, m_tile_width, m_tile_height, m_num_columns, m_num_rows, this); + machine().tilemap().create(*m_gfxdecode, m_get_info, m_standard_mapper, m_tile_width, m_tile_height, m_num_columns, m_num_rows, *this); // find the memory, if present const memory_share *share = memshare(tag()); diff --git a/src/emu/tilemap.h b/src/emu/tilemap.h index a116f019c6c..e9ed1a3b66d 100644 --- a/src/emu/tilemap.h +++ b/src/emu/tilemap.h @@ -303,6 +303,10 @@ #pragma once +#include +#include +#include + //************************************************************************** // CONSTANTS @@ -419,17 +423,19 @@ class tilemap_t // maximum index in each array static const pen_t MAX_PEN_TO_FLAGS = 256; + void init_common(tilemap_manager &manager, device_gfx_interface &decoder, tilemap_get_info_delegate tile_get_info, u16 tilewidth, u16 tileheight, u32 cols, u32 rows); + protected: // tilemap_manager controls our allocations - tilemap_t(); + tilemap_t(device_t &owner); virtual ~tilemap_t(); tilemap_t &init(tilemap_manager &manager, device_gfx_interface &decoder, tilemap_get_info_delegate tile_get_info, tilemap_mapper_delegate mapper, u16 tilewidth, u16 tileheight, u32 cols, u32 rows); + tilemap_t &init(tilemap_manager &manager, device_gfx_interface &decoder, tilemap_get_info_delegate tile_get_info, tilemap_standard_mapper mapper, u16 tilewidth, u16 tileheight, u32 cols, u32 rows); public: // getters running_machine &machine() const; - tilemap_device *device() const { return m_device; } device_palette_interface &palette() const { return *m_palette; } device_gfx_interface &decoder() const { return *m_tileinfo.decoder; } @@ -554,7 +560,7 @@ private: // managers and devices tilemap_manager * m_manager; // reference to the owning manager - tilemap_device * m_device; // pointer to our owning device + device_t * m_device; // pointer to our owning device device_palette_interface * m_palette; // palette used for drawing tilemap_t * m_next; // pointer to next tilemap void * m_user_data; // user data value @@ -621,8 +627,12 @@ public: running_machine &machine() const { return m_machine; } // tilemap creation - tilemap_t &create(device_gfx_interface &decoder, tilemap_get_info_delegate tile_get_info, tilemap_mapper_delegate mapper, u16 tilewidth, u16 tileheight, u32 cols, u32 rows, tilemap_t *allocated = nullptr); - tilemap_t &create(device_gfx_interface &decoder, tilemap_get_info_delegate tile_get_info, tilemap_standard_mapper mapper, u16 tilewidth, u16 tileheight, u32 cols, u32 rows, tilemap_t *allocated = nullptr); + template + tilemap_t &create(device_gfx_interface &decoder, T &&tile_get_info, U &&mapper, u16 tilewidth, u16 tileheight, u32 cols, u32 rows) + { return create(decoder, std::forward(tile_get_info), std::forward(mapper), tilewidth, tileheight, cols, rows, nullptr); } + template + std::enable_if_t::value, tilemap_t &> create(device_gfx_interface &decoder, T &&tile_get_info, U &&mapper, u16 tilewidth, u16 tileheight, u32 cols, u32 rows, V &allocated) + { return create(decoder, std::forward(tile_get_info), std::forward(mapper), tilewidth, tileheight, cols, rows, &static_cast(allocated)); } // tilemap list information tilemap_t *find(int index) { return m_tilemap_list.find(index); } @@ -633,6 +643,10 @@ public: void set_flip_all(u32 attributes); private: + // tilemap creation + tilemap_t &create(device_gfx_interface &decoder, tilemap_get_info_delegate tile_get_info, tilemap_mapper_delegate mapper, u16 tilewidth, u16 tileheight, u32 cols, u32 rows, tilemap_t *allocated); + tilemap_t &create(device_gfx_interface &decoder, tilemap_get_info_delegate tile_get_info, tilemap_standard_mapper mapper, u16 tilewidth, u16 tileheight, u32 cols, u32 rows, tilemap_t *allocated); + // allocate an instance index int alloc_instance() { return ++m_instance; } @@ -689,29 +703,28 @@ public: template void set_gfxdecode(T &&tag) { m_gfxdecode.set_tag(std::forward(tag)); } void set_bytes_per_entry(int bpe) { m_bytes_per_entry = bpe; } - void set_info_callback(tilemap_get_info_delegate tile_get_info) { m_get_info = tile_get_info; } - template void set_info_callback(const char *devname, void (FunctionClass::*callback)(tilemap_t &, tile_data &, tilemap_memory_index), const char *name) - { - set_info_callback(tilemap_get_info_delegate(callback, name, devname, static_cast(nullptr))); - } - template void set_info_callback(void (FunctionClass::*callback)(tilemap_t &, tile_data &, tilemap_memory_index), const char *name) - { - set_info_callback(tilemap_get_info_delegate(callback, name, nullptr, static_cast(nullptr))); - } + template void set_info_callback(T &&... args) { m_get_info.set(std::forward(args)...); } - template void set_layout(tilemap_memory_index (FunctionClass::*callback)(u32, u32, u32, u32), const char *name, u32 columns, u32 rows) + void set_layout(tilemap_standard_mapper mapper, u32 columns, u32 rows) { - set_layout(tilemap_mapper_delegate(callback, name, nullptr, static_cast(nullptr)), columns, rows); - } - - void set_layout(tilemap_standard_mapper mapper, u32 columns, u32 rows) { + assert(TILEMAP_STANDARD_COUNT > mapper); m_standard_mapper = mapper; m_num_columns = columns; m_num_rows = rows; } - void set_layout(tilemap_mapper_delegate mapper, u32 columns, u32 rows) { + template + void set_layout(F &&callback, const char *name, u32 columns, u32 rows) + { + m_standard_mapper = TILEMAP_STANDARD_COUNT; + m_mapper.set(std::forward(callback), name); + m_num_columns = columns; + m_num_rows = rows; + } + template + void set_layout(T &&target, F &&callback, const char *name, u32 columns, u32 rows) + { m_standard_mapper = TILEMAP_STANDARD_COUNT; - m_mapper = mapper; + m_mapper.set(std::forward(target), std::forward(callback), name); m_num_columns = columns; m_num_rows = rows; } diff --git a/src/lib/util/delegate.h b/src/lib/util/delegate.h index 6b3101f5afa..39cc5eb3d00 100644 --- a/src/lib/util/delegate.h +++ b/src/lib/util/delegate.h @@ -79,9 +79,9 @@ // standard C++ includes #include +#include #include #include -#include //************************************************************************** @@ -310,7 +310,7 @@ public: // comparison helpers bool operator==(const delegate_mfp &rhs) const { return (m_function == rhs.m_function && m_this_delta == rhs.m_this_delta); } - bool isnull() const { return (m_function == 0 && m_this_delta==0); } + bool isnull() const { return (m_function == 0 && m_this_delta == 0); } // getters static delegate_generic_class *real_object(delegate_generic_class *original) { return original; } @@ -412,7 +412,6 @@ class delegate_base public: // define our traits template using traits = delegate_traits; - using functional_type = std::function; using generic_static_func = typename traits::static_func_type; typedef MEMBER_ABI generic_static_func generic_member_func; @@ -422,7 +421,6 @@ public: , m_object(nullptr) , m_latebinder(nullptr) , m_raw_function(nullptr) - , m_std_func(nullptr) { } // copy constructor @@ -432,7 +430,6 @@ public: , m_latebinder(src.m_latebinder) , m_raw_function(src.m_raw_function) , m_raw_mfp(src.m_raw_mfp) - , m_std_func(src.m_std_func) { bind(src.object()); } @@ -444,7 +441,6 @@ public: , m_latebinder(src.m_latebinder) , m_raw_function(src.m_raw_function) , m_raw_mfp(src.m_raw_mfp) - , m_std_func(src.m_std_func) { late_bind(object); } @@ -457,7 +453,6 @@ public: , m_latebinder(&late_bind_helper) , m_raw_function(nullptr) , m_raw_mfp(funcptr, object, static_cast(nullptr), static_cast(nullptr)) - , m_std_func(nullptr) { bind(reinterpret_cast(object)); } @@ -469,7 +464,6 @@ public: , m_latebinder(&late_bind_helper) , m_raw_function(nullptr) , m_raw_mfp(funcptr, object, static_cast(nullptr), static_cast(nullptr)) - , m_std_func(nullptr) { bind(reinterpret_cast(object)); } @@ -481,21 +475,10 @@ public: , m_object(nullptr) , m_latebinder(&late_bind_helper) , m_raw_function(reinterpret_cast(funcptr)) - , m_std_func(nullptr) { bind(reinterpret_cast(object)); } - // construct from static reference function with object reference - delegate_base(functional_type funcptr) - : m_function(nullptr) - , m_object(nullptr) - , m_latebinder(nullptr) - , m_raw_function(nullptr) - , m_std_func(funcptr) - { - } - // copy operator delegate_base &operator=(const delegate_base &src) { @@ -506,7 +489,6 @@ public: m_latebinder = src.m_latebinder; m_raw_function = src.m_raw_function; m_raw_mfp = src.m_raw_mfp; - m_std_func = src.m_std_func; bind(src.object()); } @@ -516,7 +498,7 @@ public: // comparison helper bool operator==(const delegate_base &rhs) const { - return (m_raw_function == rhs.m_raw_function && object() == rhs.object() && m_raw_mfp == rhs.m_raw_mfp && m_std_func.target_type().name() == rhs.m_std_func.target_type().name()); + return (m_raw_function == rhs.m_raw_function && object() == rhs.object() && m_raw_mfp == rhs.m_raw_mfp); } @@ -525,17 +507,15 @@ public: { if (is_mfp() && (HAS_DIFFERENT_ABI)) return (*reinterpret_cast(m_function)) (m_object, std::forward(args)...); - else if (m_std_func) - return m_std_func(std::forward(args)...); else return (*m_function) (m_object, std::forward(args)...); } // getters - bool has_object() const { return (object() != nullptr) || m_std_func; } + bool has_object() const { return (object() != nullptr); } // helpers - bool isnull() const { return (m_raw_function == nullptr && m_raw_mfp.isnull() && !m_std_func); } + bool isnull() const { return (m_raw_function == nullptr && m_raw_mfp.isnull()); } bool is_mfp() const { return !m_raw_mfp.isnull(); } // late binding @@ -575,7 +555,6 @@ protected: late_bind_func m_latebinder; // late binding helper generic_static_func m_raw_function; // raw static function pointer delegate_mfp m_raw_mfp; // raw member function pointer - functional_type m_std_func; // std::function pointer }; @@ -585,14 +564,16 @@ protected: //************************************************************************** // declare the base template -template -class delegate; +template class delegate; template class delegate : public delegate_base { private: using basetype = delegate_base; + using functional_type = std::function; + + functional_type m_std_func; protected: template using traits = typename basetype::template traits; @@ -603,13 +584,32 @@ protected: public: // create a standard set of constructors delegate() : basetype() { } - explicit delegate(const basetype &src) : basetype(src) { } - delegate(const basetype &src, delegate_late_bind &object) : basetype(src, object) { } + delegate(delegate const &src) : basetype(src.m_std_func ? basetype(&functional_type::operator(), &m_std_func) : static_cast(src)), m_std_func(src.m_std_func) { } + delegate(delegate &&src) : basetype(src.m_std_func ? basetype(&functional_type::operator(), &m_std_func) : std::move(static_cast(src))), m_std_func(std::move(src.m_std_func)) { } + delegate(delegate const &src, delegate_late_bind &object) : basetype(src.m_std_func ? basetype(&functional_type::operator(), &m_std_func) : basetype(src, object)), m_std_func(src.m_std_func) { } template delegate(member_func_type funcptr, FunctionClass *object) : basetype(funcptr, object) { } template delegate(const_member_func_type funcptr, FunctionClass *object) : basetype(funcptr, object) { } - explicit delegate(std::function funcptr) : basetype(funcptr) { } + explicit delegate(functional_type &&functoid) : basetype(&functional_type::operator(), &m_std_func), m_std_func(std::move(functoid)) { } template delegate(static_ref_func_type funcptr, FunctionClass *object) : basetype(funcptr, object) { } - delegate &operator=(const basetype &src) { *static_cast(this) = src; return *this; } + + delegate &operator=(delegate const &src) + { + if (src.m_std_func) + basetype::operator=(basetype(&functional_type::operator(), &m_std_func)); + else + basetype::operator=(src); + m_std_func = src.m_std_func; + return *this; + } + delegate &operator=(delegate &&src) + { + if (src.m_std_func) + basetype::operator=(basetype(&functional_type::operator(), &m_std_func)); + else + basetype::operator=(std::move(src)); + m_std_func = std::move(src.m_std_func); + return *this; + } }; #endif // MAME_UTIL_DELEGATE_H 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 void set_timer_delegate(T &&... args) { m_timer_delegate = timer_delegate(std::forward(args)...); } + template void set_timer_delegate(T &&... args) { m_timer_delegate.set(std::forward(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 //************************************************************************** @@ -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); } @@ -131,30 +135,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 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 void set_custom_input(int which, uint8_t mask, T &&... args) + { + m_custom_input_mask[which] = mask; + m_custom_input[which].set(std::forward(args)...); + } + template 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(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(1); return 0; }, [this](u8 data) { lio_interrupt(1); }).umask32(0xff000000); + map(0x1fac0000, 0x1fac0003).lrw8([this]() { lio_interrupt(1); return 0; }, "vrrst_r", [this](u8 data) { lio_interrupt(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(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(*m_xga), FUNC(atari_136095_0072_device::polylsb_read)), write32_delegate(downcast(*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 ¢ronics(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(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(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("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(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"); 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"); 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("crtc")->set_update_row_callback(FUNC(hnayayoi_state::untoucha_update_row), this); + subdevice("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("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(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(device); auto adc0838 = device->subdevice("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 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; + 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(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 ¢_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(0x2000); m_multigmc_mmc3_6000_ram = std::make_unique(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(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(*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(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")->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")->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(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 / // 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); // / 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(0x3000); memset(m_palette_ram[0].get(), 0, 0x3000); m_palette_ram[1] = std::make_unique(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("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(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(&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")->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")->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")->set_info(gfx_pyl601a); - subdevice("crtc")->set_update_row_callback(FUNC(pyl601_state::pyl601a_update_row), this); + subdevice("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(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(0x20000/4); m_tilemap_ram[3] = make_unique_clear(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")->set_screen_update("crtc", FUNC(mc6845_device::screen_update)); subdevice("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(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(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(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(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(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(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(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(0x22); m_shared_ram2 = std::make_unique(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(0x22); m_shared_ram2 = std::make_unique(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("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")->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(0x1000); m_bg_vram = std::make_unique(0x2000*0x20); m_bg_fb = std::make_unique(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(0x40000); m_pal_ram = std::make_unique(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")->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(*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(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(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")), write8sm_delegate(FUNC(ymf262_device::write), subdevice("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"), FUNC(ymf262_device::read)), write8sm_delegate(*subdevice("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 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 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 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 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 m_maincpu; + required_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 m_maincpu; - required_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(LINE_SIZE); line_buffer_prev = std::make_unique(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 void set_read_cb(Object &&readcb) { m_read = std::forward(readcb); } - void set_read_cb(sega_m2_read_delegate callback) { m_read = callback; } - template 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(nullptr))); - } + template void set_read_cb(T &&... args) { m_read.set(std::forward(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 void set_mapper(T &&... args) { m_mapper = mapper_delegate(std::forward(args)...); } + template void set_mapper(T &&... args) { m_mapper.set(std::forward(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(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 - void set_keyboard_callback(void (FunctionClass::*callback)(u16 character), const char *name) + template + void set_keyboard_callback(T &&... args) { - set_keyboard_callback(output_delegate(callback, name, nullptr, static_cast(nullptr))); + m_keyboard_cb.set(std::forward(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(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 void set_external_cb(T &&... args) { m_execute_external = igs025_execute_external(std::forward(args)...); } + template void set_external_cb(T &&... args) { m_execute_external.set(std::forward(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 segacd_dma_delegate; - -typedef device_delegate interrupt_delegate; - class lc89510_temp_device : public device_t { public: + typedef device_delegate dma_delegate; + typedef device_delegate interrupt_delegate; + void set_is_neoCD(bool new_is_neoCD) { is_neoCD = new_is_neoCD; } - template void set_type1_interrupt_callback(T &&... args) { type1_interrupt_callback = interrupt_delegate(std::forward(args)...); } - template void set_type2_interrupt_callback(T &&... args) { type2_interrupt_callback = interrupt_delegate(std::forward(args)...); } - template void set_type3_interrupt_callback(T &&... args) { type3_interrupt_callback = interrupt_delegate(std::forward(args)...); } + template void set_type1_interrupt_callback(T &&... args) { m_type1_interrupt_callback.set(std::forward(args)...); } + template void set_type2_interrupt_callback(T &&... args) { m_type2_interrupt_callback.set(std::forward(args)...); } + template void set_type3_interrupt_callback(T &&... args) { m_type3_interrupt_callback.set(std::forward(args)...); } - template void set_cdc_do_dma_callback(T &&... args) { segacd_dma_callback = segacd_dma_delegate(std::forward(args)...); } + template void set_cdc_do_dma_callback(T &&... args) { m_segacd_dma_callback.set(std::forward(args)...); } template void set_cdrom_tag(T &&tag) { m_cdrom.set_tag(std::forward(tag)); } template void set_68k_tag(T &&tag) { m_68k.set_tag(std::forward(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 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("pia_ic4ss"); + pia6821_device *const pia_ic4ss = subdevice("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(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(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 + 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 void set_dma_offs_callback(T &&... args) { m_dma_offs_cb = dma_offs_delegate(std::forward(args)...); } + template void set_dma_offs_callback(T &&... args) { m_dma_offs_cb.set(std::forward(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 upd65031_screen_update_delegate; -typedef device_delegate 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 upd65031_memor class upd65031_device : public device_t { public: + typedef device_delegate screen_update_delegate; + typedef device_delegate 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 void set_screen_update_callback(T &&... args) { m_screen_update_cb = upd65031_screen_update_delegate(std::forward(args)...); } - template void set_memory_update_callback(T &&... args) { m_out_mem_cb = upd65031_memory_update_delegate(std::forward(args)...); } + template void set_screen_update_callback(T &&... args) { m_screen_update_cb.set(std::forward(args)...); } + template void set_memory_update_callback(T &&... args) { m_out_mem_cb.set(std::forward(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(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(256, 256); m_tmp_bitmap2 = std::make_unique(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(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(0x1000); m_scrollram = std::make_unique(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(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(256*256); m_bitmap_videoram2 = std::make_unique(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(0x800); m_spriteram[1] = make_unique_clear(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(0x800); m_spriteram[1] = make_unique_clear(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(0x800); m_buffered_spriteram_2 = std::make_unique(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 deckarn_colpri_cb_delegate; - class deco_karnovsprites_device : public device_t { public: + typedef device_delegate 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 void set_colpri_callback(T &&... args) { m_colpri_cb = deckarn_colpri_cb_delegate(std::forward(args)...); } + template void set_colpri_callback(T &&... args) { m_colpri_cb.set(std::forward(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(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 decmxc06_colpri_cb_delegate; - class deco_mxc06_device : public device_t, public device_video_interface { public: + typedef device_delegate colpri_cb_delegate; + deco_mxc06_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // configuration - template void set_colpri_callback(T &&... args) { m_colpri_cb = decmxc06_colpri_cb_delegate(std::forward(args)...); } + template void set_colpri_callback(T &&... args) { m_colpri_cb.set(std::forward(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 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 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 void set_gfxdecode_tag(T &&tag) { m_gfxdecode.set_tag(std::forward(tag)); } // void set_palette_tag(const char *tag); - template void set_bank1_callback(T &&... args) { m_bank1_cb = deco16_bank_cb_delegate(std::forward(args)...); } - template void set_bank2_callback(T &&... args) { m_bank2_cb = deco16_bank_cb_delegate(std::forward(args)...); } + template void set_bank1_callback(T &&... args) { m_bank1_cb.set(std::forward(args)...); } + template void set_bank2_callback(T &&... args) { m_bank2_cb.set(std::forward(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 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 void set_gfxdecode_tag(T &&tag) { m_gfxdecode.set_tag(std::forward(tag)); } void set_gfx_region(int gfxregion) { m_gfxregion = gfxregion; } - template void set_pri_callback(T &&... args) { m_pri_cb = decospr_pri_cb_delegate(std::forward(args)...); } - template void set_col_callback(T &&... args) { m_col_cb = decospr_col_cb_delegate(std::forward(args)...); } + template void set_pri_callback(T &&... args) { m_pri_cb.set(std::forward(args)...); } + template void set_col_callback(T &&... args) { m_col_cb.set(std::forward(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 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(nullptr))); - } + template void set_init(T &&... args) { m_init.set(std::forward(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(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 dooyong_tmap_cb_delegate; - void set_tile_callback(dooyong_tmap_cb_delegate cb) { m_tmap_cb = cb; } + template void set_tile_callback(T &&... args) { m_tmap_cb.set(std::forward(args)...); } void ctrl_w(offs_t offset, u8 data); @@ -85,12 +85,12 @@ protected: private: required_region_ptr 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(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(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(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(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 excellent_spr_colpri_cb_delegate; - class excellent_spr_device : public device_t, public device_gfx_interface, public device_video_interface { public: + typedef device_delegate 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 void set_colpri_callback(T &&... args) { m_colpri_cb = excellent_spr_colpri_cb_delegate(std::forward(args)...); } + template void set_colpri_callback(T &&... args) { m_colpri_cb.set(std::forward(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(&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 fuukivid_tile_delegate; -typedef device_delegate fuukivid_colpri_cb_delegate; - class fuukivid_device : public device_t, public device_gfx_interface, public device_video_interface { public: + typedef device_delegate tile_delegate; + typedef device_delegate 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 void set_tile_callback(T &&... args) { m_tile_cb = fuukivid_tile_delegate(std::forward(args)...); } - template void set_colpri_callback(T &&... args) { m_colpri_cb = fuukivid_colpri_cb_delegate(std::forward(args)...); } + template void set_tile_callback(T &&... args) { m_tile_cb.set(std::forward(args)...); } + template void set_colpri_callback(T &&... args) { m_colpri_cb.set(std::forward(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(spriteram_size / 2); m_buf_spriteram[1] = make_unique_clear(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(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(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(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 gp9001_cb_delegate; + gp9001vdp_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); - typedef device_delegate gp9001_cb_delegate; - void set_tile_callback(gp9001_cb_delegate cb) { m_gp9001_cb = cb; } + template void set_tile_callback(T &&... args) { m_gp9001_cb.set(std::forward(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 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 palette_scramble_delegate; + igs017_igs031_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); template void set_i8255_tag(T &&tag) { m_i8255.set_tag(std::forward(tag)); } - template void set_palette_scramble_cb(T &&... args) { m_palette_scramble_cb = igs017_igs031_palette_scramble_delegate(std::forward(args)...); } + template void set_palette_scramble_cb(T &&... args) { m_palette_scramble_cb.set(std::forward(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 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(0x2000); m_scroll_ram = make_unique_clear(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 k007342_delegate; - class k007342_device : public device_t { public: + using tile_delegate = device_delegate; + k007342_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // configuration template void set_gfxdecode_tag(T &&tag) { m_gfxdecode.set_tag(std::forward(tag)); } void set_gfxnum(int gfxnum) { m_gfxnum = gfxnum; } - template void set_tile_callback(T &&... args) { m_callback = k007342_delegate(std::forward(args)...); } + template void set_tile_callback(T &&... args) { m_callback.set(std::forward(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 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(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 k007420_delegate; - class k007420_device : public device_t { public: + using sprite_delegate = device_delegate; + k007420_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); template void set_palette_tag(T &&tag) { m_palette.set_tag(std::forward(tag)); } void set_bank_limit(int limit) { m_banklimit = limit; } - template void set_sprite_callback(T &&... args) { m_callback = k007420_delegate(std::forward(args)...); } + template void set_sprite_callback(T &&... args) { m_callback.set(std::forward(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 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(0x20000 / 4); m_reg = make_unique_clear(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 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; + 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 void set_zoom_callback(T &&... args) { m_k051316_cb = k051316_cb_delegate(std::forward(args)...); } + template void set_zoom_callback(T &&... args) { m_k051316_cb.set(std::forward(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(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 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; + 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 void set_sprite_callback(T &&... args) { m_k051960_cb = k051960_cb_delegate(std::forward(args)...); } + template void set_sprite_callback(T &&... args) { m_k051960_cb.set(std::forward(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 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; + 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 void set_tile_callback(T &&... args) { m_k052109_cb = k052109_cb_delegate(std::forward(args)...); } + template void set_tile_callback(T &&... args) { m_k052109_cb.set(std::forward(args)...); } void set_char_ram(bool ram); /* @@ -87,7 +88,7 @@ private: optional_region_ptr 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(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 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; + k05324x_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // configuration void set_bpp(int bpp); - template void set_sprite_callback(T &&... args) { m_k05324x_cb = k05324x_cb_delegate(std::forward(args)...); } + template void set_sprite_callback(T &&... args) { m_k05324x_cb.set(std::forward(args)...); } void set_offsets(int x_offset, int y_offset) { m_dx = x_offset; @@ -53,9 +54,9 @@ private: required_region_ptr 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 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; + 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 void set_sprite_callback(T &&... args) { m_k053247_cb = k053247_cb_delegate(std::forward(args)...); } + template void set_sprite_callback(T &&... args) { m_k053247_cb.set(std::forward(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 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 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; + template 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 void set_tile_callback(T &&... args) { m_k056832_cb = k056832_cb_delegate(std::forward(args)...); } + template void set_tile_callback(T &&... args) { m_k056832_cb.set(std::forward(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(0x20/2); set_gfx(0, std::make_unique(&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 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 view2_cb_delegate; - void set_tile_callback(view2_cb_delegate cb) { m_view2_cb = cb; } + template void set_tile_callback(T &&... args) { m_view2_cb.set(std::forward(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(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(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(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(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(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(m_spriteram.bytes() / 4); m_spriteram_old2 = make_unique_clear(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(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 void set_scanline_callback(Object &&cb) { m_scanline_callback = std::forward(cb); } - void set_scanline_callback(scanline_callback_delegate callback) { m_scanline_callback = callback; } - template 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(nullptr))); - } - template void set_scanline_callback(void (FunctionClass::*callback)(int), const char *name) - { - set_scanline_callback(scanline_callback_delegate(callback, name, nullptr, static_cast(nullptr))); - } + template void set_scanline_callback(T &&... args) { m_scanline_callback.set(std::forward(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(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(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(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(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(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((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 colpri_cb_delegate; typedef device_delegate ext_cb_delegate; + nmk_16bit_sprite_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + // configuration - template void set_colpri_callback(T &&... args) { m_colpri_cb = colpri_cb_delegate(std::forward(args)...); } - template void set_ext_callback(T &&... args) { m_ext_cb = ext_cb_delegate(std::forward(args)...); } + template void set_colpri_callback(T &&... args) { m_colpri_cb.set(std::forward(args)...); } + template void set_ext_callback(T &&... args) { m_ext_cb.set(std::forward(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(0x1000); // m_colorram = std::make_unique(0x1000); // m_paletteram = std::make_unique(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(0x2000); // m_colorram = std::make_unique(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(PC090OJ_RAM_SIZE / 2); m_ram_buffered = make_unique_clear(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 pc090oj_colpri_cb_delegate; - class pc090oj_device : public device_t, public device_gfx_interface { public: + typedef device_delegate 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 void set_colpri_callback(T &&... args) { m_colpri_cb = pc090oj_colpri_cb_delegate(std::forward(args)...); } + template void set_colpri_callback(T &&... args) { m_colpri_cb.set(std::forward(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(&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(128,128); m_tmp_bitmap[1] = std::make_unique(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(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(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(0x1000/2); m_spritebuffer[1] = make_unique_clear(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(0x2000); m_fg_ram = std::make_unique(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 void set_pagelatch_cb(T &&... args) { m_pagelatch_cb = segaic16_video_pagelatch_delegate(std::forward(args)...); } + template void set_pagelatch_cb(T &&... args) { m_pagelatch_cb.set(std::forward(args)...); } uint8_t m_display_enable; optional_shared_ptr 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 void set_gfxdecode_tag(T &&tag) { m_gfxdecode.set_tag(std::forward(tag)); } - template void set_gfxbank_callback(T &&... args) { m_gfxbank_cb = gfxbank_cb_delegate(std::forward(args)...); } + template void set_gfxbank_callback(T &&... args) { m_gfxbank_cb.set(std::forward(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 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(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 snk68_tile_indirection_delegate; - class snk68_spr_device : public device_t { public: + typedef device_delegate tile_indirection_delegate; + snk68_spr_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // static configuration template void set_gfxdecode_tag(T &&tag) { m_gfxdecode.set_tag(std::forward(tag)); } - template void set_tile_indirect_cb(T &&... args) { m_newtilecb = snk68_tile_indirection_delegate(std::forward(args)...); } + template void set_tile_indirect_cb(T &&... args) { m_newtilecb.set(std::forward(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 m_gfxdecode; required_shared_ptr m_spriteram; required_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(256, 256); m_fg_bitmap[1] = std::make_unique(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(0x10000 / 2); m_spritelist = std::make_unique(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(5); m_sa_line_inf = std::make_unique(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(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(0x2000/2); m_spriteram_older = std::make_unique(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(8192); m_temp_bitmap.allocate(512, 512); m_apache3_road_x_ram = std::make_unique(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(8192); m_tx_gfxram = std::make_unique(0x20000); m_bg_gfxram = std::make_unique(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(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(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 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 tc0100scn_cb_delegate; + // configuration void set_gfxlayout(int layout) { m_gfxlayout = layout; } void set_color_base(u16 base) { m_col_base = base; } - template void set_tile_callback(T &&... args) { m_tc0100scn_cb = tc0100scn_cb_delegate(std::forward(args)...); } + template void set_tile_callback(T &&... args) { m_tc0100scn_cb.set(std::forward(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(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(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 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 void set_gfxdecode_tag(T &&tag) { m_gfxdecode.set_tag(std::forward(tag)); } - typedef device_delegate tmap038_cb_delegate; - void set_tile_callback(tmap038_cb_delegate cb) { m_038_cb = cb; } + template void set_tile_callback(T &&... args) { m_038_cb.set(std::forward(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(8 * 0x800); m_vram_gfx=std::make_unique(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(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 void set_tile_indirect_cb(T &&... args) { m_newtilecb = vsystem_tile_indirection_delegate(std::forward(args)...); } + template void set_tile_indirect_cb(T &&... args) { m_newtilecb.set(std::forward(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 void set_gfxdecode_tag(T &&tag) { m_gfxdecode.set_tag(std::forward(tag)); } - template void set_tile_indirect_cb(T &&... args) { m_newtilecb = vsystem_tile2_indirection_delegate(std::forward(args)...); } + template void set_tile_indirect_cb(T &&... args) { m_newtilecb.set(std::forward(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(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 wswan_video_irq_cb_delegate; -#define WSWAN_VIDEO_IRQ_CB_MEMBER(_name) void _name(int irq) - -typedef device_delegate 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 irq_cb_delegate; + typedef device_delegate 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 void set_irq_callback(T &&... args) { m_set_irq_cb = wswan_video_irq_cb_delegate(std::forward(args)...); } - template void set_dmasnd_callback(T &&... args) { m_snd_dma_cb = wswan_video_dmasnd_cb_delegate(std::forward(args)...); } + template void set_irq_callback(T &&... args) { m_set_irq_cb.set(std::forward(args)...); } + template void set_dmasnd_callback(T &&... args) { m_snd_dma_cb.set(std::forward(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) -- cgit v1.2.3