summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/devices/bus/a1bus/a1cassette.cpp2
-rw-r--r--src/devices/bus/a1bus/a1cffa.cpp2
-rw-r--r--src/devices/bus/a2bus/a2ultraterm.cpp2
-rw-r--r--src/devices/bus/a2bus/a2videoterm.cpp2
-rw-r--r--src/devices/bus/acorn/atom/discpack.cpp2
-rw-r--r--src/devices/bus/acorn/atom/econet.cpp4
-rw-r--r--src/devices/bus/acorn/atom/sid.cpp2
-rw-r--r--src/devices/bus/acorn/cms/4080term.cpp4
-rw-r--r--src/devices/bus/acorn/cms/fdc.cpp4
-rw-r--r--src/devices/bus/acorn/cms/hires.cpp4
-rw-r--r--src/devices/bus/acorn/system/8k.cpp4
-rw-r--r--src/devices/bus/acorn/system/econet.cpp4
-rw-r--r--src/devices/bus/acorn/system/fdc.cpp2
-rw-r--r--src/devices/bus/acorn/system/vdu40.cpp6
-rw-r--r--src/devices/bus/acorn/system/vdu80.cpp10
-rw-r--r--src/devices/bus/acorn/system/vib.cpp4
-rw-r--r--src/devices/bus/amiga/zorro/a2052.cpp4
-rw-r--r--src/devices/bus/amiga/zorro/a2058.cpp4
-rw-r--r--src/devices/bus/amiga/zorro/a2065.cpp16
-rw-r--r--src/devices/bus/amiga/zorro/a2232.cpp24
-rw-r--r--src/devices/bus/amiga/zorro/buddha.cpp8
-rw-r--r--src/devices/bus/bbc/exp/mertec.cpp4
-rw-r--r--src/devices/bus/bbc/tube/tube_80286.cpp2
-rw-r--r--src/devices/bus/bbc/tube/tube_z80.cpp2
-rw-r--r--src/devices/bus/bml3/bml3kanji.cpp2
-rw-r--r--src/devices/bus/bml3/bml3mp1802.cpp4
-rw-r--r--src/devices/bus/bml3/bml3mp1805.cpp4
-rw-r--r--src/devices/bus/c64/xl80.cpp2
-rw-r--r--src/devices/bus/cbus/pc9801_118.cpp4
-rw-r--r--src/devices/bus/cbus/pc9801_26.cpp6
-rw-r--r--src/devices/bus/cbus/pc9801_86.cpp12
-rw-r--r--src/devices/bus/cbus/pc9801_amd98.cpp12
-rw-r--r--src/devices/bus/cgenie/expansion/floppy.cpp6
-rw-r--r--src/devices/bus/coco/coco_dcmodem.cpp4
-rw-r--r--src/devices/bus/coco/coco_multi.cpp2
-rw-r--r--src/devices/bus/coco/coco_orch90.cpp4
-rw-r--r--src/devices/bus/coco/coco_rs232.cpp4
-rw-r--r--src/devices/bus/coco/coco_ssc.cpp6
-rw-r--r--src/devices/bus/comx35/clm.cpp2
-rw-r--r--src/devices/bus/cpc/amdrum.cpp2
-rw-r--r--src/devices/bus/cpc/brunword4.cpp2
-rw-r--r--src/devices/bus/cpc/cpc_pds.cpp4
-rw-r--r--src/devices/bus/cpc/cpc_rs232.cpp4
-rw-r--r--src/devices/bus/cpc/cpc_ssa1.cpp6
-rw-r--r--src/devices/bus/cpc/ddi1.cpp6
-rw-r--r--src/devices/bus/cpc/doubler.cpp2
-rw-r--r--src/devices/bus/cpc/hd20.cpp6
-rw-r--r--src/devices/bus/cpc/magicsound.cpp8
-rw-r--r--src/devices/bus/cpc/musicmachine.cpp6
-rw-r--r--src/devices/bus/cpc/playcity.cpp10
-rw-r--r--src/devices/bus/cpc/smartwatch.cpp4
-rw-r--r--src/devices/bus/cpc/symbfac2.cpp10
-rw-r--r--src/devices/bus/cpc/transtape.cpp4
-rw-r--r--src/devices/bus/dmv/k220.cpp4
-rw-r--r--src/devices/bus/dmv/k230.cpp2
-rw-r--r--src/devices/bus/dmv/k806.cpp2
-rw-r--r--src/devices/bus/ecbbus/grip.cpp2
-rw-r--r--src/devices/bus/einstein/pipe/silicon_disc.cpp4
-rw-r--r--src/devices/bus/einstein/pipe/speculator.cpp12
-rw-r--r--src/devices/bus/einstein/pipe/tk02.cpp4
-rw-r--r--src/devices/bus/electron/cart/ap5.cpp4
-rw-r--r--src/devices/bus/electron/cart/romp144.cpp14
-rw-r--r--src/devices/bus/electron/plus2.cpp6
-rw-r--r--src/devices/bus/electron/rombox.cpp16
-rw-r--r--src/devices/bus/electron/romboxp.cpp8
-rw-r--r--src/devices/bus/ep64/exdos.cpp4
-rw-r--r--src/devices/bus/generic/slot.cpp24
-rw-r--r--src/devices/bus/generic/slot.h4
-rw-r--r--src/devices/bus/gio64/gio64.cpp6
-rw-r--r--src/devices/bus/hp80_io/82937.cpp2
-rw-r--r--src/devices/bus/hp9845_io/hp9845_io.cpp10
-rw-r--r--src/devices/bus/hp9845_io/hp9845_io.h2
-rw-r--r--src/devices/bus/hp_dio/hp98265a.cpp4
-rw-r--r--src/devices/bus/hp_dio/hp98543.cpp16
-rw-r--r--src/devices/bus/hp_dio/hp98544.cpp12
-rw-r--r--src/devices/bus/hp_dio/hp98550.cpp16
-rw-r--r--src/devices/bus/hp_dio/hp98603a.cpp4
-rw-r--r--src/devices/bus/hp_dio/hp98603b.cpp5
-rw-r--r--src/devices/bus/hp_dio/hp98620.cpp4
-rw-r--r--src/devices/bus/hp_dio/hp98643.cpp26
-rw-r--r--src/devices/bus/hp_dio/hp98644.cpp4
-rw-r--r--src/devices/bus/hp_dio/human_interface.cpp8
-rw-r--r--src/devices/bus/intellec4/insdatastor.cpp4
-rw-r--r--src/devices/bus/intellec4/tapereader.cpp8
-rw-r--r--src/devices/bus/interpro/keyboard/lle.cpp10
-rw-r--r--src/devices/bus/interpro/sr/edge.cpp42
-rw-r--r--src/devices/bus/interpro/sr/sr.h4
-rw-r--r--src/devices/bus/isa/3c503.cpp4
-rw-r--r--src/devices/bus/isa/3c505.cpp26
-rw-r--r--src/devices/bus/isa/adlib.cpp2
-rw-r--r--src/devices/bus/isa/aga.cpp14
-rw-r--r--src/devices/bus/isa/aha1542c.cpp7
-rw-r--r--src/devices/bus/isa/asc88.cpp8
-rw-r--r--src/devices/bus/isa/cga.cpp32
-rw-r--r--src/devices/bus/isa/chessmdr.cpp2
-rw-r--r--src/devices/bus/isa/chessmsr.cpp2
-rw-r--r--src/devices/bus/isa/com.cpp8
-rw-r--r--src/devices/bus/isa/dectalk.cpp2
-rw-r--r--src/devices/bus/isa/ega.cpp16
-rw-r--r--src/devices/bus/isa/eis_sad8852.cpp4
-rw-r--r--src/devices/bus/isa/finalchs.cpp2
-rw-r--r--src/devices/bus/isa/gblaster.cpp6
-rw-r--r--src/devices/bus/isa/gus.cpp8
-rw-r--r--src/devices/bus/isa/hdc.cpp2
-rw-r--r--src/devices/bus/isa/ibm_mfc.cpp2
-rw-r--r--src/devices/bus/isa/lpt.cpp9
-rw-r--r--src/devices/bus/isa/mc1502_fdc.cpp12
-rw-r--r--src/devices/bus/isa/mda.cpp16
-rw-r--r--src/devices/bus/isa/mpu401.cpp2
-rw-r--r--src/devices/bus/isa/myb3k_com.cpp12
-rw-r--r--src/devices/bus/isa/ne1000.cpp2
-rw-r--r--src/devices/bus/isa/ne2000.cpp2
-rw-r--r--src/devices/bus/isa/num9rev.cpp14
-rw-r--r--src/devices/bus/isa/omti8621.cpp2
-rw-r--r--src/devices/bus/isa/p1_fdc.cpp6
-rw-r--r--src/devices/bus/isa/p1_hdc.cpp4
-rw-r--r--src/devices/bus/isa/p1_sound.cpp24
-rw-r--r--src/devices/bus/isa/pc1640_iga.cpp6
-rw-r--r--src/devices/bus/isa/pcmidi.cpp4
-rw-r--r--src/devices/bus/isa/pds.cpp4
-rw-r--r--src/devices/bus/isa/pgc.cpp3
-rw-r--r--src/devices/bus/isa/s3virge.cpp2
-rw-r--r--src/devices/bus/isa/sb16.cpp20
-rw-r--r--src/devices/bus/isa/sblaster.cpp48
-rw-r--r--src/devices/bus/isa/sc499.cpp2
-rw-r--r--src/devices/bus/isa/side116.cpp2
-rw-r--r--src/devices/bus/isa/ssi2001.cpp5
-rw-r--r--src/devices/bus/isa/stereo_fx.cpp16
-rw-r--r--src/devices/bus/isa/svga_cirrus.cpp28
-rw-r--r--src/devices/bus/isa/svga_cirrus.h4
-rw-r--r--src/devices/bus/isa/svga_s3.cpp99
-rw-r--r--src/devices/bus/isa/svga_s3.h10
-rw-r--r--src/devices/bus/isa/svga_trident.cpp26
-rw-r--r--src/devices/bus/isa/svga_trident.h2
-rw-r--r--src/devices/bus/isa/svga_tseng.cpp16
-rw-r--r--src/devices/bus/isa/svga_tseng.h2
-rw-r--r--src/devices/bus/isa/trident.cpp2
-rw-r--r--src/devices/bus/isa/vga.cpp17
-rw-r--r--src/devices/bus/isa/vga.h2
-rw-r--r--src/devices/bus/isa/vga_ati.cpp361
-rw-r--r--src/devices/bus/isa/vga_ati.h10
-rw-r--r--src/devices/bus/isa/wdxt_gen.cpp2
-rw-r--r--src/devices/bus/isa/xtide.cpp4
-rw-r--r--src/devices/bus/lpci/i82371sb.cpp6
-rw-r--r--src/devices/bus/lpci/southbridge.cpp30
-rw-r--r--src/devices/bus/macpds/hyperdrive.cpp2
-rw-r--r--src/devices/bus/macpds/pds_tpdfpd.cpp4
-rw-r--r--src/devices/bus/msx_cart/arc.cpp4
-rw-r--r--src/devices/bus/msx_cart/bm_012.cpp4
-rw-r--r--src/devices/bus/msx_cart/fmpac.cpp2
-rw-r--r--src/devices/bus/msx_cart/konami.cpp6
-rw-r--r--src/devices/bus/msx_cart/korean.cpp2
-rw-r--r--src/devices/bus/msx_cart/moonsound.cpp6
-rw-r--r--src/devices/bus/msx_cart/msx_audio.cpp16
-rw-r--r--src/devices/bus/msx_cart/superloderunner.cpp2
-rw-r--r--src/devices/bus/msx_cart/yamaha.cpp2
-rw-r--r--src/devices/bus/msx_slot/disk.cpp4
-rw-r--r--src/devices/bus/msx_slot/music.cpp2
-rw-r--r--src/devices/bus/msx_slot/ram_mm.cpp4
-rw-r--r--src/devices/bus/mtx/sdx.cpp16
-rw-r--r--src/devices/bus/nasbus/avc.cpp10
-rw-r--r--src/devices/bus/nasbus/floppy.cpp6
-rw-r--r--src/devices/bus/nubus/bootbug.cpp2
-rw-r--r--src/devices/bus/nubus/nubus_48gc.cpp2
-rw-r--r--src/devices/bus/nubus/nubus_asntmc3b.cpp8
-rw-r--r--src/devices/bus/nubus/nubus_cb264.cpp4
-rw-r--r--src/devices/bus/nubus/nubus_image.cpp14
-rw-r--r--src/devices/bus/nubus/nubus_m2hires.cpp6
-rw-r--r--src/devices/bus/nubus/nubus_m2video.cpp6
-rw-r--r--src/devices/bus/nubus/nubus_radiustpd.cpp8
-rw-r--r--src/devices/bus/nubus/nubus_spec8.cpp6
-rw-r--r--src/devices/bus/nubus/nubus_specpdq.cpp4
-rw-r--r--src/devices/bus/nubus/nubus_vikbw.cpp4
-rw-r--r--src/devices/bus/nubus/nubus_wsportrait.cpp6
-rw-r--r--src/devices/bus/nubus/pds30_30hr.cpp4
-rw-r--r--src/devices/bus/nubus/pds30_cb264.cpp4
-rw-r--r--src/devices/bus/nubus/pds30_mc30.cpp4
-rw-r--r--src/devices/bus/nubus/pds30_procolor816.cpp6
-rw-r--r--src/devices/bus/nubus/pds30_sigmalview.cpp6
-rw-r--r--src/devices/bus/nubus/quadralink.cpp2
-rw-r--r--src/devices/bus/sbus/sbus.cpp6
-rw-r--r--src/devices/bus/snes_ctrl/ctrl.cpp9
-rw-r--r--src/devices/bus/snes_ctrl/ctrl.h13
-rw-r--r--src/devices/bus/spectrum/intf2.cpp2
-rw-r--r--src/devices/bus/svi3x8/slot/sv806.cpp2
-rw-r--r--src/devices/bus/tanbus/mpvdu.cpp2
-rw-r--r--src/devices/bus/tanbus/ravdu.cpp2
-rw-r--r--src/devices/bus/ti99x/990_hd.cpp16
-rw-r--r--src/devices/bus/vic20/videopak.cpp2
-rw-r--r--src/devices/bus/vme/vme_fccpu20.cpp6
-rw-r--r--src/devices/bus/vme/vme_mzr8300.cpp20
-rw-r--r--src/devices/bus/vtech/ioexp/joystick.cpp2
-rw-r--r--src/devices/bus/vtech/ioexp/printer.cpp6
-rw-r--r--src/devices/bus/vtech/memexp/memory.cpp2
-rw-r--r--src/devices/bus/vtech/memexp/rs232.cpp4
-rw-r--r--src/devices/bus/vtech/memexp/rtty.cpp6
-rw-r--r--src/devices/bus/wangpc/lvc.cpp2
-rw-r--r--src/devices/bus/wangpc/mvc.cpp2
-rw-r--r--src/devices/bus/x68k/x68k_midi.cpp2
-rw-r--r--src/devices/bus/x68k/x68k_neptunex.cpp2
-rw-r--r--src/devices/bus/x68k/x68k_scsiext.cpp2
-rw-r--r--src/devices/cpu/ccpu/ccpu.cpp3
-rw-r--r--src/devices/cpu/ccpu/ccpu.h12
-rw-r--r--src/devices/cpu/dsp16/dsp16.cpp6
-rw-r--r--src/devices/cpu/e0c6200/e0c6s46.cpp6
-rw-r--r--src/devices/cpu/e0c6200/e0c6s46.h12
-rw-r--r--src/devices/cpu/esrip/esrip.cpp3
-rw-r--r--src/devices/cpu/esrip/esrip.h12
-rw-r--r--src/devices/cpu/g65816/g65816.cpp25
-rw-r--r--src/devices/cpu/i386/athlon.cpp2
-rw-r--r--src/devices/cpu/i8085/i8085.cpp3
-rw-r--r--src/devices/cpu/i8085/i8085.h10
-rw-r--r--src/devices/cpu/i86/i186.cpp4
-rw-r--r--src/devices/cpu/lc8670/lc8670.cpp3
-rw-r--r--src/devices/cpu/lc8670/lc8670.h13
-rw-r--r--src/devices/cpu/m6502/xavix.cpp20
-rw-r--r--src/devices/cpu/m6502/xavix.h17
-rw-r--r--src/devices/cpu/m68000/m68000.h8
-rw-r--r--src/devices/cpu/m68000/m68kcpu.cpp50
-rw-r--r--src/devices/cpu/m6805/m68705.cpp4
-rw-r--r--src/devices/cpu/mcs40/mcs40.cpp4
-rw-r--r--src/devices/cpu/mcs40/mcs40.h2
-rw-r--r--src/devices/cpu/mcs48/mcs48.cpp4
-rw-r--r--src/devices/cpu/mcs48/mcs48.h11
-rw-r--r--src/devices/cpu/mcs96/i8x9x.cpp2
-rw-r--r--src/devices/cpu/mcs96/i8xc196.cpp2
-rw-r--r--src/devices/cpu/nec/v5x.cpp64
-rw-r--r--src/devices/cpu/powerpc/ppc.h6
-rw-r--r--src/devices/cpu/powerpc/ppccom.cpp10
-rw-r--r--src/devices/cpu/psx/psx.cpp16
-rw-r--r--src/devices/cpu/sh/sh2.cpp9
-rw-r--r--src/devices/cpu/sh/sh2.h21
-rw-r--r--src/devices/cpu/tms32082/tms32082.cpp7
-rw-r--r--src/devices/cpu/tms32082/tms32082.h3
-rw-r--r--src/devices/cpu/tms34010/tms34010.cpp12
-rw-r--r--src/devices/cpu/tms34010/tms34010.h70
-rw-r--r--src/devices/imagedev/diablo.cpp7
-rw-r--r--src/devices/imagedev/harddriv.cpp7
-rw-r--r--src/devices/imagedev/harddriv.h4
-rw-r--r--src/devices/imagedev/snapquik.cpp3
-rw-r--r--src/devices/imagedev/snapquik.h2
-rw-r--r--src/devices/machine/53c810.cpp9
-rw-r--r--src/devices/machine/53c810.h14
-rw-r--r--src/devices/machine/68307.cpp21
-rw-r--r--src/devices/machine/68340.cpp35
-rw-r--r--src/devices/machine/acorn_vidc.cpp2
-rw-r--r--src/devices/machine/adc083x.cpp13
-rw-r--r--src/devices/machine/adc083x.h10
-rw-r--r--src/devices/machine/adc1038.cpp3
-rw-r--r--src/devices/machine/adc1038.h11
-rw-r--r--src/devices/machine/adc1213x.cpp3
-rw-r--r--src/devices/machine/adc1213x.h10
-rw-r--r--src/devices/machine/cs4031.cpp26
-rw-r--r--src/devices/machine/dmac.cpp8
-rw-r--r--src/devices/machine/f3853.cpp3
-rw-r--r--src/devices/machine/f3853.h2
-rw-r--r--src/devices/machine/fdc37c93x.cpp4
-rw-r--r--src/devices/machine/gt64xxx.cpp28
-rw-r--r--src/devices/machine/i82357.cpp36
-rw-r--r--src/devices/machine/i82371sb.cpp4
-rw-r--r--src/devices/machine/keyboard.cpp4
-rw-r--r--src/devices/machine/keyboard.h13
-rw-r--r--src/devices/machine/laserdsc.cpp9
-rw-r--r--src/devices/machine/laserdsc.h23
-rw-r--r--src/devices/machine/lpci.cpp16
-rw-r--r--src/devices/machine/lpci.h20
-rw-r--r--src/devices/machine/mc6854.cpp7
-rw-r--r--src/devices/machine/mc6854.h13
-rw-r--r--src/devices/machine/microtch.cpp2
-rw-r--r--src/devices/machine/microtch.h10
-rw-r--r--src/devices/machine/msm6253.cpp15
-rw-r--r--src/devices/machine/msm6253.h12
-rw-r--r--src/devices/machine/myb3k_kbd.cpp5
-rw-r--r--src/devices/machine/myb3k_kbd.h13
-rw-r--r--src/devices/machine/netlist.cpp24
-rw-r--r--src/devices/machine/netlist.h16
-rw-r--r--src/devices/machine/nvram.cpp3
-rw-r--r--src/devices/machine/nvram.h12
-rw-r--r--src/devices/machine/pci.cpp12
-rw-r--r--src/devices/machine/s3c2400.cpp46
-rw-r--r--src/devices/machine/s3c2410.cpp50
-rw-r--r--src/devices/machine/s3c2440.cpp54
-rw-r--r--src/devices/machine/tc009xlvc.cpp10
-rw-r--r--src/devices/machine/terminal.cpp4
-rw-r--r--src/devices/machine/terminal.h13
-rw-r--r--src/devices/machine/timer.cpp26
-rw-r--r--src/devices/machine/timer.h65
-rw-r--r--src/devices/machine/upd7002.cpp13
-rw-r--r--src/devices/machine/upd7002.h4
-rw-r--r--src/devices/machine/vrc4373.cpp20
-rw-r--r--src/devices/machine/vrc5074.cpp16
-rw-r--r--src/devices/machine/wd7600.cpp72
-rw-r--r--src/devices/sound/bsmt2000.cpp4
-rw-r--r--src/devices/sound/bsmt2000.h10
-rw-r--r--src/devices/sound/cdp1864.cpp2
-rw-r--r--src/devices/sound/cdp1869.cpp9
-rw-r--r--src/devices/sound/cdp1869.h45
-rw-r--r--src/devices/sound/cem3394.cpp6
-rw-r--r--src/devices/sound/cem3394.h2
-rw-r--r--src/devices/sound/k054539.cpp3
-rw-r--r--src/devices/sound/k054539.h14
-rw-r--r--src/devices/sound/lc7535.cpp3
-rw-r--r--src/devices/sound/lc7535.h10
-rw-r--r--src/devices/sound/pokey.cpp22
-rw-r--r--src/devices/sound/pokey.h20
-rw-r--r--src/devices/sound/rf5c68.cpp3
-rw-r--r--src/devices/sound/rf5c68.h10
-rw-r--r--src/devices/sound/samples.cpp3
-rw-r--r--src/devices/sound/samples.h10
-rw-r--r--src/devices/video/315_5313.cpp9
-rw-r--r--src/devices/video/315_5313.h6
-rw-r--r--src/devices/video/cdp1861.cpp2
-rw-r--r--src/devices/video/clgd542x.cpp2
-rw-r--r--src/devices/video/crt9021.cpp3
-rw-r--r--src/devices/video/crt9021.h2
-rw-r--r--src/devices/video/crt9028.cpp2
-rw-r--r--src/devices/video/crtc_ega.cpp7
-rw-r--r--src/devices/video/crtc_ega.h6
-rw-r--r--src/devices/video/ef9369.cpp3
-rw-r--r--src/devices/video/ef9369.h12
-rw-r--r--src/devices/video/epic12.cpp14
-rw-r--r--src/devices/video/fixfreq.cpp2
-rw-r--r--src/devices/video/hd44780.cpp3
-rw-r--r--src/devices/video/hd44780.h13
-rw-r--r--src/devices/video/hd63484.cpp7
-rw-r--r--src/devices/video/hd63484.h2
-rw-r--r--src/devices/video/i82730.cpp3
-rw-r--r--src/devices/video/i82730.h7
-rw-r--r--src/devices/video/i8275.cpp3
-rw-r--r--src/devices/video/i8275.h15
-rw-r--r--src/devices/video/mc6845.cpp21
-rw-r--r--src/devices/video/mc6845.h10
-rw-r--r--src/devices/video/mc6847.cpp5
-rw-r--r--src/devices/video/mc6847.h11
-rw-r--r--src/devices/video/nt7534.cpp3
-rw-r--r--src/devices/video/nt7534.h2
-rw-r--r--src/devices/video/pc_vga.cpp3
-rw-r--r--src/devices/video/pc_vga.h4
-rw-r--r--src/devices/video/pcd8544.cpp5
-rw-r--r--src/devices/video/pcd8544.h2
-rw-r--r--src/devices/video/ppu2c0x.cpp12
-rw-r--r--src/devices/video/ppu2c0x.h10
-rw-r--r--src/devices/video/psx.cpp2
-rw-r--r--src/devices/video/scn2674.cpp12
-rw-r--r--src/devices/video/scn2674.h19
-rw-r--r--src/devices/video/sed1520.cpp4
-rw-r--r--src/devices/video/sed1520.h12
-rw-r--r--src/devices/video/tms9928a.cpp2
-rw-r--r--src/devices/video/tms9928a.h2
-rw-r--r--src/devices/video/upd3301.cpp3
-rw-r--r--src/devices/video/upd3301.h13
-rw-r--r--src/devices/video/upd7220.cpp6
-rw-r--r--src/devices/video/upd7220.h47
-rw-r--r--src/devices/video/v9938.cpp2
-rw-r--r--src/devices/video/virge_pci.cpp8
-rw-r--r--src/devices/video/voodoo_pci.cpp4
-rw-r--r--src/emu/addrmap.cpp186
-rw-r--r--src/emu/addrmap.h96
-rw-r--r--src/emu/devcb.h91
-rw-r--r--src/emu/devdelegate.cpp31
-rw-r--r--src/emu/devdelegate.h262
-rw-r--r--src/emu/device.cpp2
-rw-r--r--src/emu/device.h1
-rw-r--r--src/emu/device.ipp13
-rw-r--r--src/emu/didisasm.cpp4
-rw-r--r--src/emu/didisasm.h8
-rw-r--r--src/emu/diexec.cpp9
-rw-r--r--src/emu/diexec.h46
-rw-r--r--src/emu/emumem.cpp819
-rw-r--r--src/emu/emumem.h438
-rw-r--r--src/emu/emumem_hedp.h4
-rw-r--r--src/emu/emupal.cpp39
-rw-r--r--src/emu/emupal.h58
-rw-r--r--src/emu/ioport.cpp9
-rw-r--r--src/emu/ioport.h34
-rw-r--r--src/emu/screen.cpp6
-rw-r--r--src/emu/screen.h40
-rw-r--r--src/emu/tilemap.cpp122
-rw-r--r--src/emu/tilemap.h55
-rw-r--r--src/lib/util/delegate.h64
-rw-r--r--src/mame/audio/cage.cpp2
-rw-r--r--src/mame/audio/dcs.cpp11
-rw-r--r--src/mame/audio/jaguar.cpp2
-rw-r--r--src/mame/audio/leland.cpp4
-rw-r--r--src/mame/audio/lynx.cpp6
-rw-r--r--src/mame/audio/lynx.h2
-rw-r--r--src/mame/audio/midway.cpp58
-rw-r--r--src/mame/audio/midway.h17
-rw-r--r--src/mame/audio/segasnd.cpp5
-rw-r--r--src/mame/audio/sente6vb.cpp14
-rw-r--r--src/mame/drivers/1943.cpp8
-rw-r--r--src/mame/drivers/1945kiii.cpp2
-rw-r--r--src/mame/drivers/39in1.cpp2
-rw-r--r--src/mame/drivers/3x3puzzl.cpp6
-rw-r--r--src/mame/drivers/4dpi.cpp122
-rw-r--r--src/mame/drivers/4enlinea.cpp4
-rw-r--r--src/mame/drivers/5clown.cpp2
-rw-r--r--src/mame/drivers/88games.cpp6
-rw-r--r--src/mame/drivers/a2600.cpp38
-rw-r--r--src/mame/drivers/a7800.cpp105
-rw-r--r--src/mame/drivers/aa310.cpp2
-rw-r--r--src/mame/drivers/abc1600.cpp6
-rw-r--r--src/mame/drivers/abc80.cpp2
-rw-r--r--src/mame/drivers/abc80x.cpp2
-rw-r--r--src/mame/drivers/aci_ggm.cpp2
-rw-r--r--src/mame/drivers/adm23.cpp4
-rw-r--r--src/mame/drivers/aerofgt.cpp28
-rw-r--r--src/mame/drivers/aim65.cpp14
-rw-r--r--src/mame/drivers/airbustr.cpp2
-rw-r--r--src/mame/drivers/ajax.cpp6
-rw-r--r--src/mame/drivers/akkaarrh.cpp8
-rw-r--r--src/mame/drivers/albazg.cpp2
-rw-r--r--src/mame/drivers/alcat7100.cpp2
-rw-r--r--src/mame/drivers/alesis.cpp2
-rw-r--r--src/mame/drivers/aliens.cpp4
-rw-r--r--src/mame/drivers/alpha68k.cpp8
-rw-r--r--src/mame/drivers/alpha68k_n.cpp4
-rw-r--r--src/mame/drivers/alphasma.cpp2
-rw-r--r--src/mame/drivers/alphatro.cpp4
-rw-r--r--src/mame/drivers/altair.cpp2
-rw-r--r--src/mame/drivers/altos5.cpp2
-rw-r--r--src/mame/drivers/ambush.cpp6
-rw-r--r--src/mame/drivers/amstrad.cpp6
-rw-r--r--src/mame/drivers/amusco.cpp7
-rw-r--r--src/mame/drivers/amust.cpp2
-rw-r--r--src/mame/drivers/apf.cpp4
-rw-r--r--src/mame/drivers/apollo.cpp10
-rw-r--r--src/mame/drivers/apple1.cpp2
-rw-r--r--src/mame/drivers/apple2.cpp3
-rw-r--r--src/mame/drivers/apple2e.cpp2
-rw-r--r--src/mame/drivers/applix.cpp4
-rw-r--r--src/mame/drivers/apricot.cpp2
-rw-r--r--src/mame/drivers/apricotp.cpp2
-rw-r--r--src/mame/drivers/aquarium.cpp2
-rw-r--r--src/mame/drivers/arcadia.cpp12
-rw-r--r--src/mame/drivers/argo.cpp2
-rw-r--r--src/mame/drivers/arkanoid.cpp14
-rw-r--r--src/mame/drivers/armedf.cpp16
-rw-r--r--src/mame/drivers/artmagic.cpp2
-rw-r--r--src/mame/drivers/asterix.cpp4
-rw-r--r--src/mame/drivers/asteroid.cpp2
-rw-r--r--src/mame/drivers/astrof.cpp16
-rw-r--r--src/mame/drivers/astrohome.cpp6
-rw-r--r--src/mame/drivers/asuka.cpp10
-rw-r--r--src/mame/drivers/atari400.cpp56
-rw-r--r--src/mame/drivers/atarig1.cpp2
-rw-r--r--src/mame/drivers/atarig42.cpp4
-rw-r--r--src/mame/drivers/atarigt.cpp2
-rw-r--r--src/mame/drivers/atarigx2.cpp10
-rw-r--r--src/mame/drivers/atarist.cpp6
-rw-r--r--src/mame/drivers/atarittl.cpp2
-rw-r--r--src/mame/drivers/atom.cpp8
-rw-r--r--src/mame/drivers/attache.cpp2
-rw-r--r--src/mame/drivers/aussiebyte.cpp6
-rw-r--r--src/mame/drivers/ave_arb.cpp2
-rw-r--r--src/mame/drivers/avigo.cpp2
-rw-r--r--src/mame/drivers/avt.cpp2
-rw-r--r--src/mame/drivers/babbage.cpp2
-rw-r--r--src/mame/drivers/backfire.cpp14
-rw-r--r--src/mame/drivers/balsente.cpp4
-rw-r--r--src/mame/drivers/banctec.cpp4
-rw-r--r--src/mame/drivers/battlnts.cpp4
-rw-r--r--src/mame/drivers/bbc.cpp24
-rw-r--r--src/mame/drivers/bbcbc.cpp10
-rw-r--r--src/mame/drivers/berzerk.cpp8
-rw-r--r--src/mame/drivers/bestleag.cpp6
-rw-r--r--src/mame/drivers/beta.cpp4
-rw-r--r--src/mame/drivers/bfm_sc2.cpp4
-rw-r--r--src/mame/drivers/bfm_sc4.cpp8
-rw-r--r--src/mame/drivers/bigbord2.cpp2
-rw-r--r--src/mame/drivers/binbug.cpp2
-rw-r--r--src/mame/drivers/bionicc.cpp8
-rw-r--r--src/mame/drivers/bishi.cpp4
-rw-r--r--src/mame/drivers/blackt96.cpp4
-rw-r--r--src/mame/drivers/bladestl.cpp4
-rw-r--r--src/mame/drivers/blitz68k.cpp14
-rw-r--r--src/mame/drivers/blockade.cpp2
-rw-r--r--src/mame/drivers/blockhl.cpp4
-rw-r--r--src/mame/drivers/bloodbro.cpp2
-rw-r--r--src/mame/drivers/bmcpokr.cpp4
-rw-r--r--src/mame/drivers/bml3.cpp67
-rw-r--r--src/mame/drivers/bnstars.cpp16
-rw-r--r--src/mame/drivers/boogwing.cpp6
-rw-r--r--src/mame/drivers/bottom9.cpp6
-rw-r--r--src/mame/drivers/btime.cpp2
-rw-r--r--src/mame/drivers/bw12.cpp4
-rw-r--r--src/mame/drivers/bzone.cpp4
-rw-r--r--src/mame/drivers/c128.cpp4
-rw-r--r--src/mame/drivers/c2color.cpp2
-rw-r--r--src/mame/drivers/c64.cpp6
-rw-r--r--src/mame/drivers/cabaret.cpp4
-rw-r--r--src/mame/drivers/calchase.cpp14
-rw-r--r--src/mame/drivers/calcune.cpp4
-rw-r--r--src/mame/drivers/calorie.cpp4
-rw-r--r--src/mame/drivers/camplynx.cpp4
-rw-r--r--src/mame/drivers/cardline.cpp4
-rw-r--r--src/mame/drivers/carjmbre.cpp2
-rw-r--r--src/mame/drivers/casloopy.cpp2
-rw-r--r--src/mame/drivers/caswin.cpp2
-rw-r--r--src/mame/drivers/cat.cpp2
-rw-r--r--src/mame/drivers/cave.cpp2
-rw-r--r--src/mame/drivers/cb2001.cpp6
-rw-r--r--src/mame/drivers/cball.cpp2
-rw-r--r--src/mame/drivers/cbm2.cpp8
-rw-r--r--src/mame/drivers/cbuster.cpp10
-rw-r--r--src/mame/drivers/cc40.cpp4
-rw-r--r--src/mame/drivers/cd2650.cpp2
-rw-r--r--src/mame/drivers/cgc7900.cpp2
-rw-r--r--src/mame/drivers/cgenie.cpp10
-rw-r--r--src/mame/drivers/cham24.cpp2
-rw-r--r--src/mame/drivers/chanbara.cpp4
-rw-r--r--src/mame/drivers/chance32.cpp4
-rw-r--r--src/mame/drivers/channelf.cpp10
-rw-r--r--src/mame/drivers/chinagat.cpp4
-rw-r--r--src/mame/drivers/chinsan.cpp2
-rw-r--r--src/mame/drivers/chqflag.cpp6
-rw-r--r--src/mame/drivers/cinemat.cpp8
-rw-r--r--src/mame/drivers/cischeat.cpp4
-rw-r--r--src/mame/drivers/clickstart.cpp2
-rw-r--r--src/mame/drivers/clpoker.cpp4
-rw-r--r--src/mame/drivers/cmi.cpp63
-rw-r--r--src/mame/drivers/cninja.cpp40
-rw-r--r--src/mame/drivers/cntsteer.cpp8
-rw-r--r--src/mame/drivers/cobra.cpp11
-rw-r--r--src/mame/drivers/coinmstr.cpp2
-rw-r--r--src/mame/drivers/coleco.cpp2
-rw-r--r--src/mame/drivers/combatsc.cpp4
-rw-r--r--src/mame/drivers/comx35.cpp2
-rw-r--r--src/mame/drivers/coolridr.cpp4
-rw-r--r--src/mame/drivers/cosmic.cpp8
-rw-r--r--src/mame/drivers/cosmicos.cpp2
-rw-r--r--src/mame/drivers/cp1.cpp2
-rw-r--r--src/mame/drivers/cps1.cpp34
-rw-r--r--src/mame/drivers/cps2.cpp8
-rw-r--r--src/mame/drivers/cps3.cpp8
-rw-r--r--src/mame/drivers/crgolf.cpp2
-rw-r--r--src/mame/drivers/crimfght.cpp4
-rw-r--r--src/mame/drivers/crshrace.cpp2
-rw-r--r--src/mame/drivers/crvision.cpp4
-rw-r--r--src/mame/drivers/csplayh5.cpp6
-rw-r--r--src/mame/drivers/cswat.cpp6
-rw-r--r--src/mame/drivers/cultures.cpp10
-rw-r--r--src/mame/drivers/cv1k.cpp2
-rw-r--r--src/mame/drivers/cvs.cpp6
-rw-r--r--src/mame/drivers/cybertnk.cpp6
-rw-r--r--src/mame/drivers/cybiko.cpp4
-rw-r--r--src/mame/drivers/cz101.cpp2
-rw-r--r--src/mame/drivers/d6800.cpp2
-rw-r--r--src/mame/drivers/d6809.cpp2
-rw-r--r--src/mame/drivers/d9final.cpp2
-rw-r--r--src/mame/drivers/dacholer.cpp6
-rw-r--r--src/mame/drivers/dassault.cpp8
-rw-r--r--src/mame/drivers/dblewing.cpp6
-rw-r--r--src/mame/drivers/dbz.cpp6
-rw-r--r--src/mame/drivers/dccons.cpp4
-rw-r--r--src/mame/drivers/ddayjlc.cpp4
-rw-r--r--src/mame/drivers/ddealer.cpp4
-rw-r--r--src/mame/drivers/ddenlovr.cpp2
-rw-r--r--src/mame/drivers/deadang.cpp4
-rw-r--r--src/mame/drivers/dec0.cpp20
-rw-r--r--src/mame/drivers/dec8.cpp6
-rw-r--r--src/mame/drivers/deco156.cpp12
-rw-r--r--src/mame/drivers/deco32.cpp50
-rw-r--r--src/mame/drivers/deco_mlc.cpp2
-rw-r--r--src/mame/drivers/decocass.cpp8
-rw-r--r--src/mame/drivers/dectalk.cpp2
-rw-r--r--src/mame/drivers/dgn_beta.cpp2
-rw-r--r--src/mame/drivers/dietgo.cpp4
-rw-r--r--src/mame/drivers/dim68k.cpp2
-rw-r--r--src/mame/drivers/divebomb.cpp4
-rw-r--r--src/mame/drivers/djmain.cpp2
-rw-r--r--src/mame/drivers/dkong.cpp18
-rw-r--r--src/mame/drivers/dm7000.cpp4
-rw-r--r--src/mame/drivers/dmndrby.cpp2
-rw-r--r--src/mame/drivers/dmv.cpp2
-rw-r--r--src/mame/drivers/dooyong.cpp22
-rw-r--r--src/mame/drivers/dpb7000.cpp4
-rw-r--r--src/mame/drivers/dragon.cpp2
-rw-r--r--src/mame/drivers/dreambal.cpp4
-rw-r--r--src/mame/drivers/dreamwld.cpp10
-rw-r--r--src/mame/drivers/drtomy.cpp4
-rw-r--r--src/mame/drivers/drw80pkr.cpp2
-rw-r--r--src/mame/drivers/duet16.cpp2
-rw-r--r--src/mame/drivers/dunhuang.cpp4
-rw-r--r--src/mame/drivers/dynadice.cpp4
-rw-r--r--src/mame/drivers/dynax.cpp2
-rw-r--r--src/mame/drivers/ec65.cpp2
-rw-r--r--src/mame/drivers/ecoinfr.cpp3
-rw-r--r--src/mame/drivers/efdt.cpp4
-rw-r--r--src/mame/drivers/egghunt.cpp2
-rw-r--r--src/mame/drivers/eispc.cpp74
-rw-r--r--src/mame/drivers/elf.cpp4
-rw-r--r--src/mame/drivers/ep64.cpp2
-rw-r--r--src/mame/drivers/equites.cpp6
-rw-r--r--src/mame/drivers/esd16.cpp2
-rw-r--r--src/mame/drivers/esprit.cpp6
-rw-r--r--src/mame/drivers/eti660.cpp2
-rw-r--r--src/mame/drivers/ettrivia.cpp4
-rw-r--r--src/mame/drivers/excali64.cpp2
-rw-r--r--src/mame/drivers/exidy440.cpp10
-rw-r--r--src/mame/drivers/expro02.cpp2
-rw-r--r--src/mame/drivers/exprraid.cpp4
-rw-r--r--src/mame/drivers/f1gp.cpp7
-rw-r--r--src/mame/drivers/facit4440.cpp2
-rw-r--r--src/mame/drivers/falcots.cpp4
-rw-r--r--src/mame/drivers/famibox.cpp2
-rw-r--r--src/mame/drivers/fanucspmg.cpp4
-rw-r--r--src/mame/drivers/fastfred.cpp12
-rw-r--r--src/mame/drivers/fb01.cpp2
-rw-r--r--src/mame/drivers/fc100.cpp2
-rw-r--r--src/mame/drivers/fccpu30.cpp2
-rw-r--r--src/mame/drivers/fcrash.cpp12
-rw-r--r--src/mame/drivers/fidel_as12.cpp2
-rw-r--r--src/mame/drivers/fidel_cc1.cpp2
-rw-r--r--src/mame/drivers/fidel_eag68k.cpp2
-rw-r--r--src/mame/drivers/fidel_elite.cpp2
-rw-r--r--src/mame/drivers/fidel_sc12.cpp2
-rw-r--r--src/mame/drivers/fidel_sc6.cpp2
-rw-r--r--src/mame/drivers/fidel_sc9.cpp2
-rw-r--r--src/mame/drivers/fireball.cpp2
-rw-r--r--src/mame/drivers/firebeat.cpp16
-rw-r--r--src/mame/drivers/firefox.cpp2
-rw-r--r--src/mame/drivers/fitfight.cpp6
-rw-r--r--src/mame/drivers/flipjack.cpp2
-rw-r--r--src/mame/drivers/flower.cpp4
-rw-r--r--src/mame/drivers/flyball.cpp2
-rw-r--r--src/mame/drivers/fm7.cpp30
-rw-r--r--src/mame/drivers/force68k.cpp6
-rw-r--r--src/mame/drivers/fp1100.cpp4
-rw-r--r--src/mame/drivers/freeway.cpp2
-rw-r--r--src/mame/drivers/fresh.cpp4
-rw-r--r--src/mame/drivers/fs3216.cpp4
-rw-r--r--src/mame/drivers/funkball.cpp6
-rw-r--r--src/mame/drivers/funtech.cpp8
-rw-r--r--src/mame/drivers/fuukifg2.cpp2
-rw-r--r--src/mame/drivers/fuukifg3.cpp12
-rw-r--r--src/mame/drivers/gaelco.cpp6
-rw-r--r--src/mame/drivers/gaelco3d.cpp8
-rw-r--r--src/mame/drivers/galaga.cpp4
-rw-r--r--src/mame/drivers/galaxi.cpp10
-rw-r--r--src/mame/drivers/galaxian.cpp46
-rw-r--r--src/mame/drivers/galaxy.cpp4
-rw-r--r--src/mame/drivers/galivan.cpp10
-rw-r--r--src/mame/drivers/gamecom.cpp4
-rw-r--r--src/mame/drivers/gamecstl.cpp6
-rw-r--r--src/mame/drivers/gameking.cpp2
-rw-r--r--src/mame/drivers/gba.cpp34
-rw-r--r--src/mame/drivers/gcpinbal.cpp2
-rw-r--r--src/mame/drivers/geniusiq.cpp4
-rw-r--r--src/mame/drivers/ghosteo.cpp2
-rw-r--r--src/mame/drivers/giclassic.cpp6
-rw-r--r--src/mame/drivers/gijoe.cpp4
-rw-r--r--src/mame/drivers/gluck2.cpp2
-rw-r--r--src/mame/drivers/gmaster.cpp2
-rw-r--r--src/mame/drivers/goldngam.cpp4
-rw-r--r--src/mame/drivers/goldnpkr.cpp6
-rw-r--r--src/mame/drivers/goldstar.cpp40
-rw-r--r--src/mame/drivers/good.cpp4
-rw-r--r--src/mame/drivers/goodejan.cpp18
-rw-r--r--src/mame/drivers/gottlieb.cpp16
-rw-r--r--src/mame/drivers/goupil.cpp4
-rw-r--r--src/mame/drivers/gradius3.cpp4
-rw-r--r--src/mame/drivers/gridlee.cpp2
-rw-r--r--src/mame/drivers/groundfx.cpp2
-rw-r--r--src/mame/drivers/gstream.cpp6
-rw-r--r--src/mame/drivers/gstriker.cpp8
-rw-r--r--src/mame/drivers/gsword.cpp4
-rw-r--r--src/mame/drivers/gts3a.cpp2
-rw-r--r--src/mame/drivers/gunbustr.cpp2
-rw-r--r--src/mame/drivers/h19.cpp2
-rw-r--r--src/mame/drivers/h89.cpp6
-rw-r--r--src/mame/drivers/harddriv.cpp238
-rw-r--r--src/mame/drivers/hazeltin.cpp6
-rw-r--r--src/mame/drivers/headonb.cpp2
-rw-r--r--src/mame/drivers/hektor.cpp6
-rw-r--r--src/mame/drivers/hh_tms1k.cpp4
-rw-r--r--src/mame/drivers/hitme.cpp4
-rw-r--r--src/mame/drivers/hnayayoi.cpp4
-rw-r--r--src/mame/drivers/homelab.cpp6
-rw-r--r--src/mame/drivers/hornet.cpp6
-rw-r--r--src/mame/drivers/hotstuff.cpp55
-rw-r--r--src/mame/drivers/hp16500.cpp6
-rw-r--r--src/mame/drivers/hp64k.cpp2
-rw-r--r--src/mame/drivers/hp700.cpp10
-rw-r--r--src/mame/drivers/hp9825.cpp12
-rw-r--r--src/mame/drivers/hp9845.cpp4
-rw-r--r--src/mame/drivers/hp9k_3xx.cpp2
-rw-r--r--src/mame/drivers/hprot1.cpp2
-rw-r--r--src/mame/drivers/hunter16.cpp2
-rw-r--r--src/mame/drivers/hvyunit.cpp6
-rw-r--r--src/mame/drivers/hx20.cpp2
-rw-r--r--src/mame/drivers/hyprduel.cpp8
-rw-r--r--src/mame/drivers/i7000.cpp8
-rw-r--r--src/mame/drivers/ibmpcjr.cpp4
-rw-r--r--src/mame/drivers/icatel.cpp2
-rw-r--r--src/mame/drivers/icebox.cpp8
-rw-r--r--src/mame/drivers/icecold.cpp4
-rw-r--r--src/mame/drivers/igs009.cpp20
-rw-r--r--src/mame/drivers/igs011.cpp12
-rw-r--r--src/mame/drivers/igs017.cpp34
-rw-r--r--src/mame/drivers/igspoker.cpp6
-rw-r--r--src/mame/drivers/instruct.cpp2
-rw-r--r--src/mame/drivers/intellec4.cpp4
-rw-r--r--src/mame/drivers/intellect02.cpp2
-rw-r--r--src/mame/drivers/interpro.cpp10
-rw-r--r--src/mame/drivers/inufuku.cpp2
-rw-r--r--src/mame/drivers/ipds.cpp2
-rw-r--r--src/mame/drivers/iqblock.cpp4
-rw-r--r--src/mame/drivers/is48x.cpp2
-rw-r--r--src/mame/drivers/istrebiteli.cpp4
-rw-r--r--src/mame/drivers/itech32.cpp42
-rw-r--r--src/mame/drivers/itech8.cpp2
-rw-r--r--src/mame/drivers/itt1700.cpp2
-rw-r--r--src/mame/drivers/jackie.cpp8
-rw-r--r--src/mame/drivers/jaguar.cpp34
-rw-r--r--src/mame/drivers/jalmah.cpp26
-rw-r--r--src/mame/drivers/jangou.cpp2
-rw-r--r--src/mame/drivers/jazz.cpp42
-rw-r--r--src/mame/drivers/jchan.cpp4
-rw-r--r--src/mame/drivers/jclub2.cpp4
-rw-r--r--src/mame/drivers/jensen.cpp58
-rw-r--r--src/mame/drivers/jokrwild.cpp2
-rw-r--r--src/mame/drivers/jollyjgr.cpp2
-rw-r--r--src/mame/drivers/joystand.cpp4
-rw-r--r--src/mame/drivers/jr100.cpp2
-rw-r--r--src/mame/drivers/jtc.cpp2
-rw-r--r--src/mame/drivers/jubilee.cpp2
-rw-r--r--src/mame/drivers/juicebox.cpp34
-rw-r--r--src/mame/drivers/jupace.cpp2
-rw-r--r--src/mame/drivers/k28.cpp2
-rw-r--r--src/mame/drivers/kangaroo.cpp2
-rw-r--r--src/mame/drivers/karnov.cpp4
-rw-r--r--src/mame/drivers/kaypro.cpp6
-rw-r--r--src/mame/drivers/kc.cpp4
-rw-r--r--src/mame/drivers/kdt6.cpp6
-rw-r--r--src/mame/drivers/kenseim.cpp2
-rw-r--r--src/mame/drivers/kickgoal.cpp10
-rw-r--r--src/mame/drivers/kingdrby.cpp6
-rw-r--r--src/mame/drivers/koftball.cpp11
-rw-r--r--src/mame/drivers/koikoi.cpp2
-rw-r--r--src/mame/drivers/konamigx.cpp22
-rw-r--r--src/mame/drivers/konamim2.cpp8
-rw-r--r--src/mame/drivers/konin.cpp14
-rw-r--r--src/mame/drivers/konmedal.cpp8
-rw-r--r--src/mame/drivers/konmedal68k.cpp2
-rw-r--r--src/mame/drivers/ksys573.cpp2
-rw-r--r--src/mame/drivers/laserbas.cpp2
-rw-r--r--src/mame/drivers/lbeach.cpp4
-rw-r--r--src/mame/drivers/ldplayer.cpp4
-rw-r--r--src/mame/drivers/leapfrog_leappad.cpp4
-rw-r--r--src/mame/drivers/leapster.cpp2
-rw-r--r--src/mame/drivers/legionna.cpp48
-rw-r--r--src/mame/drivers/leland.cpp54
-rw-r--r--src/mame/drivers/lethal.cpp4
-rw-r--r--src/mame/drivers/lethalj.cpp6
-rw-r--r--src/mame/drivers/liberate.cpp6
-rw-r--r--src/mame/drivers/limenko.cpp14
-rw-r--r--src/mame/drivers/lola8a.cpp2
-rw-r--r--src/mame/drivers/looping.cpp4
-rw-r--r--src/mame/drivers/ltcasino.cpp4
-rw-r--r--src/mame/drivers/luckgrln.cpp8
-rw-r--r--src/mame/drivers/lviv.cpp2
-rw-r--r--src/mame/drivers/lwings.cpp4
-rw-r--r--src/mame/drivers/lynx.cpp8
-rw-r--r--src/mame/drivers/m14.cpp2
-rw-r--r--src/mame/drivers/m20.cpp2
-rw-r--r--src/mame/drivers/m3.cpp2
-rw-r--r--src/mame/drivers/m5.cpp16
-rw-r--r--src/mame/drivers/m63.cpp4
-rw-r--r--src/mame/drivers/m68705prg.cpp4
-rw-r--r--src/mame/drivers/m72.cpp16
-rw-r--r--src/mame/drivers/m90.cpp2
-rw-r--r--src/mame/drivers/macrossp.cpp4
-rw-r--r--src/mame/drivers/macs.cpp2
-rw-r--r--src/mame/drivers/magic10.cpp6
-rw-r--r--src/mame/drivers/magicfly.cpp4
-rw-r--r--src/mame/drivers/magictg.cpp12
-rw-r--r--src/mame/drivers/mainevt.cpp8
-rw-r--r--src/mame/drivers/majorpkr.cpp4
-rw-r--r--src/mame/drivers/mappy.cpp4
-rw-r--r--src/mame/drivers/marinedt.cpp2
-rw-r--r--src/mame/drivers/mastboyo.cpp2
-rw-r--r--src/mame/drivers/maygay1b.cpp2
-rw-r--r--src/mame/drivers/maygayv1.cpp2
-rw-r--r--src/mame/drivers/mbc200.cpp2
-rw-r--r--src/mame/drivers/mbc55x.cpp2
-rw-r--r--src/mame/drivers/mbee.cpp16
-rw-r--r--src/mame/drivers/mcatadv.cpp4
-rw-r--r--src/mame/drivers/mcr.cpp48
-rw-r--r--src/mame/drivers/mcr3.cpp46
-rw-r--r--src/mame/drivers/mcr68.cpp20
-rw-r--r--src/mame/drivers/mediagx.cpp66
-rw-r--r--src/mame/drivers/megadriv.cpp48
-rw-r--r--src/mame/drivers/megadriv_acbl.cpp30
-rw-r--r--src/mame/drivers/megadriv_rad.cpp4
-rw-r--r--src/mame/drivers/megaplay.cpp8
-rw-r--r--src/mame/drivers/megasys1.cpp28
-rw-r--r--src/mame/drivers/megatech.cpp36
-rw-r--r--src/mame/drivers/mekd2.cpp2
-rw-r--r--src/mame/drivers/mekd3.cpp2
-rw-r--r--src/mame/drivers/mekd4.cpp2
-rw-r--r--src/mame/drivers/merit.cpp4
-rw-r--r--src/mame/drivers/meritm.cpp6
-rw-r--r--src/mame/drivers/meritum.cpp2
-rw-r--r--src/mame/drivers/metro.cpp6
-rw-r--r--src/mame/drivers/mgames.cpp2
-rw-r--r--src/mame/drivers/mgavegas.cpp6
-rw-r--r--src/mame/drivers/mgolf.cpp2
-rw-r--r--src/mame/drivers/micro20.cpp7
-rw-r--r--src/mame/drivers/micro3d.cpp2
-rw-r--r--src/mame/drivers/microtan.cpp4
-rw-r--r--src/mame/drivers/microvsn.cpp2
-rw-r--r--src/mame/drivers/midqslvr.cpp6
-rw-r--r--src/mame/drivers/midvunit.cpp34
-rw-r--r--src/mame/drivers/midzeus.cpp10
-rw-r--r--src/mame/drivers/mikrosha.cpp4
-rw-r--r--src/mame/drivers/mil4000.cpp8
-rw-r--r--src/mame/drivers/mindset.cpp4
-rw-r--r--src/mame/drivers/miniboy7.cpp2
-rw-r--r--src/mame/drivers/mips.cpp65
-rw-r--r--src/mame/drivers/mirage.cpp4
-rw-r--r--src/mame/drivers/mjsenpu.cpp16
-rw-r--r--src/mame/drivers/ml20.cpp2
-rw-r--r--src/mame/drivers/mmm.cpp8
-rw-r--r--src/mame/drivers/model3.cpp86
-rw-r--r--src/mame/drivers/mogura.cpp2
-rw-r--r--src/mame/drivers/mole.cpp2
-rw-r--r--src/mame/drivers/monon_color.cpp2
-rw-r--r--src/mame/drivers/moo.cpp8
-rw-r--r--src/mame/drivers/mpu12wbk.cpp2
-rw-r--r--src/mame/drivers/mpu3.cpp5
-rw-r--r--src/mame/drivers/mpu4vid.cpp2
-rw-r--r--src/mame/drivers/mtx.cpp8
-rw-r--r--src/mame/drivers/multfish.cpp4
-rw-r--r--src/mame/drivers/multi16.cpp2
-rw-r--r--src/mame/drivers/multi8.cpp2
-rw-r--r--src/mame/drivers/multigam.cpp24
-rw-r--r--src/mame/drivers/munchmo.cpp2
-rw-r--r--src/mame/drivers/mx2178.cpp2
-rw-r--r--src/mame/drivers/myb3k.cpp2
-rw-r--r--src/mame/drivers/mycom.cpp2
-rw-r--r--src/mame/drivers/mystwarr.cpp24
-rw-r--r--src/mame/drivers/myvision.cpp4
-rw-r--r--src/mame/drivers/n64.cpp8
-rw-r--r--src/mame/drivers/namcona1.cpp6
-rw-r--r--src/mame/drivers/namcos11.cpp2
-rw-r--r--src/mame/drivers/namcos22.cpp6
-rw-r--r--src/mame/drivers/namcos23.cpp2
-rw-r--r--src/mame/drivers/naomi.cpp2
-rw-r--r--src/mame/drivers/nascom1.cpp8
-rw-r--r--src/mame/drivers/naughtyb.cpp8
-rw-r--r--src/mame/drivers/nc.cpp4
-rw-r--r--src/mame/drivers/neogeo.cpp208
-rw-r--r--src/mame/drivers/neogeocd.cpp6
-rw-r--r--src/mame/drivers/neopcb.cpp2
-rw-r--r--src/mame/drivers/nes.cpp26
-rw-r--r--src/mame/drivers/nes_vt.cpp12
-rw-r--r--src/mame/drivers/ngen.cpp10
-rw-r--r--src/mame/drivers/ngp.cpp8
-rw-r--r--src/mame/drivers/nibble.cpp2
-rw-r--r--src/mame/drivers/nightgal.cpp4
-rw-r--r--src/mame/drivers/ninjakd2.cpp2
-rw-r--r--src/mame/drivers/nmg5.cpp4
-rw-r--r--src/mame/drivers/nmk16.cpp62
-rw-r--r--src/mame/drivers/nokia_3310.cpp2
-rw-r--r--src/mame/drivers/novag_diablo.cpp2
-rw-r--r--src/mame/drivers/novag_sexpert.cpp2
-rw-r--r--src/mame/drivers/nsmpoker.cpp2
-rw-r--r--src/mame/drivers/nyny.cpp4
-rw-r--r--src/mame/drivers/offtwall.cpp12
-rw-r--r--src/mame/drivers/olibochu.cpp2
-rw-r--r--src/mame/drivers/olyboss.cpp2
-rw-r--r--src/mame/drivers/onetwo.cpp2
-rw-r--r--src/mame/drivers/onyx.cpp20
-rw-r--r--src/mame/drivers/opwolf.cpp4
-rw-r--r--src/mame/drivers/osborne1.cpp4
-rw-r--r--src/mame/drivers/othello.cpp2
-rw-r--r--src/mame/drivers/overdriv.cpp6
-rw-r--r--src/mame/drivers/pacman.cpp12
-rw-r--r--src/mame/drivers/palestra.cpp2
-rw-r--r--src/mame/drivers/panicr.cpp6
-rw-r--r--src/mame/drivers/paradise.cpp4
-rw-r--r--src/mame/drivers/parodius.cpp4
-rw-r--r--src/mame/drivers/partner.cpp2
-rw-r--r--src/mame/drivers/pasha2.cpp2
-rw-r--r--src/mame/drivers/pasopia.cpp2
-rw-r--r--src/mame/drivers/patapata.cpp8
-rw-r--r--src/mame/drivers/patinho_feio.cpp2
-rw-r--r--src/mame/drivers/pbaction.cpp8
-rw-r--r--src/mame/drivers/pc100.cpp5
-rw-r--r--src/mame/drivers/pc2000.cpp2
-rw-r--r--src/mame/drivers/pc6001.cpp2
-rw-r--r--src/mame/drivers/pc8001.cpp4
-rw-r--r--src/mame/drivers/pc9801.cpp4
-rw-r--r--src/mame/drivers/pcw.cpp4
-rw-r--r--src/mame/drivers/pcxt.cpp2
-rw-r--r--src/mame/drivers/pegasus.cpp20
-rw-r--r--src/mame/drivers/pencil2.cpp2
-rw-r--r--src/mame/drivers/pentagon.cpp4
-rw-r--r--src/mame/drivers/peoplepc.cpp2
-rw-r--r--src/mame/drivers/peplus.cpp4
-rw-r--r--src/mame/drivers/pet.cpp16
-rw-r--r--src/mame/drivers/pg685.cpp6
-rw-r--r--src/mame/drivers/pgm2.cpp14
-rw-r--r--src/mame/drivers/photoply.cpp7
-rw-r--r--src/mame/drivers/phunsy.cpp2
-rw-r--r--src/mame/drivers/piggypas.cpp6
-rw-r--r--src/mame/drivers/pinball2k.cpp3
-rw-r--r--src/mame/drivers/pingpong.cpp4
-rw-r--r--src/mame/drivers/pipbug.cpp2
-rw-r--r--src/mame/drivers/pipedrm.cpp2
-rw-r--r--src/mame/drivers/pipeline.cpp4
-rw-r--r--src/mame/drivers/pirates.cpp2
-rw-r--r--src/mame/drivers/piratesh.cpp6
-rw-r--r--src/mame/drivers/pkscram.cpp6
-rw-r--r--src/mame/drivers/pktgaldx.cpp4
-rw-r--r--src/mame/drivers/plus4.cpp2
-rw-r--r--src/mame/drivers/pockchal.cpp4
-rw-r--r--src/mame/drivers/pockstat.cpp2
-rw-r--r--src/mame/drivers/poisk1.cpp2
-rw-r--r--src/mame/drivers/pokemini.cpp2
-rw-r--r--src/mame/drivers/polepos.cpp2
-rw-r--r--src/mame/drivers/policetr.cpp2
-rw-r--r--src/mame/drivers/poly88.cpp2
-rw-r--r--src/mame/drivers/pong.cpp28
-rw-r--r--src/mame/drivers/popobear.cpp8
-rw-r--r--src/mame/drivers/popper.cpp4
-rw-r--r--src/mame/drivers/powerbal.cpp4
-rw-r--r--src/mame/drivers/powerins.cpp4
-rw-r--r--src/mame/drivers/ppmast93.cpp4
-rw-r--r--src/mame/drivers/prehisle.cpp12
-rw-r--r--src/mame/drivers/primo.cpp4
-rw-r--r--src/mame/drivers/psion.cpp4
-rw-r--r--src/mame/drivers/psx.cpp2
-rw-r--r--src/mame/drivers/pturn.cpp4
-rw-r--r--src/mame/drivers/pv1000.cpp4
-rw-r--r--src/mame/drivers/pv2000.cpp4
-rw-r--r--src/mame/drivers/pwrview.cpp2
-rw-r--r--src/mame/drivers/pyl601.cpp4
-rw-r--r--src/mame/drivers/pzletime.cpp4
-rw-r--r--src/mame/drivers/qdrmfgp.cpp4
-rw-r--r--src/mame/drivers/queen.cpp6
-rw-r--r--src/mame/drivers/quickpick5.cpp4
-rw-r--r--src/mame/drivers/quizpun2.cpp4
-rw-r--r--src/mame/drivers/quizshow.cpp2
-rw-r--r--src/mame/drivers/qvt102.cpp2
-rw-r--r--src/mame/drivers/qvt190.cpp2
-rw-r--r--src/mame/drivers/qx10.cpp2
-rw-r--r--src/mame/drivers/r2dtank.cpp2
-rw-r--r--src/mame/drivers/r2dx_v33.cpp6
-rw-r--r--src/mame/drivers/rabbit.cpp8
-rw-r--r--src/mame/drivers/radio86.cpp2
-rw-r--r--src/mame/drivers/raiden2.cpp18
-rw-r--r--src/mame/drivers/rainbow.cpp12
-rw-r--r--src/mame/drivers/rastan.cpp2
-rw-r--r--src/mame/drivers/rastersp.cpp4
-rw-r--r--src/mame/drivers/ravens.cpp4
-rw-r--r--src/mame/drivers/rbisland.cpp2
-rw-r--r--src/mame/drivers/rc702.cpp4
-rw-r--r--src/mame/drivers/rd100.cpp2
-rw-r--r--src/mame/drivers/rex6000.cpp4
-rw-r--r--src/mame/drivers/rmhaihai.cpp2
-rw-r--r--src/mame/drivers/rockrage.cpp4
-rw-r--r--src/mame/drivers/rohga.cpp40
-rw-r--r--src/mame/drivers/rollerg.cpp4
-rw-r--r--src/mame/drivers/rollext.cpp2
-rw-r--r--src/mame/drivers/ron.cpp2
-rw-r--r--src/mame/drivers/rt1715.cpp2
-rw-r--r--src/mame/drivers/rungun.cpp2
-rw-r--r--src/mame/drivers/rx78.cpp4
-rw-r--r--src/mame/drivers/rz1.cpp2
-rw-r--r--src/mame/drivers/safarir.cpp4
-rw-r--r--src/mame/drivers/sage2.cpp2
-rw-r--r--src/mame/drivers/saitek_corona.cpp2
-rw-r--r--src/mame/drivers/saitek_stratos.cpp2
-rw-r--r--src/mame/drivers/saitek_superstar.cpp2
-rw-r--r--src/mame/drivers/sangho.cpp2
-rw-r--r--src/mame/drivers/sanremo.cpp2
-rw-r--r--src/mame/drivers/sapi1.cpp2
-rw-r--r--src/mame/drivers/saturn.cpp62
-rw-r--r--src/mame/drivers/savquest.cpp9
-rw-r--r--src/mame/drivers/sbowling.cpp2
-rw-r--r--src/mame/drivers/sbrain.cpp2
-rw-r--r--src/mame/drivers/sbrkout.cpp2
-rw-r--r--src/mame/drivers/scopus.cpp2
-rw-r--r--src/mame/drivers/scorpion.cpp2
-rw-r--r--src/mame/drivers/seabattl.cpp2
-rw-r--r--src/mame/drivers/sega_beena.cpp2
-rw-r--r--src/mame/drivers/segac2.cpp61
-rw-r--r--src/mame/drivers/segag80r.cpp40
-rw-r--r--src/mame/drivers/segag80v.cpp58
-rw-r--r--src/mame/drivers/segaorun.cpp34
-rw-r--r--src/mame/drivers/segapico.cpp16
-rw-r--r--src/mame/drivers/segas16a.cpp18
-rw-r--r--src/mame/drivers/segas16b.cpp68
-rw-r--r--src/mame/drivers/segas18.cpp46
-rw-r--r--src/mame/drivers/segas24.cpp2
-rw-r--r--src/mame/drivers/segas32.cpp32
-rw-r--r--src/mame/drivers/segaxbd.cpp14
-rw-r--r--src/mame/drivers/seibuspi.cpp18
-rw-r--r--src/mame/drivers/seicupbl.cpp8
-rw-r--r--src/mame/drivers/sengokmj.cpp8
-rw-r--r--src/mame/drivers/seta.cpp118
-rw-r--r--src/mame/drivers/seta2.cpp2
-rw-r--r--src/mame/drivers/sfbonus.cpp10
-rw-r--r--src/mame/drivers/sg1000.cpp8
-rw-r--r--src/mame/drivers/silvmil.cpp4
-rw-r--r--src/mame/drivers/simpl156.cpp16
-rw-r--r--src/mame/drivers/simpsons.cpp4
-rw-r--r--src/mame/drivers/sk101bl.cpp2
-rw-r--r--src/mame/drivers/skyarmy.cpp2
-rw-r--r--src/mame/drivers/skylncr.cpp10
-rw-r--r--src/mame/drivers/slotcarn.cpp8
-rw-r--r--src/mame/drivers/sm1800.cpp2
-rw-r--r--src/mame/drivers/smc777.cpp2
-rw-r--r--src/mame/drivers/snes.cpp94
-rw-r--r--src/mame/drivers/snesb.cpp76
-rw-r--r--src/mame/drivers/snk68.cpp18
-rw-r--r--src/mame/drivers/snowbros.cpp8
-rw-r--r--src/mame/drivers/sorcerer.cpp4
-rw-r--r--src/mame/drivers/spartanxtec.cpp2
-rw-r--r--src/mame/drivers/spc1500.cpp4
-rw-r--r--src/mame/drivers/spdheat.cpp8
-rw-r--r--src/mame/drivers/spectrum.cpp4
-rw-r--r--src/mame/drivers/spiders.cpp2
-rw-r--r--src/mame/drivers/splash.cpp8
-rw-r--r--src/mame/drivers/spoker.cpp4
-rw-r--r--src/mame/drivers/spool99.cpp2
-rw-r--r--src/mame/drivers/sprint2.cpp4
-rw-r--r--src/mame/drivers/spy.cpp4
-rw-r--r--src/mame/drivers/spyhuntertec.cpp8
-rw-r--r--src/mame/drivers/squale.cpp2
-rw-r--r--src/mame/drivers/srmp2.cpp4
-rw-r--r--src/mame/drivers/ssem.cpp2
-rw-r--r--src/mame/drivers/sshangha.cpp4
-rw-r--r--src/mame/drivers/sshot.cpp2
-rw-r--r--src/mame/drivers/ssingles.cpp4
-rw-r--r--src/mame/drivers/stadhero.cpp2
-rw-r--r--src/mame/drivers/starfire.cpp8
-rw-r--r--src/mame/drivers/statriv2.cpp12
-rw-r--r--src/mame/drivers/storio.cpp2
-rw-r--r--src/mame/drivers/studio2.cpp12
-rw-r--r--src/mame/drivers/stuntair.cpp4
-rw-r--r--src/mame/drivers/stv.cpp40
-rw-r--r--src/mame/drivers/subsino.cpp16
-rw-r--r--src/mame/drivers/subsino2.cpp4
-rw-r--r--src/mame/drivers/supduck.cpp6
-rw-r--r--src/mame/drivers/super80.cpp6
-rw-r--r--src/mame/drivers/superchs.cpp4
-rw-r--r--src/mame/drivers/supercrd.cpp2
-rw-r--r--src/mame/drivers/superdq.cpp2
-rw-r--r--src/mame/drivers/superwng.cpp4
-rw-r--r--src/mame/drivers/supracan.cpp42
-rw-r--r--src/mame/drivers/suprgolf.cpp2
-rw-r--r--src/mame/drivers/suprnova.cpp30
-rw-r--r--src/mame/drivers/suprslam.cpp2
-rw-r--r--src/mame/drivers/surpratk.cpp4
-rw-r--r--src/mame/drivers/sv8000.cpp4
-rw-r--r--src/mame/drivers/svi318.cpp2
-rw-r--r--src/mame/drivers/svision.cpp2
-rw-r--r--src/mame/drivers/svmu.cpp2
-rw-r--r--src/mame/drivers/swtpc8212.cpp2
-rw-r--r--src/mame/drivers/sys9002.cpp2
-rw-r--r--src/mame/drivers/system1.cpp20
-rw-r--r--src/mame/drivers/system16.cpp4
-rw-r--r--src/mame/drivers/tail2nos.cpp2
-rw-r--r--src/mame/drivers/taito_f2.cpp2
-rw-r--r--src/mame/drivers/taito_l.cpp4
-rw-r--r--src/mame/drivers/taitojc.cpp6
-rw-r--r--src/mame/drivers/taitopjc.cpp4
-rw-r--r--src/mame/drivers/taitosj.cpp12
-rw-r--r--src/mame/drivers/taitowlf.cpp6
-rw-r--r--src/mame/drivers/tandy1t.cpp4
-rw-r--r--src/mame/drivers/taotaido.cpp2
-rw-r--r--src/mame/drivers/tapatune.cpp12
-rw-r--r--src/mame/drivers/tasman.cpp4
-rw-r--r--src/mame/drivers/tatsumi.cpp2
-rw-r--r--src/mame/drivers/tattack.cpp2
-rw-r--r--src/mame/drivers/tavernie.cpp2
-rw-r--r--src/mame/drivers/techno.cpp2
-rw-r--r--src/mame/drivers/testpat.cpp4
-rw-r--r--src/mame/drivers/thepit.cpp2
-rw-r--r--src/mame/drivers/thomson.cpp8
-rw-r--r--src/mame/drivers/thoop2.cpp2
-rw-r--r--src/mame/drivers/thunderx.cpp6
-rw-r--r--src/mame/drivers/ti74.cpp10
-rw-r--r--src/mame/drivers/ti85.cpp4
-rw-r--r--src/mame/drivers/ti89.cpp4
-rw-r--r--src/mame/drivers/tim100.cpp2
-rw-r--r--src/mame/drivers/timeplt.cpp2
-rw-r--r--src/mame/drivers/timex.cpp2
-rw-r--r--src/mame/drivers/tispeak.cpp12
-rw-r--r--src/mame/drivers/tmaster.cpp2
-rw-r--r--src/mame/drivers/tmc1800.cpp8
-rw-r--r--src/mame/drivers/tmnt.cpp54
-rw-r--r--src/mame/drivers/tmspoker.cpp2
-rw-r--r--src/mame/drivers/toaplan2.cpp22
-rw-r--r--src/mame/drivers/tomy_princ.cpp6
-rw-r--r--src/mame/drivers/tourvis.cpp2
-rw-r--r--src/mame/drivers/trackfld.cpp2
-rw-r--r--src/mame/drivers/travrusa.cpp2
-rw-r--r--src/mame/drivers/trs80.cpp2
-rw-r--r--src/mame/drivers/trs80dt1.cpp2
-rw-r--r--src/mame/drivers/trs80m2.cpp4
-rw-r--r--src/mame/drivers/trs80m3.cpp2
-rw-r--r--src/mame/drivers/trvmadns.cpp2
-rw-r--r--src/mame/drivers/ts803.cpp4
-rw-r--r--src/mame/drivers/tsamurai.cpp2
-rw-r--r--src/mame/drivers/tumbleb.cpp20
-rw-r--r--src/mame/drivers/tv910.cpp4
-rw-r--r--src/mame/drivers/tv950.cpp4
-rw-r--r--src/mame/drivers/tvc.cpp6
-rw-r--r--src/mame/drivers/twin16.cpp2
-rw-r--r--src/mame/drivers/ultraman.cpp8
-rw-r--r--src/mame/drivers/umipoker.cpp8
-rw-r--r--src/mame/drivers/unichamp.cpp4
-rw-r--r--src/mame/drivers/unior.cpp2
-rw-r--r--src/mame/drivers/unistar.cpp2
-rw-r--r--src/mame/drivers/usgames.cpp2
-rw-r--r--src/mame/drivers/uzebox.cpp4
-rw-r--r--src/mame/drivers/v6809.cpp4
-rw-r--r--src/mame/drivers/vamphalf.cpp68
-rw-r--r--src/mame/drivers/vaportra.cpp10
-rw-r--r--src/mame/drivers/vc4000.cpp40
-rw-r--r--src/mame/drivers/vector06.cpp6
-rw-r--r--src/mame/drivers/vendetta.cpp6
-rw-r--r--src/mame/drivers/vgmplay.cpp6
-rw-r--r--src/mame/drivers/vic20.cpp2
-rw-r--r--src/mame/drivers/victor9k.cpp2
-rw-r--r--src/mame/drivers/videopkr.cpp4
-rw-r--r--src/mame/drivers/vii.cpp8
-rw-r--r--src/mame/drivers/vip.cpp2
-rw-r--r--src/mame/drivers/viper.cpp26
-rw-r--r--src/mame/drivers/vis.cpp8
-rw-r--r--src/mame/drivers/vk100.cpp2
-rw-r--r--src/mame/drivers/vlc.cpp2
-rw-r--r--src/mame/drivers/volfied.cpp2
-rw-r--r--src/mame/drivers/voyager.cpp6
-rw-r--r--src/mame/drivers/vp60.cpp2
-rw-r--r--src/mame/drivers/vroulet.cpp2
-rw-r--r--src/mame/drivers/vtech1.cpp2
-rw-r--r--src/mame/drivers/vtech2.cpp10
-rw-r--r--src/mame/drivers/wallc.cpp6
-rw-r--r--src/mame/drivers/warpsped.cpp4
-rw-r--r--src/mame/drivers/wecleman.cpp4
-rw-r--r--src/mame/drivers/wicat.cpp2
-rw-r--r--src/mame/drivers/williams.cpp4
-rw-r--r--src/mame/drivers/wink.cpp2
-rw-r--r--src/mame/drivers/witch.cpp8
-rw-r--r--src/mame/drivers/wrally.cpp2
-rw-r--r--src/mame/drivers/wswan.cpp4
-rw-r--r--src/mame/drivers/wy100.cpp2
-rw-r--r--src/mame/drivers/wyvernf0.cpp4
-rw-r--r--src/mame/drivers/x07.cpp8
-rw-r--r--src/mame/drivers/x68k.cpp2
-rw-r--r--src/mame/drivers/xerox820.cpp4
-rw-r--r--src/mame/drivers/xexex.cpp4
-rw-r--r--src/mame/drivers/xmen.cpp8
-rw-r--r--src/mame/drivers/xor100.cpp6
-rw-r--r--src/mame/drivers/xtom3d.cpp6
-rw-r--r--src/mame/drivers/ymmu50.cpp8
-rw-r--r--src/mame/drivers/z100.cpp2
-rw-r--r--src/mame/drivers/z1013.cpp2
-rw-r--r--src/mame/drivers/z88.cpp12
-rw-r--r--src/mame/drivers/zaxxon.cpp2
-rw-r--r--src/mame/drivers/zorba.cpp2
-rw-r--r--src/mame/drivers/zr107.cpp2
-rw-r--r--src/mame/drivers/zrt80.cpp2
-rw-r--r--src/mame/drivers/zwackery.cpp4
-rw-r--r--src/mame/includes/decocass.h6
-rw-r--r--src/mame/includes/goldstar.h21
-rw-r--r--src/mame/includes/hp48.h46
-rw-r--r--src/mame/includes/megadriv.h4
-rw-r--r--src/mame/includes/newbrain.h2
-rw-r--r--src/mame/includes/segaorun.h14
-rw-r--r--src/mame/includes/segas16a.h2
-rw-r--r--src/mame/includes/segas16b.h2
-rw-r--r--src/mame/includes/segas18.h2
-rw-r--r--src/mame/includes/sprint2.h2
-rw-r--r--src/mame/includes/starfire.h21
-rw-r--r--src/mame/includes/zaxxon.h2
-rw-r--r--src/mame/machine/315-5881_crypt.cpp3
-rw-r--r--src/mame/machine/315-5881_crypt.h7
-rw-r--r--src/mame/machine/315_5195.cpp5
-rw-r--r--src/mame/machine/315_5195.h2
-rw-r--r--src/mame/machine/3dom2.cpp20
-rw-r--r--src/mame/machine/6883sam.cpp15
-rw-r--r--src/mame/machine/6883sam.h18
-rw-r--r--src/mame/machine/aim65.cpp14
-rw-r--r--src/mame/machine/amiga.cpp2
-rw-r--r--src/mame/machine/amstrad.cpp24
-rw-r--r--src/mame/machine/atarigen.cpp2
-rw-r--r--src/mame/machine/b2m.cpp8
-rw-r--r--src/mame/machine/bbc.cpp4
-rw-r--r--src/mame/machine/coco12.cpp10
-rw-r--r--src/mame/machine/decocass.cpp54
-rw-r--r--src/mame/machine/dgn_beta.cpp44
-rw-r--r--src/mame/machine/dragon.cpp6
-rw-r--r--src/mame/machine/fd1094.cpp6
-rw-r--r--src/mame/machine/gamepock.cpp17
-rw-r--r--src/mame/machine/gridkeyb.cpp4
-rw-r--r--src/mame/machine/gridkeyb.h7
-rw-r--r--src/mame/machine/hp48.cpp26
-rw-r--r--src/mame/machine/hp48_port.cpp8
-rw-r--r--src/mame/machine/hp48_port.h2
-rw-r--r--src/mame/machine/igs025.cpp4
-rw-r--r--src/mame/machine/igs025.h2
-rw-r--r--src/mame/machine/imds2ioc.cpp2
-rw-r--r--src/mame/machine/intv.cpp28
-rw-r--r--src/mame/machine/jazz_mct_adr.cpp126
-rw-r--r--src/mame/machine/kc.cpp32
-rw-r--r--src/mame/machine/konamigx.cpp2
-rw-r--r--src/mame/machine/mac.cpp4
-rw-r--r--src/mame/machine/mbee.cpp8
-rw-r--r--src/mame/machine/mega32x.cpp32
-rw-r--r--src/mame/machine/megacd.cpp40
-rw-r--r--src/mame/machine/megacdcd.cpp25
-rw-r--r--src/mame/machine/megacdcd.h25
-rw-r--r--src/mame/machine/megadriv.cpp6
-rw-r--r--src/mame/machine/mhavoc.cpp4
-rw-r--r--src/mame/machine/micro3d.cpp4
-rw-r--r--src/mame/machine/midtunit.cpp26
-rw-r--r--src/mame/machine/midwayic.cpp12
-rw-r--r--src/mame/machine/midwunit.cpp6
-rw-r--r--src/mame/machine/midxunit.cpp2
-rw-r--r--src/mame/machine/midyunit.cpp28
-rw-r--r--src/mame/machine/model1io2.cpp4
-rw-r--r--src/mame/machine/mpu4.cpp22
-rw-r--r--src/mame/machine/msx_systemflags.cpp4
-rw-r--r--src/mame/machine/mtx.cpp2
-rw-r--r--src/mame/machine/namcos1.cpp22
-rw-r--r--src/mame/machine/naomi.cpp28
-rw-r--r--src/mame/machine/nes.cpp34
-rw-r--r--src/mame/machine/ondra.cpp2
-rw-r--r--src/mame/machine/orion.cpp68
-rw-r--r--src/mame/machine/osborne1.cpp2
-rw-r--r--src/mame/machine/partner.cpp4
-rw-r--r--src/mame/machine/pce.cpp4
-rw-r--r--src/mame/machine/pecom.cpp8
-rw-r--r--src/mame/machine/pgmprot_igs025_igs012.cpp2
-rw-r--r--src/mame/machine/pgmprot_igs025_igs022.cpp6
-rw-r--r--src/mame/machine/pgmprot_igs025_igs028.cpp4
-rw-r--r--src/mame/machine/pgmprot_igs027a_type1.cpp52
-rw-r--r--src/mame/machine/pgmprot_igs027a_type2.cpp10
-rw-r--r--src/mame/machine/pgmprot_igs027a_type3.cpp17
-rw-r--r--src/mame/machine/pgmprot_orlegend.cpp2
-rw-r--r--src/mame/machine/playch10.cpp34
-rw-r--r--src/mame/machine/pp01.cpp43
-rw-r--r--src/mame/machine/rm380z.cpp2
-rw-r--r--src/mame/machine/samcoupe.cpp2
-rw-r--r--src/mame/machine/scramble.cpp28
-rw-r--r--src/mame/machine/sorcerer.cpp2
-rw-r--r--src/mame/machine/special.cpp4
-rw-r--r--src/mame/machine/st0016.cpp68
-rw-r--r--src/mame/machine/st0016.h2
-rw-r--r--src/mame/machine/stvprot.cpp2
-rw-r--r--src/mame/machine/thomson.cpp36
-rw-r--r--src/mame/machine/toaplan1.cpp2
-rw-r--r--src/mame/machine/upd65031.cpp12
-rw-r--r--src/mame/machine/upd65031.h14
-rw-r--r--src/mame/machine/vectrex.cpp4
-rw-r--r--src/mame/machine/vsnes.cpp46
-rw-r--r--src/mame/machine/wswan.cpp10
-rw-r--r--src/mame/machine/xbox_pci.cpp4
-rw-r--r--src/mame/video/1942.cpp8
-rw-r--r--src/mame/video/1943.cpp6
-rw-r--r--src/mame/video/40love.cpp2
-rw-r--r--src/mame/video/4enraya.cpp2
-rw-r--r--src/mame/video/abc1600.cpp71
-rw-r--r--src/mame/video/abc800.cpp2
-rw-r--r--src/mame/video/abc802.cpp2
-rw-r--r--src/mame/video/abc806.cpp12
-rw-r--r--src/mame/video/aeroboto.cpp2
-rw-r--r--src/mame/video/aerofgt.cpp16
-rw-r--r--src/mame/video/airbustr.cpp4
-rw-r--r--src/mame/video/airraid_dev.cpp8
-rw-r--r--src/mame/video/alpha68k.cpp2
-rw-r--r--src/mame/video/ampoker2.cpp4
-rw-r--r--src/mame/video/amspdwy.cpp2
-rw-r--r--src/mame/video/angelkds.cpp6
-rw-r--r--src/mame/video/appoooh.cpp4
-rw-r--r--src/mame/video/aquarium.cpp6
-rw-r--r--src/mame/video/aquarius.cpp2
-rw-r--r--src/mame/video/argus.cpp18
-rw-r--r--src/mame/video/arkanoid.cpp2
-rw-r--r--src/mame/video/armedf.cpp14
-rw-r--r--src/mame/video/ashnojoe.cpp12
-rw-r--r--src/mame/video/atarifb.cpp6
-rw-r--r--src/mame/video/atetris.cpp2
-rw-r--r--src/mame/video/bagman.cpp2
-rw-r--r--src/mame/video/bankp.cpp4
-rw-r--r--src/mame/video/baraduke.cpp6
-rw-r--r--src/mame/video/battlane.cpp2
-rw-r--r--src/mame/video/battlex.cpp4
-rw-r--r--src/mame/video/bbusters.cpp10
-rw-r--r--src/mame/video/bfm_adr2.cpp4
-rw-r--r--src/mame/video/bigstrkb.cpp6
-rw-r--r--src/mame/video/bking.cpp2
-rw-r--r--src/mame/video/blktiger.cpp6
-rw-r--r--src/mame/video/blmbycar.cpp4
-rw-r--r--src/mame/video/bloodbro.cpp6
-rw-r--r--src/mame/video/blueprnt.cpp2
-rw-r--r--src/mame/video/bogeyman.cpp4
-rw-r--r--src/mame/video/bombjack.cpp4
-rw-r--r--src/mame/video/bosco.cpp4
-rw-r--r--src/mame/video/brkthru.cpp4
-rw-r--r--src/mame/video/bsktball.cpp2
-rw-r--r--src/mame/video/bwing.cpp6
-rw-r--r--src/mame/video/c45.cpp4
-rw-r--r--src/mame/video/cabal.cpp4
-rw-r--r--src/mame/video/calomega.cpp2
-rw-r--r--src/mame/video/canyon.cpp2
-rw-r--r--src/mame/video/cbasebal.cpp4
-rw-r--r--src/mame/video/cclimber.cpp14
-rw-r--r--src/mame/video/centiped.cpp8
-rw-r--r--src/mame/video/chaknpop.cpp2
-rw-r--r--src/mame/video/champbas.cpp4
-rw-r--r--src/mame/video/cheekyms.cpp2
-rw-r--r--src/mame/video/circus.cpp2
-rw-r--r--src/mame/video/circusc.cpp2
-rw-r--r--src/mame/video/citycon.cpp4
-rw-r--r--src/mame/video/cloak.cpp2
-rw-r--r--src/mame/video/clshroad.cpp12
-rw-r--r--src/mame/video/combatsc.cpp12
-rw-r--r--src/mame/video/commando.cpp4
-rw-r--r--src/mame/video/compgolf.cpp4
-rw-r--r--src/mame/video/contra.cpp6
-rw-r--r--src/mame/video/cop01.cpp4
-rw-r--r--src/mame/video/cps1.cpp6
-rw-r--r--src/mame/video/crbaloon.cpp2
-rw-r--r--src/mame/video/crospang.cpp4
-rw-r--r--src/mame/video/crshrace.cpp4
-rw-r--r--src/mame/video/darius.cpp2
-rw-r--r--src/mame/video/darkmist.cpp6
-rw-r--r--src/mame/video/dbz.cpp4
-rw-r--r--src/mame/video/dcon.cpp8
-rw-r--r--src/mame/video/dday.cpp8
-rw-r--r--src/mame/video/ddragon.cpp4
-rw-r--r--src/mame/video/ddragon3.cpp7
-rw-r--r--src/mame/video/ddribble.cpp4
-rw-r--r--src/mame/video/deadang.cpp16
-rw-r--r--src/mame/video/dec8.cpp36
-rw-r--r--src/mame/video/decbac06.cpp24
-rw-r--r--src/mame/video/deckarn.cpp3
-rw-r--r--src/mame/video/deckarn.h8
-rw-r--r--src/mame/video/decmxc06.cpp3
-rw-r--r--src/mame/video/decmxc06.h8
-rw-r--r--src/mame/video/deco16ic.cpp66
-rw-r--r--src/mame/video/deco16ic.h47
-rw-r--r--src/mame/video/decocass.cpp6
-rw-r--r--src/mame/video/decodmd2.cpp4
-rw-r--r--src/mame/video/decodmd3.cpp4
-rw-r--r--src/mame/video/decospr.cpp28
-rw-r--r--src/mame/video/decospr.h4
-rw-r--r--src/mame/video/decrmc3.cpp14
-rw-r--r--src/mame/video/decrmc3.h6
-rw-r--r--src/mame/video/deniam.cpp6
-rw-r--r--src/mame/video/digdug.cpp4
-rw-r--r--src/mame/video/divebomb.cpp2
-rw-r--r--src/mame/video/djboy.cpp2
-rw-r--r--src/mame/video/dkong.cpp4
-rw-r--r--src/mame/video/docastle.cpp2
-rw-r--r--src/mame/video/dogfgt.cpp2
-rw-r--r--src/mame/video/dooyong.cpp7
-rw-r--r--src/mame/video/dooyong.h4
-rw-r--r--src/mame/video/dragrace.cpp2
-rw-r--r--src/mame/video/drgnmst.cpp6
-rw-r--r--src/mame/video/drmicro.cpp4
-rw-r--r--src/mame/video/dynduke.cpp6
-rw-r--r--src/mame/video/edevices.cpp8
-rw-r--r--src/mame/video/equites.cpp8
-rw-r--r--src/mame/video/esd16.cpp8
-rw-r--r--src/mame/video/espial.cpp4
-rw-r--r--src/mame/video/excellent_spr.cpp3
-rw-r--r--src/mame/video/excellent_spr.h8
-rw-r--r--src/mame/video/exedexes.cpp6
-rw-r--r--src/mame/video/exprraid.cpp4
-rw-r--r--src/mame/video/f1gp.cpp8
-rw-r--r--src/mame/video/fastfred.cpp8
-rw-r--r--src/mame/video/fastlane.cpp4
-rw-r--r--src/mame/video/fcombat.cpp2
-rw-r--r--src/mame/video/finalizr.cpp4
-rw-r--r--src/mame/video/firetrap.cpp6
-rw-r--r--src/mame/video/firetrk.cpp12
-rw-r--r--src/mame/video/fitfight.cpp6
-rw-r--r--src/mame/video/flkatck.cpp4
-rw-r--r--src/mame/video/flstory.cpp6
-rw-r--r--src/mame/video/freekick.cpp2
-rw-r--r--src/mame/video/fromanc2.cpp40
-rw-r--r--src/mame/video/fromance.cpp8
-rw-r--r--src/mame/video/funkybee.cpp2
-rw-r--r--src/mame/video/funworld.cpp8
-rw-r--r--src/mame/video/funybubl.cpp2
-rw-r--r--src/mame/video/fuukifg.cpp6
-rw-r--r--src/mame/video/fuukifg.h14
-rw-r--r--src/mame/video/fuukifg2.cpp6
-rw-r--r--src/mame/video/fuukifg3.cpp6
-rw-r--r--src/mame/video/gaelco.cpp12
-rw-r--r--src/mame/video/gaelco2.cpp8
-rw-r--r--src/mame/video/gaiden.cpp18
-rw-r--r--src/mame/video/galaga.cpp528
-rw-r--r--src/mame/video/galaxia.cpp4
-rw-r--r--src/mame/video/galaxian.cpp4
-rw-r--r--src/mame/video/galaxold.cpp14
-rw-r--r--src/mame/video/galivan.cpp8
-rw-r--r--src/mame/video/gaplus.cpp2
-rw-r--r--src/mame/video/gatron.cpp2
-rw-r--r--src/mame/video/gberet.cpp2
-rw-r--r--src/mame/video/gcpinbal.cpp6
-rw-r--r--src/mame/video/ginganin.cpp6
-rw-r--r--src/mame/video/gladiatr.cpp8
-rw-r--r--src/mame/video/glass.cpp4
-rw-r--r--src/mame/video/gng.cpp8
-rw-r--r--src/mame/video/goal92.cpp6
-rw-r--r--src/mame/video/goindol.cpp4
-rw-r--r--src/mame/video/goldstar.cpp46
-rw-r--r--src/mame/video/gomoku.cpp2
-rw-r--r--src/mame/video/gotcha.cpp7
-rw-r--r--src/mame/video/gottlieb.cpp4
-rw-r--r--src/mame/video/gotya.cpp2
-rw-r--r--src/mame/video/gp9001.cpp9
-rw-r--r--src/mame/video/gp9001.h5
-rw-r--r--src/mame/video/grchamp.cpp8
-rw-r--r--src/mame/video/gsword.cpp2
-rw-r--r--src/mame/video/gumbo.cpp4
-rw-r--r--src/mame/video/gundealr.cpp4
-rw-r--r--src/mame/video/gunsmoke.cpp4
-rw-r--r--src/mame/video/gyruss.cpp6
-rw-r--r--src/mame/video/hanaawas.cpp2
-rw-r--r--src/mame/video/hcastle.cpp4
-rw-r--r--src/mame/video/hexion.cpp4
-rw-r--r--src/mame/video/higemaru.cpp2
-rw-r--r--src/mame/video/himesiki.cpp2
-rw-r--r--src/mame/video/hng64.cpp24
-rw-r--r--src/mame/video/holeland.cpp4
-rw-r--r--src/mame/video/homedata.cpp48
-rw-r--r--src/mame/video/homerun.cpp2
-rw-r--r--src/mame/video/hyperspt.cpp4
-rw-r--r--src/mame/video/igs017_igs031.cpp10
-rw-r--r--src/mame/video/igs017_igs031.h19
-rw-r--r--src/mame/video/inufuku.cpp4
-rw-r--r--src/mame/video/iqblock.cpp4
-rw-r--r--src/mame/video/ironhors.cpp4
-rw-r--r--src/mame/video/jack.cpp4
-rw-r--r--src/mame/video/jackal.cpp2
-rw-r--r--src/mame/video/jailbrek.cpp2
-rw-r--r--src/mame/video/k001604.cpp12
-rw-r--r--src/mame/video/k007342.cpp16
-rw-r--r--src/mame/video/k007342.h8
-rw-r--r--src/mame/video/k007420.cpp3
-rw-r--r--src/mame/video/k007420.h8
-rw-r--r--src/mame/video/k037122.cpp13
-rw-r--r--src/mame/video/k051316.cpp21
-rw-r--r--src/mame/video/k051316.h7
-rw-r--r--src/mame/video/k051960.cpp3
-rw-r--r--src/mame/video/k051960.h7
-rw-r--r--src/mame/video/k052109.cpp9
-rw-r--r--src/mame/video/k052109.h7
-rw-r--r--src/mame/video/k053244_k053245.cpp7
-rw-r--r--src/mame/video/k053244_k053245.h9
-rw-r--r--src/mame/video/k053246_k053247_k055673.cpp11
-rw-r--r--src/mame/video/k053246_k053247_k055673.h8
-rw-r--r--src/mame/video/k054156_k054157_k056832.cpp39
-rw-r--r--src/mame/video/k054156_k054157_k056832.h7
-rw-r--r--src/mame/video/kaneko_tmap.cpp7
-rw-r--r--src/mame/video/kaneko_tmap.h5
-rw-r--r--src/mame/video/karnov.cpp8
-rw-r--r--src/mame/video/kchamp.cpp2
-rw-r--r--src/mame/video/kickgoal.cpp12
-rw-r--r--src/mame/video/kingobox.cpp8
-rw-r--r--src/mame/video/kncljoe.cpp2
-rw-r--r--src/mame/video/konamigx.cpp18
-rw-r--r--src/mame/video/kopunch.cpp4
-rw-r--r--src/mame/video/ksayakyu.cpp4
-rw-r--r--src/mame/video/kyugo.cpp4
-rw-r--r--src/mame/video/labyrunr.cpp4
-rw-r--r--src/mame/video/ladybug.cpp4
-rw-r--r--src/mame/video/ladyfrog.cpp2
-rw-r--r--src/mame/video/lasso.cpp8
-rw-r--r--src/mame/video/lastduel.cpp12
-rw-r--r--src/mame/video/legionna.cpp10
-rw-r--r--src/mame/video/leland.cpp4
-rw-r--r--src/mame/video/lemmings.cpp2
-rw-r--r--src/mame/video/liberate.cpp16
-rw-r--r--src/mame/video/lkage.cpp6
-rw-r--r--src/mame/video/lockon.cpp2
-rw-r--r--src/mame/video/lordgun.cpp8
-rw-r--r--src/mame/video/lucky74.cpp4
-rw-r--r--src/mame/video/lvcards.cpp2
-rw-r--r--src/mame/video/lwings.cpp14
-rw-r--r--src/mame/video/m10.cpp7
-rw-r--r--src/mame/video/m107.cpp2
-rw-r--r--src/mame/video/m52.cpp2
-rw-r--r--src/mame/video/m57.cpp2
-rw-r--r--src/mame/video/m58.cpp2
-rw-r--r--src/mame/video/m62.cpp66
-rw-r--r--src/mame/video/m72.cpp14
-rw-r--r--src/mame/video/m90.cpp8
-rw-r--r--src/mame/video/m92.cpp4
-rw-r--r--src/mame/video/macrossp.cpp8
-rw-r--r--src/mame/video/madalien.cpp23
-rw-r--r--src/mame/video/mainsnk.cpp4
-rw-r--r--src/mame/video/mappy.cpp6
-rw-r--r--src/mame/video/marineb.cpp2
-rw-r--r--src/mame/video/mario.cpp2
-rw-r--r--src/mame/video/markham.cpp2
-rw-r--r--src/mame/video/mb60553.cpp2
-rw-r--r--src/mame/video/mcd212.cpp3
-rw-r--r--src/mame/video/mcd212.h11
-rw-r--r--src/mame/video/mcr.cpp58
-rw-r--r--src/mame/video/mcr3.cpp6
-rw-r--r--src/mame/video/mcr68.cpp2
-rw-r--r--src/mame/video/meadows.cpp2
-rw-r--r--src/mame/video/mermaid.cpp4
-rw-r--r--src/mame/video/metlclsh.cpp4
-rw-r--r--src/mame/video/metro.cpp4
-rw-r--r--src/mame/video/microtan.cpp2
-rw-r--r--src/mame/video/mikie.cpp2
-rw-r--r--src/mame/video/mikromik.cpp2
-rw-r--r--src/mame/video/mitchell.cpp2
-rw-r--r--src/mame/video/mjkjidai.cpp2
-rw-r--r--src/mame/video/model3.cpp16
-rw-r--r--src/mame/video/mosaic.cpp4
-rw-r--r--src/mame/video/mrdo.cpp4
-rw-r--r--src/mame/video/mrjong.cpp2
-rw-r--r--src/mame/video/ms1_tmap.cpp32
-rw-r--r--src/mame/video/ms32.cpp10
-rw-r--r--src/mame/video/msisaac.cpp6
-rw-r--r--src/mame/video/mugsmash.cpp4
-rw-r--r--src/mame/video/mustache.cpp2
-rw-r--r--src/mame/video/mystston.cpp4
-rw-r--r--src/mame/video/mystwarr.cpp4
-rw-r--r--src/mame/video/namco_c123tmap.cpp18
-rw-r--r--src/mame/video/namco_c169roz.cpp16
-rw-r--r--src/mame/video/namcona1.cpp10
-rw-r--r--src/mame/video/namcos22.cpp2
-rw-r--r--src/mame/video/namcos2_roz.cpp2
-rw-r--r--src/mame/video/namcos86.cpp10
-rw-r--r--src/mame/video/nemesis.cpp4
-rw-r--r--src/mame/video/nes.cpp2
-rw-r--r--src/mame/video/newbrain.cpp8
-rw-r--r--src/mame/video/news.cpp4
-rw-r--r--src/mame/video/ninjakd2.cpp20
-rw-r--r--src/mame/video/nmk16.cpp28
-rw-r--r--src/mame/video/nmk16spr.cpp6
-rw-r--r--src/mame/video/nmk16spr.h8
-rw-r--r--src/mame/video/nova2001.cpp14
-rw-r--r--src/mame/video/nycaptor.cpp2
-rw-r--r--src/mame/video/ohmygod.cpp2
-rw-r--r--src/mame/video/ojankohs.cpp4
-rw-r--r--src/mame/video/oneshot.cpp6
-rw-r--r--src/mame/video/orbit.cpp2
-rw-r--r--src/mame/video/orca40c.cpp6
-rw-r--r--src/mame/video/pacland.cpp4
-rw-r--r--src/mame/video/pacman.cpp8
-rw-r--r--src/mame/video/pandoras.cpp2
-rw-r--r--src/mame/video/paradise.cpp15
-rw-r--r--src/mame/video/pass.cpp4
-rw-r--r--src/mame/video/pbaction.cpp4
-rw-r--r--src/mame/video/pc080sn.cpp8
-rw-r--r--src/mame/video/pc090oj.cpp3
-rw-r--r--src/mame/video/pc090oj.h10
-rw-r--r--src/mame/video/pc1512.cpp2
-rw-r--r--src/mame/video/pc_t1t.cpp4
-rw-r--r--src/mame/video/pcd.cpp6
-rw-r--r--src/mame/video/pgm.cpp4
-rw-r--r--src/mame/video/pgm2.cpp4
-rw-r--r--src/mame/video/phoenix.cpp4
-rw-r--r--src/mame/video/pingpong.cpp2
-rw-r--r--src/mame/video/pirates.cpp8
-rw-r--r--src/mame/video/pitnrun.cpp4
-rw-r--r--src/mame/video/playch10.cpp4
-rw-r--r--src/mame/video/playmark.cpp38
-rw-r--r--src/mame/video/plygonet.cpp4
-rw-r--r--src/mame/video/pokechmp.cpp2
-rw-r--r--src/mame/video/polepos.cpp4
-rw-r--r--src/mame/video/poolshrk.cpp2
-rw-r--r--src/mame/video/pooyan.cpp2
-rw-r--r--src/mame/video/popeye.cpp2
-rw-r--r--src/mame/video/portrait.cpp4
-rw-r--r--src/mame/video/powerins.cpp4
-rw-r--r--src/mame/video/prehisle.cpp6
-rw-r--r--src/mame/video/psikyo.cpp4
-rw-r--r--src/mame/video/psychic5.cpp8
-rw-r--r--src/mame/video/punchout.cpp20
-rw-r--r--src/mame/video/qix.cpp9
-rw-r--r--src/mame/video/quizdna.cpp6
-rw-r--r--src/mame/video/quizpani.cpp4
-rw-r--r--src/mame/video/raiden.cpp12
-rw-r--r--src/mame/video/raiden2.cpp8
-rw-r--r--src/mame/video/rallyx.cpp16
-rw-r--r--src/mame/video/realbrk.cpp6
-rw-r--r--src/mame/video/redclash.cpp2
-rw-r--r--src/mame/video/renegade.cpp4
-rw-r--r--src/mame/video/retofinv.cpp4
-rw-r--r--src/mame/video/rocnrope.cpp2
-rw-r--r--src/mame/video/rollrace.cpp2
-rw-r--r--src/mame/video/rpunch.cpp4
-rw-r--r--src/mame/video/runaway.cpp4
-rw-r--r--src/mame/video/rungun.cpp4
-rw-r--r--src/mame/video/sauro.cpp6
-rw-r--r--src/mame/video/sbasketb.cpp2
-rw-r--r--src/mame/video/sbugger.cpp4
-rw-r--r--src/mame/video/scotrsht.cpp2
-rw-r--r--src/mame/video/sderby.cpp6
-rw-r--r--src/mame/video/segag80r.cpp8
-rw-r--r--src/mame/video/segaic16.cpp24
-rw-r--r--src/mame/video/segaic16.h2
-rw-r--r--src/mame/video/segaic24.cpp8
-rw-r--r--src/mame/video/segas32.cpp2
-rw-r--r--src/mame/video/seibuspi.cpp8
-rw-r--r--src/mame/video/seicross.cpp2
-rw-r--r--src/mame/video/senjyo.cpp14
-rw-r--r--src/mame/video/seta.cpp8
-rw-r--r--src/mame/video/seta001.cpp3
-rw-r--r--src/mame/video/seta001.h51
-rw-r--r--src/mame/video/sf.cpp6
-rw-r--r--src/mame/video/sgi_gr1.cpp14
-rw-r--r--src/mame/video/shadfrce.cpp6
-rw-r--r--src/mame/video/shangkid.cpp2
-rw-r--r--src/mame/video/shaolins.cpp2
-rw-r--r--src/mame/video/shisen.cpp2
-rw-r--r--src/mame/video/shootout.cpp6
-rw-r--r--src/mame/video/sidearms.cpp6
-rw-r--r--src/mame/video/sidepckt.cpp2
-rw-r--r--src/mame/video/silkroad.cpp6
-rw-r--r--src/mame/video/skydiver.cpp2
-rw-r--r--src/mame/video/skykid.cpp4
-rw-r--r--src/mame/video/slapfght.cpp6
-rw-r--r--src/mame/video/snk.cpp26
-rw-r--r--src/mame/video/snk6502.cpp8
-rw-r--r--src/mame/video/snk68.cpp4
-rw-r--r--src/mame/video/snk68_spr.cpp4
-rw-r--r--src/mame/video/snk68_spr.h9
-rw-r--r--src/mame/video/snookr10.cpp6
-rw-r--r--src/mame/video/solomon.cpp4
-rw-r--r--src/mame/video/sonson.cpp2
-rw-r--r--src/mame/video/spbactn.cpp6
-rw-r--r--src/mame/video/spdodgeb.cpp2
-rw-r--r--src/mame/video/speedbal.cpp4
-rw-r--r--src/mame/video/speedspn.cpp2
-rw-r--r--src/mame/video/splash.cpp4
-rw-r--r--src/mame/video/sprint2.cpp2
-rw-r--r--src/mame/video/sprint4.cpp2
-rw-r--r--src/mame/video/sprint8.cpp36
-rw-r--r--src/mame/video/srumbler.cpp8
-rw-r--r--src/mame/video/sslam.cpp8
-rw-r--r--src/mame/video/ssozumo.cpp13
-rw-r--r--src/mame/video/ssrj.cpp6
-rw-r--r--src/mame/video/ssv.cpp2
-rw-r--r--src/mame/video/st0020.cpp24
-rw-r--r--src/mame/video/stadhero.cpp2
-rw-r--r--src/mame/video/starshp1.cpp2
-rw-r--r--src/mame/video/stfight_dev.cpp10
-rw-r--r--src/mame/video/sub.cpp2
-rw-r--r--src/mame/video/suna8.cpp6
-rw-r--r--src/mame/video/superqix.cpp8
-rw-r--r--src/mame/video/suprloco.cpp2
-rw-r--r--src/mame/video/suprnova.cpp4
-rw-r--r--src/mame/video/suprridr.cpp6
-rw-r--r--src/mame/video/suprslam.cpp4
-rw-r--r--src/mame/video/system1.cpp2
-rw-r--r--src/mame/video/system16.cpp35
-rw-r--r--src/mame/video/tagteam.cpp2
-rw-r--r--src/mame/video/tail2nos.cpp2
-rw-r--r--src/mame/video/taito_f3.cpp31
-rw-r--r--src/mame/video/taito_l.cpp6
-rw-r--r--src/mame/video/taitojc.cpp2
-rw-r--r--src/mame/video/tank8.cpp5
-rw-r--r--src/mame/video/tankbatt.cpp18
-rw-r--r--src/mame/video/tankbust.cpp4
-rw-r--r--src/mame/video/taotaido.cpp2
-rw-r--r--src/mame/video/targeth.cpp4
-rw-r--r--src/mame/video/tatsumi.cpp20
-rw-r--r--src/mame/video/tbowl.cpp6
-rw-r--r--src/mame/video/tc0080vco.cpp6
-rw-r--r--src/mame/video/tc0100scn.cpp15
-rw-r--r--src/mame/video/tc0100scn.h5
-rw-r--r--src/mame/video/tc0180vcu.cpp6
-rw-r--r--src/mame/video/tc0280grd.cpp2
-rw-r--r--src/mame/video/tc0480scp.cpp20
-rw-r--r--src/mame/video/tceptor.cpp6
-rw-r--r--src/mame/video/tecmo.cpp10
-rw-r--r--src/mame/video/tecmo16.cpp18
-rw-r--r--src/mame/video/tecmosys.cpp8
-rw-r--r--src/mame/video/tehkanwc.cpp4
-rw-r--r--src/mame/video/terracre.cpp4
-rw-r--r--src/mame/video/tetrisp2.cpp24
-rw-r--r--src/mame/video/thedeep.cpp2
-rw-r--r--src/mame/video/thepit.cpp4
-rw-r--r--src/mame/video/thoop2.cpp4
-rw-r--r--src/mame/video/tiamc1.cpp6
-rw-r--r--src/mame/video/tigeroad.cpp4
-rw-r--r--src/mame/video/timelimt.cpp4
-rw-r--r--src/mame/video/timeplt.cpp4
-rw-r--r--src/mame/video/tmap038.cpp5
-rw-r--r--src/mame/video/tmap038.h5
-rw-r--r--src/mame/video/tmnt.cpp4
-rw-r--r--src/mame/video/toaplan1.cpp8
-rw-r--r--src/mame/video/toaplan2.cpp2
-rw-r--r--src/mame/video/toki.cpp6
-rw-r--r--src/mame/video/tp84.cpp4
-rw-r--r--src/mame/video/trackfld.cpp2
-rw-r--r--src/mame/video/travrusa.cpp2
-rw-r--r--src/mame/video/triplhnt.cpp2
-rw-r--r--src/mame/video/trucocl.cpp2
-rw-r--r--src/mame/video/tryout.cpp4
-rw-r--r--src/mame/video/tsamurai.cpp6
-rw-r--r--src/mame/video/tumbleb.cpp30
-rw-r--r--src/mame/video/tunhunt.cpp2
-rw-r--r--src/mame/video/turbo.cpp4
-rw-r--r--src/mame/video/twin16.cpp6
-rw-r--r--src/mame/video/twincobr.cpp20
-rw-r--r--src/mame/video/ultratnk.cpp2
-rw-r--r--src/mame/video/unico.cpp6
-rw-r--r--src/mame/video/v1050.cpp2
-rw-r--r--src/mame/video/vastar.cpp6
-rw-r--r--src/mame/video/vball.cpp2
-rw-r--r--src/mame/video/videopin.cpp2
-rw-r--r--src/mame/video/vs920a.cpp2
-rw-r--r--src/mame/video/vsystem_spr.cpp4
-rw-r--r--src/mame/video/vsystem_spr.h2
-rw-r--r--src/mame/video/vsystem_spr2.cpp4
-rw-r--r--src/mame/video/vsystem_spr2.h2
-rw-r--r--src/mame/video/vulgus.cpp4
-rw-r--r--src/mame/video/warpwarp.cpp6
-rw-r--r--src/mame/video/wc90.cpp12
-rw-r--r--src/mame/video/wc90b.cpp6
-rw-r--r--src/mame/video/wecleman.cpp6
-rw-r--r--src/mame/video/welltris.cpp2
-rw-r--r--src/mame/video/wgp.cpp6
-rw-r--r--src/mame/video/williams.cpp2
-rw-r--r--src/mame/video/wrally.cpp4
-rw-r--r--src/mame/video/wswan.cpp10
-rw-r--r--src/mame/video/wswan.h21
-rw-r--r--src/mame/video/wwfsstar.cpp4
-rw-r--r--src/mame/video/x68k.cpp8
-rw-r--r--src/mame/video/xain.cpp6
-rw-r--r--src/mame/video/xevious.cpp4
-rw-r--r--src/mame/video/xorworld.cpp2
-rw-r--r--src/mame/video/xxmissio.cpp4
-rw-r--r--src/mame/video/xyonix.cpp2
-rw-r--r--src/mame/video/ygv608.cpp24
-rw-r--r--src/mame/video/yiear.cpp2
-rw-r--r--src/mame/video/yunsun16.cpp4
-rw-r--r--src/mame/video/yunsung8.cpp4
-rw-r--r--src/mame/video/zac2650.cpp2
-rw-r--r--src/mame/video/zaccaria.cpp2
-rw-r--r--src/mame/video/zaxxon.cpp18
-rw-r--r--src/mame/video/zerozone.cpp2
1750 files changed, 9034 insertions, 9667 deletions
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<amiga_autoconfig *>(this)),
- write16_delegate(FUNC(amiga_autoconfig::autoconfig_write), static_cast<amiga_autoconfig *>(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<amiga_autoconfig *>(this)),
- write16_delegate(FUNC(amiga_autoconfig::autoconfig_write), static_cast<amiga_autoconfig *>(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<amiga_autoconfig *>(this)),
- write16_delegate(FUNC(amiga_autoconfig::autoconfig_write), static_cast<amiga_autoconfig *>(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<amiga_autoconfig *>(this)),
- write16_delegate(FUNC(amiga_autoconfig::autoconfig_write), static_cast<amiga_autoconfig *>(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<amiga_autoconfig *>(this)),
- write16_delegate(FUNC(amiga_autoconfig::autoconfig_write), static_cast<amiga_autoconfig *>(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<amiga_autoconfig *>(this)),
- write16_delegate(FUNC(amiga_autoconfig::autoconfig_write), static_cast<amiga_autoconfig *>(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<amiga_autoconfig *>(this)),
- write16_delegate(FUNC(amiga_autoconfig::autoconfig_write), static_cast<amiga_autoconfig *>(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<cpc_expansion_slot_device *>(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<cpc_expansion_slot_device *>(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<cpc_expansion_slot_device *>(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<cpc_expansion_slot_device *>(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<cpc_expansion_slot_device *>(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<cpc_expansion_slot_device *>(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<cpc_expansion_slot_device *>(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<cpc_expansion_slot_device *>(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_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<cpc_expansion_slot_device *>(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<cpc_expansion_slot_device *>(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<cpc_expansion_slot_device *>(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<uint8_t[]>(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<device_generic_cart_interface *>(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 <typename... T> void set_device_load(T &&... args) { m_device_image_load = load_delegate(std::forward<T>(args)...); }
- template <typename... T> void set_device_unload(T &&... args) { m_device_image_unload = unload_delegate(std::forward<T>(args)...); }
+ template <typename... T> void set_device_load(T &&... args) { m_device_image_load.set(std::forward<T>(args)...); }
+ template <typename... T> void set_device_unload(T &&... args) { m_device_image_unload.set(std::forward<T>(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<hp9845_io_card_device*>(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<hp9845_io_card_device*>(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<nereid_device*>(m_nereid)),
- write16_delegate(FUNC(nereid_device::ctrl_w), static_cast<nereid_device*>(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<topcat_device*>(m_topcat)),
- write16_delegate(FUNC(topcat_device::vram_w), static_cast<topcat_device*>(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<topcat_device*>(m_topcat)),
- write16_delegate(FUNC(topcat_device::ctrl_w), static_cast<topcat_device*>(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<uint8_t[]>(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<uint8_t[]>(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<size_t>)(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<size_t>)(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<screen_device>(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<ins8250_uart_device>("uart_0")), write8sm_delegate(FUNC(ins8250_device::ins8250_w), subdevice<ins8250_uart_device>("uart_0")) );
- m_isa->install_device(0x02f8, 0x02ff, read8sm_delegate(FUNC(ins8250_device::ins8250_r), subdevice<ins8250_uart_device>("uart_1")), write8sm_delegate(FUNC(ins8250_device::ins8250_w), subdevice<ins8250_uart_device>("uart_1")) );
-// m_isa->install_device(0x03e8, 0x03ef, read8sm_delegate(FUNC(ins8250_device::ins8250_r), subdevice<ins8250_uart_device>("uart_2")), write8sm_delegate(FUNC(ins8250_device::ins8250_w), subdevice<ins8250_uart_device>("uart_2")) );
-// m_isa->install_device(0x02e8, 0x02ef, read8sm_delegate(FUNC(ins8250_device::ins8250_r), subdevice<ins8250_uart_device>("uart_3")), write8sm_delegate(FUNC(ins8250_device::ins8250_w), subdevice<ins8250_uart_device>("uart_3")) );
+ m_isa->install_device(0x03f8, 0x03ff, read8sm_delegate(*subdevice<ins8250_uart_device>("uart_0"), FUNC(ins8250_device::ins8250_r)), write8sm_delegate(*subdevice<ins8250_uart_device>("uart_0"), FUNC(ins8250_device::ins8250_w)));
+ m_isa->install_device(0x02f8, 0x02ff, read8sm_delegate(*subdevice<ins8250_uart_device>("uart_1"), FUNC(ins8250_device::ins8250_r)), write8sm_delegate(*subdevice<ins8250_uart_device>("uart_1"), FUNC(ins8250_device::ins8250_w)));
+// m_isa->install_device(0x03e8, 0x03ef, read8sm_delegate(*subdevice<ins8250_uart_device>("uart_2"), FUNC(ins8250_device::ins8250_r)), write8sm_delegate(*subdevice<ins8250_uart_device>("uart_2"), FUNC(ins8250_device::ins8250_w)));
+// m_isa->install_device(0x02e8, 0x02ef, read8sm_delegate(*subdevice<ins8250_uart_device>("uart_3"), FUNC(ins8250_device::ins8250_r)), write8sm_delegate(*subdevice<ins8250_uart_device>("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<pc_lpt_device>("lpt"));
if (m_is_primary)
- {
- m_isa->install_device(0x0378, 0x037b, read8_delegate(FUNC(pc_lpt_device::read), subdevice<pc_lpt_device>("lpt")), write8_delegate(FUNC(pc_lpt_device::write), subdevice<pc_lpt_device>("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<pc_lpt_device>("lpt")), write8_delegate(FUNC(pc_lpt_device::write), subdevice<pc_lpt_device>("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<pit8253_device>("pit")),
- write8sm_delegate(FUNC(pit8253_device::write), subdevice<pit8253_device>("pit")) );
+ read8sm_delegate(*subdevice<pit8253_device>("pit"), FUNC(pit8253_device::read)),
+ write8sm_delegate(*subdevice<pit8253_device>("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_device>("ymf262");
+ ymf262_device &ymf262 = *subdevice<ymf262_device>("ymf262");
set_isa_device();
- m_isa->install_device(0x0200, 0x0207, read8_delegate(FUNC(pc_joy_device::joy_port_r), subdevice<pc_joy_device>("pc_joy")), write8_delegate(FUNC(pc_joy_device::joy_port_w), subdevice<pc_joy_device>("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_device>("pc_joy"), FUNC(pc_joy_device::joy_port_r)), write8_delegate(*subdevice<pc_joy_device>("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_device>("pc_joy")), write8_delegate(FUNC(pc_joy_device::joy_port_w), subdevice<pc_joy_device>("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_device>("pc_joy"), FUNC(pc_joy_device::joy_port_r)), write8_delegate(*subdevice<pc_joy_device>("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_device>("ymf262");
+ ymf262_device &ymf262 = *subdevice<ymf262_device>("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_device>("ymf262");
- m_isa->install_device(0x0200, 0x0207, read8_delegate(FUNC(pc_joy_device::joy_port_r), subdevice<pc_joy_device>("pc_joy")), write8_delegate(FUNC(pc_joy_device::joy_port_w), subdevice<pc_joy_device>("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_device>("ymf262");
+ m_isa->install_device(0x0200, 0x0207, read8_delegate(*subdevice<pc_joy_device>("pc_joy"), FUNC(pc_joy_device::joy_port_r)), write8_delegate(*subdevice<pc_joy_device>("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_device>("pc_joy")), write8_delegate(FUNC(pc_joy_device::joy_port_w), subdevice<pc_joy_device>("pc_joy")));
- m_isa->install_device(0x0280, 0x029F, read8sm_delegate(FUNC(mos6581_device::read), subdevice<mos6581_device>("sid6581")), write8sm_delegate(FUNC(mos6581_device::write), subdevice<mos6581_device>("sid6581")));
+ m_isa->install_device(0x0200, 0x0207, read8_delegate(*subdevice<pc_joy_device>("pc_joy"), FUNC(pc_joy_device::joy_port_r)), write8_delegate(*subdevice<pc_joy_device>("pc_joy"), FUNC(pc_joy_device::joy_port_w)));
+ m_isa->install_device(0x0280, 0x029F, read8sm_delegate(*subdevice<mos6581_device>("sid6581"), FUNC(mos6581_device::read)), write8sm_delegate(*subdevice<mos6581_device>("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_device>("ym3812");
+ ym3812_device &ym3812 = *subdevice<ym3812_device>("ym3812");
set_isa_device();
- m_isa->install_device(0x0200, 0x0207, read8_delegate(FUNC(pc_joy_device::joy_port_r), subdevice<pc_joy_device>("pc_joy")), write8_delegate(FUNC(pc_joy_device::joy_port_w), subdevice<pc_joy_device>("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_device>("pc_joy"), FUNC(pc_joy_device::joy_port_r)), write8_delegate(*subdevice<pc_joy_device>("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<cirrus_gd5430_device>("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<cirrus_gd5428_device>("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<cirrus_gd5430_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<cirrus_gd5428_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<s3_vga_device>("vga");
- m_8514 = subdevice<ibm8514a_device>("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<s3virge_vga_device>("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<s3virgedx_vga_device>("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<s3virgedx_vga_device>("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<s3_vga_device> m_vga;
+ required_device<ibm8514a_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<s3virge_vga_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<s3virgedx_vga_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<s3virgedx_vga_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<trident_vga_device>("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<trident_vga_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<tseng_vga_device>("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<tseng_vga_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_device>("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<vga_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<ati_vga_device>("vga");
- m_8514 = subdevice<mach8_device>("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<mach32_device>("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<mach64_device>("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<ati_vga_device> m_vga;
+ required_device<mach8_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<mach32_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<mach64_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<cpu_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<messimg_disk_image_device>(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 <unsigned Slot> 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<device_snes_control_port_interface *>(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<bool (int16_t x, int16_t y)> snesctrl_onscreen_delegate;
#define SNESCTRL_ONSCREEN_CB(name) bool name(int16_t x, int16_t y)
-typedef device_delegate<void (int16_t x, int16_t y)> 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<void (int16_t x, int16_t y)> snesctrl_gunlatch_delegate;
class snes_control_port_device : public device_t, public device_slot_interface
{
public:
+ typedef device_delegate<bool (int16_t x, int16_t y)> onscreen_delegate;
+ typedef device_delegate<void (int16_t x, int16_t y)> gunlatch_delegate;
+
// construction/destruction
template <typename T>
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 <typename... T> void set_onscreen_callback(T &&... args) { m_onscreen_cb = snesctrl_onscreen_delegate(std::forward<T>(args)...); }
- template <typename... T> void set_gunlatch_callback(T &&... args) { m_gunlatch_cb = snesctrl_gunlatch_delegate(std::forward<T>(args)...); }
+ template <typename... T> void set_onscreen_callback(T &&... args) { m_onscreen_cb.set(std::forward<T>(args)...); }
+ template <typename... T> void set_gunlatch_callback(T &&... args) { m_gunlatch_cb.set(std::forward<T>(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<z80sio_device>("pit")), write8_delegate(FUNC(z80sio_device::db_w), subdevice<z80sio_device>("pit")), 0x00ff);
+ read8_delegate(*subdevice<z80sio_device>("pit"), FUNC(z80sio_device::db_r)), write8_delegate(*subdevice<z80sio_device>("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<z80sio_device>("pit")), write8_delegate(FUNC(z80sio_device::cb_w), subdevice<z80sio_device>("pit")), 0x00ff);
+ read8_delegate(*subdevice<z80sio_device>("pit"), FUNC(z80sio_device::cb_r)), write8_delegate(*subdevice<z80sio_device>("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<z80sio_device>("sio0")),
- write8smo_delegate(FUNC(z80sio_device::db_w), subdevice<z80sio_device>("sio0")), 0x00ff);
+ read8smo_delegate(*subdevice<z80sio_device>("sio0"), FUNC(z80sio_device::db_r)),
+ write8smo_delegate(*subdevice<z80sio_device>("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<z80sio_device>("sio0")),
- write8smo_delegate(FUNC(z80sio_device::cb_w), subdevice<z80sio_device>("sio0")), 0x00ff);
+ read8smo_delegate(*subdevice<z80sio_device>("sio0"), FUNC(z80sio_device::cb_r)),
+ write8smo_delegate(*subdevice<z80sio_device>("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<z80sio_device>("sio0")),
- write8smo_delegate(FUNC(z80sio_device::da_w), subdevice<z80sio_device>("sio0")), 0x00ff);
+ read8smo_delegate(*subdevice<z80sio_device>("sio0"), FUNC(z80sio_device::da_r)),
+ write8smo_delegate(*subdevice<z80sio_device>("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<z80sio_device>("sio0")),
- write8smo_delegate(FUNC(z80sio_device::ca_w), subdevice<z80sio_device>("sio0")), 0x00ff);
+ read8smo_delegate(*subdevice<z80sio_device>("sio0"), FUNC(z80sio_device::ca_r)),
+ write8smo_delegate(*subdevice<z80sio_device>("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<am9513_device>("stc")),
- write8sm_delegate(FUNC(am9513_device::write8), subdevice<am9513_device>("stc")), 0x00ff);
+ read8sm_delegate(*subdevice<am9513_device>("stc"), FUNC(am9513_device::read8)),
+ write8sm_delegate(*subdevice<am9513_device>("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<x68k_expansion_slot_device *>(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 <typename Object> void set_vector_func(Object &&cb) { m_vector_callback = std::forward<Object>(cb); }
- void set_vector_func(vector_delegate callback) { m_vector_callback = callback; }
- template <class FunctionClass> 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<FunctionClass *>(nullptr)));
- }
- template <class FunctionClass> 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<FunctionClass *>(nullptr)));
- }
+ template <typename... T> void set_vector_func(T &&... args) { m_vector_callback.set(std::forward<T>(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 <std::size_t Port> auto read_p() { return m_read_p[Port].bind(); }
template <std::size_t Port> auto write_p() { return m_write_p[Port].bind(); }
- void set_pixel_update_cb(pixel_update_delegate callback) { m_pixel_update_cb = callback; }
- template <class FunctionClass> 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<FunctionClass *>(nullptr)));
- }
- template <class FunctionClass> 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<FunctionClass *>(nullptr)));
- }
+ template <typename... T> void set_pixel_update_cb(T &&... args) { m_pixel_update_cb.set(std::forward<T>(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 <typename T> void set_screen_tag(T &&tag) { m_screen.set_tag(std::forward<T>(tag)); }
- void set_draw_callback(draw_delegate callback) { m_draw = callback; }
- template <class FunctionClass> 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<FunctionClass *>(nullptr)));
- }
- template <class FunctionClass> 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<FunctionClass *>(nullptr)));
- }
+ template <typename... T> void set_draw_callback(T &&... args) { m_draw.set(std::forward<T>(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 <class FunctionClass> 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<FunctionClass *>(nullptr)));
- }
- template <class FunctionClass> void set_clk_out(void (FunctionClass::*callback)(uint32_t), const char *name)
- {
- set_clk_out(clock_update_delegate(callback, name, nullptr, static_cast<FunctionClass *>(nullptr)));
- }
+ template <typename... T> void set_clk_out(T &&... args) { m_clk_out_func.set(std::forward<T>(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 <typename Object> void set_lcd_update_cb(Object &&cb) { m_lcd_update_func = std::forward<Object>(cb); }
- void set_lcd_update_cb(lcd_update_delegate callback) { m_lcd_update_func = callback; }
- template <class FunctionClass> 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<FunctionClass *>(nullptr)));
- }
- template <class FunctionClass> 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<FunctionClass *>(nullptr)));
- }
+ template <typename... T> void set_lcd_update_cb(T &&... args) { m_lcd_update_func.set(std::forward<T>(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<mi_xavix_normal>(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<int16_t (int which, int half)> xavix_interrupt_vector_delegate;
-
- template <typename Object> void set_vector_callback(Object &&cb) { m_vector_callback = std::forward<Object>(cb); }
- void set_vector_callback(xavix_interrupt_vector_delegate callback) { m_vector_callback = callback; }
- template <class FunctionClass> 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<FunctionClass *>(nullptr)));
- }
- template <class FunctionClass> 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<FunctionClass *>(nullptr)));
- }
-
-
#undef O
+ typedef device_delegate<int16_t (int which, int half)> xavix_interrupt_vector_delegate;
+
+ template <typename... T> void set_vector_callback(T &&... args) { m_vector_callback.set(std::forward<T>(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 <typename... T> void set_reset_callback(T &&... args) { m_reset_instr_callback.set(std::forward<T>(args)...); }
+ template <typename... T> void set_cmpild_callback(T &&... args) { m_cmpild_instr_callback.set(std::forward<T>(args)...); }
+ template <typename... T> void set_rte_callback(T &&... args) { m_rte_instr_callback.set(std::forward<T>(args)...); }
+ template <typename... T> void set_tas_write_callback(T &&... args) { m_tas_write_callback.set(std::forward<T>(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 <typename... T> void set_ram_status_map(T &&... args) { set_addrmap(AS_RAM_STATUS, std::forward<T>(args)...); }
template <typename... T> void set_ram_ports_map(T &&... args) { set_addrmap(AS_RAM_PORTS, std::forward<T>(args)...); }
template <typename... T> void set_program_memory_map(T &&... args) { set_addrmap(AS_PROGRAM_MEMORY, std::forward<T>(args)...); }
- template <typename... T> void set_bus_cycle_cb(T &&... args) { m_bus_cycle_cb = bus_cycle_delegate(std::forward<T>(args)...); }
+ template <typename... T> void set_bus_cycle_cb(T &&... args) { m_bus_cycle_cb.set(std::forward<T>(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 <class FunctionClass> 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<FunctionClass *>(nullptr)));
- }
- template <class FunctionClass> 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<FunctionClass *>(nullptr)));
- }
+ template <typename... T> void set_t0_clk_cb(T &&... args) { m_t0_clk_func.set(std::forward<T>(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<util::disasm_interface> 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 <typename Object> void set_dma_kludge_callback(Object &&cb) { m_dma_kludge_cb = std::forward<Object>(cb); }
- template <class FunctionClass> 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<FunctionClass *>(nullptr)));
- }
+ template <typename... T> void set_dma_kludge_callback(T &&... args) { m_dma_kludge_cb.set(std::forward<T>(args)...); }
- template <typename Object> void set_dma_fifo_data_available_callback(Object &&cb) { m_dma_fifo_data_available_cb = std::forward<Object>(cb); }
- template <class FunctionClass> 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<FunctionClass *>(nullptr)));
- }
-
- template <typename Object> void set_ftcsr_read_callback(Object &&cb) { m_ftcsr_read_cb = std::forward<Object>(cb); }
- template <class FunctionClass> 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<FunctionClass *>(nullptr)));
- }
+ template <typename... T> void set_dma_fifo_data_available_callback(T &&... args) { m_dma_fifo_data_available_cb.set(std::forward<T>(args)...); }
+ template <typename... T> void set_ftcsr_read_callback(T &&... args) { m_ftcsr_read_cb.set(std::forward<T>(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<util::disasm_interface> tms32082_mp_device::create_disassembler(
return std::make_unique<tms32082_mp_disassembler>();
}
-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 <typename... T> void set_command_callback(T &&... args) { m_cmd_callback.set(std::forward<T>(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 <class FunctionClass>
- 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 <typename... T>
+ void set_scanline_ind16_callback(T &&... args)
{
- set_scanline_ind16_callback(scanline_ind16_cb_delegate(callback, name, nullptr, static_cast<FunctionClass *>(nullptr)));
- }
- template <class FunctionClass>
- 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<FunctionClass *>(nullptr)));
- }
- void set_scanline_ind16_callback(scanline_ind16_cb_delegate callback)
- {
- m_scanline_ind16_cb = callback;
+ m_scanline_ind16_cb.set(std::forward<T>(args)...);
}
- // Setters for rgb32 scanline callback
- template <class FunctionClass>
- 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<FunctionClass *>(nullptr)));
- }
- template <class FunctionClass>
- 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<FunctionClass *>(nullptr)));
- }
- void set_scanline_rgb32_callback(scanline_rgb32_cb_delegate callback)
+ // Setter for rgb32 scanline callback
+ template <typename... T>
+ void set_scanline_rgb32_callback(T &&... args)
{
- m_scanline_rgb32_cb = callback;
+ m_scanline_rgb32_cb.set(std::forward<T>(args)...);
}
- // Setters for shift register input callback
- template <class FunctionClass>
- void set_shiftreg_in_callback(void (FunctionClass::*callback)(address_space &, offs_t, uint16_t *), const char *name)
+ // Setter for shift register input callback
+ template <typename... T>
+ void set_shiftreg_in_callback(T &&... args)
{
- set_shiftreg_in_callback(shiftreg_in_cb_delegate(callback, name, nullptr, static_cast<FunctionClass *>(nullptr)));
- }
- template <class FunctionClass>
- 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<FunctionClass *>(nullptr)));
- }
- void set_shiftreg_in_callback(shiftreg_in_cb_delegate callback)
- {
- m_to_shiftreg_cb = callback;
+ m_to_shiftreg_cb.set(std::forward<T>(args)...);
}
// Setters for shift register output callback
- template <class FunctionClass>
- 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<FunctionClass *>(nullptr)));
- }
- template <class FunctionClass>
- 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<FunctionClass *>(nullptr)));
- }
- void set_shiftreg_out_callback(shiftreg_out_cb_delegate callback)
+ template <typename... T>
+ void set_shiftreg_out_callback(T &&... args)
{
- m_from_shiftreg_cb = callback;
+ m_from_shiftreg_cb.set(std::forward<T>(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 <typename... T> void set_device_load(T &&... args) { m_device_image_load = load_delegate(std::forward<T>(args)...); }
- template <typename... T> void set_device_unload(T &&... args) { m_device_image_unload = unload_delegate(std::forward<T>(args)...); }
+ template <typename... T> void set_device_load(T &&... args) { m_device_image_load.set(std::forward<T>(args)...); }
+ template <typename... T> void set_device_unload(T &&... args) { m_device_image_unload.set(std::forward<T>(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 <typename... T> void set_load_callback(T &&... args) { m_load = load_delegate(std::forward<T>(args)...); }
+ template <typename... T> void set_load_callback(T &&... args) { m_load.set(std::forward<T>(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 <class FunctionClass> void set_irq_callback(void (FunctionClass::*callback)(int), const char *name)
+ template <typename... T> void set_irq_callback(T &&... args)
{
- m_irq_cb = irq_delegate(callback, name, nullptr, static_cast<FunctionClass *>(nullptr));
+ m_irq_cb.set(std::forward<T>(args)...);
}
- template <class FunctionClass> void set_dma_callback(void (FunctionClass::*callback)(uint32_t, uint32_t, int, int), const char *name)
+ template <typename... T> void set_dma_callback(T &&... args)
{
- m_dma_cb = dma_delegate(callback, name, nullptr, static_cast<FunctionClass *>(nullptr));
+ m_dma_cb.set(std::forward<T>(args)...);
}
- template <class FunctionClass> void set_fetch_callback(uint32_t (FunctionClass::*callback)(uint32_t), const char *name)
+ template <typename... T> void set_fetch_callback(T &&... args)
{
- m_fetch_cb = fetch_delegate(callback, name, nullptr, static_cast<FunctionClass *>(nullptr));
+ m_fetch_cb.set(std::forward<T>(args)...);
}
uint8_t reg_r(int offset);
@@ -40,7 +40,7 @@ protected:
virtual void device_start() override;
private:
- typedef delegate<void (void)> opcode_handler_delegate;
+ typedef delegate<void ()> 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<double (uint8_t input)> input_delegate;
// configuration helpers
- void set_input_callback(input_delegate callback) { m_input_callback = callback; }
- template <class FunctionClass> 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<FunctionClass *>(nullptr)));
- }
- template <class FunctionClass> void set_input_callback(double (FunctionClass::*callback)(uint8_t), const char *name)
- {
- set_input_callback(input_delegate(callback, name, nullptr, static_cast<FunctionClass *>(nullptr)));
- }
+ template <typename... T> void set_input_callback(T &&... args) { m_input_callback.set(std::forward<T>(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 <typename Object> void set_input_callback(Object &&cb) { m_input_cb = std::forward<Object>(cb); }
- template <class FunctionClass> void set_input_callback(const char *devname, int (FunctionClass::*callback)(int), const char *name)
- {
- set_input_callback(input_delegate(callback, name, devname, static_cast<FunctionClass *>(nullptr)));
- }
- template <class FunctionClass> void set_input_callback(int (FunctionClass::*callback)(int), const char *name)
- {
- set_input_callback(input_delegate(callback, name, nullptr, static_cast<FunctionClass *>(nullptr)));
- }
+ template <typename... T> void set_input_callback(T &&... args) { m_input_cb.set(std::forward<T>(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 <class FunctionClass> 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<FunctionClass *>(nullptr)));
- }
- template <class FunctionClass> 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<FunctionClass *>(nullptr)));
- }
+ template <typename... T> void set_ipt_convert_callback(T &&... args) { m_ipt_read_cb.set(std::forward<T>(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<amiga_autoconfig *>(this)),
- write16_delegate(FUNC(amiga_autoconfig::autoconfig_write), static_cast<amiga_autoconfig *>(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<typename Object> void set_int_daisy_chain_callback(Object &&cb) { m_int_daisy_chain_callback = std::forward<Object>(cb); }
+ template <typename... T> void set_int_daisy_chain_callback(T &&... args) { m_int_daisy_chain_callback.set(std::forward<T>(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 <class FunctionClass>
- void set_keyboard_callback(void (FunctionClass::*callback)(u8 character), const char *name)
- {
- set_keyboard_callback(output_delegate(callback, name, nullptr, static_cast<FunctionClass *>(nullptr)));
- }
- // FIXME: this should be aware of current device for resolving the tag
- template <class FunctionClass>
- void set_keyboard_callback(const char *devname, void (FunctionClass::*callback)(u8 character), const char *name)
+ template <typename... T>
+ void set_keyboard_callback(T &&... args)
{
- set_keyboard_callback(output_delegate(callback, name, devname, static_cast<FunctionClass *>(nullptr)));
+ m_keyboard_cb.set(std::forward<T>(args)...);
}
- void set_keyboard_callback(output_delegate callback) { m_keyboard_cb = callback; }
virtual ioport_constructor device_input_ports() const override;
diff --git a/src/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 <type_traits>
+#include <utility>
+
//**************************************************************************
// CONSTANTS
@@ -122,25 +125,15 @@ public:
void set_overlay_config(const laserdisc_overlay_config &config) { static_cast<laserdisc_overlay_config &>(*this) = config; }
// configuration helpers
- template <typename... T> void set_get_disc(T &&... args) { m_getdisc_callback = get_disc_delegate(std::forward<T>(args)...); }
- template <typename... T> void set_audio(T &&... args) { m_audio_callback = audio_delegate(std::forward<T>(args)...); }
- // FIXME: these should be aware of current device for resolving the tag
- template <class FunctionClass>
- 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<FunctionClass *>(nullptr)));
- }
- template <class FunctionClass>
- 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<FunctionClass *>(nullptr)));
- }
- void set_overlay(uint32_t width, uint32_t height, screen_update_rgb32_delegate &&update)
+ template <typename... T> void set_get_disc(T &&... args) { m_getdisc_callback.set(std::forward<T>(args)...); }
+ template <typename... T> void set_audio(T &&... args) { m_audio_callback.set(std::forward<T>(args)...); }
+ template <typename... T>
+ 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<T>(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<pci_bus_legacy_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 <typename... T> void set_device_read(int num, T &&... args) { m_read_callback[num] = pci_bus_legacy_read_delegate(std::forward<T>(args)...); }
- template <typename... T> void set_device_write(int num, T &&... args) { m_write_callback[num] = pci_bus_legacy_write_delegate(std::forward<T>(args)...); }
+ template <typename F, typename G>
+ void set_device(int num, F &&read, const char *rname, G &&write, const char *wname)
+ {
+ m_read_callback[num].set(std::forward<F>(read), rname);
+ m_write_callback[num].set(std::forward<G>(write), wname);
+ }
+
+ template <typename T, typename F, typename G>
+ 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<F>(read), rname);
+ m_write_callback[num].set(target, std::forward<G>(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 <typename Object> void set_out_frame_callback(Object &&cb) { m_out_frame_cb = std::forward<Object>(cb); }
- void set_out_frame_callback(out_frame_delegate callback) { m_out_frame_cb = callback; }
- template <class FunctionClass> 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<FunctionClass *>(nullptr)));
- }
- template <class FunctionClass> 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<FunctionClass *>(nullptr)));
- }
+ template <typename... T> void set_out_frame_callback(T &&... args) { m_out_frame_cb.set(std::forward<T>(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<int (int *, int *)> 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<int (int *, int *)> touch_cb;
- template <typename... T> void set_touch_callback(T &&... args) { m_out_touch_cb = touch_cb(std::forward<T>(args)...); }
+ template <typename... T> void set_touch_callback(T &&... args) { m_out_touch_cb.set(std::forward<T>(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 <unsigned P> void set_input_tag(const char *tag) { m_analog_ports[P].set_tag(tag); }
- template <unsigned P> void set_input_cb(port_read_delegate callback) { m_analog_input_cb[P] = callback; }
- template <unsigned P, class FunctionClass> void set_input_cb(const char *devname, ioport_value (FunctionClass::*callback)(), const char *name)
- {
- set_input_cb<P>(port_read_delegate(callback, name, devname, static_cast<FunctionClass *>(nullptr)));
- }
- template <unsigned P, class FunctionClass> void set_input_cb(ioport_value (FunctionClass::*callback)(), const char *name)
- {
- set_input_cb<P>(port_read_delegate(callback, name, nullptr, static_cast<FunctionClass *>(nullptr)));
- }
+ template <unsigned P, typename... T> void set_input_cb(T &&... args) { m_analog_input_cb[P].set(std::forward<T>(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 <class FunctionClass>
- void set_keyboard_callback(void (FunctionClass::*callback)(u8 character), const char *name)
+ template <typename... T>
+ void set_keyboard_callback(T &&... args)
{
- set_keyboard_callback(output_delegate(callback, name, nullptr, static_cast<FunctionClass *>(nullptr)));
+ m_keyboard_cb.set(std::forward<T>(args)...);
}
- // FIXME: this should be aware of current device for resolving the tag
- template <class FunctionClass>
- 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<FunctionClass *>(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<netlist_mame_analog_output_device::output_delegate> m_callback; // TODO: change to std::optional for C++17
netlist_mame_cpu_device *m_cpu_device;
netlist::state_var<nl_double> 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<netlist_mame_logic_output_device::output_delegate> m_callback; // TODO: change to std::optional for C++17
netlist_mame_cpu_device *m_cpu_device;
netlist::state_var<netlist::netlist_sig_t> 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<NETLIB_NAME(analog_callback)>(nlstate, dfqn);
//static_cast<NETLIB_NAME(analog_callback) *>(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<NETLIB_NAME(logic_callback)>(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 <class FC>
- void set_params(const char *in_name, void (FC::*callback)(const double, const attotime &),
- const char *name, const char *tag)
+ template <typename... T> 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<T>(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 <class FunctionClass> void set_params(const char *in_name, void (FunctionClass::*callback)(const int, const attotime &), const char *name)
+ template <typename... T> void set_params(const char *in_name, T &&... args)
{
- set_params(in_name, output_delegate(callback, name, nullptr, static_cast<FunctionClass *>(nullptr)));
- }
- template <class FunctionClass> 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<FunctionClass *>(nullptr)));
+ m_in = in_name;
+ m_delegate.set(std::forward<T>(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 <typename Object> void set_custom_handler(Object &&cb)
+ template <typename... T> void set_custom_handler(T &&... args)
{
m_default_value = DEFAULT_CUSTOM;
- m_custom_handler = std::forward<Object>(cb);
- }
- template <class FunctionClass> 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<FunctionClass *>(nullptr)));
- }
- template <class FunctionClass> 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<FunctionClass *>(nullptr)));
+ m_custom_handler.set(std::forward<T>(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<u8[]>(0x100);
m_sprram_buffer = make_unique_clear<u8[]>(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<uint8_t []>(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 <class FunctionClass>
- void set_keyboard_callback(void (FunctionClass::*callback)(u8 character), const char *name)
+ template <typename... T>
+ void set_keyboard_callback(T &&... args)
{
- set_keyboard_callback(generic_keyboard_device::output_delegate(callback, name, nullptr, static_cast<FunctionClass *>(nullptr)));
+ m_keyboard_cb.set(std::forward<T>(args)...);
}
- // FIXME: this should be aware of current device for resolving the tag
- template <class FunctionClass>
- 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<FunctionClass *>(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<screen_device *>(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<screen_device>(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 <typename Object> void configure_generic(Object &&cb)
+ template <typename... T> void configure_generic(T &&... args)
{
m_type = TIMER_TYPE_GENERIC;
- m_callback = std::forward<Object>(cb);
- }
- template <class FunctionClass> void configure_generic(void (FunctionClass::*callback)(timer_device &, void *, s32), const char *name)
- {
- configure_generic(expired_delegate(callback, name, nullptr, static_cast<FunctionClass *>(nullptr)));
+ m_callback.set(std::forward<T>(args)...);
}
- template <class FunctionClass> 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<FunctionClass *>(nullptr)));
- }
-
- template <typename Object> void configure_periodic(Object &&cb, const attotime &period)
+ template <typename F> void configure_periodic(F &&callback, const char *name, const attotime &period)
{
m_type = TIMER_TYPE_PERIODIC;
- m_callback = std::forward<Object>(cb);
+ m_callback.set(std::forward<F>(callback), name);
m_period = period;
}
- template <class FunctionClass> 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<FunctionClass *>(nullptr)), period);
- }
-
- template <class FunctionClass> void configure_periodic(const char *devname, void (FunctionClass::*callback)(timer_device &, void *, s32),
- const char *name, const attotime &period)
+ template <typename T, typename F> void configure_periodic(T &&target, F &&callback, const char *name, const attotime &period)
{
- configure_periodic(expired_delegate(callback, name, devname, static_cast<FunctionClass *>(nullptr)), period);
+ m_type = TIMER_TYPE_PERIODIC;
+ m_callback.set(std::forward<T>(target), std::forward<F>(callback), name);
+ m_period = period;
}
- template <typename Object> void configure_scanline(Object &&cb, const char *screen, int first_vpos, int increment)
+ template <typename F, typename U> void configure_scanline(F &&callback, const char *name, U &&screen, int first_vpos, int increment)
{
m_type = TIMER_TYPE_SCANLINE;
- m_callback = std::forward<Object>(cb);
- m_screen_tag = screen;
+ m_callback.set(std::forward<F>(callback), name);
+ m_screen.set_tag(std::forward<U>(screen));
m_first_vpos = first_vpos;
m_increment = increment;
}
- template <class FunctionClass> 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<FunctionClass *>(nullptr)), screen, first_vpos, increment);
- }
- template <class FunctionClass> 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 <typename T, typename F, typename U> 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<FunctionClass *>(nullptr)), screen, first_vpos, increment);
+ m_type = TIMER_TYPE_SCANLINE;
+ m_callback.set(std::forward<T>(target), std::forward<F>(callback), name);
+ m_screen.set_tag(std::forward<U>(screen));
+ m_first_vpos = first_vpos;
+ m_increment = increment;
}
- template <typename Object> void set_callback(Object &&cb) { m_callback = std::forward<Object>(cb); }
- template <class FunctionClass> void set_callback(void (FunctionClass::*callback)(timer_device &, void *, s32), const char *name)
- {
- set_callback(expired_delegate(callback, name, nullptr, static_cast<FunctionClass *>(nullptr)));
- }
+ template <typename... T> void set_callback(T &&... args) { m_callback.set(std::forward<T>(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<screen_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 <typename... T> void set_get_analogue_callback(T &&... args) { m_get_analogue_cb = get_analogue_delegate(std::forward<T>(args)...); }
- template <typename... T> void set_eoc_callback(T &&... args) { m_eoc_cb = eoc_delegate(std::forward<T>(args)...); }
+ template <typename... T> void set_get_analogue_callback(T &&... args) { m_get_analogue_cb.set(std::forward<T>(args)...); }
+ template <typename... T> void set_eoc_callback(T &&... args) { m_eoc_cb.set(std::forward<T>(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 <class FunctionClass> void set_ready_callback(const char *devname, void (FunctionClass::*callback)(), const char *name)
- {
- set_ready_callback(ready_callback(callback, name, devname, static_cast<FunctionClass *>(nullptr)));
- }
- template <class FunctionClass> void set_ready_callback(void (FunctionClass::*callback)(), const char *name)
- {
- set_ready_callback(ready_callback(callback, name, nullptr, static_cast<FunctionClass *>(nullptr)));
- }
+ template <typename... T> void set_ready_callback(T &&... args) { m_ready_callback.set(std::forward<T>(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<uint8_t (uint16_t pma, uint8_t cma, uint8_t pmd)> char_ram_read_delegate;
+ typedef device_delegate<void (uint16_t pma, uint8_t cma, uint8_t pmd, uint8_t data)> char_ram_write_delegate;
+ typedef device_delegate<int (uint16_t pma, uint8_t cma, uint8_t pmd)> pcb_read_delegate;
+
// construction/destruction
template <typename T>
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<uint8_t (uint16_t pma, uint8_t cma, uint8_t pmd)> char_ram_read_delegate;
- void set_char_ram_read_callback(char_ram_read_delegate callback) { m_in_char_ram_func = callback; }
- template <class FunctionClass> 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<FunctionClass *>(nullptr)));
- }
- template <class FunctionClass> 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<FunctionClass *>(nullptr)));
- }
-
- typedef device_delegate<void (uint16_t pma, uint8_t cma, uint8_t pmd, uint8_t data)> char_ram_write_delegate;
- void set_char_ram_write_callback(char_ram_write_delegate callback) { m_out_char_ram_func = callback; }
- template <class FunctionClass> 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<FunctionClass *>(nullptr)));
- }
- template <class FunctionClass> 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<FunctionClass *>(nullptr)));
- }
-
- typedef device_delegate<int (uint16_t pma, uint8_t cma, uint8_t pmd)> pcb_read_delegate;
- void set_pcb_read_callback(pcb_read_delegate callback) { m_in_pcb_func = callback; }
- template <class FunctionClass> 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<FunctionClass *>(nullptr)));
- }
- template <class FunctionClass> 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<FunctionClass *>(nullptr)));
- }
+ template <typename... T> void set_char_ram_read_callback(T &&... args) { m_in_char_ram_func.set(std::forward<T>(args)...); }
+ template <typename... T> void set_char_ram_write_callback(T &&... args) { m_out_char_ram_func.set(std::forward<T>(args)...); }
+ template <typename... T> void set_pcb_read_callback(T &&... args) { m_in_pcb_func.set(std::forward<T>(args)...); }
// helper functions
template <typename T, typename U> 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 <algorithm>
/* 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<int16_t[]>(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 <typename... T> void set_ext_input_callback(T &&... args) { m_ext_cb = ext_input_delegate(std::forward<T>(args)...); }
+ template <typename... T> void set_ext_input_callback(T &&... args) { m_ext_cb.set(std::forward<T>(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<void (double left, double right)> cb_delegate;
+ using apan_delegate = device_delegate<void (double left, double right)>;
// 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 <class FunctionClass> 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<FunctionClass *>(nullptr)));
- }
- template <class FunctionClass> void set_analog_callback(void (FunctionClass::*callback)(double, double), const char *name)
- {
- set_analog_callback(cb_delegate(callback, name, nullptr, static_cast<FunctionClass *>(nullptr)));
- }
+ template <typename... T> void set_analog_callback(T &&... args) { m_apan_cb.set(std::forward<T>(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<void (int attenuation_right, int attenuation_left, bool loudness)> volume_delegate;
auto select() { return m_select_cb.bind(); }
- void set_volume_callback(volume_delegate callback) { m_volume_cb = callback; }
- template <class FunctionClass> 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<FunctionClass *>(nullptr)));
- }
- template <class FunctionClass> void set_volume_callback(void (FunctionClass::*callback)(int, int, bool), const char *name)
- {
- set_volume_callback(volume_delegate(callback, name, nullptr, static_cast<FunctionClass *>(nullptr)));
- }
+ template <typename... T> void set_volume_callback(T &&... args) { m_volume_cb.set(std::forward<T>(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<POKEY_CHANNELS; i++)
+ for (int i=0; i<POKEY_CHANNELS; i++)
{
m_channel[i].m_parent = this;
m_channel[i].m_INTMask = 0;
@@ -202,8 +203,8 @@ void pokey_device::device_start()
m_channel[CHAN4].m_INTMask = IRQ_TIMR4;
// bind callbacks
- m_keyboard_r.bind_relative_to(*owner());
- m_irq_f.bind_relative_to(*owner());
+ m_keyboard_r.resolve();
+ m_irq_f.resolve();
/* calculate the A/D times
* In normal, slow mode (SKCTL bit SK_PADDLE is clear) the conversion
@@ -247,15 +248,8 @@ void pokey_device::device_start()
m_kbd_state = 0;
/* reset more internal state */
- for (i=0; i<3; i++)
- {
- m_clock_cnt[i] = 0;
- }
-
- for (i=0; i<8; i++)
- {
- m_POTx[i] = 0;
- }
+ std::fill(std::begin(m_clock_cnt), std::end(m_clock_cnt), 0);
+ std::fill(std::begin(m_POTx), std::end(m_POTx), 0);
for (devcb_read8 &cb : m_pot_r_cb)
cb.resolve();
@@ -270,7 +264,7 @@ void pokey_device::device_start()
timer_alloc(SYNC_POT);
timer_alloc(SYNC_SET_IRQST);
- for (i=0; i<POKEY_CHANNELS; i++)
+ for (int i=0; i<POKEY_CHANNELS; i++)
{
save_item(NAME(m_channel[i].m_borrow_cnt), i);
save_item(NAME(m_channel[i].m_counter), i);
diff --git a/src/devices/sound/pokey.h b/src/devices/sound/pokey.h
index 7e63e89e54d..b35f76a17ab 100644
--- a/src/devices/sound/pokey.h
+++ b/src/devices/sound/pokey.h
@@ -144,26 +144,10 @@ public:
/* k543210 = k5 ... k0 returns bit0: kr1, bit1: kr2 */
/* all are, in contrast to actual hardware, ACTIVE_HIGH */
typedef device_delegate<uint8_t (uint8_t k543210)> kb_cb_delegate;
- void set_keyboard_callback(kb_cb_delegate callback) { m_keyboard_r = callback; }
- template <class FunctionClass> 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<FunctionClass *>(nullptr)));
- }
- template <class FunctionClass> void set_keyboard_callback(uint8_t (FunctionClass::*callback)(uint8_t), const char *name)
- {
- set_keyboard_callback(kb_cb_delegate(callback, name, nullptr, static_cast<FunctionClass *>(nullptr)));
- }
+ template <typename... T> void set_keyboard_callback(T &&... args) { m_keyboard_r.set(std::forward<T>(args)...); }
typedef device_delegate<void (int mask)> int_cb_delegate;
- void set_interrupt_callback(int_cb_delegate callback) { m_irq_f = callback; }
- template <class FunctionClass> 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<FunctionClass *>(nullptr)));
- }
- template <class FunctionClass> void set_interrupt_callback(void (FunctionClass::*callback)(int), const char *name)
- {
- set_interrupt_callback(int_cb_delegate(callback, name, nullptr, static_cast<FunctionClass *>(nullptr)));
- }
+ template <typename... T> void set_interrupt_callback(T &&... args) { m_irq_f.set(std::forward<T>(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 <class FunctionClass> 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<FunctionClass *>(nullptr)));
- }
- template <class FunctionClass> void set_end_callback(void (FunctionClass::*callback)(int), const char *name)
- {
- set_end_callback(sample_end_cb_delegate(callback, name, nullptr, static_cast<FunctionClass *>(nullptr)));
- }
+ template <typename... T> void set_end_callback(T &&... args) { m_sample_end_cb.set(std::forward<T>(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 <class FunctionClass> 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<FunctionClass *>(nullptr)));
- }
- template <class FunctionClass> void set_samples_start_callback(void (FunctionClass::*callback)(), const char *name)
- {
- set_samples_start_callback(start_cb_delegate(callback, name, nullptr, static_cast<FunctionClass *>(nullptr)));
- }
+ template <typename... T> void set_samples_start_callback(T &&...args) { m_samples_start_cb.set(std::forward<T>(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<u16[]>(0x10000 / 2);
m_cram = std::make_unique<u16[]>(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 <typename T> void set_ext_palette(T &&tag) { m_ext_palette.set_tag(std::forward<T>(tag)); }
// Temporary solution while 32x VDP mixing and scanline interrupting is moved outside MD VDP
- template <typename... T> void set_md_32x_scanline(T &&... args) { m_32x_scanline_func = md_32x_scanline_delegate(std::forward<T>(args)...); }
- template <typename... T> void set_md_32x_interrupt(T &&... args) { m_32x_interrupt_func = md_32x_interrupt_delegate(std::forward<T>(args)...); }
- template <typename... T> void set_md_32x_scanline_helper(T &&... args) { m_32x_scanline_helper_func = md_32x_scanline_helper_delegate(std::forward<T>(args)...); }
+ template <typename... T> void set_md_32x_scanline(T &&... args) { m_32x_scanline_func.set(std::forward<T>(args)...); }
+ template <typename... T> void set_md_32x_interrupt(T &&... args) { m_32x_interrupt_func.set(std::forward<T>(args)...); }
+ template <typename... T> void set_md_32x_scanline_helper(T &&... args) { m_32x_scanline_helper_func.set(std::forward<T>(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 <typename... T> void set_display_callback(T &&... args) { m_display_cb = draw_character_delegate(std::forward<T>(args)...); }
+ template <typename... T> void set_display_callback(T &&... args) { m_display_cb.set(std::forward<T>(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 <typename... T> void set_begin_update_callback(T &&... args) { m_begin_update_cb = begin_update_delegate(std::forward<T>(args)...); }
- template <typename... T> void set_row_update_callback(T &&... args) { m_row_update_cb = row_update_delegate(std::forward<T>(args)...); }
- template <typename... T> void set_end_update_callback(T &&... args) { m_end_update_cb = end_update_delegate(std::forward<T>(args)...); }
+ template <typename... T> void set_begin_update_callback(T &&... args) { m_begin_update_cb.set(std::forward<T>(args)...); }
+ template <typename... T> void set_row_update_callback(T &&... args) { m_row_update_cb.set(std::forward<T>(args)...); }
+ template <typename... T> void set_end_update_callback(T &&... args) { m_end_update_cb.set(std::forward<T>(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 <typename Object> void set_color_update_callback(Object &&cb) { m_color_update_cb = std::forward<Object>(cb); }
- void set_color_update_callback(color_update_delegate callback) { m_color_update_cb = callback; }
- template <class FunctionClass> 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<FunctionClass *>(nullptr)));
- }
- template <class FunctionClass> 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<FunctionClass *>(nullptr)));
- }
+ template <typename... T> void set_color_update_callback(T &&... args) { m_color_update_cb.set(std::forward<T>(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 <typename... T> void set_pixel_update_cb(T &&... args) { m_pixel_update_cb = pixel_update_delegate(std::forward<T>(args)...); }
- void set_pixel_update_cb(pixel_update_delegate callback) { m_pixel_update_cb = callback; }
- template <class FunctionClass> 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<FunctionClass *>(nullptr)));
- }
- template <class FunctionClass> 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<FunctionClass *>(nullptr)));
- }
+ template <typename... T> void set_pixel_update_cb(T &&... args) { m_pixel_update_cb.set(std::forward<T>(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 <typename... T> void set_display_callback(T &&... args) { m_display_cb = display_delegate(std::forward<T>(args)...); }
+ template <typename... T> void set_display_callback(T &&... args) { m_display_cb.set(std::forward<T>(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 <class FunctionClass> 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<FunctionClass *>(nullptr)));
- }
+ template <typename... T> void set_update_row_callback(T &&... args) { m_update_row_cb.set(std::forward<T>(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 <typename... T> void set_display_callback(T &&... args) { m_display_cb = draw_character_delegate(std::forward<T>(args)...); }
- void set_display_callback(draw_character_delegate callback) { m_display_cb = callback; }
- template <class FunctionClass> 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<FunctionClass *>(nullptr)));
- }
- template <class FunctionClass> 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<FunctionClass *>(nullptr)));
- }
+ template <typename... T> void set_display_callback(T &&... args) { m_display_cb.set(std::forward<T>(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 <typename... T> void set_reconfigure_callback(T &&... args) { m_reconfigure_cb = reconfigure_delegate(std::forward<T>(args)...); }
- template <typename... T> void set_begin_update_callback(T &&... args) { m_begin_update_cb = begin_update_delegate(std::forward<T>(args)...); }
- template <typename... T> void set_update_row_callback(T &&... args) { m_update_row_cb = update_row_delegate(std::forward<T>(args)...); }
- template <typename... T> void set_end_update_callback(T &&... args) { m_end_update_cb = end_update_delegate(std::forward<T>(args)...); }
- template <typename... T> void set_on_update_addr_change_callback(T &&... args) { m_on_update_addr_changed_cb = on_update_addr_changed_delegate(std::forward<T>(args)...); }
+ template <typename... T> void set_reconfigure_callback(T &&... args) { m_reconfigure_cb.set(std::forward<T>(args)...); }
+ template <typename... T> void set_begin_update_callback(T &&... args) { m_begin_update_cb.set(std::forward<T>(args)...); }
+ template <typename... T> void set_update_row_callback(T &&... args) { m_update_row_cb.set(std::forward<T>(args)...); }
+ template <typename... T> void set_end_update_callback(T &&... args) { m_end_update_cb.set(std::forward<T>(args)...); }
+ template <typename... T> void set_on_update_addr_change_callback(T &&... args) { m_on_update_addr_changed_cb.set(std::forward<T>(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 <typename Object> void set_get_char_rom(Object &&cb) { m_charrom_cb = std::forward<Object>(cb); }
- void set_get_char_rom(get_char_rom_delegate cb) { m_charrom_cb = cb; }
- template <class FunctionClass> 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<FunctionClass *>(nullptr)));
- }
- template <class FunctionClass> 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<FunctionClass *>(nullptr)));
- }
+ template <typename... T> void set_get_char_rom(T &&... args) { m_charrom_cb.set(std::forward<T>(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 <typename... T> void set_pixel_update_cb(T &&... args) { m_pixel_update_cb = pixel_update_delegate(std::forward<T>(args)...); }
+ template <typename... T> void set_pixel_update_cb(T &&... args) { m_pixel_update_cb.set(std::forward<T>(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 <typename... T> void set_screen_update_cb(T &&... args) { m_screen_update_cb = screen_update_delegate(std::forward<T>(args)...); }
+ template <typename... T> void set_screen_update_cb(T &&... args) { m_screen_update_cb.set(std::forward<T>(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 <typename... T> void set_scanline_callback(T &&... args) { m_scanline_callback_proc.set(std::forward<T>(args)...); m_scanline_callback_proc.resolve(); /* FIXME: if this is supposed to be set at config time, it should be resolved on start */ }
+ template <typename... T> void set_hblank_callback(T &&... args) { m_hblank_callback_proc.set(std::forward<T>(args)...); m_hblank_callback_proc.resolve(); /* FIXME: if this is supposed to be set at config time, it should be resolved on start */ }
+ template <typename... T> void set_vidaccess_callback(T &&... args) { m_vidaccess_callback_proc.set(std::forward<T>(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 <typename... T> void set_latch(T &&... args) { m_latch.set(std::forward<T>(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<void (bitmap_rgb32 &bitmap, int x, int y, uint8_t linecount, uint8_t charcode, uint8_t attrcode, uint16_t address, bool cursor, bool dw, bool lg, bool ul, bool blink)> 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 <class FunctionClass>
- 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<FunctionClass *>(nullptr)));
- }
- template <class FunctionClass>
- 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<FunctionClass *>(nullptr)));
- }
- void set_display_callback(draw_character_delegate callback)
- {
- m_display_cb = callback;
- }
+ template <typename... T> void set_display_callback(T &&... args) { m_display_cb.set(std::forward<T>(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 <class FunctionClass> 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<FunctionClass *>(nullptr)));
- }
- template <class FunctionClass> 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<FunctionClass *>(nullptr)));
- }
+ template <typename... T> void set_screen_update_cb(T &&... args) { m_screen_update_cb.set(std::forward<T>(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 <typename... T> void set_display_callback(T &&... args) { m_display_cb = draw_character_delegate(std::forward<T>(args)...); }
- void set_display_callback(draw_character_delegate callback) { m_display_cb = callback; }
- template <class FunctionClass> 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<FunctionClass *>(nullptr)));
- }
- template <class FunctionClass> 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<FunctionClass *>(nullptr)));
- }
+ template <typename... T> void set_display_callback(T &&... args) { m_display_cb.set(std::forward<T>(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<void (bitmap_rgb32 &bitmap, int y, int x, uint32_t address)> display_pixels_delegate;
- typedef device_delegate<void (bitmap_rgb32 &bitmap, uint32_t addr, int y, int wd, int pitch, int lr, int cursor_on, int cursor_addr)> draw_text_delegate;
+ using display_pixels_delegate = device_delegate<void (bitmap_rgb32 &bitmap, int y, int x, uint32_t address)>;
+ using draw_text_delegate = device_delegate<void (bitmap_rgb32 &bitmap, uint32_t addr, int y, int wd, int pitch, int lr, int cursor_on, int cursor_addr)>;
// 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 <class FunctionClass>
- 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<FunctionClass *>(nullptr));
- }
- template <class FunctionClass>
- 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<FunctionClass *>(nullptr));
- }
- template <class FunctionClass>
- 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<FunctionClass *>(nullptr));
- }
- template <class FunctionClass>
- 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<FunctionClass *>(nullptr));
- }
- template <class FunctionClass>
- 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<FunctionClass *>(nullptr));
- }
- template <class FunctionClass>
- 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<FunctionClass *>(nullptr));
- }
- template <class FunctionClass>
- 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<FunctionClass *>(nullptr));
- }
- template <class FunctionClass>
- 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<FunctionClass *>(nullptr));
- }
+ template <typename... T> void set_display_pixels(T &&... args) { m_display_cb.set(std::forward<T>(args)...); }
+ template <typename... T> void set_draw_text(T &&... args) { m_draw_text_cb.set(std::forward<T>(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<std::reference_wrapper<device_t>, 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 : "<unspecified>");
+ 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<std::reference_wrapper<device_t>, 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 : "<unspecified>");
+ 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<T, Reqd> &finder) {
const std::pair<device_t &, const char *> 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 <typename T, typename Ret, typename... Params>
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<T>(m_devbase))); }
+ { return r(emu::detail::make_delegate(*make_pointer<T>(m_devbase), read, read_name)); }
template <typename T, typename Ret, typename... Params>
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<T>(m_devbase))); }
+ { return w(emu::detail::make_delegate(*make_pointer<T>(m_devbase), write, write_name)); }
template <typename T, typename RetR, typename... ParamsR, typename U, typename RetW, typename... ParamsW>
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<T>(m_devbase))).w(emu::detail::make_delegate(write, write_name, m_devbase.tag(), make_pointer<U>(m_devbase))); }
+ { return r(emu::detail::make_delegate(*make_pointer<T>(m_devbase), read, read_name)).w(emu::detail::make_delegate(*make_pointer<U>(m_devbase), write, write_name)); }
template <typename T, typename Ret, typename... Params>
address_map_entry &m(Ret (T::*map)(Params...), const char *map_name)
@@ -204,15 +204,15 @@ public:
// device tag -> delegate converter
template <typename T, typename Ret, typename... Params>
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 <typename T, typename Ret, typename... Params>
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 <typename T, typename RetR, typename... ParamsR, typename U, typename RetW, typename... ParamsW>
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 <typename T, typename Ret, typename... Params>
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 <typename T, typename U, typename Ret, typename... Params>
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<U>(obj))); }
+ { return r(emu::detail::make_delegate(*make_pointer<U>(obj), read, read_name)); }
template <typename T, typename U, typename Ret, typename... Params>
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<U>(obj))); }
+ { return w(emu::detail::make_delegate(*make_pointer<U>(obj), write, write_name)); }
template <typename T, typename U, typename RetR, typename... ParamsR, typename V, typename RetW, typename... ParamsW>
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<U>(obj))).w(emu::detail::make_delegate(write, write_name, get_tag(obj), make_pointer<V>(obj))); }
+ { return r(emu::detail::make_delegate(*make_pointer<U>(obj), read, read_name)).w(emu::detail::make_delegate(make_pointer<V>(obj), write, write_name)); }
template <typename T, typename U, typename Ret, typename... Params>
address_map_entry &m(T &obj, Ret (U::*map)(Params...), const char *map_name)
@@ -241,39 +241,39 @@ public:
template <typename T, bool Reqd, typename U, typename Ret, typename... Params>
address_map_entry &r(device_finder<T, Reqd> &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<U>(device)));
+ return r(emu::detail::make_delegate(device, DEVICE_SELF, read, read_name));
}
template <typename T, bool Reqd, typename U, typename Ret, typename... Params>
address_map_entry &r(const device_finder<T, Reqd> &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<U>(device)));
+ return r(emu::detail::make_delegate(device, DEVICE_SELF, read, read_name));
}
template <typename T, bool Reqd, typename U, typename Ret, typename... Params>
address_map_entry &w(device_finder<T, Reqd> &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<U>(device)));
+ return w(emu::detail::make_delegate(device, DEVICE_SELF, write, write_name));
}
template <typename T, bool Reqd, typename U, typename Ret, typename... Params>
address_map_entry &w(const device_finder<T, Reqd> &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<U>(device)));
+ return w(emu::detail::make_delegate(device, DEVICE_SELF, write, write_name));
}
template <typename T, bool Reqd, typename U, typename RetR, typename... ParamsR, typename V, typename RetW, typename... ParamsW>
address_map_entry &rw(device_finder<T, Reqd> &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<U>(device)))
- .w(emu::detail::make_delegate(write, write_name, device.tag(), make_pointer<V>(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 <typename T, bool Reqd, typename U, typename RetR, typename... ParamsR, typename V, typename RetW, typename... ParamsW>
address_map_entry &rw(const device_finder<T, Reqd> &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<U>(device)))
- .w(emu::detail::make_delegate(write, write_name, device.tag(), make_pointer<V>(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 <typename T, bool Reqd, typename U, typename Ret, typename... Params>
@@ -290,53 +290,41 @@ public:
// lambda -> delegate converter
- template<typename _lr> address_map_entry &lr8(const char *name, _lr &&read) {
- return r(emu::detail::make_lr8_delegate(read, name));
- }
+ template <typename T> address_map_entry &lr8(T &&read, const char *name)
+ { return r(emu::detail::make_lr8_delegate(m_devbase, std::forward<T>(read), name)); }
- template<typename _lr> address_map_entry &lr16(const char *name, _lr &&read) {
- return r(emu::detail::make_lr16_delegate(read, name));
- }
+ template <typename T> address_map_entry &lr16(T &&read, const char *name)
+ { return r(emu::detail::make_lr16_delegate(m_devbase, std::forward<T>(read), name)); }
- template<typename _lr> address_map_entry &lr32(const char *name, _lr &&read) {
- return r(emu::detail::make_lr32_delegate(read, name));
- }
+ template <typename T> address_map_entry &lr32(T &&read, const char *name)
+ { return r(emu::detail::make_lr32_delegate(m_devbase, std::forward<T>(read), name)); }
- template<typename _lr> address_map_entry &lr64(const char *name, _lr &&read) {
- return r(emu::detail::make_lr64_delegate(read, name));
- }
+ template <typename T> address_map_entry &lr64(T &&read, const char *name)
+ { return r(emu::detail::make_lr64_delegate(m_devbase, std::forward<T>(read), name)); }
- template<typename _lw> address_map_entry &lw8(const char *name, _lw &&write) {
- return w(emu::detail::make_lw8_delegate(write, name));
- }
+ template <typename T> address_map_entry &lw8(T &&write, const char *name)
+ { return w(emu::detail::make_lw8_delegate(m_devbase, std::forward<T>(write), name)); }
- template<typename _lw> address_map_entry &lw16(const char *name, _lw &&write) {
- return w(emu::detail::make_lw16_delegate(write, name));
- }
+ template <typename T> address_map_entry &lw16(T &&write, const char *name)
+ { return w(emu::detail::make_lw16_delegate(m_devbase, std::forward<T>(write), name)); }
- template<typename _lw> address_map_entry &lw32(const char *name, _lw &&write) {
- return w(emu::detail::make_lw32_delegate(write, name));
- }
+ template <typename T> address_map_entry &lw32(T &&write, const char *name)
+ { return w(emu::detail::make_lw32_delegate(m_devbase, std::forward<T>(write), name)); }
- template<typename _lw> address_map_entry &lw64(const char *name, _lw &&write) {
- return w(emu::detail::make_lw64_delegate(write, name));
- }
+ template <typename T> address_map_entry &lw64(T &&write, const char *name)
+ { return w(emu::detail::make_lw64_delegate(m_devbase, std::forward<T>(write), name)); }
- template<typename _lr, typename _lw> 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 <typename T, typename U> 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<T>(read), read_name)).w(emu::detail::make_lw8_delegate(m_devbase, std::forward<U>(write), write_name)); }
- template<typename _lr, typename _lw> 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 <typename T, typename U> 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<T>(read), read_name)).w(emu::detail::make_lw16_delegate(m_devbase, std::forward<U>(write), write_name)); }
- template<typename _lr, typename _lw> 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 <typename T, typename U> 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<T>(read), read_name)).w(emu::detail::make_lw32_delegate(m_devbase, std::forward<U>(write), write_name)); }
- template<typename _lr, typename _lw> 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 <typename T, typename U> 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<T>(read), read_name)).w(emu::detail::make_lw64_delegate(m_devbase, std::forward<U>(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<void (int)> write_line_delegate;
namespace emu { namespace detail {
-template <typename T, typename Enable = void> struct read_line_device_class { };
-template <typename T, typename Enable = void> struct write_line_device_class { };
-
-template <typename T>
-inline read_line_delegate make_delegate(T &&func, char const *name, char const *tag, rw_device_class_t<read_line_delegate, std::remove_reference_t<T> > *obj)
-{ return read_line_delegate(func, name, tag, obj); }
-
-template <typename T>
-inline write_line_delegate make_delegate(T &&func, char const *name, char const *tag, rw_device_class_t<write_line_delegate, std::remove_reference_t<T> > *obj)
-{ return write_line_delegate(func, name, tag, obj); }
+template <typename T> struct rw_delegate_type<T, void_t<rw_device_class_t<read_line_delegate, std::remove_reference_t<T> > > > { using type = read_line_delegate; using device_class = rw_device_class_t<type, std::remove_reference_t<T> >; };
+template <typename T> struct rw_delegate_type<T, void_t<rw_device_class_t<write_line_delegate, std::remove_reference_t<T> > > > { using type = write_line_delegate; using device_class = rw_device_class_t<type, std::remove_reference_t<T> >; };
} } // namespace emu::detail
@@ -115,43 +107,8 @@ protected:
template <typename Input, typename Result, typename Func> using transform_result_t = typename transform_result<Input, Result, Func>::type;
// Mapping method types to delegate types
- template <typename T, typename Enable = void> struct delegate_type;
- template <typename T> struct delegate_type<T, void_t<emu::detail::rw_device_class_t<read8_delegate, std::remove_reference_t<T> > > > { using type = read8_delegate; using device_class = emu::detail::rw_device_class_t<type, std::remove_reference_t<T> >; };
- template <typename T> struct delegate_type<T, void_t<emu::detail::rw_device_class_t<read16_delegate, std::remove_reference_t<T> > > > { using type = read16_delegate; using device_class = emu::detail::rw_device_class_t<type, std::remove_reference_t<T> >; };
- template <typename T> struct delegate_type<T, void_t<emu::detail::rw_device_class_t<read32_delegate, std::remove_reference_t<T> > > > { using type = read32_delegate; using device_class = emu::detail::rw_device_class_t<type, std::remove_reference_t<T> >; };
- template <typename T> struct delegate_type<T, void_t<emu::detail::rw_device_class_t<read64_delegate, std::remove_reference_t<T> > > > { using type = read64_delegate; using device_class = emu::detail::rw_device_class_t<type, std::remove_reference_t<T> >; };
- template <typename T> struct delegate_type<T, void_t<emu::detail::rw_device_class_t<read8s_delegate, std::remove_reference_t<T> > > > { using type = read8s_delegate; using device_class = emu::detail::rw_device_class_t<type, std::remove_reference_t<T> >; };
- template <typename T> struct delegate_type<T, void_t<emu::detail::rw_device_class_t<read16s_delegate, std::remove_reference_t<T> > > > { using type = read16s_delegate; using device_class = emu::detail::rw_device_class_t<type, std::remove_reference_t<T> >; };
- template <typename T> struct delegate_type<T, void_t<emu::detail::rw_device_class_t<read32s_delegate, std::remove_reference_t<T> > > > { using type = read32s_delegate; using device_class = emu::detail::rw_device_class_t<type, std::remove_reference_t<T> >; };
- template <typename T> struct delegate_type<T, void_t<emu::detail::rw_device_class_t<read64s_delegate, std::remove_reference_t<T> > > > { using type = read64s_delegate; using device_class = emu::detail::rw_device_class_t<type, std::remove_reference_t<T> >; };
- template <typename T> struct delegate_type<T, void_t<emu::detail::rw_device_class_t<read8sm_delegate, std::remove_reference_t<T> > > > { using type = read8sm_delegate; using device_class = emu::detail::rw_device_class_t<type, std::remove_reference_t<T> >; };
- template <typename T> struct delegate_type<T, void_t<emu::detail::rw_device_class_t<read16sm_delegate, std::remove_reference_t<T> > > > { using type = read16sm_delegate; using device_class = emu::detail::rw_device_class_t<type, std::remove_reference_t<T> >; };
- template <typename T> struct delegate_type<T, void_t<emu::detail::rw_device_class_t<read32sm_delegate, std::remove_reference_t<T> > > > { using type = read32sm_delegate; using device_class = emu::detail::rw_device_class_t<type, std::remove_reference_t<T> >; };
- template <typename T> struct delegate_type<T, void_t<emu::detail::rw_device_class_t<read64sm_delegate, std::remove_reference_t<T> > > > { using type = read64sm_delegate; using device_class = emu::detail::rw_device_class_t<type, std::remove_reference_t<T> >; };
- template <typename T> struct delegate_type<T, void_t<emu::detail::rw_device_class_t<read8smo_delegate, std::remove_reference_t<T> > > > { using type = read8smo_delegate; using device_class = emu::detail::rw_device_class_t<type, std::remove_reference_t<T> >; };
- template <typename T> struct delegate_type<T, void_t<emu::detail::rw_device_class_t<read16smo_delegate, std::remove_reference_t<T> > > > { using type = read16smo_delegate; using device_class = emu::detail::rw_device_class_t<type, std::remove_reference_t<T> >; };
- template <typename T> struct delegate_type<T, void_t<emu::detail::rw_device_class_t<read32smo_delegate, std::remove_reference_t<T> > > > { using type = read32smo_delegate; using device_class = emu::detail::rw_device_class_t<type, std::remove_reference_t<T> >; };
- template <typename T> struct delegate_type<T, void_t<emu::detail::rw_device_class_t<read64smo_delegate, std::remove_reference_t<T> > > > { using type = read64smo_delegate; using device_class = emu::detail::rw_device_class_t<type, std::remove_reference_t<T> >; };
- template <typename T> struct delegate_type<T, void_t<emu::detail::rw_device_class_t<read_line_delegate, std::remove_reference_t<T> > > > { using type = read_line_delegate; using device_class = emu::detail::rw_device_class_t<type, std::remove_reference_t<T> >; };
- template <typename T> struct delegate_type<T, void_t<emu::detail::rw_device_class_t<write8_delegate, std::remove_reference_t<T> > > > { using type = write8_delegate; using device_class = emu::detail::rw_device_class_t<type, std::remove_reference_t<T> >; };
- template <typename T> struct delegate_type<T, void_t<emu::detail::rw_device_class_t<write16_delegate, std::remove_reference_t<T> > > > { using type = write16_delegate; using device_class = emu::detail::rw_device_class_t<type, std::remove_reference_t<T> >; };
- template <typename T> struct delegate_type<T, void_t<emu::detail::rw_device_class_t<write32_delegate, std::remove_reference_t<T> > > > { using type = write32_delegate; using device_class = emu::detail::rw_device_class_t<type, std::remove_reference_t<T> >; };
- template <typename T> struct delegate_type<T, void_t<emu::detail::rw_device_class_t<write64_delegate, std::remove_reference_t<T> > > > { using type = write64_delegate; using device_class = emu::detail::rw_device_class_t<type, std::remove_reference_t<T> >; };
- template <typename T> struct delegate_type<T, void_t<emu::detail::rw_device_class_t<write8s_delegate, std::remove_reference_t<T> > > > { using type = write8s_delegate; using device_class = emu::detail::rw_device_class_t<type, std::remove_reference_t<T> >; };
- template <typename T> struct delegate_type<T, void_t<emu::detail::rw_device_class_t<write16s_delegate, std::remove_reference_t<T> > > > { using type = write16s_delegate; using device_class = emu::detail::rw_device_class_t<type, std::remove_reference_t<T> >; };
- template <typename T> struct delegate_type<T, void_t<emu::detail::rw_device_class_t<write32s_delegate, std::remove_reference_t<T> > > > { using type = write32s_delegate; using device_class = emu::detail::rw_device_class_t<type, std::remove_reference_t<T> >; };
- template <typename T> struct delegate_type<T, void_t<emu::detail::rw_device_class_t<write64s_delegate, std::remove_reference_t<T> > > > { using type = write64s_delegate; using device_class = emu::detail::rw_device_class_t<type, std::remove_reference_t<T> >; };
- template <typename T> struct delegate_type<T, void_t<emu::detail::rw_device_class_t<write8sm_delegate, std::remove_reference_t<T> > > > { using type = write8sm_delegate; using device_class = emu::detail::rw_device_class_t<type, std::remove_reference_t<T> >; };
- template <typename T> struct delegate_type<T, void_t<emu::detail::rw_device_class_t<write16sm_delegate, std::remove_reference_t<T> > > > { using type = write16sm_delegate; using device_class = emu::detail::rw_device_class_t<type, std::remove_reference_t<T> >; };
- template <typename T> struct delegate_type<T, void_t<emu::detail::rw_device_class_t<write32sm_delegate, std::remove_reference_t<T> > > > { using type = write32sm_delegate; using device_class = emu::detail::rw_device_class_t<type, std::remove_reference_t<T> >; };
- template <typename T> struct delegate_type<T, void_t<emu::detail::rw_device_class_t<write64sm_delegate, std::remove_reference_t<T> > > > { using type = write64sm_delegate; using device_class = emu::detail::rw_device_class_t<type, std::remove_reference_t<T> >; };
- template <typename T> struct delegate_type<T, void_t<emu::detail::rw_device_class_t<write8smo_delegate, std::remove_reference_t<T> > > > { using type = write8smo_delegate; using device_class = emu::detail::rw_device_class_t<type, std::remove_reference_t<T> >; };
- template <typename T> struct delegate_type<T, void_t<emu::detail::rw_device_class_t<write16smo_delegate, std::remove_reference_t<T> > > > { using type = write16smo_delegate; using device_class = emu::detail::rw_device_class_t<type, std::remove_reference_t<T> >; };
- template <typename T> struct delegate_type<T, void_t<emu::detail::rw_device_class_t<write32smo_delegate, std::remove_reference_t<T> > > > { using type = write32smo_delegate; using device_class = emu::detail::rw_device_class_t<type, std::remove_reference_t<T> >; };
- template <typename T> struct delegate_type<T, void_t<emu::detail::rw_device_class_t<write64smo_delegate, std::remove_reference_t<T> > > > { using type = write64smo_delegate; using device_class = emu::detail::rw_device_class_t<type, std::remove_reference_t<T> >; };
- template <typename T> struct delegate_type<T, void_t<emu::detail::rw_device_class_t<write_line_delegate, std::remove_reference_t<T> > > > { using type = write_line_delegate; using device_class = emu::detail::rw_device_class_t<type, std::remove_reference_t<T> >; };
- template <typename T> using delegate_type_t = typename delegate_type<T>::type;
- template <typename T> using delegate_device_class_t = typename delegate_type<T>::device_class;
+ template <typename T> using delegate_type_t = emu::detail::rw_delegate_type_t<T>;
+ template <typename T> using delegate_device_class_t = emu::detail::rw_delegate_device_class_t<T>;
// Invoking transform callbacks
template <typename Input, typename Result, typename T> static std::enable_if_t<is_transform_form1<Input, Result, T>::value, mask_t<transform_result_t<Input, Result, T>, Result> > invoke_transform(T const &cb, address_space &space, offs_t &offset, Input data, std::make_unsigned_t<Input> &mem_mask) { return std::make_unsigned_t<transform_result_t<Input, Result, 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<output_t, delegate_builder>(DefaultMask & delegate_traits<Delegate>::default_mask)
- , m_devbase(devbase)
- , m_delegate(std::forward<T>(func), name, tag, std::add_pointer_t<devcb_read::delegate_device_class_t<T> >(nullptr))
+ , m_delegate(devbase, tag, std::forward<T>(func), name)
{ }
template <typename T>
delegate_builder(devcb_read &target, bool append, device_t &devbase, devcb_read::delegate_device_class_t<T> &obj, T &&func, char const *name)
: builder_base(target, append)
, transform_base<output_t, delegate_builder>(DefaultMask & delegate_traits<Delegate>::default_mask)
- , m_devbase(devbase)
- , m_delegate(std::forward<T>(func), name, devcb_read::get_tag(obj), &obj)
+ , m_delegate(obj, std::forward<T>(func), name)
{ }
delegate_builder(delegate_builder &&that)
: builder_base(std::move(that))
, transform_base<output_t, delegate_builder>(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 <typename T>
@@ -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<Result>(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<input_t> mem_mask)
{ devcb_write::invoke_write<Input>(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<mask_t<Input, typename delegate_traits<Delegate>::input_t>, delegate_builder>(DefaultMask & delegate_traits<Delegate>::default_mask)
- , m_devbase(devbase)
- , m_delegate(std::forward<T>(func), name, tag, std::add_pointer_t<devcb_write::delegate_device_class_t<T> >(nullptr))
+ , m_delegate(devbase, tag, std::forward<T>(func), name)
{ }
template <typename T>
delegate_builder(devcb_write &target, bool append, device_t &devbase, devcb_write::delegate_device_class_t<T> &obj, T &&func, char const *name)
: builder_base(target, append)
, transform_base<mask_t<Input, typename delegate_traits<Delegate>::input_t>, delegate_builder>(DefaultMask & delegate_traits<Delegate>::default_mask)
- , m_devbase(devbase)
- , m_delegate(std::forward<T>(func), name, devcb_write::get_tag(obj), &obj)
+ , m_delegate(obj, std::forward<T>(func), name)
{ }
delegate_builder(delegate_builder &&that)
: builder_base(std::move(that))
, transform_base<mask_t<Input, typename delegate_traits<Delegate>::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<input_t> mem_mask)
{ devcb_write::invoke_write<Input>(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 <array>
+#include <functional>
+#include <type_traits>
+#include <utility>
+
+
+namespace emu {
+
+//**************************************************************************
+// FORWARD DECLARATIONS
+//**************************************************************************
+
+template <typename Signature, unsigned Count> 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<device_t &, char const *> 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 <class DeviceClass, bool Required> device_delegate_helper(device_finder<DeviceClass, Required> 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 <class DeviceClass, bool Required> void set_tag(device_finder<DeviceClass, Required> const &finder);
- // internal state
- const char *m_device_name;
+private:
+ std::reference_wrapper<device_t> m_base;
+ char const *m_tag;
};
+} // namespace detail
+
// ======================> named_delegate
template <typename Signature>
@@ -45,7 +75,7 @@ class named_delegate : public delegate<Signature>
private:
using basetype = delegate<Signature>;
- const char * m_name; // name string
+ char const *m_name = nullptr; // name string
protected:
template <class FunctionClass> using member_func_type = typename basetype::template member_func_type<FunctionClass>;
@@ -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 <class FunctionClass> named_delegate(member_func_type<FunctionClass> funcptr, const char *name, FunctionClass *object) : basetype(funcptr, object), m_name(name) { }
- template <class FunctionClass> named_delegate(const_member_func_type<FunctionClass> funcptr, const char *name, FunctionClass *object) : basetype(funcptr, object), m_name(name) { }
- explicit named_delegate(std::function<Signature> funcptr, const char *name) : basetype(funcptr), m_name(name) { }
- template <class FunctionClass> named_delegate(static_ref_func_type<FunctionClass> 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 <class FunctionClass> named_delegate(member_func_type<FunctionClass> funcptr, char const *name, FunctionClass *object) : basetype(funcptr, object), m_name(name) { }
+ template <class FunctionClass> named_delegate(const_member_func_type<FunctionClass> funcptr, char const *name, FunctionClass *object) : basetype(funcptr, object), m_name(name) { }
+ template <class FunctionClass> named_delegate(static_ref_func_type<FunctionClass> funcptr, char const *name, FunctionClass *object) : basetype(funcptr, object), m_name(name) { }
+ template <typename T> named_delegate(T &&funcptr, std::enable_if_t<std::is_constructible<std::function<Signature>, T>::value, char const *> name) : basetype(std::forward<T>(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 <typename Signature>
-class device_delegate : public named_delegate<Signature>, public device_delegate_helper
+template <typename Signature> class device_delegate;
+
+template <typename ReturnType, typename... Params>
+class device_delegate<ReturnType (Params...)> : protected named_delegate<ReturnType (Params...)>, public detail::device_delegate_helper
{
- using thistype = device_delegate<Signature>;
- using basetype = named_delegate<Signature>;
- template <class FunctionClass> using member_func_type = typename basetype::template member_func_type<FunctionClass>;
- template <class FunctionClass> using const_member_func_type = typename basetype::template const_member_func_type<FunctionClass>;
- template <class FunctionClass> using static_ref_func_type = typename basetype::template static_ref_func_type<FunctionClass>;
+private:
+ using basetype = named_delegate<ReturnType (Params...)>;
+
+ template <class T, class U> struct is_related_device_implementation
+ { static constexpr bool value = std::is_base_of<T, U>::value && std::is_base_of<device_t, U>::value; };
+ template <class T, class U> struct is_related_device_interface
+ { static constexpr bool value = std::is_base_of<T, U>::value && std::is_base_of<device_interface, U>::value && !std::is_base_of<device_t, U>::value; };
+ template <class T, class U> struct is_related_device
+ { static constexpr bool value = is_related_device_implementation<T, U>::value || is_related_device_interface<T, U>::value; };
+
+ template <class T> static std::enable_if_t<is_related_device_implementation<T, T>::value, device_t &> get_device(T &object) { return object; }
+ template <class T> static std::enable_if_t<is_related_device_interface<T, 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 <class FunctionClass> device_delegate(member_func_type<FunctionClass> funcptr, const char *name, FunctionClass *object) : basetype(funcptr, name, object), device_delegate_helper(safe_tag(dynamic_cast<device_t *>(object))) { }
- template <class FunctionClass> device_delegate(const_member_func_type<FunctionClass> funcptr, const char *name, FunctionClass *object) : basetype(funcptr, name, object), device_delegate_helper(safe_tag(dynamic_cast<device_t *>(object))) { }
- template <class FunctionClass> device_delegate(static_ref_func_type<FunctionClass> funcptr, const char *name, FunctionClass *object) : basetype(funcptr, name, object), device_delegate_helper(safe_tag(dynamic_cast<device_t *>(object))) { }
- device_delegate(std::function<Signature> 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 <class FunctionClass> device_delegate(member_func_type<FunctionClass> funcptr, const char *name, const char *devname) : basetype(funcptr, name, static_cast<FunctionClass *>(nullptr)), device_delegate_helper(devname) { }
- template <class FunctionClass> device_delegate(member_func_type<FunctionClass> funcptr, const char *name, const char *devname, FunctionClass *) : basetype(funcptr, name, static_cast<FunctionClass *>(nullptr)), device_delegate_helper(devname) { }
- template <class FunctionClass> device_delegate(const_member_func_type<FunctionClass> funcptr, const char *name, const char *devname) : basetype(funcptr, name, static_cast<FunctionClass *>(nullptr)), device_delegate_helper(devname) { }
- template <class FunctionClass> device_delegate(const_member_func_type<FunctionClass> funcptr, const char *name, const char *devname, FunctionClass *) : basetype(funcptr, name, static_cast<FunctionClass *>(nullptr)), device_delegate_helper(devname) { }
- template <class FunctionClass> device_delegate(static_ref_func_type<FunctionClass> funcptr, const char *name, const char *devname, FunctionClass *) : basetype(funcptr, name, static_cast<FunctionClass *>(nullptr)), device_delegate_helper(devname) { }
- device_delegate(static_ref_func_type<device_t> funcptr, const char *name) : basetype(funcptr, name, static_cast<device_t *>(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 <unsigned Count> using array = device_delegate_array<ReturnType (Params...), Count>;
+
+ template <typename T> struct supports_callback
+ { static constexpr bool value = std::is_constructible<device_delegate, device_t &, char const *, T, char const *>::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 <class D>
+ device_delegate(device_t &base, char const *tag, ReturnType (D::*funcptr)(Params...), char const *name)
+ : basetype(funcptr, name, static_cast<D *>(nullptr))
+ , detail::device_delegate_helper(base, tag)
+ { }
+ template <class D>
+ device_delegate(device_t &base, char const *tag, ReturnType (D::*funcptr)(Params...) const, char const *name)
+ : basetype(funcptr, name, static_cast<D *>(nullptr))
+ , detail::device_delegate_helper(base, tag)
+ { }
+ template <class D>
+ device_delegate(device_t &base, char const *tag, ReturnType (*funcptr)(D &, Params...), char const *name)
+ : basetype(funcptr, name, static_cast<D *>(nullptr))
+ , detail::device_delegate_helper(base, tag)
+ { }
+
+ // construct with device finder
+ template <class D, bool R, class E>
+ device_delegate(device_finder<D, R> const &finder, ReturnType (E::*funcptr)(Params...), char const *name)
+ : basetype(funcptr, name, static_cast<E *>(nullptr))
+ , detail::device_delegate_helper(finder)
+ { }
+ template <class D, bool R, class E>
+ device_delegate(device_finder<D, R> const &finder, ReturnType (E::*funcptr)(Params...) const, char const *name)
+ : basetype(funcptr, name, static_cast<E *>(nullptr))
+ , detail::device_delegate_helper(finder)
+ { }
+ template <class D, bool R, class E>
+ device_delegate(device_finder<D, R> const &finder, ReturnType (*funcptr)(E &, Params...), char const *name)
+ : basetype(funcptr, name, static_cast<E *>(nullptr))
+ , detail::device_delegate_helper(finder)
+ { }
+
+ // construct with target object
+ template <class T, class D>
+ device_delegate(T &object, ReturnType (D::*funcptr)(Params...), std::enable_if_t<is_related_device<D, T>::value, char const *> name)
+ : basetype(funcptr, name, static_cast<D *>(&object))
+ , detail::device_delegate_helper(get_device(object))
+ { }
+ template <class T, class D>
+ device_delegate(T &object, ReturnType (D::*funcptr)(Params...) const, std::enable_if_t<is_related_device<D, T>::value, char const *> name)
+ : basetype(funcptr, name, static_cast<D *>(&object))
+ , detail::device_delegate_helper(get_device(object))
+ { }
+ template <class T, class D>
+ device_delegate(T &object, ReturnType (*funcptr)(D &, Params...), std::enable_if_t<is_related_device<D, T>::value, char const *> name)
+ : basetype(funcptr, name, static_cast<D *>(&object))
+ , detail::device_delegate_helper(get_device(object))
+ { }
+
+ // construct with callable object
+ template <typename T>
+ device_delegate(device_t &owner, T &&funcptr, std::enable_if_t<std::is_constructible<std::function<ReturnType (Params...)>, T>::value, char const *> name)
+ : basetype(std::forward<T>(funcptr), name)
+ , detail::device_delegate_helper(owner)
+ { basetype::operator=(basetype(std::forward<T>(funcptr), name)); }
+
+ // setters that implicitly bind to the current device
+ template <class D> void set(ReturnType (D::*funcptr)(Params...), char const *name)
+ { basetype::operator=(basetype(funcptr, name, static_cast<D *>(nullptr))); set_tag(nullptr); }
+ template <class D> void set(ReturnType (D::*funcptr)(Params...) const, char const *name)
+ { basetype::operator=(basetype(funcptr, name, static_cast<D *>(nullptr))); set_tag(nullptr); }
+ template <class D> void set(ReturnType (*funcptr)(D &, Params...), char const *name)
+ { basetype::operator=(basetype(funcptr, name, static_cast<D *>(nullptr))); set_tag(nullptr); }
+
+ // setters that take a tag-like object specifying the target
+ template <typename T, class D> void set(T &&tag, ReturnType (D::*funcptr)(Params...), char const *name)
+ { basetype::operator=(basetype(funcptr, name, static_cast<D *>(nullptr))); set_tag(std::forward<T>(tag)); }
+ template <typename T, class D> void set(T &&tag, ReturnType (D::*funcptr)(Params...) const, char const *name)
+ { basetype::operator=(basetype(funcptr, name, static_cast<D *>(nullptr))); set_tag(std::forward<T>(tag)); }
+ template <typename T, class D> void set(T &&tag, ReturnType (*funcptr)(D &, Params...), char const *name)
+ { basetype::operator=(basetype(funcptr, name, static_cast<D *>(nullptr))); set_tag(std::forward<T>(tag)); }
+
+ // setters that take a target object
+ template <class T, class D> std::enable_if_t<std::is_base_of<D, T>::value> set(T &object, ReturnType (D::*funcptr)(Params...), char const *name)
+ { basetype::operator=(basetype(funcptr, name, static_cast<D *>(&object))); set_tag(finder_target().first); }
+ template <class T, class D> std::enable_if_t<std::is_base_of<D, T>::value> set(T &object, ReturnType (D::*funcptr)(Params...) const, char const *name)
+ { basetype::operator=(basetype(funcptr, name, static_cast<D *>(&object))); set_tag(finder_target().first); }
+ template <class T, class D> std::enable_if_t<std::is_base_of<D, T>::value> set(T &object, ReturnType (*funcptr)(D &, Params...), char const *name)
+ { basetype::operator=(basetype(funcptr, name, static_cast<D *>(&object))); set_tag(finder_target().first); }
+
+ // setter that takes a functoid
+ template <typename T> std::enable_if_t<std::is_constructible<std::function<ReturnType (Params...)>, T>::value> set(T &&funcptr, char const *name)
+ { basetype::operator=(basetype(std::forward<T>(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 <typename Signature, unsigned Count>
+class device_delegate_array : public std::array<device_delegate<Signature>, Count>
+{
+private:
+ template <unsigned... V>
+ device_delegate_array(device_t &owner, std::integer_sequence<unsigned, V...> const &)
+ : std::array<device_delegate<Signature>, Count>{ make_one<V>(owner)... }
+ {
+ }
+
+ template <unsigned N> device_delegate<Signature> make_one(device_t &owner)
+ {
+ return device_delegate<Signature>(owner);
+ }
+
+public:
+ using std::array<device_delegate<Signature>, Count>::array;
+
+ device_delegate_array(device_t &owner)
+ : device_delegate_array(owner, std::make_integer_sequence<unsigned, Count>())
+ {
+ }
+
+ void resolve_all()
+ {
+ for (device_delegate<Signature> &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<DeviceClass>::operator()(machine_config_rep
return finder = result;
}
+
+template <class DeviceClass, bool Required>
+inline device_delegate_helper::device_delegate_helper(device_finder<DeviceClass, Required> const &finder)
+ : device_delegate_helper(finder.finder_target().first, finder.finder_tag())
+{
+}
+
+template <class DeviceClass, bool Required>
+inline void device_delegate_helper::set_tag(device_finder<DeviceClass, Required> 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 <typename Obj> void set_dasm_override(Obj &&cb) { m_dasm_override = std::forward<Obj>(cb); }
- void set_dasm_override(dasm_override_delegate callback) { m_dasm_override = callback; }
- template <class FunctionClass> 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<FunctionClass *>(nullptr)));
- }
+ template <typename... T> void set_dasm_override(T &&... args) { m_dasm_override.set(std::forward<T>(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 <typename Object> void set_vblank_int(Object &&cb, const char *tag)
- {
- m_vblank_interrupt = std::forward<Object>(cb);
- m_vblank_interrupt_screen = tag;
- }
- void set_vblank_int(device_interrupt_delegate callback, const char *tag)
+
+ template <typename... T> void set_vblank_int(const char *tag, T &&... args)
{
- m_vblank_interrupt = callback;
+ m_vblank_interrupt.set(std::forward<T>(args)...);
m_vblank_interrupt_screen = tag;
}
- template <class FunctionClass> 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<FunctionClass *>(nullptr)), tag);
- }
- template <class FunctionClass> 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<FunctionClass *>(nullptr)), tag);
+ m_vblank_interrupt = device_interrupt_delegate(*this);
+ m_vblank_interrupt_screen = nullptr;
}
- template <typename Object> void set_periodic_int(Object &&cb, const attotime &rate)
+ template <typename F> void set_periodic_int(F &&cb, const char *name, const attotime &rate)
{
- m_timed_interrupt = std::forward<Object>(cb);
+ m_timed_interrupt.set(std::forward<F>(cb), name);
m_timed_interrupt_period = rate;
}
- void set_periodic_int(device_interrupt_delegate callback, const attotime &rate)
+ template <typename T, typename F> void set_periodic_int(T &&target, F &&cb, const char *name, const attotime &rate)
{
- m_timed_interrupt = callback;
+ m_timed_interrupt.set(std::forward<T>(target), std::forward<F>(cb), name);
m_timed_interrupt_period = rate;
}
- template <class FunctionClass> 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<FunctionClass *>(nullptr)), rate);
- }
- template <class FunctionClass> 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<FunctionClass *>(nullptr)), rate);
+ m_timed_interrupt = device_interrupt_delegate(*this);
+ m_timed_interrupt_period = attotime();
}
- template <typename Object> void set_irq_acknowledge_callback(Object &&cb) { m_driver_irq = std::forward<Object>(cb); }
- void set_irq_acknowledge_callback(device_irq_acknowledge_delegate callback) { m_driver_irq = callback; }
- template <class FunctionClass> void set_irq_acknowledge_callback(const char *devname, int (FunctionClass::*callback)(device_t &, int), const char *name)
+ template <typename... T> void set_irq_acknowledge_callback(T &&... args)
{
- set_irq_acknowledge_callback(device_irq_acknowledge_delegate(callback, name, devname, static_cast<FunctionClass *>(nullptr)));
+ m_driver_irq.set(std::forward<T>(args)...);
}
- template <class FunctionClass> 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<FunctionClass *>(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<Width, AddrShift, Endian>;
+ template <typename Delegate, typename Dummy = void> struct handler_width;
+ template <typename Dummy> struct handler_width<read8_delegate, Dummy> { static constexpr int value = 0; };
+ template <typename Dummy> struct handler_width<read8m_delegate, Dummy> { static constexpr int value = 0; };
+ template <typename Dummy> struct handler_width<read8s_delegate, Dummy> { static constexpr int value = 0; };
+ template <typename Dummy> struct handler_width<read8sm_delegate, Dummy> { static constexpr int value = 0; };
+ template <typename Dummy> struct handler_width<read8mo_delegate, Dummy> { static constexpr int value = 0; };
+ template <typename Dummy> struct handler_width<read8smo_delegate, Dummy> { static constexpr int value = 0; };
+ template <typename Dummy> struct handler_width<write8_delegate, Dummy> { static constexpr int value = 0; };
+ template <typename Dummy> struct handler_width<write8m_delegate, Dummy> { static constexpr int value = 0; };
+ template <typename Dummy> struct handler_width<write8s_delegate, Dummy> { static constexpr int value = 0; };
+ template <typename Dummy> struct handler_width<write8sm_delegate, Dummy> { static constexpr int value = 0; };
+ template <typename Dummy> struct handler_width<write8mo_delegate, Dummy> { static constexpr int value = 0; };
+ template <typename Dummy> struct handler_width<write8smo_delegate, Dummy> { static constexpr int value = 0; };
+ template <typename Dummy> struct handler_width<read16_delegate, Dummy> { static constexpr int value = 1; };
+ template <typename Dummy> struct handler_width<read16m_delegate, Dummy> { static constexpr int value = 1; };
+ template <typename Dummy> struct handler_width<read16s_delegate, Dummy> { static constexpr int value = 1; };
+ template <typename Dummy> struct handler_width<read16sm_delegate, Dummy> { static constexpr int value = 1; };
+ template <typename Dummy> struct handler_width<read16mo_delegate, Dummy> { static constexpr int value = 1; };
+ template <typename Dummy> struct handler_width<read16smo_delegate, Dummy> { static constexpr int value = 1; };
+ template <typename Dummy> struct handler_width<write16_delegate, Dummy> { static constexpr int value = 1; };
+ template <typename Dummy> struct handler_width<write16m_delegate, Dummy> { static constexpr int value = 1; };
+ template <typename Dummy> struct handler_width<write16s_delegate, Dummy> { static constexpr int value = 1; };
+ template <typename Dummy> struct handler_width<write16sm_delegate, Dummy> { static constexpr int value = 1; };
+ template <typename Dummy> struct handler_width<write16mo_delegate, Dummy> { static constexpr int value = 1; };
+ template <typename Dummy> struct handler_width<write16smo_delegate, Dummy> { static constexpr int value = 1; };
+ template <typename Dummy> struct handler_width<read32_delegate, Dummy> { static constexpr int value = 2; };
+ template <typename Dummy> struct handler_width<read32m_delegate, Dummy> { static constexpr int value = 2; };
+ template <typename Dummy> struct handler_width<read32s_delegate, Dummy> { static constexpr int value = 2; };
+ template <typename Dummy> struct handler_width<read32sm_delegate, Dummy> { static constexpr int value = 2; };
+ template <typename Dummy> struct handler_width<read32mo_delegate, Dummy> { static constexpr int value = 2; };
+ template <typename Dummy> struct handler_width<read32smo_delegate, Dummy> { static constexpr int value = 2; };
+ template <typename Dummy> struct handler_width<write32_delegate, Dummy> { static constexpr int value = 2; };
+ template <typename Dummy> struct handler_width<write32m_delegate, Dummy> { static constexpr int value = 2; };
+ template <typename Dummy> struct handler_width<write32s_delegate, Dummy> { static constexpr int value = 2; };
+ template <typename Dummy> struct handler_width<write32sm_delegate, Dummy> { static constexpr int value = 2; };
+ template <typename Dummy> struct handler_width<write32mo_delegate, Dummy> { static constexpr int value = 2; };
+ template <typename Dummy> struct handler_width<write32smo_delegate, Dummy> { static constexpr int value = 2; };
+ template <typename Dummy> struct handler_width<read64_delegate, Dummy> { static constexpr int value = 3; };
+ template <typename Dummy> struct handler_width<read64m_delegate, Dummy> { static constexpr int value = 3; };
+ template <typename Dummy> struct handler_width<read64s_delegate, Dummy> { static constexpr int value = 3; };
+ template <typename Dummy> struct handler_width<read64sm_delegate, Dummy> { static constexpr int value = 3; };
+ template <typename Dummy> struct handler_width<read64mo_delegate, Dummy> { static constexpr int value = 3; };
+ template <typename Dummy> struct handler_width<read64smo_delegate, Dummy> { static constexpr int value = 3; };
+ template <typename Dummy> struct handler_width<write64_delegate, Dummy> { static constexpr int value = 3; };
+ template <typename Dummy> struct handler_width<write64m_delegate, Dummy> { static constexpr int value = 3; };
+ template <typename Dummy> struct handler_width<write64s_delegate, Dummy> { static constexpr int value = 3; };
+ template <typename Dummy> struct handler_width<write64sm_delegate, Dummy> { static constexpr int value = 3; };
+ template <typename Dummy> struct handler_width<write64mo_delegate, Dummy> { static constexpr int value = 3; };
+ template <typename Dummy> struct handler_width<write64smo_delegate, Dummy> { 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<handler_entry *> m_delayed_unrefs;
private:
+ template<typename READ>
+ 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<handler_width<READ>::value>(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, handler_r);
+ }
+
+ template<typename WRITE>
+ 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<handler_width<WRITE>::value>(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, handler_w);
+ }
+
+ template<typename READ, typename WRITE>
+ 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<READ>::value == handler_width<WRITE>::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<handler_width<READ>::value>(addrstart, addrend, addrmask, addrmirror, addrselect, unitmask, cswidth, handler_r, handler_w);
+ }
+
template<int AccessWidth, typename READ> 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<int AccessWidth, typename READ> 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<int AccessWidth, typename READ> 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<int AccessWidth, typename WRITE> 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<int AccessWidth, typename WRITE> 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<int AccessWidth, typename WRITE> 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<int AccessWidth, typename READ, typename WRITE> 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<int AccessWidth, typename READ, typename WRITE> 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<int AccessWidth, typename READ, typename WRITE> 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<int Width, int AddrShift, endianness_t Endian> void address_space_speci
}
-//-------------------------------------------------
-// install_handler - install 8-bit read/write
-// delegate handlers for the space
-//-------------------------------------------------
-
-template<int Width, int AddrShift, endianness_t Endian> void address_space_specific<Width, AddrShift, Endian>::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<int Width, int AddrShift, endianness_t Endian> void address_space_specific<Width, AddrShift, Endian>::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<int Width, int AddrShift, endianness_t Endian> void address_space_specific<Width, AddrShift, Endian>::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<int Width, int AddrShift, endianness_t Endian> void address_space_specific<Width, AddrShift, Endian>::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<int Width, int AddrShift, endianness_t Endian> void address_space_specific<Width, AddrShift, Endian>::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<int Width, int AddrShift, endianness_t Endian> void address_space_specific<Width, AddrShift, Endian>::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<int Width, int AddrShift, endianness_t Endian> void address_space_specific<Width, AddrShift, Endian>::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<int Width, int AddrShift, endianness_t Endian> void address_space_specific<Width, AddrShift, Endian>::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<int Width, int AddrShift, endianness_t Endian> void address_space_specific<Width, AddrShift, Endian>::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<int Width, int AddrShift, endianness_t Endian> void address_space_specific<Width, AddrShift, Endian>::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<int Width, int AddrShift, endianness_t Endian> void address_space_specific<Width, AddrShift, Endian>::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<int Width, int AddrShift, endianness_t Endian> void address_space_specific<Width, AddrShift, Endian>::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<int Width, int AddrShift, endianness_t Endian> void address_space_specific<Width, AddrShift, Endian>::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<int Width, int AddrShift, endianness_t Endian> void address_space_specific<Width, AddrShift, Endian>::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<int Width, int AddrShift, endianness_t Endian> void address_space_specific<Width, AddrShift, Endian>::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<int Width, int AddrShift, endianness_t Endian> void address_space_specific<Width, AddrShift, Endian>::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<int Width, int AddrShift, endianness_t Endian> void address_space_specific<Width, AddrShift, Endian>::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<int Width, int AddrShift, endianness_t Endian> void address_space_specific<Width, AddrShift, Endian>::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<int Width, int AddrShift, endianness_t Endian> void address_space_specific<Width, AddrShift, Endian>::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<int Width, int AddrShift, endianness_t Endian> void address_space_specific<Width, AddrShift, Endian>::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<int Width, int AddrShift, endianness_t Endian> void address_space_specific<Width, AddrShift, Endian>::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<int Width, int AddrShift, endianness_t Endian> void address_space_specific<Width, AddrShift, Endian>::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<int Width, int AddrShift, endianness_t Endian> void address_space_specific<Width, AddrShift, Endian>::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<int Width, int AddrShift, endianness_t Endian> void address_space_specific<Width, AddrShift, Endian>::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<int Width, int AddrShift, endianness_t Endian> void address_space_specific<Width, AddrShift, Endian>::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<int Width, int AddrShift, endianness_t Endian> void address_space_specific<Width, AddrShift, Endian>::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<int Width, int AddrShift, endianness_t Endian> void address_space_specific<Width, AddrShift, Endian>::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<int Width, int AddrShift, endianness_t Endian> void address_space_specific<Width, AddrShift, Endian>::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<int Width, int AddrShift, endianness_t Endian> void address_space_specific<Width, AddrShift, Endian>::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<int Width, int AddrShift, endianness_t Endian> void address_space_specific<Width, AddrShift, Endian>::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<int Width, int AddrShift, endianness_t Endian> void address_space_specific<Width, AddrShift, Endian>::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<int Width, int AddrShift, endianness_t Endian> void address_space_specific<Width, AddrShift, Endian>::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<int Width, int AddrShift, endianness_t Endian> void address_space_specific<Width, AddrShift, Endian>::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<int Width, int AddrShift, endianness_t Endian> void address_space_specific<Width, AddrShift, Endian>::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<int Width, int AddrShift, endianness_t Endian> void address_space_specific<Width, AddrShift, Endian>::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<int Width, int AddrShift, endianness_t Endian> void address_space_specific<Width, AddrShift, Endian>::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<int Width, int AddrShift, endianness_t Endian> void address_space_specific<Width, AddrShift, Endian>::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<int Width, int AddrShift, endianness_t Endian> void address_space_specific<Width, AddrShift, Endian>::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<int Width, int AddrShift, endianness_t Endian> void address_space_specific<Width, AddrShift, Endian>::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<int Width, int AddrShift, endianness_t Endian> void address_space_specific<Width, AddrShift, Endian>::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<int Width, int AddrShift, endianness_t Endian> void address_space_specific<Width, AddrShift, Endian>::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<int Width, int AddrShift, endianness_t Endian> void address_space_specific<Width, AddrShift, Endian>::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<int Width, int AddrShift, endianness_t Endian> void address_space_specific<Width, AddrShift, Endian>::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<int Width, int AddrShift, endianness_t Endian> void address_space_specific<Width, AddrShift, Endian>::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<int Width, int AddrShift, endianness_t Endian> void address_space_specific<Width, AddrShift, Endian>::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<int Width, int AddrShift, endianness_t Endian> void address_space_specific<Width, AddrShift, Endian>::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<int Width, int AddrShift, endianness_t Endian> void address_space_specific<Width, AddrShift, Endian>::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<int Width, int AddrShift, endianness_t Endian> void address_space_specific<Width, AddrShift, Endian>::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<int Width, int AddrShift, endianness_t Endian> void address_space_specific<Width, AddrShift, Endian>::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<int Width, int AddrShift, endianness_t Endian> void address_space_specific<Width, AddrShift, Endian>::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<int Width, int AddrShift, endianness_t Endian> void address_space_specific<Width, AddrShift, Endian>::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<int Width, int AddrShift, endianness_t Endian> void address_space_specific<Width, AddrShift, Endian>::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<int Width, int AddrShift, endianness_t Endian> void address_space_specific<Width, AddrShift, Endian>::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<int Width, int AddrShift, endianness_t Endian> void address_space_specific<Width, AddrShift, Endian>::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<int Width, int AddrShift, endianness_t Endian> void address_space_specific<Width, AddrShift, Endian>::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<int Width, int AddrShift, endianness_t Endian> void address_space_specific<Width, AddrShift, Endian>::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<int Width, int AddrShift, endianness_t Endian> void address_space_specific<Width, AddrShift, Endian>::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<int Width, int AddrShift, endianness_t Endian> void address_space_specific<Width, AddrShift, Endian>::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<int Width, int AddrShift, endianness_t Endian> void address_space_specific<Width, AddrShift, Endian>::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<int Width, int AddrShift, endianness_t Endian> void address_space_specific<Width, AddrShift, Endian>::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<int Width, int AddrShift, endianness_t Endian> void address_space_specific<Width, AddrShift, Endian>::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<int Width, int AddrShift, endianness_t Endian> void address_space_specific<Width, AddrShift, Endian>::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<int Width, int AddrShift, endianness_t Endian> void address_space_specific<Width, AddrShift, Endian>::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<int Width, int AddrShift, endianness_t Endian> void address_space_specific<Width, AddrShift, Endian>::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<int Width, int AddrShift, endianness_t Endian> void address_space_specific<Width, AddrShift, Endian>::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<int Width, int AddrShift, endianness_t Endian> void address_space_specific<Width, AddrShift, Endian>::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<int Width, int AddrShift, endianness_t Endian> void address_space_specific<Width, AddrShift, Endian>::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<int Width, int AddrShift, endianness_t Endian> void address_space_specific<Width, AddrShift, Endian>::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<int Width, int AddrShift, endianness_t Endian> void address_space_specific<Width, AddrShift, Endian>::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<int Width, int AddrShift, endianness_t Endian> void address_space_specific<Width, AddrShift, Endian>::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<int Width, int AddrShift, endianness_t Endian> void address_space_specific<Width, AddrShift, Endian>::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<int Width, int AddrShift, endianness_t Endian> void address_space_specific<Width, AddrShift, Endian>::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<void (u64)>;
namespace emu { namespace detail {
+// TODO: replace with std::void_t when we move to C++17
+template <typename... T> struct void_wrapper { using type = void; };
+template <typename... T> using void_t = typename void_wrapper<T...>::type;
+
template <typename D, typename T, typename Enable = void> struct rw_device_class { };
template <typename D, typename T, typename Ret, typename... Params>
-struct rw_device_class<D, Ret (T::*)(Params...), std::enable_if_t<std::is_constructible<D, Ret (T::*)(Params...), const char *, const char *, T *>::value> > { using type = T; };
+struct rw_device_class<D, Ret (T::*)(Params...), std::enable_if_t<std::is_constructible<D, device_t &, const char *, Ret (T::*)(Params...), const char *>::value> > { using type = T; };
template <typename D, typename T, typename Ret, typename... Params>
-struct rw_device_class<D, Ret (T::*)(Params...) const, std::enable_if_t<std::is_constructible<D, Ret (T::*)(Params...) const, const char *, const char *, T *>::value> > { using type = T; };
+struct rw_device_class<D, Ret (T::*)(Params...) const, std::enable_if_t<std::is_constructible<D, device_t &, const char *, Ret (T::*)(Params...) const, const char *>::value> > { using type = T; };
template <typename D, typename T, typename Ret, typename... Params>
-struct rw_device_class<D, Ret (*)(T &, Params...), std::enable_if_t<std::is_constructible<D, Ret (*)(T &, Params...), const char *, const char *, T *>::value> > { using type = T; };
-
-template <typename D, typename T> using rw_device_class_t = typename rw_device_class <D, T>::type;
-
-template <typename T>
-inline read8_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t<read8_delegate, std::remove_reference_t<T> > *obj)
-{ return read8_delegate(func, name, tag, obj); }
-template <typename T>
-inline read16_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t<read16_delegate, std::remove_reference_t<T> > *obj)
-{ return read16_delegate(func, name, tag, obj); }
-template <typename T>
-inline read32_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t<read32_delegate, std::remove_reference_t<T> > *obj)
-{ return read32_delegate(func, name, tag, obj); }
-template <typename T>
-inline read64_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t<read64_delegate, std::remove_reference_t<T> > *obj)
-{ return read64_delegate(func, name, tag, obj); }
-
-template <typename T>
-inline write8_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t<write8_delegate, std::remove_reference_t<T> > *obj)
-{ return write8_delegate(func, name, tag, obj); }
-template <typename T>
-inline write16_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t<write16_delegate, std::remove_reference_t<T> > *obj)
-{ return write16_delegate(func, name, tag, obj); }
-template <typename T>
-inline write32_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t<write32_delegate, std::remove_reference_t<T> > *obj)
-{ return write32_delegate(func, name, tag, obj); }
-template <typename T>
-inline write64_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t<write64_delegate, std::remove_reference_t<T> > *obj)
-{ return write64_delegate(func, name, tag, obj); }
-
-
-template <typename T>
-inline read8m_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t<read8m_delegate, std::remove_reference_t<T> > *obj)
-{ return read8m_delegate(func, name, tag, obj); }
-template <typename T>
-inline read16m_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t<read16m_delegate, std::remove_reference_t<T> > *obj)
-{ return read16m_delegate(func, name, tag, obj); }
-template <typename T>
-inline read32m_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t<read32m_delegate, std::remove_reference_t<T> > *obj)
-{ return read32m_delegate(func, name, tag, obj); }
-template <typename T>
-inline read64m_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t<read64m_delegate, std::remove_reference_t<T> > *obj)
-{ return read64m_delegate(func, name, tag, obj); }
-
-template <typename T>
-inline write8m_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t<write8m_delegate, std::remove_reference_t<T> > *obj)
-{ return write8m_delegate(func, name, tag, obj); }
-template <typename T>
-inline write16m_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t<write16m_delegate, std::remove_reference_t<T> > *obj)
-{ return write16m_delegate(func, name, tag, obj); }
-template <typename T>
-inline write32m_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t<write32m_delegate, std::remove_reference_t<T> > *obj)
-{ return write32m_delegate(func, name, tag, obj); }
-template <typename T>
-inline write64m_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t<write64m_delegate, std::remove_reference_t<T> > *obj)
-{ return write64m_delegate(func, name, tag, obj); }
-
-
-template <typename T>
-inline read8s_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t<read8s_delegate, std::remove_reference_t<T> > *obj)
-{ return read8s_delegate(func, name, tag, obj); }
-template <typename T>
-inline read16s_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t<read16s_delegate, std::remove_reference_t<T> > *obj)
-{ return read16s_delegate(func, name, tag, obj); }
-template <typename T>
-inline read32s_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t<read32s_delegate, std::remove_reference_t<T> > *obj)
-{ return read32s_delegate(func, name, tag, obj); }
-template <typename T>
-inline read64s_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t<read64s_delegate, std::remove_reference_t<T> > *obj)
-{ return read64s_delegate(func, name, tag, obj); }
-
-template <typename T>
-inline write8s_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t<write8s_delegate, std::remove_reference_t<T> > *obj)
-{ return write8s_delegate(func, name, tag, obj); }
-template <typename T>
-inline write16s_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t<write16s_delegate, std::remove_reference_t<T> > *obj)
-{ return write16s_delegate(func, name, tag, obj); }
-template <typename T>
-inline write32s_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t<write32s_delegate, std::remove_reference_t<T> > *obj)
-{ return write32s_delegate(func, name, tag, obj); }
-template <typename T>
-inline write64s_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t<write64s_delegate, std::remove_reference_t<T> > *obj)
-{ return write64s_delegate(func, name, tag, obj); }
-
-
-template <typename T>
-inline read8sm_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t<read8sm_delegate, std::remove_reference_t<T> > *obj)
-{ return read8sm_delegate(func, name, tag, obj); }
-template <typename T>
-inline read16sm_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t<read16sm_delegate, std::remove_reference_t<T> > *obj)
-{ return read16sm_delegate(func, name, tag, obj); }
-template <typename T>
-inline read32sm_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t<read32sm_delegate, std::remove_reference_t<T> > *obj)
-{ return read32sm_delegate(func, name, tag, obj); }
-template <typename T>
-inline read64sm_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t<read64sm_delegate, std::remove_reference_t<T> > *obj)
-{ return read64sm_delegate(func, name, tag, obj); }
-
-template <typename T>
-inline write8sm_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t<write8sm_delegate, std::remove_reference_t<T> > *obj)
-{ return write8sm_delegate(func, name, tag, obj); }
-template <typename T>
-inline write16sm_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t<write16sm_delegate, std::remove_reference_t<T> > *obj)
-{ return write16sm_delegate(func, name, tag, obj); }
-template <typename T>
-inline write32sm_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t<write32sm_delegate, std::remove_reference_t<T> > *obj)
-{ return write32sm_delegate(func, name, tag, obj); }
-template <typename T>
-inline write64sm_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t<write64sm_delegate, std::remove_reference_t<T> > *obj)
-{ return write64sm_delegate(func, name, tag, obj); }
-
-
-template <typename T>
-inline read8mo_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t<read8mo_delegate, std::remove_reference_t<T> > *obj)
-{ return read8mo_delegate(func, name, tag, obj); }
-template <typename T>
-inline read16mo_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t<read16mo_delegate, std::remove_reference_t<T> > *obj)
-{ return read16mo_delegate(func, name, tag, obj); }
-template <typename T>
-inline read32mo_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t<read32mo_delegate, std::remove_reference_t<T> > *obj)
-{ return read32mo_delegate(func, name, tag, obj); }
-template <typename T>
-inline read64mo_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t<read64mo_delegate, std::remove_reference_t<T> > *obj)
-{ return read64mo_delegate(func, name, tag, obj); }
-
-template <typename T>
-inline write8mo_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t<write8mo_delegate, std::remove_reference_t<T> > *obj)
-{ return write8mo_delegate(func, name, tag, obj); }
-template <typename T>
-inline write16mo_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t<write16mo_delegate, std::remove_reference_t<T> > *obj)
-{ return write16mo_delegate(func, name, tag, obj); }
-template <typename T>
-inline write32mo_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t<write32mo_delegate, std::remove_reference_t<T> > *obj)
-{ return write32mo_delegate(func, name, tag, obj); }
-template <typename T>
-inline write64mo_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t<write64mo_delegate, std::remove_reference_t<T> > *obj)
-{ return write64mo_delegate(func, name, tag, obj); }
+struct rw_device_class<D, Ret (*)(T &, Params...), std::enable_if_t<std::is_constructible<D, device_t &, const char *, Ret (*)(T &, Params...), const char *>::value> > { using type = T; };
+
+template <typename D, typename T> using rw_device_class_t = typename rw_device_class<D, T>::type;
+
+template <typename T, typename Enable = void> struct rw_delegate_type;
+template <typename T> struct rw_delegate_type<T, void_t<rw_device_class_t<read8_delegate, std::remove_reference_t<T> > > > { using type = read8_delegate; using device_class = rw_device_class_t<type, std::remove_reference_t<T> >; };
+template <typename T> struct rw_delegate_type<T, void_t<rw_device_class_t<read16_delegate, std::remove_reference_t<T> > > > { using type = read16_delegate; using device_class = rw_device_class_t<type, std::remove_reference_t<T> >; };
+template <typename T> struct rw_delegate_type<T, void_t<rw_device_class_t<read32_delegate, std::remove_reference_t<T> > > > { using type = read32_delegate; using device_class = rw_device_class_t<type, std::remove_reference_t<T> >; };
+template <typename T> struct rw_delegate_type<T, void_t<rw_device_class_t<read64_delegate, std::remove_reference_t<T> > > > { using type = read64_delegate; using device_class = rw_device_class_t<type, std::remove_reference_t<T> >; };
+template <typename T> struct rw_delegate_type<T, void_t<rw_device_class_t<read8m_delegate, std::remove_reference_t<T> > > > { using type = read8m_delegate; using device_class = rw_device_class_t<type, std::remove_reference_t<T> >; };
+template <typename T> struct rw_delegate_type<T, void_t<rw_device_class_t<read16m_delegate, std::remove_reference_t<T> > > > { using type = read16m_delegate; using device_class = rw_device_class_t<type, std::remove_reference_t<T> >; };
+template <typename T> struct rw_delegate_type<T, void_t<rw_device_class_t<read32m_delegate, std::remove_reference_t<T> > > > { using type = read32m_delegate; using device_class = rw_device_class_t<type, std::remove_reference_t<T> >; };
+template <typename T> struct rw_delegate_type<T, void_t<rw_device_class_t<read64m_delegate, std::remove_reference_t<T> > > > { using type = read64m_delegate; using device_class = rw_device_class_t<type, std::remove_reference_t<T> >; };
+template <typename T> struct rw_delegate_type<T, void_t<rw_device_class_t<read8s_delegate, std::remove_reference_t<T> > > > { using type = read8s_delegate; using device_class = rw_device_class_t<type, std::remove_reference_t<T> >; };
+template <typename T> struct rw_delegate_type<T, void_t<rw_device_class_t<read16s_delegate, std::remove_reference_t<T> > > > { using type = read16s_delegate; using device_class = rw_device_class_t<type, std::remove_reference_t<T> >; };
+template <typename T> struct rw_delegate_type<T, void_t<rw_device_class_t<read32s_delegate, std::remove_reference_t<T> > > > { using type = read32s_delegate; using device_class = rw_device_class_t<type, std::remove_reference_t<T> >; };
+template <typename T> struct rw_delegate_type<T, void_t<rw_device_class_t<read64s_delegate, std::remove_reference_t<T> > > > { using type = read64s_delegate; using device_class = rw_device_class_t<type, std::remove_reference_t<T> >; };
+template <typename T> struct rw_delegate_type<T, void_t<rw_device_class_t<read8sm_delegate, std::remove_reference_t<T> > > > { using type = read8sm_delegate; using device_class = rw_device_class_t<type, std::remove_reference_t<T> >; };
+template <typename T> struct rw_delegate_type<T, void_t<rw_device_class_t<read16sm_delegate, std::remove_reference_t<T> > > > { using type = read16sm_delegate; using device_class = rw_device_class_t<type, std::remove_reference_t<T> >; };
+template <typename T> struct rw_delegate_type<T, void_t<rw_device_class_t<read32sm_delegate, std::remove_reference_t<T> > > > { using type = read32sm_delegate; using device_class = rw_device_class_t<type, std::remove_reference_t<T> >; };
+template <typename T> struct rw_delegate_type<T, void_t<rw_device_class_t<read64sm_delegate, std::remove_reference_t<T> > > > { using type = read64sm_delegate; using device_class = rw_device_class_t<type, std::remove_reference_t<T> >; };
+template <typename T> struct rw_delegate_type<T, void_t<rw_device_class_t<read8mo_delegate, std::remove_reference_t<T> > > > { using type = read8mo_delegate; using device_class = rw_device_class_t<type, std::remove_reference_t<T> >; };
+template <typename T> struct rw_delegate_type<T, void_t<rw_device_class_t<read16mo_delegate, std::remove_reference_t<T> > > > { using type = read16mo_delegate; using device_class = rw_device_class_t<type, std::remove_reference_t<T> >; };
+template <typename T> struct rw_delegate_type<T, void_t<rw_device_class_t<read32mo_delegate, std::remove_reference_t<T> > > > { using type = read32mo_delegate; using device_class = rw_device_class_t<type, std::remove_reference_t<T> >; };
+template <typename T> struct rw_delegate_type<T, void_t<rw_device_class_t<read64mo_delegate, std::remove_reference_t<T> > > > { using type = read64mo_delegate; using device_class = rw_device_class_t<type, std::remove_reference_t<T> >; };
+template <typename T> struct rw_delegate_type<T, void_t<rw_device_class_t<read8smo_delegate, std::remove_reference_t<T> > > > { using type = read8smo_delegate; using device_class = rw_device_class_t<type, std::remove_reference_t<T> >; };
+template <typename T> struct rw_delegate_type<T, void_t<rw_device_class_t<read16smo_delegate, std::remove_reference_t<T> > > > { using type = read16smo_delegate; using device_class = rw_device_class_t<type, std::remove_reference_t<T> >; };
+template <typename T> struct rw_delegate_type<T, void_t<rw_device_class_t<read32smo_delegate, std::remove_reference_t<T> > > > { using type = read32smo_delegate; using device_class = rw_device_class_t<type, std::remove_reference_t<T> >; };
+template <typename T> struct rw_delegate_type<T, void_t<rw_device_class_t<read64smo_delegate, std::remove_reference_t<T> > > > { using type = read64smo_delegate; using device_class = rw_device_class_t<type, std::remove_reference_t<T> >; };
+template <typename T> struct rw_delegate_type<T, void_t<rw_device_class_t<write8_delegate, std::remove_reference_t<T> > > > { using type = write8_delegate; using device_class = rw_device_class_t<type, std::remove_reference_t<T> >; };
+template <typename T> struct rw_delegate_type<T, void_t<rw_device_class_t<write16_delegate, std::remove_reference_t<T> > > > { using type = write16_delegate; using device_class = rw_device_class_t<type, std::remove_reference_t<T> >; };
+template <typename T> struct rw_delegate_type<T, void_t<rw_device_class_t<write32_delegate, std::remove_reference_t<T> > > > { using type = write32_delegate; using device_class = rw_device_class_t<type, std::remove_reference_t<T> >; };
+template <typename T> struct rw_delegate_type<T, void_t<rw_device_class_t<write64_delegate, std::remove_reference_t<T> > > > { using type = write64_delegate; using device_class = rw_device_class_t<type, std::remove_reference_t<T> >; };
+template <typename T> struct rw_delegate_type<T, void_t<rw_device_class_t<write8m_delegate, std::remove_reference_t<T> > > > { using type = write8m_delegate; using device_class = rw_device_class_t<type, std::remove_reference_t<T> >; };
+template <typename T> struct rw_delegate_type<T, void_t<rw_device_class_t<write16m_delegate, std::remove_reference_t<T> > > > { using type = write16m_delegate; using device_class = rw_device_class_t<type, std::remove_reference_t<T> >; };
+template <typename T> struct rw_delegate_type<T, void_t<rw_device_class_t<write32m_delegate, std::remove_reference_t<T> > > > { using type = write32m_delegate; using device_class = rw_device_class_t<type, std::remove_reference_t<T> >; };
+template <typename T> struct rw_delegate_type<T, void_t<rw_device_class_t<write64m_delegate, std::remove_reference_t<T> > > > { using type = write64m_delegate; using device_class = rw_device_class_t<type, std::remove_reference_t<T> >; };
+template <typename T> struct rw_delegate_type<T, void_t<rw_device_class_t<write8s_delegate, std::remove_reference_t<T> > > > { using type = write8s_delegate; using device_class = rw_device_class_t<type, std::remove_reference_t<T> >; };
+template <typename T> struct rw_delegate_type<T, void_t<rw_device_class_t<write16s_delegate, std::remove_reference_t<T> > > > { using type = write16s_delegate; using device_class = rw_device_class_t<type, std::remove_reference_t<T> >; };
+template <typename T> struct rw_delegate_type<T, void_t<rw_device_class_t<write32s_delegate, std::remove_reference_t<T> > > > { using type = write32s_delegate; using device_class = rw_device_class_t<type, std::remove_reference_t<T> >; };
+template <typename T> struct rw_delegate_type<T, void_t<rw_device_class_t<write64s_delegate, std::remove_reference_t<T> > > > { using type = write64s_delegate; using device_class = rw_device_class_t<type, std::remove_reference_t<T> >; };
+template <typename T> struct rw_delegate_type<T, void_t<rw_device_class_t<write8sm_delegate, std::remove_reference_t<T> > > > { using type = write8sm_delegate; using device_class = rw_device_class_t<type, std::remove_reference_t<T> >; };
+template <typename T> struct rw_delegate_type<T, void_t<rw_device_class_t<write16sm_delegate, std::remove_reference_t<T> > > > { using type = write16sm_delegate; using device_class = rw_device_class_t<type, std::remove_reference_t<T> >; };
+template <typename T> struct rw_delegate_type<T, void_t<rw_device_class_t<write32sm_delegate, std::remove_reference_t<T> > > > { using type = write32sm_delegate; using device_class = rw_device_class_t<type, std::remove_reference_t<T> >; };
+template <typename T> struct rw_delegate_type<T, void_t<rw_device_class_t<write64sm_delegate, std::remove_reference_t<T> > > > { using type = write64sm_delegate; using device_class = rw_device_class_t<type, std::remove_reference_t<T> >; };
+template <typename T> struct rw_delegate_type<T, void_t<rw_device_class_t<write8mo_delegate, std::remove_reference_t<T> > > > { using type = write8mo_delegate; using device_class = rw_device_class_t<type, std::remove_reference_t<T> >; };
+template <typename T> struct rw_delegate_type<T, void_t<rw_device_class_t<write16mo_delegate, std::remove_reference_t<T> > > > { using type = write16mo_delegate; using device_class = rw_device_class_t<type, std::remove_reference_t<T> >; };
+template <typename T> struct rw_delegate_type<T, void_t<rw_device_class_t<write32mo_delegate, std::remove_reference_t<T> > > > { using type = write32mo_delegate; using device_class = rw_device_class_t<type, std::remove_reference_t<T> >; };
+template <typename T> struct rw_delegate_type<T, void_t<rw_device_class_t<write64mo_delegate, std::remove_reference_t<T> > > > { using type = write64mo_delegate; using device_class = rw_device_class_t<type, std::remove_reference_t<T> >; };
+template <typename T> struct rw_delegate_type<T, void_t<rw_device_class_t<write8smo_delegate, std::remove_reference_t<T> > > > { using type = write8smo_delegate; using device_class = rw_device_class_t<type, std::remove_reference_t<T> >; };
+template <typename T> struct rw_delegate_type<T, void_t<rw_device_class_t<write16smo_delegate, std::remove_reference_t<T> > > > { using type = write16smo_delegate; using device_class = rw_device_class_t<type, std::remove_reference_t<T> >; };
+template <typename T> struct rw_delegate_type<T, void_t<rw_device_class_t<write32smo_delegate, std::remove_reference_t<T> > > > { using type = write32smo_delegate; using device_class = rw_device_class_t<type, std::remove_reference_t<T> >; };
+template <typename T> struct rw_delegate_type<T, void_t<rw_device_class_t<write64smo_delegate, std::remove_reference_t<T> > > > { using type = write64smo_delegate; using device_class = rw_device_class_t<type, std::remove_reference_t<T> >; };
+template <typename T> using rw_delegate_type_t = typename rw_delegate_type<T>::type;
+template <typename T> using rw_delegate_device_class_t = typename rw_delegate_type<T>::device_class;
template <typename T>
-inline read8smo_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t<read8smo_delegate, std::remove_reference_t<T> > *obj)
-{ return read8smo_delegate(func, name, tag, obj); }
-template <typename T>
-inline read16smo_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t<read16smo_delegate, std::remove_reference_t<T> > *obj)
-{ return read16smo_delegate(func, name, tag, obj); }
-template <typename T>
-inline read32smo_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t<read32smo_delegate, std::remove_reference_t<T> > *obj)
-{ return read32smo_delegate(func, name, tag, obj); }
-template <typename T>
-inline read64smo_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t<read64smo_delegate, std::remove_reference_t<T> > *obj)
-{ return read64smo_delegate(func, name, tag, obj); }
+inline rw_delegate_type_t<T> make_delegate(device_t &base, char const *tag, T &&func, char const *name)
+{ return rw_delegate_type_t<T>(base, tag, std::forward<T>(func), name); }
template <typename T>
-inline write8smo_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t<write8smo_delegate, std::remove_reference_t<T> > *obj)
-{ return write8smo_delegate(func, name, tag, obj); }
-template <typename T>
-inline write16smo_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t<write16smo_delegate, std::remove_reference_t<T> > *obj)
-{ return write16smo_delegate(func, name, tag, obj); }
-template <typename T>
-inline write32smo_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t<write32smo_delegate, std::remove_reference_t<T> > *obj)
-{ return write32smo_delegate(func, name, tag, obj); }
-template <typename T>
-inline write64smo_delegate make_delegate(T &&func, const char *name, const char *tag, rw_device_class_t<write64smo_delegate, std::remove_reference_t<T> > *obj)
-{ return write64smo_delegate(func, name, tag, obj); }
-
+inline rw_delegate_type_t<T> make_delegate(rw_delegate_device_class_t<T> &object, T &&func, char const *name)
+{ return rw_delegate_type_t<T>(object, std::forward<T>(func), name); }
template <typename L>
-inline std::enable_if_t<std::is_constructible<read8_delegate, L, const char *>::value, read8_delegate> make_lr8_delegate(L l, const char *name)
-{ return read8_delegate(l, name); }
+inline std::enable_if_t<std::is_constructible<read8_delegate, device_t &, L, const char *>::value, read8_delegate> make_lr8_delegate(device_t &owner, L &&l, const char *name)
+{ return read8_delegate(owner, std::forward<L>(l), name); }
template <typename L>
-inline std::enable_if_t<std::is_constructible<read8m_delegate, L, const char *>::value, read8m_delegate> make_lr8_delegate(L l, const char *name)
-{ return read8m_delegate(l, name); }
+inline std::enable_if_t<std::is_constructible<read8m_delegate, device_t &, L, const char *>::value, read8m_delegate> make_lr8_delegate(device_t &owner, L &&l, const char *name)
+{ return read8m_delegate(owner, std::forward<L>(l), name); }
template <typename L>
-inline std::enable_if_t<std::is_constructible<read8s_delegate, L, const char *>::value, read8s_delegate> make_lr8_delegate(L l, const char *name)
-{ return read8s_delegate(l, name); }
+inline std::enable_if_t<std::is_constructible<read8s_delegate, device_t &, L, const char *>::value, read8s_delegate> make_lr8_delegate(device_t &owner, L &&l, const char *name)
+{ return read8s_delegate(owner, std::forward<L>(l), name); }
template <typename L>
-inline std::enable_if_t<std::is_constructible<read8sm_delegate, L, const char *>::value, read8sm_delegate> make_lr8_delegate(L l, const char *name)
-{ return read8sm_delegate(l, name); }
+inline std::enable_if_t<std::is_constructible<read8sm_delegate, device_t &, L, const char *>::value, read8sm_delegate> make_lr8_delegate(device_t &owner, L &&l, const char *name)
+{ return read8sm_delegate(owner, std::forward<L>(l), name); }
template <typename L>
-inline std::enable_if_t<std::is_constructible<read8mo_delegate, L, const char *>::value, read8mo_delegate> make_lr8_delegate(L l, const char *name)
-{ return read8mo_delegate(l, name); }
+inline std::enable_if_t<std::is_constructible<read8mo_delegate, device_t &, L, const char *>::value, read8mo_delegate> make_lr8_delegate(device_t &owner, L &&l, const char *name)
+{ return read8mo_delegate(owner, std::forward<L>(l), name); }
template <typename L>
-inline std::enable_if_t<std::is_constructible<read8smo_delegate, L, const char *>::value, read8smo_delegate> make_lr8_delegate(L l, const char *name)
-{ return read8smo_delegate(l, name); }
+inline std::enable_if_t<std::is_constructible<read8smo_delegate, device_t &, L, const char *>::value, read8smo_delegate> make_lr8_delegate(device_t &owner, L &&l, const char *name)
+{ return read8smo_delegate(owner, std::forward<L>(l), name); }
template <typename L>
-inline std::enable_if_t<std::is_constructible<read16_delegate, L, const char *>::value, read16_delegate> make_lr16_delegate(L l, const char *name)
-{ return read16_delegate(l, name); }
+inline std::enable_if_t<std::is_constructible<read16_delegate, device_t &, L, const char *>::value, read16_delegate> make_lr16_delegate(device_t &owner, L &&l, const char *name)
+{ return read16_delegate(owner, std::forward<L>(l), name); }
template <typename L>
-inline std::enable_if_t<std::is_constructible<read16m_delegate, L, const char *>::value, read16m_delegate> make_lr16_delegate(L l, const char *name)
-{ return read16m_delegate(l, name); }
+inline std::enable_if_t<std::is_constructible<read16m_delegate, device_t &, L, const char *>::value, read16m_delegate> make_lr16_delegate(device_t &owner, L &&l, const char *name)
+{ return read16m_delegate(owner, std::forward<L>(l), name); }
template <typename L>
-inline std::enable_if_t<std::is_constructible<read16s_delegate, L, const char *>::value, read16s_delegate> make_lr16_delegate(L l, const char *name)
-{ return read16s_delegate(l, name); }
+inline std::enable_if_t<std::is_constructible<read16s_delegate, device_t &, L, const char *>::value, read16s_delegate> make_lr16_delegate(device_t &owner, L &&l, const char *name)
+{ return read16s_delegate(owner, std::forward<L>(l), name); }
template <typename L>
-inline std::enable_if_t<std::is_constructible<read16sm_delegate, L, const char *>::value, read16sm_delegate> make_lr16_delegate(L l, const char *name)
-{ return read16sm_delegate(l, name); }
+inline std::enable_if_t<std::is_constructible<read16sm_delegate, device_t &, L, const char *>::value, read16sm_delegate> make_lr16_delegate(device_t &owner, L &&l, const char *name)
+{ return read16sm_delegate(owner, std::forward<L>(l), name); }
template <typename L>
-inline std::enable_if_t<std::is_constructible<read16mo_delegate, L, const char *>::value, read16mo_delegate> make_lr16_delegate(L l, const char *name)
-{ return read16mo_delegate(l, name); }
+inline std::enable_if_t<std::is_constructible<read16mo_delegate, device_t &, L, const char *>::value, read16mo_delegate> make_lr16_delegate(device_t &owner, L &&l, const char *name)
+{ return read16mo_delegate(owner, std::forward<L>(l), name); }
template <typename L>
-inline std::enable_if_t<std::is_constructible<read16smo_delegate, L, const char *>::value, read16smo_delegate> make_lr16_delegate(L l, const char *name)
-{ return read16smo_delegate(l, name); }
+inline std::enable_if_t<std::is_constructible<read16smo_delegate, device_t &, L, const char *>::value, read16smo_delegate> make_lr16_delegate(device_t &owner, L &&l, const char *name)
+{ return read16smo_delegate(owner, std::forward<L>(l), name); }
template <typename L>
-inline std::enable_if_t<std::is_constructible<read32_delegate, L, const char *>::value, read32_delegate> make_lr32_delegate(L l, const char *name)
-{ return read32_delegate(l, name); }
+inline std::enable_if_t<std::is_constructible<read32_delegate, device_t &, L, const char *>::value, read32_delegate> make_lr32_delegate(device_t &owner, L &&l, const char *name)
+{ return read32_delegate(owner, std::forward<L>(l), name); }
template <typename L>
-inline std::enable_if_t<std::is_constructible<read32m_delegate, L, const char *>::value, read32m_delegate> make_lr32_delegate(L l, const char *name)
-{ return read32m_delegate(l, name); }
+inline std::enable_if_t<std::is_constructible<read32m_delegate, device_t &, L, const char *>::value, read32m_delegate> make_lr32_delegate(device_t &owner, L &&l, const char *name)
+{ return read32m_delegate(owner, std::forward<L>(l), name); }
template <typename L>
-inline std::enable_if_t<std::is_constructible<read32s_delegate, L, const char *>::value, read32s_delegate> make_lr32_delegate(L l, const char *name)
-{ return read32s_delegate(l, name); }
+inline std::enable_if_t<std::is_constructible<read32s_delegate, device_t &, L, const char *>::value, read32s_delegate> make_lr32_delegate(device_t &owner, L &&l, const char *name)
+{ return read32s_delegate(owner, std::forward<L>(l), name); }
template <typename L>
-inline std::enable_if_t<std::is_constructible<read32sm_delegate, L, const char *>::value, read32sm_delegate> make_lr32_delegate(L l, const char *name)
-{ return read32sm_delegate(l, name); }
+inline std::enable_if_t<std::is_constructible<read32sm_delegate, device_t &, L, const char *>::value, read32sm_delegate> make_lr32_delegate(device_t &owner, L &&l, const char *name)
+{ return read32sm_delegate(owner, std::forward<L>(l), name); }
template <typename L>
-inline std::enable_if_t<std::is_constructible<read32mo_delegate, L, const char *>::value, read32mo_delegate> make_lr32_delegate(L l, const char *name)
-{ return read32mo_delegate(l, name); }
+inline std::enable_if_t<std::is_constructible<read32mo_delegate, device_t &, L, const char *>::value, read32mo_delegate> make_lr32_delegate(device_t &owner, L &&l, const char *name)
+{ return read32mo_delegate(owner, std::forward<L>(l), name); }
template <typename L>
-inline std::enable_if_t<std::is_constructible<read32smo_delegate, L, const char *>::value, read32smo_delegate> make_lr32_delegate(L l, const char *name)
-{ return read32smo_delegate(l, name); }
+inline std::enable_if_t<std::is_constructible<read32smo_delegate, device_t &, L, const char *>::value, read32smo_delegate> make_lr32_delegate(device_t &owner, L &&l, const char *name)
+{ return read32smo_delegate(owner, std::forward<L>(l), name); }
template <typename L>
-inline std::enable_if_t<std::is_constructible<read64_delegate, L, const char *>::value, read64_delegate> make_lr64_delegate(L l, const char *name)
-{ return read64_delegate(l, name); }
+inline std::enable_if_t<std::is_constructible<read64_delegate, device_t &, L, const char *>::value, read64_delegate> make_lr64_delegate(device_t &owner, L &&l, const char *name)
+{ return read64_delegate(owner, std::forward<L>(l), name); }
template <typename L>
-inline std::enable_if_t<std::is_constructible<read64m_delegate, L, const char *>::value, read64m_delegate> make_lr64_delegate(L l, const char *name)
-{ return read64m_delegate(l, name); }
+inline std::enable_if_t<std::is_constructible<read64m_delegate, device_t &, L, const char *>::value, read64m_delegate> make_lr64_delegate(device_t &owner, L &&l, const char *name)
+{ return read64m_delegate(owner, std::forward<L>(l), name); }
template <typename L>
-inline std::enable_if_t<std::is_constructible<read64s_delegate, L, const char *>::value, read64s_delegate> make_lr64_delegate(L l, const char *name)
-{ return read64s_delegate(l, name); }
+inline std::enable_if_t<std::is_constructible<read64s_delegate, device_t &, L, const char *>::value, read64s_delegate> make_lr64_delegate(device_t &owner, L &&l, const char *name)
+{ return read64s_delegate(owner, std::forward<L>(l), name); }
template <typename L>
-inline std::enable_if_t<std::is_constructible<read64sm_delegate, L, const char *>::value, read64sm_delegate> make_lr64_delegate(L l, const char *name)
-{ return read64sm_delegate(l, name); }
+inline std::enable_if_t<std::is_constructible<read64sm_delegate, device_t &, L, const char *>::value, read64sm_delegate> make_lr64_delegate(device_t &owner, L &&l, const char *name)
+{ return read64sm_delegate(owner, std::forward<L>(l), name); }
template <typename L>
-inline std::enable_if_t<std::is_constructible<read64mo_delegate, L, const char *>::value, read64mo_delegate> make_lr64_delegate(L l, const char *name)
-{ return read64mo_delegate(l, name); }
+inline std::enable_if_t<std::is_constructible<read64mo_delegate, device_t &, L, const char *>::value, read64mo_delegate> make_lr64_delegate(device_t &owner, L &&l, const char *name)
+{ return read64mo_delegate(owner, std::forward<L>(l), name); }
template <typename L>
-inline std::enable_if_t<std::is_constructible<read64smo_delegate, L, const char *>::value, read64smo_delegate> make_lr64_delegate(L l, const char *name)
-{ return read64smo_delegate(l, name); }
+inline std::enable_if_t<std::is_constructible<read64smo_delegate, device_t &, L, const char *>::value, read64smo_delegate> make_lr64_delegate(device_t &owner, L &&l, const char *name)
+{ return read64smo_delegate(owner, std::forward<L>(l), name); }
template <typename L>
-inline std::enable_if_t<std::is_constructible<write8_delegate, L, const char *>::value, write8_delegate> make_lw8_delegate(L l, const char *name)
-{ return write8_delegate(l, name); }
+inline std::enable_if_t<std::is_constructible<write8_delegate, device_t &, L, const char *>::value, write8_delegate> make_lw8_delegate(device_t &owner, L &&l, const char *name)
+{ return write8_delegate(owner, std::forward<L>(l), name); }
template <typename L>
-inline std::enable_if_t<std::is_constructible<write8m_delegate, L, const char *>::value, write8m_delegate> make_lw8_delegate(L l, const char *name)
-{ return write8m_delegate(l, name); }
+inline std::enable_if_t<std::is_constructible<write8m_delegate, device_t &, L, const char *>::value, write8m_delegate> make_lw8_delegate(device_t &owner, L &&l, const char *name)
+{ return write8m_delegate(owner, std::forward<L>(l), name); }
template <typename L>
-inline std::enable_if_t<std::is_constructible<write8s_delegate, L, const char *>::value, write8s_delegate> make_lw8_delegate(L l, const char *name)
-{ return write8s_delegate(l, name); }
+inline std::enable_if_t<std::is_constructible<write8s_delegate, device_t &, L, const char *>::value, write8s_delegate> make_lw8_delegate(device_t &owner, L &&l, const char *name)
+{ return write8s_delegate(owner, std::forward<L>(l), name); }
template <typename L>
-inline std::enable_if_t<std::is_constructible<write8sm_delegate, L, const char *>::value, write8sm_delegate> make_lw8_delegate(L l, const char *name)
-{ return write8sm_delegate(l, name); }
+inline std::enable_if_t<std::is_constructible<write8sm_delegate, device_t &, L, const char *>::value, write8sm_delegate> make_lw8_delegate(device_t &owner, L &&l, const char *name)
+{ return write8sm_delegate(owner, std::forward<L>(l), name); }
template <typename L>
-inline std::enable_if_t<std::is_constructible<write8mo_delegate, L, const char *>::value, write8mo_delegate> make_lw8_delegate(L l, const char *name)
-{ return write8mo_delegate(l, name); }
+inline std::enable_if_t<std::is_constructible<write8mo_delegate, device_t &, L, const char *>::value, write8mo_delegate> make_lw8_delegate(device_t &owner, L &&l, const char *name)
+{ return write8mo_delegate(owner, std::forward<L>(l), name); }
template <typename L>
-inline std::enable_if_t<std::is_constructible<write8smo_delegate, L, const char *>::value, write8smo_delegate> make_lw8_delegate(L l, const char *name)
-{ return write8smo_delegate(l, name); }
+inline std::enable_if_t<std::is_constructible<write8smo_delegate, device_t &, L, const char *>::value, write8smo_delegate> make_lw8_delegate(device_t &owner, L &&l, const char *name)
+{ return write8smo_delegate(owner, std::forward<L>(l), name); }
template <typename L>
-inline std::enable_if_t<std::is_constructible<write16_delegate, L, const char *>::value, write16_delegate> make_lw16_delegate(L l, const char *name)
-{ return write16_delegate(l, name); }
+inline std::enable_if_t<std::is_constructible<write16_delegate, device_t &, L, const char *>::value, write16_delegate> make_lw16_delegate(device_t &owner, L &&l, const char *name)
+{ return write16_delegate(owner, std::forward<L>(l), name); }
template <typename L>
-inline std::enable_if_t<std::is_constructible<write16m_delegate, L, const char *>::value, write16m_delegate> make_lw16_delegate(L l, const char *name)
-{ return write16m_delegate(l, name); }
+inline std::enable_if_t<std::is_constructible<write16m_delegate, device_t &, L, const char *>::value, write16m_delegate> make_lw16_delegate(device_t &owner, L &&l, const char *name)
+{ return write16m_delegate(owner, std::forward<L>(l), name); }
template <typename L>
-inline std::enable_if_t<std::is_constructible<write16s_delegate, L, const char *>::value, write16s_delegate> make_lw16_delegate(L l, const char *name)
-{ return write16s_delegate(l, name); }
+inline std::enable_if_t<std::is_constructible<write16s_delegate, device_t &, L, const char *>::value, write16s_delegate> make_lw16_delegate(device_t &owner, L &&l, const char *name)
+{ return write16s_delegate(owner, std::forward<L>(l), name); }
template <typename L>
-inline std::enable_if_t<std::is_constructible<write16sm_delegate, L, const char *>::value, write16sm_delegate> make_lw16_delegate(L l, const char *name)
-{ return write16sm_delegate(l, name); }
+inline std::enable_if_t<std::is_constructible<write16sm_delegate, device_t &, L, const char *>::value, write16sm_delegate> make_lw16_delegate(device_t &owner, L &&l, const char *name)
+{ return write16sm_delegate(owner, std::forward<L>(l), name); }
template <typename L>
-inline std::enable_if_t<std::is_constructible<write16mo_delegate, L, const char *>::value, write16mo_delegate> make_lw16_delegate(L l, const char *name)
-{ return write16mo_delegate(l, name); }
+inline std::enable_if_t<std::is_constructible<write16mo_delegate, device_t &, L, const char *>::value, write16mo_delegate> make_lw16_delegate(device_t &owner, L &&l, const char *name)
+{ return write16mo_delegate(owner, std::forward<L>(l), name); }
template <typename L>
-inline std::enable_if_t<std::is_constructible<write16smo_delegate, L, const char *>::value, write16smo_delegate> make_lw16_delegate(L l, const char *name)
-{ return write16smo_delegate(l, name); }
+inline std::enable_if_t<std::is_constructible<write16smo_delegate, device_t &, L, const char *>::value, write16smo_delegate> make_lw16_delegate(device_t &owner, L &&l, const char *name)
+{ return write16smo_delegate(owner, std::forward<L>(l), name); }
template <typename L>
-inline std::enable_if_t<std::is_constructible<write32_delegate, L, const char *>::value, write32_delegate> make_lw32_delegate(L l, const char *name)
-{ return write32_delegate(l, name); }
+inline std::enable_if_t<std::is_constructible<write32_delegate, device_t &, L, const char *>::value, write32_delegate> make_lw32_delegate(device_t &owner, L &&l, const char *name)
+{ return write32_delegate(owner, std::forward<L>(l), name); }
template <typename L>
-inline std::enable_if_t<std::is_constructible<write32m_delegate, L, const char *>::value, write32m_delegate> make_lw32_delegate(L l, const char *name)
-{ return write32m_delegate(l, name); }
+inline std::enable_if_t<std::is_constructible<write32m_delegate, device_t &, L, const char *>::value, write32m_delegate> make_lw32_delegate(device_t &owner, L &&l, const char *name)
+{ return write32m_delegate(owner, std::forward<L>(l), name); }
template <typename L>
-inline std::enable_if_t<std::is_constructible<write32s_delegate, L, const char *>::value, write32s_delegate> make_lw32_delegate(L l, const char *name)
-{ return write32s_delegate(l, name); }
+inline std::enable_if_t<std::is_constructible<write32s_delegate, device_t &, L, const char *>::value, write32s_delegate> make_lw32_delegate(device_t &owner, L &&l, const char *name)
+{ return write32s_delegate(owner, std::forward<L>(l), name); }
template <typename L>
-inline std::enable_if_t<std::is_constructible<write32sm_delegate, L, const char *>::value, write32sm_delegate> make_lw32_delegate(L l, const char *name)
-{ return write32sm_delegate(l, name); }
+inline std::enable_if_t<std::is_constructible<write32sm_delegate, device_t &, L, const char *>::value, write32sm_delegate> make_lw32_delegate(device_t &owner, L &&l, const char *name)
+{ return write32sm_delegate(owner, std::forward<L>(l), name); }
template <typename L>
-inline std::enable_if_t<std::is_constructible<write32mo_delegate, L, const char *>::value, write32mo_delegate> make_lw32_delegate(L l, const char *name)
-{ return write32mo_delegate(l, name); }
+inline std::enable_if_t<std::is_constructible<write32mo_delegate, device_t &, L, const char *>::value, write32mo_delegate> make_lw32_delegate(device_t &owner, L &&l, const char *name)
+{ return write32mo_delegate(owner, std::forward<L>(l), name); }
template <typename L>
-inline std::enable_if_t<std::is_constructible<write32smo_delegate, L, const char *>::value, write32smo_delegate> make_lw32_delegate(L l, const char *name)
-{ return write32smo_delegate(l, name); }
+inline std::enable_if_t<std::is_constructible<write32smo_delegate, device_t &, L, const char *>::value, write32smo_delegate> make_lw32_delegate(device_t &owner, L &&l, const char *name)
+{ return write32smo_delegate(owner, std::forward<L>(l), name); }
template <typename L>
-inline std::enable_if_t<std::is_constructible<write64_delegate, L, const char *>::value, write64_delegate> make_lw64_delegate(L l, const char *name)
-{ return write64_delegate(l, name); }
+inline std::enable_if_t<std::is_constructible<write64_delegate, device_t &, L, const char *>::value, write64_delegate> make_lw64_delegate(device_t &owner, L &&l, const char *name)
+{ return write64_delegate(owner, std::forward<L>(l), name); }
template <typename L>
-inline std::enable_if_t<std::is_constructible<write64m_delegate, L, const char *>::value, write64m_delegate> make_lw64_delegate(L l, const char *name)
-{ return write64m_delegate(l, name); }
+inline std::enable_if_t<std::is_constructible<write64m_delegate, device_t &, L, const char *>::value, write64m_delegate> make_lw64_delegate(device_t &owner, L &&l, const char *name)
+{ return write64m_delegate(owner, std::forward<L>(l), name); }
template <typename L>
-inline std::enable_if_t<std::is_constructible<write64s_delegate, L, const char *>::value, write64s_delegate> make_lw64_delegate(L l, const char *name)
-{ return write64s_delegate(l, name); }
+inline std::enable_if_t<std::is_constructible<write64s_delegate, device_t &, L, const char *>::value, write64s_delegate> make_lw64_delegate(device_t &owner, L &&l, const char *name)
+{ return write64s_delegate(owner, std::forward<L>(l), name); }
template <typename L>
-inline std::enable_if_t<std::is_constructible<write64sm_delegate, L, const char *>::value, write64sm_delegate> make_lw64_delegate(L l, const char *name)
-{ return write64sm_delegate(l, name); }
+inline std::enable_if_t<std::is_constructible<write64sm_delegate, device_t &, L, const char *>::value, write64sm_delegate> make_lw64_delegate(device_t &owner, L &&l, const char *name)
+{ return write64sm_delegate(owner, std::forward<L>(l), name); }
template <typename L>
-inline std::enable_if_t<std::is_constructible<write64mo_delegate, L, const char *>::value, write64mo_delegate> make_lw64_delegate(L l, const char *name)
-{ return write64mo_delegate(l, name); }
+inline std::enable_if_t<std::is_constructible<write64mo_delegate, device_t &, L, const char *>::value, write64mo_delegate> make_lw64_delegate(device_t &owner, L &&l, const char *name)
+{ return write64mo_delegate(owner, std::forward<L>(l), name); }
template <typename L>
-inline std::enable_if_t<std::is_constructible<write64smo_delegate, L, const char *>::value, write64smo_delegate> make_lw64_delegate(L l, const char *name)
-{ return write64smo_delegate(l, name); }
+inline std::enable_if_t<std::is_constructible<write64smo_delegate, device_t &, L, const char *>::value, write64smo_delegate> make_lw64_delegate(device_t &owner, L &&l, const char *name)
+{ return write64smo_delegate(owner, std::forward<L>(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<Width>::uX;
using inh = handler_entry_read_address<Width, AddrShift, Endian>;
- handler_entry_read_delegate(address_space *space, READ delegate) : handler_entry_read_address<Width, AddrShift, Endian>(space, 0), m_delegate(delegate) {}
+ handler_entry_read_delegate(address_space *space, const READ &delegate) : handler_entry_read_address<Width, AddrShift, Endian>(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<Width>::uX;
using inh = handler_entry_write_address<Width, AddrShift, Endian>;
- handler_entry_write_delegate(address_space *space, WRITE delegate) : handler_entry_write_address<Width, AddrShift, Endian>(space, 0), m_delegate(delegate) {}
+ handler_entry_write_delegate(address_space *space, const WRITE &delegate) : handler_entry_write_address<Width, AddrShift, Endian>(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 <type_traits>
+#include <utility>
+
//**************************************************************************
// TYPE DEFINITIONS
//**************************************************************************
-class palette_device;
-typedef device_delegate<void (palette_device &)> palette_init_delegate;
-
-
// ======================> raw_to_rgb_converter
class raw_to_rgb_converter
@@ -271,31 +270,22 @@ public:
template <typename T>
palette_device(const machine_config &mconfig, const char *tag, device_t *owner, rgb_444_prom_t, T &&region, 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<T>(region));
}
- // FIXME: these should be aware of current device for resolving the tag
- template <class FunctionClass>
- 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<FunctionClass *>(nullptr)), entries, indirect)
- { }
- template <class FunctionClass>
- 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<FunctionClass *>(nullptr)), entries, indirect)
- { }
- template <class FunctionClass>
- 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<FunctionClass *>(nullptr)), entries, indirect)
- { }
- template <class FunctionClass>
- 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<FunctionClass *>(nullptr)), entries, indirect)
- { }
+ template <typename F>
+ palette_device(const machine_config &mconfig, const char *tag, device_t *owner, F &&init, std::enable_if_t<init_delegate::supports_callback<F>::value, const char *> name, u32 entries = 0U, u32 indirect = 0U)
+ : palette_device(mconfig, tag, owner, 0U)
+ { set_init(std::forward<F>(init), name).set_entries(entries, indirect); }
+ template <typename T, typename F>
+ palette_device(const machine_config &mconfig, const char *tag, device_t *owner, T &&devname, F &&init, std::enable_if_t<init_delegate::supports_callback<F>::value, const char *> name, u32 entries = 0U, u32 indirect = 0U)
+ : palette_device(mconfig, tag, owner, 0U)
+ { set_init(std::forward<T>(devname), std::forward<F>(init), name).set_entries(entries, indirect); }
// configuration
- template <typename Object> void set_init(Object &&init) { m_init = std::forward<Object>(init); }
+ template <typename... T> palette_device &set_init(T &&... args) { m_init.set(std::forward<T>(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 <typename T> palette_device &set_prom_region(T &&region) { m_prom_region.set_tag(std::forward<T>(region)); return *this; }
- // FIXME: these should be aware of current device for resolving the tag
- template <class FunctionClass>
- void set_init(void (FunctionClass::*init)(palette_device &), const char *name)
- {
- m_init = init_delegate(init, name, nullptr, static_cast<FunctionClass *>(nullptr));
- }
- template <class FunctionClass>
- void set_init(void (FunctionClass::*init)(palette_device &) const, const char *name)
- {
- m_init = init_delegate(init, name, nullptr, static_cast<FunctionClass *>(nullptr));
- }
- template <class FunctionClass>
- void set_init(const char *devname, void (FunctionClass::*init)(palette_device &), const char *name)
- {
- m_init = init_delegate(init, name, devname, static_cast<FunctionClass *>(nullptr));
- }
- template <class FunctionClass>
- void set_init(const char *devname, void (FunctionClass::*init)(palette_device &) const, const char *name)
- {
- m_init = init_delegate(init, name, devname, static_cast<FunctionClass *>(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<ioport_field_live>(*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<ioport_value (*)(_class &)>([] (_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<ioport_value (*)(_class &)>([] (_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<void (*)(_class &, ioport_field &, u32, ioport_value, ioport_value)>([] (_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<void (*)(_class &, ioport_field &, u32, ioport_value, ioport_value)>([] (_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<unsigned, unsigned> 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 <type_traits>
#include <utility>
@@ -338,36 +339,29 @@ public:
m_yoffset = yoffs;
}
- // FIXME: these should be aware of current device for resolving the tag
- template <class FunctionClass>
- void set_screen_update(u32 (FunctionClass::*callback)(screen_device &, bitmap_ind16 &, const rectangle &), const char *name)
+ template <typename F>
+ std::enable_if_t<screen_update_ind16_delegate::supports_callback<F>::value> set_screen_update(F &&callback, const char *name)
{
- set_screen_update(screen_update_ind16_delegate(callback, name, nullptr, static_cast<FunctionClass *>(nullptr)));
+ m_screen_update_ind16.set(std::forward<F>(callback), name);
+ m_screen_update_rgb32 = screen_update_rgb32_delegate(*this);
}
- template <class FunctionClass>
- void set_screen_update(u32 (FunctionClass::*callback)(screen_device &, bitmap_rgb32 &, const rectangle &), const char *name)
+ template <typename F>
+ std::enable_if_t<screen_update_rgb32_delegate::supports_callback<F>::value> set_screen_update(F &&callback, const char *name)
{
- set_screen_update(screen_update_rgb32_delegate(callback, name, nullptr, static_cast<FunctionClass *>(nullptr)));
+ m_screen_update_ind16 = screen_update_ind16_delegate(*this);
+ m_screen_update_rgb32.set(std::forward<F>(callback), name);
}
- template <class FunctionClass>
- void set_screen_update(const char *devname, u32 (FunctionClass::*callback)(screen_device &, bitmap_ind16 &, const rectangle &), const char *name)
+ template <typename T, typename F>
+ std::enable_if_t<screen_update_ind16_delegate::supports_callback<F>::value> set_screen_update(T &&target, F &&callback, const char *name)
{
- set_screen_update(screen_update_ind16_delegate(callback, name, devname, static_cast<FunctionClass *>(nullptr)));
+ m_screen_update_ind16.set(std::forward<T>(target), std::forward<F>(callback), name);
+ m_screen_update_rgb32 = screen_update_rgb32_delegate(*this);
}
- template <class FunctionClass>
- void set_screen_update(const char *devname, u32 (FunctionClass::*callback)(screen_device &, bitmap_rgb32 &, const rectangle &), const char *name)
+ template <typename T, typename F>
+ std::enable_if_t<screen_update_rgb32_delegate::supports_callback<F>::value> set_screen_update(T &&target, F &&callback, const char *name)
{
- set_screen_update(screen_update_rgb32_delegate(callback, name, devname, static_cast<FunctionClass *>(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<T>(target), std::forward<F>(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<tilemap_device *>(this);
+ m_device = dynamic_cast<device_t *>(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<device_t &>(*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 <type_traits>
+#include <utility>
+#include <vector>
+
//**************************************************************************
// 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 <typename T, typename U>
+ 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<T>(tile_get_info), std::forward<U>(mapper), tilewidth, tileheight, cols, rows, nullptr); }
+ template <typename T, typename U, class V>
+ std::enable_if_t<std::is_base_of<device_t, V>::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<T>(tile_get_info), std::forward<U>(mapper), tilewidth, tileheight, cols, rows, &static_cast<tilemap_t &>(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 <typename T> void set_gfxdecode(T &&tag) { m_gfxdecode.set_tag(std::forward<T>(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 <class FunctionClass> 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<FunctionClass *>(nullptr)));
- }
- template <class FunctionClass> 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<FunctionClass *>(nullptr)));
- }
+ template <typename... T> void set_info_callback(T &&... args) { m_get_info.set(std::forward<T>(args)...); }
- template <class FunctionClass> 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<FunctionClass *>(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 <typename F>
+ void set_layout(F &&callback, const char *name, u32 columns, u32 rows)
+ {
+ m_standard_mapper = TILEMAP_STANDARD_COUNT;
+ m_mapper.set(std::forward<F>(callback), name);
+ m_num_columns = columns;
+ m_num_rows = rows;
+ }
+ template <typename T, typename F>
+ 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<T>(target), std::forward<F>(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 <cstring>
+#include <functional>
#include <typeinfo>
#include <utility>
-#include <functional>
//**************************************************************************
@@ -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 <class FunctionClass> using traits = delegate_traits<FunctionClass, ReturnType, Params...>;
- using functional_type = std::function<ReturnType (Params...)>;
using generic_static_func = typename traits<delegate_generic_class>::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<FunctionClass>)
, m_raw_function(nullptr)
, m_raw_mfp(funcptr, object, static_cast<ReturnType *>(nullptr), static_cast<generic_static_func>(nullptr))
- , m_std_func(nullptr)
{
bind(reinterpret_cast<delegate_generic_class *>(object));
}
@@ -469,7 +464,6 @@ public:
, m_latebinder(&late_bind_helper<FunctionClass>)
, m_raw_function(nullptr)
, m_raw_mfp(funcptr, object, static_cast<ReturnType *>(nullptr), static_cast<generic_static_func>(nullptr))
- , m_std_func(nullptr)
{
bind(reinterpret_cast<delegate_generic_class *>(object));
}
@@ -481,21 +475,10 @@ public:
, m_object(nullptr)
, m_latebinder(&late_bind_helper<FunctionClass>)
, m_raw_function(reinterpret_cast<generic_static_func>(funcptr))
- , m_std_func(nullptr)
{
bind(reinterpret_cast<delegate_generic_class *>(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<generic_member_func>(m_function)) (m_object, std::forward<Params>(args)...);
- else if (m_std_func)
- return m_std_func(std::forward<Params>(args)...);
else
return (*m_function) (m_object, std::forward<Params>(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 <typename Signature>
-class delegate;
+template <typename Signature> class delegate;
template <typename ReturnType, typename... Params>
class delegate<ReturnType (Params...)> : public delegate_base<ReturnType, Params...>
{
private:
using basetype = delegate_base<ReturnType, Params...>;
+ using functional_type = std::function<ReturnType (Params...)>;
+
+ functional_type m_std_func;
protected:
template <class FunctionClass> using traits = typename basetype::template traits<FunctionClass>;
@@ -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<basetype const &>(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<basetype &>(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 <class FunctionClass> delegate(member_func_type<FunctionClass> funcptr, FunctionClass *object) : basetype(funcptr, object) { }
template <class FunctionClass> delegate(const_member_func_type<FunctionClass> funcptr, FunctionClass *object) : basetype(funcptr, object) { }
- explicit delegate(std::function<ReturnType (Params...)> funcptr) : basetype(funcptr) { }
+ explicit delegate(functional_type &&functoid) : basetype(&functional_type::operator(), &m_std_func), m_std_func(std::move(functoid)) { }
template <class FunctionClass> delegate(static_ref_func_type<FunctionClass> funcptr, FunctionClass *object) : basetype(funcptr, object) { }
- delegate &operator=(const basetype &src) { *static_cast<basetype *>(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 <typename... T> void set_timer_delegate(T &&... args) { m_timer_delegate = timer_delegate(std::forward<T>(args)...); }
+ template <typename... T> void set_timer_delegate(T &&... args) { m_timer_delegate.set(std::forward<T>(args)...); }
protected:
struct LYNX_AUDIO {
diff --git a/src/mame/audio/midway.cpp b/src/mame/audio/midway.cpp
index 982961ea684..dfa62f619af 100644
--- a/src/mame/audio/midway.cpp
+++ b/src/mame/audio/midway.cpp
@@ -14,6 +14,7 @@
#include "audio/williams.h"
#include "sound/volt_reg.h"
+#include <algorithm>
//**************************************************************************
@@ -34,22 +35,25 @@ DEFINE_DEVICE_TYPE(MIDWAY_TURBO_CHEAP_SQUEAK, midway_turbo_cheap_squeak_device,
//-------------------------------------------------
midway_ssio_device::midway_ssio_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
- : device_t(mconfig, MIDWAY_SSIO, tag, owner, clock),
- device_mixer_interface(mconfig, *this, 2),
- m_cpu(*this, "cpu"),
- m_ay0(*this, "ay0"),
- m_ay1(*this, "ay1"),
- m_ports(*this, {"IP0", "IP1", "IP2", "IP3", "IP4"}),
- m_status(0),
- m_14024_count(0),
- m_mute(0)
+ : device_t(mconfig, MIDWAY_SSIO, tag, owner, clock)
+ , device_mixer_interface(mconfig, *this, 2)
+ , m_cpu(*this, "cpu")
+ , m_ay0(*this, "ay0")
+ , m_ay1(*this, "ay1")
+ , m_ports(*this, "IP%u", 0U)
+ , m_status(0)
+ , m_14024_count(0)
+ , m_mute(0)
+ , m_custom_input_mask{ 0U, 0U, 0U, 0U, 0U }
+ , m_custom_input(*this)
+ , m_custom_output_mask{ 0U, 0U }
+ , m_custom_output(*this)
{
- memset(m_data, 0, sizeof(m_data));
- memset(m_overall, 0, sizeof(m_overall));
- memset(m_duty_cycle, 0, sizeof(m_duty_cycle));
- memset(m_ayvolume_lookup, 0, sizeof(m_ayvolume_lookup));
- memset(m_custom_input_mask, 0, sizeof(m_custom_input_mask));
- memset(m_custom_output_mask, 0, sizeof(m_custom_output_mask));
+ std::fill(std::begin(m_data), std::end(m_data), 0);
+ std::fill(std::begin(m_overall), std::end(m_overall), 0);
+ for (auto &duty_cycle : m_duty_cycle)
+ std::fill(std::begin(duty_cycle), std::end(duty_cycle), 0);
+ std::fill(std::begin(m_ayvolume_lookup), std::end(m_ayvolume_lookup), 0);
}
@@ -132,30 +136,6 @@ WRITE8_MEMBER(midway_ssio_device::ioport_write)
//-------------------------------------------------
-// set_custom_input - configure a custom port
-// reader
-//-------------------------------------------------
-
-void midway_ssio_device::set_custom_input(int which, uint8_t mask, read8_delegate handler)
-{
- m_custom_input[which] = handler;
- m_custom_input_mask[which] = mask;
-}
-
-
-//-------------------------------------------------
-// set_custom_output - configure a custom port
-// writer
-//-------------------------------------------------
-
-void midway_ssio_device::set_custom_output(int which, uint8_t mask, write8_delegate handler)
-{
- m_custom_output[which/4] = handler;
- m_custom_output_mask[which/4] = mask;
-}
-
-
-//-------------------------------------------------
// compute_ay8910_modulation - precompute
// volume modulation tables based on the duty
// cycle described by the PROMs
diff --git a/src/mame/audio/midway.h b/src/mame/audio/midway.h
index 5078db354f2..07eeb403217 100644
--- a/src/mame/audio/midway.h
+++ b/src/mame/audio/midway.h
@@ -58,8 +58,16 @@ public:
DECLARE_WRITE8_MEMBER(ioport_write);
// configuration
- void set_custom_input(int which, uint8_t mask, read8_delegate handler);
- void set_custom_output(int which, uint8_t mask, write8_delegate handler);
+ template <typename... T> void set_custom_input(int which, uint8_t mask, T &&... args)
+ {
+ m_custom_input_mask[which] = mask;
+ m_custom_input[which].set(std::forward<T>(args)...);
+ }
+ template <typename... T> void set_custom_output(int which, uint8_t mask, T &&... args)
+ {
+ m_custom_output_mask[which / 4] = mask;
+ m_custom_output[which / 4].set(std::forward<T>(args)...);
+ }
// internal communications
DECLARE_READ8_MEMBER(irq_clear);
@@ -102,16 +110,15 @@ private:
// I/O port overrides
uint8_t m_custom_input_mask[5];
- read8_delegate m_custom_input[5];
+ read8_delegate::array<5> m_custom_input;
uint8_t m_custom_output_mask[2];
- write8_delegate m_custom_output[2];
+ write8_delegate::array<2> m_custom_output;
INTERRUPT_GEN_MEMBER(clock_14024);
DECLARE_WRITE8_MEMBER(porta0_w);
DECLARE_WRITE8_MEMBER(portb0_w);
DECLARE_WRITE8_MEMBER(porta1_w);
DECLARE_WRITE8_MEMBER(portb1_w);
-
};
diff --git a/src/mame/audio/segasnd.cpp b/src/mame/audio/segasnd.cpp
index 85d95753e0f..bd194737fce 100644
--- a/src/mame/audio/segasnd.cpp
+++ b/src/mame/audio/segasnd.cpp
@@ -882,8 +882,9 @@ void usb_sound_device::device_add_mconfig(machine_config &config)
m_ourcpu->p2_out_cb().set(FUNC(usb_sound_device::p2_w));
m_ourcpu->t1_in_cb().set(FUNC(usb_sound_device::t1_r));
- TIMER(config, "usb_timer", 0).configure_periodic(timer_device::expired_delegate(FUNC(usb_sound_device::increment_t1_clock_timer_cb), this)
- , attotime::from_hz(USB_2MHZ_CLOCK / 256));
+ TIMER(config, "usb_timer", 0).configure_periodic(
+ FUNC(usb_sound_device::increment_t1_clock_timer_cb),
+ attotime::from_hz(USB_2MHZ_CLOCK / 256));
}
diff --git a/src/mame/audio/sente6vb.cpp b/src/mame/audio/sente6vb.cpp
index 358e646182d..7e9fd2995f6 100644
--- a/src/mame/audio/sente6vb.cpp
+++ b/src/mame/audio/sente6vb.cpp
@@ -113,7 +113,7 @@ void sente6vb_device::device_add_mconfig(machine_config &config)
uartclock.signal_handler().append(m_uart, FUNC(acia6850_device::write_txc));
uartclock.signal_handler().append(m_uart, FUNC(acia6850_device::write_rxc));
- TIMER(config, m_counter_0_timer, 0).configure_generic(timer_device::expired_delegate(FUNC(sente6vb_device::clock_counter_0_ff), this));
+ TIMER(config, m_counter_0_timer, 0).configure_generic(FUNC(sente6vb_device::clock_counter_0_ff));
PIT8253(config, m_pit, 0);
m_pit->out_handler<0>().set(FUNC(sente6vb_device::counter_0_set_out));
@@ -131,12 +131,12 @@ void sente6vb_device::device_add_mconfig(machine_config &config)
cem_device->add_route(ALL_OUTPUTS, "mono", 0.90);
}
- m_cem_device[0]->set_ext_input_callback(FUNC(sente6vb_device::noise_gen_0), this);
- m_cem_device[1]->set_ext_input_callback(FUNC(sente6vb_device::noise_gen_1), this);
- m_cem_device[2]->set_ext_input_callback(FUNC(sente6vb_device::noise_gen_2), this);
- m_cem_device[3]->set_ext_input_callback(FUNC(sente6vb_device::noise_gen_3), this);
- m_cem_device[4]->set_ext_input_callback(FUNC(sente6vb_device::noise_gen_4), this);
- m_cem_device[5]->set_ext_input_callback(FUNC(sente6vb_device::noise_gen_5), this);
+ m_cem_device[0]->set_ext_input_callback(FUNC(sente6vb_device::noise_gen_0));
+ m_cem_device[1]->set_ext_input_callback(FUNC(sente6vb_device::noise_gen_1));
+ m_cem_device[2]->set_ext_input_callback(FUNC(sente6vb_device::noise_gen_2));
+ m_cem_device[3]->set_ext_input_callback(FUNC(sente6vb_device::noise_gen_3));
+ m_cem_device[4]->set_ext_input_callback(FUNC(sente6vb_device::noise_gen_4));
+ m_cem_device[5]->set_ext_input_callback(FUNC(sente6vb_device::noise_gen_5));
}
diff --git a/src/mame/drivers/1943.cpp b/src/mame/drivers/1943.cpp
index c903e24e500..53f870199d9 100644
--- a/src/mame/drivers/1943.cpp
+++ b/src/mame/drivers/1943.cpp
@@ -81,11 +81,11 @@ void _1943_state::c1943_map(address_map &map)
map(0xc002, 0xc002).portr("P2");
map(0xc003, 0xc003).portr("DSWA");
map(0xc004, 0xc004).portr("DSWB");
- map(0xc007, 0xc007).lr8("mcu_r", [this]() -> u8 { return m_mcu_to_cpu; });
+ map(0xc007, 0xc007).lr8(NAME([this] () -> u8 { return m_mcu_to_cpu; }));
map(0xc800, 0xc800).w("soundlatch", FUNC(generic_latch_8_device::write));
map(0xc804, 0xc804).w(FUNC(_1943_state::c804_w)); // ROM bank switch, screen flip
map(0xc806, 0xc806).w("watchdog", FUNC(watchdog_timer_device::reset_w));
- map(0xc807, 0xc807).lw8("mcu_w", [this](u8 data) { m_cpu_to_mcu = data; });
+ map(0xc807, 0xc807).lw8(NAME([this] (u8 data) { m_cpu_to_mcu = data; }));
map(0xd000, 0xd3ff).ram().w(FUNC(_1943_state::videoram_w)).share("videoram");
map(0xd400, 0xd7ff).ram().w(FUNC(_1943_state::colorram_w)).share("colorram");
map(0xd800, 0xd801).ram().share("scrollx");
@@ -106,7 +106,7 @@ void _1943_state::c1943b_map(address_map &map)
// the bootleg expects 0x00 to be returned from the protection reads
// because the protection has been patched out
- map(0xc007, 0xc007).lr8("mcu_r", []() -> u8 { return 0x00; });
+ map(0xc007, 0xc007).lr8(NAME([]() -> u8 { return 0x00; }));
map(0xc807, 0xc807).noprw();
}
@@ -115,7 +115,7 @@ void _1943_state::sound_map(address_map &map)
map(0x0000, 0x7fff).rom();
map(0xc000, 0xc7ff).ram();
map(0xc800, 0xc800).r("soundlatch", FUNC(generic_latch_8_device::read));
- map(0xd800, 0xd800).lrw8("mcu", [this]() { return m_mcu_to_audiocpu; }, [this](u8 data) { m_audiocpu_to_mcu = data; });
+ map(0xd800, 0xd800).lrw8(NAME([this]() { return m_mcu_to_audiocpu; }), NAME([this](u8 data) { m_audiocpu_to_mcu = data; }));
map(0xe000, 0xe001).w("ym1", FUNC(ym2203_device::write));
map(0xe002, 0xe003).w("ym2", FUNC(ym2203_device::write));
}
diff --git a/src/mame/drivers/1945kiii.cpp b/src/mame/drivers/1945kiii.cpp
index d77122dedde..1a8fa1af50e 100644
--- a/src/mame/drivers/1945kiii.cpp
+++ b/src/mame/drivers/1945kiii.cpp
@@ -121,7 +121,7 @@ TILE_GET_INFO_MEMBER(k3_state::get_tile_info)
void k3_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(k3_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(k3_state::get_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
}
void k3_state::k3_drawgfx(bitmap_ind16 &dest_bmp,const rectangle &clip,gfx_element *gfx,
diff --git a/src/mame/drivers/39in1.cpp b/src/mame/drivers/39in1.cpp
index ed5aa3df6b6..5b0a0204c55 100644
--- a/src/mame/drivers/39in1.cpp
+++ b/src/mame/drivers/39in1.cpp
@@ -198,7 +198,7 @@ READ32_MEMBER(_39in1_state::prot_cheater_r)
void _39in1_state::driver_init()
{
address_space &space = m_maincpu->space(AS_PROGRAM);
- space.install_read_handler (0xa0151648, 0xa015164b, read32_delegate(FUNC(_39in1_state::prot_cheater_r), this));
+ space.install_read_handler (0xa0151648, 0xa015164b, read32_delegate(*this, FUNC(_39in1_state::prot_cheater_r)));
}
void _39in1_state::_39in1_map(address_map &map)
diff --git a/src/mame/drivers/3x3puzzl.cpp b/src/mame/drivers/3x3puzzl.cpp
index 6c9025a6f73..d20fdfde634 100644
--- a/src/mame/drivers/3x3puzzl.cpp
+++ b/src/mame/drivers/3x3puzzl.cpp
@@ -179,9 +179,9 @@ WRITE16_MEMBER(_3x3puzzle_state::tilemap1_scrolly_w)
void _3x3puzzle_state::video_start()
{
- m_tilemap1 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(_3x3puzzle_state::get_tile1_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- m_tilemap2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(_3x3puzzle_state::get_tile2_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_tilemap3 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(_3x3puzzle_state::get_tile3_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tilemap1 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(_3x3puzzle_state::get_tile1_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_tilemap2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(_3x3puzzle_state::get_tile2_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tilemap3 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(_3x3puzzle_state::get_tile3_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_tilemap2->set_transparent_pen(0);
m_tilemap3->set_transparent_pen(0);
}
diff --git a/src/mame/drivers/4dpi.cpp b/src/mame/drivers/4dpi.cpp
index af5163d0e5b..abd638641c9 100644
--- a/src/mame/drivers/4dpi.cpp
+++ b/src/mame/drivers/4dpi.cpp
@@ -251,17 +251,14 @@ void pi4d2x_state::map(address_map &map)
//map(0x1f000000, 0x1fbfffff); // local I/O (duarts, timers, etc.)
map(0x1f000000, 0x1f007fff).m(m_gfx, FUNC(sgi_gr1_device::map)).mirror(0x8000);
- map(0x1f800000, 0x1f800003).lrw8("memcfg", [this]() { return m_memcfg; }, [this](u8 data) { m_memcfg = data; }).umask32(0xff000000);
+ map(0x1f800000, 0x1f800003).lrw8(NAME([this]() { return m_memcfg; }), NAME([this](u8 data) { m_memcfg = data; })).umask32(0xff000000);
map(0x1f800000, 0x1f800003).r(FUNC(pi4d2x_state::sysid_r)).umask32(0x00ff0000);
- map(0x1f840000, 0x1f840003).lrw8("vme_isr", [this]() { return m_vme_isr; }, [this](u8 data) { m_vme_isr = data; }).umask32(0x000000ff);
- map(0x1f840008, 0x1f84000b).lrw8("vme_imr", [this]() { return m_vme_imr; }, [this](u8 data) { m_vme_imr = data; }).umask32(0x000000ff);
+ map(0x1f840000, 0x1f840003).lrw8(NAME([this]() { return m_vme_isr; }), NAME([this](u8 data) { m_vme_isr = data; })).umask32(0x000000ff);
+ map(0x1f840008, 0x1f84000b).lrw8(NAME([this]() { return m_vme_imr; }), NAME([this](u8 data) { m_vme_imr = data; })).umask32(0x000000ff);
- map(0x1f880000, 0x1f880003).lrw16("cpuctrl",
- [this]()
- {
- return m_cpuctrl;
- },
+ map(0x1f880000, 0x1f880003).lrw16(
+ NAME([this]() { return m_cpuctrl; }),
[this](u16 data)
{
m_eeprom->di_write(BIT(data, 8));
@@ -278,13 +275,10 @@ void pi4d2x_state::map(address_map &map)
//BIT(data, 15); // fast peripheral cycle
m_cpuctrl = data;
- }).umask32(0x0000ffff);
+ }, "cpuctrl_w").umask32(0x0000ffff);
//map(0x1f8c0000, 0x1f8c0003); // lca readback trigger (b)
- map(0x1f8e0000, 0x1f8e0003).lrw8("cpuauxctrl",
- [this]()
- {
- return m_cpuauxctl;
- },
+ map(0x1f8e0000, 0x1f8e0003).lrw8(
+ NAME([this]() { return m_cpuauxctl; }),
[this](u8 data)
{
// cpu leds
@@ -303,59 +297,41 @@ void pi4d2x_state::map(address_map &map)
m_gfx->reset_w(BIT(data, 7));
m_cpuauxctl = data;
- }).umask32(0xff000000);
+ }, "cpuauxctl_w").umask32(0xff000000);
- map(0x1f900000, 0x1f900003).lrw16("dmalo",
- [this]()
- {
- return m_dmalo;
- },
+ map(0x1f900000, 0x1f900003).lrw16(
+ NAME([this]() { return m_dmalo; }),
[this](u16 data)
{
m_dmalo = data;
m_mapindex = 0;
m_dmaaddr = (u32(m_dmahi[m_mapindex]) << 12) | (m_dmalo & 0x0ffc);
- }).umask32(0x0000ffff);
+ }, "dmalo_w").umask32(0x0000ffff);
- map(0x1f910000, 0x1f910003).lrw8("mapindex",
- [this]()
- {
- return m_mapindex;
- },
- [this](u8 data)
- {
- m_mapindex = data;
- }).umask32(0x000000ff);
+ map(0x1f910000, 0x1f910003).lrw8(
+ NAME([this]() { return m_mapindex; }),
+ NAME([this](u8 data) { m_mapindex = data; })).umask32(0x000000ff);
/*
* DMA address mapping table is a pair of CY7C128-35PC 2048x8 SRAMs which
* read/write to data bus D27-12. A10 is tied high, giving 1024 entries.
*/
- map(0x1f920000, 0x1f920fff).lrw16("dmahi",
- [this](offs_t offset)
- {
- return m_dmahi[offset];
- },
- [this](offs_t offset, u16 data, u16 mem_mask)
- {
- COMBINE_DATA(&m_dmahi[offset]);
- }).umask32(0x0000ffff);
+ map(0x1f920000, 0x1f920fff).lrw16(
+ NAME([this](offs_t offset) { return m_dmahi[offset]; }),
+ NAME([this](offs_t offset, u16 data, u16 mem_mask) { COMBINE_DATA(&m_dmahi[offset]); })).umask32(0x0000ffff);
// emulation can ignore dma flush
map(0x1f940000, 0x1f940003).nopw();
map(0x1f950000, 0x1f9501ff).rw(m_enet, FUNC(am7990_device::regs_r), FUNC(am7990_device::regs_w)).umask32(0xffff0000);
- map(0x1f960000, 0x1f960003).lr8("etherrdy", [this]() { m_enet->reset_w(1); return 0; }).umask32(0xff000000);
- map(0x1f960004, 0x1f960007).lr8("etherrst", [this]() { m_enet->reset_w(0); return 0; }).umask32(0xff000000);
+ map(0x1f960000, 0x1f960003).lr8([this]() { m_enet->reset_w(1); return 0; }, "etherrdy").umask32(0xff000000);
+ map(0x1f960004, 0x1f960007).lr8([this]() { m_enet->reset_w(0); return 0; }, "etherrst").umask32(0xff000000);
//map(0x1f960008, 0x1f96000b).rw().umask32(0xff000000); // etherwait: wait state control
- map(0x1f980000, 0x1f980003).lr16("lio_isr", [this]() { return m_lio_isr; }).umask32(0x0000ffff);
- map(0x1f980008, 0x1f98000b).lrw8("lio_imr",
- [this]()
- {
- return m_lio_imr;
- },
+ map(0x1f980000, 0x1f980003).lr16(NAME([this]() { return m_lio_isr; })).umask32(0x0000ffff);
+ map(0x1f980008, 0x1f98000b).lrw8(
+ NAME([this]() { return m_lio_imr; }),
[this](u8 data)
{
m_lio_imr = data;
@@ -376,7 +352,7 @@ void pi4d2x_state::map(address_map &map)
m_lio_int = lio_int;
m_cpu->set_input_line(INPUT_LINE_IRQ1, m_lio_int);
}
- }).umask32(0x000000ff);
+ }, "lio_imr_w").umask32(0x000000ff);
// 1 0 a7 a6 a5 a4 a3 a2 a1 a0 1 0 lance dmahi
// 0 0 a7 a6 a5 a4 a3 a2 a1 a0 1 0 scsi dmahi
@@ -406,12 +382,12 @@ void pi4d2x_state::map(address_map &map)
map(0x1f9e0000, 0x1f9e0003).ram().umask32(0x000000ff);
map(0x1f9f000c, 0x1f9f000f).ram().umask32(0xffffffff);
- map(0x1fa00000, 0x1fa00003).lr8("timer1_ack", [this]() { m_cpu->set_input_line(INPUT_LINE_IRQ4, 0); return 0; }).umask32(0xff000000);
- map(0x1fa20000, 0x1fa20003).lr8("timer0_ack", [this]() { m_cpu->set_input_line(INPUT_LINE_IRQ2, 0); return 0; }).umask32(0xff000000);
+ map(0x1fa00000, 0x1fa00003).lr8([this]() { m_cpu->set_input_line(INPUT_LINE_IRQ4, 0); return 0; }, "timer1_ack").umask32(0xff000000);
+ map(0x1fa20000, 0x1fa20003).lr8([this]() { m_cpu->set_input_line(INPUT_LINE_IRQ2, 0); return 0; }, "timer0_ack").umask32(0xff000000);
- map(0x1fa40000, 0x1fa40003).lr32("erradr", [this]() { m_cpu->set_input_line(INPUT_LINE_IRQ5, 0); m_cpu->berr_w(0); return m_erradr; });
+ map(0x1fa40000, 0x1fa40003).lr32([this]() { m_cpu->set_input_line(INPUT_LINE_IRQ5, 0); m_cpu->berr_w(0); return m_erradr; }, "erradr");
- map(0x1fa40004, 0x1fa40007).lrw32("refadr",
+ map(0x1fa40004, 0x1fa40007).lrw32(
[this]()
{
if (m_memcfg & MEMCFG_TIMERDIS)
@@ -425,51 +401,45 @@ void pi4d2x_state::map(address_map &map)
}
else
return m_refadr;
- },
+ }, "refadr_r",
[this](u32 data)
{
m_refadr = data;
m_refresh_timer = machine().time();
- });
+ }, "refadr_w");
- map(0x1fa40008, 0x1fa4000b).lrw32("gdma_dabr_phys", [this]() { return m_gdma_dabr; }, [this](u32 data) { m_gdma_dabr = data; });
- map(0x1fa4000c, 0x1fa4000f).lrw32("gdma_bufadr_phys", [this]() { return m_gdma_bufadr; }, [this](u32 data) { m_gdma_bufadr = data; });
- map(0x1fa40010, 0x1fa40013).lrw16("gdma_burst_phys", [this]() { return m_gdma_burst; }, [this](u16 data) { m_gdma_burst = data; }).umask32(0xffff0000);
- map(0x1fa40010, 0x1fa40013).lrw16("gdma_buflen_phys", [this]() { return m_gdma_buflen; }, [this](u16 data) { m_gdma_buflen = data; }).umask32(0x0000ffff);
+ map(0x1fa40008, 0x1fa4000b).lrw32(NAME([this]() { return m_gdma_dabr; }), NAME([this](u32 data) { m_gdma_dabr = data; }));
+ map(0x1fa4000c, 0x1fa4000f).lrw32(NAME([this]() { return m_gdma_bufadr; }), NAME([this](u32 data) { m_gdma_bufadr = data; }));
+ map(0x1fa40010, 0x1fa40013).lrw16(NAME([this]() { return m_gdma_burst; }), NAME([this](u16 data) { m_gdma_burst = data; })).umask32(0xffff0000);
+ map(0x1fa40010, 0x1fa40013).lrw16(NAME([this]() { return m_gdma_buflen; }), NAME([this](u16 data) { m_gdma_buflen = data; })).umask32(0x0000ffff);
- map(0x1fa60000, 0x1fa60003).lrw8("vmermw", [this]() { m_sysid |= SYSID_VMERMW; return 0; }, [this](u8 data) { m_sysid |= SYSID_VMERMW; }).umask32(0xff000000);
+ map(0x1fa60000, 0x1fa60003).lrw8([this]() { m_sysid |= SYSID_VMERMW; return 0; }, "vmermw_r", [this](u8 data) { m_sysid |= SYSID_VMERMW; }, "vmermw_w").umask32(0xff000000);
//map(0x1fa60004, 0x1fa60007).rw("actpup").umask32(0xff000000); // turn on active bus pullup
- map(0x1fa60018, 0x1fa6001b).lrw8("vmefbon", [this]() { m_sysid |= SYSID_VMEFBT; return 0; }, [this](u8 data) { m_sysid |= SYSID_VMEFBT; }).umask32(0xff000000);
- map(0x1fa6001c, 0x1fa6001f).lrw8("vmefbof", [this]() { m_sysid &= ~SYSID_VMEFBT; return 0; }, [this](u8 data) { m_sysid &= ~SYSID_VMEFBT; }).umask32(0xff000000);
+ map(0x1fa60018, 0x1fa6001b).lrw8([this]() { m_sysid |= SYSID_VMEFBT; return 0; }, "vmefbon_r", [this](u8 data) { m_sysid |= SYSID_VMEFBT; }, "vmefbon_w").umask32(0xff000000);
+ map(0x1fa6001c, 0x1fa6001f).lrw8([this]() { m_sysid &= ~SYSID_VMEFBT; return 0; }, "vmefbof_r", [this](u8 data) { m_sysid &= ~SYSID_VMEFBT; }, "vmefbof_w").umask32(0xff000000);
map(0x1fa60020, 0x1fa60023).nopr(); // reload gfx dma burst/delay reg (FIXME: silenced)
//map(0x1fa60024, 0x1fa60027).rw("enraso").umask32(0xff000000); // enable ctl ras decoder
- map(0x1fa80000, 0x1fa80003).lr8("scsirdy", [this]() { m_scsi->reset_w(0); return 0; }).umask32(0xff000000);
- map(0x1fa80004, 0x1fa80007).lr8("scsirst", [this]() { m_scsi->reset_w(1); return 0; }).umask32(0xff000000);
- map(0x1fa80008, 0x1fa8000b).lr8("scsibstat", []() { return 0; }).umask32(0x00ff0000);
+ map(0x1fa80000, 0x1fa80003).lr8([this]() { m_scsi->reset_w(0); return 0; }, "scsirdy").umask32(0xff000000);
+ map(0x1fa80004, 0x1fa80007).lr8([this]() { m_scsi->reset_w(1); return 0; }, "scsirst").umask32(0xff000000);
+ map(0x1fa80008, 0x1fa8000b).lr8([]() { return 0; }, "scsibstat").umask32(0x00ff0000);
// TODO: IOC2 configuration register, bus error on IOC1
//map(0x1fa80008, 0x1fa8000b).rw(FUNC(pi4d2x_state::buserror_r), FUNC(pi4d2x_state::buserror_w));
- map(0x1faa0000, 0x1faa0003).lrw8("clrerr", [this](offs_t offset) { m_parerr &= ~(PARERR_BYTE | (1 << offset)); return 0; }, [this](offs_t offset) { m_parerr &= ~(PARERR_BYTE | (1 << offset)); });
- map(0x1faa0004, 0x1faa0007).lr8("parerr", [this]() { return m_parerr; }).umask32(0x00ff0000);
+ map(0x1faa0000, 0x1faa0003).lrw8([this](offs_t offset) { m_parerr &= ~(PARERR_BYTE | (1 << offset)); return 0; }, "clrerr_r", [this](offs_t offset) { m_parerr &= ~(PARERR_BYTE | (1 << offset)); }, "clrerr_w");
+ map(0x1faa0004, 0x1faa0007).lr8(NAME([this]() { return m_parerr; })).umask32(0x00ff0000);
- map(0x1fac0000, 0x1fac0003).lrw8("vrrst", [this]() { lio_interrupt<LIO_VR>(1); return 0; }, [this](u8 data) { lio_interrupt<LIO_VR>(1); }).umask32(0xff000000);
+ map(0x1fac0000, 0x1fac0003).lrw8([this]() { lio_interrupt<LIO_VR>(1); return 0; }, "vrrst_r", [this](u8 data) { lio_interrupt<LIO_VR>(1); }, "vrrst_w").umask32(0xff000000);
map(0x1fb00000, 0x1fb00003).rw(m_scsi, FUNC(wd33c93_device::indir_addr_r), FUNC(wd33c93_device::indir_addr_w)).umask32(0x00ff0000);
map(0x1fb00100, 0x1fb00103).rw(m_scsi, FUNC(wd33c93_device::indir_reg_r), FUNC(wd33c93_device::indir_reg_w)).umask32(0x00ff0000);
map(0x1fb40000, 0x1fb4000f).rw(m_pit, FUNC(pit8254_device::read), FUNC(pit8254_device::write)).umask32(0xff000000);
- map(0x1fb80000, 0x1fb800ff).lrw8("duarts",
- [this](offs_t offset)
- {
- return m_duart[BIT(offset, 0)]->read(offset >> 2);
- },
- [this](offs_t offset, u8 data)
- {
- m_duart[BIT(offset, 0)]->write(offset >> 2, data);
- }).umask32(0xff000000);
+ map(0x1fb80000, 0x1fb800ff).lrw8(
+ NAME([this](offs_t offset) { return m_duart[BIT(offset, 0)]->read(offset >> 2); }),
+ NAME([this](offs_t offset, u8 data) { m_duart[BIT(offset, 0)]->write(offset >> 2, data); })).umask32(0xff000000);
map(0x1fbc0000, 0x1fbc007f).rw(m_rtc, FUNC(dp8573_device::read), FUNC(dp8573_device::write)).umask32(0xff000000);
diff --git a/src/mame/drivers/4enlinea.cpp b/src/mame/drivers/4enlinea.cpp
index a07d92002b1..9247d314ba8 100644
--- a/src/mame/drivers/4enlinea.cpp
+++ b/src/mame/drivers/4enlinea.cpp
@@ -329,8 +329,8 @@ void isa8_cga_4enlinea_device::device_start()
m_vram_size = 0x4000;
m_vram.resize(m_vram_size);
- //m_isa->install_device(0x3bf, 0x3bf, 0, 0, nullptr, write8_delegate( FUNC(isa8_cga_4enlinea_device::_4enlinea_mode_control_w), this ) );
- m_isa->install_device(0x3d0, 0x3df, read8_delegate( FUNC(isa8_cga_4enlinea_device::_4enlinea_io_read), this ), write8_delegate( FUNC(isa8_cga_device::io_write), this ) );
+ //m_isa->install_device(0x3bf, 0x3bf, 0, 0, nullptr, write8_delegate(*this, FUNC(isa8_cga_4enlinea_device::_4enlinea_mode_control_w)));
+ m_isa->install_device(0x3d0, 0x3df, read8_delegate(*this, FUNC(isa8_cga_4enlinea_device::_4enlinea_io_read)), write8_delegate(*this, FUNC(isa8_cga_device::io_write)));
m_isa->install_bank(0x8000, 0xbfff, "bank1", &m_vram[0]);
/* Initialise the cga palette */
diff --git a/src/mame/drivers/5clown.cpp b/src/mame/drivers/5clown.cpp
index 9a0e0605b2d..af1c46fed80 100644
--- a/src/mame/drivers/5clown.cpp
+++ b/src/mame/drivers/5clown.cpp
@@ -1049,7 +1049,7 @@ void _5clown_state::fclown(machine_config &config)
crtc.set_show_border_area(false);
crtc.set_char_width(8);
crtc.out_vsync_callback().set_inputline(m_maincpu, INPUT_LINE_NMI);
- crtc.set_update_row_callback(FUNC(_5clown_state::update_row), this);
+ crtc.set_update_row_callback(FUNC(_5clown_state::update_row));
/* sound hardware */
SPEAKER(config, "mono").front_center();
diff --git a/src/mame/drivers/88games.cpp b/src/mame/drivers/88games.cpp
index ff8e7a553e3..2672faf4087 100644
--- a/src/mame/drivers/88games.cpp
+++ b/src/mame/drivers/88games.cpp
@@ -323,17 +323,17 @@ void _88games_state::_88games(machine_config &config)
K052109(config, m_k052109, 0);
m_k052109->set_palette("palette");
m_k052109->set_screen("screen");
- m_k052109->set_tile_callback(FUNC(_88games_state::tile_callback), this);
+ m_k052109->set_tile_callback(FUNC(_88games_state::tile_callback));
m_k052109->irq_handler().set_inputline(m_maincpu, KONAMI_IRQ_LINE);
K051960(config, m_k051960, 0);
m_k051960->set_palette("palette");
m_k051960->set_screen("screen");
- m_k051960->set_sprite_callback(FUNC(_88games_state::sprite_callback), this);
+ m_k051960->set_sprite_callback(FUNC(_88games_state::sprite_callback));
K051316(config, m_k051316, 0);
m_k051316->set_palette("palette");
- m_k051316->set_zoom_callback(FUNC(_88games_state::zoom_callback), this);
+ m_k051316->set_zoom_callback(FUNC(_88games_state::zoom_callback));
/* sound hardware */
SPEAKER(config, "mono").front_center();
diff --git a/src/mame/drivers/a2600.cpp b/src/mame/drivers/a2600.cpp
index 6cbeeef3a4d..2ab2427e761 100644
--- a/src/mame/drivers/a2600.cpp
+++ b/src/mame/drivers/a2600.cpp
@@ -312,50 +312,50 @@ void a2600_state::machine_start()
case A26_DC:
case A26_FV:
case A26_8IN1:
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1000, 0x1fff, read8_delegate(FUNC(vcs_cart_slot_device::read_rom),(vcs_cart_slot_device*)m_cart), write8_delegate(FUNC(vcs_cart_slot_device::write_bank),(vcs_cart_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1000, 0x1fff, read8_delegate(*m_cart, FUNC(vcs_cart_slot_device::read_rom)), write8_delegate(*m_cart, FUNC(vcs_cart_slot_device::write_bank)));
break;
case A26_F6:
case A26_DPC:
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1000, 0x1fff, read8_delegate(FUNC(vcs_cart_slot_device::read_rom),(vcs_cart_slot_device*)m_cart), write8_delegate(FUNC(vcs_cart_slot_device::write_bank),(vcs_cart_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1000, 0x1fff, read8_delegate(*m_cart, FUNC(vcs_cart_slot_device::read_rom)), write8_delegate(*m_cart, FUNC(vcs_cart_slot_device::write_bank)));
break;
case A26_FE:
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1000, 0x1fff, read8_delegate(FUNC(vcs_cart_slot_device::read_rom),(vcs_cart_slot_device*)m_cart), write8_delegate(FUNC(vcs_cart_slot_device::write_ram),(vcs_cart_slot_device*)m_cart));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x01fe, 0x01ff, read8_delegate(FUNC(vcs_cart_slot_device::read_bank),(vcs_cart_slot_device*)m_cart));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x01fe, 0x01fe, write8_delegate(FUNC(vcs_cart_slot_device::write_bank),(vcs_cart_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1000, 0x1fff, read8_delegate(*m_cart, FUNC(vcs_cart_slot_device::read_rom)), write8_delegate(*m_cart, FUNC(vcs_cart_slot_device::write_ram)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x01fe, 0x01ff, read8_delegate(*m_cart, FUNC(vcs_cart_slot_device::read_bank)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x01fe, 0x01fe, write8_delegate(*m_cart, FUNC(vcs_cart_slot_device::write_bank)));
break;
case A26_3E:
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1000, 0x1fff, read8_delegate(FUNC(vcs_cart_slot_device::read_rom),(vcs_cart_slot_device*)m_cart), write8_delegate(FUNC(vcs_cart_slot_device::write_ram),(vcs_cart_slot_device*)m_cart));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x00, 0x3f, write8_delegate(FUNC(a2600_state::cart_over_tia_w), this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1000, 0x1fff, read8_delegate(*m_cart, FUNC(vcs_cart_slot_device::read_rom)), write8_delegate(*m_cart, FUNC(vcs_cart_slot_device::write_ram)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x00, 0x3f, write8_delegate(*this, FUNC(a2600_state::cart_over_tia_w)));
break;
case A26_3F:
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x1000, 0x1fff, read8_delegate(FUNC(vcs_cart_slot_device::read_rom),(vcs_cart_slot_device*)m_cart));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x00, 0x3f, write8_delegate(FUNC(a2600_state::cart_over_tia_w), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x1000, 0x1fff, read8_delegate(*m_cart, FUNC(vcs_cart_slot_device::read_rom)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x00, 0x3f, write8_delegate(*this, FUNC(a2600_state::cart_over_tia_w)));
break;
case A26_UA:
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x1000, 0x1fff, read8_delegate(FUNC(vcs_cart_slot_device::read_rom),(vcs_cart_slot_device*)m_cart));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x200, 0x27f, read8_delegate(FUNC(vcs_cart_slot_device::read_bank),(vcs_cart_slot_device*)m_cart), write8_delegate(FUNC(vcs_cart_slot_device::write_bank),(vcs_cart_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x1000, 0x1fff, read8_delegate(*m_cart, FUNC(vcs_cart_slot_device::read_rom)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x200, 0x27f, read8_delegate(*m_cart, FUNC(vcs_cart_slot_device::read_bank)), write8_delegate(*m_cart, FUNC(vcs_cart_slot_device::write_bank)));
break;
case A26_JVP:
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1000, 0x1fff, read8_delegate(FUNC(vcs_cart_slot_device::read_rom),(vcs_cart_slot_device*)m_cart), write8_delegate(FUNC(vcs_cart_slot_device::write_bank),(vcs_cart_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1000, 0x1fff, read8_delegate(*m_cart, FUNC(vcs_cart_slot_device::read_rom)), write8_delegate(*m_cart, FUNC(vcs_cart_slot_device::write_bank)));
// to verify the actual behavior...
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xfa0, 0xfc0, read8_delegate(FUNC(a2600_state::cart_over_riot_r), this), write8_delegate(FUNC(a2600_state::cart_over_riot_w), this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xfa0, 0xfc0, read8_delegate(*this, FUNC(a2600_state::cart_over_riot_r)), write8_delegate(*this, FUNC(a2600_state::cart_over_riot_w)));
break;
case A26_4IN1:
case A26_32IN1:
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x1000, 0x1fff, read8_delegate(FUNC(vcs_cart_slot_device::read_rom),(vcs_cart_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x1000, 0x1fff, read8_delegate(*m_cart, FUNC(vcs_cart_slot_device::read_rom)));
break;
case A26_SS:
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x1000, 0x1fff, read8_delegate(FUNC(vcs_cart_slot_device::read_rom),(vcs_cart_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x1000, 0x1fff, read8_delegate(*m_cart, FUNC(vcs_cart_slot_device::read_rom)));
break;
case A26_CM:
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x1000, 0x1fff, read8_delegate(FUNC(vcs_cart_slot_device::read_rom),(vcs_cart_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x1000, 0x1fff, read8_delegate(*m_cart, FUNC(vcs_cart_slot_device::read_rom)));
break;
case A26_X07:
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1000, 0x1fff, read8_delegate(FUNC(vcs_cart_slot_device::read_rom),(vcs_cart_slot_device*)m_cart), write8_delegate(FUNC(vcs_cart_slot_device::write_bank),(vcs_cart_slot_device*)m_cart));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x0000, 0x0fff, read8_delegate(FUNC(a2600_state::cart_over_all_r), this), write8_delegate(FUNC(a2600_state::cart_over_all_w), this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1000, 0x1fff, read8_delegate(*m_cart, FUNC(vcs_cart_slot_device::read_rom)), write8_delegate(*m_cart, FUNC(vcs_cart_slot_device::write_bank)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x0000, 0x0fff, read8_delegate(*this, FUNC(a2600_state::cart_over_all_r)), write8_delegate(*this, FUNC(a2600_state::cart_over_all_w)));
break;
case A26_HARMONY:
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1000, 0x1fff, read8_delegate(FUNC(vcs_cart_slot_device::read_rom),(vcs_cart_slot_device*)m_cart), write8_delegate(FUNC(vcs_cart_slot_device::write_bank),(vcs_cart_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1000, 0x1fff, read8_delegate(*m_cart, FUNC(vcs_cart_slot_device::read_rom)), write8_delegate(*m_cart, FUNC(vcs_cart_slot_device::write_bank)));
break;
}
diff --git a/src/mame/drivers/a7800.cpp b/src/mame/drivers/a7800.cpp
index 145388dc6fb..aa35459d5a5 100644
--- a/src/mame/drivers/a7800.cpp
+++ b/src/mame/drivers/a7800.cpp
@@ -214,38 +214,37 @@ READ8_MEMBER(a7800_state::tia_r)
{
switch (offset & 0x0f)
{
- case 0x00:
- case 0x01:
- case 0x02:
- case 0x03:
- case 0x04:
- case 0x05:
- case 0x06:
- case 0x07:
- /* Even though the 7800 doesn't use the TIA graphics the collision registers should
- still return a reasonable value */
+ case 0x00:
+ case 0x01:
+ case 0x02:
+ case 0x03:
+ case 0x04:
+ case 0x05:
+ case 0x06:
+ case 0x07:
+ /* Even though the 7800 doesn't use the TIA graphics the collision registers should
+ still return a reasonable value */
+ return 0x00;
+ case 0x08:
+ return ((m_io_buttons->read() & 0x02) << 6);
+ case 0x09:
+ return ((m_io_buttons->read() & 0x08) << 4);
+ case 0x0a:
+ return ((m_io_buttons->read() & 0x01) << 7);
+ case 0x0b:
+ return ((m_io_buttons->read() & 0x04) << 5);
+ case 0x0c:
+ if (((m_io_buttons->read() & 0x08) ||(m_io_buttons->read() & 0x02)) && m_p1_one_button)
return 0x00;
- case 0x08:
- return ((m_io_buttons->read() & 0x02) << 6);
- case 0x09:
- return ((m_io_buttons->read() & 0x08) << 4);
- case 0x0a:
- return ((m_io_buttons->read() & 0x01) << 7);
- case 0x0b:
- return ((m_io_buttons->read() & 0x04) << 5);
- case 0x0c:
- if (((m_io_buttons->read() & 0x08) ||(m_io_buttons->read() & 0x02)) && m_p1_one_button)
- return 0x00;
- else
- return 0x80;
- case 0x0d:
- if (((m_io_buttons->read() & 0x01) ||(m_io_buttons->read() & 0x04)) && m_p2_one_button)
- return 0x00;
- else
- return 0x80;
- default:
- logerror("undefined TIA read %x\n",offset);
-
+ else
+ return 0x80;
+ case 0x0d:
+ if (((m_io_buttons->read() & 0x01) ||(m_io_buttons->read() & 0x04)) && m_p2_one_button)
+ return 0x00;
+ else
+ return 0x80;
+ default:
+ logerror("undefined TIA read %x\n",offset);
}
return 0xff;
}
@@ -277,7 +276,7 @@ WRITE8_MEMBER(a7800_state::tia_w)
TIMER_DEVICE_CALLBACK_MEMBER(a7800_state::interrupt)
{
// DMA Begins 7 cycles after hblank
- machine().scheduler().timer_set(m_maincpu->cycles_to_attotime(7), timer_expired_delegate(FUNC(a7800_state::maria_startdma),this));
+ machine().scheduler().timer_set(m_maincpu->cycles_to_attotime(7), timer_expired_delegate(FUNC(a7800_state::maria_startdma), this));
m_maria->interrupt(m_lines);
}
@@ -1342,27 +1341,27 @@ void a7800_state::machine_start()
{
switch (m_cart->get_cart_type())
{
- case A78_HSC:
- // ROM+NVRAM accesses for HiScore
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1000, 0x17ff, read8_delegate(FUNC(a78_cart_slot_device::read_10xx),(a78_cart_slot_device*)m_cart), write8_delegate(FUNC(a78_cart_slot_device::write_10xx),(a78_cart_slot_device*)m_cart));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x3000, 0x3fff, read8_delegate(FUNC(a78_cart_slot_device::read_30xx),(a78_cart_slot_device*)m_cart), write8_delegate(FUNC(a78_cart_slot_device::write_30xx),(a78_cart_slot_device*)m_cart));
- break;
- case A78_XB_BOARD:
- case A78_TYPE0_POK450:
- case A78_TYPE1_POK450:
- case A78_TYPE6_POK450:
- case A78_TYPEA_POK450:
- case A78_VERSA_POK450:
- // POKEY and RAM regs at 0x400-0x47f
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x0400, 0x047f, read8_delegate(FUNC(a78_cart_slot_device::read_04xx),(a78_cart_slot_device*)m_cart), write8_delegate(FUNC(a78_cart_slot_device::write_04xx),(a78_cart_slot_device*)m_cart));
- break;
- case A78_XM_BOARD:
- // POKEY and RAM and YM regs at 0x400-0x47f
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x0400, 0x047f, read8_delegate(FUNC(a78_cart_slot_device::read_04xx),(a78_cart_slot_device*)m_cart), write8_delegate(FUNC(a78_cart_slot_device::write_04xx),(a78_cart_slot_device*)m_cart));
- // ROM+NVRAM accesses for HiScore
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1000, 0x17ff, read8_delegate(FUNC(a78_cart_slot_device::read_10xx),(a78_cart_slot_device*)m_cart), write8_delegate(FUNC(a78_cart_slot_device::write_10xx),(a78_cart_slot_device*)m_cart));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x3000, 0x3fff, read8_delegate(FUNC(a78_cart_slot_device::read_30xx),(a78_cart_slot_device*)m_cart), write8_delegate(FUNC(a78_cart_slot_device::write_30xx),(a78_cart_slot_device*)m_cart));
- break;
+ case A78_HSC:
+ // ROM+NVRAM accesses for HiScore
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1000, 0x17ff, read8_delegate(*m_cart, FUNC(a78_cart_slot_device::read_10xx)), write8_delegate(*m_cart, FUNC(a78_cart_slot_device::write_10xx)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x3000, 0x3fff, read8_delegate(*m_cart, FUNC(a78_cart_slot_device::read_30xx)), write8_delegate(*m_cart, FUNC(a78_cart_slot_device::write_30xx)));
+ break;
+ case A78_XB_BOARD:
+ case A78_TYPE0_POK450:
+ case A78_TYPE1_POK450:
+ case A78_TYPE6_POK450:
+ case A78_TYPEA_POK450:
+ case A78_VERSA_POK450:
+ // POKEY and RAM regs at 0x400-0x47f
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x0400, 0x047f, read8_delegate(*m_cart, FUNC(a78_cart_slot_device::read_04xx)), write8_delegate(*m_cart, FUNC(a78_cart_slot_device::write_04xx)));
+ break;
+ case A78_XM_BOARD:
+ // POKEY and RAM and YM regs at 0x400-0x47f
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x0400, 0x047f, read8_delegate(*m_cart, FUNC(a78_cart_slot_device::read_04xx)), write8_delegate(*m_cart, FUNC(a78_cart_slot_device::write_04xx)));
+ // ROM+NVRAM accesses for HiScore
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1000, 0x17ff, read8_delegate(*m_cart, FUNC(a78_cart_slot_device::read_10xx)), write8_delegate(*m_cart, FUNC(a78_cart_slot_device::write_10xx)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x3000, 0x3fff, read8_delegate(*m_cart, FUNC(a78_cart_slot_device::read_30xx)), write8_delegate(*m_cart, FUNC(a78_cart_slot_device::write_30xx)));
+ break;
}
}
}
diff --git a/src/mame/drivers/aa310.cpp b/src/mame/drivers/aa310.cpp
index 824f15bcb41..0ddf6346309 100644
--- a/src/mame/drivers/aa310.cpp
+++ b/src/mame/drivers/aa310.cpp
@@ -179,7 +179,7 @@ void aa310_state::init_aa310()
uint32_t ram_size = m_ram->size();
m_maincpu->space(AS_PROGRAM).unmap_readwrite(0x02000000, 0x02ffffff);
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler( 0x02000000, 0x02000000+(ram_size-1), read32_delegate(FUNC(aa310_state::aa310_psy_wram_r), this), write32_delegate(FUNC(aa310_state::aa310_psy_wram_w), this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler( 0x02000000, 0x02000000+(ram_size-1), read32_delegate(*this, FUNC(aa310_state::aa310_psy_wram_r)), write32_delegate(*this, FUNC(aa310_state::aa310_psy_wram_w)));
archimedes_driver_init();
}
diff --git a/src/mame/drivers/abc1600.cpp b/src/mame/drivers/abc1600.cpp
index 5aad63f1cef..6d194a89b37 100644
--- a/src/mame/drivers/abc1600.cpp
+++ b/src/mame/drivers/abc1600.cpp
@@ -807,9 +807,9 @@ WRITE_LINE_MEMBER( abc1600_state::nmi_w )
void abc1600_state::cpu_space_map(address_map &map)
{
map(0xffff0, 0xfffff).m(m_maincpu, FUNC(m68008_device::autovectors_map));
- map(0xffff5, 0xffff5).lr8("cio int", [this]() -> u8 { return m_cio->intack_r(); });
- map(0xffffb, 0xffffb).lr8("dart int", [this]() -> u8 { return m_dart->m1_r(); });
- map(0xfffff, 0xfffff).lr8("nmi int", [this]() -> u8 { m_maincpu->set_input_line(M68K_IRQ_7, CLEAR_LINE); return m68008_device::autovector(7); });
+ map(0xffff5, 0xffff5).lr8(NAME([this]() -> u8 { return m_cio->intack_r(); }));
+ map(0xffffb, 0xffffb).lr8(NAME([this]() -> u8 { return m_dart->m1_r(); }));
+ map(0xfffff, 0xfffff).lr8(NAME([this]() -> u8 { m_maincpu->set_input_line(M68K_IRQ_7, CLEAR_LINE); return m68008_device::autovector(7); }));
}
void abc1600_state::machine_start()
diff --git a/src/mame/drivers/abc80.cpp b/src/mame/drivers/abc80.cpp
index 2086d174ba1..7dea7548233 100644
--- a/src/mame/drivers/abc80.cpp
+++ b/src/mame/drivers/abc80.cpp
@@ -537,7 +537,7 @@ void abc80_state::abc80(machine_config &config)
generic_keyboard_device &keyboard(GENERIC_KEYBOARD(config, KEYBOARD_TAG, 0));
keyboard.set_keyboard_callback(FUNC(abc80_state::kbd_w));
- QUICKLOAD(config, "quickload", "bac", attotime::from_seconds(2)).set_load_callback(FUNC(abc80_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "bac", attotime::from_seconds(2)).set_load_callback(FUNC(abc80_state::quickload_cb));
// internal ram
RAM(config, RAM_TAG).set_default_size("16K");
diff --git a/src/mame/drivers/abc80x.cpp b/src/mame/drivers/abc80x.cpp
index 98a9da1c6d4..8395ec6ced7 100644
--- a/src/mame/drivers/abc80x.cpp
+++ b/src/mame/drivers/abc80x.cpp
@@ -1115,7 +1115,7 @@ void abc800_state::common(machine_config &config)
SOFTWARE_LIST(config, "hdd_list").set_original("abc800_hdd");
// quickload
- QUICKLOAD(config, "quickload", "bac", attotime::from_seconds(2)).set_load_callback(FUNC(abc800_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "bac", attotime::from_seconds(2)).set_load_callback(FUNC(abc800_state::quickload_cb));
}
diff --git a/src/mame/drivers/aci_ggm.cpp b/src/mame/drivers/aci_ggm.cpp
index 1c740817b8d..865fb38e46c 100644
--- a/src/mame/drivers/aci_ggm.cpp
+++ b/src/mame/drivers/aci_ggm.cpp
@@ -450,7 +450,7 @@ void ggm_state::ggm(machine_config &config)
/* cartridge */
GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "ggm", "bin");
- m_cart->set_device_load(FUNC(ggm_state::cartridge), this);
+ m_cart->set_device_load(FUNC(ggm_state::cartridge));
m_cart->set_must_be_loaded(true);
SOFTWARE_LIST(config, "cart_list").set_original("ggm");
diff --git a/src/mame/drivers/adm23.cpp b/src/mame/drivers/adm23.cpp
index 4d957aef7c4..04b1c419590 100644
--- a/src/mame/drivers/adm23.cpp
+++ b/src/mame/drivers/adm23.cpp
@@ -67,8 +67,8 @@ void adm23_state::adm23(machine_config &config)
crtc.set_char_width(9);
crtc.set_show_border_area(false);
crtc.set_screen("screen");
- crtc.set_update_row_callback(FUNC(adm23_state::update_row), this);
- crtc.set_on_update_addr_change_callback(FUNC(adm23_state::addr_changed), this);
+ crtc.set_update_row_callback(FUNC(adm23_state::update_row));
+ crtc.set_on_update_addr_change_callback(FUNC(adm23_state::addr_changed));
}
ROM_START(adm23)
diff --git a/src/mame/drivers/aerofgt.cpp b/src/mame/drivers/aerofgt.cpp
index 6756d8d3869..40379901a65 100644
--- a/src/mame/drivers/aerofgt.cpp
+++ b/src/mame/drivers/aerofgt.cpp
@@ -1489,7 +1489,7 @@ void aerofgt_state::pspikes(machine_config &config)
PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 2048);
VSYSTEM_SPR2(config, m_spr_old[0], 0);
- m_spr_old[0]->set_tile_indirect_cb(FUNC(aerofgt_state::aerofgt_old_tile_callback), this);
+ m_spr_old[0]->set_tile_indirect_cb(FUNC(aerofgt_state::aerofgt_old_tile_callback));
m_spr_old[0]->set_gfx_region(1);
m_spr_old[0]->set_gfxdecode_tag(m_gfxdecode);
@@ -1616,7 +1616,7 @@ void aerofgt_state::kickball(machine_config &config)
PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 2048);
VSYSTEM_SPR2(config, m_spr_old[0], 0);
- m_spr_old[0]->set_tile_indirect_cb(FUNC(aerofgt_state::aerofgt_old_tile_callback), this);
+ m_spr_old[0]->set_tile_indirect_cb(FUNC(aerofgt_state::aerofgt_old_tile_callback));
m_spr_old[0]->set_gfx_region(1);
m_spr_old[0]->set_gfxdecode_tag(m_gfxdecode);
@@ -1664,7 +1664,7 @@ void aerofgt_state::pspikesc(machine_config &config)
//VSYSTEM_GGA(config, "gga", 0);
VSYSTEM_SPR2(config, m_spr_old[0], 0);
- m_spr_old[0]->set_tile_indirect_cb(FUNC(aerofgt_state::aerofgt_old_tile_callback), this);
+ m_spr_old[0]->set_tile_indirect_cb(FUNC(aerofgt_state::aerofgt_old_tile_callback));
m_spr_old[0]->set_gfx_region(1);
m_spr_old[0]->set_gfxdecode_tag(m_gfxdecode);
@@ -1706,12 +1706,12 @@ void aerofgt_state::karatblz(machine_config &config)
VSYSTEM_GGA(config, "gga", XTAL(14'318'181) / 2); // divider not verified
VSYSTEM_SPR2(config, m_spr_old[0], 0);
- m_spr_old[0]->set_tile_indirect_cb(FUNC(aerofgt_state::aerofgt_old_tile_callback), this);
+ m_spr_old[0]->set_tile_indirect_cb(FUNC(aerofgt_state::aerofgt_old_tile_callback));
m_spr_old[0]->set_gfx_region(2);
m_spr_old[0]->set_gfxdecode_tag(m_gfxdecode);
VSYSTEM_SPR2(config, m_spr_old[1], 0);
- m_spr_old[1]->set_tile_indirect_cb(FUNC(aerofgt_state::aerofgt_ol2_tile_callback), this);
+ m_spr_old[1]->set_tile_indirect_cb(FUNC(aerofgt_state::aerofgt_ol2_tile_callback));
m_spr_old[1]->set_gfx_region(3);
m_spr_old[1]->set_gfxdecode_tag(m_gfxdecode);
@@ -1760,12 +1760,12 @@ void aerofgt_state::karatblzbl(machine_config &config)
PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 1024);
VSYSTEM_SPR2(config, m_spr_old[0], 0);
- m_spr_old[0]->set_tile_indirect_cb(FUNC(aerofgt_state::aerofgt_old_tile_callback), this);
+ m_spr_old[0]->set_tile_indirect_cb(FUNC(aerofgt_state::aerofgt_old_tile_callback));
m_spr_old[0]->set_gfx_region(2);
m_spr_old[0]->set_gfxdecode_tag(m_gfxdecode);
VSYSTEM_SPR2(config, m_spr_old[1], 0);
- m_spr_old[1]->set_tile_indirect_cb(FUNC(aerofgt_state::aerofgt_ol2_tile_callback), this);
+ m_spr_old[1]->set_tile_indirect_cb(FUNC(aerofgt_state::aerofgt_ol2_tile_callback));
m_spr_old[1]->set_gfx_region(3);
m_spr_old[1]->set_gfxdecode_tag(m_gfxdecode);
@@ -1822,7 +1822,7 @@ void aerofgt_state::spinlbrk(machine_config &config)
m_spr_old[0]->set_gfxdecode_tag(m_gfxdecode);
VSYSTEM_SPR2(config, m_spr_old[1], 0);
- m_spr_old[1]->set_tile_indirect_cb(FUNC(aerofgt_state::spinbrk_tile_callback), this); // rom lookup
+ m_spr_old[1]->set_tile_indirect_cb(FUNC(aerofgt_state::spinbrk_tile_callback)); // rom lookup
m_spr_old[1]->set_pritype(1);
m_spr_old[1]->set_gfx_region(3);
m_spr_old[1]->set_gfxdecode_tag(m_gfxdecode);
@@ -1874,12 +1874,12 @@ void aerofgt_state::turbofrc(machine_config &config)
VSYSTEM_GGA(config, "gga", XTAL(14'318'181) / 2); // divider not verified
VSYSTEM_SPR2(config, m_spr_old[0], 0);
- m_spr_old[0]->set_tile_indirect_cb(FUNC(aerofgt_state::aerofgt_old_tile_callback), this);
+ m_spr_old[0]->set_tile_indirect_cb(FUNC(aerofgt_state::aerofgt_old_tile_callback));
m_spr_old[0]->set_gfx_region(2);
m_spr_old[0]->set_gfxdecode_tag(m_gfxdecode);
VSYSTEM_SPR2(config, m_spr_old[1], 0);
- m_spr_old[1]->set_tile_indirect_cb(FUNC(aerofgt_state::aerofgt_ol2_tile_callback), this);
+ m_spr_old[1]->set_tile_indirect_cb(FUNC(aerofgt_state::aerofgt_ol2_tile_callback));
m_spr_old[1]->set_gfx_region(3);
m_spr_old[1]->set_gfxdecode_tag(m_gfxdecode);
@@ -1930,12 +1930,12 @@ void aerofgt_state::aerofgtb(machine_config &config)
VSYSTEM_GGA(config, "gga", XTAL(14'318'181) / 2); // divider not verified
VSYSTEM_SPR2(config, m_spr_old[0], 0);
- m_spr_old[0]->set_tile_indirect_cb(FUNC(aerofgt_state::aerofgt_old_tile_callback), this);
+ m_spr_old[0]->set_tile_indirect_cb(FUNC(aerofgt_state::aerofgt_old_tile_callback));
m_spr_old[0]->set_gfx_region(2);
m_spr_old[0]->set_gfxdecode_tag(m_gfxdecode);
VSYSTEM_SPR2(config, m_spr_old[1], 0);
- m_spr_old[1]->set_tile_indirect_cb(FUNC(aerofgt_state::aerofgt_ol2_tile_callback), this);
+ m_spr_old[1]->set_tile_indirect_cb(FUNC(aerofgt_state::aerofgt_ol2_tile_callback));
m_spr_old[1]->set_gfx_region(3);
m_spr_old[1]->set_gfxdecode_tag(m_gfxdecode);
@@ -1996,7 +1996,7 @@ void aerofgt_state::aerofgt(machine_config &config)
PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 1024);
VSYSTEM_SPR(config, m_spr, 0);
- m_spr->set_tile_indirect_cb(FUNC(aerofgt_state::aerofgt_tile_callback), this);
+ m_spr->set_tile_indirect_cb(FUNC(aerofgt_state::aerofgt_tile_callback));
m_spr->set_gfx_region(2);
m_spr->set_gfxdecode_tag(m_gfxdecode);
@@ -2117,7 +2117,7 @@ void aerofgt_state::wbbc97(machine_config &config)
//VSYSTEM_GGA(config, "gga", 0);
VSYSTEM_SPR2(config, m_spr_old[0], 0);
- m_spr_old[0]->set_tile_indirect_cb(FUNC(aerofgt_state::aerofgt_old_tile_callback), this);
+ m_spr_old[0]->set_tile_indirect_cb(FUNC(aerofgt_state::aerofgt_old_tile_callback));
m_spr_old[0]->set_gfx_region(1);
m_spr_old[0]->set_gfxdecode_tag(m_gfxdecode);
diff --git a/src/mame/drivers/aim65.cpp b/src/mame/drivers/aim65.cpp
index 32214b2b1d5..05aa6dca50b 100644
--- a/src/mame/drivers/aim65.cpp
+++ b/src/mame/drivers/aim65.cpp
@@ -277,15 +277,15 @@ void aim65_state::aim65(machine_config &config)
//m_rs232->rxd_handler().set(m_via0, FUNC(via6522_device::write_pb6)); // function disabled in 6522via.cpp
m_rs232->set_option_device_input_defaults("terminal", DEVICE_INPUT_DEFAULTS_NAME(serial_term));
- GENERIC_SOCKET(config, "z26", generic_plain_slot, "aim65_z26_cart", "z26").set_device_load(FUNC(aim65_state::z26_load), this);
- GENERIC_SOCKET(config, "z25", generic_plain_slot, "aim65_z25_cart", "z25").set_device_load(FUNC(aim65_state::z25_load), this);
- GENERIC_SOCKET(config, "z24", generic_plain_slot, "aim65_z24_cart", "z24").set_device_load(FUNC(aim65_state::z24_load), this);
+ GENERIC_SOCKET(config, "z26", generic_plain_slot, "aim65_z26_cart", "z26").set_device_load(FUNC(aim65_state::z26_load));
+ GENERIC_SOCKET(config, "z25", generic_plain_slot, "aim65_z25_cart", "z25").set_device_load(FUNC(aim65_state::z25_load));
+ GENERIC_SOCKET(config, "z24", generic_plain_slot, "aim65_z24_cart", "z24").set_device_load(FUNC(aim65_state::z24_load));
/* PROM/ROM module sockets */
- GENERIC_SOCKET(config, "z12", generic_plain_slot, "rm65_z12_cart", "z12").set_device_load(FUNC(aim65_state::z12_load), this);
- GENERIC_SOCKET(config, "z13", generic_plain_slot, "rm65_z13_cart", "z13").set_device_load(FUNC(aim65_state::z13_load), this);
- GENERIC_SOCKET(config, "z14", generic_plain_slot, "rm65_z14_cart", "z14").set_device_load(FUNC(aim65_state::z14_load), this);
- GENERIC_SOCKET(config, "z15", generic_plain_slot, "rm65_z15_cart", "z15").set_device_load(FUNC(aim65_state::z15_load), this);
+ GENERIC_SOCKET(config, "z12", generic_plain_slot, "rm65_z12_cart", "z12").set_device_load(FUNC(aim65_state::z12_load));
+ GENERIC_SOCKET(config, "z13", generic_plain_slot, "rm65_z13_cart", "z13").set_device_load(FUNC(aim65_state::z13_load));
+ GENERIC_SOCKET(config, "z14", generic_plain_slot, "rm65_z14_cart", "z14").set_device_load(FUNC(aim65_state::z14_load));
+ GENERIC_SOCKET(config, "z15", generic_plain_slot, "rm65_z15_cart", "z15").set_device_load(FUNC(aim65_state::z15_load));
/* internal ram */
RAM(config, RAM_TAG).set_default_size("4K").set_extra_options("1K,2K,3K");
diff --git a/src/mame/drivers/airbustr.cpp b/src/mame/drivers/airbustr.cpp
index 563a55f7a9e..448908773d0 100644
--- a/src/mame/drivers/airbustr.cpp
+++ b/src/mame/drivers/airbustr.cpp
@@ -699,7 +699,7 @@ ROM_END
void airbustr_state::init_airbustr()
{
- m_master->space(AS_PROGRAM).install_read_handler(0xe000, 0xefff, read8_delegate(FUNC(airbustr_state::devram_r),this)); // protection device lives here
+ m_master->space(AS_PROGRAM).install_read_handler(0xe000, 0xefff, read8_delegate(*this, FUNC(airbustr_state::devram_r))); // protection device lives here
}
diff --git a/src/mame/drivers/ajax.cpp b/src/mame/drivers/ajax.cpp
index c92f94623dc..2d810660aab 100644
--- a/src/mame/drivers/ajax.cpp
+++ b/src/mame/drivers/ajax.cpp
@@ -200,19 +200,19 @@ void ajax_state::ajax(machine_config &config)
K052109(config, m_k052109, 0);
m_k052109->set_palette(m_palette);
m_k052109->set_screen("screen");
- m_k052109->set_tile_callback(FUNC(ajax_state::tile_callback), this);
+ m_k052109->set_tile_callback(FUNC(ajax_state::tile_callback));
m_k052109->irq_handler().set_inputline(m_subcpu, M6809_IRQ_LINE);
K051960(config, m_k051960, 0);
m_k051960->set_palette("palette");
m_k051960->set_screen("screen");
- m_k051960->set_sprite_callback(FUNC(ajax_state::sprite_callback), this);
+ m_k051960->set_sprite_callback(FUNC(ajax_state::sprite_callback));
m_k051960->irq_handler().set_inputline(m_maincpu, KONAMI_IRQ_LINE);
K051316(config, m_k051316, 0);
m_k051316->set_palette(m_palette);
m_k051316->set_bpp(7);
- m_k051316->set_zoom_callback(FUNC(ajax_state::zoom_callback), this);
+ m_k051316->set_zoom_callback(FUNC(ajax_state::zoom_callback));
/* sound hardware */
SPEAKER(config, "lspeaker").front_left();
diff --git a/src/mame/drivers/akkaarrh.cpp b/src/mame/drivers/akkaarrh.cpp
index 49240528d8d..9a7f355f2ff 100644
--- a/src/mame/drivers/akkaarrh.cpp
+++ b/src/mame/drivers/akkaarrh.cpp
@@ -90,10 +90,10 @@ static constexpr XTAL MASTER_CLOCK = 12.096_MHz_XTAL;
void akkaarrh_state::video_start()
{
- m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(akkaarrh_state::get_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 32, 30);
- m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(akkaarrh_state::get_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 32, 30);
- m_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(akkaarrh_state::get_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 32, 30);
- m_tilemap[3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(akkaarrh_state::get_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 32, 30);
+ m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(akkaarrh_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 30);
+ m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(akkaarrh_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 30);
+ m_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(akkaarrh_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 30);
+ m_tilemap[3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(akkaarrh_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 30);
m_tilemap[0]->set_flip(0);
m_tilemap[1]->set_flip(TILEMAP_FLIPX);
diff --git a/src/mame/drivers/albazg.cpp b/src/mame/drivers/albazg.cpp
index fe708a49954..dccb8e7a287 100644
--- a/src/mame/drivers/albazg.cpp
+++ b/src/mame/drivers/albazg.cpp
@@ -112,7 +112,7 @@ TILE_GET_INFO_MEMBER(albazg_state::y_get_bg_tile_info)
void albazg_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(albazg_state::y_get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(albazg_state::y_get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
uint32_t albazg_state::screen_update_yumefuda(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
diff --git a/src/mame/drivers/alcat7100.cpp b/src/mame/drivers/alcat7100.cpp
index 3a3b1dec0fd..93e4ff81941 100644
--- a/src/mame/drivers/alcat7100.cpp
+++ b/src/mame/drivers/alcat7100.cpp
@@ -100,7 +100,7 @@ void alcat7100_state::alcat7100(machine_config &config)
crtc.set_screen("screen");
crtc.set_char_width(12);
crtc.set_show_border_area(false);
- crtc.set_update_row_callback(FUNC(alcat7100_state::update_row), this);
+ crtc.set_update_row_callback(FUNC(alcat7100_state::update_row));
AY31015(config, "uart"); // AMI S1602P
}
diff --git a/src/mame/drivers/alesis.cpp b/src/mame/drivers/alesis.cpp
index 5c73c5a4343..119803cb1cd 100644
--- a/src/mame/drivers/alesis.cpp
+++ b/src/mame/drivers/alesis.cpp
@@ -465,7 +465,7 @@ void alesis_state::sr16(machine_config &config)
config.set_default_layout(layout_sr16);
m_lcdc->set_lcd_size(2, 8);
- m_lcdc->set_pixel_update_cb(FUNC(alesis_state::sr16_pixel_update), this);
+ m_lcdc->set_pixel_update_cb(FUNC(alesis_state::sr16_pixel_update));
}
void alesis_state::mmt8(machine_config &config)
diff --git a/src/mame/drivers/aliens.cpp b/src/mame/drivers/aliens.cpp
index 33fbe27facb..c0712544c42 100644
--- a/src/mame/drivers/aliens.cpp
+++ b/src/mame/drivers/aliens.cpp
@@ -221,12 +221,12 @@ void aliens_state::aliens(machine_config &config)
K052109(config, m_k052109, 0);
m_k052109->set_palette("palette");
m_k052109->set_screen(nullptr);
- m_k052109->set_tile_callback(FUNC(aliens_state::tile_callback), this);
+ m_k052109->set_tile_callback(FUNC(aliens_state::tile_callback));
K051960(config, m_k051960, 0);
m_k051960->set_palette("palette");
m_k051960->set_screen("screen");
- m_k051960->set_sprite_callback(FUNC(aliens_state::sprite_callback), this);
+ m_k051960->set_sprite_callback(FUNC(aliens_state::sprite_callback));
m_k051960->irq_handler().set_inputline(m_maincpu, KONAMI_IRQ_LINE);
/* sound hardware */
diff --git a/src/mame/drivers/alpha68k.cpp b/src/mame/drivers/alpha68k.cpp
index 37b4d28a203..96a37710280 100644
--- a/src/mame/drivers/alpha68k.cpp
+++ b/src/mame/drivers/alpha68k.cpp
@@ -522,7 +522,7 @@ void alpha68k_III_state::alpha68k_V_map(address_map &map)
map(0x080000, 0x080001).r(FUNC(alpha68k_III_state::control_1_r)); /* Joysticks */
map(0x080000, 0x080000).w(FUNC(alpha68k_III_state::video_bank_w));
map(0x080001, 0x080001).w(m_soundlatch, FUNC(generic_latch_8_device::write));
- map(0x0c0000, 0x0c0001).lr16("control_2_V_r", [this]() -> u16 { return m_in[3]->read(); }); /* Dip 2 */
+ map(0x0c0000, 0x0c0001).lr16(NAME([this] () -> u16 { return m_in[3]->read(); })); /* Dip 2 */
map(0x0c0001, 0x0c0001).select(0x78).w(FUNC(alpha68k_III_state::outlatch_w));
map(0x0d8000, 0x0d8001).nopr(); /* IRQ ack? */
map(0x0e0000, 0x0e0001).nopr(); /* IRQ ack? */
@@ -1275,7 +1275,7 @@ void alpha68k_II_state::video_config(machine_config &config, u16 num_pens)
SNK68_SPR(config, m_sprites, 0);
m_sprites->set_gfxdecode_tag(m_gfxdecode);
- m_sprites->set_tile_indirect_cb(FUNC(alpha68k_II_state::tile_callback), this);
+ m_sprites->set_tile_indirect_cb(FUNC(alpha68k_II_state::tile_callback));
m_sprites->set_xpos_shift(15);
m_sprites->set_color_entry_mask((num_pens / 16) - 1);
@@ -1357,13 +1357,13 @@ void alpha68k_V_state::alpha68k_V(machine_config &config)
void skyadventure_state::skyadventure(machine_config &config)
{
alpha68k_V_state::alpha68k_V(config);
- m_sprites->set_tile_indirect_cb(FUNC(skyadventure_state::tile_callback_noflipx), this);
+ m_sprites->set_tile_indirect_cb(FUNC(skyadventure_state::tile_callback_noflipx));
}
void gangwars_state::gangwars(machine_config &config)
{
alpha68k_V_state::alpha68k_V(config);
- m_sprites->set_tile_indirect_cb(FUNC(gangwars_state::tile_callback_noflipy), this);
+ m_sprites->set_tile_indirect_cb(FUNC(gangwars_state::tile_callback_noflipy));
}
/******************************************************************************/
diff --git a/src/mame/drivers/alpha68k_n.cpp b/src/mame/drivers/alpha68k_n.cpp
index c4602b10e7d..73aa3d7f0a9 100644
--- a/src/mame/drivers/alpha68k_n.cpp
+++ b/src/mame/drivers/alpha68k_n.cpp
@@ -310,7 +310,7 @@ void sstingray_state::main_map(address_map &map)
map(0x060000, 0x060001).ram().share("videoram"); // MSB: watchdog, LSB: BGC
map(0x080000, 0x0801ff).rw(FUNC(sstingray_state::alpha8511_command_r), FUNC(sstingray_state::alpha8511_command_w)).umask16(0x00ff);
map(0x0c0000, 0x0c0001).portr("IN0");
- map(0x0e0000, 0x0e0000).lr8("kyros_dip_r", [this]() -> u8 { return m_in[1]->read(); }).w(m_soundlatch, FUNC(generic_latch_8_device::write));
+ map(0x0e0000, 0x0e0000).lr8(NAME([this] () -> u8 { return m_in[1]->read(); })).w(m_soundlatch, FUNC(generic_latch_8_device::write));
}
void alpha68k_N_state::main_map(address_map &map)
@@ -321,7 +321,7 @@ void alpha68k_N_state::main_map(address_map &map)
map(0x060000, 0x060001).ram().share("videoram"); // MSB: watchdog, LSB: BGC
map(0x080000, 0x0801ff).rw(FUNC(kyros_state::kyros_alpha_trigger_r), FUNC(kyros_state::alpha_microcontroller_w));
map(0x0c0000, 0x0c0001).portr("IN0");
- map(0x0e0000, 0x0e0000).lr8("kyros_dip_r", [this]() -> u8 { return m_in[1]->read(); }).w(m_soundlatch, FUNC(generic_latch_8_device::write));
+ map(0x0e0000, 0x0e0000).lr8(NAME([this] () -> u8 { return m_in[1]->read(); })).w(m_soundlatch, FUNC(generic_latch_8_device::write));
}
void jongbou_state::main_map(address_map &map)
diff --git a/src/mame/drivers/alphasma.cpp b/src/mame/drivers/alphasma.cpp
index 2df7f75c6ad..a78c85939af 100644
--- a/src/mame/drivers/alphasma.cpp
+++ b/src/mame/drivers/alphasma.cpp
@@ -211,7 +211,7 @@ WRITE8_MEMBER(asma2k_state::port_a_w)
if (data & 0x40)
space.install_readwrite_bank(0x0000, 0x7fff, "rambank");
else
- space.install_readwrite_handler(0x0000, 0x7fff, read8_delegate(FUNC(asma2k_state::io_r), this), write8_delegate(FUNC(asma2k_state::io_w), this));
+ space.install_readwrite_handler(0x0000, 0x7fff, read8_delegate(*this, FUNC(asma2k_state::io_r)), write8_delegate(*this, FUNC(asma2k_state::io_w)));
}
m_rambank->set_entry(((data>>4) & 0x03));
diff --git a/src/mame/drivers/alphatro.cpp b/src/mame/drivers/alphatro.cpp
index bedb42e9593..a7e71bccd00 100644
--- a/src/mame/drivers/alphatro.cpp
+++ b/src/mame/drivers/alphatro.cpp
@@ -769,7 +769,7 @@ void alphatro_state::alphatro(machine_config &config)
m_crtc->set_screen("screen");
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8);
- m_crtc->set_update_row_callback(FUNC(alphatro_state::crtc_update_row), this);
+ m_crtc->set_update_row_callback(FUNC(alphatro_state::crtc_update_row));
I8251(config, m_usart, 16_MHz_XTAL / 4);
m_usart->txd_handler().set([this] (bool state) { m_cassbit = state; });
@@ -787,7 +787,7 @@ void alphatro_state::alphatro(machine_config &config)
RAM(config, "ram").set_default_size("64K");
/* cartridge */
- GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "alphatro_cart", "bin").set_device_load(FUNC(alphatro_state::cart_load), this);
+ GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "alphatro_cart", "bin").set_device_load(FUNC(alphatro_state::cart_load));
SOFTWARE_LIST(config, "cart_list").set_original("alphatro_cart");
/* 0000 banking */
diff --git a/src/mame/drivers/altair.cpp b/src/mame/drivers/altair.cpp
index 7516502342d..701bdb0b792 100644
--- a/src/mame/drivers/altair.cpp
+++ b/src/mame/drivers/altair.cpp
@@ -119,7 +119,7 @@ void altair_state::altair(machine_config &config)
uart_clock.signal_handler().append("acia", FUNC(acia6850_device::write_rxc));
/* quickload */
- QUICKLOAD(config, "quickload", "bin").set_load_callback(FUNC(altair_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "bin").set_load_callback(FUNC(altair_state::quickload_cb));
}
/* ROM definition */
diff --git a/src/mame/drivers/altos5.cpp b/src/mame/drivers/altos5.cpp
index 88224c6a38c..85dbc36eeba 100644
--- a/src/mame/drivers/altos5.cpp
+++ b/src/mame/drivers/altos5.cpp
@@ -475,7 +475,7 @@ void altos5_state::altos5(machine_config &config)
FLOPPY_CONNECTOR(config, "fdc:1", altos5_floppies, "525qd", floppy_image_device::default_floppy_formats).enable_sound(true);
SOFTWARE_LIST(config, "flop_list").set_original("altos5");
- QUICKLOAD(config, "quickload", "com,cpm", attotime::from_seconds(3)).set_load_callback(FUNC(altos5_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "com,cpm", attotime::from_seconds(3)).set_load_callback(FUNC(altos5_state::quickload_cb));
}
diff --git a/src/mame/drivers/ambush.cpp b/src/mame/drivers/ambush.cpp
index bb6b400b7a2..9f9f02fc119 100644
--- a/src/mame/drivers/ambush.cpp
+++ b/src/mame/drivers/ambush.cpp
@@ -681,7 +681,7 @@ MACHINE_START_MEMBER( ambush_state, ambush )
register_save_states();
// create character tilemap
- m_char_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ambush_state::ambush_char_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_char_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ambush_state::ambush_char_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_char_tilemap->set_transparent_pen(0);
m_char_tilemap->set_scroll_cols(32);
}
@@ -691,7 +691,7 @@ MACHINE_START_MEMBER( ambush_state, mariobl )
register_save_states();
// create character tilemap
- m_char_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ambush_state::mariobl_char_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_char_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ambush_state::mariobl_char_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_char_tilemap->set_transparent_pen(0);
m_gfxdecode->gfx(0)->set_granularity(8);
}
@@ -701,7 +701,7 @@ MACHINE_START_MEMBER( ambush_state, dkong3abl )
register_save_states();
// create character tilemap
- m_char_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ambush_state::dkong3abl_char_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_char_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ambush_state::dkong3abl_char_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_char_tilemap->set_transparent_pen(0);
}
diff --git a/src/mame/drivers/amstrad.cpp b/src/mame/drivers/amstrad.cpp
index d66c9a3b7f9..94f51d99d95 100644
--- a/src/mame/drivers/amstrad.cpp
+++ b/src/mame/drivers/amstrad.cpp
@@ -810,7 +810,7 @@ void amstrad_state::cpcplus_cartslot(machine_config &config)
{
generic_cartslot_device &cartslot(GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "gx4000_cart", "bin,cpr"));
cartslot.set_must_be_loaded(true);
- cartslot.set_device_load(FUNC(amstrad_state::amstrad_plus_cartridge), this);
+ cartslot.set_device_load(FUNC(amstrad_state::amstrad_plus_cartridge));
SOFTWARE_LIST(config, "cart_list").set_original("gx4000");
}
@@ -957,7 +957,7 @@ void amstrad_state::amstrad_base(machine_config &config)
m_centronics->busy_handler().set(FUNC(amstrad_state::write_centronics_busy));
/* snapshot */
- SNAPSHOT(config, "snapshot", "sna").set_load_callback(FUNC(amstrad_state::snapshot_cb), this);
+ SNAPSHOT(config, "snapshot", "sna").set_load_callback(FUNC(amstrad_state::snapshot_cb));
CASSETTE(config, m_cassette);
m_cassette->set_formats(cdt_cassette_formats);
@@ -1082,7 +1082,7 @@ void amstrad_state::cpcplus(machine_config &config)
m_centronics->busy_handler().set(FUNC(amstrad_state::write_centronics_busy));
/* snapshot */
- SNAPSHOT(config, "snapshot", "sna").set_load_callback(FUNC(amstrad_state::snapshot_cb), this);
+ SNAPSHOT(config, "snapshot", "sna").set_load_callback(FUNC(amstrad_state::snapshot_cb));
CASSETTE(config, m_cassette);
m_cassette->set_formats(cdt_cassette_formats);
diff --git a/src/mame/drivers/amusco.cpp b/src/mame/drivers/amusco.cpp
index b9e367d3a37..8579713ff6d 100644
--- a/src/mame/drivers/amusco.cpp
+++ b/src/mame/drivers/amusco.cpp
@@ -191,7 +191,7 @@ TILE_GET_INFO_MEMBER(amusco_state::get_bg_tile_info)
void amusco_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(amusco_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 10, 74, 24);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(amusco_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 10, 74, 24);
m_blink_state = false;
m_videoram = std::make_unique<uint8_t []>(videoram_size);
@@ -589,10 +589,9 @@ void amusco_state::amusco(machine_config &config)
m_crtc->set_screen(m_screen);
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8);
- m_crtc->set_on_update_addr_change_callback(FUNC(amusco_state::crtc_addr), this);
+ m_crtc->set_on_update_addr_change_callback(FUNC(amusco_state::crtc_addr));
m_crtc->out_de_callback().set(m_pic, FUNC(pic8259_device::ir1_w)); // IRQ1 sets 0x918 bit 3
- m_crtc->set_update_row_callback(FUNC(amusco_state::update_row), this);
-
+ m_crtc->set_update_row_callback(FUNC(amusco_state::update_row));
/* sound hardware */
SPEAKER(config, "mono").front_center();
diff --git a/src/mame/drivers/amust.cpp b/src/mame/drivers/amust.cpp
index 58cd91fd1ee..819708e8b3c 100644
--- a/src/mame/drivers/amust.cpp
+++ b/src/mame/drivers/amust.cpp
@@ -459,7 +459,7 @@ void amust_state::amust(machine_config &config)
crtc.set_screen("screen");
crtc.set_show_border_area(false);
crtc.set_char_width(8);
- crtc.set_update_row_callback(FUNC(amust_state::crtc_update_row), this);
+ crtc.set_update_row_callback(FUNC(amust_state::crtc_update_row));
crtc.out_hsync_callback().set(FUNC(amust_state::hsync_w));
crtc.out_vsync_callback().set(FUNC(amust_state::vsync_w));
diff --git a/src/mame/drivers/apf.cpp b/src/mame/drivers/apf.cpp
index 880d9ec19ce..7e76e51b7c3 100644
--- a/src/mame/drivers/apf.cpp
+++ b/src/mame/drivers/apf.cpp
@@ -252,11 +252,11 @@ void apf_state::machine_start()
switch (m_cart->get_type())
{
case APF_BASIC:
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x6800, 0x7fff, read8_delegate(FUNC(apf_cart_slot_device::extra_rom),(apf_cart_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x6800, 0x7fff, read8_delegate(*m_cart, FUNC(apf_cart_slot_device::extra_rom)));
break;
case APF_SPACEDST:
m_maincpu->space(AS_PROGRAM).unmap_readwrite(0x9800, 0x9fff);
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x9800, 0x9bff, read8_delegate(FUNC(apf_cart_slot_device::read_ram),(apf_cart_slot_device*)m_cart), write8_delegate(FUNC(apf_cart_slot_device::write_ram),(apf_cart_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x9800, 0x9bff, read8_delegate(*m_cart, FUNC(apf_cart_slot_device::read_ram)), write8_delegate(*m_cart, FUNC(apf_cart_slot_device::write_ram)));
m_has_cart_ram = true;
break;
}
diff --git a/src/mame/drivers/apollo.cpp b/src/mame/drivers/apollo.cpp
index 71f5ca64697..f0e9366b0c6 100644
--- a/src/mame/drivers/apollo.cpp
+++ b/src/mame/drivers/apollo.cpp
@@ -444,7 +444,7 @@ WRITE32_MEMBER(apollo_state::ram_with_parity_w){
// no more than 192 read/write handlers may be used
// see table_assign_handler in memory.c
if (parity_error_handler_install_counter < 40) {
- m_maincpu->space(AS_PROGRAM).install_read_handler(ram_base_address+offset*4, ram_base_address+offset*4+3, read32_delegate(FUNC(apollo_state::ram_with_parity_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(ram_base_address+offset*4, ram_base_address+offset*4+3, read32_delegate(*this, FUNC(apollo_state::ram_with_parity_r)));
parity_error_handler_is_installed = 1;
parity_error_handler_install_counter++;
}
@@ -917,7 +917,7 @@ void apollo_state::machine_reset()
}
#if 0
- m_maincpu->set_instruction_hook(read32_delegate(FUNC(apollo_state::apollo_instruction_hook),this));
+ m_maincpu->set_instruction_hook(read32_delegate(*this, FUNC(apollo_state::apollo_instruction_hook)));
#endif
}
@@ -955,8 +955,8 @@ void apollo_state::machine_start(){
MACHINE_START_CALL_MEMBER(apollo);
// install nop handlers for unmapped ISA bus addresses
- m_isa->install16_device((ATBUS_IO_BASE - 0x40000) >> 7, (ATBUS_IO_END - 0x40000) >> 7, read16_delegate(FUNC(apollo_state::apollo_atbus_unmap_io_r), this), write16_delegate(FUNC(apollo_state::apollo_atbus_unmap_io_w), this));
- m_isa->install_memory(0, ATBUS_MEMORY_END, read8_delegate(FUNC(apollo_state::apollo_atbus_unmap_r), this), write8_delegate(FUNC(apollo_state::apollo_atbus_unmap_w), this));
+ m_isa->install16_device((ATBUS_IO_BASE - 0x40000) >> 7, (ATBUS_IO_END - 0x40000) >> 7, read16_delegate(*this, FUNC(apollo_state::apollo_atbus_unmap_io_r)), write16_delegate(*this, FUNC(apollo_state::apollo_atbus_unmap_io_w)));
+ m_isa->install_memory(0, ATBUS_MEMORY_END, read8_delegate(*this, FUNC(apollo_state::apollo_atbus_unmap_r)), write8_delegate(*this, FUNC(apollo_state::apollo_atbus_unmap_w)));
}
/***************************************************************************
@@ -968,7 +968,7 @@ void apollo_state::init_dn3500()
// MLOG1(("driver_init_dn3500"));
/* hook the RESET line, which resets a slew of other components */
- m_maincpu->set_reset_callback(write_line_delegate(FUNC(apollo_state::apollo_reset_instr_callback),this));
+ m_maincpu->set_reset_callback(FUNC(apollo_state::apollo_reset_instr_callback));
ram_base_address = DN3500_RAM_BASE;
ram_end_address = DN3500_RAM_END;
diff --git a/src/mame/drivers/apple1.cpp b/src/mame/drivers/apple1.cpp
index b2f5b5e6c54..26fc47f880a 100644
--- a/src/mame/drivers/apple1.cpp
+++ b/src/mame/drivers/apple1.cpp
@@ -615,7 +615,7 @@ void apple1_state::apple1(machine_config &config)
A1BUS(config, A1_BUS_TAG, 0).set_space(m_maincpu, AS_PROGRAM);
A1BUS_SLOT(config, "exp", 0, A1_BUS_TAG, apple1_cards, "cassette");
- SNAPSHOT(config, "snapshot", "snp").set_load_callback(FUNC(apple1_state::snapshot_cb), this);
+ SNAPSHOT(config, "snapshot", "snp").set_load_callback(FUNC(apple1_state::snapshot_cb));
SOFTWARE_LIST(config, "cass_list").set_original("apple1");
diff --git a/src/mame/drivers/apple2.cpp b/src/mame/drivers/apple2.cpp
index 17235a8ad4f..f24eda24da6 100644
--- a/src/mame/drivers/apple2.cpp
+++ b/src/mame/drivers/apple2.cpp
@@ -1324,8 +1324,7 @@ void apple2_state::apple2_common(machine_config &config)
m_ay3600->ako().set(FUNC(apple2_state::ay3600_ako_w));
/* repeat timer. 15 Hz from page 90 of "The Apple II Circuit Description */
- timer_device &timer(TIMER(config, "repttmr", 0));
- timer.configure_periodic(timer_device::expired_delegate(FUNC(apple2_state::ay3600_repeat), this), attotime::from_hz(15));
+ TIMER(config, "repttmr", 0).configure_periodic(FUNC(apple2_state::ay3600_repeat), attotime::from_hz(15));
/* slot devices */
A2BUS(config, m_a2bus, 0);
diff --git a/src/mame/drivers/apple2e.cpp b/src/mame/drivers/apple2e.cpp
index 31240a2fdb4..6ba64a2bb6e 100644
--- a/src/mame/drivers/apple2e.cpp
+++ b/src/mame/drivers/apple2e.cpp
@@ -4300,7 +4300,7 @@ void apple2e_state::apple2e(machine_config &config)
/* repeat timer. 15 Hz from page 7-15 of "Understanding the Apple IIe" */
timer_device &timer(TIMER(config, "repttmr", 0));
- timer.configure_periodic(timer_device::expired_delegate(FUNC(apple2e_state::ay3600_repeat), this), attotime::from_hz(15));
+ timer.configure_periodic(FUNC(apple2e_state::ay3600_repeat), attotime::from_hz(15));
/* slot devices */
A2BUS(config, m_a2bus, 0);
diff --git a/src/mame/drivers/applix.cpp b/src/mame/drivers/applix.cpp
index 8140bb64cfb..b08da95aba5 100644
--- a/src/mame/drivers/applix.cpp
+++ b/src/mame/drivers/applix.cpp
@@ -896,8 +896,8 @@ void applix_state::applix(machine_config &config)
m_crtc->set_screen("screen");
m_crtc->set_show_border_area(true);
m_crtc->set_char_width(8);
- m_crtc->set_update_row_callback(FUNC(applix_state::crtc_update_row), this);
- m_crtc->set_begin_update_callback(FUNC(applix_state::crtc_update_border), this);
+ m_crtc->set_update_row_callback(FUNC(applix_state::crtc_update_row));
+ m_crtc->set_begin_update_callback(FUNC(applix_state::crtc_update_border));
m_crtc->out_vsync_callback().set(FUNC(applix_state::vsync_w));
VIA6522(config, m_via, 30_MHz_XTAL / 4 / 10); // VIA uses 68000 E clock
diff --git a/src/mame/drivers/apricot.cpp b/src/mame/drivers/apricot.cpp
index 417c0b6c739..4cb8b34d8d4 100644
--- a/src/mame/drivers/apricot.cpp
+++ b/src/mame/drivers/apricot.cpp
@@ -393,7 +393,7 @@ void apricot_state::apricot(machine_config &config)
m_crtc->set_screen("screen");
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(10);
- m_crtc->set_update_row_callback(FUNC(apricot_state::crtc_update_row), this);
+ m_crtc->set_update_row_callback(FUNC(apricot_state::crtc_update_row));
m_crtc->out_de_callback().set(FUNC(apricot_state::apricot_hd6845_de));
// sound hardware
diff --git a/src/mame/drivers/apricotp.cpp b/src/mame/drivers/apricotp.cpp
index 2def89372c1..0e449e4b777 100644
--- a/src/mame/drivers/apricotp.cpp
+++ b/src/mame/drivers/apricotp.cpp
@@ -603,7 +603,7 @@ void fp_state::fp(machine_config &config)
m_crtc->set_screen(SCREEN_CRT_TAG);
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8);
- m_crtc->set_update_row_callback(FUNC(fp_state::update_row), this);
+ m_crtc->set_update_row_callback(FUNC(fp_state::update_row));
// sound hardware
SPEAKER(config, "mono").front_center();
diff --git a/src/mame/drivers/aquarium.cpp b/src/mame/drivers/aquarium.cpp
index 0a18960d945..35f3981c31c 100644
--- a/src/mame/drivers/aquarium.cpp
+++ b/src/mame/drivers/aquarium.cpp
@@ -248,7 +248,7 @@ void aquarium_state::aquarium(machine_config &config)
EXCELLENT_SPRITE(config, m_sprgen, 0);
m_sprgen->set_palette(m_palette);
m_sprgen->set_color_base(0x300);
- m_sprgen->set_colpri_callback(FUNC(aquarium_state::aquarium_colpri_cb), this);
+ m_sprgen->set_colpri_callback(FUNC(aquarium_state::aquarium_colpri_cb));
/* sound hardware */
SPEAKER(config, "lspeaker").front_left();
diff --git a/src/mame/drivers/arcadia.cpp b/src/mame/drivers/arcadia.cpp
index a385743900a..aab239326d2 100644
--- a/src/mame/drivers/arcadia.cpp
+++ b/src/mame/drivers/arcadia.cpp
@@ -454,12 +454,12 @@ void arcadia_state::machine_start()
{
switch (m_cart->get_type())
{
- case ARCADIA_STD:
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x2000, 0x7fff, read8_delegate(FUNC(arcadia_cart_slot_device::extra_rom),(arcadia_cart_slot_device*)m_cart));
- break;
- case ARCADIA_GOLF:
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x4000, 0x4fff, read8_delegate(FUNC(arcadia_cart_slot_device::extra_rom),(arcadia_cart_slot_device*)m_cart));
- break;
+ case ARCADIA_STD:
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x2000, 0x7fff, read8_delegate(*m_cart, FUNC(arcadia_cart_slot_device::extra_rom)));
+ break;
+ case ARCADIA_GOLF:
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x4000, 0x4fff, read8_delegate(*m_cart, FUNC(arcadia_cart_slot_device::extra_rom)));
+ break;
}
}
}
diff --git a/src/mame/drivers/argo.cpp b/src/mame/drivers/argo.cpp
index 0e2e3e06f65..fba33d67549 100644
--- a/src/mame/drivers/argo.cpp
+++ b/src/mame/drivers/argo.cpp
@@ -495,7 +495,7 @@ void argo_state::argo(machine_config &config)
i8275_device &crtc(I8275(config, "crtc", XTAL(20'000'000) / 12)); // unknown frequency
crtc.set_character_width(6);
- crtc.set_display_callback(FUNC(argo_state::display_pixels), this);
+ crtc.set_display_callback(FUNC(argo_state::display_pixels));
crtc.drq_wr_callback().set(m_dma, FUNC(i8257_device::dreq2_w));
crtc.set_screen("screen");
}
diff --git a/src/mame/drivers/arkanoid.cpp b/src/mame/drivers/arkanoid.cpp
index 83bf0c53aa5..8652d093d82 100644
--- a/src/mame/drivers/arkanoid.cpp
+++ b/src/mame/drivers/arkanoid.cpp
@@ -2112,12 +2112,12 @@ ROM_END
/* Driver Initialization */
-void arkanoid_state::arkanoid_bootleg_init( )
+void arkanoid_state::arkanoid_bootleg_init()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xf000, 0xf000, read8_delegate(FUNC(arkanoid_state::arkanoid_bootleg_f000_r),this) );
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xf002, 0xf002, read8_delegate(FUNC(arkanoid_state::arkanoid_bootleg_f002_r),this) );
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xd018, 0xd018, write8_delegate(FUNC(arkanoid_state::arkanoid_bootleg_d018_w),this) );
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xd008, 0xd008, read8_delegate(FUNC(arkanoid_state::arkanoid_bootleg_d008_r),this) );
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xf000, 0xf000, read8_delegate(*this, FUNC(arkanoid_state::arkanoid_bootleg_f000_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xf002, 0xf002, read8_delegate(*this, FUNC(arkanoid_state::arkanoid_bootleg_f002_r)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xd018, 0xd018, write8_delegate(*this, FUNC(arkanoid_state::arkanoid_bootleg_d018_w)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xd008, 0xd008, read8_delegate(*this, FUNC(arkanoid_state::arkanoid_bootleg_d008_r)));
}
void arkanoid_state::init_arkangc()
@@ -2195,12 +2195,12 @@ void arkanoid_state::init_tetrsark()
ROM[x] = ROM[x] ^ 0x94;
}
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xd008, 0xd008, write8_delegate(FUNC(arkanoid_state::tetrsark_d008_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xd008, 0xd008, write8_delegate(*this, FUNC(arkanoid_state::tetrsark_d008_w)));
}
void arkanoid_state::init_tetrsark2()
{
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xd008, 0xd008, write8_delegate(FUNC(arkanoid_state::tetrsark_d008_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xd008, 0xd008, write8_delegate(*this, FUNC(arkanoid_state::tetrsark_d008_w)));
}
diff --git a/src/mame/drivers/armedf.cpp b/src/mame/drivers/armedf.cpp
index 6f266ad8704..7fe361f309f 100644
--- a/src/mame/drivers/armedf.cpp
+++ b/src/mame/drivers/armedf.cpp
@@ -2135,24 +2135,24 @@ void armedf_state::init_terraf()
{
m_scroll_type = 0;
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x07c000, 0x07c001, write16_delegate(FUNC(armedf_state::bootleg_io_w),this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x07c006, 0x07c007, write16_delegate(FUNC(armedf_state::terraf_fg_scrolly_w),this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x07c008, 0x07c009, write16_delegate(FUNC(armedf_state::terraf_fg_scrollx_w),this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x0c0000, 0x0c0001, write16_delegate(FUNC(armedf_state::terraf_fg_scroll_msb_arm_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x07c000, 0x07c001, write16_delegate(*this, FUNC(armedf_state::bootleg_io_w)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x07c006, 0x07c007, write16_delegate(*this, FUNC(armedf_state::terraf_fg_scrolly_w)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x07c008, 0x07c009, write16_delegate(*this, FUNC(armedf_state::terraf_fg_scrollx_w)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x0c0000, 0x0c0001, write16_delegate(*this, FUNC(armedf_state::terraf_fg_scroll_msb_arm_w)));
}
void armedf_state::init_terrafu()
{
m_scroll_type = 0;
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x07c000, 0x07c001, write16_delegate(FUNC(armedf_state::terraf_io_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x07c000, 0x07c001, write16_delegate(*this, FUNC(armedf_state::terraf_io_w)));
}
void armedf_state::init_terrafjb()
{
m_scroll_type = 0;
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x07c000, 0x07c001, write16_delegate(FUNC(armedf_state::terrafjb_io_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x07c000, 0x07c001, write16_delegate(*this, FUNC(armedf_state::terrafjb_io_w)));
}
void armedf_state::init_armedf()
@@ -2171,7 +2171,7 @@ void armedf_state::init_kozure()
ROM[0x04fc6/2] = 0x4e71;
m_scroll_type = 0;
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x07c000, 0x07c001, write16_delegate(FUNC(armedf_state::terraf_io_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x07c000, 0x07c001, write16_delegate(*this, FUNC(armedf_state::terraf_io_w)));
}
@@ -2206,7 +2206,7 @@ void armedf_state::init_legionjb()
void armedf_state::init_cclimbr2()
{
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x07c000, 0x07c001, write16_delegate(FUNC(armedf_state::terraf_io_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x07c000, 0x07c001, write16_delegate(*this, FUNC(armedf_state::terraf_io_w)));
m_scroll_type = 3;
}
diff --git a/src/mame/drivers/artmagic.cpp b/src/mame/drivers/artmagic.cpp
index 2e6d00a40d5..7ffc6833055 100644
--- a/src/mame/drivers/artmagic.cpp
+++ b/src/mame/drivers/artmagic.cpp
@@ -1157,7 +1157,7 @@ void artmagic_state::init_ultennis()
m_protection_handler = &artmagic_state::ultennis_protection;
/* additional (protection?) hack */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x300000, 0x300001, read16_delegate(FUNC(artmagic_state::ultennis_hack_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x300000, 0x300001, read16_delegate(*this, FUNC(artmagic_state::ultennis_hack_r)));
}
diff --git a/src/mame/drivers/asterix.cpp b/src/mame/drivers/asterix.cpp
index 94019c13c53..97cff42f8e8 100644
--- a/src/mame/drivers/asterix.cpp
+++ b/src/mame/drivers/asterix.cpp
@@ -284,14 +284,14 @@ void asterix_state::asterix(machine_config &config)
PALETTE(config, "palette").set_format(palette_device::xBGR_555, 2048).enable_shadows();
K056832(config, m_k056832, 0);
- m_k056832->set_tile_callback(FUNC(asterix_state::tile_callback), this);
+ m_k056832->set_tile_callback(FUNC(asterix_state::tile_callback));
m_k056832->set_config(K056832_BPP_4, 1, 1);
m_k056832->set_palette("palette");
K053244(config, m_k053244, 0);
m_k053244->set_palette("palette");
m_k053244->set_offsets(-3, -1);
- m_k053244->set_sprite_callback(FUNC(asterix_state::sprite_callback), this);
+ m_k053244->set_sprite_callback(FUNC(asterix_state::sprite_callback));
K053251(config, m_k053251, 0);
diff --git a/src/mame/drivers/asteroid.cpp b/src/mame/drivers/asteroid.cpp
index 1e18d8b4eba..2fb03b74e0d 100644
--- a/src/mame/drivers/asteroid.cpp
+++ b/src/mame/drivers/asteroid.cpp
@@ -1173,7 +1173,7 @@ void asteroid_state::init_asteroidb()
void asteroid_state::init_asterock()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x2000, 0x2007, read8_delegate(FUNC(asteroid_state::asterock_IN0_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x2000, 0x2007, read8_delegate(*this, FUNC(asteroid_state::asterock_IN0_r)));
}
diff --git a/src/mame/drivers/astrof.cpp b/src/mame/drivers/astrof.cpp
index 2556459885d..8862a3ff6d0 100644
--- a/src/mame/drivers/astrof.cpp
+++ b/src/mame/drivers/astrof.cpp
@@ -1341,8 +1341,8 @@ void astrof_state::init_abattle()
rom[i] = prom[rom[i]];
/* set up protection handlers */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xa003, 0xa003, read8_delegate(FUNC(astrof_state::shoot_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xa004, 0xa004, read8_delegate(FUNC(astrof_state::abattle_coin_prot_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xa003, 0xa003, read8_delegate(*this, FUNC(astrof_state::shoot_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xa004, 0xa004, read8_delegate(*this, FUNC(astrof_state::abattle_coin_prot_r)));
}
@@ -1353,8 +1353,8 @@ void astrof_state::init_afire()
rom[i] = ~rom[i];
/* set up protection handlers */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xa003, 0xa003, read8_delegate(FUNC(astrof_state::shoot_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xa004, 0xa004, read8_delegate(FUNC(astrof_state::afire_coin_prot_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xa003, 0xa003, read8_delegate(*this, FUNC(astrof_state::shoot_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xa004, 0xa004, read8_delegate(*this, FUNC(astrof_state::afire_coin_prot_r)));
}
@@ -1365,15 +1365,15 @@ void astrof_state::init_sstarbtl()
rom[i] = ~rom[i];
/* set up protection handlers */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xa003, 0xa003, read8_delegate(FUNC(astrof_state::shoot_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xa004, 0xa004, read8_delegate(FUNC(astrof_state::abattle_coin_prot_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xa003, 0xa003, read8_delegate(*this, FUNC(astrof_state::shoot_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xa004, 0xa004, read8_delegate(*this, FUNC(astrof_state::abattle_coin_prot_r)));
}
void astrof_state::init_acombat3()
{
/* set up protection handlers */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xa003, 0xa003, read8_delegate(FUNC(astrof_state::shoot_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xa004, 0xa004, read8_delegate(FUNC(astrof_state::abattle_coin_prot_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xa003, 0xa003, read8_delegate(*this, FUNC(astrof_state::shoot_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xa004, 0xa004, read8_delegate(*this, FUNC(astrof_state::abattle_coin_prot_r)));
}
diff --git a/src/mame/drivers/astrohome.cpp b/src/mame/drivers/astrohome.cpp
index 87921cc4ba6..947561e662f 100644
--- a/src/mame/drivers/astrohome.cpp
+++ b/src/mame/drivers/astrohome.cpp
@@ -263,14 +263,14 @@ void astrocde_state::init_astrocde()
MACHINE_START_MEMBER(astrocde_home_state, astrocde)
{
if (m_cart->exists())
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x2000, 0x3fff, read8_delegate(FUNC(astrocade_cart_slot_device::read_rom),(astrocade_cart_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x2000, 0x3fff, read8_delegate(*m_cart, FUNC(astrocade_cart_slot_device::read_rom)));
// if no RAM is mounted and the handlers are installed, the system starts with garbage on screen and a RESET is necessary
// thus, install RAM only if an expansion is mounted
if (m_exp->get_card_mounted())
{
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x5000, 0xffff, read8_delegate(FUNC(astrocade_exp_device::read),(astrocade_exp_device*)m_exp), write8_delegate(FUNC(astrocade_exp_device::write),(astrocade_exp_device*)m_exp));
- m_maincpu->space(AS_IO).install_readwrite_handler(0x0080, 0x00ff, 0x0000, 0x0000, 0xff00, read8_delegate(FUNC(astrocade_exp_device::read_io),(astrocade_exp_device*)m_exp), write8_delegate(FUNC(astrocade_exp_device::write_io),(astrocade_exp_device*)m_exp));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x5000, 0xffff, read8_delegate(*m_exp, FUNC(astrocade_exp_device::read)), write8_delegate(*m_exp, FUNC(astrocade_exp_device::write)));
+ m_maincpu->space(AS_IO).install_readwrite_handler(0x0080, 0x00ff, 0x0000, 0x0000, 0xff00, read8_delegate(*m_exp, FUNC(astrocade_exp_device::read_io)), write8_delegate(*m_exp, FUNC(astrocade_exp_device::write_io)));
}
}
diff --git a/src/mame/drivers/asuka.cpp b/src/mame/drivers/asuka.cpp
index 25140be246a..af14a96f464 100644
--- a/src/mame/drivers/asuka.cpp
+++ b/src/mame/drivers/asuka.cpp
@@ -839,7 +839,7 @@ void asuka_state::bonzeadv(machine_config &config)
PC090OJ(config, m_pc090oj, 0);
m_pc090oj->set_offsets(0, 8);
m_pc090oj->set_palette(m_tc0110pcr);
- m_pc090oj->set_colpri_callback(FUNC(asuka_state::bonzeadv_colpri_cb), this);
+ m_pc090oj->set_colpri_callback(FUNC(asuka_state::bonzeadv_colpri_cb));
TC0100SCN(config, m_tc0100scn, 0);
m_tc0100scn->set_palette(m_tc0110pcr);
@@ -894,7 +894,7 @@ void asuka_state::asuka(machine_config &config)
m_pc090oj->set_offsets(0, 8);
m_pc090oj->set_usebuffer(true);
m_pc090oj->set_palette(m_tc0110pcr);
- m_pc090oj->set_colpri_callback(FUNC(asuka_state::asuka_colpri_cb), this);
+ m_pc090oj->set_colpri_callback(FUNC(asuka_state::asuka_colpri_cb));
TC0100SCN(config, m_tc0100scn, 0);
m_tc0100scn->set_palette(m_tc0110pcr);
@@ -961,7 +961,7 @@ void asuka_state::cadash(machine_config &config)
m_pc090oj->set_offsets(0, 8);
m_pc090oj->set_usebuffer(true);
m_pc090oj->set_palette(m_tc0110pcr);
- m_pc090oj->set_colpri_callback(FUNC(asuka_state::bonzeadv_colpri_cb), this);
+ m_pc090oj->set_colpri_callback(FUNC(asuka_state::bonzeadv_colpri_cb));
TC0100SCN(config, m_tc0100scn, 0);
m_tc0100scn->set_offsets(1, 0);
@@ -1016,7 +1016,7 @@ void asuka_state::mofflott(machine_config &config)
PC090OJ(config, m_pc090oj, 0);
m_pc090oj->set_offsets(0, 8);
m_pc090oj->set_palette(m_tc0110pcr);
- m_pc090oj->set_colpri_callback(FUNC(asuka_state::asuka_colpri_cb), this);
+ m_pc090oj->set_colpri_callback(FUNC(asuka_state::asuka_colpri_cb));
TC0100SCN(config, m_tc0100scn, 0);
m_tc0100scn->set_offsets(1, 0);
@@ -1079,7 +1079,7 @@ void asuka_state::eto(machine_config &config)
PC090OJ(config, m_pc090oj, 0);
m_pc090oj->set_offsets(0, 8);
m_pc090oj->set_palette(m_tc0110pcr);
- m_pc090oj->set_colpri_callback(FUNC(asuka_state::asuka_colpri_cb), this);
+ m_pc090oj->set_colpri_callback(FUNC(asuka_state::asuka_colpri_cb));
TC0100SCN(config, m_tc0100scn, 0);
m_tc0100scn->set_offsets(1, 0);
diff --git a/src/mame/drivers/atari400.cpp b/src/mame/drivers/atari400.cpp
index 571509a04d7..f6bffb8619b 100644
--- a/src/mame/drivers/atari400.cpp
+++ b/src/mame/drivers/atari400.cpp
@@ -1920,20 +1920,20 @@ void a400_state::setup_cart(a800_cart_slot_device *slot)
switch (slot->get_cart_type())
{
case A800_8K:
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xa000, 0xbfff, read8_delegate(FUNC(a800_cart_slot_device::read_80xx),(a800_cart_slot_device*)slot));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xa000, 0xbfff, read8_delegate(*slot, FUNC(a800_cart_slot_device::read_80xx)));
m_maincpu->space(AS_PROGRAM).unmap_write(0xa000, 0xbfff);
break;
case A800_8K_RIGHT:
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x8000, 0x9fff, read8_delegate(FUNC(a800_cart_slot_device::read_80xx),(a800_cart_slot_device*)slot));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x8000, 0x9fff, read8_delegate(*slot, FUNC(a800_cart_slot_device::read_80xx)));
m_maincpu->space(AS_PROGRAM).unmap_write(0x8000, 0x9fff);
break;
case A800_16K:
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x8000, 0xbfff, read8_delegate(FUNC(a800_cart_slot_device::read_80xx),(a800_cart_slot_device*)slot));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x8000, 0xbfff, read8_delegate(*slot, FUNC(a800_cart_slot_device::read_80xx)));
m_maincpu->space(AS_PROGRAM).unmap_write(0x8000, 0xbfff);
break;
case A800_BBSB:
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x8000, 0xbfff, read8_delegate(FUNC(a800_cart_slot_device::read_80xx),(a800_cart_slot_device*)slot));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x8000, 0x9fff, write8_delegate(FUNC(a800_cart_slot_device::write_80xx),(a800_cart_slot_device*)slot));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x8000, 0xbfff, read8_delegate(*slot, FUNC(a800_cart_slot_device::read_80xx)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x8000, 0x9fff, write8_delegate(*slot, FUNC(a800_cart_slot_device::write_80xx)));
m_maincpu->space(AS_PROGRAM).unmap_write(0xa000, 0xbfff);
break;
case A800_OSS034M:
@@ -1943,57 +1943,57 @@ void a400_state::setup_cart(a800_cart_slot_device *slot)
case A800_TURBO64:
case A800_TURBO128:
case A800_PHOENIX:
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xa000, 0xbfff, read8_delegate(FUNC(a400_state::special_read_a000), this), write8_delegate(FUNC(a400_state::special_write_a000), this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xd500, 0xd5ff, write8_delegate(FUNC(a400_state::disable_cart), this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xa000, 0xbfff, read8_delegate(*this, FUNC(a400_state::special_read_a000)), write8_delegate(*this, FUNC(a400_state::special_write_a000)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xd500, 0xd5ff, write8_delegate(*this, FUNC(a400_state::disable_cart)));
break;
case A800_EXPRESS:
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xa000, 0xbfff, read8_delegate(FUNC(a400_state::special_read_a000), this), write8_delegate(FUNC(a400_state::special_write_a000), this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xd570, 0xd57f, write8_delegate(FUNC(a400_state::disable_cart), this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xa000, 0xbfff, read8_delegate(*this, FUNC(a400_state::special_read_a000)), write8_delegate(*this, FUNC(a400_state::special_write_a000)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xd570, 0xd57f, write8_delegate(*this, FUNC(a400_state::disable_cart)));
break;
case A800_DIAMOND:
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xa000, 0xbfff, read8_delegate(FUNC(a400_state::special_read_a000), this), write8_delegate(FUNC(a400_state::special_write_a000), this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xd5d0, 0xd5df, write8_delegate(FUNC(a400_state::disable_cart), this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xa000, 0xbfff, read8_delegate(*this, FUNC(a400_state::special_read_a000)), write8_delegate(*this, FUNC(a400_state::special_write_a000)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xd5d0, 0xd5df, write8_delegate(*this, FUNC(a400_state::disable_cart)));
break;
case A800_WILLIAMS:
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xa000, 0xbfff, read8_delegate(FUNC(a400_state::special_read_a000), this), write8_delegate(FUNC(a400_state::special_write_a000), this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xd500, 0xd50f, write8_delegate(FUNC(a400_state::disable_cart), this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xa000, 0xbfff, read8_delegate(*this, FUNC(a400_state::special_read_a000)), write8_delegate(*this, FUNC(a400_state::special_write_a000)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xd500, 0xd50f, write8_delegate(*this, FUNC(a400_state::disable_cart)));
break;
case A800_SPARTADOS:
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xa000, 0xbfff, read8_delegate(FUNC(a400_state::special_read_a000), this), write8_delegate(FUNC(a400_state::special_write_a000), this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xd5e0, 0xd5ef, write8_delegate(FUNC(a400_state::disable_cart), this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xa000, 0xbfff, read8_delegate(*this, FUNC(a400_state::special_read_a000)), write8_delegate(*this, FUNC(a400_state::special_write_a000)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xd5e0, 0xd5ef, write8_delegate(*this, FUNC(a400_state::disable_cart)));
break;
case A800_BLIZZARD:
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x8000, 0xbfff, read8_delegate(FUNC(a400_state::special_read_8000), this), write8_delegate(FUNC(a400_state::special_write_8000), this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xd500, 0xd5ff, write8_delegate(FUNC(a400_state::disable_cart), this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x8000, 0xbfff, read8_delegate(*this, FUNC(a400_state::special_read_8000)), write8_delegate(*this, FUNC(a400_state::special_write_8000)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xd500, 0xd5ff, write8_delegate(*this, FUNC(a400_state::disable_cart)));
break;
case A800_MICROCALC:
// this can also disable ROM when reading in 0xd500-0xd5ff
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xa000, 0xbfff, read8_delegate(FUNC(a400_state::special_read_a000), this), write8_delegate(FUNC(a400_state::special_write_a000), this));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xd500, 0xd5ff, read8_delegate(FUNC(a400_state::read_d5xx), this), write8_delegate(FUNC(a400_state::disable_cart), this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xa000, 0xbfff, read8_delegate(*this, FUNC(a400_state::special_read_a000)), write8_delegate(*this, FUNC(a400_state::special_write_a000)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xd500, 0xd5ff, read8_delegate(*this, FUNC(a400_state::read_d5xx)), write8_delegate(*this, FUNC(a400_state::disable_cart)));
break;
case A800_TELELINK2:
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x8000, 0xbfff, read8_delegate(FUNC(a800_cart_slot_device::read_80xx),(a800_cart_slot_device*)slot));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x9000, 0x90ff, write8_delegate(FUNC(a800_cart_slot_device::write_80xx),(a800_cart_slot_device*)slot));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x8000, 0xbfff, read8_delegate(*slot, FUNC(a800_cart_slot_device::read_80xx)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x9000, 0x90ff, write8_delegate(*slot, FUNC(a800_cart_slot_device::write_80xx)));
m_maincpu->space(AS_PROGRAM).unmap_write(0xa000, 0xbfff);
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xd501, 0xd501, read8_delegate(FUNC(a800_cart_slot_device::read_d5xx),(a800_cart_slot_device*)slot));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xd502, 0xd502, write8_delegate(FUNC(a800_cart_slot_device::write_d5xx),(a800_cart_slot_device*)slot));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xd501, 0xd501, read8_delegate(*slot, FUNC(a800_cart_slot_device::read_d5xx)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xd502, 0xd502, write8_delegate(*slot, FUNC(a800_cart_slot_device::write_d5xx)));
break;
case A800_XEGS:
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x8000, 0xbfff, read8_delegate(FUNC(a800_cart_slot_device::read_80xx),(a800_cart_slot_device*)slot));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x8000, 0xbfff, read8_delegate(*slot, FUNC(a800_cart_slot_device::read_80xx)));
m_maincpu->space(AS_PROGRAM).unmap_write(0x8000, 0xbfff);
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xd500, 0xd5ff, write8_delegate(FUNC(a800_cart_slot_device::write_d5xx),(a800_cart_slot_device*)slot));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xd500, 0xd5ff, write8_delegate(*slot, FUNC(a800_cart_slot_device::write_d5xx)));
break;
case A5200_4K:
case A5200_8K:
case A5200_16K:
case A5200_32K:
case A5200_16K_2CHIPS:
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x4000, 0xbfff, read8_delegate(FUNC(a800_cart_slot_device::read_80xx),(a800_cart_slot_device*)slot));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x4000, 0xbfff, read8_delegate(*slot, FUNC(a800_cart_slot_device::read_80xx)));
m_maincpu->space(AS_PROGRAM).unmap_write(0x4000, 0xbfff);
break;
case A5200_BBSB:
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x4000, 0xbfff, read8_delegate(FUNC(a800_cart_slot_device::read_80xx),(a800_cart_slot_device*)slot));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x4000, 0x5fff, write8_delegate(FUNC(a800_cart_slot_device::write_80xx),(a800_cart_slot_device*)slot));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x4000, 0xbfff, read8_delegate(*slot, FUNC(a800_cart_slot_device::read_80xx)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x4000, 0x5fff, write8_delegate(*slot, FUNC(a800_cart_slot_device::write_80xx)));
m_maincpu->space(AS_PROGRAM).unmap_write(0x6000, 0xbfff);
break;
}
diff --git a/src/mame/drivers/atarig1.cpp b/src/mame/drivers/atarig1.cpp
index 7fef9366911..b079c927777 100644
--- a/src/mame/drivers/atarig1.cpp
+++ b/src/mame/drivers/atarig1.cpp
@@ -156,7 +156,7 @@ READ16_MEMBER(atarig1_state::pitfightb_cheap_slapstic_r)
void atarig1_state::pitfightb_cheap_slapstic_init()
{
/* install a read handler */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x038000, 0x03ffff, read16_delegate(FUNC(atarig1_state::pitfightb_cheap_slapstic_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x038000, 0x03ffff, read16_delegate(*this, FUNC(atarig1_state::pitfightb_cheap_slapstic_r)));
m_bslapstic_base = (uint16_t *)(memregion("maincpu")->base() + 0x38000);
/* allocate memory for a copy of bank 0 */
diff --git a/src/mame/drivers/atarig42.cpp b/src/mame/drivers/atarig42.cpp
index 2c1be9ac4b8..277cca66f7e 100644
--- a/src/mame/drivers/atarig42.cpp
+++ b/src/mame/drivers/atarig42.cpp
@@ -830,7 +830,7 @@ void atarig42_0x200_state::init_roadriot()
m_playfield_base = 0x400;
address_space &main = m_maincpu->space(AS_PROGRAM);
- main.install_readwrite_handler(0x000000, 0x07ffff, read16_delegate(FUNC(atarig42_0x200_state::roadriot_sloop_data_r),this), write16_delegate(FUNC(atarig42_0x200_state::roadriot_sloop_data_w),this));
+ main.install_readwrite_handler(0x000000, 0x07ffff, read16_delegate(*this, FUNC(atarig42_0x200_state::roadriot_sloop_data_r)), write16_delegate(*this, FUNC(atarig42_0x200_state::roadriot_sloop_data_w)));
m_sloop_base = (uint16_t *)memregion("maincpu")->base();
/*
@@ -865,7 +865,7 @@ void atarig42_0x400_state::init_guardian()
*(uint16_t *)&memregion("maincpu")->base()[0x80000] = 0x4E75;
address_space &main = m_maincpu->space(AS_PROGRAM);
- main.install_readwrite_handler(0x000000, 0x07ffff, read16_delegate(FUNC(atarig42_0x400_state::guardians_sloop_data_r),this), write16_delegate(FUNC(atarig42_0x400_state::guardians_sloop_data_w),this));
+ main.install_readwrite_handler(0x000000, 0x07ffff, read16_delegate(*this, FUNC(atarig42_0x400_state::guardians_sloop_data_r)), write16_delegate(*this, FUNC(atarig42_0x400_state::guardians_sloop_data_w)));
m_sloop_base = (uint16_t *)memregion("maincpu")->base();
/*
diff --git a/src/mame/drivers/atarigt.cpp b/src/mame/drivers/atarigt.cpp
index ca989a8e90d..7b753688ec3 100644
--- a/src/mame/drivers/atarigt.cpp
+++ b/src/mame/drivers/atarigt.cpp
@@ -1330,7 +1330,7 @@ void atarigt_state::init_tmek()
m_protection_w = &atarigt_state::tmek_protection_w;
/* temp hack */
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xd72000, 0xd75fff, write32_delegate(FUNC(atarigt_state::tmek_pf_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xd72000, 0xd75fff, write32_delegate(*this, FUNC(atarigt_state::tmek_pf_w)));
}
diff --git a/src/mame/drivers/atarigx2.cpp b/src/mame/drivers/atarigx2.cpp
index 6d25473a84c..8de721542aa 100644
--- a/src/mame/drivers/atarigx2.cpp
+++ b/src/mame/drivers/atarigx2.cpp
@@ -2263,8 +2263,8 @@ void atarigx2_state::init_spclords()
{
m_playfield_base = 0x000;
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xc80f00, 0xc80fff, read32_delegate(FUNC(atari_136095_0072_device::polylsb_read),(atari_136095_0072_device*)&(*m_xga)), write32_delegate(FUNC(atari_136095_0072_device::polylsb_write),(atari_136095_0072_device*)&(*m_xga)));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xca0000, 0xca0fff, read32_delegate(FUNC(atari_xga_device::read),&(*m_xga)), write32_delegate(FUNC(atari_xga_device::write),&(*m_xga)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xc80f00, 0xc80fff, read32_delegate(downcast<atari_136095_0072_device &>(*m_xga), FUNC(atari_136095_0072_device::polylsb_read)), write32_delegate(downcast<atari_136095_0072_device &>(*m_xga), FUNC(atari_136095_0072_device::polylsb_write)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xca0000, 0xca0fff, read32_delegate(*m_xga, FUNC(atari_xga_device::read)), write32_delegate(*m_xga, FUNC(atari_xga_device::write)));
}
@@ -2293,15 +2293,15 @@ XMEM=68.A23*E.A22*!E.A21*68.A20 = 1101 xxxx = d0
+68.A23*E.A22*!E.A21*!68.A20*68.A19 = 1100 1xxx = c80000-cfffff
+!68.A23*!E.A22*!E.A21 = 000x xxxx = 000000-1fffff
*/
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xca0000, 0xca0fff, read32_delegate(FUNC(atari_xga_device::read),&(*m_xga)), write32_delegate(FUNC(atari_xga_device::write),&(*m_xga)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xca0000, 0xca0fff, read32_delegate(*m_xga, FUNC(atari_xga_device::read)), write32_delegate(*m_xga, FUNC(atari_xga_device::write)));
}
void atarigx2_state::init_rrreveng()
{
m_playfield_base = 0x000;
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xca0000, 0xca0fff, read32_delegate(FUNC(atarigx2_state::atarigx2_protection_r),this), write32_delegate(FUNC(atarigx2_state::atarigx2_protection_w),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xca0fc0, 0xca0fc3, read32_delegate(FUNC(atarigx2_state::rrreveng_prot_r),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xca0000, 0xca0fff, read32_delegate(*this, FUNC(atarigx2_state::atarigx2_protection_r)), write32_delegate(*this, FUNC(atarigx2_state::atarigx2_protection_w)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xca0fc0, 0xca0fc3, read32_delegate(*this, FUNC(atarigx2_state::rrreveng_prot_r)));
}
diff --git a/src/mame/drivers/atarist.cpp b/src/mame/drivers/atarist.cpp
index ed3f4e723a1..3d03aacb791 100644
--- a/src/mame/drivers/atarist.cpp
+++ b/src/mame/drivers/atarist.cpp
@@ -1862,7 +1862,7 @@ void st_state::machine_start()
configure_memory();
if (m_cart->exists())
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xfa0000, 0xfbffff, read16s_delegate(FUNC(generic_slot_device::read16_rom),(generic_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xfa0000, 0xfbffff, read16s_delegate(*m_cart, FUNC(generic_slot_device::read16_rom)));
// allocate timers
if (m_mousex.found())
@@ -1917,7 +1917,7 @@ void ste_state::machine_start()
configure_memory();
if (m_cart->exists())
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xfa0000, 0xfbffff, read16s_delegate(FUNC(generic_slot_device::read16_rom),(generic_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xfa0000, 0xfbffff, read16s_delegate(*m_cart, FUNC(generic_slot_device::read16_rom)));
/* allocate timers */
m_dmasound_timer = timer_alloc(TIMER_DMASOUND_TICK);
@@ -1964,7 +1964,7 @@ void stbook_state::machine_start()
}
if (m_cart->exists())
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xfa0000, 0xfbffff, read16s_delegate(FUNC(generic_slot_device::read16_rom),(generic_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xfa0000, 0xfbffff, read16s_delegate(*m_cart, FUNC(generic_slot_device::read16_rom)));
/* register for state saving */
ste_state::state_save();
diff --git a/src/mame/drivers/atarittl.cpp b/src/mame/drivers/atarittl.cpp
index 53dd592f48b..2cd87fa4df7 100644
--- a/src/mame/drivers/atarittl.cpp
+++ b/src/mame/drivers/atarittl.cpp
@@ -374,7 +374,7 @@ void gtrak10_state::gtrak10(machine_config &config)
/* basic machine hardware */
NETLIST_CPU(config, "maincpu", NETLIST_CLOCK).set_source(netlist_gtrak10);
- NETLIST_ANALOG_OUTPUT(config, "maincpu:vid0", 0).set_params("VIDEO_OUT", FUNC(fixedfreq_device::update_composite_monochrome), "fixfreq");
+ NETLIST_ANALOG_OUTPUT(config, "maincpu:vid0", 0).set_params("VIDEO_OUT", "fixfreq", FUNC(fixedfreq_device::update_composite_monochrome));
/* video hardware */
diff --git a/src/mame/drivers/atom.cpp b/src/mame/drivers/atom.cpp
index b1b30cd94dc..35222ab4134 100644
--- a/src/mame/drivers/atom.cpp
+++ b/src/mame/drivers/atom.cpp
@@ -663,7 +663,7 @@ void atom_state::machine_start()
m_baseram[0x0b] = machine().rand() & 0x0ff;
if (m_cart.found() && m_cart->exists())
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xa000, 0xafff, read8sm_delegate(FUNC(generic_slot_device::read_rom), &*m_cart));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xa000, 0xafff, read8sm_delegate(*m_cart, FUNC(generic_slot_device::read_rom)));
}
/*-------------------------------------------------
@@ -758,10 +758,10 @@ void atom_state::atom(machine_config &config)
m_cassette->set_formats(atom_cassette_formats);
m_cassette->set_interface("atom_cass");
- QUICKLOAD(config, "quickload", "atm").set_load_callback(FUNC(atom_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "atm").set_load_callback(FUNC(atom_state::quickload_cb));
/* utility rom slot */
- GENERIC_CARTSLOT(config, "cartslot", generic_linear_slot, "atom_cart", "bin,rom").set_device_load(FUNC(atom_state::cart_load), this);
+ GENERIC_CARTSLOT(config, "cartslot", generic_linear_slot, "atom_cart", "bin,rom").set_device_load(FUNC(atom_state::cart_load));
/* internal ram */
RAM(config, RAM_TAG).set_default_size("32K").set_extra_options("2K,4K,6K,8K,10K,12K").set_default_value(0x00);
@@ -777,7 +777,7 @@ void atom_state::atom(machine_config &config)
-------------------------------------------------*/
#define ATOM_ROM(_tag, _load) \
- GENERIC_SOCKET(config, _tag, generic_linear_slot, "atom_cart", "bin,rom").set_device_load(FUNC(atomeb_state::_load), this) \
+ GENERIC_SOCKET(config, _tag, generic_linear_slot, "atom_cart", "bin,rom").set_device_load(FUNC(atomeb_state::_load)) \
void atomeb_state::atomeb(machine_config &config)
{
diff --git a/src/mame/drivers/attache.cpp b/src/mame/drivers/attache.cpp
index c665ad28701..090677ccf6e 100644
--- a/src/mame/drivers/attache.cpp
+++ b/src/mame/drivers/attache.cpp
@@ -1094,7 +1094,7 @@ void attache_state::driver_start()
m_nvram->set_base(m_cmos_ram,64);
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x0000,0x0fff,read8_delegate(FUNC(attache_state::rom_r),this),write8_delegate(FUNC(attache_state::rom_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x0000,0x0fff, read8_delegate(*this, FUNC(attache_state::rom_r)), write8_delegate(*this, FUNC(attache_state::rom_w)));
save_pointer(m_char_ram,"Character RAM",128*32);
save_pointer(m_attr_ram,"Attribute RAM",128*32);
diff --git a/src/mame/drivers/aussiebyte.cpp b/src/mame/drivers/aussiebyte.cpp
index 18a64b9ee11..c085db57dbd 100644
--- a/src/mame/drivers/aussiebyte.cpp
+++ b/src/mame/drivers/aussiebyte.cpp
@@ -585,13 +585,13 @@ void aussiebyte_state::aussiebyte(machine_config &config)
m_crtc->set_screen("screen");
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8);
- m_crtc->set_update_row_callback(FUNC(aussiebyte_state::crtc_update_row), this);
- m_crtc->set_on_update_addr_change_callback(FUNC(aussiebyte_state::crtc_update_addr), this);
+ m_crtc->set_update_row_callback(FUNC(aussiebyte_state::crtc_update_row));
+ m_crtc->set_on_update_addr_change_callback(FUNC(aussiebyte_state::crtc_update_addr));
MSM5832(config, m_rtc, 32.768_kHz_XTAL);
/* quickload */
- QUICKLOAD(config, "quickload", "com,cpm", attotime::from_seconds(3)).set_load_callback(FUNC(aussiebyte_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "com,cpm", attotime::from_seconds(3)).set_load_callback(FUNC(aussiebyte_state::quickload_cb));
}
diff --git a/src/mame/drivers/ave_arb.cpp b/src/mame/drivers/ave_arb.cpp
index 9a316f15653..52482c5acf6 100644
--- a/src/mame/drivers/ave_arb.cpp
+++ b/src/mame/drivers/ave_arb.cpp
@@ -299,7 +299,7 @@ void arb_state::arb(machine_config &config)
/* cartridge */
GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "arb", "bin");
- m_cart->set_device_load(FUNC(arb_state::cart_load), this);
+ m_cart->set_device_load(FUNC(arb_state::cart_load));
m_cart->set_must_be_loaded(true);
SOFTWARE_LIST(config, "cart_list").set_original("arb");
diff --git a/src/mame/drivers/avigo.cpp b/src/mame/drivers/avigo.cpp
index bb79a00129e..a3942391265 100644
--- a/src/mame/drivers/avigo.cpp
+++ b/src/mame/drivers/avigo.cpp
@@ -812,7 +812,7 @@ void avigo_state::avigo(machine_config &config)
TIMER(config, "1hz_timer").configure_periodic(FUNC(avigo_state::avigo_1hz_timer), attotime::from_hz(1));
/* quickload */
- QUICKLOAD(config, "quickload", "app").set_load_callback(FUNC(avigo_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "app").set_load_callback(FUNC(avigo_state::quickload_cb));
}
diff --git a/src/mame/drivers/avt.cpp b/src/mame/drivers/avt.cpp
index c3fe2892b01..4864c3d7d59 100644
--- a/src/mame/drivers/avt.cpp
+++ b/src/mame/drivers/avt.cpp
@@ -537,7 +537,7 @@ TILE_GET_INFO_MEMBER(avt_state::get_bg_tile_info)
void avt_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(avt_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 28, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(avt_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 28, 32);
}
diff --git a/src/mame/drivers/babbage.cpp b/src/mame/drivers/babbage.cpp
index 6b03aa0f27c..2681cdb1cbe 100644
--- a/src/mame/drivers/babbage.cpp
+++ b/src/mame/drivers/babbage.cpp
@@ -257,7 +257,7 @@ void babbage_state::babbage(machine_config &config)
m_pio_2->in_pa_callback().set(FUNC(babbage_state::pio2_a_r));
m_pio_2->out_pb_callback().set(FUNC(babbage_state::pio2_b_w));
- TIMER(config, "keyboard_timer", 0).configure_periodic(timer_device::expired_delegate(FUNC(babbage_state::keyboard_callback), this), attotime::from_hz(30));
+ TIMER(config, "keyboard_timer", 0).configure_periodic(FUNC(babbage_state::keyboard_callback), attotime::from_hz(30));
}
diff --git a/src/mame/drivers/backfire.cpp b/src/mame/drivers/backfire.cpp
index a123d45916f..b222e6fd062 100644
--- a/src/mame/drivers/backfire.cpp
+++ b/src/mame/drivers/backfire.cpp
@@ -407,8 +407,8 @@ void backfire_state::backfire(machine_config &config)
m_deco_tilegen[0]->set_pf2_col_bank(0x40);
m_deco_tilegen[0]->set_pf1_col_mask(0x0f);
m_deco_tilegen[0]->set_pf2_col_mask(0x0f);
- m_deco_tilegen[0]->set_bank1_callback(FUNC(backfire_state::bank_callback), this);
- m_deco_tilegen[0]->set_bank2_callback(FUNC(backfire_state::bank_callback), this);
+ m_deco_tilegen[0]->set_bank1_callback(FUNC(backfire_state::bank_callback));
+ m_deco_tilegen[0]->set_bank2_callback(FUNC(backfire_state::bank_callback));
m_deco_tilegen[0]->set_pf12_8x8_bank(0);
m_deco_tilegen[0]->set_pf12_16x16_bank(1);
m_deco_tilegen[0]->set_gfxdecode_tag("gfxdecode");
@@ -423,8 +423,8 @@ void backfire_state::backfire(machine_config &config)
m_deco_tilegen[1]->set_pf2_col_bank(0x50);
m_deco_tilegen[1]->set_pf1_col_mask(0x0f);
m_deco_tilegen[1]->set_pf2_col_mask(0x0f);
- m_deco_tilegen[1]->set_bank1_callback(FUNC(backfire_state::bank_callback), this);
- m_deco_tilegen[1]->set_bank2_callback(FUNC(backfire_state::bank_callback), this);
+ m_deco_tilegen[1]->set_bank1_callback(FUNC(backfire_state::bank_callback));
+ m_deco_tilegen[1]->set_bank2_callback(FUNC(backfire_state::bank_callback));
m_deco_tilegen[1]->set_pf12_8x8_bank(2);
m_deco_tilegen[1]->set_pf12_16x16_bank(3);
m_deco_tilegen[1]->set_gfxdecode_tag("gfxdecode");
@@ -432,13 +432,13 @@ void backfire_state::backfire(machine_config &config)
DECO_SPRITE(config, m_sprgen[0], 0);
m_sprgen[0]->set_screen(m_lscreen);
m_sprgen[0]->set_gfx_region(4);
- m_sprgen[0]->set_pri_callback(FUNC(backfire_state::pri_callback), this);
+ m_sprgen[0]->set_pri_callback(FUNC(backfire_state::pri_callback));
m_sprgen[0]->set_gfxdecode_tag("gfxdecode");
DECO_SPRITE(config, m_sprgen[1], 0);
m_sprgen[1]->set_screen("rscreen");
m_sprgen[1]->set_gfx_region(5);
- m_sprgen[1]->set_pri_callback(FUNC(backfire_state::pri_callback), this);
+ m_sprgen[1]->set_pri_callback(FUNC(backfire_state::pri_callback));
m_sprgen[1]->set_gfxdecode_tag("gfxdecode");
/* sound hardware */
@@ -615,7 +615,7 @@ void backfire_state::init_backfire()
deco156_decrypt(machine());
m_maincpu->set_clock_scale(4.0f); /* core timings aren't accurate */
descramble_sound();
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x0170018, 0x017001b, read32_delegate(FUNC(backfire_state::backfire_speedup_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x0170018, 0x017001b, read32_delegate(*this, FUNC(backfire_state::backfire_speedup_r)));
}
GAME( 1995, backfire, 0, backfire, backfire, backfire_state, init_backfire, ROT0, "Data East Corporation", "Backfire! (Japan, set 1)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/balsente.cpp b/src/mame/drivers/balsente.cpp
index 5fc95e5ba11..2da3342872b 100644
--- a/src/mame/drivers/balsente.cpp
+++ b/src/mame/drivers/balsente.cpp
@@ -238,7 +238,7 @@ void balsente_state::cpu1_base_map(address_map &map)
map(0x8000, 0x8fff).ram().w(FUNC(balsente_state::paletteram_w)).share("paletteram");
map(0x9000, 0x9007).w(FUNC(balsente_state::adc_select_w));
map(0x9400, 0x9401).r(FUNC(balsente_state::adc_data_r));
- map(0x9800, 0x981f).mirror(0x0060).lw8("outlatch_w", [this](offs_t offset, u8 data) { m_outlatch->write_d7(offset >> 2, data); });
+ map(0x9800, 0x981f).mirror(0x0060).lw8(NAME([this] (offs_t offset, u8 data) { m_outlatch->write_d7(offset >> 2, data); }));
map(0x9880, 0x989f).w(FUNC(balsente_state::random_reset_w));
map(0x98a0, 0x98bf).w(FUNC(balsente_state::rombank_select_w));
map(0x98c0, 0x98df).w(FUNC(balsente_state::palette_select_w));
@@ -1351,7 +1351,7 @@ void balsente_state::balsente(machine_config &config)
WATCHDOG_TIMER(config, "watchdog");
- TIMER(config, m_scanline_timer, 0).configure_generic(timer_device::expired_delegate(FUNC(balsente_state::interrupt_timer), this));
+ TIMER(config, m_scanline_timer, 0).configure_generic(FUNC(balsente_state::interrupt_timer));
LS259(config, m_outlatch); // U9H
// these outputs are generally used to control the various lamps
diff --git a/src/mame/drivers/banctec.cpp b/src/mame/drivers/banctec.cpp
index fa996910cb2..d871c5ec20a 100644
--- a/src/mame/drivers/banctec.cpp
+++ b/src/mame/drivers/banctec.cpp
@@ -161,8 +161,8 @@ void banctec_state::banctec(machine_config &config)
crtc.set_screen("screen");
crtc.set_show_border_area(false);
crtc.set_char_width(8);
- crtc.set_update_row_callback(FUNC(banctec_state::crtc_update_row), this);
- crtc.set_on_update_addr_change_callback(FUNC(banctec_state::crtc_addr), this);
+ crtc.set_update_row_callback(FUNC(banctec_state::crtc_update_row));
+ crtc.set_on_update_addr_change_callback(FUNC(banctec_state::crtc_addr));
}
ROM_START(banctec)
diff --git a/src/mame/drivers/battlnts.cpp b/src/mame/drivers/battlnts.cpp
index 1d21e0ed5e7..b076294bb2b 100644
--- a/src/mame/drivers/battlnts.cpp
+++ b/src/mame/drivers/battlnts.cpp
@@ -257,12 +257,12 @@ void battlnts_state::battlnts(machine_config &config)
K007342(config, m_k007342, 0);
m_k007342->set_gfxnum(0);
- m_k007342->set_tile_callback(FUNC(battlnts_state::battlnts_tile_callback), this);
+ m_k007342->set_tile_callback(FUNC(battlnts_state::battlnts_tile_callback));
m_k007342->set_gfxdecode_tag(m_gfxdecode);
K007420(config, m_k007420, 0);
m_k007420->set_bank_limit(0x3ff);
- m_k007420->set_sprite_callback(FUNC(battlnts_state::battlnts_sprite_callback), this);
+ m_k007420->set_sprite_callback(FUNC(battlnts_state::battlnts_sprite_callback));
m_k007420->set_palette_tag("palette");
/* sound hardware */
diff --git a/src/mame/drivers/bbc.cpp b/src/mame/drivers/bbc.cpp
index a56ba806dee..761a78a0f9b 100644
--- a/src/mame/drivers/bbc.cpp
+++ b/src/mame/drivers/bbc.cpp
@@ -858,9 +858,9 @@ void bbc_state::bbca(machine_config &config)
m_hd6845->set_screen("screen");
m_hd6845->set_show_border_area(false);
m_hd6845->set_char_width(12);
- //m_hd6845->set_begin_update_callback(FUNC(bbc_state::crtc_begin_update), this);
- m_hd6845->set_update_row_callback(FUNC(bbc_state::crtc_update_row), this);
- //m_hd6845->set_reconfigure_callback(FUNC(bbc_state::crtc_reconfig), this);
+ //m_hd6845->set_begin_update_callback(FUNC(bbc_state::crtc_begin_update));
+ m_hd6845->set_update_row_callback(FUNC(bbc_state::crtc_update_row));
+ //m_hd6845->set_reconfigure_callback(FUNC(bbc_state::crtc_reconfig));
m_hd6845->out_de_callback().set(FUNC(bbc_state::bbc_de_changed));
m_hd6845->out_hsync_callback().set(FUNC(bbc_state::bbc_hsync_changed));
m_hd6845->out_vsync_callback().set(FUNC(bbc_state::bbc_vsync_changed));
@@ -947,8 +947,8 @@ void bbc_state::bbcb(machine_config &config)
/* adc */
UPD7002(config, m_upd7002, 16_MHz_XTAL / 16);
- m_upd7002->set_get_analogue_callback(FUNC(bbc_state::get_analogue_input), this);
- m_upd7002->set_eoc_callback(FUNC(bbc_state::upd7002_eoc), this);
+ m_upd7002->set_get_analogue_callback(FUNC(bbc_state::get_analogue_input));
+ m_upd7002->set_eoc_callback(FUNC(bbc_state::upd7002_eoc));
/* printer */
centronics_device &centronics(CENTRONICS(config, "centronics", centronics_devices, "printer"));
@@ -1350,9 +1350,9 @@ void bbcm_state::bbcm(machine_config &config)
m_hd6845->set_screen("screen");
m_hd6845->set_show_border_area(false);
m_hd6845->set_char_width(12);
- //m_hd6845->set_begin_update_callback(FUNC(bbc_state::crtc_begin_update), this);
- m_hd6845->set_update_row_callback(FUNC(bbc_state::crtc_update_row), this);
- //m_hd6845->set_reconfigure_callback(FUNC(bbc_state::crtc_reconfig), this);
+ //m_hd6845->set_begin_update_callback(FUNC(bbc_state::crtc_begin_update));
+ m_hd6845->set_update_row_callback(FUNC(bbc_state::crtc_update_row));
+ //m_hd6845->set_reconfigure_callback(FUNC(bbc_state::crtc_reconfig));
m_hd6845->out_de_callback().set(FUNC(bbc_state::bbc_de_changed));
m_hd6845->out_hsync_callback().set(FUNC(bbc_state::bbc_hsync_changed));
m_hd6845->out_vsync_callback().set(FUNC(bbc_state::bbc_vsync_changed));
@@ -1400,8 +1400,8 @@ void bbcm_state::bbcm(machine_config &config)
/* adc */
UPD7002(config, m_upd7002, 16_MHz_XTAL / 16);
- m_upd7002->set_get_analogue_callback(FUNC(bbc_state::get_analogue_input), this);
- m_upd7002->set_eoc_callback(FUNC(bbc_state::upd7002_eoc), this);
+ m_upd7002->set_get_analogue_callback(FUNC(bbc_state::get_analogue_input));
+ m_upd7002->set_eoc_callback(FUNC(bbc_state::upd7002_eoc));
/* system via */
VIA6522(config, m_via6522_0, 16_MHz_XTAL / 16);
@@ -1461,9 +1461,9 @@ void bbcm_state::bbcm(machine_config &config)
/* cartridge slots */
GENERIC_CARTSLOT(config, m_cart[0], generic_linear_slot, "bbcm_cart", "bin,rom");
- m_cart[0]->set_device_load(FUNC(bbc_state::cart1_load), this);
+ m_cart[0]->set_device_load(FUNC(bbc_state::cart1_load));
GENERIC_CARTSLOT(config, m_cart[1], generic_linear_slot, "bbcm_cart", "bin,rom");
- m_cart[1]->set_device_load(FUNC(bbc_state::cart2_load), this);
+ m_cart[1]->set_device_load(FUNC(bbc_state::cart2_load));
/* eprom sockets */
BBC_ROMSLOT16(config, m_rom[0x08], bbc_rom_devices, nullptr); /* ic27 */
diff --git a/src/mame/drivers/bbcbc.cpp b/src/mame/drivers/bbcbc.cpp
index 2a73eddf278..acaa2c13f4a 100644
--- a/src/mame/drivers/bbcbc.cpp
+++ b/src/mame/drivers/bbcbc.cpp
@@ -75,13 +75,9 @@ void bbcbc_state::mem_map(address_map &map)
void bbcbc_state::io_map(address_map &map)
{
map.global_mask(0xff);
- map(0x00, 0x7f).lrw8("z80pio_rw",
- [this](offs_t offset) {
- return m_z80pio->read(offset >> 5);
- },
- [this](offs_t offset, u8 data) {
- m_z80pio->write(offset >> 5, data);
- });
+ map(0x00, 0x7f).lrw8(
+ NAME([this](offs_t offset) { return m_z80pio->read(offset >> 5); }),
+ NAME([this](offs_t offset, u8 data) { m_z80pio->write(offset >> 5, data); }));
map(0x80, 0x81).rw("tms9129", FUNC(tms9129_device::read), FUNC(tms9129_device::write));
}
diff --git a/src/mame/drivers/berzerk.cpp b/src/mame/drivers/berzerk.cpp
index 415fd52f3d3..dcbd211951e 100644
--- a/src/mame/drivers/berzerk.cpp
+++ b/src/mame/drivers/berzerk.cpp
@@ -25,8 +25,8 @@
class berzerk_state : public driver_device
{
public:
- berzerk_state(const machine_config &mconfig, device_type type, const char *tag)
- : driver_device(mconfig, type, tag),
+ berzerk_state(const machine_config &mconfig, device_type type, const char *tag) :
+ driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"),
m_s14001a(*this, "speech"),
m_ls181_10c(*this, "ls181_10c"),
@@ -1364,8 +1364,8 @@ ROM_END
void berzerk_state::init_moonwarp()
{
address_space &io = m_maincpu->space(AS_IO);
- io.install_read_handler (0x48, 0x48, read8_delegate(FUNC(berzerk_state::moonwarp_p1_r), this));
- io.install_read_handler (0x4a, 0x4a, read8_delegate(FUNC(berzerk_state::moonwarp_p2_r), this));
+ io.install_read_handler (0x48, 0x48, read8_delegate(*this, FUNC(berzerk_state::moonwarp_p1_r)));
+ io.install_read_handler (0x4a, 0x4a, read8_delegate(*this, FUNC(berzerk_state::moonwarp_p2_r)));
save_item(NAME(m_p1_counter_74ls161));
save_item(NAME(m_p1_direction));
diff --git a/src/mame/drivers/bestleag.cpp b/src/mame/drivers/bestleag.cpp
index 77fa89cd590..01c1e2ce175 100644
--- a/src/mame/drivers/bestleag.cpp
+++ b/src/mame/drivers/bestleag.cpp
@@ -127,9 +127,9 @@ TILEMAP_MAPPER_MEMBER(bestleag_state::bsb_bg_scan)
void bestleag_state::video_start()
{
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(bestleag_state::get_tx_tile_info),this),TILEMAP_SCAN_COLS,8,8,256, 32);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(bestleag_state::get_bg_tile_info),this),tilemap_mapper_delegate(FUNC(bestleag_state::bsb_bg_scan),this),16,16,128, 64);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(bestleag_state::get_fg_tile_info),this),tilemap_mapper_delegate(FUNC(bestleag_state::bsb_bg_scan),this),16,16,128, 64);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(bestleag_state::get_tx_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 256, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(bestleag_state::get_bg_tile_info)), tilemap_mapper_delegate(*this, FUNC(bestleag_state::bsb_bg_scan)), 16, 16, 128, 64);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(bestleag_state::get_fg_tile_info)), tilemap_mapper_delegate(*this, FUNC(bestleag_state::bsb_bg_scan)), 16, 16, 128, 64);
m_tx_tilemap->set_transparent_pen(15);
m_fg_tilemap->set_transparent_pen(15);
diff --git a/src/mame/drivers/beta.cpp b/src/mame/drivers/beta.cpp
index 2413c7c4663..6c080e00811 100644
--- a/src/mame/drivers/beta.cpp
+++ b/src/mame/drivers/beta.cpp
@@ -368,8 +368,8 @@ void beta_state::beta(machine_config &config)
/* EPROM socket */
generic_cartslot_device &cartslot(GENERIC_CARTSLOT(config, EPROM_TAG, generic_plain_slot, nullptr, "bin,rom"));
- cartslot.set_device_load(FUNC(beta_state::load_beta_eprom), this);
- cartslot.set_device_unload(FUNC(beta_state::unload_beta_eprom), this);
+ cartslot.set_device_load(FUNC(beta_state::load_beta_eprom));
+ cartslot.set_device_unload(FUNC(beta_state::unload_beta_eprom));
/* internal ram */
RAM(config, RAM_TAG).set_default_size("256");
diff --git a/src/mame/drivers/bfm_sc2.cpp b/src/mame/drivers/bfm_sc2.cpp
index aaf7b61d546..e035ee6c95a 100644
--- a/src/mame/drivers/bfm_sc2.cpp
+++ b/src/mame/drivers/bfm_sc2.cpp
@@ -3741,8 +3741,8 @@ void bfm_sc2_dmd_state::machine_start()
{
bfm_sc2_state::machine_start();
address_space &space = m_maincpu->space(AS_PROGRAM);
- space.install_write_handler(0x2800, 0x2800, write8_delegate(FUNC(bfm_sc2_dmd_state::vfd1_dmd_w),this));
- space.install_write_handler(0x2900, 0x2900, write8_delegate(FUNC(bfm_sc2_dmd_state::dmd_reset_w),this));
+ space.install_write_handler(0x2800, 0x2800, write8_delegate(*this, FUNC(bfm_sc2_dmd_state::vfd1_dmd_w)));
+ space.install_write_handler(0x2900, 0x2900, write8_delegate(*this, FUNC(bfm_sc2_dmd_state::dmd_reset_w)));
}
/* machine driver for scorpion2 board */
diff --git a/src/mame/drivers/bfm_sc4.cpp b/src/mame/drivers/bfm_sc4.cpp
index 2a85b11494b..ebbef7cbf4b 100644
--- a/src/mame/drivers/bfm_sc4.cpp
+++ b/src/mame/drivers/bfm_sc4.cpp
@@ -821,10 +821,10 @@ void sc4_state::machine_start()
m_nvram->set_base(m_mainram, sizeof(m_mainram));
m_maincpu->set_port_callbacks(
- m68307_cpu_device::porta_read_delegate(FUNC(sc4_state::bfm_sc4_68307_porta_r), this),
- m68307_cpu_device::porta_write_delegate(FUNC(sc4_state::bfm_sc4_68307_porta_w), this),
- m68307_cpu_device::portb_read_delegate(FUNC(sc4_state::bfm_sc4_68307_portb_r), this),
- m68307_cpu_device::portb_write_delegate(FUNC(sc4_state::bfm_sc4_68307_portb_w), this));
+ m68307_cpu_device::porta_read_delegate(*this, FUNC(sc4_state::bfm_sc4_68307_porta_r)),
+ m68307_cpu_device::porta_write_delegate(*this, FUNC(sc4_state::bfm_sc4_68307_porta_w)),
+ m68307_cpu_device::portb_read_delegate(*this, FUNC(sc4_state::bfm_sc4_68307_portb_r)),
+ m68307_cpu_device::portb_write_delegate(*this, FUNC(sc4_state::bfm_sc4_68307_portb_w)));
}
diff --git a/src/mame/drivers/bigbord2.cpp b/src/mame/drivers/bigbord2.cpp
index 990c6ee47b8..80bf88d5746 100644
--- a/src/mame/drivers/bigbord2.cpp
+++ b/src/mame/drivers/bigbord2.cpp
@@ -598,7 +598,7 @@ void bigbord2_state::bigbord2(machine_config &config)
crtc.set_screen("screen");
crtc.set_show_border_area(false);
crtc.set_char_width(8);
- crtc.set_update_row_callback(FUNC(bigbord2_state::crtc_update_row), this);
+ crtc.set_update_row_callback(FUNC(bigbord2_state::crtc_update_row));
crtc.out_vsync_callback().set(m_ctc1, FUNC(z80ctc_device::trg3));
ls259_device &proglatch(LS259(config, "proglatch")); // U41
diff --git a/src/mame/drivers/binbug.cpp b/src/mame/drivers/binbug.cpp
index 175d513b26d..dc58fa4135e 100644
--- a/src/mame/drivers/binbug.cpp
+++ b/src/mame/drivers/binbug.cpp
@@ -266,7 +266,7 @@ void binbug_state::binbug(machine_config &config)
RS232_PORT(config, m_rs232, default_rs232_devices, "keyboard").set_option_device_input_defaults("keyboard", DEVICE_INPUT_DEFAULTS_NAME(keyboard));
/* quickload */
- QUICKLOAD(config, "quickload", "pgm", attotime::from_seconds(1)).set_load_callback(FUNC(binbug_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "pgm", attotime::from_seconds(1)).set_load_callback(FUNC(binbug_state::quickload_cb));
S100_BUS(config, m_s100, 0);
S100_SLOT(config, "s100:1", binbug_s100_devices, "dg640");
diff --git a/src/mame/drivers/bionicc.cpp b/src/mame/drivers/bionicc.cpp
index 22e9bc9681a..aad9eb30303 100644
--- a/src/mame/drivers/bionicc.cpp
+++ b/src/mame/drivers/bionicc.cpp
@@ -205,7 +205,7 @@ void bionicc_state::sound_map(address_map &map)
{
map(0x0000, 0x7fff).rom();
map(0x8000, 0x8001).rw("ymsnd", FUNC(ym2151_device::read), FUNC(ym2151_device::write));
- map(0xa000, 0xa000).lrw8("mcu", [this]() { return m_mcu_to_audiocpu; }, [this](u8 data) { m_audiocpu_to_mcu = data; });
+ map(0xa000, 0xa000).lrw8(NAME([this]() { return m_mcu_to_audiocpu; }), NAME([this](u8 data) { m_audiocpu_to_mcu = data; }));
map(0xc000, 0xc7ff).ram();
}
@@ -393,9 +393,9 @@ u32 bionicc_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, co
void bionicc_state::video_start()
{
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(bionicc_state::get_tx_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(bionicc_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(bionicc_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(bionicc_state::get_tx_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(bionicc_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(bionicc_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
m_tx_tilemap->set_transparent_pen(3);
m_fg_tilemap->set_transmask(0, 0xffff, 0x8000); /* split type 0 is completely transparent in front half */
diff --git a/src/mame/drivers/bishi.cpp b/src/mame/drivers/bishi.cpp
index c4759292227..07d62161665 100644
--- a/src/mame/drivers/bishi.cpp
+++ b/src/mame/drivers/bishi.cpp
@@ -466,7 +466,7 @@ void bishi_state::bishi(machine_config &config)
m_palette->enable_hilights();
K056832(config, m_k056832, 0);
- m_k056832->set_tile_callback(FUNC(bishi_state::tile_callback), this);
+ m_k056832->set_tile_callback(FUNC(bishi_state::tile_callback));
m_k056832->set_config(K056832_BPP_8, 1, 0);
m_k056832->set_palette(m_palette);
@@ -489,7 +489,7 @@ void bishi_state::dobouchn(machine_config &config)
{
bishi(config);
// TODO: change accordingly (ASCII charset definitely not 8bpp, 5bpp perhaps?)
-// m_k056832->set_tile_callback(FUNC(bishi_state::dobouchn_tile_callback), this);
+// m_k056832->set_tile_callback(FUNC(bishi_state::dobouchn_tile_callback));
m_k056832->set_config(K056832_BPP_8, 1, 0);
}
diff --git a/src/mame/drivers/blackt96.cpp b/src/mame/drivers/blackt96.cpp
index 16f93b40737..212590a0e9e 100644
--- a/src/mame/drivers/blackt96.cpp
+++ b/src/mame/drivers/blackt96.cpp
@@ -171,7 +171,7 @@ TILE_GET_INFO_MEMBER(blackt96_state::get_tx_tile_info)
void blackt96_state::video_start()
{
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(blackt96_state::get_tx_tile_info),this), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(blackt96_state::get_tx_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
m_tx_tilemap->set_transparent_pen(0);
}
@@ -507,7 +507,7 @@ void blackt96_state::blackt96(machine_config &config)
SNK68_SPR(config, m_sprites, 0);
m_sprites->set_gfxdecode_tag(m_gfxdecode);
- m_sprites->set_tile_indirect_cb(FUNC(blackt96_state::tile_callback), this);
+ m_sprites->set_tile_indirect_cb(FUNC(blackt96_state::tile_callback));
m_sprites->set_no_partial();
m_sprites->set_xpos_shift(12);
m_sprites->set_color_entry_mask(0x7f);
diff --git a/src/mame/drivers/bladestl.cpp b/src/mame/drivers/bladestl.cpp
index 1897ab49c91..490a09ffc21 100644
--- a/src/mame/drivers/bladestl.cpp
+++ b/src/mame/drivers/bladestl.cpp
@@ -331,12 +331,12 @@ void bladestl_state::bladestl(machine_config &config)
K007342(config, m_k007342, 0);
m_k007342->set_gfxnum(0);
- m_k007342->set_tile_callback(FUNC(bladestl_state::bladestl_tile_callback), this);
+ m_k007342->set_tile_callback(FUNC(bladestl_state::bladestl_tile_callback));
m_k007342->set_gfxdecode_tag(m_gfxdecode);
K007420(config, m_k007420, 0);
m_k007420->set_bank_limit(0x3ff);
- m_k007420->set_sprite_callback(FUNC(bladestl_state::bladestl_sprite_callback), this);
+ m_k007420->set_sprite_callback(FUNC(bladestl_state::bladestl_sprite_callback));
m_k007420->set_palette_tag("palette");
K051733(config, "k051733", 0);
diff --git a/src/mame/drivers/blitz68k.cpp b/src/mame/drivers/blitz68k.cpp
index bbaa5301a67..ae737a34b8c 100644
--- a/src/mame/drivers/blitz68k.cpp
+++ b/src/mame/drivers/blitz68k.cpp
@@ -1820,7 +1820,7 @@ void blitz68k_state::cjffruit(machine_config &config)
m_crtc->set_screen("screen");
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(4);
- m_crtc->set_on_update_addr_change_callback(FUNC(blitz68k_state::crtc_addr), this);
+ m_crtc->set_on_update_addr_change_callback(FUNC(blitz68k_state::crtc_addr));
m_crtc->out_vsync_callback().set(FUNC(blitz68k_state::crtc_vsync_irq1));
ramdac_config(config);
@@ -1853,7 +1853,7 @@ void blitz68k_state::bankrob(machine_config &config)
m_crtc->set_screen("screen");
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(4);
- m_crtc->set_on_update_addr_change_callback(FUNC(blitz68k_state::crtc_addr), this);
+ m_crtc->set_on_update_addr_change_callback(FUNC(blitz68k_state::crtc_addr));
m_crtc->out_vsync_callback().set(FUNC(blitz68k_state::crtc_vsync_irq3));
ramdac_config(config);
@@ -1884,7 +1884,7 @@ void blitz68k_state::bankroba(machine_config &config)
m_crtc->set_screen("screen");
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(4);
- m_crtc->set_on_update_addr_change_callback(FUNC(blitz68k_state::crtc_addr), this);
+ m_crtc->set_on_update_addr_change_callback(FUNC(blitz68k_state::crtc_addr));
m_crtc->out_vsync_callback().set(FUNC(blitz68k_state::crtc_vsync_irq5));
ramdac_config(config);
@@ -1914,7 +1914,7 @@ void blitz68k_state::deucesw2(machine_config &config)
m_crtc->set_screen("screen");
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(4);
- m_crtc->set_on_update_addr_change_callback(FUNC(blitz68k_state::crtc_addr), this);
+ m_crtc->set_on_update_addr_change_callback(FUNC(blitz68k_state::crtc_addr));
m_crtc->out_vsync_callback().set(FUNC(blitz68k_state::crtc_vsync_irq3));
ramdac_config(config);
@@ -1946,7 +1946,7 @@ void blitz68k_state::dualgame(machine_config &config)
m_crtc->set_screen("screen");
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(4);
- m_crtc->set_on_update_addr_change_callback(FUNC(blitz68k_state::crtc_addr), this);
+ m_crtc->set_on_update_addr_change_callback(FUNC(blitz68k_state::crtc_addr));
m_crtc->out_vsync_callback().set(FUNC(blitz68k_state::crtc_vsync_irq3));
ramdac_config(config);
@@ -1976,7 +1976,7 @@ void blitz68k_state::hermit(machine_config &config)
m_crtc->set_screen("screen");
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(4);
- m_crtc->set_on_update_addr_change_callback(FUNC(blitz68k_state::crtc_addr), this);
+ m_crtc->set_on_update_addr_change_callback(FUNC(blitz68k_state::crtc_addr));
m_crtc->out_vsync_callback().set(FUNC(blitz68k_state::crtc_vsync_irq1));
ramdac_config(config);
@@ -2010,7 +2010,7 @@ void blitz68k_state::maxidbl(machine_config &config)
m_crtc->set_screen("screen");
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(4);
- m_crtc->set_on_update_addr_change_callback(FUNC(blitz68k_state::crtc_addr), this);
+ m_crtc->set_on_update_addr_change_callback(FUNC(blitz68k_state::crtc_addr));
m_crtc->out_vsync_callback().set(FUNC(blitz68k_state::crtc_vsync_irq3));
ramdac_config(config);
diff --git a/src/mame/drivers/blockade.cpp b/src/mame/drivers/blockade.cpp
index 127c85c951b..5dcb98e9c19 100644
--- a/src/mame/drivers/blockade.cpp
+++ b/src/mame/drivers/blockade.cpp
@@ -443,7 +443,7 @@ const char *const blockade_sample_names[] =
void blockade_state::machine_start()
{
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(blockade_state::tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(blockade_state::tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_vblank_timer = timer_alloc(0);
diff --git a/src/mame/drivers/blockhl.cpp b/src/mame/drivers/blockhl.cpp
index c81c35e66fb..318fba0869f 100644
--- a/src/mame/drivers/blockhl.cpp
+++ b/src/mame/drivers/blockhl.cpp
@@ -306,13 +306,13 @@ void blockhl_state::blockhl(machine_config &config)
K052109(config, m_k052109, 0);
m_k052109->set_palette("palette");
m_k052109->set_screen("screen");
- m_k052109->set_tile_callback(FUNC(blockhl_state::tile_callback), this);
+ m_k052109->set_tile_callback(FUNC(blockhl_state::tile_callback));
m_k052109->irq_handler().set_inputline(m_maincpu, KONAMI_IRQ_LINE);
K051960(config, m_k051960, 0);
m_k051960->set_palette("palette");
m_k051960->set_screen("screen");
- m_k051960->set_sprite_callback(FUNC(blockhl_state::sprite_callback), this);
+ m_k051960->set_sprite_callback(FUNC(blockhl_state::sprite_callback));
// sound hardware
SPEAKER(config, "mono").front_center();
diff --git a/src/mame/drivers/bloodbro.cpp b/src/mame/drivers/bloodbro.cpp
index de5993ef4b8..3971dc8f494 100644
--- a/src/mame/drivers/bloodbro.cpp
+++ b/src/mame/drivers/bloodbro.cpp
@@ -576,7 +576,7 @@ void bloodbro_state::weststry(machine_config &config)
m_audiocpu->set_clock(XTAL(20'000'000)/4); /* 5MHz - verified on PCB */
m_audiocpu->set_addrmap(AS_PROGRAM, &bloodbro_state::weststry_sound_map);
- m_audiocpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate());
+ m_audiocpu->remove_irq_acknowledge_callback();
m_gfxdecode->set_info(gfx_weststry);
m_palette->set_format(palette_device::xBGR_444, 1024);
diff --git a/src/mame/drivers/bmcpokr.cpp b/src/mame/drivers/bmcpokr.cpp
index 6efbc64c122..3904354c1fe 100644
--- a/src/mame/drivers/bmcpokr.cpp
+++ b/src/mame/drivers/bmcpokr.cpp
@@ -126,8 +126,8 @@ TILE_GET_INFO_MEMBER(bmcpokr_state::get_tile_info)
void bmcpokr_state::video_start()
{
- m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(bmcpokr_state::get_tile_info<0>),this),TILEMAP_SCAN_ROWS,8,8,128,128);
- m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(bmcpokr_state::get_tile_info<1>),this),TILEMAP_SCAN_ROWS,8,8,128,128);
+ m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(bmcpokr_state::get_tile_info<0>)), TILEMAP_SCAN_ROWS, 8,8, 128,128);
+ m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(bmcpokr_state::get_tile_info<1>)), TILEMAP_SCAN_ROWS, 8,8, 128,128);
m_tilemap[0]->set_transparent_pen(0);
m_tilemap[1]->set_transparent_pen(0);
diff --git a/src/mame/drivers/bml3.cpp b/src/mame/drivers/bml3.cpp
index a1405f3e7e7..b7d5bafe055 100644
--- a/src/mame/drivers/bml3.cpp
+++ b/src/mame/drivers/bml3.cpp
@@ -766,11 +766,11 @@ void bml3_state::machine_reset()
/* defaults */
mem.install_rom(0xa000, 0xfeff,memregion("maincpu")->base() + 0xa000);
mem.install_rom(0xfff0, 0xffff,memregion("maincpu")->base() + 0xfff0);
- mem.install_write_handler(0xa000, 0xbfff, write8_delegate(FUNC(bml3_state::a000_w), this),0);
- mem.install_write_handler(0xc000, 0xdfff, write8_delegate(FUNC(bml3_state::c000_w), this),0);
- mem.install_write_handler(0xe000, 0xefff, write8_delegate(FUNC(bml3_state::e000_w), this),0);
- mem.install_write_handler(0xf000, 0xfeff, write8_delegate(FUNC(bml3_state::f000_w), this),0);
- mem.install_write_handler(0xfff0, 0xffff, write8_delegate(FUNC(bml3_state::fff0_w), this),0);
+ mem.install_write_handler(0xa000, 0xbfff, write8_delegate(*this, FUNC(bml3_state::a000_w)), 0);
+ mem.install_write_handler(0xc000, 0xdfff, write8_delegate(*this, FUNC(bml3_state::c000_w)), 0);
+ mem.install_write_handler(0xe000, 0xefff, write8_delegate(*this, FUNC(bml3_state::e000_w)), 0);
+ mem.install_write_handler(0xf000, 0xfeff, write8_delegate(*this, FUNC(bml3_state::f000_w)), 0);
+ mem.install_write_handler(0xfff0, 0xffff, write8_delegate(*this, FUNC(bml3_state::fff0_w)), 0);
m_firq_mask = -1; // disable firq
}
@@ -798,16 +798,17 @@ WRITE8_MEMBER(bml3_state::piaA_w)
if(data & 0x40)
{
mem.install_readwrite_handler(0xa000, 0xbfff,
- read8_delegate(FUNC(bml3_state::a000_r), this),
- write8_delegate(FUNC(bml3_state::a000_w), this), 0);
+ read8_delegate(*this, FUNC(bml3_state::a000_r)),
+ write8_delegate(*this, FUNC(bml3_state::a000_w)),
+ 0);
}
else
{
mem.install_rom(0xa000, 0xbfff,
- memregion("maincpu")->base() + 0xa000);
+ memregion("maincpu")->base() + 0xa000);
mem.install_write_handler(0xa000, 0xbfff,
- write8_delegate(FUNC(bml3_state::a000_w), this),
- 0);
+ write8_delegate(*this, FUNC(bml3_state::a000_w)),
+ 0);
}
}
@@ -816,16 +817,17 @@ WRITE8_MEMBER(bml3_state::piaA_w)
if(data & 0x40)
{
mem.install_readwrite_handler(0xc000, 0xdfff,
- read8_delegate(FUNC(bml3_state::c000_r), this),
- write8_delegate(FUNC(bml3_state::c000_w), this), 0);
+ read8_delegate(*this, FUNC(bml3_state::c000_r)),
+ write8_delegate(*this, FUNC(bml3_state::c000_w)),
+ 0);
}
else
{
mem.install_rom(0xc000, 0xdfff,
- memregion("maincpu")->base() + 0xc000);
+ memregion("maincpu")->base() + 0xc000);
mem.install_write_handler(0xc000, 0xdfff,
- write8_delegate(FUNC(bml3_state::c000_w), this),
- 0);
+ write8_delegate(*this, FUNC(bml3_state::c000_w)),
+ 0);
}
}
@@ -834,47 +836,50 @@ WRITE8_MEMBER(bml3_state::piaA_w)
if(data & 0x80)
{
mem.install_readwrite_handler(0xe000, 0xefff,
- read8_delegate(FUNC(bml3_state::e000_r), this),
- write8_delegate(FUNC(bml3_state::e000_w), this), 0);
+ read8_delegate(*this, FUNC(bml3_state::e000_r)),
+ write8_delegate(*this, FUNC(bml3_state::e000_w)),
+ 0);
}
else
{
mem.install_rom(0xe000, 0xefff,
- memregion("maincpu")->base() + 0xe000);
+ memregion("maincpu")->base() + 0xe000);
mem.install_write_handler(0xe000, 0xefff,
- write8_delegate(FUNC(bml3_state::e000_w), this),
- 0);
+ write8_delegate(*this, FUNC(bml3_state::e000_w)),
+ 0);
}
}
if(data & 1)
{
mem.install_readwrite_handler(0xf000, 0xfeff,
- read8_delegate(FUNC(bml3_state::f000_r), this),
- write8_delegate(FUNC(bml3_state::f000_w), this), 0);
+ read8_delegate(*this, FUNC(bml3_state::f000_r)),
+ write8_delegate(*this, FUNC(bml3_state::f000_w)),
+ 0);
}
else
{
mem.install_rom(0xf000, 0xfeff,
- memregion("maincpu")->base() + 0xf000);
+ memregion("maincpu")->base() + 0xf000);
mem.install_write_handler(0xf000, 0xfeff,
- write8_delegate(FUNC(bml3_state::f000_w), this),
- 0);
+ write8_delegate(*this, FUNC(bml3_state::f000_w)),
+ 0);
}
if(data & 2)
{
mem.install_readwrite_handler(0xfff0, 0xffff,
- read8_delegate(FUNC(bml3_state::fff0_r), this),
- write8_delegate(FUNC(bml3_state::fff0_w), this), 0);
+ read8_delegate(*this, FUNC(bml3_state::fff0_r)),
+ write8_delegate(*this, FUNC(bml3_state::fff0_w)),
+ 0);
}
else
{
mem.install_rom(0xfff0, 0xffff,
- memregion("maincpu")->base() + 0xfff0);
+ memregion("maincpu")->base() + 0xfff0);
mem.install_write_handler(0xfff0, 0xffff,
- write8_delegate(FUNC(bml3_state::fff0_w), this),
- 0);
+ write8_delegate(*this, FUNC(bml3_state::fff0_w)),
+ 0);
}
}
@@ -936,7 +941,7 @@ void bml3_state::bml3_common(machine_config &config)
m_crtc->set_screen("screen");
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8);
- m_crtc->set_update_row_callback(FUNC(bml3_state::crtc_update_row), this);
+ m_crtc->set_update_row_callback(FUNC(bml3_state::crtc_update_row));
// fire once per scan of an individual key
// According to the service manual (p.65), the keyboard timer is driven by the horizontal video sync clock.
diff --git a/src/mame/drivers/bnstars.cpp b/src/mame/drivers/bnstars.cpp
index d67b3dbdae7..dd1f1a6c771 100644
--- a/src/mame/drivers/bnstars.cpp
+++ b/src/mame/drivers/bnstars.cpp
@@ -489,28 +489,24 @@ void bnstars_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, co
void bnstars_state::video_start()
{
- m_ms32_tx_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(bnstars_state::get_ms32_tx0_tile_info),this),TILEMAP_SCAN_ROWS, 8, 8,64,64);
- m_ms32_tx_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(bnstars_state::get_ms32_tx1_tile_info),this),TILEMAP_SCAN_ROWS, 8, 8,64,64);
+ m_ms32_tx_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(bnstars_state::get_ms32_tx0_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64,64);
+ m_ms32_tx_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(bnstars_state::get_ms32_tx1_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64,64);
m_ms32_tx_tilemap[0]->set_transparent_pen(0);
m_ms32_tx_tilemap[1]->set_transparent_pen(0);
- m_ms32_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(bnstars_state::get_ms32_bg0_tile_info),this),TILEMAP_SCAN_ROWS,16,16,64,64);
- m_ms32_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(bnstars_state::get_ms32_bg1_tile_info),this),TILEMAP_SCAN_ROWS,16,16,64,64);
+ m_ms32_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(bnstars_state::get_ms32_bg0_tile_info)), TILEMAP_SCAN_ROWS, 16,16, 64,64);
+ m_ms32_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(bnstars_state::get_ms32_bg1_tile_info)), TILEMAP_SCAN_ROWS, 16,16, 64,64);
m_ms32_bg_tilemap[0]->set_transparent_pen(0);
m_ms32_bg_tilemap[1]->set_transparent_pen(0);
- m_ms32_roz_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(bnstars_state::get_ms32_roz0_tile_info),this),TILEMAP_SCAN_ROWS,16,16,128,128);
- m_ms32_roz_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(bnstars_state::get_ms32_roz1_tile_info),this),TILEMAP_SCAN_ROWS,16,16,128,128);
+ m_ms32_roz_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(bnstars_state::get_ms32_roz0_tile_info)),TILEMAP_SCAN_ROWS, 16,16,128,128);
+ m_ms32_roz_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(bnstars_state::get_ms32_roz1_tile_info)),TILEMAP_SCAN_ROWS, 16,16,128,128);
m_ms32_roz_tilemap[0]->set_transparent_pen(0);
m_ms32_roz_tilemap[1]->set_transparent_pen(0);
-
-
}
-
-
uint32_t bnstars_state::screen_update_bnstars_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
screen.priority().fill(0, cliprect);
diff --git a/src/mame/drivers/boogwing.cpp b/src/mame/drivers/boogwing.cpp
index 0e0f17730cd..da4f8945578 100644
--- a/src/mame/drivers/boogwing.cpp
+++ b/src/mame/drivers/boogwing.cpp
@@ -360,7 +360,7 @@ void boogwing_state::boogwing(machine_config &config)
m_deco_tilegen[0]->set_pf1_col_mask(0x0f);
m_deco_tilegen[0]->set_pf2_col_mask(0x0f);
// no bank1 callback
- m_deco_tilegen[0]->set_bank2_callback(FUNC(boogwing_state::bank_callback), this);
+ m_deco_tilegen[0]->set_bank2_callback(FUNC(boogwing_state::bank_callback));
m_deco_tilegen[0]->set_pf12_8x8_bank(0);
m_deco_tilegen[0]->set_pf12_16x16_bank(1);
m_deco_tilegen[0]->set_gfxdecode_tag("gfxdecode");
@@ -374,8 +374,8 @@ void boogwing_state::boogwing(machine_config &config)
m_deco_tilegen[1]->set_pf2_col_bank(16);
m_deco_tilegen[1]->set_pf1_col_mask(0x0f);
m_deco_tilegen[1]->set_pf2_col_mask(0x0f);
- m_deco_tilegen[1]->set_bank1_callback(FUNC(boogwing_state::bank_callback2), this);
- m_deco_tilegen[1]->set_bank2_callback(FUNC(boogwing_state::bank_callback2), this);
+ m_deco_tilegen[1]->set_bank1_callback(FUNC(boogwing_state::bank_callback2));
+ m_deco_tilegen[1]->set_bank2_callback(FUNC(boogwing_state::bank_callback2));
m_deco_tilegen[1]->set_pf12_8x8_bank(0);
m_deco_tilegen[1]->set_pf12_16x16_bank(2);
m_deco_tilegen[1]->set_gfxdecode_tag("gfxdecode");
diff --git a/src/mame/drivers/bottom9.cpp b/src/mame/drivers/bottom9.cpp
index 321a07fe2ad..92f954c9ed4 100644
--- a/src/mame/drivers/bottom9.cpp
+++ b/src/mame/drivers/bottom9.cpp
@@ -321,17 +321,17 @@ void bottom9_state::bottom9(machine_config &config)
K052109(config, m_k052109, 0); // 051961 on schematics
m_k052109->set_palette(m_palette);
m_k052109->set_screen("screen");
- m_k052109->set_tile_callback(FUNC(bottom9_state::tile_callback), this);
+ m_k052109->set_tile_callback(FUNC(bottom9_state::tile_callback));
m_k052109->irq_handler().set_inputline(m_maincpu, M6809_IRQ_LINE);
K051960(config, m_k051960, 0);
m_k051960->set_palette(m_palette);
m_k051960->set_screen("screen");
- m_k051960->set_sprite_callback(FUNC(bottom9_state::sprite_callback), this);
+ m_k051960->set_sprite_callback(FUNC(bottom9_state::sprite_callback));
K051316(config, m_k051316, 0);
m_k051316->set_palette(m_palette);
- m_k051316->set_zoom_callback(FUNC(bottom9_state::zoom_callback), this);
+ m_k051316->set_zoom_callback(FUNC(bottom9_state::zoom_callback));
/* sound hardware */
SPEAKER(config, "mono").front_center();
diff --git a/src/mame/drivers/btime.cpp b/src/mame/drivers/btime.cpp
index 8a7301793ae..43b90ca079d 100644
--- a/src/mame/drivers/btime.cpp
+++ b/src/mame/drivers/btime.cpp
@@ -2042,7 +2042,7 @@ void btime_state::init_protennb()
void btime_state::init_wtennis()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xc15f, 0xc15f, read8_delegate(FUNC(btime_state::wtennis_reset_hack_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xc15f, 0xc15f, read8_delegate(*this, FUNC(btime_state::wtennis_reset_hack_r)));
m_audiocpu->space(AS_PROGRAM).install_read_bank(0x0200, 0x0fff, "bank10");
membank("bank10")->set_base(memregion("audiocpu")->base() + 0xe200);
diff --git a/src/mame/drivers/bw12.cpp b/src/mame/drivers/bw12.cpp
index ddee36e8bfe..afc4676795f 100644
--- a/src/mame/drivers/bw12.cpp
+++ b/src/mame/drivers/bw12.cpp
@@ -559,7 +559,7 @@ void bw12_state::common(machine_config &config)
/* video hardware */
screen_device &screen(SCREEN(config, SCREEN_TAG, SCREEN_TYPE_RASTER, rgb_t::amber()));
screen.set_refresh_hz(60);
- screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); // not accurate
screen.set_screen_update(MC6845_TAG, FUNC(mc6845_device::screen_update));
screen.set_size(640, 200);
screen.set_visarea(0, 640-1, 0, 200-1);
@@ -571,7 +571,7 @@ void bw12_state::common(machine_config &config)
m_crtc->set_screen(SCREEN_TAG);
m_crtc->set_show_border_area(true);
m_crtc->set_char_width(8);
- m_crtc->set_update_row_callback(FUNC(bw12_state::crtc_update_row), this);
+ m_crtc->set_update_row_callback(FUNC(bw12_state::crtc_update_row));
/* sound hardware */
SPEAKER(config, "speaker").front_center();
diff --git a/src/mame/drivers/bzone.cpp b/src/mame/drivers/bzone.cpp
index 09e95802ce4..ccfefcb64e4 100644
--- a/src/mame/drivers/bzone.cpp
+++ b/src/mame/drivers/bzone.cpp
@@ -896,8 +896,8 @@ void bzone_state::init_bradley()
space.install_ram(0x400, 0x7ff);
space.install_read_port(0x1808, 0x1808, "1808");
space.install_read_port(0x1809, 0x1809, "1809");
- space.install_read_handler(0x180a, 0x180a, read8smo_delegate(FUNC(bzone_state::analog_data_r),this));
- space.install_write_handler(0x1848, 0x1850, write8sm_delegate(FUNC(bzone_state::analog_select_w),this));
+ space.install_read_handler(0x180a, 0x180a, read8smo_delegate(*this, FUNC(bzone_state::analog_data_r)));
+ space.install_write_handler(0x1848, 0x1850, write8sm_delegate(*this, FUNC(bzone_state::analog_select_w)));
}
diff --git a/src/mame/drivers/c128.cpp b/src/mame/drivers/c128.cpp
index a0571df460e..0aaf87a0966 100644
--- a/src/mame/drivers/c128.cpp
+++ b/src/mame/drivers/c128.cpp
@@ -1755,7 +1755,7 @@ void c128_state::ntsc(machine_config &config)
m_user->pl_handler().set(FUNC(c128_state::write_user_pb7));
m_user->pm_handler().set(FUNC(c128_state::write_user_pa2));
- QUICKLOAD(config, "quickload", "p00,prg", CBM_QUICKLOAD_DELAY).set_load_callback(FUNC(c128_state::quickload_c128), this);
+ QUICKLOAD(config, "quickload", "p00,prg", CBM_QUICKLOAD_DELAY).set_load_callback(FUNC(c128_state::quickload_c128));
// software list
SOFTWARE_LIST(config, "cart_list_vic10").set_original("vic10").set_filter("NTSC");
@@ -1942,7 +1942,7 @@ void c128_state::pal(machine_config &config)
m_user->pl_handler().set(FUNC(c128_state::write_user_pb7));
m_user->pm_handler().set(FUNC(c128_state::write_user_pa2));
- QUICKLOAD(config, "quickload", "p00,prg", CBM_QUICKLOAD_DELAY).set_load_callback(FUNC(c128_state::quickload_c128), this);
+ QUICKLOAD(config, "quickload", "p00,prg", CBM_QUICKLOAD_DELAY).set_load_callback(FUNC(c128_state::quickload_c128));
// software list
SOFTWARE_LIST(config, "cart_list_vic10").set_original("vic10");
diff --git a/src/mame/drivers/c2color.cpp b/src/mame/drivers/c2color.cpp
index 8eed63b0ed4..a3ebfaa48dd 100644
--- a/src/mame/drivers/c2color.cpp
+++ b/src/mame/drivers/c2color.cpp
@@ -140,7 +140,7 @@ void c2_color_state::c2_color(machine_config &config)
GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "c2color_cart");
m_cart->set_width(GENERIC_ROM16_WIDTH);
- m_cart->set_device_load(FUNC(c2_color_state::cart_load), this);
+ m_cart->set_device_load(FUNC(c2_color_state::cart_load));
SOFTWARE_LIST(config, "cart_list").set_original("c2color_cart");
}
diff --git a/src/mame/drivers/c64.cpp b/src/mame/drivers/c64.cpp
index 0906d5ffa13..da55973cb2e 100644
--- a/src/mame/drivers/c64.cpp
+++ b/src/mame/drivers/c64.cpp
@@ -1536,7 +1536,7 @@ void c64_state::ntsc(machine_config &config)
m_user->pl_handler().set(FUNC(c64_state::write_user_pb7));
m_user->pm_handler().set(FUNC(c64_state::write_user_pa2));
- QUICKLOAD(config, "quickload", "p00,prg,t64", CBM_QUICKLOAD_DELAY).set_load_callback(FUNC(c64_state::quickload_c64), this);
+ QUICKLOAD(config, "quickload", "p00,prg,t64", CBM_QUICKLOAD_DELAY).set_load_callback(FUNC(c64_state::quickload_c64));
// software list
SOFTWARE_LIST(config, "cart_list_vic10").set_original("vic10").set_filter("NTSC");
@@ -1708,7 +1708,7 @@ void c64_state::pal(machine_config &config)
m_user->pl_handler().set(FUNC(c64_state::write_user_pb7));
m_user->pm_handler().set(FUNC(c64_state::write_user_pa2));
- QUICKLOAD(config, "quickload", "p00,prg,t64", CBM_QUICKLOAD_DELAY).set_load_callback(FUNC(c64_state::quickload_c64), this);
+ QUICKLOAD(config, "quickload", "p00,prg,t64", CBM_QUICKLOAD_DELAY).set_load_callback(FUNC(c64_state::quickload_c64));
// software list
SOFTWARE_LIST(config, "cart_list_vic10").set_original("vic10").set_filter("PAL");
@@ -1854,7 +1854,7 @@ void c64gs_state::pal_gs(machine_config &config)
m_user->pl_handler().set(FUNC(c64_state::write_user_pb7));
m_user->pm_handler().set(FUNC(c64_state::write_user_pa2));
- QUICKLOAD(config, "quickload", "p00,prg,t64", CBM_QUICKLOAD_DELAY).set_load_callback(FUNC(c64_state::quickload_c64), this);
+ QUICKLOAD(config, "quickload", "p00,prg,t64", CBM_QUICKLOAD_DELAY).set_load_callback(FUNC(c64_state::quickload_c64));
// software list
SOFTWARE_LIST(config, "cart_list_vic10").set_original("vic10").set_filter("PAL");
diff --git a/src/mame/drivers/cabaret.cpp b/src/mame/drivers/cabaret.cpp
index 1aa0fbd62d0..126c9a7856c 100644
--- a/src/mame/drivers/cabaret.cpp
+++ b/src/mame/drivers/cabaret.cpp
@@ -132,8 +132,8 @@ WRITE8_MEMBER(cabaret_state::fg_color_w)
void cabaret_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cabaret_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cabaret_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cabaret_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cabaret_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_fg_tilemap->set_transparent_pen(0);
m_bg_tilemap->set_scroll_cols(64);
}
diff --git a/src/mame/drivers/calchase.cpp b/src/mame/drivers/calchase.cpp
index 4a53a9e4ecf..c3bfb65cb07 100644
--- a/src/mame/drivers/calchase.cpp
+++ b/src/mame/drivers/calchase.cpp
@@ -690,10 +690,8 @@ void calchase_state::calchase(machine_config &config)
ide.irq_handler().set("pic8259_2", FUNC(pic8259_device::ir6_w));
pci_bus_legacy_device &pcibus(PCI_BUS_LEGACY(config, "pcibus", 0, 0));
- pcibus.set_device_read (0, FUNC(calchase_state::intel82439tx_pci_r), this);
- pcibus.set_device_write(0, FUNC(calchase_state::intel82439tx_pci_w), this);
- pcibus.set_device_read (7, FUNC(calchase_state::intel82371ab_pci_r), this);
- pcibus.set_device_write(7, FUNC(calchase_state::intel82371ab_pci_w), this);
+ pcibus.set_device(0, FUNC(calchase_state::intel82439tx_pci_r), FUNC(calchase_state::intel82439tx_pci_w));
+ pcibus.set_device(7, FUNC(calchase_state::intel82371ab_pci_r), FUNC(calchase_state::intel82371ab_pci_w));
/* video hardware */
pcvideo_trident_vga(config);
@@ -725,10 +723,8 @@ void calchase_state::hostinv(machine_config &config)
ide.irq_handler().set("pic8259_2", FUNC(pic8259_device::ir6_w));
pci_bus_legacy_device &pcibus(PCI_BUS_LEGACY(config, "pcibus", 0, 0));
- pcibus.set_device_read (0, FUNC(calchase_state::intel82439tx_pci_r), this);
- pcibus.set_device_write(0, FUNC(calchase_state::intel82439tx_pci_w), this);
- pcibus.set_device_read (7, FUNC(calchase_state::intel82371ab_pci_r), this);
- pcibus.set_device_write(7, FUNC(calchase_state::intel82371ab_pci_w), this);
+ pcibus.set_device(0, FUNC(calchase_state::intel82439tx_pci_r), FUNC(calchase_state::intel82439tx_pci_w));
+ pcibus.set_device(7, FUNC(calchase_state::intel82371ab_pci_r), FUNC(calchase_state::intel82371ab_pci_w));
/* video hardware */
pcvideo_trident_vga(config);
@@ -763,7 +759,7 @@ void calchase_state::init_calchase()
intel82439tx_init();
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x3f0b160, 0x3f0b163, read32_delegate(FUNC(calchase_state::calchase_idle_skip_r),this), write32_delegate(FUNC(calchase_state::calchase_idle_skip_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x3f0b160, 0x3f0b163, read32_delegate(*this, FUNC(calchase_state::calchase_idle_skip_r)), write32_delegate(*this, FUNC(calchase_state::calchase_idle_skip_w)));
}
void calchase_state::init_hostinv()
diff --git a/src/mame/drivers/calcune.cpp b/src/mame/drivers/calcune.cpp
index 5697e051c79..fba577b3ff1 100644
--- a/src/mame/drivers/calcune.cpp
+++ b/src/mame/drivers/calcune.cpp
@@ -287,8 +287,8 @@ void calcune_state::calcune(machine_config &config)
m_vdp[1]->add_route(ALL_OUTPUTS, "lspeaker", 0.25);
m_vdp[1]->add_route(ALL_OUTPUTS, "rspeaker", 0.25);
- TIMER(config, "scantimer").configure_scanline("gen_vdp1", FUNC(sega315_5313_device::megadriv_scanline_timer_callback_alt_timing), "megadriv", 0, 1);
- TIMER(config, "scantimer2").configure_scanline("gen_vdp2", FUNC(sega315_5313_device::megadriv_scanline_timer_callback_alt_timing), "megadriv", 0, 1);
+ TIMER(config, "scantimer").configure_scanline(m_vdp[0], FUNC(sega315_5313_device::megadriv_scanline_timer_callback_alt_timing), "megadriv", 0, 1);
+ TIMER(config, "scantimer2").configure_scanline(m_vdp[1], FUNC(sega315_5313_device::megadriv_scanline_timer_callback_alt_timing), "megadriv", 0, 1);
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
diff --git a/src/mame/drivers/calorie.cpp b/src/mame/drivers/calorie.cpp
index 41c3028527c..1f6e0346514 100644
--- a/src/mame/drivers/calorie.cpp
+++ b/src/mame/drivers/calorie.cpp
@@ -166,8 +166,8 @@ TILE_GET_INFO_MEMBER(calorie_state::get_fg_tile_info)
void calorie_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(calorie_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 16, 16);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(calorie_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(calorie_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 16, 16);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(calorie_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(0);
}
diff --git a/src/mame/drivers/camplynx.cpp b/src/mame/drivers/camplynx.cpp
index 1376514a64b..4c09e4f8e2b 100644
--- a/src/mame/drivers/camplynx.cpp
+++ b/src/mame/drivers/camplynx.cpp
@@ -895,7 +895,7 @@ void camplynx_state::lynx48k(machine_config &config)
m_crtc->set_screen("screen");
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8);
- m_crtc->set_update_row_callback(FUNC(camplynx_state::lynx48k_update_row), this);
+ m_crtc->set_update_row_callback(FUNC(camplynx_state::lynx48k_update_row));
m_crtc->out_vsync_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
/* software lists */
@@ -944,7 +944,7 @@ void camplynx_state::lynx128k(machine_config &config)
m_crtc->set_screen("screen");
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8);
- m_crtc->set_update_row_callback(FUNC(camplynx_state::lynx128k_update_row), this);
+ m_crtc->set_update_row_callback(FUNC(camplynx_state::lynx128k_update_row));
m_crtc->out_vsync_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
lynx_disk(config);
diff --git a/src/mame/drivers/cardline.cpp b/src/mame/drivers/cardline.cpp
index 89d4dc1c19b..bad735186f5 100644
--- a/src/mame/drivers/cardline.cpp
+++ b/src/mame/drivers/cardline.cpp
@@ -362,8 +362,8 @@ void cardline_state::cardline(machine_config &config)
crtc.set_screen("screen");
crtc.set_show_border_area(false);
crtc.set_char_width(8);
- crtc.set_begin_update_callback(FUNC(cardline_state::crtc_begin_update), this);
- crtc.set_update_row_callback(FUNC(cardline_state::crtc_update_row), this);
+ crtc.set_begin_update_callback(FUNC(cardline_state::crtc_begin_update));
+ crtc.set_update_row_callback(FUNC(cardline_state::crtc_update_row));
crtc.out_hsync_callback().set(FUNC(cardline_state::hsync_changed));
crtc.out_vsync_callback().set(FUNC(cardline_state::vsync_changed));
diff --git a/src/mame/drivers/carjmbre.cpp b/src/mame/drivers/carjmbre.cpp
index 4f41fa0d45a..0c7e19c8e9c 100644
--- a/src/mame/drivers/carjmbre.cpp
+++ b/src/mame/drivers/carjmbre.cpp
@@ -169,7 +169,7 @@ TILE_GET_INFO_MEMBER(carjmbre_state::get_tile_info)
void carjmbre_state::video_start()
{
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(carjmbre_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(carjmbre_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_tilemap->set_transparent_pen(0);
}
diff --git a/src/mame/drivers/casloopy.cpp b/src/mame/drivers/casloopy.cpp
index e189a822b63..f1529712729 100644
--- a/src/mame/drivers/casloopy.cpp
+++ b/src/mame/drivers/casloopy.cpp
@@ -544,7 +544,7 @@ void casloopy_state::casloopy(machine_config &config)
cartslot.set_width(GENERIC_ROM32_WIDTH);
cartslot.set_endian(ENDIANNESS_LITTLE);
cartslot.set_must_be_loaded(true);
- cartslot.set_device_load(FUNC(casloopy_state::cart_load), this);
+ cartslot.set_device_load(FUNC(casloopy_state::cart_load));
/* software lists */
SOFTWARE_LIST(config, "cart_list").set_original("casloopy");
diff --git a/src/mame/drivers/caswin.cpp b/src/mame/drivers/caswin.cpp
index 06e4c1cac33..3dbefa88cac 100644
--- a/src/mame/drivers/caswin.cpp
+++ b/src/mame/drivers/caswin.cpp
@@ -132,7 +132,7 @@ TILE_GET_INFO_MEMBER(caswin_state::get_sc0_tile_info)
void caswin_state::video_start()
{
m_lamps.resolve();
- m_sc0_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(caswin_state::get_sc0_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32);
+ m_sc0_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(caswin_state::get_sc0_tile_info)), TILEMAP_SCAN_ROWS, 8,8,32,32);
}
uint32_t caswin_state::screen_update_vvillage(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
diff --git a/src/mame/drivers/cat.cpp b/src/mame/drivers/cat.cpp
index d1ed24efad5..0c5e7979b10 100644
--- a/src/mame/drivers/cat.cpp
+++ b/src/mame/drivers/cat.cpp
@@ -919,7 +919,7 @@ TIMER_CALLBACK_MEMBER(cat_state::counter_6ms_callback)
void cat_state::cpu_space_map(address_map &map)
{
map(0xfffff0, 0xffffff).m(m_maincpu, FUNC(m68000_base_device::autovectors_map));
- map(0xfffff3, 0xfffff3).lr8("interrupt 1", [this]() { m_maincpu->set_input_line(1, CLEAR_LINE); return m68000_device::autovector(1); });
+ map(0xfffff3, 0xfffff3).lr8(NAME([this]() { m_maincpu->set_input_line(1, CLEAR_LINE); return m68000_device::autovector(1); }));
}
MACHINE_START_MEMBER(cat_state,cat)
diff --git a/src/mame/drivers/cave.cpp b/src/mame/drivers/cave.cpp
index 89e36b424a8..49fcd7371fc 100644
--- a/src/mame/drivers/cave.cpp
+++ b/src/mame/drivers/cave.cpp
@@ -2501,7 +2501,7 @@ void cave_state::sailormn(machine_config &config)
m_screen[0]->set_visarea(0+1, 320+1-1, 0, 240-1);
/* Layer 2 (8x8) needs to be handled differently */
- m_tilemap[2]->set_tile_callback(tilemap038_device::tmap038_cb_delegate(FUNC(cave_state::sailormn_get_banked_code), this)); /* Layer 2 has 1 banked ROM */
+ m_tilemap[2]->set_tile_callback(FUNC(cave_state::sailormn_get_banked_code)); /* Layer 2 has 1 banked ROM */
GFXDECODE(config, m_gfxdecode[0], m_palette[0], gfx_sailormn); // 4 bit sprites, 6 bit tiles
m_palette[0]->set_entries(0x4000/2);
diff --git a/src/mame/drivers/cb2001.cpp b/src/mame/drivers/cb2001.cpp
index 669049d97d4..9d5921bc600 100644
--- a/src/mame/drivers/cb2001.cpp
+++ b/src/mame/drivers/cb2001.cpp
@@ -539,9 +539,9 @@ TILE_GET_INFO_MEMBER(cb2001_state::get_cb2001_reel3_tile_info)
void cb2001_state::video_start()
{
- m_reel1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cb2001_state::get_cb2001_reel1_tile_info),this),TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
- m_reel2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cb2001_state::get_cb2001_reel2_tile_info),this),TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
- m_reel3_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cb2001_state::get_cb2001_reel3_tile_info),this),TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
+ m_reel1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cb2001_state::get_cb2001_reel1_tile_info)), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
+ m_reel2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cb2001_state::get_cb2001_reel2_tile_info)), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
+ m_reel3_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cb2001_state::get_cb2001_reel3_tile_info)), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
m_reel1_tilemap->set_scroll_cols(64);
m_reel2_tilemap->set_scroll_cols(64);
diff --git a/src/mame/drivers/cball.cpp b/src/mame/drivers/cball.cpp
index 38d9d82e31c..f0c8e1cc731 100644
--- a/src/mame/drivers/cball.cpp
+++ b/src/mame/drivers/cball.cpp
@@ -82,7 +82,7 @@ WRITE8_MEMBER(cball_state::vram_w)
void cball_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cball_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cball_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
diff --git a/src/mame/drivers/cbm2.cpp b/src/mame/drivers/cbm2.cpp
index 8fef6b51a6e..cdfe8850ea5 100644
--- a/src/mame/drivers/cbm2.cpp
+++ b/src/mame/drivers/cbm2.cpp
@@ -2361,7 +2361,7 @@ void p500_state::p500_ntsc(machine_config &config)
rs232.dsr_handler().set(m_acia, FUNC(mos6551_device::write_dsr));
rs232.cts_handler().set(m_acia, FUNC(mos6551_device::write_cts));
- QUICKLOAD(config, "quickload", "p00,prg", CBM_QUICKLOAD_DELAY).set_load_callback(FUNC(p500_state::quickload_p500), this);
+ QUICKLOAD(config, "quickload", "p00,prg", CBM_QUICKLOAD_DELAY).set_load_callback(FUNC(p500_state::quickload_p500));
// internal ram
_128k(config);
@@ -2492,7 +2492,7 @@ void p500_state::p500_pal(machine_config &config)
rs232.dsr_handler().set(m_acia, FUNC(mos6551_device::write_dsr));
rs232.cts_handler().set(m_acia, FUNC(mos6551_device::write_cts));
- QUICKLOAD(config, "quickload", "p00,prg", CBM_QUICKLOAD_DELAY).set_load_callback(FUNC(p500_state::quickload_p500), this);
+ QUICKLOAD(config, "quickload", "p00,prg", CBM_QUICKLOAD_DELAY).set_load_callback(FUNC(p500_state::quickload_p500));
// internal ram
_128k(config);
@@ -2535,7 +2535,7 @@ void cbm2_state::cbm2lp_ntsc(machine_config &config)
m_crtc->set_screen(SCREEN_TAG);
m_crtc->set_show_border_area(true);
m_crtc->set_char_width(9);
- m_crtc->set_update_row_callback(FUNC(cbm2_state::crtc_update_row), this);
+ m_crtc->set_update_row_callback(FUNC(cbm2_state::crtc_update_row));
// sound hardware
SPEAKER(config, "mono").front_center();
@@ -2622,7 +2622,7 @@ void cbm2_state::cbm2lp_ntsc(machine_config &config)
rs232.dsr_handler().set(m_acia, FUNC(mos6551_device::write_dsr));
rs232.cts_handler().set(m_acia, FUNC(mos6551_device::write_cts));
- QUICKLOAD(config, "quickload", "p00,prg,t64", CBM_QUICKLOAD_DELAY).set_load_callback(FUNC(cbm2_state::quickload_cbmb), this);
+ QUICKLOAD(config, "quickload", "p00,prg,t64", CBM_QUICKLOAD_DELAY).set_load_callback(FUNC(cbm2_state::quickload_cbmb));
// software list
SOFTWARE_LIST(config, "cart_list").set_original("cbm2_cart").set_filter("NTSC");
diff --git a/src/mame/drivers/cbuster.cpp b/src/mame/drivers/cbuster.cpp
index 67c8d2efc10..54b1c83bbf6 100644
--- a/src/mame/drivers/cbuster.cpp
+++ b/src/mame/drivers/cbuster.cpp
@@ -117,7 +117,7 @@ void cbuster_state::main_map(address_map &map)
map(0x0bc002, 0x0bc003).portr("DSW");
map(0x0bc002, 0x0bc003).w(m_soundlatch, FUNC(generic_latch_8_device::write)).umask16(0x00ff).cswidth(16);
map(0x0bc004, 0x0bc005).rw(FUNC(cbuster_state::prot_r), FUNC(cbuster_state::prot_w));
- map(0x0bc006, 0x0bc007).portr("COINS").lw16("irq_ack_w", [this](u16 data) { m_maincpu->set_input_line(4, CLEAR_LINE); });
+ map(0x0bc006, 0x0bc007).portr("COINS").lw16(NAME([this] (u16 data) { m_maincpu->set_input_line(4, CLEAR_LINE); }));
}
@@ -292,8 +292,8 @@ void cbuster_state::twocrude(machine_config &config)
m_deco_tilegen[0]->set_pf2_col_bank(0x20);
m_deco_tilegen[0]->set_pf1_col_mask(0x0f);
m_deco_tilegen[0]->set_pf2_col_mask(0x0f);
- m_deco_tilegen[0]->set_bank1_callback(FUNC(cbuster_state::bank_callback), this);
- m_deco_tilegen[0]->set_bank2_callback(FUNC(cbuster_state::bank_callback), this);
+ m_deco_tilegen[0]->set_bank1_callback(FUNC(cbuster_state::bank_callback));
+ m_deco_tilegen[0]->set_bank2_callback(FUNC(cbuster_state::bank_callback));
m_deco_tilegen[0]->set_pf12_8x8_bank(0);
m_deco_tilegen[0]->set_pf12_16x16_bank(1);
m_deco_tilegen[0]->set_gfxdecode_tag("gfxdecode");
@@ -307,8 +307,8 @@ void cbuster_state::twocrude(machine_config &config)
m_deco_tilegen[1]->set_pf2_col_bank(0x40);
m_deco_tilegen[1]->set_pf1_col_mask(0x0f);
m_deco_tilegen[1]->set_pf2_col_mask(0x0f);
- m_deco_tilegen[1]->set_bank1_callback(FUNC(cbuster_state::bank_callback), this);
- m_deco_tilegen[1]->set_bank2_callback(FUNC(cbuster_state::bank_callback), this);
+ m_deco_tilegen[1]->set_bank1_callback(FUNC(cbuster_state::bank_callback));
+ m_deco_tilegen[1]->set_bank2_callback(FUNC(cbuster_state::bank_callback));
m_deco_tilegen[1]->set_pf12_8x8_bank(0);
m_deco_tilegen[1]->set_pf12_16x16_bank(2);
m_deco_tilegen[1]->set_gfxdecode_tag("gfxdecode");
diff --git a/src/mame/drivers/cc40.cpp b/src/mame/drivers/cc40.cpp
index 5fbdd2a4548..bbeeda6e490 100644
--- a/src/mame/drivers/cc40.cpp
+++ b/src/mame/drivers/cc40.cpp
@@ -611,7 +611,7 @@ void cc40_state::cc40(machine_config &config)
hd44780_device &hd44780(HD44780(config, "hd44780", 0));
hd44780.set_lcd_size(2, 16); // 2*16 internal
- hd44780.set_pixel_update_cb(FUNC(cc40_state::cc40_pixel_update), this);
+ hd44780.set_pixel_update_cb(FUNC(cc40_state::cc40_pixel_update));
/* sound hardware */
SPEAKER(config, "speaker").front_center();
@@ -619,7 +619,7 @@ void cc40_state::cc40(machine_config &config)
VOLTAGE_REGULATOR(config, "vref").add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
/* cartridge */
- GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "cc40_cart", "bin,rom,256").set_device_load(FUNC(cc40_state::cart_load), this);
+ GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "cc40_cart", "bin,rom,256").set_device_load(FUNC(cc40_state::cart_load));
SOFTWARE_LIST(config, "cart_list").set_original("cc40_cart");
}
diff --git a/src/mame/drivers/cd2650.cpp b/src/mame/drivers/cd2650.cpp
index af87e1fea82..bf87f5fd199 100644
--- a/src/mame/drivers/cd2650.cpp
+++ b/src/mame/drivers/cd2650.cpp
@@ -341,7 +341,7 @@ void cd2650_state::cd2650(machine_config &config)
PALETTE(config, "palette", palette_device::MONOCHROME);
/* quickload */
- QUICKLOAD(config, "quickload", "pgm", attotime::from_seconds(1)).set_load_callback(FUNC(cd2650_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "pgm", attotime::from_seconds(1)).set_load_callback(FUNC(cd2650_state::quickload_cb));
/* Sound */
SPEAKER(config, "mono").front_center();
diff --git a/src/mame/drivers/cgc7900.cpp b/src/mame/drivers/cgc7900.cpp
index e7febbdd3a6..d1379fda0a1 100644
--- a/src/mame/drivers/cgc7900.cpp
+++ b/src/mame/drivers/cgc7900.cpp
@@ -235,7 +235,7 @@ WRITE16_MEMBER( cgc7900_state::interrupt_mask_w )
void cgc7900_state::cpu_space_map(address_map &map)
{
- map(0xfffff2, 0xffffff).lr16("interrupt", [] (offs_t offset) -> u16 { return int_vectors[offset+1]; });
+ map(0xfffff2, 0xffffff).lr16(NAME([] (offs_t offset) -> u16 { return int_vectors[offset + 1]; }));
}
void cgc7900_state::irq_encoder(int pin, int state)
diff --git a/src/mame/drivers/cgenie.cpp b/src/mame/drivers/cgenie.cpp
index 172e929880d..fc33270e48e 100644
--- a/src/mame/drivers/cgenie.cpp
+++ b/src/mame/drivers/cgenie.cpp
@@ -34,8 +34,8 @@
class cgenie_state : public driver_device
{
public:
- cgenie_state(const machine_config &mconfig, device_type type, const char *tag)
- : driver_device(mconfig, type, tag),
+ cgenie_state(const machine_config &mconfig, device_type type, const char *tag) :
+ driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"),
m_cassette(*this, "cassette"),
m_ram(*this, RAM_TAG),
@@ -50,7 +50,7 @@ public:
m_control(0xff),
m_rs232_rx(1),
m_rs232_dcd(1)
- {}
+ { }
void init_cgenie_eu();
void init_cgenie_nz();
@@ -450,8 +450,8 @@ void cgenie_state::cgenie(machine_config &config)
m_crtc->set_screen("screen");
m_crtc->set_show_border_area(true);
m_crtc->set_char_width(8);
- m_crtc->set_begin_update_callback(FUNC(cgenie_state::crtc_begin_update), this);
- m_crtc->set_update_row_callback(FUNC(cgenie_state::crtc_update_row), this);
+ m_crtc->set_begin_update_callback(FUNC(cgenie_state::crtc_begin_update));
+ m_crtc->set_update_row_callback(FUNC(cgenie_state::crtc_update_row));
// sound hardware
SPEAKER(config, "mono").front_center();
diff --git a/src/mame/drivers/cham24.cpp b/src/mame/drivers/cham24.cpp
index 5255faf3b66..a314148a724 100644
--- a/src/mame/drivers/cham24.cpp
+++ b/src/mame/drivers/cham24.cpp
@@ -281,7 +281,7 @@ void cham24_state::machine_reset()
m_nt_page[3] = m_nt_ram.get() + 0xc00;
/* and read/write handlers */
- m_ppu->space(AS_PROGRAM).install_readwrite_handler(0x2000, 0x3eff,read8_delegate(FUNC(cham24_state::nt_r), this), write8_delegate(FUNC(cham24_state::nt_w), this));
+ m_ppu->space(AS_PROGRAM).install_readwrite_handler(0x2000, 0x3eff, read8_delegate(*this, FUNC(cham24_state::nt_r)), write8_delegate(*this, FUNC(cham24_state::nt_w)));
}
void cham24_state::init_cham24()
diff --git a/src/mame/drivers/chanbara.cpp b/src/mame/drivers/chanbara.cpp
index feac1e17267..b263d277dd1 100644
--- a/src/mame/drivers/chanbara.cpp
+++ b/src/mame/drivers/chanbara.cpp
@@ -176,8 +176,8 @@ TILE_GET_INFO_MEMBER(chanbara_state::get_bg2_tile_info)
void chanbara_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(chanbara_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS,8, 8, 32, 32);
- m_bg2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(chanbara_state::get_bg2_tile_info),this), TILEMAP_SCAN_ROWS,16, 16, 16, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(chanbara_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS,8, 8, 32, 32);
+ m_bg2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(chanbara_state::get_bg2_tile_info)), TILEMAP_SCAN_ROWS,16, 16, 16, 32);
m_bg_tilemap->set_transparent_pen(0);
}
diff --git a/src/mame/drivers/chance32.cpp b/src/mame/drivers/chance32.cpp
index ed07e57eab8..33760a6f887 100644
--- a/src/mame/drivers/chance32.cpp
+++ b/src/mame/drivers/chance32.cpp
@@ -108,10 +108,10 @@ TILE_GET_INFO_MEMBER(chance32_state::get_bg_tile_info)
void chance32_state::video_start()
{
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(chance32_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 8, 35, 29);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(chance32_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 16, 8, 35, 29);
m_fg_tilemap->set_transparent_pen(0);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(chance32_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 8, 35, 29);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(chance32_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 8, 35, 29);
m_fg_tilemap->set_flip(TILE_FLIPX|TILE_FLIPY);
m_bg_tilemap->set_flip(TILE_FLIPX|TILE_FLIPY);
diff --git a/src/mame/drivers/channelf.cpp b/src/mame/drivers/channelf.cpp
index 529a911e10d..09979a0782c 100644
--- a/src/mame/drivers/channelf.cpp
+++ b/src/mame/drivers/channelf.cpp
@@ -168,18 +168,18 @@ void channelf_state::machine_start()
switch (m_cart->get_type())
{
case CF_MAZE:
- m_maincpu->space(AS_IO).install_readwrite_handler(0x24, 0x25, read8_delegate(FUNC(channelf_cart_slot_device::read_ram),(channelf_cart_slot_device*)m_cart), write8_delegate(FUNC(channelf_cart_slot_device::write_ram),(channelf_cart_slot_device*)m_cart));
+ m_maincpu->space(AS_IO).install_readwrite_handler(0x24, 0x25, read8_delegate(*m_cart, FUNC(channelf_cart_slot_device::read_ram)), write8_delegate(*m_cart, FUNC(channelf_cart_slot_device::write_ram)));
break;
case CF_HANGMAN:
- m_maincpu->space(AS_IO).install_readwrite_handler(0x20, 0x21, read8_delegate(FUNC(channelf_cart_slot_device::read_ram),(channelf_cart_slot_device*)m_cart), write8_delegate(FUNC(channelf_cart_slot_device::write_ram),(channelf_cart_slot_device*)m_cart));
+ m_maincpu->space(AS_IO).install_readwrite_handler(0x20, 0x21, read8_delegate(*m_cart, FUNC(channelf_cart_slot_device::read_ram)), write8_delegate(*m_cart, FUNC(channelf_cart_slot_device::write_ram)));
break;
case CF_CHESS:
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x2800, 0x2fff, read8_delegate(FUNC(channelf_cart_slot_device::read_ram),(channelf_cart_slot_device*)m_cart), write8_delegate(FUNC(channelf_cart_slot_device::write_ram),(channelf_cart_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x2800, 0x2fff, read8_delegate(*m_cart, FUNC(channelf_cart_slot_device::read_ram)), write8_delegate(*m_cart, FUNC(channelf_cart_slot_device::write_ram)));
break;
case CF_MULTI:
case CF_MULTI_OLD:
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x2800, 0x2fff, read8_delegate(FUNC(channelf_cart_slot_device::read_ram),(channelf_cart_slot_device*)m_cart), write8_delegate(FUNC(channelf_cart_slot_device::write_ram),(channelf_cart_slot_device*)m_cart));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x3000, 0x3fff, write8_delegate(FUNC(channelf_cart_slot_device::write_bank),(channelf_cart_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x2800, 0x2fff, read8_delegate(*m_cart, FUNC(channelf_cart_slot_device::read_ram)), write8_delegate(*m_cart, FUNC(channelf_cart_slot_device::write_ram)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x3000, 0x3fff, write8_delegate(*m_cart, FUNC(channelf_cart_slot_device::write_bank)));
break;
}
diff --git a/src/mame/drivers/chinagat.cpp b/src/mame/drivers/chinagat.cpp
index 398d4578ec9..82ee3379f5d 100644
--- a/src/mame/drivers/chinagat.cpp
+++ b/src/mame/drivers/chinagat.cpp
@@ -309,8 +309,8 @@ void chinagat_state::video_start()
{
ddragon_state::video_start();
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(chinagat_state::get_bg_tile_info),this),tilemap_mapper_delegate(FUNC(chinagat_state::background_scan),this), 16, 16, 32, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(chinagat_state::get_fg_16color_tile_info),this),TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(chinagat_state::get_bg_tile_info)), tilemap_mapper_delegate(*this, FUNC(chinagat_state::background_scan)), 16, 16, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(chinagat_state::get_fg_16color_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(0);
m_fg_tilemap->set_scrolldy(-8, -8);
diff --git a/src/mame/drivers/chinsan.cpp b/src/mame/drivers/chinsan.cpp
index e6ddc7b5e71..3c659aa1e8e 100644
--- a/src/mame/drivers/chinsan.cpp
+++ b/src/mame/drivers/chinsan.cpp
@@ -468,7 +468,7 @@ WRITE8_MEMBER( chinsan_state::ctrl_w )
void chinsan_state::machine_start()
{
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(chinsan_state::tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(chinsan_state::tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_bank1->configure_entries(0, 4, memregion("maincpu")->base() + 0x8000, 0x4000);
diff --git a/src/mame/drivers/chqflag.cpp b/src/mame/drivers/chqflag.cpp
index ee63dabf483..0a55ecf795d 100644
--- a/src/mame/drivers/chqflag.cpp
+++ b/src/mame/drivers/chqflag.cpp
@@ -345,7 +345,7 @@ void chqflag_state::chqflag(machine_config &config)
K051960(config, m_k051960, 0);
m_k051960->set_palette(m_palette);
m_k051960->set_screen("screen");
- m_k051960->set_sprite_callback(FUNC(chqflag_state::sprite_callback), this);
+ m_k051960->set_sprite_callback(FUNC(chqflag_state::sprite_callback));
m_k051960->irq_handler().set_inputline(m_maincpu, KONAMI_IRQ_LINE);
m_k051960->nmi_handler().set_inputline(m_maincpu, INPUT_LINE_NMI);
m_k051960->vreg_contrast_handler().set(FUNC(chqflag_state::background_brt_w));
@@ -353,14 +353,14 @@ void chqflag_state::chqflag(machine_config &config)
K051316(config, m_k051316[0], 0);
m_k051316[0]->set_palette(m_palette);
m_k051316[0]->set_offsets(7, 0);
- m_k051316[0]->set_zoom_callback(FUNC(chqflag_state::zoom_callback_1), this);
+ m_k051316[0]->set_zoom_callback(FUNC(chqflag_state::zoom_callback_1));
K051316(config, m_k051316[1], 0);
m_k051316[1]->set_palette(m_palette);
m_k051316[1]->set_bpp(8);
m_k051316[1]->set_layermask(0xc0);
m_k051316[1]->set_wrap(1);
- m_k051316[1]->set_zoom_callback(FUNC(chqflag_state::zoom_callback_2), this);
+ m_k051316[1]->set_zoom_callback(FUNC(chqflag_state::zoom_callback_2));
K051733(config, "k051733", 0);
diff --git a/src/mame/drivers/cinemat.cpp b/src/mame/drivers/cinemat.cpp
index 820f929e2f8..20c0b4d0ea4 100644
--- a/src/mame/drivers/cinemat.cpp
+++ b/src/mame/drivers/cinemat.cpp
@@ -1499,21 +1499,21 @@ ROM_END
void cinemat_state::init_speedfrk()
{
m_gear = 0xe;
- m_maincpu->space(AS_IO).install_read_handler(0x00, 0x03, read8_delegate(FUNC(cinemat_state::speedfrk_wheel_r),this));
- m_maincpu->space(AS_IO).install_read_handler(0x04, 0x06, read8_delegate(FUNC(cinemat_state::speedfrk_gear_r),this));
+ m_maincpu->space(AS_IO).install_read_handler(0x00, 0x03, read8_delegate(*this, FUNC(cinemat_state::speedfrk_wheel_r)));
+ m_maincpu->space(AS_IO).install_read_handler(0x04, 0x06, read8_delegate(*this, FUNC(cinemat_state::speedfrk_gear_r)));
save_item(NAME(m_gear));
}
void cinemat_16level_state::init_sundance()
{
- m_maincpu->space(AS_IO).install_read_handler(0x00, 0x0f, read8_delegate(FUNC(cinemat_16level_state::sundance_inputs_r),this));
+ m_maincpu->space(AS_IO).install_read_handler(0x00, 0x0f, read8_delegate(*this, FUNC(cinemat_16level_state::sundance_inputs_r)));
}
void cinemat_color_state::init_boxingb()
{
- m_maincpu->space(AS_IO).install_read_handler(0x0c, 0x0f, read8_delegate(FUNC(cinemat_color_state::boxingb_dial_r),this));
+ m_maincpu->space(AS_IO).install_read_handler(0x0c, 0x0f, read8_delegate(*this, FUNC(cinemat_color_state::boxingb_dial_r)));
}
diff --git a/src/mame/drivers/cischeat.cpp b/src/mame/drivers/cischeat.cpp
index d7961cd0fb1..aca6f21c8cc 100644
--- a/src/mame/drivers/cischeat.cpp
+++ b/src/mame/drivers/cischeat.cpp
@@ -2205,8 +2205,8 @@ void captflag_state::captflag(machine_config &config)
MEGASYS1_TILEMAP(config, m_tmap[2], m_palette, 0x4e00/2);
// Motors
- TIMER(config, m_motor_left).configure_generic(timer_device::expired_delegate());
- TIMER(config, m_motor_right).configure_generic(timer_device::expired_delegate());
+ TIMER(config, m_motor_left).configure_generic(nullptr);
+ TIMER(config, m_motor_right).configure_generic(nullptr);
// Layout
config.set_default_layout(layout_captflag);
diff --git a/src/mame/drivers/clickstart.cpp b/src/mame/drivers/clickstart.cpp
index 2c24ae2f63c..ac5fcb27a00 100644
--- a/src/mame/drivers/clickstart.cpp
+++ b/src/mame/drivers/clickstart.cpp
@@ -423,7 +423,7 @@ void clickstart_state::clickstart(machine_config &config)
GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "clickstart_cart");
m_cart->set_width(GENERIC_ROM16_WIDTH);
- m_cart->set_device_load(FUNC(clickstart_state::cart_load), this);
+ m_cart->set_device_load(FUNC(clickstart_state::cart_load));
SOFTWARE_LIST(config, "cart_list").set_original("clickstart_cart");
}
diff --git a/src/mame/drivers/clpoker.cpp b/src/mame/drivers/clpoker.cpp
index 372c788d257..d2c34eee812 100644
--- a/src/mame/drivers/clpoker.cpp
+++ b/src/mame/drivers/clpoker.cpp
@@ -220,8 +220,8 @@ WRITE8_MEMBER(clpoker_state::videoram_w)
void clpoker_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(clpoker_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(clpoker_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(clpoker_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(clpoker_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_fg_tilemap->set_transparent_pen(0);
m_nmi_enable = false;
diff --git a/src/mame/drivers/cmi.cpp b/src/mame/drivers/cmi.cpp
index 48617b5d569..db1adbf9dd8 100644
--- a/src/mame/drivers/cmi.cpp
+++ b/src/mame/drivers/cmi.cpp
@@ -1265,7 +1265,7 @@ void cmi_state::install_video_ram(int cpunum)
{
address_space *space = (cpunum == CPU_1 ? m_cpu1space : m_cpu2space);
- space->install_readwrite_handler(0x8000, 0xbfff, read8_delegate(FUNC(cmi_state::vram_r),this), write8_delegate(FUNC(cmi_state::vram_w),this));
+ space->install_readwrite_handler(0x8000, 0xbfff, read8_delegate(*this, FUNC(cmi_state::vram_r)), write8_delegate(*this, FUNC(cmi_state::vram_w)));
}
WRITE8_MEMBER( cmi_state::i8214_cpu1_w )
@@ -1302,54 +1302,57 @@ void cmi_state::install_peripherals(int cpunum)
{
address_space *space = (cpunum == CPU_1 ? m_cpu1space : m_cpu2space);
- space->install_readwrite_handler(0xe000, 0xe03f, read8_delegate(FUNC(cmi_state::cmi02_r),this), write8_delegate(FUNC(cmi_state::cmi02_w),this));
+ space->install_readwrite_handler(0xe000, 0xe03f, read8_delegate(*this, FUNC(cmi_state::cmi02_r)), write8_delegate(*this, FUNC(cmi_state::cmi02_w)));
if (cpunum)
- space->install_readwrite_handler(0xf000, 0xf7ff, read8_delegate(FUNC(cmi_state::rom_r<1>),this), write8_delegate(FUNC(cmi_state::map_ram_w),this));
+ space->install_readwrite_handler(0xf000, 0xf7ff, read8_delegate(*this, FUNC(cmi_state::rom_r<1>)), write8_delegate(*this, FUNC(cmi_state::map_ram_w)));
else
- space->install_readwrite_handler(0xf000, 0xf7ff, read8_delegate(FUNC(cmi_state::rom_r<0>),this), write8_delegate(FUNC(cmi_state::map_ram_w),this));
+ space->install_readwrite_handler(0xf000, 0xf7ff, read8_delegate(*this, FUNC(cmi_state::rom_r<0>)), write8_delegate(*this, FUNC(cmi_state::map_ram_w)));
space->install_rom(0xf800, 0xfbff, m_q133_rom + (cpunum == CPU_2 ? 0x1800 : 0x2800));
- space->install_readwrite_handler(0xfc40, 0xfc4f, read8_delegate(FUNC(cmi_state::parity_r),this), write8_delegate(FUNC(cmi_state::mapsel_w),this));
+ space->install_readwrite_handler(0xfc40, 0xfc4f, read8_delegate(*this, FUNC(cmi_state::parity_r)), write8_delegate(*this, FUNC(cmi_state::mapsel_w)));
space->nop_readwrite(0xfc5a, 0xfc5b); // Q077 HDD controller - not installed
- space->install_readwrite_handler(0xfc5e, 0xfc5e, read8_delegate(FUNC(cmi_state::atomic_r),this), write8_delegate(FUNC(cmi_state::cpufunc_w),this));
+ space->install_readwrite_handler(0xfc5e, 0xfc5e, read8_delegate(*this, FUNC(cmi_state::atomic_r)), write8_delegate(*this, FUNC(cmi_state::cpufunc_w)));
if (cpunum)
- space->install_readwrite_handler(0xfc5f, 0xfc5f, read8_delegate(FUNC(cmi_state::map_r<1>),this), write8_delegate(FUNC(cmi_state::map_w<1>),this));
+ space->install_readwrite_handler(0xfc5f, 0xfc5f, read8_delegate(*this, FUNC(cmi_state::map_r<1>)), write8_delegate(*this, FUNC(cmi_state::map_w<1>)));
else
- space->install_readwrite_handler(0xfc5f, 0xfc5f, read8_delegate(FUNC(cmi_state::map_r<0>),this), write8_delegate(FUNC(cmi_state::map_w<0>),this));
+ space->install_readwrite_handler(0xfc5f, 0xfc5f, read8_delegate(*this, FUNC(cmi_state::map_r<0>)), write8_delegate(*this, FUNC(cmi_state::map_w<0>)));
- space->install_readwrite_handler(0xfc80, 0xfc83, read8sm_delegate(FUNC(mos6551_device::read),m_q133_acia[0].target()), write8sm_delegate(FUNC(mos6551_device::write),m_q133_acia[0].target()));
- space->install_readwrite_handler(0xfc84, 0xfc87, read8sm_delegate(FUNC(mos6551_device::read),m_q133_acia[1].target()), write8sm_delegate(FUNC(mos6551_device::write),m_q133_acia[1].target()));
- space->install_readwrite_handler(0xfc88, 0xfc8b, read8sm_delegate(FUNC(mos6551_device::read),m_q133_acia[2].target()), write8sm_delegate(FUNC(mos6551_device::write),m_q133_acia[2].target()));
- space->install_readwrite_handler(0xfc8c, 0xfc8f, read8sm_delegate(FUNC(mos6551_device::read),m_q133_acia[3].target()), write8sm_delegate(FUNC(mos6551_device::write),m_q133_acia[3].target()));
- space->install_readwrite_handler(0xfc90, 0xfc97, read8sm_delegate(FUNC(ptm6840_device::read),m_q133_ptm.target()), write8sm_delegate(FUNC(ptm6840_device::write),m_q133_ptm.target()));
+ space->install_readwrite_handler(0xfc80, 0xfc83, read8sm_delegate(*m_q133_acia[0], FUNC(mos6551_device::read)), write8sm_delegate(*m_q133_acia[0], FUNC(mos6551_device::write)));
+ space->install_readwrite_handler(0xfc84, 0xfc87, read8sm_delegate(*m_q133_acia[1], FUNC(mos6551_device::read)), write8sm_delegate(*m_q133_acia[1], FUNC(mos6551_device::write)));
+ space->install_readwrite_handler(0xfc88, 0xfc8b, read8sm_delegate(*m_q133_acia[2], FUNC(mos6551_device::read)), write8sm_delegate(*m_q133_acia[2], FUNC(mos6551_device::write)));
+ space->install_readwrite_handler(0xfc8c, 0xfc8f, read8sm_delegate(*m_q133_acia[3], FUNC(mos6551_device::read)), write8sm_delegate(*m_q133_acia[3], FUNC(mos6551_device::write)));
+ space->install_readwrite_handler(0xfc90, 0xfc97, read8sm_delegate(*m_q133_ptm, FUNC(ptm6840_device::read)), write8sm_delegate(*m_q133_ptm, FUNC(ptm6840_device::write)));
- space->install_readwrite_handler(0xfcbc, 0xfcbc, read8_delegate(FUNC(cmi_state::cmi07_r),this), write8_delegate(FUNC(cmi_state::cmi07_w),this));
+ space->install_readwrite_handler(0xfcbc, 0xfcbc, read8_delegate(*this, FUNC(cmi_state::cmi07_r)), write8_delegate(*this, FUNC(cmi_state::cmi07_w)));
- space->install_read_handler(0xfcc0, 0xfcc3, read8_delegate(FUNC(cmi_state::lightpen_r),this));
- space->install_readwrite_handler(0xfcc4, 0xfcc7, read8sm_delegate(FUNC(pia6821_device::read),m_q219_pia.target()), write8sm_delegate(FUNC(pia6821_device::write),m_q219_pia.target()));
- space->install_readwrite_handler(0xfcc8, 0xfccf, read8sm_delegate(FUNC(ptm6840_device::read),m_q219_ptm.target()), write8sm_delegate(FUNC(ptm6840_device::write),m_q219_ptm.target()));
- space->install_readwrite_handler(0xfcd0, 0xfcdc, read8_delegate(FUNC(cmi_state::video_r),this), write8_delegate(FUNC(cmi_state::video_w),this));
- space->install_readwrite_handler(0xfce0, 0xfce1, read8_delegate(FUNC(cmi_state::fdc_r),this), write8_delegate(FUNC(cmi_state::fdc_w),this));
+ space->install_read_handler(0xfcc0, 0xfcc3, read8_delegate(*this, FUNC(cmi_state::lightpen_r)));
+ space->install_readwrite_handler(0xfcc4, 0xfcc7, read8sm_delegate(*m_q219_pia, FUNC(pia6821_device::read)), write8sm_delegate(*m_q219_pia, FUNC(pia6821_device::write)));
+ space->install_readwrite_handler(0xfcc8, 0xfccf, read8sm_delegate(*m_q219_ptm, FUNC(ptm6840_device::read)), write8sm_delegate(*m_q219_ptm, FUNC(ptm6840_device::write)));
+ space->install_readwrite_handler(0xfcd0, 0xfcdc, read8_delegate(*this, FUNC(cmi_state::video_r)), write8_delegate(*this, FUNC(cmi_state::video_w)));
+ space->install_readwrite_handler(0xfce0, 0xfce1, read8_delegate(*this, FUNC(cmi_state::fdc_r)), write8_delegate(*this, FUNC(cmi_state::fdc_w)));
space->nop_readwrite(0xfce2, 0xfcef); // Monitor ROM will attempt to detect floppy disk controller cards in this entire range
- space->install_readwrite_handler(0xfcf0, 0xfcf7, read8sm_delegate(FUNC(pia6821_device::read),m_q133_pia[0].target()), write8sm_delegate(FUNC(pia6821_device::write),m_q133_pia[0].target()));
- space->install_readwrite_handler(0xfcf8, 0xfcff, read8sm_delegate(FUNC(pia6821_device::read),m_q133_pia[1].target()), write8sm_delegate(FUNC(pia6821_device::write),m_q133_pia[1].target()));
+ space->install_readwrite_handler(0xfcf0, 0xfcf7, read8sm_delegate(*m_q133_pia[0], FUNC(pia6821_device::read)), write8sm_delegate(*m_q133_pia[0], FUNC(pia6821_device::write)));
+ space->install_readwrite_handler(0xfcf8, 0xfcff, read8sm_delegate(*m_q133_pia[1], FUNC(pia6821_device::read)), write8sm_delegate(*m_q133_pia[1], FUNC(pia6821_device::write)));
- space->install_write_handler(0xfcfc, 0xfcfc, write8_delegate(FUNC(cmi_state::i8214_cpu1_w),this));
- space->install_write_handler(0xfcfd, 0xfcfd, write8_delegate(FUNC(cmi_state::i8214_cpu2_w),this));
+ space->install_write_handler(0xfcfc, 0xfcfc, write8_delegate(*this, FUNC(cmi_state::i8214_cpu1_w)));
+ space->install_write_handler(0xfcfd, 0xfcfd, write8_delegate(*this, FUNC(cmi_state::i8214_cpu2_w)));
- space->install_readwrite_handler(0xfd00, 0xfeff, read8_delegate(FUNC(cmi_state::shared_ram_r),this), write8_delegate(FUNC(cmi_state::shared_ram_w),this));
+ space->install_readwrite_handler(0xfd00, 0xfeff, read8_delegate(*this, FUNC(cmi_state::shared_ram_r)), write8_delegate(*this, FUNC(cmi_state::shared_ram_w)));
space->install_ram(0xff00, 0xfff7, &m_scratch_ram[cpunum][0]);
space->install_ram(0xfffa, 0xfffd, &m_scratch_ram[cpunum][0xfa]);
- if (cpunum) {
- space->install_readwrite_handler(0xfff8, 0xfff9, read8_delegate(FUNC(cmi_state::irq_ram_r<1>),this), write8_delegate(FUNC(cmi_state::irq_ram_w<1>),this));
- space->install_read_handler(0xfffe, 0xffff, read8_delegate(FUNC(cmi_state::vector_r<1>),this));
- } else {
- space->install_readwrite_handler(0xfff8, 0xfff9, read8_delegate(FUNC(cmi_state::irq_ram_r<0>),this), write8_delegate(FUNC(cmi_state::irq_ram_w<0>),this));
- space->install_read_handler(0xfffe, 0xffff, read8_delegate(FUNC(cmi_state::vector_r<0>),this));
+ if (cpunum)
+ {
+ space->install_readwrite_handler(0xfff8, 0xfff9, read8_delegate(*this, FUNC(cmi_state::irq_ram_r<1>)), write8_delegate(*this, FUNC(cmi_state::irq_ram_w<1>)));
+ space->install_read_handler(0xfffe, 0xffff, read8_delegate(*this, FUNC(cmi_state::vector_r<1>)));
+ }
+ else
+ {
+ space->install_readwrite_handler(0xfff8, 0xfff9, read8_delegate(*this, FUNC(cmi_state::irq_ram_r<0>)), write8_delegate(*this, FUNC(cmi_state::irq_ram_w<0>)));
+ space->install_read_handler(0xfffe, 0xffff, read8_delegate(*this, FUNC(cmi_state::vector_r<0>)));
}
}
diff --git a/src/mame/drivers/cninja.cpp b/src/mame/drivers/cninja.cpp
index ee91c544f42..7df1d9f149d 100644
--- a/src/mame/drivers/cninja.cpp
+++ b/src/mame/drivers/cninja.cpp
@@ -812,15 +812,15 @@ void cninja_state::cninja(machine_config &config)
m_deco_tilegen[1]->set_pf2_col_bank(0x30);
m_deco_tilegen[1]->set_pf1_col_mask(0x0f);
m_deco_tilegen[1]->set_pf2_col_mask(0x0f);
- m_deco_tilegen[1]->set_bank1_callback(FUNC(cninja_state::cninja_bank_callback), this);
- m_deco_tilegen[1]->set_bank2_callback(FUNC(cninja_state::cninja_bank_callback), this);
+ m_deco_tilegen[1]->set_bank1_callback(FUNC(cninja_state::cninja_bank_callback));
+ m_deco_tilegen[1]->set_bank2_callback(FUNC(cninja_state::cninja_bank_callback));
m_deco_tilegen[1]->set_pf12_8x8_bank(0);
m_deco_tilegen[1]->set_pf12_16x16_bank(2);
m_deco_tilegen[1]->set_gfxdecode_tag(m_gfxdecode);
DECO_SPRITE(config, m_sprgen[0], 0);
m_sprgen[0]->set_gfx_region(3);
- m_sprgen[0]->set_pri_callback(FUNC(cninja_state::pri_callback), this);
+ m_sprgen[0]->set_pri_callback(FUNC(cninja_state::pri_callback));
m_sprgen[0]->set_gfxdecode_tag(m_gfxdecode);
DECO104PROT(config, m_ioprot, 0);
@@ -899,15 +899,15 @@ void cninja_state::stoneage(machine_config &config)
m_deco_tilegen[1]->set_pf2_col_bank(0x30);
m_deco_tilegen[1]->set_pf1_col_mask(0x0f);
m_deco_tilegen[1]->set_pf2_col_mask(0x0f);
- m_deco_tilegen[1]->set_bank1_callback(FUNC(cninja_state::cninja_bank_callback), this);
- m_deco_tilegen[1]->set_bank2_callback(FUNC(cninja_state::cninja_bank_callback), this);
+ m_deco_tilegen[1]->set_bank1_callback(FUNC(cninja_state::cninja_bank_callback));
+ m_deco_tilegen[1]->set_bank2_callback(FUNC(cninja_state::cninja_bank_callback));
m_deco_tilegen[1]->set_pf12_8x8_bank(0);
m_deco_tilegen[1]->set_pf12_16x16_bank(2);
m_deco_tilegen[1]->set_gfxdecode_tag(m_gfxdecode);
DECO_SPRITE(config, m_sprgen[0], 0);
m_sprgen[0]->set_gfx_region(3);
- m_sprgen[0]->set_pri_callback(FUNC(cninja_state::pri_callback), this);
+ m_sprgen[0]->set_pri_callback(FUNC(cninja_state::pri_callback));
m_sprgen[0]->set_gfxdecode_tag(m_gfxdecode);
DECO104PROT(config, m_ioprot, 0);
@@ -994,8 +994,8 @@ void cninja_state::cninjabl(machine_config &config)
m_deco_tilegen[1]->set_pf2_col_bank(0x30);
m_deco_tilegen[1]->set_pf1_col_mask(0x0f);
m_deco_tilegen[1]->set_pf2_col_mask(0x0f);
- m_deco_tilegen[1]->set_bank1_callback(FUNC(cninja_state::cninja_bank_callback), this);
- m_deco_tilegen[1]->set_bank2_callback(FUNC(cninja_state::cninja_bank_callback), this);
+ m_deco_tilegen[1]->set_bank1_callback(FUNC(cninja_state::cninja_bank_callback));
+ m_deco_tilegen[1]->set_bank2_callback(FUNC(cninja_state::cninja_bank_callback));
m_deco_tilegen[1]->set_pf12_8x8_bank(0);
m_deco_tilegen[1]->set_pf12_16x16_bank(2);
m_deco_tilegen[1]->set_gfxdecode_tag(m_gfxdecode);
@@ -1064,15 +1064,15 @@ void cninja_state::edrandy(machine_config &config)
m_deco_tilegen[1]->set_pf2_col_bank(0x30);
m_deco_tilegen[1]->set_pf1_col_mask(0x0f);
m_deco_tilegen[1]->set_pf2_col_mask(0x0f);
- m_deco_tilegen[1]->set_bank1_callback(FUNC(cninja_state::cninja_bank_callback), this);
- m_deco_tilegen[1]->set_bank2_callback(FUNC(cninja_state::cninja_bank_callback), this);
+ m_deco_tilegen[1]->set_bank1_callback(FUNC(cninja_state::cninja_bank_callback));
+ m_deco_tilegen[1]->set_bank2_callback(FUNC(cninja_state::cninja_bank_callback));
m_deco_tilegen[1]->set_pf12_8x8_bank(0);
m_deco_tilegen[1]->set_pf12_16x16_bank(2);
m_deco_tilegen[1]->set_gfxdecode_tag(m_gfxdecode);
DECO_SPRITE(config, m_sprgen[0], 0);
m_sprgen[0]->set_gfx_region(3);
- m_sprgen[0]->set_pri_callback(FUNC(cninja_state::pri_callback), this);
+ m_sprgen[0]->set_pri_callback(FUNC(cninja_state::pri_callback));
m_sprgen[0]->set_gfxdecode_tag(m_gfxdecode);
DECO146PROT(config, m_ioprot, 0);
@@ -1138,7 +1138,7 @@ void cninja_state::robocop2(machine_config &config)
m_deco_tilegen[0]->set_pf2_col_bank(0x10);
m_deco_tilegen[0]->set_pf1_col_mask(0x0f);
m_deco_tilegen[0]->set_pf2_col_mask(0x0f);
- m_deco_tilegen[0]->set_bank2_callback(FUNC(cninja_state::robocop2_bank_callback), this);
+ m_deco_tilegen[0]->set_bank2_callback(FUNC(cninja_state::robocop2_bank_callback));
m_deco_tilegen[0]->set_pf12_8x8_bank(0);
m_deco_tilegen[0]->set_pf12_16x16_bank(1);
m_deco_tilegen[0]->set_gfxdecode_tag(m_gfxdecode);
@@ -1152,15 +1152,15 @@ void cninja_state::robocop2(machine_config &config)
m_deco_tilegen[1]->set_pf2_col_bank(0x30);
m_deco_tilegen[1]->set_pf1_col_mask(0x0f);
m_deco_tilegen[1]->set_pf2_col_mask(0x0f);
- m_deco_tilegen[1]->set_bank1_callback(FUNC(cninja_state::robocop2_bank_callback), this);
- m_deco_tilegen[1]->set_bank2_callback(FUNC(cninja_state::robocop2_bank_callback), this);
+ m_deco_tilegen[1]->set_bank1_callback(FUNC(cninja_state::robocop2_bank_callback));
+ m_deco_tilegen[1]->set_bank2_callback(FUNC(cninja_state::robocop2_bank_callback));
m_deco_tilegen[1]->set_pf12_8x8_bank(0);
m_deco_tilegen[1]->set_pf12_16x16_bank(2);
m_deco_tilegen[1]->set_gfxdecode_tag(m_gfxdecode);
DECO_SPRITE(config, m_sprgen[0], 0);
m_sprgen[0]->set_gfx_region(3);
- m_sprgen[0]->set_pri_callback(FUNC(cninja_state::pri_callback), this);
+ m_sprgen[0]->set_pri_callback(FUNC(cninja_state::pri_callback));
m_sprgen[0]->set_gfxdecode_tag(m_gfxdecode);
DECO146PROT(config, m_ioprot, 0);
@@ -1230,8 +1230,8 @@ void cninja_state::mutantf(machine_config &config)
m_deco_tilegen[0]->set_pf2_col_bank(0x30);
m_deco_tilegen[0]->set_pf1_col_mask(0x0f);
m_deco_tilegen[0]->set_pf2_col_mask(0x0f);
- m_deco_tilegen[0]->set_bank1_callback(FUNC(cninja_state::mutantf_1_bank_callback), this);
- m_deco_tilegen[0]->set_bank2_callback(FUNC(cninja_state::mutantf_2_bank_callback), this);
+ m_deco_tilegen[0]->set_bank1_callback(FUNC(cninja_state::mutantf_1_bank_callback));
+ m_deco_tilegen[0]->set_bank2_callback(FUNC(cninja_state::mutantf_2_bank_callback));
m_deco_tilegen[0]->set_pf12_8x8_bank(0);
m_deco_tilegen[0]->set_pf12_16x16_bank(1);
m_deco_tilegen[0]->set_gfxdecode_tag(m_gfxdecode);
@@ -1245,8 +1245,8 @@ void cninja_state::mutantf(machine_config &config)
m_deco_tilegen[1]->set_pf2_col_bank(0x40);
m_deco_tilegen[1]->set_pf1_col_mask(0x0f);
m_deco_tilegen[1]->set_pf2_col_mask(0x0f);
- m_deco_tilegen[1]->set_bank1_callback(FUNC(cninja_state::mutantf_1_bank_callback), this);
- m_deco_tilegen[1]->set_bank2_callback(FUNC(cninja_state::mutantf_1_bank_callback), this);
+ m_deco_tilegen[1]->set_bank1_callback(FUNC(cninja_state::mutantf_1_bank_callback));
+ m_deco_tilegen[1]->set_bank2_callback(FUNC(cninja_state::mutantf_1_bank_callback));
m_deco_tilegen[1]->set_pf12_8x8_bank(0);
m_deco_tilegen[1]->set_pf12_16x16_bank(2);
m_deco_tilegen[1]->set_gfxdecode_tag(m_gfxdecode);
@@ -2221,7 +2221,7 @@ ROM_END
void cninja_state::init_cninjabl2()
{
m_maincpu->space(AS_PROGRAM).install_ram(0x180000, 0x18ffff);
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x1b4000, 0x1b4001, read16_delegate(FUNC(cninja_state::cninjabl2_sprite_dma_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x1b4000, 0x1b4001, read16_delegate(*this, FUNC(cninja_state::cninjabl2_sprite_dma_r)));
m_okibank->configure_entries(0, 8, memregion("oki2")->base(), 0x10000);
}
diff --git a/src/mame/drivers/cntsteer.cpp b/src/mame/drivers/cntsteer.cpp
index a41be7a573d..1323717d2ae 100644
--- a/src/mame/drivers/cntsteer.cpp
+++ b/src/mame/drivers/cntsteer.cpp
@@ -199,8 +199,8 @@ TILE_GET_INFO_MEMBER(cntsteer_state::get_fg_tile_info)
VIDEO_START_MEMBER(cntsteer_state,cntsteer)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cntsteer_state::get_bg_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 64, 64);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cntsteer_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS_FLIP_X, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cntsteer_state::get_bg_tile_info)), TILEMAP_SCAN_COLS, 16, 16, 64, 64);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cntsteer_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS_FLIP_X, 8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(0);
@@ -209,8 +209,8 @@ VIDEO_START_MEMBER(cntsteer_state,cntsteer)
VIDEO_START_MEMBER(cntsteer_state,zerotrgt)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cntsteer_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cntsteer_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS_FLIP_X, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cntsteer_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cntsteer_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS_FLIP_X, 8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(0);
diff --git a/src/mame/drivers/cobra.cpp b/src/mame/drivers/cobra.cpp
index 1a9f50b90c8..adc7b603c27 100644
--- a/src/mame/drivers/cobra.cpp
+++ b/src/mame/drivers/cobra.cpp
@@ -3298,8 +3298,7 @@ void cobra_state::cobra(machine_config &config)
config.m_minimum_quantum = attotime::from_hz(15005);
PCI_BUS_LEGACY(config, m_legacy_pci, 0, 0);
- m_legacy_pci->set_device_read(0, FUNC(cobra_state::mpc106_pci_r), this);
- m_legacy_pci->set_device_write(0, FUNC(cobra_state::mpc106_pci_w), this);
+ m_legacy_pci->set_device(0, FUNC(cobra_state::mpc106_pci_r), FUNC(cobra_state::mpc106_pci_w));
ATA_INTERFACE(config, m_ata).options(ata_devices, "hdd", nullptr, true);
m_ata->irq_handler().set(FUNC(cobra_state::ide_interrupt));
@@ -3377,12 +3376,12 @@ void cobra_state::init_cobra()
cobra_fifo::event_delegate(&cobra_state::s2mfifo_event_callback, this))
);
- m_maincpu->ppc_set_dcstore_callback(write32_delegate(FUNC(cobra_state::main_cpu_dc_store),this));
+ m_maincpu->ppc_set_dcstore_callback(write32_delegate(*this, FUNC(cobra_state::main_cpu_dc_store)));
- m_gfxcpu->ppc_set_dcstore_callback(write32_delegate(FUNC(cobra_state::gfx_cpu_dc_store), this));
+ m_gfxcpu->ppc_set_dcstore_callback(write32_delegate(*this, FUNC(cobra_state::gfx_cpu_dc_store)));
- m_subcpu->ppc4xx_set_dma_write_handler(0, write32_delegate(FUNC(cobra_state::sub_sound_dma_w), this), 44100);
- m_subcpu->ppc4xx_spu_set_tx_handler(write8_delegate(FUNC(cobra_state::sub_jvs_w), this));
+ m_subcpu->ppc4xx_set_dma_write_handler(0, write32_delegate(*this, FUNC(cobra_state::sub_sound_dma_w)), 44100);
+ m_subcpu->ppc4xx_spu_set_tx_handler(write8_delegate(*this, FUNC(cobra_state::sub_jvs_w)));
m_comram[0] = std::make_unique<uint32_t[]>(0x40000/4);
diff --git a/src/mame/drivers/coinmstr.cpp b/src/mame/drivers/coinmstr.cpp
index 98780b94b88..3e5bf6a5685 100644
--- a/src/mame/drivers/coinmstr.cpp
+++ b/src/mame/drivers/coinmstr.cpp
@@ -1246,7 +1246,7 @@ TILE_GET_INFO_MEMBER(coinmstr_state::get_bg_tile_info)
void coinmstr_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(coinmstr_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 46, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(coinmstr_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 46, 32);
}
uint32_t coinmstr_state::screen_update_coinmstr(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
diff --git a/src/mame/drivers/coleco.cpp b/src/mame/drivers/coleco.cpp
index 8c44a8f89cd..af8fdbeea9b 100644
--- a/src/mame/drivers/coleco.cpp
+++ b/src/mame/drivers/coleco.cpp
@@ -342,7 +342,7 @@ void coleco_state::machine_start()
}
if (m_cart->exists())
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x8000, 0xffff, read8_delegate(FUNC(coleco_state::cart_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x8000, 0xffff, read8_delegate(*this, FUNC(coleco_state::cart_r)));
save_item(NAME(m_joy_mode));
save_item(NAME(m_last_nmi_state));
diff --git a/src/mame/drivers/combatsc.cpp b/src/mame/drivers/combatsc.cpp
index f3ab95696d3..24c92c6fc82 100644
--- a/src/mame/drivers/combatsc.cpp
+++ b/src/mame/drivers/combatsc.cpp
@@ -235,8 +235,8 @@ WRITE8_MEMBER(combatsc_state::combatscb_bankselect_w)
if (data == 0x1f)
{
membank("bank1")->set_entry(8 + (data & 1));
- space.install_write_handler(0x4000, 0x7fff, write8_delegate(FUNC(combatsc_state::combatscb_io_w),this));
- space.install_read_handler(0x4400, 0x4403, read8_delegate(FUNC(combatsc_state::combatscb_io_r),this));/* IO RAM & Video Registers */
+ space.install_write_handler(0x4000, 0x7fff, write8_delegate(*this, FUNC(combatsc_state::combatscb_io_w)));
+ space.install_read_handler(0x4400, 0x4403, read8_delegate(*this, FUNC(combatsc_state::combatscb_io_r))); // IO RAM & Video Registers
}
else
{
diff --git a/src/mame/drivers/comx35.cpp b/src/mame/drivers/comx35.cpp
index 0db94f4f0a1..5c600bd0c6e 100644
--- a/src/mame/drivers/comx35.cpp
+++ b/src/mame/drivers/comx35.cpp
@@ -630,7 +630,7 @@ void comx35_state::base(machine_config &config, const XTAL clock)
m_kbe->d11_callback().set_ioport("D11");
m_kbe->da_callback().set_inputline(m_maincpu, COSMAC_INPUT_LINE_EF3);
- QUICKLOAD(config, "quickload", "comx").set_load_callback(FUNC(comx35_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "comx").set_load_callback(FUNC(comx35_state::quickload_cb));
CASSETTE(config, m_cassette).set_default_state(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED);
//m_cassette->add_route(ALL_OUTPUTS, "mono", 0.05);
diff --git a/src/mame/drivers/coolridr.cpp b/src/mame/drivers/coolridr.cpp
index 4bc6129aeb0..3c9566c3900 100644
--- a/src/mame/drivers/coolridr.cpp
+++ b/src/mame/drivers/coolridr.cpp
@@ -3436,7 +3436,7 @@ READ32_MEMBER(coolridr_state::aquastge_hack_r)
void coolridr_state::init_coolridr()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x60d8894, 0x060d8897, read32_delegate(FUNC(coolridr_state::coolridr_hack2_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x60d8894, 0x060d8897, read32_delegate(*this, FUNC(coolridr_state::coolridr_hack2_r)));
m_maincpu->sh2drc_set_options(SH2DRC_FASTEST_OPTIONS);
m_subcpu->sh2drc_set_options(SH2DRC_FASTEST_OPTIONS);
@@ -3452,7 +3452,7 @@ void coolridr_state::init_coolridr()
void coolridr_state::init_aquastge()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x60c3fd8, 0x60c3fdb, read32_delegate(FUNC(coolridr_state::aquastge_hack_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x60c3fd8, 0x60c3fdb, read32_delegate(*this, FUNC(coolridr_state::aquastge_hack_r)));
m_maincpu->sh2drc_set_options(SH2DRC_FASTEST_OPTIONS);
m_subcpu->sh2drc_set_options(SH2DRC_FASTEST_OPTIONS);
diff --git a/src/mame/drivers/cosmic.cpp b/src/mame/drivers/cosmic.cpp
index 484dcbeba1b..8f114e37f7e 100644
--- a/src/mame/drivers/cosmic.cpp
+++ b/src/mame/drivers/cosmic.cpp
@@ -1575,16 +1575,16 @@ void cosmic_state::init_cosmica()
void cosmic_state::init_devzone()
{
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x4807, 0x4807,write8_delegate(FUNC(cosmic_state::cosmic_background_enable_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x4807, 0x4807, write8_delegate(*this, FUNC(cosmic_state::cosmic_background_enable_w)));
}
void cosmic_state::init_nomnlnd()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x5000, 0x5001, read8_delegate(FUNC(cosmic_state::nomnlnd_port_0_1_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x5000, 0x5001, read8_delegate(*this, FUNC(cosmic_state::nomnlnd_port_0_1_r)));
m_maincpu->space(AS_PROGRAM).nop_write(0x4800, 0x4800);
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x4807, 0x4807, write8_delegate(FUNC(cosmic_state::cosmic_background_enable_w),this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x480a, 0x480a, write8_delegate(FUNC(cosmic_state::dac_w), this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x4807, 0x4807, write8_delegate(*this, FUNC(cosmic_state::cosmic_background_enable_w)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x480a, 0x480a, write8_delegate(*this, FUNC(cosmic_state::dac_w)));
}
void cosmic_state::init_panic()
diff --git a/src/mame/drivers/cosmicos.cpp b/src/mame/drivers/cosmicos.cpp
index 5fb6eb70d9d..a997accc93e 100644
--- a/src/mame/drivers/cosmicos.cpp
+++ b/src/mame/drivers/cosmicos.cpp
@@ -549,7 +549,7 @@ void cosmicos_state::cosmicos(machine_config &config)
m_cti->add_route(ALL_OUTPUTS, "mono", 0.25);
/* devices */
- QUICKLOAD(config, "quickload", "bin").set_load_callback(FUNC(cosmicos_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "bin").set_load_callback(FUNC(cosmicos_state::quickload_cb));
CASSETTE(config, m_cassette);
m_cassette->set_default_state(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED);
m_cassette->add_route(ALL_OUTPUTS, "mono", 0.05);
diff --git a/src/mame/drivers/cp1.cpp b/src/mame/drivers/cp1.cpp
index b4bb54d20f4..97f50ef2fe7 100644
--- a/src/mame/drivers/cp1.cpp
+++ b/src/mame/drivers/cp1.cpp
@@ -294,7 +294,7 @@ void cp1_state::cp1(machine_config &config)
m_cassette->set_default_state(CASSETTE_STOPPED | CASSETTE_SPEAKER_ENABLED | CASSETTE_MOTOR_ENABLED);
m_cassette->add_route(ALL_OUTPUTS, "mono", 0.05);
- QUICKLOAD(config, "quickload", "obj", attotime::from_seconds(1)).set_load_callback(FUNC(cp1_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "obj", attotime::from_seconds(1)).set_load_callback(FUNC(cp1_state::quickload_cb));
}
/* ROM definition */
diff --git a/src/mame/drivers/cps1.cpp b/src/mame/drivers/cps1.cpp
index d43b0e56a96..0ab83924b68 100644
--- a/src/mame/drivers/cps1.cpp
+++ b/src/mame/drivers/cps1.cpp
@@ -353,11 +353,15 @@ TIMER_DEVICE_CALLBACK_MEMBER(cps_state::ganbare_interrupt)
void cps_state::cpu_space_map(address_map &map)
{
// Eventually add the sync to E due to vpa
- map(0xfffff2, 0xffffff).lr16("autovectors", [this](offs_t offset) -> u16 {
- // clear the IPL1 and IPL2 flip-flops
- m_maincpu->set_input_line(2, CLEAR_LINE);
- m_maincpu->set_input_line(4, CLEAR_LINE);
- return m68000_device::autovector(offset+1); });
+ map(0xfffff2, 0xffffff).lr16(
+ [this] (offs_t offset) -> u16
+ {
+ // clear the IPL1 and IPL2 flip-flops
+ m_maincpu->set_input_line(2, CLEAR_LINE);
+ m_maincpu->set_input_line(4, CLEAR_LINE);
+ return m68000_device::autovector(offset + 1);
+ },
+ "autovectors");
}
@@ -13026,7 +13030,7 @@ READ16_MEMBER(cps_state::sf2rb_prot_r)
void cps_state::init_sf2rb()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x200000, 0x2fffff, read16_delegate(FUNC(cps_state::sf2rb_prot_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x200000, 0x2fffff, read16_delegate(*this, FUNC(cps_state::sf2rb_prot_r)));
init_cps1();
}
@@ -13047,7 +13051,7 @@ READ16_MEMBER(cps_state::sf2rb2_prot_r)
void cps_state::init_sf2rb2()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x200000, 0x2fffff, read16_delegate(FUNC(cps_state::sf2rb2_prot_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x200000, 0x2fffff, read16_delegate(*this, FUNC(cps_state::sf2rb2_prot_r)));
init_cps1();
}
@@ -13057,7 +13061,7 @@ void cps_state::init_sf2ee()
/* This specific revision of SF2 has the CPS-B custom mapped at a different address. */
/* The mapping is handled by the PAL IOB2 on the B-board */
m_maincpu->space(AS_PROGRAM).unmap_readwrite(0x800140, 0x80017f);
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x8001c0, 0x8001ff, read16_delegate(FUNC(cps_state::cps1_cps_b_r),this), write16_delegate(FUNC(cps_state::cps1_cps_b_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x8001c0, 0x8001ff, read16_delegate(*this, FUNC(cps_state::cps1_cps_b_r)), write16_delegate(*this, FUNC(cps_state::cps1_cps_b_w)));
init_cps1();
}
@@ -13065,7 +13069,7 @@ void cps_state::init_sf2ee()
void cps_state::init_sf2thndr()
{
/* This particular hack uses a modified B-board PAL which mirrors the CPS-B registers at an alternate address */
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x8001c0, 0x8001ff, read16_delegate(FUNC(cps_state::cps1_cps_b_r),this), write16_delegate(FUNC(cps_state::cps1_cps_b_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x8001c0, 0x8001ff, read16_delegate(*this, FUNC(cps_state::cps1_cps_b_r)), write16_delegate(*this, FUNC(cps_state::cps1_cps_b_w)));
init_cps1();
}
@@ -13073,7 +13077,7 @@ void cps_state::init_sf2thndr()
void cps_state::init_sf2hack()
{
/* some SF2 hacks have some inputs wired to the LSB instead of MSB */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x800018, 0x80001f, read16_delegate(FUNC(cps_state::cps1_hack_dsw_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x800018, 0x80001f, read16_delegate(*this, FUNC(cps_state::cps1_hack_dsw_r)));
init_cps1();
}
@@ -13115,7 +13119,7 @@ READ16_MEMBER(cps_state::sf2dongb_prot_r)
void cps_state::init_sf2dongb()
{
// There is a hacked up Altera EP910PC-30 DIP in the 5f socket instead of a 4th EPROM
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x180000, 0x1fffff, read16_delegate(FUNC(cps_state::sf2dongb_prot_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x180000, 0x1fffff, read16_delegate(*this, FUNC(cps_state::sf2dongb_prot_r)));
init_cps1();
}
@@ -13137,8 +13141,8 @@ WRITE16_MEMBER(cps_state::sf2ceblp_prot_w)
void cps_state::init_sf2ceblp()
{
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x5762b0, 0x5762b1, write16_delegate(FUNC(cps_state::sf2ceblp_prot_w),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x57A2b0, 0x57A2b1, read16_delegate(FUNC(cps_state::sf2ceblp_prot_r),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x5762b0, 0x5762b1, write16_delegate(*this, FUNC(cps_state::sf2ceblp_prot_w)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x57A2b0, 0x57A2b1, read16_delegate(*this, FUNC(cps_state::sf2ceblp_prot_r)));
init_cps1();
}
@@ -13255,7 +13259,7 @@ void cps_state::init_ganbare()
init_cps1();
/* ram is shared between the CPS work ram and the timekeeper ram */
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xff0000, 0xffffff, read16_delegate(FUNC(cps_state::ganbare_ram_r),this), write16_delegate(FUNC(cps_state::ganbare_ram_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xff0000, 0xffffff, read16_delegate(*this, FUNC(cps_state::ganbare_ram_r)), write16_delegate(*this, FUNC(cps_state::ganbare_ram_w)));
}
READ16_MEMBER(cps_state::dinohunt_sound_r)
@@ -13269,7 +13273,7 @@ READ16_MEMBER(cps_state::dinohunt_sound_r)
void cps_state::init_dinohunt()
{
// is this shared with the new sound hw?
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xf18000, 0xf19fff, read16_delegate(FUNC(cps_state::dinohunt_sound_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xf18000, 0xf19fff, read16_delegate(*this, FUNC(cps_state::dinohunt_sound_r)));
m_maincpu->space(AS_PROGRAM).install_read_port(0xfc0000, 0xfc0001, "IN2"); ;
// the ym2151 doesn't seem to be used. Is it actually on the PCB?
diff --git a/src/mame/drivers/cps2.cpp b/src/mame/drivers/cps2.cpp
index 69b5acb934d..0795c89dcfa 100644
--- a/src/mame/drivers/cps2.cpp
+++ b/src/mame/drivers/cps2.cpp
@@ -9930,7 +9930,7 @@ void cps2_state::init_digital_volume()
m_cps2disabledigitalvolume = 0;
/* create a timer to update our volume state from the fake switches - read it every 6 frames or so to enable some granularity */
- m_digital_volume_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(cps2_state::cps2_update_digital_volume),this));
+ m_digital_volume_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(cps2_state::cps2_update_digital_volume), this));
m_digital_volume_timer->adjust(attotime::from_msec(100), 0, attotime::from_msec(100));
}
@@ -9977,7 +9977,7 @@ void cps2_state::init_pzloop2()
save_item(NAME(m_readpaddle));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x804000, 0x804001, read16_delegate(FUNC(cps2_state::joy_or_paddle_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x804000, 0x804001, read16_delegate(*this, FUNC(cps2_state::joy_or_paddle_r)));
}
void cps2_state::init_singbrd()
@@ -10025,7 +10025,7 @@ void cps2_state::init_gigaman2()
m_gigaman2_dummyqsound_ram = std::make_unique<uint16_t[]>(0x20000 / 2);
save_pointer(NAME(m_gigaman2_dummyqsound_ram), 0x20000 / 2);
- space.install_readwrite_handler(0x618000, 0x619fff, read16_delegate(FUNC(cps2_state::gigaman2_dummyqsound_r),this), write16_delegate(FUNC(cps2_state::gigaman2_dummyqsound_w), this)); // no qsound..
+ space.install_readwrite_handler(0x618000, 0x619fff, read16_delegate(*this, FUNC(cps2_state::gigaman2_dummyqsound_r)), write16_delegate(*this, FUNC(cps2_state::gigaman2_dummyqsound_w))); // no qsound..
memcpy(m_decrypted_opcodes, memregion("maincpu")->base()+0x200000, 0x200000);
@@ -10042,7 +10042,7 @@ void cps2_state::init_ecofghtr()
save_item(NAME(m_readpaddle));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x804000, 0x804001, read16_delegate(FUNC(cps2_state::joy_or_paddle_ecofghtr_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x804000, 0x804001, read16_delegate(*this, FUNC(cps2_state::joy_or_paddle_ecofghtr_r)));
}
diff --git a/src/mame/drivers/cps3.cpp b/src/mame/drivers/cps3.cpp
index fac2c927a22..ae9f9b5f02b 100644
--- a/src/mame/drivers/cps3.cpp
+++ b/src/mame/drivers/cps3.cpp
@@ -2157,10 +2157,10 @@ void cps3_state::cps3_map(address_map &map)
map(0x05040000, 0x0504ffff).rw(FUNC(cps3_state::ssram_r), FUNC(cps3_state::ssram_w)).umask32(0x00ff00ff); // 'SS' RAM (Score Screen) (text tilemap + toles)
map(0x05050000, 0x0505002b).w(FUNC(cps3_state::ssregs_w)).umask32(0x00ff00ff);
- map(0x05100000, 0x05100003).lw32("irq12_ack", [this](offs_t, u32) { m_maincpu->set_input_line(12, CLEAR_LINE); });
- map(0x05110000, 0x05110003).lw32("irq10_ack", [this](offs_t, u32) { m_maincpu->set_input_line(10, CLEAR_LINE); });
- map(0x05120000, 0x05120003).lw32("irq14_ack", [this](offs_t, u32) { m_maincpu->set_input_line(14, CLEAR_LINE); }); // ?? unused
- map(0x05130000, 0x05130003).lw32("irq6_ack", [this](offs_t, u32) { m_maincpu->set_input_line(6, CLEAR_LINE); }); // ?? unused
+ map(0x05100000, 0x05100003).lw32(NAME([this] (offs_t, u32) { m_maincpu->set_input_line(12, CLEAR_LINE); }));
+ map(0x05110000, 0x05110003).lw32(NAME([this] (offs_t, u32) { m_maincpu->set_input_line(10, CLEAR_LINE); }));
+ map(0x05120000, 0x05120003).lw32(NAME([this] (offs_t, u32) { m_maincpu->set_input_line(14, CLEAR_LINE); })); // ?? unused
+ map(0x05130000, 0x05130003).lw32(NAME([this] (offs_t, u32) { m_maincpu->set_input_line(6, CLEAR_LINE); })); // ?? unused
map(0x05140000, 0x05140003).rw("scsi:7:wd33c93", FUNC(wd33c93_device::indir_r), FUNC(wd33c93_device::indir_w)).umask32(0x00ff00ff);
map(0x06000000, 0x067fffff).rw(FUNC(cps3_state::flash1_r), FUNC(cps3_state::flash1_w)); /* Flash ROMs simm 1 */
diff --git a/src/mame/drivers/crgolf.cpp b/src/mame/drivers/crgolf.cpp
index b6d7be43ad6..e44dcaa034b 100644
--- a/src/mame/drivers/crgolf.cpp
+++ b/src/mame/drivers/crgolf.cpp
@@ -757,7 +757,7 @@ ROM_END
void crgolf_state::init_crgolfhi()
{
- m_audiocpu->space(AS_PROGRAM).install_write_handler(0xa000, 0xa003, write8_delegate(FUNC(crgolf_state::crgolfhi_sample_w),this));
+ m_audiocpu->space(AS_PROGRAM).install_write_handler(0xa000, 0xa003, write8_delegate(*this, FUNC(crgolf_state::crgolfhi_sample_w)));
}
diff --git a/src/mame/drivers/crimfght.cpp b/src/mame/drivers/crimfght.cpp
index cc1b9cb146d..147f8619994 100644
--- a/src/mame/drivers/crimfght.cpp
+++ b/src/mame/drivers/crimfght.cpp
@@ -328,12 +328,12 @@ void crimfght_state::crimfght(machine_config &config)
K052109(config, m_k052109, 0);
m_k052109->set_palette(m_palette);
m_k052109->set_screen(nullptr);
- m_k052109->set_tile_callback(FUNC(crimfght_state::tile_callback), this);
+ m_k052109->set_tile_callback(FUNC(crimfght_state::tile_callback));
K051960(config, m_k051960, 0);
m_k051960->set_palette(m_palette);
m_k051960->set_screen("screen");
- m_k051960->set_sprite_callback(FUNC(crimfght_state::sprite_callback), this);
+ m_k051960->set_sprite_callback(FUNC(crimfght_state::sprite_callback));
m_k051960->irq_handler().set_inputline(m_maincpu, KONAMI_IRQ_LINE);
/* sound hardware */
diff --git a/src/mame/drivers/crshrace.cpp b/src/mame/drivers/crshrace.cpp
index 0a78c3f0d3e..0f243576a88 100644
--- a/src/mame/drivers/crshrace.cpp
+++ b/src/mame/drivers/crshrace.cpp
@@ -427,7 +427,7 @@ void crshrace_state::crshrace(machine_config &config)
PALETTE(config, m_palette).set_format(palette_device::xGBR_555, 2048);
VSYSTEM_SPR(config, m_spr, 0);
- m_spr->set_tile_indirect_cb(FUNC(crshrace_state::crshrace_tile_callback), this);
+ m_spr->set_tile_indirect_cb(FUNC(crshrace_state::crshrace_tile_callback));
m_spr->set_gfx_region(2);
m_spr->set_gfxdecode_tag(m_gfxdecode);
diff --git a/src/mame/drivers/crvision.cpp b/src/mame/drivers/crvision.cpp
index 8f97937de0a..19811bb602b 100644
--- a/src/mame/drivers/crvision.cpp
+++ b/src/mame/drivers/crvision.cpp
@@ -694,8 +694,8 @@ void crvision_state::machine_start()
if (m_cart->exists())
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x4000, 0x7fff, read8_delegate(FUNC(crvision_cart_slot_device::read_rom40),(crvision_cart_slot_device*)m_cart));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x8000, 0xbfff, read8_delegate(FUNC(crvision_cart_slot_device::read_rom80),(crvision_cart_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x4000, 0x7fff, read8_delegate(*m_cart, FUNC(crvision_cart_slot_device::read_rom40)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x8000, 0xbfff, read8_delegate(*m_cart, FUNC(crvision_cart_slot_device::read_rom80)));
}
}
diff --git a/src/mame/drivers/csplayh5.cpp b/src/mame/drivers/csplayh5.cpp
index 426410c7227..3a4686d7b9f 100644
--- a/src/mame/drivers/csplayh5.cpp
+++ b/src/mame/drivers/csplayh5.cpp
@@ -46,8 +46,8 @@
class csplayh5_state : public driver_device
{
public:
- csplayh5_state(const machine_config &mconfig, device_type type, const char *tag)
- : driver_device(mconfig, type, tag),
+ csplayh5_state(const machine_config &mconfig, device_type type, const char *tag) :
+ driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"),
m_nichisnd(*this, "nichisnd"),
m_key(*this, "KEY.%u", 0),
@@ -361,7 +361,7 @@ void csplayh5_state::csplayh5(machine_config &config)
m_maincpu->set_addrmap(AS_PROGRAM, &csplayh5_state::csplayh5_map);
m_maincpu->out_parallel_callback().set(FUNC(csplayh5_state::tmp68301_parallel_port_w));
- TIMER(config, "scantimer", 0).configure_scanline(timer_device::expired_delegate(FUNC(csplayh5_state::csplayh5_irq), this), "screen", 0, 1);
+ TIMER(config, "scantimer", 0).configure_scanline(FUNC(csplayh5_state::csplayh5_irq), "screen", 0, 1);
#if USE_H8
h830002_device &subcpu(H83002(config, "subcpu", DVD_CLOCK/2)); /* unknown divider */
diff --git a/src/mame/drivers/cswat.cpp b/src/mame/drivers/cswat.cpp
index 3624c96a493..0b68aeeb176 100644
--- a/src/mame/drivers/cswat.cpp
+++ b/src/mame/drivers/cswat.cpp
@@ -34,8 +34,8 @@ TODO:
class cswat_state : public driver_device
{
public:
- cswat_state(const machine_config &mconfig, device_type type, const char *tag)
- : driver_device(mconfig, type, tag),
+ cswat_state(const machine_config &mconfig, device_type type, const char *tag) :
+ driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"),
m_gfxdecode(*this, "gfxdecode"),
m_videoram(*this, "videoram"),
@@ -98,7 +98,7 @@ TILE_GET_INFO_MEMBER(cswat_state::get_tile_info)
void cswat_state::video_start()
{
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cswat_state::get_tile_info),this), tilemap_mapper_delegate(FUNC(cswat_state::tilemap_scan_rows),this), 8, 8, 36, 28);
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cswat_state::get_tile_info)), tilemap_mapper_delegate(*this, FUNC(cswat_state::tilemap_scan_rows)), 8, 8, 36, 28);
}
uint32_t cswat_state::screen_update_cswat(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
diff --git a/src/mame/drivers/cultures.cpp b/src/mame/drivers/cultures.cpp
index 69f636b5c74..c388d96a098 100644
--- a/src/mame/drivers/cultures.cpp
+++ b/src/mame/drivers/cultures.cpp
@@ -24,8 +24,8 @@
class cultures_state : public driver_device
{
public:
- cultures_state(const machine_config &mconfig, device_type type, const char *tag)
- : driver_device(mconfig, type, tag),
+ cultures_state(const machine_config &mconfig, device_type type, const char *tag) :
+ driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"),
m_gfxdecode(*this, "gfxdecode"),
m_vrambank(*this, "vrambank"),
@@ -109,9 +109,9 @@ TILE_GET_INFO_MEMBER(cultures_state::get_bg0_tile_info)
void cultures_state::video_start()
{
- m_bg0_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cultures_state::get_bg0_tile_info),this),TILEMAP_SCAN_ROWS, 8, 8, 64, 128);
- m_bg1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cultures_state::get_bg1_tile_info),this),TILEMAP_SCAN_ROWS, 8, 8, 512, 512);
- m_bg2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cultures_state::get_bg2_tile_info),this),TILEMAP_SCAN_ROWS, 8, 8, 512, 512);
+ m_bg0_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cultures_state::get_bg0_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 128);
+ m_bg1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cultures_state::get_bg1_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 512, 512);
+ m_bg2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cultures_state::get_bg2_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 512, 512);
m_bg1_tilemap->set_transparent_pen(0);
m_bg0_tilemap->set_transparent_pen(0);
diff --git a/src/mame/drivers/cv1k.cpp b/src/mame/drivers/cv1k.cpp
index 9180342ed1e..528a4b946d2 100644
--- a/src/mame/drivers/cv1k.cpp
+++ b/src/mame/drivers/cv1k.cpp
@@ -900,7 +900,7 @@ void cv1k_state::install_speedups(uint32_t idleramoff, uint32_t idlepc, bool is_
m_maincpu->sh2drc_add_pcflush(idlepc+2);
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xc000000+m_idleramoffs, 0xc000000+m_idleramoffs+7, read64_delegate(FUNC(cv1k_state::speedup_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xc000000+m_idleramoffs, 0xc000000+m_idleramoffs+7, read64_delegate(*this, FUNC(cv1k_state::speedup_r)));
m_maincpu->sh2drc_add_fastram(0x00000000, 0x003fffff, true, m_rombase);
diff --git a/src/mame/drivers/cvs.cpp b/src/mame/drivers/cvs.cpp
index 5853563151e..11879abd318 100644
--- a/src/mame/drivers/cvs.cpp
+++ b/src/mame/drivers/cvs.cpp
@@ -1561,7 +1561,7 @@ READ8_MEMBER(cvs_state::huncholy_prot_r)
void cvs_state::init_huncholy()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x6ff1, 0x6ff2, read8_delegate(FUNC(cvs_state::huncholy_prot_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x6ff1, 0x6ff2, read8_delegate(*this, FUNC(cvs_state::huncholy_prot_r)));
save_item(NAME(m_protection_counter));
}
@@ -1586,7 +1586,7 @@ READ8_MEMBER(cvs_state::superbik_prot_r)
void cvs_state::init_superbik()
{
m_protection_counter = 0;
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x73f1, 0x73f2, read8_delegate(FUNC(cvs_state::superbik_prot_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x73f1, 0x73f2, read8_delegate(*this, FUNC(cvs_state::superbik_prot_r)));
save_item(NAME(m_protection_counter));
}
@@ -1619,7 +1619,7 @@ READ8_MEMBER(cvs_state::hero_prot_r)
void cvs_state::init_hero()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x73f0, 0x73ff, read8_delegate(FUNC(cvs_state::hero_prot_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x73f0, 0x73ff, read8_delegate(*this, FUNC(cvs_state::hero_prot_r)));
}
diff --git a/src/mame/drivers/cybertnk.cpp b/src/mame/drivers/cybertnk.cpp
index 7a834e49f94..87dd4c34787 100644
--- a/src/mame/drivers/cybertnk.cpp
+++ b/src/mame/drivers/cybertnk.cpp
@@ -275,13 +275,13 @@ TILE_GET_INFO_MEMBER(cybertnk_state::get_tile_info)
void cybertnk_state::video_start()
{
- m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cybertnk_state::get_tile_info<0>),this),TILEMAP_SCAN_ROWS,8,8,128,32);
+ m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cybertnk_state::get_tile_info<0>)), TILEMAP_SCAN_ROWS, 8,8,128,32);
m_tilemap[0]->set_transparent_pen(0);
- m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cybertnk_state::get_tile_info<1>),this),TILEMAP_SCAN_ROWS,8,8,128,32);
+ m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cybertnk_state::get_tile_info<1>)), TILEMAP_SCAN_ROWS, 8,8,128,32);
m_tilemap[1]->set_transparent_pen(0);
- m_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cybertnk_state::get_tile_info<2>),this),TILEMAP_SCAN_ROWS,8,8,128,32);
+ m_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cybertnk_state::get_tile_info<2>)), TILEMAP_SCAN_ROWS, 8,8,128,32);
m_tilemap[2]->set_transparent_pen(0);
}
diff --git a/src/mame/drivers/cybiko.cpp b/src/mame/drivers/cybiko.cpp
index 3d964f31ff0..fc69472fcf4 100644
--- a/src/mame/drivers/cybiko.cpp
+++ b/src/mame/drivers/cybiko.cpp
@@ -426,7 +426,7 @@ void cybiko_state::cybikov1_base(machine_config &config)
m_debug_serial->set_option_device_input_defaults("pty", DEVICE_INPUT_DEFAULTS_NAME(debug_serial));
// quickload
- QUICKLOAD(config, "quickload", "bin,nv").set_load_callback(FUNC(cybiko_state::quickload_cybiko), this);
+ QUICKLOAD(config, "quickload", "bin,nv").set_load_callback(FUNC(cybiko_state::quickload_cybiko));
}
void cybiko_state::cybikov1_flash(machine_config &config)
@@ -497,7 +497,7 @@ void cybiko_state::cybikoxt(machine_config &config)
subdevice<h8_sci_device>("maincpu:sci2")->tx_handler().set("debug_serial", FUNC(rs232_port_device::write_txd));
// quickload
- QUICKLOAD(config.replace(), "quickload", "bin,nv").set_load_callback(FUNC(cybiko_state::quickload_cybikoxt), this);
+ QUICKLOAD(config.replace(), "quickload", "bin,nv").set_load_callback(FUNC(cybiko_state::quickload_cybikoxt));
}
/////////
diff --git a/src/mame/drivers/cz101.cpp b/src/mame/drivers/cz101.cpp
index 3ece028eed4..3798b82d4e5 100644
--- a/src/mame/drivers/cz101.cpp
+++ b/src/mame/drivers/cz101.cpp
@@ -405,7 +405,7 @@ void cz101_state::cz101(machine_config &config)
HD44780(config, m_hd44780, 0);
m_hd44780->set_lcd_size(2, 16);
- m_hd44780->set_pixel_update_cb(FUNC(cz101_state::lcd_pixel_update), this);
+ m_hd44780->set_pixel_update_cb(FUNC(cz101_state::lcd_pixel_update));
config.set_default_layout(layout_cz101);
}
diff --git a/src/mame/drivers/d6800.cpp b/src/mame/drivers/d6800.cpp
index 5903ef4c6d3..ced66c31a75 100644
--- a/src/mame/drivers/d6800.cpp
+++ b/src/mame/drivers/d6800.cpp
@@ -445,7 +445,7 @@ void d6800_state::d6800(machine_config &config)
TIMER(config, "kansas_r").configure_periodic(FUNC(d6800_state::kansas_r), attotime::from_hz(40000));
/* quickload */
- QUICKLOAD(config, "quickload", "bin,c8,ch8", attotime::from_seconds(1)).set_load_callback(FUNC(d6800_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "bin,c8,ch8", attotime::from_seconds(1)).set_load_callback(FUNC(d6800_state::quickload_cb));
}
/* ROMs */
diff --git a/src/mame/drivers/d6809.cpp b/src/mame/drivers/d6809.cpp
index 24525bcc328..52360ee24f1 100644
--- a/src/mame/drivers/d6809.cpp
+++ b/src/mame/drivers/d6809.cpp
@@ -158,7 +158,7 @@ void d6809_state::mem_map(address_map &map)
//map(0x00f0, 0x00f0).r(m_fdc, FUNC(upd765a_device::msr_r));
map(0x00ff, 0x00ff).rw(FUNC(d6809_state::term_r), FUNC(d6809_state::term_w));
map(0x0200, 0x0201).mirror(0xfe).m(m_fdc, FUNC(upd765a_device::map));
- map(0x0300, 0x0300).mirror(0xff).lw8("tc", [this](u8 data){ m_fdc->tc_w(1); m_fdc->tc_w(0); } );
+ map(0x0300, 0x0300).mirror(0xff).lw8(NAME([this] (u8 data){ m_fdc->tc_w(1); m_fdc->tc_w(0); }));
map(0x1000, 0xdfff).ram();
map(0xe000, 0xffff).rom().region("roms", 0);
}
diff --git a/src/mame/drivers/d9final.cpp b/src/mame/drivers/d9final.cpp
index 41fb3d33b0e..adcb78987ab 100644
--- a/src/mame/drivers/d9final.cpp
+++ b/src/mame/drivers/d9final.cpp
@@ -90,7 +90,7 @@ TILE_GET_INFO_MEMBER(d9final_state::get_sc0_tile_info)
void d9final_state::video_start()
{
- m_sc0_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(d9final_state::get_sc0_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,32);
+ m_sc0_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(d9final_state::get_sc0_tile_info)), TILEMAP_SCAN_ROWS, 8,8,64,32);
}
uint32_t d9final_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
diff --git a/src/mame/drivers/dacholer.cpp b/src/mame/drivers/dacholer.cpp
index 015d0fa5834..28fc721569a 100644
--- a/src/mame/drivers/dacholer.cpp
+++ b/src/mame/drivers/dacholer.cpp
@@ -138,8 +138,8 @@ TILE_GET_INFO_MEMBER(dacholer_state::get_fg_tile_info)
void dacholer_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(dacholer_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(dacholer_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dacholer_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dacholer_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(0);
}
@@ -714,7 +714,7 @@ void dacholer_state::itaten(machine_config &config)
m_audiocpu->set_addrmap(AS_PROGRAM, &dacholer_state::itaten_snd_map);
m_audiocpu->set_addrmap(AS_IO, &dacholer_state::itaten_snd_io_map);
- m_audiocpu->set_vblank_int(device_interrupt_delegate(), nullptr);
+ m_audiocpu->remove_vblank_int();
m_gfxdecode->set_info(gfx_itaten);
diff --git a/src/mame/drivers/dassault.cpp b/src/mame/drivers/dassault.cpp
index 6dac523c34a..4795bae0eda 100644
--- a/src/mame/drivers/dassault.cpp
+++ b/src/mame/drivers/dassault.cpp
@@ -565,8 +565,8 @@ void dassault_state::dassault(machine_config &config)
m_deco_tilegen[0]->set_pf2_col_bank(16);
m_deco_tilegen[0]->set_pf1_col_mask(0x0f);
m_deco_tilegen[0]->set_pf2_col_mask(0x0f);
- m_deco_tilegen[0]->set_bank1_callback(FUNC(dassault_state::bank_callback), this);
- m_deco_tilegen[0]->set_bank2_callback(FUNC(dassault_state::bank_callback), this);
+ m_deco_tilegen[0]->set_bank1_callback(FUNC(dassault_state::bank_callback));
+ m_deco_tilegen[0]->set_bank2_callback(FUNC(dassault_state::bank_callback));
m_deco_tilegen[0]->set_pf12_8x8_bank(0);
m_deco_tilegen[0]->set_pf12_16x16_bank(1);
m_deco_tilegen[0]->set_gfxdecode_tag("gfxdecode");
@@ -580,8 +580,8 @@ void dassault_state::dassault(machine_config &config)
m_deco_tilegen[1]->set_pf2_col_bank(16);
m_deco_tilegen[1]->set_pf1_col_mask(0x0f);
m_deco_tilegen[1]->set_pf2_col_mask(0x0f);
- m_deco_tilegen[1]->set_bank1_callback(FUNC(dassault_state::bank_callback), this);
- m_deco_tilegen[1]->set_bank2_callback(FUNC(dassault_state::bank_callback), this);
+ m_deco_tilegen[1]->set_bank1_callback(FUNC(dassault_state::bank_callback));
+ m_deco_tilegen[1]->set_bank2_callback(FUNC(dassault_state::bank_callback));
m_deco_tilegen[1]->set_pf12_8x8_bank(0);
m_deco_tilegen[1]->set_pf12_16x16_bank(2);
m_deco_tilegen[1]->set_gfxdecode_tag("gfxdecode");
diff --git a/src/mame/drivers/dblewing.cpp b/src/mame/drivers/dblewing.cpp
index 5dbd3d027a1..4b9230db575 100644
--- a/src/mame/drivers/dblewing.cpp
+++ b/src/mame/drivers/dblewing.cpp
@@ -376,15 +376,15 @@ void dblewing_state::dblewing(machine_config &config)
m_deco_tilegen->set_pf2_col_bank(0x10);
m_deco_tilegen->set_pf1_col_mask(0x0f);
m_deco_tilegen->set_pf2_col_mask(0x0f);
- m_deco_tilegen->set_bank1_callback(FUNC(dblewing_state::bank_callback), this);
- m_deco_tilegen->set_bank2_callback(FUNC(dblewing_state::bank_callback), this);
+ m_deco_tilegen->set_bank1_callback(FUNC(dblewing_state::bank_callback));
+ m_deco_tilegen->set_bank2_callback(FUNC(dblewing_state::bank_callback));
m_deco_tilegen->set_pf12_8x8_bank(0);
m_deco_tilegen->set_pf12_16x16_bank(1);
m_deco_tilegen->set_gfxdecode_tag("gfxdecode");
DECO_SPRITE(config, m_sprgen, 0);
m_sprgen->set_gfx_region(2);
- m_sprgen->set_pri_callback(FUNC(dblewing_state::pri_callback), this);
+ m_sprgen->set_pri_callback(FUNC(dblewing_state::pri_callback));
m_sprgen->set_gfxdecode_tag("gfxdecode");
DECO104PROT(config, m_deco104, 0);
diff --git a/src/mame/drivers/dbz.cpp b/src/mame/drivers/dbz.cpp
index 160c23da091..2f587e406b6 100644
--- a/src/mame/drivers/dbz.cpp
+++ b/src/mame/drivers/dbz.cpp
@@ -125,7 +125,7 @@ void dbz_state::dbz_map(address_map &map)
map(0x4d4000, 0x4d401f).w(m_k053936_2, FUNC(k053936_device::ctrl_w));
map(0x4e0000, 0x4e0001).portr("P1_P2");
map(0x4e0002, 0x4e0003).portr("SYSTEM_DSW1");
- map(0x4e4000, 0x4e4001).lr8("4e4000", [this]() { return uint8_t(m_dsw2->read()); });
+ map(0x4e4000, 0x4e4001).lr8(NAME([this]() { return uint8_t(m_dsw2->read()); }));
map(0x4e8000, 0x4e8001).nopw();
map(0x4ec000, 0x4ec001).w(FUNC(dbz_state::dbzcontrol_w));
map(0x4f0000, 0x4f0001).w(FUNC(dbz_state::dbz_sound_command_w));
@@ -349,12 +349,12 @@ void dbz_state::dbz(machine_config &config)
PALETTE(config, "palette").set_format(palette_device::xRGB_555, 0x4000/2).enable_shadows();
K056832(config, m_k056832, 0);
- m_k056832->set_tile_callback(FUNC(dbz_state::tile_callback), this);
+ m_k056832->set_tile_callback(FUNC(dbz_state::tile_callback));
m_k056832->set_config(K056832_BPP_4, 1, 1);
m_k056832->set_palette("palette");
K053246(config, m_k053246, 0);
- m_k053246->set_sprite_callback(FUNC(dbz_state::sprite_callback), this);
+ m_k053246->set_sprite_callback(FUNC(dbz_state::sprite_callback));
m_k053246->set_config(NORMAL_PLANE_ORDER, -87, 32); // or -52, 16?
m_k053246->set_palette("palette");
diff --git a/src/mame/drivers/dccons.cpp b/src/mame/drivers/dccons.cpp
index 3178e75574a..5d5ea161b95 100644
--- a/src/mame/drivers/dccons.cpp
+++ b/src/mame/drivers/dccons.cpp
@@ -305,14 +305,14 @@ void dc_cons_state::init_dc()
void dc_cons_state::init_dcus()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xc2303b0, 0xc2303b7, read64_delegate(FUNC(dc_cons_state::dcus_idle_skip_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xc2303b0, 0xc2303b7, read64_delegate(*this, FUNC(dc_cons_state::dcus_idle_skip_r)));
init_dc();
}
void dc_cons_state::init_dcjp()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xc2302f8, 0xc2302ff, read64_delegate(FUNC(dc_cons_state::dcjp_idle_skip_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xc2302f8, 0xc2302ff, read64_delegate(*this, FUNC(dc_cons_state::dcjp_idle_skip_r)));
init_dc();
}
diff --git a/src/mame/drivers/ddayjlc.cpp b/src/mame/drivers/ddayjlc.cpp
index 02a18490774..0f3523be9e8 100644
--- a/src/mame/drivers/ddayjlc.cpp
+++ b/src/mame/drivers/ddayjlc.cpp
@@ -175,8 +175,8 @@ TILE_GET_INFO_MEMBER(ddayjlc_state::get_tile_info_fg)
void ddayjlc_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ddayjlc_state::get_tile_info_bg),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ddayjlc_state::get_tile_info_fg),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ddayjlc_state::get_tile_info_bg)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ddayjlc_state::get_tile_info_fg)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_bg_tilemap->set_transparent_pen(0);
m_fg_tilemap->set_transparent_pen(0);
diff --git a/src/mame/drivers/ddealer.cpp b/src/mame/drivers/ddealer.cpp
index dbec61011c7..7a64cffe3a8 100644
--- a/src/mame/drivers/ddealer.cpp
+++ b/src/mame/drivers/ddealer.cpp
@@ -204,7 +204,7 @@ TILE_GET_INFO_MEMBER(ddealer_state::get_back_tile_info)
void ddealer_state::video_start()
{
- m_back_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ddealer_state::get_back_tile_info),this), TILEMAP_SCAN_COLS, 8, 8, 64, 32);
+ m_back_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ddealer_state::get_back_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 64, 32);
}
void ddealer_state::draw_video_layer(uint16_t* vreg_base, uint16_t* top, uint16_t* bottom, bitmap_ind16 &bitmap, const rectangle &cliprect, int flipy)
@@ -681,7 +681,7 @@ READ16_MEMBER(ddealer_state::mcu_r)
void ddealer_state::init_ddealer()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xfe01c, 0xfe01d, read16_delegate(FUNC(ddealer_state::mcu_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xfe01c, 0xfe01d, read16_delegate(*this, FUNC(ddealer_state::mcu_r)));
}
ROM_START( ddealer )
diff --git a/src/mame/drivers/ddenlovr.cpp b/src/mame/drivers/ddenlovr.cpp
index 848056549a1..47e5d510ac8 100644
--- a/src/mame/drivers/ddenlovr.cpp
+++ b/src/mame/drivers/ddenlovr.cpp
@@ -12919,7 +12919,7 @@ ROM_END
void ddenlovr_state::init_momotaro()
{
- m_maincpu->space(AS_IO).install_read_handler(0xe0, 0xe0, read8_delegate(FUNC(ddenlovr_state::momotaro_protection_r),this));
+ m_maincpu->space(AS_IO).install_read_handler(0xe0, 0xe0, read8_delegate(*this, FUNC(ddenlovr_state::momotaro_protection_r)));
}
/***************************************************************************
diff --git a/src/mame/drivers/deadang.cpp b/src/mame/drivers/deadang.cpp
index 6cbae850333..4668803308a 100644
--- a/src/mame/drivers/deadang.cpp
+++ b/src/mame/drivers/deadang.cpp
@@ -733,8 +733,8 @@ void deadang_state::init_ghunter()
m_adpcm1->decrypt();
m_adpcm2->decrypt();
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x80000, 0x80001, read16_delegate(FUNC(deadang_state::ghunter_trackball_low_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xb0000, 0xb0001, read16_delegate(FUNC(deadang_state::ghunter_trackball_high_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x80000, 0x80001, read16_delegate(*this, FUNC(deadang_state::ghunter_trackball_low_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xb0000, 0xb0001, read16_delegate(*this, FUNC(deadang_state::ghunter_trackball_high_r)));
}
/* Game Drivers */
diff --git a/src/mame/drivers/dec0.cpp b/src/mame/drivers/dec0.cpp
index 1b78501b745..8d7304198ad 100644
--- a/src/mame/drivers/dec0.cpp
+++ b/src/mame/drivers/dec0.cpp
@@ -1860,7 +1860,7 @@ void dec0_automat_state::automat(machine_config &config)
m_tilegen[2]->set_gfxdecode_tag("gfxdecode");
DECO_MXC06(config, m_spritegen, 0);
- m_spritegen->set_colpri_callback(FUNC(dec0_automat_state::robocop_colpri_cb), this);
+ m_spritegen->set_colpri_callback(FUNC(dec0_automat_state::robocop_colpri_cb));
PALETTE(config, m_palette).set_format(palette_device::xBGR_444, 1024);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_automat);
@@ -1986,7 +1986,7 @@ void dec0_state::hbarrel(machine_config &config)
/* video hardware */
m_screen->set_screen_update(FUNC(dec0_state::screen_update_hbarrel));
- m_spritegen->set_colpri_callback(FUNC(dec0_state::hbarrel_colpri_cb), this);
+ m_spritegen->set_colpri_callback(FUNC(dec0_state::hbarrel_colpri_cb));
}
void dec0_state::bandit(machine_config &config)
@@ -2012,7 +2012,7 @@ void dec0_state::bandit(machine_config &config)
/* video hardware */
m_screen->set_screen_update(FUNC(dec0_state::screen_update_bandit));
- m_spritegen->set_colpri_callback(FUNC(dec0_state::bandit_colpri_cb), this);
+ m_spritegen->set_colpri_callback(FUNC(dec0_state::bandit_colpri_cb));
}
void dec0_state::baddudes(machine_config &config)
@@ -2080,7 +2080,7 @@ void dec0_state::robocop(machine_config &config)
/* video hardware */
m_screen->set_screen_update(FUNC(dec0_state::screen_update_robocop));
- m_spritegen->set_colpri_callback(FUNC(dec0_state::robocop_colpri_cb), this);
+ m_spritegen->set_colpri_callback(FUNC(dec0_state::robocop_colpri_cb));
}
void dec0_state::robocopb(machine_config &config)
@@ -2089,7 +2089,7 @@ void dec0_state::robocopb(machine_config &config)
/* video hardware */
m_screen->set_screen_update(FUNC(dec0_state::screen_update_robocop));
- m_spritegen->set_colpri_callback(FUNC(dec0_state::robocop_colpri_cb), this);
+ m_spritegen->set_colpri_callback(FUNC(dec0_state::robocop_colpri_cb));
}
void dec0_state::hippodrm(machine_config &config)
@@ -2171,7 +2171,7 @@ void dec0_state::midres(machine_config &config)
/* video hardware */
m_screen->set_screen_update(FUNC(dec0_state::screen_update_midres));
- m_spritegen->set_colpri_callback(FUNC(dec0_state::midres_colpri_cb), this);
+ m_spritegen->set_colpri_callback(FUNC(dec0_state::midres_colpri_cb));
m_gfxdecode->set_info(gfx_midres);
}
@@ -4018,10 +4018,10 @@ ROM_END
void dec0_state::init_midresb()
{
-// m_maincpu->space(AS_PROGRAM).install_read_handler(0x00180000, 0x0018000f, read16_delegate(FUNC(dec0_state::dec0_controls_r),this));
-// m_maincpu->space(AS_PROGRAM).install_read_handler(0x001a0000, 0x001a000f, read16_delegate(FUNC(dec0_state::dec0_rotary_r),this));
+// m_maincpu->space(AS_PROGRAM).install_read_handler(0x00180000, 0x0018000f, read16_delegate(*this, FUNC(dec0_state::dec0_controls_r)));
+// m_maincpu->space(AS_PROGRAM).install_read_handler(0x001a0000, 0x001a000f, read16_delegate(*this, FUNC(dec0_state::dec0_rotary_r)));
-// m_maincpu->space(AS_PROGRAM).install_write_handler(0x00180014, 0x00180015, write16_delegate(FUNC(dec0_state::midres_sound_w),this));
+// m_maincpu->space(AS_PROGRAM).install_write_handler(0x00180014, 0x00180015, write16_delegate(*this, FUNC(dec0_state::midres_sound_w)));
}
READ16_MEMBER(dec0_state::ffantasybl_242024_r)
@@ -4041,7 +4041,7 @@ void dec0_state::init_ffantasybl()
{
m_maincpu->space(AS_PROGRAM).install_ram(0x24c880, 0x24cbff); // what is this? layer 3-related??
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x00242024, 0x00242025, read16_delegate(FUNC(dec0_state::ffantasybl_242024_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x00242024, 0x00242025, read16_delegate(*this, FUNC(dec0_state::ffantasybl_242024_r)));
m_maincpu->space(AS_PROGRAM).install_read_port(0x00ff87ee, 0x00ff87ef, "VBLANK");
}
diff --git a/src/mame/drivers/dec8.cpp b/src/mame/drivers/dec8.cpp
index 00fa911bceb..09927ceef9a 100644
--- a/src/mame/drivers/dec8.cpp
+++ b/src/mame/drivers/dec8.cpp
@@ -2024,7 +2024,7 @@ void dec8_state::gondo(machine_config &config)
BUFFERED_SPRITERAM8(config, m_spriteram);
DECO_KARNOVSPRITES(config, m_spritegen_krn, 0);
- m_spritegen_krn->set_colpri_callback(FUNC(dec8_state::gondo_colpri_cb), this);
+ m_spritegen_krn->set_colpri_callback(FUNC(dec8_state::gondo_colpri_cb));
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
// m_screen->set_refresh_hz(58);
@@ -2156,7 +2156,7 @@ void dec8_state::ghostb(machine_config &config)
GFXDECODE(config, m_gfxdecode, m_palette, gfx_ghostb);
DECO_RMC3(config, m_palette, 0, 1024); // xxxxBBBBGGGGRRRR with custom weighting
m_palette->set_prom_region("proms");
- m_palette->set_init("palette", FUNC(deco_rmc3_device::palette_init_proms));
+ m_palette->set_init(m_palette, FUNC(deco_rmc3_device::palette_init_proms));
MCFG_VIDEO_START_OVERRIDE(dec8_state,ghostb)
/* sound hardware */
@@ -2365,7 +2365,7 @@ void dec8_state::cobracom(machine_config &config)
m_tilegen[1]->set_gfxdecode_tag(m_gfxdecode);
DECO_MXC06(config, m_spritegen_mxc, 0);
- m_spritegen_mxc->set_colpri_callback(FUNC(dec8_state::cobracom_colpri_cb), this);
+ m_spritegen_mxc->set_colpri_callback(FUNC(dec8_state::cobracom_colpri_cb));
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
// m_screen->set_refresh_hz(58);
diff --git a/src/mame/drivers/deco156.cpp b/src/mame/drivers/deco156.cpp
index 311113bb7a8..19660061e87 100644
--- a/src/mame/drivers/deco156.cpp
+++ b/src/mame/drivers/deco156.cpp
@@ -342,15 +342,15 @@ void deco156_state::hvysmsh(machine_config &config)
m_deco_tilegen->set_pf2_col_bank(0x10);
m_deco_tilegen->set_pf1_col_mask(0x0f);
m_deco_tilegen->set_pf2_col_mask(0x0f);
- m_deco_tilegen->set_bank1_callback(FUNC(deco156_state::bank_callback), this);
- m_deco_tilegen->set_bank2_callback(FUNC(deco156_state::bank_callback), this);
+ m_deco_tilegen->set_bank1_callback(FUNC(deco156_state::bank_callback));
+ m_deco_tilegen->set_bank2_callback(FUNC(deco156_state::bank_callback));
m_deco_tilegen->set_pf12_8x8_bank(0);
m_deco_tilegen->set_pf12_16x16_bank(1);
m_deco_tilegen->set_gfxdecode_tag("gfxdecode");
DECO_SPRITE(config, m_sprgen, 0);
m_sprgen->set_gfx_region(2);
- m_sprgen->set_pri_callback(FUNC(deco156_state::pri_callback), this);
+ m_sprgen->set_pri_callback(FUNC(deco156_state::pri_callback));
m_sprgen->set_gfxdecode_tag("gfxdecode");
/* sound hardware */
@@ -394,15 +394,15 @@ void deco156_state::wcvol95(machine_config &config)
m_deco_tilegen->set_pf2_col_bank(0x10);
m_deco_tilegen->set_pf1_col_mask(0x0f);
m_deco_tilegen->set_pf2_col_mask(0x0f);
- m_deco_tilegen->set_bank1_callback(FUNC(deco156_state::bank_callback), this);
- m_deco_tilegen->set_bank2_callback(FUNC(deco156_state::bank_callback), this);
+ m_deco_tilegen->set_bank1_callback(FUNC(deco156_state::bank_callback));
+ m_deco_tilegen->set_bank2_callback(FUNC(deco156_state::bank_callback));
m_deco_tilegen->set_pf12_8x8_bank(0);
m_deco_tilegen->set_pf12_16x16_bank(1);
m_deco_tilegen->set_gfxdecode_tag("gfxdecode");
DECO_SPRITE(config, m_sprgen, 0);
m_sprgen->set_gfx_region(2);
- m_sprgen->set_pri_callback(FUNC(deco156_state::pri_callback), this);
+ m_sprgen->set_pri_callback(FUNC(deco156_state::pri_callback));
m_sprgen->set_gfxdecode_tag("gfxdecode");
/* sound hardware */
diff --git a/src/mame/drivers/deco32.cpp b/src/mame/drivers/deco32.cpp
index 27acb9b07c7..15467e651c0 100644
--- a/src/mame/drivers/deco32.cpp
+++ b/src/mame/drivers/deco32.cpp
@@ -394,9 +394,9 @@ void captaven_state::captaven_map(address_map &map)
map(0x130000, 0x131fff).ram().w(m_palette, FUNC(palette_device::write32)).share("palette");
map(0x148000, 0x14800f).m(m_deco_irq, FUNC(deco_irq_device::map)).umask32(0x000000ff);
map(0x160000, 0x167fff).ram(); /* Extra work RAM */
- map(0x168000, 0x168000).lr8("dsw1_r", [this]() { return m_io_dsw[0]->read(); });
- map(0x168001, 0x168001).lr8("dsw2_r", [this]() { return m_io_dsw[1]->read(); });
- map(0x168002, 0x168002).lr8("dsw3_r", [this]() { return m_io_dsw[2]->read(); });
+ map(0x168000, 0x168000).lr8(NAME([this] () { return m_io_dsw[0]->read(); }));
+ map(0x168001, 0x168001).lr8(NAME([this] () { return m_io_dsw[1]->read(); }));
+ map(0x168002, 0x168002).lr8(NAME([this] () { return m_io_dsw[2]->read(); }));
map(0x168003, 0x168003).r(FUNC(captaven_state::captaven_soundcpu_status_r));
map(0x178000, 0x178003).w(FUNC(captaven_state::pri_w));
map(0x180000, 0x18001f).rw("tilegen1", FUNC(deco16ic_device::pf_control_dword_r), FUNC(deco16ic_device::pf_control_dword_w));
@@ -418,8 +418,8 @@ void fghthist_state::fghthist_map(address_map &map)
// map(0x000000, 0x001fff).rom().w(FUNC(fghthist_state::pf1_data_w)); // wtf??
map(0x000000, 0x0fffff).rom();
map(0x100000, 0x11ffff).ram();
- map(0x120020, 0x120021).lr16("in0_r", [this]() { return m_io_in[0]->read(); });
- map(0x120024, 0x120025).lr16("in1_r", [this]() { return m_io_in[1]->read(); });
+ map(0x120020, 0x120021).lr16(NAME([this] () { return m_io_in[0]->read(); }));
+ map(0x120024, 0x120025).lr16(NAME([this] () { return m_io_in[1]->read(); }));
map(0x120028, 0x120028).r(FUNC(fghthist_state::eeprom_r));
map(0x12002c, 0x12002c).w(FUNC(fghthist_state::eeprom_w));
map(0x12002d, 0x12002d).w(FUNC(fghthist_state::volume_w));
@@ -1884,7 +1884,7 @@ void captaven_state::captaven(machine_config &config)
m_deco_tilegen[1]->set_pf2_col_bank(0x00);
m_deco_tilegen[1]->set_pf1_col_mask(0x0f);
m_deco_tilegen[1]->set_pf2_col_mask(0x00);
- m_deco_tilegen[1]->set_bank1_callback(FUNC(captaven_state::bank_callback), this);
+ m_deco_tilegen[1]->set_bank1_callback(FUNC(captaven_state::bank_callback));
// no bank2 callback
m_deco_tilegen[1]->set_pf12_8x8_bank(0);
m_deco_tilegen[1]->set_pf12_16x16_bank(2);
@@ -1892,7 +1892,7 @@ void captaven_state::captaven(machine_config &config)
DECO_SPRITE(config, m_sprgen[0], 0);
m_sprgen[0]->set_gfx_region(3);
- m_sprgen[0]->set_pri_callback(FUNC(captaven_state::captaven_pri_callback), this);
+ m_sprgen[0]->set_pri_callback(FUNC(captaven_state::captaven_pri_callback));
m_sprgen[0]->set_gfxdecode_tag(m_gfxdecode);
DECO146PROT(config, m_ioprot, 0);
@@ -1950,8 +1950,8 @@ void fghthist_state::fghthist(machine_config &config)
m_deco_tilegen[0]->set_pf2_col_bank(0x10);
m_deco_tilegen[0]->set_pf1_col_mask(0x0f);
m_deco_tilegen[0]->set_pf2_col_mask(0x0f);
- m_deco_tilegen[0]->set_bank1_callback(FUNC(fghthist_state::bank_callback), this);
- m_deco_tilegen[0]->set_bank2_callback(FUNC(fghthist_state::bank_callback), this);
+ m_deco_tilegen[0]->set_bank1_callback(FUNC(fghthist_state::bank_callback));
+ m_deco_tilegen[0]->set_bank2_callback(FUNC(fghthist_state::bank_callback));
m_deco_tilegen[0]->set_pf12_8x8_bank(0);
m_deco_tilegen[0]->set_pf12_16x16_bank(1);
m_deco_tilegen[0]->set_gfxdecode_tag(m_gfxdecode);
@@ -1965,8 +1965,8 @@ void fghthist_state::fghthist(machine_config &config)
m_deco_tilegen[1]->set_pf2_col_bank(0x30);
m_deco_tilegen[1]->set_pf1_col_mask(0x0f);
m_deco_tilegen[1]->set_pf2_col_mask(0x0f);
- m_deco_tilegen[1]->set_bank1_callback(FUNC(fghthist_state::bank_callback), this);
- m_deco_tilegen[1]->set_bank2_callback(FUNC(fghthist_state::bank_callback), this);
+ m_deco_tilegen[1]->set_bank1_callback(FUNC(fghthist_state::bank_callback));
+ m_deco_tilegen[1]->set_bank2_callback(FUNC(fghthist_state::bank_callback));
m_deco_tilegen[1]->set_pf12_8x8_bank(0);
m_deco_tilegen[1]->set_pf12_16x16_bank(2);
m_deco_tilegen[1]->set_gfxdecode_tag(m_gfxdecode);
@@ -2073,8 +2073,8 @@ void dragngun_state::dragngun(machine_config &config)
m_deco_tilegen[0]->set_pf2_col_bank(0x30);
m_deco_tilegen[0]->set_pf1_col_mask(0x0f);
m_deco_tilegen[0]->set_pf2_col_mask(0x0f);
- m_deco_tilegen[0]->set_bank1_callback(FUNC(dragngun_state::bank_1_callback), this);
- m_deco_tilegen[0]->set_bank2_callback(FUNC(dragngun_state::bank_1_callback), this);
+ m_deco_tilegen[0]->set_bank1_callback(FUNC(dragngun_state::bank_1_callback));
+ m_deco_tilegen[0]->set_bank2_callback(FUNC(dragngun_state::bank_1_callback));
m_deco_tilegen[0]->set_pf12_8x8_bank(0);
m_deco_tilegen[0]->set_pf12_16x16_bank(1);
m_deco_tilegen[0]->set_gfxdecode_tag(m_gfxdecode);
@@ -2088,7 +2088,7 @@ void dragngun_state::dragngun(machine_config &config)
m_deco_tilegen[1]->set_pf2_col_bank(0x04);
m_deco_tilegen[1]->set_pf1_col_mask(0x03);
m_deco_tilegen[1]->set_pf2_col_mask(0x03);
- m_deco_tilegen[1]->set_bank1_callback(FUNC(dragngun_state::bank_2_callback), this);
+ m_deco_tilegen[1]->set_bank1_callback(FUNC(dragngun_state::bank_2_callback));
// no bank2 callback
m_deco_tilegen[1]->set_pf12_8x8_bank(0);
m_deco_tilegen[1]->set_pf12_16x16_bank(2);
@@ -2199,8 +2199,8 @@ void dragngun_state::lockload(machine_config &config)
m_deco_tilegen[0]->set_pf2_col_bank(0x30);
m_deco_tilegen[0]->set_pf1_col_mask(0x0f);
m_deco_tilegen[0]->set_pf2_col_mask(0x0f);
- m_deco_tilegen[0]->set_bank1_callback(FUNC(dragngun_state::bank_1_callback), this);
- m_deco_tilegen[0]->set_bank2_callback(FUNC(dragngun_state::bank_1_callback), this);
+ m_deco_tilegen[0]->set_bank1_callback(FUNC(dragngun_state::bank_1_callback));
+ m_deco_tilegen[0]->set_bank2_callback(FUNC(dragngun_state::bank_1_callback));
m_deco_tilegen[0]->set_pf12_8x8_bank(0);
m_deco_tilegen[0]->set_pf12_16x16_bank(1);
m_deco_tilegen[0]->set_gfxdecode_tag(m_gfxdecode);
@@ -2214,7 +2214,7 @@ void dragngun_state::lockload(machine_config &config)
m_deco_tilegen[1]->set_pf2_col_bank(0x04);
m_deco_tilegen[1]->set_pf1_col_mask(0x03);
m_deco_tilegen[1]->set_pf2_col_mask(0x03);
- m_deco_tilegen[1]->set_bank1_callback(FUNC(dragngun_state::bank_2_callback), this);
+ m_deco_tilegen[1]->set_bank1_callback(FUNC(dragngun_state::bank_2_callback));
// no bank2 callback
m_deco_tilegen[1]->set_pf12_8x8_bank(0);
m_deco_tilegen[1]->set_pf12_16x16_bank(2);
@@ -2277,8 +2277,8 @@ void nslasher_state::tattass(machine_config &config)
m_deco_tilegen[0]->set_pf2_col_bank(0x10);
m_deco_tilegen[0]->set_pf1_col_mask(0x0f);
m_deco_tilegen[0]->set_pf2_col_mask(0x0f);
- m_deco_tilegen[0]->set_bank1_callback(FUNC(nslasher_state::bank_callback), this);
- m_deco_tilegen[0]->set_bank2_callback(FUNC(nslasher_state::bank_callback), this);
+ m_deco_tilegen[0]->set_bank1_callback(FUNC(nslasher_state::bank_callback));
+ m_deco_tilegen[0]->set_bank2_callback(FUNC(nslasher_state::bank_callback));
m_deco_tilegen[0]->set_pf12_8x8_bank(0);
m_deco_tilegen[0]->set_pf12_16x16_bank(1);
m_deco_tilegen[0]->set_gfxdecode_tag(m_gfxdecode);
@@ -2292,8 +2292,8 @@ void nslasher_state::tattass(machine_config &config)
m_deco_tilegen[1]->set_pf2_col_bank(0x30);
m_deco_tilegen[1]->set_pf1_col_mask(0x0f);
m_deco_tilegen[1]->set_pf2_col_mask(0x0f);
- m_deco_tilegen[1]->set_bank1_callback(FUNC(nslasher_state::bank_callback), this);
- m_deco_tilegen[1]->set_bank2_callback(FUNC(nslasher_state::bank_callback), this);
+ m_deco_tilegen[1]->set_bank1_callback(FUNC(nslasher_state::bank_callback));
+ m_deco_tilegen[1]->set_bank2_callback(FUNC(nslasher_state::bank_callback));
m_deco_tilegen[1]->set_pf12_8x8_bank(0);
m_deco_tilegen[1]->set_pf12_16x16_bank(2);
m_deco_tilegen[1]->set_gfxdecode_tag(m_gfxdecode);
@@ -2351,8 +2351,8 @@ void nslasher_state::nslasher(machine_config &config)
m_deco_tilegen[0]->set_pf2_col_bank(0x10);
m_deco_tilegen[0]->set_pf1_col_mask(0x0f);
m_deco_tilegen[0]->set_pf2_col_mask(0x0f);
- m_deco_tilegen[0]->set_bank1_callback(FUNC(nslasher_state::bank_callback), this);
- m_deco_tilegen[0]->set_bank2_callback(FUNC(nslasher_state::bank_callback), this);
+ m_deco_tilegen[0]->set_bank1_callback(FUNC(nslasher_state::bank_callback));
+ m_deco_tilegen[0]->set_bank2_callback(FUNC(nslasher_state::bank_callback));
m_deco_tilegen[0]->set_pf12_8x8_bank(0);
m_deco_tilegen[0]->set_pf12_16x16_bank(1);
m_deco_tilegen[0]->set_gfxdecode_tag(m_gfxdecode);
@@ -2366,8 +2366,8 @@ void nslasher_state::nslasher(machine_config &config)
m_deco_tilegen[1]->set_pf2_col_bank(0x30);
m_deco_tilegen[1]->set_pf1_col_mask(0x0f);
m_deco_tilegen[1]->set_pf2_col_mask(0x0f);
- m_deco_tilegen[1]->set_bank1_callback(FUNC(nslasher_state::bank_callback), this);
- m_deco_tilegen[1]->set_bank2_callback(FUNC(nslasher_state::bank_callback), this);
+ m_deco_tilegen[1]->set_bank1_callback(FUNC(nslasher_state::bank_callback));
+ m_deco_tilegen[1]->set_bank2_callback(FUNC(nslasher_state::bank_callback));
m_deco_tilegen[1]->set_pf12_8x8_bank(0);
m_deco_tilegen[1]->set_pf12_16x16_bank(2);
m_deco_tilegen[1]->set_gfxdecode_tag(m_gfxdecode);
diff --git a/src/mame/drivers/deco_mlc.cpp b/src/mame/drivers/deco_mlc.cpp
index d08332b6db9..b2f385759d3 100644
--- a/src/mame/drivers/deco_mlc.cpp
+++ b/src/mame/drivers/deco_mlc.cpp
@@ -961,7 +961,7 @@ void deco_mlc_state::init_avengrgs()
dynamic_cast<sh2_device *>(m_maincpu.target())->sh2drc_add_fastram(0x0280000, 0x029ffff, 0, &m_vram[0]);
m_irqLevel = 1;
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x01089a0, 0x01089a3, read32_delegate(FUNC(deco_mlc_state::avengrgs_speedup_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x01089a0, 0x01089a3, read32_delegate(*this, FUNC(deco_mlc_state::avengrgs_speedup_r)));
descramble_sound();
}
diff --git a/src/mame/drivers/decocass.cpp b/src/mame/drivers/decocass.cpp
index 6f19e913667..d33582d19e4 100644
--- a/src/mame/drivers/decocass.cpp
+++ b/src/mame/drivers/decocass.cpp
@@ -2065,14 +2065,14 @@ void decocass_state::init_decocrom()
/* convert charram to a banked ROM */
m_maincpu->space(AS_PROGRAM).install_read_bank(0x6000, 0xafff, "bank1");
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x6000, 0xafff, write8_delegate(FUNC(decocass_state::decocass_de0091_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x6000, 0xafff, write8_delegate(*this, FUNC(decocass_state::decocass_de0091_w)));
membank("bank1")->configure_entry(0, m_charram);
membank("bank1")->configure_entry(1, memregion("user3")->base());
membank("bank1")->configure_entry(2, memregion("user3")->base()+0x5000);
membank("bank1")->set_entry(0);
/* install the bank selector */
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xe900, 0xe900, write8_delegate(FUNC(decocass_state::decocass_e900_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xe900, 0xe900, write8_delegate(*this, FUNC(decocass_state::decocass_e900_w)));
}
READ8_MEMBER(decocass_state::cdsteljn_input_r )
@@ -2105,8 +2105,8 @@ void decocass_state::init_cdsteljn()
init_decocass();
/* install custom mahjong panel */
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xe413, 0xe413, write8_delegate(FUNC(decocass_state::cdsteljn_mux_w), this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xe600, 0xe6ff, read8_delegate(FUNC(decocass_state::cdsteljn_input_r), this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xe413, 0xe413, write8_delegate(*this, FUNC(decocass_state::cdsteljn_mux_w)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xe600, 0xe6ff, read8_delegate(*this, FUNC(decocass_state::cdsteljn_input_r)));
}
/* -- */ GAME( 1981, decocass, 0, decocass, decocass, decocass_state, init_decocass, ROT270, "Data East Corporation", "DECO Cassette System", MACHINE_IS_BIOS_ROOT )
diff --git a/src/mame/drivers/dectalk.cpp b/src/mame/drivers/dectalk.cpp
index 976fe06f711..87b4fe182cc 100644
--- a/src/mame/drivers/dectalk.cpp
+++ b/src/mame/drivers/dectalk.cpp
@@ -484,7 +484,7 @@ void dectalk_state::machine_start()
void dectalk_state::machine_reset()
{
/* hook the RESET line, which resets a slew of other components */
- m_maincpu->set_reset_callback(write_line_delegate(FUNC(dectalk_state::dectalk_reset),this));
+ m_maincpu->set_reset_callback(*this, FUNC(dectalk_state::dectalk_reset));
}
/* Begin 68k i/o handlers */
diff --git a/src/mame/drivers/dgn_beta.cpp b/src/mame/drivers/dgn_beta.cpp
index d1e3724d426..4fb86031887 100644
--- a/src/mame/drivers/dgn_beta.cpp
+++ b/src/mame/drivers/dgn_beta.cpp
@@ -383,7 +383,7 @@ void dgn_beta_state::dgnbeta(machine_config &config)
m_mc6845->set_screen("screen");
m_mc6845->set_show_border_area(false);
m_mc6845->set_char_width(16); /*?*/
- m_mc6845->set_update_row_callback(FUNC(dgn_beta_state::crtc_update_row), this);
+ m_mc6845->set_update_row_callback(FUNC(dgn_beta_state::crtc_update_row));
m_mc6845->out_vsync_callback().set(FUNC(dgn_beta_state::dgnbeta_vsync_changed));
/* internal ram */
diff --git a/src/mame/drivers/dietgo.cpp b/src/mame/drivers/dietgo.cpp
index 5b29e7b96bf..44394aa9b4e 100644
--- a/src/mame/drivers/dietgo.cpp
+++ b/src/mame/drivers/dietgo.cpp
@@ -228,8 +228,8 @@ void dietgo_state::dietgo(machine_config &config)
m_deco_tilegen->set_pf2_col_bank(0x10);
m_deco_tilegen->set_pf1_col_mask(0x0f);
m_deco_tilegen->set_pf2_col_mask(0x0f);
- m_deco_tilegen->set_bank1_callback(FUNC(dietgo_state::bank_callback), this);
- m_deco_tilegen->set_bank2_callback(FUNC(dietgo_state::bank_callback), this);
+ m_deco_tilegen->set_bank1_callback(FUNC(dietgo_state::bank_callback));
+ m_deco_tilegen->set_bank2_callback(FUNC(dietgo_state::bank_callback));
m_deco_tilegen->set_pf12_8x8_bank(0);
m_deco_tilegen->set_pf12_16x16_bank(1);
m_deco_tilegen->set_gfxdecode_tag("gfxdecode");
diff --git a/src/mame/drivers/dim68k.cpp b/src/mame/drivers/dim68k.cpp
index eb0f6b87f43..a2715a757a1 100644
--- a/src/mame/drivers/dim68k.cpp
+++ b/src/mame/drivers/dim68k.cpp
@@ -339,7 +339,7 @@ void dim68k_state::dim68k(machine_config &config)
m_crtc->set_screen("screen");
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8);
- m_crtc->set_update_row_callback(FUNC(dim68k_state::crtc_update_row), this);
+ m_crtc->set_update_row_callback(FUNC(dim68k_state::crtc_update_row));
generic_keyboard_device &keyboard(GENERIC_KEYBOARD(config, "keyboard", 0));
keyboard.set_keyboard_callback(FUNC(dim68k_state::kbd_put));
diff --git a/src/mame/drivers/divebomb.cpp b/src/mame/drivers/divebomb.cpp
index c33052b34a1..b4c598e5135 100644
--- a/src/mame/drivers/divebomb.cpp
+++ b/src/mame/drivers/divebomb.cpp
@@ -419,14 +419,14 @@ void divebomb_state::divebomb(machine_config &config)
m_k051316[0]->set_bpp(8);
m_k051316[0]->set_wrap(0);
m_k051316[0]->set_offsets(-88, -16);
- m_k051316[0]->set_zoom_callback(FUNC(divebomb_state::zoom_callback_1), this);
+ m_k051316[0]->set_zoom_callback(FUNC(divebomb_state::zoom_callback_1));
K051316(config, m_k051316[1], 0);
m_k051316[1]->set_palette(m_palette);
m_k051316[1]->set_bpp(8);
m_k051316[1]->set_wrap(0);
m_k051316[1]->set_offsets(-88, -16);
- m_k051316[1]->set_zoom_callback(FUNC(divebomb_state::zoom_callback_2), this);
+ m_k051316[1]->set_zoom_callback(FUNC(divebomb_state::zoom_callback_2));
MCFG_MACHINE_START_OVERRIDE(divebomb_state, divebomb)
MCFG_MACHINE_RESET_OVERRIDE(divebomb_state, divebomb)
diff --git a/src/mame/drivers/djmain.cpp b/src/mame/drivers/djmain.cpp
index b1deafa2fef..7dfe984f2c7 100644
--- a/src/mame/drivers/djmain.cpp
+++ b/src/mame/drivers/djmain.cpp
@@ -1403,7 +1403,7 @@ void djmain_state::djmainj(machine_config &config)
GFXDECODE(config, m_gfxdecode, m_palette, gfx_djmain);
K056832(config, m_k056832, 0);
- m_k056832->set_tile_callback(FUNC(djmain_state::tile_callback), this);
+ m_k056832->set_tile_callback(FUNC(djmain_state::tile_callback));
m_k056832->set_config(K056832_BPP_4dj, 1, 1);
m_k056832->set_palette(m_palette);
diff --git a/src/mame/drivers/dkong.cpp b/src/mame/drivers/dkong.cpp
index 6cf51e42734..c27d2bf1ec2 100644
--- a/src/mame/drivers/dkong.cpp
+++ b/src/mame/drivers/dkong.cpp
@@ -3633,8 +3633,8 @@ void dkong_state::init_strtheat()
drakton_decrypt_rom(0x88, 0x1c000, bs[3]);
/* custom handlers supporting Joystick or Steering Wheel */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x7c00, 0x7c00, read8_delegate(FUNC(dkong_state::strtheat_inputport_0_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x7c80, 0x7c80, read8_delegate(FUNC(dkong_state::strtheat_inputport_1_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x7c00, 0x7c00, read8_delegate(*this, FUNC(dkong_state::strtheat_inputport_0_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x7c80, 0x7c80, read8_delegate(*this, FUNC(dkong_state::strtheat_inputport_1_r)));
}
void dkong_state::dk_braze_decrypt()
@@ -3657,8 +3657,8 @@ void dkong_state::init_dkonghs()
dk_braze_decrypt();
address_space &space = m_maincpu->space(AS_PROGRAM);
- space.install_read_handler(0xc000, 0xc000, read8_delegate(FUNC(dkong_state::braze_eeprom_r), this));
- space.install_write_handler(0xc000, 0xc000, write8_delegate(FUNC(dkong_state::braze_eeprom_w), this));
+ space.install_read_handler(0xc000, 0xc000, read8_delegate(*this, FUNC(dkong_state::braze_eeprom_r)));
+ space.install_write_handler(0xc000, 0xc000, write8_delegate(*this, FUNC(dkong_state::braze_eeprom_w)));
}
void dkong_state::init_dkongx()
@@ -3666,10 +3666,10 @@ void dkong_state::init_dkongx()
dk_braze_decrypt();
address_space &space = m_maincpu->space(AS_PROGRAM);
- space.install_write_handler(0xe000, 0xe000, write8_delegate(FUNC(dkong_state::dk_braze_a15_w),this));
+ space.install_write_handler(0xe000, 0xe000, write8_delegate(*this, FUNC(dkong_state::dk_braze_a15_w)));
- space.install_read_handler(0xc800, 0xc800, read8_delegate(FUNC(dkong_state::braze_eeprom_r),this));
- space.install_write_handler(0xc800, 0xc800, write8_delegate(FUNC(dkong_state::braze_eeprom_w),this));
+ space.install_read_handler(0xc800, 0xc800, read8_delegate(*this, FUNC(dkong_state::braze_eeprom_r)));
+ space.install_write_handler(0xc800, 0xc800, write8_delegate(*this, FUNC(dkong_state::braze_eeprom_w)));
}
void dkong_state::init_dkong3hs()
@@ -3682,8 +3682,8 @@ void dkong_state::init_dkong3hs()
m_maincpu->space(AS_PROGRAM).install_rom(0x8000, 0xffff, m_decrypted.get() + 0x8000);
address_space &space = m_maincpu->space(AS_PROGRAM);
- space.install_read_handler(0xc000, 0xc000, read8_delegate(FUNC(dkong_state::braze_eeprom_r), this));
- space.install_write_handler(0xc000, 0xc000, write8_delegate(FUNC(dkong_state::braze_eeprom_w), this));
+ space.install_read_handler(0xc000, 0xc000, read8_delegate(*this, FUNC(dkong_state::braze_eeprom_r)));
+ space.install_write_handler(0xc000, 0xc000, write8_delegate(*this, FUNC(dkong_state::braze_eeprom_w)));
}
void dkong_state::init_dkingjr()
diff --git a/src/mame/drivers/dm7000.cpp b/src/mame/drivers/dm7000.cpp
index a7fdf980de0..44c03cde393 100644
--- a/src/mame/drivers/dm7000.cpp
+++ b/src/mame/drivers/dm7000.cpp
@@ -261,8 +261,8 @@ void dm7000_state::machine_reset()
dcr[DCRSTB045_FRAME_BUFR_BASE] = 0x0f000000;
m_scc0_lsr = UART_LSR_THRE | UART_LSR_TEMT;
- m_maincpu->ppc4xx_set_dcr_read_handler(read32_delegate(FUNC(dm7000_state::dcr_r),this));
- m_maincpu->ppc4xx_set_dcr_write_handler(write32_delegate(FUNC(dm7000_state::dcr_w),this));
+ m_maincpu->ppc4xx_set_dcr_read_handler(read32_delegate(*this, FUNC(dm7000_state::dcr_r)));
+ m_maincpu->ppc4xx_set_dcr_write_handler(write32_delegate(*this, FUNC(dm7000_state::dcr_w)));
}
void dm7000_state::video_start()
diff --git a/src/mame/drivers/dmndrby.cpp b/src/mame/drivers/dmndrby.cpp
index 1ed12af43c3..68a557fdf4a 100644
--- a/src/mame/drivers/dmndrby.cpp
+++ b/src/mame/drivers/dmndrby.cpp
@@ -374,7 +374,7 @@ void dmndrby_state::video_start()
m_bg = 0;
m_racetrack_tilemap_rom = memregion("user1")->base();
- m_racetrack_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(dmndrby_state::get_dmndrby_tile_info),this),TILEMAP_SCAN_ROWS,16,16, 16, 512);
+ m_racetrack_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dmndrby_state::get_dmndrby_tile_info)), TILEMAP_SCAN_ROWS, 16,16, 16, 512);
m_racetrack_tilemap->mark_all_dirty();
}
diff --git a/src/mame/drivers/dmv.cpp b/src/mame/drivers/dmv.cpp
index 484da90f4dc..4ac34f5f940 100644
--- a/src/mame/drivers/dmv.cpp
+++ b/src/mame/drivers/dmv.cpp
@@ -896,7 +896,7 @@ void dmv_state::dmv(machine_config &config)
SOFTWARE_LIST(config, "flop_list").set_original("dmv");
- QUICKLOAD(config, "quickload", "com,cpm", attotime::from_seconds(3)).set_load_callback(FUNC(dmv_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "com,cpm", attotime::from_seconds(3)).set_load_callback(FUNC(dmv_state::quickload_cb));
}
/* ROM definition */
diff --git a/src/mame/drivers/dooyong.cpp b/src/mame/drivers/dooyong.cpp
index 269e59cb5d2..8b37e9673c9 100644
--- a/src/mame/drivers/dooyong.cpp
+++ b/src/mame/drivers/dooyong.cpp
@@ -1641,15 +1641,15 @@ void dooyong_z80_state::bluehawk(machine_config &config)
PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 1024);
DOOYONG_ROM_TILEMAP(config, m_bg[0], m_gfxdecode, 2, "bg0", 0x3c000, 0x4000);
- m_bg[0]->set_tile_callback(dooyong_rom_tilemap_device::dooyong_tmap_cb_delegate(FUNC(dooyong_z80_state::bluehawk_tile_callback), this));
+ m_bg[0]->set_tile_callback(FUNC(dooyong_z80_state::bluehawk_tile_callback));
DOOYONG_ROM_TILEMAP(config, m_fg[0], m_gfxdecode, 3, "fg0", 0x3c000, 0x4000);
m_fg[0]->set_transparent_pen(15);
- m_fg[0]->set_tile_callback(dooyong_rom_tilemap_device::dooyong_tmap_cb_delegate(FUNC(dooyong_z80_state::bluehawk_tile_callback), this));
+ m_fg[0]->set_tile_callback(FUNC(dooyong_z80_state::bluehawk_tile_callback));
DOOYONG_ROM_TILEMAP(config, m_fg[1], m_gfxdecode, 4, "fg1", 0x1c000, 0x4000);
m_fg[1]->set_transparent_pen(15);
- m_fg[1]->set_tile_callback(dooyong_rom_tilemap_device::dooyong_tmap_cb_delegate(FUNC(dooyong_z80_state::bluehawk_tile_callback), this));
+ m_fg[1]->set_tile_callback(FUNC(dooyong_z80_state::bluehawk_tile_callback));
DOOYONG_RAM_TILEMAP(config, m_tx, m_gfxdecode, 0);
@@ -1722,11 +1722,11 @@ void dooyong_z80_state::primella(machine_config &config)
PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 1024);
DOOYONG_ROM_TILEMAP(config, m_bg[0], m_gfxdecode, 1, "bg0", -0x4000, 0x4000);
- m_bg[0]->set_tile_callback(dooyong_rom_tilemap_device::dooyong_tmap_cb_delegate(FUNC(dooyong_z80_state::bluehawk_tile_callback), this));
+ m_bg[0]->set_tile_callback(FUNC(dooyong_z80_state::bluehawk_tile_callback));
DOOYONG_ROM_TILEMAP(config, m_fg[0], m_gfxdecode, 2, "fg0", -0x4000, 0x4000);
m_fg[0]->set_transparent_pen(15);
- m_fg[0]->set_tile_callback(dooyong_rom_tilemap_device::dooyong_tmap_cb_delegate(FUNC(dooyong_z80_state::bluehawk_tile_callback), this));
+ m_fg[0]->set_tile_callback(FUNC(dooyong_z80_state::bluehawk_tile_callback));
DOOYONG_RAM_TILEMAP(config, m_tx, m_gfxdecode, 0);
@@ -1774,19 +1774,19 @@ void rshark_state::dooyong_68k(machine_config &config)
PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 2048);
RSHARK_ROM_TILEMAP(config, m_bg[0], m_gfxdecode, 4, "bg0", 0x00000, 0x20000, "tmap_hi", 0x60000, 0x20000);
- m_bg[0]->set_tile_callback(dooyong_rom_tilemap_device::dooyong_tmap_cb_delegate(FUNC(rshark_state::rshark_tile_callback), this));
+ m_bg[0]->set_tile_callback(FUNC(rshark_state::rshark_tile_callback));
RSHARK_ROM_TILEMAP(config, m_bg[1], m_gfxdecode, 3, "bg1", 0x00000, 0x20000, "tmap_hi", 0x40000, 0x20000);
m_bg[1]->set_transparent_pen(15);
- m_bg[1]->set_tile_callback(dooyong_rom_tilemap_device::dooyong_tmap_cb_delegate(FUNC(rshark_state::rshark_tile_callback), this));
+ m_bg[1]->set_tile_callback(FUNC(rshark_state::rshark_tile_callback));
RSHARK_ROM_TILEMAP(config, m_fg[0], m_gfxdecode, 2, "fg0", 0x00000, 0x20000, "tmap_hi", 0x20000, 0x20000);
m_fg[0]->set_transparent_pen(15);
- m_fg[0]->set_tile_callback(dooyong_rom_tilemap_device::dooyong_tmap_cb_delegate(FUNC(rshark_state::rshark_tile_callback), this));
+ m_fg[0]->set_tile_callback(FUNC(rshark_state::rshark_tile_callback));
RSHARK_ROM_TILEMAP(config, m_fg[1], m_gfxdecode, 1, "fg1", 0x00000, 0x20000, "tmap_hi", 0x00000, 0x20000);
m_fg[1]->set_transparent_pen(15);
- m_fg[1]->set_tile_callback(dooyong_rom_tilemap_device::dooyong_tmap_cb_delegate(FUNC(rshark_state::rshark_tile_callback), this));
+ m_fg[1]->set_tile_callback(FUNC(rshark_state::rshark_tile_callback));
// sound hardware
sound_2151_4mhz(config);
@@ -1832,10 +1832,10 @@ void popbingo_state::popbingo(machine_config &config)
PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 2048);
DOOYONG_ROM_TILEMAP(config, m_bg[0], m_gfxdecode, 1, "bg0", 0x00000, 0x4000);
- m_bg[0]->set_tile_callback(dooyong_rom_tilemap_device::dooyong_tmap_cb_delegate(FUNC(popbingo_state::popbingo_tile_callback), this));
+ m_bg[0]->set_tile_callback(FUNC(popbingo_state::popbingo_tile_callback));
DOOYONG_ROM_TILEMAP(config, m_bg[1], m_gfxdecode, 2, "bg1", 0x00000, 0x4000);
- m_bg[1]->set_tile_callback(dooyong_rom_tilemap_device::dooyong_tmap_cb_delegate(FUNC(popbingo_state::popbingo_tile_callback), this));
+ m_bg[1]->set_tile_callback(FUNC(popbingo_state::popbingo_tile_callback));
// sound hardware
sound_2151_4mhz(config);
diff --git a/src/mame/drivers/dpb7000.cpp b/src/mame/drivers/dpb7000.cpp
index 49007be8f58..b57a3857b44 100644
--- a/src/mame/drivers/dpb7000.cpp
+++ b/src/mame/drivers/dpb7000.cpp
@@ -1116,8 +1116,8 @@ void dpb7000_state::dpb7000(machine_config &config)
m_crtc->set_char_width(8);
m_crtc->set_show_border_area(false);
m_crtc->set_screen("screen");
- m_crtc->set_update_row_callback(FUNC(dpb7000_state::crtc_update_row), this);
- m_crtc->set_on_update_addr_change_callback(FUNC(dpb7000_state::crtc_addr_changed), this);
+ m_crtc->set_update_row_callback(FUNC(dpb7000_state::crtc_update_row));
+ m_crtc->set_on_update_addr_change_callback(FUNC(dpb7000_state::crtc_addr_changed));
// Disc Sequencer Card
AM2910(config, m_diskseq, 0); // We drive the clock manually from the driver
diff --git a/src/mame/drivers/dragon.cpp b/src/mame/drivers/dragon.cpp
index abb3c86e18f..035f9527f2c 100644
--- a/src/mame/drivers/dragon.cpp
+++ b/src/mame/drivers/dragon.cpp
@@ -339,7 +339,7 @@ void d64plus_state::d64plus(machine_config &config)
m_crtc->set_screen("plus_screen");
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8);
- m_crtc->set_update_row_callback(FUNC(d64plus_state::crtc_update_row), this);
+ m_crtc->set_update_row_callback(FUNC(d64plus_state::crtc_update_row));
}
void dragon_alpha_state::dgnalpha(machine_config &config)
diff --git a/src/mame/drivers/dreambal.cpp b/src/mame/drivers/dreambal.cpp
index 5d00c431368..806229b4e79 100644
--- a/src/mame/drivers/dreambal.cpp
+++ b/src/mame/drivers/dreambal.cpp
@@ -345,8 +345,8 @@ void dreambal_state::dreambal(machine_config &config)
m_deco_tilegen->set_pf2_col_bank(0x10);
m_deco_tilegen->set_pf1_col_mask(0x0f);
m_deco_tilegen->set_pf2_col_mask(0x0f);
- m_deco_tilegen->set_bank1_callback(FUNC(dreambal_state::bank_callback), this);
- m_deco_tilegen->set_bank2_callback(FUNC(dreambal_state::bank_callback), this);
+ m_deco_tilegen->set_bank1_callback(FUNC(dreambal_state::bank_callback));
+ m_deco_tilegen->set_bank2_callback(FUNC(dreambal_state::bank_callback));
m_deco_tilegen->set_pf12_8x8_bank(0);
m_deco_tilegen->set_pf12_16x16_bank(1);
m_deco_tilegen->set_gfxdecode_tag("gfxdecode");
diff --git a/src/mame/drivers/dreamwld.cpp b/src/mame/drivers/dreamwld.cpp
index 073aded87c4..a843328bd73 100644
--- a/src/mame/drivers/dreamwld.cpp
+++ b/src/mame/drivers/dreamwld.cpp
@@ -268,10 +268,10 @@ TILE_GET_INFO_MEMBER(dreamwld_state::get_tile_info)
void dreamwld_state::video_start()
{
- m_tilemap[0][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(dreamwld_state::get_tile_info<0>),this),TILEMAP_SCAN_ROWS, 16, 16, 64,64);
- m_tilemap[1][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(dreamwld_state::get_tile_info<1>),this),TILEMAP_SCAN_ROWS, 16, 16, 64,64);
- m_tilemap[0][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(dreamwld_state::get_tile_info<0>),this),TILEMAP_SCAN_ROWS, 16, 16, 128,32);
- m_tilemap[1][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(dreamwld_state::get_tile_info<1>),this),TILEMAP_SCAN_ROWS, 16, 16, 128,32);
+ m_tilemap[0][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dreamwld_state::get_tile_info<0>)), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
+ m_tilemap[1][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dreamwld_state::get_tile_info<1>)), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
+ m_tilemap[0][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dreamwld_state::get_tile_info<0>)), TILEMAP_SCAN_ROWS, 16, 16, 128, 32);
+ m_tilemap[1][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dreamwld_state::get_tile_info<1>)), TILEMAP_SCAN_ROWS, 16, 16, 128, 32);
m_tilemap[1][0]->set_transparent_pen(0);
m_tilemap[1][1]->set_transparent_pen(0);
@@ -424,7 +424,7 @@ void dreamwld_state::baryon_map(address_map &map)
map(0x804400, 0x805fff).ram().share("vregs");
map(0xc00000, 0xc00003).portr("INPUTS");
- map(0xc00004, 0xc00007).lr16("c00004", [this]() { return u16(m_dsw->read()); });
+ map(0xc00004, 0xc00007).lr16(NAME([this] () { return u16(m_dsw->read()); }));
map(0xc0000f, 0xc0000f).w(FUNC(dreamwld_state::okibank_w<0>)); // sfx
map(0xc00018, 0xc00018).rw("oki1", FUNC(okim6295_device::read), FUNC(okim6295_device::write)); // sfx
diff --git a/src/mame/drivers/drtomy.cpp b/src/mame/drivers/drtomy.cpp
index b5a4143b42e..8815d96aee1 100644
--- a/src/mame/drivers/drtomy.cpp
+++ b/src/mame/drivers/drtomy.cpp
@@ -142,8 +142,8 @@ void drtomy_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect
void drtomy_state::video_start()
{
- m_tilemap_bg = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(drtomy_state::get_tile_info_bg),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- m_tilemap_fg = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(drtomy_state::get_tile_info_fg),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_tilemap_bg = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(drtomy_state::get_tile_info_bg)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_tilemap_fg = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(drtomy_state::get_tile_info_fg)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
m_tilemap_fg->set_transparent_pen(0);
}
diff --git a/src/mame/drivers/drw80pkr.cpp b/src/mame/drivers/drw80pkr.cpp
index f47b0810145..a56563a1b45 100644
--- a/src/mame/drivers/drw80pkr.cpp
+++ b/src/mame/drivers/drw80pkr.cpp
@@ -338,7 +338,7 @@ TILE_GET_INFO_MEMBER(drw80pkr_state::get_bg_tile_info)
void drw80pkr_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(drw80pkr_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 24, 27);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(drw80pkr_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 24, 27);
}
uint32_t drw80pkr_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
diff --git a/src/mame/drivers/duet16.cpp b/src/mame/drivers/duet16.cpp
index de7e5b0cee1..458df489b45 100644
--- a/src/mame/drivers/duet16.cpp
+++ b/src/mame/drivers/duet16.cpp
@@ -422,7 +422,7 @@ void duet16_state::duet16(machine_config &config)
hd6845s_device &crtc(HD6845S(config, "crtc", 2000000)); // "46505S" on schematics
crtc.set_char_width(8);
- crtc.set_update_row_callback(FUNC(duet16_state::crtc_update_row), this);
+ crtc.set_update_row_callback(FUNC(duet16_state::crtc_update_row));
PALETTE(config, m_pal).set_entries(8);
PALETTE(config, m_chrpal, palette_device::BRG_3BIT);
diff --git a/src/mame/drivers/dunhuang.cpp b/src/mame/drivers/dunhuang.cpp
index 3740b7a78eb..4ec6c63c861 100644
--- a/src/mame/drivers/dunhuang.cpp
+++ b/src/mame/drivers/dunhuang.cpp
@@ -177,8 +177,8 @@ TILE_GET_INFO_MEMBER(dunhuang_state::get_tile_info2)
void dunhuang_state::video_start()
{
- m_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(dunhuang_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8,8, 0x40,0x20);
- m_tmap2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(dunhuang_state::get_tile_info2),this), TILEMAP_SCAN_ROWS, 8,32, 0x40,0x8);
+ m_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dunhuang_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 0x40,0x20);
+ m_tmap2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dunhuang_state::get_tile_info2)), TILEMAP_SCAN_ROWS, 8,32, 0x40,0x8);
m_tmap->set_transparent_pen(0);
m_tmap2->set_transparent_pen(0);
diff --git a/src/mame/drivers/dynadice.cpp b/src/mame/drivers/dynadice.cpp
index b3e216fa517..2018f35472f 100644
--- a/src/mame/drivers/dynadice.cpp
+++ b/src/mame/drivers/dynadice.cpp
@@ -237,8 +237,8 @@ TILE_GET_INFO_MEMBER(dynadice_state::get_tile_info)
void dynadice_state::video_start()
{
/* pacman - style videoram layout */
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(dynadice_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_top_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(dynadice_state::get_tile_info),this), TILEMAP_SCAN_COLS, 8, 8, 2, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dynadice_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_top_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dynadice_state::get_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 2, 32);
m_bg_tilemap->set_scrollx(0, -16);
}
diff --git a/src/mame/drivers/dynax.cpp b/src/mame/drivers/dynax.cpp
index e66d3b58acf..f026998efb1 100644
--- a/src/mame/drivers/dynax.cpp
+++ b/src/mame/drivers/dynax.cpp
@@ -1243,7 +1243,7 @@ void dynax_state::tenkai_map(address_map &map)
map(0x10050, 0x10050).w(FUNC(dynax_state::tenkai_priority_w)); // layer priority and enable
map(0x10054, 0x10054).w(FUNC(dynax_state::dynax_blit_backpen_w)); // Background Color
map(0x10058, 0x10058).w(FUNC(dynax_state::tenkai_blit_romregion_w)); // Blitter ROM bank
- map(0x10060, 0x1007f).lw8("mainlatch_w", [this](offs_t offset, u8 data) { m_mainlatch->write_d1(offset >> 2, data); });
+ map(0x10060, 0x1007f).lw8(NAME([this] (offs_t offset, u8 data) { m_mainlatch->write_d1(offset >> 2, data); }));
map(0x100c0, 0x100c0).w(FUNC(dynax_state::tenkai_ipsel_w));
map(0x100c1, 0x100c1).w(FUNC(dynax_state::tenkai_ip_w));
map(0x100c2, 0x100c3).r(FUNC(dynax_state::tenkai_ip_r));
diff --git a/src/mame/drivers/ec65.cpp b/src/mame/drivers/ec65.cpp
index 2dd004ce7a0..933a8a20fe0 100644
--- a/src/mame/drivers/ec65.cpp
+++ b/src/mame/drivers/ec65.cpp
@@ -178,7 +178,7 @@ void ec65_state::ec65(machine_config &config)
crtc.set_screen("screen");
crtc.set_show_border_area(false);
crtc.set_char_width(8); /*?*/
- crtc.set_update_row_callback(FUNC(ec65_state::crtc_update_row), this);
+ crtc.set_update_row_callback(FUNC(ec65_state::crtc_update_row));
/* devices */
PIA6821(config, PIA6821_TAG, 0);
diff --git a/src/mame/drivers/ecoinfr.cpp b/src/mame/drivers/ecoinfr.cpp
index f15158b1563..eeed824f546 100644
--- a/src/mame/drivers/ecoinfr.cpp
+++ b/src/mame/drivers/ecoinfr.cpp
@@ -778,11 +778,10 @@ void ecoinfr_state::ecoinfr(machine_config &config)
Z80(config, m_maincpu, 4000000);
m_maincpu->set_addrmap(AS_PROGRAM, &ecoinfr_state::memmap);
m_maincpu->set_addrmap(AS_IO, &ecoinfr_state::portmap);
- TIMER(config , "ectimer" , 0).configure_periodic(timer_device::expired_delegate(FUNC(ecoinfr_state::ecoinfr_irq_timer) , this) , attotime::from_hz(250));
+ TIMER(config , "ectimer" , 0).configure_periodic(FUNC(ecoinfr_state::ecoinfr_irq_timer), attotime::from_hz(250));
config.set_default_layout(layout_ecoinfr);
-
I8251(config, UPD8251_TAG, 0);
REEL(config, m_reel[0], ECOIN_200STEP_REEL, 12, 24, 0x09, 7, 200*2);
diff --git a/src/mame/drivers/efdt.cpp b/src/mame/drivers/efdt.cpp
index cf5bd51cdef..ef200da650c 100644
--- a/src/mame/drivers/efdt.cpp
+++ b/src/mame/drivers/efdt.cpp
@@ -221,8 +221,8 @@ TILE_GET_INFO_MEMBER(efdt_state::get_tile_info_1)
void efdt_state::video_start()
{
- m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(efdt_state::get_tile_info_0), this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(efdt_state::get_tile_info_1), this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(efdt_state::get_tile_info_0)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(efdt_state::get_tile_info_1)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_tilemap[0]->set_transparent_pen(0);
m_tilemap[1]->set_transparent_pen(0);
diff --git a/src/mame/drivers/egghunt.cpp b/src/mame/drivers/egghunt.cpp
index ce5844d122d..0362bf2f5b1 100644
--- a/src/mame/drivers/egghunt.cpp
+++ b/src/mame/drivers/egghunt.cpp
@@ -199,7 +199,7 @@ WRITE8_MEMBER(egghunt_state::egghunt_atram_w)
void egghunt_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(egghunt_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(egghunt_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
save_item(NAME(m_bgram));
save_item(NAME(m_spram));
diff --git a/src/mame/drivers/eispc.cpp b/src/mame/drivers/eispc.cpp
index 5cdeab5d12d..4a9636bfea4 100644
--- a/src/mame/drivers/eispc.cpp
+++ b/src/mame/drivers/eispc.cpp
@@ -244,145 +244,164 @@ void epc_state::epc_map(address_map &map)
void epc_state::epc_io(address_map &map)
{
- map(0x0000, 0x000f).mirror(0x10).lrw8("dma8237_rw",
+ map(0x0000, 0x000f).mirror(0x10).lrw8(
[this](offs_t offset) -> uint8_t
{
uint8_t data = m_dma8237a->read(offset);
LOGDMA("dma8237_r %04x\n", offset);
return data;
},
+ "dma8237_r",
[this](offs_t offset, uint8_t data)
{
LOGDMA("dma8237_w %04x: %02x\n", offset, data);
m_dma8237a->write(offset, data);
- }
+ },
+ "dma8237_w"
);
- map(0x0020, 0x0021).mirror(0x1e).lrw8("pic8259_rw",
+ map(0x0020, 0x0021).mirror(0x1e).lrw8(
[this](offs_t offset) -> uint8_t
{
uint8_t data = m_pic8259->read(offset);
LOGPIC("pic8259_r %04x: %02x\n", offset, data);
return data;
},
+ "pic8259_r",
[this](offs_t offset, uint8_t data)
{
LOGPIC("pic8259_w %04x: %02x\n", offset, data);
m_pic8259->write(offset, data);
- }
+ },
+ "pic8259_w"
);
- map(0x0040, 0x0043).mirror(0x1c).lrw8("pit8253_rw",
+ map(0x0040, 0x0043).mirror(0x1c).lrw8(
[this](offs_t offset) -> uint8_t
{
uint8_t data = m_pit8253->read(offset);
LOGPIT("pit8253_r %04x\n", offset);
return data;
},
+ "pit8253_r",
[this](offs_t offset, uint8_t data)
{
LOGPIT("pit8253_w %04x: %02x\n", offset, data);
m_pit8253->write(offset, data);
- }
+ },
+ "pit8253_w"
);
- map(0x0060, 0x0060).mirror(0x1c).lrw8("kbd_8251_data_rw",
+ map(0x0060, 0x0060).mirror(0x1c).lrw8(
[this]() -> uint8_t
{
uint8_t data = m_kbd8251->data_r();
LOGKBD("kbd8251_r %02x\n", data);
return data;
},
+ "kbd_8251_data_r",
[this](offs_t offset, uint8_t data)
{
LOGKBD("kbd8251_w 0x60 %02x\n", data);
m_kbd8251->data_w(data);
- }
+ },
+ "kbd_8251_data_w"
);
// NOTE: PPI Port A is not mapped
- map(0x0061, 0x0061).mirror(0x1c).lrw8("ppi8255_rw", // PPI Port B
+ map(0x0061, 0x0061).mirror(0x1c).lrw8( // PPI Port B
[this](offs_t offset) -> uint8_t
{
uint8_t data = m_ppi8255->read(1);
LOGPPI("ppi8255_r Port B: %02x\n", data);
return data;
},
+ "ppi8255_r",
[this](offs_t offset, uint8_t data)
{
LOGPPI("ppi8255_w Port B: %02x\n", data);
m_ppi8255->write(1, data);
- }
+ },
+ "ppi8255_w"
);
- map(0x0062, 0x0062).mirror(0x1c).lrw8("ppi8255_rw", // PPI Port C
+ map(0x0062, 0x0062).mirror(0x1c).lrw8( // PPI Port C
[this](offs_t offset) -> uint8_t
{
uint8_t data = m_ppi8255->read(2);
LOGPPI("ppi8255_r Port C: %02x\n", data);
return data;
},
+ "ppi8255_r",
[this](offs_t offset, uint8_t data)
{
LOGPPI("ppi8255_w Port C: %02x\n", data);
m_ppi8255->write(2, data);
- }
+ },
+ "ppi8255_w"
);
- map(0x0063, 0x0063).lrw8("ppi8255_rw", // PPI Control register
+ map(0x0063, 0x0063).lrw8( // PPI Control register
[this](offs_t offset) -> uint8_t
{
uint8_t data = m_ppi8255->read(3);
LOGPPI("ppi8255_r Control: %02x\n", data);
return data;
},
+ "ppi8255_r",
[this](offs_t offset, uint8_t data)
{
LOGPPI("ppi8255_w Control: %02x\n", data);
m_ppi8255->write(3, data);
- }
+ },
+ "ppi8255_w"
);
- map(0x0070, 0x0070).mirror(0x0e).lw8("i8251_data_w",
+ map(0x0070, 0x0070).mirror(0x0e).lw8(
[this](offs_t offset, uint8_t data)
{
LOGKBD("kbd8251_w 0x70: %02x\n", data);
m_kbd8251->data_w(data);
- }
+ },
+ "i8251_data_w"
);
- map(0x0071, 0x0071).mirror(0x0e).lrw8("kbd_8251_stat_ctrl_rw",
+ map(0x0071, 0x0071).mirror(0x0e).lrw8(
[this](offs_t offset) -> uint8_t
{
uint8_t stat = m_kbd8251->status_r();
//LOGKBD("kbd8251_status_r %02x\n", stat);
return stat;
},
+ "kbd_8251_stat_ctrl_r",
[this](offs_t offset, uint8_t data)
{
LOGKBD("kbd8251_control_w 0x71: %02x\n", data);
m_kbd8251->control_w(data);
- }
+ },
+ "kbd_8251_stat_ctrl_w"
);
- map(0x0080, 0x0083).mirror(0xc).lw8("dma_segement_w",
+ map(0x0080, 0x0083).mirror(0xc).lw8(
[this](offs_t offset, uint8_t data)
{
LOGDMA("dma_segment_w %04x: %02x\n", offset, data);
m_dma_segment[offset] = data & 0x0f;
- }
+ },
+ "dma_segement_w"
);
- map(0x00a0, 0x00a1).mirror(0xe).lw8("nmi_enable_w",
+ map(0x00a0, 0x00a1).mirror(0xe).lw8(
[this](offs_t offset, uint8_t data)
{
LOGNMI("nmi_enable_w %04x: %02x\n", offset, data);
m_nmi_enabled = BIT(data,7);
update_nmi();
- }
+ },
+ "nmi_enable_w"
);
// FDC Output Control Register (same as PC XT DOR)
- map(0x03f2, 0x03f3).lw8("ocr_w", // B0-B1 Drive select 0-3
+ map(0x03f2, 0x03f3).lw8( // B0-B1 Drive select 0-3
[this](offs_t offset, uint8_t data) // B2 FDC Reset line
{ // B3 Enable FDC DMA/IRQ
LOGFDC("FDC OCR: %02x\n", data);// B4-B7 Motor on for selected drive
@@ -404,23 +423,26 @@ void epc_state::epc_io(address_map &map)
m_fdc->reset();
check_fdc_irq();
check_fdc_drq();
- }
+ },
+ "ocr_w"
);
map(0x03f4, 0x03f5).m(m_fdc, FUNC(i8272a_device::map));
- map(0x03bc, 0x03be).lrw8("lpt_rw",
+ map(0x03bc, 0x03be).lrw8(
[this](address_space &space, offs_t offset, uint8_t mem_mask) -> uint8_t
{
uint8_t data = m_lpt->read(space, offset);
LOGLPT("LPT read offset %02x: %02x\n", offset, data);
return data;
},
+ "lpt_r",
[this](address_space &space, offs_t offset, uint8_t data)
{
LOGLPT("LPT write offset %02x: %02x\n", offset, data);
m_lpt->write(space, offset, data);
- }
+ },
+ "lpt_w"
);
map(0x03f8, 0x03ff).rw(m_uart, FUNC(ins8250_device::ins8250_r), FUNC(ins8250_device::ins8250_w));
diff --git a/src/mame/drivers/elf.cpp b/src/mame/drivers/elf.cpp
index 96f23c68044..a693b642c82 100644
--- a/src/mame/drivers/elf.cpp
+++ b/src/mame/drivers/elf.cpp
@@ -213,7 +213,7 @@ void elf2_state::machine_start()
/* setup memory banking */
program.install_read_bank(0x0000, 0x00ff, "bank1");
- program.install_write_handler(0x0000, 0x00ff, write8_delegate(FUNC(elf2_state::memory_w), this));
+ program.install_write_handler(0x0000, 0x00ff, write8_delegate(*this, FUNC(elf2_state::memory_w)));
membank("bank1")->configure_entry(0, m_ram->pointer());
membank("bank1")->set_entry(0);
@@ -279,7 +279,7 @@ void elf2_state::elf2(machine_config &config)
m_cassette->set_default_state(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED);
m_cassette->add_route(ALL_OUTPUTS, "mono", 0.05);
- QUICKLOAD(config, "quickload", "bin").set_load_callback(FUNC(elf2_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "bin").set_load_callback(FUNC(elf2_state::quickload_cb));
/* internal ram */
RAM(config, RAM_TAG).set_default_size("256");
diff --git a/src/mame/drivers/ep64.cpp b/src/mame/drivers/ep64.cpp
index c1f6b97bd3a..3c95e577126 100644
--- a/src/mame/drivers/ep64.cpp
+++ b/src/mame/drivers/ep64.cpp
@@ -544,7 +544,7 @@ INPUT_PORTS_END
void ep64_state::machine_start()
{
if (m_cart->exists())
- m_dave->space(AS_PROGRAM).install_read_handler(0x010000, 0x01ffff, read8sm_delegate(FUNC(generic_slot_device::read_rom),(generic_slot_device*)m_cart));
+ m_dave->space(AS_PROGRAM).install_read_handler(0x010000, 0x01ffff, read8sm_delegate(*m_cart, FUNC(generic_slot_device::read_rom)));
// state saving
save_item(NAME(m_key));
diff --git a/src/mame/drivers/equites.cpp b/src/mame/drivers/equites.cpp
index a066ec22e83..dc9e2e8b818 100644
--- a/src/mame/drivers/equites.cpp
+++ b/src/mame/drivers/equites.cpp
@@ -649,7 +649,7 @@ void equites_state::equites_common_map(address_map &map)
map(0x100000, 0x100001).r(FUNC(equites_state::equites_spriteram_kludge_r));
map(0x140000, 0x1407ff).rw(FUNC(equites_state::mcu_ram_r), FUNC(equites_state::mcu_ram_w)).umask16(0x00ff);
map(0x180000, 0x180001).portr("IN1").w(m_soundlatch, FUNC(generic_latch_8_device::write));
- map(0x180000, 0x180000).select(0x03c000).lw8("mainlatch_w", [this](offs_t offset, u8 data) { m_mainlatch->write_a3(offset >> 14); });
+ map(0x180000, 0x180000).select(0x03c000).lw8(NAME([this] (offs_t offset, u8 data) { m_mainlatch->write_a3(offset >> 14); }));
map(0x180001, 0x180001).w(m_soundlatch, FUNC(generic_latch_8_device::write));
map(0x1c0000, 0x1c0001).portr("IN0").w(FUNC(equites_state::equites_scrollreg_w));
map(0x380000, 0x380000).w(FUNC(equites_state::equites_bgcolor_w));
@@ -678,7 +678,7 @@ void splndrbt_state::splndrbt_map(address_map &map)
map(0x080000, 0x080001).portr("IN0");
map(0x0c0000, 0x0c0001).portr("IN1");
map(0x0c0000, 0x0c0000).select(0x020000).w(FUNC(splndrbt_state::equites_bgcolor_w));
- map(0x0c0001, 0x0c0001).select(0x03c000).lw8("mainlatch_w", [this](offs_t offset, u8 data) { m_mainlatch->write_a3(offset >> 14); });
+ map(0x0c0001, 0x0c0001).select(0x03c000).lw8(NAME([this] (offs_t offset, u8 data) { m_mainlatch->write_a3(offset >> 14); }));
map(0x100000, 0x100001).w(FUNC(splndrbt_state::splndrbt_bg_scrollx_w));
map(0x140001, 0x140001).w("soundlatch", FUNC(generic_latch_8_device::write));
map(0x1c0000, 0x1c0001).w(FUNC(splndrbt_state::splndrbt_bg_scrolly_w));
@@ -1042,7 +1042,7 @@ void equites_state::common_sound(machine_config &config)
I8085A(config, m_audiocpu, 6.144_MHz_XTAL); /* verified on pcb */
m_audiocpu->set_addrmap(AS_PROGRAM, &equites_state::sound_map);
m_audiocpu->set_addrmap(AS_IO, &equites_state::sound_portmap);
- m_audiocpu->set_clk_out("audio8155", FUNC(i8155_device::set_unscaled_clock));
+ m_audiocpu->set_clk_out(m_audio8155, FUNC(i8155_device::set_unscaled_clock_int));
I8155(config, m_audio8155, 0);
m_audio8155->out_pa_callback().set(FUNC(equites_state::equites_8155_porta_w));
diff --git a/src/mame/drivers/esd16.cpp b/src/mame/drivers/esd16.cpp
index 094df3194e7..2fb8df294f6 100644
--- a/src/mame/drivers/esd16.cpp
+++ b/src/mame/drivers/esd16.cpp
@@ -637,7 +637,7 @@ void esd16_state::esd16(machine_config &config)
DECO_SPRITE(config, m_sprgen, 0);
m_sprgen->set_gfx_region(0);
m_sprgen->set_is_bootleg(true);
- m_sprgen->set_pri_callback(FUNC(esd16_state::pri_callback), this);
+ m_sprgen->set_pri_callback(FUNC(esd16_state::pri_callback));
m_sprgen->set_flipallx(1);
m_sprgen->set_gfxdecode_tag(m_gfxdecode);
diff --git a/src/mame/drivers/esprit.cpp b/src/mame/drivers/esprit.cpp
index e1c079ffa2e..610c0fca646 100644
--- a/src/mame/drivers/esprit.cpp
+++ b/src/mame/drivers/esprit.cpp
@@ -160,7 +160,7 @@ void esprit_state::esprit(machine_config &config)
crtc.set_screen("screen");
crtc.set_show_border_area(false);
crtc.set_char_width(9);
- crtc.set_update_row_callback(FUNC(esprit_state::crtc_update_row), this);
+ crtc.set_update_row_callback(FUNC(esprit_state::crtc_update_row));
}
void esprit_state::esprit3(machine_config &config)
@@ -199,8 +199,8 @@ void esprit_state::esprit3(machine_config &config)
crtc.set_screen("screen");
crtc.set_show_border_area(false);
crtc.set_char_width(9);
- crtc.set_update_row_callback(FUNC(esprit_state::crtc_update_row), this);
- crtc.set_on_update_addr_change_callback(FUNC(esprit_state::crtc_update_addr), this);
+ crtc.set_update_row_callback(FUNC(esprit_state::crtc_update_row));
+ crtc.set_on_update_addr_change_callback(FUNC(esprit_state::crtc_update_addr));
crtc.out_hsync_callback().set("via", FUNC(via6522_device::write_pb6)).invert();
}
diff --git a/src/mame/drivers/eti660.cpp b/src/mame/drivers/eti660.cpp
index 8b85ead5f89..6eb66b34ca1 100644
--- a/src/mame/drivers/eti660.cpp
+++ b/src/mame/drivers/eti660.cpp
@@ -336,7 +336,7 @@ void eti660_state::eti660(machine_config &config)
RAM(config, RAM_TAG).set_default_size("3K");
/* quickload */
- QUICKLOAD(config, "quickload", "bin,c8,ch8", attotime::from_seconds(2)).set_load_callback(FUNC(eti660_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "bin,c8,ch8", attotime::from_seconds(2)).set_load_callback(FUNC(eti660_state::quickload_cb));
}
/* ROMs */
diff --git a/src/mame/drivers/ettrivia.cpp b/src/mame/drivers/ettrivia.cpp
index ce0840bf3ce..3935e438c7a 100644
--- a/src/mame/drivers/ettrivia.cpp
+++ b/src/mame/drivers/ettrivia.cpp
@@ -277,8 +277,8 @@ void ettrivia_state::ettrivia_palette(palette_device &palette) const
void ettrivia_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ettrivia_state::get_tile_info_bg),this),TILEMAP_SCAN_ROWS,8,8,64,32 );
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ettrivia_state::get_tile_info_fg),this),TILEMAP_SCAN_ROWS,8,8,64,32 );
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ettrivia_state::get_tile_info_bg)), TILEMAP_SCAN_ROWS, 8,8,64,32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ettrivia_state::get_tile_info_fg)), TILEMAP_SCAN_ROWS, 8,8,64,32);
m_fg_tilemap->set_transparent_pen(0);
}
diff --git a/src/mame/drivers/excali64.cpp b/src/mame/drivers/excali64.cpp
index ec881b12608..da63fd51b5e 100644
--- a/src/mame/drivers/excali64.cpp
+++ b/src/mame/drivers/excali64.cpp
@@ -596,7 +596,7 @@ void excali64_state::excali64(machine_config &config)
m_crtc->set_screen("screen");
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8);
- m_crtc->set_update_row_callback(FUNC(excali64_state::update_row), this);
+ m_crtc->set_update_row_callback(FUNC(excali64_state::update_row));
m_crtc->out_hsync_callback().set(FUNC(excali64_state::crtc_hs));
m_crtc->out_vsync_callback().set(FUNC(excali64_state::crtc_vs));
diff --git a/src/mame/drivers/exidy440.cpp b/src/mame/drivers/exidy440.cpp
index 344ed70ea36..8f1d112b104 100644
--- a/src/mame/drivers/exidy440.cpp
+++ b/src/mame/drivers/exidy440.cpp
@@ -304,7 +304,7 @@ void exidy440_state::exidy440_bank_select(uint8_t bank)
if (m_showdown_bank_data[0] != nullptr)
{
if (bank == 0 && m_bank != 0)
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x4000, 0x7fff, read8_delegate(FUNC(exidy440_state::showdown_bank0_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x4000, 0x7fff, read8_delegate(*this, FUNC(exidy440_state::showdown_bank0_r)));
else if (bank != 0 && m_bank == 0)
m_maincpu->space(AS_PROGRAM).install_read_bank(0x4000, 0x7fff, "bank1");
}
@@ -365,7 +365,7 @@ TIMER_CALLBACK_MEMBER(exidy440_state::delayed_sound_command_w)
WRITE8_MEMBER(exidy440_state::sound_command_w)
{
- machine().scheduler().synchronize(timer_expired_delegate(FUNC(exidy440_state::delayed_sound_command_w),this), data);
+ machine().scheduler().synchronize(timer_expired_delegate(FUNC(exidy440_state::delayed_sound_command_w), this), data);
}
@@ -2074,7 +2074,7 @@ void exidy440_state::init_exidy440()
void exidy440_state::init_claypign()
{
init_exidy440();
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x2ec0, 0x2ec3, read8_delegate(FUNC(exidy440_state::claypign_protection_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x2ec0, 0x2ec3, read8_delegate(*this, FUNC(exidy440_state::claypign_protection_r)));
}
@@ -2083,11 +2083,11 @@ void topsecex_state::init_topsecex()
init_exidy440();
/* extra input ports and scrolling */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x2ec5, 0x2ec5, read8_delegate(FUNC(topsecex_state::topsecex_input_port_5_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x2ec5, 0x2ec5, read8_delegate(*this, FUNC(topsecex_state::topsecex_input_port_5_r)));
m_maincpu->space(AS_PROGRAM).install_read_port(0x2ec6, 0x2ec6, "AN0");
m_maincpu->space(AS_PROGRAM).install_read_port(0x2ec7, 0x2ec7, "IN4");
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x2ec1, 0x2ec1, write8_delegate(FUNC(topsecex_state::topsecex_yscroll_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x2ec1, 0x2ec1, write8_delegate(*this, FUNC(topsecex_state::topsecex_yscroll_w)));
}
diff --git a/src/mame/drivers/expro02.cpp b/src/mame/drivers/expro02.cpp
index 332c09b46c4..875febac064 100644
--- a/src/mame/drivers/expro02.cpp
+++ b/src/mame/drivers/expro02.cpp
@@ -923,7 +923,7 @@ void expro02_state::expro02(machine_config &config)
m_view2->set_colbase(0x400);
m_view2->set_offset(0x5b, 0x8, 256, 224);
m_view2->set_palette(m_palette);
- m_view2->set_tile_callback(kaneko_view2_tilemap_device::view2_cb_delegate(FUNC(expro02_state::tile_callback), this));
+ m_view2->set_tile_callback(FUNC(expro02_state::tile_callback));
KANEKO_VU002_SPRITE(config, m_kaneko_spr);
m_kaneko_spr->set_priorities(8,8,8,8); // above all (not verified)
diff --git a/src/mame/drivers/exprraid.cpp b/src/mame/drivers/exprraid.cpp
index c424e16ef87..0d3300198cc 100644
--- a/src/mame/drivers/exprraid.cpp
+++ b/src/mame/drivers/exprraid.cpp
@@ -856,13 +856,13 @@ void exprraid_state::init_exprraid()
void exprraid_state::init_wexpressb2()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x3800, 0x3800, read8_delegate(FUNC(exprraid_state::vblank_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x3800, 0x3800, read8_delegate(*this, FUNC(exprraid_state::vblank_r)));
exprraid_gfx_expand();
}
void exprraid_state::init_wexpressb3()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xFFC0, 0xFFC0, read8_delegate(FUNC(exprraid_state::vblank_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xffc0, 0xffc0, read8_delegate(*this, FUNC(exprraid_state::vblank_r)));
exprraid_gfx_expand();
}
diff --git a/src/mame/drivers/f1gp.cpp b/src/mame/drivers/f1gp.cpp
index f62dd0e13a3..610726ea419 100644
--- a/src/mame/drivers/f1gp.cpp
+++ b/src/mame/drivers/f1gp.cpp
@@ -399,13 +399,13 @@ void f1gp_state::f1gp(machine_config &config)
VSYSTEM_GGA(config, "gga", XTAL(14'318'181) / 2); // divider not verified
VSYSTEM_SPR2(config, m_spr_old[0], 0);
- m_spr_old[0]->set_tile_indirect_cb(FUNC(f1gp2_state::tile_callback<0>), this);
+ m_spr_old[0]->set_tile_indirect_cb(FUNC(f1gp2_state::tile_callback<0>));
m_spr_old[0]->set_gfx_region(1);
m_spr_old[0]->set_pritype(2);
m_spr_old[0]->set_gfxdecode_tag(m_gfxdecode);
VSYSTEM_SPR2(config, m_spr_old[1], 0);
- m_spr_old[1]->set_tile_indirect_cb(FUNC(f1gp2_state::tile_callback<1>), this);
+ m_spr_old[1]->set_tile_indirect_cb(FUNC(f1gp2_state::tile_callback<1>));
m_spr_old[1]->set_gfx_region(2);
m_spr_old[1]->set_pritype(2);
m_spr_old[1]->set_gfxdecode_tag(m_gfxdecode);
@@ -488,8 +488,9 @@ void f1gp2_state::f1gp2(machine_config &config)
config.device_remove("gga");
config.device_remove("vsystem_spr_old1");
config.device_remove("vsystem_spr_old2");
+
VSYSTEM_SPR(config, m_spr, 0);
- m_spr->set_tile_indirect_cb(FUNC(f1gp2_state::tile_callback<0>), this);
+ m_spr->set_tile_indirect_cb(FUNC(f1gp2_state::tile_callback<0>));
m_spr->set_gfx_region(1);
m_spr->set_gfxdecode_tag(m_gfxdecode);
diff --git a/src/mame/drivers/facit4440.cpp b/src/mame/drivers/facit4440.cpp
index c820f74b88d..8ed509db549 100644
--- a/src/mame/drivers/facit4440.cpp
+++ b/src/mame/drivers/facit4440.cpp
@@ -264,7 +264,7 @@ void facit4440_state::facit4440(machine_config &config)
MC6845(config, m_crtc, FAKE_DOT_CLOCK / CH_WIDTH); // HD46505SP-2
m_crtc->set_char_width(CH_WIDTH);
m_crtc->set_show_border_area(false);
- m_crtc->set_update_row_callback(FUNC(facit4440_state::update_row), this);
+ m_crtc->set_update_row_callback(FUNC(facit4440_state::update_row));
m_crtc->out_hsync_callback().set("ctc", FUNC(z80ctc_device::trg3));
m_crtc->out_vsync_callback().set(FUNC(facit4440_state::vsync_w));
}
diff --git a/src/mame/drivers/falcots.cpp b/src/mame/drivers/falcots.cpp
index c706babec20..69c00712909 100644
--- a/src/mame/drivers/falcots.cpp
+++ b/src/mame/drivers/falcots.cpp
@@ -386,7 +386,7 @@ void falcots_state::ts1(machine_config &config)
m_crtc->set_screen("screen");
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8);
- m_crtc->set_update_row_callback(FUNC(falcots_state::update_row), this);
+ m_crtc->set_update_row_callback(FUNC(falcots_state::update_row));
}
static const z80_daisy_config daisy_chain[] =
@@ -425,7 +425,7 @@ void falcots_state::ts2624(machine_config &config)
m_crtc->set_screen("screen");
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(16);
- m_crtc->set_update_row_callback(FUNC(falcots_state::update_row), this);
+ m_crtc->set_update_row_callback(FUNC(falcots_state::update_row));
}
ROM_START(ts1)
diff --git a/src/mame/drivers/famibox.cpp b/src/mame/drivers/famibox.cpp
index fab34e49be2..c772235dfe9 100644
--- a/src/mame/drivers/famibox.cpp
+++ b/src/mame/drivers/famibox.cpp
@@ -510,7 +510,7 @@ void famibox_state::machine_start()
m_nt_page[2] = m_nt_ram.get() + 0x800;
m_nt_page[3] = m_nt_ram.get() + 0xc00;
- m_ppu->space(AS_PROGRAM).install_readwrite_handler(0x2000, 0x3eff, read8_delegate(FUNC(famibox_state::famibox_nt_r), this), write8_delegate(FUNC(famibox_state::famibox_nt_w), this));
+ m_ppu->space(AS_PROGRAM).install_readwrite_handler(0x2000, 0x3eff, read8_delegate(*this, FUNC(famibox_state::famibox_nt_r)), write8_delegate(*this, FUNC(famibox_state::famibox_nt_w)));
m_ppu->space(AS_PROGRAM).install_read_bank(0x0000, 0x1fff, "ppubank1");
famicombox_bankswitch(0);
diff --git a/src/mame/drivers/fanucspmg.cpp b/src/mame/drivers/fanucspmg.cpp
index fcb47205b19..c4ae1904c18 100644
--- a/src/mame/drivers/fanucspmg.cpp
+++ b/src/mame/drivers/fanucspmg.cpp
@@ -1009,7 +1009,7 @@ void fanucspmg_state::fanucspmg(machine_config &config)
m_crtc->set_screen(SCREEN_TAG);
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8);
- m_crtc->set_update_row_callback(FUNC(fanucspmg_state::crtc_update_row), this);
+ m_crtc->set_update_row_callback(FUNC(fanucspmg_state::crtc_update_row));
m_crtc->out_vsync_callback().set(FUNC(fanucspmg_state::vsync_w));
}
@@ -1017,7 +1017,7 @@ void fanucspmg_state::fanucspmgm(machine_config &config)
{
fanucspmg(config);
- m_crtc->set_update_row_callback(FUNC(fanucspmg_state::crtc_update_row_mono), this);
+ m_crtc->set_update_row_callback(FUNC(fanucspmg_state::crtc_update_row_mono));
}
/* ROM definition */
diff --git a/src/mame/drivers/fastfred.cpp b/src/mame/drivers/fastfred.cpp
index 87902cc0505..1fb0df22581 100644
--- a/src/mame/drivers/fastfred.cpp
+++ b/src/mame/drivers/fastfred.cpp
@@ -1050,8 +1050,8 @@ ROM_END
void fastfred_state::init_flyboy()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xc085, 0xc099, read8_delegate(FUNC(fastfred_state::flyboy_custom1_io_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xc8fb, 0xc900, read8_delegate(FUNC(fastfred_state::flyboy_custom2_io_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xc085, 0xc099, read8_delegate(*this, FUNC(fastfred_state::flyboy_custom1_io_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xc8fb, 0xc900, read8_delegate(*this, FUNC(fastfred_state::flyboy_custom2_io_r)));
m_hardware_type = 1;
}
@@ -1062,28 +1062,28 @@ void fastfred_state::init_flyboyb()
void fastfred_state::init_fastfred()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xc800, 0xcfff, read8_delegate(FUNC(fastfred_state::fastfred_custom_io_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xc800, 0xcfff, read8_delegate(*this, FUNC(fastfred_state::fastfred_custom_io_r)));
m_maincpu->space(AS_PROGRAM).nop_write(0xc800, 0xcfff);
m_hardware_type = 1;
}
void fastfred_state::init_jumpcoas()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xc800, 0xcfff, read8_delegate(FUNC(fastfred_state::jumpcoas_custom_io_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xc800, 0xcfff, read8_delegate(*this, FUNC(fastfred_state::jumpcoas_custom_io_r)));
m_maincpu->space(AS_PROGRAM).nop_write(0xc800, 0xcfff);
m_hardware_type = 0;
}
void fastfred_state::init_boggy84b()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xc800, 0xcfff, read8_delegate(FUNC(fastfred_state::jumpcoas_custom_io_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xc800, 0xcfff, read8_delegate(*this, FUNC(fastfred_state::jumpcoas_custom_io_r)));
m_maincpu->space(AS_PROGRAM).nop_write(0xc800, 0xcfff);
m_hardware_type = 2;
}
void fastfred_state::init_boggy84()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xc800, 0xcfff, read8_delegate(FUNC(fastfred_state::boggy84_custom_io_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xc800, 0xcfff, read8_delegate(*this, FUNC(fastfred_state::boggy84_custom_io_r)));
m_maincpu->space(AS_PROGRAM).nop_write(0xc800, 0xcfff);
m_hardware_type = 2;
}
diff --git a/src/mame/drivers/fb01.cpp b/src/mame/drivers/fb01.cpp
index bf0a829c9e4..9eb6095e118 100644
--- a/src/mame/drivers/fb01.cpp
+++ b/src/mame/drivers/fb01.cpp
@@ -200,7 +200,7 @@ void fb01_state::fb01(machine_config &config)
hd44780_device &hd44780(HD44780(config, "hd44780", 0));
hd44780.set_lcd_size(2, 8); // 2x8 displayed as 1x16
- hd44780.set_pixel_update_cb(FUNC(fb01_state::fb01_pixel_update), this);
+ hd44780.set_pixel_update_cb(FUNC(fb01_state::fb01_pixel_update));
I8251(config, m_upd71051, XTAL(4'000'000));
m_upd71051->rxrdy_handler().set(FUNC(fb01_state::upd71051_rxrdy_w));
diff --git a/src/mame/drivers/fc100.cpp b/src/mame/drivers/fc100.cpp
index 4630e1645a3..3c68df4b1b0 100644
--- a/src/mame/drivers/fc100.cpp
+++ b/src/mame/drivers/fc100.cpp
@@ -465,7 +465,7 @@ void fc100_state::machine_start()
m_inv = 0;
if (m_cart->exists())
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x6000, 0x6fff, read8sm_delegate(FUNC(generic_slot_device::read_rom),(generic_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x6000, 0x6fff, read8sm_delegate(*m_cart, FUNC(generic_slot_device::read_rom)));
save_item(NAME(m_ag));
save_item(NAME(m_gm2));
diff --git a/src/mame/drivers/fccpu30.cpp b/src/mame/drivers/fccpu30.cpp
index b7f2197872e..4d390cde0b1 100644
--- a/src/mame/drivers/fccpu30.cpp
+++ b/src/mame/drivers/fccpu30.cpp
@@ -661,7 +661,7 @@ static void fccpu30_vme_cards(device_slot_interface &device)
void cpu30_state::cpu_space_map(address_map &map)
{
- map(0xfffffff2, 0xffffffff).lr16("fga002 irq", [this](offs_t offset) -> u16 { return m_fga002->iack(); });
+ map(0xfffffff2, 0xffffffff).lr16(NAME([this] (offs_t offset) -> u16 { return m_fga002->iack(); }));
}
void cpu30_state::cpu30(machine_config &config)
diff --git a/src/mame/drivers/fcrash.cpp b/src/mame/drivers/fcrash.cpp
index 96c973de10f..8a7e70d334a 100644
--- a/src/mame/drivers/fcrash.cpp
+++ b/src/mame/drivers/fcrash.cpp
@@ -2131,9 +2131,9 @@ ROM_END
void cps_state::init_kodb()
{
m_maincpu->space(AS_PROGRAM).install_read_port(0x800000, 0x800007, "IN1");
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x800018, 0x80001f, read16_delegate(FUNC(cps_state::cps1_dsw_r),this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x800180, 0x800187, write16_delegate(FUNC(cps_state::cps1_soundlatch_w),this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x980000, 0x98002f, write16_delegate(FUNC(cps_state::kodb_layer_w),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x800018, 0x80001f, read16_delegate(*this, FUNC(cps_state::cps1_dsw_r)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x800180, 0x800187, write16_delegate(*this, FUNC(cps_state::cps1_soundlatch_w)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x980000, 0x98002f, write16_delegate(*this, FUNC(cps_state::kodb_layer_w)));
/* the original game alternates between 2 sprite ram areas to achieve flashing sprites - the bootleg doesn't do the write to the register to achieve this
mapping both sprite ram areas to the same bootleg sprite ram - similar to how sf2mdt works */
@@ -2269,8 +2269,8 @@ ROM_END
void cps_state::init_cawingbl()
{
m_maincpu->space(AS_PROGRAM).install_read_port(0x882000, 0x882001, "IN1");
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x882006, 0x882007, write16_delegate(FUNC(cps_state::cawingbl_soundlatch_w),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x882008, 0x88200f, read16_delegate(FUNC(cps_state::cps1_dsw_r),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x882006, 0x882007, write16_delegate(*this, FUNC(cps_state::cawingbl_soundlatch_w)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x882008, 0x88200f, read16_delegate(*this, FUNC(cps_state::cps1_dsw_r)));
init_cps1();
}
@@ -3099,7 +3099,7 @@ void cps_state::init_sf2mdt()
rom[i + 6] = tmp;
}
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x708100, 0x7081ff, write16_delegate(FUNC(cps_state::sf2mdt_layer_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x708100, 0x7081ff, write16_delegate(*this, FUNC(cps_state::sf2mdt_layer_w)));
init_sf2mdta();
}
diff --git a/src/mame/drivers/fidel_as12.cpp b/src/mame/drivers/fidel_as12.cpp
index 1f895ac9057..98adcbf4e1a 100644
--- a/src/mame/drivers/fidel_as12.cpp
+++ b/src/mame/drivers/fidel_as12.cpp
@@ -235,7 +235,7 @@ void as12_state::as12(machine_config &config)
/* cartridge */
GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "fidel_scc", "bin,dat");
- m_cart->set_device_load(FUNC(as12_state::cart_load), this);
+ m_cart->set_device_load(FUNC(as12_state::cart_load));
SOFTWARE_LIST(config, "cart_list").set_original("fidel_scc");
}
diff --git a/src/mame/drivers/fidel_cc1.cpp b/src/mame/drivers/fidel_cc1.cpp
index 643350f7c73..3d9cfec2334 100644
--- a/src/mame/drivers/fidel_cc1.cpp
+++ b/src/mame/drivers/fidel_cc1.cpp
@@ -233,7 +233,7 @@ void cc1_state::cc1(machine_config &config)
m_ppi8255->out_pc_callback().set(FUNC(cc1_state::ppi_portc_w));
m_ppi8255->tri_pc_callback().set_constant(0);
- TIMER(config, "delay").configure_generic(timer_device::expired_delegate());
+ TIMER(config, "delay").configure_generic(nullptr);
/* video hardware */
PWM_DISPLAY(config, m_display).set_size(6, 7);
diff --git a/src/mame/drivers/fidel_eag68k.cpp b/src/mame/drivers/fidel_eag68k.cpp
index 218ec1dcde3..298d1f5e80a 100644
--- a/src/mame/drivers/fidel_eag68k.cpp
+++ b/src/mame/drivers/fidel_eag68k.cpp
@@ -621,7 +621,7 @@ void eag_state::eag_base(machine_config &config)
/* cartridge */
GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "fidel_scc", "bin,dat");
- m_cart->set_device_load(FUNC(eag_state::cart_load), this);
+ m_cart->set_device_load(FUNC(eag_state::cart_load));
SOFTWARE_LIST(config, "cart_list").set_original("fidel_scc");
}
diff --git a/src/mame/drivers/fidel_elite.cpp b/src/mame/drivers/fidel_elite.cpp
index 5b89505f194..484d9bacccd 100644
--- a/src/mame/drivers/fidel_elite.cpp
+++ b/src/mame/drivers/fidel_elite.cpp
@@ -454,7 +454,7 @@ void elite_state::pc(machine_config &config)
/* cartridge */
GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "fidel_scc", "bin,dat");
- m_cart->set_device_load(FUNC(elite_state::cart_load), this);
+ m_cart->set_device_load(FUNC(elite_state::cart_load));
SOFTWARE_LIST(config, "cart_list").set_original("fidel_scc");
}
diff --git a/src/mame/drivers/fidel_sc12.cpp b/src/mame/drivers/fidel_sc12.cpp
index 47ac889cc9c..aec0576fd8c 100644
--- a/src/mame/drivers/fidel_sc12.cpp
+++ b/src/mame/drivers/fidel_sc12.cpp
@@ -254,7 +254,7 @@ void sc12_state::sc12(machine_config &config)
/* cartridge */
GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "fidel_scc", "bin,dat");
- m_cart->set_device_load(FUNC(sc12_state::cart_load), this);
+ m_cart->set_device_load(FUNC(sc12_state::cart_load));
SOFTWARE_LIST(config, "cart_list").set_original("fidel_scc");
}
diff --git a/src/mame/drivers/fidel_sc6.cpp b/src/mame/drivers/fidel_sc6.cpp
index 9b674d581a7..1864fa3ec24 100644
--- a/src/mame/drivers/fidel_sc6.cpp
+++ b/src/mame/drivers/fidel_sc6.cpp
@@ -243,7 +243,7 @@ void sc6_state::sc6(machine_config &config)
/* cartridge */
GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "fidel_sc6", "bin");
- m_cart->set_device_load(FUNC(sc6_state::cart_load), this);
+ m_cart->set_device_load(FUNC(sc6_state::cart_load));
m_cart->set_must_be_loaded(true);
SOFTWARE_LIST(config, "cart_list").set_original("fidel_sc6");
diff --git a/src/mame/drivers/fidel_sc9.cpp b/src/mame/drivers/fidel_sc9.cpp
index 57867b040de..d8f49e242b2 100644
--- a/src/mame/drivers/fidel_sc9.cpp
+++ b/src/mame/drivers/fidel_sc9.cpp
@@ -300,7 +300,7 @@ void sc9_state::sc9d(machine_config &config)
/* cartridge */
GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "fidel_scc", "bin,dat");
- m_cart->set_device_load(FUNC(sc9_state::cart_load), this);
+ m_cart->set_device_load(FUNC(sc9_state::cart_load));
SOFTWARE_LIST(config, "cart_list").set_original("fidel_scc");
}
diff --git a/src/mame/drivers/fireball.cpp b/src/mame/drivers/fireball.cpp
index 3d897c55fdd..22ec268e04d 100644
--- a/src/mame/drivers/fireball.cpp
+++ b/src/mame/drivers/fireball.cpp
@@ -504,7 +504,7 @@ void fireball_state::fireball(machine_config &config)
m_maincpu->port_out_cb<3>().set(FUNC(fireball_state::p3_w));
//9ms from scope reading 111Hz take care of this in the handler
- TIMER(config, "int_0", 0).configure_periodic(timer_device::expired_delegate(FUNC(fireball_state::int_0), this), attotime::from_hz(555));
+ TIMER(config, "int_0", 0).configure_periodic(FUNC(fireball_state::int_0), attotime::from_hz(555));
EEPROM_X24C44_16BIT(config, "eeprom");
diff --git a/src/mame/drivers/firebeat.cpp b/src/mame/drivers/firebeat.cpp
index a7e09bdb5d8..7e712b55822 100644
--- a/src/mame/drivers/firebeat.cpp
+++ b/src/mame/drivers/firebeat.cpp
@@ -1468,9 +1468,9 @@ WRITE8_MEMBER(firebeat_state::security_w)
void firebeat_state::init_lights(write32_delegate out1, write32_delegate out2, write32_delegate out3)
{
- if(out1.isnull()) out1 = write32_delegate(FUNC(firebeat_state::lamp_output_w),this);
- if(out2.isnull()) out2 = write32_delegate(FUNC(firebeat_state::lamp_output2_w),this);
- if(out3.isnull()) out3 = write32_delegate(FUNC(firebeat_state::lamp_output3_w),this);
+ if(out1.isnull()) out1 = write32_delegate(*this, FUNC(firebeat_state::lamp_output_w));
+ if(out2.isnull()) out2 = write32_delegate(*this, FUNC(firebeat_state::lamp_output2_w));
+ if(out3.isnull()) out3 = write32_delegate(*this, FUNC(firebeat_state::lamp_output3_w));
m_maincpu->space(AS_PROGRAM).install_write_handler(0x7d000804, 0x7d000807, out1);
m_maincpu->space(AS_PROGRAM).install_write_handler(0x7d000320, 0x7d000323, out2);
@@ -1489,23 +1489,23 @@ void firebeat_state::init_firebeat()
m_cur_cab_data = cab_data;
- m_maincpu->ppc4xx_spu_set_tx_handler(write8_delegate(FUNC(firebeat_state::security_w), this));
+ m_maincpu->ppc4xx_spu_set_tx_handler(write8_delegate(*this, FUNC(firebeat_state::security_w)));
set_ibutton(rom);
- init_lights(write32_delegate(), write32_delegate(), write32_delegate());
+ init_lights(write32_delegate(*this), write32_delegate(*this), write32_delegate(*this));
}
void firebeat_state::init_ppp()
{
init_firebeat();
- init_lights(write32_delegate(FUNC(firebeat_state::lamp_output_ppp_w),this), write32_delegate(FUNC(firebeat_state::lamp_output2_ppp_w),this), write32_delegate(FUNC(firebeat_state::lamp_output3_ppp_w),this));
+ init_lights(write32_delegate(*this, FUNC(firebeat_state::lamp_output_ppp_w)), write32_delegate(*this, FUNC(firebeat_state::lamp_output2_ppp_w)), write32_delegate(*this, FUNC(firebeat_state::lamp_output3_ppp_w)));
}
void firebeat_state::init_ppd()
{
init_firebeat();
- init_lights(write32_delegate(FUNC(firebeat_state::lamp_output_ppp_w),this), write32_delegate(FUNC(firebeat_state::lamp_output2_ppp_w),this), write32_delegate(FUNC(firebeat_state::lamp_output3_ppp_w),this));
+ init_lights(write32_delegate(*this, FUNC(firebeat_state::lamp_output_ppp_w)), write32_delegate(*this, FUNC(firebeat_state::lamp_output2_ppp_w)), write32_delegate(*this, FUNC(firebeat_state::lamp_output3_ppp_w)));
m_cur_cab_data = ppd_cab_data;
}
@@ -1520,7 +1520,7 @@ void firebeat_state::init_keyboard()
void firebeat_state::init_kbm()
{
init_firebeat();
- init_lights(write32_delegate(FUNC(firebeat_state::lamp_output_kbm_w),this), write32_delegate(), write32_delegate());
+ init_lights(write32_delegate(*this, FUNC(firebeat_state::lamp_output_kbm_w)), write32_delegate(*this), write32_delegate(*this));
init_keyboard();
diff --git a/src/mame/drivers/firefox.cpp b/src/mame/drivers/firefox.cpp
index ab35e22dd29..cf7f0999715 100644
--- a/src/mame/drivers/firefox.cpp
+++ b/src/mame/drivers/firefox.cpp
@@ -248,7 +248,7 @@ WRITE8_MEMBER(firefox_state::tileram_w)
void firefox_state::video_start()
{
- m_bgtiles = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(firefox_state::bgtile_get_info),this), TILEMAP_SCAN_ROWS, 8,8, 64,64);
+ m_bgtiles = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(firefox_state::bgtile_get_info)), TILEMAP_SCAN_ROWS, 8,8, 64,64);
m_bgtiles->set_transparent_pen(0);
m_bgtiles->set_scrolldy(m_screen->visible_area().top(), 0);
}
diff --git a/src/mame/drivers/fitfight.cpp b/src/mame/drivers/fitfight.cpp
index 0566ca682ec..6067a24fa30 100644
--- a/src/mame/drivers/fitfight.cpp
+++ b/src/mame/drivers/fitfight.cpp
@@ -984,7 +984,7 @@ void fitfight_state::init_fitfight()
{
// uint16_t *mem16 = (uint16_t *)memregion("maincpu")->base();
// mem16[0x0165B2/2] = 0x4e71; // for now so it boots
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x700000, 0x700001, read16_delegate(FUNC(fitfight_state::fitfight_700000_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x700000, 0x700001, read16_delegate(*this, FUNC(fitfight_state::fitfight_700000_r)));
m_bbprot_kludge = 0;
}
@@ -992,7 +992,7 @@ void fitfight_state::init_histryma()
{
// uint16_t *mem16 = (uint16_t *)memregion("maincpu")->base();
// mem16[0x017FDC/2] = 0x4e71; // for now so it boots
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x700000, 0x700001, read16_delegate(FUNC(fitfight_state::histryma_700000_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x700000, 0x700001, read16_delegate(*this, FUNC(fitfight_state::histryma_700000_r)));
m_bbprot_kludge = 0;
}
@@ -1003,7 +1003,7 @@ void fitfight_state::init_bbprot()
void fitfight_state::init_hotmindff()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x200000, 0x200001, read16_delegate(FUNC(fitfight_state::hotmindff_unk_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x200000, 0x200001, read16_delegate(*this, FUNC(fitfight_state::hotmindff_unk_r)));
init_fitfight();
}
diff --git a/src/mame/drivers/flipjack.cpp b/src/mame/drivers/flipjack.cpp
index f99267910d5..cf8c9d20655 100644
--- a/src/mame/drivers/flipjack.cpp
+++ b/src/mame/drivers/flipjack.cpp
@@ -447,7 +447,7 @@ void flipjack_state::flipjack(machine_config &config)
crtc.set_char_width(8);
crtc.out_vsync_callback().set_inputline("maincpu", INPUT_LINE_IRQ0, HOLD_LINE);
crtc.out_vsync_callback().append_inputline("audiocpu", INPUT_LINE_NMI, ASSERT_LINE);
- crtc.set_update_row_callback(FUNC(flipjack_state::update_row), this);
+ crtc.set_update_row_callback(FUNC(flipjack_state::update_row));
GFXDECODE(config, "gfxdecode", m_palette, gfx_flipjack);
PALETTE(config, m_palette, FUNC(flipjack_state::flipjack_palette), 128+8);
diff --git a/src/mame/drivers/flower.cpp b/src/mame/drivers/flower.cpp
index 2365317fa78..daf156ea303 100644
--- a/src/mame/drivers/flower.cpp
+++ b/src/mame/drivers/flower.cpp
@@ -177,8 +177,8 @@ TILE_GET_INFO_MEMBER(flower_state::get_fg_tile_info)
void flower_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(flower_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 16, 16);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(flower_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 16, 16);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(flower_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 16, 16);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(flower_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 16, 16);
m_screen->register_screen_bitmap(m_temp_bitmap);
m_fg_tilemap->set_transparent_pen(15);
diff --git a/src/mame/drivers/flyball.cpp b/src/mame/drivers/flyball.cpp
index f9f24738a17..9e4dda6ba15 100644
--- a/src/mame/drivers/flyball.cpp
+++ b/src/mame/drivers/flyball.cpp
@@ -141,7 +141,7 @@ TILE_GET_INFO_MEMBER(flyball_state::get_tile_info)
void flyball_state::video_start()
{
- m_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(flyball_state::get_tile_info),this), tilemap_mapper_delegate(FUNC(flyball_state::get_memory_offset),this), 8, 16, 32, 16);
+ m_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(flyball_state::get_tile_info)), tilemap_mapper_delegate(*this, FUNC(flyball_state::get_memory_offset)), 8, 16, 32, 16);
}
diff --git a/src/mame/drivers/fm7.cpp b/src/mame/drivers/fm7.cpp
index 9c44273965a..c8243e199f2 100644
--- a/src/mame/drivers/fm7.cpp
+++ b/src/mame/drivers/fm7.cpp
@@ -1026,40 +1026,40 @@ void fm7_state::fm7_update_bank(address_space & space, int bank, uint8_t physica
switch(physical)
{
case 0x10:
- space.install_readwrite_handler(bank*0x1000,(bank*0x1000)+size,read8_delegate(FUNC(fm7_state::fm7_vram0_r),this),write8_delegate(FUNC(fm7_state::fm7_vram0_w),this));
+ space.install_readwrite_handler(bank*0x1000,(bank*0x1000)+size,read8_delegate(*this, FUNC(fm7_state::fm7_vram0_r)),write8_delegate(*this, FUNC(fm7_state::fm7_vram0_w)));
break;
case 0x11:
- space.install_readwrite_handler(bank*0x1000,(bank*0x1000)+size,read8_delegate(FUNC(fm7_state::fm7_vram1_r),this),write8_delegate(FUNC(fm7_state::fm7_vram1_w),this));
+ space.install_readwrite_handler(bank*0x1000,(bank*0x1000)+size,read8_delegate(*this, FUNC(fm7_state::fm7_vram1_r)),write8_delegate(*this, FUNC(fm7_state::fm7_vram1_w)));
break;
case 0x12:
- space.install_readwrite_handler(bank*0x1000,(bank*0x1000)+size,read8_delegate(FUNC(fm7_state::fm7_vram2_r),this),write8_delegate(FUNC(fm7_state::fm7_vram2_w),this));
+ space.install_readwrite_handler(bank*0x1000,(bank*0x1000)+size,read8_delegate(*this, FUNC(fm7_state::fm7_vram2_r)),write8_delegate(*this, FUNC(fm7_state::fm7_vram2_w)));
break;
case 0x13:
- space.install_readwrite_handler(bank*0x1000,(bank*0x1000)+size,read8_delegate(FUNC(fm7_state::fm7_vram3_r),this),write8_delegate(FUNC(fm7_state::fm7_vram3_w),this));
+ space.install_readwrite_handler(bank*0x1000,(bank*0x1000)+size,read8_delegate(*this, FUNC(fm7_state::fm7_vram3_r)),write8_delegate(*this, FUNC(fm7_state::fm7_vram3_w)));
break;
case 0x14:
- space.install_readwrite_handler(bank*0x1000,(bank*0x1000)+size,read8_delegate(FUNC(fm7_state::fm7_vram4_r),this),write8_delegate(FUNC(fm7_state::fm7_vram4_w),this));
+ space.install_readwrite_handler(bank*0x1000,(bank*0x1000)+size,read8_delegate(*this, FUNC(fm7_state::fm7_vram4_r)),write8_delegate(*this, FUNC(fm7_state::fm7_vram4_w)));
break;
case 0x15:
- space.install_readwrite_handler(bank*0x1000,(bank*0x1000)+size,read8_delegate(FUNC(fm7_state::fm7_vram5_r),this),write8_delegate(FUNC(fm7_state::fm7_vram5_w),this));
+ space.install_readwrite_handler(bank*0x1000,(bank*0x1000)+size,read8_delegate(*this, FUNC(fm7_state::fm7_vram5_r)),write8_delegate(*this, FUNC(fm7_state::fm7_vram5_w)));
break;
case 0x16:
- space.install_readwrite_handler(bank*0x1000,(bank*0x1000)+size,read8_delegate(FUNC(fm7_state::fm7_vram6_r),this),write8_delegate(FUNC(fm7_state::fm7_vram6_w),this));
+ space.install_readwrite_handler(bank*0x1000,(bank*0x1000)+size,read8_delegate(*this, FUNC(fm7_state::fm7_vram6_r)),write8_delegate(*this, FUNC(fm7_state::fm7_vram6_w)));
break;
case 0x17:
- space.install_readwrite_handler(bank*0x1000,(bank*0x1000)+size,read8_delegate(FUNC(fm7_state::fm7_vram7_r),this),write8_delegate(FUNC(fm7_state::fm7_vram7_w),this));
+ space.install_readwrite_handler(bank*0x1000,(bank*0x1000)+size,read8_delegate(*this, FUNC(fm7_state::fm7_vram7_r)),write8_delegate(*this, FUNC(fm7_state::fm7_vram7_w)));
break;
case 0x18:
- space.install_readwrite_handler(bank*0x1000,(bank*0x1000)+size,read8_delegate(FUNC(fm7_state::fm7_vram8_r),this),write8_delegate(FUNC(fm7_state::fm7_vram8_w),this));
+ space.install_readwrite_handler(bank*0x1000,(bank*0x1000)+size,read8_delegate(*this, FUNC(fm7_state::fm7_vram8_r)),write8_delegate(*this, FUNC(fm7_state::fm7_vram8_w)));
break;
case 0x19:
- space.install_readwrite_handler(bank*0x1000,(bank*0x1000)+size,read8_delegate(FUNC(fm7_state::fm7_vram9_r),this),write8_delegate(FUNC(fm7_state::fm7_vram9_w),this));
+ space.install_readwrite_handler(bank*0x1000,(bank*0x1000)+size,read8_delegate(*this, FUNC(fm7_state::fm7_vram9_r)),write8_delegate(*this, FUNC(fm7_state::fm7_vram9_w)));
break;
case 0x1a:
- space.install_readwrite_handler(bank*0x1000,(bank*0x1000)+size,read8_delegate(FUNC(fm7_state::fm7_vramA_r),this),write8_delegate(FUNC(fm7_state::fm7_vramA_w),this));
+ space.install_readwrite_handler(bank*0x1000,(bank*0x1000)+size,read8_delegate(*this, FUNC(fm7_state::fm7_vramA_r)),write8_delegate(*this, FUNC(fm7_state::fm7_vramA_w)));
break;
case 0x1b:
- space.install_readwrite_handler(bank*0x1000,(bank*0x1000)+size,read8_delegate(FUNC(fm7_state::fm7_vramB_r),this),write8_delegate(FUNC(fm7_state::fm7_vramB_w),this));
+ space.install_readwrite_handler(bank*0x1000,(bank*0x1000)+size,read8_delegate(*this, FUNC(fm7_state::fm7_vramB_r)),write8_delegate(*this, FUNC(fm7_state::fm7_vramB_w)));
break;
}
// membank(bank+1)->set_base(RAM+(physical<<12)-0x10000);
@@ -1067,12 +1067,12 @@ void fm7_state::fm7_update_bank(address_space & space, int bank, uint8_t physica
}
if(physical == 0x1c)
{
- space.install_readwrite_handler(bank*0x1000,(bank*0x1000)+size,read8_delegate(FUNC(fm7_state::fm7_console_ram_banked_r),this),write8_delegate(FUNC(fm7_state::fm7_console_ram_banked_w),this));
+ space.install_readwrite_handler(bank*0x1000,(bank*0x1000)+size,read8_delegate(*this, FUNC(fm7_state::fm7_console_ram_banked_r)),write8_delegate(*this, FUNC(fm7_state::fm7_console_ram_banked_w)));
return;
}
if(physical == 0x1d)
{
- space.install_readwrite_handler(bank*0x1000,(bank*0x1000)+size,read8_delegate(FUNC(fm7_state::fm7_sub_ram_ports_banked_r),this),write8_delegate(FUNC(fm7_state::fm7_sub_ram_ports_banked_w),this));
+ space.install_readwrite_handler(bank*0x1000,(bank*0x1000)+size,read8_delegate(*this, FUNC(fm7_state::fm7_sub_ram_ports_banked_r)),write8_delegate(*this, FUNC(fm7_state::fm7_sub_ram_ports_banked_w)));
return;
}
if(physical == 0x35)
@@ -1145,7 +1145,7 @@ void fm7_state::fm7_mmr_refresh(address_space& space)
}
else
{
- space.install_readwrite_handler(0x7000,0x7fff,read8sm_delegate(FUNC(address_map_bank_device::read8),(address_map_bank_device*)m_avbank[7]),write8sm_delegate(FUNC(address_map_bank_device::write8),(address_map_bank_device*)m_avbank[7]));
+ space.install_readwrite_handler(0x7000,0x7fff,read8sm_delegate(*m_avbank[7], FUNC(address_map_bank_device::read8)),write8sm_delegate(*m_avbank[7], FUNC(address_map_bank_device::write8)));
}
if(m_init_rom_en)
{
diff --git a/src/mame/drivers/force68k.cpp b/src/mame/drivers/force68k.cpp
index 1002f3d9eae..9971891ed82 100644
--- a/src/mame/drivers/force68k.cpp
+++ b/src/mame/drivers/force68k.cpp
@@ -381,9 +381,9 @@ void force68k_state::machine_start ()
{
m_usrrom = (uint16_t*)m_cart->get_rom_base();
#if 0 // This should be the correct way but produces odd and even bytes swapped
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xa0000, 0xbffff, read16_delegate(FUNC(generic_slot_device::read16_rom), (generic_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xa0000, 0xbffff, read16_delegate(*m_cart, FUNC(generic_slot_device::read16_rom)));
#else // So we installs a custom very ineffecient handler for now until we understand hwp to solve the problem better
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xa0000, 0xbffff, read16_delegate(FUNC(force68k_state::read16_rom), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xa0000, 0xbffff, read16_delegate(*this, FUNC(force68k_state::read16_rom)));
#endif
}
}
@@ -500,7 +500,7 @@ void force68k_state::fccpu1_eprom_sockets(machine_config &config)
generic_cartslot_device &exp_rom1(GENERIC_CARTSLOT(config, "exp_rom1", generic_plain_slot, "fccpu1_cart", "bin,rom"));
exp_rom1.set_width(GENERIC_ROM16_WIDTH);
exp_rom1.set_endian(ENDIANNESS_BIG);
- exp_rom1.set_device_load(FUNC(force68k_state::exp1_load), this);
+ exp_rom1.set_device_load(FUNC(force68k_state::exp1_load));
// SOFTWARE_LIST(config, "cart_list").set_original("fccpu1_cart");
}
diff --git a/src/mame/drivers/fp1100.cpp b/src/mame/drivers/fp1100.cpp
index b076857ded9..33fd04d2e16 100644
--- a/src/mame/drivers/fp1100.cpp
+++ b/src/mame/drivers/fp1100.cpp
@@ -302,7 +302,7 @@ void fp1100_state::sub_map(address_map &map)
map(0xe001, 0xe001).mirror(0x3fe).rw(m_crtc, FUNC(mc6845_device::register_r), FUNC(mc6845_device::register_w));
map(0xe400, 0xe7ff).portr("DSW").w(FUNC(fp1100_state::kbd_row_w));
map(0xe800, 0xebff).rw(FUNC(fp1100_state::main_to_sub_r), FUNC(fp1100_state::sub_to_main_w));
- map(0xec00, 0xefff).lw8("reset0", [this] (u8 data) { m_subcpu->set_input_line(UPD7810_INTF0, CLEAR_LINE); });
+ map(0xec00, 0xefff).lw8(NAME([this] (u8 data) { m_subcpu->set_input_line(UPD7810_INTF0, CLEAR_LINE); }));
map(0xf000, 0xf3ff).w(FUNC(fp1100_state::colour_control_w));
map(0xf400, 0xff7f).rom().region("sub_ipl", 0x2400);
}
@@ -711,7 +711,7 @@ void fp1100_state::fp1100(machine_config &config)
m_crtc->set_screen("screen");
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8);
- m_crtc->set_update_row_callback(FUNC(fp1100_state::crtc_update_row), this);
+ m_crtc->set_update_row_callback(FUNC(fp1100_state::crtc_update_row));
/* Printer */
CENTRONICS(config, m_centronics, centronics_devices, "printer");
diff --git a/src/mame/drivers/freeway.cpp b/src/mame/drivers/freeway.cpp
index 38db5cdcc93..a45d6743261 100644
--- a/src/mame/drivers/freeway.cpp
+++ b/src/mame/drivers/freeway.cpp
@@ -149,7 +149,7 @@ void freeway_state::freeway(machine_config &config)
crtc.set_char_width(8);
crtc.set_show_border_area(false);
crtc.set_screen("screen");
- crtc.set_update_row_callback(FUNC(freeway_state::update_row), this);
+ crtc.set_update_row_callback(FUNC(freeway_state::update_row));
crtc.out_hsync_callback().set("pit", FUNC(pit8254_device::write_clk0)); // guess
ns16450_device &uart(NS16450(config, "uart", 10_MHz_XTAL / 8)); // type unknown
diff --git a/src/mame/drivers/fresh.cpp b/src/mame/drivers/fresh.cpp
index 0dc19ad686b..bded8f6855b 100644
--- a/src/mame/drivers/fresh.cpp
+++ b/src/mame/drivers/fresh.cpp
@@ -159,8 +159,8 @@ WRITE16_MEMBER(fresh_state::fresh_attr_2_videoram_w)
void fresh_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(fresh_state::get_fresh_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 512);
- m_bg_2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(fresh_state::get_fresh_bg_2_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 512);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(fresh_state::get_fresh_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 512);
+ m_bg_2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(fresh_state::get_fresh_bg_2_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 512);
m_bg_tilemap->set_transparent_pen(255);
}
diff --git a/src/mame/drivers/fs3216.cpp b/src/mame/drivers/fs3216.cpp
index 7f8df004b84..7ecd6312289 100644
--- a/src/mame/drivers/fs3216.cpp
+++ b/src/mame/drivers/fs3216.cpp
@@ -467,7 +467,7 @@ void fs3216_state::fs3216(machine_config &config)
M68000(config, m_maincpu, 44.2368_MHz_XTAL / 8); // 5.5 MHz
m_maincpu->set_addrmap(AS_PROGRAM, &fs3216_state::main_map);
m_maincpu->set_addrmap(m68000_device::AS_CPU_SPACE, &fs3216_state::fc7_map);
- m_maincpu->set_reset_callback(write_line_delegate(FUNC(fs3216_state::mmu_reset_w), this));
+ m_maincpu->set_reset_callback(FUNC(fs3216_state::mmu_reset_w));
ADDRESS_MAP_BANK(config, m_clb);
m_clb->set_addrmap(0, &fs3216_state::clb_map);
@@ -501,7 +501,7 @@ void fs3216_state::fs3216(machine_config &config)
mc6845_device &crtc(MC6845(config, "crtc", 14.58_MHz_XTAL / 9)); // HD46505RP
crtc.set_char_width(9);
crtc.set_show_border_area(false);
- crtc.set_update_row_callback(FUNC(fs3216_state::crt_update_row), this);
+ crtc.set_update_row_callback(FUNC(fs3216_state::crt_update_row));
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
screen.set_color(rgb_t::green());
diff --git a/src/mame/drivers/funkball.cpp b/src/mame/drivers/funkball.cpp
index 95bd5f603bf..3c88dd69f37 100644
--- a/src/mame/drivers/funkball.cpp
+++ b/src/mame/drivers/funkball.cpp
@@ -773,10 +773,8 @@ void funkball_state::funkball(machine_config &config)
pcat_common(config);
pci_bus_legacy_device &pcibus(PCI_BUS_LEGACY(config, "pcibus", 0, 0));
- pcibus.set_device_read (7, FUNC(funkball_state::voodoo_0_pci_r), this);
- pcibus.set_device_write(7, FUNC(funkball_state::voodoo_0_pci_w), this);
- pcibus.set_device_read (18, FUNC(funkball_state::cx5510_pci_r), this);
- pcibus.set_device_write(18, FUNC(funkball_state::cx5510_pci_w), this);
+ pcibus.set_device(7, FUNC(funkball_state::voodoo_0_pci_r), FUNC(funkball_state::voodoo_0_pci_w));
+ pcibus.set_device(18, FUNC(funkball_state::cx5510_pci_r), FUNC(funkball_state::cx5510_pci_w));
ide_controller_device &ide(IDE_CONTROLLER(config, "ide").options(ata_devices, "hdd", nullptr, true));
ide.irq_handler().set("pic8259_2", FUNC(pic8259_device::ir6_w));
diff --git a/src/mame/drivers/funtech.cpp b/src/mame/drivers/funtech.cpp
index 9f9077ef500..06b94be2839 100644
--- a/src/mame/drivers/funtech.cpp
+++ b/src/mame/drivers/funtech.cpp
@@ -130,12 +130,12 @@ WRITE8_MEMBER(fun_tech_corp_state::reel_ram_w)
void fun_tech_corp_state::video_start()
{
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(fun_tech_corp_state::get_fg_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(fun_tech_corp_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_fg_tilemap->set_transparent_pen(0);
- m_reel_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(fun_tech_corp_state::get_reel_tile_info<0>), this), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
- m_reel_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(fun_tech_corp_state::get_reel_tile_info<1>), this), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
- m_reel_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(fun_tech_corp_state::get_reel_tile_info<2>), this), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
+ m_reel_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(fun_tech_corp_state::get_reel_tile_info<0>)), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
+ m_reel_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(fun_tech_corp_state::get_reel_tile_info<1>)), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
+ m_reel_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(fun_tech_corp_state::get_reel_tile_info<2>)), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
m_reel_tilemap[0]->set_scroll_cols(64);
m_reel_tilemap[1]->set_scroll_cols(64);
diff --git a/src/mame/drivers/fuukifg2.cpp b/src/mame/drivers/fuukifg2.cpp
index 45ab3b8efd5..37cef4df745 100644
--- a/src/mame/drivers/fuukifg2.cpp
+++ b/src/mame/drivers/fuukifg2.cpp
@@ -486,7 +486,7 @@ void fuuki16_state::fuuki16(machine_config &config)
m_fuukivid->set_palette(m_palette);
m_fuukivid->set_color_base(0x400*2);
m_fuukivid->set_color_num(0x40);
- m_fuukivid->set_colpri_callback(FUNC(fuuki16_state::fuuki16_colpri_cb), this);
+ m_fuukivid->set_colpri_callback(FUNC(fuuki16_state::fuuki16_colpri_cb));
/* sound hardware */
SPEAKER(config, "mono").front_center();
diff --git a/src/mame/drivers/fuukifg3.cpp b/src/mame/drivers/fuukifg3.cpp
index e81b0077e8e..bb740c0d4e5 100644
--- a/src/mame/drivers/fuukifg3.cpp
+++ b/src/mame/drivers/fuukifg3.cpp
@@ -241,10 +241,10 @@ void fuuki32_state::fuuki32_map(address_map &map)
map(0x600000, 0x601fff).rw(FUNC(fuuki32_state::sprram_r), FUNC(fuuki32_state::sprram_w)).share("spriteram"); // Sprites
map(0x700000, 0x703fff).ram().w(m_palette, FUNC(palette_device::write32)).share("palette"); // Palette
- map(0x800000, 0x800003).lr16("800000", [this]() { return u16(m_system->read()); }).nopw(); // Coin
- map(0x810000, 0x810003).lr16("810000", [this]() { return u16(m_inputs->read()); }).nopw(); // Player Inputs
- map(0x880000, 0x880003).lr16("880000", [this]() { return u16(m_dsw1->read()); }); // Service + DIPS
- map(0x890000, 0x890003).lr16("890000", [this]() { return u16(m_dsw2->read()); }); // More DIPS
+ map(0x800000, 0x800003).lr16(NAME([this] () { return u16(m_system->read()); })).nopw(); // Coin
+ map(0x810000, 0x810003).lr16(NAME([this] () { return u16(m_inputs->read()); })).nopw(); // Player Inputs
+ map(0x880000, 0x880003).lr16(NAME([this] () { return u16(m_dsw1->read()); })); // Service + DIPS
+ map(0x890000, 0x890003).lr16(NAME([this] () { return u16(m_dsw2->read()); })); // More DIPS
map(0x8c0000, 0x8c001f).rw(FUNC(fuuki32_state::vregs_r), FUNC(fuuki32_state::vregs_w)).share("vregs"); // Video Registers
map(0x8d0000, 0x8d0003).ram(); // Flipscreen Related
@@ -546,8 +546,8 @@ void fuuki32_state::fuuki32(machine_config &config)
m_fuukivid->set_palette(m_palette);
m_fuukivid->set_color_base(0x400*2);
m_fuukivid->set_color_num(0x40);
- m_fuukivid->set_tile_callback(FUNC(fuuki32_state::fuuki32_tile_cb), this);
- m_fuukivid->set_colpri_callback(FUNC(fuuki32_state::fuuki32_colpri_cb), this);
+ m_fuukivid->set_tile_callback(FUNC(fuuki32_state::fuuki32_tile_cb));
+ m_fuukivid->set_colpri_callback(FUNC(fuuki32_state::fuuki32_colpri_cb));
/* sound hardware */
SPEAKER(config, "lspeaker").front_left();
diff --git a/src/mame/drivers/gaelco.cpp b/src/mame/drivers/gaelco.cpp
index 3f257652ef3..922cdb47320 100644
--- a/src/mame/drivers/gaelco.cpp
+++ b/src/mame/drivers/gaelco.cpp
@@ -117,7 +117,7 @@ void gaelco_state::bigkarnk_map(address_map &map)
map(0x700004, 0x700005).portr("P1");
map(0x700006, 0x700007).portr("P2");
map(0x700008, 0x700009).portr("SERVICE");
- map(0x70000b, 0x70000b).select(0x000070).lw8("outlatch_w", [this](offs_t offset, u8 data) { m_outlatch->write_d0(offset >> 4, data); });
+ map(0x70000b, 0x70000b).select(0x000070).lw8(NAME([this] (offs_t offset, u8 data) { m_outlatch->write_d0(offset >> 4, data); }));
map(0x70000f, 0x70000f).w(m_soundlatch, FUNC(generic_latch_8_device::write)); /* Triggers a FIRQ on the sound CPU */
map(0xff8000, 0xffffff).ram(); /* Work RAM */
}
@@ -163,7 +163,7 @@ void gaelco_state::squash_map(address_map &map)
map(0x700002, 0x700003).portr("DSW1");
map(0x700004, 0x700005).portr("P1");
map(0x700006, 0x700007).portr("P2");
- map(0x70000b, 0x70000b).select(0x000070).lw8("outlatch_w", [this](offs_t offset, u8 data) { m_outlatch->write_d0(offset >> 4, data); });
+ map(0x70000b, 0x70000b).select(0x000070).lw8(NAME([this] (offs_t offset, u8 data) { m_outlatch->write_d0(offset >> 4, data); }));
map(0x70000d, 0x70000d).w(FUNC(gaelco_state::oki_bankswitch_w));
map(0x70000f, 0x70000f).rw("oki", FUNC(okim6295_device::read), FUNC(okim6295_device::write)); /* OKI6295 status register */
map(0xff0000, 0xffffff).ram(); /* Work RAM */
@@ -182,7 +182,7 @@ void gaelco_state::thoop_map(address_map &map)
map(0x700002, 0x700003).portr("DSW1");
map(0x700004, 0x700005).portr("P1");
map(0x700006, 0x700007).portr("P2");
- map(0x70000b, 0x70000b).select(0x000070).lw8("outlatch_w", [this](offs_t offset, u8 data) { m_outlatch->write_d0(offset >> 4, data); });
+ map(0x70000b, 0x70000b).select(0x000070).lw8(NAME([this] (offs_t offset, u8 data) { m_outlatch->write_d0(offset >> 4, data); }));
map(0x70000d, 0x70000d).w(FUNC(gaelco_state::oki_bankswitch_w));
map(0x70000f, 0x70000f).rw("oki", FUNC(okim6295_device::read), FUNC(okim6295_device::write)); /* OKI6295 status register */
map(0xff0000, 0xffffff).ram(); /* Work RAM */
diff --git a/src/mame/drivers/gaelco3d.cpp b/src/mame/drivers/gaelco3d.cpp
index 7a4f364bdf2..cb84e65c477 100644
--- a/src/mame/drivers/gaelco3d.cpp
+++ b/src/mame/drivers/gaelco3d.cpp
@@ -669,9 +669,9 @@ void gaelco3d_state::main_map(address_map &map)
map(0x510042, 0x510043).r(FUNC(gaelco3d_state::sound_status_r));
map(0x510100, 0x510101).rw(FUNC(gaelco3d_state::eeprom_data_r), FUNC(gaelco3d_state::irq_ack_w));
map(0x510103, 0x510103).r(m_serial, FUNC(gaelco_serial_device::data_r));
- map(0x510103, 0x510103).select(0x000038).lw8("mainlatch_w", [this](offs_t offset, u8 data) { m_mainlatch->write_d0(offset >> 3, data); });
+ map(0x510103, 0x510103).select(0x000038).lw8(NAME([this] (offs_t offset, u8 data) { m_mainlatch->write_d0(offset >> 3, data); }));
map(0x510105, 0x510105).w(m_serial, FUNC(gaelco_serial_device::data_w));
- map(0x510107, 0x510107).select(0x000070).lw8("outlatch_w", [this](offs_t offset, u8 data) { m_outlatch->write_d0(offset >> 4, data); });
+ map(0x510107, 0x510107).select(0x000070).lw8(NAME([this] (offs_t offset, u8 data) { m_outlatch->write_d0(offset >> 4, data); }));
map(0xfe0000, 0xfeffff).ram().share("m68k_ram_base");
}
@@ -688,9 +688,9 @@ void gaelco3d_state::main020_map(address_map &map)
map(0x510042, 0x510043).r(FUNC(gaelco3d_state::sound_status_r));
map(0x510100, 0x510101).rw(FUNC(gaelco3d_state::eeprom_data_r), FUNC(gaelco3d_state::irq_ack_w));
map(0x510103, 0x510103).r(m_serial, FUNC(gaelco_serial_device::data_r));
- map(0x510103, 0x510103).select(0x000038).lw8("mainlatch_w", [this](offs_t offset, u8 data) { m_mainlatch->write_d0(offset >> 3, data); });
+ map(0x510103, 0x510103).select(0x000038).lw8(NAME([this] (offs_t offset, u8 data) { m_mainlatch->write_d0(offset >> 3, data); }));
map(0x510105, 0x510105).w(m_serial, FUNC(gaelco_serial_device::data_w));
- map(0x510107, 0x510107).select(0x000070).lw8("outlatch_w", [this](offs_t offset, u8 data) { m_outlatch->write_d0(offset >> 4, data); });
+ map(0x510107, 0x510107).select(0x000070).lw8(NAME([this] (offs_t offset, u8 data) { m_outlatch->write_d0(offset >> 4, data); }));
map(0xfe0000, 0xfeffff).ram().share("m68k_ram_base");
}
diff --git a/src/mame/drivers/galaga.cpp b/src/mame/drivers/galaga.cpp
index 649b386f8d1..e32aa6b07fc 100644
--- a/src/mame/drivers/galaga.cpp
+++ b/src/mame/drivers/galaga.cpp
@@ -3462,8 +3462,8 @@ void xevious_state::init_xevios()
void battles_state::driver_init()
{
/* replace the Namco I/O handlers with interface to the 4th CPU */
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x7000, 0x700f, read8_delegate(FUNC(battles_state::customio_data0_r),this), write8_delegate(FUNC(battles_state::customio_data0_w),this) );
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x7100, 0x7100, read8_delegate(FUNC(battles_state::customio0_r),this), write8_delegate(FUNC(battles_state::customio0_w),this) );
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x7000, 0x700f, read8_delegate(*this, FUNC(battles_state::customio_data0_r)), write8_delegate(*this, FUNC(battles_state::customio_data0_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x7100, 0x7100, read8_delegate(*this, FUNC(battles_state::customio0_r)), write8_delegate(*this, FUNC(battles_state::customio0_w)));
init_xevious();
}
diff --git a/src/mame/drivers/galaxi.cpp b/src/mame/drivers/galaxi.cpp
index e0a6cbfe08d..1bb2be6ed22 100644
--- a/src/mame/drivers/galaxi.cpp
+++ b/src/mame/drivers/galaxi.cpp
@@ -198,12 +198,12 @@ WRITE16_MEMBER(galaxi_state::fg_w)
void galaxi_state::video_start()
{
- m_bg1_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(galaxi_state::get_bg1_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 0x20, 0x10);
- m_bg2_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(galaxi_state::get_bg2_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 0x20, 0x10);
- m_bg3_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(galaxi_state::get_bg3_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 0x20, 0x10);
- m_bg4_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(galaxi_state::get_bg4_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 0x20, 0x10);
+ m_bg1_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(galaxi_state::get_bg1_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 0x20, 0x10);
+ m_bg2_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(galaxi_state::get_bg2_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 0x20, 0x10);
+ m_bg3_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(galaxi_state::get_bg3_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 0x20, 0x10);
+ m_bg4_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(galaxi_state::get_bg4_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 0x20, 0x10);
- m_fg_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(galaxi_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 0x40, 0x20);
+ m_fg_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(galaxi_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 0x40, 0x20);
m_bg1_tmap->set_transparent_pen(0);
m_bg2_tmap->set_transparent_pen(0);
diff --git a/src/mame/drivers/galaxian.cpp b/src/mame/drivers/galaxian.cpp
index d4731c61128..570f6e27f57 100644
--- a/src/mame/drivers/galaxian.cpp
+++ b/src/mame/drivers/galaxian.cpp
@@ -7096,7 +7096,7 @@ void galaxian_state::init_pisces()
common_init(&galaxian_state::galaxian_draw_bullet, &galaxian_state::galaxian_draw_background, &galaxian_state::pisces_extend_tile_info, &galaxian_state::pisces_extend_sprite_info);
/* coin lockout replaced by graphics bank */
- space.install_write_handler(0x6002, 0x6002, 0, 0x7f8, 0, write8_delegate(FUNC(galaxian_state::galaxian_gfxbank_w),this));
+ space.install_write_handler(0x6002, 0x6002, 0, 0x7f8, 0, write8_delegate(*this, FUNC(galaxian_state::galaxian_gfxbank_w)));
}
@@ -7108,7 +7108,7 @@ void galaxian_state::init_batman2()
common_init(&galaxian_state::galaxian_draw_bullet, &galaxian_state::galaxian_draw_background, &galaxian_state::batman2_extend_tile_info, &galaxian_state::upper_extend_sprite_info);
/* coin lockout replaced by graphics bank */
- space.install_write_handler(0x6002, 0x6002, 0, 0x7f8, 0, write8_delegate(FUNC(galaxian_state::galaxian_gfxbank_w),this));
+ space.install_write_handler(0x6002, 0x6002, 0, 0x7f8, 0, write8_delegate(*this, FUNC(galaxian_state::galaxian_gfxbank_w)));
}
@@ -7176,7 +7176,7 @@ void galaxian_state::init_mooncrgx()
common_init(&galaxian_state::galaxian_draw_bullet, &galaxian_state::galaxian_draw_background, &galaxian_state::mooncrst_extend_tile_info, &galaxian_state::mooncrst_extend_sprite_info);
/* LEDs and coin lockout replaced by graphics banking */
- space.install_write_handler(0x6000, 0x6002, 0, 0x7f8, 0, write8_delegate(FUNC(galaxian_state::galaxian_gfxbank_w),this));
+ space.install_write_handler(0x6000, 0x6002, 0, 0x7f8, 0, write8_delegate(*this, FUNC(galaxian_state::galaxian_gfxbank_w)));
}
@@ -7202,7 +7202,7 @@ void galaxian_state::init_pacmanbl()
init_galaxian();
/* ...but coin lockout disabled/disconnected */
- space.install_write_handler(0x6002, 0x6002, 0, 0x7f8, 0, write8_delegate(FUNC(galaxian_state::artic_gfxbank_w),this));
+ space.install_write_handler(0x6002, 0x6002, 0, 0x7f8, 0, write8_delegate(*this, FUNC(galaxian_state::artic_gfxbank_w)));
}
READ8_MEMBER(galaxian_state::tenspot_dsw_read)
@@ -7265,18 +7265,18 @@ void galaxian_state::init_tenspot()
//common_init(&galaxian_state::galaxian_draw_bullet, &galaxian_state::galaxian_draw_background, &galaxian_state::batman2_extend_tile_info, &galaxian_state::upper_extend_sprite_info);
/* coin lockout replaced by graphics bank */
- //space.install_write_handler(0x6002, 0x6002, 0, 0x7f8, 0, write8_delegate(FUNC(galaxian_state::galaxian_gfxbank_w),this));
+ //space.install_write_handler(0x6002, 0x6002, 0, 0x7f8, 0, write8_delegate(*this, FUNC(galaxian_state::galaxian_gfxbank_w)));
init_galaxian();
- space.install_write_handler(0x6002, 0x6002, 0, 0x7f8, 0, write8_delegate(FUNC(galaxian_state::artic_gfxbank_w),this));
+ space.install_write_handler(0x6002, 0x6002, 0, 0x7f8, 0, write8_delegate(*this, FUNC(galaxian_state::artic_gfxbank_w)));
m_tenspot_current_game = 0;
tenspot_set_game_bank(m_tenspot_current_game, 0);
- space.install_read_handler(0x7000, 0x7000, read8_delegate(FUNC(galaxian_state::tenspot_dsw_read),this));
+ space.install_read_handler(0x7000, 0x7000, read8_delegate(*this, FUNC(galaxian_state::tenspot_dsw_read)));
}
@@ -7328,10 +7328,10 @@ void galaxian_state::init_checkman()
/* move the interrupt enable from $b000 to $b001 */
space.unmap_write(0xb000, 0xb000, 0x7f8);
- space.install_write_handler(0xb001, 0xb001, 0, 0x7f8, 0, write8_delegate(FUNC(galaxian_state::irq_enable_w),this));
+ space.install_write_handler(0xb001, 0xb001, 0, 0x7f8, 0, write8_delegate(*this, FUNC(galaxian_state::irq_enable_w)));
/* attach the sound command handler */
- iospace.install_write_handler(0x00, 0x00, 0, 0xffff, 0, write8_delegate(FUNC(galaxian_state::checkman_sound_command_w),this));
+ iospace.install_write_handler(0x00, 0x00, 0, 0xffff, 0, write8_delegate(*this, FUNC(galaxian_state::checkman_sound_command_w)));
/* decrypt program code */
decode_checkman();
@@ -7346,10 +7346,10 @@ void galaxian_state::init_checkmaj()
common_init(&galaxian_state::galaxian_draw_bullet, &galaxian_state::galaxian_draw_background, nullptr, nullptr);
/* attach the sound command handler */
- space.install_write_handler(0x7800, 0x7800, 0, 0x7ff, 0, write8_delegate(FUNC(galaxian_state::checkman_sound_command_w),this));
+ space.install_write_handler(0x7800, 0x7800, 0, 0x7ff, 0, write8_delegate(*this, FUNC(galaxian_state::checkman_sound_command_w)));
/* for the title screen */
- space.install_read_handler(0x3800, 0x3800, read8_delegate(FUNC(galaxian_state::checkmaj_protection_r),this));
+ space.install_read_handler(0x3800, 0x3800, read8_delegate(*this, FUNC(galaxian_state::checkmaj_protection_r)));
}
@@ -7361,10 +7361,10 @@ void galaxian_state::init_dingo()
common_init(&galaxian_state::galaxian_draw_bullet, &galaxian_state::galaxian_draw_background, nullptr, nullptr);
/* attach the sound command handler */
- space.install_write_handler(0x7800, 0x7800, 0, 0x7ff, 0, write8_delegate(FUNC(galaxian_state::checkman_sound_command_w),this));
+ space.install_write_handler(0x7800, 0x7800, 0, 0x7ff, 0, write8_delegate(*this, FUNC(galaxian_state::checkman_sound_command_w)));
- space.install_read_handler(0x3000, 0x3000, read8_delegate(FUNC(galaxian_state::dingo_3000_r),this));
- space.install_read_handler(0x3035, 0x3035, read8_delegate(FUNC(galaxian_state::dingo_3035_r),this));
+ space.install_read_handler(0x3000, 0x3000, read8_delegate(*this, FUNC(galaxian_state::dingo_3000_r)));
+ space.install_read_handler(0x3035, 0x3035, read8_delegate(*this, FUNC(galaxian_state::dingo_3035_r)));
}
@@ -7378,12 +7378,12 @@ void galaxian_state::init_dingoe()
/* move the interrupt enable from $b000 to $b001 */
space.unmap_write(0xb000, 0xb000, 0x7f8);
- space.install_write_handler(0xb001, 0xb001, 0, 0x7f8, 0, write8_delegate(FUNC(galaxian_state::irq_enable_w),this));
+ space.install_write_handler(0xb001, 0xb001, 0, 0x7f8, 0, write8_delegate(*this, FUNC(galaxian_state::irq_enable_w)));
/* attach the sound command handler */
- iospace.install_write_handler(0x00, 0x00, 0, 0xffff, 0, write8_delegate(FUNC(galaxian_state::checkman_sound_command_w),this));
+ iospace.install_write_handler(0x00, 0x00, 0, 0xffff, 0, write8_delegate(*this, FUNC(galaxian_state::checkman_sound_command_w)));
- space.install_read_handler(0x3001, 0x3001, read8_delegate(FUNC(galaxian_state::dingoe_3001_r),this)); /* Protection check */
+ space.install_read_handler(0x3001, 0x3001, read8_delegate(*this, FUNC(galaxian_state::dingoe_3001_r))); // Protection check
/* decrypt program code */
decode_dingoe();
@@ -7533,10 +7533,10 @@ void galaxian_state::init_kingball()
/* disable the stars */
space.unmap_write(0xb004, 0xb004, 0x7f8);
- space.install_write_handler(0xb000, 0xb000, 0, 0x7f8, 0, write8_delegate(FUNC(galaxian_state::kingball_sound1_w),this));
- space.install_write_handler(0xb001, 0xb001, 0, 0x7f8, 0, write8_delegate(FUNC(galaxian_state::irq_enable_w),this));
- space.install_write_handler(0xb002, 0xb002, 0, 0x7f8, 0, write8_delegate(FUNC(galaxian_state::kingball_sound2_w),this));
- space.install_write_handler(0xb003, 0xb003, 0, 0x7f8, 0, write8_delegate(FUNC(galaxian_state::kingball_speech_dip_w),this));
+ space.install_write_handler(0xb000, 0xb000, 0, 0x7f8, 0, write8_delegate(*this, FUNC(galaxian_state::kingball_sound1_w)));
+ space.install_write_handler(0xb001, 0xb001, 0, 0x7f8, 0, write8_delegate(*this, FUNC(galaxian_state::irq_enable_w)));
+ space.install_write_handler(0xb002, 0xb002, 0, 0x7f8, 0, write8_delegate(*this, FUNC(galaxian_state::kingball_sound2_w)));
+ space.install_write_handler(0xb003, 0xb003, 0, 0x7f8, 0, write8_delegate(*this, FUNC(galaxian_state::kingball_speech_dip_w)));
save_item(NAME(m_kingball_speech_dip));
save_item(NAME(m_kingball_sound));
@@ -7581,7 +7581,7 @@ void galaxian_state::init_mandinga()
address_space &space = m_maincpu->space(AS_PROGRAM);
watchdog_timer_device *wdog = subdevice<watchdog_timer_device>("watchdog");
space.unmap_read(0x7000, 0x7000, 0x7ff);
- space.install_read_handler(0x6800, 0x6800, 0, 0x7ff, 0, read8mo_delegate(FUNC(watchdog_timer_device::reset_r), wdog));
+ space.install_read_handler(0x6800, 0x6800, 0, 0x7ff, 0, read8mo_delegate(*wdog, FUNC(watchdog_timer_device::reset_r)));
}
void galaxian_state::init_sfx()
@@ -7606,7 +7606,7 @@ void galaxian_state::init_atlantis()
/* watchdog is at $7800? (or is it just disabled?) */
watchdog_timer_device *wdog = subdevice<watchdog_timer_device>("watchdog");
space.unmap_read(0x7000, 0x77ff);
- space.install_read_handler(0x7800, 0x7800, 0, 0x7ff, 0, read8mo_delegate(FUNC(watchdog_timer_device::reset_r), wdog));
+ space.install_read_handler(0x7800, 0x7800, 0, 0x7ff, 0, read8mo_delegate(*wdog, FUNC(watchdog_timer_device::reset_r)));
}
diff --git a/src/mame/drivers/galaxy.cpp b/src/mame/drivers/galaxy.cpp
index aedf7042191..8d4b39b8500 100644
--- a/src/mame/drivers/galaxy.cpp
+++ b/src/mame/drivers/galaxy.cpp
@@ -197,7 +197,7 @@ void galaxy_state::galaxy(machine_config &config)
PALETTE(config, "palette", palette_device::MONOCHROME);
/* snapshot */
- SNAPSHOT(config, "snapshot", "gal").set_load_callback(FUNC(galaxy_state::snapshot_cb), this);
+ SNAPSHOT(config, "snapshot", "gal").set_load_callback(FUNC(galaxy_state::snapshot_cb));
SPEAKER(config, "mono").front_center();
@@ -236,7 +236,7 @@ void galaxy_state::galaxyp(machine_config &config)
/* snapshot */
- SNAPSHOT(config, "snapshot", "gal").set_load_callback(FUNC(galaxy_state::snapshot_cb), this);
+ SNAPSHOT(config, "snapshot", "gal").set_load_callback(FUNC(galaxy_state::snapshot_cb));
/* sound hardware */
SPEAKER(config, "mono").front_center();
diff --git a/src/mame/drivers/galivan.cpp b/src/mame/drivers/galivan.cpp
index a5223a52f74..0860d240162 100644
--- a/src/mame/drivers/galivan.cpp
+++ b/src/mame/drivers/galivan.cpp
@@ -1176,7 +1176,7 @@ WRITE8_MEMBER(galivan_state::youmab_86_w)
void galivan_state::init_youmab()
{
- m_maincpu->space(AS_IO).install_write_handler(0x82, 0x82, write8_delegate(FUNC(galivan_state::youmab_extra_bank_w),this)); // banks rom at 0x8000? writes 0xff and 0x00 before executing code there
+ m_maincpu->space(AS_IO).install_write_handler(0x82, 0x82, write8_delegate(*this, FUNC(galivan_state::youmab_extra_bank_w))); // banks rom at 0x8000? writes 0xff and 0x00 before executing code there
m_maincpu->space(AS_PROGRAM).install_read_bank(0x0000, 0x7fff, "bank3");
membank("bank3")->set_base(memregion("maincpu")->base());
@@ -1184,14 +1184,14 @@ void galivan_state::init_youmab()
membank("bank2")->configure_entries(0, 2, memregion("user2")->base(), 0x4000);
membank("bank2")->set_entry(0);
- m_maincpu->space(AS_IO).install_write_handler(0x81, 0x81, write8_delegate(FUNC(galivan_state::youmab_81_w),this)); // ?? often, alternating values
- m_maincpu->space(AS_IO).install_write_handler(0x84, 0x84, write8_delegate(FUNC(galivan_state::youmab_84_w),this)); // ?? often, sequence..
+ m_maincpu->space(AS_IO).install_write_handler(0x81, 0x81, write8_delegate(*this, FUNC(galivan_state::youmab_81_w))); // ?? often, alternating values
+ m_maincpu->space(AS_IO).install_write_handler(0x84, 0x84, write8_delegate(*this, FUNC(galivan_state::youmab_84_w))); // ?? often, sequence..
m_maincpu->space(AS_PROGRAM).nop_write(0xd800, 0xd81f); // scrolling isn't here..
- m_maincpu->space(AS_IO).install_read_handler(0x8a, 0x8a, read8_delegate(FUNC(galivan_state::youmab_8a_r),this)); // ???
+ m_maincpu->space(AS_IO).install_read_handler(0x8a, 0x8a, read8_delegate(*this, FUNC(galivan_state::youmab_8a_r))); // ???
- m_maincpu->space(AS_IO).install_write_handler(0x86, 0x86, write8_delegate(FUNC(galivan_state::youmab_86_w),this));
+ m_maincpu->space(AS_IO).install_write_handler(0x86, 0x86, write8_delegate(*this, FUNC(galivan_state::youmab_86_w)));
}
diff --git a/src/mame/drivers/gamecom.cpp b/src/mame/drivers/gamecom.cpp
index 9869991add1..db8c9d155f6 100644
--- a/src/mame/drivers/gamecom.cpp
+++ b/src/mame/drivers/gamecom.cpp
@@ -292,8 +292,8 @@ void gamecom_state::gamecom(machine_config &config)
vref.add_route(0, "dac1", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac1", -1.0, DAC_VREF_NEG_INPUT);
/* cartridge */
- GENERIC_CARTSLOT(config, "cartslot1", generic_linear_slot, "gamecom_cart", "bin,tgc").set_device_load(FUNC(gamecom_state::cart1_load), this);
- GENERIC_CARTSLOT(config, "cartslot2", generic_linear_slot, "gamecom_cart", "bin,tgc").set_device_load(FUNC(gamecom_state::cart2_load), this);
+ GENERIC_CARTSLOT(config, "cartslot1", generic_linear_slot, "gamecom_cart", "bin,tgc").set_device_load(FUNC(gamecom_state::cart1_load));
+ GENERIC_CARTSLOT(config, "cartslot2", generic_linear_slot, "gamecom_cart", "bin,tgc").set_device_load(FUNC(gamecom_state::cart2_load));
SOFTWARE_LIST(config, "cart_list").set_original("gamecom");
}
diff --git a/src/mame/drivers/gamecstl.cpp b/src/mame/drivers/gamecstl.cpp
index 947eaced689..325a78878b3 100644
--- a/src/mame/drivers/gamecstl.cpp
+++ b/src/mame/drivers/gamecstl.cpp
@@ -455,10 +455,8 @@ void gamecstl_state::gamecstl(machine_config &config)
pcat_common(config);
pci_bus_legacy_device &pcibus(PCI_BUS_LEGACY(config, "pcibus", 0, 0));
- pcibus.set_device_read (0, FUNC(gamecstl_state::intel82439tx_pci_r), this);
- pcibus.set_device_write(0, FUNC(gamecstl_state::intel82439tx_pci_w), this);
- pcibus.set_device_read (7, FUNC(gamecstl_state::intel82371ab_pci_r), this);
- pcibus.set_device_write(7, FUNC(gamecstl_state::intel82371ab_pci_w), this);
+ pcibus.set_device(0, FUNC(gamecstl_state::intel82439tx_pci_r), FUNC(gamecstl_state::intel82439tx_pci_w));
+ pcibus.set_device(7, FUNC(gamecstl_state::intel82371ab_pci_r), FUNC(gamecstl_state::intel82371ab_pci_w));
ide_controller_device &ide(IDE_CONTROLLER(config, "ide").options(ata_devices, "hdd", nullptr, true));
ide.irq_handler().set("pic8259_2", FUNC(pic8259_device::ir6_w));
diff --git a/src/mame/drivers/gameking.cpp b/src/mame/drivers/gameking.cpp
index 65b222801b2..b1c1c2a4e77 100644
--- a/src/mame/drivers/gameking.cpp
+++ b/src/mame/drivers/gameking.cpp
@@ -304,7 +304,7 @@ void gameking_state::gameking(machine_config &config)
PALETTE(config, m_palette, FUNC(gameking_state::gameking_palette), ARRAY_LENGTH(gameking_pens));
/* cartridge */
- GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "gameking_cart", "bin").set_device_load(FUNC(gameking_state::cart_load), this);
+ GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "gameking_cart", "bin").set_device_load(FUNC(gameking_state::cart_load));
}
void gameking_state::gameking1(machine_config &config)
diff --git a/src/mame/drivers/gba.cpp b/src/mame/drivers/gba.cpp
index eb8e71d2e7d..95e05f76493 100644
--- a/src/mame/drivers/gba.cpp
+++ b/src/mame/drivers/gba.cpp
@@ -1344,8 +1344,8 @@ void gba_state::machine_start()
membank("rom2")->set_base(cart_rom->base());
membank("rom3")->set_base(cart_rom->base());
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x80000c4, 0x80000cb, read32_delegate(FUNC(gba_cart_slot_device::read_gpio),(gba_cart_slot_device*)m_cart));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x80000c4, 0x80000cb, write32_delegate(FUNC(gba_cart_slot_device::write_gpio),(gba_cart_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x80000c4, 0x80000cb, read32_delegate(*m_cart, FUNC(gba_cart_slot_device::read_gpio)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x80000c4, 0x80000cb, write32_delegate(*m_cart, FUNC(gba_cart_slot_device::write_gpio)));
// add nvram to save state
m_cart->save_nvram();
@@ -1353,40 +1353,40 @@ void gba_state::machine_start()
// install the cart NVRAM handlers if necessary
if (m_cart->get_type() == GBA_SRAM || m_cart->get_type() == GBA_DRILLDOZ || m_cart->get_type() == GBA_WARIOTWS)
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xe000000, 0xe00ffff, read32_delegate(FUNC(gba_cart_slot_device::read_ram),(gba_cart_slot_device*)m_cart));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xe000000, 0xe00ffff, write32_delegate(FUNC(gba_cart_slot_device::write_ram),(gba_cart_slot_device*)m_cart));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xe010000, 0xe01ffff, read32_delegate(FUNC(gba_cart_slot_device::read_ram),(gba_cart_slot_device*)m_cart));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xe010000, 0xe01ffff, write32_delegate(FUNC(gba_cart_slot_device::write_ram),(gba_cart_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xe000000, 0xe00ffff, read32_delegate(*m_cart, FUNC(gba_cart_slot_device::read_ram)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xe000000, 0xe00ffff, write32_delegate(*m_cart, FUNC(gba_cart_slot_device::write_ram)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xe010000, 0xe01ffff, read32_delegate(*m_cart, FUNC(gba_cart_slot_device::read_ram)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xe010000, 0xe01ffff, write32_delegate(*m_cart, FUNC(gba_cart_slot_device::write_ram)));
}
if (m_cart->get_type() == GBA_EEPROM || m_cart->get_type() == GBA_EEPROM4 || m_cart->get_type() == GBA_EEPROM64 || m_cart->get_type() == GBA_BOKTAI)
{
// for games larger than 16MB the actual range is smaller but read_ram/write_ram handles that!
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xd000000, 0xdffffff, read32_delegate(FUNC(gba_cart_slot_device::read_ram),(gba_cart_slot_device*)m_cart));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xd000000, 0xdffffff, write32_delegate(FUNC(gba_cart_slot_device::write_ram),(gba_cart_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xd000000, 0xdffffff, read32_delegate(*m_cart, FUNC(gba_cart_slot_device::read_ram)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xd000000, 0xdffffff, write32_delegate(*m_cart, FUNC(gba_cart_slot_device::write_ram)));
}
if (m_cart->get_type() == GBA_YOSHIUG)
{
// EEPROM
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xd000000, 0xdffffff, read32_delegate(FUNC(gba_cart_slot_device::read_ram),(gba_cart_slot_device*)m_cart));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xd000000, 0xdffffff, write32_delegate(FUNC(gba_cart_slot_device::write_ram),(gba_cart_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xd000000, 0xdffffff, read32_delegate(*m_cart, FUNC(gba_cart_slot_device::read_ram)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xd000000, 0xdffffff, write32_delegate(*m_cart, FUNC(gba_cart_slot_device::write_ram)));
// Tilt Sensor
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xe008000, 0xe0085ff, read32_delegate(FUNC(gba_cart_slot_device::read_tilt),(gba_cart_slot_device*)m_cart));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xe008000, 0xe0085ff, write32_delegate(FUNC(gba_cart_slot_device::write_tilt),(gba_cart_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xe008000, 0xe0085ff, read32_delegate(*m_cart, FUNC(gba_cart_slot_device::read_tilt)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xe008000, 0xe0085ff, write32_delegate(*m_cart, FUNC(gba_cart_slot_device::write_tilt)));
}
// merge the two flash and mask accesses in read_ram?!?
if (m_cart->get_type() == GBA_FLASH || m_cart->get_type() == GBA_FLASH512 || m_cart->get_type() == GBA_FLASH_RTC)
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xe000000, 0xe00ffff, read32_delegate(FUNC(gba_cart_slot_device::read_ram),(gba_cart_slot_device*)m_cart));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xe000000, 0xe00ffff, write32_delegate(FUNC(gba_cart_slot_device::write_ram),(gba_cart_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xe000000, 0xe00ffff, read32_delegate(*m_cart, FUNC(gba_cart_slot_device::read_ram)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xe000000, 0xe00ffff, write32_delegate(*m_cart, FUNC(gba_cart_slot_device::write_ram)));
}
if (m_cart->get_type() == GBA_FLASH1M || m_cart->get_type() == GBA_FLASH1M_RTC)
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xe000000, 0xe01ffff, read32_delegate(FUNC(gba_cart_slot_device::read_ram),(gba_cart_slot_device*)m_cart));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xe000000, 0xe01ffff, write32_delegate(FUNC(gba_cart_slot_device::write_ram),(gba_cart_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xe000000, 0xe01ffff, read32_delegate(*m_cart, FUNC(gba_cart_slot_device::read_ram)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xe000000, 0xe01ffff, write32_delegate(*m_cart, FUNC(gba_cart_slot_device::write_ram)));
}
if (m_cart->get_type() == GBA_3DMATRIX)
{
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x08800000, 0x088001ff, write32_delegate(FUNC(gba_cart_slot_device::write_mapper),(gba_cart_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x08800000, 0x088001ff, write32_delegate(*m_cart, FUNC(gba_cart_slot_device::write_mapper)));
memory_region *cart_romhlp = memregion(region_tag.assign(m_cart->tag()).append(GBAHELP_ROM_REGION_TAG).c_str());
membank("rom1")->set_base(cart_romhlp->base());
}
diff --git a/src/mame/drivers/gcpinbal.cpp b/src/mame/drivers/gcpinbal.cpp
index 5fd6fb4c820..135cf88262e 100644
--- a/src/mame/drivers/gcpinbal.cpp
+++ b/src/mame/drivers/gcpinbal.cpp
@@ -376,7 +376,7 @@ void gcpinbal_state::gcpinbal(machine_config &config)
EXCELLENT_SPRITE(config, m_sprgen, 0);
m_sprgen->set_palette(m_palette);
m_sprgen->set_color_base(0x600);
- m_sprgen->set_colpri_callback(FUNC(gcpinbal_state::gcpinbal_colpri_cb), this);
+ m_sprgen->set_colpri_callback(FUNC(gcpinbal_state::gcpinbal_colpri_cb));
/* sound hardware */
SPEAKER(config, "mono").front_center();
diff --git a/src/mame/drivers/geniusiq.cpp b/src/mame/drivers/geniusiq.cpp
index 75cd6a9638b..cf226d5a1fb 100644
--- a/src/mame/drivers/geniusiq.cpp
+++ b/src/mame/drivers/geniusiq.cpp
@@ -721,8 +721,8 @@ void geniusiq_state::iq128(machine_config &config)
/* cartridge */
generic_cartslot_device &cartslot(GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "iq128_cart"));
- cartslot.set_device_load(FUNC(geniusiq_state::cart_load), this);
- cartslot.set_device_unload(FUNC(geniusiq_state::cart_unload), this);
+ cartslot.set_device_load(FUNC(geniusiq_state::cart_load));
+ cartslot.set_device_unload(FUNC(geniusiq_state::cart_unload));
/* Software lists */
SOFTWARE_LIST(config, "cart_list").set_original("iq128");
diff --git a/src/mame/drivers/ghosteo.cpp b/src/mame/drivers/ghosteo.cpp
index 6f9e166c67a..97485bbdee4 100644
--- a/src/mame/drivers/ghosteo.cpp
+++ b/src/mame/drivers/ghosteo.cpp
@@ -600,7 +600,7 @@ void ghosteo_state::machine_start()
void ghosteo_state::machine_reset()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x4d000010, 0x4d000013,read32_delegate(FUNC(ghosteo_state::bballoon_speedup_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x4d000010, 0x4d000013,read32_delegate(*this, FUNC(ghosteo_state::bballoon_speedup_r)));
}
void ghosteo_state::ghosteo(machine_config &config)
diff --git a/src/mame/drivers/giclassic.cpp b/src/mame/drivers/giclassic.cpp
index 8bc3c9928d9..4b2d80feafe 100644
--- a/src/mame/drivers/giclassic.cpp
+++ b/src/mame/drivers/giclassic.cpp
@@ -315,7 +315,7 @@ void giclassic_state::giclassic(machine_config &config)
m_palette->enable_shadows();
K056832(config, m_k056832, 0);
- m_k056832->set_tile_callback(FUNC(giclassic_state::tile_callback), this);
+ m_k056832->set_tile_callback(FUNC(giclassic_state::tile_callback));
m_k056832->set_config(K056832_BPP_4PIRATESH, 1, 0);
m_k056832->set_palette(m_palette);
}
@@ -339,12 +339,12 @@ void giclassicsvr_state::giclassvr(machine_config &config)
m_palette->enable_shadows();
K056832(config, m_k056832, 0);
- m_k056832->set_tile_callback(FUNC(giclassicsvr_state::tile_callback), this);
+ m_k056832->set_tile_callback(FUNC(giclassicsvr_state::tile_callback));
m_k056832->set_config(K056832_BPP_4PIRATESH, 0, 0);
m_k056832->set_palette(m_palette);
K055673(config, m_k055673, 0);
- m_k055673->set_sprite_callback(FUNC(giclassicsvr_state::sprite_callback), this);
+ m_k055673->set_sprite_callback(FUNC(giclassicsvr_state::sprite_callback));
m_k055673->set_config(K055673_LAYOUT_PS, -60, 24);
m_k055673->set_palette(m_palette);
diff --git a/src/mame/drivers/gijoe.cpp b/src/mame/drivers/gijoe.cpp
index 0248a66ece8..b2359cbdc59 100644
--- a/src/mame/drivers/gijoe.cpp
+++ b/src/mame/drivers/gijoe.cpp
@@ -316,12 +316,12 @@ void gijoe_state::gijoe(machine_config &config)
PALETTE(config, "palette").set_format(palette_device::xBGR_555, 2048).enable_shadows();
K056832(config, m_k056832, 0);
- m_k056832->set_tile_callback(FUNC(gijoe_state::tile_callback), this);
+ m_k056832->set_tile_callback(FUNC(gijoe_state::tile_callback));
m_k056832->set_config(K056832_BPP_4, 1, 0);
m_k056832->set_palette(m_palette);
K053246(config, m_k053246, 0);
- m_k053246->set_sprite_callback(FUNC(gijoe_state::sprite_callback), this);
+ m_k053246->set_sprite_callback(FUNC(gijoe_state::sprite_callback));
m_k053246->set_config(NORMAL_PLANE_ORDER, -37, 20);
m_k053246->set_palette(m_palette);
diff --git a/src/mame/drivers/gluck2.cpp b/src/mame/drivers/gluck2.cpp
index 5a71b4e55c5..24e49608c8c 100644
--- a/src/mame/drivers/gluck2.cpp
+++ b/src/mame/drivers/gluck2.cpp
@@ -276,7 +276,7 @@ TILE_GET_INFO_MEMBER(gluck2_state::get_tile_info)
void gluck2_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gluck2_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gluck2_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
diff --git a/src/mame/drivers/gmaster.cpp b/src/mame/drivers/gmaster.cpp
index 8de7f7992e8..50d263337ce 100644
--- a/src/mame/drivers/gmaster.cpp
+++ b/src/mame/drivers/gmaster.cpp
@@ -313,7 +313,7 @@ uint32_t gmaster_state::screen_update_gmaster(screen_device &screen, bitmap_ind1
void gmaster_state::machine_start()
{
if (m_cart->exists())
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x8000, 0xfeff, read8sm_delegate(FUNC(generic_slot_device::read_rom),(generic_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x8000, 0xfeff, read8sm_delegate(*m_cart, FUNC(generic_slot_device::read_rom)));
save_item(NAME(m_video.data));
save_item(NAME(m_video.index));
diff --git a/src/mame/drivers/goldngam.cpp b/src/mame/drivers/goldngam.cpp
index 8751597ffd0..e2eadc326b9 100644
--- a/src/mame/drivers/goldngam.cpp
+++ b/src/mame/drivers/goldngam.cpp
@@ -388,8 +388,8 @@ void goldngam_state::swisspkr_map(address_map &map)
void goldngam_state::cpu_space_map(address_map &map)
{
map(0xfffff0, 0xffffff).m(m_maincpu, FUNC(m68000_base_device::autovectors_map));
- map(0xfffff4, 0xfffff5).lr16("duart0 int", [this]() -> u16 { return m_duart[0]->get_irq_vector(); });
- map(0xfffff8, 0xfffff9).lr16("duart0 int", [this]() -> u16 { return m_duart[1]->get_irq_vector(); });
+ map(0xfffff4, 0xfffff5).lr16(NAME([this] () -> u16 { return m_duart[0]->get_irq_vector(); }));
+ map(0xfffff8, 0xfffff9).lr16(NAME([this] () -> u16 { return m_duart[1]->get_irq_vector(); }));
}
void goldngam_state::moviecrd_map(address_map &map)
diff --git a/src/mame/drivers/goldnpkr.cpp b/src/mame/drivers/goldnpkr.cpp
index 45008ba5ff6..3352d7a5067 100644
--- a/src/mame/drivers/goldnpkr.cpp
+++ b/src/mame/drivers/goldnpkr.cpp
@@ -1551,17 +1551,17 @@ TILE_GET_INFO_MEMBER(goldnpkr_state::super21p_get_bg_tile_info)
void goldnpkr_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(goldnpkr_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(goldnpkr_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
VIDEO_START_MEMBER(goldnpkr_state, wcrdxtnd)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(goldnpkr_state::wcrdxtnd_get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(goldnpkr_state::wcrdxtnd_get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
VIDEO_START_MEMBER(goldnpkr_state, super21p)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(goldnpkr_state::super21p_get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(goldnpkr_state::super21p_get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
uint32_t goldnpkr_state::screen_update_goldnpkr(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
diff --git a/src/mame/drivers/goldstar.cpp b/src/mame/drivers/goldstar.cpp
index 615feca1e5f..e32c5826484 100644
--- a/src/mame/drivers/goldstar.cpp
+++ b/src/mame/drivers/goldstar.cpp
@@ -14435,7 +14435,7 @@ void cmaster_state::init_fb2010()
ROM[0x10dc] = 0x00;
ROM[0x10dd] = 0x00;
- m_maincpu->space(AS_IO).install_read_handler(0x1e, 0x1e, read8_delegate(FUNC(cmaster_state::fixedval7d_r),this));
+ m_maincpu->space(AS_IO).install_read_handler(0x1e, 0x1e, read8_delegate(*this, FUNC(cmaster_state::fixedval_r<0x7d>)));
}
@@ -17278,8 +17278,8 @@ void cmaster_state::init_schery97()
rom[i] = x;
}
- m_maincpu->space(AS_IO).install_read_handler(0x1d, 0x1d, read8_delegate(FUNC(cmaster_state::fixedvala8_r), this));
- m_maincpu->space(AS_IO).install_read_handler(0x2a, 0x2a, read8_delegate(FUNC(cmaster_state::fixedvalb4_r), this));
+ m_maincpu->space(AS_IO).install_read_handler(0x1d, 0x1d, read8_delegate(*this, FUNC(cmaster_state::fixedval_r<0xa8>)));
+ m_maincpu->space(AS_IO).install_read_handler(0x2a, 0x2a, read8_delegate(*this, FUNC(cmaster_state::fixedval_r<0xb4>)));
/* Oki 6295 at 0x20 */
}
@@ -17301,7 +17301,7 @@ void cmaster_state::init_schery97a()
}
- m_maincpu->space(AS_IO).install_read_handler(0x16, 0x16, read8_delegate(FUNC(cmaster_state::fixedval38_r), this));
+ m_maincpu->space(AS_IO).install_read_handler(0x16, 0x16, read8_delegate(*this, FUNC(cmaster_state::fixedval_r<0x38>)));
/* Oki 6295 at 0x20 */
}
@@ -17321,7 +17321,7 @@ void cmaster_state::init_skill98()
rom[i] = x;
}
- m_maincpu->space(AS_IO).install_read_handler(0x1e, 0x1e, read8_delegate(FUNC(cmaster_state::fixedvalea_r), this));
+ m_maincpu->space(AS_IO).install_read_handler(0x1e, 0x1e, read8_delegate(*this, FUNC(cmaster_state::fixedval_r<0xea>)));
/* Oki 6295 at 0x20 */
}
@@ -17341,7 +17341,7 @@ void cmaster_state::init_nfb96_c1()
}
rom[i] = x;
}
- m_maincpu->space(AS_IO).install_read_handler(0x31, 0x31, read8_delegate(FUNC(cmaster_state::fixedval68_r), this));
+ m_maincpu->space(AS_IO).install_read_handler(0x31, 0x31, read8_delegate(*this, FUNC(cmaster_state::fixedval_r<0x68>)));
}
@@ -17362,7 +17362,7 @@ void cmaster_state::init_nfb96_c2()
rom[i] = x;
}
- m_maincpu->space(AS_IO).install_read_handler(0x21, 0x21, read8_delegate(FUNC(cmaster_state::fixedval58_r), this));
+ m_maincpu->space(AS_IO).install_read_handler(0x21, 0x21, read8_delegate(*this, FUNC(cmaster_state::fixedval_r<0x58>)));
}
void cmaster_state::init_nfb96_d()
@@ -17382,11 +17382,11 @@ void cmaster_state::init_nfb96_d()
rom[i] = x;
}
// nfb96b needs both of these
- m_maincpu->space(AS_IO).install_read_handler(0x23, 0x23, read8_delegate(FUNC(cmaster_state::fixedval80_r), this));
- m_maincpu->space(AS_IO).install_read_handler(0x5a, 0x5a, read8_delegate(FUNC(cmaster_state::fixedvalaa_r), this));
+ m_maincpu->space(AS_IO).install_read_handler(0x23, 0x23, read8_delegate(*this, FUNC(cmaster_state::fixedval_r<0x80>)));
+ m_maincpu->space(AS_IO).install_read_handler(0x5a, 0x5a, read8_delegate(*this, FUNC(cmaster_state::fixedval_r<0xaa>)));
// csel96b
- m_maincpu->space(AS_IO).install_read_handler(0x6e, 0x6e, read8_delegate(FUNC(cmaster_state::fixedval96_r), this));
+ m_maincpu->space(AS_IO).install_read_handler(0x6e, 0x6e, read8_delegate(*this, FUNC(cmaster_state::fixedval_r<0x96>)));
}
@@ -17407,7 +17407,7 @@ void cmaster_state::init_nfb96_dk()
}
rom[i] = x;
}
- m_maincpu->space(AS_IO).install_read_handler(0x2e, 0x2e, read8_delegate(FUNC(cmaster_state::fixedvalbe_r), this));
+ m_maincpu->space(AS_IO).install_read_handler(0x2e, 0x2e, read8_delegate(*this, FUNC(cmaster_state::fixedval_r<0xbe>)));
}
@@ -17428,8 +17428,8 @@ void cmaster_state::init_rp35()
rom[i] = x;
}
- m_maincpu->space(AS_IO).install_read_handler(0x5e, 0x5e, read8_delegate(FUNC(cmaster_state::fixedval84_r), this));
- m_maincpu->space(AS_IO).install_read_handler(0x36, 0x36, read8_delegate(FUNC(cmaster_state::fixedval90_r), this));
+ m_maincpu->space(AS_IO).install_read_handler(0x5e, 0x5e, read8_delegate(*this, FUNC(cmaster_state::fixedval_r<0x84>)));
+ m_maincpu->space(AS_IO).install_read_handler(0x36, 0x36, read8_delegate(*this, FUNC(cmaster_state::fixedval_r<0x90>)));
}
void cmaster_state::init_rp36()
@@ -17450,7 +17450,7 @@ void cmaster_state::init_rp36()
rom[i] = x;
}
- m_maincpu->space(AS_IO).install_read_handler(0x34, 0x34, read8_delegate(FUNC(cmaster_state::fixedvalb2_r), this));
+ m_maincpu->space(AS_IO).install_read_handler(0x34, 0x34, read8_delegate(*this, FUNC(cmaster_state::fixedval_r<0xb2>)));
}
void cmaster_state::init_rp36c3()
@@ -17471,7 +17471,7 @@ void cmaster_state::init_rp36c3()
rom[i] = x;
}
- m_maincpu->space(AS_IO).install_read_handler(0x17, 0x17, read8_delegate(FUNC(cmaster_state::fixedval48_r), this));
+ m_maincpu->space(AS_IO).install_read_handler(0x17, 0x17, read8_delegate(*this, FUNC(cmaster_state::fixedval_r<0x48>)));
}
void cmaster_state::init_rp96sub() // 95 33 95 33 70 6C 70 6C... XORs and bitswaps seem ok. Stuck at Program Check screen. Unlike the other sets, there aren't unmapped reads where to put the handler.
@@ -17492,7 +17492,7 @@ void cmaster_state::init_rp96sub() // 95 33 95 33 70 6C 70 6C... XORs and bitsw
rom[i] = x;
}
-// m_maincpu->space(AS_IO).install_read_handler(0x34, 0x34, read8_delegate(FUNC(cmaster_state::fixedvalb2_r),this));
+// m_maincpu->space(AS_IO).install_read_handler(0x34, 0x34, read8_delegate(*this, FUNC(cmaster_state::fixedval_r<0xb2>)));
}
@@ -17513,8 +17513,8 @@ void cmaster_state::init_po33()
rom[i] = x;
}
- m_maincpu->space(AS_IO).install_read_handler(0x32, 0x32, read8_delegate(FUNC(cmaster_state::fixedval74_r), this));
- m_maincpu->space(AS_IO).install_read_handler(0x12, 0x12, read8_delegate(FUNC(cmaster_state::fixedval09_r), this));
+ m_maincpu->space(AS_IO).install_read_handler(0x32, 0x32, read8_delegate(*this, FUNC(cmaster_state::fixedval_r<0x74>)));
+ m_maincpu->space(AS_IO).install_read_handler(0x12, 0x12, read8_delegate(*this, FUNC(cmaster_state::fixedval_r<0x09>)));
/* oki6295 at 0x20 */
}
@@ -17537,8 +17537,8 @@ void cmaster_state::init_match133()
rom[i] = x;
}
- m_maincpu->space(AS_IO).install_read_handler(0x16, 0x16, read8_delegate(FUNC(cmaster_state::fixedvalc7_r), this));
- m_maincpu->space(AS_IO).install_read_handler(0x1a, 0x1a, read8_delegate(FUNC(cmaster_state::fixedvale4_r), this));
+ m_maincpu->space(AS_IO).install_read_handler(0x16, 0x16, read8_delegate(*this, FUNC(cmaster_state::fixedval_r<0xc7>)));
+ m_maincpu->space(AS_IO).install_read_handler(0x1a, 0x1a, read8_delegate(*this, FUNC(cmaster_state::fixedval_r<0xe4>)));
}
diff --git a/src/mame/drivers/good.cpp b/src/mame/drivers/good.cpp
index 6facf45265c..c0be11a803e 100644
--- a/src/mame/drivers/good.cpp
+++ b/src/mame/drivers/good.cpp
@@ -107,8 +107,8 @@ TILE_GET_INFO_MEMBER(good_state::get_bg_tile_info)
void good_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(good_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(good_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(good_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(good_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
m_fg_tilemap->set_transparent_pen(0xf);
}
diff --git a/src/mame/drivers/goodejan.cpp b/src/mame/drivers/goodejan.cpp
index 2c492468c14..2518d3465ad 100644
--- a/src/mame/drivers/goodejan.cpp
+++ b/src/mame/drivers/goodejan.cpp
@@ -366,10 +366,10 @@ void goodejan_state::draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect
void goodejan_state::video_start()
{
- m_sc0_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(goodejan_state::seibucrtc_sc0_tile_info),this),TILEMAP_SCAN_ROWS,16,16,32,32);
- m_sc2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(goodejan_state::seibucrtc_sc2_tile_info),this),TILEMAP_SCAN_ROWS,16,16,32,32);
- m_sc1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(goodejan_state::seibucrtc_sc1_tile_info),this),TILEMAP_SCAN_ROWS,16,16,32,32);
- m_sc3_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(goodejan_state::seibucrtc_sc3_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32);
+ m_sc0_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(goodejan_state::seibucrtc_sc0_tile_info)), TILEMAP_SCAN_ROWS, 16,16,32,32);
+ m_sc2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(goodejan_state::seibucrtc_sc2_tile_info)), TILEMAP_SCAN_ROWS, 16,16,32,32);
+ m_sc1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(goodejan_state::seibucrtc_sc1_tile_info)), TILEMAP_SCAN_ROWS, 16,16,32,32);
+ m_sc3_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(goodejan_state::seibucrtc_sc3_tile_info)), TILEMAP_SCAN_ROWS, 8,8,32,32);
m_sc2_tilemap->set_transparent_pen(15);
m_sc1_tilemap->set_transparent_pen(15);
@@ -477,13 +477,13 @@ void goodejan_state::totmejan_io_map(address_map &map)
void goodejan_state::goodejan_io_map(address_map &map)
{
common_io_map(map);
- map(0x8000, 0x807f).lrw16("crtc_rw",
- [this](address_space &space, offs_t offset, u16 mem_mask) {
+ map(0x8000, 0x807f).lrw16(
+ NAME([this](address_space &space, offs_t offset, u16 mem_mask) {
return m_crtc->read(space, offset ^ 0x20, mem_mask);
- },
- [this](address_space &space, offs_t offset, u16 data, u16 mem_mask) {
+ }),
+ NAME([this](address_space &space, offs_t offset, u16 data, u16 mem_mask) {
m_crtc->write(space, offset ^ 0x20, data, mem_mask);
- });
+ }));
}
static INPUT_PORTS_START( goodejan )
diff --git a/src/mame/drivers/gottlieb.cpp b/src/mame/drivers/gottlieb.cpp
index 36e019f721c..2270b468c7b 100644
--- a/src/mame/drivers/gottlieb.cpp
+++ b/src/mame/drivers/gottlieb.cpp
@@ -233,9 +233,9 @@ void gottlieb_state::machine_start()
if (m_laserdisc != nullptr)
{
/* attach to the I/O ports */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x05805, 0x05807, 0, 0x07f8, 0, read8_delegate(FUNC(gottlieb_state::laserdisc_status_r),this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x05805, 0x05805, 0, 0x07f8, 0, write8_delegate(FUNC(gottlieb_state::laserdisc_command_w),this)); /* command for the player */
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x05806, 0x05806, 0, 0x07f8, 0, write8_delegate(FUNC(gottlieb_state::laserdisc_select_w),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x05805, 0x05807, 0, 0x07f8, 0, read8_delegate(*this, FUNC(gottlieb_state::laserdisc_status_r)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x05805, 0x05805, 0, 0x07f8, 0, write8_delegate(*this, FUNC(gottlieb_state::laserdisc_command_w))); /* command for the player */
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x05806, 0x05806, 0, 0x07f8, 0, write8_delegate(*this, FUNC(gottlieb_state::laserdisc_select_w)));
/* allocate a timer for serial transmission, and one for philips code processing */
m_laserdisc_bit_timer = timer_alloc(TIMER_LASERDISC_BIT);
@@ -1797,7 +1797,7 @@ void gottlieb_state::g2laser(machine_config &config)
GOTTLIEB_SOUND_REV2(config, m_r2_sound, 0).add_route(ALL_OUTPUTS, "speaker", 1.0);
PIONEER_PR8210(config, m_laserdisc, 0);
- m_laserdisc->set_audio(FUNC(gottlieb_state::laserdisc_audio_process), this);
+ m_laserdisc->set_audio(FUNC(gottlieb_state::laserdisc_audio_process));
m_laserdisc->set_overlay(GOTTLIEB_VIDEO_HCOUNT, GOTTLIEB_VIDEO_VCOUNT, FUNC(gottlieb_state::screen_update));
m_laserdisc->set_overlay_clip(0, GOTTLIEB_VIDEO_HBLANK-1, 0, GOTTLIEB_VIDEO_VBLANK-8);
m_laserdisc->add_route(0, "speaker", 1.0);
@@ -1862,7 +1862,7 @@ void gottlieb_state::cobram3(machine_config &config)
m_r2_sound->enable_cobram3_mods();
PIONEER_PR8210(config, m_laserdisc, 0);
- m_laserdisc->set_audio(FUNC(gottlieb_state::laserdisc_audio_process), this);
+ m_laserdisc->set_audio(FUNC(gottlieb_state::laserdisc_audio_process));
m_laserdisc->set_overlay(GOTTLIEB_VIDEO_HCOUNT, GOTTLIEB_VIDEO_VCOUNT, FUNC(gottlieb_state::screen_update));
m_laserdisc->set_overlay_clip(0, GOTTLIEB_VIDEO_HBLANK-1, 0, GOTTLIEB_VIDEO_VBLANK-8);
m_laserdisc->add_route(0, "speaker", 1.0);
@@ -2599,21 +2599,21 @@ void gottlieb_state::init_romtiles()
void gottlieb_state::init_qbert()
{
init_romtiles();
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x5803, 0x5803, 0, 0x07f8, 0, write8_delegate(FUNC(gottlieb_state::qbert_output_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x5803, 0x5803, 0, 0x07f8, 0, write8_delegate(*this, FUNC(gottlieb_state::qbert_output_w)));
}
void gottlieb_state::init_qbertqub()
{
init_romtiles();
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x5803, 0x5803, 0, 0x07f8, 0, write8_delegate(FUNC(gottlieb_state::qbertqub_output_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x5803, 0x5803, 0, 0x07f8, 0, write8_delegate(*this, FUNC(gottlieb_state::qbertqub_output_w)));
}
void gottlieb_state::init_stooges()
{
init_ramtiles();
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x5803, 0x5803, 0, 0x07f8, 0, write8_delegate(FUNC(gottlieb_state::stooges_output_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x5803, 0x5803, 0, 0x07f8, 0, write8_delegate(*this, FUNC(gottlieb_state::stooges_output_w)));
}
diff --git a/src/mame/drivers/goupil.cpp b/src/mame/drivers/goupil.cpp
index fdc0a5e924e..21564d60cd5 100644
--- a/src/mame/drivers/goupil.cpp
+++ b/src/mame/drivers/goupil.cpp
@@ -602,8 +602,8 @@ void goupil_g2_state::goupil_g2(machine_config &config)
mc6845_device &crtc(MC6845(config, "crtc", 14.318181_MHz_XTAL / 8));
crtc.set_show_border_area(false);
crtc.set_char_width(8);
- crtc.set_update_row_callback(FUNC(goupil_g2_state::crtc_update_row), this);
- crtc.set_on_update_addr_change_callback(FUNC(goupil_g2_state::crtc_update_addr_changed), this);
+ crtc.set_update_row_callback(FUNC(goupil_g2_state::crtc_update_row));
+ crtc.set_on_update_addr_change_callback(FUNC(goupil_g2_state::crtc_update_addr_changed));
m_via_video->writepa_handler().set_nop();
m_via_video->writepb_handler().set_nop();
diff --git a/src/mame/drivers/gradius3.cpp b/src/mame/drivers/gradius3.cpp
index d7eb5ece4de..e2d4a955b6f 100644
--- a/src/mame/drivers/gradius3.cpp
+++ b/src/mame/drivers/gradius3.cpp
@@ -290,13 +290,13 @@ void gradius3_state::gradius3(machine_config &config)
K052109(config, m_k052109, 0);
m_k052109->set_palette("palette");
m_k052109->set_screen(nullptr);
- m_k052109->set_tile_callback(FUNC(gradius3_state::tile_callback), this);
+ m_k052109->set_tile_callback(FUNC(gradius3_state::tile_callback));
m_k052109->set_char_ram(true);
K051960(config, m_k051960, 0);
m_k051960->set_palette("palette");
m_k051960->set_screen("screen");
- m_k051960->set_sprite_callback(FUNC(gradius3_state::sprite_callback), this);
+ m_k051960->set_sprite_callback(FUNC(gradius3_state::sprite_callback));
m_k051960->set_plane_order(K051960_PLANEORDER_GRADIUS3);
/* sound hardware */
diff --git a/src/mame/drivers/gridlee.cpp b/src/mame/drivers/gridlee.cpp
index d2f75fdb74a..2b9feaf3fb2 100644
--- a/src/mame/drivers/gridlee.cpp
+++ b/src/mame/drivers/gridlee.cpp
@@ -289,7 +289,7 @@ void gridlee_state::cpu1_map(address_map &map)
{
map(0x0000, 0x07ff).ram().share("spriteram");
map(0x0800, 0x7fff).ram().w(FUNC(gridlee_state::gridlee_videoram_w)).share("videoram");
- map(0x9000, 0x9000).select(0x0070).lw8("latch_w", [this](offs_t offset, u8 data) { m_latch->write_d0(offset >> 4, data); });
+ map(0x9000, 0x9000).select(0x0070).lw8(NAME([this] (offs_t offset, u8 data) { m_latch->write_d0(offset >> 4, data); }));
map(0x9200, 0x9200).w(FUNC(gridlee_state::gridlee_palette_select_w));
map(0x9380, 0x9380).w("watchdog", FUNC(watchdog_timer_device::reset_w));
map(0x9500, 0x9501).r(FUNC(gridlee_state::analog_port_r));
diff --git a/src/mame/drivers/groundfx.cpp b/src/mame/drivers/groundfx.cpp
index f6dc60eea9c..4623f2d03bc 100644
--- a/src/mame/drivers/groundfx.cpp
+++ b/src/mame/drivers/groundfx.cpp
@@ -328,7 +328,7 @@ READ32_MEMBER(groundfx_state::irq_speedup_r)
void groundfx_state::init_groundfx()
{
/* Speedup handlers */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x20b574, 0x20b577, read32_delegate(FUNC(groundfx_state::irq_speedup_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x20b574, 0x20b577, read32_delegate(*this, FUNC(groundfx_state::irq_speedup_r)));
}
diff --git a/src/mame/drivers/gstream.cpp b/src/mame/drivers/gstream.cpp
index 73fc65c96e7..59f07382859 100644
--- a/src/mame/drivers/gstream.cpp
+++ b/src/mame/drivers/gstream.cpp
@@ -1088,7 +1088,7 @@ READ32_MEMBER(gstream_state::x2222_speedup2_r)
void gstream_state::init_gstream()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xd1ee0, 0xd1ee3, read32_delegate(FUNC(gstream_state::gstream_speedup_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xd1ee0, 0xd1ee3, read32_delegate(*this, FUNC(gstream_state::gstream_speedup_r)));
m_xoffset = 2;
}
@@ -1116,8 +1116,8 @@ void gstream_state::rearrange_sprite_data(uint8_t* ROM, uint32_t* NEW, uint32_t*
void gstream_state::init_x2222()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x7ffac, 0x7ffaf, read32_delegate(FUNC(gstream_state::x2222_speedup_r), this)); // older
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x84e3c, 0x84e3f, read32_delegate(FUNC(gstream_state::x2222_speedup2_r), this)); // newer
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x7ffac, 0x7ffaf, read32_delegate(*this, FUNC(gstream_state::x2222_speedup_r))); // older
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x84e3c, 0x84e3f, read32_delegate(*this, FUNC(gstream_state::x2222_speedup2_r))); // newer
rearrange_sprite_data(memregion("sprites")->base(), (uint32_t*)memregion("gfx1")->base(), (uint32_t*)memregion("gfx1_lower")->base() );
rearrange_tile_data(memregion("bg1")->base(), (uint32_t*)memregion("gfx2")->base(), (uint32_t*)memregion("gfx2_lower")->base());
diff --git a/src/mame/drivers/gstriker.cpp b/src/mame/drivers/gstriker.cpp
index 5e4a5dc3849..996dc8b0406 100644
--- a/src/mame/drivers/gstriker.cpp
+++ b/src/mame/drivers/gstriker.cpp
@@ -853,8 +853,8 @@ the zooming.To use it,you should use Player 2 Start button to show the test scre
or to advance into the tests.
******************************************************************************************/
#define PC(_num_)\
-m_work_ram[0x000/2] = (_num_ & 0xffff0000) >> 16;\
-m_work_ram[0x002/2] = (_num_ & 0x0000ffff) >> 0;
+ m_work_ram[0x000/2] = (_num_ & 0xffff0000) >> 16;\
+ m_work_ram[0x002/2] = (_num_ & 0x0000ffff) >> 0;
WRITE8_MEMBER(gstriker_state::twcup94_prot_reg_w)
@@ -1103,8 +1103,8 @@ void gstriker_state::init_vgoalsoc()
m_gametype = VGOAL_SOCCER_MCU;
mcu_init();
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x200090, 0x200091, write16_delegate(FUNC(gstriker_state::vbl_toggle_w),this)); // vblank toggle
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x200090, 0x200091, read16_delegate(FUNC(gstriker_state::vbl_toggle_r),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x200090, 0x200091, write16_delegate(*this, FUNC(gstriker_state::vbl_toggle_w))); // vblank toggle
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x200090, 0x200091, read16_delegate(*this, FUNC(gstriker_state::vbl_toggle_r)));
}
/*** GAME DRIVERS ************************************************************/
diff --git a/src/mame/drivers/gsword.cpp b/src/mame/drivers/gsword.cpp
index f26dfcf0071..33a00ef862d 100644
--- a/src/mame/drivers/gsword.cpp
+++ b/src/mame/drivers/gsword.cpp
@@ -436,7 +436,7 @@ void gsword_state::init_gsword()
#endif
#if 1
/* hack for sound protection or time out function */
- m_subcpu->space(AS_PROGRAM).install_read_handler(0x4004, 0x4005, read8_delegate(FUNC(gsword_state::hack_r),this));
+ m_subcpu->space(AS_PROGRAM).install_read_handler(0x4004, 0x4005, read8_delegate(*this, FUNC(gsword_state::hack_r)));
#endif
}
@@ -451,7 +451,7 @@ void gsword_state::init_gsword2()
#endif
#if 1
/* hack for sound protection or time out function */
- m_subcpu->space(AS_PROGRAM).install_read_handler(0x4004, 0x4005, read8_delegate(FUNC(gsword_state::hack_r),this));
+ m_subcpu->space(AS_PROGRAM).install_read_handler(0x4004, 0x4005, read8_delegate(*this, FUNC(gsword_state::hack_r)));
#endif
}
diff --git a/src/mame/drivers/gts3a.cpp b/src/mame/drivers/gts3a.cpp
index 3b4a40f1709..18fc260f997 100644
--- a/src/mame/drivers/gts3a.cpp
+++ b/src/mame/drivers/gts3a.cpp
@@ -367,7 +367,7 @@ void gts3a_state::gts3a(machine_config &config)
crtc.set_screen("screen");
crtc.set_show_border_area(false);
crtc.set_char_width(8);
- crtc.set_update_row_callback(FUNC(gts3a_state::crtc_update_row), this);
+ crtc.set_update_row_callback(FUNC(gts3a_state::crtc_update_row));
/* Sound */
genpin_audio(config);
diff --git a/src/mame/drivers/gunbustr.cpp b/src/mame/drivers/gunbustr.cpp
index 4b425dda742..1f2c9ed4d83 100644
--- a/src/mame/drivers/gunbustr.cpp
+++ b/src/mame/drivers/gunbustr.cpp
@@ -373,7 +373,7 @@ READ32_MEMBER(gunbustr_state::main_cycle_r)
void gunbustr_state::init_gunbustr()
{
/* Speedup handler */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x203acc, 0x203acf, read32_delegate(FUNC(gunbustr_state::main_cycle_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x203acc, 0x203acf, read32_delegate(*this, FUNC(gunbustr_state::main_cycle_r)));
m_interrupt5_timer = timer_alloc(TIMER_GUNBUSTR_INTERRUPT5);
}
diff --git a/src/mame/drivers/h19.cpp b/src/mame/drivers/h19.cpp
index bd431361b89..4f6f6e3a36c 100644
--- a/src/mame/drivers/h19.cpp
+++ b/src/mame/drivers/h19.cpp
@@ -541,7 +541,7 @@ void h19_state::h19(machine_config &config)
m_crtc->set_screen("screen");
m_crtc->set_show_border_area(true);
m_crtc->set_char_width(8);
- m_crtc->set_update_row_callback(FUNC(h19_state::crtc_update_row), this);
+ m_crtc->set_update_row_callback(FUNC(h19_state::crtc_update_row));
m_crtc->out_vsync_callback().set_inputline(m_maincpu, INPUT_LINE_NMI); // frame pulse
ins8250_device &uart(INS8250(config, "ins8250", INS8250_CLOCK));
diff --git a/src/mame/drivers/h89.cpp b/src/mame/drivers/h89.cpp
index 43851788c4e..f82be5e850c 100644
--- a/src/mame/drivers/h89.cpp
+++ b/src/mame/drivers/h89.cpp
@@ -31,8 +31,8 @@ class h89_state : public driver_device
{
public:
h89_state(const machine_config &mconfig, device_type type, const char *tag)
- : driver_device(mconfig, type, tag),
- m_maincpu(*this, "maincpu")
+ : driver_device(mconfig, type, tag)
+ , m_maincpu(*this, "maincpu")
{
}
@@ -199,7 +199,7 @@ void h89_state::h89(machine_config & config)
rs232.rxd_handler().set("ins8250", FUNC(ins8250_uart_device::rx_w));
rs232.set_option_device_input_defaults("terminal", DEVICE_INPUT_DEFAULTS_NAME(terminal));
- TIMER(config, "irq_timer", 0).configure_periodic(timer_device::expired_delegate(FUNC(h89_state::h89_irq_timer), this), attotime::from_hz(100));
+ TIMER(config, "irq_timer", 0).configure_periodic(FUNC(h89_state::h89_irq_timer), attotime::from_hz(100));
}
/* ROM definition */
diff --git a/src/mame/drivers/harddriv.cpp b/src/mame/drivers/harddriv.cpp
index 27624425f38..ead95b0f795 100644
--- a/src/mame/drivers/harddriv.cpp
+++ b/src/mame/drivers/harddriv.cpp
@@ -4714,14 +4714,14 @@ void harddriv_state::init_multisync(int compact_inputs)
// if we have a JSA board, install the read/write handlers
if (m_jsa.found())
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x600000, 0x603fff, read8_delegate(FUNC(atari_jsa_base_device::main_response_r),m_jsa.target()), write8_delegate(FUNC(atari_jsa_base_device::main_command_w),m_jsa.target()), 0xff00);
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x600000, 0x603fff, read8_delegate(*m_jsa, FUNC(atari_jsa_base_device::main_response_r)), write8_delegate(*m_jsa, FUNC(atari_jsa_base_device::main_command_w)), 0xff00);
/* install handlers for the compact driving games' inputs */
if (compact_inputs)
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x400000, 0x400001, read16_delegate(FUNC(harddriv_state::hdc68k_wheel_r), this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x408000, 0x408001, write16_delegate(FUNC(harddriv_state::hdc68k_wheel_edge_reset_w), this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xa80000, 0xafffff, read16_delegate(FUNC(harddriv_state::hdc68k_port1_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x400000, 0x400001, read16_delegate(*this, FUNC(harddriv_state::hdc68k_wheel_r)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x408000, 0x408001, write16_delegate(*this, FUNC(harddriv_state::hdc68k_wheel_edge_reset_w)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xa80000, 0xafffff, read16_delegate(*this, FUNC(harddriv_state::hdc68k_port1_r)));
}
}
@@ -4730,18 +4730,18 @@ void harddriv_state::init_multisync(int compact_inputs)
void harddriv_state::init_adsp()
{
/* install ADSP program RAM */
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0x807fff, read16_delegate(FUNC(harddriv_state::hd68k_adsp_program_r), this), write16_delegate(FUNC(harddriv_state::hd68k_adsp_program_w), this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0x807fff, read16_delegate(*this, FUNC(harddriv_state::hd68k_adsp_program_r)), write16_delegate(*this, FUNC(harddriv_state::hd68k_adsp_program_w)));
/* install ADSP data RAM */
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x808000, 0x80bfff, read16_delegate(FUNC(harddriv_state::hd68k_adsp_data_r), this), write16_delegate(FUNC(harddriv_state::hd68k_adsp_data_w), this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x808000, 0x80bfff, read16_delegate(*this, FUNC(harddriv_state::hd68k_adsp_data_r)), write16_delegate(*this, FUNC(harddriv_state::hd68k_adsp_data_w)));
/* install ADSP serial buffer RAM */
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x810000, 0x813fff, read16_delegate(FUNC(harddriv_state::hd68k_adsp_buffer_r), this), write16_delegate(FUNC(harddriv_state::hd68k_adsp_buffer_w), this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x810000, 0x813fff, read16_delegate(*this, FUNC(harddriv_state::hd68k_adsp_buffer_r)), write16_delegate(*this, FUNC(harddriv_state::hd68k_adsp_buffer_w)));
/* install ADSP control locations */
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x818000, 0x81801f, write16_delegate(FUNC(harddriv_state::hd68k_adsp_control_w), this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x818060, 0x81807f, write16_delegate(FUNC(harddriv_state::hd68k_adsp_irq_clear_w), this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x838000, 0x83ffff, read16_delegate(FUNC(harddriv_state::hd68k_adsp_irq_state_r), this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x818000, 0x81801f, write16_delegate(*this, FUNC(harddriv_state::hd68k_adsp_control_w)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x818060, 0x81807f, write16_delegate(*this, FUNC(harddriv_state::hd68k_adsp_irq_clear_w)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x838000, 0x83ffff, read16_delegate(*this, FUNC(harddriv_state::hd68k_adsp_irq_state_r)));
}
@@ -4749,23 +4749,23 @@ void harddriv_state::init_adsp()
void harddriv_state::init_ds3()
{
/* install ADSP program RAM */
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0x807fff, read16_delegate(FUNC(harddriv_state::hd68k_ds3_program_r), this), write16_delegate(FUNC(harddriv_state::hd68k_ds3_program_w), this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0x807fff, read16_delegate(*this, FUNC(harddriv_state::hd68k_ds3_program_r)), write16_delegate(*this, FUNC(harddriv_state::hd68k_ds3_program_w)));
/* install ADSP data RAM */
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x808000, 0x80bfff, read16_delegate(FUNC(harddriv_state::hd68k_adsp_data_r), this), write16_delegate(FUNC(harddriv_state::hd68k_adsp_data_w), this));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x80c000, 0x80dfff, read16_delegate(FUNC(harddriv_state::hdds3_special_r), this), write16_delegate(FUNC(harddriv_state::hdds3_special_w), this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x808000, 0x80bfff, read16_delegate(*this, FUNC(harddriv_state::hd68k_adsp_data_r)), write16_delegate(*this, FUNC(harddriv_state::hd68k_adsp_data_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x80c000, 0x80dfff, read16_delegate(*this, FUNC(harddriv_state::hdds3_special_r)), write16_delegate(*this, FUNC(harddriv_state::hdds3_special_w)));
/* install ADSP control locations */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x820000, 0x8207ff, read16_delegate(FUNC(harddriv_state::hd68k_ds3_gdata_r), this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x820800, 0x820fff, read16_delegate(FUNC(harddriv_state::hd68k_ds3_girq_state_r), this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x820000, 0x8207ff, write16_delegate(FUNC(harddriv_state::hd68k_ds3_gdata_w), this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x821000, 0x8217ff, write16_delegate(FUNC(harddriv_state::hd68k_adsp_irq_clear_w), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x820000, 0x8207ff, read16_delegate(*this, FUNC(harddriv_state::hd68k_ds3_gdata_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x820800, 0x820fff, read16_delegate(*this, FUNC(harddriv_state::hd68k_ds3_girq_state_r)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x820000, 0x8207ff, write16_delegate(*this, FUNC(harddriv_state::hd68k_ds3_gdata_w)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x821000, 0x8217ff, write16_delegate(*this, FUNC(harddriv_state::hd68k_adsp_irq_clear_w)));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x822000, 0x8227ff, read16_delegate(FUNC(harddriv_state::hd68k_ds3_sdata_r), this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x822800, 0x822fff, read16_delegate(FUNC(harddriv_state::hd68k_ds3_sirq_state_r), this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x822000, 0x8227ff, write16_delegate(FUNC(harddriv_state::hd68k_ds3_sdata_w), this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x823000, 0x8237ff, write16_delegate(FUNC(harddriv_state::hd68k_ds3_sirq_clear_w), this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x823800, 0x823fff, write16_delegate(FUNC(harddriv_state::hd68k_ds3_control_w), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x822000, 0x8227ff, read16_delegate(*this, FUNC(harddriv_state::hd68k_ds3_sdata_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x822800, 0x822fff, read16_delegate(*this, FUNC(harddriv_state::hd68k_ds3_sirq_state_r)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x822000, 0x8227ff, write16_delegate(*this, FUNC(harddriv_state::hd68k_ds3_sdata_w)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x823000, 0x8237ff, write16_delegate(*this, FUNC(harddriv_state::hd68k_ds3_sirq_clear_w)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x823800, 0x823fff, write16_delegate(*this, FUNC(harddriv_state::hd68k_ds3_control_w)));
/* predetermine memory regions, can't use a region_ptr because strtdriv expects uint8_t while hdrivair expects uint16_t, also need to check if region exists for steeltal*/
if (memregion("ds3sdsp_data") != nullptr)
@@ -4848,26 +4848,26 @@ void harddriv_state::init_dsk()
uint8_t *usr3 = memregion("user3")->base();
/* install ASIC61 */
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x85c000, 0x85c7ff, read16_delegate(FUNC(harddriv_state::hd68k_dsk_dsp32_r), this), write16_delegate(FUNC(harddriv_state::hd68k_dsk_dsp32_w), this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x85c000, 0x85c7ff, read16_delegate(*this, FUNC(harddriv_state::hd68k_dsk_dsp32_r)), write16_delegate(*this, FUNC(harddriv_state::hd68k_dsk_dsp32_w)));
/* install control registers */
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x85c800, 0x85c81f, write16_delegate(FUNC(harddriv_state::hd68k_dsk_control_w), this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x85c800, 0x85c81f, write16_delegate(*this, FUNC(harddriv_state::hd68k_dsk_control_w)));
/* install extra RAM */
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x900000, 0x90ffff, read16_delegate(FUNC(harddriv_state::hd68k_dsk_ram_r), this), write16_delegate(FUNC(harddriv_state::hd68k_dsk_ram_w), this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x900000, 0x90ffff, read16_delegate(*this, FUNC(harddriv_state::hd68k_dsk_ram_r)), write16_delegate(*this, FUNC(harddriv_state::hd68k_dsk_ram_w)));
m_dsk_ram = (uint16_t *)(usr3 + 0x40000);
/* install extra ZRAM */
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x910000, 0x910fff, read8_delegate(FUNC(eeprom_parallel_28xx_device::read), m_dsk_10c.target()), write8_delegate(FUNC(eeprom_parallel_28xx_device::write), m_dsk_10c.target()), 0xff00);
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x910000, 0x910fff, read8_delegate(FUNC(eeprom_parallel_28xx_device::read), m_dsk_30c.target()), write8_delegate(FUNC(eeprom_parallel_28xx_device::write), m_dsk_30c.target()), 0x00ff);
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x910000, 0x910fff, read8_delegate(*m_dsk_10c, FUNC(eeprom_parallel_28xx_device::read)), write8_delegate(*m_dsk_10c, FUNC(eeprom_parallel_28xx_device::write)), 0xff00);
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x910000, 0x910fff, read8_delegate(*m_dsk_30c, FUNC(eeprom_parallel_28xx_device::read)), write8_delegate(*m_dsk_30c, FUNC(eeprom_parallel_28xx_device::write)), 0x00ff);
/* install ASIC65 */
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x914000, 0x917fff, write16sm_delegate(FUNC(asic65_device::data_w), (asic65_device*)m_asic65));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x914000, 0x917fff, read16smo_delegate(FUNC(asic65_device::read), (asic65_device*)m_asic65));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x918000, 0x91bfff, read16smo_delegate(FUNC(asic65_device::io_r), (asic65_device*)m_asic65));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x914000, 0x917fff, write16sm_delegate(*m_asic65, FUNC(asic65_device::data_w)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x914000, 0x917fff, read16smo_delegate(*m_asic65, FUNC(asic65_device::read)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x918000, 0x91bfff, read16smo_delegate(*m_asic65, FUNC(asic65_device::io_r)));
/* install extra ROM */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x940000, 0x9fffff, read16_delegate(FUNC(harddriv_state::hd68k_dsk_small_rom_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x940000, 0x9fffff, read16_delegate(*this, FUNC(harddriv_state::hd68k_dsk_small_rom_r)));
m_dsk_rom = (uint16_t *)(usr3 + 0x00000);
}
@@ -4878,22 +4878,22 @@ void harddriv_state::init_dsk2()
uint8_t *usr3 = memregion("user3")->base();
/* install ASIC65 */
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x824000, 0x824003, write16sm_delegate(FUNC(asic65_device::data_w), (asic65_device*)m_asic65));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x824000, 0x824003, read16smo_delegate(FUNC(asic65_device::read), (asic65_device*)m_asic65));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x825000, 0x825001, read16smo_delegate(FUNC(asic65_device::io_r), (asic65_device*)m_asic65));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x824000, 0x824003, write16sm_delegate(*m_asic65, FUNC(asic65_device::data_w)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x824000, 0x824003, read16smo_delegate(*m_asic65, FUNC(asic65_device::read)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x825000, 0x825001, read16smo_delegate(*m_asic65, FUNC(asic65_device::io_r)));
/* install ASIC61 */
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x827000, 0x8277ff, read16_delegate(FUNC(harddriv_state::hd68k_dsk_dsp32_r), this), write16_delegate(FUNC(harddriv_state::hd68k_dsk_dsp32_w), this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x827000, 0x8277ff, read16_delegate(*this, FUNC(harddriv_state::hd68k_dsk_dsp32_r)), write16_delegate(*this, FUNC(harddriv_state::hd68k_dsk_dsp32_w)));
/* install control registers */
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x827800, 0x82781f, write16_delegate(FUNC(harddriv_state::hd68k_dsk_control_w), this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x827800, 0x82781f, write16_delegate(*this, FUNC(harddriv_state::hd68k_dsk_control_w)));
/* install extra RAM */
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x880000, 0x8bffff, read16_delegate(FUNC(harddriv_state::hd68k_dsk_ram_r), this), write16_delegate(FUNC(harddriv_state::hd68k_dsk_ram_w), this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x880000, 0x8bffff, read16_delegate(*this, FUNC(harddriv_state::hd68k_dsk_ram_r)), write16_delegate(*this, FUNC(harddriv_state::hd68k_dsk_ram_w)));
m_dsk_ram = (uint16_t *)(usr3 + 0x100000);
/* install extra ROM */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x900000, 0x9fffff, read16_delegate(FUNC(harddriv_state::hd68k_dsk_rom_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x900000, 0x9fffff, read16_delegate(*this, FUNC(harddriv_state::hd68k_dsk_rom_r)));
m_dsk_rom = (uint16_t *)(usr3 + 0x000000);
}
@@ -4901,13 +4901,13 @@ void harddriv_state::init_dsk2()
/* COMMON INIT: initialize the DSPCOM add-on board */
void harddriv_state::init_dspcom()
{
- /* install ASIC65 */
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x900000, 0x900003, write16sm_delegate(FUNC(asic65_device::data_w), (asic65_device*)m_asic65));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x900000, 0x900003, read16smo_delegate(FUNC(asic65_device::read), (asic65_device*)m_asic65));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x901000, 0x910001, read16smo_delegate(FUNC(asic65_device::io_r), (asic65_device*)m_asic65));
+ /* install ASIC65 */
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x900000, 0x900003, write16sm_delegate(*m_asic65, FUNC(asic65_device::data_w)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x900000, 0x900003, read16smo_delegate(*m_asic65, FUNC(asic65_device::read)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x901000, 0x910001, read16smo_delegate(*m_asic65, FUNC(asic65_device::io_r)));
/* install DSPCOM control */
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x904000, 0x90401f, write16_delegate(FUNC(harddriv_state::hddspcom_control_w), this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x904000, 0x90401f, write16_delegate(*this, FUNC(harddriv_state::hddspcom_control_w)));
}
@@ -4915,9 +4915,9 @@ void harddriv_state::init_dspcom()
void harddriv_state::init_driver_sound()
{
/* install sound handlers */
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x840000, 0x840001, read16_delegate(FUNC(harddriv_sound_board_device::hd68k_snd_data_r), (harddriv_sound_board_device*)m_harddriv_sound), write16_delegate(FUNC(harddriv_sound_board_device::hd68k_snd_data_w), (harddriv_sound_board_device*)m_harddriv_sound));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x844000, 0x844001, read16_delegate(FUNC(harddriv_sound_board_device::hd68k_snd_status_r), (harddriv_sound_board_device*)m_harddriv_sound));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x84c000, 0x84c001, write16_delegate(FUNC(harddriv_sound_board_device::hd68k_snd_reset_w), (harddriv_sound_board_device*)m_harddriv_sound));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x840000, 0x840001, read16_delegate(*m_harddriv_sound, FUNC(harddriv_sound_board_device::hd68k_snd_data_r)), write16_delegate(*m_harddriv_sound, FUNC(harddriv_sound_board_device::hd68k_snd_data_w)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x844000, 0x844001, read16_delegate(*m_harddriv_sound, FUNC(harddriv_sound_board_device::hd68k_snd_status_r)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x84c000, 0x84c001, write16_delegate(*m_harddriv_sound, FUNC(harddriv_sound_board_device::hd68k_snd_reset_w)));
}
@@ -4929,7 +4929,7 @@ void harddriv_state::init_driver_sound()
*
*************************************/
-void harddriv_state::init_harddriv(void)
+void harddriv_state::init_harddriv()
{
/* initialize the boards */
init_driver();
@@ -4937,25 +4937,25 @@ void harddriv_state::init_harddriv(void)
init_driver_sound();
/* set up gsp speedup handler */
- m_gsp->space(AS_PROGRAM).install_write_handler(0xfff9fc00, 0xfff9fc0f, write16_delegate(FUNC(harddriv_state::hdgsp_speedup1_w), this));
- m_gsp->space(AS_PROGRAM).install_write_handler(0xfffcfc00, 0xfffcfc0f, write16_delegate(FUNC(harddriv_state::hdgsp_speedup2_w), this));
- m_gsp->space(AS_PROGRAM).install_read_handler(0xfff9fc00, 0xfff9fc0f, read16_delegate(FUNC(harddriv_state::hdgsp_speedup_r), this));
+ m_gsp->space(AS_PROGRAM).install_write_handler(0xfff9fc00, 0xfff9fc0f, write16_delegate(*this, FUNC(harddriv_state::hdgsp_speedup1_w)));
+ m_gsp->space(AS_PROGRAM).install_write_handler(0xfffcfc00, 0xfffcfc0f, write16_delegate(*this, FUNC(harddriv_state::hdgsp_speedup2_w)));
+ m_gsp->space(AS_PROGRAM).install_read_handler(0xfff9fc00, 0xfff9fc0f, read16_delegate(*this, FUNC(harddriv_state::hdgsp_speedup_r)));
m_gsp_speedup_pc = 0xffc00f10;
m_gsp_speedup_addr[0] = (uint16_t *)(m_gsp_vram + ((0xfff9fc00 - 0xff800000) >> 3)); // Addresses are in bits. Really.
m_gsp_speedup_addr[1] = (uint16_t *)(m_gsp_vram + ((0xfffcfc00 - 0xff800000) >> 3));
/* set up msp speedup handler */
- m_msp->space(AS_PROGRAM).install_write_handler(0x00751b00, 0x00751b0f, write16_delegate(FUNC(harddriv_state::hdmsp_speedup_w), this));
- m_msp->space(AS_PROGRAM).install_read_handler(0x00751b00, 0x00751b0f, read16_delegate(FUNC(harddriv_state::hdmsp_speedup_r), this));
+ m_msp->space(AS_PROGRAM).install_write_handler(0x00751b00, 0x00751b0f, write16_delegate(*this, FUNC(harddriv_state::hdmsp_speedup_w)));
+ m_msp->space(AS_PROGRAM).install_read_handler(0x00751b00, 0x00751b0f, read16_delegate(*this, FUNC(harddriv_state::hdmsp_speedup_r)));
m_msp_speedup_pc = 0x00723b00;
m_msp_speedup_addr = m_msp_ram + ((0x751b00 - 0x700000) >> 4); // Address in bits, plus uint16_t *
/* set up adsp speedup handlers */
- m_adsp->space(AS_DATA).install_read_handler(0x1fff, 0x1fff, read16_delegate(FUNC(harddriv_state::hdadsp_speedup_r), this));
+ m_adsp->space(AS_DATA).install_read_handler(0x1fff, 0x1fff, read16_delegate(*this, FUNC(harddriv_state::hdadsp_speedup_r)));
}
-void harddriv_state::init_harddrivc(void)
+void harddriv_state::init_harddrivc()
{
/* initialize the boards */
init_multisync(1);
@@ -4963,44 +4963,44 @@ void harddriv_state::init_harddrivc(void)
init_driver_sound();
/* set up gsp speedup handler */
- m_gsp->space(AS_PROGRAM).install_write_handler(0xfff9fc00, 0xfff9fc0f, write16_delegate(FUNC(harddriv_state::hdgsp_speedup1_w), this));
- m_gsp->space(AS_PROGRAM).install_write_handler(0xfffcfc00, 0xfffcfc0f, write16_delegate(FUNC(harddriv_state::hdgsp_speedup2_w), this));
- m_gsp->space(AS_PROGRAM).install_read_handler(0xfff9fc00, 0xfff9fc0f, read16_delegate(FUNC(harddriv_state::hdgsp_speedup_r), this));
+ m_gsp->space(AS_PROGRAM).install_write_handler(0xfff9fc00, 0xfff9fc0f, write16_delegate(*this, FUNC(harddriv_state::hdgsp_speedup1_w)));
+ m_gsp->space(AS_PROGRAM).install_write_handler(0xfffcfc00, 0xfffcfc0f, write16_delegate(*this, FUNC(harddriv_state::hdgsp_speedup2_w)));
+ m_gsp->space(AS_PROGRAM).install_read_handler(0xfff9fc00, 0xfff9fc0f, read16_delegate(*this, FUNC(harddriv_state::hdgsp_speedup_r)));
m_gsp_speedup_pc = 0xfff40ff0;
m_gsp_speedup_addr[0] = (uint16_t *)(m_gsp_vram + ((0xfff9fc00 - 0xffc00000) >> 3)); // Addresses are in bits. Really.
m_gsp_speedup_addr[1] = (uint16_t *)(m_gsp_vram + ((0xfffcfc00 - 0xffc00000) >> 3));
/* set up msp speedup handler */
- m_msp->space(AS_PROGRAM).install_write_handler(0x00751b00, 0x00751b0f, write16_delegate(FUNC(harddriv_state::hdmsp_speedup_w), this));
- m_msp->space(AS_PROGRAM).install_read_handler(0x00751b00, 0x00751b0f, read16_delegate(FUNC(harddriv_state::hdmsp_speedup_r), this));
+ m_msp->space(AS_PROGRAM).install_write_handler(0x00751b00, 0x00751b0f, write16_delegate(*this, FUNC(harddriv_state::hdmsp_speedup_w)));
+ m_msp->space(AS_PROGRAM).install_read_handler(0x00751b00, 0x00751b0f, read16_delegate(*this, FUNC(harddriv_state::hdmsp_speedup_r)));
m_msp_speedup_pc = 0x00723b00;
m_msp_speedup_addr = m_msp_ram + ((0x751b00 - 0x700000) >> 4); // Address in bits, plus uint16_t *
/* set up adsp speedup handlers */
- m_adsp->space(AS_DATA).install_read_handler(0x1fff, 0x1fff, read16_delegate(FUNC(harddriv_state::hdadsp_speedup_r), this));
+ m_adsp->space(AS_DATA).install_read_handler(0x1fff, 0x1fff, read16_delegate(*this, FUNC(harddriv_state::hdadsp_speedup_r)));
}
-void harddriv_state::init_stunrun(void)
+void harddriv_state::init_stunrun()
{
/* initialize the boards */
init_multisync(0);
init_adsp();
/* set up gsp speedup handler */
- m_gsp->space(AS_PROGRAM).install_write_handler(0xfff9fc00, 0xfff9fc0f, write16_delegate(FUNC(harddriv_state::hdgsp_speedup1_w), this));
- m_gsp->space(AS_PROGRAM).install_write_handler(0xfffcfc00, 0xfffcfc0f, write16_delegate(FUNC(harddriv_state::hdgsp_speedup2_w), this));
- m_gsp->space(AS_PROGRAM).install_read_handler(0xfff9fc00, 0xfff9fc0f, read16_delegate(FUNC(harddriv_state::hdgsp_speedup_r), this));
+ m_gsp->space(AS_PROGRAM).install_write_handler(0xfff9fc00, 0xfff9fc0f, write16_delegate(*this, FUNC(harddriv_state::hdgsp_speedup1_w)));
+ m_gsp->space(AS_PROGRAM).install_write_handler(0xfffcfc00, 0xfffcfc0f, write16_delegate(*this, FUNC(harddriv_state::hdgsp_speedup2_w)));
+ m_gsp->space(AS_PROGRAM).install_read_handler(0xfff9fc00, 0xfff9fc0f, read16_delegate(*this, FUNC(harddriv_state::hdgsp_speedup_r)));
m_gsp_speedup_pc = 0xfff41070;
m_gsp_speedup_addr[0] = (uint16_t *)(m_gsp_vram + ((0xfff9fc00 - 0xffc00000) >> 3)); // Addresses are in bits. Really.
m_gsp_speedup_addr[1] = (uint16_t *)(m_gsp_vram + ((0xfffcfc00 - 0xffc00000) >> 3));
/* set up adsp speedup handlers */
- m_adsp->space(AS_DATA).install_read_handler(0x1fff, 0x1fff, read16_delegate(FUNC(harddriv_state::hdadsp_speedup_r), this));
+ m_adsp->space(AS_DATA).install_read_handler(0x1fff, 0x1fff, read16_delegate(*this, FUNC(harddriv_state::hdadsp_speedup_r)));
}
-void harddriv_state::init_racedriv(void)
+void harddriv_state::init_racedriv()
{
/* initialize the boards */
init_driver();
@@ -5010,17 +5010,17 @@ void harddriv_state::init_racedriv(void)
/* set up the slapstic */
m_slapstic_device->slapstic_init();
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xe0000, 0xfffff, read16_delegate(FUNC(harddriv_state::rd68k_slapstic_r), this), write16_delegate(FUNC(harddriv_state::rd68k_slapstic_w), this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xe0000, 0xfffff, read16_delegate(*this, FUNC(harddriv_state::rd68k_slapstic_r)), write16_delegate(*this, FUNC(harddriv_state::rd68k_slapstic_w)));
m_m68k_slapstic_base = (uint16_t *)(memregion("maincpu")->base() + 0xe0000);
/* synchronization */
- m_dsp32->space(AS_PROGRAM).install_write_handler(0x613c00, 0x613c03, write32_delegate(FUNC(harddriv_state::rddsp32_sync0_w), this));
- m_dsp32->space(AS_PROGRAM).install_write_handler(0x613e00, 0x613e03, write32_delegate(FUNC(harddriv_state::rddsp32_sync1_w), this));
+ m_dsp32->space(AS_PROGRAM).install_write_handler(0x613c00, 0x613c03, write32_delegate(*this, FUNC(harddriv_state::rddsp32_sync0_w)));
+ m_dsp32->space(AS_PROGRAM).install_write_handler(0x613e00, 0x613e03, write32_delegate(*this, FUNC(harddriv_state::rddsp32_sync1_w)));
m_rddsp32_sync[0] = m_dsp32_ram + ((0x613c00 - 0x600000) >> 2);
m_rddsp32_sync[1] = m_dsp32_ram + ((0x613e00 - 0x600000) >> 2);
/* set up adsp speedup handlers */
- m_adsp->space(AS_DATA).install_read_handler(0x1fff, 0x1fff, read16_delegate(FUNC(harddriv_state::hdadsp_speedup_r), this));
+ m_adsp->space(AS_DATA).install_read_handler(0x1fff, 0x1fff, read16_delegate(*this, FUNC(harddriv_state::hdadsp_speedup_r)));
}
@@ -5035,31 +5035,31 @@ void harddriv_state::racedrivc_init_common(offs_t gsp_protection)
/* set up the slapstic */
m_slapstic_device->slapstic_init();
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xe0000, 0xfffff, read16_delegate(FUNC(harddriv_state::rd68k_slapstic_r), this), write16_delegate(FUNC(harddriv_state::rd68k_slapstic_w), this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xe0000, 0xfffff, read16_delegate(*this, FUNC(harddriv_state::rd68k_slapstic_r)), write16_delegate(*this, FUNC(harddriv_state::rd68k_slapstic_w)));
m_m68k_slapstic_base = (uint16_t *)(memregion("maincpu")->base() + 0xe0000);
/* synchronization */
- m_dsp32->space(AS_PROGRAM).install_write_handler(0x613c00, 0x613c03, write32_delegate(FUNC(harddriv_state::rddsp32_sync0_w), this));
- m_dsp32->space(AS_PROGRAM).install_write_handler(0x613e00, 0x613e03, write32_delegate(FUNC(harddriv_state::rddsp32_sync1_w), this));
+ m_dsp32->space(AS_PROGRAM).install_write_handler(0x613c00, 0x613c03, write32_delegate(*this, FUNC(harddriv_state::rddsp32_sync0_w)));
+ m_dsp32->space(AS_PROGRAM).install_write_handler(0x613e00, 0x613e03, write32_delegate(*this, FUNC(harddriv_state::rddsp32_sync1_w)));
m_rddsp32_sync[0] = m_dsp32_ram + ((0x613c00 - 0x600000) >> 2);
m_rddsp32_sync[1] = m_dsp32_ram + ((0x613e00 - 0x600000) >> 2);
/* set up protection hacks */
- m_gsp->space(AS_PROGRAM).install_write_handler(gsp_protection, gsp_protection + 0x0f, write16_delegate(FUNC(harddriv_state::hdgsp_protection_w), this));
+ m_gsp->space(AS_PROGRAM).install_write_handler(gsp_protection, gsp_protection + 0x0f, write16_delegate(*this, FUNC(harddriv_state::hdgsp_protection_w)));
m_gsp_protection = (uint16_t *)(m_gsp_vram + ((gsp_protection - 0xffc00000) >> 3));
/* set up gsp speedup handler */
- m_gsp->space(AS_PROGRAM).install_write_handler(0xfff76f60, 0xfff76f6f, write16_delegate(FUNC(harddriv_state::rdgsp_speedup1_w), this));
- m_gsp->space(AS_PROGRAM).install_read_handler(0xfff76f60, 0xfff76f6f, read16_delegate(FUNC(harddriv_state::rdgsp_speedup1_r), this));
+ m_gsp->space(AS_PROGRAM).install_write_handler(0xfff76f60, 0xfff76f6f, write16_delegate(*this, FUNC(harddriv_state::rdgsp_speedup1_w)));
+ m_gsp->space(AS_PROGRAM).install_read_handler(0xfff76f60, 0xfff76f6f, read16_delegate(*this, FUNC(harddriv_state::rdgsp_speedup1_r)));
m_gsp_speedup_pc = 0xfff43a00;
m_gsp_speedup_addr[0] = (uint16_t *)(m_gsp_vram + ((0xfff76f60 - 0xffc00000) >> 3));
/* set up adsp speedup handlers */
- m_adsp->space(AS_DATA).install_read_handler(0x1fff, 0x1fff, read16_delegate(FUNC(harddriv_state::hdadsp_speedup_r), this));
+ m_adsp->space(AS_DATA).install_read_handler(0x1fff, 0x1fff, read16_delegate(*this, FUNC(harddriv_state::hdadsp_speedup_r)));
}
-void harddriv_state::init_racedrivc(void) { racedrivc_init_common(0xfff95cd0); }
-void harddriv_state::init_racedrivc1(void) { racedrivc_init_common(0xfff7ecd0); }
+void harddriv_state::init_racedrivc() { racedrivc_init_common(0xfff95cd0); }
+void harddriv_state::init_racedrivc1() { racedrivc_init_common(0xfff7ecd0); }
void harddriv_state::init_racedrivc_panorama_side()
{
@@ -5070,30 +5070,30 @@ void harddriv_state::init_racedrivc_panorama_side()
/* set up the slapstic */
m_slapstic_device->slapstic_init();
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xe0000, 0xfffff, read16_delegate(FUNC(harddriv_state::rd68k_slapstic_r), this), write16_delegate(FUNC(harddriv_state::rd68k_slapstic_w), this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xe0000, 0xfffff, read16_delegate(*this, FUNC(harddriv_state::rd68k_slapstic_r)), write16_delegate(*this, FUNC(harddriv_state::rd68k_slapstic_w)));
m_m68k_slapstic_base = (uint16_t *)(memregion("maincpu")->base() + 0xe0000);
/* set up protection hacks */
- m_gsp->space(AS_PROGRAM).install_write_handler(gsp_protection, gsp_protection + 0x0f, write16_delegate(FUNC(harddriv_state::hdgsp_protection_w), this));
+ m_gsp->space(AS_PROGRAM).install_write_handler(gsp_protection, gsp_protection + 0x0f, write16_delegate(*this, FUNC(harddriv_state::hdgsp_protection_w)));
m_gsp_protection = (uint16_t *)(m_gsp_vram + ((gsp_protection - 0xffc00000) >> 3));
/* set up gsp speedup handler (todo, work these out) */
-// m_gsp->space(AS_PROGRAM).install_write_handler(0xfff76f60, 0xfff76f6f, write16_delegate(FUNC(harddriv_state::rdgsp_speedup1_w), this));
-// m_gsp->space(AS_PROGRAM).install_read_handler(0xfff76f60, 0xfff76f6f, read16_delegate(FUNC(harddriv_state::rdgsp_speedup1_r), this));
+// m_gsp->space(AS_PROGRAM).install_write_handler(0xfff76f60, 0xfff76f6f, write16_delegate(*this, FUNC(harddriv_state::rdgsp_speedup1_w)));
+// m_gsp->space(AS_PROGRAM).install_read_handler(0xfff76f60, 0xfff76f6f, read16_delegate(*this, FUNC(harddriv_state::rdgsp_speedup1_r)));
// m_gsp_speedup_pc = 0xfff43a00;
// m_gsp_speedup_addr[0] = (uint16_t *)(m_gsp_vram + ((0xfff76f60 - 0xffc00000) >> 3));
/* set up adsp speedup handlers */
- m_adsp->space(AS_DATA).install_read_handler(0x1fff, 0x1fff, read16_delegate(FUNC(harddriv_state::hdadsp_speedup_r), this));
+ m_adsp->space(AS_DATA).install_read_handler(0x1fff, 0x1fff, read16_delegate(*this, FUNC(harddriv_state::hdadsp_speedup_r)));
}
-void harddriv_state::init_racedrivb1(void)
+void harddriv_state::init_racedrivb1()
{
/* this unpleasantness prevents racedriv1/racedrivb1/racedrivg1 from crashing MAME during boot */
/* they clear the DSP32C's RAM and then release it from reset, causing it to run through */
/* its address space recursively executing instructions */
- m_dsp32->space(AS_PROGRAM).install_read_handler(0x002000, 0x5fffff, read32_delegate(FUNC(harddriv_state::rddsp_unmap_r),this));
- m_dsp32->space(AS_PROGRAM).install_read_handler(0x640000, 0xfff7ff, read32_delegate(FUNC(harddriv_state::rddsp_unmap_r),this));
+ m_dsp32->space(AS_PROGRAM).install_read_handler(0x002000, 0x5fffff, read32_delegate(*this, FUNC(harddriv_state::rddsp_unmap_r)));
+ m_dsp32->space(AS_PROGRAM).install_read_handler(0x640000, 0xfff7ff, read32_delegate(*this, FUNC(harddriv_state::rddsp_unmap_r)));
init_racedriv();
}
@@ -5117,27 +5117,27 @@ void harddriv_state::steeltal_init_common(offs_t ds3_transfer_pc, int proto_sloo
init_ds3();
init_dspcom();
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x908000, 0x908001, read16_delegate(FUNC(harddriv_state::steeltal_dummy_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x908000, 0x908001, read16_delegate(*this, FUNC(harddriv_state::steeltal_dummy_r)));
/* set up the SLOOP */
if (!proto_sloop)
{
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xe0000, 0xfffff, read16_delegate(FUNC(harddriv_state::st68k_sloop_r), this), write16_delegate(FUNC(harddriv_state::st68k_sloop_w), this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x4e000, 0x4ffff, read16_delegate(FUNC(harddriv_state::st68k_sloop_alt_r), this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xe0000, 0xfffff, read16_delegate(*this, FUNC(harddriv_state::st68k_sloop_r)), write16_delegate(*this, FUNC(harddriv_state::st68k_sloop_w)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x4e000, 0x4ffff, read16_delegate(*this, FUNC(harddriv_state::st68k_sloop_alt_r)));
}
else
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xe0000, 0xfffff, read16_delegate(FUNC(harddriv_state::st68k_protosloop_r), this), write16_delegate(FUNC(harddriv_state::st68k_protosloop_w), this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xe0000, 0xfffff, read16_delegate(*this, FUNC(harddriv_state::st68k_protosloop_r)), write16_delegate(*this, FUNC(harddriv_state::st68k_protosloop_w)));
m_m68k_slapstic_base = (uint16_t *)(memregion("maincpu")->base() + 0xe0000);
m_m68k_sloop_alt_base = (uint16_t *)(memregion("maincpu")->base() + 0x4e000);
/* set up protection hacks */
- m_gsp->space(AS_PROGRAM).install_write_handler(0xfff965d0, 0xfff965df, write16_delegate(FUNC(harddriv_state::hdgsp_protection_w), this));
+ m_gsp->space(AS_PROGRAM).install_write_handler(0xfff965d0, 0xfff965df, write16_delegate(*this, FUNC(harddriv_state::hdgsp_protection_w)));
m_gsp_protection = (uint16_t *)(m_gsp_vram + ((0xfff965d0 - 0xffc00000) >> 3));
/* set up adsp speedup handlers */
- m_adsp->space(AS_DATA).install_read_handler(0x1fff, 0x1fff, read16_delegate(FUNC(harddriv_state::hdadsp_speedup_r), this));
- m_adsp->space(AS_DATA).install_read_handler(0x1f99, 0x1f99, read16_delegate(FUNC(harddriv_state::hdds3_speedup_r), this));
+ m_adsp->space(AS_DATA).install_read_handler(0x1fff, 0x1fff, read16_delegate(*this, FUNC(harddriv_state::hdadsp_speedup_r)));
+ m_adsp->space(AS_DATA).install_read_handler(0x1f99, 0x1f99, read16_delegate(*this, FUNC(harddriv_state::hdds3_speedup_r)));
m_ds3_speedup_addr = &m_adsp_data_memory[0x1f99];
m_ds3_speedup_pc = 0xff;
m_ds3_transfer_pc = ds3_transfer_pc;
@@ -5145,23 +5145,23 @@ void harddriv_state::steeltal_init_common(offs_t ds3_transfer_pc, int proto_sloo
-void harddriv_state::init_steeltal(void)
+void harddriv_state::init_steeltal()
{
steeltal_init_common(0x4fc18, 0);
}
-void harddriv_state::init_steeltal1(void)
+void harddriv_state::init_steeltal1()
{
steeltal_init_common(0x4f9c6, 0);
}
-void harddriv_state::init_steeltalp(void)
+void harddriv_state::init_steeltalp()
{
steeltal_init_common(0x52290, 1);
}
-void harddriv_state::init_strtdriv(void)
+void harddriv_state::init_strtdriv()
{
/* initialize the boards */
init_multisync(1);
@@ -5170,80 +5170,80 @@ void harddriv_state::init_strtdriv(void)
/* set up the slapstic */
m_slapstic_device->slapstic_init();
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xe0000, 0xfffff, read16_delegate(FUNC(harddriv_state::rd68k_slapstic_r), this), write16_delegate(FUNC(harddriv_state::rd68k_slapstic_w), this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xe0000, 0xfffff, read16_delegate(*this, FUNC(harddriv_state::rd68k_slapstic_r)), write16_delegate(*this, FUNC(harddriv_state::rd68k_slapstic_w)));
m_m68k_slapstic_base = (uint16_t *)(memregion("maincpu")->base() + 0xe0000);
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xa80000, 0xafffff, read16_delegate(FUNC(harddriv_state::hda68k_port1_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xa80000, 0xafffff, read16_delegate(*this, FUNC(harddriv_state::hda68k_port1_r)));
/* synchronization */
- m_dsp32->space(AS_PROGRAM).install_write_handler(0x613c00, 0x613c03, write32_delegate(FUNC(harddriv_state::rddsp32_sync0_w), this));
- m_dsp32->space(AS_PROGRAM).install_write_handler(0x613e00, 0x613e03, write32_delegate(FUNC(harddriv_state::rddsp32_sync1_w), this));
+ m_dsp32->space(AS_PROGRAM).install_write_handler(0x613c00, 0x613c03, write32_delegate(*this, FUNC(harddriv_state::rddsp32_sync0_w)));
+ m_dsp32->space(AS_PROGRAM).install_write_handler(0x613e00, 0x613e03, write32_delegate(*this, FUNC(harddriv_state::rddsp32_sync1_w)));
m_rddsp32_sync[0] = m_dsp32_ram + ((0x613c00 - 0x600000) >> 2);
m_rddsp32_sync[1] = m_dsp32_ram + ((0x613e00 - 0x600000) >> 2);
/* set up protection hacks */
- m_gsp->space(AS_PROGRAM).install_write_handler(0xfff960a0, 0xfff960af, write16_delegate(FUNC(harddriv_state::hdgsp_protection_w), this));
+ m_gsp->space(AS_PROGRAM).install_write_handler(0xfff960a0, 0xfff960af, write16_delegate(*this, FUNC(harddriv_state::hdgsp_protection_w)));
m_gsp_protection = (uint16_t *)(m_gsp_vram + ((0xfff960a0 - 0xffc00000) >> 3));
/* set up adsp speedup handlers */
- m_adsp->space(AS_DATA).install_read_handler(0x1fff, 0x1fff, read16_delegate(FUNC(harddriv_state::hdadsp_speedup_r), this));
- m_adsp->space(AS_DATA).install_read_handler(0x1f99, 0x1f99, read16_delegate(FUNC(harddriv_state::hdds3_speedup_r), this));
+ m_adsp->space(AS_DATA).install_read_handler(0x1fff, 0x1fff, read16_delegate(*this, FUNC(harddriv_state::hdadsp_speedup_r)));
+ m_adsp->space(AS_DATA).install_read_handler(0x1f99, 0x1f99, read16_delegate(*this, FUNC(harddriv_state::hdds3_speedup_r)));
m_ds3_speedup_addr = &m_adsp_data_memory[0x1f99];
m_ds3_speedup_pc = 0xff;
m_ds3_transfer_pc = 0x43672;
}
-void harddriv_state::init_hdrivair(void)
+void harddriv_state::init_hdrivair()
{
/* initialize the boards */
init_multisync(1);
init_ds3();
init_dsk2();
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xa80000, 0xafffff, read16_delegate(FUNC(harddriv_state::hda68k_port1_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xa80000, 0xafffff, read16_delegate(*this, FUNC(harddriv_state::hda68k_port1_r)));
/* synchronization */
- m_dsp32->space(AS_PROGRAM).install_write_handler(0x613c00, 0x613c03, write32_delegate(FUNC(harddriv_state::rddsp32_sync0_w), this));
- m_dsp32->space(AS_PROGRAM).install_write_handler(0x613e00, 0x613e03, write32_delegate(FUNC(harddriv_state::rddsp32_sync1_w), this));
+ m_dsp32->space(AS_PROGRAM).install_write_handler(0x613c00, 0x613c03, write32_delegate(*this, FUNC(harddriv_state::rddsp32_sync0_w)));
+ m_dsp32->space(AS_PROGRAM).install_write_handler(0x613e00, 0x613e03, write32_delegate(*this, FUNC(harddriv_state::rddsp32_sync1_w)));
m_rddsp32_sync[0] = m_dsp32_ram + ((0x613c00 - 0x600000) >> 2);
m_rddsp32_sync[1] = m_dsp32_ram + ((0x613e00 - 0x600000) >> 2);
/* set up protection hacks */
- m_gsp->space(AS_PROGRAM).install_write_handler(0xfff960a0, 0xfff960af, write16_delegate(FUNC(harddriv_state::hdgsp_protection_w), this));
+ m_gsp->space(AS_PROGRAM).install_write_handler(0xfff960a0, 0xfff960af, write16_delegate(*this, FUNC(harddriv_state::hdgsp_protection_w)));
m_gsp_protection = (uint16_t *)(m_gsp_vram + ((0xfff960a0 - 0xffc00000) >> 3));
/* set up adsp speedup handlers */
- m_adsp->space(AS_DATA).install_read_handler(0x1fff, 0x1fff, read16_delegate(FUNC(harddriv_state::hdadsp_speedup_r), this));
- m_adsp->space(AS_DATA).install_read_handler(0x1f99, 0x1f99, read16_delegate(FUNC(harddriv_state::hdds3_speedup_r), this));
+ m_adsp->space(AS_DATA).install_read_handler(0x1fff, 0x1fff, read16_delegate(*this, FUNC(harddriv_state::hdadsp_speedup_r)));
+ m_adsp->space(AS_DATA).install_read_handler(0x1f99, 0x1f99, read16_delegate(*this, FUNC(harddriv_state::hdds3_speedup_r)));
m_ds3_speedup_addr = &m_adsp_data_memory[0x1f99];
m_ds3_speedup_pc = 0x2da;
m_ds3_transfer_pc = 0x407b8;
}
-void harddriv_state::init_hdrivairp(void)
+void harddriv_state::init_hdrivairp()
{
/* initialize the boards */
init_multisync(1);
init_ds3();
init_dsk2();
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xa80000, 0xafffff, read16_delegate(FUNC(harddriv_state::hda68k_port1_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xa80000, 0xafffff, read16_delegate(*this, FUNC(harddriv_state::hda68k_port1_r)));
/* synchronization */
- m_dsp32->space(AS_PROGRAM).install_write_handler(0x613c00, 0x613c03, write32_delegate(FUNC(harddriv_state::rddsp32_sync0_w), this));
- m_dsp32->space(AS_PROGRAM).install_write_handler(0x613e00, 0x613e03, write32_delegate(FUNC(harddriv_state::rddsp32_sync1_w), this));
+ m_dsp32->space(AS_PROGRAM).install_write_handler(0x613c00, 0x613c03, write32_delegate(*this, FUNC(harddriv_state::rddsp32_sync0_w)));
+ m_dsp32->space(AS_PROGRAM).install_write_handler(0x613e00, 0x613e03, write32_delegate(*this, FUNC(harddriv_state::rddsp32_sync1_w)));
m_rddsp32_sync[0] = m_dsp32_ram + ((0x613c00 - 0x600000) >> 2);
m_rddsp32_sync[1] = m_dsp32_ram + ((0x613e00 - 0x600000) >> 2);
/* set up protection hacks */
- m_gsp->space(AS_PROGRAM).install_write_handler(0xfff916c0, 0xfff916cf, write16_delegate(FUNC(harddriv_state::hdgsp_protection_w), this));
+ m_gsp->space(AS_PROGRAM).install_write_handler(0xfff916c0, 0xfff916cf, write16_delegate(*this, FUNC(harddriv_state::hdgsp_protection_w)));
m_gsp_protection = (uint16_t *)(m_gsp_vram + ((0xfff916c0 - 0xffc00000) >> 3));
/* set up adsp speedup handlers */
- m_adsp->space(AS_DATA).install_read_handler(0x1fff, 0x1fff, read16_delegate(FUNC(harddriv_state::hdadsp_speedup_r), this));
- m_adsp->space(AS_DATA).install_read_handler(0x1f9a, 0x1f9a, read16_delegate(FUNC(harddriv_state::hdds3_speedup_r), this));
+ m_adsp->space(AS_DATA).install_read_handler(0x1fff, 0x1fff, read16_delegate(*this, FUNC(harddriv_state::hdadsp_speedup_r)));
+ m_adsp->space(AS_DATA).install_read_handler(0x1f9a, 0x1f9a, read16_delegate(*this, FUNC(harddriv_state::hdds3_speedup_r)));
m_ds3_speedup_addr = &m_adsp_data_memory[0x1f9a];
m_ds3_speedup_pc = 0x2d9;
m_ds3_transfer_pc = 0x407da;
diff --git a/src/mame/drivers/hazeltin.cpp b/src/mame/drivers/hazeltin.cpp
index 2436ec53b7b..6df6ba1a5b5 100644
--- a/src/mame/drivers/hazeltin.cpp
+++ b/src/mame/drivers/hazeltin.cpp
@@ -756,9 +756,9 @@ void hazl1500_state::hazl1500(machine_config &config)
NETLIST_LOGIC_INPUT(config, NETLIST_TAG ":cpu_db6", "cpu_db6.IN", 0);
NETLIST_LOGIC_INPUT(config, NETLIST_TAG ":cpu_db7", "cpu_db7.IN", 0);
- NETLIST_ANALOG_OUTPUT(config, NETLIST_TAG ":video_out", 0).set_params("video_out", FUNC(hazl1500_state::video_out_cb), "");
- NETLIST_ANALOG_OUTPUT(config, NETLIST_TAG ":vblank", 0).set_params("vblank", FUNC(hazl1500_state::vblank_cb), "");
- NETLIST_ANALOG_OUTPUT(config, NETLIST_TAG ":tvinterq", 0).set_params("tvinterq", FUNC(hazl1500_state::tvinterq_cb), "");
+ NETLIST_ANALOG_OUTPUT(config, NETLIST_TAG ":video_out", 0).set_params("video_out", FUNC(hazl1500_state::video_out_cb));
+ NETLIST_ANALOG_OUTPUT(config, NETLIST_TAG ":vblank", 0).set_params("vblank", FUNC(hazl1500_state::vblank_cb));
+ NETLIST_ANALOG_OUTPUT(config, NETLIST_TAG ":tvinterq", 0).set_params("tvinterq", FUNC(hazl1500_state::tvinterq_cb));
/* keyboard controller */
AY3600(config, m_kbdc, 0);
diff --git a/src/mame/drivers/headonb.cpp b/src/mame/drivers/headonb.cpp
index 14271fa90ae..b13b9da1c66 100644
--- a/src/mame/drivers/headonb.cpp
+++ b/src/mame/drivers/headonb.cpp
@@ -81,7 +81,7 @@ TILE_GET_INFO_MEMBER(headonb_state::get_tile_info)
void headonb_state::video_start()
{
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(headonb_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(headonb_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
uint32_t headonb_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
diff --git a/src/mame/drivers/hektor.cpp b/src/mame/drivers/hektor.cpp
index 3fac622949d..33a0d8a090b 100644
--- a/src/mame/drivers/hektor.cpp
+++ b/src/mame/drivers/hektor.cpp
@@ -391,7 +391,7 @@ void hektor2_state::hektor2(machine_config &config)
m_maincpu->set_addrmap(AS_PROGRAM, &hektor2_state::hektor2_mem);
m_maincpu->in_sid_func().set(FUNC(hektor_state::sid_r));
m_maincpu->out_sod_func().set(FUNC(hektor_state::sod_w));
- m_maincpu->set_clk_out("i8155", FUNC(i8155_device::set_unscaled_clock));
+ m_maincpu->set_clk_out("i8155", FUNC(i8155_device::set_unscaled_clock_int));
I8155(config, m_i8155, 6.144_MHz_XTAL / 2);
m_i8155->out_pa_callback().set(FUNC(hektor_state::i8155_porta_w));
@@ -431,7 +431,7 @@ void hektor3_state::hektor3(machine_config &config)
m_maincpu->set_addrmap(AS_IO, &hektor3_state::hektor3_io);
m_maincpu->in_sid_func().set(FUNC(hektor_state::sid_r));
m_maincpu->out_sod_func().set(FUNC(hektor_state::sod_w));
- m_maincpu->set_clk_out("i8155", FUNC(i8155_device::set_unscaled_clock));
+ m_maincpu->set_clk_out("i8155", FUNC(i8155_device::set_unscaled_clock_int));
I8155(config, m_i8155, 16_MHz_XTAL / 4);
m_i8155->out_pa_callback().set(FUNC(hektor_state::i8155_porta_w));
@@ -464,7 +464,7 @@ void hektor3_state::hektor3(machine_config &config)
m_hd6845->set_screen(m_screen);
m_hd6845->set_show_border_area(false);
m_hd6845->set_char_width(8);
- m_hd6845->set_update_row_callback(FUNC(hektor3_state::crtc_update_row), this);
+ m_hd6845->set_update_row_callback(FUNC(hektor3_state::crtc_update_row));
}
diff --git a/src/mame/drivers/hh_tms1k.cpp b/src/mame/drivers/hh_tms1k.cpp
index 785b21de3e8..8abea869492 100644
--- a/src/mame/drivers/hh_tms1k.cpp
+++ b/src/mame/drivers/hh_tms1k.cpp
@@ -2274,7 +2274,7 @@ void quizwizc_state::quizwizc(machine_config &config)
/* cartridge */
generic_cartslot_device &cartslot(GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "quizwiz_cart"));
cartslot.set_must_be_loaded(true);
- cartslot.set_device_load(FUNC(quizwizc_state::cart_load), this);
+ cartslot.set_device_load(FUNC(quizwizc_state::cart_load));
SOFTWARE_LIST(config, "cart_list").set_original("quizwiz");
}
@@ -2462,7 +2462,7 @@ void tc4_state::tc4(machine_config &config)
/* cartridge */
generic_cartslot_device &cartslot(GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "tc4_cart"));
cartslot.set_must_be_loaded(true); // system won't power on without cartridge
- cartslot.set_device_load(FUNC(tc4_state::cart_load), this);
+ cartslot.set_device_load(FUNC(tc4_state::cart_load));
SOFTWARE_LIST(config, "cart_list").set_original("tc4");
}
diff --git a/src/mame/drivers/hitme.cpp b/src/mame/drivers/hitme.cpp
index 47d12658f37..993d0fc625c 100644
--- a/src/mame/drivers/hitme.cpp
+++ b/src/mame/drivers/hitme.cpp
@@ -60,13 +60,13 @@ WRITE8_MEMBER(hitme_state::hitme_vidram_w)
void hitme_state::video_start()
{
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(hitme_state::get_hitme_tile_info),this), TILEMAP_SCAN_ROWS, 8, 10, 40, 19);
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(hitme_state::get_hitme_tile_info)), TILEMAP_SCAN_ROWS, 8, 10, 40, 19);
}
VIDEO_START_MEMBER(hitme_state,barricad)
{
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(hitme_state::get_hitme_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 24);
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(hitme_state::get_hitme_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 24);
}
diff --git a/src/mame/drivers/hnayayoi.cpp b/src/mame/drivers/hnayayoi.cpp
index bd061e4c096..85c644b3e48 100644
--- a/src/mame/drivers/hnayayoi.cpp
+++ b/src/mame/drivers/hnayayoi.cpp
@@ -571,7 +571,7 @@ void hnayayoi_state::hnayayoi(machine_config &config)
crtc.set_char_width(4);
crtc.set_show_border_area(false);
crtc.out_vsync_callback().set_inputline(m_maincpu, 0);
- crtc.set_update_row_callback(FUNC(hnayayoi_state::hnayayoi_update_row), this);
+ crtc.set_update_row_callback(FUNC(hnayayoi_state::hnayayoi_update_row));
/* sound hardware */
SPEAKER(config, "mono").front_center();
@@ -611,7 +611,7 @@ void hnayayoi_state::untoucha(machine_config &config)
m_mainlatch->q_out_cb<3>().set(m_msm, FUNC(msm5205_device::reset_w)).invert();
m_mainlatch->q_out_cb<4>().set_nop(); // ?
- subdevice<hd6845s_device>("crtc")->set_update_row_callback(FUNC(hnayayoi_state::untoucha_update_row), this);
+ subdevice<hd6845s_device>("crtc")->set_update_row_callback(FUNC(hnayayoi_state::untoucha_update_row));
MCFG_VIDEO_START_OVERRIDE(hnayayoi_state,untoucha)
}
diff --git a/src/mame/drivers/homelab.cpp b/src/mame/drivers/homelab.cpp
index 55fe65152bc..e442c4d94fc 100644
--- a/src/mame/drivers/homelab.cpp
+++ b/src/mame/drivers/homelab.cpp
@@ -779,7 +779,7 @@ void homelab_state::homelab(machine_config &config)
CASSETTE(config, m_cass);
m_cass->add_route(ALL_OUTPUTS, "speaker", 0.05);
- QUICKLOAD(config, "quickload", "htp", attotime::from_seconds(2)).set_load_callback(FUNC(homelab_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "htp", attotime::from_seconds(2)).set_load_callback(FUNC(homelab_state::quickload_cb));
}
void homelab_state::homelab3(machine_config &config)
@@ -812,7 +812,7 @@ void homelab_state::homelab3(machine_config &config)
CASSETTE(config, m_cass);
m_cass->add_route(ALL_OUTPUTS, "speaker", 0.05);
- QUICKLOAD(config, "quickload", "htp", attotime::from_seconds(2)).set_load_callback(FUNC(homelab_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "htp", attotime::from_seconds(2)).set_load_callback(FUNC(homelab_state::quickload_cb));
}
void homelab_state::brailab4(machine_config &config)
@@ -847,7 +847,7 @@ void homelab_state::brailab4(machine_config &config)
CASSETTE(config, m_cass);
m_cass->add_route(ALL_OUTPUTS, "speaker", 0.05);
- QUICKLOAD(config, "quickload", "htp", attotime::from_seconds(18)).set_load_callback(FUNC(homelab_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "htp", attotime::from_seconds(18)).set_load_callback(FUNC(homelab_state::quickload_cb));
}
void homelab_state::init_brailab4()
diff --git a/src/mame/drivers/hornet.cpp b/src/mame/drivers/hornet.cpp
index 28bf3b28382..f3241347a3c 100644
--- a/src/mame/drivers/hornet.cpp
+++ b/src/mame/drivers/hornet.cpp
@@ -1431,7 +1431,7 @@ void hornet_state::init_hornet()
m_konppc->set_cgboard_texture_bank(0, "bank5", memregion("user5")->base());
m_led_reg0 = m_led_reg1 = 0x7f;
- m_maincpu->ppc4xx_spu_set_tx_handler(write8_delegate(FUNC(hornet_state::jamma_jvs_w), this));
+ m_maincpu->ppc4xx_spu_set_tx_handler(write8_delegate(*this, FUNC(hornet_state::jamma_jvs_w)));
}
void hornet_state::init_gradius4()
@@ -1458,7 +1458,7 @@ void hornet_state::init_sscope()
m_konppc->set_cgboard_texture_bank(1, "bank6", memregion("user5")->base());
m_led_reg0 = m_led_reg1 = 0x7f;
- m_maincpu->ppc4xx_spu_set_tx_handler(write8_delegate(FUNC(hornet_state::jamma_jvs_w), this));
+ m_maincpu->ppc4xx_spu_set_tx_handler(write8_delegate(*this, FUNC(hornet_state::jamma_jvs_w)));
}
void hornet_state::init_sscope2() //fixme: eventually set sscope2 to load gfx roms from the comm board
@@ -1467,7 +1467,7 @@ void hornet_state::init_sscope2() //fixme: eventually set sscope2 to load gfx ro
m_konppc->set_cgboard_texture_bank(1, "bank6", memregion("user5")->base());
m_led_reg0 = m_led_reg1 = 0x7f;
- m_maincpu->ppc4xx_spu_set_tx_handler(write8_delegate(FUNC(hornet_state::jamma_jvs_w), this));
+ m_maincpu->ppc4xx_spu_set_tx_handler(write8_delegate(*this, FUNC(hornet_state::jamma_jvs_w)));
}
/*****************************************************************************/
diff --git a/src/mame/drivers/hotstuff.cpp b/src/mame/drivers/hotstuff.cpp
index 407e4ab0d6d..446c4edbaab 100644
--- a/src/mame/drivers/hotstuff.cpp
+++ b/src/mame/drivers/hotstuff.cpp
@@ -13,11 +13,12 @@
class hotstuff_state : public driver_device
{
public:
- hotstuff_state(const machine_config &mconfig, device_type type, const char *tag)
- : driver_device(mconfig, type, tag),
+ hotstuff_state(const machine_config &mconfig, device_type type, const char *tag) :
+ driver_device(mconfig, type, tag),
m_bitmapram(*this, "bitmapram"),
m_maincpu(*this, "maincpu"),
- m_rtc(*this, "rtc") { }
+ m_rtc(*this, "rtc")
+ { }
void hotstuff(machine_config &config);
@@ -39,37 +40,35 @@ void hotstuff_state::video_start()
uint32_t hotstuff_state::screen_update_hotstuff(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- int count, y,yyy,x,xxx;
+ int yyy,xxx;
uint16_t row_palette_data[0x10];
rgb_t row_palette_data_as_rgb32_pen_data[0x10];
yyy=512;xxx=512*2;
- count = 0;
- for (y = 0; y < yyy; y++)
+ int count = 0;
+ for (int y = 0; y < yyy; y++)
{
// the current palette is stored in the first 0x20 bytes of each row!
- int p;
-
- for (p=0;p<0x10;p++)
+ for (int p = 0; p < 0x10; p++)
{
- row_palette_data[p] = m_bitmapram[count+p];
-
- row_palette_data_as_rgb32_pen_data[p] = rgb_t( (row_palette_data[p] & 0x0f00)>>4, (row_palette_data[p] & 0x00f0)>>0, (row_palette_data[p] & 0x000f)<<4 );
-
+ row_palette_data[p] = m_bitmapram[count + p];
+ row_palette_data_as_rgb32_pen_data[p] = rgb_t(
+ pal4bit(row_palette_data[p] >> 8),
+ pal4bit(row_palette_data[p] >> 4),
+ pal4bit(row_palette_data[p] >> 0));
}
- for(x = 0; x < xxx; x++)
+ for (int x = 0; x < xxx; )
{
- {
- bitmap.pix32(y, x) = row_palette_data_as_rgb32_pen_data[(m_bitmapram[count] &0xf000)>>12];
- x++;
- bitmap.pix32(y, x) = row_palette_data_as_rgb32_pen_data[(m_bitmapram[count] &0x0f00)>>8];
- x++;
- bitmap.pix32(y, x) = row_palette_data_as_rgb32_pen_data[(m_bitmapram[count] &0x00f0)>>4];
- x++;
- bitmap.pix32(y, x) = row_palette_data_as_rgb32_pen_data[(m_bitmapram[count] &0x000f)>>0];
- }
+ bitmap.pix32(y, x) = row_palette_data_as_rgb32_pen_data[(m_bitmapram[count] &0xf000)>>12];
+ x++;
+ bitmap.pix32(y, x) = row_palette_data_as_rgb32_pen_data[(m_bitmapram[count] &0x0f00)>>8];
+ x++;
+ bitmap.pix32(y, x) = row_palette_data_as_rgb32_pen_data[(m_bitmapram[count] &0x00f0)>>4];
+ x++;
+ bitmap.pix32(y, x) = row_palette_data_as_rgb32_pen_data[(m_bitmapram[count] &0x000f)>>0];
+ x++;
count++;
}
@@ -87,13 +86,9 @@ void hotstuff_state::hotstuff_map(address_map &map)
map(0x600000, 0x600003).rw("scc1", FUNC(z80scc_device::ab_dc_r), FUNC(z80scc_device::ab_dc_w));
map(0x620000, 0x620003).rw("scc2", FUNC(z80scc_device::ab_dc_r), FUNC(z80scc_device::ab_dc_w));
- map(0x680000, 0x680001).lrw8("rtc_rw",
- [this](offs_t offset) {
- return m_rtc->read(offset^1);
- },
- [this](offs_t offset, u8 data) {
- m_rtc->write(offset^1, data);
- });
+ map(0x680000, 0x680001).lrw8(
+ NAME([this] (offs_t offset) { return m_rtc->read(offset^1); }),
+ NAME([this] (offs_t offset, u8 data) { m_rtc->write(offset^1, data); }));
map(0x980000, 0x9bffff).ram().share("bitmapram");
}
diff --git a/src/mame/drivers/hp16500.cpp b/src/mame/drivers/hp16500.cpp
index 00b7f368484..c1f3ade02ba 100644
--- a/src/mame/drivers/hp16500.cpp
+++ b/src/mame/drivers/hp16500.cpp
@@ -429,7 +429,7 @@ void hp16500_state::hp1650(machine_config &config)
crtc.set_screen("screen");
crtc.set_show_border_area(false);
crtc.set_char_width(8);
- crtc.set_update_row_callback(FUNC(hp16500_state::crtc_update_row_1650), this);
+ crtc.set_update_row_callback(FUNC(hp16500_state::crtc_update_row_1650));
crtc.out_vsync_callback().set(FUNC(hp16500_state::vsync_changed));
MC2661(config, "epci", 5000000);
@@ -452,7 +452,7 @@ void hp16500_state::hp1651(machine_config &config)
crtc.set_screen("screen");
crtc.set_show_border_area(false);
crtc.set_char_width(8);
- crtc.set_update_row_callback(FUNC(hp16500_state::crtc_update_row_1650), this);
+ crtc.set_update_row_callback(FUNC(hp16500_state::crtc_update_row_1650));
crtc.out_vsync_callback().set(FUNC(hp16500_state::vsync_changed));
MC2661(config, "epci", 5000000);
@@ -475,7 +475,7 @@ void hp16500_state::hp16500a(machine_config &config)
crtc.set_screen("screen");
crtc.set_show_border_area(false);
crtc.set_char_width(8);
- crtc.set_update_row_callback(FUNC(hp16500_state::crtc_update_row), this);
+ crtc.set_update_row_callback(FUNC(hp16500_state::crtc_update_row));
crtc.out_vsync_callback().set(FUNC(hp16500_state::vsync_changed));
SPEAKER(config, "lspeaker").front_left();
diff --git a/src/mame/drivers/hp64k.cpp b/src/mame/drivers/hp64k.cpp
index 39b03e51f67..c67fb7348f1 100644
--- a/src/mame/drivers/hp64k.cpp
+++ b/src/mame/drivers/hp64k.cpp
@@ -1394,7 +1394,7 @@ void hp64k_state::hp64k(machine_config &config)
I8275(config, m_crtc, 2729045);
m_crtc->set_screen("screen");
m_crtc->set_character_width(9);
- m_crtc->set_display_callback(FUNC(hp64k_state::crtc_display_pixels), this);
+ m_crtc->set_display_callback(FUNC(hp64k_state::crtc_display_pixels));
m_crtc->drq_wr_callback().set(FUNC(hp64k_state::hp64k_crtc_drq_w));
m_crtc->vrtc_wr_callback().set(FUNC(hp64k_state::hp64k_crtc_vrtc_w));
diff --git a/src/mame/drivers/hp700.cpp b/src/mame/drivers/hp700.cpp
index b62d26bda1b..7dea387a8ac 100644
--- a/src/mame/drivers/hp700.cpp
+++ b/src/mame/drivers/hp700.cpp
@@ -38,13 +38,13 @@ void hp700_state::mem_map(address_map &map)
map(0x20000, 0x2ffff).ram();
map(0x30000, 0x31fff).ram().share("nvram");
map(0x34000, 0x34000).nopr();
- map(0x38000, 0x38fff).lrw8("duart_rw",
- [this](offs_t offset) {
+ map(0x38000, 0x38fff).lrw8(
+ NAME([this] (offs_t offset) {
return m_duart->read(offset >> 8);
- },
- [this](offs_t offset, u8 data) {
+ }),
+ NAME([this] (offs_t offset, u8 data) {
m_duart->write(offset >> 8, data);
- });
+ }));
map(0xffff0, 0xfffff).rom().region("maincpu", 0x1fff0);
}
diff --git a/src/mame/drivers/hp9825.cpp b/src/mame/drivers/hp9825.cpp
index d1512fa31c8..021ae268e1b 100644
--- a/src/mame/drivers/hp9825.cpp
+++ b/src/mame/drivers/hp9825.cpp
@@ -206,8 +206,8 @@ void hp9825_state::device_reset()
// Then, set r/w handlers of all installed I/O cards
int sc;
- read16_delegate rhandler;
- write16_delegate whandler;
+ read16_delegate rhandler(*this);
+ write16_delegate whandler(*this);
for (unsigned i = 0; i < 3; i++) {
if ((sc = m_io_slot[ i ]->get_rw_handlers(rhandler , whandler)) >= 0) {
logerror("Install R/W handlers for slot %u @ SC = %d\n", i, sc);
@@ -648,10 +648,10 @@ void hp9825_state::hp9825_base(machine_config &config)
m_io_sys->flg().set(m_cpu , FUNC(hp_09825_67907_cpu_device::flag_w));
m_io_sys->dmar().set(m_cpu , FUNC(hp_09825_67907_cpu_device::dmar_w));
- TIMER(config , m_cursor_timer , 0).configure_generic(timer_device::expired_delegate(FUNC(hp9825_state::cursor_blink) , this));
+ TIMER(config , m_cursor_timer , 0).configure_generic(FUNC(hp9825_state::cursor_blink));
// Keyboard scan timer. A scan of the whole keyboard should take 2^14 KDP clocks.
- TIMER(config , "kb_timer" , 0).configure_periodic(timer_device::expired_delegate(FUNC(hp9825_state::kb_scan) , this) , attotime::from_ticks(16384 , KDP_CLOCK));
+ TIMER(config , "kb_timer" , 0).configure_periodic(FUNC(hp9825_state::kb_scan), attotime::from_ticks(16384 , KDP_CLOCK));
// Tape drive
HP9825_TAPE(config , m_tape , 0);
@@ -662,12 +662,12 @@ void hp9825_state::hp9825_base(machine_config &config)
// Printer
BITBANGER(config , m_prt_alpha_out , 0);
BITBANGER(config , m_prt_graph_out , 0);
- TIMER(config , m_prt_timer , 0).configure_generic(timer_device::expired_delegate(FUNC(hp9825_state::prt_timer) , this));
+ TIMER(config , m_prt_timer , 0).configure_generic(FUNC(hp9825_state::prt_timer));
// Beeper
SPEAKER(config, "mono").front_center();
BEEP(config, m_beeper, BEEPER_FREQ).add_route(ALL_OUTPUTS, "mono", 1.00);
- TIMER(config , m_beep_timer , 0).configure_generic(timer_device::expired_delegate(FUNC(hp9825_state::beep_timer) , this));
+ TIMER(config , m_beep_timer , 0).configure_generic(FUNC(hp9825_state::beep_timer));
// I/O slots
for (unsigned slot = 0; slot < 3; slot++) {
diff --git a/src/mame/drivers/hp9845.cpp b/src/mame/drivers/hp9845.cpp
index 287117f7a7f..9ee599a727b 100644
--- a/src/mame/drivers/hp9845.cpp
+++ b/src/mame/drivers/hp9845.cpp
@@ -473,8 +473,8 @@ void hp9845_base_state::device_reset()
// Then, set r/w handlers of all installed I/O cards
int sc;
- read16_delegate rhandler;
- write16_delegate whandler;
+ read16_delegate rhandler(*this);
+ write16_delegate whandler(*this);
for (unsigned i = 0; 4 > i; ++i) {
if ((sc = m_io_slot[i]->get_rw_handlers(rhandler , whandler)) >= 0) {
logerror("Install R/W handlers for slot %u @ SC = %d\n", i, sc);
diff --git a/src/mame/drivers/hp9k_3xx.cpp b/src/mame/drivers/hp9k_3xx.cpp
index cdee08704d2..e982d119ff4 100644
--- a/src/mame/drivers/hp9k_3xx.cpp
+++ b/src/mame/drivers/hp9k_3xx.cpp
@@ -224,7 +224,7 @@ void hp9k3xx_state::machine_reset()
{
auto *dio = subdevice<bus::hp_dio::dio16_device>("diobus");
if (dio)
- m_maincpu->set_reset_callback(write_line_delegate(FUNC(bus::hp_dio::dio16_device::reset_in), dio));
+ m_maincpu->set_reset_callback(*dio, FUNC(bus::hp_dio::dio16_device::reset_in));
}
void hp9k3xx_state::machine_start()
diff --git a/src/mame/drivers/hprot1.cpp b/src/mame/drivers/hprot1.cpp
index 64c198ac95d..ef4a75e0db6 100644
--- a/src/mame/drivers/hprot1.cpp
+++ b/src/mame/drivers/hprot1.cpp
@@ -269,7 +269,7 @@ void hprot1_state::hprot1(machine_config &config)
HD44780(config, m_lcdc, 0);
m_lcdc->set_lcd_size(2, 16);
- m_lcdc->set_pixel_update_cb(FUNC(hprot1_state::hprot1_pixel_update), this);
+ m_lcdc->set_pixel_update_cb(FUNC(hprot1_state::hprot1_pixel_update));
/* TODO: figure out which RTC chip is in use. */
diff --git a/src/mame/drivers/hunter16.cpp b/src/mame/drivers/hunter16.cpp
index efc8f0ebd69..1beda6a059f 100644
--- a/src/mame/drivers/hunter16.cpp
+++ b/src/mame/drivers/hunter16.cpp
@@ -244,7 +244,7 @@ void hunter16_state::hunter1680(machine_config &config)
m_cga->set_screen("screen");
m_cga->set_show_border_area(false);
m_cga->set_char_width(8);
- m_cga->set_update_row_callback(FUNC(hunter16_state::crtc_update_row), this);
+ m_cga->set_update_row_callback(FUNC(hunter16_state::crtc_update_row));
}
ROM_START( hunter16 )
diff --git a/src/mame/drivers/hvyunit.cpp b/src/mame/drivers/hvyunit.cpp
index 28990353c76..fc190ea2d75 100644
--- a/src/mame/drivers/hvyunit.cpp
+++ b/src/mame/drivers/hvyunit.cpp
@@ -207,7 +207,7 @@ TILE_GET_INFO_MEMBER(hvyunit_state::get_bg_tile_info)
void hvyunit_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(hvyunit_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(hvyunit_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
save_item(NAME(m_scrollx));
save_item(NAME(m_scrolly));
@@ -216,8 +216,8 @@ void hvyunit_state::video_start()
uint32_t hvyunit_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
-#define SX_POS 96
-#define SY_POS 0
+ constexpr int SX_POS = 96;
+ constexpr int SY_POS = 0;
m_bg_tilemap->set_scrollx(0, ((m_port0_data & 0x40) << 2) + m_scrollx + SX_POS); // TODO
m_bg_tilemap->set_scrolly(0, ((m_port0_data & 0x80) << 1) + m_scrolly + SY_POS); // TODO
diff --git a/src/mame/drivers/hx20.cpp b/src/mame/drivers/hx20.cpp
index 9bd4eca1ff8..924664f719b 100644
--- a/src/mame/drivers/hx20.cpp
+++ b/src/mame/drivers/hx20.cpp
@@ -941,7 +941,7 @@ void hx20_state::hx20(machine_config &config)
// optional rom
GENERIC_SOCKET(config, m_optrom, generic_plain_slot, "opt_rom", "bin,rom");
- m_optrom->set_device_load(FUNC(hx20_state::optrom_load), this);
+ m_optrom->set_device_load(FUNC(hx20_state::optrom_load));
// software lists
SOFTWARE_LIST(config, "hx20_opt_list").set_original("hx20_rom");
diff --git a/src/mame/drivers/hyprduel.cpp b/src/mame/drivers/hyprduel.cpp
index 3804f6c0fa8..b70a3010429 100644
--- a/src/mame/drivers/hyprduel.cpp
+++ b/src/mame/drivers/hyprduel.cpp
@@ -554,10 +554,10 @@ void hyprduel_state::init_hyprduel()
m_int_num = 0x02;
/* cpu synchronization (severe timings) */
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xc0040e, 0xc00411, write16_delegate(FUNC(hyprduel_state::hyprduel_cpusync_trigger1_w),this));
- m_subcpu->space(AS_PROGRAM).install_read_handler(0xc00408, 0xc00409, read16_delegate(FUNC(hyprduel_state::hyprduel_cpusync_trigger1_r),this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xc00408, 0xc00409, write16_delegate(FUNC(hyprduel_state::hyprduel_cpusync_trigger2_w),this));
- m_subcpu->space(AS_PROGRAM).install_read_handler(0xfff34c, 0xfff34d, read16_delegate(FUNC(hyprduel_state::hyprduel_cpusync_trigger2_r),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xc0040e, 0xc00411, write16_delegate(*this, FUNC(hyprduel_state::hyprduel_cpusync_trigger1_w)));
+ m_subcpu->space(AS_PROGRAM).install_read_handler(0xc00408, 0xc00409, read16_delegate(*this, FUNC(hyprduel_state::hyprduel_cpusync_trigger1_r)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xc00408, 0xc00409, write16_delegate(*this, FUNC(hyprduel_state::hyprduel_cpusync_trigger2_w)));
+ m_subcpu->space(AS_PROGRAM).install_read_handler(0xfff34c, 0xfff34d, read16_delegate(*this, FUNC(hyprduel_state::hyprduel_cpusync_trigger2_r)));
}
void hyprduel_state::init_magerror()
diff --git a/src/mame/drivers/i7000.cpp b/src/mame/drivers/i7000.cpp
index 92b83714880..cbcec9c34a4 100644
--- a/src/mame/drivers/i7000.cpp
+++ b/src/mame/drivers/i7000.cpp
@@ -238,7 +238,7 @@ void i7000_state::machine_start()
if (m_card->exists())
{
// 0x4000 - 0xbfff 32KB ROM
- program.install_read_handler(0x4000, 0xbfff, read8sm_delegate(FUNC(generic_slot_device::read_rom),(generic_slot_device*)m_card));
+ program.install_read_handler(0x4000, 0xbfff, read8sm_delegate(*m_card, FUNC(generic_slot_device::read_rom)));
}
}
@@ -326,7 +326,7 @@ TILE_GET_INFO_MEMBER(i7000_state::get_bg_tile_info)
void i7000_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(i7000_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 40, 25);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(i7000_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 40, 25);
}
uint32_t i7000_state::screen_update_i7000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
@@ -364,7 +364,7 @@ void i7000_state::i7000(machine_config &config)
crtc.set_screen("screen");
crtc.set_show_border_area(true);
crtc.set_char_width(8);
- crtc.set_on_update_addr_change_callback(FUNC(i7000_state::crtc_addr), this);
+ crtc.set_on_update_addr_change_callback(FUNC(i7000_state::crtc_addr));
/* sound hardware */
SPEAKER(config, "mono").front_center();
@@ -387,7 +387,7 @@ void i7000_state::i7000(machine_config &config)
kbdc.in_ctrl_callback().set_constant(1); // TODO: Ctrl key
/* Cartridge slot */
- GENERIC_CARTSLOT(config, "cardslot", generic_romram_plain_slot, "i7000_card", "rom").set_device_load(FUNC(i7000_state::card_load), this);
+ GENERIC_CARTSLOT(config, "cardslot", generic_romram_plain_slot, "i7000_card", "rom").set_device_load(FUNC(i7000_state::card_load));
/* Software lists */
SOFTWARE_LIST(config, "card_list").set_original("i7000_card");
diff --git a/src/mame/drivers/ibmpcjr.cpp b/src/mame/drivers/ibmpcjr.cpp
index c50c9e373b5..2f296a5e45c 100644
--- a/src/mame/drivers/ibmpcjr.cpp
+++ b/src/mame/drivers/ibmpcjr.cpp
@@ -666,8 +666,8 @@ void pcjr_state::ibmpcjr(machine_config &config)
m_keyboard->keypress().set(FUNC(pcjr_state::keyb_interrupt));
/* cartridge */
- GENERIC_CARTSLOT(config, "cartslot1", generic_plain_slot, "ibmpcjr_cart", "bin,jrc").set_device_load(FUNC(pcjr_state::cart1_load), this);
- GENERIC_CARTSLOT(config, "cartslot2", generic_plain_slot, "ibmpcjr_cart", "bin,jrc").set_device_load(FUNC(pcjr_state::cart2_load), this);
+ GENERIC_CARTSLOT(config, "cartslot1", generic_plain_slot, "ibmpcjr_cart", "bin,jrc").set_device_load(FUNC(pcjr_state::cart1_load));
+ GENERIC_CARTSLOT(config, "cartslot2", generic_plain_slot, "ibmpcjr_cart", "bin,jrc").set_device_load(FUNC(pcjr_state::cart2_load));
/* internal ram */
RAM(config, m_ram).set_default_size("640K").set_extra_options("128K, 256K, 512K");
diff --git a/src/mame/drivers/icatel.cpp b/src/mame/drivers/icatel.cpp
index 571c32c3fbc..980143a307e 100644
--- a/src/mame/drivers/icatel.cpp
+++ b/src/mame/drivers/icatel.cpp
@@ -279,7 +279,7 @@ void icatel_state::icatel(machine_config &config)
HD44780(config, m_lcdc, 0);
m_lcdc->set_lcd_size(2, 16);
- m_lcdc->set_pixel_update_cb(FUNC(icatel_state::icatel_pixel_update), this);
+ m_lcdc->set_pixel_update_cb(FUNC(icatel_state::icatel_pixel_update));
}
ROM_START( icatel )
diff --git a/src/mame/drivers/icebox.cpp b/src/mame/drivers/icebox.cpp
index 3a1c7599cd7..373eaa2f22c 100644
--- a/src/mame/drivers/icebox.cpp
+++ b/src/mame/drivers/icebox.cpp
@@ -209,10 +209,10 @@ void icebox_state::io_map(address_map &map)
map.unmap_value_high();
map(0xe0, 0xe1).rw(m_uart0, FUNC(i8251_device::read), FUNC(i8251_device::write));
map(0xe2, 0xe3).rw(m_uart1, FUNC(i8251_device::read), FUNC(i8251_device::write));
- map(0xe4, 0xe7).lrw8("fdc_usage",
- [this](offs_t offset) { return m_fdc->read(offset^3); },
- [this](offs_t offset, u8 data) { m_fdc->write(offset^3, data); });
- map(0xf1, 0xf1).lw8("port_F1", [this](u8 data) { port_f1_w(data); } );
+ map(0xe4, 0xe7).lrw8(
+ NAME([this] (offs_t offset) { return m_fdc->read(offset^3); }),
+ NAME([this] (offs_t offset, u8 data) { m_fdc->write(offset^3, data); }));
+ map(0xf1, 0xf1).lw8(NAME([this] (u8 data) { port_f1_w(data); }));
}
/* Input ports */
diff --git a/src/mame/drivers/icecold.cpp b/src/mame/drivers/icecold.cpp
index 7d09be7a758..bc618d4185a 100644
--- a/src/mame/drivers/icecold.cpp
+++ b/src/mame/drivers/icecold.cpp
@@ -392,10 +392,10 @@ void icecold_state::icecold(machine_config &config)
kbdc.in_rl_callback().set(FUNC(icecold_state::kbd_r)); // kbd RL lines
// 30Hz signal from CH-C of ay0
- TIMER(config, "sint_timer", 0).configure_periodic(timer_device::expired_delegate(FUNC(icecold_state::icecold_sint_timer), this), attotime::from_hz(30));
+ TIMER(config, "sint_timer", 0).configure_periodic(FUNC(icecold_state::icecold_sint_timer), attotime::from_hz(30));
// for update motors position
- TIMER(config, "motors_timer", 0).configure_periodic(timer_device::expired_delegate(FUNC(icecold_state::icecold_motors_timer), this), attotime::from_msec(50));
+ TIMER(config, "motors_timer", 0).configure_periodic(FUNC(icecold_state::icecold_motors_timer), attotime::from_msec(50));
// video hardware
config.set_default_layout(layout_icecold);
diff --git a/src/mame/drivers/igs009.cpp b/src/mame/drivers/igs009.cpp
index 39186763171..0d6ac64a551 100644
--- a/src/mame/drivers/igs009.cpp
+++ b/src/mame/drivers/igs009.cpp
@@ -281,13 +281,13 @@ WRITE8_MEMBER(igs009_state::fg_color_w)
void igs009_state::video_start()
{
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(igs009_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 0x80,0x20);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(igs009_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 0x80,0x20);
m_fg_tilemap->set_transparent_pen(0);
- m_reel1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(igs009_state::get_jingbell_reel1_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 128, 8);
- m_reel2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(igs009_state::get_jingbell_reel2_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 128, 8);
- m_reel3_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(igs009_state::get_jingbell_reel3_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 128, 8);
- m_reel4_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(igs009_state::get_jingbell_reel4_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 128, 8);
+ m_reel1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(igs009_state::get_jingbell_reel1_tile_info)),TILEMAP_SCAN_ROWS,8,32, 128, 8);
+ m_reel2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(igs009_state::get_jingbell_reel2_tile_info)),TILEMAP_SCAN_ROWS,8,32, 128, 8);
+ m_reel3_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(igs009_state::get_jingbell_reel3_tile_info)),TILEMAP_SCAN_ROWS,8,32, 128, 8);
+ m_reel4_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(igs009_state::get_jingbell_reel4_tile_info)),TILEMAP_SCAN_ROWS,8,32, 128, 8);
m_reel1_tilemap->set_scroll_cols(128);
m_reel2_tilemap->set_scroll_cols(128);
@@ -298,13 +298,13 @@ void igs009_state::video_start()
VIDEO_START_MEMBER(igs009_state,gp98)
{
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(igs009_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 0x80,0x20);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(igs009_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 0x80,0x20);
m_fg_tilemap->set_transparent_pen(0);
- m_reel1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(igs009_state::get_gp98_reel1_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 128, 8);
- m_reel2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(igs009_state::get_gp98_reel2_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 128, 8);
- m_reel3_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(igs009_state::get_gp98_reel3_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 128, 8);
- m_reel4_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(igs009_state::get_gp98_reel4_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 128, 8);
+ m_reel1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(igs009_state::get_gp98_reel1_tile_info)),TILEMAP_SCAN_ROWS,8,32, 128, 8);
+ m_reel2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(igs009_state::get_gp98_reel2_tile_info)),TILEMAP_SCAN_ROWS,8,32, 128, 8);
+ m_reel3_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(igs009_state::get_gp98_reel3_tile_info)),TILEMAP_SCAN_ROWS,8,32, 128, 8);
+ m_reel4_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(igs009_state::get_gp98_reel4_tile_info)),TILEMAP_SCAN_ROWS,8,32, 128, 8);
m_reel1_tilemap->set_scroll_cols(128);
m_reel2_tilemap->set_scroll_cols(128);
diff --git a/src/mame/drivers/igs011.cpp b/src/mame/drivers/igs011.cpp
index 21b5163779b..c1e8262bcd1 100644
--- a/src/mame/drivers/igs011.cpp
+++ b/src/mame/drivers/igs011.cpp
@@ -1211,8 +1211,8 @@ void igs011_state::prot_mem_range_set()
address_space &sp = m_maincpu->space(AS_PROGRAM);
// Add protection memory range
- sp.install_write_handler(m_prot1_addr + 0, m_prot1_addr + 7, write8sm_delegate(FUNC(igs011_state::igs011_prot1_w), this), 0xff00);
- sp.install_read_handler (m_prot1_addr + 8, m_prot1_addr + 9, read16smo_delegate(FUNC(igs011_state::igs011_prot1_r), this));
+ sp.install_write_handler(m_prot1_addr + 0, m_prot1_addr + 7, write8sm_delegate(*this, FUNC(igs011_state::igs011_prot1_w)), 0xff00);
+ sp.install_read_handler (m_prot1_addr + 8, m_prot1_addr + 9, read16smo_delegate(*this, FUNC(igs011_state::igs011_prot1_r)));
}
/*
READ16_MEMBER(igs011_state::igs011_prot_fake_r)
@@ -2179,7 +2179,7 @@ void igs011_state::init_drgnwrldv21()
drgnwrld_type2_decrypt();
drgnwrld_gfx_decrypt();
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xd4c0, 0xd4ff, read16smo_delegate(FUNC(igs011_state::drgnwrldv21_igs011_prot2_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xd4c0, 0xd4ff, read16smo_delegate(*this, FUNC(igs011_state::drgnwrldv21_igs011_prot2_r)));
/*
// PROTECTION CHECKS
// bp 32ee; bp 11ca8; bp 23d5e; bp 23fd0; bp 24170; bp 24348; bp 2454e; bp 246cc; bp 24922; bp 24b66; bp 24de2; bp 2502a; bp 25556; bp 269de; bp 2766a; bp 2a830
@@ -2263,7 +2263,7 @@ void igs011_state::init_drgnwrldv40k()
drgnwrldv40k_decrypt();
drgnwrld_gfx_decrypt();
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xd4c0, 0xd4ff, read16smo_delegate(FUNC(igs011_state::drgnwrldv40k_igs011_prot2_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xd4c0, 0xd4ff, read16smo_delegate(*this, FUNC(igs011_state::drgnwrldv40k_igs011_prot2_r)));
}
void igs011_state::init_drgnwrldv11h()
@@ -2327,7 +2327,7 @@ void igs011_state::init_dbc()
dbc_decrypt();
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x10600, 0x107ff, read16smo_delegate(FUNC(igs011_state::dbc_igs011_prot2_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x10600, 0x107ff, read16smo_delegate(*this, FUNC(igs011_state::dbc_igs011_prot2_r)));
/*
// PROTECTION CHECKS
rom[0x04c42/2] = 0x602e; // 004C42: 6604 bne 4c48 (rom test error otherwise)
@@ -2357,7 +2357,7 @@ void igs011_state::init_ryukobou()
ryukobou_decrypt();
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x10600, 0x107ff, read16smo_delegate(FUNC(igs011_state::ryukobou_igs011_prot2_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x10600, 0x107ff, read16smo_delegate(*this, FUNC(igs011_state::ryukobou_igs011_prot2_r)));
// PROTECTION CHECKS
// rom[0x2df68/2] = 0x4e75; // 02DF68: 4E56 FE00 link A6, #-$200 (fills palette with pink otherwise)
diff --git a/src/mame/drivers/igs017.cpp b/src/mame/drivers/igs017.cpp
index 0cd875582a4..7849ed274a8 100644
--- a/src/mame/drivers/igs017.cpp
+++ b/src/mame/drivers/igs017.cpp
@@ -1251,7 +1251,7 @@ void igs017_state::init_lhzb2()
lhzb2_patch_rom();
// install and configure protection device(s)
-// m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xda5610, 0xda5613, read16_delegate(FUNC(igs025_device::killbld_igs025_prot_r), (igs025_device*)m_igs025), write16_delegate(FUNC(igs025_device::killbld_igs025_prot_w), (igs025_device*)m_igs025));
+// m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xda5610, 0xda5613, read16_delegate(*m_igs025, FUNC(igs025_device::killbld_igs025_prot_r)), write16_delegate(*m_igs025, FUNC(igs025_device::killbld_igs025_prot_w)));
// m_igs025->m_kb_source_data = dw3_source_data;
// m_igs025->m_kb_source_data_offset = 0;
// m_igs025->m_kb_game_id = 0x00060000;
@@ -1424,7 +1424,7 @@ void igs017_state::init_slqz2()
slqz2_patch_rom();
// install and configure protection device(s)
-// m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xda5610, 0xda5613, read16_delegate(FUNC(igs025_device::killbld_igs025_prot_r), (igs025_device*)m_igs025), write16_delegate(FUNC(igs025_device::killbld_igs025_prot_w), (igs025_device*)m_igs025));
+// m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xda5610, 0xda5613, read16_delegate(*m_igs025, FUNC(igs025_device::killbld_igs025_prot_r)), write16_delegate(*m_igs025, FUNC(igs025_device::killbld_igs025_prot_w)));
// m_igs025->m_kb_source_data = dw3_source_data;
// m_igs025->m_kb_source_data_offset = 0;
// m_igs025->m_kb_game_id = 0x00060000;
@@ -1525,10 +1525,10 @@ void igs017_state::iqblocka_remap_addr_w(offs_t offset, u8 data)
// Add new memory ranges
address_space &prg_space = m_maincpu->space(AS_PROGRAM);
- prg_space.install_write_handler(m_remap_addr + 0x0, m_remap_addr + 0x0, write8smo_delegate(FUNC(igs_incdec_device::reset_w), &(*m_igs_incdec)));
- prg_space.install_write_handler(m_remap_addr + 0x1, m_remap_addr + 0x1, write8smo_delegate(FUNC(igs_incdec_device::dec_w), &(*m_igs_incdec)));
- prg_space.install_write_handler(m_remap_addr + 0x3, m_remap_addr + 0x3, write8smo_delegate(FUNC(igs_incdec_device::inc_w), &(*m_igs_incdec)));
- prg_space.install_read_handler (m_remap_addr + 0x5, m_remap_addr + 0x5, read8smo_delegate (FUNC(igs_incdec_device::val_r), &(*m_igs_incdec)));
+ prg_space.install_write_handler(m_remap_addr + 0x0, m_remap_addr + 0x0, write8smo_delegate(*m_igs_incdec, FUNC(igs_incdec_device::reset_w)));
+ prg_space.install_write_handler(m_remap_addr + 0x1, m_remap_addr + 0x1, write8smo_delegate(*m_igs_incdec, FUNC(igs_incdec_device::dec_w)));
+ prg_space.install_write_handler(m_remap_addr + 0x3, m_remap_addr + 0x3, write8smo_delegate(*m_igs_incdec, FUNC(igs_incdec_device::inc_w)));
+ prg_space.install_read_handler (m_remap_addr + 0x5, m_remap_addr + 0x5, read8smo_delegate (*m_igs_incdec, FUNC(igs_incdec_device::val_r)));
logerror("%s: incdec protection remapped at %04x\n", machine().describe_context(), m_remap_addr);
}
@@ -2254,11 +2254,11 @@ void igs017_state::lhzb2a_remap_addr_w(address_space &space, u16 data)
m_remap_addr = data & 0xff;
// Add new memory ranges
- space.install_write_handler (m_remap_addr * 0x10000 + 0x4001, m_remap_addr * 0x10000 + 0x4001, write8smo_delegate(FUNC(igs_bitswap_device::address_w), &(*m_igs_bitswap)));
- space.install_readwrite_handler(m_remap_addr * 0x10000 + 0x4003, m_remap_addr * 0x10000 + 0x4003, read8smo_delegate (FUNC(igs_bitswap_device::data_r), &(*m_igs_bitswap)), write8smo_delegate(FUNC(igs_bitswap_device::data_w), &(*m_igs_bitswap)));
+ space.install_write_handler (m_remap_addr * 0x10000 + 0x4001, m_remap_addr * 0x10000 + 0x4001, write8smo_delegate(*m_igs_bitswap, FUNC(igs_bitswap_device::address_w)));
+ space.install_readwrite_handler(m_remap_addr * 0x10000 + 0x4003, m_remap_addr * 0x10000 + 0x4003, read8smo_delegate (*m_igs_bitswap, FUNC(igs_bitswap_device::data_r)), write8smo_delegate(*m_igs_bitswap, FUNC(igs_bitswap_device::data_w)));
- space.install_read_handler (m_remap_addr * 0x10000 + 0x8000, m_remap_addr * 0x10000 + 0x8005, read16sm_delegate (FUNC(igs017_state::lhzb2a_input_r), this));
- space.install_write_handler (m_remap_addr * 0x10000 + 0xc000, m_remap_addr * 0x10000 + 0xc001, write16mo_delegate(FUNC(igs017_state::lhzb2a_remap_addr_w), this));
+ space.install_read_handler (m_remap_addr * 0x10000 + 0x8000, m_remap_addr * 0x10000 + 0x8005, read16sm_delegate (*this, FUNC(igs017_state::lhzb2a_input_r)));
+ space.install_write_handler (m_remap_addr * 0x10000 + 0xc000, m_remap_addr * 0x10000 + 0xc001, write16mo_delegate(*this, FUNC(igs017_state::lhzb2a_remap_addr_w)));
logerror("%s: inputs and protection remapped at %02xxxxx\n", machine().describe_context(), m_remap_addr);
}
@@ -3618,7 +3618,7 @@ void igs017_state::mgcs(machine_config &config)
m_screen->set_palette("igs017_igs031:palette");
IGS017_IGS031(config, m_igs017_igs031, 0);
- m_igs017_igs031->set_palette_scramble_cb(FUNC(igs017_state::mgcs_palette_bitswap), this);
+ m_igs017_igs031->set_palette_scramble_cb(FUNC(igs017_state::mgcs_palette_bitswap));
m_igs017_igs031->set_i8255_tag("ppi8255");
// sound
@@ -3645,7 +3645,7 @@ void igs017_state::lhzb2(machine_config &config)
// protection
IGS025(config, m_igs025, 0);
- m_igs025->set_external_cb(FUNC(igs017_state::igs025_to_igs022_callback), this);
+ m_igs025->set_external_cb(FUNC(igs017_state::igs025_to_igs022_callback));
IGS022(config, m_igs022, 0);
@@ -3659,7 +3659,7 @@ void igs017_state::lhzb2(machine_config &config)
m_screen->set_palette("igs017_igs031:palette");
IGS017_IGS031(config, m_igs017_igs031, 0);
- m_igs017_igs031->set_palette_scramble_cb(FUNC(igs017_state::lhzb2a_palette_bitswap), this);
+ m_igs017_igs031->set_palette_scramble_cb(FUNC(igs017_state::lhzb2a_palette_bitswap));
m_igs017_igs031->set_i8255_tag("ppi8255");
// sound
@@ -3708,7 +3708,7 @@ void igs017_state::lhzb2a(machine_config &config)
m_screen->set_palette("igs017_igs031:palette");
IGS017_IGS031(config, m_igs017_igs031, 0);
- m_igs017_igs031->set_palette_scramble_cb(FUNC(igs017_state::lhzb2a_palette_bitswap), this);
+ m_igs017_igs031->set_palette_scramble_cb(FUNC(igs017_state::lhzb2a_palette_bitswap));
// m_igs017_igs031->set_i8255_tag("ppi8255");
// sound
@@ -3735,7 +3735,7 @@ void igs017_state::slqz2(machine_config &config)
// protection
IGS025(config, m_igs025, 0);
- m_igs025->set_external_cb(FUNC(igs017_state::igs025_to_igs022_callback), this);
+ m_igs025->set_external_cb(FUNC(igs017_state::igs025_to_igs022_callback));
IGS022(config, m_igs022, 0);
@@ -3749,7 +3749,7 @@ void igs017_state::slqz2(machine_config &config)
m_screen->set_palette("igs017_igs031:palette");
IGS017_IGS031(config, m_igs017_igs031, 0);
- m_igs017_igs031->set_palette_scramble_cb(FUNC(igs017_state::slqz2_palette_bitswap), this);
+ m_igs017_igs031->set_palette_scramble_cb(FUNC(igs017_state::slqz2_palette_bitswap));
m_igs017_igs031->set_i8255_tag("ppi8255");
// sound
@@ -3861,7 +3861,7 @@ void igs017_state::tjsb(machine_config &config)
m_screen->set_palette("igs017_igs031:palette");
IGS017_IGS031(config, m_igs017_igs031, 0);
- m_igs017_igs031->set_palette_scramble_cb(FUNC(igs017_state::tjsb_palette_bitswap), this);
+ m_igs017_igs031->set_palette_scramble_cb(FUNC(igs017_state::tjsb_palette_bitswap));
m_igs017_igs031->set_i8255_tag("ppi8255");
// sound
diff --git a/src/mame/drivers/igspoker.cpp b/src/mame/drivers/igspoker.cpp
index 375103f79d0..6d16a897b6f 100644
--- a/src/mame/drivers/igspoker.cpp
+++ b/src/mame/drivers/igspoker.cpp
@@ -243,8 +243,8 @@ WRITE8_MEMBER(igspoker_state::fg_color_w)
void igspoker_state::video_start()
{
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(igspoker_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(igspoker_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(igspoker_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(igspoker_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
m_fg_tilemap->set_transparent_pen(0);
}
@@ -263,7 +263,7 @@ uint32_t igspoker_state::screen_update_igs_video(screen_device &screen, bitmap_i
VIDEO_START_MEMBER(igspoker_state,cpokerpk)
{
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(igspoker_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(igspoker_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
}
uint32_t igspoker_state::screen_update_cpokerpk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
diff --git a/src/mame/drivers/instruct.cpp b/src/mame/drivers/instruct.cpp
index 18800bda6cb..3dd09c9c9d2 100644
--- a/src/mame/drivers/instruct.cpp
+++ b/src/mame/drivers/instruct.cpp
@@ -435,7 +435,7 @@ void instruct_state::instruct(machine_config &config)
config.set_default_layout(layout_instruct);
/* quickload */
- QUICKLOAD(config, "quickload", "pgm", attotime::from_seconds(1)).set_load_callback(FUNC(instruct_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "pgm", attotime::from_seconds(1)).set_load_callback(FUNC(instruct_state::quickload_cb));
SPEAKER(config, "mono").front_center();
diff --git a/src/mame/drivers/intellec4.cpp b/src/mame/drivers/intellec4.cpp
index ab4fb38a922..8ea1f468107 100644
--- a/src/mame/drivers/intellec4.cpp
+++ b/src/mame/drivers/intellec4.cpp
@@ -1133,7 +1133,7 @@ void mod4_state::mod4(machine_config &config)
cpu.set_ram_status_map(&mod4_state::intellec4_ram_status);
cpu.set_ram_ports_map(&mod4_state::intellec4_ram_ports);
cpu.set_program_memory_map(&mod4_state::intellec4_program_memory);
- cpu.set_bus_cycle_cb(FUNC(mod4_state::bus_cycle), this);
+ cpu.set_bus_cycle_cb(FUNC(mod4_state::bus_cycle));
cpu.sync_cb().set(m_bus, FUNC(bus::intellec4::univ_bus_device::sync_in));
m_bus->test_out_cb().set(FUNC(mod4_state::bus_test));
@@ -1359,7 +1359,7 @@ void mod40_state::mod40(machine_config &config)
cpu.set_ram_status_map(&mod40_state::intellec4_ram_status);
cpu.set_ram_ports_map(&mod40_state::intellec4_ram_ports);
cpu.set_program_memory_map(&mod40_state::intellec4_program_memory);
- cpu.set_bus_cycle_cb(FUNC(mod40_state::bus_cycle), this);
+ cpu.set_bus_cycle_cb(FUNC(mod40_state::bus_cycle));
cpu.sync_cb().set(m_bus, FUNC(bus::intellec4::univ_bus_device::sync_in));
cpu.stp_ack_cb().set(FUNC(mod40_state::stp_ack));
diff --git a/src/mame/drivers/intellect02.cpp b/src/mame/drivers/intellect02.cpp
index a448b2f3cee..3a2b9f731f0 100644
--- a/src/mame/drivers/intellect02.cpp
+++ b/src/mame/drivers/intellect02.cpp
@@ -255,7 +255,7 @@ void intel02_state::intel02(machine_config &config)
/* cartridge */
GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "intellect02", "bin");
- m_cart->set_device_load(FUNC(intel02_state::cart_load), this);
+ m_cart->set_device_load(FUNC(intel02_state::cart_load));
m_cart->set_must_be_loaded(true);
SOFTWARE_LIST(config, "cart_list").set_original("intellect02");
diff --git a/src/mame/drivers/interpro.cpp b/src/mame/drivers/interpro.cpp
index aa3ba92913e..bbed9c9023b 100644
--- a/src/mame/drivers/interpro.cpp
+++ b/src/mame/drivers/interpro.cpp
@@ -532,13 +532,9 @@ void interpro_state::interpro_common_map(address_map &map)
map(0x7f000400, 0x7f00040f).rw(m_scc1, FUNC(z80scc_device::ab_dc_r), FUNC(z80scc_device::ab_dc_w)).umask32(0x000000ff);
map(0x7f000410, 0x7f00041f).rw(m_scc2, FUNC(z80scc_device::ab_dc_r), FUNC(z80scc_device::ab_dc_w)).umask32(0x000000ff);
- map(0x7f000500, 0x7f000503).lrw8("rtc_rw",
- [this](offs_t offset) {
- return m_rtc->read(offset^1);
- },
- [this](offs_t offset, u8 data) {
- m_rtc->write(offset^1, data);
- }).umask32(0x000000ff);
+ map(0x7f000500, 0x7f000503).lrw8(
+ NAME([this] (offs_t offset) { return m_rtc->read(offset^1); }),
+ NAME([this] (offs_t offset, u8 data) { m_rtc->write(offset^1, data); })).umask32(0x000000ff);
map(0x7f000600, 0x7f000600).w(m_rtc, FUNC(mc146818_device::write));
// the system board id prom
diff --git a/src/mame/drivers/inufuku.cpp b/src/mame/drivers/inufuku.cpp
index afa9dbebeb7..5cb19f1bbf6 100644
--- a/src/mame/drivers/inufuku.cpp
+++ b/src/mame/drivers/inufuku.cpp
@@ -359,7 +359,7 @@ void inufuku_state::inufuku(machine_config &config)
VSYSTEM_SPR(config, m_spr, 0);
m_spr->set_offsets(0, 1); // reference videos confirm at least the +1 against tilemaps in 3on3dunk (the highscore header text and black box are meant to be 1 pixel misaligned, although there is currently a priority bug there too)
m_spr->set_pdraw(true);
- m_spr->set_tile_indirect_cb(FUNC(inufuku_state::inufuku_tile_callback), this);
+ m_spr->set_tile_indirect_cb(FUNC(inufuku_state::inufuku_tile_callback));
m_spr->set_gfx_region(2);
m_spr->set_gfxdecode_tag(m_gfxdecode);
diff --git a/src/mame/drivers/ipds.cpp b/src/mame/drivers/ipds.cpp
index e6e9663d9f0..84829a4dd35 100644
--- a/src/mame/drivers/ipds.cpp
+++ b/src/mame/drivers/ipds.cpp
@@ -153,7 +153,7 @@ void ipds_state::ipds(machine_config &config)
I8275(config, m_crtc, XTAL(19'660'800) / 4);
m_crtc->set_character_width(6);
- m_crtc->set_display_callback(FUNC(ipds_state::crtc_display_pixels), this);
+ m_crtc->set_display_callback(FUNC(ipds_state::crtc_display_pixels));
generic_keyboard_device &keyboard(GENERIC_KEYBOARD(config, "keyboard", 0));
keyboard.set_keyboard_callback(FUNC(ipds_state::kbd_put));
diff --git a/src/mame/drivers/iqblock.cpp b/src/mame/drivers/iqblock.cpp
index 5370a943e52..3b7c86eb1d1 100644
--- a/src/mame/drivers/iqblock.cpp
+++ b/src/mame/drivers/iqblock.cpp
@@ -487,7 +487,7 @@ void iqblock_state::init_iqblock()
if ((i & 0x0090) == 0x0010) rom[i] ^= 0x20;
}
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xfe26, 0xfe26, write8_delegate(FUNC(iqblock_state::iqblock_prot_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xfe26, 0xfe26, write8_delegate(*this, FUNC(iqblock_state::iqblock_prot_w)));
m_video_type=1;
}
@@ -502,7 +502,7 @@ void iqblock_state::init_grndtour()
if ((i & 0x0060) == 0x0040) rom[i] ^= 0x20;
}
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xfe39, 0xfe39, write8_delegate(FUNC(iqblock_state::grndtour_prot_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xfe39, 0xfe39, write8_delegate(*this, FUNC(iqblock_state::grndtour_prot_w)));
m_video_type=0;
}
diff --git a/src/mame/drivers/is48x.cpp b/src/mame/drivers/is48x.cpp
index 0bdd2809890..6de9194a742 100644
--- a/src/mame/drivers/is48x.cpp
+++ b/src/mame/drivers/is48x.cpp
@@ -94,7 +94,7 @@ void is48x_state::is482(machine_config &config)
m_crtc->set_char_width(14); // guess
m_crtc->set_screen("screen");
m_crtc->set_show_border_area(false);
- m_crtc->set_update_row_callback(FUNC(is48x_state::update_row), this);
+ m_crtc->set_update_row_callback(FUNC(is48x_state::update_row));
}
ROM_START(is482) // "IS-488-A" on case
diff --git a/src/mame/drivers/istrebiteli.cpp b/src/mame/drivers/istrebiteli.cpp
index 2121be3167b..2fe3a802067 100644
--- a/src/mame/drivers/istrebiteli.cpp
+++ b/src/mame/drivers/istrebiteli.cpp
@@ -272,14 +272,14 @@ void istrebiteli_state::init_moto()
void istrebiteli_state::video_start()
{
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(istrebiteli_state::get_tile_info), this), TILEMAP_SCAN_ROWS,
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(istrebiteli_state::get_tile_info)), TILEMAP_SCAN_ROWS,
8, 16, 16, 1);
m_tilemap->set_scrolldx(96, 96);
}
VIDEO_START_MEMBER(istrebiteli_state, moto)
{
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(istrebiteli_state::get_tile_info), this), TILEMAP_SCAN_ROWS,
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(istrebiteli_state::get_tile_info)), TILEMAP_SCAN_ROWS,
8, 16, 16, 1);
m_tilemap->set_scrolldx(96, 96);
m_tilemap->set_scrolldy(8, 8);
diff --git a/src/mame/drivers/itech32.cpp b/src/mame/drivers/itech32.cpp
index 0e8d9c77dad..3cd7a902dbf 100644
--- a/src/mame/drivers/itech32.cpp
+++ b/src/mame/drivers/itech32.cpp
@@ -4447,8 +4447,8 @@ void drivedge_state::driver_init()
m_vram_height = 1024;
m_planes = 1;
- m_dsp[0]->space(AS_PROGRAM).install_read_handler(0x8382, 0x8382, read32_delegate(FUNC(drivedge_state::tms1_speedup_r),this));
- m_dsp[1]->space(AS_PROGRAM).install_read_handler(0x8382, 0x8382, read32_delegate(FUNC(drivedge_state::tms2_speedup_r),this));
+ m_dsp[0]->space(AS_PROGRAM).install_read_handler(0x8382, 0x8382, read32_delegate(*this, FUNC(drivedge_state::tms1_speedup_r)));
+ m_dsp[1]->space(AS_PROGRAM).install_read_handler(0x8382, 0x8382, read32_delegate(*this, FUNC(drivedge_state::tms2_speedup_r)));
}
@@ -4464,10 +4464,10 @@ void itech32_state::init_wcbowl()
m_vram_height = 1024;
m_planes = 1;
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x680000, 0x680001, read8smo_delegate(FUNC(itech32_state::trackball_r),this), 0x00ff);
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x680000, 0x680001, read8smo_delegate(*this, FUNC(itech32_state::trackball_r)), 0x00ff);
m_maincpu->space(AS_PROGRAM).nop_read(0x578000, 0x57ffff);
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x680080, 0x680081, read16smo_delegate(FUNC(itech32_state::wcbowl_prot_result_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x680080, 0x680081, read16smo_delegate(*this, FUNC(itech32_state::wcbowl_prot_result_r)));
m_maincpu->space(AS_PROGRAM).nop_write(0x680080, 0x680081);
}
@@ -4484,11 +4484,11 @@ void itech32_state::init_wcbowlj()
m_vram_height = 1024;
m_planes = 1;
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x680000, 0x680001, read8smo_delegate(FUNC(itech32_state::trackball_r),this), 0x00ff);
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x680040, 0x680041, read8smo_delegate(FUNC(itech32_state::trackball_p2_r),this), 0x00ff);
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x680000, 0x680001, read8smo_delegate(*this, FUNC(itech32_state::trackball_r)), 0x00ff);
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x680040, 0x680041, read8smo_delegate(*this, FUNC(itech32_state::trackball_p2_r)), 0x00ff);
m_maincpu->space(AS_PROGRAM).nop_read(0x578000, 0x57ffff);
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x680080, 0x680081, read16smo_delegate(FUNC(itech32_state::wcbowl_prot_result_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x680080, 0x680081, read16smo_delegate(*this, FUNC(itech32_state::wcbowl_prot_result_r)));
m_maincpu->space(AS_PROGRAM).nop_write(0x680080, 0x680081);
}
@@ -4501,8 +4501,8 @@ void itech32_state::init_sftm_common(int prot_addr)
m_itech020_prot_address = prot_addr;
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x300000, 0x300003, write8smo_delegate(FUNC(itech32_state::color_w<0>),this), 0x000000ff);
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x380000, 0x380003, write8smo_delegate(FUNC(itech32_state::color_w<1>),this), 0x000000ff);
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x300000, 0x300003, write8smo_delegate(*this, FUNC(itech32_state::color_w<0>)), 0x000000ff);
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x380000, 0x380003, write8smo_delegate(*this, FUNC(itech32_state::color_w<1>)), 0x000000ff);
}
@@ -4531,10 +4531,10 @@ void itech32_state::init_shuffle_bowl_common(int prot_addr)
m_itech020_prot_address = prot_addr;
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x300000, 0x300003, write8smo_delegate(FUNC(itech32_state::color_w<0>),this), 0x000000ff);
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x380000, 0x380003, write8smo_delegate(FUNC(itech32_state::color_w<1>),this), 0x000000ff);
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x180800, 0x180803, read32smo_delegate(FUNC(itech32_state::trackball32_4bit_p1_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x181000, 0x181003, read32smo_delegate(FUNC(itech32_state::trackball32_4bit_p2_r),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x300000, 0x300003, write8smo_delegate(*this, FUNC(itech32_state::color_w<0>)), 0x000000ff);
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x380000, 0x380003, write8smo_delegate(*this, FUNC(itech32_state::color_w<1>)), 0x000000ff);
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x180800, 0x180803, read32smo_delegate(*this, FUNC(itech32_state::trackball32_4bit_p1_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x181000, 0x181003, read32smo_delegate(*this, FUNC(itech32_state::trackball32_4bit_p2_r)));
}
@@ -4552,7 +4552,7 @@ void itech32_state::init_wcbowln()
void itech32_state::install_timekeeper()
{
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x681000, 0x6817ff, read8sm_delegate(FUNC(timekeeper_device::read), &(*m_timekeeper)), write8sm_delegate(FUNC(timekeeper_device::write), &(*m_timekeeper)), 0xffffffff);
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x681000, 0x6817ff, read8sm_delegate(*m_timekeeper, FUNC(timekeeper_device::read)), write8sm_delegate(*m_timekeeper, FUNC(timekeeper_device::write)), 0xffffffff);
}
void itech32_state::init_wcbowlt()
@@ -4582,7 +4582,7 @@ void itech32_state::init_gt3d()
Hacked versions of this PCB have been found with GT97
through GTClassic. This is _NOT_ a factory modification
*/
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x200000, 0x200003, read16smo_delegate(FUNC(itech32_state::trackball_8bit_r),this), 0x0000ffff);
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x200000, 0x200003, read16smo_delegate(*this, FUNC(itech32_state::trackball_8bit_r)), 0x0000ffff);
init_gt_common();
}
@@ -4595,8 +4595,8 @@ void itech32_state::init_aama()
board share the same sound CPU code and sample ROMs.
This board has all versions of GT for it, GT3D through GTClassic
*/
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x180800, 0x180803, read32smo_delegate(FUNC(itech32_state::trackball32_4bit_p1_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x181000, 0x181003, read32smo_delegate(FUNC(itech32_state::trackball32_4bit_p2_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x180800, 0x180803, read32smo_delegate(*this, FUNC(itech32_state::trackball32_4bit_p1_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x181000, 0x181003, read32smo_delegate(*this, FUNC(itech32_state::trackball32_4bit_p2_r)));
init_gt_common();
}
@@ -4620,7 +4620,7 @@ void itech32_state::init_s_ver()
board: GT97 v1.21S, GT98, GT99, GT2K & GT Classic Versions 1.00S
Trackball info is read through 200202 (actually 200203).
*/
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x200200, 0x200203, read32smo_delegate(FUNC(itech32_state::trackball32_4bit_p1_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x200200, 0x200203, read32smo_delegate(*this, FUNC(itech32_state::trackball32_4bit_p1_r)));
init_gt_common();
}
@@ -4634,7 +4634,7 @@ void itech32_state::init_gt3dl()
Player 1 trackball read through 200003
Player 2 trackball read through 200002
*/
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x200000, 0x200003, read32smo_delegate(FUNC(itech32_state::trackball32_4bit_combined_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x200000, 0x200003, read32smo_delegate(*this, FUNC(itech32_state::trackball32_4bit_combined_r)));
init_gt_common();
}
@@ -4642,7 +4642,7 @@ void itech32_state::init_gt3dl()
void itech32_state::init_gt2kp()
{
/* a little extra protection */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x680000, 0x680003, read32smo_delegate(FUNC(itech32_state::gt2kp_prot_result_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x680000, 0x680003, read32smo_delegate(*this, FUNC(itech32_state::gt2kp_prot_result_r)));
init_aama();
/* The protection code is:
@@ -4663,7 +4663,7 @@ Label1 bne.s Label1 ; Infinite loop if result isn't 0x01
void itech32_state::init_gtclasscp()
{
/* a little extra protection */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x680000, 0x680003, read32smo_delegate(FUNC(itech32_state::gtclass_prot_result_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x680000, 0x680003, read32smo_delegate(*this, FUNC(itech32_state::gtclass_prot_result_r)));
init_aama();
/* The protection code is:
diff --git a/src/mame/drivers/itech8.cpp b/src/mame/drivers/itech8.cpp
index dd1bfe80380..2a519599aaf 100644
--- a/src/mame/drivers/itech8.cpp
+++ b/src/mame/drivers/itech8.cpp
@@ -961,7 +961,7 @@ void itech8_state::ninclown_map(address_map &map)
map(0x100080, 0x100080).w(m_soundlatch, FUNC(generic_latch_8_device::write));
map(0x100100, 0x100100).w(FUNC(itech8_state::grom_bank_w));
map(0x100100, 0x100101).portr("40");
- map(0x100180, 0x100180).lw8("page_inv_w", [this](u8 data){ page_w(~data); } );
+ map(0x100180, 0x100180).lw8(NAME([this](u8 data){ page_w(~data); }));
map(0x100180, 0x100181).portr("60");
map(0x100240, 0x100240).w(m_tms34061, FUNC(tms34061_device::latch_w));
map(0x100280, 0x100281).portr("80").nopw();
diff --git a/src/mame/drivers/itt1700.cpp b/src/mame/drivers/itt1700.cpp
index 0af62feb5fa..ec993830f2d 100644
--- a/src/mame/drivers/itt1700.cpp
+++ b/src/mame/drivers/itt1700.cpp
@@ -108,7 +108,7 @@ void itt1700_state::itt1700(machine_config &config)
crtc.set_char_width(9);
crtc.set_screen("screen");
crtc.set_show_border_area(false);
- crtc.set_update_row_callback(FUNC(itt1700_state::update_row), this);
+ crtc.set_update_row_callback(FUNC(itt1700_state::update_row));
}
ROM_START(itt1700)
diff --git a/src/mame/drivers/jackie.cpp b/src/mame/drivers/jackie.cpp
index 36281367b71..ac6495c2519 100644
--- a/src/mame/drivers/jackie.cpp
+++ b/src/mame/drivers/jackie.cpp
@@ -165,14 +165,14 @@ TILE_GET_INFO_MEMBER(jackie_state::get_reel_tile_info)
void jackie_state::video_start()
{
- m_reel_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(jackie_state::get_reel_tile_info<0>),this),TILEMAP_SCAN_ROWS,8,32, 64, 8);
- m_reel_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(jackie_state::get_reel_tile_info<1>),this),TILEMAP_SCAN_ROWS,8,32, 64, 8);
- m_reel_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(jackie_state::get_reel_tile_info<2>),this),TILEMAP_SCAN_ROWS,8,32, 64, 8);
+ m_reel_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(jackie_state::get_reel_tile_info<0>)), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
+ m_reel_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(jackie_state::get_reel_tile_info<1>)), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
+ m_reel_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(jackie_state::get_reel_tile_info<2>)), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
for (int i = 0; i < 3; i++)
m_reel_tilemap[i]->set_scroll_cols(64);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(jackie_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(jackie_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_fg_tilemap->set_transparent_pen(0);
}
diff --git a/src/mame/drivers/jaguar.cpp b/src/mame/drivers/jaguar.cpp
index 982492dbbd5..60c80ee87f3 100644
--- a/src/mame/drivers/jaguar.cpp
+++ b/src/mame/drivers/jaguar.cpp
@@ -1137,7 +1137,7 @@ void jaguar_state::jaguar_map(address_map &map)
void jaguar_state::cpu_space_map(address_map &map)
{
map(0xfffff0, 0xffffff).m(m_maincpu, FUNC(m68000_base_device::autovectors_map));
- map(0xfffffd, 0xfffffd).lr8("level6", []() -> u8 { return 0x40; });
+ map(0xfffffd, 0xfffffd).lr8([] () -> u8 { return 0x40; }, "level6");
}
/*
@@ -1349,7 +1349,7 @@ void jaguar_state::r3000_map(address_map &map)
map(0x04f03000, 0x04f03fff).mirror(0x00008000).ram().share("gpuram");
map(0x04f10000, 0x04f103ff).rw(FUNC(jaguar_state::jerry_regs_r), FUNC(jaguar_state::jerry_regs_w));
map(0x04f16000, 0x04f1600b).r(FUNC(jaguar_state::cojag_gun_input_r)); // GPI02
- map(0x04f17000, 0x04f17003).lr16("4f17000", [this]() { return uint16_t(m_system->read()); }); // GPI03
+ map(0x04f17000, 0x04f17003).lr16(NAME([this] () { return uint16_t(m_system->read()); })); // GPI03
map(0x04f17800, 0x04f17803).w(FUNC(jaguar_state::latch_w)); // GPI04
map(0x04f17c00, 0x04f17c03).portr("P1_P2"); // GPI05
map(0x04f1a100, 0x04f1a13f).rw(FUNC(jaguar_state::dspctrl_r), FUNC(jaguar_state::dspctrl_w));
@@ -1393,7 +1393,7 @@ void jaguar_state::m68020_map(address_map &map)
map(0xf03000, 0xf03fff).mirror(0x008000).ram().share("gpuram");
map(0xf10000, 0xf103ff).rw(FUNC(jaguar_state::jerry_regs_r), FUNC(jaguar_state::jerry_regs_w));
map(0xf16000, 0xf1600b).r(FUNC(jaguar_state::cojag_gun_input_r)); // GPI02
- map(0xf17000, 0xf17003).lr16("f17000", [this]() { return uint16_t(m_system->read()); }); // GPI03
+ map(0xf17000, 0xf17003).lr16(NAME([this] () { return uint16_t(m_system->read()); })); // GPI03
// map(0xf17800, 0xf17803).w(FUNC(jaguar_state::(latch_w)); // GPI04
map(0xf17c00, 0xf17c03).portr("P1_P2"); // GPI05
map(0xf1a100, 0xf1a13f).rw(FUNC(jaguar_state::dspctrl_r), FUNC(jaguar_state::dspctrl_w));
@@ -1920,11 +1920,11 @@ void jaguar_state::jaguar(machine_config &config)
vref.add_route(0, "rdac", -1.0, DAC_VREF_NEG_INPUT);
/* quickload */
- QUICKLOAD(config, "quickload", "abs,bin,cof,jag,prg").set_load_callback(FUNC(jaguar_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "abs,bin,cof,jag,prg").set_load_callback(FUNC(jaguar_state::quickload_cb));
/* cartridge */
generic_cartslot_device &cartslot(GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "jaguar_cart", "j64,rom,bin"));
- cartslot.set_device_load(FUNC(jaguar_state::cart_load), this);
+ cartslot.set_device_load(FUNC(jaguar_state::cart_load));
/* software lists */
SOFTWARE_LIST(config, "cart_list").set_original("jaguar");
@@ -2585,10 +2585,10 @@ void jaguar_state::cojag_common_init(uint16_t gpu_jump_offs, uint16_t spin_pc)
/* install synchronization hooks for GPU */
if (m_is_r3000)
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x04f0b000 + gpu_jump_offs, 0x04f0b003 + gpu_jump_offs, write32_delegate(FUNC(jaguar_state::gpu_jump_w), this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x04f0b000 + gpu_jump_offs, 0x04f0b003 + gpu_jump_offs, write32_delegate(*this, FUNC(jaguar_state::gpu_jump_w)));
else
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xf0b000 + gpu_jump_offs, 0xf0b003 + gpu_jump_offs, write32_delegate(FUNC(jaguar_state::gpu_jump_w), this));
- m_gpu->space(AS_PROGRAM).install_read_handler(0xf03000 + gpu_jump_offs, 0xf03003 + gpu_jump_offs, read32_delegate(FUNC(jaguar_state::gpu_jump_r), this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xf0b000 + gpu_jump_offs, 0xf0b003 + gpu_jump_offs, write32_delegate(*this, FUNC(jaguar_state::gpu_jump_w)));
+ m_gpu->space(AS_PROGRAM).install_read_handler(0xf03000 + gpu_jump_offs, 0xf03003 + gpu_jump_offs, read32_delegate(*this, FUNC(jaguar_state::gpu_jump_r)));
m_gpu_jump_address = &m_gpu_ram[gpu_jump_offs/4];
m_gpu_spin_pc = 0xf03000 + spin_pc;
@@ -2606,7 +2606,7 @@ void jaguar_state::init_area51a()
#if ENABLE_SPEEDUP_HACKS
/* install speedup for main CPU */
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xa02030, 0xa02033, write32_delegate(FUNC(jaguar_state::area51_main_speedup_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xa02030, 0xa02033, write32_delegate(*this, FUNC(jaguar_state::area51_main_speedup_w)));
m_main_speedup = m_mainram + 0x2030/4;
#endif
}
@@ -2619,7 +2619,7 @@ void jaguar_state::init_area51()
#if ENABLE_SPEEDUP_HACKS
/* install speedup for main CPU */
m_main_speedup_max_cycles = 120;
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x100062e8, 0x100062eb, read32_delegate(FUNC(jaguar_state::cojagr3k_main_speedup_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x100062e8, 0x100062eb, read32_delegate(*this, FUNC(jaguar_state::cojagr3k_main_speedup_r)));
m_main_speedup = m_mainram + 0x62e8/4;
#endif
}
@@ -2635,7 +2635,7 @@ void jaguar_state::init_maxforce()
#if ENABLE_SPEEDUP_HACKS
/* install speedup for main CPU */
m_main_speedup_max_cycles = 120;
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x1000865c, 0x1000865f, read32_delegate(FUNC(jaguar_state::cojagr3k_main_speedup_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x1000865c, 0x1000865f, read32_delegate(*this, FUNC(jaguar_state::cojagr3k_main_speedup_r)));
m_main_speedup = m_mainram + 0x865c/4;
#endif
}
@@ -2651,7 +2651,7 @@ void jaguar_state::init_area51mx()
#if ENABLE_SPEEDUP_HACKS
/* install speedup for main CPU */
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xa19550, 0xa19557, write32_delegate(FUNC(jaguar_state::area51mx_main_speedup_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xa19550, 0xa19557, write32_delegate(*this, FUNC(jaguar_state::area51mx_main_speedup_w)));
m_main_speedup = m_mainram + 0x19550/4;
#endif
}
@@ -2668,7 +2668,7 @@ void jaguar_state::init_a51mxr3k()
#if ENABLE_SPEEDUP_HACKS
/* install speedup for main CPU */
m_main_speedup_max_cycles = 120;
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x10006f0c, 0x10006f0f, read32_delegate(FUNC(jaguar_state::cojagr3k_main_speedup_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x10006f0c, 0x10006f0f, read32_delegate(*this, FUNC(jaguar_state::cojagr3k_main_speedup_r)));
m_main_speedup = m_mainram + 0x6f0c/4;
#endif
}
@@ -2682,7 +2682,7 @@ void jaguar_state::init_fishfren()
#if ENABLE_SPEEDUP_HACKS
/* install speedup for main CPU */
m_main_speedup_max_cycles = 200;
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x10021b60, 0x10021b63, read32_delegate(FUNC(jaguar_state::cojagr3k_main_speedup_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x10021b60, 0x10021b63, read32_delegate(*this, FUNC(jaguar_state::cojagr3k_main_speedup_r)));
m_main_speedup = m_mainram + 0x21b60/4;
#endif
}
@@ -2696,10 +2696,10 @@ void jaguar_state::init_freeze_common(offs_t main_speedup_addr)
/* install speedup for main CPU */
m_main_speedup_max_cycles = 200;
if (main_speedup_addr != 0) {
- m_maincpu->space(AS_PROGRAM).install_read_handler(main_speedup_addr, main_speedup_addr + 3, read32_delegate(FUNC(jaguar_state::cojagr3k_main_speedup_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(main_speedup_addr, main_speedup_addr + 3, read32_delegate(*this, FUNC(jaguar_state::cojagr3k_main_speedup_r)));
m_main_speedup = m_mainram + (main_speedup_addr - 0x10000000)/4;
}
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x0400d900, 0x0400d900 + 3, read32_delegate(FUNC(jaguar_state::main_gpu_wait_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x0400d900, 0x0400d900 + 3, read32_delegate(*this, FUNC(jaguar_state::main_gpu_wait_r)));
m_main_gpu_wait = m_shared_ram + 0xd900/4;
#endif
}
@@ -2719,7 +2719,7 @@ void jaguar_state::init_vcircle()
#if ENABLE_SPEEDUP_HACKS
/* install speedup for main CPU */
m_main_speedup_max_cycles = 50;
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x12005b34, 0x12005b37, read32_delegate(FUNC(jaguar_state::cojagr3k_main_speedup_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x12005b34, 0x12005b37, read32_delegate(*this, FUNC(jaguar_state::cojagr3k_main_speedup_r)));
m_main_speedup = m_mainram + 0x5b34/4;
m_main_speedup = m_mainram2 + 0x5b34/4;
#endif
diff --git a/src/mame/drivers/jalmah.cpp b/src/mame/drivers/jalmah.cpp
index c0b4fd50698..a3bc1ea1c65 100644
--- a/src/mame/drivers/jalmah.cpp
+++ b/src/mame/drivers/jalmah.cpp
@@ -302,10 +302,10 @@ void urashima_state::video_start()
{
jalmah_state::video_start();
- m_layer[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(urashima_state::get_tile_info_urashima<0>),this),tilemap_mapper_delegate(FUNC(urashima_state::range0_16x16),this),16,16,256,32);
+ m_layer[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(urashima_state::get_tile_info_urashima<0>)), tilemap_mapper_delegate(*this, FUNC(urashima_state::range0_16x16)), 16,16,256,32);
// range confirmed with title screen transition in attract mode
// also it's confirmed to be 64 x 64 with 2nd tier girls stripping
- m_layer[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(urashima_state::get_tile_info_urashima<1>),this),tilemap_mapper_delegate(FUNC(urashima_state::range3_8x8),this),8,8,64,64);
+ m_layer[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(urashima_state::get_tile_info_urashima<1>)), tilemap_mapper_delegate(*this, FUNC(urashima_state::range3_8x8)), 8,8,64,64);
for(int i=0;i<2;i++)
m_layer[i]->set_transparent_pen(15);
@@ -1701,53 +1701,53 @@ READ16_MEMBER(jalmah_state::suchiesp_mcu_r)
void jalmah_state::init_urashima()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x80004, 0x80005, read16_delegate(FUNC(jalmah_state::urashima_mcu_r), this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x80012, 0x80013, write16_delegate(FUNC(jalmah_state::urashima_mcu_w), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x80004, 0x80005, read16_delegate(*this, FUNC(jalmah_state::urashima_mcu_r)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x80012, 0x80013, write16_delegate(*this, FUNC(jalmah_state::urashima_mcu_w)));
m_mcu_prg = URASHIMA_MCU;
}
void jalmah_state::init_daireika()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x80004, 0x80005, read16_delegate(FUNC(jalmah_state::daireika_mcu_r), this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x80012, 0x80013, write16_delegate(FUNC(jalmah_state::daireika_mcu_w), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x80004, 0x80005, read16_delegate(*this, FUNC(jalmah_state::daireika_mcu_r)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x80012, 0x80013, write16_delegate(*this, FUNC(jalmah_state::daireika_mcu_w)));
m_mcu_prg = DAIREIKA_MCU;
}
void jalmah_state::init_mjzoomin()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x80004, 0x80005, read16_delegate(FUNC(jalmah_state::mjzoomin_mcu_r), this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x80012, 0x80013, write16_delegate(FUNC(jalmah_state::mjzoomin_mcu_w), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x80004, 0x80005, read16_delegate(*this, FUNC(jalmah_state::mjzoomin_mcu_r)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x80012, 0x80013, write16_delegate(*this, FUNC(jalmah_state::mjzoomin_mcu_w)));
m_mcu_prg = MJZOOMIN_MCU;
}
void jalmah_state::init_kakumei()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x80004, 0x80005, read16_delegate(FUNC(jalmah_state::kakumei_mcu_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x80004, 0x80005, read16_delegate(*this, FUNC(jalmah_state::kakumei_mcu_r)));
m_mcu_prg = KAKUMEI_MCU;
}
void jalmah_state::init_kakumei2()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x80004, 0x80005, read16_delegate(FUNC(jalmah_state::kakumei_mcu_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x80004, 0x80005, read16_delegate(*this, FUNC(jalmah_state::kakumei_mcu_r)));
m_mcu_prg = KAKUMEI2_MCU;
}
void jalmah_state::init_suchiesp()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x80004, 0x80005, read16_delegate(FUNC(jalmah_state::suchiesp_mcu_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x80004, 0x80005, read16_delegate(*this, FUNC(jalmah_state::suchiesp_mcu_r)));
m_mcu_prg = SUCHIESP_MCU;
}
/*First version of the MCU*/
GAME( 1989, urashima, 0, urashima, urashima, urashima_state, init_urashima, ROT0, "UPL", "Otogizoushi Urashima Mahjong (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION )
-GAME( 1989, daireika, 0, jalmahv1, daireika, jalmah_state, init_daireika, ROT0, "Jaleco / NMK", "Mahjong Daireikai (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION )
-GAME( 1990, mjzoomin, 0, jalmahv1, mjzoomin, jalmah_state, init_mjzoomin, ROT0, "Jaleco", "Mahjong Channel Zoom In (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION )
+GAME( 1989, daireika, 0, jalmahv1, daireika, jalmah_state, init_daireika, ROT0, "Jaleco / NMK", "Mahjong Daireikai (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION )
+GAME( 1990, mjzoomin, 0, jalmahv1, mjzoomin, jalmah_state, init_mjzoomin, ROT0, "Jaleco", "Mahjong Channel Zoom In (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION )
/*Second version of the MCU*/
GAME( 1990, kakumei, 0, jalmah, kakumei, jalmah_state, init_kakumei, ROT0, "Jaleco", "Mahjong Kakumei (Japan)", MACHINE_IMPERFECT_GRAPHICS )
GAME( 1992, kakumei2, 0, jalmah, kakumei2, jalmah_state, init_kakumei2, ROT0, "Jaleco", "Mahjong Kakumei 2 - Princess League (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_UNEMULATED_PROTECTION )
diff --git a/src/mame/drivers/jangou.cpp b/src/mame/drivers/jangou.cpp
index 35a57d77769..c30e06ba736 100644
--- a/src/mame/drivers/jangou.cpp
+++ b/src/mame/drivers/jangou.cpp
@@ -1272,7 +1272,7 @@ READ8_MEMBER(jangou_state::jngolady_rng_r)
void jangou_state::init_jngolady()
{
- m_nsc->space(AS_PROGRAM).install_read_handler(0x08, 0x08, read8_delegate(FUNC(jangou_state::jngolady_rng_r),this) );
+ m_nsc->space(AS_PROGRAM).install_read_handler(0x08, 0x08, read8_delegate(*this, FUNC(jangou_state::jngolady_rng_r)));
}
void jangou_state::init_luckygrl()
diff --git a/src/mame/drivers/jazz.cpp b/src/mame/drivers/jazz.cpp
index 33349c84d71..e603218b24c 100644
--- a/src/mame/drivers/jazz.cpp
+++ b/src/mame/drivers/jazz.cpp
@@ -85,8 +85,8 @@ void jazz_state::jazz_common_map(address_map &map)
map(0x1fc00000, 0x1fc3ffff).r(m_flash, FUNC(amd_28f020_device::read));
// NOTE: defaults to console on serial1 if no video rom found
- map(0x60000000, 0x6000013f).lr8("video_rom",
- [](offs_t offset)
+ map(0x60000000, 0x6000013f).lr8(
+ [] (offs_t offset)
{
/*
* Board_Identifier, PROM_Stride, PROM_Width, PROM_Size
@@ -129,10 +129,10 @@ void jazz_state::jazz_common_map(address_map &map)
};
return bogus_g364[offset];
- }).umask64(0xff);
+ }, "bogus_g364_r").umask64(0xff);
map(0x60080000, 0x60081fff).m(m_cvc, FUNC(g364_device::map));
- map(0x60180000, 0x60180007).lw32("g364_reset", [this](u32 data) { m_cvc->reset(); });
+ map(0x60180000, 0x60180007).lw32([this] (u32 data) { m_cvc->reset(); }, "g364_reset");
map(0x80000000, 0x80000fff).m(m_mct_adr, FUNC(jazz_mct_adr_device::map));
@@ -142,23 +142,24 @@ void jazz_state::jazz_common_map(address_map &map)
// LE: only reads 4000
// BE: read 400d, write 400d, write 400c
- map(0x80004000, 0x8000400f).lrw8("rtc",
- [this](offs_t offset) { return m_rtc->read(1); },
- [this](offs_t offset, u8 data) { m_rtc->write(1, data); }).umask64(0xff);
+ map(0x80004000, 0x8000400f).lrw8(
+ NAME([this] (offs_t offset) { return m_rtc->read(1); }),
+ NAME([this] (offs_t offset, u8 data) { m_rtc->write(1, data); })).umask64(0xff);
map(0x80005000, 0x80005007).rw(m_kbdc, FUNC(ps2_keyboard_controller_device::data_r), FUNC(ps2_keyboard_controller_device::data_w)).umask64(0x00ff);
map(0x80005000, 0x80005007).rw(m_kbdc, FUNC(ps2_keyboard_controller_device::status_r), FUNC(ps2_keyboard_controller_device::command_w)).umask64(0xff00);
map(0x80006000, 0x80006007).rw(m_ace[0], FUNC(ns16550_device::ins8250_r), FUNC(ns16550_device::ins8250_w));
map(0x80007000, 0x80007007).rw(m_ace[1], FUNC(ns16550_device::ins8250_r), FUNC(ns16550_device::ins8250_w));
map(0x80008000, 0x80008007).rw(m_lpt, FUNC(pc_lpt_device::read), FUNC(pc_lpt_device::write)).umask64(0xffffffff);
map(0x80009000, 0x8000afff).ram().share("nvram"); // 9000-9fff unprotected/a000-afff protected?
- map(0x8000b000, 0x8000b007).lr8("mac",
- [](offs_t offset)
- {
- // mac address and checksum
- static u8 const mac[] = { 0x00, 0x00, 0x6b, 0x12, 0x34, 0x56, 0x00, 0xf7 };
+ map(0x8000b000, 0x8000b007).lr8(
+ [] (offs_t offset)
+ {
+ // mac address and checksum
+ static u8 const mac[] = { 0x00, 0x00, 0x6b, 0x12, 0x34, 0x56, 0x00, 0xf7 };
- return mac[offset];
- });
+ return mac[offset];
+ },
+ "mac");
// 3 4k pages of nvram: read/write, protected, read-only
// last page holds ethernet mac and checksum in bytes 0-7
@@ -167,13 +168,12 @@ void jazz_state::jazz_common_map(address_map &map)
map(0x8000d600, 0x8000d607).nopw();
map(0x8000f000, 0x8000f007).lrw8(
- "led",
- [this]() { return m_led; },
- [this](u8 data)
- {
- logerror("led 0x%02x (%s)\n", data, machine().describe_context());
- m_led = data;
- }).umask64(0xff);
+ NAME([this] () { return m_led; }),
+ NAME([this] (u8 data)
+ {
+ logerror("led 0x%02x (%s)\n", data, machine().describe_context());
+ m_led = data;
+ })).umask64(0xff);
// lots of byte data written to 800
//map(0x800e0000, 0x800fffff).m() // dram config
diff --git a/src/mame/drivers/jchan.cpp b/src/mame/drivers/jchan.cpp
index 98c91324f27..5a8394bf767 100644
--- a/src/mame/drivers/jchan.cpp
+++ b/src/mame/drivers/jchan.cpp
@@ -709,8 +709,8 @@ ROM_END
void jchan_state::init_jchan()
{
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x403ffe, 0x403fff, write16_delegate(FUNC(jchan_state::main2sub_cmd_w),this));
- m_subcpu->space(AS_PROGRAM).install_write_handler(0x400000, 0x400001, write16_delegate(FUNC(jchan_state::sub2main_cmd_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x403ffe, 0x403fff, write16_delegate(*this, FUNC(jchan_state::main2sub_cmd_w)));
+ m_subcpu->space(AS_PROGRAM).install_write_handler(0x400000, 0x400001, write16_delegate(*this, FUNC(jchan_state::sub2main_cmd_w)));
}
diff --git a/src/mame/drivers/jclub2.cpp b/src/mame/drivers/jclub2.cpp
index 30019b05df8..94468ef42fc 100644
--- a/src/mame/drivers/jclub2.cpp
+++ b/src/mame/drivers/jclub2.cpp
@@ -401,8 +401,8 @@ void darkhors_state::video_start()
{
common_state::video_start();
- m_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(darkhors_state::get_tile_info_0),this), TILEMAP_SCAN_ROWS,16,16, 0x40,0x40);
- m_tmap2= &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(darkhors_state::get_tile_info_1),this), TILEMAP_SCAN_ROWS,16,16, 0x40,0x40);
+ m_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(darkhors_state::get_tile_info_0)), TILEMAP_SCAN_ROWS, 16,16, 0x40,0x40);
+ m_tmap2= &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(darkhors_state::get_tile_info_1)), TILEMAP_SCAN_ROWS, 16,16, 0x40,0x40);
m_tmap->set_transparent_pen(0);
m_tmap2->set_transparent_pen(0);
diff --git a/src/mame/drivers/jensen.cpp b/src/mame/drivers/jensen.cpp
index 3d044e4a5d9..691669a5652 100644
--- a/src/mame/drivers/jensen.cpp
+++ b/src/mame/drivers/jensen.cpp
@@ -54,46 +54,46 @@ void jensen_state::local_memory(address_map &map)
void jensen_state::local_io(address_map &map)
{
map(0x00000000, 0x0000001f); // EISA INTA cycle
- map(0x80000000, 0x9fffffff).lr8("feprom0", [this](offs_t offset) { return m_feprom[0]->read(offset >> 9); });
- map(0xa0000000, 0xbfffffff).lr8("feprom1", [this](offs_t offset) { return m_feprom[1]->read(offset >> 9); });
+ map(0x80000000, 0x9fffffff).lr8(NAME([this] (offs_t offset) { return m_feprom[0]->read(offset >> 9); }));
+ map(0xa0000000, 0xbfffffff).lr8(NAME([this] (offs_t offset) { return m_feprom[1]->read(offset >> 9); }));
//map(0xc0000000, 0xc1ffffff); // vl82c106 bits 24:9 -> vlsi 15:0 i.e. >> 9
- map(0xd0000000, 0xd0000000).lrw8("hae", [this]() { return m_hae; }, [this](u8 data) { m_hae = data & 0x7f; });
- map(0xe0000000, 0xe0000000).lrw8("sysctl", [this]() { return m_sysctl; }, [this](u8 data) { m_sysctl = data; logerror("led %x\n", data & 0xf); });
- map(0xf0000000, 0xf0000000).lrw8("spare", [this]() { return m_spare; }, [this](u8 data) { m_spare = data; });
+ map(0xd0000000, 0xd0000000).lrw8(NAME([this] () { return m_hae; }), NAME([this] (u8 data) { m_hae = data & 0x7f; }));
+ map(0xe0000000, 0xe0000000).lrw8(NAME([this] () { return m_sysctl; }), NAME([this] (u8 data) { m_sysctl = data; logerror("led %x\n", data & 0xf); }));
+ map(0xf0000000, 0xf0000000).lrw8(NAME([this] () { return m_spare; }), NAME([this] (u8 data) { m_spare = data; }));
}
void jensen_state::eisa_memory(address_map &map)
{
- map(0x00000000, 0xffffffff).lrw8("eisa_memory",
- [this](offs_t offset)
- {
- LOG("eisa_memory_r 0x%08x\n", (u32(m_hae) << 25) | (offset >> 7));
-
- return 0;
- },
- [this](offs_t offset, u8 data)
- {
- LOG("eisa_memory_w 0x%08x data 0x%02x\n", (u32(m_hae) << 25) | (offset >> 7), data);
- });
+ map(0x00000000, 0xffffffff).lrw8(
+ NAME([this] (offs_t offset)
+ {
+ LOG("eisa_memory_r 0x%08x\n", (u32(m_hae) << 25) | (offset >> 7));
+
+ return 0;
+ }),
+ NAME([this] (offs_t offset, u8 data)
+ {
+ LOG("eisa_memory_w 0x%08x data 0x%02x\n", (u32(m_hae) << 25) | (offset >> 7), data);
+ }));
}
void jensen_state::eisa_io(address_map &map)
{
- map(0x00000000, 0xffffffff).lrw8("eisa_io",
- [this](offs_t offset)
- {
- LOG("eisa_io_r offset 0x%08x address 0x%08x count %d (%s)\n", offset,
- (u32(m_hae) << 25) | (offset >> 7), (offset >> 5) & 3, machine().describe_context());
-
- return 0;
- },
- [this](offs_t offset, u8 data)
- {
- LOG("eisa_io_w offset 0x%08x address 0x%08x count %d data 0x%02x (%s)\n",
- offset, (u32(m_hae) << 25) | (offset >> 7), (offset >> 5) & 3, data, machine().describe_context());
- });
+ map(0x00000000, 0xffffffff).lrw8(
+ NAME([this] (offs_t offset)
+ {
+ LOG("eisa_io_r offset 0x%08x address 0x%08x count %d (%s)\n", offset,
+ (u32(m_hae) << 25) | (offset >> 7), (offset >> 5) & 3, machine().describe_context());
+
+ return 0;
+ }),
+ NAME([this] (offs_t offset, u8 data)
+ {
+ LOG("eisa_io_w offset 0x%08x address 0x%08x count %d data 0x%02x (%s)\n",
+ offset, (u32(m_hae) << 25) | (offset >> 7), (offset >> 5) & 3, data, machine().describe_context());
+ }));
}
void jensen_state::jensen(machine_config &config)
diff --git a/src/mame/drivers/jokrwild.cpp b/src/mame/drivers/jokrwild.cpp
index bce2a8014f9..69886589d94 100644
--- a/src/mame/drivers/jokrwild.cpp
+++ b/src/mame/drivers/jokrwild.cpp
@@ -152,7 +152,7 @@ TILE_GET_INFO_MEMBER(jokrwild_state::get_bg_tile_info)
void jokrwild_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(jokrwild_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 24, 26);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(jokrwild_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 24, 26);
}
uint32_t jokrwild_state::screen_update_jokrwild(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
diff --git a/src/mame/drivers/jollyjgr.cpp b/src/mame/drivers/jollyjgr.cpp
index 668790c38d7..0ec83f5abde 100644
--- a/src/mame/drivers/jollyjgr.cpp
+++ b/src/mame/drivers/jollyjgr.cpp
@@ -491,7 +491,7 @@ TILE_GET_INFO_MEMBER(jollyjgr_state::get_bg_tile_info)
void jollyjgr_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(jollyjgr_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(jollyjgr_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_bg_tilemap->set_transparent_pen(0);
m_bg_tilemap->set_scroll_cols(32);
diff --git a/src/mame/drivers/joystand.cpp b/src/mame/drivers/joystand.cpp
index 9830771e820..ff55bed33c2 100644
--- a/src/mame/drivers/joystand.cpp
+++ b/src/mame/drivers/joystand.cpp
@@ -308,8 +308,8 @@ WRITE16_MEMBER(joystand_state::bg15_1_w)
void joystand_state::video_start()
{
- m_bg1_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(joystand_state::get_bg1_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 0x40, 0x20);
- m_bg2_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(joystand_state::get_bg2_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 0x40, 0x40);
+ m_bg1_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(joystand_state::get_bg1_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 0x40, 0x20);
+ m_bg2_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(joystand_state::get_bg2_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 0x40, 0x40);
m_bg1_tmap->set_transparent_pen(0xf);
m_bg2_tmap->set_transparent_pen(0xf);
diff --git a/src/mame/drivers/jr100.cpp b/src/mame/drivers/jr100.cpp
index 2d444617639..842c0d20607 100644
--- a/src/mame/drivers/jr100.cpp
+++ b/src/mame/drivers/jr100.cpp
@@ -401,7 +401,7 @@ void jr100_state::jr100(machine_config &config)
m_cassette->add_route(ALL_OUTPUTS, "mono", 0.05);
/* quickload */
- QUICKLOAD(config, "quickload", "prg", attotime::from_seconds(2)).set_load_callback(FUNC(jr100_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "prg", attotime::from_seconds(2)).set_load_callback(FUNC(jr100_state::quickload_cb));
}
diff --git a/src/mame/drivers/jtc.cpp b/src/mame/drivers/jtc.cpp
index db9e50d17b9..47e3b5627c6 100644
--- a/src/mame/drivers/jtc.cpp
+++ b/src/mame/drivers/jtc.cpp
@@ -831,7 +831,7 @@ void jtc_state::basic(machine_config &config)
m_centronics->busy_handler().set(FUNC(jtc_state::write_centronics_busy));
/* quickload */
- QUICKLOAD(config, "quickload", "jtc,bin", attotime::from_seconds(2)).set_load_callback(FUNC(jtc_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "jtc,bin", attotime::from_seconds(2)).set_load_callback(FUNC(jtc_state::quickload_cb));
}
void jtc_state::jtc(machine_config &config)
diff --git a/src/mame/drivers/jubilee.cpp b/src/mame/drivers/jubilee.cpp
index ab49044d7ba..9fb8ce5b444 100644
--- a/src/mame/drivers/jubilee.cpp
+++ b/src/mame/drivers/jubilee.cpp
@@ -281,7 +281,7 @@ TILE_GET_INFO_MEMBER(jubilee_state::get_bg_tile_info)
void jubilee_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(jubilee_state::get_bg_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(jubilee_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_bg_tilemap->set_scrolldx(8, 0); /* guess */
}
diff --git a/src/mame/drivers/juicebox.cpp b/src/mame/drivers/juicebox.cpp
index 5c512abc9c7..42f8a75e891 100644
--- a/src/mame/drivers/juicebox.cpp
+++ b/src/mame/drivers/juicebox.cpp
@@ -263,23 +263,23 @@ void juicebox_state::machine_start()
smc_init();
- space.install_readwrite_handler(0x01c00000, 0x01c0000b, read32_delegate(FUNC(s3c44b0_device::cpuwrap_r), &(*m_s3c44b0)), write32_delegate(FUNC(s3c44b0_device::cpuwrap_w), &(*m_s3c44b0)));
- space.install_readwrite_handler(0x01d00000, 0x01d0002b, read32_delegate(FUNC(s3c44b0_device::uart_0_r), &(*m_s3c44b0)), write32_delegate(FUNC(s3c44b0_device::uart_0_w), &(*m_s3c44b0)));
- space.install_readwrite_handler(0x01d04000, 0x01d0402b, read32_delegate(FUNC(s3c44b0_device::uart_1_r), &(*m_s3c44b0)), write32_delegate(FUNC(s3c44b0_device::uart_1_w), &(*m_s3c44b0)));
- space.install_readwrite_handler(0x01d14000, 0x01d14013, read32_delegate(FUNC(s3c44b0_device::sio_r), &(*m_s3c44b0)), write32_delegate(FUNC(s3c44b0_device::sio_w), &(*m_s3c44b0)));
- space.install_readwrite_handler(0x01d18000, 0x01d18013, read32_delegate(FUNC(s3c44b0_device::iis_r), &(*m_s3c44b0)), write32_delegate(FUNC(s3c44b0_device::iis_w), &(*m_s3c44b0)));
- space.install_readwrite_handler(0x01d20000, 0x01d20057, read32_delegate(FUNC(s3c44b0_device::gpio_r), &(*m_s3c44b0)), write32_delegate(FUNC(s3c44b0_device::gpio_w), &(*m_s3c44b0)));
- space.install_readwrite_handler(0x01d30000, 0x01d3000b, read32_delegate(FUNC(s3c44b0_device::wdt_r), &(*m_s3c44b0)), write32_delegate(FUNC(s3c44b0_device::wdt_w), &(*m_s3c44b0)));
- space.install_readwrite_handler(0x01d40000, 0x01d4000b, read32_delegate(FUNC(s3c44b0_device::adc_r), &(*m_s3c44b0)), write32_delegate(FUNC(s3c44b0_device::adc_w), &(*m_s3c44b0)));
- space.install_readwrite_handler(0x01d50000, 0x01d5004f, read32_delegate(FUNC(s3c44b0_device::pwm_r), &(*m_s3c44b0)), write32_delegate(FUNC(s3c44b0_device::pwm_w), &(*m_s3c44b0)));
- space.install_readwrite_handler(0x01d60000, 0x01d6000f, read32_delegate(FUNC(s3c44b0_device::iic_r), &(*m_s3c44b0)), write32_delegate(FUNC(s3c44b0_device::iic_w), &(*m_s3c44b0)));
- space.install_readwrite_handler(0x01d80000, 0x01d8000f, read32_delegate(FUNC(s3c44b0_device::clkpow_r), &(*m_s3c44b0)), write32_delegate(FUNC(s3c44b0_device::clkpow_w), &(*m_s3c44b0)));
- space.install_readwrite_handler(0x01e00000, 0x01e0003f, read32_delegate(FUNC(s3c44b0_device::irq_r), &(*m_s3c44b0)), write32_delegate(FUNC(s3c44b0_device::irq_w), &(*m_s3c44b0)));
- space.install_readwrite_handler(0x01e80000, 0x01e8001b, read32_delegate(FUNC(s3c44b0_device::zdma_0_r), &(*m_s3c44b0)), write32_delegate(FUNC(s3c44b0_device::zdma_0_w), &(*m_s3c44b0)));
- space.install_readwrite_handler(0x01e80020, 0x01e8003b, read32_delegate(FUNC(s3c44b0_device::zdma_1_r), &(*m_s3c44b0)), write32_delegate(FUNC(s3c44b0_device::zdma_1_w), &(*m_s3c44b0)));
- space.install_readwrite_handler(0x01f00000, 0x01f00047, read32_delegate(FUNC(s3c44b0_device::lcd_r), &(*m_s3c44b0)), write32_delegate(FUNC(s3c44b0_device::lcd_w), &(*m_s3c44b0)));
- space.install_readwrite_handler(0x01f80000, 0x01f8001b, read32_delegate(FUNC(s3c44b0_device::bdma_0_r), &(*m_s3c44b0)), write32_delegate(FUNC(s3c44b0_device::bdma_0_w), &(*m_s3c44b0)));
- space.install_readwrite_handler(0x01f80020, 0x01f8003b, read32_delegate(FUNC(s3c44b0_device::bdma_1_r), &(*m_s3c44b0)), write32_delegate(FUNC(s3c44b0_device::bdma_1_w), &(*m_s3c44b0)));
+ space.install_readwrite_handler(0x01c00000, 0x01c0000b, read32_delegate(*m_s3c44b0, FUNC(s3c44b0_device::cpuwrap_r)), write32_delegate(*m_s3c44b0, FUNC(s3c44b0_device::cpuwrap_w)));
+ space.install_readwrite_handler(0x01d00000, 0x01d0002b, read32_delegate(*m_s3c44b0, FUNC(s3c44b0_device::uart_0_r)), write32_delegate(*m_s3c44b0, FUNC(s3c44b0_device::uart_0_w)));
+ space.install_readwrite_handler(0x01d04000, 0x01d0402b, read32_delegate(*m_s3c44b0, FUNC(s3c44b0_device::uart_1_r)), write32_delegate(*m_s3c44b0, FUNC(s3c44b0_device::uart_1_w)));
+ space.install_readwrite_handler(0x01d14000, 0x01d14013, read32_delegate(*m_s3c44b0, FUNC(s3c44b0_device::sio_r)), write32_delegate(*m_s3c44b0, FUNC(s3c44b0_device::sio_w)));
+ space.install_readwrite_handler(0x01d18000, 0x01d18013, read32_delegate(*m_s3c44b0, FUNC(s3c44b0_device::iis_r)), write32_delegate(*m_s3c44b0, FUNC(s3c44b0_device::iis_w)));
+ space.install_readwrite_handler(0x01d20000, 0x01d20057, read32_delegate(*m_s3c44b0, FUNC(s3c44b0_device::gpio_r)), write32_delegate(*m_s3c44b0, FUNC(s3c44b0_device::gpio_w)));
+ space.install_readwrite_handler(0x01d30000, 0x01d3000b, read32_delegate(*m_s3c44b0, FUNC(s3c44b0_device::wdt_r)), write32_delegate(*m_s3c44b0, FUNC(s3c44b0_device::wdt_w)));
+ space.install_readwrite_handler(0x01d40000, 0x01d4000b, read32_delegate(*m_s3c44b0, FUNC(s3c44b0_device::adc_r)), write32_delegate(*m_s3c44b0, FUNC(s3c44b0_device::adc_w)));
+ space.install_readwrite_handler(0x01d50000, 0x01d5004f, read32_delegate(*m_s3c44b0, FUNC(s3c44b0_device::pwm_r)), write32_delegate(*m_s3c44b0, FUNC(s3c44b0_device::pwm_w)));
+ space.install_readwrite_handler(0x01d60000, 0x01d6000f, read32_delegate(*m_s3c44b0, FUNC(s3c44b0_device::iic_r)), write32_delegate(*m_s3c44b0, FUNC(s3c44b0_device::iic_w)));
+ space.install_readwrite_handler(0x01d80000, 0x01d8000f, read32_delegate(*m_s3c44b0, FUNC(s3c44b0_device::clkpow_r)), write32_delegate(*m_s3c44b0, FUNC(s3c44b0_device::clkpow_w)));
+ space.install_readwrite_handler(0x01e00000, 0x01e0003f, read32_delegate(*m_s3c44b0, FUNC(s3c44b0_device::irq_r)), write32_delegate(*m_s3c44b0, FUNC(s3c44b0_device::irq_w)));
+ space.install_readwrite_handler(0x01e80000, 0x01e8001b, read32_delegate(*m_s3c44b0, FUNC(s3c44b0_device::zdma_0_r)), write32_delegate(*m_s3c44b0, FUNC(s3c44b0_device::zdma_0_w)));
+ space.install_readwrite_handler(0x01e80020, 0x01e8003b, read32_delegate(*m_s3c44b0, FUNC(s3c44b0_device::zdma_1_r)), write32_delegate(*m_s3c44b0, FUNC(s3c44b0_device::zdma_1_w)));
+ space.install_readwrite_handler(0x01f00000, 0x01f00047, read32_delegate(*m_s3c44b0, FUNC(s3c44b0_device::lcd_r)), write32_delegate(*m_s3c44b0, FUNC(s3c44b0_device::lcd_w)));
+ space.install_readwrite_handler(0x01f80000, 0x01f8001b, read32_delegate(*m_s3c44b0, FUNC(s3c44b0_device::bdma_0_r)), write32_delegate(*m_s3c44b0, FUNC(s3c44b0_device::bdma_0_w)));
+ space.install_readwrite_handler(0x01f80020, 0x01f8003b, read32_delegate(*m_s3c44b0, FUNC(s3c44b0_device::bdma_1_r)), write32_delegate(*m_s3c44b0, FUNC(s3c44b0_device::bdma_1_w)));
}
void juicebox_state::machine_reset()
diff --git a/src/mame/drivers/jupace.cpp b/src/mame/drivers/jupace.cpp
index 2dbd54e6da8..842900a6ec3 100644
--- a/src/mame/drivers/jupace.cpp
+++ b/src/mame/drivers/jupace.cpp
@@ -790,7 +790,7 @@ void ace_state::ace(machine_config &config)
m_cassette->add_route(ALL_OUTPUTS, "mono", 0.05);
m_cassette->set_interface("jupace_cass");
- SNAPSHOT(config, "snapshot", "ace", attotime::from_seconds(1)).set_load_callback(FUNC(ace_state::snapshot_cb), this);
+ SNAPSHOT(config, "snapshot", "ace", attotime::from_seconds(1)).set_load_callback(FUNC(ace_state::snapshot_cb));
I8255A(config, m_ppi);
m_ppi->in_pb_callback().set(FUNC(ace_state::sby_r));
diff --git a/src/mame/drivers/k28.cpp b/src/mame/drivers/k28.cpp
index c357569157f..509eb45d9ce 100644
--- a/src/mame/drivers/k28.cpp
+++ b/src/mame/drivers/k28.cpp
@@ -305,7 +305,7 @@ void k28_state::k28(machine_config &config)
TMS6100(config, m_tms6100, 3.579545_MHz_XTAL / 15); // CLK tied to 8021 ALE pin
- TIMER(config, "on_button").configure_generic(timer_device::expired_delegate());
+ TIMER(config, "on_button").configure_generic(nullptr);
/* video hardware */
MM5445(config, m_vfd).output_cb().set(FUNC(k28_state::vfd_output_w));
diff --git a/src/mame/drivers/kangaroo.cpp b/src/mame/drivers/kangaroo.cpp
index c0d8de228bf..a3c549c8764 100644
--- a/src/mame/drivers/kangaroo.cpp
+++ b/src/mame/drivers/kangaroo.cpp
@@ -185,7 +185,7 @@ void kangaroo_state::machine_start()
MACHINE_START_MEMBER(kangaroo_state,kangaroo_mcu)
{
kangaroo_state::machine_start();
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xef00, 0xefff, read8_delegate(FUNC(kangaroo_state::mcu_sim_r),this), write8_delegate(FUNC(kangaroo_state::mcu_sim_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xef00, 0xefff, read8_delegate(*this, FUNC(kangaroo_state::mcu_sim_r)), write8_delegate(*this, FUNC(kangaroo_state::mcu_sim_w)));
save_item(NAME(m_mcu_clock));
}
diff --git a/src/mame/drivers/karnov.cpp b/src/mame/drivers/karnov.cpp
index 52b7a27ef92..9b6f2bd291c 100644
--- a/src/mame/drivers/karnov.cpp
+++ b/src/mame/drivers/karnov.cpp
@@ -374,8 +374,8 @@ void karnov_state::karnov_map(address_map &map)
map(0x0a0000, 0x0a07ff).ram().w(FUNC(karnov_state::videoram_w)).share("videoram");
map(0x0a0800, 0x0a0fff).w(FUNC(karnov_state::videoram_w)); /* Wndrplnt Mirror */
map(0x0a1000, 0x0a17ff).w(FUNC(karnov_state::playfield_w)).share("pf_data");
- map(0x0a1800, 0x0a1fff).lw16("pf_col_w", [this](offs_t offset, u16 data, u16 mem_mask)
- { playfield_w(((offset & 0x1f) << 5) | ((offset & 0x3e0) >> 5), data, mem_mask); });
+ map(0x0a1800, 0x0a1fff).lw16([this](offs_t offset, u16 data, u16 mem_mask)
+ { playfield_w(((offset & 0x1f) << 5) | ((offset & 0x3e0) >> 5), data, mem_mask); }, "pf_col_w");
map(0x0c0000, 0x0c0001).portr("P1_P2").w(FUNC(karnov_state::mcusim_ack_w));
map(0x0c0002, 0x0c0003).portr("SYSTEM");
map(0x0c0003, 0x0c0003).w(m_soundlatch, FUNC(generic_latch_8_device::write));
diff --git a/src/mame/drivers/kaypro.cpp b/src/mame/drivers/kaypro.cpp
index 4927826a32d..dfd98fdd458 100644
--- a/src/mame/drivers/kaypro.cpp
+++ b/src/mame/drivers/kaypro.cpp
@@ -225,7 +225,7 @@ void kaypro_state::kayproii(machine_config &config)
BEEP(config, m_beep, 950).add_route(ALL_OUTPUTS, "mono", 1.00); /* piezo-device needs to be measured */
/* devices */
- QUICKLOAD(config, "quickload", "com,cpm", attotime::from_seconds(3)).set_load_callback(FUNC(kaypro_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "com,cpm", attotime::from_seconds(3)).set_load_callback(FUNC(kaypro_state::quickload_cb));
kaypro_10_keyboard_device &kbd(KAYPRO_10_KEYBOARD(config, "kbd"));
kbd.rxd_cb().set("sio", FUNC(z80sio_device::rxb_w));
@@ -316,9 +316,9 @@ void kaypro_state::kaypro484(machine_config &config)
m_crtc->set_screen(m_screen);
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(7);
- m_crtc->set_update_row_callback(FUNC(kaypro_state::kaypro484_update_row), this);
+ m_crtc->set_update_row_callback(FUNC(kaypro_state::kaypro484_update_row));
- QUICKLOAD(config, "quickload", "com,cpm", attotime::from_seconds(3)).set_load_callback(FUNC(kaypro_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "com,cpm", attotime::from_seconds(3)).set_load_callback(FUNC(kaypro_state::quickload_cb));
kaypro_10_keyboard_device &kbd(KAYPRO_10_KEYBOARD(config, "kbd"));
kbd.rxd_cb().set("sio_1", FUNC(z80sio_device::rxb_w));
diff --git a/src/mame/drivers/kc.cpp b/src/mame/drivers/kc.cpp
index e00de4a4b71..439fa3150f1 100644
--- a/src/mame/drivers/kc.cpp
+++ b/src/mame/drivers/kc.cpp
@@ -138,7 +138,7 @@ void kc_state::kc85_3(machine_config &config)
SPEAKER_SOUND(config, "speaker").add_route(ALL_OUTPUTS, "mono", 0.50);
/* devices */
- QUICKLOAD(config, "quickload", "kcc", attotime::from_seconds(2)).set_load_callback(FUNC(kc_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "kcc", attotime::from_seconds(2)).set_load_callback(FUNC(kc_state::quickload_cb));
CASSETTE(config, m_cassette);
m_cassette->set_formats(kc_cassette_formats);
@@ -216,7 +216,7 @@ void kc85_4_state::kc85_4(machine_config &config)
SPEAKER_SOUND(config, "speaker").add_route(ALL_OUTPUTS, "mono", 0.50);
/* devices */
- QUICKLOAD(config, "quickload", "kcc", attotime::from_seconds(2)).set_load_callback(FUNC(kc_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "kcc", attotime::from_seconds(2)).set_load_callback(FUNC(kc_state::quickload_cb));
CASSETTE(config, m_cassette);
m_cassette->set_formats(kc_cassette_formats);
diff --git a/src/mame/drivers/kdt6.cpp b/src/mame/drivers/kdt6.cpp
index fbdaeeaf03f..6b63f7fc764 100644
--- a/src/mame/drivers/kdt6.cpp
+++ b/src/mame/drivers/kdt6.cpp
@@ -574,8 +574,8 @@ void kdt6_state::machine_start()
m_dummy_w = std::make_unique<uint8_t[]>(0x1000);
// override the region 0x0000 to 0x1fff here to enable prom reading
- m_cpu->space(AS_PROGRAM).install_read_handler(0x0000, 0x0fff, read8_delegate(FUNC(kdt6_state::page0_r), this));
- m_cpu->space(AS_PROGRAM).install_read_handler(0x1000, 0x1fff, read8_delegate(FUNC(kdt6_state::page1_r), this));
+ m_cpu->space(AS_PROGRAM).install_read_handler(0x0000, 0x0fff, read8_delegate(*this, FUNC(kdt6_state::page0_r)));
+ m_cpu->space(AS_PROGRAM).install_read_handler(0x1000, 0x1fff, read8_delegate(*this, FUNC(kdt6_state::page1_r)));
m_fdc->set_rate(250000);
@@ -637,7 +637,7 @@ void kdt6_state::psi98(machine_config &config)
m_crtc->set_screen("screen");
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8);
- m_crtc->set_update_row_callback(FUNC(kdt6_state::crtc_update_row), this);
+ m_crtc->set_update_row_callback(FUNC(kdt6_state::crtc_update_row));
m_crtc->out_vsync_callback().set("ctc2", FUNC(z80ctc_device::trg2));
// sound hardware
diff --git a/src/mame/drivers/kenseim.cpp b/src/mame/drivers/kenseim.cpp
index d36a07e7116..4bf9f1f66f5 100644
--- a/src/mame/drivers/kenseim.cpp
+++ b/src/mame/drivers/kenseim.cpp
@@ -695,7 +695,7 @@ ROM_END
void kenseim_state::init_kenseim()
{
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x800030, 0x800037, write16_delegate(FUNC(kenseim_state::cps1_kensei_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x800030, 0x800037, write16_delegate(*this, FUNC(kenseim_state::cps1_kensei_w)));
init_cps1();
diff --git a/src/mame/drivers/kickgoal.cpp b/src/mame/drivers/kickgoal.cpp
index 5bb83e1b919..d7c2db20317 100644
--- a/src/mame/drivers/kickgoal.cpp
+++ b/src/mame/drivers/kickgoal.cpp
@@ -166,10 +166,10 @@ void kickgoal_state::program_map(address_map &map)
map(0x880000, 0x89ffff).nopw(); // during startup
map(0x900000, 0x90ffff).nopw(); // during startup
- map(0x900001, 0x900001).lw8("eeprom_cs_w", [this](u8 data){ m_eeprom->cs_write(BIT(data, 0)); });
- map(0x900003, 0x900003).lw8("eeprom_clk_w", [this](u8 data){ m_eeprom->clk_write(BIT(data, 0)); });
- map(0x900005, 0x900005).lw8("eeprom_di_w", [this](u8 data){ m_eeprom->di_write(BIT(data, 0)); });
- map(0x900007, 0x900007).lr8("eeprom_r", [this](){ return m_eeprom->do_read(); });
+ map(0x900001, 0x900001).lw8(NAME([this] (u8 data) { m_eeprom->cs_write(BIT(data, 0)); }));
+ map(0x900003, 0x900003).lw8(NAME([this] (u8 data) { m_eeprom->clk_write(BIT(data, 0)); }));
+ map(0x900005, 0x900005).lw8(NAME([this] (u8 data) { m_eeprom->di_write(BIT(data, 0)); }));
+ map(0x900007, 0x900007).lr8(NAME([this] () { return m_eeprom->do_read(); }));
map(0xa00000, 0xa03fff).ram().w(FUNC(kickgoal_state::fgram_w)).share("fgram"); /* FG Layer */
map(0xa04000, 0xa07fff).ram().w(FUNC(kickgoal_state::bgram_w)).share("bgram"); /* Higher BG Layer */
@@ -547,7 +547,7 @@ void kickgoal_state::init_kickgoal()
void kickgoal_state::init_actionhw()
{
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x800004, 0x800005, write16_delegate(FUNC(kickgoal_state::actionhw_snd_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x800004, 0x800005, write16_delegate(*this, FUNC(kickgoal_state::actionhw_snd_w)));
}
GAME( 1995, kickgoal, 0, kickgoal, kickgoal, kickgoal_state, init_kickgoal, ROT0, "TCH", "Kick Goal (set 1)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/kingdrby.cpp b/src/mame/drivers/kingdrby.cpp
index cee9006c6fb..75da9697672 100644
--- a/src/mame/drivers/kingdrby.cpp
+++ b/src/mame/drivers/kingdrby.cpp
@@ -213,9 +213,9 @@ TILE_GET_INFO_MEMBER(kingdrby_state::get_sc1_tile_info)
void kingdrby_state::video_start()
{
- m_sc0_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(kingdrby_state::get_sc0_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,24);
- m_sc1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(kingdrby_state::get_sc1_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,24);
- m_sc0w_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(kingdrby_state::get_sc0_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32);
+ m_sc0_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(kingdrby_state::get_sc0_tile_info)), TILEMAP_SCAN_ROWS, 8,8,32,24);
+ m_sc1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(kingdrby_state::get_sc1_tile_info)), TILEMAP_SCAN_ROWS, 8,8,32,24);
+ m_sc0w_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(kingdrby_state::get_sc0_tile_info)), TILEMAP_SCAN_ROWS, 8,8,32,32);
m_sc1_tilemap->set_transparent_pen(0);
diff --git a/src/mame/drivers/koftball.cpp b/src/mame/drivers/koftball.cpp
index 9429cf05bf9..a474c144ff5 100644
--- a/src/mame/drivers/koftball.cpp
+++ b/src/mame/drivers/koftball.cpp
@@ -45,14 +45,15 @@ ft5_v6_c4.u58 /
class koftball_state : public driver_device
{
public:
- koftball_state(const machine_config &mconfig, device_type type, const char *tag)
- : driver_device(mconfig, type, tag),
+ koftball_state(const machine_config &mconfig, device_type type, const char *tag) :
+ driver_device(mconfig, type, tag),
m_maincpu(*this,"maincpu"),
m_main_ram(*this, "main_ram"),
m_bmc_1_videoram(*this, "bmc_1_videoram"),
m_bmc_2_videoram(*this, "bmc_2_videoram"),
m_gfxdecode(*this, "gfxdecode"),
- m_palette(*this, "palette") { }
+ m_palette(*this, "palette")
+ { }
void koftball(machine_config &config);
@@ -104,8 +105,8 @@ TILE_GET_INFO_MEMBER(koftball_state::get_t2_tile_info)
void koftball_state::video_start()
{
- m_tilemap_1 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(koftball_state::get_t1_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,32);
- m_tilemap_2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(koftball_state::get_t2_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,32);
+ m_tilemap_1 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(koftball_state::get_t1_tile_info)), TILEMAP_SCAN_ROWS, 8,8,64,32);
+ m_tilemap_2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(koftball_state::get_t2_tile_info)), TILEMAP_SCAN_ROWS, 8,8,64,32);
m_tilemap_1->set_transparent_pen(0);
}
diff --git a/src/mame/drivers/koikoi.cpp b/src/mame/drivers/koikoi.cpp
index 57ff82295c5..93cf170274b 100644
--- a/src/mame/drivers/koikoi.cpp
+++ b/src/mame/drivers/koikoi.cpp
@@ -151,7 +151,7 @@ void koikoi_state::koikoi_palette(palette_device &palette) const
void koikoi_state::video_start()
{
- m_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(koikoi_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(koikoi_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
uint32_t koikoi_state::screen_update_koikoi(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
diff --git a/src/mame/drivers/konamigx.cpp b/src/mame/drivers/konamigx.cpp
index 02879ecf82f..396e66ec69b 100644
--- a/src/mame/drivers/konamigx.cpp
+++ b/src/mame/drivers/konamigx.cpp
@@ -1645,7 +1645,7 @@ void konamigx_state::konamigx(machine_config &config)
m_palette->enable_hilights();
K056832(config, m_k056832, 0);
- m_k056832->set_tile_callback(FUNC(konamigx_state::type2_tile_callback), this);
+ m_k056832->set_tile_callback(FUNC(konamigx_state::type2_tile_callback));
m_k056832->set_config(K056832_BPP_5, 0, 0);
m_k056832->set_palette(m_palette);
@@ -1656,7 +1656,7 @@ void konamigx_state::konamigx(machine_config &config)
m_k054338->set_alpha_invert(1);
K055673(config, m_k055673, 0);
- m_k055673->set_sprite_callback(FUNC(konamigx_state::type2_sprite_callback), this);
+ m_k055673->set_sprite_callback(FUNC(konamigx_state::type2_sprite_callback));
m_k055673->set_config(K055673_LAYOUT_GX, -26, -23);
m_k055673->set_screen(m_screen);
m_k055673->set_palette(m_palette);
@@ -1708,7 +1708,7 @@ void konamigx_state::sexyparo(machine_config &config)
{
konamigx(config);
- m_k056832->set_tile_callback(FUNC(konamigx_state::alpha_tile_callback), this);
+ m_k056832->set_tile_callback(FUNC(konamigx_state::alpha_tile_callback));
m_k055673->set_config(K055673_LAYOUT_GX, -42, -23);
}
@@ -1729,7 +1729,7 @@ void konamigx_state::dragoonj(machine_config &config)
m_k056832->set_config(K056832_BPP_5, 1, 0);
- m_k055673->set_sprite_callback(FUNC(konamigx_state::dragoonj_sprite_callback), this);
+ m_k055673->set_sprite_callback(FUNC(konamigx_state::dragoonj_sprite_callback));
m_k055673->set_config(K055673_LAYOUT_RNG, -53, -23);
}
@@ -1742,7 +1742,7 @@ void konamigx_state::le2(machine_config &config)
m_k056832->set_config(K056832_BPP_8, 1, 0);
- m_k055673->set_sprite_callback(FUNC(konamigx_state::le2_sprite_callback), this);
+ m_k055673->set_sprite_callback(FUNC(konamigx_state::le2_sprite_callback));
m_k055673->set_config(K055673_LAYOUT_LE2, -46, -23);
}
@@ -1761,7 +1761,7 @@ void konamigx_state::salmndr2(machine_config &config)
konamigx(config);
m_k056832->set_config(K056832_BPP_6, 1, 0);
- m_k055673->set_sprite_callback(FUNC(konamigx_state::salmndr2_sprite_callback), this);
+ m_k055673->set_sprite_callback(FUNC(konamigx_state::salmndr2_sprite_callback));
m_k055673->set_config(K055673_LAYOUT_GX6, -48, -23);
}
@@ -1914,7 +1914,7 @@ void konamigx_state::winspike(machine_config &config)
m_k053252->set_offsets(24+15, 16);
- m_k056832->set_tile_callback(FUNC(konamigx_state::alpha_tile_callback), this);
+ m_k056832->set_tile_callback(FUNC(konamigx_state::alpha_tile_callback));
m_k056832->set_config(K056832_BPP_8, 0, 2);
m_k055673->set_config(K055673_LAYOUT_LE2, -53, -23);
@@ -3852,8 +3852,8 @@ void konamigx_state::init_konamigx()
switch (gameDefs[i].special)
{
case 1: // LE2 guns
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xd44000, 0xd44003, read32_delegate(FUNC(konamigx_state::le2_gun_H_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xd44004, 0xd44007, read32_delegate(FUNC(konamigx_state::le2_gun_V_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xd44000, 0xd44003, read32_delegate(*this, FUNC(konamigx_state::le2_gun_H_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xd44004, 0xd44007, read32_delegate(*this, FUNC(konamigx_state::le2_gun_V_r)));
break;
case 2: // tkmmpzdm hack
{
@@ -3888,7 +3888,7 @@ void konamigx_state::init_konamigx()
break;
case 7: // install type 4 Xilinx protection for non-type 3/4 games
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xcc0000, 0xcc0007, write32_delegate(FUNC(konamigx_state::type4_prot_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xcc0000, 0xcc0007, write32_delegate(*this, FUNC(konamigx_state::type4_prot_w)));
break;
case 8: // tbyahhoo
@@ -3905,7 +3905,7 @@ void konamigx_state::init_konamigx()
}
if (readback == BPP66)
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xd00000, 0xd01fff, read32_delegate(FUNC(konamigx_state::k_6bpp_rom_long_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xd00000, 0xd01fff, read32_delegate(*this, FUNC(konamigx_state::k_6bpp_rom_long_r)));
#undef BPP5
diff --git a/src/mame/drivers/konamim2.cpp b/src/mame/drivers/konamim2.cpp
index 0c071bfcea1..1c3d8ac46fb 100644
--- a/src/mame/drivers/konamim2.cpp
+++ b/src/mame/drivers/konamim2.cpp
@@ -1449,8 +1449,8 @@ ROM_END
void konamim2_state::install_m48t58()
{
- read8sm_delegate read_delegate(FUNC(m48t58_device::read), &(*m_m48t58));
- write8sm_delegate write_delegate(FUNC(m48t58_device::write), &(*m_m48t58));
+ read8sm_delegate read_delegate(*m_m48t58, FUNC(m48t58_device::read));
+ write8sm_delegate write_delegate(*m_m48t58, FUNC(m48t58_device::write));
m_ppc1->space(AS_PROGRAM).install_readwrite_handler(0x36c00000, 0x36c03fff, read_delegate, write_delegate, 0xff00ff00ff00ff00ULL);
m_ppc2->space(AS_PROGRAM).install_readwrite_handler(0x36c00000, 0x36c03fff, read_delegate, write_delegate, 0xff00ff00ff00ff00ULL);
@@ -1458,8 +1458,8 @@ void konamim2_state::install_m48t58()
void konamim2_state::install_ymz280b()
{
- read8sm_delegate read_delegate(FUNC(ymz280b_device::read), &(*m_ymz280b));
- write8sm_delegate write_delegate(FUNC(ymz280b_device::write), &(*m_ymz280b));
+ read8sm_delegate read_delegate(*m_ymz280b, FUNC(ymz280b_device::read));
+ write8sm_delegate write_delegate(*m_ymz280b, FUNC(ymz280b_device::write));
m_ppc1->space(AS_PROGRAM).install_readwrite_handler(0x3e800000, 0x3e80000f, read_delegate, write_delegate, 0xff00ff0000000000ULL);
m_ppc2->space(AS_PROGRAM).install_readwrite_handler(0x3e800000, 0x3e80000f, read_delegate, write_delegate, 0xff00ff0000000000ULL);
diff --git a/src/mame/drivers/konin.cpp b/src/mame/drivers/konin.cpp
index 70fc93ec311..8d4758760b0 100644
--- a/src/mame/drivers/konin.cpp
+++ b/src/mame/drivers/konin.cpp
@@ -80,14 +80,14 @@ void konin_state::konin_io(address_map &map)
map.unmap_value_high();
map.global_mask(0xff);
map(0x24, 0x24).w(FUNC(konin_state::picu_b_w));
- map(0x80, 0x83).lrw8("ioppi_rw",
- [this](offs_t offset) { return m_ioppi->read(offset^3); },
- [this](offs_t offset, u8 data) { m_ioppi->write(offset^3, data); });
+ map(0x80, 0x83).lrw8(
+ NAME([this](offs_t offset) { return m_ioppi->read(offset^3); }),
+ NAME([this](offs_t offset, u8 data) { m_ioppi->write(offset^3, data); }));
map(0xf6, 0xf6).rw("uart", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
map(0xf7, 0xf7).rw("uart", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0xf8, 0xfb).lrw8("iopit_rw",
- [this](offs_t offset) { return m_iopit->read(offset^3); },
- [this](offs_t offset, u8 data) { m_iopit->write(offset^3, data); });
+ map(0xf8, 0xfb).lrw8(
+ NAME([this](offs_t offset) { return m_iopit->read(offset^3); }),
+ NAME([this](offs_t offset, u8 data) { m_iopit->write(offset^3, data); }));
}
/* Input ports */
@@ -106,7 +106,7 @@ void konin_state::konin(machine_config &config)
maincpu.set_addrmap(AS_PROGRAM, &konin_state::konin_mem);
maincpu.set_addrmap(AS_IO, &konin_state::konin_io);
maincpu.out_inte_func().set(m_picu, FUNC(i8214_device::inte_w));
- maincpu.set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(i8212_device::inta_cb), "intlatch", (i8212_device*)nullptr));
+ maincpu.set_irq_acknowledge_callback("intlatch", FUNC(i8212_device::inta_cb));
i8212_device &intlatch(I8212(config, "intlatch", 0));
intlatch.md_rd_callback().set_constant(0);
diff --git a/src/mame/drivers/konmedal.cpp b/src/mame/drivers/konmedal.cpp
index 0e7dc948fae..351d46aca8e 100644
--- a/src/mame/drivers/konmedal.cpp
+++ b/src/mame/drivers/konmedal.cpp
@@ -416,7 +416,7 @@ void konmedal_state::tsukande(machine_config &config)
//m_palette->enable_shadows();
K056832(config, m_k056832, 0);
- m_k056832->set_tile_callback(FUNC(konmedal_state::tile_callback), this);
+ m_k056832->set_tile_callback(FUNC(konmedal_state::tile_callback));
m_k056832->set_config(K056832_BPP_4, 1, 0);
m_k056832->set_palette(m_palette);
@@ -449,7 +449,7 @@ void konmedal_state::ddboy(machine_config &config)
//m_palette->enable_shadows();
K056832(config, m_k056832, 0);
- m_k056832->set_tile_callback(FUNC(konmedal_state::tile_callback), this);
+ m_k056832->set_tile_callback(FUNC(konmedal_state::tile_callback));
m_k056832->set_config(K056832_BPP_4, 1, 0);
m_k056832->set_palette(m_palette);
@@ -564,7 +564,7 @@ void konmedal_state::shuriboy(machine_config &config)
K052109(config, m_k052109, 0);
m_k052109->set_palette(m_palette);
m_k052109->set_screen(nullptr);
- m_k052109->set_tile_callback(FUNC(konmedal_state::shuriboy_tile_callback), this);
+ m_k052109->set_tile_callback(FUNC(konmedal_state::shuriboy_tile_callback));
MCFG_MACHINE_START_OVERRIDE(konmedal_state, shuriboy)
@@ -588,7 +588,7 @@ void konmedal_state::fuusenpn(machine_config &config)
screen.set_screen_update(FUNC(konmedal_state::screen_update_fuusenpn));
screen.set_palette(m_palette);
- m_k052109->set_tile_callback(FUNC(konmedal_state::fuusenpn_tile_callback), this);
+ m_k052109->set_tile_callback(FUNC(konmedal_state::fuusenpn_tile_callback));
}
ROM_START( tsukande )
diff --git a/src/mame/drivers/konmedal68k.cpp b/src/mame/drivers/konmedal68k.cpp
index 80d5622017b..032b5adff70 100644
--- a/src/mame/drivers/konmedal68k.cpp
+++ b/src/mame/drivers/konmedal68k.cpp
@@ -345,7 +345,7 @@ void konmedal68k_state::kzaurus(machine_config &config)
PALETTE(config, "palette").set_format(palette_device::xBGR_888, 8192).enable_shadows();
K056832(config, m_k056832, 0);
- m_k056832->set_tile_callback(FUNC(konmedal68k_state::tile_callback), this);
+ m_k056832->set_tile_callback(FUNC(konmedal68k_state::tile_callback));
m_k056832->set_config(K056832_BPP_4dj, 1, 0);
m_k056832->set_palette(m_palette);
diff --git a/src/mame/drivers/ksys573.cpp b/src/mame/drivers/ksys573.cpp
index 29721e75a05..8090e588ed4 100644
--- a/src/mame/drivers/ksys573.cpp
+++ b/src/mame/drivers/ksys573.cpp
@@ -1800,7 +1800,7 @@ void ksys573_state::punchmania_cassette_install(device_t *device)
{
auto game = downcast<konami573_cassette_xi_device *>(device);
auto adc0838 = device->subdevice<adc083x_device>("adc0838");
- adc0838->set_input_callback(adc083x_device::input_delegate(FUNC(konami573_cassette_xi_device::punchmania_inputs_callback), game));
+ adc0838->set_input_callback(*game, FUNC(konami573_cassette_xi_device::punchmania_inputs_callback));
}
int pad_light[ 6 ];
diff --git a/src/mame/drivers/laserbas.cpp b/src/mame/drivers/laserbas.cpp
index d24cec3251f..38409cf90f1 100644
--- a/src/mame/drivers/laserbas.cpp
+++ b/src/mame/drivers/laserbas.cpp
@@ -400,7 +400,7 @@ void laserbas_state::laserbas(machine_config &config)
crtc.set_screen("screen");
crtc.set_show_border_area(false);
crtc.set_char_width(8);
- crtc.set_update_row_callback(FUNC(laserbas_state::crtc_update_row), this);
+ crtc.set_update_row_callback(FUNC(laserbas_state::crtc_update_row));
PALETTE(config, m_palette).set_format(palette_device::RGB_332, 32);
diff --git a/src/mame/drivers/lbeach.cpp b/src/mame/drivers/lbeach.cpp
index ff7d5893bc9..7c5f07971b0 100644
--- a/src/mame/drivers/lbeach.cpp
+++ b/src/mame/drivers/lbeach.cpp
@@ -142,9 +142,9 @@ TILE_GET_INFO_MEMBER(lbeach_state::get_fg_tile_info)
void lbeach_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(lbeach_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 16);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(lbeach_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 16);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(lbeach_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(lbeach_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 16, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(0);
m_screen->register_screen_bitmap(m_colmap_car);
diff --git a/src/mame/drivers/ldplayer.cpp b/src/mame/drivers/ldplayer.cpp
index 6ff7c0688a7..0f7fa037b2a 100644
--- a/src/mame/drivers/ldplayer.cpp
+++ b/src/mame/drivers/ldplayer.cpp
@@ -636,7 +636,7 @@ void ldv1000_state::ldv1000(machine_config &config)
{
ldplayer_ntsc(config);
pioneer_ldv1000_device &laserdisc(PIONEER_LDV1000(config, "laserdisc"));
- laserdisc.set_get_disc(FUNC(ldv1000_state::get_disc), this);
+ laserdisc.set_get_disc(FUNC(ldv1000_state::get_disc));
laserdisc.add_ntsc_screen(config, "screen");
SPEAKER(config, "lspeaker").front_left();
@@ -650,7 +650,7 @@ void pr8210_state::pr8210(machine_config &config)
{
ldplayer_ntsc(config);
pioneer_pr8210_device &laserdisc(PIONEER_PR8210(config, "laserdisc"));
- laserdisc.set_get_disc(FUNC(pr8210_state::get_disc), this);
+ laserdisc.set_get_disc(FUNC(pr8210_state::get_disc));
laserdisc.add_ntsc_screen(config, "screen");
SPEAKER(config, "lspeaker").front_left();
diff --git a/src/mame/drivers/leapfrog_leappad.cpp b/src/mame/drivers/leapfrog_leappad.cpp
index 59acdb72347..2c010d3f593 100644
--- a/src/mame/drivers/leapfrog_leappad.cpp
+++ b/src/mame/drivers/leapfrog_leappad.cpp
@@ -114,7 +114,7 @@ void leapfrog_leappad_state::leapfrog_leappad(machine_config &config)
GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "leapfrog_leappad_cart");
m_cart->set_width(GENERIC_ROM16_WIDTH);
- m_cart->set_device_load(FUNC(leapfrog_leappad_state::cart_load), this);
+ m_cart->set_device_load(FUNC(leapfrog_leappad_state::cart_load));
SOFTWARE_LIST(config, "cart_list").set_original("leapfrog_leappad_cart");
}
@@ -129,7 +129,7 @@ void leapfrog_leappad_state::leapfrog_mfleappad(machine_config &config)
GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "leapfrog_mfleappad_cart");
m_cart->set_width(GENERIC_ROM16_WIDTH);
- m_cart->set_device_load(FUNC(leapfrog_leappad_state::cart_load), this);
+ m_cart->set_device_load(FUNC(leapfrog_leappad_state::cart_load));
SOFTWARE_LIST(config, "cart_list").set_original("leapfrog_mfleappad_cart");
SOFTWARE_LIST(config, "cart_list2").set_original("leapfrog_ltleappad_cart");
diff --git a/src/mame/drivers/leapster.cpp b/src/mame/drivers/leapster.cpp
index 52cb80e98ea..2f7d04b67a4 100644
--- a/src/mame/drivers/leapster.cpp
+++ b/src/mame/drivers/leapster.cpp
@@ -324,7 +324,7 @@ void leapster_state::leapster(machine_config &config)
screen.set_screen_update(FUNC(leapster_state::screen_update_leapster));
/* cartridge */
- GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "leapster_cart", "bin").set_device_load(FUNC(leapster_state::cart_load), this);
+ GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "leapster_cart", "bin").set_device_load(FUNC(leapster_state::cart_load));
/* Software lists */
SOFTWARE_LIST(config, "cart_list").set_original("leapster");
diff --git a/src/mame/drivers/legionna.cpp b/src/mame/drivers/legionna.cpp
index 97bf35ea8e3..cbf0597ab45 100644
--- a/src/mame/drivers/legionna.cpp
+++ b/src/mame/drivers/legionna.cpp
@@ -197,9 +197,9 @@ void legionna_state::legionna_map(address_map &map)
map(0x100470, 0x100471).nopw(); // toggles 0x2000 / 0x0000, tile bank on some games
map(0x100600, 0x10064f).rw(m_crtc, FUNC(seibu_crtc_device::read), FUNC(seibu_crtc_device::write));
map(0x100680, 0x100681).nopw(); // irq ack?
- map(0x100700, 0x10071f).lrw8("seibu_sound_rw",
- [this](offs_t offset) { return m_seibu_sound->main_r(offset >> 1); },
- [this](offs_t offset, u8 data) { m_seibu_sound->main_w(offset >> 1, data); }).umask16(0x00ff);
+ map(0x100700, 0x10071f).lrw8(
+ NAME([this](offs_t offset) { return m_seibu_sound->main_r(offset >> 1); }),
+ NAME([this](offs_t offset, u8 data) { m_seibu_sound->main_w(offset >> 1, data); })).umask16(0x00ff);
map(0x100740, 0x100741).portr("DSW1");
map(0x100744, 0x100745).portr("PLAYERS12");
map(0x100748, 0x100749).portr("PLAYERS34");
@@ -227,9 +227,9 @@ void legionna_state::heatbrl_map(address_map &map)
map(0x100744, 0x100745).portr("PLAYERS12");
map(0x100748, 0x100749).portr("PLAYERS34");
map(0x10074c, 0x10074d).portr("SYSTEM");
- map(0x1007c0, 0x1007df).lrw8("seibu_sound_rw",
- [this](offs_t offset) { return m_seibu_sound->main_r(offset >> 1); },
- [this](offs_t offset, u8 data) { m_seibu_sound->main_w(offset >> 1, data); }).umask16(0x00ff);
+ map(0x1007c0, 0x1007df).lrw8(
+ NAME([this] (offs_t offset) { return m_seibu_sound->main_r(offset >> 1); }),
+ NAME([this] (offs_t offset, u8 data) { m_seibu_sound->main_w(offset >> 1, data); })).umask16(0x00ff);
map(0x100800, 0x100fff).ram(); // .w(FUNC(legionna_state::background_w)).share("back_data");
map(0x101000, 0x1017ff).ram(); // .w(FUNC(legionna_state::foreground_w).share("fore_data");
map(0x101800, 0x101fff).ram(); // .w(FUNC(legionna_state::midground_w).share("mid_data");
@@ -247,9 +247,9 @@ void legionna_state::godzilla_map(address_map &map)
map(0x100470, 0x100471).w(FUNC(legionna_state::heatbrl_setgfxbank));
map(0x100600, 0x10064f).rw(m_crtc, FUNC(seibu_crtc_device::read), FUNC(seibu_crtc_device::write));
map(0x100680, 0x100681).nopw(); // irq ack?
- map(0x100700, 0x10071f).lrw8("seibu_sound_rw",
- [this](offs_t offset) { return m_seibu_sound->main_r(offset >> 1); },
- [this](offs_t offset, u8 data) { m_seibu_sound->main_w(offset >> 1, data); }).umask16(0x00ff);
+ map(0x100700, 0x10071f).lrw8(
+ NAME([this] (offs_t offset) { return m_seibu_sound->main_r(offset >> 1); }),
+ NAME([this] (offs_t offset, u8 data) { m_seibu_sound->main_w(offset >> 1, data); })).umask16(0x00ff);
map(0x100740, 0x100741).portr("DSW1");
map(0x100744, 0x100745).portr("PLAYERS12");
map(0x100748, 0x100749).portr("PLAYERS34");
@@ -302,7 +302,7 @@ void legionna_state::denjinmk_map(address_map &map)
map(0x100600, 0x10064f).rw(m_crtc, FUNC(seibu_crtc_device::read), FUNC(seibu_crtc_device::write));
map(0x100680, 0x100681).nopw(); // irq ack?
map(0x100700, 0x10071f).r(FUNC(legionna_state::denjinmk_sound_comms_r))
- .lw8("seibu_sound_w", [this](offs_t offset, u8 data) { m_seibu_sound->main_w(offset >> 1, data); }).umask16(0x00ff);
+ .lw8(NAME([this] (offs_t offset, u8 data) { m_seibu_sound->main_w(offset >> 1, data); })).umask16(0x00ff);
map(0x100740, 0x100741).portr("DSW1");
map(0x100744, 0x100745).portr("PLAYERS12");
map(0x100748, 0x100749).portr("PLAYERS34");
@@ -329,9 +329,9 @@ void legionna_state::grainbow_map(address_map &map)
map(0x100480, 0x100487).w(FUNC(legionna_state::grainbow_layer_config_w)); // probably a COP feature
map(0x100600, 0x10064f).rw(m_crtc, FUNC(seibu_crtc_device::read), FUNC(seibu_crtc_device::write));
map(0x100680, 0x100681).nopw(); // irq ack?
- map(0x100700, 0x10071f).lrw8("seibu_sound_rw",
- [this](offs_t offset) { return m_seibu_sound->main_r(offset >> 1); },
- [this](offs_t offset, u8 data) { m_seibu_sound->main_w(offset >> 1, data); }).umask16(0x00ff);
+ map(0x100700, 0x10071f).lrw8(
+ NAME([this](offs_t offset) { return m_seibu_sound->main_r(offset >> 1); }),
+ NAME([this](offs_t offset, u8 data) { m_seibu_sound->main_w(offset >> 1, data); })).umask16(0x00ff);
map(0x100740, 0x100741).portr("DSW1");
map(0x100744, 0x100745).portr("PLAYERS12");
map(0x100748, 0x100749).portr("PLAYERS34");
@@ -356,9 +356,9 @@ void legionna_state::cupsoc_map(address_map &map)
map(0x100000, 0x1003ff).ram();
map(0x100600, 0x10064f).rw(m_crtc, FUNC(seibu_crtc_device::read), FUNC(seibu_crtc_device::write));
map(0x100680, 0x100681).nopw(); // irq ack?
- map(0x100700, 0x10071f).lrw8("seibu_sound_rw",
- [this](offs_t offset) { return m_seibu_sound->main_r(offset >> 1); },
- [this](offs_t offset, u8 data) { m_seibu_sound->main_w(offset >> 1, data); }).umask16(0x00ff);
+ map(0x100700, 0x10071f).lrw8(
+ NAME([this] (offs_t offset) { return m_seibu_sound->main_r(offset >> 1); }),
+ NAME([this] (offs_t offset, u8 data) { m_seibu_sound->main_w(offset >> 1, data); })).umask16(0x00ff);
map(0x100740, 0x100741).portr("DSW1");
map(0x100744, 0x100745).portr("PLAYERS12");
map(0x100748, 0x100749).portr("PLAYERS34");
@@ -384,22 +384,22 @@ void legionna_state::cupsocs_map(address_map &map)
legionna_cop_map(map);
map(0x000000, 0x0fffff).rom();
map(0x100000, 0x1003ff).ram();
- map(0x100600, 0x10067f).lrw16("crtc_rw",
- [this](address_space &space, offs_t offset, u16 mem_mask) {
+ map(0x100600, 0x10067f).lrw16(
+ NAME([this](address_space &space, offs_t offset, u16 mem_mask) {
return m_crtc->read(space, offset ^ 0x20, mem_mask);
- },
- [this](address_space &space, offs_t offset, u16 data, u16 mem_mask) {
+ }),
+ NAME([this](address_space &space, offs_t offset, u16 data, u16 mem_mask) {
m_crtc->write(space, offset ^ 0x20, data, mem_mask);
- });
+ }));
map(0x100680, 0x100681).nopw(); // irq ack?
map(0x100700, 0x100701).portr("DSW1");
map(0x100704, 0x100705).portr("PLAYERS12");
map(0x100708, 0x100709).portr("PLAYERS34");
map(0x10070c, 0x10070d).portr("SYSTEM");
map(0x10071c, 0x10071d).portr("DSW2");
- map(0x100740, 0x10075f).lrw8("seibu_sound_rw",
- [this](offs_t offset) { return m_seibu_sound->main_r(offset >> 1); },
- [this](offs_t offset, u8 data) { m_seibu_sound->main_w(offset >> 1, data); }).umask16(0x00ff);
+ map(0x100740, 0x10075f).lrw8(
+ NAME([this] (offs_t offset) { return m_seibu_sound->main_r(offset >> 1); }),
+ NAME([this] (offs_t offset, u8 data) { m_seibu_sound->main_w(offset >> 1, data); })).umask16(0x00ff);
map(0x100800, 0x100fff).ram(); // .w(FUNC(legionna_state::background_w)).share("back_data");
map(0x101000, 0x1017ff).ram(); // .w(FUNC(legionna_state::foreground_w).share("fore_data");
map(0x101800, 0x101fff).ram(); // .w(FUNC(legionna_state::midground_w).share("mid_data");
diff --git a/src/mame/drivers/leland.cpp b/src/mame/drivers/leland.cpp
index 55c4a7013e1..9c510f9c488 100644
--- a/src/mame/drivers/leland.cpp
+++ b/src/mame/drivers/leland.cpp
@@ -2954,11 +2954,11 @@ ROM_END
void leland_state::init_master_ports(u8 mvram_base, u8 io_base)
{
/* set up the master CPU VRAM I/O */
- m_master->space(AS_IO).install_readwrite_handler(mvram_base, mvram_base + 0x1f, read8sm_delegate(FUNC(leland_state::leland_mvram_port_r),this), write8sm_delegate(FUNC(leland_state::leland_mvram_port_w),this));
+ m_master->space(AS_IO).install_readwrite_handler(mvram_base, mvram_base + 0x1f, read8sm_delegate(*this, FUNC(leland_state::leland_mvram_port_r)), write8sm_delegate(*this, FUNC(leland_state::leland_mvram_port_w)));
/* set up the master CPU I/O ports */
- m_master->space(AS_IO).install_read_handler(io_base, io_base + 0x1f, read8sm_delegate(FUNC(leland_state::leland_master_input_r),this));
- m_master->space(AS_IO).install_write_handler(io_base, io_base + 0x0f, write8sm_delegate(FUNC(leland_state::leland_master_output_w),this));
+ m_master->space(AS_IO).install_read_handler(io_base, io_base + 0x1f, read8sm_delegate(*this, FUNC(leland_state::leland_master_input_r)));
+ m_master->space(AS_IO).install_write_handler(io_base, io_base + 0x0f, write8sm_delegate(*this, FUNC(leland_state::leland_master_output_w)));
}
@@ -2974,8 +2974,8 @@ void leland_state::init_cerberus()
init_master_ports(0x40, 0x80);
/* set up additional input ports */
- m_master->space(AS_IO).install_read_handler(0x80, 0x80, read8smo_delegate(FUNC(leland_state::cerberus_dial_1_r),this));
- m_master->space(AS_IO).install_read_handler(0x90, 0x90, read8smo_delegate(FUNC(leland_state::cerberus_dial_2_r),this));
+ m_master->space(AS_IO).install_read_handler(0x80, 0x80, read8smo_delegate(*this, FUNC(leland_state::cerberus_dial_1_r)));
+ m_master->space(AS_IO).install_read_handler(0x90, 0x90, read8smo_delegate(*this, FUNC(leland_state::cerberus_dial_2_r)));
}
@@ -3020,7 +3020,7 @@ void leland_state::init_alleymas()
/* kludge warning: the game uses location E0CA to determine if the joysticks are available */
/* it gets cleared by the code, but there is no obvious way for the value to be set to a */
/* non-zero value. If the value is zero, the joystick is never read. */
- m_master->space(AS_PROGRAM).install_write_handler(0xe0ca, 0xe0ca, write8smo_delegate(FUNC(leland_state::alleymas_joystick_kludge),this));
+ m_master->space(AS_PROGRAM).install_write_handler(0xe0ca, 0xe0ca, write8smo_delegate(*this, FUNC(leland_state::alleymas_joystick_kludge)));
m_alleymas_kludge_mem = m_mainram + (0xe0ca - 0xe000);
}
@@ -3044,9 +3044,9 @@ void leland_state::init_dangerz()
init_master_ports(0x40, 0x80);
/* set up additional input ports */
- m_master->space(AS_IO).install_read_handler(0xf4, 0xf4, read8smo_delegate(FUNC(leland_state::dangerz_input_upper_r),this));
- m_master->space(AS_IO).install_read_handler(0xf8, 0xf8, read8smo_delegate(FUNC(leland_state::dangerz_input_y_r),this));
- m_master->space(AS_IO).install_read_handler(0xfc, 0xfc, read8smo_delegate(FUNC(leland_state::dangerz_input_x_r),this));
+ m_master->space(AS_IO).install_read_handler(0xf4, 0xf4, read8smo_delegate(*this, FUNC(leland_state::dangerz_input_upper_r)));
+ m_master->space(AS_IO).install_read_handler(0xf8, 0xf8, read8smo_delegate(*this, FUNC(leland_state::dangerz_input_y_r)));
+ m_master->space(AS_IO).install_read_handler(0xfc, 0xfc, read8smo_delegate(*this, FUNC(leland_state::dangerz_input_x_r)));
save_item(NAME(m_dangerz_x));
save_item(NAME(m_dangerz_y));
@@ -3094,10 +3094,10 @@ void redline_state::init_redlin2p()
init_master_ports(0x00, 0xc0);
/* set up additional input ports */
- m_master->space(AS_IO).install_read_handler(0xc0, 0xc0, read8smo_delegate(FUNC(redline_state::redline_pedal_1_r),this));
- m_master->space(AS_IO).install_read_handler(0xd0, 0xd0, read8smo_delegate(FUNC(redline_state::redline_pedal_2_r),this));
- m_master->space(AS_IO).install_read_handler(0xf8, 0xf8, read8smo_delegate(FUNC(redline_state::redline_wheel_2_r),this));
- m_master->space(AS_IO).install_read_handler(0xfb, 0xfb, read8smo_delegate(FUNC(redline_state::redline_wheel_1_r),this));
+ m_master->space(AS_IO).install_read_handler(0xc0, 0xc0, read8smo_delegate(*this, FUNC(redline_state::redline_pedal_1_r)));
+ m_master->space(AS_IO).install_read_handler(0xd0, 0xd0, read8smo_delegate(*this, FUNC(redline_state::redline_pedal_2_r)));
+ m_master->space(AS_IO).install_read_handler(0xf8, 0xf8, read8smo_delegate(*this, FUNC(redline_state::redline_wheel_2_r)));
+ m_master->space(AS_IO).install_read_handler(0xfb, 0xfb, read8smo_delegate(*this, FUNC(redline_state::redline_wheel_1_r)));
}
@@ -3126,9 +3126,9 @@ void redline_state::init_viper()
init_master_ports(0x00, 0xc0);
/* set up additional input ports */
- m_master->space(AS_IO).install_read_handler(0xa4, 0xa4, read8smo_delegate(FUNC(redline_state::dangerz_input_upper_r),this));
- m_master->space(AS_IO).install_read_handler(0xb8, 0xb8, read8smo_delegate(FUNC(redline_state::dangerz_input_y_r),this));
- m_master->space(AS_IO).install_read_handler(0xbc, 0xbc, read8smo_delegate(FUNC(redline_state::dangerz_input_x_r),this));
+ m_master->space(AS_IO).install_read_handler(0xa4, 0xa4, read8smo_delegate(*this, FUNC(redline_state::dangerz_input_upper_r)));
+ m_master->space(AS_IO).install_read_handler(0xb8, 0xb8, read8smo_delegate(*this, FUNC(redline_state::dangerz_input_y_r)));
+ m_master->space(AS_IO).install_read_handler(0xbc, 0xbc, read8smo_delegate(*this, FUNC(redline_state::dangerz_input_x_r)));
save_item(NAME(m_dangerz_x));
save_item(NAME(m_dangerz_y));
@@ -3221,9 +3221,9 @@ void redline_state::init_offroad()
init_master_ports(0x40, 0x80); /* yes, this is intentional */
/* set up additional input ports */
- m_master->space(AS_IO).install_read_handler(0xf8, 0xf8, read8smo_delegate(FUNC(redline_state::offroad_wheel_3_r),this));
- m_master->space(AS_IO).install_read_handler(0xf9, 0xf9, read8smo_delegate(FUNC(redline_state::offroad_wheel_1_r),this));
- m_master->space(AS_IO).install_read_handler(0xfb, 0xfb, read8smo_delegate(FUNC(redline_state::offroad_wheel_2_r),this));
+ m_master->space(AS_IO).install_read_handler(0xf8, 0xf8, read8smo_delegate(*this, FUNC(redline_state::offroad_wheel_3_r)));
+ m_master->space(AS_IO).install_read_handler(0xf9, 0xf9, read8smo_delegate(*this, FUNC(redline_state::offroad_wheel_1_r)));
+ m_master->space(AS_IO).install_read_handler(0xfb, 0xfb, read8smo_delegate(*this, FUNC(redline_state::offroad_wheel_2_r)));
}
@@ -3240,9 +3240,9 @@ void redline_state::init_offroadt()
init_master_ports(0x80, 0x40);
/* set up additional input ports */
- m_master->space(AS_IO).install_read_handler(0xf8, 0xf8, read8smo_delegate(FUNC(redline_state::offroad_wheel_3_r),this));
- m_master->space(AS_IO).install_read_handler(0xf9, 0xf9, read8smo_delegate(FUNC(redline_state::offroad_wheel_1_r),this));
- m_master->space(AS_IO).install_read_handler(0xfb, 0xfb, read8smo_delegate(FUNC(redline_state::offroad_wheel_2_r),this));
+ m_master->space(AS_IO).install_read_handler(0xf8, 0xf8, read8smo_delegate(*this, FUNC(redline_state::offroad_wheel_3_r)));
+ m_master->space(AS_IO).install_read_handler(0xf9, 0xf9, read8smo_delegate(*this, FUNC(redline_state::offroad_wheel_1_r)));
+ m_master->space(AS_IO).install_read_handler(0xfb, 0xfb, read8smo_delegate(*this, FUNC(redline_state::offroad_wheel_2_r)));
}
@@ -3269,7 +3269,7 @@ void ataxx_state::init_ataxx()
rotate_memory("slave");
/* set up additional input ports */
- m_master->space(AS_IO).install_read_handler(0x00, 0x03, read8sm_delegate(FUNC(ataxx_state::ataxx_trackball_r),this));
+ m_master->space(AS_IO).install_read_handler(0x00, 0x03, read8sm_delegate(*this, FUNC(ataxx_state::ataxx_trackball_r)));
}
@@ -3279,7 +3279,7 @@ void ataxx_state::init_ataxxj()
rotate_memory("slave");
/* set up additional input ports */
- m_master->space(AS_IO).install_read_handler(0x00, 0x03, read8sm_delegate(FUNC(ataxx_state::ataxx_trackball_r),this));
+ m_master->space(AS_IO).install_read_handler(0x00, 0x03, read8sm_delegate(*this, FUNC(ataxx_state::ataxx_trackball_r)));
}
@@ -3301,14 +3301,14 @@ void ataxx_state::init_indyheat()
rotate_memory("slave");
/* set up additional input ports */
- m_master->space(AS_IO).install_read_handler(0x00, 0x02, read8sm_delegate(FUNC(ataxx_state::ataxx_trackball_r),this));
- m_master->space(AS_IO).install_read_handler(0x08, 0x0b, read8sm_delegate(FUNC(ataxx_state::indyheat_analog_r),this));
+ m_master->space(AS_IO).install_read_handler(0x00, 0x02, read8sm_delegate(*this, FUNC(ataxx_state::ataxx_trackball_r)));
+ m_master->space(AS_IO).install_read_handler(0x08, 0x0b, read8sm_delegate(*this, FUNC(ataxx_state::indyheat_analog_r)));
m_master->space(AS_IO).install_read_port(0x0d, 0x0d, "P1");
m_master->space(AS_IO).install_read_port(0x0e, 0x0e, "P2");
m_master->space(AS_IO).install_read_port(0x0f, 0x0f, "P3");
/* set up additional output ports */
- m_master->space(AS_IO).install_write_handler(0x08, 0x0b, write8sm_delegate(FUNC(ataxx_state::indyheat_analog_w),this));
+ m_master->space(AS_IO).install_write_handler(0x08, 0x0b, write8sm_delegate(*this, FUNC(ataxx_state::indyheat_analog_w)));
}
diff --git a/src/mame/drivers/lethal.cpp b/src/mame/drivers/lethal.cpp
index 16fb28cf0be..bf1d46f7c86 100644
--- a/src/mame/drivers/lethal.cpp
+++ b/src/mame/drivers/lethal.cpp
@@ -516,7 +516,7 @@ void lethal_state::lethalen(machine_config &config)
m_palette->enable_shadows();
K056832(config, m_k056832, 0);
- m_k056832->set_tile_callback(FUNC(lethal_state::tile_callback), this);
+ m_k056832->set_tile_callback(FUNC(lethal_state::tile_callback));
m_k056832->set_config(K056832_BPP_8LE, 1, 0);
m_k056832->set_palette(m_palette);
@@ -524,7 +524,7 @@ void lethal_state::lethalen(machine_config &config)
m_k053244->set_palette(m_palette);
m_k053244->set_bpp(6);
m_k053244->set_offsets(95, 0);
- m_k053244->set_sprite_callback(FUNC(lethal_state::sprite_callback), this);
+ m_k053244->set_sprite_callback(FUNC(lethal_state::sprite_callback));
K054000(config, "k054000", 0);
diff --git a/src/mame/drivers/lethalj.cpp b/src/mame/drivers/lethalj.cpp
index 2bd14a5c9dc..2467c68cb8c 100644
--- a/src/mame/drivers/lethalj.cpp
+++ b/src/mame/drivers/lethalj.cpp
@@ -1015,19 +1015,19 @@ ROM_END
void lethalj_state::init_ripribit()
{
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x04100010, 0x0410001f, write16_delegate(FUNC(lethalj_state::ripribit_control_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x04100010, 0x0410001f, write16_delegate(*this, FUNC(lethalj_state::ripribit_control_w)));
}
void lethalj_state::init_cfarm()
{
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x04100010, 0x0410001f, write16_delegate(FUNC(lethalj_state::cfarm_control_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x04100010, 0x0410001f, write16_delegate(*this, FUNC(lethalj_state::cfarm_control_w)));
}
void lethalj_state::init_cclownz()
{
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x04100010, 0x0410001f, write16_delegate(FUNC(lethalj_state::cclownz_control_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x04100010, 0x0410001f, write16_delegate(*this, FUNC(lethalj_state::cclownz_control_w)));
}
diff --git a/src/mame/drivers/liberate.cpp b/src/mame/drivers/liberate.cpp
index 1753bde6cb5..ced0d21aa19 100644
--- a/src/mame/drivers/liberate.cpp
+++ b/src/mame/drivers/liberate.cpp
@@ -77,7 +77,7 @@ WRITE8_MEMBER(liberate_state::deco16_bank_w)
m_bank = data;
if (m_bank)
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x8000, 0x800f, read8_delegate(FUNC(liberate_state::deco16_io_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x8000, 0x800f, read8_delegate(*this, FUNC(liberate_state::deco16_io_r)));
else
m_maincpu->space(AS_PROGRAM).install_read_bank(0x8000, 0x800f, "bank1");
}
@@ -180,9 +180,9 @@ WRITE8_MEMBER(liberate_state::prosoccr_io_bank_w)
m_bank = data & 1;
if (m_bank)
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x8000, 0x800f, read8_delegate(FUNC(liberate_state::deco16_io_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x8000, 0x800f, read8_delegate(*this, FUNC(liberate_state::deco16_io_r)));
else
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x8000, 0x800f, read8_delegate(FUNC(liberate_state::prosoccr_charram_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x8000, 0x800f, read8_delegate(*this, FUNC(liberate_state::prosoccr_charram_r)));
}
diff --git a/src/mame/drivers/limenko.cpp b/src/mame/drivers/limenko.cpp
index 55ccde825cd..2ee82ecd573 100644
--- a/src/mame/drivers/limenko.cpp
+++ b/src/mame/drivers/limenko.cpp
@@ -470,9 +470,9 @@ void limenko_state::copy_sprites(bitmap_ind16 &bitmap, bitmap_ind16 &sprites_bit
void limenko_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(limenko_state::get_bg_tile_info),this),TILEMAP_SCAN_ROWS,8,8,128,64);
- m_md_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(limenko_state::get_md_tile_info),this),TILEMAP_SCAN_ROWS,8,8,128,64);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(limenko_state::get_fg_tile_info),this),TILEMAP_SCAN_ROWS,8,8,128,64);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(limenko_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8,8,128,64);
+ m_md_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(limenko_state::get_md_tile_info)), TILEMAP_SCAN_ROWS, 8,8,128,64);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(limenko_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8,8,128,64);
m_md_tilemap->set_transparent_pen(0);
m_fg_tilemap->set_transparent_pen(0);
@@ -1079,21 +1079,21 @@ void limenko_state::init_common()
void limenko_state::init_dynabomb()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xe2784, 0xe2787, read32_delegate(FUNC(limenko_state::dynabomb_speedup_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xe2784, 0xe2787, read32_delegate(*this, FUNC(limenko_state::dynabomb_speedup_r)));
init_common();
}
void limenko_state::init_legendoh()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x32ab0, 0x32ab3, read32_delegate(FUNC(limenko_state::legendoh_speedup_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x32ab0, 0x32ab3, read32_delegate(*this, FUNC(limenko_state::legendoh_speedup_r)));
init_common();
}
void limenko_state::init_sb2003()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x135800, 0x135803, read32_delegate(FUNC(limenko_state::sb2003_speedup_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x135800, 0x135803, read32_delegate(*this, FUNC(limenko_state::sb2003_speedup_r)));
init_common();
}
@@ -1113,7 +1113,7 @@ void limenko_state::init_spotty()
dst[x+2] = (src[x+1]&0x0f) >> 0;
}
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x6626c, 0x6626f, read32_delegate(FUNC(limenko_state::spotty_speedup_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x6626c, 0x6626f, read32_delegate(*this, FUNC(limenko_state::spotty_speedup_r)));
m_spriteram_bit = 1;
diff --git a/src/mame/drivers/lola8a.cpp b/src/mame/drivers/lola8a.cpp
index 39ae8719f57..16fd75b7fd6 100644
--- a/src/mame/drivers/lola8a.cpp
+++ b/src/mame/drivers/lola8a.cpp
@@ -314,7 +314,7 @@ void lola8a_state::lola8a(machine_config &config)
crtc.set_screen("screen");
crtc.set_show_border_area(false);
crtc.set_char_width(8);
- crtc.set_update_row_callback(FUNC(lola8a_state::crtc_update_row), this);
+ crtc.set_update_row_callback(FUNC(lola8a_state::crtc_update_row));
crtc.out_vsync_callback().set(FUNC(lola8a_state::crtc_vsync));
PALETTE(config, m_palette, palette_device::BRG_3BIT);
diff --git a/src/mame/drivers/looping.cpp b/src/mame/drivers/looping.cpp
index 5b0d253411d..bace0c114fd 100644
--- a/src/mame/drivers/looping.cpp
+++ b/src/mame/drivers/looping.cpp
@@ -252,7 +252,7 @@ TILE_GET_INFO_MEMBER(looping_state::get_tile_info)
void looping_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(looping_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8,8, 32,32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(looping_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 32,32);
m_bg_tilemap->set_scroll_cols(0x20);
}
@@ -933,7 +933,7 @@ void looping_state::init_looping()
rom[i] = bitswap<8>(rom[i], 0,1,2,3,4,5,6,7);
/* install protection handlers */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x7000, 0x7007, read8_delegate(FUNC(looping_state::protection_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x7000, 0x7007, read8_delegate(*this, FUNC(looping_state::protection_r)));
}
diff --git a/src/mame/drivers/ltcasino.cpp b/src/mame/drivers/ltcasino.cpp
index 180f5611986..039fa48ed1c 100644
--- a/src/mame/drivers/ltcasino.cpp
+++ b/src/mame/drivers/ltcasino.cpp
@@ -430,13 +430,13 @@ void ltcasino_state::init_mv4in1()
void ltcasino_state::machine_start_ltcasino()
{
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ltcasino_state::ltcasino_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ltcasino_state::ltcasino_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_lamps.resolve();
}
void ltcasino_state::machine_start_ltcasin2()
{
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ltcasino_state::ltcasin2_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ltcasino_state::ltcasin2_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_lamps.resolve();
}
diff --git a/src/mame/drivers/luckgrln.cpp b/src/mame/drivers/luckgrln.cpp
index 541f9446497..2484e6b733a 100644
--- a/src/mame/drivers/luckgrln.cpp
+++ b/src/mame/drivers/luckgrln.cpp
@@ -188,10 +188,10 @@ TILE_GET_INFO_MEMBER(luckgrln_state::get_reel_tile_info)
void luckgrln_state::video_start()
{
- m_reel_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(luckgrln_state::get_reel_tile_info<0>), this), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
- m_reel_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(luckgrln_state::get_reel_tile_info<1>), this), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
- m_reel_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(luckgrln_state::get_reel_tile_info<2>), this), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
- m_reel_tilemap[3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(luckgrln_state::get_reel_tile_info<3>), this), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
+ m_reel_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(luckgrln_state::get_reel_tile_info<0>)), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
+ m_reel_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(luckgrln_state::get_reel_tile_info<1>)), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
+ m_reel_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(luckgrln_state::get_reel_tile_info<2>)), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
+ m_reel_tilemap[3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(luckgrln_state::get_reel_tile_info<3>)), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
for (uint8_t i = 0; i < 4; i++)
{
diff --git a/src/mame/drivers/lviv.cpp b/src/mame/drivers/lviv.cpp
index f529443a2b1..6ea1c7e75ad 100644
--- a/src/mame/drivers/lviv.cpp
+++ b/src/mame/drivers/lviv.cpp
@@ -460,7 +460,7 @@ void lviv_state::lviv(machine_config &config)
SPEAKER_SOUND(config, "speaker").add_route(ALL_OUTPUTS, "mono", 0.50);
/* snapshot */
- SNAPSHOT(config, "snapshot", "sav").set_load_callback(FUNC(lviv_state::snapshot_cb), this);
+ SNAPSHOT(config, "snapshot", "sav").set_load_callback(FUNC(lviv_state::snapshot_cb));
CASSETTE(config, m_cassette);
m_cassette->set_formats(lviv_lvt_format);
diff --git a/src/mame/drivers/lwings.cpp b/src/mame/drivers/lwings.cpp
index e6b80ef5e8e..149429aa548 100644
--- a/src/mame/drivers/lwings.cpp
+++ b/src/mame/drivers/lwings.cpp
@@ -1777,8 +1777,8 @@ ROM_END
void lwings_state::init_avengersb()
{
- /* set up protection handlers */
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xf80c, 0xf80c, write8smo_delegate(FUNC(generic_latch_8_device::write), (generic_latch_8_device*)m_soundlatch));
+ // set up protection handlers
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xf80c, 0xf80c, write8smo_delegate(*m_soundlatch, FUNC(generic_latch_8_device::write)));
}
diff --git a/src/mame/drivers/lynx.cpp b/src/mame/drivers/lynx.cpp
index a5f71e1a7aa..272587ffcaa 100644
--- a/src/mame/drivers/lynx.cpp
+++ b/src/mame/drivers/lynx.cpp
@@ -98,15 +98,15 @@ void lynx_state::lynx(machine_config &config)
/* sound hardware */
SPEAKER(config, "mono").front_center();
LYNX_SND(config, m_sound, 0);
- m_sound->set_timer_delegate(FUNC(lynx_state::sound_cb), this);
+ m_sound->set_timer_delegate(FUNC(lynx_state::sound_cb));
m_sound->add_route(ALL_OUTPUTS, "mono", 0.50);
/* devices */
- QUICKLOAD(config, "quickload", "o").set_load_callback(FUNC(lynx_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "o").set_load_callback(FUNC(lynx_state::quickload_cb));
generic_cartslot_device &cartslot(GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "lynx_cart", "lnx,lyx"));
cartslot.set_must_be_loaded(true);
- cartslot.set_device_load(FUNC(lynx_state::cart_load), this);
+ cartslot.set_device_load(FUNC(lynx_state::cart_load));
/* Software lists */
SOFTWARE_LIST(config, "cart_list").set_original("lynx");
@@ -123,7 +123,7 @@ void lynx_state::lynx2(machine_config &config)
SPEAKER(config, "rspeaker").front_right();
config.device_remove("lynx");
LYNX2_SND(config.replace(), m_sound, 0);
- m_sound->set_timer_delegate(FUNC(lynx_state::sound_cb), this);
+ m_sound->set_timer_delegate(FUNC(lynx_state::sound_cb));
m_sound->add_route(0, "lspeaker", 0.50);
m_sound->add_route(1, "rspeaker", 0.50);
}
diff --git a/src/mame/drivers/m14.cpp b/src/mame/drivers/m14.cpp
index f277b331ce6..56a1c2fb054 100644
--- a/src/mame/drivers/m14.cpp
+++ b/src/mame/drivers/m14.cpp
@@ -154,7 +154,7 @@ TILE_GET_INFO_MEMBER(m14_state::m14_get_tile_info)
void m14_state::video_start()
{
- m_m14_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(m14_state::m14_get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_m14_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(m14_state::m14_get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
diff --git a/src/mame/drivers/m20.cpp b/src/mame/drivers/m20.cpp
index 4c43bb26821..b7cb018614f 100644
--- a/src/mame/drivers/m20.cpp
+++ b/src/mame/drivers/m20.cpp
@@ -820,7 +820,7 @@ void m20_state::m20(machine_config &config)
crtc.set_screen("screen");
crtc.set_show_border_area(false);
crtc.set_char_width(16);
- crtc.set_update_row_callback(FUNC(m20_state::update_row), this);
+ crtc.set_update_row_callback(FUNC(m20_state::update_row));
I8255A(config, m_i8255, 0);
diff --git a/src/mame/drivers/m3.cpp b/src/mame/drivers/m3.cpp
index f875c49b9c2..e97675a6e50 100644
--- a/src/mame/drivers/m3.cpp
+++ b/src/mame/drivers/m3.cpp
@@ -136,7 +136,7 @@ void m3_state::m3(machine_config &config)
crtc.set_screen("screen");
crtc.set_show_border_area(false);
crtc.set_char_width(7);
- crtc.set_update_row_callback(FUNC(m3_state::crtc_update_row), this);
+ crtc.set_update_row_callback(FUNC(m3_state::crtc_update_row));
}
ROM_START( m3 )
diff --git a/src/mame/drivers/m5.cpp b/src/mame/drivers/m5.cpp
index 337f86df98b..bd7b14dedae 100644
--- a/src/mame/drivers/m5.cpp
+++ b/src/mame/drivers/m5.cpp
@@ -519,7 +519,7 @@ WRITE8_MEMBER( m5_state::mem64KBI_w ) //out 0x6c
//if AUTOSTART is on don't load any ROM cart
if (m_cart && (m_DIPS->read() & 2) != 2)
{
- program.install_read_handler(0x2000, 0x6fff, read8_delegate(FUNC(m5_cart_slot_device::read_rom), (m5_cart_slot_device*)m_cart)); //m_cart pointer to rom cart
+ program.install_read_handler(0x2000, 0x6fff, read8_delegate(*m_cart, FUNC(m5_cart_slot_device::read_rom))); //m_cart pointer to rom cart
program.unmap_write(0x2000, 0x3fff);
}
else
@@ -680,7 +680,7 @@ WRITE8_MEMBER( m5_state::mem64KRX_w ) //out 0x7f
//if KRX ROM is paged out page in cart ROM if any
if (m_cart && BIT(m_ram_mode, 1) == 0 )
{
- program.install_read_handler(0x2000, 0x6fff, read8_delegate(FUNC(m5_cart_slot_device::read_rom),(m5_cart_slot_device*)m_cart));
+ program.install_read_handler(0x2000, 0x6fff, read8_delegate(*m_cart, FUNC(m5_cart_slot_device::read_rom)));
program.unmap_write(0x2000, 0x6fff);
}
@@ -1281,10 +1281,10 @@ void m5_state::machine_reset()
case EM_5:
program.install_rom(0x0000, 0x1fff, memregion(Z80_TAG)->base());
program.unmap_write(0x0000, 0x1fff);
- program.install_readwrite_handler(0x8000, 0xffff, read8_delegate(FUNC(m5_cart_slot_device::read_ram),(m5_cart_slot_device*)m_cart_ram), write8_delegate(FUNC(m5_cart_slot_device::write_ram),(m5_cart_slot_device*)m_cart_ram));
+ program.install_readwrite_handler(0x8000, 0xffff, read8_delegate(*m_cart_ram, FUNC(m5_cart_slot_device::read_ram)), write8_delegate(*m_cart_ram, FUNC(m5_cart_slot_device::write_ram)));
if (m_cart)
{
- program.install_read_handler(0x2000, 0x6fff, read8_delegate(FUNC(m5_cart_slot_device::read_rom),(m5_cart_slot_device*)m_cart));
+ program.install_read_handler(0x2000, 0x6fff, read8_delegate(*m_cart, FUNC(m5_cart_slot_device::read_rom)));
program.unmap_write(0x2000, 0x6fff);
}
break;
@@ -1296,7 +1296,7 @@ void m5_state::machine_reset()
//if AUTOSTART is on then page out cart and start tape loading
if (m_cart && ((m_DIPS->read() & 2) != 2))
{
- program.install_read_handler(0x2000, 0x3fff, read8_delegate(FUNC(m5_cart_slot_device::read_rom),(m5_cart_slot_device*)m_cart));
+ program.install_read_handler(0x2000, 0x3fff, read8_delegate(*m_cart, FUNC(m5_cart_slot_device::read_rom)));
program.unmap_write(0x2000, 0x3fff);
}
else
@@ -1342,7 +1342,7 @@ void m5_state::machine_reset()
{
program.install_rom(0x0000, 0x1fff, memregion(Z80_TAG)->base());
program.unmap_write(0x0000, 0x1fff);
- program.install_read_handler(0x2000, 0x6fff, read8_delegate(FUNC(m5_cart_slot_device::read_rom),(m5_cart_slot_device*)m_cart));
+ program.install_read_handler(0x2000, 0x6fff, read8_delegate(*m_cart, FUNC(m5_cart_slot_device::read_rom)));
program.unmap_write(0x2000, 0x6fff);
}
m_ram_mode=0;
@@ -1381,7 +1381,7 @@ void brno_state::machine_reset()
if (m_cart)
{
- program.install_read_handler(0x2000, 0x6fff, read8_delegate(FUNC(m5_cart_slot_device::read_rom),(m5_cart_slot_device*)m_cart));
+ program.install_read_handler(0x2000, 0x6fff, read8_delegate(*m_cart, FUNC(m5_cart_slot_device::read_rom)));
program.unmap_write(0x2000, 0x6fff);
}
@@ -1526,7 +1526,7 @@ void brno_state::brno(machine_config &config)
// only one floppy drive
//config.device_remove(WD2797_TAG":1");
- //SNAPSHOT(config, "snapshot", "rmd", 0).set_load_callback(brno_state::snapshot_cb), this);
+ //SNAPSHOT(config, "snapshot", "rmd", 0).set_load_callback(brno_state::snapshot_cb));
// software list
SOFTWARE_LIST(config, "flop_list").set_original("m5_flop");
diff --git a/src/mame/drivers/m63.cpp b/src/mame/drivers/m63.cpp
index 56b13888e04..252597a4f5a 100644
--- a/src/mame/drivers/m63.cpp
+++ b/src/mame/drivers/m63.cpp
@@ -335,8 +335,8 @@ TILE_GET_INFO_MEMBER(m63_state::get_fg_tile_info)
VIDEO_START_MEMBER(m63_state,m63)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(m63_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(m63_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(m63_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(m63_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_bg_tilemap->set_scroll_cols(32);
m_fg_tilemap->set_transparent_pen(0);
diff --git a/src/mame/drivers/m68705prg.cpp b/src/mame/drivers/m68705prg.cpp
index 9bb8e2618f7..0f4a23fa273 100644
--- a/src/mame/drivers/m68705prg.cpp
+++ b/src/mame/drivers/m68705prg.cpp
@@ -232,10 +232,10 @@ void m68705prg_state_base::m68705prg(machine_config &config)
config.m_perfect_cpu_quantum = subtag("mcu");
GENERIC_SOCKET(config, m_eprom_image, generic_plain_slot, "eprom", "bin,rom");
- m_eprom_image->set_device_load(FUNC(m68705prg_state_base::eprom_load), this);
+ m_eprom_image->set_device_load(FUNC(m68705prg_state_base::eprom_load));
GENERIC_SOCKET(config, m_mcu_image, generic_plain_slot, "mcu", "bin,rom");
- m_mcu_image->set_device_load(FUNC(m68705prg_state_base::mcu_load), this);
+ m_mcu_image->set_device_load(FUNC(m68705prg_state_base::mcu_load));
config.set_default_layout(layout_m68705prg);
}
diff --git a/src/mame/drivers/m72.cpp b/src/mame/drivers/m72.cpp
index 66d343195d0..f5f698c7ca4 100644
--- a/src/mame/drivers/m72.cpp
+++ b/src/mame/drivers/m72.cpp
@@ -655,8 +655,8 @@ void m72_state::install_protection_handler(const u8 *code,const u8 *crc)
m_protection_code = code;
m_protection_crc = crc;
m_maincpu->space(AS_PROGRAM).install_read_bank(0xb0000, 0xb0fff, "bank1");
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xb0ffa, 0xb0ffb, read16_delegate(FUNC(m72_state::protection_r),this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xb0000, 0xb0fff, write16_delegate(FUNC(m72_state::protection_w),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xb0ffa, 0xb0ffb, read16_delegate(*this, FUNC(m72_state::protection_r)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xb0000, 0xb0fff, write16_delegate(*this, FUNC(m72_state::protection_w)));
membank("bank1")->configure_entry(0, m_protection_ram.get());
save_pointer(NAME(m_protection_ram), 0x1000/2);
@@ -665,36 +665,36 @@ void m72_state::install_protection_handler(const u8 *code,const u8 *crc)
void m72_state::init_bchopper()
{
install_protection_handler(bchopper_code,bchopper_crc);
- m_maincpu->space(AS_IO).install_write_handler(0xc0, 0xc1, write16_delegate(FUNC(m72_state::bchopper_sample_trigger_w),this));
+ m_maincpu->space(AS_IO).install_write_handler(0xc0, 0xc1, write16_delegate(*this, FUNC(m72_state::bchopper_sample_trigger_w)));
}
void m72_state::init_nspirit()
{
install_protection_handler(nspirit_code,nspirit_crc);
- m_maincpu->space(AS_IO).install_write_handler(0xc0, 0xc1, write16_delegate(FUNC(m72_state::nspirit_sample_trigger_w),this));
+ m_maincpu->space(AS_IO).install_write_handler(0xc0, 0xc1, write16_delegate(*this, FUNC(m72_state::nspirit_sample_trigger_w)));
}
void m72_state::init_imgfight()
{
install_protection_handler(imgfight_code,imgfightj_crc);
- m_maincpu->space(AS_IO).install_write_handler(0xc0, 0xc1, write16_delegate(FUNC(m72_state::imgfight_sample_trigger_w),this));
+ m_maincpu->space(AS_IO).install_write_handler(0xc0, 0xc1, write16_delegate(*this, FUNC(m72_state::imgfight_sample_trigger_w)));
}
void m72_state::init_dbreedm72()
{
install_protection_handler(dbreedm72_code,dbreedm72_crc);
- m_maincpu->space(AS_IO).install_write_handler(0xc0, 0xc1, write16_delegate(FUNC(m72_state::dbreedm72_sample_trigger_w),this));
+ m_maincpu->space(AS_IO).install_write_handler(0xc0, 0xc1, write16_delegate(*this, FUNC(m72_state::dbreedm72_sample_trigger_w)));
}
void m72_state::init_dkgenm72()
{
install_protection_handler(dkgenm72_code,dkgenm72_crc);
- m_maincpu->space(AS_IO).install_write_handler(0xc0, 0xc1, write16_delegate(FUNC(m72_state::dkgenm72_sample_trigger_w),this));
+ m_maincpu->space(AS_IO).install_write_handler(0xc0, 0xc1, write16_delegate(*this, FUNC(m72_state::dkgenm72_sample_trigger_w)));
}
void m72_state::init_gallop()
{
- m_maincpu->space(AS_IO).install_write_handler(0xc0, 0xc1, write16_delegate(FUNC(m72_state::gallop_sample_trigger_w),this));
+ m_maincpu->space(AS_IO).install_write_handler(0xc0, 0xc1, write16_delegate(*this, FUNC(m72_state::gallop_sample_trigger_w)));
}
diff --git a/src/mame/drivers/m90.cpp b/src/mame/drivers/m90.cpp
index e0f63a5fe2b..f2b459b0c17 100644
--- a/src/mame/drivers/m90.cpp
+++ b/src/mame/drivers/m90.cpp
@@ -851,7 +851,7 @@ void m90_state::dynablsb(machine_config &config)
m_soundcpu->set_addrmap(AS_IO, &m90_state::dynablsb_sound_cpu_io_map);
m_soundcpu->set_periodic_int(FUNC(m90_state::irq0_line_hold), attotime::from_hz(64*60)); /* half the sample rate of the original */
- m_soundcpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate());
+ m_soundcpu->remove_irq_acknowledge_callback();
m_screen->set_size(320, 240);
m_screen->set_visarea(0, 319, 0, 239);
diff --git a/src/mame/drivers/macrossp.cpp b/src/mame/drivers/macrossp.cpp
index d0fe5b3b565..e4a7cdd6986 100644
--- a/src/mame/drivers/macrossp.cpp
+++ b/src/mame/drivers/macrossp.cpp
@@ -712,13 +712,13 @@ WRITE32_MEMBER(macrossp_state::quizmoon_speedup_w)
void macrossp_state::init_macrossp()
{
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xf10158, 0xf1015b, write32_delegate(FUNC(macrossp_state::macrossp_speedup_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xf10158, 0xf1015b, write32_delegate(*this, FUNC(macrossp_state::macrossp_speedup_w)));
}
void macrossp_state::init_quizmoon()
{
#ifdef UNUSED_FUNCTION
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xf00020, 0xf00023, write32_delegate(FUNC(macrossp_state::quizmoon_speedup_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xf00020, 0xf00023, write32_delegate(*this, FUNC(macrossp_state::quizmoon_speedup_w)));
#endif
}
diff --git a/src/mame/drivers/macs.cpp b/src/mame/drivers/macs.cpp
index 5bc2554a204..ca82efc7d70 100644
--- a/src/mame/drivers/macs.cpp
+++ b/src/mame/drivers/macs.cpp
@@ -508,7 +508,7 @@ void macs_state::macs(machine_config &config)
ST0016_CPU(config, m_maincpu, 8000000); // 8 MHz ?
m_maincpu->set_memory_map(&macs_state::macs_mem);
m_maincpu->set_io_map(&macs_state::macs_io);
- m_maincpu->set_dma_offs_callback(FUNC(macs_state::dma_offset), this);
+ m_maincpu->set_dma_offs_callback(FUNC(macs_state::dma_offset));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
diff --git a/src/mame/drivers/magic10.cpp b/src/mame/drivers/magic10.cpp
index 6899800253c..13cf7246d43 100644
--- a/src/mame/drivers/magic10.cpp
+++ b/src/mame/drivers/magic10.cpp
@@ -253,9 +253,9 @@ TILE_GET_INFO_MEMBER(magic10_state::get_layer2_tile_info)
void magic10_state::video_start()
{
- m_layer0_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(magic10_state::get_layer0_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- m_layer1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(magic10_state::get_layer1_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- m_layer2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(magic10_state::get_layer2_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_layer0_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(magic10_state::get_layer0_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_layer1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(magic10_state::get_layer1_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_layer2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(magic10_state::get_layer2_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
m_layer1_tilemap->set_transparent_pen(0);
m_layer2_tilemap->set_transparent_pen(0);
diff --git a/src/mame/drivers/magicfly.cpp b/src/mame/drivers/magicfly.cpp
index 63c2f06d573..6d46a08e875 100644
--- a/src/mame/drivers/magicfly.cpp
+++ b/src/mame/drivers/magicfly.cpp
@@ -542,7 +542,7 @@ TILE_GET_INFO_MEMBER(magicfly_state::get_magicfly_tile_info)
void magicfly_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(magicfly_state::get_magicfly_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 32, 29);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(magicfly_state::get_magicfly_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 29);
}
@@ -573,7 +573,7 @@ TILE_GET_INFO_MEMBER(magicfly_state::get_7mezzo_tile_info)
VIDEO_START_MEMBER(magicfly_state, 7mezzo)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(magicfly_state::get_7mezzo_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 32, 29);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(magicfly_state::get_7mezzo_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 29);
}
diff --git a/src/mame/drivers/magictg.cpp b/src/mame/drivers/magictg.cpp
index e839285a4d3..adfc95c4f90 100644
--- a/src/mame/drivers/magictg.cpp
+++ b/src/mame/drivers/magictg.cpp
@@ -929,17 +929,13 @@ void magictg_state::magictg(machine_config &config)
DMADAC(config, "dac2").add_route(ALL_OUTPUTS, "lspeaker", 1.0);
pci_bus_legacy_device &pcibus(PCI_BUS_LEGACY(config, "pcibus", 0, 0));
- pcibus.set_device_read (0, FUNC(magictg_state::pci_dev0_r), this);
- pcibus.set_device_write(0, FUNC(magictg_state::pci_dev0_w), this);
- pcibus.set_device_read (7, FUNC(magictg_state::voodoo_0_pci_r), this);
- pcibus.set_device_write(7, FUNC(magictg_state::voodoo_0_pci_w), this);
+ pcibus.set_device(0, FUNC(magictg_state::pci_dev0_r), FUNC(magictg_state::pci_dev0_w));
+ pcibus.set_device(7, FUNC(magictg_state::voodoo_0_pci_r), FUNC(magictg_state::voodoo_0_pci_w));
#if defined(USE_TWO_3DFX)
- pcibus.set_device_read (8, FUNC(magictg_state::voodoo_1_pci_r), this);
- pcibus.set_device_write(8, FUNC(magictg_state::voodoo_1_pci_w), this);
+ pcibus.set_device(8, FUNC(magictg_state::voodoo_1_pci_r), FUNC(magictg_state::voodoo_1_pci_w));
#endif
- pcibus.set_device_read (9, FUNC(magictg_state::zr36120_pci_r), this); // TODO: ZR36120 device
- pcibus.set_device_write(9, FUNC(magictg_state::zr36120_pci_w), this); // TODO: ZR36120 device
+ pcibus.set_device(9, FUNC(magictg_state::zr36120_pci_r), FUNC(magictg_state::zr36120_pci_w)); // TODO: ZR36120 device
VOODOO_1(config, m_voodoo[0], STD_VOODOO_1_CLOCK);
m_voodoo[0]->set_fbmem(2);
diff --git a/src/mame/drivers/mainevt.cpp b/src/mame/drivers/mainevt.cpp
index 47c2ec7f72a..c793f5280af 100644
--- a/src/mame/drivers/mainevt.cpp
+++ b/src/mame/drivers/mainevt.cpp
@@ -443,13 +443,13 @@ void mainevt_state::mainevt(machine_config &config)
K052109(config, m_k052109, 24_MHz_XTAL);
m_k052109->set_palette("palette");
m_k052109->set_screen("screen");
- m_k052109->set_tile_callback(FUNC(mainevt_state::mainevt_tile_callback), this);
+ m_k052109->set_tile_callback(FUNC(mainevt_state::mainevt_tile_callback));
m_k052109->irq_handler().set_inputline(m_maincpu, M6809_IRQ_LINE);
K051960(config, m_k051960, 24_MHz_XTAL);
m_k051960->set_palette("palette");
m_k051960->set_screen("screen");
- m_k051960->set_sprite_callback(FUNC(mainevt_state::mainevt_sprite_callback), this);
+ m_k051960->set_sprite_callback(FUNC(mainevt_state::mainevt_sprite_callback));
/* sound hardware */
SPEAKER(config, "mono").front_center();
@@ -492,13 +492,13 @@ void mainevt_state::devstors(machine_config &config)
K052109(config, m_k052109, 24_MHz_XTAL);
m_k052109->set_palette("palette");
m_k052109->set_screen("screen");
- m_k052109->set_tile_callback(FUNC(mainevt_state::dv_tile_callback), this);
+ m_k052109->set_tile_callback(FUNC(mainevt_state::dv_tile_callback));
m_k052109->irq_handler().set_inputline(m_maincpu, M6809_IRQ_LINE);
K051960(config, m_k051960, 24_MHz_XTAL);
m_k051960->set_palette("palette");
m_k051960->set_screen("screen");
- m_k051960->set_sprite_callback(FUNC(mainevt_state::dv_sprite_callback), this);
+ m_k051960->set_sprite_callback(FUNC(mainevt_state::dv_sprite_callback));
K051733(config, "k051733", 0);
diff --git a/src/mame/drivers/majorpkr.cpp b/src/mame/drivers/majorpkr.cpp
index a0379db64a6..a5e39d4bd91 100644
--- a/src/mame/drivers/majorpkr.cpp
+++ b/src/mame/drivers/majorpkr.cpp
@@ -557,8 +557,8 @@ TILE_GET_INFO_MEMBER(majorpkr_state::fg_get_tile_info)
void majorpkr_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(majorpkr_state::bg_get_tile_info),this), TILEMAP_SCAN_ROWS, 16, 8, 36, 28);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(majorpkr_state::fg_get_tile_info),this), TILEMAP_SCAN_ROWS, 16, 8, 36, 28);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(majorpkr_state::bg_get_tile_info)), TILEMAP_SCAN_ROWS, 16, 8, 36, 28);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(majorpkr_state::fg_get_tile_info)), TILEMAP_SCAN_ROWS, 16, 8, 36, 28);
m_fg_tilemap->set_transparent_pen(0);
}
diff --git a/src/mame/drivers/mappy.cpp b/src/mame/drivers/mappy.cpp
index f41d55efb89..d3b62a7774f 100644
--- a/src/mame/drivers/mappy.cpp
+++ b/src/mame/drivers/mappy.cpp
@@ -2064,7 +2064,9 @@ void mappy_state::init_grobda()
However, removing the 15XX from the board causes sound to disappear completely, so
the 15XX may still play some part in conveying speech to the DAC.
*/
- m_subcpu->space(AS_PROGRAM).install_write_handler(0x0002, 0x0002, write8_delegate(FUNC(dac_byte_interface::data_w), (dac_byte_interface *)m_dac));
+ write8_delegate dac_w(*this);
+ dac_w.set(*m_dac, FUNC(dac_byte_interface::data_w));
+ m_subcpu->space(AS_PROGRAM).install_write_handler(0x0002, 0x0002, dac_w);
}
diff --git a/src/mame/drivers/marinedt.cpp b/src/mame/drivers/marinedt.cpp
index 76150efe426..28ba37f3524 100644
--- a/src/mame/drivers/marinedt.cpp
+++ b/src/mame/drivers/marinedt.cpp
@@ -213,7 +213,7 @@ void marinedt_state::init_seabitmap()
void marinedt_state::video_start()
{
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(marinedt_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(marinedt_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_tilemap->set_transparent_pen(0);
diff --git a/src/mame/drivers/mastboyo.cpp b/src/mame/drivers/mastboyo.cpp
index 748154d4531..f07e63ac0cd 100644
--- a/src/mame/drivers/mastboyo.cpp
+++ b/src/mame/drivers/mastboyo.cpp
@@ -74,7 +74,7 @@ TILE_GET_INFO_MEMBER(mastboyo_state::get_fg_tile_info)
void mastboyo_state::video_start()
{
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mastboyo_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mastboyo_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
uint32_t mastboyo_state::screen_update_mastboyo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
diff --git a/src/mame/drivers/maygay1b.cpp b/src/mame/drivers/maygay1b.cpp
index 2fb76a59e81..128fa91beff 100644
--- a/src/mame/drivers/maygay1b.cpp
+++ b/src/mame/drivers/maygay1b.cpp
@@ -860,6 +860,6 @@ void maygay1b_state::init_m1()
// if there is no OKI region disable writes here, the rom might be missing, so alert user
if (m_oki_region == nullptr) {
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x2420, 0x2421, write8_delegate(FUNC(maygay1b_state::m1ab_no_oki_w), this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x2420, 0x2421, write8_delegate(*this, FUNC(maygay1b_state::m1ab_no_oki_w)));
}
}
diff --git a/src/mame/drivers/maygayv1.cpp b/src/mame/drivers/maygayv1.cpp
index baea9d0482d..024e0553408 100644
--- a/src/mame/drivers/maygayv1.cpp
+++ b/src/mame/drivers/maygayv1.cpp
@@ -827,7 +827,7 @@ INPUT_PORTS_END
void maygayv1_state::cpu_space_map(address_map &map)
{
map(0xfffff0, 0xffffff).m(m_maincpu, FUNC(m68000_base_device::autovectors_map));
- map(0xfffffa, 0xfffffb).lr16("duart irq", [this]() -> u16 { return m_duart68681->get_irq_vector(); });
+ map(0xfffffa, 0xfffffb).lr16(NAME([this] () -> u16 { return m_duart68681->get_irq_vector(); }));
}
WRITE_LINE_MEMBER(maygayv1_state::duart_irq_handler)
diff --git a/src/mame/drivers/mbc200.cpp b/src/mame/drivers/mbc200.cpp
index 105ea31fe1f..07ef1b84754 100644
--- a/src/mame/drivers/mbc200.cpp
+++ b/src/mame/drivers/mbc200.cpp
@@ -327,7 +327,7 @@ void mbc200_state::mbc200(machine_config &config)
m_crtc->set_screen("screen");
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8);
- m_crtc->set_update_row_callback(FUNC(mbc200_state::update_row), this);
+ m_crtc->set_update_row_callback(FUNC(mbc200_state::update_row));
// sound
SPEAKER(config, "mono").front_center();
diff --git a/src/mame/drivers/mbc55x.cpp b/src/mame/drivers/mbc55x.cpp
index ecfbcfebc00..4cab6e24bae 100644
--- a/src/mame/drivers/mbc55x.cpp
+++ b/src/mame/drivers/mbc55x.cpp
@@ -323,7 +323,7 @@ void mbc55x_state::mbc55x(machine_config &config)
m_crtc->set_screen(SCREEN_TAG);
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8);
- m_crtc->set_update_row_callback(FUNC(mbc55x_state::crtc_update_row), this);
+ m_crtc->set_update_row_callback(FUNC(mbc55x_state::crtc_update_row));
m_crtc->out_vsync_callback().set(FUNC(mbc55x_state::vid_vsync_changed));
m_crtc->out_hsync_callback().set(FUNC(mbc55x_state::vid_hsync_changed));
diff --git a/src/mame/drivers/mbee.cpp b/src/mame/drivers/mbee.cpp
index a875a3338ee..fcab9586626 100644
--- a/src/mame/drivers/mbee.cpp
+++ b/src/mame/drivers/mbee.cpp
@@ -682,12 +682,12 @@ void mbee_state::mbee(machine_config &config)
m_crtc->set_screen(m_screen);
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8);
- m_crtc->set_update_row_callback(FUNC(mbee_state::crtc_update_row), this);
- m_crtc->set_on_update_addr_change_callback(FUNC(mbee_state::crtc_update_addr), this);
+ m_crtc->set_update_row_callback(FUNC(mbee_state::crtc_update_row));
+ m_crtc->set_on_update_addr_change_callback(FUNC(mbee_state::crtc_update_addr));
m_crtc->out_vsync_callback().set(FUNC(mbee_state::crtc_vs));
- QUICKLOAD(config, "quickload", "mwb,com,bee", attotime::from_seconds(3)).set_load_callback(FUNC(mbee_state::quickload_bee), this);
- QUICKLOAD(config, "quickload2", "bin", attotime::from_seconds(3)).set_load_callback(FUNC(mbee_state::quickload_bin), this);
+ QUICKLOAD(config, "quickload", "mwb,com,bee", attotime::from_seconds(3)).set_load_callback(FUNC(mbee_state::quickload_bee));
+ QUICKLOAD(config, "quickload2", "bin", attotime::from_seconds(3)).set_load_callback(FUNC(mbee_state::quickload_bin));
CENTRONICS(config, m_centronics, centronics_devices, "printer");
m_centronics->ack_handler().set(m_pio, FUNC(z80pio_device::strobe_a));
@@ -741,12 +741,12 @@ void mbee_state::mbeeic(machine_config &config)
m_crtc->set_screen(m_screen);
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8);
- m_crtc->set_update_row_callback(FUNC(mbee_state::crtc_update_row), this);
- m_crtc->set_on_update_addr_change_callback(FUNC(mbee_state::crtc_update_addr), this);
+ m_crtc->set_update_row_callback(FUNC(mbee_state::crtc_update_row));
+ m_crtc->set_on_update_addr_change_callback(FUNC(mbee_state::crtc_update_addr));
m_crtc->out_vsync_callback().set(FUNC(mbee_state::crtc_vs));
- QUICKLOAD(config, "quickload", "mwb,com,bee", attotime::from_seconds(2)).set_load_callback(FUNC(mbee_state::quickload_bee), this);
- QUICKLOAD(config, "quickload2", "bin", attotime::from_seconds(2)).set_load_callback(FUNC(mbee_state::quickload_bin), this);
+ QUICKLOAD(config, "quickload", "mwb,com,bee", attotime::from_seconds(2)).set_load_callback(FUNC(mbee_state::quickload_bee));
+ QUICKLOAD(config, "quickload2", "bin", attotime::from_seconds(2)).set_load_callback(FUNC(mbee_state::quickload_bin));
CENTRONICS(config, m_centronics, centronics_devices, "printer");
m_centronics->ack_handler().set(m_pio, FUNC(z80pio_device::strobe_a));
diff --git a/src/mame/drivers/mcatadv.cpp b/src/mame/drivers/mcatadv.cpp
index d062e19c0bd..b24ac4dd117 100644
--- a/src/mame/drivers/mcatadv.cpp
+++ b/src/mame/drivers/mcatadv.cpp
@@ -448,12 +448,12 @@ void mcatadv_state::mcatadv(machine_config &config)
TMAP038(config, m_tilemap[0]);
m_tilemap[0]->set_gfxdecode_tag(m_gfxdecode);
m_tilemap[0]->set_gfx(0);
- m_tilemap[0]->set_tile_callback(tilemap038_device::tmap038_cb_delegate(FUNC(mcatadv_state::get_banked_color<0>), this));
+ m_tilemap[0]->set_tile_callback(FUNC(mcatadv_state::get_banked_color<0>));
TMAP038(config, m_tilemap[1]);
m_tilemap[1]->set_gfxdecode_tag(m_gfxdecode);
m_tilemap[1]->set_gfx(1);
- m_tilemap[1]->set_tile_callback(tilemap038_device::tmap038_cb_delegate(FUNC(mcatadv_state::get_banked_color<1>), this));
+ m_tilemap[1]->set_tile_callback(FUNC(mcatadv_state::get_banked_color<1>));
WATCHDOG_TIMER(config, m_watchdog).set_time(attotime::from_seconds(3)); /* a guess, and certainly wrong */
diff --git a/src/mame/drivers/mcr.cpp b/src/mame/drivers/mcr.cpp
index 49ba0917688..2b9a3fff688 100644
--- a/src/mame/drivers/mcr.cpp
+++ b/src/mame/drivers/mcr.cpp
@@ -2833,7 +2833,7 @@ void mcr_state::mcr_init(int cpuboard, int vidboard, int ssioboard)
if (m_ssio.found())
{
- m_ssio->set_custom_output(0, 0xff, write8_delegate(FUNC(mcr_state::mcr_control_port_w), this));
+ m_ssio->set_custom_output(0, 0xff, *this, FUNC(mcr_state::mcr_control_port_w));
}
}
@@ -2843,8 +2843,8 @@ void mcr_state::init_solarfox()
mcr_init(90009, 91399, 90908);
m_mcr12_sprite_xoffs = 16;
- m_ssio->set_custom_input(0, 0x1c, read8_delegate(FUNC(mcr_state::solarfox_ip0_r), this));
- m_ssio->set_custom_input(1, 0xff, read8_delegate(FUNC(mcr_state::solarfox_ip1_r), this));
+ m_ssio->set_custom_input(0, 0x1c, *this, FUNC(mcr_state::solarfox_ip0_r));
+ m_ssio->set_custom_input(1, 0xff, *this, FUNC(mcr_state::solarfox_ip1_r));
}
@@ -2853,7 +2853,7 @@ void mcr_state::init_kick()
mcr_init(90009, 91399, 90908);
m_mcr12_sprite_xoffs_flip = 16;
- m_ssio->set_custom_input(1, 0xf0, read8_delegate(FUNC(mcr_state::kick_ip1_r), this));
+ m_ssio->set_custom_input(1, 0xf0, *this, FUNC(mcr_state::kick_ip1_r));
}
@@ -2862,7 +2862,7 @@ void mcr_dpoker_state::init_dpoker()
mcr_init(90009, 91399, 90908);
m_mcr12_sprite_xoffs_flip = 16;
- m_ssio->set_custom_input(0, 0x8e, read8_delegate(FUNC(mcr_dpoker_state::ip0_r),this));
+ m_ssio->set_custom_input(0, 0x8e, *this, FUNC(mcr_dpoker_state::ip0_r));
// meter ram, is it battery backed?
m_maincpu->space(AS_PROGRAM).install_ram(0x8000, 0x81ff);
@@ -2872,10 +2872,10 @@ void mcr_dpoker_state::init_dpoker()
m_maincpu->space(AS_IO).install_read_port(0x28, 0x28, "P28");
m_maincpu->space(AS_IO).install_read_port(0x2c, 0x2c, "P2C");
- m_maincpu->space(AS_IO).install_write_handler(0x2c, 0x2c, write8_delegate(FUNC(mcr_dpoker_state::lamps1_w),this));
- m_maincpu->space(AS_IO).install_write_handler(0x30, 0x30, write8_delegate(FUNC(mcr_dpoker_state::lamps2_w),this));
- m_maincpu->space(AS_IO).install_write_handler(0x34, 0x34, write8_delegate(FUNC(mcr_dpoker_state::output_w),this));
- m_maincpu->space(AS_IO).install_write_handler(0x3f, 0x3f, write8_delegate(FUNC(mcr_dpoker_state::meters_w),this));
+ m_maincpu->space(AS_IO).install_write_handler(0x2c, 0x2c, write8_delegate(*this, FUNC(mcr_dpoker_state::lamps1_w)));
+ m_maincpu->space(AS_IO).install_write_handler(0x30, 0x30, write8_delegate(*this, FUNC(mcr_dpoker_state::lamps2_w)));
+ m_maincpu->space(AS_IO).install_write_handler(0x34, 0x34, write8_delegate(*this, FUNC(mcr_dpoker_state::output_w)));
+ m_maincpu->space(AS_IO).install_write_handler(0x3f, 0x3f, write8_delegate(*this, FUNC(mcr_dpoker_state::meters_w)));
m_coin_status = 0;
m_output = 0;
@@ -2895,9 +2895,9 @@ void mcr_state::init_wacko()
{
mcr_init(90010, 91399, 90913);
- m_ssio->set_custom_input(1, 0xff, read8_delegate(FUNC(mcr_state::wacko_ip1_r),this));
- m_ssio->set_custom_input(2, 0xff, read8_delegate(FUNC(mcr_state::wacko_ip2_r),this));
- m_ssio->set_custom_output(4, 0x01, write8_delegate(FUNC(mcr_state::wacko_op4_w),this));
+ m_ssio->set_custom_input(1, 0xff, *this, FUNC(mcr_state::wacko_ip1_r));
+ m_ssio->set_custom_input(2, 0xff, *this, FUNC(mcr_state::wacko_ip2_r));
+ m_ssio->set_custom_output(4, 0x01, *this, FUNC(mcr_state::wacko_op4_w));
}
@@ -2905,8 +2905,8 @@ void mcr_state::init_twotiger()
{
mcr_init(90010, 91399, 90913);
- m_ssio->set_custom_output(4, 0xff, write8_delegate(FUNC(mcr_state::twotiger_op4_w),this));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xe800, 0xefff, 0, 0x1000, 0, read8_delegate(FUNC(mcr_state::twotiger_videoram_r),this), write8_delegate(FUNC(mcr_state::twotiger_videoram_w),this));
+ m_ssio->set_custom_output(4, 0xff, *this, FUNC(mcr_state::twotiger_op4_w));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xe800, 0xefff, 0, 0x1000, 0, read8_delegate(*this, FUNC(mcr_state::twotiger_videoram_r)), write8_delegate(*this, FUNC(mcr_state::twotiger_videoram_w)));
}
@@ -2914,8 +2914,8 @@ void mcr_state::init_kroozr()
{
mcr_init(90010, 91399, 91483);
- m_ssio->set_custom_input(1, 0x47, read8_delegate(FUNC(mcr_state::kroozr_ip1_r),this));
- m_ssio->set_custom_output(4, 0x34, write8_delegate(FUNC(mcr_state::kroozr_op4_w),this));
+ m_ssio->set_custom_input(1, 0x47, *this, FUNC(mcr_state::kroozr_ip1_r));
+ m_ssio->set_custom_output(4, 0x34, *this, FUNC(mcr_state::kroozr_op4_w));
}
@@ -2923,7 +2923,7 @@ void mcr_state::init_journey()
{
mcr_init(91475, 91464, 90913);
- m_ssio->set_custom_output(4, 0x01, write8_delegate(FUNC(mcr_state::journey_op4_w),this));
+ m_ssio->set_custom_output(4, 0x01, *this, FUNC(mcr_state::journey_op4_w));
}
@@ -2937,7 +2937,7 @@ void mcr_state::init_dotrone()
{
mcr_init(91490, 91464, 91657);
- m_ssio->set_custom_output(4, 0xff, write8_delegate(FUNC(mcr_state::dotron_op4_w),this));
+ m_ssio->set_custom_output(4, 0xff, *this, FUNC(mcr_state::dotron_op4_w));
}
@@ -2945,8 +2945,8 @@ void mcr_nflfoot_state::init_nflfoot()
{
mcr_init(91490, 91464, 91657);
- m_ssio->set_custom_input(2, 0x80, read8_delegate(FUNC(mcr_nflfoot_state::ip2_r),this));
- m_ssio->set_custom_output(4, 0xff, write8_delegate(FUNC(mcr_nflfoot_state::op4_w),this));
+ m_ssio->set_custom_input(2, 0x80, *this, FUNC(mcr_nflfoot_state::ip2_r));
+ m_ssio->set_custom_output(4, 0xff, *this, FUNC(mcr_nflfoot_state::op4_w));
save_item(NAME(m_ipu_sio_txda));
save_item(NAME(m_ipu_sio_txdb));
@@ -2957,11 +2957,11 @@ void mcr_state::init_demoderb()
{
mcr_init(91490, 91464, 90913);
- m_ssio->set_custom_input(1, 0xfc, read8_delegate(FUNC(mcr_state::demoderb_ip1_r),this));
- m_ssio->set_custom_input(2, 0xfc, read8_delegate(FUNC(mcr_state::demoderb_ip2_r),this));
- m_ssio->set_custom_output(4, 0xff, write8_delegate(FUNC(mcr_state::demoderb_op4_w),this));
+ m_ssio->set_custom_input(1, 0xfc, *this, FUNC(mcr_state::demoderb_ip1_r));
+ m_ssio->set_custom_input(2, 0xfc, *this, FUNC(mcr_state::demoderb_ip2_r));
+ m_ssio->set_custom_output(4, 0xff, *this, FUNC(mcr_state::demoderb_op4_w));
- /* the SSIO Z80 doesn't have any program to execute */
+ // the SSIO Z80 doesn't have any program to execute
m_ssio->suspend_cpu();
}
diff --git a/src/mame/drivers/mcr3.cpp b/src/mame/drivers/mcr3.cpp
index 193a58241fc..b0602f799db 100644
--- a/src/mame/drivers/mcr3.cpp
+++ b/src/mame/drivers/mcr3.cpp
@@ -1569,26 +1569,26 @@ void mcr3_state::mcr_common_init()
void mcr3_state::init_demoderm()
{
mcr_common_init();
- m_maincpu->space(AS_IO).install_read_handler(0x01, 0x01, read8_delegate(FUNC(mcr3_state::demoderm_ip1_r),this));
- m_maincpu->space(AS_IO).install_read_handler(0x02, 0x02, read8_delegate(FUNC(mcr3_state::demoderm_ip2_r),this));
- m_maincpu->space(AS_IO).install_write_handler(0x06, 0x06, write8_delegate(FUNC(mcr3_state::demoderm_op6_w),this));
+ m_maincpu->space(AS_IO).install_read_handler(0x01, 0x01, read8_delegate(*this, FUNC(mcr3_state::demoderm_ip1_r)));
+ m_maincpu->space(AS_IO).install_read_handler(0x02, 0x02, read8_delegate(*this, FUNC(mcr3_state::demoderm_ip2_r)));
+ m_maincpu->space(AS_IO).install_write_handler(0x06, 0x06, write8_delegate(*this, FUNC(mcr3_state::demoderm_op6_w)));
}
void mcr3_state::init_sarge()
{
mcr_common_init();
- m_maincpu->space(AS_IO).install_write_handler(0x06, 0x06, write8_delegate(FUNC(midway_turbo_cheap_squeak_device::write),m_turbo_cheap_squeak.target()));
+ m_maincpu->space(AS_IO).install_write_handler(0x06, 0x06, write8_delegate(*m_turbo_cheap_squeak, FUNC(midway_turbo_cheap_squeak_device::write)));
}
void mcr3_state::init_maxrpm()
{
mcr_common_init();
- m_maincpu->space(AS_IO).install_read_handler(0x01, 0x01, read8_delegate(FUNC(mcr3_state::maxrpm_ip1_r),this));
- m_maincpu->space(AS_IO).install_read_handler(0x02, 0x02, read8_delegate(FUNC(mcr3_state::maxrpm_ip2_r),this));
- m_maincpu->space(AS_IO).install_write_handler(0x05, 0x05, write8_delegate(FUNC(mcr3_state::maxrpm_op5_w),this));
- m_maincpu->space(AS_IO).install_write_handler(0x06, 0x06, write8_delegate(FUNC(mcr3_state::maxrpm_op6_w),this));
+ m_maincpu->space(AS_IO).install_read_handler(0x01, 0x01, read8_delegate(*this, FUNC(mcr3_state::maxrpm_ip1_r)));
+ m_maincpu->space(AS_IO).install_read_handler(0x02, 0x02, read8_delegate(*this, FUNC(mcr3_state::maxrpm_ip2_r)));
+ m_maincpu->space(AS_IO).install_write_handler(0x05, 0x05, write8_delegate(*this, FUNC(mcr3_state::maxrpm_op5_w)));
+ m_maincpu->space(AS_IO).install_write_handler(0x06, 0x06, write8_delegate(*this, FUNC(mcr3_state::maxrpm_op6_w)));
save_item(NAME(m_maxrpm_adc_control));
save_item(NAME(m_maxrpm_last_shift));
@@ -1600,35 +1600,35 @@ void mcr3_state::init_maxrpm()
void mcr3_state::init_rampage()
{
mcr_common_init();
- m_maincpu->space(AS_IO).install_read_handler(0x04, 0x04, read8_delegate(FUNC(mcr3_state::rampage_ip4_r),this));
- m_maincpu->space(AS_IO).install_write_handler(0x06, 0x06, write8_delegate(FUNC(mcr3_state::rampage_op6_w),this));
+ m_maincpu->space(AS_IO).install_read_handler(0x04, 0x04, read8_delegate(*this, FUNC(mcr3_state::rampage_ip4_r)));
+ m_maincpu->space(AS_IO).install_write_handler(0x06, 0x06, write8_delegate(*this, FUNC(mcr3_state::rampage_op6_w)));
}
void mcr3_state::init_powerdrv()
{
mcr_common_init();
- m_maincpu->space(AS_IO).install_read_handler(0x02, 0x02, read8_delegate(FUNC(mcr3_state::powerdrv_ip2_r),this));
- m_maincpu->space(AS_IO).install_write_handler(0x05, 0x05, write8_delegate(FUNC(mcr3_state::powerdrv_op5_w),this));
- m_maincpu->space(AS_IO).install_write_handler(0x06, 0x06, write8_delegate(FUNC(mcr3_state::powerdrv_op6_w),this));
+ m_maincpu->space(AS_IO).install_read_handler(0x02, 0x02, read8_delegate(*this, FUNC(mcr3_state::powerdrv_ip2_r)));
+ m_maincpu->space(AS_IO).install_write_handler(0x05, 0x05, write8_delegate(*this, FUNC(mcr3_state::powerdrv_op5_w)));
+ m_maincpu->space(AS_IO).install_write_handler(0x06, 0x06, write8_delegate(*this, FUNC(mcr3_state::powerdrv_op6_w)));
}
void mcr3_state::init_stargrds()
{
mcr_common_init();
- m_maincpu->space(AS_IO).install_read_handler(0x00, 0x00, read8_delegate(FUNC(mcr3_state::stargrds_ip0_r),this));
- m_maincpu->space(AS_IO).install_write_handler(0x05, 0x05, write8_delegate(FUNC(mcr3_state::stargrds_op5_w),this));
- m_maincpu->space(AS_IO).install_write_handler(0x06, 0x06, write8_delegate(FUNC(mcr3_state::stargrds_op6_w),this));
+ m_maincpu->space(AS_IO).install_read_handler(0x00, 0x00, read8_delegate(*this, FUNC(mcr3_state::stargrds_ip0_r)));
+ m_maincpu->space(AS_IO).install_write_handler(0x05, 0x05, write8_delegate(*this, FUNC(mcr3_state::stargrds_op5_w)));
+ m_maincpu->space(AS_IO).install_write_handler(0x06, 0x06, write8_delegate(*this, FUNC(mcr3_state::stargrds_op6_w)));
}
void mcr3_state::init_spyhunt()
{
mcr_common_init();
- m_ssio->set_custom_input(1, 0x60, read8_delegate(FUNC(mcr3_state::spyhunt_ip1_r),this));
- m_ssio->set_custom_input(2, 0xff, read8_delegate(FUNC(mcr3_state::spyhunt_ip2_r),this));
- m_ssio->set_custom_output(4, 0xff, write8_delegate(FUNC(mcr3_state::spyhunt_op4_w),this));
+ m_ssio->set_custom_input(1, 0x60, *this, FUNC(mcr3_state::spyhunt_ip1_r));
+ m_ssio->set_custom_input(2, 0xff, *this, FUNC(mcr3_state::spyhunt_ip2_r));
+ m_ssio->set_custom_output(4, 0xff, *this, FUNC(mcr3_state::spyhunt_op4_w));
m_spyhunt_sprite_color_mask = 0x00;
m_spyhunt_scroll_offset = 16;
@@ -1648,9 +1648,9 @@ void mcr3_state::init_crater()
void mcr3_state::init_turbotag()
{
mcr_common_init();
- m_ssio->set_custom_input(1, 0x60, read8_delegate(FUNC(mcr3_state::spyhunt_ip1_r),this));
- m_ssio->set_custom_input(2, 0xff, read8_delegate(FUNC(mcr3_state::turbotag_ip2_r),this));
- m_ssio->set_custom_output(4, 0xff, write8_delegate(FUNC(mcr3_state::spyhunt_op4_w),this));
+ m_ssio->set_custom_input(1, 0x60, *this, FUNC(mcr3_state::spyhunt_ip1_r));
+ m_ssio->set_custom_input(2, 0xff, *this, FUNC(mcr3_state::turbotag_ip2_r));
+ m_ssio->set_custom_output(4, 0xff, *this, FUNC(mcr3_state::spyhunt_op4_w));
m_spyhunt_sprite_color_mask = 0x00;
m_spyhunt_scroll_offset = 88;
@@ -1659,7 +1659,7 @@ void mcr3_state::init_turbotag()
m_cheap_squeak_deluxe->suspend_cpu();
/* kludge for bad ROM read */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x0b53, 0x0b53, read8_delegate(FUNC(mcr3_state::turbotag_kludge_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x0b53, 0x0b53, read8_delegate(*this, FUNC(mcr3_state::turbotag_kludge_r)));
}
diff --git a/src/mame/drivers/mcr68.cpp b/src/mame/drivers/mcr68.cpp
index e8367ad72bf..280bbab4453 100644
--- a/src/mame/drivers/mcr68.cpp
+++ b/src/mame/drivers/mcr68.cpp
@@ -1488,7 +1488,7 @@ void mcr68_state::init_xenophob()
m_timing_factor = attotime::from_hz(m_maincpu->unscaled_clock() / 10) * (256 + 16);
/* install control port handler */
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x0c0000, 0x0cffff, write16_delegate(FUNC(mcr68_state::xenophobe_control_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x0c0000, 0x0cffff, write16_delegate(*this, FUNC(mcr68_state::xenophobe_control_w)));
}
@@ -1500,9 +1500,9 @@ void mcr68_state::init_spyhunt2()
m_timing_factor = attotime::from_hz(m_maincpu->unscaled_clock() / 10) * (256 + 16);
/* analog port handling is a bit tricky */
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x0c0000, 0x0cffff, write16_delegate(FUNC(mcr68_state::spyhunt2_control_w),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x0d0000, 0x0dffff, read16_delegate(FUNC(mcr68_state::spyhunt2_port_0_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x0e0000, 0x0effff, read16_delegate(FUNC(mcr68_state::spyhunt2_port_1_r),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x0c0000, 0x0cffff, write16_delegate(*this, FUNC(mcr68_state::spyhunt2_control_w)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x0d0000, 0x0dffff, read16_delegate(*this, FUNC(mcr68_state::spyhunt2_port_0_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x0e0000, 0x0effff, read16_delegate(*this, FUNC(mcr68_state::spyhunt2_port_1_r)));
}
@@ -1516,7 +1516,7 @@ void mcr68_state::init_blasted()
m_timing_factor = attotime::from_hz(m_maincpu->unscaled_clock() / 10) * (256 + 16);
/* handle control writes */
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x0c0000, 0x0cffff, write16_delegate(FUNC(mcr68_state::blasted_control_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x0c0000, 0x0cffff, write16_delegate(*this, FUNC(mcr68_state::blasted_control_w)));
}
void mcr68_state::init_intlaser()
@@ -1527,7 +1527,7 @@ void mcr68_state::init_intlaser()
m_timing_factor = attotime::from_hz(m_maincpu->unscaled_clock() / 10) * (256 + 16);
/* handle control writes */
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x0c0000, 0x0cffff, write16_delegate(FUNC(mcr68_state::blasted_control_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x0c0000, 0x0cffff, write16_delegate(*this, FUNC(mcr68_state::blasted_control_w)));
}
@@ -1541,10 +1541,10 @@ void mcr68_state::init_archrivl()
m_timing_factor = attotime::from_hz(m_maincpu->unscaled_clock() / 10) * (256 + 16);
/* handle control writes */
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x0c0000, 0x0cffff, write16_delegate(FUNC(mcr68_state::archrivl_control_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x0c0000, 0x0cffff, write16_delegate(*this, FUNC(mcr68_state::archrivl_control_w)));
/* 49-way joystick handling is a bit tricky */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x0e0000, 0x0effff, read16_delegate(FUNC(mcr68_state::archrivl_port_1_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x0e0000, 0x0effff, read16_delegate(*this, FUNC(mcr68_state::archrivl_port_1_r)));
}
READ16_MEMBER(mcr68_state::archrivlb_port_1_r)
@@ -1560,10 +1560,10 @@ void mcr68_state::init_archrivlb()
m_timing_factor = attotime::from_hz(m_maincpu->unscaled_clock() / 10) * (256 + 16);
/* handle control writes */
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x0c0000, 0x0cffff, write16_delegate(FUNC(mcr68_state::archrivl_control_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x0c0000, 0x0cffff, write16_delegate(*this, FUNC(mcr68_state::archrivl_control_w)));
/* 49-way joystick replaced by standard 8way stick */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x0e0000, 0x0effff, read16_delegate(FUNC(mcr68_state::archrivlb_port_1_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x0e0000, 0x0effff, read16_delegate(*this, FUNC(mcr68_state::archrivlb_port_1_r)));
}
diff --git a/src/mame/drivers/mediagx.cpp b/src/mame/drivers/mediagx.cpp
index 61f4cfae945..658d666d67d 100644
--- a/src/mame/drivers/mediagx.cpp
+++ b/src/mame/drivers/mediagx.cpp
@@ -81,17 +81,11 @@
#define SPEEDUP_HACKS 1
-struct speedup_entry
-{
- uint32_t offset;
- uint32_t pc;
-};
-
class mediagx_state : public pcat_base_state
{
public:
- mediagx_state(const machine_config &mconfig, device_type type, const char *tag)
- : pcat_base_state(mconfig, type, tag),
+ mediagx_state(const machine_config &mconfig, device_type type, const char *tag) :
+ pcat_base_state(mconfig, type, tag),
m_ide(*this, "ide"),
m_ramdac(*this, "ramdac"),
m_dmadac(*this, "dac%u", 0U),
@@ -114,6 +108,12 @@ protected:
virtual void video_start() override;
private:
+ struct speedup_entry
+ {
+ uint32_t offset;
+ uint32_t pc;
+ };
+
DECLARE_READ32_MEMBER(disp_ctrl_r);
DECLARE_WRITE32_MEMBER(disp_ctrl_w);
DECLARE_READ32_MEMBER(memory_ctrl_r);
@@ -127,18 +127,7 @@ private:
DECLARE_READ8_MEMBER(io20_r);
DECLARE_WRITE8_MEMBER(io20_w);
uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
- DECLARE_READ32_MEMBER(speedup0_r);
- DECLARE_READ32_MEMBER(speedup1_r);
- DECLARE_READ32_MEMBER(speedup2_r);
- DECLARE_READ32_MEMBER(speedup3_r);
- DECLARE_READ32_MEMBER(speedup4_r);
- DECLARE_READ32_MEMBER(speedup5_r);
- DECLARE_READ32_MEMBER(speedup6_r);
- DECLARE_READ32_MEMBER(speedup7_r);
- DECLARE_READ32_MEMBER(speedup8_r);
- DECLARE_READ32_MEMBER(speedup9_r);
- DECLARE_READ32_MEMBER(speedup10_r);
- DECLARE_READ32_MEMBER(speedup11_r);
+ template <offs_t N> uint32_t speedup_r(address_space &space) { return generic_speedup(space, N); }
TIMER_DEVICE_CALLBACK_MEMBER(sound_timer_callback);
void draw_char(bitmap_rgb32 &bitmap, const rectangle &cliprect, gfx_element *gfx, int ch, int att, int x, int y);
void draw_framebuffer(bitmap_rgb32 &bitmap, const rectangle &cliprect);
@@ -220,7 +209,9 @@ private:
int m_speedup_count;
#endif
- static const read32_delegate s_speedup_handlers[];
+ using speedup_handler = std::pair<uint32_t (mediagx_state::*)(address_space &), const char *>;
+ static const speedup_handler s_speedup_handlers[];
+ static const speedup_entry a51site4_speedups[];
};
// Display controller registers
@@ -891,8 +882,7 @@ void mediagx_state::mediagx(machine_config &config)
pcat_common(config);
pci_bus_legacy_device &pcibus(PCI_BUS_LEGACY(config, "pcibus", 0, 0));
- pcibus.set_device_read (18, FUNC(mediagx_state::cx5510_pci_r), this);
- pcibus.set_device_write(18, FUNC(mediagx_state::cx5510_pci_w), this);
+ pcibus.set_device(18, FUNC(mediagx_state::cx5510_pci_r), FUNC(mediagx_state::cx5510_pci_w));
ide_controller_32_device &ide(IDE_CONTROLLER_32(config, "ide").options(ata_devices, "hdd", nullptr, true));
ide.irq_handler().set(m_pic8259_2, FUNC(pic8259_device::ir6_w));
@@ -940,24 +930,11 @@ uint32_t mediagx_state::generic_speedup(address_space &space, int idx)
return m_main_ram[m_speedup_table[idx].offset/4];
}
-READ32_MEMBER(mediagx_state::speedup0_r) { return generic_speedup(space, 0); }
-READ32_MEMBER(mediagx_state::speedup1_r) { return generic_speedup(space, 1); }
-READ32_MEMBER(mediagx_state::speedup2_r) { return generic_speedup(space, 2); }
-READ32_MEMBER(mediagx_state::speedup3_r) { return generic_speedup(space, 3); }
-READ32_MEMBER(mediagx_state::speedup4_r) { return generic_speedup(space, 4); }
-READ32_MEMBER(mediagx_state::speedup5_r) { return generic_speedup(space, 5); }
-READ32_MEMBER(mediagx_state::speedup6_r) { return generic_speedup(space, 6); }
-READ32_MEMBER(mediagx_state::speedup7_r) { return generic_speedup(space, 7); }
-READ32_MEMBER(mediagx_state::speedup8_r) { return generic_speedup(space, 8); }
-READ32_MEMBER(mediagx_state::speedup9_r) { return generic_speedup(space, 9); }
-READ32_MEMBER(mediagx_state::speedup10_r) { return generic_speedup(space, 10); }
-READ32_MEMBER(mediagx_state::speedup11_r) { return generic_speedup(space, 11); }
-
-const read32_delegate mediagx_state::s_speedup_handlers[]
+const mediagx_state::speedup_handler mediagx_state::s_speedup_handlers[]
{
- { FUNC(mediagx_state::speedup0_r), (mediagx_state*)nullptr }, { FUNC(mediagx_state::speedup1_r), (mediagx_state*)nullptr }, { FUNC(mediagx_state::speedup2_r), (mediagx_state*)nullptr }, { FUNC(mediagx_state::speedup3_r), (mediagx_state*)nullptr },
- { FUNC(mediagx_state::speedup4_r), (mediagx_state*)nullptr }, { FUNC(mediagx_state::speedup5_r), (mediagx_state*)nullptr }, { FUNC(mediagx_state::speedup6_r), (mediagx_state*)nullptr }, { FUNC(mediagx_state::speedup7_r), (mediagx_state*)nullptr },
- { FUNC(mediagx_state::speedup8_r), (mediagx_state*)nullptr }, { FUNC(mediagx_state::speedup9_r), (mediagx_state*)nullptr }, { FUNC(mediagx_state::speedup10_r), (mediagx_state*)nullptr }, { FUNC(mediagx_state::speedup11_r), (mediagx_state*)nullptr }
+ { FUNC(mediagx_state::speedup_r<0>) }, { FUNC(mediagx_state::speedup_r<1>) }, { FUNC(mediagx_state::speedup_r<2>) }, { FUNC(mediagx_state::speedup_r<3>) },
+ { FUNC(mediagx_state::speedup_r<4>) }, { FUNC(mediagx_state::speedup_r<5>) }, { FUNC(mediagx_state::speedup_r<6>) }, { FUNC(mediagx_state::speedup_r<7>) },
+ { FUNC(mediagx_state::speedup_r<8>) }, { FUNC(mediagx_state::speedup_r<9>) }, { FUNC(mediagx_state::speedup_r<10>) }, { FUNC(mediagx_state::speedup_r<11>) }
};
#ifdef MAME_DEBUG
@@ -975,18 +952,15 @@ void mediagx_state::install_speedups(const speedup_entry *entries, int count)
m_speedup_table = entries;
m_speedup_count = count;
- for (int i = 0; i < count; i++) {
- read32_delegate func = s_speedup_handlers[i];
- func.late_bind(*this);
- m_maincpu->space(AS_PROGRAM).install_read_handler(entries[i].offset, entries[i].offset + 3, func);
- }
+ for (int i = 0; i < count; i++)
+ m_maincpu->space(AS_PROGRAM).install_read_handler(entries[i].offset, entries[i].offset + 3, read32mo_delegate(*this, s_speedup_handlers[i].first, s_speedup_handlers[i].second));
#ifdef MAME_DEBUG
machine().add_notifier(MACHINE_NOTIFY_EXIT, machine_notify_delegate(&mediagx_state::report_speedups, this));
#endif
}
-static const speedup_entry a51site4_speedups[] =
+const mediagx_state::speedup_entry mediagx_state::a51site4_speedups[] =
{
{ 0x5504c, 0x0363e },
{ 0x5f11c, 0x0363e },
diff --git a/src/mame/drivers/megadriv.cpp b/src/mame/drivers/megadriv.cpp
index 2fd81336110..723bd131193 100644
--- a/src/mame/drivers/megadriv.cpp
+++ b/src/mame/drivers/megadriv.cpp
@@ -277,10 +277,10 @@ MACHINE_START_MEMBER(md_cons_state, md_common)
void md_cons_state::install_cartslot()
{
// for now m_cartslot is only in MD and not 32x and SegaCD
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7fffff, read16_delegate(FUNC(base_md_cart_slot_device::read),(base_md_cart_slot_device*)m_cart), write16_delegate(FUNC(base_md_cart_slot_device::write),(base_md_cart_slot_device*)m_cart));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xa13000, 0xa130ff, read16_delegate(FUNC(base_md_cart_slot_device::read_a13),(base_md_cart_slot_device*)m_cart), write16_delegate(FUNC(base_md_cart_slot_device::write_a13),(base_md_cart_slot_device*)m_cart));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xa15000, 0xa150ff, read16_delegate(FUNC(base_md_cart_slot_device::read_a15),(base_md_cart_slot_device*)m_cart), write16_delegate(FUNC(base_md_cart_slot_device::write_a15),(base_md_cart_slot_device*)m_cart));
-// m_maincpu->space(AS_PROGRAM).install_write_handler(0xa14000, 0xa14003, write16_delegate(FUNC(base_md_cart_slot_device::write_tmss_bank),(base_md_cart_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7fffff, read16_delegate(*m_cart, FUNC(base_md_cart_slot_device::read)), write16_delegate(*m_cart, FUNC(base_md_cart_slot_device::write)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xa13000, 0xa130ff, read16_delegate(*m_cart, FUNC(base_md_cart_slot_device::read_a13)), write16_delegate(*m_cart, FUNC(base_md_cart_slot_device::write_a13)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xa15000, 0xa150ff, read16_delegate(*m_cart, FUNC(base_md_cart_slot_device::read_a15)), write16_delegate(*m_cart, FUNC(base_md_cart_slot_device::write_a15)));
+// m_maincpu->space(AS_PROGRAM).install_write_handler(0xa14000, 0xa14003, write16_delegate(*m_cart, FUNC(base_md_cart_slot_device::write_tmss_bank)));
}
READ16_MEMBER( md_cons_state::tmss_r )
@@ -296,7 +296,7 @@ WRITE16_MEMBER( md_cons_state::tmss_swap_w )
if (data & 0x0001)
{
install_cartslot();
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xa14100, 0xa14101, write16_delegate(FUNC(md_cons_state::tmss_swap_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xa14100, 0xa14101, write16_delegate(*this, FUNC(md_cons_state::tmss_swap_w)));
}
else
{
@@ -308,9 +308,9 @@ WRITE16_MEMBER( md_cons_state::tmss_swap_w )
void md_cons_state::install_tmss()
{
m_maincpu->space(AS_PROGRAM).unmap_readwrite(0x000000, 0x7fffff);
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x000000, 0x7fffff, read16_delegate(FUNC(md_cons_state::tmss_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x000000, 0x7fffff, read16_delegate(*this, FUNC(md_cons_state::tmss_r)));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xa14100, 0xa14101, write16_delegate(FUNC(md_cons_state::tmss_swap_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xa14100, 0xa14101, write16_delegate(*this, FUNC(md_cons_state::tmss_swap_w)));
}
@@ -469,8 +469,8 @@ ROM_END
void md_cons_state::init_mess_md_common()
{
- m_megadrive_io_read_data_port_ptr = read8_delegate(FUNC(md_cons_state::mess_md_io_read_data_port),this);
- m_megadrive_io_write_data_port_ptr = write16_delegate(FUNC(md_cons_state::mess_md_io_write_data_port),this);
+ m_megadrive_io_read_data_port_ptr = read8_delegate(*this, FUNC(md_cons_state::mess_md_io_read_data_port));
+ m_megadrive_io_write_data_port_ptr = write16_delegate(*this, FUNC(md_cons_state::mess_md_io_write_data_port));
}
void md_cons_state::init_genesis()
@@ -605,9 +605,9 @@ void md_cons_state::genesis_32x(machine_config &config)
MCFG_MACHINE_START_OVERRIDE(md_cons_state, md_common)
MCFG_MACHINE_RESET_OVERRIDE(md_cons_state, ms_megadriv)
- m_vdp->set_md_32x_scanline(FUNC(md_cons_state::_32x_scanline_callback), this);
- m_vdp->set_md_32x_scanline_helper(FUNC(md_cons_state::_32x_scanline_helper_callback), this);
- m_vdp->set_md_32x_interrupt(FUNC(md_cons_state::_32x_interrupt_callback), this);
+ m_vdp->set_md_32x_scanline(FUNC(md_cons_state::_32x_scanline_callback));
+ m_vdp->set_md_32x_scanline_helper(FUNC(md_cons_state::_32x_scanline_helper_callback));
+ m_vdp->set_md_32x_interrupt(FUNC(md_cons_state::_32x_interrupt_callback));
m_vdp->reset_routes();
m_vdp->add_route(ALL_OUTPUTS, "lspeaker", (0.50)/2);
m_vdp->add_route(ALL_OUTPUTS, "rspeaker", (0.50)/2);
@@ -627,7 +627,7 @@ void md_cons_state::genesis_32x(machine_config &config)
generic_cartslot_device &cartslot(GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "_32x_cart", "32x,bin"));
cartslot.set_must_be_loaded(true);
- cartslot.set_device_load(FUNC(md_cons_state::_32x_cart), this);
+ cartslot.set_device_load(FUNC(md_cons_state::_32x_cart));
SOFTWARE_LIST(config, "cart_list").set_original("32x").set_filter("NTSC-U");
}
@@ -640,9 +640,9 @@ void md_cons_state::mdj_32x(machine_config &config)
MCFG_MACHINE_START_OVERRIDE(md_cons_state, md_common)
MCFG_MACHINE_RESET_OVERRIDE(md_cons_state, ms_megadriv)
- m_vdp->set_md_32x_scanline(FUNC(md_cons_state::_32x_scanline_callback), this);
- m_vdp->set_md_32x_scanline_helper(FUNC(md_cons_state::_32x_scanline_helper_callback), this);
- m_vdp->set_md_32x_interrupt(FUNC(md_cons_state::_32x_interrupt_callback), this);
+ m_vdp->set_md_32x_scanline(FUNC(md_cons_state::_32x_scanline_callback));
+ m_vdp->set_md_32x_scanline_helper(FUNC(md_cons_state::_32x_scanline_helper_callback));
+ m_vdp->set_md_32x_interrupt(FUNC(md_cons_state::_32x_interrupt_callback));
m_vdp->reset_routes();
m_vdp->add_route(ALL_OUTPUTS, "lspeaker", (0.50)/2);
m_vdp->add_route(ALL_OUTPUTS, "rspeaker", (0.50)/2);
@@ -662,7 +662,7 @@ void md_cons_state::mdj_32x(machine_config &config)
generic_cartslot_device &cartslot(GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "_32x_cart", "32x,bin"));
cartslot.set_must_be_loaded(true);
- cartslot.set_device_load(FUNC(md_cons_state::_32x_cart), this);
+ cartslot.set_device_load(FUNC(md_cons_state::_32x_cart));
SOFTWARE_LIST(config, "cart_list").set_original("32x").set_filter("NTSC-J");
}
@@ -675,9 +675,9 @@ void md_cons_state::md_32x(machine_config &config)
MCFG_MACHINE_START_OVERRIDE(md_cons_state, md_common)
MCFG_MACHINE_RESET_OVERRIDE(md_cons_state, ms_megadriv)
- m_vdp->set_md_32x_scanline(FUNC(md_cons_state::_32x_scanline_callback), this);
- m_vdp->set_md_32x_scanline_helper(FUNC(md_cons_state::_32x_scanline_helper_callback), this);
- m_vdp->set_md_32x_interrupt(FUNC(md_cons_state::_32x_interrupt_callback), this);
+ m_vdp->set_md_32x_scanline(FUNC(md_cons_state::_32x_scanline_callback));
+ m_vdp->set_md_32x_scanline_helper(FUNC(md_cons_state::_32x_scanline_helper_callback));
+ m_vdp->set_md_32x_interrupt(FUNC(md_cons_state::_32x_interrupt_callback));
m_vdp->reset_routes();
m_vdp->add_route(ALL_OUTPUTS, "lspeaker", (0.50)/2);
m_vdp->add_route(ALL_OUTPUTS, "rspeaker", (0.50)/2);
@@ -697,7 +697,7 @@ void md_cons_state::md_32x(machine_config &config)
generic_cartslot_device &cartslot(GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "_32x_cart", "32x,bin"));
cartslot.set_must_be_loaded(true);
- cartslot.set_device_load(FUNC(md_cons_state::_32x_cart), this);
+ cartslot.set_device_load(FUNC(md_cons_state::_32x_cart));
SOFTWARE_LIST(config, "cart_list").set_original("32x").set_filter("PAL");
}
@@ -808,7 +808,7 @@ void md_cons_state::genesis_32x_scd(machine_config &config)
MCFG_MACHINE_START_OVERRIDE(md_cons_state, ms_megacd)
config.device_remove("cartslot");
- GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "_32x_cart", "32x,bin").set_device_load(FUNC(md_cons_state::_32x_cart), this);
+ GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "_32x_cart", "32x,bin").set_device_load(FUNC(md_cons_state::_32x_cart));
//config.m_perfect_cpu_quantum = subtag("32x_master_sh2");
SOFTWARE_LIST(config, "cd_list").set_original("segacd");
@@ -828,7 +828,7 @@ void md_cons_state::md_32x_scd(machine_config &config)
MCFG_MACHINE_START_OVERRIDE(md_cons_state, ms_megacd)
config.device_remove("cartslot");
- GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "_32x_cart", "32x,bin").set_device_load(FUNC(md_cons_state::_32x_cart), this);
+ GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "_32x_cart", "32x,bin").set_device_load(FUNC(md_cons_state::_32x_cart));
//config.m_perfect_cpu_quantum = subtag("32x_master_sh2");
SOFTWARE_LIST(config, "cd_list").set_original("megacd");
@@ -848,7 +848,7 @@ void md_cons_state::mdj_32x_scd(machine_config &config)
MCFG_MACHINE_START_OVERRIDE(md_cons_state, ms_megacd)
config.device_remove("cartslot");
- GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "_32x_cart", "32x,bin").set_device_load(FUNC(md_cons_state::_32x_cart), this);
+ GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "_32x_cart", "32x,bin").set_device_load(FUNC(md_cons_state::_32x_cart));
//config.m_perfect_cpu_quantum = subtag("32x_master_sh2");
SOFTWARE_LIST(config, "cd_list").set_original("megacdj");
diff --git a/src/mame/drivers/megadriv_acbl.cpp b/src/mame/drivers/megadriv_acbl.cpp
index cf6e5463d9d..3fa037f74ca 100644
--- a/src/mame/drivers/megadriv_acbl.cpp
+++ b/src/mame/drivers/megadriv_acbl.cpp
@@ -956,8 +956,8 @@ void md_boot_state::init_aladmdb()
#endif
// 220000 = writes to mcu? 330000 = reads?
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x220000, 0x220001, write16_delegate(FUNC(md_boot_state::aladmdb_w),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x330000, 0x330001, read16_delegate(FUNC(md_boot_state::aladmdb_r),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x220000, 0x220001, write16_delegate(*this, FUNC(md_boot_state::aladmdb_w)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x330000, 0x330001, read16_delegate(*this, FUNC(md_boot_state::aladmdb_r)));
init_megadrij();
}
@@ -1005,12 +1005,12 @@ void md_boot_state::init_mk3mdb()
rom[0x07] = 0x02;
rom[0x06] = 0x10;
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x770070, 0x770075, read16_delegate(FUNC(md_boot_state::mk3mdb_dsw_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x770070, 0x770075, read16_delegate(*this, FUNC(md_boot_state::mk3mdb_dsw_r)));
init_megadriv();
// 6 button game, so overwrite 3 button io handlers
- m_megadrive_io_read_data_port_ptr = read8_delegate(FUNC(md_base_state::megadrive_io_read_data_port_6button),this);
- m_megadrive_io_write_data_port_ptr = write16_delegate(FUNC(md_base_state::megadrive_io_write_data_port_6button),this);
+ m_megadrive_io_read_data_port_ptr = read8_delegate(*this, FUNC(md_base_state::megadrive_io_read_data_port_6button));
+ m_megadrive_io_write_data_port_ptr = write16_delegate(*this, FUNC(md_base_state::megadrive_io_write_data_port_6button));
}
void md_boot_state::init_ssf2mdb()
@@ -1021,12 +1021,12 @@ void md_boot_state::init_ssf2mdb()
membank("bank5")->set_base(memregion( "maincpu" )->base() + 0x400000 );
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x770070, 0x770075, read16_delegate(FUNC(md_boot_state::ssf2mdb_dsw_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x770070, 0x770075, read16_delegate(*this, FUNC(md_boot_state::ssf2mdb_dsw_r)));
init_megadrij();
// 6 button game, so overwrite 3 button io handlers
- m_megadrive_io_read_data_port_ptr = read8_delegate(FUNC(md_base_state::megadrive_io_read_data_port_6button),this);
- m_megadrive_io_write_data_port_ptr = write16_delegate(FUNC(md_base_state::megadrive_io_write_data_port_6button),this);
+ m_megadrive_io_read_data_port_ptr = read8_delegate(*this, FUNC(md_base_state::megadrive_io_read_data_port_6button));
+ m_megadrive_io_write_data_port_ptr = write16_delegate(*this, FUNC(md_base_state::megadrive_io_write_data_port_6button));
}
void md_boot_state::init_srmdb()
@@ -1052,14 +1052,14 @@ void md_boot_state::init_srmdb()
rom[0x06] = 0xd2;
rom[0x07] = 0x00;
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x770070, 0x770075, read16_delegate(FUNC(md_boot_state::srmdb_dsw_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x770070, 0x770075, read16_delegate(*this, FUNC(md_boot_state::srmdb_dsw_r)));
init_megadriv();
}
void md_boot_state::init_topshoot()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x200050, 0x200051, read16_delegate(FUNC(md_boot_state::topshoot_200051_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x200050, 0x200051, read16_delegate(*this, FUNC(md_boot_state::topshoot_200051_r)));
m_maincpu->space(AS_PROGRAM).install_read_port(0x200042, 0x200043, "IN0");
m_maincpu->space(AS_PROGRAM).install_read_port(0x200044, 0x200045, "IN1");
m_maincpu->space(AS_PROGRAM).install_read_port(0x200046, 0x200047, "IN2");
@@ -1086,7 +1086,7 @@ void md_boot_state::init_barek3()
void md_boot_state::init_sonic2mb()
{
// 100000 = writes to unpopulated MCU?
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x100000, 0x100001, write16_delegate(FUNC(md_boot_state::aladmdb_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x100000, 0x100001, write16_delegate(*this, FUNC(md_boot_state::aladmdb_w)));
m_maincpu->space(AS_PROGRAM).install_read_port(0x300000, 0x300001, "DSW");
init_megadrij();
@@ -1103,15 +1103,15 @@ void md_boot_state::init_twinktmb()
rom[0x06] = 0xcc;
init_megadrij();
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x100000, 0x100001, write16_delegate(FUNC(md_boot_state::aladmdb_w),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x300000, 0x300001, read16_delegate(FUNC(md_boot_state::twinktmb_r),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x100000, 0x100001, write16_delegate(*this, FUNC(md_boot_state::aladmdb_w)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x300000, 0x300001, read16_delegate(*this, FUNC(md_boot_state::twinktmb_r)));
}
void md_boot_state::init_jparkmb()
{
init_megadrij();
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x100000, 0x100001, write16_delegate(FUNC(md_boot_state::aladmdb_w),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x300000, 0x300001, read16_delegate(FUNC(md_boot_state::jparkmb_r),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x100000, 0x100001, write16_delegate(*this, FUNC(md_boot_state::aladmdb_w)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x300000, 0x300001, read16_delegate(*this, FUNC(md_boot_state::jparkmb_r)));
}
/*************************************
diff --git a/src/mame/drivers/megadriv_rad.cpp b/src/mame/drivers/megadriv_rad.cpp
index 9ff44620906..2b8d326d3de 100644
--- a/src/mame/drivers/megadriv_rad.cpp
+++ b/src/mame/drivers/megadriv_rad.cpp
@@ -178,8 +178,8 @@ void megadriv_radica_state::init_megadriv_radica_6button_pal()
{
init_megadrie();
// 6 button game, so overwrite 3 button io handlers
- m_megadrive_io_read_data_port_ptr = read8_delegate(FUNC(md_base_state::megadrive_io_read_data_port_6button),this);
- m_megadrive_io_write_data_port_ptr = write16_delegate(FUNC(md_base_state::megadrive_io_write_data_port_6button),this);
+ m_megadrive_io_read_data_port_ptr = read8_delegate(*this, FUNC(md_base_state::megadrive_io_read_data_port_6button));
+ m_megadrive_io_write_data_port_ptr = write16_delegate(*this, FUNC(md_base_state::megadrive_io_write_data_port_6button));
}
// NTSC releases
diff --git a/src/mame/drivers/megaplay.cpp b/src/mame/drivers/megaplay.cpp
index c3f9989ced5..12cf4276d84 100644
--- a/src/mame/drivers/megaplay.cpp
+++ b/src/mame/drivers/megaplay.cpp
@@ -927,17 +927,17 @@ void mplay_state::init_megaplay()
m_ic37_ram = std::make_unique<uint8_t[]>(0x10000);
init_megadrij();
- m_megadrive_io_read_data_port_ptr = read8_delegate(FUNC(md_base_state::megadrive_io_read_data_port_3button),this);
- m_megadrive_io_write_data_port_ptr = write16_delegate(FUNC(md_base_state::megadrive_io_write_data_port_3button),this);
+ m_megadrive_io_read_data_port_ptr = read8_delegate(*this, FUNC(md_base_state::megadrive_io_read_data_port_3button));
+ m_megadrive_io_write_data_port_ptr = write16_delegate(*this, FUNC(md_base_state::megadrive_io_write_data_port_3button));
// for now ...
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xa10000, 0xa1001f, read16_delegate(FUNC(mplay_state::mp_io_read),this), write16_delegate(FUNC(mplay_state::mp_io_write),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xa10000, 0xa1001f, read16_delegate(*this, FUNC(mplay_state::mp_io_read)), write16_delegate(*this, FUNC(mplay_state::mp_io_write)));
// megaplay has ram shared with the bios cpu here
m_z80snd->space(AS_PROGRAM).install_ram(0x2000, 0x3fff, &m_ic36_ram[0]);
// instead of a RAM mirror the 68k sees the extra ram of the 2nd z80 too
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xa02000, 0xa03fff, read16_delegate(FUNC(mplay_state::extra_ram_r),this), write16_delegate(FUNC(mplay_state::extra_ram_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xa02000, 0xa03fff, read16_delegate(*this, FUNC(mplay_state::extra_ram_r)), write16_delegate(*this, FUNC(mplay_state::extra_ram_w)));
}
/*
diff --git a/src/mame/drivers/megasys1.cpp b/src/mame/drivers/megasys1.cpp
index 4e097cd0755..0090c681377 100644
--- a/src/mame/drivers/megasys1.cpp
+++ b/src/mame/drivers/megasys1.cpp
@@ -603,7 +603,7 @@ void megasys1_state::z80_sound_map(address_map &map)
{
map(0x0000, 0x3fff).rom();
map(0xc000, 0xc7ff).ram();
- map(0xe000, 0xe000).lr8("soundlatch_r_z", [this](){ return m_soundlatch[0]->read() & 0xff; });
+ map(0xe000, 0xe000).lr8(NAME([this] () { return m_soundlatch[0]->read() & 0xff; }));
map(0xf000, 0xf000).nopw(); /* ?? */
}
@@ -4621,8 +4621,8 @@ WRITE16_MEMBER(megasys1_state::megasys1A_mcu_hs_w)
void megasys1_state::init_astyanax()
{
astyanax_rom_decode(machine(), "maincpu");
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x00000, 0x3ffff, read16_delegate(FUNC(megasys1_state::megasys1A_mcu_hs_r),this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x20000, 0x20009, write16_delegate(FUNC(megasys1_state::megasys1A_mcu_hs_w),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x00000, 0x3ffff, read16_delegate(*this, FUNC(megasys1_state::megasys1A_mcu_hs_r)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x20000, 0x20009, write16_delegate(*this, FUNC(megasys1_state::megasys1A_mcu_hs_w)));
m_mcu_hs = 0;
memset(m_mcu_hs_ram, 0, sizeof(m_mcu_hs_ram));
@@ -4766,8 +4766,8 @@ void megasys1_state::init_iganinju()
{
phantasm_rom_decode(machine(), "maincpu");
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x00000, 0x3ffff, read16_delegate(FUNC(megasys1_state::iganinju_mcu_hs_r),this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x2f000, 0x2f009, write16_delegate(FUNC(megasys1_state::iganinju_mcu_hs_w),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x00000, 0x3ffff, read16_delegate(*this, FUNC(megasys1_state::iganinju_mcu_hs_r)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x2f000, 0x2f009, write16_delegate(*this, FUNC(megasys1_state::iganinju_mcu_hs_w)));
//m_rom_maincpu[0x00006e/2] = 0x0420; // the only game that does
// not like lev 3 interrupts
@@ -4785,8 +4785,8 @@ void megasys1_state::init_jitsupro()
jitsupro_gfx_unmangle("scroll0"); // Gfx
jitsupro_gfx_unmangle("sprites");
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x00000, 0x3ffff, read16_delegate(FUNC(megasys1_state::megasys1A_mcu_hs_r),this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x20000, 0x20009, write16_delegate(FUNC(megasys1_state::megasys1A_mcu_hs_w),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x00000, 0x3ffff, read16_delegate(*this, FUNC(megasys1_state::megasys1A_mcu_hs_r)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x20000, 0x20009, write16_delegate(*this, FUNC(megasys1_state::megasys1A_mcu_hs_w)));
m_mcu_hs = 0;
memset(m_mcu_hs_ram, 0, sizeof(m_mcu_hs_ram));
@@ -4802,7 +4802,7 @@ void megasys1_state::init_peekaboo()
m_okibank->configure_entry(7, &ROM[0x20000]);
m_okibank->configure_entries(0, 7, &ROM[0x20000], 0x20000);
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x100000, 0x100001, read16_delegate(FUNC(megasys1_state::protection_peekaboo_r),this), write16_delegate(FUNC(megasys1_state::protection_peekaboo_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x100000, 0x100001, read16_delegate(*this, FUNC(megasys1_state::protection_peekaboo_r)), write16_delegate(*this, FUNC(megasys1_state::protection_peekaboo_w)));
save_item(NAME(m_protection_val));
}
@@ -4853,14 +4853,14 @@ void megasys1_state::init_soldamj()
{
astyanax_rom_decode(machine(), "maincpu");
/* Sprite RAM is mirrored */
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x8c000, 0x8cfff, read16_delegate(FUNC(megasys1_state::soldamj_spriteram16_r),this), write16_delegate(FUNC(megasys1_state::soldamj_spriteram16_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x8c000, 0x8cfff, read16_delegate(*this, FUNC(megasys1_state::soldamj_spriteram16_r)), write16_delegate(*this, FUNC(megasys1_state::soldamj_spriteram16_w)));
}
void megasys1_state::init_soldam()
{
phantasm_rom_decode(machine(), "maincpu");
/* Sprite RAM is mirrored */
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x8c000, 0x8cfff, read16_delegate(FUNC(megasys1_state::soldamj_spriteram16_r),this), write16_delegate(FUNC(megasys1_state::soldamj_spriteram16_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x8c000, 0x8cfff, read16_delegate(*this, FUNC(megasys1_state::soldamj_spriteram16_r)), write16_delegate(*this, FUNC(megasys1_state::soldamj_spriteram16_w)));
}
@@ -4894,8 +4894,8 @@ WRITE16_MEMBER(megasys1_state::stdragon_mcu_hs_w)
void megasys1_state::init_stdragon()
{
phantasm_rom_decode(machine(), "maincpu");
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x00000, 0x3ffff, read16_delegate(FUNC(megasys1_state::stdragon_mcu_hs_r),this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x23ff0, 0x23ff9, write16_delegate(FUNC(megasys1_state::stdragon_mcu_hs_w),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x00000, 0x3ffff, read16_delegate(*this, FUNC(megasys1_state::stdragon_mcu_hs_r)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x23ff0, 0x23ff9, write16_delegate(*this, FUNC(megasys1_state::stdragon_mcu_hs_w)));
m_mcu_hs = 0;
memset(m_mcu_hs_ram, 0, sizeof(m_mcu_hs_ram));
@@ -4911,8 +4911,8 @@ void megasys1_state::init_stdragona()
stdragona_gfx_unmangle("scroll0");
stdragona_gfx_unmangle("sprites");
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x00000, 0x3ffff, read16_delegate(FUNC(megasys1_state::stdragon_mcu_hs_r),this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x23ff0, 0x23ff9, write16_delegate(FUNC(megasys1_state::stdragon_mcu_hs_w),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x00000, 0x3ffff, read16_delegate(*this, FUNC(megasys1_state::stdragon_mcu_hs_r)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x23ff0, 0x23ff9, write16_delegate(*this, FUNC(megasys1_state::stdragon_mcu_hs_w)));
m_mcu_hs = 0;
memset(m_mcu_hs_ram, 0, sizeof(m_mcu_hs_ram));
diff --git a/src/mame/drivers/megatech.cpp b/src/mame/drivers/megatech.cpp
index 7ccc2c2cc82..7b10b7f7c5b 100644
--- a/src/mame/drivers/megatech.cpp
+++ b/src/mame/drivers/megatech.cpp
@@ -386,20 +386,20 @@ void mtech_state::set_genz80_as_sms()
memcpy(sms_rom.get(), m_region_maincpu->base(), 0xc000);
- prg.install_write_handler(0xfffc, 0xffff, write8_delegate(FUNC(mtech_state::mt_sms_standard_rom_bank_w),this));
+ prg.install_write_handler(0xfffc, 0xffff, write8_delegate(*this, FUNC(mtech_state::mt_sms_standard_rom_bank_w)));
// ports
- io.install_read_handler (0x40, 0x41, 0, 0x3e, 0, read8sm_delegate(FUNC(mtech_state::sms_count_r),this));
- io.install_write_handler (0x40, 0x41, 0, 0x3e, 0, write8smo_delegate(FUNC(sega315_5124_device::psg_w),(sega315_5124_device *)m_vdp));
- io.install_readwrite_handler (0x80, 0x80, 0, 0x3e, 0, read8smo_delegate(FUNC(sega315_5124_device::data_read),(sega315_5124_device *)m_vdp), write8smo_delegate(FUNC(sega315_5124_device::data_write),(sega315_5124_device *)m_vdp));
- io.install_readwrite_handler (0x81, 0x81, 0, 0x3e, 0, read8smo_delegate(FUNC(sega315_5124_device::control_read),(sega315_5124_device *)m_vdp), write8smo_delegate(FUNC(sega315_5124_device::control_write),(sega315_5124_device *)m_vdp));
+ io.install_read_handler (0x40, 0x41, 0, 0x3e, 0, read8sm_delegate(*this, FUNC(mtech_state::sms_count_r)));
+ io.install_write_handler (0x40, 0x41, 0, 0x3e, 0, write8smo_delegate(*m_vdp, FUNC(sega315_5124_device::psg_w)));
+ io.install_readwrite_handler (0x80, 0x80, 0, 0x3e, 0, read8smo_delegate(*m_vdp, FUNC(sega315_5124_device::data_read)), write8smo_delegate(*m_vdp, FUNC(sega315_5124_device::data_write)));
+ io.install_readwrite_handler (0x81, 0x81, 0, 0x3e, 0, read8smo_delegate(*m_vdp, FUNC(sega315_5124_device::control_read)), write8smo_delegate(*m_vdp, FUNC(sega315_5124_device::control_write)));
- io.install_read_handler (0x10, 0x10, read8_delegate(FUNC(mtech_state::sms_ioport_dd_r),this)); // super tetris
+ io.install_read_handler (0x10, 0x10, read8_delegate(*this, FUNC(mtech_state::sms_ioport_dd_r))); // super tetris
- io.install_read_handler (0xdc, 0xdc, read8_delegate(FUNC(mtech_state::sms_ioport_dc_r),this));
- io.install_read_handler (0xdd, 0xdd, read8_delegate(FUNC(mtech_state::sms_ioport_dd_r),this));
- io.install_read_handler (0xde, 0xde, read8_delegate(FUNC(mtech_state::sms_ioport_dd_r),this));
- io.install_read_handler (0xdf, 0xdf, read8_delegate(FUNC(mtech_state::sms_ioport_dd_r),this)); // adams family
+ io.install_read_handler (0xdc, 0xdc, read8_delegate(*this, FUNC(mtech_state::sms_ioport_dc_r)));
+ io.install_read_handler (0xdd, 0xdd, read8_delegate(*this, FUNC(mtech_state::sms_ioport_dd_r)));
+ io.install_read_handler (0xde, 0xde, read8_delegate(*this, FUNC(mtech_state::sms_ioport_dd_r)));
+ io.install_read_handler (0xdf, 0xdf, read8_delegate(*this, FUNC(mtech_state::sms_ioport_dd_r))); // adams family
}
@@ -413,12 +413,12 @@ void mtech_state::set_genz80_as_md()
prg.install_ram(0x0000, 0x1fff, m_genz80.z80_prgram.get());
- prg.install_readwrite_handler(0x4000, 0x4003, read8sm_delegate(FUNC(ym2612_device::read), (ym2612_device *)m_ymsnd), write8sm_delegate(FUNC(ym2612_device::write), (ym2612_device *)m_ymsnd));
- prg.install_write_handler (0x6000, 0x6000, write8_delegate(FUNC(mtech_state::megadriv_z80_z80_bank_w),this));
- prg.install_write_handler (0x6001, 0x6001, write8_delegate(FUNC(mtech_state::megadriv_z80_z80_bank_w),this));
- prg.install_read_handler (0x6100, 0x7eff, read8_delegate(FUNC(mtech_state::megadriv_z80_unmapped_read),this));
- prg.install_readwrite_handler(0x7f00, 0x7fff, read8_delegate(FUNC(mtech_state::megadriv_z80_vdp_read),this), write8_delegate(FUNC(mtech_state::megadriv_z80_vdp_write),this));
- prg.install_readwrite_handler(0x8000, 0xffff, read8_delegate(FUNC(mtech_state::z80_read_68k_banked_data),this), write8_delegate(FUNC(mtech_state::z80_write_68k_banked_data),this));
+ prg.install_readwrite_handler(0x4000, 0x4003, read8sm_delegate(*m_ymsnd, FUNC(ym2612_device::read)), write8sm_delegate(*m_ymsnd, FUNC(ym2612_device::write)));
+ prg.install_write_handler (0x6000, 0x6000, write8_delegate(*this, FUNC(mtech_state::megadriv_z80_z80_bank_w)));
+ prg.install_write_handler (0x6001, 0x6001, write8_delegate(*this, FUNC(mtech_state::megadriv_z80_z80_bank_w)));
+ prg.install_read_handler (0x6100, 0x7eff, read8_delegate(*this, FUNC(mtech_state::megadriv_z80_unmapped_read)));
+ prg.install_readwrite_handler(0x7f00, 0x7fff, read8_delegate(*this, FUNC(mtech_state::megadriv_z80_vdp_read)), write8_delegate(*this, FUNC(mtech_state::megadriv_z80_vdp_write)));
+ prg.install_readwrite_handler(0x8000, 0xffff, read8_delegate(*this, FUNC(mtech_state::z80_read_68k_banked_data)), write8_delegate(*this, FUNC(mtech_state::z80_write_68k_banked_data)));
}
@@ -768,7 +768,7 @@ image_init_result mtech_state::load_cart(device_image_interface &image, generic_
}
#define MEGATECH_CARTSLOT(_tag, _load) \
- GENERIC_CARTSLOT(config, _tag, generic_plain_slot, "megatech_cart").set_device_load(FUNC(mtech_state::_load), this)
+ GENERIC_CARTSLOT(config, _tag, generic_plain_slot, "megatech_cart").set_device_load(FUNC(mtech_state::_load))
void mtech_state::megatech_multislot(machine_config &config)
{
@@ -794,7 +794,7 @@ void mtech_state::megatech_fixedslot(machine_config &config)
// add cart slots
generic_cartslot_device &cartslot(GENERIC_CARTSLOT(config, "mt_slot1", generic_plain_slot, "megatech_cart"));
- cartslot.set_device_load(FUNC(mtech_state::mt_cart1), this);
+ cartslot.set_device_load(FUNC(mtech_state::mt_cart1));
cartslot.set_user_loadable(false);
}
diff --git a/src/mame/drivers/mekd2.cpp b/src/mame/drivers/mekd2.cpp
index 7810c6bbbfb..a93b14bf927 100644
--- a/src/mame/drivers/mekd2.cpp
+++ b/src/mame/drivers/mekd2.cpp
@@ -408,7 +408,7 @@ void mekd2_state::mekd2(machine_config &config)
TIMER(config, "kansas_w").configure_periodic(FUNC(mekd2_state::kansas_w), attotime::from_hz(4800));
TIMER(config, "kansas_r").configure_periodic(FUNC(mekd2_state::kansas_r), attotime::from_hz(40000));
- QUICKLOAD(config, "quickload", "d2", attotime::from_seconds(1)).set_load_callback(FUNC(mekd2_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "d2", attotime::from_seconds(1)).set_load_callback(FUNC(mekd2_state::quickload_cb));
}
/***********************************************************
diff --git a/src/mame/drivers/mekd3.cpp b/src/mame/drivers/mekd3.cpp
index d4c47995afe..2d9bed36690 100644
--- a/src/mame/drivers/mekd3.cpp
+++ b/src/mame/drivers/mekd3.cpp
@@ -977,7 +977,7 @@ void mekd3_state::mekd3(machine_config &config)
m_mc6845->set_screen("screen");
m_mc6845->set_show_border_area(false);
m_mc6845->set_char_width(8);
- m_mc6845->set_update_row_callback(FUNC(mekd3_state::update_row), this);
+ m_mc6845->set_update_row_callback(FUNC(mekd3_state::update_row));
m_mc6845->out_hsync_callback().set(FUNC(mekd3_state::r2_hsync_changed));
m_mc6845->out_vsync_callback().set(FUNC(mekd3_state::r2_vsync_changed));
diff --git a/src/mame/drivers/mekd4.cpp b/src/mame/drivers/mekd4.cpp
index 7c73186b481..2fa8507faa1 100644
--- a/src/mame/drivers/mekd4.cpp
+++ b/src/mame/drivers/mekd4.cpp
@@ -989,7 +989,7 @@ void mekd4_state::mekd4(machine_config &config)
m_mc6845->set_screen("screen");
m_mc6845->set_show_border_area(false);
m_mc6845->set_char_width(8);
- m_mc6845->set_update_row_callback(FUNC(mekd4_state::update_row), this);
+ m_mc6845->set_update_row_callback(FUNC(mekd4_state::update_row));
m_mc6845->out_hsync_callback().set(FUNC(mekd4_state::r2_hsync_changed));
m_mc6845->out_vsync_callback().set(FUNC(mekd4_state::r2_vsync_changed));
diff --git a/src/mame/drivers/merit.cpp b/src/mame/drivers/merit.cpp
index ba47fc504d6..7154cc1ff94 100644
--- a/src/mame/drivers/merit.cpp
+++ b/src/mame/drivers/merit.cpp
@@ -1434,8 +1434,8 @@ void merit_state::pitboss(machine_config &config)
crtc.set_screen(m_screen);
crtc.set_show_border_area(false);
crtc.set_char_width(8);
- crtc.set_begin_update_callback(FUNC(merit_state::crtc_begin_update), this);
- crtc.set_update_row_callback(FUNC(merit_state::crtc_update_row), this);
+ crtc.set_begin_update_callback(FUNC(merit_state::crtc_begin_update));
+ crtc.set_update_row_callback(FUNC(merit_state::crtc_update_row));
crtc.out_hsync_callback().set(FUNC(merit_state::hsync_changed));
crtc.out_vsync_callback().set_inputline(m_maincpu, 0);
diff --git a/src/mame/drivers/meritm.cpp b/src/mame/drivers/meritm.cpp
index a7042ce0713..af4db19748a 100644
--- a/src/mame/drivers/meritm.cpp
+++ b/src/mame/drivers/meritm.cpp
@@ -1175,7 +1175,7 @@ void meritm_state::crt250_crt252_crt258(machine_config &config)
m_uart->out_tx_callback().set(m_microtouch, FUNC(microtouch_device::rx));
MICROTOUCH(config, m_microtouch, 9600).stx().set(m_uart, FUNC(ins8250_uart_device::rx_w));
- m_microtouch->set_touch_callback(FUNC(meritm_state::touch_coord_transform), this);
+ m_microtouch->set_touch_callback(FUNC(meritm_state::touch_coord_transform));
}
void meritm_state::crt260(machine_config &config)
@@ -1194,7 +1194,7 @@ void meritm_state::crt260(machine_config &config)
m_uart->out_tx_callback().set(m_microtouch, FUNC(microtouch_device::rx));
MICROTOUCH(config, m_microtouch, 9600).stx().set(m_uart, FUNC(ins8250_uart_device::rx_w));
- m_microtouch->set_touch_callback(FUNC(meritm_state::touch_coord_transform), this);
+ m_microtouch->set_touch_callback(FUNC(meritm_state::touch_coord_transform));
}
@@ -2386,7 +2386,7 @@ ROM_END
void meritm_state::init_megat3te()
{
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xfff8, 0xffff, read8_delegate(FUNC(meritm_state::ds1644_r), this), write8_delegate(FUNC(meritm_state::ds1644_w), this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xfff8, 0xffff, read8_delegate(*this, FUNC(meritm_state::ds1644_r)), write8_delegate(*this, FUNC(meritm_state::ds1644_w)));
}
/* CRT-250 */
diff --git a/src/mame/drivers/meritum.cpp b/src/mame/drivers/meritum.cpp
index 31b8fef11f8..8c46e71496d 100644
--- a/src/mame/drivers/meritum.cpp
+++ b/src/mame/drivers/meritum.cpp
@@ -440,7 +440,7 @@ void meritum_state::meritum(machine_config &config)
CASSETTE(config, m_cassette);
m_cassette->add_route(ALL_OUTPUTS, "mono", 0.05);
- QUICKLOAD(config, "quickload", "cmd", attotime::from_seconds(1)).set_load_callback(FUNC(meritum_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "cmd", attotime::from_seconds(1)).set_load_callback(FUNC(meritum_state::quickload_cb));
}
/***************************************************************************
diff --git a/src/mame/drivers/metro.cpp b/src/mame/drivers/metro.cpp
index 82c18c784ee..0ef4367cb06 100644
--- a/src/mame/drivers/metro.cpp
+++ b/src/mame/drivers/metro.cpp
@@ -3126,7 +3126,7 @@ void metro_state::bangball(machine_config &config)
{
msgogo(config);
m_maincpu->set_addrmap(AS_PROGRAM, &metro_state::bangball_map);
- m_maincpu->set_periodic_int(device_interrupt_delegate(), attotime());
+ m_maincpu->remove_periodic_int();
TIMER(config, "scantimer").configure_scanline(FUNC(metro_state::bangball_scanline), "screen", 0, 1);
// doesn't like 58.2 Hz
@@ -3138,7 +3138,7 @@ void metro_state::batlbubl(machine_config &config)
{
msgogo(config);
m_maincpu->set_addrmap(AS_PROGRAM, &metro_state::batlbubl_map);
- m_maincpu->set_periodic_int(device_interrupt_delegate(), attotime());
+ m_maincpu->remove_periodic_int();
TIMER(config, "scantimer").configure_scanline(FUNC(metro_state::bangball_scanline), "screen", 0, 1);
// doesn't like 58.2 Hz
@@ -3200,7 +3200,7 @@ void metro_state::puzzli(machine_config &config)
{
daitorid(config);
- m_maincpu->set_periodic_int(device_interrupt_delegate(), attotime());
+ m_maincpu->remove_periodic_int();
TIMER(config, "scantimer").configure_scanline(FUNC(metro_state::bangball_scanline), "screen", 0, 1);
m_screen->set_video_attributes(VIDEO_UPDATE_SCANLINE);
diff --git a/src/mame/drivers/mgames.cpp b/src/mame/drivers/mgames.cpp
index 6c11e57e462..efe910721a1 100644
--- a/src/mame/drivers/mgames.cpp
+++ b/src/mame/drivers/mgames.cpp
@@ -278,7 +278,7 @@ TILE_GET_INFO_MEMBER( mgames_state::tile_info )
void mgames_state::machine_start()
{
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mgames_state::tile_info), this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mgames_state::tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
m_lamps.resolve();
}
diff --git a/src/mame/drivers/mgavegas.cpp b/src/mame/drivers/mgavegas.cpp
index 367f4c3dc8b..c9b80303565 100644
--- a/src/mame/drivers/mgavegas.cpp
+++ b/src/mame/drivers/mgavegas.cpp
@@ -557,13 +557,13 @@ void mgavegas_state::machine_reset()
void mgavegas_state::init_mgavegas21()
{
//hack to clear the irq on reti instruction
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x00ea, 0x00ea, read8_delegate(FUNC(mgavegas_state::start_read), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x00ea, 0x00ea, read8_delegate(*this, FUNC(mgavegas_state::start_read)));
}
void mgavegas_state::init_mgavegas()
{
//hack to clear the irq on reti instruction
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x00e2, 0x00e2, read8_delegate(FUNC(mgavegas_state::start_read), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x00e2, 0x00e2, read8_delegate(*this, FUNC(mgavegas_state::start_read)));
}
@@ -577,7 +577,7 @@ TIMER_DEVICE_CALLBACK_MEMBER( mgavegas_state::int_0 )
void mgavegas_state::init_mgavegas133()
{
//hack to clear the irq on reti instruction
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x00dd, 0x00dd, read8_delegate(FUNC(mgavegas_state::start_read), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x00dd, 0x00dd, read8_delegate(*this, FUNC(mgavegas_state::start_read)));
}
/*************************
diff --git a/src/mame/drivers/mgolf.cpp b/src/mame/drivers/mgolf.cpp
index 54bf8ac3854..192022be98f 100644
--- a/src/mame/drivers/mgolf.cpp
+++ b/src/mame/drivers/mgolf.cpp
@@ -93,7 +93,7 @@ WRITE8_MEMBER(mgolf_state::vram_w)
void mgolf_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mgolf_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mgolf_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
diff --git a/src/mame/drivers/micro20.cpp b/src/mame/drivers/micro20.cpp
index e08b9ec4ca3..2ef1a7b741d 100644
--- a/src/mame/drivers/micro20.cpp
+++ b/src/mame/drivers/micro20.cpp
@@ -84,7 +84,7 @@ void micro20_state::machine_reset()
pRAM[1] = pROM[3];
m_maincpu->reset();
- m_maincpu->set_reset_callback(write_line_delegate(FUNC(micro20_state::m68k_reset_callback),this));
+ m_maincpu->set_reset_callback(*this, FUNC(micro20_state::m68k_reset_callback));
m_tin = 0;
}
@@ -92,10 +92,9 @@ void micro20_state::machine_reset()
TIMER_DEVICE_CALLBACK_MEMBER(micro20_state::micro20_timer)
{
m_pit->update_tin(m_tin ? ASSERT_LINE : CLEAR_LINE);
- if ((!m_h4) && (m_tin))
- {
+ if (!m_h4 && m_tin)
m_maincpu->set_input_line(M68K_IRQ_6, HOLD_LINE);
- }
+
m_tin ^= 1;
}
diff --git a/src/mame/drivers/micro3d.cpp b/src/mame/drivers/micro3d.cpp
index 160fdaadb2d..ed60e443656 100644
--- a/src/mame/drivers/micro3d.cpp
+++ b/src/mame/drivers/micro3d.cpp
@@ -294,7 +294,7 @@ void micro3d_state::soundmem_io(address_map &map)
void micro3d_state::cpu_space_map(address_map &map)
{
map(0xfffff0, 0xffffff).m(m_maincpu, FUNC(m68000_base_device::autovectors_map));
- map(0xfffff6, 0xfffff7).lr16("duart irq", [this]() -> u16 { return m_duart->get_irq_vector(); });
+ map(0xfffff6, 0xfffff7).lr16(NAME([this] () -> u16 { return m_duart->get_irq_vector(); }));
}
diff --git a/src/mame/drivers/microtan.cpp b/src/mame/drivers/microtan.cpp
index 1675b2b5c50..da937ffd603 100644
--- a/src/mame/drivers/microtan.cpp
+++ b/src/mame/drivers/microtan.cpp
@@ -305,9 +305,9 @@ void microtan_state::mt65(machine_config &config)
/* snapshot/quickload */
snapshot_image_device &snapshot(SNAPSHOT(config, "snapshot", "dmp,m65"));
- snapshot.set_load_callback(FUNC(microtan_state::snapshot_cb), this);
+ snapshot.set_load_callback(FUNC(microtan_state::snapshot_cb));
snapshot.set_interface("mt65_snap");
- QUICKLOAD(config, "quickload", "hex").set_load_callback(FUNC(microtan_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "hex").set_load_callback(FUNC(microtan_state::quickload_cb));
/* software lists */
SOFTWARE_LIST(config, "rom_list").set_original("mt65_rom");
diff --git a/src/mame/drivers/microvsn.cpp b/src/mame/drivers/microvsn.cpp
index 412afcfaf92..9f07c04fef1 100644
--- a/src/mame/drivers/microvsn.cpp
+++ b/src/mame/drivers/microvsn.cpp
@@ -670,7 +670,7 @@ void microvision_state::microvision(machine_config &config)
generic_cartslot_device &cartslot(GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "microvision_cart"));
cartslot.set_must_be_loaded(true);
- cartslot.set_device_load(FUNC(microvision_state::cart_load), this);
+ cartslot.set_device_load(FUNC(microvision_state::cart_load));
/* Software lists */
SOFTWARE_LIST(config, "cart_list").set_original("microvision");
diff --git a/src/mame/drivers/midqslvr.cpp b/src/mame/drivers/midqslvr.cpp
index 0c607f87f72..8e6dc436c3d 100644
--- a/src/mame/drivers/midqslvr.cpp
+++ b/src/mame/drivers/midqslvr.cpp
@@ -427,10 +427,8 @@ void midqslvr_state::midqslvr(machine_config &config)
pcat_common(config);
pci_bus_legacy_device &pcibus(PCI_BUS_LEGACY(config, "pcibus", 0, 0));
- pcibus.set_device_read ( 0, FUNC(midqslvr_state::intel82439tx_pci_r), this);
- pcibus.set_device_write( 0, FUNC(midqslvr_state::intel82439tx_pci_w), this);
- pcibus.set_device_read (31, FUNC(midqslvr_state::intel82371ab_pci_r), this);
- pcibus.set_device_write(31, FUNC(midqslvr_state::intel82371ab_pci_w), this);
+ pcibus.set_device( 0, FUNC(midqslvr_state::intel82439tx_pci_r), FUNC(midqslvr_state::intel82439tx_pci_w));
+ pcibus.set_device(31, FUNC(midqslvr_state::intel82371ab_pci_r), FUNC(midqslvr_state::intel82371ab_pci_w));
ide_controller_device &ide(IDE_CONTROLLER(config, "ide").options(ata_devices, "hdd", nullptr, true));
ide.irq_handler().set("pic8259_2", FUNC(pic8259_device::ir6_w));
diff --git a/src/mame/drivers/midvunit.cpp b/src/mame/drivers/midvunit.cpp
index b8e22302801..24fa7c874a3 100644
--- a/src/mame/drivers/midvunit.cpp
+++ b/src/mame/drivers/midvunit.cpp
@@ -650,10 +650,10 @@ void midvunit_state::midvunit_map(address_map &map)
map(0x980080, 0x980080).noprw();
map(0x980082, 0x980083).r(FUNC(midvunit_state::midvunit_dma_trigger_r));
map(0x990000, 0x990000).r(FUNC(midvunit_state::midvunit_intcs_r));
- map(0x991030, 0x991030).lr16("991030", [this]() { return uint16_t(m_in1->read()); });
+ map(0x991030, 0x991030).lr16(NAME([this] () { return uint16_t(m_in1->read()); }));
// map(0x991050, 0x991050).readonly(); // seems to be another port
map(0x991060, 0x991060).r(FUNC(midvunit_state::port0_r));
- map(0x992000, 0x992000).lr16("992000", [this]() { return uint16_t(m_dsw->read()); });
+ map(0x992000, 0x992000).lr16(NAME([this] () { return uint16_t(m_dsw->read()); }));
map(0x993000, 0x993000).rw(FUNC(midvunit_state::adc_r), FUNC(midvunit_state::adc_w));
map(0x994000, 0x994000).w(FUNC(midvunit_state::midvunit_control_w));
map(0x995000, 0x995000).rw(FUNC(midvunit_state::midvunit_wheel_board_r), FUNC(midvunit_state::midvunit_wheel_board_w));
@@ -1113,8 +1113,8 @@ void midvunit_state::midvcommon(machine_config &config)
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_1);
- TIMER(config, "timer0").configure_generic(timer_device::expired_delegate());
- TIMER(config, "timer1").configure_generic(timer_device::expired_delegate());
+ TIMER(config, "timer0").configure_generic(nullptr);
+ TIMER(config, "timer1").configure_generic(nullptr);
WATCHDOG_TIMER(config, m_watchdog);
@@ -1866,7 +1866,7 @@ void midvunit_state::init_crusnusa_common(offs_t speedup)
m_adc_shift = 24;
/* speedups */
- m_maincpu->space(AS_PROGRAM).install_read_handler(speedup, speedup + 1, read32_delegate(FUNC(midvunit_state::generic_speedup_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(speedup, speedup + 1, read32_delegate(*this, FUNC(midvunit_state::generic_speedup_r)));
m_generic_speedup = m_ram_base + speedup;
}
void midvunit_state::init_crusnusa() { init_crusnusa_common(0xc93e); }
@@ -1879,19 +1879,19 @@ void midvunit_state::init_crusnwld_common(offs_t speedup)
m_adc_shift = 16;
/* control register is different */
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x994000, 0x994000, write32_delegate(FUNC(midvunit_state::crusnwld_control_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x994000, 0x994000, write32_delegate(*this, FUNC(midvunit_state::crusnwld_control_w)));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x991030, 0x991030, read32_delegate(FUNC(midvunit_state::crusnwld_serial_status_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x996000, 0x996000, read32_delegate(FUNC(midvunit_state::crusnwld_serial_data_r),this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x996000, 0x996000, write32_delegate(FUNC(midvunit_state::crusnwld_serial_data_w),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x991030, 0x991030, read32_delegate(*this, FUNC(midvunit_state::crusnwld_serial_status_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x996000, 0x996000, read32_delegate(*this, FUNC(midvunit_state::crusnwld_serial_data_r)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x996000, 0x996000, write32_delegate(*this, FUNC(midvunit_state::crusnwld_serial_data_w)));
/* install strange protection device */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x9d0000, 0x9d1fff, read32_delegate(FUNC(midvunit_state::bit_data_r),this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x9d0000, 0x9d0000, write32_delegate(FUNC(midvunit_state::bit_reset_w),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x9d0000, 0x9d1fff, read32_delegate(*this, FUNC(midvunit_state::bit_data_r)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x9d0000, 0x9d0000, write32_delegate(*this, FUNC(midvunit_state::bit_reset_w)));
/* speedups */
if (speedup) {
- m_maincpu->space(AS_PROGRAM).install_read_handler(speedup, speedup + 1, read32_delegate(FUNC(midvunit_state::generic_speedup_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(speedup, speedup + 1, read32_delegate(*this, FUNC(midvunit_state::generic_speedup_r)));
m_generic_speedup = m_ram_base + speedup;
}
}
@@ -1906,13 +1906,13 @@ void midvunit_state::init_offroadc()
m_adc_shift = 16;
/* control register is different */
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x994000, 0x994000, write32_delegate(FUNC(midvunit_state::crusnwld_control_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x994000, 0x994000, write32_delegate(*this, FUNC(midvunit_state::crusnwld_control_w)));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x991030, 0x991030, read32_delegate(FUNC(midvunit_state::offroadc_serial_status_r),this));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x996000, 0x996000, read32_delegate(FUNC(midvunit_state::offroadc_serial_data_r),this), write32_delegate(FUNC(midvunit_state::offroadc_serial_data_w),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x991030, 0x991030, read32_delegate(*this, FUNC(midvunit_state::offroadc_serial_status_r)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x996000, 0x996000, read32_delegate(*this, FUNC(midvunit_state::offroadc_serial_data_r)), write32_delegate(*this, FUNC(midvunit_state::offroadc_serial_data_w)));
/* speedups */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x195aa, 0x195aa, read32_delegate(FUNC(midvunit_state::generic_speedup_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x195aa, 0x195aa, read32_delegate(*this, FUNC(midvunit_state::generic_speedup_r)));
m_generic_speedup = m_ram_base + 0x195aa;
}
@@ -1933,7 +1933,7 @@ void midvunit_state::init_wargods()
m_midway_ioasic->set_default_nvram(default_nvram);
/* speedups */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x2f4c, 0x2f4c, read32_delegate(FUNC(midvunit_state::generic_speedup_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x2f4c, 0x2f4c, read32_delegate(*this, FUNC(midvunit_state::generic_speedup_r)));
m_generic_speedup = m_ram_base + 0x2f4c;
}
diff --git a/src/mame/drivers/midzeus.cpp b/src/mame/drivers/midzeus.cpp
index 192bc040bb0..242c5baab74 100644
--- a/src/mame/drivers/midzeus.cpp
+++ b/src/mame/drivers/midzeus.cpp
@@ -1667,23 +1667,23 @@ void midzeus_state::init_mk4()
void midzeus_state::init_invasn()
{
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x9c0000, 0x9c0000, read32_delegate(FUNC(midzeus_state::invasn_gun_r),this), write32_delegate(FUNC(midzeus_state::invasn_gun_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x9c0000, 0x9c0000, read32_delegate(*this, FUNC(midzeus_state::invasn_gun_r)), write32_delegate(*this, FUNC(midzeus_state::invasn_gun_w)));
}
void midzeus2_state::init_crusnexo()
{
membank("bank1")->configure_entries(0, 3, memregion("user2")->base(), 0x400000*4);
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x9b0004, 0x9b0007, read32_delegate(FUNC(midzeus2_state::crusnexo_leds_r),this), write32_delegate(FUNC(midzeus2_state::crusnexo_leds_w),this));
- m_maincpu->space(AS_PROGRAM).install_write_handler (0x8d0009, 0x8d000a, write32_delegate(FUNC(midzeus_state::keypad_select_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x9b0004, 0x9b0007, read32_delegate(*this, FUNC(midzeus2_state::crusnexo_leds_r)), write32_delegate(*this, FUNC(midzeus2_state::crusnexo_leds_w)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler (0x8d0009, 0x8d000a, write32_delegate(*this, FUNC(midzeus_state::keypad_select_w)));
}
void midzeus2_state::init_thegrid()
{
membank("bank1")->configure_entries(0, 3, memregion("user2")->base(), 0x400000*4);
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x8c0000, 0x8c0001, read32_delegate(FUNC(midzeus_state::trackball_r), this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x9b0000, 0x9b0004, read32_delegate(FUNC(midzeus_state::grid_keypad_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x8c0000, 0x8c0001, read32_delegate(*this, FUNC(midzeus_state::trackball_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x9b0000, 0x9b0004, read32_delegate(*this, FUNC(midzeus_state::grid_keypad_r)));
}
diff --git a/src/mame/drivers/mikrosha.cpp b/src/mame/drivers/mikrosha.cpp
index 7b51a032f9f..f82dc2910bb 100644
--- a/src/mame/drivers/mikrosha.cpp
+++ b/src/mame/drivers/mikrosha.cpp
@@ -44,7 +44,7 @@ private:
void mikrosha_state::machine_reset()
{
if (m_cart->exists())
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x8000, 0x8000+m_cart->get_rom_size()-1, read8sm_delegate(FUNC(generic_slot_device::read_rom),(generic_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x8000, 0x8000 + m_cart->get_rom_size() - 1, read8sm_delegate(*m_cart, FUNC(generic_slot_device::read_rom)));
radio86_state::machine_reset();
}
@@ -220,7 +220,7 @@ void mikrosha_state::mikrosha(machine_config &config)
i8275_device &i8275(I8275(config, "i8275", XTAL(16'000'000) / 12));
i8275.set_character_width(6);
- i8275.set_display_callback(FUNC(mikrosha_state::display_pixels), this);
+ i8275.set_display_callback(FUNC(mikrosha_state::display_pixels));
i8275.drq_wr_callback().set(m_dma8257, FUNC(i8257_device::dreq2_w));
pit8253_device &pit8253(PIT8253(config, "pit8253", 0));
diff --git a/src/mame/drivers/mil4000.cpp b/src/mame/drivers/mil4000.cpp
index 61f33968369..220f47e8bbf 100644
--- a/src/mame/drivers/mil4000.cpp
+++ b/src/mame/drivers/mil4000.cpp
@@ -245,10 +245,10 @@ void mil4000_state::machine_start()
void mil4000_state::video_start()
{
- m_sc0_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mil4000_state::get_sc0_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,64);
- m_sc1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mil4000_state::get_sc1_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,64);
- m_sc2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mil4000_state::get_sc2_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,64);
- m_sc3_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mil4000_state::get_sc3_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,64);
+ m_sc0_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mil4000_state::get_sc0_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 64,64);
+ m_sc1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mil4000_state::get_sc1_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 64,64);
+ m_sc2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mil4000_state::get_sc2_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 64,64);
+ m_sc3_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mil4000_state::get_sc3_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 64,64);
m_sc1_tilemap->set_transparent_pen(0);
m_sc2_tilemap->set_transparent_pen(0);
diff --git a/src/mame/drivers/mindset.cpp b/src/mame/drivers/mindset.cpp
index 5de3def7c65..e886f5003f5 100644
--- a/src/mame/drivers/mindset.cpp
+++ b/src/mame/drivers/mindset.cpp
@@ -229,7 +229,7 @@ void mindset_sound_module::map(address_map &map)
void mindset_sound_module::idmap(address_map &map)
{
- map(0x00, 0x3f).lr8("id", []() -> u8 { return 0x13; }).umask16(0x00ff);
+ map(0x00, 0x3f).lr8(NAME([]() -> u8 { return 0x13; })).umask16(0x00ff);
}
ROM_START(mindset_sound_module)
@@ -288,7 +288,7 @@ void mindset_rs232_module::map(address_map &map)
void mindset_rs232_module::idmap(address_map &map)
{
- map(0x00, 0x3f).lr8("id", [this]() -> u8 { return 0x73 | (m_irq_state ? 0x80 : 0x00); }).umask16(0x00ff);
+ map(0x00, 0x3f).lr8(NAME([this]() -> u8 { return 0x73 | (m_irq_state ? 0x80 : 0x00); })).umask16(0x00ff);
}
void mindset_rs232_module::device_add_mconfig(machine_config &config)
diff --git a/src/mame/drivers/miniboy7.cpp b/src/mame/drivers/miniboy7.cpp
index 75af1b98ba5..28f52c0aed3 100644
--- a/src/mame/drivers/miniboy7.cpp
+++ b/src/mame/drivers/miniboy7.cpp
@@ -682,7 +682,7 @@ void miniboy7_state::miniboy7(machine_config &config)
crtc.set_screen("screen");
crtc.set_show_border_area(false);
crtc.set_char_width(8);
- crtc.set_update_row_callback(FUNC(miniboy7_state::crtc_update_row), this);
+ crtc.set_update_row_callback(FUNC(miniboy7_state::crtc_update_row));
crtc.out_vsync_callback().set("pia0", FUNC(pia6821_device::ca1_w));
/* sound hardware */
diff --git a/src/mame/drivers/mips.cpp b/src/mame/drivers/mips.cpp
index 11afd54c3c6..976587c1e32 100644
--- a/src/mame/drivers/mips.cpp
+++ b/src/mame/drivers/mips.cpp
@@ -308,15 +308,9 @@ void rx2030_state::iop_program_map(address_map &map)
void rx2030_state::iop_io_map(address_map &map)
{
- map(0x0000, 0x003f).lrw16("mmu",
- [this](offs_t offset, u16 mem_mask)
- {
- return m_mmu[offset];
- },
- [this](offs_t offset, u16 data, u16 mem_mask)
- {
- m_mmu[offset] = data;
- });
+ map(0x0000, 0x003f).lrw16(
+ NAME([this] (offs_t offset, u16 mem_mask) { return m_mmu[offset]; }),
+ NAME([this] (offs_t offset, u16 data, u16 mem_mask) { m_mmu[offset] = data; }));
map(0x0040, 0x0043).m(m_fdc, FUNC(wd37c65c_device::map)).umask16(0xff);
map(0x0044, 0x0045).w(m_fdc, FUNC(wd37c65c_device::dor_w)).umask16(0xff);
@@ -332,33 +326,34 @@ void rx2030_state::iop_io_map(address_map &map)
* scan code set. Possibly caused by imperfect V50 timing and/or memory
* wait states that make the IOP code execute more slowly than emulated.
*/
- map(0x00c0, 0x00c1).lrw8("kbdc_data", [this]() { return m_kbdc->data_r(); }, [this](u8 data) { m_kbdc->data_w(data == 0xff ? 0xf6 : data); }).umask16(0xff);
+ map(0x00c0, 0x00c1).lrw8(NAME([this] () { return m_kbdc->data_r(); }), NAME([this] (u8 data) { m_kbdc->data_w(data == 0xff ? 0xf6 : data); })).umask16(0xff);
map(0x00c4, 0x00c5).rw(m_kbdc, FUNC(at_keyboard_controller_device::status_r), FUNC(at_keyboard_controller_device::command_w)).umask16(0xff);
map(0x0100, 0x0107).rw(m_scc, FUNC(z80scc_device::ab_dc_r), FUNC(z80scc_device::ab_dc_w)).umask16(0xff);
map(0x0140, 0x0143).rw(m_net, FUNC(am7990_device::regs_r), FUNC(am7990_device::regs_w));
- map(0x0180, 0x018b).lr8("mac", [](offs_t offset)
- {
- // Ethernet MAC address (LSB first)
- static u8 const mac[] = { 0x00, 0x00, 0x6b, 0x12, 0x34, 0x56 };
+ map(0x0180, 0x018b).lr8(
+ [] (offs_t offset)
+ {
+ // Ethernet MAC address (LSB first)
+ static u8 const mac[] = { 0x00, 0x00, 0x6b, 0x12, 0x34, 0x56 };
- return mac[offset];
- }).umask16(0xff);
+ return mac[offset];
+ }, "mac_r").umask16(0xff);
// iop tests bits 0x04, 0x10 and 0x20
- map(0x01c0, 0x01c1).lr8("?", [this]() { return m_iop_interface; }); // maybe?
+ map(0x01c0, 0x01c1).lr8(NAME([this] () { return m_iop_interface; })); // maybe?
map(0x0200, 0x0201).rw(m_fio, FUNC(z8038_device::fifo_r<1>), FUNC(z8038_device::fifo_w<1>)).umask16(0xff);
map(0x0202, 0x0203).rw(m_fio, FUNC(z8038_device::reg_r<1>), FUNC(z8038_device::reg_w<1>)).umask16(0xff);
- map(0x0240, 0x0241).lw8("rtc", [this](u8 data) { m_rtc->write(0, data); }).umask16(0xff00);
- map(0x0280, 0x0281).lrw8("rtc",
- [this]() { return m_rtc->read(1); },
- [this](u8 data) { m_rtc->write(1, data); }).umask16(0xff00);
+ map(0x0240, 0x0241).lw8(NAME([this] (u8 data) { m_rtc->write(0, data); })).umask16(0xff00);
+ map(0x0280, 0x0281).lrw8(
+ NAME([this] () { return m_rtc->read(1); }),
+ NAME([this] (u8 data) { m_rtc->write(1, data); })).umask16(0xff00);
- map(0x02c0, 0x2c1).lw8("cpu_interface", [this](u8 data)
+ map(0x02c0, 0x2c1).lw8([this](u8 data)
{
switch (data)
{
@@ -389,15 +384,15 @@ void rx2030_state::iop_io_map(address_map &map)
// something to do with shared memory access?
//break;
}
- }).umask16(0xff);
+ }, "cpu_interface_w").umask16(0xff);
- map(0x0380, 0x0381).lw8("led", [this](u8 data) { logerror("led_w 0x%02x\n", data); }).umask16(0xff00);
+ map(0x0380, 0x0381).lw8(NAME([this](u8 data) { logerror("led_w 0x%02x\n", data); })).umask16(0xff00);
}
void rx2030_state::rx2030_map(address_map &map)
{
- map(0x02000000, 0x02000003).lrw8("iop_interface",
- [this]() { return m_iop_interface; },
+ map(0x02000000, 0x02000003).lrw8(
+ NAME([this]() { return m_iop_interface; }),
[this](u8 data)
{
switch (data)
@@ -479,7 +474,7 @@ void rx2030_state::rx2030_map(address_map &map)
LOG("iop interface command 0x%02x (%s)\n", data, machine().describe_context());
break;
}
- }
+ }, "iop_interface_w"
).umask32(0xff);
}
@@ -695,7 +690,7 @@ void rx3230_state::rx3230_map(address_map &map)
map(0x18000000, 0x1800003f).m(m_scsi, FUNC(ncr53c94_device::map)).umask32(0xff);
map(0x19000000, 0x19000003).rw(m_kbdc, FUNC(at_keyboard_controller_device::data_r), FUNC(at_keyboard_controller_device::data_w)).umask32(0xff);
map(0x19000004, 0x19000007).rw(m_kbdc, FUNC(at_keyboard_controller_device::status_r), FUNC(at_keyboard_controller_device::command_w)).umask32(0xff);
- map(0x19800000, 0x19800003).lr8("int_reg", [this]() { return m_int_reg; }).umask32(0xff);
+ map(0x19800000, 0x19800003).lr8(NAME([this]() { return m_int_reg; })).umask32(0xff);
map(0x1a000000, 0x1a000007).rw(m_net, FUNC(am7990_device::regs_r), FUNC(am7990_device::regs_w)).umask32(0xffff);
map(0x1b000000, 0x1b00001f).rw(m_scc, FUNC(z80scc_device::ab_dc_r), FUNC(z80scc_device::ab_dc_w)).umask32(0xff); // TODO: order?
@@ -713,8 +708,8 @@ void rx3230_state::rs3230_map(address_map &map)
{
rx3230_map(map);
- map(0x10000000, 0x12ffffff).lrw32("vram",
- [this](offs_t offset)
+ map(0x10000000, 0x12ffffff).lrw32(
+ NAME([this](offs_t offset)
{
u32 const ram_offset = ((offset >> 13) * 0x500) + ((offset & 0x1ff) << 2);
@@ -725,8 +720,8 @@ void rx3230_state::rs3230_map(address_map &map)
u32(m_vram->read(ram_offset | 3)) << 0;
return data;
- },
- [this](offs_t offset, u32 data)
+ }),
+ NAME([this](offs_t offset, u32 data)
{
u32 const ram_offset = ((offset >> 13) * 0x500) + ((offset & 0x1ff) << 2);
@@ -734,19 +729,19 @@ void rx3230_state::rs3230_map(address_map &map)
m_vram->write(ram_offset | 1, data >> 16);
m_vram->write(ram_offset | 2, data >> 8);
m_vram->write(ram_offset | 3, data >> 0);
- });
+ }));
map(0x14000000, 0x14000003).rw(m_ramdac, FUNC(bt459_device::address_lo_r), FUNC(bt459_device::address_lo_w)).umask32(0xff);
map(0x14080000, 0x14080003).rw(m_ramdac, FUNC(bt459_device::address_hi_r), FUNC(bt459_device::address_hi_w)).umask32(0xff);
map(0x14100000, 0x14100003).rw(m_ramdac, FUNC(bt459_device::register_r), FUNC(bt459_device::register_w)).umask32(0xff);
map(0x14180000, 0x14180003).rw(m_ramdac, FUNC(bt459_device::palette_r), FUNC(bt459_device::palette_w)).umask32(0xff);
- map(0x16080004, 0x16080007).lr8("gfx_reg", [this]()
+ map(0x16080004, 0x16080007).lr8(NAME([this] ()
{
u8 const data = (m_screen->vblank() ? GFX_V_BLANK : 0) | (m_screen->hblank() ? GFX_H_BLANK : 0);
return data;
- }).umask32(0xff); // also write 0
+ })).umask32(0xff); // also write 0
//map(0x16000004, 0x16000007).w(); // write 0x00000001
//map(0x16100000, 0x16100003).w(); // write 0xffffffff
diff --git a/src/mame/drivers/mirage.cpp b/src/mame/drivers/mirage.cpp
index 0a5fc2b446e..113582978d7 100644
--- a/src/mame/drivers/mirage.cpp
+++ b/src/mame/drivers/mirage.cpp
@@ -310,8 +310,8 @@ void miragemj_state::mirage(machine_config &config)
m_deco_tilegen->set_pf2_col_bank(0x10);
m_deco_tilegen->set_pf1_col_mask(0x0f);
m_deco_tilegen->set_pf2_col_mask(0x0f);
- m_deco_tilegen->set_bank1_callback(FUNC(miragemj_state::bank_callback), this);
- m_deco_tilegen->set_bank2_callback(FUNC(miragemj_state::bank_callback), this);
+ m_deco_tilegen->set_bank1_callback(FUNC(miragemj_state::bank_callback));
+ m_deco_tilegen->set_bank2_callback(FUNC(miragemj_state::bank_callback));
m_deco_tilegen->set_pf12_8x8_bank(0);
m_deco_tilegen->set_pf12_16x16_bank(1);
m_deco_tilegen->set_gfxdecode_tag("gfxdecode");
diff --git a/src/mame/drivers/mjsenpu.cpp b/src/mame/drivers/mjsenpu.cpp
index c0780ae7eea..697afbaa279 100644
--- a/src/mame/drivers/mjsenpu.cpp
+++ b/src/mame/drivers/mjsenpu.cpp
@@ -55,13 +55,13 @@ class mjsenpu_state : public driver_device
{
public:
mjsenpu_state(const machine_config &mconfig, device_type type, const char *tag)
- : driver_device(mconfig, type, tag),
- m_maincpu(*this, "maincpu"),
- m_oki(*this, "oki"),
- m_hopper(*this, "hopper"),
- m_mainram(*this, "mainram"),
- // m_vram(*this, "vram"),
- m_palette(*this, "palette")
+ : driver_device(mconfig, type, tag)
+ , m_maincpu(*this, "maincpu")
+ , m_oki(*this, "oki")
+ , m_hopper(*this, "hopper")
+ , m_mainram(*this, "mainram")
+ // , m_vram(*this, "vram")
+ , m_palette(*this, "palette")
{
}
@@ -538,7 +538,7 @@ void mjsenpu_state::init_mjsenpu()
(loops for 744256 instructions)
*/
// not especially effective, might be wrong.
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x23468, 0x2346b, read32_delegate(FUNC(mjsenpu_state::mjsenpu_speedup_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x23468, 0x2346b, read32_delegate(*this, FUNC(mjsenpu_state::mjsenpu_speedup_r)));
}
diff --git a/src/mame/drivers/ml20.cpp b/src/mame/drivers/ml20.cpp
index 29964942c1a..413efc7ca99 100644
--- a/src/mame/drivers/ml20.cpp
+++ b/src/mame/drivers/ml20.cpp
@@ -273,7 +273,7 @@ void ml20_state::ml20(machine_config &config)
HD44780(config, m_lcdc, 0);
m_lcdc->set_lcd_size(2, 16);
- m_lcdc->set_pixel_update_cb(FUNC(ml20_state::lcd_pixel_update), this);
+ m_lcdc->set_pixel_update_cb(FUNC(ml20_state::lcd_pixel_update));
config.set_default_layout(layout_ml20);
diff --git a/src/mame/drivers/mmm.cpp b/src/mame/drivers/mmm.cpp
index 2e2e2f9dc45..8a80b1d940c 100644
--- a/src/mame/drivers/mmm.cpp
+++ b/src/mame/drivers/mmm.cpp
@@ -17,10 +17,10 @@ class mmm_state : public driver_device
{
public:
mmm_state(const machine_config &mconfig, device_type type, const char *tag)
- : driver_device(mconfig, type, tag),
- m_maincpu(*this, "maincpu"),
- m_ctc(*this, "ctc"),
- m_inputs(*this, "IN%u", 0)
+ : driver_device(mconfig, type, tag)
+ , m_maincpu(*this, "maincpu")
+ , m_ctc(*this, "ctc")
+ , m_inputs(*this, "IN%u", 0)
{ }
void mmm(machine_config &config);
diff --git a/src/mame/drivers/model3.cpp b/src/mame/drivers/model3.cpp
index 7441d928c33..5c3becdccf5 100644
--- a/src/mame/drivers/model3.cpp
+++ b/src/mame/drivers/model3.cpp
@@ -6114,23 +6114,23 @@ void model3_state::init_model3_10()
{
interleave_vroms();
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xc0000000, 0xc00000ff, read64_delegate(FUNC(model3_state::scsi_r),this), write64_delegate(FUNC(model3_state::scsi_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xc0000000, 0xc00000ff, read64_delegate(*this, FUNC(model3_state::scsi_r)), write64_delegate(*this, FUNC(model3_state::scsi_w)));
m_maincpu->space(AS_PROGRAM).install_read_bank(0xff000000, 0xff7fffff, "bank1" );
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf0800cf8, 0xf0800cff, read64_delegate(FUNC(model3_state::mpc105_addr_r),this), write64_delegate(FUNC(model3_state::mpc105_addr_w),this));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf0c00cf8, 0xf0c00cff, read64_delegate(FUNC(model3_state::mpc105_data_r),this), write64_delegate(FUNC(model3_state::mpc105_data_w),this));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf8fff000, 0xf8fff0ff, read64_delegate(FUNC(model3_state::mpc105_reg_r),this), write64_delegate(FUNC(model3_state::mpc105_reg_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf0800cf8, 0xf0800cff, read64_delegate(*this, FUNC(model3_state::mpc105_addr_r)), write64_delegate(*this, FUNC(model3_state::mpc105_addr_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf0c00cf8, 0xf0c00cff, read64_delegate(*this, FUNC(model3_state::mpc105_data_r)), write64_delegate(*this, FUNC(model3_state::mpc105_data_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf8fff000, 0xf8fff0ff, read64_delegate(*this, FUNC(model3_state::mpc105_reg_r)), write64_delegate(*this, FUNC(model3_state::mpc105_reg_w)));
}
void model3_state::init_model3_15()
{
interleave_vroms();
- m_maincpu->space(AS_PROGRAM).install_read_bank(0xff000000, 0xff7fffff, "bank1" );
+ m_maincpu->space(AS_PROGRAM).install_read_bank(0xff000000, 0xff7fffff, "bank1");
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf0800cf8, 0xf0800cff, read64_delegate(FUNC(model3_state::mpc105_addr_r),this), write64_delegate(FUNC(model3_state::mpc105_addr_w),this));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf0c00cf8, 0xf0c00cff, read64_delegate(FUNC(model3_state::mpc105_data_r),this), write64_delegate(FUNC(model3_state::mpc105_data_w),this));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf8fff000, 0xf8fff0ff, read64_delegate(FUNC(model3_state::mpc105_reg_r),this), write64_delegate(FUNC(model3_state::mpc105_reg_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf0800cf8, 0xf0800cff, read64_delegate(*this, FUNC(model3_state::mpc105_addr_r)), write64_delegate(*this, FUNC(model3_state::mpc105_addr_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf0c00cf8, 0xf0c00cff, read64_delegate(*this, FUNC(model3_state::mpc105_data_r)), write64_delegate(*this, FUNC(model3_state::mpc105_data_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf8fff000, 0xf8fff0ff, read64_delegate(*this, FUNC(model3_state::mpc105_reg_r)), write64_delegate(*this, FUNC(model3_state::mpc105_reg_w)));
}
void model3_state::init_model3_20()
@@ -6138,11 +6138,11 @@ void model3_state::init_model3_20()
interleave_vroms();
m_maincpu->space(AS_PROGRAM).install_read_bank(0xff000000, 0xff7fffff, "bank1" );
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xc2000000, 0xc20000ff, read64_delegate(FUNC(model3_state::real3d_dma_r),this), write64_delegate(FUNC(model3_state::real3d_dma_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xc2000000, 0xc20000ff, read64_delegate(*this, FUNC(model3_state::real3d_dma_r)), write64_delegate(*this, FUNC(model3_state::real3d_dma_w)));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xfec00000, 0xfedfffff, read64_delegate(FUNC(model3_state::mpc106_addr_r),this), write64_delegate(FUNC(model3_state::mpc106_addr_w),this));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xfee00000, 0xfeffffff, read64_delegate(FUNC(model3_state::mpc106_data_r),this), write64_delegate(FUNC(model3_state::mpc106_data_w),this));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf8fff000, 0xf8fff0ff, read64_delegate(FUNC(model3_state::mpc106_reg_r),this), write64_delegate(FUNC(model3_state::mpc106_reg_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xfec00000, 0xfedfffff, read64_delegate(*this, FUNC(model3_state::mpc106_addr_r)), write64_delegate(*this, FUNC(model3_state::mpc106_addr_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xfee00000, 0xfeffffff, read64_delegate(*this, FUNC(model3_state::mpc106_data_r)), write64_delegate(*this, FUNC(model3_state::mpc106_data_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf8fff000, 0xf8fff0ff, read64_delegate(*this, FUNC(model3_state::mpc106_reg_r)), write64_delegate(*this, FUNC(model3_state::mpc106_reg_w)));
}
void model3_state::init_lostwsga()
@@ -6150,7 +6150,7 @@ void model3_state::init_lostwsga()
uint32_t *rom = (uint32_t*)memregion("user1")->base();
init_model3_15();
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xc1000000, 0xc10000ff, read64_delegate(FUNC(model3_state::scsi_r),this), write64_delegate(FUNC(model3_state::scsi_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xc1000000, 0xc10000ff, read64_delegate(*this, FUNC(model3_state::scsi_r)), write64_delegate(*this, FUNC(model3_state::scsi_w)));
rom[0x7374f0/4] = 0x38840004; /* This seems to be an actual bug in the original code */
}
@@ -6159,7 +6159,7 @@ void model3_state::init_scud()
{
init_model3_15();
/* TODO: network device at 0xC0000000 - FF */
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf9000000, 0xf90000ff, read64_delegate(FUNC(model3_state::scsi_r),this), write64_delegate(FUNC(model3_state::scsi_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf9000000, 0xf90000ff, read64_delegate(*this, FUNC(model3_state::scsi_r)), write64_delegate(*this, FUNC(model3_state::scsi_w)));
// uint32_t *rom = (uint32_t*)memregion("user1")->base();
// rom[(0x799de8^4)/4] = 0x00050208; // secret debug menu
@@ -6168,20 +6168,20 @@ void model3_state::init_scud()
void model3_state::init_scudplus()
{
init_model3_15();
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xc1000000, 0xc10000ff, read64_delegate(FUNC(model3_state::scsi_r),this), write64_delegate(FUNC(model3_state::scsi_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xc1000000, 0xc10000ff, read64_delegate(*this, FUNC(model3_state::scsi_r)), write64_delegate(*this, FUNC(model3_state::scsi_w)));
}
void model3_state::init_scudplusa()
{
init_model3_15();
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xc1000000, 0xc10000ff, read64_delegate(FUNC(model3_state::scsi_r),this), write64_delegate(FUNC(model3_state::scsi_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xc1000000, 0xc10000ff, read64_delegate(*this, FUNC(model3_state::scsi_r)), write64_delegate(*this, FUNC(model3_state::scsi_w)));
}
void model3_state::init_lemans24()
{
init_model3_15();
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xc1000000, 0xc10000ff, read64_delegate(FUNC(model3_state::scsi_r),this), write64_delegate(FUNC(model3_state::scsi_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xc1000000, 0xc10000ff, read64_delegate(*this, FUNC(model3_state::scsi_r)), write64_delegate(*this, FUNC(model3_state::scsi_w)));
// rom[(0x73fe38^4)/4] = 0x38840004; /* This seems to be an actual bug in the original code */
}
@@ -6207,13 +6207,13 @@ void model3_state::init_vs215()
interleave_vroms();
m_maincpu->space(AS_PROGRAM).install_read_bank(0xff000000, 0xff7fffff, "bank1" );
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf9000000, 0xf90000ff, read64_delegate(FUNC(model3_state::scsi_r),this), write64_delegate(FUNC(model3_state::scsi_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf9000000, 0xf90000ff, read64_delegate(*this, FUNC(model3_state::scsi_r)), write64_delegate(*this, FUNC(model3_state::scsi_w)));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf0800cf8, 0xf0800cff, read64_delegate(FUNC(model3_state::mpc106_addr_r),this), write64_delegate(FUNC(model3_state::mpc106_addr_w),this));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xfec00000, 0xfedfffff, read64_delegate(FUNC(model3_state::mpc106_addr_r),this), write64_delegate(FUNC(model3_state::mpc106_addr_w),this));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf0c00cf8, 0xf0c00cff, read64_delegate(FUNC(model3_state::mpc106_data_r),this), write64_delegate(FUNC(model3_state::mpc106_data_w),this));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xfee00000, 0xfeffffff, read64_delegate(FUNC(model3_state::mpc106_data_r),this), write64_delegate(FUNC(model3_state::mpc106_data_w),this));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf8fff000, 0xf8fff0ff, read64_delegate(FUNC(model3_state::mpc106_reg_r),this), write64_delegate(FUNC(model3_state::mpc106_reg_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf0800cf8, 0xf0800cff, read64_delegate(*this, FUNC(model3_state::mpc106_addr_r)), write64_delegate(*this, FUNC(model3_state::mpc106_addr_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xfec00000, 0xfedfffff, read64_delegate(*this, FUNC(model3_state::mpc106_addr_r)), write64_delegate(*this, FUNC(model3_state::mpc106_addr_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf0c00cf8, 0xf0c00cff, read64_delegate(*this, FUNC(model3_state::mpc106_data_r)), write64_delegate(*this, FUNC(model3_state::mpc106_data_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xfee00000, 0xfeffffff, read64_delegate(*this, FUNC(model3_state::mpc106_data_r)), write64_delegate(*this, FUNC(model3_state::mpc106_data_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf8fff000, 0xf8fff0ff, read64_delegate(*this, FUNC(model3_state::mpc106_reg_r)), write64_delegate(*this, FUNC(model3_state::mpc106_reg_w)));
}
void model3_state::init_vs29815()
@@ -6228,13 +6228,13 @@ void model3_state::init_vs29815()
interleave_vroms();
m_maincpu->space(AS_PROGRAM).install_read_bank(0xff000000, 0xff7fffff, "bank1" );
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf9000000, 0xf90000ff, read64_delegate(FUNC(model3_state::scsi_r),this), write64_delegate(FUNC(model3_state::scsi_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf9000000, 0xf90000ff, read64_delegate(*this, FUNC(model3_state::scsi_r)), write64_delegate(*this, FUNC(model3_state::scsi_w)));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf0800cf8, 0xf0800cff, read64_delegate(FUNC(model3_state::mpc106_addr_r),this), write64_delegate(FUNC(model3_state::mpc106_addr_w),this));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xfec00000, 0xfedfffff, read64_delegate(FUNC(model3_state::mpc106_addr_r),this), write64_delegate(FUNC(model3_state::mpc106_addr_w),this));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf0c00cf8, 0xf0c00cff, read64_delegate(FUNC(model3_state::mpc106_data_r),this), write64_delegate(FUNC(model3_state::mpc106_data_w),this));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xfee00000, 0xfeffffff, read64_delegate(FUNC(model3_state::mpc106_data_r),this), write64_delegate(FUNC(model3_state::mpc106_data_w),this));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf8fff000, 0xf8fff0ff, read64_delegate(FUNC(model3_state::mpc106_reg_r),this), write64_delegate(FUNC(model3_state::mpc106_reg_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf0800cf8, 0xf0800cff, read64_delegate(*this, FUNC(model3_state::mpc106_addr_r)), write64_delegate(*this, FUNC(model3_state::mpc106_addr_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xfec00000, 0xfedfffff, read64_delegate(*this, FUNC(model3_state::mpc106_addr_r)), write64_delegate(*this, FUNC(model3_state::mpc106_addr_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf0c00cf8, 0xf0c00cff, read64_delegate(*this, FUNC(model3_state::mpc106_data_r)), write64_delegate(*this, FUNC(model3_state::mpc106_data_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xfee00000, 0xfeffffff, read64_delegate(*this, FUNC(model3_state::mpc106_data_r)), write64_delegate(*this, FUNC(model3_state::mpc106_data_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf8fff000, 0xf8fff0ff, read64_delegate(*this, FUNC(model3_state::mpc106_reg_r)), write64_delegate(*this, FUNC(model3_state::mpc106_reg_w)));
}
void model3_state::init_bass()
@@ -6244,13 +6244,13 @@ void model3_state::init_bass()
interleave_vroms();
m_maincpu->space(AS_PROGRAM).install_read_bank(0xff000000, 0xff7fffff, "bank1" );
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf9000000, 0xf90000ff, read64_delegate(FUNC(model3_state::scsi_r),this), write64_delegate(FUNC(model3_state::scsi_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf9000000, 0xf90000ff, read64_delegate(*this, FUNC(model3_state::scsi_r)), write64_delegate(*this, FUNC(model3_state::scsi_w)));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf0800cf8, 0xf0800cff, read64_delegate(FUNC(model3_state::mpc106_addr_r),this), write64_delegate(FUNC(model3_state::mpc106_addr_w),this));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xfec00000, 0xfedfffff, read64_delegate(FUNC(model3_state::mpc106_addr_r),this), write64_delegate(FUNC(model3_state::mpc106_addr_w),this));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf0c00cf8, 0xf0c00cff, read64_delegate(FUNC(model3_state::mpc106_data_r),this), write64_delegate(FUNC(model3_state::mpc106_data_w),this));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xfee00000, 0xfeffffff, read64_delegate(FUNC(model3_state::mpc106_data_r),this), write64_delegate(FUNC(model3_state::mpc106_data_w),this));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf8fff000, 0xf8fff0ff, read64_delegate(FUNC(model3_state::mpc106_reg_r),this), write64_delegate(FUNC(model3_state::mpc106_reg_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf0800cf8, 0xf0800cff, read64_delegate(*this, FUNC(model3_state::mpc106_addr_r)), write64_delegate(*this, FUNC(model3_state::mpc106_addr_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xfec00000, 0xfedfffff, read64_delegate(*this, FUNC(model3_state::mpc106_addr_r)), write64_delegate(*this, FUNC(model3_state::mpc106_addr_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf0c00cf8, 0xf0c00cff, read64_delegate(*this, FUNC(model3_state::mpc106_data_r)), write64_delegate(*this, FUNC(model3_state::mpc106_data_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xfee00000, 0xfeffffff, read64_delegate(*this, FUNC(model3_state::mpc106_data_r)), write64_delegate(*this, FUNC(model3_state::mpc106_data_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf8fff000, 0xf8fff0ff, read64_delegate(*this, FUNC(model3_state::mpc106_reg_r)), write64_delegate(*this, FUNC(model3_state::mpc106_reg_w)));
}
void model3_state::init_getbass()
@@ -6258,11 +6258,11 @@ void model3_state::init_getbass()
interleave_vroms();
m_maincpu->space(AS_PROGRAM).install_read_bank(0xff000000, 0xff7fffff, "bank1" );
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf9000000, 0xf90000ff, read64_delegate(FUNC(model3_state::scsi_r),this), write64_delegate(FUNC(model3_state::scsi_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf9000000, 0xf90000ff, read64_delegate(*this, FUNC(model3_state::scsi_r)), write64_delegate(*this, FUNC(model3_state::scsi_w)));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf0800cf8, 0xf0800cff, read64_delegate(FUNC(model3_state::mpc105_addr_r),this), write64_delegate(FUNC(model3_state::mpc105_addr_w),this));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf0c00cf8, 0xf0c00cff, read64_delegate(FUNC(model3_state::mpc105_data_r),this), write64_delegate(FUNC(model3_state::mpc105_data_w),this));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf8fff000, 0xf8fff0ff, read64_delegate(FUNC(model3_state::mpc105_reg_r),this), write64_delegate(FUNC(model3_state::mpc105_reg_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf0800cf8, 0xf0800cff, read64_delegate(*this, FUNC(model3_state::mpc105_addr_r)), write64_delegate(*this, FUNC(model3_state::mpc105_addr_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf0c00cf8, 0xf0c00cff, read64_delegate(*this, FUNC(model3_state::mpc105_data_r)), write64_delegate(*this, FUNC(model3_state::mpc105_data_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf8fff000, 0xf8fff0ff, read64_delegate(*this, FUNC(model3_state::mpc105_reg_r)), write64_delegate(*this, FUNC(model3_state::mpc105_reg_w)));
}
void model3_state::init_vs2()
@@ -6353,8 +6353,8 @@ void model3_state::init_daytona2()
// uint32_t *rom = (uint32_t*)memregion("user1")->base();
init_model3_20();
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xc3800000, 0xc3800007, write64_delegate(FUNC(model3_state::daytona2_rombank_w),this));
- m_maincpu->space(AS_PROGRAM).install_read_bank(0xc3000000, 0xc37fffff, "bank2" );
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xc3800000, 0xc3800007, write64_delegate(*this, FUNC(model3_state::daytona2_rombank_w)));
+ m_maincpu->space(AS_PROGRAM).install_read_bank(0xc3000000, 0xc37fffff, "bank2");
//rom[(0x68468c^4)/4] = 0x60000000;
//rom[(0x6063c4^4)/4] = 0x60000000;
@@ -6367,8 +6367,8 @@ void model3_state::init_dayto2pe()
// uint32_t *rom = (uint32_t*)memregion("user1")->base();
init_model3_20();
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xc3800000, 0xc3800007, write64_delegate(FUNC(model3_state::daytona2_rombank_w),this));
- m_maincpu->space(AS_PROGRAM).install_read_bank(0xc3000000, 0xc37fffff, "bank2" );
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xc3800000, 0xc3800007, write64_delegate(*this, FUNC(model3_state::daytona2_rombank_w)));
+ m_maincpu->space(AS_PROGRAM).install_read_bank(0xc3000000, 0xc37fffff, "bank2");
// rom[(0x606784^4)/4] = 0x60000000;
// rom[(0x69a3fc^4)/4] = 0x60000000; // jump to encrypted code
diff --git a/src/mame/drivers/mogura.cpp b/src/mame/drivers/mogura.cpp
index 75ce2cffd23..cf81571882e 100644
--- a/src/mame/drivers/mogura.cpp
+++ b/src/mame/drivers/mogura.cpp
@@ -97,7 +97,7 @@ TILE_GET_INFO_MEMBER(mogura_state::get_mogura_tile_info)
void mogura_state::video_start()
{
m_gfxdecode->gfx(0)->set_source(m_gfxram);
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mogura_state::get_mogura_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mogura_state::get_mogura_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
}
uint32_t mogura_state::screen_update_mogura(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
diff --git a/src/mame/drivers/mole.cpp b/src/mame/drivers/mole.cpp
index a217508e49d..7726f679f21 100644
--- a/src/mame/drivers/mole.cpp
+++ b/src/mame/drivers/mole.cpp
@@ -110,7 +110,7 @@ TILE_GET_INFO_MEMBER(mole_state::get_bg_tile_info)
void mole_state::video_start()
{
memset(m_tileram, 0, sizeof(m_tileram));
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mole_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 40, 25);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mole_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 40, 25);
save_item(NAME(m_tileram));
}
diff --git a/src/mame/drivers/monon_color.cpp b/src/mame/drivers/monon_color.cpp
index 14952bd45e2..a1017861101 100644
--- a/src/mame/drivers/monon_color.cpp
+++ b/src/mame/drivers/monon_color.cpp
@@ -154,7 +154,7 @@ void monon_color_state::monon_color(machine_config &config)
generic_cartslot_device &cartslot(GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "monon_color_cart", "bin"));
cartslot.set_width(GENERIC_ROM8_WIDTH);
- cartslot.set_device_load(FUNC(monon_color_state::cart_load), this);
+ cartslot.set_device_load(FUNC(monon_color_state::cart_load));
cartslot.set_must_be_loaded(true);
/* software lists */
diff --git a/src/mame/drivers/moo.cpp b/src/mame/drivers/moo.cpp
index a19bcf5611c..92b7e399270 100644
--- a/src/mame/drivers/moo.cpp
+++ b/src/mame/drivers/moo.cpp
@@ -528,12 +528,12 @@ void moo_state::moo(machine_config &config)
MCFG_VIDEO_START_OVERRIDE(moo_state,moo)
K053246(config, m_k053246, 0);
- m_k053246->set_sprite_callback(FUNC(moo_state::sprite_callback), this);
+ m_k053246->set_sprite_callback(FUNC(moo_state::sprite_callback));
m_k053246->set_config(NORMAL_PLANE_ORDER, -48+1, 23);
m_k053246->set_palette("palette");
K056832(config, m_k056832, 0);
- m_k056832->set_tile_callback(FUNC(moo_state::tile_callback), this);
+ m_k056832->set_tile_callback(FUNC(moo_state::tile_callback));
m_k056832->set_config(K056832_BPP_4, 1, 0);
m_k056832->set_palette("palette");
@@ -582,12 +582,12 @@ void moo_state::moobl(machine_config &config)
MCFG_VIDEO_START_OVERRIDE(moo_state,moo)
K053246(config, m_k053246, 0);
- m_k053246->set_sprite_callback(FUNC(moo_state::sprite_callback), this);
+ m_k053246->set_sprite_callback(FUNC(moo_state::sprite_callback));
m_k053246->set_config(NORMAL_PLANE_ORDER, -48+1, 23);
m_k053246->set_palette("palette");
K056832(config, m_k056832, 0);
- m_k056832->set_tile_callback(FUNC(moo_state::tile_callback), this);
+ m_k056832->set_tile_callback(FUNC(moo_state::tile_callback));
m_k056832->set_config(K056832_BPP_4, 1, 0);
m_k056832->set_palette("palette");
diff --git a/src/mame/drivers/mpu12wbk.cpp b/src/mame/drivers/mpu12wbk.cpp
index ba6be725812..30ffdd1875b 100644
--- a/src/mame/drivers/mpu12wbk.cpp
+++ b/src/mame/drivers/mpu12wbk.cpp
@@ -290,7 +290,7 @@ TILE_GET_INFO_MEMBER(mpu12wbk_state::get_bg_tile_info)
void mpu12wbk_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mpu12wbk_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mpu12wbk_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
diff --git a/src/mame/drivers/mpu3.cpp b/src/mame/drivers/mpu3.cpp
index 010b9076c88..484ca9bc24a 100644
--- a/src/mame/drivers/mpu3.cpp
+++ b/src/mame/drivers/mpu3.cpp
@@ -904,10 +904,9 @@ void mpu3_state::init_m3hprvpr()
{
address_space &space = m_maincpu->space(AS_PROGRAM);
- m_disp_func=METER_PORT;
+ m_disp_func = METER_PORT;
m_current_chr_table = hprvpr_data;
- space.install_readwrite_handler(0xc000, 0xc000 , read8_delegate(FUNC(mpu3_state::characteriser_r), this),write8_delegate(FUNC(mpu3_state::characteriser_w), this));
-
+ space.install_readwrite_handler(0xc000, 0xc000, read8_delegate(*this, FUNC(mpu3_state::characteriser_r)), write8_delegate(*this, FUNC(mpu3_state::characteriser_w)));
}
ROM_START( m3tst )
diff --git a/src/mame/drivers/mpu4vid.cpp b/src/mame/drivers/mpu4vid.cpp
index 6f025bbf86e..96bc9aa624c 100644
--- a/src/mame/drivers/mpu4vid.cpp
+++ b/src/mame/drivers/mpu4vid.cpp
@@ -1161,7 +1161,7 @@ MACHINE_START_MEMBER(mpu4vid_state,mpu4_vid)
m_link7a_connected = 1;
/* Hook the reset line */
- m_videocpu->set_reset_callback(write_line_delegate(FUNC(mpu4vid_state::mpu_video_reset),this));
+ m_videocpu->set_reset_callback(FUNC(mpu4vid_state::mpu_video_reset));
}
MACHINE_RESET_MEMBER(mpu4vid_state,mpu4_vid)
diff --git a/src/mame/drivers/mtx.cpp b/src/mame/drivers/mtx.cpp
index efdf393227b..bc802a49a75 100644
--- a/src/mame/drivers/mtx.cpp
+++ b/src/mame/drivers/mtx.cpp
@@ -322,8 +322,8 @@ void mtx_state::mtx512(machine_config &config)
output_latch_device &cent_data_out(OUTPUT_LATCH(config, "cent_data_out"));
m_centronics->set_output_latch(cent_data_out);
- SNAPSHOT(config, "snapshot", "mtx", attotime::from_seconds(1)).set_load_callback(FUNC(mtx_state::snapshot_cb), this);
- QUICKLOAD(config, "quickload", "run", attotime::from_seconds(1)).set_load_callback(FUNC(mtx_state::quickload_cb), this);
+ SNAPSHOT(config, "snapshot", "mtx", attotime::from_seconds(1)).set_load_callback(FUNC(mtx_state::snapshot_cb));
+ QUICKLOAD(config, "quickload", "run", attotime::from_seconds(1)).set_load_callback(FUNC(mtx_state::quickload_cb));
CASSETTE(config, m_cassette);
m_cassette->set_default_state(CASSETTE_PLAY | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_ENABLED);
@@ -336,7 +336,7 @@ void mtx_state::mtx512(machine_config &config)
/* rom extension board */
GENERIC_SOCKET(config, m_extrom, generic_plain_slot, "mtx_rom", "bin,rom");
- m_extrom->set_device_load(FUNC(mtx_state::extrom_load), this);
+ m_extrom->set_device_load(FUNC(mtx_state::extrom_load));
/* rs232 board with disk drive bus */
MTX_EXP_SLOT(config, m_exp, mtx_expansion_devices, nullptr);
@@ -348,7 +348,7 @@ void mtx_state::mtx512(machine_config &config)
/* cartridge slot */
GENERIC_CARTSLOT(config, m_rompak, generic_plain_slot, "mtx_cart", "bin,rom");
- m_rompak->set_device_load(FUNC(mtx_state::rompak_load), this);
+ m_rompak->set_device_load(FUNC(mtx_state::rompak_load));
/* software lists */
SOFTWARE_LIST(config, "cass_list").set_original("mtx_cass");
diff --git a/src/mame/drivers/multfish.cpp b/src/mame/drivers/multfish.cpp
index 829252997f9..943a0e83b44 100644
--- a/src/mame/drivers/multfish.cpp
+++ b/src/mame/drivers/multfish.cpp
@@ -215,10 +215,10 @@ void igrosoft_gamble_state::video_start()
memset(m_vid,0x00,sizeof(m_vid));
save_item(NAME(m_vid));
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(igrosoft_gamble_state::get_igrosoft_gamble_tile_info),this),TILEMAP_SCAN_ROWS,16,16, 64, 32);
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(igrosoft_gamble_state::get_igrosoft_gamble_tile_info)), TILEMAP_SCAN_ROWS, 16,16, 64, 32);
m_tilemap->set_transparent_pen(255);
- m_reel_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(igrosoft_gamble_state::get_igrosoft_gamble_reel_tile_info),this),TILEMAP_SCAN_ROWS,16,16, 64, 64);
+ m_reel_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(igrosoft_gamble_state::get_igrosoft_gamble_reel_tile_info)), TILEMAP_SCAN_ROWS, 16,16, 64, 64);
m_reel_tilemap->set_transparent_pen(255);
m_reel_tilemap->set_scroll_cols(64);
}
diff --git a/src/mame/drivers/multi16.cpp b/src/mame/drivers/multi16.cpp
index 9790814401b..636261155f6 100644
--- a/src/mame/drivers/multi16.cpp
+++ b/src/mame/drivers/multi16.cpp
@@ -173,7 +173,7 @@ void multi16_state::multi16(machine_config &config)
m_crtc->set_screen("screen");
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8);
- m_crtc->set_update_row_callback(FUNC(multi16_state::crtc_update_row), this);
+ m_crtc->set_update_row_callback(FUNC(multi16_state::crtc_update_row));
// floppy
MB8866(config, m_fdc, 2000000);
diff --git a/src/mame/drivers/multi8.cpp b/src/mame/drivers/multi8.cpp
index 381f6d01bb5..0c164bac5d6 100644
--- a/src/mame/drivers/multi8.cpp
+++ b/src/mame/drivers/multi8.cpp
@@ -646,7 +646,7 @@ void multi8_state::multi8(machine_config &config)
m_crtc->set_screen("screen");
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8);
- m_crtc->set_update_row_callback(FUNC(multi8_state::crtc_update_row), this);
+ m_crtc->set_update_row_callback(FUNC(multi8_state::crtc_update_row));
I8255(config, m_ppi);
m_ppi->in_pa_callback().set(FUNC(multi8_state::porta_r));
diff --git a/src/mame/drivers/multigam.cpp b/src/mame/drivers/multigam.cpp
index a8617843474..cac9ad1c0e8 100644
--- a/src/mame/drivers/multigam.cpp
+++ b/src/mame/drivers/multigam.cpp
@@ -599,11 +599,11 @@ WRITE8_MEMBER(multigam_state::multigam3_mmc3_rom_switch_w)
case 0x6000: /* disable irqs */
m_maincpu->set_input_line(M6502_IRQ_LINE, CLEAR_LINE);
- m_ppu->set_scanline_callback(ppu2c0x_device::scanline_delegate());
+ m_ppu->set_scanline_callback(nullptr);
break;
case 0x6001: /* enable irqs */
- m_ppu->set_scanline_callback(ppu2c0x_device::scanline_delegate(FUNC(multigam_state::multigam3_mmc3_scanline_cb),this));
+ m_ppu->set_scanline_callback(*this, FUNC(multigam_state::multigam3_mmc3_scanline_cb));
break;
}
}
@@ -619,7 +619,7 @@ void multigam_state::multigam_init_mmc3(uint8_t *prg_base, int prg_size, int chr
memcpy(&dst[0x8000], prg_base + (prg_size - 0x4000), 0x4000);
memcpy(&dst[0xc000], prg_base + (prg_size - 0x4000), 0x4000);
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(FUNC(multigam_state::multigam3_mmc3_rom_switch_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(*this, FUNC(multigam_state::multigam3_mmc3_rom_switch_w)));
m_multigam3_mmc3_banks[0] = 0x1e;
m_multigam3_mmc3_banks[1] = 0x1f;
@@ -664,7 +664,7 @@ WRITE8_MEMBER(multigam_state::multigm3_switch_prg_rom)
}
else
{
- space.install_write_handler(0x8000, 0xffff, write8_delegate(FUNC(multigam_state::multigm3_mapper2_w),this) );
+ space.install_write_handler(0x8000, 0xffff, write8_delegate(*this, FUNC(multigam_state::multigm3_mapper2_w)) );
membank("bank10")->set_base(memregion("maincpu")->base() + 0x6000);
}
@@ -725,11 +725,11 @@ void multigam_state::multigam_init_mapper02(uint8_t* prg_base, int prg_size)
{
uint8_t* mem = memregion("maincpu")->base();
memcpy(mem + 0x8000, prg_base + prg_size - 0x8000, 0x8000);
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(FUNC(multigam_state::multigam3_mapper02_rom_switch_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(*this, FUNC(multigam_state::multigam3_mapper02_rom_switch_w)));
m_mapper02_prg_base = prg_base;
m_mapper02_prg_size = prg_size;
- m_ppu->set_scanline_callback(ppu2c0x_device::scanline_delegate());
+ m_ppu->set_scanline_callback(nullptr);
}
/******************************************************
@@ -878,7 +878,7 @@ void multigam_state::multigam_init_mmc1(uint8_t *prg_base, int prg_size, int chr
memcpy(&dst[0x8000], prg_base + (prg_size - 0x8000), 0x8000);
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(FUNC(multigam_state::mmc1_rom_switch_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(*this, FUNC(multigam_state::mmc1_rom_switch_w)));
m_mmc1_reg_write_enable = 1;
m_mmc1_rom_mask = (prg_size / 0x4000) - 1;
@@ -886,7 +886,7 @@ void multigam_state::multigam_init_mmc1(uint8_t *prg_base, int prg_size, int chr
m_mmc1_prg_size = prg_size;
m_mmc1_chr_bank_base = chr_bank_base;
- m_ppu->set_scanline_callback(ppu2c0x_device::scanline_delegate());
+ m_ppu->set_scanline_callback(nullptr);
}
@@ -949,7 +949,7 @@ void multigam_state::supergm3_set_bank()
// title screen
memcpy(mem + 0x8000, mem + 0x18000, 0x8000);
membank("bank10")->set_base(mem + 0x6000);
- m_ppu->set_scanline_callback(ppu2c0x_device::scanline_delegate());
+ m_ppu->set_scanline_callback(nullptr);
}
else if ((m_supergm3_prg_bank & 0x40) == 0)
{
@@ -1168,7 +1168,7 @@ void multigam_state::machine_start()
m_nt_page[2] = m_nt_ram.get() + 0x800;
m_nt_page[3] = m_nt_ram.get() + 0xc00;
- m_ppu->space(AS_PROGRAM).install_readwrite_handler(0x2000, 0x3eff, read8_delegate(FUNC(multigam_state::multigam_nt_r),this), write8_delegate(FUNC(multigam_state::multigam_nt_w),this));
+ m_ppu->space(AS_PROGRAM).install_readwrite_handler(0x2000, 0x3eff, read8_delegate(*this, FUNC(multigam_state::multigam_nt_r)), write8_delegate(*this, FUNC(multigam_state::multigam_nt_w)));
m_ppu->space(AS_PROGRAM).install_read_bank(0x0000, 0x1fff, "bank1");
membank("bank1")->set_base(memregion("gfx1")->base());
}
@@ -1181,7 +1181,7 @@ MACHINE_START_MEMBER(multigam_state,multigm3)
m_nt_page[2] = m_nt_ram.get() + 0x800;
m_nt_page[3] = m_nt_ram.get() + 0xc00;
- m_ppu->space(AS_PROGRAM).install_readwrite_handler(0x2000, 0x3eff, read8_delegate(FUNC(multigam_state::multigam_nt_r),this), write8_delegate(FUNC(multigam_state::multigam_nt_w),this));
+ m_ppu->space(AS_PROGRAM).install_readwrite_handler(0x2000, 0x3eff, read8_delegate(*this, FUNC(multigam_state::multigam_nt_r)), write8_delegate(*this, FUNC(multigam_state::multigam_nt_w)));
m_ppu->space(AS_PROGRAM).install_read_bank(0x0000, 0x03ff, "bank2");
m_ppu->space(AS_PROGRAM).install_read_bank(0x0400, 0x07ff, "bank3");
@@ -1203,7 +1203,7 @@ MACHINE_START_MEMBER(multigam_state,supergm3)
m_nt_page[2] = m_nt_ram.get() + 0x800;
m_nt_page[3] = m_nt_ram.get() + 0xc00;
- m_ppu->space(AS_PROGRAM).install_readwrite_handler(0x2000, 0x3eff, read8_delegate(FUNC(multigam_state::multigam_nt_r),this), write8_delegate(FUNC(multigam_state::multigam_nt_w),this));
+ m_ppu->space(AS_PROGRAM).install_readwrite_handler(0x2000, 0x3eff, read8_delegate(*this, FUNC(multigam_state::multigam_nt_r)), write8_delegate(*this, FUNC(multigam_state::multigam_nt_w)));
m_vram = std::make_unique<uint8_t[]>(0x2000);
m_multigmc_mmc3_6000_ram = std::make_unique<uint8_t[]>(0x2000);
diff --git a/src/mame/drivers/munchmo.cpp b/src/mame/drivers/munchmo.cpp
index 48ca682dd5f..4910a9c2a98 100644
--- a/src/mame/drivers/munchmo.cpp
+++ b/src/mame/drivers/munchmo.cpp
@@ -102,7 +102,7 @@ void munchmo_state::mnchmobl_map(address_map &map)
map(0xbaba, 0xbaba).nopw(); /* ? */
map(0xbc00, 0xbc7f).ram().share(m_status_vram);
map(0xbe00, 0xbe00).w(m_soundlatch, FUNC(generic_latch_8_device::write));
- map(0xbe01, 0xbe01).select(0x0070).lw8("mainlatch_w", [this](offs_t offset, u8 data){ m_mainlatch->write_d0(offset >> 4, data); });
+ map(0xbe01, 0xbe01).select(0x0070).lw8(NAME([this] (offs_t offset, u8 data){ m_mainlatch->write_d0(offset >> 4, data); }));
map(0xbe02, 0xbe02).portr("DSW1");
map(0xbe03, 0xbe03).portr("DSW2");
map(0xbf00, 0xbf00).w(FUNC(munchmo_state::nmi_ack_w)); // CNI 1-8C
diff --git a/src/mame/drivers/mx2178.cpp b/src/mame/drivers/mx2178.cpp
index 18b06fb7f92..50deae97975 100644
--- a/src/mame/drivers/mx2178.cpp
+++ b/src/mame/drivers/mx2178.cpp
@@ -153,7 +153,7 @@ void mx2178_state::mx2178(machine_config &config)
crtc.set_screen("screen");
crtc.set_show_border_area(false);
crtc.set_char_width(8);
- crtc.set_update_row_callback(FUNC(mx2178_state::crtc_update_row), this);
+ crtc.set_update_row_callback(FUNC(mx2178_state::crtc_update_row));
crtc.out_vsync_callback().set_inputline(m_maincpu, INPUT_LINE_NMI);
clock_device &acia_clock(CLOCK(config, "acia_clock", XTAL(18'869'600) / 30));
diff --git a/src/mame/drivers/myb3k.cpp b/src/mame/drivers/myb3k.cpp
index 6eb7264e9bf..3c611cc0ec9 100644
--- a/src/mame/drivers/myb3k.cpp
+++ b/src/mame/drivers/myb3k.cpp
@@ -985,7 +985,7 @@ void myb3k_state::myb3k(machine_config &config)
m_crtc->set_screen(m_screen);
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8);
- m_crtc->set_update_row_callback(FUNC(myb3k_state::crtc_update_row), this);
+ m_crtc->set_update_row_callback(FUNC(myb3k_state::crtc_update_row));
/* ISA8+ Expansion bus */
ISA8(config, m_isabus, 0);
diff --git a/src/mame/drivers/mycom.cpp b/src/mame/drivers/mycom.cpp
index 87097a45524..e98a1de632e 100644
--- a/src/mame/drivers/mycom.cpp
+++ b/src/mame/drivers/mycom.cpp
@@ -556,7 +556,7 @@ void mycom_state::mycom(machine_config &config)
m_crtc->set_screen("screen");
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8);
- m_crtc->set_update_row_callback(FUNC(mycom_state::crtc_update_row), this);
+ m_crtc->set_update_row_callback(FUNC(mycom_state::crtc_update_row));
SPEAKER(config, "mono").front_center();
SN76489(config, m_audio, 10_MHz_XTAL / 4).add_route(ALL_OUTPUTS, "mono", 1.50);
diff --git a/src/mame/drivers/mystwarr.cpp b/src/mame/drivers/mystwarr.cpp
index 273a64acab4..e06b365278c 100644
--- a/src/mame/drivers/mystwarr.cpp
+++ b/src/mame/drivers/mystwarr.cpp
@@ -957,14 +957,14 @@ void mystwarr_state::mystwarr(machine_config &config)
m_palette->enable_hilights();
K056832(config, m_k056832, 0);
- m_k056832->set_tile_callback(FUNC(mystwarr_state::mystwarr_tile_callback), this);
+ m_k056832->set_tile_callback(FUNC(mystwarr_state::mystwarr_tile_callback));
m_k056832->set_config(K056832_BPP_5, 0, 0);
m_k056832->set_palette(m_palette);
K055555(config, m_k055555, 0);
K055673(config, m_k055673, 0);
- m_k055673->set_sprite_callback(FUNC(mystwarr_state::mystwarr_sprite_callback), this);
+ m_k055673->set_sprite_callback(FUNC(mystwarr_state::mystwarr_sprite_callback));
m_k055673->set_config(K055673_LAYOUT_GX, -48, -24);
m_k055673->set_palette(m_palette);
@@ -1012,9 +1012,9 @@ void mystwarr_state::viostorm(machine_config &config)
m_screen->set_size(64*8, 32*8);
m_screen->set_visarea(40, 40+384-1, 16, 16+224-1);
- m_k056832->set_tile_callback(FUNC(mystwarr_state::game4bpp_tile_callback), this);
+ m_k056832->set_tile_callback(FUNC(mystwarr_state::game4bpp_tile_callback));
- m_k055673->set_sprite_callback(FUNC(mystwarr_state::metamrph_sprite_callback), this);
+ m_k055673->set_sprite_callback(FUNC(mystwarr_state::metamrph_sprite_callback));
m_k055673->set_config(K055673_LAYOUT_RNG, -62, -23);
}
@@ -1039,9 +1039,9 @@ void mystwarr_state::metamrph(machine_config &config)
m_screen->set_size(64*8, 32*8);
m_screen->set_visarea(24, 24+288-1, 15, 15+224-1);
- m_k056832->set_tile_callback(FUNC(mystwarr_state::game4bpp_tile_callback), this);
+ m_k056832->set_tile_callback(FUNC(mystwarr_state::game4bpp_tile_callback));
- m_k055673->set_sprite_callback(FUNC(mystwarr_state::metamrph_sprite_callback), this);
+ m_k055673->set_sprite_callback(FUNC(mystwarr_state::metamrph_sprite_callback));
m_k055673->set_config(K055673_LAYOUT_RNG, -51, -24);
}
@@ -1068,9 +1068,9 @@ void mystwarr_state::dadandrn(machine_config &config)
m_screen->set_size(64*8, 32*8);
m_screen->set_visarea(24, 24+288-1, 17, 17+224-1);
- m_k056832->set_tile_callback(FUNC(mystwarr_state::game5bpp_tile_callback), this);
+ m_k056832->set_tile_callback(FUNC(mystwarr_state::game5bpp_tile_callback));
- m_k055673->set_sprite_callback(FUNC(mystwarr_state::gaiapols_sprite_callback), this);
+ m_k055673->set_sprite_callback(FUNC(mystwarr_state::gaiapols_sprite_callback));
m_k055673->set_config(K055673_LAYOUT_GX, -42, -22);
}
@@ -1100,9 +1100,9 @@ void mystwarr_state::gaiapols(machine_config &config)
m_screen->set_size(64*8, 32*8);
m_screen->set_visarea(40, 40+376-1, 16, 16+224-1);
- m_k056832->set_tile_callback(FUNC(mystwarr_state::game4bpp_tile_callback), this);
+ m_k056832->set_tile_callback(FUNC(mystwarr_state::game4bpp_tile_callback));
- m_k055673->set_sprite_callback(FUNC(mystwarr_state::gaiapols_sprite_callback), this);
+ m_k055673->set_sprite_callback(FUNC(mystwarr_state::gaiapols_sprite_callback));
m_k055673->set_config(K055673_LAYOUT_RNG, -61, -22); // stage2 brick walls
}
@@ -1129,9 +1129,9 @@ void mystwarr_state::martchmp(machine_config &config)
m_screen->set_size(64*8, 32*8);
m_screen->set_visarea(32, 32+384-1, 16, 16+224-1);
- m_k056832->set_tile_callback(FUNC(mystwarr_state::game5bpp_tile_callback), this);
+ m_k056832->set_tile_callback(FUNC(mystwarr_state::game5bpp_tile_callback));
- m_k055673->set_sprite_callback(FUNC(mystwarr_state::martchmp_sprite_callback), this);
+ m_k055673->set_sprite_callback(FUNC(mystwarr_state::martchmp_sprite_callback));
m_k055673->set_config(K055673_LAYOUT_GX, -58, -23);
config.device_remove("k054539_2");
diff --git a/src/mame/drivers/myvision.cpp b/src/mame/drivers/myvision.cpp
index 74459784666..f3dfb32c807 100644
--- a/src/mame/drivers/myvision.cpp
+++ b/src/mame/drivers/myvision.cpp
@@ -140,7 +140,7 @@ INPUT_PORTS_END
void myvision_state::machine_start()
{
if (m_cart->exists())
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x0000, 0x5fff, read8sm_delegate(FUNC(generic_slot_device::read_rom),(generic_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x0000, 0x5fff, read8sm_delegate(*m_cart, FUNC(generic_slot_device::read_rom)));
save_item(NAME(m_column));
}
@@ -239,7 +239,7 @@ void myvision_state::myvision(machine_config &config)
/* cartridge */
generic_cartslot_device &cartslot(GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "myvision_cart"));
- cartslot.set_device_load(FUNC(myvision_state::cart_load), this);
+ cartslot.set_device_load(FUNC(myvision_state::cart_load));
//cartslot.set_must_be_loaded(true);
/* software lists */
diff --git a/src/mame/drivers/n64.cpp b/src/mame/drivers/n64.cpp
index 83f5198a6a9..27c787f774b 100644
--- a/src/mame/drivers/n64.cpp
+++ b/src/mame/drivers/n64.cpp
@@ -469,7 +469,7 @@ void n64_mess_state::n64(machine_config &config)
/* cartridge */
generic_cartslot_device &cartslot(GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "n64_cart", "v64,z64,rom,n64,bin"));
cartslot.set_must_be_loaded(true);
- cartslot.set_device_load(FUNC(n64_mess_state::cart_load), this);
+ cartslot.set_device_load(FUNC(n64_mess_state::cart_load));
/* software lists */
SOFTWARE_LIST(config, "cart_list").set_original("n64");
@@ -484,11 +484,11 @@ void n64_mess_state::n64dd(machine_config &config)
generic_cartslot_device &cartslot(GENERIC_CARTSLOT(config.replace(), "cartslot", generic_plain_slot, "n64_cart"));
cartslot.set_extensions("v64,z64,rom,n64,bin");
- cartslot.set_device_load(FUNC(n64_mess_state::cart_load), this);
+ cartslot.set_device_load(FUNC(n64_mess_state::cart_load));
harddisk_image_device &hdd(HARDDISK(config, "n64disk"));
- hdd.set_device_load(FUNC(n64_mess_state::load_n64dd), this);
- hdd.set_device_unload(FUNC(n64_mess_state::unload_n64dd), this);
+ hdd.set_device_load(FUNC(n64_mess_state::load_n64dd));
+ hdd.set_device_unload(FUNC(n64_mess_state::unload_n64dd));
hdd.set_interface("n64dd_disk");
SOFTWARE_LIST(config, "dd_list").set_original("n64dd");
diff --git a/src/mame/drivers/namcona1.cpp b/src/mame/drivers/namcona1.cpp
index 2ea2c8b5a0b..3e939215503 100644
--- a/src/mame/drivers/namcona1.cpp
+++ b/src/mame/drivers/namcona1.cpp
@@ -643,9 +643,9 @@ void namcona1_state::na1mcu_shared_w(offs_t offset, u16 data, u16 mem_mask)
void namcona1_state::namcona1_mcu_map(address_map &map)
{
map(0x000800, 0x000fff).rw(FUNC(namcona1_state::mcu_mailbox_r), FUNC(namcona1_state::mcu_mailbox_w_mcu)); // "Mailslot" communications ports
- map(0x001000, 0x001fff).lrw8("c219_rw",
- [this](offs_t offset) { return m_c140->c140_r(offset ^ 1)/* need ^ 1 because endian issue */; },
- [this](offs_t offset, u8 data) { m_c140->c140_w(offset ^ 1, data); }); // C140-alike sound chip
+ map(0x001000, 0x001fff).lrw8(
+ NAME([this](offs_t offset) { return m_c140->c140_r(offset ^ 1)/* need ^ 1 because endian issue */; }),
+ NAME([this](offs_t offset, u8 data) { m_c140->c140_w(offset ^ 1, data); })); // C140-alike sound chip
map(0x002000, 0x002fff).rw(FUNC(namcona1_state::na1mcu_shared_r), FUNC(namcona1_state::na1mcu_shared_w)); // mirror of first page of shared work RAM
map(0x003000, 0x00afff).ram(); // there is a 32k RAM chip according to CGFM
map(0x200000, 0x27ffff).rw(FUNC(namcona1_state::na1mcu_shared_r), FUNC(namcona1_state::na1mcu_shared_w)); // shared work RAM
diff --git a/src/mame/drivers/namcos11.cpp b/src/mame/drivers/namcos11.cpp
index 3b8bea6e11d..de2b9632302 100644
--- a/src/mame/drivers/namcos11.cpp
+++ b/src/mame/drivers/namcos11.cpp
@@ -560,7 +560,7 @@ void namcos11_state::driver_start()
{
m_su_83 = 0;
save_item( NAME(m_su_83) );
- m_mcu->space(AS_PROGRAM).install_readwrite_handler(0x82, 0x83, read16_delegate(FUNC(namcos11_state::c76_speedup_r),this), write16_delegate(FUNC(namcos11_state::c76_speedup_w),this));
+ m_mcu->space(AS_PROGRAM).install_readwrite_handler(0x82, 0x83, read16_delegate(*this, FUNC(namcos11_state::c76_speedup_r)), write16_delegate(*this, FUNC(namcos11_state::c76_speedup_w)));
}
if( m_bankedroms != nullptr )
diff --git a/src/mame/drivers/namcos22.cpp b/src/mame/drivers/namcos22.cpp
index fd5d1e81ef5..c354fc475f5 100644
--- a/src/mame/drivers/namcos22.cpp
+++ b/src/mame/drivers/namcos22.cpp
@@ -5640,21 +5640,21 @@ READ16_MEMBER(namcos22_state::mcuc74_speedup_r)
void namcos22_state::install_c74_speedup()
{
if (MCU_SPEEDUP)
- m_mcu->space(AS_PROGRAM).install_readwrite_handler(0x80, 0x81, read16_delegate(FUNC(namcos22_state::mcuc74_speedup_r),this), write16_delegate(FUNC(namcos22_state::mcu_speedup_w),this));
+ m_mcu->space(AS_PROGRAM).install_readwrite_handler(0x80, 0x81, read16_delegate(*this, FUNC(namcos22_state::mcuc74_speedup_r)), write16_delegate(*this, FUNC(namcos22_state::mcu_speedup_w)));
}
void namcos22s_state::install_130_speedup()
{
// install speedup cheat for 1.20/1.30 MCU BIOS
if (MCU_SPEEDUP)
- m_mcu->space(AS_PROGRAM).install_readwrite_handler(0x82, 0x83, read16_delegate(FUNC(namcos22s_state::mcu130_speedup_r),this), write16_delegate(FUNC(namcos22s_state::mcu_speedup_w),this));
+ m_mcu->space(AS_PROGRAM).install_readwrite_handler(0x82, 0x83, read16_delegate(*this, FUNC(namcos22s_state::mcu130_speedup_r)), write16_delegate(*this, FUNC(namcos22s_state::mcu_speedup_w)));
}
void namcos22s_state::install_141_speedup()
{
// install speedup cheat for 1.41 MCU BIOS
if (MCU_SPEEDUP)
- m_mcu->space(AS_PROGRAM).install_readwrite_handler(0x82, 0x83, read16_delegate(FUNC(namcos22s_state::mcu141_speedup_r),this), write16_delegate(FUNC(namcos22s_state::mcu_speedup_w),this));
+ m_mcu->space(AS_PROGRAM).install_readwrite_handler(0x82, 0x83, read16_delegate(*this, FUNC(namcos22s_state::mcu141_speedup_r)), write16_delegate(*this, FUNC(namcos22s_state::mcu_speedup_w)));
}
diff --git a/src/mame/drivers/namcos23.cpp b/src/mame/drivers/namcos23.cpp
index 8d0d7520309..1a3b81ded51 100644
--- a/src/mame/drivers/namcos23.cpp
+++ b/src/mame/drivers/namcos23.cpp
@@ -2414,7 +2414,7 @@ WRITE32_MEMBER(namcos23_state::textchar_w)
VIDEO_START_MEMBER(namcos23_state,s23)
{
m_gfxdecode->gfx(0)->set_source(reinterpret_cast<uint8_t *>(m_charram.target()));
- m_bgtilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(namcos23_state::TextTilemapGetInfo),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
+ m_bgtilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(namcos23_state::TextTilemapGetInfo)), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
m_bgtilemap->set_transparent_pen(0xf);
m_bgtilemap->set_scrolldx(860, 860);
m_render.polymgr = std::make_unique<namcos23_renderer>(*this);
diff --git a/src/mame/drivers/naomi.cpp b/src/mame/drivers/naomi.cpp
index eb75a864492..1a9d4ea979a 100644
--- a/src/mame/drivers/naomi.cpp
+++ b/src/mame/drivers/naomi.cpp
@@ -10469,7 +10469,7 @@ READ64_MEMBER(atomiswave_state::xtrmhnt2_hack_r)
void atomiswave_state::init_xtrmhnt2()
{
init_atomiswave();
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x1000000, 0x100011f, read64_delegate(FUNC(atomiswave_state::xtrmhnt2_hack_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x1000000, 0x100011f, read64_delegate(*this, FUNC(atomiswave_state::xtrmhnt2_hack_r)));
}
ROM_START( fotns )
diff --git a/src/mame/drivers/nascom1.cpp b/src/mame/drivers/nascom1.cpp
index 879767c0ff2..26831fe30bd 100644
--- a/src/mame/drivers/nascom1.cpp
+++ b/src/mame/drivers/nascom1.cpp
@@ -807,10 +807,10 @@ void nascom_state::nascom(machine_config &config)
// devices
snapshot_image_device &snapshot(SNAPSHOT(config, "snapshot", "nas", attotime::from_msec(500)));
- snapshot.set_load_callback(FUNC(nascom_state::snapshot_cb<0>), this);
+ snapshot.set_load_callback(FUNC(nascom_state::snapshot_cb<0>));
snapshot.set_interface("nascom_snap");
snapshot_image_device &snapchar(SNAPSHOT(config, "snapchar", "chr", attotime::from_msec(500)));
- snapchar.set_load_callback(FUNC(nascom_state::snapshot_cb<1>), this);
+ snapchar.set_load_callback(FUNC(nascom_state::snapshot_cb<1>));
snapchar.set_interface("nascom_char");
}
@@ -850,9 +850,9 @@ void nascom2_state::nascom2(machine_config &config)
// generic sockets for ram/rom (todo: support ram here)
GENERIC_SOCKET(config, m_socket1, generic_plain_slot, "nascom_socket", "bin,rom");
- m_socket1->set_device_load(FUNC(nascom2_state::socket1_load), this);
+ m_socket1->set_device_load(FUNC(nascom2_state::socket1_load));
GENERIC_SOCKET(config, m_socket2, generic_plain_slot, "nascom_socket", "bin,rom");
- m_socket2->set_device_load(FUNC(nascom2_state::socket2_load), this);
+ m_socket2->set_device_load(FUNC(nascom2_state::socket2_load));
// nasbus expansion bus
nasbus_device &nasbus(NASBUS(config, NASBUS_TAG));
diff --git a/src/mame/drivers/naughtyb.cpp b/src/mame/drivers/naughtyb.cpp
index 10294400632..28d132d6991 100644
--- a/src/mame/drivers/naughtyb.cpp
+++ b/src/mame/drivers/naughtyb.cpp
@@ -839,10 +839,10 @@ ROM_END
void naughtyb_state::init_popflame()
{
/* install a handler to catch protection checks */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x9000, 0x9000, read8_delegate(FUNC(naughtyb_state::popflame_protection_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x9090, 0x9090, read8_delegate(FUNC(naughtyb_state::popflame_protection_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x9000, 0x9000, read8_delegate(*this, FUNC(naughtyb_state::popflame_protection_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x9090, 0x9090, read8_delegate(*this, FUNC(naughtyb_state::popflame_protection_r)));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xb000, 0xb0ff, write8_delegate(FUNC(naughtyb_state::popflame_protection_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xb000, 0xb0ff, write8_delegate(*this, FUNC(naughtyb_state::popflame_protection_w)));
save_item(NAME(m_popflame_prot_seed));
save_item(NAME(m_r_index));
@@ -874,7 +874,7 @@ WRITE8_MEMBER(naughtyb_state::trvmstr_questions_w)
void naughtyb_state::init_trvmstr()
{
/* install questions' handlers */
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xc000, 0xc002, read8_delegate(FUNC(naughtyb_state::trvmstr_questions_r),this), write8_delegate(FUNC(naughtyb_state::trvmstr_questions_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xc000, 0xc002, read8_delegate(*this, FUNC(naughtyb_state::trvmstr_questions_r)), write8_delegate(*this, FUNC(naughtyb_state::trvmstr_questions_w)));
save_item(NAME(m_question_offset));
}
diff --git a/src/mame/drivers/nc.cpp b/src/mame/drivers/nc.cpp
index ee78441506b..1103ba80a3b 100644
--- a/src/mame/drivers/nc.cpp
+++ b/src/mame/drivers/nc.cpp
@@ -1411,8 +1411,8 @@ void nc_state::nc_base(machine_config &config)
/* cartridge */
generic_cartslot_device &cartslot(GENERIC_CARTSLOT(config, "cardslot", generic_plain_slot, nullptr));
- cartslot.set_device_load(FUNC(nc_state::load_pcmcia_card), this);
- cartslot.set_device_unload(FUNC(nc_state::unload_pcmcia_card), this);
+ cartslot.set_device_load(FUNC(nc_state::load_pcmcia_card));
+ cartslot.set_device_unload(FUNC(nc_state::unload_pcmcia_card));
/* internal ram */
RAM(config, m_ram).set_default_size("64K");
diff --git a/src/mame/drivers/neogeo.cpp b/src/mame/drivers/neogeo.cpp
index acc92779399..5f01170e228 100644
--- a/src/mame/drivers/neogeo.cpp
+++ b/src/mame/drivers/neogeo.cpp
@@ -1405,7 +1405,7 @@ void neogeo_base_state::set_slot_idx(int slot)
space.install_read_bank(0x200000, 0x2fffff, "cartridge");
- space.install_write_handler(0x2ffff0, 0x2fffff, write16_delegate(FUNC(neogeo_base_state::write_banksel),this));
+ space.install_write_handler(0x2ffff0, 0x2fffff, write16_delegate(*this, FUNC(neogeo_base_state::write_banksel)));
m_bank_cartridge = membank("cartridge");
init_cpu();
@@ -1423,104 +1423,104 @@ void neogeo_base_state::set_slot_idx(int slot)
int type = m_slots[m_curr_slot]->get_type();
switch (type)
{
- case NEOGEO_FATFURY2:
- space.install_readwrite_handler(0x200000, 0x2fffff, read16_delegate(FUNC(neogeo_cart_slot_device::protection_r),(neogeo_cart_slot_device*)m_slots[m_curr_slot]), write16_delegate(FUNC(neogeo_cart_slot_device::protection_w),(neogeo_cart_slot_device*)m_slots[m_curr_slot]));
- break;
- case NEOGEO_KOF98:
- space.install_read_handler(0x00100, 0x00103, read16_delegate(FUNC(neogeo_cart_slot_device::protection_r),(neogeo_cart_slot_device*)m_slots[m_curr_slot]));
- space.install_write_handler(0x20aaaa, 0x20aaab, write16_delegate(FUNC(neogeo_cart_slot_device::protection_w),(neogeo_cart_slot_device*)m_slots[m_curr_slot]));
- break;
- case NEOGEO_MSLUGX:
- space.install_readwrite_handler(0x2fffe0, 0x2fffef, read16_delegate(FUNC(neogeo_cart_slot_device::protection_r),(neogeo_cart_slot_device*)m_slots[m_curr_slot]), write16_delegate(FUNC(neogeo_cart_slot_device::protection_w),(neogeo_cart_slot_device*)m_slots[m_curr_slot]));
- break;
- case NEOGEO_KOF99:
- // addon_r here gives SMA random number
- space.install_write_handler(0x2ffff0, 0x2ffff1, write16_delegate(FUNC(neogeo_base_state::write_bankprot),this));
- space.install_read_handler(0x2fe446, 0x2fe447, read16_delegate(FUNC(neogeo_cart_slot_device::protection_r),(neogeo_cart_slot_device*)m_slots[m_curr_slot]));
- space.install_read_handler(0x2ffff8, 0x2ffff9, read16_delegate(FUNC(neogeo_cart_slot_device::addon_r),(neogeo_cart_slot_device*)m_slots[m_curr_slot]));
- space.install_read_handler(0x2ffffa, 0x2ffffb, read16_delegate(FUNC(neogeo_cart_slot_device::addon_r),(neogeo_cart_slot_device*)m_slots[m_curr_slot]));
- break;
- case NEOGEO_GAROU:
- // addon_r here gives SMA random number
- space.install_write_handler(0x2fffc0, 0x2fffc1, write16_delegate(FUNC(neogeo_base_state::write_bankprot),this));
- space.install_read_handler(0x2fe446, 0x2fe447, read16_delegate(FUNC(neogeo_cart_slot_device::protection_r),(neogeo_cart_slot_device*)m_slots[m_curr_slot]));
- space.install_read_handler(0x2fffcc, 0x2fffcd, read16_delegate(FUNC(neogeo_cart_slot_device::addon_r),(neogeo_cart_slot_device*)m_slots[m_curr_slot]));
- space.install_read_handler(0x2ffff0, 0x2ffff1, read16_delegate(FUNC(neogeo_cart_slot_device::addon_r),(neogeo_cart_slot_device*)m_slots[m_curr_slot]));
- break;
- case NEOGEO_GAROUH:
- // addon_r here gives SMA random number
- space.install_write_handler(0x2fffc0, 0x2fffc1, write16_delegate(FUNC(neogeo_base_state::write_bankprot),this));
- space.install_read_handler(0x2fe446, 0x2fe447, read16_delegate(FUNC(neogeo_cart_slot_device::protection_r),(neogeo_cart_slot_device*)m_slots[m_curr_slot]));
- space.install_read_handler(0x2fffcc, 0x2fffcd, read16_delegate(FUNC(neogeo_cart_slot_device::addon_r),(neogeo_cart_slot_device*)m_slots[m_curr_slot]));
- space.install_read_handler(0x2ffff0, 0x2ffff1, read16_delegate(FUNC(neogeo_cart_slot_device::addon_r),(neogeo_cart_slot_device*)m_slots[m_curr_slot]));
- break;
- case NEOGEO_MSLUG3:
- case NEOGEO_MSLUG3A:
- space.install_write_handler(0x2fffe4, 0x2fffe5, write16_delegate(FUNC(neogeo_base_state::write_bankprot),this));
- space.install_read_handler(0x2fe446, 0x2fe447, read16_delegate(FUNC(neogeo_cart_slot_device::protection_r),(neogeo_cart_slot_device*)m_slots[m_curr_slot]));
- //space.install_read_handler(0x2ffff8, 0x2ffff9, read16_delegate(FUNC(neogeo_cart_slot_device::addon_r),(neogeo_cart_slot_device*)m_slots[m_curr_slot]));
- //space.install_read_handler(0x2ffffa, 0x2ffffb, read16_delegate(FUNC(neogeo_cart_slot_device::addon_r),(neogeo_cart_slot_device*)m_slots[m_curr_slot]));
- break;
- case NEOGEO_KOF2K:
- // addon_r here gives SMA random number
- space.install_write_handler(0x2fffec, 0x2fffed, write16_delegate(FUNC(neogeo_base_state::write_bankprot),this));
- space.install_read_handler(0x2fe446, 0x2fe447, read16_delegate(FUNC(neogeo_cart_slot_device::protection_r),(neogeo_cart_slot_device*)m_slots[m_curr_slot]));
- space.install_read_handler(0x2fffd8, 0x2fffd9, read16_delegate(FUNC(neogeo_cart_slot_device::addon_r),(neogeo_cart_slot_device*)m_slots[m_curr_slot]));
- space.install_read_handler(0x2fffda, 0x2fffdb, read16_delegate(FUNC(neogeo_cart_slot_device::addon_r),(neogeo_cart_slot_device*)m_slots[m_curr_slot]));
- break;
- case NEOGEO_MSLUG5:
- case NEOGEO_SVC:
- case NEOGEO_KOF2K3:
- case NEOGEO_KOF2K3H:
- case NEOGEO_SVCBOOT:
- case NEOGEO_SVCSPLUS:
- space.install_readwrite_handler(0x2fe000, 0x2fffff, read16_delegate(FUNC(neogeo_cart_slot_device::protection_r),(neogeo_cart_slot_device*)m_slots[m_curr_slot]), write16_delegate(FUNC(neogeo_base_state::write_bankprot_pvc),this));
- break;
- case NEOGEO_CTHD2K3:
- case NEOGEO_CT2K3SP:
- space.install_write_handler(0x2ffff0, 0x2ffff1, write16_delegate(FUNC(neogeo_base_state::write_bankprot),this));
- break;
- case NEOGEO_MSLUG5P:
- space.install_readwrite_handler(0x2ffff0, 0x2fffff, read16_delegate(FUNC(neogeo_cart_slot_device::protection_r),(neogeo_cart_slot_device*)m_slots[m_curr_slot]), write16_delegate(FUNC(neogeo_base_state::write_bankprot_ms5p),this));
- break;
- case NEOGEO_KOG:
- space.install_read_handler(0x0ffffe, 0x0fffff, read16_delegate(FUNC(neogeo_cart_slot_device::protection_r),(neogeo_cart_slot_device*)m_slots[m_curr_slot]));
- break;
- case NEOGEO_KOF2K3B:
- case NEOGEO_KOF2K3UP:
- // addon_r here gives m_overlay member from bootleg protection (possibly hack?)
- space.install_readwrite_handler(0x2fe000, 0x2fffff, read16_delegate(FUNC(neogeo_cart_slot_device::protection_r),(neogeo_cart_slot_device*)m_slots[m_curr_slot]), write16_delegate(FUNC(neogeo_base_state::write_bankprot_kf2k3bl),this));
- space.install_read_handler(0x58196, 0x58197, read16_delegate(FUNC(neogeo_cart_slot_device::addon_r),(neogeo_cart_slot_device*)m_slots[m_curr_slot]));
- break;
- case NEOGEO_KOF2K3P:
- space.install_readwrite_handler(0x2fe000, 0x2fffff, read16_delegate(FUNC(neogeo_cart_slot_device::protection_r),(neogeo_cart_slot_device*)m_slots[m_curr_slot]), write16_delegate(FUNC(neogeo_base_state::write_bankprot_kf2k3bl),this));
- break;
- case NEOGEO_SBP:
- // there seems to be a protection device living around here..
- // if you nibble swap the data in the rom the game will boot
- // there are also writes to 0x1080..
- //
- // other stuff going on as well tho, the main overlay is still missing, and p1 inputs don't work
- space.install_readwrite_handler(0x00200, 0x001fff, read16_delegate(FUNC(neogeo_cart_slot_device::protection_r),(neogeo_cart_slot_device*)m_slots[m_curr_slot]), write16_delegate(FUNC(neogeo_cart_slot_device::protection_w),(neogeo_cart_slot_device*)m_slots[m_curr_slot]));
- break;
- case NEOGEO_KOF10TH:
- // addon_r here reads from ram2 bank
- space.install_read_handler(0x000080, 0x0dffff, read16_delegate(FUNC(neogeo_base_state::read_lorom_kof10th),this));
- space.install_read_handler(0x0e0000, 0x0fffff, read16_delegate(FUNC(neogeo_cart_slot_device::addon_r),(neogeo_cart_slot_device*)m_slots[m_curr_slot]));
- space.install_read_handler(0x2fe000, 0x2fffff, read16_delegate(FUNC(neogeo_cart_slot_device::protection_r),(neogeo_cart_slot_device*)m_slots[m_curr_slot]));
- // REVIEW ME: we might possibly need to split this, by adding further write handlers
- space.install_write_handler(0x200000, 0x2fffff, write16_delegate(FUNC(neogeo_base_state::write_bankprot_kof10th),this));
- break;
- case NEOGEO_JOCKEYGP:
- space.install_readwrite_handler(0x200000, 0x201fff, read16_delegate(FUNC(neogeo_cart_slot_device::ram_r),(neogeo_cart_slot_device*)m_slots[m_curr_slot]), write16_delegate(FUNC(neogeo_cart_slot_device::ram_w),(neogeo_cart_slot_device*)m_slots[m_curr_slot]));
- break;
- case NEOGEO_VLINER:
- space.install_readwrite_handler(0x200000, 0x201fff, read16_delegate(FUNC(neogeo_cart_slot_device::ram_r),(neogeo_cart_slot_device*)m_slots[m_curr_slot]), write16_delegate(FUNC(neogeo_cart_slot_device::ram_w),(neogeo_cart_slot_device*)m_slots[m_curr_slot]));
- // custom input handling... install it here for the moment.
- space.install_read_port(0x300000, 0x300001, 0x01ff7e, "DSW");
- space.install_read_port(0x280000, 0x280001, "IN5");
- space.install_read_port(0x2c0000, 0x2c0001, "IN6");
- break;
+ case NEOGEO_FATFURY2:
+ space.install_readwrite_handler(0x200000, 0x2fffff, read16_delegate(*m_slots[m_curr_slot], FUNC(neogeo_cart_slot_device::protection_r)), write16_delegate(*m_slots[m_curr_slot], FUNC(neogeo_cart_slot_device::protection_w)));
+ break;
+ case NEOGEO_KOF98:
+ space.install_read_handler(0x00100, 0x00103, read16_delegate(*m_slots[m_curr_slot], FUNC(neogeo_cart_slot_device::protection_r)));
+ space.install_write_handler(0x20aaaa, 0x20aaab, write16_delegate(*m_slots[m_curr_slot], FUNC(neogeo_cart_slot_device::protection_w)));
+ break;
+ case NEOGEO_MSLUGX:
+ space.install_readwrite_handler(0x2fffe0, 0x2fffef, read16_delegate(*m_slots[m_curr_slot], FUNC(neogeo_cart_slot_device::protection_r)), write16_delegate(*m_slots[m_curr_slot], FUNC(neogeo_cart_slot_device::protection_w)));
+ break;
+ case NEOGEO_KOF99:
+ // addon_r here gives SMA random number
+ space.install_write_handler(0x2ffff0, 0x2ffff1, write16_delegate(*this, FUNC(neogeo_base_state::write_bankprot)));
+ space.install_read_handler(0x2fe446, 0x2fe447, read16_delegate(*m_slots[m_curr_slot], FUNC(neogeo_cart_slot_device::protection_r)));
+ space.install_read_handler(0x2ffff8, 0x2ffff9, read16_delegate(*m_slots[m_curr_slot], FUNC(neogeo_cart_slot_device::addon_r)));
+ space.install_read_handler(0x2ffffa, 0x2ffffb, read16_delegate(*m_slots[m_curr_slot], FUNC(neogeo_cart_slot_device::addon_r)));
+ break;
+ case NEOGEO_GAROU:
+ // addon_r here gives SMA random number
+ space.install_write_handler(0x2fffc0, 0x2fffc1, write16_delegate(*this, FUNC(neogeo_base_state::write_bankprot)));
+ space.install_read_handler(0x2fe446, 0x2fe447, read16_delegate(*m_slots[m_curr_slot], FUNC(neogeo_cart_slot_device::protection_r)));
+ space.install_read_handler(0x2fffcc, 0x2fffcd, read16_delegate(*m_slots[m_curr_slot], FUNC(neogeo_cart_slot_device::addon_r)));
+ space.install_read_handler(0x2ffff0, 0x2ffff1, read16_delegate(*m_slots[m_curr_slot], FUNC(neogeo_cart_slot_device::addon_r)));
+ break;
+ case NEOGEO_GAROUH:
+ // addon_r here gives SMA random number
+ space.install_write_handler(0x2fffc0, 0x2fffc1, write16_delegate(*this, FUNC(neogeo_base_state::write_bankprot)));
+ space.install_read_handler(0x2fe446, 0x2fe447, read16_delegate(*m_slots[m_curr_slot], FUNC(neogeo_cart_slot_device::protection_r)));
+ space.install_read_handler(0x2fffcc, 0x2fffcd, read16_delegate(*m_slots[m_curr_slot], FUNC(neogeo_cart_slot_device::addon_r)));
+ space.install_read_handler(0x2ffff0, 0x2ffff1, read16_delegate(*m_slots[m_curr_slot], FUNC(neogeo_cart_slot_device::addon_r)));
+ break;
+ case NEOGEO_MSLUG3:
+ case NEOGEO_MSLUG3A:
+ space.install_write_handler(0x2fffe4, 0x2fffe5, write16_delegate(*this, FUNC(neogeo_base_state::write_bankprot)));
+ space.install_read_handler(0x2fe446, 0x2fe447, read16_delegate(*m_slots[m_curr_slot], FUNC(neogeo_cart_slot_device::protection_r)));
+ //space.install_read_handler(0x2ffff8, 0x2ffff9, read16_delegate(*m_slots[m_curr_slot], FUNC(neogeo_cart_slot_device::addon_r)));
+ //space.install_read_handler(0x2ffffa, 0x2ffffb, read16_delegate(*m_slots[m_curr_slot], FUNC(neogeo_cart_slot_device::addon_r)));
+ break;
+ case NEOGEO_KOF2K:
+ // addon_r here gives SMA random number
+ space.install_write_handler(0x2fffec, 0x2fffed, write16_delegate(*this, FUNC(neogeo_base_state::write_bankprot)));
+ space.install_read_handler(0x2fe446, 0x2fe447, read16_delegate(*m_slots[m_curr_slot], FUNC(neogeo_cart_slot_device::protection_r)));
+ space.install_read_handler(0x2fffd8, 0x2fffd9, read16_delegate(*m_slots[m_curr_slot], FUNC(neogeo_cart_slot_device::addon_r)));
+ space.install_read_handler(0x2fffda, 0x2fffdb, read16_delegate(*m_slots[m_curr_slot], FUNC(neogeo_cart_slot_device::addon_r)));
+ break;
+ case NEOGEO_MSLUG5:
+ case NEOGEO_SVC:
+ case NEOGEO_KOF2K3:
+ case NEOGEO_KOF2K3H:
+ case NEOGEO_SVCBOOT:
+ case NEOGEO_SVCSPLUS:
+ space.install_readwrite_handler(0x2fe000, 0x2fffff, read16_delegate(*m_slots[m_curr_slot], FUNC(neogeo_cart_slot_device::protection_r)), write16_delegate(*this, FUNC(neogeo_base_state::write_bankprot_pvc)));
+ break;
+ case NEOGEO_CTHD2K3:
+ case NEOGEO_CT2K3SP:
+ space.install_write_handler(0x2ffff0, 0x2ffff1, write16_delegate(*this, FUNC(neogeo_base_state::write_bankprot)));
+ break;
+ case NEOGEO_MSLUG5P:
+ space.install_readwrite_handler(0x2ffff0, 0x2fffff, read16_delegate(*m_slots[m_curr_slot], FUNC(neogeo_cart_slot_device::protection_r)), write16_delegate(*this, FUNC(neogeo_base_state::write_bankprot_ms5p)));
+ break;
+ case NEOGEO_KOG:
+ space.install_read_handler(0x0ffffe, 0x0fffff, read16_delegate(*m_slots[m_curr_slot], FUNC(neogeo_cart_slot_device::protection_r)));
+ break;
+ case NEOGEO_KOF2K3B:
+ case NEOGEO_KOF2K3UP:
+ // addon_r here gives m_overlay member from bootleg protection (possibly hack?)
+ space.install_readwrite_handler(0x2fe000, 0x2fffff, read16_delegate(*m_slots[m_curr_slot], FUNC(neogeo_cart_slot_device::protection_r)), write16_delegate(*this, FUNC(neogeo_base_state::write_bankprot_kf2k3bl)));
+ space.install_read_handler(0x58196, 0x58197, read16_delegate(*m_slots[m_curr_slot], FUNC(neogeo_cart_slot_device::addon_r)));
+ break;
+ case NEOGEO_KOF2K3P:
+ space.install_readwrite_handler(0x2fe000, 0x2fffff, read16_delegate(*m_slots[m_curr_slot], FUNC(neogeo_cart_slot_device::protection_r)), write16_delegate(*this, FUNC(neogeo_base_state::write_bankprot_kf2k3bl)));
+ break;
+ case NEOGEO_SBP:
+ // there seems to be a protection device living around here..
+ // if you nibble swap the data in the rom the game will boot
+ // there are also writes to 0x1080..
+ //
+ // other stuff going on as well tho, the main overlay is still missing, and p1 inputs don't work
+ space.install_readwrite_handler(0x00200, 0x001fff, read16_delegate(*m_slots[m_curr_slot], FUNC(neogeo_cart_slot_device::protection_r)), write16_delegate(*m_slots[m_curr_slot], FUNC(neogeo_cart_slot_device::protection_w)));
+ break;
+ case NEOGEO_KOF10TH:
+ // addon_r here reads from ram2 bank
+ space.install_read_handler(0x000080, 0x0dffff, read16_delegate(*this, FUNC(neogeo_base_state::read_lorom_kof10th)));
+ space.install_read_handler(0x0e0000, 0x0fffff, read16_delegate(*m_slots[m_curr_slot], FUNC(neogeo_cart_slot_device::addon_r)));
+ space.install_read_handler(0x2fe000, 0x2fffff, read16_delegate(*m_slots[m_curr_slot], FUNC(neogeo_cart_slot_device::protection_r)));
+ // REVIEW ME: we might possibly need to split this, by adding further write handlers
+ space.install_write_handler(0x200000, 0x2fffff, write16_delegate(*this, FUNC(neogeo_base_state::write_bankprot_kof10th)));
+ break;
+ case NEOGEO_JOCKEYGP:
+ space.install_readwrite_handler(0x200000, 0x201fff, read16_delegate(*m_slots[m_curr_slot], FUNC(neogeo_cart_slot_device::ram_r)), write16_delegate(*m_slots[m_curr_slot], FUNC(neogeo_cart_slot_device::ram_w)));
+ break;
+ case NEOGEO_VLINER:
+ space.install_readwrite_handler(0x200000, 0x201fff, read16_delegate(*m_slots[m_curr_slot], FUNC(neogeo_cart_slot_device::ram_r)), write16_delegate(*m_slots[m_curr_slot], FUNC(neogeo_cart_slot_device::ram_w)));
+ // custom input handling... install it here for the moment.
+ space.install_read_port(0x300000, 0x300001, 0x01ff7e, "DSW");
+ space.install_read_port(0x280000, 0x280001, "IN5");
+ space.install_read_port(0x2c0000, 0x2c0001, "IN6");
+ break;
}
}
}
@@ -1563,19 +1563,19 @@ void ngarcade_base_state::machine_start()
address_space &main_program_space(m_maincpu->space(AS_PROGRAM));
if (m_ctrl1)
- main_program_space.install_read_handler(0x300000, 0x300001, 0, 0x01ff7e, 0, read16_delegate(FUNC(ngarcade_base_state::in0_edge_joy_r), this));
+ main_program_space.install_read_handler(0x300000, 0x300001, 0, 0x01ff7e, 0, read16_delegate(*this, FUNC(ngarcade_base_state::in0_edge_joy_r)));
else if (m_edge)
- main_program_space.install_read_handler(0x300000, 0x300001, 0, 0x01ff7e, 0, read16_delegate(FUNC(ngarcade_base_state::in0_edge_r), this));
+ main_program_space.install_read_handler(0x300000, 0x300001, 0, 0x01ff7e, 0, read16_delegate(*this, FUNC(ngarcade_base_state::in0_edge_r)));
if (m_ctrl2)
- main_program_space.install_read_handler(0x340000, 0x340001, 0, 0x01fffe, 0, read16_delegate(FUNC(ngarcade_base_state::in1_edge_joy_r), this));
+ main_program_space.install_read_handler(0x340000, 0x340001, 0, 0x01fffe, 0, read16_delegate(*this, FUNC(ngarcade_base_state::in1_edge_joy_r)));
else if (m_edge)
- main_program_space.install_read_handler(0x340000, 0x340001, 0, 0x01fffe, 0, read16_delegate(FUNC(ngarcade_base_state::in1_edge_r), this));
+ main_program_space.install_read_handler(0x340000, 0x340001, 0, 0x01fffe, 0, read16_delegate(*this, FUNC(ngarcade_base_state::in1_edge_r)));
if (m_memcard)
{
main_program_space.unmap_readwrite(0x800000, 0x800fff);
- main_program_space.install_readwrite_handler(0x800000, 0x800fff, read16_delegate(FUNC(ngarcade_base_state::memcard_r), this), write16_delegate(FUNC(ngarcade_base_state::memcard_w), this));
+ main_program_space.install_readwrite_handler(0x800000, 0x800fff, read16_delegate(*this, FUNC(ngarcade_base_state::memcard_r)), write16_delegate(*this, FUNC(ngarcade_base_state::memcard_w)));
}
// enable rtc and serial mode
diff --git a/src/mame/drivers/neogeocd.cpp b/src/mame/drivers/neogeocd.cpp
index cdfb8209aa1..9e1763ecc87 100644
--- a/src/mame/drivers/neogeocd.cpp
+++ b/src/mame/drivers/neogeocd.cpp
@@ -1056,9 +1056,9 @@ void ngcd_state::neocd(machine_config &config)
LC89510_TEMP(config, m_tempcdc, 0); // cd controller
m_tempcdc->set_cdrom_tag("cdrom");
m_tempcdc->set_is_neoCD(true);
- m_tempcdc->set_type1_interrupt_callback(FUNC(ngcd_state::interrupt_callback_type1), this);
- m_tempcdc->set_type2_interrupt_callback(FUNC(ngcd_state::interrupt_callback_type2), this);
- m_tempcdc->set_type3_interrupt_callback(FUNC(ngcd_state::interrupt_callback_type3), this);
+ m_tempcdc->set_type1_interrupt_callback(FUNC(ngcd_state::interrupt_callback_type1));
+ m_tempcdc->set_type2_interrupt_callback(FUNC(ngcd_state::interrupt_callback_type2));
+ m_tempcdc->set_type3_interrupt_callback(FUNC(ngcd_state::interrupt_callback_type3));
NVRAM(config, "saveram", nvram_device::DEFAULT_ALL_0);
diff --git a/src/mame/drivers/neopcb.cpp b/src/mame/drivers/neopcb.cpp
index 9f1a460ae08..f678a169d2d 100644
--- a/src/mame/drivers/neopcb.cpp
+++ b/src/mame/drivers/neopcb.cpp
@@ -469,7 +469,7 @@ void neopcb_state::install_common()
membank("cpu_bank")->set_base(m_region_maincpu->base() + 0x100000);
// install protection handlers + bankswitch handler
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x2fe000, 0x2fffff, read16_delegate(FUNC(pvc_prot_device::protection_r),(pvc_prot_device*)m_pvc_prot), write16_delegate(FUNC(neopcb_state::write_bankpvc),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x2fe000, 0x2fffff, read16_delegate(*m_pvc_prot, FUNC(pvc_prot_device::protection_r)), write16_delegate(*this, FUNC(neopcb_state::write_bankpvc)));
// perform basic memory initialization that are usually done on-cart
m_curr_slot = 0;
diff --git a/src/mame/drivers/nes.cpp b/src/mame/drivers/nes.cpp
index b2aacb90e2a..59b38b9c1e7 100644
--- a/src/mame/drivers/nes.cpp
+++ b/src/mame/drivers/nes.cpp
@@ -169,24 +169,24 @@ void nes_state::setup_disk(nes_disksys_device *slot)
address_space &space = m_maincpu->space(AS_PROGRAM);
// Set up memory handlers
- space.install_read_handler(0x4020, 0x40ff, read8sm_delegate(FUNC(nes_disksys_device::read_ex), (nes_disksys_device *)slot));
- space.install_write_handler(0x4020, 0x40ff, write8sm_delegate(FUNC(nes_disksys_device::write_ex), (nes_disksys_device *)slot));
- space.install_read_handler(0x4100, 0x5fff, read8sm_delegate(FUNC(device_nes_cart_interface::read_l), (device_nes_cart_interface *)slot));
- space.install_write_handler(0x4100, 0x5fff, write8sm_delegate(FUNC(device_nes_cart_interface::write_l), (device_nes_cart_interface *)slot));
- space.install_read_handler(0x6000, 0x7fff, read8sm_delegate(FUNC(nes_disksys_device::read_m), (nes_disksys_device *)slot));
- space.install_write_handler(0x6000, 0x7fff, write8sm_delegate(FUNC(nes_disksys_device::write_m), (nes_disksys_device *)slot));
- space.install_read_handler(0x8000, 0xffff, read8sm_delegate(FUNC(nes_disksys_device::read_h), (nes_disksys_device *)slot));
- space.install_write_handler(0x8000, 0xffff, write8sm_delegate(FUNC(nes_disksys_device::write_h), (nes_disksys_device *)slot));
+ space.install_read_handler(0x4020, 0x40ff, read8sm_delegate(*slot, FUNC(nes_disksys_device::read_ex)));
+ space.install_write_handler(0x4020, 0x40ff, write8sm_delegate(*slot, FUNC(nes_disksys_device::write_ex)));
+ space.install_read_handler(0x4100, 0x5fff, read8sm_delegate(*slot, FUNC(device_nes_cart_interface::read_l)));
+ space.install_write_handler(0x4100, 0x5fff, write8sm_delegate(*slot, FUNC(device_nes_cart_interface::write_l)));
+ space.install_read_handler(0x6000, 0x7fff, read8sm_delegate(*slot, FUNC(nes_disksys_device::read_m)));
+ space.install_write_handler(0x6000, 0x7fff, write8sm_delegate(*slot, FUNC(nes_disksys_device::write_m)));
+ space.install_read_handler(0x8000, 0xffff, read8sm_delegate(*slot, FUNC(nes_disksys_device::read_h)));
+ space.install_write_handler(0x8000, 0xffff, write8sm_delegate(*slot, FUNC(nes_disksys_device::write_h)));
slot->vram_alloc(0x2000);
slot->prgram_alloc(0x8000);
slot->pcb_start(machine(), m_ciram.get(), false);
- m_ppu->space(AS_PROGRAM).install_readwrite_handler(0, 0x1fff, read8sm_delegate(FUNC(device_nes_cart_interface::chr_r),(device_nes_cart_interface *)slot), write8sm_delegate(FUNC(device_nes_cart_interface::chr_w),(device_nes_cart_interface *)slot));
- m_ppu->space(AS_PROGRAM).install_readwrite_handler(0x2000, 0x3eff, read8sm_delegate(FUNC(device_nes_cart_interface::nt_r),(device_nes_cart_interface *)slot), write8sm_delegate(FUNC(device_nes_cart_interface::nt_w),(device_nes_cart_interface *)slot));
- m_ppu->set_scanline_callback(ppu2c0x_device::scanline_delegate(FUNC(device_nes_cart_interface::scanline_irq),(device_nes_cart_interface *)slot));
- m_ppu->set_hblank_callback(ppu2c0x_device::hblank_delegate(FUNC(nes_disksys_device::hblank_irq),(nes_disksys_device *)slot));
- m_ppu->set_latch(ppu2c0x_device::latch_delegate(FUNC(device_nes_cart_interface::ppu_latch),(device_nes_cart_interface *)slot));
+ m_ppu->space(AS_PROGRAM).install_readwrite_handler(0, 0x1fff, read8sm_delegate(*slot, FUNC(device_nes_cart_interface::chr_r)), write8sm_delegate(*slot, FUNC(device_nes_cart_interface::chr_w)));
+ m_ppu->space(AS_PROGRAM).install_readwrite_handler(0x2000, 0x3eff, read8sm_delegate(*slot, FUNC(device_nes_cart_interface::nt_r)), write8sm_delegate(*slot, FUNC(device_nes_cart_interface::nt_w)));
+ m_ppu->set_scanline_callback(*slot, FUNC(device_nes_cart_interface::scanline_irq));
+ m_ppu->set_hblank_callback(*slot, FUNC(nes_disksys_device::hblank_irq));
+ m_ppu->set_latch(*slot, FUNC(device_nes_cart_interface::ppu_latch));
}
}
diff --git a/src/mame/drivers/nes_vt.cpp b/src/mame/drivers/nes_vt.cpp
index 1378109963a..e9d467b4ade 100644
--- a/src/mame/drivers/nes_vt.cpp
+++ b/src/mame/drivers/nes_vt.cpp
@@ -720,13 +720,13 @@ void nes_vt_state::machine_start()
m_chrram = std::make_unique<uint8_t[]>(0x2000);
save_pointer(NAME(m_chrram), 0x2000);
- m_ppu->set_scanline_callback(ppu2c0x_device::scanline_delegate(FUNC(nes_vt_state::scanline_irq),this));
- m_ppu->set_hblank_callback(ppu2c0x_device::scanline_delegate(FUNC(nes_vt_state::hblank_irq),this));
+ m_ppu->set_scanline_callback(*this, FUNC(nes_vt_state::scanline_irq));
+ m_ppu->set_hblank_callback(*this, FUNC(nes_vt_state::hblank_irq));
-// m_ppu->set_hblank_callback(ppu2c0x_device::hblank_delegate(FUNC(device_nes_cart_interface::hblank_irq),m_cartslot->m_cart));
-// m_ppu->space(AS_PROGRAM).install_readwrite_handler(0, 0x1fff, read8_delegate(FUNC(device_nes_cart_interface::chr_r),m_cartslot->m_cart), write8_delegate(FUNC(device_nes_cart_interface::chr_w),m_cartslot->m_cart));
- m_ppu->space(AS_PROGRAM).install_readwrite_handler(0x2000, 0x3eff, read8_delegate(FUNC(nes_vt_state::nt_r),this), write8_delegate(FUNC(nes_vt_state::nt_w),this));
- m_ppu->space(AS_PROGRAM).install_readwrite_handler(0, 0x1fff, read8_delegate(FUNC(nes_vt_state::chr_r),this), write8_delegate(FUNC(nes_vt_state::chr_w),this));
+// m_ppu->set_hblank_callback(*m_cartslot->m_cart, FUNC(device_nes_cart_interface::hblank_irq)));
+// m_ppu->space(AS_PROGRAM).install_readwrite_handler(0, 0x1fff, read8_delegate(*m_cartslot->m_cart, FUNC(device_nes_cart_interface::chr_r)), write8_delegate(*m_cartslot->m_cart, FUNC(device_nes_cart_interface::chr_w)));
+ m_ppu->space(AS_PROGRAM).install_readwrite_handler(0x2000, 0x3eff, read8_delegate(*this, FUNC(nes_vt_state::nt_r)), write8_delegate(*this, FUNC(nes_vt_state::nt_w)));
+ m_ppu->space(AS_PROGRAM).install_readwrite_handler(0, 0x1fff, read8_delegate(*this, FUNC(nes_vt_state::chr_r)), write8_delegate(*this, FUNC(nes_vt_state::chr_w)));
}
diff --git a/src/mame/drivers/ngen.cpp b/src/mame/drivers/ngen.cpp
index a3bf0d6e4f8..64aca1d588e 100644
--- a/src/mame/drivers/ngen.cpp
+++ b/src/mame/drivers/ngen.cpp
@@ -268,13 +268,13 @@ WRITE16_MEMBER(ngen_state::cpu_peripheral_cb)
addr = (m_peripheral & 0xffc0) << 4;
if(m_middle & 0x0040)
{
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(addr, addr + 0x3ff, read16_delegate(FUNC(ngen_state::peripheral_r), this), write16_delegate(FUNC(ngen_state::peripheral_w), this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(addr, addr + 0x3ff, read16_delegate(*this, FUNC(ngen_state::peripheral_r)), write16_delegate(*this, FUNC(ngen_state::peripheral_w)));
logerror("Mapped peripherals to memory 0x%08x\n",addr);
}
else
{
addr &= 0xffff;
- m_maincpu->space(AS_IO).install_readwrite_handler(addr, addr + 0x3ff, read16_delegate(FUNC(ngen_state::peripheral_r), this), write16_delegate(FUNC(ngen_state::peripheral_w), this));
+ m_maincpu->space(AS_IO).install_readwrite_handler(addr, addr + 0x3ff, read16_delegate(*this, FUNC(ngen_state::peripheral_r)), write16_delegate(*this, FUNC(ngen_state::peripheral_w)));
logerror("Mapped peripherals to I/O 0x%04x\n",addr);
}
break;
@@ -450,7 +450,7 @@ WRITE16_MEMBER(ngen_state::xbus_w)
switch(m_xbus_current)
{
case 0x00: // Floppy/Hard disk module
- io.install_readwrite_handler(addr,addr+0xff,read16_delegate(FUNC(ngen_state::hfd_r),this),write16_delegate(FUNC(ngen_state::hfd_w),this),0xffffffff);
+ io.install_readwrite_handler(addr,addr+0xff, read16_delegate(*this, FUNC(ngen_state::hfd_r)), write16_delegate(*this, FUNC(ngen_state::hfd_w)), 0xffffffff);
break;
default:
cpu->pulse_input_line(INPUT_LINE_NMI, attotime::zero); // reached end of the modules
@@ -999,7 +999,7 @@ void ngen_state::ngen(machine_config &config)
m_crtc->set_screen("screen");
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(9);
- m_crtc->set_update_row_callback(FUNC(ngen_state::crtc_update_row), this);
+ m_crtc->set_update_row_callback(FUNC(ngen_state::crtc_update_row));
// keyboard UART (patent says i8251 is used for keyboard communications, it is located on the video board)
I8251(config, m_viduart, 0); // main clock unknown, Rx/Tx clocks are 19.53kHz
@@ -1112,7 +1112,7 @@ void ngen386_state::ngen386(machine_config &config)
m_crtc->set_screen("screen");
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(9);
- m_crtc->set_update_row_callback(FUNC(ngen386_state::crtc_update_row), this);
+ m_crtc->set_update_row_callback(FUNC(ngen386_state::crtc_update_row));
// keyboard UART (patent says i8251 is used for keyboard communications, it is located on the video board)
I8251(config, m_viduart, 0); // main clock unknown, Rx/Tx clocks are 19.53kHz
diff --git a/src/mame/drivers/ngp.cpp b/src/mame/drivers/ngp.cpp
index 5170c52171f..a4713dc199b 100644
--- a/src/mame/drivers/ngp.cpp
+++ b/src/mame/drivers/ngp.cpp
@@ -868,8 +868,8 @@ void ngp_state::ngp(machine_config &config)
subdevice<screen_device>("screen")->set_palette("k1ge:palette");
generic_cartslot_device &cartslot(GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "ngp_cart", "bin,ngp,npc,ngc"));
- cartslot.set_device_load(FUNC(ngp_state::load_ngp_cart), this);
- cartslot.set_device_unload(FUNC(ngp_state::unload_ngp_cart), this);
+ cartslot.set_device_load(FUNC(ngp_state::load_ngp_cart));
+ cartslot.set_device_unload(FUNC(ngp_state::unload_ngp_cart));
/* software lists */
SOFTWARE_LIST(config, "cart_list").set_original("ngp");
@@ -887,8 +887,8 @@ void ngp_state::ngpc(machine_config &config)
subdevice<screen_device>("screen")->set_palette("k1ge:palette");
generic_cartslot_device &cartslot(GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "ngp_cart", "bin,ngp,npc,ngc"));
- cartslot.set_device_load(FUNC(ngp_state::load_ngp_cart), this);
- cartslot.set_device_unload(FUNC(ngp_state::unload_ngp_cart), this);
+ cartslot.set_device_load(FUNC(ngp_state::load_ngp_cart));
+ cartslot.set_device_unload(FUNC(ngp_state::unload_ngp_cart));
/* software lists */
SOFTWARE_LIST(config, "cart_list").set_original("ngpc");
diff --git a/src/mame/drivers/nibble.cpp b/src/mame/drivers/nibble.cpp
index dab1ae412ff..7cad912b972 100644
--- a/src/mame/drivers/nibble.cpp
+++ b/src/mame/drivers/nibble.cpp
@@ -123,7 +123,7 @@ TILE_GET_INFO_MEMBER(nibble_state::get_bg_tile_info)
void nibble_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(nibble_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(nibble_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
uint32_t nibble_state::screen_update_nibble(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
diff --git a/src/mame/drivers/nightgal.cpp b/src/mame/drivers/nightgal.cpp
index 67d47158bcc..801e60a48b1 100644
--- a/src/mame/drivers/nightgal.cpp
+++ b/src/mame/drivers/nightgal.cpp
@@ -1325,8 +1325,8 @@ READ8_MEMBER(nightgal_state::ngalsumr_prot_value_r)
void nightgal_state::init_ngalsumr()
{
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x6000, 0x6000, write8_delegate(FUNC(nightgal_state::ngalsumr_prot_latch_w), this) );
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x6001, 0x6001, read8_delegate(FUNC(nightgal_state::ngalsumr_prot_value_r), this) );
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x6000, 0x6000, write8_delegate(*this, FUNC(nightgal_state::ngalsumr_prot_latch_w)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x6001, 0x6001, read8_delegate(*this, FUNC(nightgal_state::ngalsumr_prot_value_r)));
// 0x6003 some kind of f/f state
}
diff --git a/src/mame/drivers/ninjakd2.cpp b/src/mame/drivers/ninjakd2.cpp
index adf3b7d63eb..2bdcee7d420 100644
--- a/src/mame/drivers/ninjakd2.cpp
+++ b/src/mame/drivers/ninjakd2.cpp
@@ -1672,7 +1672,7 @@ void robokid_state::motion_error_kludge(uint16_t offset)
ROM[2] = 0x18;
ROM[3] = 0xf6; // jr $-8
- m_maincpu->space(AS_PROGRAM).install_read_handler(offset, offset, read8_delegate(FUNC(robokid_state::motion_error_verbose_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(offset, offset, read8_delegate(*this, FUNC(robokid_state::motion_error_verbose_r)));
}
void robokid_state::init_robokid()
diff --git a/src/mame/drivers/nmg5.cpp b/src/mame/drivers/nmg5.cpp
index 1f3def2ebe7..71d8f5c2ab4 100644
--- a/src/mame/drivers/nmg5.cpp
+++ b/src/mame/drivers/nmg5.cpp
@@ -861,8 +861,8 @@ TILE_GET_INFO_MEMBER(nmg5_state::get_tile_info){ SET_TILE_INFO_MEMBER(0, m_vram[
void nmg5_state::video_start()
{
- m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(nmg5_state::get_tile_info<0>),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(nmg5_state::get_tile_info<1>),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(nmg5_state::get_tile_info<0>)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(nmg5_state::get_tile_info<1>)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
m_tilemap[1]->set_transparent_pen(0);
m_pixmap = std::make_unique<bitmap_ind16>(512, 256);
diff --git a/src/mame/drivers/nmk16.cpp b/src/mame/drivers/nmk16.cpp
index d396617dce7..07b0f040057 100644
--- a/src/mame/drivers/nmk16.cpp
+++ b/src/mame/drivers/nmk16.cpp
@@ -4141,8 +4141,8 @@ void nmk16_state::tharrier(machine_config &config)
/* video hardware */
set_hacky_screen_lowres(config);
- m_spritegen->set_colpri_callback(FUNC(nmk16_state::get_colour_4bit), this);
- m_spritegen->set_ext_callback(FUNC(nmk16_state::get_sprite_flip), this);
+ m_spritegen->set_colpri_callback(FUNC(nmk16_state::get_colour_4bit));
+ m_spritegen->set_ext_callback(FUNC(nmk16_state::get_sprite_flip));
m_screen->set_screen_update(FUNC(nmk16_state::screen_update_tharrier));
GFXDECODE(config, m_gfxdecode, m_palette, gfx_tharrier);
@@ -4180,7 +4180,7 @@ void nmk16_state::mustang(machine_config &config)
/* video hardware */
set_hacky_screen_lowres(config);
- m_spritegen->set_colpri_callback(FUNC(nmk16_state::get_colour_4bit), this);
+ m_spritegen->set_colpri_callback(FUNC(nmk16_state::get_colour_4bit));
m_screen->set_screen_update(FUNC(nmk16_state::screen_update_macross));
GFXDECODE(config, m_gfxdecode, m_palette, gfx_macross);
@@ -4222,7 +4222,7 @@ void nmk16_state::mustangb(machine_config &config)
/* video hardware */
set_hacky_screen_lowres(config);
- m_spritegen->set_colpri_callback(FUNC(nmk16_state::get_colour_4bit), this);
+ m_spritegen->set_colpri_callback(FUNC(nmk16_state::get_colour_4bit));
m_screen->set_screen_update(FUNC(nmk16_state::screen_update_macross));
GFXDECODE(config, m_gfxdecode, m_palette, gfx_macross);
@@ -4255,7 +4255,7 @@ void nmk16_state::bioship(machine_config &config)
/* video hardware */
set_hacky_screen_lowres(config);
- m_spritegen->set_colpri_callback(FUNC(nmk16_state::get_colour_4bit), this);
+ m_spritegen->set_colpri_callback(FUNC(nmk16_state::get_colour_4bit));
m_screen->set_screen_update(FUNC(nmk16_state::screen_update_strahl));
GFXDECODE(config, m_gfxdecode, m_palette, gfx_bioship);
@@ -4293,7 +4293,7 @@ void nmk16_state::vandyke(machine_config &config)
/* video hardware */
set_hacky_screen_lowres(config);
- m_spritegen->set_colpri_callback(FUNC(nmk16_state::get_colour_4bit), this);
+ m_spritegen->set_colpri_callback(FUNC(nmk16_state::get_colour_4bit));
m_screen->set_screen_update(FUNC(nmk16_state::screen_update_macross));
GFXDECODE(config, m_gfxdecode, m_palette, gfx_macross);
@@ -4333,7 +4333,7 @@ void nmk16_state::vandykeb(machine_config &config)
/* video hardware */
set_hacky_screen_lowres(config);
- m_spritegen->set_colpri_callback(FUNC(nmk16_state::get_colour_4bit), this);
+ m_spritegen->set_colpri_callback(FUNC(nmk16_state::get_colour_4bit));
m_screen->set_screen_update(FUNC(nmk16_state::screen_update_macross));
GFXDECODE(config, m_gfxdecode, m_palette, gfx_macross);
@@ -4357,7 +4357,7 @@ void nmk16_state::acrobatm(machine_config &config)
/* video hardware */
set_hacky_screen_lowres(config);
- m_spritegen->set_colpri_callback(FUNC(nmk16_state::get_colour_4bit), this);
+ m_spritegen->set_colpri_callback(FUNC(nmk16_state::get_colour_4bit));
m_screen->set_screen_update(FUNC(nmk16_state::screen_update_macross));
GFXDECODE(config, m_gfxdecode, m_palette, gfx_macross);
@@ -4399,7 +4399,7 @@ void nmk16_state::tdragonb(machine_config &config) /* bootleg using Raiden so
/* video hardware */
set_hacky_screen_lowres(config);
- m_spritegen->set_colpri_callback(FUNC(nmk16_state::get_colour_4bit), this);
+ m_spritegen->set_colpri_callback(FUNC(nmk16_state::get_colour_4bit));
m_screen->set_screen_update(FUNC(nmk16_state::screen_update_macross));
GFXDECODE(config, m_gfxdecode, m_palette, gfx_macross);
@@ -4432,7 +4432,7 @@ void nmk16_state::tdragon(machine_config &config)
/* video hardware */
set_hacky_screen_lowres(config);
- m_spritegen->set_colpri_callback(FUNC(nmk16_state::get_colour_4bit), this);
+ m_spritegen->set_colpri_callback(FUNC(nmk16_state::get_colour_4bit));
m_screen->set_screen_update(FUNC(nmk16_state::screen_update_macross));
GFXDECODE(config, m_gfxdecode, m_palette, gfx_macross);
@@ -4479,7 +4479,7 @@ void nmk16_state::ssmissin(machine_config &config)
/* video hardware */
set_hacky_screen_lowres(config);
- m_spritegen->set_colpri_callback(FUNC(nmk16_state::get_colour_4bit), this);
+ m_spritegen->set_colpri_callback(FUNC(nmk16_state::get_colour_4bit));
m_screen->set_screen_update(FUNC(nmk16_state::screen_update_macross));
GFXDECODE(config, m_gfxdecode, m_palette, gfx_macross);
@@ -4506,7 +4506,7 @@ void nmk16_state::strahl(machine_config &config)
/* video hardware */
set_hacky_screen_lowres(config);
- m_spritegen->set_colpri_callback(FUNC(nmk16_state::get_colour_4bit), this);
+ m_spritegen->set_colpri_callback(FUNC(nmk16_state::get_colour_4bit));
m_screen->set_screen_update(FUNC(nmk16_state::screen_update_strahl));
GFXDECODE(config, m_gfxdecode, m_palette, gfx_strahl);
@@ -4544,7 +4544,7 @@ void nmk16_state::hachamf(machine_config &config)
/* video hardware */
set_hacky_screen_lowres(config);
- m_spritegen->set_colpri_callback(FUNC(nmk16_state::get_colour_4bit), this);
+ m_spritegen->set_colpri_callback(FUNC(nmk16_state::get_colour_4bit));
m_screen->set_screen_update(FUNC(nmk16_state::screen_update_macross));
GFXDECODE(config, m_gfxdecode, m_palette, gfx_macross);
@@ -4589,7 +4589,7 @@ void nmk16_state::macross(machine_config &config)
/* video hardware */
set_hacky_screen_lowres(config);
- m_spritegen->set_colpri_callback(FUNC(nmk16_state::get_colour_4bit), this);
+ m_spritegen->set_colpri_callback(FUNC(nmk16_state::get_colour_4bit));
m_screen->set_screen_update(FUNC(nmk16_state::screen_update_macross));
GFXDECODE(config, m_gfxdecode, m_palette, gfx_macross);
@@ -4627,7 +4627,7 @@ void nmk16_state::blkheart(machine_config &config)
/* video hardware */
set_hacky_screen_lowres(config);
- m_spritegen->set_colpri_callback(FUNC(nmk16_state::get_colour_4bit), this);
+ m_spritegen->set_colpri_callback(FUNC(nmk16_state::get_colour_4bit));
m_screen->set_screen_update(FUNC(nmk16_state::screen_update_macross));
GFXDECODE(config, m_gfxdecode, m_palette, gfx_macross);
@@ -4665,7 +4665,7 @@ void nmk16_state::gunnail(machine_config &config)
/* video hardware */
set_hacky_screen_hires(config);
- m_spritegen->set_colpri_callback(FUNC(nmk16_state::get_colour_4bit), this);
+ m_spritegen->set_colpri_callback(FUNC(nmk16_state::get_colour_4bit));
m_screen->set_screen_update(FUNC(nmk16_state::screen_update_macross));
GFXDECODE(config, m_gfxdecode, m_palette, gfx_macross);
@@ -4728,7 +4728,7 @@ void nmk16_state::macross2(machine_config &config)
/* video hardware */
set_hacky_screen_hires(config);
- m_spritegen->set_colpri_callback(FUNC(nmk16_state::get_colour_5bit), this);
+ m_spritegen->set_colpri_callback(FUNC(nmk16_state::get_colour_5bit));
m_screen->set_screen_update(FUNC(nmk16_state::screen_update_macross));
GFXDECODE(config, m_gfxdecode, m_palette, gfx_macross2);
@@ -4772,7 +4772,7 @@ void nmk16_state::tdragon2(machine_config &config)
/* video hardware */
set_hacky_screen_hires(config);
- m_spritegen->set_colpri_callback(FUNC(nmk16_state::get_colour_5bit), this);
+ m_spritegen->set_colpri_callback(FUNC(nmk16_state::get_colour_5bit));
m_screen->set_screen_update(FUNC(nmk16_state::screen_update_macross));
GFXDECODE(config, m_gfxdecode, m_palette, gfx_macross2);
@@ -4823,7 +4823,7 @@ void nmk16_state::raphero(machine_config &config)
/* video hardware */
set_hacky_screen_hires(config);
- m_spritegen->set_colpri_callback(FUNC(nmk16_state::get_colour_5bit), this);
+ m_spritegen->set_colpri_callback(FUNC(nmk16_state::get_colour_5bit));
m_screen->set_screen_update(FUNC(nmk16_state::screen_update_macross));
GFXDECODE(config, m_gfxdecode, m_palette, gfx_macross2);
@@ -4863,7 +4863,7 @@ void nmk16_state::bjtwin(machine_config &config)
/* video hardware */
set_hacky_screen_hires(config);
- m_spritegen->set_colpri_callback(FUNC(nmk16_state::get_colour_4bit), this);
+ m_spritegen->set_colpri_callback(FUNC(nmk16_state::get_colour_4bit));
m_screen->set_screen_update(FUNC(nmk16_state::screen_update_bjtwin));
GFXDECODE(config, m_gfxdecode, m_palette, gfx_bjtwin);
@@ -4926,8 +4926,8 @@ void nmk16_state::manybloc(machine_config &config)
m_screen->set_palette(m_palette);
NMK_16BIT_SPRITE(config, m_spritegen, XTAL(12'000'000)/2);
- m_spritegen->set_colpri_callback(FUNC(nmk16_state::get_colour_4bit), this);
- m_spritegen->set_ext_callback(FUNC(nmk16_state::get_sprite_flip), this);
+ m_spritegen->set_colpri_callback(FUNC(nmk16_state::get_colour_4bit));
+ m_spritegen->set_ext_callback(FUNC(nmk16_state::get_sprite_flip));
m_spritegen->set_screen_size(256, 256);
m_spritegen->set_max_sprite_clock(384 * 263); // from hardware manual
@@ -4972,7 +4972,7 @@ void nmk16_tomagic_state::tomagic(machine_config &config)
/* video hardware */
set_hacky_screen_hires(config);
- m_spritegen->set_colpri_callback(FUNC(nmk16_tomagic_state::get_colour_4bit), this);
+ m_spritegen->set_colpri_callback(FUNC(nmk16_tomagic_state::get_colour_4bit));
m_screen->set_screen_update(FUNC(nmk16_state::screen_update_macross));
GFXDECODE(config, m_gfxdecode, m_palette, gfx_macross);
@@ -5183,7 +5183,7 @@ void nmk16_state::init_hachamf_prot()
rom[0x048a/2] = 0x4e71;
rom[0x04aa/2] = 0x4e71;
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x0f0000, 0x0fffff, write16s_delegate(FUNC(nmk16_state::hachamf_mainram_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x0f0000, 0x0fffff, write16s_delegate(*this, FUNC(nmk16_state::hachamf_mainram_w)));
save_protregs();
}
@@ -5203,7 +5203,7 @@ void nmk16_state::init_tdragon_prot()
rom[0x048a/2] = 0x4e71;
rom[0x04aa/2] = 0x4e71;
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x0b0000, 0x0bffff, write16s_delegate(FUNC(nmk16_state::tdragon_mainram_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x0b0000, 0x0bffff, write16s_delegate(*this, FUNC(nmk16_state::tdragon_mainram_w)));
save_protregs();
}
@@ -5257,7 +5257,7 @@ u16 nmk16_state::vandykeb_r(){ return 0x0000; }
void nmk16_state::init_vandykeb()
{
m_okibank[0]->configure_entries(0, 4, memregion("oki1")->base() + 0x20000, 0x20000);
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x08000e, 0x08000f, read16smo_delegate(FUNC(nmk16_state::vandykeb_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x08000e, 0x08000f, read16smo_delegate(*this, FUNC(nmk16_state::vandykeb_r)));
m_maincpu->space(AS_PROGRAM).nop_write(0x08001e, 0x08001f);
}
@@ -5429,8 +5429,8 @@ void afega_state::stagger1(machine_config &config)
/* video hardware */
set_hacky_screen_lowres(config);
- m_spritegen->set_colpri_callback(FUNC(afega_state::get_colour_4bit), this);
- m_spritegen->set_ext_callback(FUNC(afega_state::get_sprite_flip), this);
+ m_spritegen->set_colpri_callback(FUNC(afega_state::get_colour_4bit));
+ m_spritegen->set_ext_callback(FUNC(afega_state::get_sprite_flip));
m_screen->set_screen_update(FUNC(afega_state::screen_update_afega));
GFXDECODE(config, m_gfxdecode, m_palette, gfx_macross);
@@ -5512,8 +5512,8 @@ void afega_state::firehawk(machine_config &config)
/* video hardware */
set_hacky_screen_lowres(config);
- m_spritegen->set_colpri_callback(FUNC(afega_state::get_colour_4bit), this);
- m_spritegen->set_ext_callback(FUNC(afega_state::get_sprite_flip), this);
+ m_spritegen->set_colpri_callback(FUNC(afega_state::get_colour_4bit));
+ m_spritegen->set_ext_callback(FUNC(afega_state::get_sprite_flip));
m_screen->set_screen_update(FUNC(afega_state::screen_update_firehawk));
GFXDECODE(config, m_gfxdecode, m_palette, gfx_grdnstrm);
@@ -5552,7 +5552,7 @@ void nmk16_state::twinactn(machine_config &config)
/* video hardware */
set_hacky_screen_lowres(config);
- m_spritegen->set_colpri_callback(FUNC(nmk16_state::get_colour_4bit), this);
+ m_spritegen->set_colpri_callback(FUNC(nmk16_state::get_colour_4bit));
m_screen->set_screen_update(FUNC(nmk16_state::screen_update_macross));
GFXDECODE(config, m_gfxdecode, m_palette, gfx_macross);
diff --git a/src/mame/drivers/nokia_3310.cpp b/src/mame/drivers/nokia_3310.cpp
index ea7919f0682..55820d40b73 100644
--- a/src/mame/drivers/nokia_3310.cpp
+++ b/src/mame/drivers/nokia_3310.cpp
@@ -718,7 +718,7 @@ void noki3310_state::noki3310(machine_config &config)
PALETTE(config, "palette", palette_device::MONOCHROME_INVERTED);
PCD8544(config, m_pcd8544, 0);
- m_pcd8544->set_screen_update_cb(FUNC(noki3310_state::pcd8544_screen_update), this);
+ m_pcd8544->set_screen_update_cb(FUNC(noki3310_state::pcd8544_screen_update));
INTEL_TE28F160(config, "flash");
}
diff --git a/src/mame/drivers/novag_diablo.cpp b/src/mame/drivers/novag_diablo.cpp
index b4dd330f97b..74f2f8979cf 100644
--- a/src/mame/drivers/novag_diablo.cpp
+++ b/src/mame/drivers/novag_diablo.cpp
@@ -323,7 +323,7 @@ void diablo_state::diablo68k(machine_config &config)
HD44780(config, m_lcd, 0);
m_lcd->set_lcd_size(2, 8);
- m_lcd->set_pixel_update_cb(FUNC(diablo_state::lcd_pixel_update), this);
+ m_lcd->set_pixel_update_cb(FUNC(diablo_state::lcd_pixel_update));
PWM_DISPLAY(config, m_display).set_size(8, 8+2);
config.set_default_layout(layout_novag_diablo68k);
diff --git a/src/mame/drivers/novag_sexpert.cpp b/src/mame/drivers/novag_sexpert.cpp
index 6ddfbac9745..443cfccb767 100644
--- a/src/mame/drivers/novag_sexpert.cpp
+++ b/src/mame/drivers/novag_sexpert.cpp
@@ -440,7 +440,7 @@ void sexpert_state::sexpert(machine_config &config)
HD44780(config, m_lcd, 0);
m_lcd->set_lcd_size(2, 8);
- m_lcd->set_pixel_update_cb(FUNC(sexpert_state::lcd_pixel_update), this);
+ m_lcd->set_pixel_update_cb(FUNC(sexpert_state::lcd_pixel_update));
PWM_DISPLAY(config, m_display).set_size(8, 8);
config.set_default_layout(layout_novag_sexpert);
diff --git a/src/mame/drivers/nsmpoker.cpp b/src/mame/drivers/nsmpoker.cpp
index edf4bc36707..672119d153e 100644
--- a/src/mame/drivers/nsmpoker.cpp
+++ b/src/mame/drivers/nsmpoker.cpp
@@ -142,7 +142,7 @@ TILE_GET_INFO_MEMBER(nsmpoker_state::get_bg_tile_info)
void nsmpoker_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(nsmpoker_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(nsmpoker_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
diff --git a/src/mame/drivers/nyny.cpp b/src/mame/drivers/nyny.cpp
index 0575c99dc78..c1186106c25 100644
--- a/src/mame/drivers/nyny.cpp
+++ b/src/mame/drivers/nyny.cpp
@@ -622,8 +622,8 @@ void nyny_state::nyny(machine_config &config)
m_mc6845->set_screen("screen");
m_mc6845->set_show_border_area(false);
m_mc6845->set_char_width(8);
- m_mc6845->set_update_row_callback(FUNC(nyny_state::crtc_update_row), this);
- m_mc6845->set_end_update_callback(FUNC(nyny_state::crtc_end_update), this);
+ m_mc6845->set_update_row_callback(FUNC(nyny_state::crtc_update_row));
+ m_mc6845->set_end_update_callback(FUNC(nyny_state::crtc_end_update));
m_mc6845->out_de_callback().set(m_ic48_1, FUNC(ttl74123_device::a_w));
/* 74LS123 */
diff --git a/src/mame/drivers/offtwall.cpp b/src/mame/drivers/offtwall.cpp
index 9cbc03d71a9..25099d5bed4 100644
--- a/src/mame/drivers/offtwall.cpp
+++ b/src/mame/drivers/offtwall.cpp
@@ -445,9 +445,9 @@ ROM_END
void offtwall_state::init_offtwall()
{
/* install son-of-slapstic workarounds */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x3fde42, 0x3fde43, read16_delegate(FUNC(offtwall_state::spritecache_count_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x037ec2, 0x037f39, read16_delegate(FUNC(offtwall_state::bankswitch_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x3fdf1e, 0x3fdf1f, read16_delegate(FUNC(offtwall_state::unknown_verify_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x3fde42, 0x3fde43, read16_delegate(*this, FUNC(offtwall_state::spritecache_count_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x037ec2, 0x037f39, read16_delegate(*this, FUNC(offtwall_state::bankswitch_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x3fdf1e, 0x3fdf1f, read16_delegate(*this, FUNC(offtwall_state::unknown_verify_r)));
m_spritecache_count = m_mainram + (0x3fde42 - 0x3fd800)/2;
m_bankswitch_base = (uint16_t *)(memregion("maincpu")->base() + 0x37ec2);
m_unknown_verify_base = m_mainram + (0x3fdf1e - 0x3fd800)/2;
@@ -457,9 +457,9 @@ void offtwall_state::init_offtwall()
void offtwall_state::init_offtwalc()
{
/* install son-of-slapstic workarounds */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x3fde42, 0x3fde43, read16_delegate(FUNC(offtwall_state::spritecache_count_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x037eca, 0x037f43, read16_delegate(FUNC(offtwall_state::bankswitch_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x3fdf24, 0x3fdf25, read16_delegate(FUNC(offtwall_state::unknown_verify_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x3fde42, 0x3fde43, read16_delegate(*this, FUNC(offtwall_state::spritecache_count_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x037eca, 0x037f43, read16_delegate(*this, FUNC(offtwall_state::bankswitch_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x3fdf24, 0x3fdf25, read16_delegate(*this, FUNC(offtwall_state::unknown_verify_r)));
m_spritecache_count = m_mainram + (0x3fde42 - 0x3fd800)/2;
m_bankswitch_base = (uint16_t *)(memregion("maincpu")->base() + 0x37eca);
m_unknown_verify_base = m_mainram + (0x3fdf24 - 0x3fd800)/2;
diff --git a/src/mame/drivers/olibochu.cpp b/src/mame/drivers/olibochu.cpp
index 376d66307ff..497d14a60b7 100644
--- a/src/mame/drivers/olibochu.cpp
+++ b/src/mame/drivers/olibochu.cpp
@@ -182,7 +182,7 @@ TILE_GET_INFO_MEMBER(olibochu_state::get_bg_tile_info)
void olibochu_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(olibochu_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(olibochu_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
void olibochu_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect )
diff --git a/src/mame/drivers/olyboss.cpp b/src/mame/drivers/olyboss.cpp
index 640725d0485..0695d4b8516 100644
--- a/src/mame/drivers/olyboss.cpp
+++ b/src/mame/drivers/olyboss.cpp
@@ -468,7 +468,7 @@ void olyboss_state::olybossd(machine_config &config)
UPD3301(config, m_crtc, XTAL(14'318'181));
m_crtc->set_character_width(8);
- m_crtc->set_display_callback(FUNC(olyboss_state::olyboss_display_pixels), this);
+ m_crtc->set_display_callback(FUNC(olyboss_state::olyboss_display_pixels));
m_crtc->drq_wr_callback().set(m_dma, FUNC(i8257_device::dreq2_w));
m_crtc->int_wr_callback().set(m_uic, FUNC(am9519_device::ireq0_w)).invert();
m_crtc->set_screen(SCREEN_TAG);
diff --git a/src/mame/drivers/onetwo.cpp b/src/mame/drivers/onetwo.cpp
index 1f624b1ef54..6cba8e87ac0 100644
--- a/src/mame/drivers/onetwo.cpp
+++ b/src/mame/drivers/onetwo.cpp
@@ -121,7 +121,7 @@ TILE_GET_INFO_MEMBER(onetwo_state::get_fg_tile_info)
void onetwo_state::video_start()
{
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(onetwo_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(onetwo_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
}
uint32_t onetwo_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
diff --git a/src/mame/drivers/onyx.cpp b/src/mame/drivers/onyx.cpp
index a5860e56e1b..b632aafc784 100644
--- a/src/mame/drivers/onyx.cpp
+++ b/src/mame/drivers/onyx.cpp
@@ -98,16 +98,16 @@ void onyx_state::z8002_m1_w(uint8_t data)
void onyx_state::c8002_io(address_map &map)
{
- map(0xff00, 0xff07).lrw8("sio1_rw", [this](offs_t offset) { return m_sio[0]->cd_ba_r(offset >> 1); }, [this](offs_t offset, u8 data) { m_sio[0]->cd_ba_w(offset >> 1, data); });
- map(0xff08, 0xff0f).lrw8("sio2_rw", [this](offs_t offset) { return m_sio[1]->cd_ba_r(offset >> 1); }, [this](offs_t offset, u8 data) { m_sio[1]->cd_ba_w(offset >> 1, data); });
- map(0xff10, 0xff17).lrw8("sio3_rw", [this](offs_t offset) { return m_sio[2]->cd_ba_r(offset >> 1); }, [this](offs_t offset, u8 data) { m_sio[2]->cd_ba_w(offset >> 1, data); });
- map(0xff18, 0xff1f).lrw8("sio4_rw", [this](offs_t offset) { return m_sio[3]->cd_ba_r(offset >> 1); }, [this](offs_t offset, u8 data) { m_sio[3]->cd_ba_w(offset >> 1, data); });
- map(0xff20, 0xff27).lrw8("sio5_rw", [this](offs_t offset) { return m_sio[4]->cd_ba_r(offset >> 1); }, [this](offs_t offset, u8 data) { m_sio[4]->cd_ba_w(offset >> 1, data); });
- map(0xff30, 0xff37).lrw8("ctc1_rw", [this](offs_t offset) { return m_ctc[0]->read(offset >> 1); }, [this](offs_t offset, u8 data) { m_ctc[0]->write(offset >> 1, data); });
- map(0xff38, 0xff3f).lrw8("ctc2_rw", [this](offs_t offset) { return m_ctc[1]->read(offset >> 1); }, [this](offs_t offset, u8 data) { m_ctc[1]->write(offset >> 1, data); });
- map(0xff40, 0xff47).lrw8("ctc3_rw", [this](offs_t offset) { return m_ctc[2]->read(offset >> 1); }, [this](offs_t offset, u8 data) { m_ctc[2]->write(offset >> 1, data); });
- map(0xff50, 0xff57).lrw8("pio1_rw", [this](offs_t offset) { return m_pio[0]->read(offset >> 1); }, [this](offs_t offset, u8 data) { m_pio[0]->write(offset >> 1, data); });
- map(0xff58, 0xff5f).lrw8("pio2_rw", [this](offs_t offset) { return m_pio[1]->read(offset >> 1); }, [this](offs_t offset, u8 data) { m_pio[1]->write(offset >> 1, data); });
+ map(0xff00, 0xff07).lrw8(NAME([this] (offs_t offset) { return m_sio[0]->cd_ba_r(offset >> 1); }), NAME([this] (offs_t offset, u8 data) { m_sio[0]->cd_ba_w(offset >> 1, data); }));
+ map(0xff08, 0xff0f).lrw8(NAME([this] (offs_t offset) { return m_sio[1]->cd_ba_r(offset >> 1); }), NAME([this] (offs_t offset, u8 data) { m_sio[1]->cd_ba_w(offset >> 1, data); }));
+ map(0xff10, 0xff17).lrw8(NAME([this] (offs_t offset) { return m_sio[2]->cd_ba_r(offset >> 1); }), NAME([this] (offs_t offset, u8 data) { m_sio[2]->cd_ba_w(offset >> 1, data); }));
+ map(0xff18, 0xff1f).lrw8(NAME([this] (offs_t offset) { return m_sio[3]->cd_ba_r(offset >> 1); }), NAME([this] (offs_t offset, u8 data) { m_sio[3]->cd_ba_w(offset >> 1, data); }));
+ map(0xff20, 0xff27).lrw8(NAME([this] (offs_t offset) { return m_sio[4]->cd_ba_r(offset >> 1); }), NAME([this] (offs_t offset, u8 data) { m_sio[4]->cd_ba_w(offset >> 1, data); }));
+ map(0xff30, 0xff37).lrw8(NAME([this] (offs_t offset) { return m_ctc[0]->read(offset >> 1); }), NAME([this] (offs_t offset, u8 data) { m_ctc[0]->write(offset >> 1, data); }));
+ map(0xff38, 0xff3f).lrw8(NAME([this] (offs_t offset) { return m_ctc[1]->read(offset >> 1); }), NAME([this] (offs_t offset, u8 data) { m_ctc[1]->write(offset >> 1, data); }));
+ map(0xff40, 0xff47).lrw8(NAME([this] (offs_t offset) { return m_ctc[2]->read(offset >> 1); }), NAME([this] (offs_t offset, u8 data) { m_ctc[2]->write(offset >> 1, data); }));
+ map(0xff50, 0xff57).lrw8(NAME([this] (offs_t offset) { return m_pio[0]->read(offset >> 1); }), NAME([this] (offs_t offset, u8 data) { m_pio[0]->write(offset >> 1, data); }));
+ map(0xff58, 0xff5f).lrw8(NAME([this] (offs_t offset) { return m_pio[1]->read(offset >> 1); }), NAME([this] (offs_t offset, u8 data) { m_pio[1]->write(offset >> 1, data); }));
map(0xffb9, 0xffb9).w(FUNC(onyx_state::z8002_m1_w));
}
diff --git a/src/mame/drivers/opwolf.cpp b/src/mame/drivers/opwolf.cpp
index b9cc31fb9aa..03159113b4e 100644
--- a/src/mame/drivers/opwolf.cpp
+++ b/src/mame/drivers/opwolf.cpp
@@ -930,7 +930,7 @@ void opwolf_state::opwolf(machine_config &config)
PC090OJ(config, m_pc090oj, 0);
m_pc090oj->set_palette("palette");
- m_pc090oj->set_colpri_callback(FUNC(opwolf_state::opwolf_colpri_cb), this);
+ m_pc090oj->set_colpri_callback(FUNC(opwolf_state::opwolf_colpri_cb));
/* sound hardware */
SPEAKER(config, "lspeaker").front_left();
@@ -1004,7 +1004,7 @@ void opwolf_state::opwolfb(machine_config &config) /* OSC clocks unknown for the
PC090OJ(config, m_pc090oj, 0);
m_pc090oj->set_palette("palette");
- m_pc090oj->set_colpri_callback(FUNC(opwolf_state::opwolf_colpri_cb), this);
+ m_pc090oj->set_colpri_callback(FUNC(opwolf_state::opwolf_colpri_cb));
/* sound hardware */
SPEAKER(config, "lspeaker").front_left();
diff --git a/src/mame/drivers/osborne1.cpp b/src/mame/drivers/osborne1.cpp
index a2befac49e2..91f0948b248 100644
--- a/src/mame/drivers/osborne1.cpp
+++ b/src/mame/drivers/osborne1.cpp
@@ -356,8 +356,8 @@ void osborne1nv_state::osborne1nv(machine_config &config)
crtc.set_screen(m_screen);
crtc.set_show_border_area(false);
crtc.set_char_width(8);
- crtc.set_update_row_callback(FUNC(osborne1nv_state::crtc_update_row), this);
- crtc.set_on_update_addr_change_callback(FUNC(osborne1nv_state::crtc_update_addr_changed), this);
+ crtc.set_update_row_callback(FUNC(osborne1nv_state::crtc_update_row));
+ crtc.set_on_update_addr_change_callback(FUNC(osborne1nv_state::crtc_update_addr_changed));
}
diff --git a/src/mame/drivers/othello.cpp b/src/mame/drivers/othello.cpp
index c567e44b770..5ccd1edd8d0 100644
--- a/src/mame/drivers/othello.cpp
+++ b/src/mame/drivers/othello.cpp
@@ -423,7 +423,7 @@ void othello_state::othello(machine_config &config)
crtc.set_screen("screen");
crtc.set_show_border_area(false);
crtc.set_char_width(TILE_WIDTH);
- crtc.set_update_row_callback(FUNC(othello_state::crtc_update_row), this);
+ crtc.set_update_row_callback(FUNC(othello_state::crtc_update_row));
/* sound hardware */
SPEAKER(config, "speaker").front_center();
diff --git a/src/mame/drivers/overdriv.cpp b/src/mame/drivers/overdriv.cpp
index 9783d66210f..b61be4c5beb 100644
--- a/src/mame/drivers/overdriv.cpp
+++ b/src/mame/drivers/overdriv.cpp
@@ -356,7 +356,7 @@ void overdriv_state::overdriv(machine_config &config)
PALETTE(config, "palette").set_format(palette_device::xBGR_555, 2048).enable_shadows();
K053246(config, m_k053246, 0);
- m_k053246->set_sprite_callback(FUNC(overdriv_state::sprite_callback), this);
+ m_k053246->set_sprite_callback(FUNC(overdriv_state::sprite_callback));
m_k053246->set_config(NORMAL_PLANE_ORDER, 77, 22);
m_k053246->set_palette("palette");
@@ -364,12 +364,12 @@ void overdriv_state::overdriv(machine_config &config)
m_k051316_1->set_palette("palette");
m_k051316_1->set_offsets(14, -1);
m_k051316_1->set_wrap(1);
- m_k051316_1->set_zoom_callback(FUNC(overdriv_state::zoom_callback_1), this);
+ m_k051316_1->set_zoom_callback(FUNC(overdriv_state::zoom_callback_1));
K051316(config, m_k051316_2, 0);
m_k051316_2->set_palette("palette");
m_k051316_2->set_offsets(15, 1);
- m_k051316_2->set_zoom_callback(FUNC(overdriv_state::zoom_callback_2), this);
+ m_k051316_2->set_zoom_callback(FUNC(overdriv_state::zoom_callback_2));
K053251(config, m_k053251, 0);
diff --git a/src/mame/drivers/pacman.cpp b/src/mame/drivers/pacman.cpp
index 8db2f53d5dc..03f0b2d0015 100644
--- a/src/mame/drivers/pacman.cpp
+++ b/src/mame/drivers/pacman.cpp
@@ -7190,9 +7190,9 @@ ROM_END
void pacman_state::init_maketrax()
{
/* set up protection handlers */
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x5004, 0x5004, write8_delegate(FUNC(pacman_state::maketrax_protection_w),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x5080, 0x50bf, read8_delegate(FUNC(pacman_state::maketrax_special_port2_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x50c0, 0x50ff, read8_delegate(FUNC(pacman_state::maketrax_special_port3_r),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x5004, 0x5004, write8_delegate(*this, FUNC(pacman_state::maketrax_protection_w)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x5080, 0x50bf, read8_delegate(*this, FUNC(pacman_state::maketrax_special_port2_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x50c0, 0x50ff, read8_delegate(*this, FUNC(pacman_state::maketrax_special_port3_r)));
save_item(NAME(m_maketrax_disable_protection));
save_item(NAME(m_maketrax_offset));
@@ -7202,7 +7202,7 @@ void pacman_state::init_maketrax()
void pacman_state::init_mbrush()
{
/* set up protection handlers */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x5080, 0x50ff, read8_delegate(FUNC(pacman_state::mbrush_prot_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x5080, 0x50ff, read8_delegate(*this, FUNC(pacman_state::mbrush_prot_r)));
}
void pacman_state::init_ponpoko()
@@ -7493,7 +7493,7 @@ READ8_MEMBER(pacman_state::mspacii_protection_r)
void pacman_state::init_mspacii()
{
// protection
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x504d, 0x506f, read8_delegate(FUNC(pacman_state::mspacii_protection_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x504d, 0x506f, read8_delegate(*this, FUNC(pacman_state::mspacii_protection_r)));
}
void pacman_state::init_superabc()
@@ -7556,7 +7556,7 @@ void pacman_state::init_cannonbp()
m_maincpu->space(AS_PROGRAM).install_ram(0x4800, 0x4bff);
/* protection? */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x3000, 0x3fff, read8_delegate(FUNC(pacman_state::cannonbp_protection_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x3000, 0x3fff, read8_delegate(*this, FUNC(pacman_state::cannonbp_protection_r)));
}
void pacman_state::init_pengomc1()
diff --git a/src/mame/drivers/palestra.cpp b/src/mame/drivers/palestra.cpp
index a32abb73d92..97687c386e9 100644
--- a/src/mame/drivers/palestra.cpp
+++ b/src/mame/drivers/palestra.cpp
@@ -76,7 +76,7 @@ void palestra_state::palestra(machine_config &config)
NETLIST_CPU(config, m_maincpu, NETLIST_CLOCK)
.set_source(netlist_palestra);
- NETLIST_ANALOG_OUTPUT(config, "maincpu:vid0").set_params("videomix", FUNC(fixedfreq_device::update_composite_monochrome), "fixfreq");
+ NETLIST_ANALOG_OUTPUT(config, "maincpu:vid0").set_params("videomix", m_video, FUNC(fixedfreq_device::update_composite_monochrome));
SCREEN(config, "screen", SCREEN_TYPE_RASTER);
FIXFREQ(config, m_video).set_screen("screen");
diff --git a/src/mame/drivers/panicr.cpp b/src/mame/drivers/panicr.cpp
index 2fb4549b3cc..6f5ef7547ab 100644
--- a/src/mame/drivers/panicr.cpp
+++ b/src/mame/drivers/panicr.cpp
@@ -237,10 +237,10 @@ TILE_GET_INFO_MEMBER(panicr_state::get_txttile_info)
void panicr_state::video_start()
{
- m_bgtilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(panicr_state::get_bgtile_info),this),TILEMAP_SCAN_ROWS,16,16,1024,16 );
- m_infotilemap_2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(panicr_state::get_infotile_info_2),this),TILEMAP_SCAN_ROWS,16,16,1024,16 );
+ m_bgtilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(panicr_state::get_bgtile_info)), TILEMAP_SCAN_ROWS, 16,16, 1024,16);
+ m_infotilemap_2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(panicr_state::get_infotile_info_2)), TILEMAP_SCAN_ROWS, 16,16, 1024,16);
- m_txttilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(panicr_state::get_txttile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32 );
+ m_txttilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(panicr_state::get_txttile_info)), TILEMAP_SCAN_ROWS, 8,8, 32,32);
m_txttilemap->configure_groups(*m_gfxdecode->gfx(0), 0);
save_item(NAME(m_scrollx));
diff --git a/src/mame/drivers/paradise.cpp b/src/mame/drivers/paradise.cpp
index 4c73aef6164..6db7f5a39be 100644
--- a/src/mame/drivers/paradise.cpp
+++ b/src/mame/drivers/paradise.cpp
@@ -1408,14 +1408,14 @@ void paradise_state::init_paradise()
void paradise_state::init_tgtball()
{
m_sprite_inc = 4;
- m_maincpu->space(AS_IO).install_write_handler(0x2001, 0x2001, write8_delegate(FUNC(paradise_state::tgtball_flipscreen_w),this));
+ m_maincpu->space(AS_IO).install_write_handler(0x2001, 0x2001, write8_delegate(*this, FUNC(paradise_state::tgtball_flipscreen_w)));
}
void paradise_state::init_torus()
{
m_sprite_inc = 4;
- m_maincpu->space(AS_IO).install_write_handler(0x2070, 0x2070, write8_delegate(FUNC(paradise_state::torus_coin_counter_w),this));
+ m_maincpu->space(AS_IO).install_write_handler(0x2070, 0x2070, write8_delegate(*this, FUNC(paradise_state::torus_coin_counter_w)));
}
diff --git a/src/mame/drivers/parodius.cpp b/src/mame/drivers/parodius.cpp
index f450fc04769..549f9d8c799 100644
--- a/src/mame/drivers/parodius.cpp
+++ b/src/mame/drivers/parodius.cpp
@@ -251,12 +251,12 @@ void parodius_state::parodius(machine_config &config)
K052109(config, m_k052109, 0);
m_k052109->set_palette("palette");
m_k052109->set_screen("screen");
- m_k052109->set_tile_callback(FUNC(parodius_state::tile_callback), this);
+ m_k052109->set_tile_callback(FUNC(parodius_state::tile_callback));
m_k052109->irq_handler().set_inputline(m_maincpu, KONAMI_IRQ_LINE);
K053245(config, m_k053245, 0);
m_k053245->set_palette("palette");
- m_k053245->set_sprite_callback(FUNC(parodius_state::sprite_callback), this);
+ m_k053245->set_sprite_callback(FUNC(parodius_state::sprite_callback));
K053251(config, m_k053251, 0);
diff --git a/src/mame/drivers/partner.cpp b/src/mame/drivers/partner.cpp
index 8b41a0dbc57..48daf21ca15 100644
--- a/src/mame/drivers/partner.cpp
+++ b/src/mame/drivers/partner.cpp
@@ -177,7 +177,7 @@ void partner_state::partner(machine_config &config)
auto &i8275(I8275(config, "i8275", 16_MHz_XTAL / 12));
i8275.set_character_width(6);
- i8275.set_display_callback(FUNC(partner_state::display_pixels), this);
+ i8275.set_display_callback(FUNC(partner_state::display_pixels));
i8275.drq_wr_callback().set("dma8257", FUNC(i8257_device::dreq2_w));
/* video hardware */
diff --git a/src/mame/drivers/pasha2.cpp b/src/mame/drivers/pasha2.cpp
index 5885b1c6aba..a2706473e81 100644
--- a/src/mame/drivers/pasha2.cpp
+++ b/src/mame/drivers/pasha2.cpp
@@ -466,7 +466,7 @@ READ16_MEMBER(pasha2_state::pasha2_speedup_r)
void pasha2_state::init_pasha2()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x95744, 0x95747, read16_delegate(FUNC(pasha2_state::pasha2_speedup_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x95744, 0x95747, read16_delegate(*this, FUNC(pasha2_state::pasha2_speedup_r)));
m_mainbank->configure_entries(0, 6, memregion("bankeddata")->base(), 0x400000);
m_mainbank->set_entry(0);
diff --git a/src/mame/drivers/pasopia.cpp b/src/mame/drivers/pasopia.cpp
index 60f35e838c6..16a0943bb7f 100644
--- a/src/mame/drivers/pasopia.cpp
+++ b/src/mame/drivers/pasopia.cpp
@@ -344,7 +344,7 @@ void pasopia_state::pasopia(machine_config &config)
m_crtc->set_screen("screen");
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8);
- m_crtc->set_update_row_callback(FUNC(pasopia_state::crtc_update_row), this);
+ m_crtc->set_update_row_callback(FUNC(pasopia_state::crtc_update_row));
I8255A(config, m_ppi0);
m_ppi0->out_pa_callback().set(FUNC(pasopia_state::vram_addr_lo_w));
diff --git a/src/mame/drivers/patapata.cpp b/src/mame/drivers/patapata.cpp
index 8139df2dcce..f34c14f778e 100644
--- a/src/mame/drivers/patapata.cpp
+++ b/src/mame/drivers/patapata.cpp
@@ -118,12 +118,12 @@ TILEMAP_MAPPER_MEMBER(patapata_state::pagescan)
void patapata_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(patapata_state::get_bg_tile_info),this), tilemap_mapper_delegate(FUNC(patapata_state::pagescan),this), 16, 16, 1024,16*2);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(patapata_state::get_fg_tile_info),this), tilemap_mapper_delegate(FUNC(patapata_state::pagescan),this), 16, 16, 1024,16*2);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(patapata_state::get_bg_tile_info)), tilemap_mapper_delegate(*this, FUNC(patapata_state::pagescan)), 16, 16, 1024, 16*2);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(patapata_state::get_fg_tile_info)), tilemap_mapper_delegate(*this, FUNC(patapata_state::pagescan)), 16, 16, 1024, 16*2);
// 2nd half of the ram seems unused, maybe it's actually a mirror meaning this would be the correct tilemap sizes
-// m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(patapata_state::get_bg_tile_info),this), tilemap_mapper_delegate(FUNC(patapata_state::pagescan),this), 16, 16, 1024/2,16*2);
-// m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(patapata_state::get_fg_tile_info),this), tilemap_mapper_delegate(FUNC(patapata_state::pagescan),this), 16, 16, 1024/2,16*2);
+// m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(patapata_state::get_bg_tile_info)), tilemap_mapper_delegate(*this, FUNC(patapata_state::pagescan)), 16, 16, 1024/2, 16*2);
+// m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(patapata_state::get_fg_tile_info)), tilemap_mapper_delegate(*this, FUNC(patapata_state::pagescan)), 16, 16, 1024/2, 16*2);
m_fg_tilemap->set_transparent_pen(0xf);
diff --git a/src/mame/drivers/patinho_feio.cpp b/src/mame/drivers/patinho_feio.cpp
index 5cfc76779a8..872bd11ea8a 100644
--- a/src/mame/drivers/patinho_feio.cpp
+++ b/src/mame/drivers/patinho_feio.cpp
@@ -282,7 +282,7 @@ void patinho_feio_state::patinho_feio(machine_config &config)
m_tty->set_keyboard_callback(FUNC(patinho_feio_state::teletype_kbd_input));
/* punched tape */
- GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "patinho_tape", "bin").set_device_load(FUNC(patinho_feio_state::tape_load), this);
+ GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "patinho_tape", "bin").set_device_load(FUNC(patinho_feio_state::tape_load));
config.set_default_layout(layout_patinho);
diff --git a/src/mame/drivers/pbaction.cpp b/src/mame/drivers/pbaction.cpp
index 1fa8cc13dc6..f3a4ffcdb5e 100644
--- a/src/mame/drivers/pbaction.cpp
+++ b/src/mame/drivers/pbaction.cpp
@@ -695,14 +695,12 @@ void pbaction_state::init_pbaction2()
{
uint8_t *rom = memregion("maincpu")->base();
- /* first of all, do a simple bitswap */
+ // first of all, do a simple bitswap
for (int i = 0; i < 0xc000; i++)
- {
rom[i] = bitswap<8>(rom[i], 7,6,5,4,1,2,3,0);
- }
- /* install a protection (?) workaround */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xc000, 0xc000, read8_delegate(FUNC(pbaction_state::pbaction2_prot_kludge_r),this) );
+ // install a protection (?) workaround
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xc000, 0xc000, read8_delegate(*this, FUNC(pbaction_state::pbaction2_prot_kludge_r)) );
}
diff --git a/src/mame/drivers/pc100.cpp b/src/mame/drivers/pc100.cpp
index a3653e6738a..d088eb9b209 100644
--- a/src/mame/drivers/pc100.cpp
+++ b/src/mame/drivers/pc100.cpp
@@ -353,8 +353,9 @@ void pc100_state::pc100_io(address_map &map)
map(0x3a, 0x3a).w(FUNC(pc100_state::pc100_crtc_data_w)); //crtc data reg
map(0x3c, 0x3f).rw(FUNC(pc100_state::pc100_vs_vreg_r), FUNC(pc100_state::pc100_vs_vreg_w)).umask16(0x00ff); //crtc vertical start position
map(0x40, 0x5f).ram().w(m_palette, FUNC(palette_device::write16)).share("palette");
- map(0x60, 0x61).r(read16_delegate([this](address_space &s, offs_t o, u8 mm) { return m_crtc.cmd; }, "pc100_crtc_cmd_r")).
- w(write16_delegate([this](address_space &s, offs_t o, u16 d, u8 mm) { m_crtc.cmd = d; }, "pc100_crtc_cmd_w"));
+ map(0x60, 0x61).lrw16(
+ NAME([this] () { return m_crtc.cmd; }),
+ NAME([this] (u16 d) { m_crtc.cmd = d; }));
map(0x80, 0x81).rw(FUNC(pc100_state::pc100_kanji_r), FUNC(pc100_state::pc100_kanji_w));
map(0x82, 0x83).nopw(); //kanji-related?
map(0x84, 0x87).nopw(); //kanji "strobe" signal 0/1
diff --git a/src/mame/drivers/pc2000.cpp b/src/mame/drivers/pc2000.cpp
index 3b7a7837988..cdb51981fb5 100644
--- a/src/mame/drivers/pc2000.cpp
+++ b/src/mame/drivers/pc2000.cpp
@@ -916,7 +916,7 @@ void pc2000_state::pc2000(machine_config &config)
SPEAKER(config, "mono").front_center();
BEEP(config, m_beep, 3250).add_route(ALL_OUTPUTS, "mono", 1.00);
- GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "genius_cart").set_device_load(FUNC(pc2000_state::cart_load), this);
+ GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "genius_cart").set_device_load(FUNC(pc2000_state::cart_load));
SOFTWARE_LIST(config, "pc1000_cart").set_compatible("pc1000");
}
diff --git a/src/mame/drivers/pc6001.cpp b/src/mame/drivers/pc6001.cpp
index 73c840dbc4a..4ea82cb4ab5 100644
--- a/src/mame/drivers/pc6001.cpp
+++ b/src/mame/drivers/pc6001.cpp
@@ -1349,7 +1349,7 @@ void pc6001_state::machine_reset()
set_videoram_bank(0xc000);
if (m_cart->exists())
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x4000, 0x5fff, read8sm_delegate(FUNC(generic_slot_device::read_rom),(generic_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x4000, 0x5fff, read8sm_delegate(*m_cart, FUNC(generic_slot_device::read_rom)));
std::string region_tag;
m_cart_rom = memregion(region_tag.assign(m_cart->tag()).append(GENERIC_ROM_REGION_TAG).c_str());
diff --git a/src/mame/drivers/pc8001.cpp b/src/mame/drivers/pc8001.cpp
index bbcf9e8b3ed..a5a5be31e78 100644
--- a/src/mame/drivers/pc8001.cpp
+++ b/src/mame/drivers/pc8001.cpp
@@ -511,7 +511,7 @@ void pc8001_state::pc8001(machine_config &config)
UPD3301(config, m_crtc, XTAL(14'318'181));
m_crtc->set_character_width(8);
- m_crtc->set_display_callback(FUNC(pc8001_state::pc8001_display_pixels), this);
+ m_crtc->set_display_callback(FUNC(pc8001_state::pc8001_display_pixels));
m_crtc->drq_wr_callback().set(m_dma, FUNC(i8257_device::dreq2_w));
m_crtc->set_screen(SCREEN_TAG);
@@ -561,7 +561,7 @@ void pc8001mk2_state::pc8001mk2(machine_config &config)
UPD3301(config, m_crtc, XTAL(14'318'181));
m_crtc->set_character_width(8);
- m_crtc->set_display_callback(FUNC(pc8001_state::pc8001_display_pixels), this);
+ m_crtc->set_display_callback(FUNC(pc8001_state::pc8001_display_pixels));
m_crtc->drq_wr_callback().set(m_dma, FUNC(i8257_device::dreq2_w));
m_crtc->set_screen(SCREEN_TAG);
diff --git a/src/mame/drivers/pc9801.cpp b/src/mame/drivers/pc9801.cpp
index 58ca84c67a5..d8268628051 100644
--- a/src/mame/drivers/pc9801.cpp
+++ b/src/mame/drivers/pc9801.cpp
@@ -1422,7 +1422,7 @@ void pc9801_state::pc9821_io(address_map &map)
{
// map.unmap_value_high(); // TODO: a read to somewhere makes this to fail at POST
map(0x0000, 0x001f).rw(m_dmac, FUNC(am9517a_device::read), FUNC(am9517a_device::write)).umask32(0xff00ff00);
- map(0x0000, 0x001f).r(read8_delegate([this](address_space &s, offs_t o, u8 mm) { return BIT(o, 1) ? 0xff : pic_r(s, o, mm); }, "pc9821_pic")).umask32(0x00ff00ff);
+ map(0x0000, 0x001f).lr8(NAME([this] (address_space &s, offs_t o, u8 mm) { return BIT(o, 1) ? 0xff : pic_r(s, o, mm); })).umask32(0x00ff00ff);
map(0x0000, 0x001f).w(FUNC(pc9801_state::pic_w)).umask32(0x00ff00ff); // i8259 PIC (bit 3 ON slave / master) / i8237 DMA
map(0x0020, 0x002f).w(FUNC(pc9801_state::rtc_w)).umask32(0x000000ff);
map(0x0020, 0x002f).w(FUNC(pc9801_state::dmapg8_w)).umask32(0xff00ff00);
@@ -1471,7 +1471,7 @@ void pc9801_state::pc9821_io(address_map &map)
// map(0x0cc0, 0x0cc7) SCSI interface / <undefined>
// map(0x0cfc, 0x0cff) PCI bus
map(0x1e8c, 0x1e8f).noprw(); // IDE RAM switch
- map(0x2ed0, 0x2edf).r(read8_delegate([](address_space &s, offs_t o, u8 mm) { return 0xff; }, "pc9821_unkaudio")).umask32(0xffffffff); // unknown sound related
+ map(0x2ed0, 0x2edf).lr8(NAME([] (address_space &s, offs_t o, u8 mm) { return 0xff; })).umask32(0xffffffff); // unknown sound related
map(0x3fd8, 0x3fdf).rw(m_pit8253, FUNC(pit8253_device::read), FUNC(pit8253_device::write)).umask32(0xff00ff00); // <undefined> / pit mirror ports
map(0x7fd8, 0x7fdf).rw("ppi8255_mouse", FUNC(i8255_device::read), FUNC(i8255_device::write)).umask32(0xff00ff00);
map(0x841c, 0x841f).rw(FUNC(pc9801_state::sdip_0_r), FUNC(pc9801_state::sdip_0_w));
diff --git a/src/mame/drivers/pcw.cpp b/src/mame/drivers/pcw.cpp
index 88460dde163..93bb6a14139 100644
--- a/src/mame/drivers/pcw.cpp
+++ b/src/mame/drivers/pcw.cpp
@@ -245,7 +245,7 @@ void pcw_state::pcw_update_read_memory_block(int block, int bank)
if (bank == 3)
{
/* when upper 16 bytes are accessed use keyboard read handler */
- space.install_read_handler( block * 0x04000 + 0x3ff0, block * 0x04000 + 0x3fff, read8_delegate(FUNC(pcw_state::pcw_keyboard_data_r),this));
+ space.install_read_handler( block * 0x04000 + 0x3ff0, block * 0x04000 + 0x3fff, read8_delegate(*this, FUNC(pcw_state::pcw_keyboard_data_r)));
LOGMEM("MEM: read block %i -> bank %i\n", block, bank);
}
else
@@ -1291,7 +1291,7 @@ void pcw_state::pcw(machine_config &config)
/* internal ram */
RAM(config, m_ram).set_default_size("256K");
- TIMER(config, "pcw_timer", 0).configure_periodic(timer_device::expired_delegate(FUNC(pcw_state::pcw_timer_interrupt), this), attotime::from_hz(300));
+ TIMER(config, "pcw_timer", 0).configure_periodic(FUNC(pcw_state::pcw_timer_interrupt), attotime::from_hz(300));
}
void pcw_state::pcw8256(machine_config &config)
diff --git a/src/mame/drivers/pcxt.cpp b/src/mame/drivers/pcxt.cpp
index 51ffa944a9d..5a224b39f2b 100644
--- a/src/mame/drivers/pcxt.cpp
+++ b/src/mame/drivers/pcxt.cpp
@@ -173,7 +173,7 @@ void isa8_cga_tetriskr_device::device_start()
{
m_bg_bank = 0;
isa8_cga_superimpose_device::device_start();
- m_isa->install_device(0x3c0, 0x3c0, read8_delegate( FUNC(isa8_cga_tetriskr_device::bg_bank_r), this ), write8_delegate( FUNC(isa8_cga_tetriskr_device::bg_bank_w), this ) );
+ m_isa->install_device(0x3c0, 0x3c0, read8_delegate(*this, FUNC(isa8_cga_tetriskr_device::bg_bank_r)), write8_delegate(*this, FUNC(isa8_cga_tetriskr_device::bg_bank_w)));
}
WRITE8_MEMBER(isa8_cga_tetriskr_device::bg_bank_w)
diff --git a/src/mame/drivers/pegasus.cpp b/src/mame/drivers/pegasus.cpp
index 9abe19518be..71412a3632a 100644
--- a/src/mame/drivers/pegasus.cpp
+++ b/src/mame/drivers/pegasus.cpp
@@ -462,15 +462,15 @@ image_init_result pegasus_state::load_cart(device_image_interface &image, generi
void pegasus_state::machine_start()
{
if (m_exp_00->exists())
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x0000, 0x0fff, read8sm_delegate(FUNC(generic_slot_device::read_rom),(generic_slot_device*)m_exp_00));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x0000, 0x0fff, read8sm_delegate(*m_exp_00, FUNC(generic_slot_device::read_rom)));
if (m_exp_01->exists())
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x1000, 0x1fff, read8sm_delegate(FUNC(generic_slot_device::read_rom),(generic_slot_device*)m_exp_01));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x1000, 0x1fff, read8sm_delegate(*m_exp_01, FUNC(generic_slot_device::read_rom)));
if (m_exp_02->exists())
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x2000, 0x2fff, read8sm_delegate(FUNC(generic_slot_device::read_rom),(generic_slot_device*)m_exp_02));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x2000, 0x2fff, read8sm_delegate(*m_exp_02, FUNC(generic_slot_device::read_rom)));
if (m_exp_0c->exists())
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xc000, 0xcfff, read8sm_delegate(FUNC(generic_slot_device::read_rom),(generic_slot_device*)m_exp_0c));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xc000, 0xcfff, read8sm_delegate(*m_exp_0c, FUNC(generic_slot_device::read_rom)));
if (m_exp_0d->exists())
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xd000, 0xdfff, read8sm_delegate(FUNC(generic_slot_device::read_rom),(generic_slot_device*)m_exp_0d));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xd000, 0xdfff, read8sm_delegate(*m_exp_0d, FUNC(generic_slot_device::read_rom)));
}
void pegasus_state::machine_reset()
@@ -525,11 +525,11 @@ void pegasus_state::pegasus(machine_config &config)
m_pia_u->irqa_handler().set_inputline("maincpu", M6809_IRQ_LINE);
m_pia_u->irqb_handler().set_inputline("maincpu", M6809_IRQ_LINE);
- GENERIC_SOCKET(config, "exp00", generic_plain_slot, "pegasus_cart").set_device_load(FUNC(pegasus_state::exp00_load), this);
- GENERIC_SOCKET(config, "exp01", generic_plain_slot, "pegasus_cart").set_device_load(FUNC(pegasus_state::exp01_load), this);
- GENERIC_SOCKET(config, "exp02", generic_plain_slot, "pegasus_cart").set_device_load(FUNC(pegasus_state::exp02_load), this);
- GENERIC_SOCKET(config, "exp0c", generic_plain_slot, "pegasus_cart").set_device_load(FUNC(pegasus_state::exp0c_load), this);
- GENERIC_SOCKET(config, "exp0d", generic_plain_slot, "pegasus_cart").set_device_load(FUNC(pegasus_state::exp0d_load), this);
+ GENERIC_SOCKET(config, "exp00", generic_plain_slot, "pegasus_cart").set_device_load(FUNC(pegasus_state::exp00_load));
+ GENERIC_SOCKET(config, "exp01", generic_plain_slot, "pegasus_cart").set_device_load(FUNC(pegasus_state::exp01_load));
+ GENERIC_SOCKET(config, "exp02", generic_plain_slot, "pegasus_cart").set_device_load(FUNC(pegasus_state::exp02_load));
+ GENERIC_SOCKET(config, "exp0c", generic_plain_slot, "pegasus_cart").set_device_load(FUNC(pegasus_state::exp0c_load));
+ GENERIC_SOCKET(config, "exp0d", generic_plain_slot, "pegasus_cart").set_device_load(FUNC(pegasus_state::exp0d_load));
CASSETTE(config, m_cass);
m_cass->set_default_state(CASSETTE_STOPPED|CASSETTE_MOTOR_ENABLED);
diff --git a/src/mame/drivers/pencil2.cpp b/src/mame/drivers/pencil2.cpp
index 9076c588f11..b736065dfb5 100644
--- a/src/mame/drivers/pencil2.cpp
+++ b/src/mame/drivers/pencil2.cpp
@@ -306,7 +306,7 @@ INPUT_PORTS_END
void pencil2_state::machine_start()
{
if (m_cart->exists())
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x8000, 0xffff, read8sm_delegate(FUNC(generic_slot_device::read_rom),(generic_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x8000, 0xffff, read8sm_delegate(*m_cart, FUNC(generic_slot_device::read_rom)));
}
void pencil2_state::pencil2(machine_config &config)
diff --git a/src/mame/drivers/pentagon.cpp b/src/mame/drivers/pentagon.cpp
index 83708376c0e..fa9a8bb4518 100644
--- a/src/mame/drivers/pentagon.cpp
+++ b/src/mame/drivers/pentagon.cpp
@@ -225,8 +225,8 @@ MACHINE_RESET_MEMBER(pentagon_state,pentagon)
m_program = &m_maincpu->space(AS_PROGRAM);
m_p_ram = memregion("maincpu")->base();
- m_program->install_write_handler(0x4000, 0x5aff, write8_delegate(FUNC(pentagon_state::pentagon_scr_w), this));
- m_program->install_write_handler(0xc000, 0xdaff, write8_delegate(FUNC(pentagon_state::pentagon_scr2_w), this));
+ m_program->install_write_handler(0x4000, 0x5aff, write8_delegate(*this, FUNC(pentagon_state::pentagon_scr_w)));
+ m_program->install_write_handler(0xc000, 0xdaff, write8_delegate(*this, FUNC(pentagon_state::pentagon_scr2_w)));
if (m_beta->started())
{
diff --git a/src/mame/drivers/peoplepc.cpp b/src/mame/drivers/peoplepc.cpp
index ed7beef1aad..73239e9c5af 100644
--- a/src/mame/drivers/peoplepc.cpp
+++ b/src/mame/drivers/peoplepc.cpp
@@ -281,7 +281,7 @@ void peoplepc_state::olypeopl(machine_config &config)
crtc.set_screen("screen");
crtc.set_show_border_area(false);
crtc.set_char_width(8);
- crtc.set_update_row_callback(FUNC(peoplepc_state::update_row), this);
+ crtc.set_update_row_callback(FUNC(peoplepc_state::update_row));
I8257(config, m_dmac, XTAL(14'745'600)/3);
m_dmac->out_hrq_cb().set(FUNC(peoplepc_state::hrq_w));
diff --git a/src/mame/drivers/peplus.cpp b/src/mame/drivers/peplus.cpp
index c69232af1f7..2c94fb51238 100644
--- a/src/mame/drivers/peplus.cpp
+++ b/src/mame/drivers/peplus.cpp
@@ -957,7 +957,7 @@ TILE_GET_INFO_MEMBER(peplus_state::get_bg_tile_info)
void peplus_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(peplus_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 40, 25);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(peplus_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 40, 25);
m_palette_ram[0] = std::make_unique<uint8_t[]>(0x3000);
memset(m_palette_ram[0].get(), 0, 0x3000);
m_palette_ram[1] = std::make_unique<uint8_t[]>(0x3000);
@@ -1400,7 +1400,7 @@ void peplus_state::peplus(machine_config &config)
m_crtc->set_screen(m_screen);
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8);
- m_crtc->set_on_update_addr_change_callback(FUNC(peplus_state::crtc_addr), this);
+ m_crtc->set_on_update_addr_change_callback(FUNC(peplus_state::crtc_addr));
m_crtc->out_vsync_callback().set(FUNC(peplus_state::crtc_vsync));
I2C_X2404P(config, m_i2cmem);
diff --git a/src/mame/drivers/pet.cpp b/src/mame/drivers/pet.cpp
index 75e07cb0b84..1bc29e04ed3 100644
--- a/src/mame/drivers/pet.cpp
+++ b/src/mame/drivers/pet.cpp
@@ -1714,7 +1714,7 @@ void pet_state::base_pet_devices(machine_config &config, const char *default_dri
m_user->pm_handler().set(m_via, FUNC(via6522_device::write_cb2));
quickload_image_device &quickload(QUICKLOAD(config, "quickload", "p00,prg", CBM_QUICKLOAD_DELAY));
- quickload.set_load_callback(FUNC(pet_state::quickload_pet), this);
+ quickload.set_load_callback(FUNC(pet_state::quickload_pet));
quickload.set_interface("cbm_quik");
SOFTWARE_LIST(config, "cass_list").set_original("pet_cass");
@@ -1896,8 +1896,8 @@ void pet2001b_state::pet4032f(machine_config &config)
m_crtc->set_screen(SCREEN_TAG);
m_crtc->set_show_border_area(true);
m_crtc->set_char_width(8);
- m_crtc->set_begin_update_callback(FUNC(pet_state::pet_begin_update), this);
- m_crtc->set_update_row_callback(FUNC(pet_state::pet40_update_row), this);
+ m_crtc->set_begin_update_callback(FUNC(pet_state::pet_begin_update));
+ m_crtc->set_update_row_callback(FUNC(pet_state::pet40_update_row));
m_crtc->out_vsync_callback().set(M6520_1_TAG, FUNC(pia6821_device::cb1_w));
// sound hardware
@@ -1952,8 +1952,8 @@ void pet_state::cbm4032f(machine_config &config)
m_crtc->set_screen(SCREEN_TAG);
m_crtc->set_show_border_area(true);
m_crtc->set_char_width(8);
- m_crtc->set_begin_update_callback(FUNC(pet_state::pet_begin_update), this);
- m_crtc->set_update_row_callback(FUNC(pet_state::pet40_update_row), this);
+ m_crtc->set_begin_update_callback(FUNC(pet_state::pet_begin_update));
+ m_crtc->set_update_row_callback(FUNC(pet_state::pet40_update_row));
m_crtc->out_vsync_callback().set(M6520_1_TAG, FUNC(pia6821_device::cb1_w));
// sound hardware
@@ -2018,8 +2018,8 @@ void pet80_state::pet80(machine_config &config)
m_crtc->set_screen(SCREEN_TAG);
m_crtc->set_show_border_area(true);
m_crtc->set_char_width(2*8);
- m_crtc->set_begin_update_callback(FUNC(pet_state::pet_begin_update), this);
- m_crtc->set_update_row_callback(FUNC(pet80_state::pet80_update_row), this);
+ m_crtc->set_begin_update_callback(FUNC(pet_state::pet_begin_update));
+ m_crtc->set_update_row_callback(FUNC(pet80_state::pet80_update_row));
m_crtc->out_vsync_callback().set(M6520_1_TAG, FUNC(pia6821_device::cb1_w));
// sound hardware
@@ -2073,7 +2073,7 @@ void cbm8296_state::cbm8296(machine_config &config)
m_crtc->set_clock(XTAL(16'000'000)/16);
m_crtc->set_show_border_area(true);
m_crtc->set_char_width(2*8);
- m_crtc->set_update_row_callback(FUNC(pet80_state::cbm8296_update_row), this);
+ m_crtc->set_update_row_callback(FUNC(pet80_state::cbm8296_update_row));
m_crtc->out_vsync_callback().set(M6520_1_TAG, FUNC(pia6821_device::cb1_w));
subdevice<ieee488_slot_device>("ieee8")->set_default_option("c8250");
diff --git a/src/mame/drivers/pg685.cpp b/src/mame/drivers/pg685.cpp
index fc4beba17ad..8711aece97f 100644
--- a/src/mame/drivers/pg685.cpp
+++ b/src/mame/drivers/pg685.cpp
@@ -446,7 +446,7 @@ void pg685_state::pg675(machine_config &config)
crtc.set_screen("screen");
crtc.set_show_border_area(false);
crtc.set_char_width(8);
- crtc.set_update_row_callback(FUNC(pg685_state::crtc_update_row), this);
+ crtc.set_update_row_callback(FUNC(pg685_state::crtc_update_row));
// sound hardware
@@ -494,7 +494,7 @@ void pg685_state::pg685(machine_config &config)
crtc.set_screen("screen");
crtc.set_show_border_area(false);
crtc.set_char_width(8);
- crtc.set_update_row_callback(FUNC(pg685_state::crtc_update_row), this);
+ crtc.set_update_row_callback(FUNC(pg685_state::crtc_update_row));
// sound hardware
@@ -546,7 +546,7 @@ void pg685_state::pg685oua12(machine_config &config)
crtc.set_screen("screen");
crtc.set_show_border_area(false);
crtc.set_char_width(8);
- crtc.set_update_row_callback(FUNC(pg685_state::crtc_update_row_oua12), this);
+ crtc.set_update_row_callback(FUNC(pg685_state::crtc_update_row_oua12));
// sound hardware
diff --git a/src/mame/drivers/pgm2.cpp b/src/mame/drivers/pgm2.cpp
index 641ab098576..bfdf02f1db1 100644
--- a/src/mame/drivers/pgm2.cpp
+++ b/src/mame/drivers/pgm2.cpp
@@ -754,7 +754,7 @@ void pgm2_state::pgm2(machine_config &config)
IGS036(config, m_maincpu, 100000000); // Unknown clock / divider
m_maincpu->set_addrmap(AS_PROGRAM, &pgm2_state::pgm2_rom_map);
- TIMER(config, m_mcu_timer, 0).configure_generic(timer_device::expired_delegate(FUNC(pgm2_state::mcu_interrupt), this));
+ TIMER(config, m_mcu_timer, 0).configure_generic(FUNC(pgm2_state::mcu_interrupt));
ARM_AIC(config, m_arm_aic, 0).irq_callback().set(FUNC(pgm2_state::irq));
@@ -1394,20 +1394,20 @@ void pgm2_state::common_encryption_init()
void pgm2_state::init_orleg2()
{
common_encryption_init();
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x20020114, 0x20020117, read32_delegate(FUNC(pgm2_state::orleg2_speedup_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x20020114, 0x20020117, read32_delegate(*this, FUNC(pgm2_state::orleg2_speedup_r)));
}
void pgm2_state::init_kov2nl()
{
common_encryption_init();
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x20020470, 0x20020473, read32_delegate(FUNC(pgm2_state::kov2nl_speedup_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x20020470, 0x20020473, read32_delegate(*this, FUNC(pgm2_state::kov2nl_speedup_r)));
}
void pgm2_state::init_ddpdojt()
{
common_encryption_init();
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x20000060, 0x20000063, read32_delegate(FUNC(pgm2_state::ddpdojt_speedup_r), this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x20021e04, 0x20021e07, read32_delegate(FUNC(pgm2_state::ddpdojt_speedup2_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x20000060, 0x20000063, read32_delegate(*this, FUNC(pgm2_state::ddpdojt_speedup_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x20021e04, 0x20021e07, read32_delegate(*this, FUNC(pgm2_state::ddpdojt_speedup2_r)));
}
// currently we don't know how to derive address/data xor values from real keys, so we need both
@@ -1419,7 +1419,7 @@ static const kov3_module_key kov3_100_key = { { 0x40,0xac,0x30,0x00,0x47,0x49,0x
void pgm2_state::init_kov3()
{
common_encryption_init();
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x200000b4, 0x200000b7, read32_delegate(FUNC(pgm2_state::kov3_speedup_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x200000b4, 0x200000b7, read32_delegate(*this, FUNC(pgm2_state::kov3_speedup_r)));
}
void pgm2_state::decrypt_kov3_module(u32 addrxor, u16 dataxor)
@@ -1464,7 +1464,7 @@ void pgm2_state::init_kov3_100()
void pgm2_state::init_kof98umh()
{
common_encryption_init();
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x20000060, 0x20000063, read32_delegate(FUNC(pgm2_state::kof98umh_speedup_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x20000060, 0x20000063, read32_delegate(*this, FUNC(pgm2_state::kof98umh_speedup_r)));
}
diff --git a/src/mame/drivers/photoply.cpp b/src/mame/drivers/photoply.cpp
index 4dfce5b1a83..7f2ae54e2af 100644
--- a/src/mame/drivers/photoply.cpp
+++ b/src/mame/drivers/photoply.cpp
@@ -32,8 +32,8 @@ TODO:
class photoply_state : public pcat_base_state
{
public:
- photoply_state(const machine_config &mconfig, device_type type, const char *tag)
- : pcat_base_state(mconfig, type, tag),
+ photoply_state(const machine_config &mconfig, device_type type, const char *tag) :
+ pcat_base_state(mconfig, type, tag),
m_eeprom(*this, "eeprom"),
m_main_bios(*this, "bios"),
m_video_bios(*this, "video_bios"),
@@ -319,8 +319,7 @@ void photoply_state::photoply(machine_config &config)
ide2.irq_handler().set("pic8259_2", FUNC(pic8259_device::ir7_w));
pci_bus_legacy_device &pcibus(PCI_BUS_LEGACY(config, "pcibus", 0, 0));
- pcibus.set_device_read (5, FUNC(photoply_state::sis_pcm_r), this);
- pcibus.set_device_write(5, FUNC(photoply_state::sis_pcm_w), this);
+ pcibus.set_device(5, FUNC(photoply_state::sis_pcm_r), FUNC(photoply_state::sis_pcm_w));
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
screen.set_raw(XTAL(25'174'800),900,0,640,526,0,480);
diff --git a/src/mame/drivers/phunsy.cpp b/src/mame/drivers/phunsy.cpp
index b52c1417f44..b66bf6347df 100644
--- a/src/mame/drivers/phunsy.cpp
+++ b/src/mame/drivers/phunsy.cpp
@@ -373,7 +373,7 @@ void phunsy_state::phunsy(machine_config &config)
m_cass->add_route(ALL_OUTPUTS, "mono", 0.05);
/* quickload */
- QUICKLOAD(config, "quickload", "bin", attotime::from_seconds(2)).set_load_callback(FUNC(phunsy_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "bin", attotime::from_seconds(2)).set_load_callback(FUNC(phunsy_state::quickload_cb));
}
diff --git a/src/mame/drivers/piggypas.cpp b/src/mame/drivers/piggypas.cpp
index 9dcfa1b5e30..723e794241d 100644
--- a/src/mame/drivers/piggypas.cpp
+++ b/src/mame/drivers/piggypas.cpp
@@ -26,8 +26,8 @@ game details unknown
class piggypas_state : public driver_device
{
public:
- piggypas_state(const machine_config &mconfig, device_type type, const char *tag)
- : driver_device(mconfig, type, tag),
+ piggypas_state(const machine_config &mconfig, device_type type, const char *tag) :
+ driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"),
m_hd44780(*this, "hd44780"),
m_ticket(*this, "ticket"),
@@ -218,7 +218,7 @@ void piggypas_state::piggypas(machine_config &config)
hd44780_device &hd44780(HD44780(config, "hd44780"));
hd44780.set_lcd_size(1, 16);
- hd44780.set_pixel_update_cb(FUNC(piggypas_state::piggypas_pixel_update), this);
+ hd44780.set_pixel_update_cb(FUNC(piggypas_state::piggypas_pixel_update));
/* sound hardware */
SPEAKER(config, "mono").front_center();
diff --git a/src/mame/drivers/pinball2k.cpp b/src/mame/drivers/pinball2k.cpp
index 6d337040e06..c52a19a9621 100644
--- a/src/mame/drivers/pinball2k.cpp
+++ b/src/mame/drivers/pinball2k.cpp
@@ -613,8 +613,7 @@ void pinball2k_state::mediagx(machine_config &config)
pcat_common(config);
pci_bus_legacy_device &pcibus(PCI_BUS_LEGACY(config, "pcibus", 0, 0));
- pcibus.set_device_read (18, FUNC(pinball2k_state::cx5510_pci_r), this);
- pcibus.set_device_write(18, FUNC(pinball2k_state::cx5510_pci_w), this);
+ pcibus.set_device(18, FUNC(pinball2k_state::cx5510_pci_r), FUNC(pinball2k_state::cx5510_pci_w));
ide_controller_device &ide(IDE_CONTROLLER(config, "ide").options(ata_devices, "hdd", nullptr, true));
ide.irq_handler().set("pic8259_2", FUNC(pic8259_device::ir6_w));
diff --git a/src/mame/drivers/pingpong.cpp b/src/mame/drivers/pingpong.cpp
index 1ecb7f4aeca..36d45dd24fd 100644
--- a/src/mame/drivers/pingpong.cpp
+++ b/src/mame/drivers/pingpong.cpp
@@ -582,8 +582,8 @@ void pingpong_state::init_cashquiz()
ROM[i] = bitswap<8>(ROM[i],0,1,2,3,4,5,6,7);
/* questions banking handlers */
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x4000, 0x4000, write8_delegate(FUNC(pingpong_state::cashquiz_question_bank_high_w),this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x4001, 0x4001, write8_delegate(FUNC(pingpong_state::cashquiz_question_bank_low_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x4000, 0x4000, write8_delegate(*this, FUNC(pingpong_state::cashquiz_question_bank_high_w)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x4001, 0x4001, write8_delegate(*this, FUNC(pingpong_state::cashquiz_question_bank_low_w)));
// 8 independents banks for questions
m_maincpu->space(AS_PROGRAM).install_read_bank(0x5000, 0x50ff, "bank1");
diff --git a/src/mame/drivers/pipbug.cpp b/src/mame/drivers/pipbug.cpp
index dafac58c3e3..08a986842d4 100644
--- a/src/mame/drivers/pipbug.cpp
+++ b/src/mame/drivers/pipbug.cpp
@@ -217,7 +217,7 @@ void pipbug_state::pipbug(machine_config &config)
m_rs232->set_option_device_input_defaults("terminal", DEVICE_INPUT_DEFAULTS_NAME(terminal));
/* quickload */
- QUICKLOAD(config, "quickload", "pgm", attotime::from_seconds(1)).set_load_callback(FUNC(pipbug_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "pgm", attotime::from_seconds(1)).set_load_callback(FUNC(pipbug_state::quickload_cb));
SPEAKER(config, "mono").front_center();
diff --git a/src/mame/drivers/pipedrm.cpp b/src/mame/drivers/pipedrm.cpp
index 5360228314b..468cb7f6f17 100644
--- a/src/mame/drivers/pipedrm.cpp
+++ b/src/mame/drivers/pipedrm.cpp
@@ -889,7 +889,7 @@ void pipedrm_state::init_pipedrm()
void pipedrm_state::init_hatris()
{
- m_maincpu->space(AS_IO).install_write_handler(0x21, 0x21, write8_delegate(FUNC(pipedrm_state::fromance_gfxreg_w),this));
+ m_maincpu->space(AS_IO).install_write_handler(0x21, 0x21, write8_delegate(*this, FUNC(pipedrm_state::fromance_gfxreg_w)));
}
diff --git a/src/mame/drivers/pipeline.cpp b/src/mame/drivers/pipeline.cpp
index 6a2b52a8345..65d76e11623 100644
--- a/src/mame/drivers/pipeline.cpp
+++ b/src/mame/drivers/pipeline.cpp
@@ -161,8 +161,8 @@ TILE_GET_INFO_MEMBER(pipeline_state::get_tile_info2)
void pipeline_state::video_start()
{
m_palram=std::make_unique<u8[]>(0x1000);
- m_tilemap1 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(pipeline_state::get_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,32 );
- m_tilemap2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(pipeline_state::get_tile_info2),this),TILEMAP_SCAN_ROWS,8,8,64,32 );
+ m_tilemap1 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(pipeline_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 64,32);
+ m_tilemap2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(pipeline_state::get_tile_info2)), TILEMAP_SCAN_ROWS, 8,8, 64,32);
m_tilemap2->set_transparent_pen(0);
save_item(NAME(m_vidctrl));
diff --git a/src/mame/drivers/pirates.cpp b/src/mame/drivers/pirates.cpp
index 4fc64e0a30d..f0a280eb436 100644
--- a/src/mame/drivers/pirates.cpp
+++ b/src/mame/drivers/pirates.cpp
@@ -461,7 +461,7 @@ void pirates_state::init_genix()
/* If this value is increased then something has gone wrong and the protection failed */
/* Write-protect it for now */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x109e98, 0x109e9b, read16_delegate(FUNC(pirates_state::genix_prot_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x109e98, 0x109e9b, read16_delegate(*this, FUNC(pirates_state::genix_prot_r)));
}
/* GAME */
diff --git a/src/mame/drivers/piratesh.cpp b/src/mame/drivers/piratesh.cpp
index 15c0fda159a..a8e7da1241f 100644
--- a/src/mame/drivers/piratesh.cpp
+++ b/src/mame/drivers/piratesh.cpp
@@ -626,7 +626,7 @@ void piratesh_state::piratesh(machine_config &config)
PALETTE(config, "palette").set_format(palette_device::BGRx_888, 2048).enable_shadows().enable_hilights();
K056832(config, m_k056832, 0);
- m_k056832->set_tile_callback(FUNC(piratesh_state::piratesh_tile_callback), this);
+ m_k056832->set_tile_callback(FUNC(piratesh_state::piratesh_tile_callback));
m_k056832->set_config(K056832_BPP_4PIRATESH, 1, 0);
m_k056832->set_palette("palette");
@@ -635,13 +635,13 @@ void piratesh_state::piratesh(machine_config &config)
K053250PS(config, m_k053250, 12000000, "palette", "screen", -16, 0);
K055673(config, m_k055673, 0);
- m_k055673->set_sprite_callback(FUNC(piratesh_state::piratesh_sprite_callback), this);
+ m_k055673->set_sprite_callback(FUNC(piratesh_state::piratesh_sprite_callback));
m_k055673->set_config(K055673_LAYOUT_PS, -60, 24);
m_k055673->set_palette("palette");
// ????
//K053246(config, m_k053246, 0);
- //m_k053246->set_sprite_callback(FUNC(moo_state::sprite_callback), this);
+ //m_k053246->set_sprite_callback(FUNC(moo_state::sprite_callback));
//m_k053246->set_config("k053246", NORMAL_PLANE_ORDER, -48+1, 23);
//m_k053246->set_palette(m_palette);
diff --git a/src/mame/drivers/pkscram.cpp b/src/mame/drivers/pkscram.cpp
index b2793f6fcf4..e0c5c816893 100644
--- a/src/mame/drivers/pkscram.cpp
+++ b/src/mame/drivers/pkscram.cpp
@@ -263,9 +263,9 @@ TIMER_DEVICE_CALLBACK_MEMBER(pkscram_state::scanline_callback)
void pkscram_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(pkscram_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8,32,32);
- m_md_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(pkscram_state::get_md_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8,32,32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(pkscram_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8,32,32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(pkscram_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8,32,32);
+ m_md_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(pkscram_state::get_md_tile_info)), TILEMAP_SCAN_ROWS, 8, 8,32,32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(pkscram_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8,32,32);
m_md_tilemap->set_transparent_pen(15);
m_fg_tilemap->set_transparent_pen(15);
diff --git a/src/mame/drivers/pktgaldx.cpp b/src/mame/drivers/pktgaldx.cpp
index e50b76f09e5..f6d73c3d60c 100644
--- a/src/mame/drivers/pktgaldx.cpp
+++ b/src/mame/drivers/pktgaldx.cpp
@@ -368,8 +368,8 @@ void pktgaldx_state::pktgaldx(machine_config &config)
m_deco_tilegen->set_pf2_col_bank(0x10);
m_deco_tilegen->set_pf1_col_mask(0x0f);
m_deco_tilegen->set_pf2_col_mask(0x0f);
- m_deco_tilegen->set_bank1_callback(FUNC(pktgaldx_state::bank_callback), this);
- m_deco_tilegen->set_bank2_callback(FUNC(pktgaldx_state::bank_callback), this);
+ m_deco_tilegen->set_bank1_callback(FUNC(pktgaldx_state::bank_callback));
+ m_deco_tilegen->set_bank2_callback(FUNC(pktgaldx_state::bank_callback));
m_deco_tilegen->set_pf12_8x8_bank(0);
m_deco_tilegen->set_pf12_16x16_bank(1);
m_deco_tilegen->set_gfxdecode_tag("gfxdecode");
diff --git a/src/mame/drivers/plus4.cpp b/src/mame/drivers/plus4.cpp
index 256116d6133..4ad7ddbb1e4 100644
--- a/src/mame/drivers/plus4.cpp
+++ b/src/mame/drivers/plus4.cpp
@@ -930,7 +930,7 @@ void plus4_state::plus4(machine_config &config)
m_exp->cd_wr_callback().set(FUNC(plus4_state::write));
m_exp->aec_wr_callback().set_inputline(MOS7501_TAG, INPUT_LINE_HALT);
- QUICKLOAD(config, "quickload", "p00,prg", CBM_QUICKLOAD_DELAY).set_load_callback(FUNC(plus4_state::quickload_c16), this);
+ QUICKLOAD(config, "quickload", "p00,prg", CBM_QUICKLOAD_DELAY).set_load_callback(FUNC(plus4_state::quickload_c16));
// internal ram
RAM(config, m_ram).set_default_size("64K");
diff --git a/src/mame/drivers/pockchal.cpp b/src/mame/drivers/pockchal.cpp
index cc151eb8f3b..98fdfe8858c 100644
--- a/src/mame/drivers/pockchal.cpp
+++ b/src/mame/drivers/pockchal.cpp
@@ -92,7 +92,7 @@ void pockchalv1_state::machine_start()
{
address_space &space = m_maincpu->space(AS_PROGRAM);
if (m_cart->exists())
- space.install_read_handler(0x0000, 0x7fff, read8sm_delegate(FUNC(generic_slot_device::read_rom),(generic_slot_device*)m_cart));
+ space.install_read_handler(0x0000, 0x7fff, read8sm_delegate(*m_cart, FUNC(generic_slot_device::read_rom)));
}
void pockchalv1_state::machine_reset()
@@ -120,7 +120,7 @@ void pockchalv1_state::pockchalv1(machine_config &config)
screen.set_palette("palette");
generic_cartslot_device &cartslot(GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "pockchalw_cart", "bin"));
- cartslot.set_device_load(FUNC(pockchalv1_state::cart_load), this);
+ cartslot.set_device_load(FUNC(pockchalv1_state::cart_load));
cartslot.set_must_be_loaded(true);
SOFTWARE_LIST(config, "pc1_list").set_compatible("pockchalw");
diff --git a/src/mame/drivers/pockstat.cpp b/src/mame/drivers/pockstat.cpp
index efb714113ae..c73721cd9fa 100644
--- a/src/mame/drivers/pockstat.cpp
+++ b/src/mame/drivers/pockstat.cpp
@@ -1008,7 +1008,7 @@ void pockstat_state::pockstat(machine_config &config)
GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "pockstat_cart", "gme");
m_cart->set_width(GENERIC_ROM32_WIDTH);
m_cart->set_endian(ENDIANNESS_LITTLE);
- m_cart->set_device_load(FUNC(pockstat_state::flash_load), this);
+ m_cart->set_device_load(FUNC(pockstat_state::flash_load));
}
/* ROM definition */
diff --git a/src/mame/drivers/poisk1.cpp b/src/mame/drivers/poisk1.cpp
index 76d4d0fbe79..702f6e8048f 100644
--- a/src/mame/drivers/poisk1.cpp
+++ b/src/mame/drivers/poisk1.cpp
@@ -237,7 +237,7 @@ WRITE8_MEMBER(p1_state::p1_ppi2_porta_w)
else
{
program.install_read_bank(0xb8000, 0xbbfff, "bank11");
- program.install_write_handler(0xb8000, 0xbbfff, WRITE8_DELEGATE(p1_state, p1_vram_w));
+ program.install_write_handler(0xb8000, 0xbbfff, write8_delegate(*this, FUNC(p1_state::p1_vram_w)));
}
}
// DISPLAY BANK
diff --git a/src/mame/drivers/pokemini.cpp b/src/mame/drivers/pokemini.cpp
index 9ca4c699607..df99ab5e72b 100644
--- a/src/mame/drivers/pokemini.cpp
+++ b/src/mame/drivers/pokemini.cpp
@@ -1789,7 +1789,7 @@ void pokemini_state::pokemini(machine_config &config)
m_speaker->add_route(ALL_OUTPUTS, "mono", 0.50);
/* cartridge */
- GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "pokemini_cart", "bin,min").set_device_load(FUNC(pokemini_state::cart_load), this);
+ GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "pokemini_cart", "bin,min").set_device_load(FUNC(pokemini_state::cart_load));
/* Software lists */
SOFTWARE_LIST(config, "cart_list").set_original("pokemini");
diff --git a/src/mame/drivers/polepos.cpp b/src/mame/drivers/polepos.cpp
index 75c1f7ec103..58ac0c71d59 100644
--- a/src/mame/drivers/polepos.cpp
+++ b/src/mame/drivers/polepos.cpp
@@ -2449,7 +2449,7 @@ ROM_END
void polepos_state::init_polepos2()
{
/* note that the bootleg version doesn't need this custom IC; it has a hacked ROM in its place */
- m_subcpu->space(AS_PROGRAM).install_read_handler(0x4000, 0x5fff, read16_delegate(FUNC(polepos_state::polepos2_ic25_r),this));
+ m_subcpu->space(AS_PROGRAM).install_read_handler(0x4000, 0x5fff, read16_delegate(*this, FUNC(polepos_state::polepos2_ic25_r)));
}
diff --git a/src/mame/drivers/policetr.cpp b/src/mame/drivers/policetr.cpp
index 7265232dd67..2ce74d37493 100644
--- a/src/mame/drivers/policetr.cpp
+++ b/src/mame/drivers/policetr.cpp
@@ -704,7 +704,7 @@ ROM_END
void policetr_state::driver_init()
{
- m_maincpu->space(AS_PROGRAM).install_write_handler(m_speedup_addr, m_speedup_addr+3, write32_delegate(FUNC(policetr_state::speedup_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(m_speedup_addr, m_speedup_addr+3, write32_delegate(*this, FUNC(policetr_state::speedup_w)));
m_speedup_data = m_rambase + m_speedup_addr/4;
}
diff --git a/src/mame/drivers/poly88.cpp b/src/mame/drivers/poly88.cpp
index d1323650725..a6f59b3f2e3 100644
--- a/src/mame/drivers/poly88.cpp
+++ b/src/mame/drivers/poly88.cpp
@@ -161,7 +161,7 @@ void poly88_state::poly88(machine_config &config)
m_brg->output_cb().set(FUNC(poly88_state::cassette_clock_w));
/* snapshot */
- SNAPSHOT(config, "snapshot", "img", attotime::from_seconds(2)).set_load_callback(FUNC(poly88_state::snapshot_cb), this);
+ SNAPSHOT(config, "snapshot", "img", attotime::from_seconds(2)).set_load_callback(FUNC(poly88_state::snapshot_cb));
S100_BUS(config, m_s100, 16.5888_MHz_XTAL / 9);
m_s100->vi2().set(FUNC(poly88_state::vi2_w));
diff --git a/src/mame/drivers/pong.cpp b/src/mame/drivers/pong.cpp
index 7359f8038b4..a72c1b35b4b 100644
--- a/src/mame/drivers/pong.cpp
+++ b/src/mame/drivers/pong.cpp
@@ -470,8 +470,8 @@ void pong_state::pong(machine_config &config)
NETLIST_LOGIC_INPUT(config, "maincpu:coinsw", "coinsw.POS", 0);
NETLIST_LOGIC_INPUT(config, "maincpu:antenna", "antenna.IN", 0);
- NETLIST_ANALOG_OUTPUT(config, "maincpu:snd0", 0).set_params("sound", FUNC(pong_state::sound_cb), "");
- NETLIST_ANALOG_OUTPUT(config, "maincpu:vid0", 0).set_params("videomix", FUNC(fixedfreq_device::update_composite_monochrome), "fixfreq");
+ NETLIST_ANALOG_OUTPUT(config, "maincpu:snd0", 0).set_params("sound", FUNC(pong_state::sound_cb));
+ NETLIST_ANALOG_OUTPUT(config, "maincpu:vid0", 0).set_params("videomix", "fixfreq", FUNC(fixedfreq_device::update_composite_monochrome));
/* video hardware */
SCREEN(config, "screen", SCREEN_TYPE_RASTER);
@@ -514,15 +514,15 @@ void breakout_state::breakout(machine_config &config)
NETLIST_LOGIC_INPUT(config, "maincpu:antenna", "antenna.IN", 0);
- NETLIST_ANALOG_OUTPUT(config, "maincpu:snd0", 0).set_params("sound", FUNC(breakout_state::sound_cb), "");
- NETLIST_ANALOG_OUTPUT(config, "maincpu:vid0", 0).set_params("videomix", FUNC(fixedfreq_device::update_composite_monochrome), "fixfreq");
+ NETLIST_ANALOG_OUTPUT(config, "maincpu:snd0", 0).set_params("sound", FUNC(breakout_state::sound_cb));
+ NETLIST_ANALOG_OUTPUT(config, "maincpu:vid0", 0).set_params("videomix", "fixfreq", FUNC(fixedfreq_device::update_composite_monochrome));
// Leds and lamps
- NETLIST_ANALOG_OUTPUT(config, "maincpu:led_serve", 0).set_params("CON_P", FUNC(breakout_state::serve_cb), "");
- NETLIST_ANALOG_OUTPUT(config, "maincpu:lamp_credit1", 0).set_params("CON_CREDIT1", FUNC(breakout_state::credit1_cb), "");
- NETLIST_ANALOG_OUTPUT(config, "maincpu:lamp_credit2", 0).set_params("CON_CREDIT2", FUNC(breakout_state::credit2_cb), "");
- NETLIST_ANALOG_OUTPUT(config, "maincpu:coin_counter", 0).set_params("CON_T", FUNC(breakout_state::coin_counter_cb), "");
+ NETLIST_ANALOG_OUTPUT(config, "maincpu:led_serve", 0).set_params("CON_P", FUNC(breakout_state::serve_cb));
+ NETLIST_ANALOG_OUTPUT(config, "maincpu:lamp_credit1", 0).set_params("CON_CREDIT1", FUNC(breakout_state::credit1_cb));
+ NETLIST_ANALOG_OUTPUT(config, "maincpu:lamp_credit2", 0).set_params("CON_CREDIT2", FUNC(breakout_state::credit2_cb));
+ NETLIST_ANALOG_OUTPUT(config, "maincpu:coin_counter", 0).set_params("CON_T", FUNC(breakout_state::coin_counter_cb));
/* video hardware */
SCREEN(config, "screen", SCREEN_TYPE_RASTER);
@@ -573,8 +573,8 @@ void pong_state::pongd(machine_config &config)
NETLIST_LOGIC_INPUT(config, "maincpu:antenna", "antenna.IN", 0, 0x01)
#endif
- NETLIST_ANALOG_OUTPUT(config, "maincpu:snd0", 0).set_params("AUDIO", FUNC(pong_state::sound_cb), "");
- NETLIST_ANALOG_OUTPUT(config, "maincpu:vid0", 0).set_params("videomix", FUNC(fixedfreq_device::update_composite_monochrome), "fixfreq");
+ NETLIST_ANALOG_OUTPUT(config, "maincpu:snd0", 0).set_params("AUDIO", FUNC(pong_state::sound_cb));
+ NETLIST_ANALOG_OUTPUT(config, "maincpu:vid0", 0).set_params("videomix", "fixfreq", FUNC(fixedfreq_device::update_composite_monochrome));
/* video hardware */
SCREEN(config, "screen", SCREEN_TYPE_RASTER);
@@ -609,11 +609,11 @@ void rebound_state::rebound(machine_config &config)
NETLIST_LOGIC_INPUT(config, "maincpu:dsw1b", "DSW1b.POS", 0);
NETLIST_LOGIC_INPUT(config, "maincpu:dsw2", "DSW2.POS", 0);
- NETLIST_ANALOG_OUTPUT(config, "maincpu:snd0", 0).set_params("sound", FUNC(rebound_state::sound_cb), "");
- NETLIST_ANALOG_OUTPUT(config, "maincpu:vid0", 0).set_params("videomix", FUNC(fixedfreq_device::update_composite_monochrome), "fixfreq");
+ NETLIST_ANALOG_OUTPUT(config, "maincpu:snd0", 0).set_params("sound", FUNC(rebound_state::sound_cb));
+ NETLIST_ANALOG_OUTPUT(config, "maincpu:vid0", 0).set_params("videomix", "fixfreq", FUNC(fixedfreq_device::update_composite_monochrome));
- NETLIST_ANALOG_OUTPUT(config, "maincpu:led_credit", 0).set_params("CON11", FUNC(rebound_state::led_credit_cb), "");
- NETLIST_ANALOG_OUTPUT(config, "maincpu:coin_counter", 0).set_params("CON10", FUNC(rebound_state::coin_counter_cb), "");
+ NETLIST_ANALOG_OUTPUT(config, "maincpu:led_credit", 0).set_params("CON11", FUNC(rebound_state::led_credit_cb));
+ NETLIST_ANALOG_OUTPUT(config, "maincpu:coin_counter", 0).set_params("CON10", FUNC(rebound_state::coin_counter_cb));
/* video hardware */
SCREEN(config, "screen", SCREEN_TYPE_RASTER);
diff --git a/src/mame/drivers/popobear.cpp b/src/mame/drivers/popobear.cpp
index cb0601256e5..91ed2e63851 100644
--- a/src/mame/drivers/popobear.cpp
+++ b/src/mame/drivers/popobear.cpp
@@ -226,10 +226,10 @@ void popobear_state::video_start()
m_gfxdecode->gfx(0)->set_source(reinterpret_cast<uint8_t *>(&m_vram_rearranged[0]));
- m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(popobear_state::get_bg0_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 128, 64);
- m_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(popobear_state::get_bg1_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 128, 64);
- m_bg_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(popobear_state::get_bg2_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 128, 64);
- m_bg_tilemap[3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(popobear_state::get_bg3_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 128, 64);
+ m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(popobear_state::get_bg0_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 128, 64);
+ m_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(popobear_state::get_bg1_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 128, 64);
+ m_bg_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(popobear_state::get_bg2_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 128, 64);
+ m_bg_tilemap[3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(popobear_state::get_bg3_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 128, 64);
m_bg_tilemap[0]->set_transparent_pen(0);
m_bg_tilemap[1]->set_transparent_pen(0);
diff --git a/src/mame/drivers/popper.cpp b/src/mame/drivers/popper.cpp
index 58e2fd41026..ae442d5eb6c 100644
--- a/src/mame/drivers/popper.cpp
+++ b/src/mame/drivers/popper.cpp
@@ -507,10 +507,10 @@ READ8_MEMBER( popper_state::watchdog_clear_r )
void popper_state::machine_start()
{
// create tilemaps
- m_layer0_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(popper_state::layer0_tile_info), this), TILEMAP_SCAN_COLS, 8, 8, 48, 32);
+ m_layer0_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(popper_state::layer0_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 48, 32);
m_layer0_tilemap->set_transparent_pen(1);
- m_layer1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(popper_state::layer1_tile_info), this), TILEMAP_SCAN_COLS, 8, 8, 48, 32);
+ m_layer1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(popper_state::layer1_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 48, 32);
m_layer1_tilemap->set_transparent_pen(0);
// allocate and start scanline timer
diff --git a/src/mame/drivers/powerbal.cpp b/src/mame/drivers/powerbal.cpp
index b16ecb924ac..76f6ed54349 100644
--- a/src/mame/drivers/powerbal.cpp
+++ b/src/mame/drivers/powerbal.cpp
@@ -558,7 +558,7 @@ void powerbal_state::draw_sprites_powerbal(bitmap_ind16 &bitmap, const rectangle
VIDEO_START_MEMBER(powerbal_state,powerbal)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(powerbal_state::powerbal_get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(powerbal_state::powerbal_get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_xoffset = -20;
@@ -567,7 +567,7 @@ VIDEO_START_MEMBER(powerbal_state,powerbal)
VIDEO_START_MEMBER(powerbal_state,atombjt)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(powerbal_state::powerbal_get_bg_tile_info),this), TILEMAP_SCAN_COLS, 8, 8, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(powerbal_state::powerbal_get_bg_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 64, 32);
m_xoffset = 32;
m_yoffset = 8;
diff --git a/src/mame/drivers/powerins.cpp b/src/mame/drivers/powerins.cpp
index b0608f2f3e0..70ea6780663 100644
--- a/src/mame/drivers/powerins.cpp
+++ b/src/mame/drivers/powerins.cpp
@@ -295,8 +295,8 @@ void powerins_state::powerins(machine_config &config)
m_screen->set_palette(m_palette);
NMK_16BIT_SPRITE(config, m_spritegen, XTAL(14'000'000) / 2);
- m_spritegen->set_colpri_callback(FUNC(powerins_state::get_colour_6bit), this);
- m_spritegen->set_ext_callback(FUNC(powerins_state::get_flip_extcode), this);
+ m_spritegen->set_colpri_callback(FUNC(powerins_state::get_colour_6bit));
+ m_spritegen->set_ext_callback(FUNC(powerins_state::get_flip_extcode));
m_spritegen->set_mask(0x3ff, 0x3ff);
m_spritegen->set_screen_size(320, 256);
m_spritegen->set_max_sprite_clock(448 * 263); // not verified?
diff --git a/src/mame/drivers/ppmast93.cpp b/src/mame/drivers/ppmast93.cpp
index e6388df9651..4a6337f9aad 100644
--- a/src/mame/drivers/ppmast93.cpp
+++ b/src/mame/drivers/ppmast93.cpp
@@ -361,8 +361,8 @@ TILE_GET_INFO_MEMBER(ppmast93_state::get_fg_tile_info)
void ppmast93_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ppmast93_state::get_bg_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ppmast93_state::get_fg_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ppmast93_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ppmast93_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(0);
}
diff --git a/src/mame/drivers/prehisle.cpp b/src/mame/drivers/prehisle.cpp
index 9bed8d3cc2e..5d96ac4f858 100644
--- a/src/mame/drivers/prehisle.cpp
+++ b/src/mame/drivers/prehisle.cpp
@@ -40,17 +40,17 @@ void prehisle_state::prehisle_map(address_map &map)
map(0x0d0000, 0x0d07ff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette");
map(0x0e0010, 0x0e0011).portr("P2"); // Player 2
map(0x0e0020, 0x0e0021).portr("COIN"); // Coins, Tilt, Service
- map(0x0e0041, 0x0e0041).lr8("P1_r", [this]() -> u8 { return m_io_p1->read() ^ m_invert_controls; }); // Player 1
+ map(0x0e0041, 0x0e0041).lr8(NAME([this] () -> u8 { return m_io_p1->read() ^ m_invert_controls; })); // Player 1
map(0x0e0042, 0x0e0043).portr("DSW0"); // DIPs
map(0x0e0044, 0x0e0045).portr("DSW1"); // DIPs + VBLANK
map(0x0f0000, 0x0f0001).w(FUNC(prehisle_state::fg_scrolly_w));
map(0x0f0010, 0x0f0011).w(FUNC(prehisle_state::fg_scrollx_w));
map(0x0f0020, 0x0f0021).w(FUNC(prehisle_state::bg_scrolly_w));
map(0x0f0030, 0x0f0031).w(FUNC(prehisle_state::bg_scrollx_w));
- map(0x0f0046, 0x0f0047).lw16("invert_controls_w", [this](u16 data){ m_invert_controls = data ? 0xff : 0x00; });
- map(0x0f0050, 0x0f0051).lw16("coin_counter_1_w", [this](u16 data){ machine().bookkeeping().coin_counter_w(0, data & 1); });
- map(0x0f0052, 0x0f0053).lw16("coin_counter_2_w", [this](u16 data){ machine().bookkeeping().coin_counter_w(1, data & 1); });
- map(0x0f0060, 0x0f0061).lw16("flip_screen_w", [this](u16 data){ flip_screen_set(data & 0x01); });
+ map(0x0f0046, 0x0f0047).lw16(NAME([this] (u16 data) { m_invert_controls = data ? 0xff : 0x00; }));
+ map(0x0f0050, 0x0f0051).lw16(NAME([this] (u16 data) { machine().bookkeeping().coin_counter_w(0, data & 1); }));
+ map(0x0f0052, 0x0f0053).lw16(NAME([this] (u16 data) { machine().bookkeeping().coin_counter_w(1, data & 1); }));
+ map(0x0f0060, 0x0f0061).lw16(NAME([this] (u16 data) { flip_screen_set(data & 0x01); }));
map(0x0f0070, 0x0f0071).w(FUNC(prehisle_state::soundcmd_w));
}
@@ -77,7 +77,7 @@ void prehisle_state::prehisle_sound_io_map(address_map &map)
map(0x00, 0x00).rw("ymsnd", FUNC(ym3812_device::status_port_r), FUNC(ym3812_device::control_port_w));
map(0x20, 0x20).w("ymsnd", FUNC(ym3812_device::write_port_w));
map(0x40, 0x40).w(FUNC(prehisle_state::upd_port_w));
- map(0x80, 0x80).lw8("upd_reset", [this](u8 data){ m_upd7759->reset_w(BIT(data, 7)); } );
+ map(0x80, 0x80).lw8(NAME([this] (u8 data) { m_upd7759->reset_w(BIT(data, 7)); }));
}
/******************************************************************************/
diff --git a/src/mame/drivers/primo.cpp b/src/mame/drivers/primo.cpp
index 5db10bcf489..0474b1af9ee 100644
--- a/src/mame/drivers/primo.cpp
+++ b/src/mame/drivers/primo.cpp
@@ -269,8 +269,8 @@ void primo_state::primoa32(machine_config &config)
SPEAKER_SOUND(config, "speaker").add_route(ALL_OUTPUTS, "mono", 0.50);
/* snapshot/quickload */
- SNAPSHOT(config, "snapshot", "pss").set_load_callback(FUNC(primo_state::snapshot_cb), this);
- QUICKLOAD(config, "quickload", "pp").set_load_callback(FUNC(primo_state::quickload_cb), this);
+ SNAPSHOT(config, "snapshot", "pss").set_load_callback(FUNC(primo_state::snapshot_cb));
+ QUICKLOAD(config, "quickload", "pp").set_load_callback(FUNC(primo_state::quickload_cb));
CASSETTE(config, m_cassette);
m_cassette->set_formats(primo_ptp_format);
diff --git a/src/mame/drivers/psion.cpp b/src/mame/drivers/psion.cpp
index 7583a170ec7..4374b176fcc 100644
--- a/src/mame/drivers/psion.cpp
+++ b/src/mame/drivers/psion.cpp
@@ -614,7 +614,7 @@ void psion_state::psion_4lines(machine_config &config)
subdevice<screen_device>("screen")->set_visarea(0, 6*20-1, 0, 9*4-1);
m_lcdc->set_lcd_size(4, 20);
- m_lcdc->set_pixel_update_cb(FUNC(psion_state::lz_pixel_update), this);
+ m_lcdc->set_pixel_update_cb(FUNC(psion_state::lz_pixel_update));
}
void psion1_state::psion1(machine_config &config)
@@ -628,7 +628,7 @@ void psion1_state::psion1(machine_config &config)
subdevice<screen_device>("screen")->set_visarea(0, 6*16-1, 0, 8*1-1);
m_lcdc->set_lcd_size(1, 16);
- m_lcdc->set_pixel_update_cb(FUNC(psion1_state::psion1_pixel_update), this);
+ m_lcdc->set_pixel_update_cb(FUNC(psion1_state::psion1_pixel_update));
/* Software lists */
SOFTWARE_LIST(config.replace(), "pack_list").set_original("psion1");
diff --git a/src/mame/drivers/psx.cpp b/src/mame/drivers/psx.cpp
index 145e3c969d1..0de37a45dce 100644
--- a/src/mame/drivers/psx.cpp
+++ b/src/mame/drivers/psx.cpp
@@ -543,7 +543,7 @@ void psx1_state::psx_base(machine_config &config)
spu.add_route(0, "lspeaker", 1.00);
spu.add_route(1, "rspeaker", 1.00);
- QUICKLOAD(config, "quickload", "cpe,exe,psf,psx").set_load_callback(FUNC(psx1_state::quickload_exe), this);
+ QUICKLOAD(config, "quickload", "cpe,exe,psf,psx").set_load_callback(FUNC(psx1_state::quickload_exe));
PSX_PARALLEL_SLOT(config, "parallel", psx_parallel_devices, nullptr);
diff --git a/src/mame/drivers/pturn.cpp b/src/mame/drivers/pturn.cpp
index 9539652aa3c..8a0bba0c0b0 100644
--- a/src/mame/drivers/pturn.cpp
+++ b/src/mame/drivers/pturn.cpp
@@ -189,9 +189,9 @@ TILE_GET_INFO_MEMBER(pturn_state::get_bg_tile_info)
void pturn_state::video_start()
{
- m_fgmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(pturn_state::get_tile_info),this),TILEMAP_SCAN_ROWS,8, 8,32,32);
+ m_fgmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(pturn_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fgmap->set_transparent_pen(0);
- m_bgmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(pturn_state::get_bg_tile_info),this),TILEMAP_SCAN_ROWS,8, 8,32,32*8);
+ m_bgmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(pturn_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32*8);
m_bgmap->set_transparent_pen(0);
save_item(NAME(m_bgbank));
diff --git a/src/mame/drivers/pv1000.cpp b/src/mame/drivers/pv1000.cpp
index b23aa109511..1ca3c7fa860 100644
--- a/src/mame/drivers/pv1000.cpp
+++ b/src/mame/drivers/pv1000.cpp
@@ -395,7 +395,7 @@ void pv1000_state::machine_start()
if (m_cart->exists())
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x0000, 0x7fff, read8sm_delegate(FUNC(generic_slot_device::read_rom),(generic_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x0000, 0x7fff, read8sm_delegate(*m_cart, FUNC(generic_slot_device::read_rom)));
// FIXME: this is needed for gfx decoding, but there is probably a cleaner solution!
std::string region_tag;
@@ -462,7 +462,7 @@ void pv1000_state::pv1000(machine_config &config)
/* Cartridge slot */
generic_cartslot_device &cartslot(GENERIC_CARTSLOT(config, "cartslot", generic_linear_slot, "pv1000_cart"));
cartslot.set_must_be_loaded(true);
- cartslot.set_device_load(FUNC(pv1000_state::cart_load), this);
+ cartslot.set_device_load(FUNC(pv1000_state::cart_load));
/* Software lists */
SOFTWARE_LIST(config, "cart_list").set_original("pv1000");
diff --git a/src/mame/drivers/pv2000.cpp b/src/mame/drivers/pv2000.cpp
index 7ee58f80106..ba9f8000d10 100644
--- a/src/mame/drivers/pv2000.cpp
+++ b/src/mame/drivers/pv2000.cpp
@@ -354,7 +354,7 @@ WRITE_LINE_MEMBER( pv2000_state::pv2000_vdp_interrupt )
void pv2000_state::machine_start()
{
if (m_cart->exists())
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xc000, 0xffff, read8sm_delegate(FUNC(generic_slot_device::read_rom),(generic_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xc000, 0xffff, read8sm_delegate(*m_cart, FUNC(generic_slot_device::read_rom)));
}
void pv2000_state::machine_reset()
@@ -408,7 +408,7 @@ void pv2000_state::pv2000(machine_config &config)
m_cass->add_route(ALL_OUTPUTS, "mono", 0.05);
/* cartridge */
- GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "pv2000_cart", "bin,rom,col").set_device_load(FUNC(pv2000_state::cart_load), this);
+ GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "pv2000_cart", "bin,rom,col").set_device_load(FUNC(pv2000_state::cart_load));
/* Software lists */
SOFTWARE_LIST(config, "cart_list").set_original("pv2000");
diff --git a/src/mame/drivers/pwrview.cpp b/src/mame/drivers/pwrview.cpp
index e9e21a36aa4..e254f11f7b0 100644
--- a/src/mame/drivers/pwrview.cpp
+++ b/src/mame/drivers/pwrview.cpp
@@ -433,7 +433,7 @@ void pwrview_state::pwrview(machine_config &config)
hd6845s_device &crtc(HD6845S(config, "crtc", XTAL(64'000'000)/64)); // clock unknown
crtc.set_char_width(32); /* ? */
- crtc.set_update_row_callback(FUNC(pwrview_state::update_row), this);
+ crtc.set_update_row_callback(FUNC(pwrview_state::update_row));
ADDRESS_MAP_BANK(config, "bios_bank").set_map(&pwrview_state::bios_bank).set_options(ENDIANNESS_LITTLE, 16, 17, 0x8000);
}
diff --git a/src/mame/drivers/pyl601.cpp b/src/mame/drivers/pyl601.cpp
index 5a16c67a810..eb926ad0b5a 100644
--- a/src/mame/drivers/pyl601.cpp
+++ b/src/mame/drivers/pyl601.cpp
@@ -570,7 +570,7 @@ void pyl601_state::pyl601(machine_config &config)
crtc.set_screen("screen");
crtc.set_show_border_area(false);
crtc.set_char_width(8); /* ? */
- crtc.set_update_row_callback(FUNC(pyl601_state::pyl601_update_row), this);
+ crtc.set_update_row_callback(FUNC(pyl601_state::pyl601_update_row));
UPD765A(config, m_fdc, 8'000'000, true, true);
FLOPPY_CONNECTOR(config, "upd765:0", pyl601_floppies, "525hd", pyl601_state::floppy_formats);
@@ -589,7 +589,7 @@ void pyl601_state::pyl601a(machine_config &config)
subdevice<gfxdecode_device>("gfxdecode")->set_info(gfx_pyl601a);
- subdevice<mc6845_device>("crtc")->set_update_row_callback(FUNC(pyl601_state::pyl601a_update_row), this);
+ subdevice<mc6845_device>("crtc")->set_update_row_callback(FUNC(pyl601_state::pyl601a_update_row));
}
/* ROM definition */
diff --git a/src/mame/drivers/pzletime.cpp b/src/mame/drivers/pzletime.cpp
index 520cdfed016..ea765fc4425 100644
--- a/src/mame/drivers/pzletime.cpp
+++ b/src/mame/drivers/pzletime.cpp
@@ -108,8 +108,8 @@ TILE_GET_INFO_MEMBER(pzletime_state::get_txt_tile_info)
void pzletime_state::video_start()
{
- m_mid_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(pzletime_state::get_mid_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 64, 16);
- m_txt_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(pzletime_state::get_txt_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_mid_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(pzletime_state::get_mid_tile_info)), TILEMAP_SCAN_COLS, 16, 16, 64, 16);
+ m_txt_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(pzletime_state::get_txt_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_mid_tilemap->set_transparent_pen(0);
m_txt_tilemap->set_transparent_pen(0);
diff --git a/src/mame/drivers/qdrmfgp.cpp b/src/mame/drivers/qdrmfgp.cpp
index d9057c8ff3c..2215ac85e3b 100644
--- a/src/mame/drivers/qdrmfgp.cpp
+++ b/src/mame/drivers/qdrmfgp.cpp
@@ -551,7 +551,7 @@ void qdrmfgp_state::qdrmfgp(machine_config &config)
MCFG_VIDEO_START_OVERRIDE(qdrmfgp_state,qdrmfgp)
K056832(config, m_k056832, 0);
- m_k056832->set_tile_callback(FUNC(qdrmfgp_state::qdrmfgp_tile_callback), this);
+ m_k056832->set_tile_callback(FUNC(qdrmfgp_state::qdrmfgp_tile_callback));
m_k056832->set_config(K056832_BPP_4dj, 1, 0);
m_k056832->set_palette(m_palette);
@@ -596,7 +596,7 @@ void qdrmfgp_state::qdrmfgp2(machine_config &config)
MCFG_VIDEO_START_OVERRIDE(qdrmfgp_state,qdrmfgp2)
K056832(config, m_k056832, 0);
- m_k056832->set_tile_callback(FUNC(qdrmfgp_state::qdrmfgp2_tile_callback), this);
+ m_k056832->set_tile_callback(FUNC(qdrmfgp_state::qdrmfgp2_tile_callback));
m_k056832->set_config(K056832_BPP_4dj, 1, 0);
m_k056832->set_palette(m_palette);
diff --git a/src/mame/drivers/queen.cpp b/src/mame/drivers/queen.cpp
index a6d046fa11a..c5ab9c65244 100644
--- a/src/mame/drivers/queen.cpp
+++ b/src/mame/drivers/queen.cpp
@@ -290,10 +290,8 @@ void queen_state::queen(machine_config &config)
pcat_common(config);
pci_bus_legacy_device &pcibus(PCI_BUS_LEGACY(config, "pcibus", 0, 0));
- pcibus.set_device_read (0, FUNC(queen_state::intel82439tx_pci_r), this);
- pcibus.set_device_write(0, FUNC(queen_state::intel82439tx_pci_w), this);
- pcibus.set_device_read (7, FUNC(queen_state::intel82371ab_pci_r), this);
- pcibus.set_device_write(7, FUNC(queen_state::intel82371ab_pci_w), this);
+ pcibus.set_device(0, FUNC(queen_state::intel82439tx_pci_r), FUNC(queen_state::intel82439tx_pci_w));
+ pcibus.set_device(7, FUNC(queen_state::intel82371ab_pci_r), FUNC(queen_state::intel82371ab_pci_w));
ide_controller_device &ide(IDE_CONTROLLER(config, "ide").options(ata_devices, "hdd", nullptr, true));
ide.irq_handler().set("pic8259_2", FUNC(pic8259_device::ir6_w));
diff --git a/src/mame/drivers/quickpick5.cpp b/src/mame/drivers/quickpick5.cpp
index 5f551fd27d0..82ec34b6c85 100644
--- a/src/mame/drivers/quickpick5.cpp
+++ b/src/mame/drivers/quickpick5.cpp
@@ -197,7 +197,7 @@ void quickpick5_state::video_start()
m_gfxdecode->set_gfx(gfx_index, std::make_unique<gfx_element>(m_palette, charlayout, memregion("ttl")->base(), 0, m_palette->entries() / 16, 0));
m_ttl_gfx_index = gfx_index;
- m_ttl_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(quickpick5_state::ttl_get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_ttl_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(quickpick5_state::ttl_get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_ttl_tilemap->set_transparent_pen(0);
m_ttl_tilemap->set_scrollx(80);
m_ttl_tilemap->set_scrolly(28);
@@ -428,7 +428,7 @@ void quickpick5_state::quickpick5(machine_config &config)
K053245(config, m_k053245, 0);
m_k053245->set_palette(m_palette);
m_k053245->set_offsets(-(44+80), 20);
- m_k053245->set_sprite_callback(FUNC(quickpick5_state::sprite_callback), this);
+ m_k053245->set_sprite_callback(FUNC(quickpick5_state::sprite_callback));
GFXDECODE(config, m_gfxdecode, m_palette, gfxdecode_device::empty);
diff --git a/src/mame/drivers/quizpun2.cpp b/src/mame/drivers/quizpun2.cpp
index 7227d56d725..84dd912350e 100644
--- a/src/mame/drivers/quizpun2.cpp
+++ b/src/mame/drivers/quizpun2.cpp
@@ -216,8 +216,8 @@ WRITE8_MEMBER(quizpun2_state::scroll_w)
void quizpun2_state::video_start()
{
- m_bg_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(quizpun2_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS,16,16,0x20,0x40);
- m_fg_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(quizpun2_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS,16,16,0x20,0x40);
+ m_bg_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(quizpun2_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS,16,16,0x20,0x40);
+ m_fg_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(quizpun2_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS,16,16,0x20,0x40);
m_bg_tmap->set_transparent_pen(0);
m_fg_tmap->set_transparent_pen(0);
diff --git a/src/mame/drivers/quizshow.cpp b/src/mame/drivers/quizshow.cpp
index ca56abe0d43..334ff573035 100644
--- a/src/mame/drivers/quizshow.cpp
+++ b/src/mame/drivers/quizshow.cpp
@@ -129,7 +129,7 @@ TILE_GET_INFO_MEMBER(quizshow_state::get_tile_info)
void quizshow_state::video_start()
{
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(quizshow_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 16, 32, 16);
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(quizshow_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 16, 32, 16);
}
uint32_t quizshow_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
diff --git a/src/mame/drivers/qvt102.cpp b/src/mame/drivers/qvt102.cpp
index 56644e3c5e7..833450d2996 100644
--- a/src/mame/drivers/qvt102.cpp
+++ b/src/mame/drivers/qvt102.cpp
@@ -630,7 +630,7 @@ void qvt102_state::qvt102(machine_config &config)
m_crtc->set_screen("screen");
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(9);
- m_crtc->set_update_row_callback(FUNC(qvt102_state::crtc_update_row), this);
+ m_crtc->set_update_row_callback(FUNC(qvt102_state::crtc_update_row));
m_crtc->out_vsync_callback().set(FUNC(qvt102_state::vsync_w));
ACIA6850(config, m_acia, 0);
diff --git a/src/mame/drivers/qvt190.cpp b/src/mame/drivers/qvt190.cpp
index dff45aa5ece..0e4778308e0 100644
--- a/src/mame/drivers/qvt190.cpp
+++ b/src/mame/drivers/qvt190.cpp
@@ -135,7 +135,7 @@ void qvt190_state::qvt190(machine_config &config)
mc6845_device &crtc(MC6845(config, "crtc", 16.6698_MHz_XTAL / 9));
crtc.set_screen("screen");
crtc.set_char_width(9);
- crtc.set_update_row_callback(FUNC(qvt190_state::update_row), this);
+ crtc.set_update_row_callback(FUNC(qvt190_state::update_row));
}
ROM_START( qvt190 )
diff --git a/src/mame/drivers/qx10.cpp b/src/mame/drivers/qx10.cpp
index 3d660ecf7b8..13e91067742 100644
--- a/src/mame/drivers/qx10.cpp
+++ b/src/mame/drivers/qx10.cpp
@@ -827,7 +827,7 @@ void qx10_state::qx10(machine_config &config)
// software lists
SOFTWARE_LIST(config, "flop_list").set_original("qx10_flop");
- QUICKLOAD(config, "quickload", "com,cpm", attotime::from_seconds(3)).set_load_callback(FUNC(qx10_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "com,cpm", attotime::from_seconds(3)).set_load_callback(FUNC(qx10_state::quickload_cb));
}
/* ROM definition */
diff --git a/src/mame/drivers/r2dtank.cpp b/src/mame/drivers/r2dtank.cpp
index f0804a1f499..8860359a3fb 100644
--- a/src/mame/drivers/r2dtank.cpp
+++ b/src/mame/drivers/r2dtank.cpp
@@ -466,7 +466,7 @@ void r2dtank_state::r2dtank(machine_config &config)
crtc.set_screen("screen");
crtc.set_show_border_area(false);
crtc.set_char_width(8);
- crtc.set_update_row_callback(FUNC(r2dtank_state::crtc_update_row), this);
+ crtc.set_update_row_callback(FUNC(r2dtank_state::crtc_update_row));
crtc.out_de_callback().set("74123", FUNC(ttl74123_device::a_w));
/* 74LS123 */
diff --git a/src/mame/drivers/r2dx_v33.cpp b/src/mame/drivers/r2dx_v33.cpp
index a70701efad0..d1ec01a7755 100644
--- a/src/mame/drivers/r2dx_v33.cpp
+++ b/src/mame/drivers/r2dx_v33.cpp
@@ -483,9 +483,9 @@ void r2dx_v33_state::nzeroteam_base_map(address_map &map)
// map(0x00762, 0x00763).r(FUNC(r2dx_v33_state::nzerotea_unknown_r));
- map(0x00780, 0x0079f).lrw8("seibu_sound_rw",
- [this](offs_t offset) { return m_seibu_sound->main_r(offset >> 1); },
- [this](offs_t offset, u8 data) { m_seibu_sound->main_w(offset >> 1, data); }).umask16(0x00ff);
+ map(0x00780, 0x0079f).lrw8(
+ NAME([this] (offs_t offset) { return m_seibu_sound->main_r(offset >> 1); }),
+ NAME([this] (offs_t offset, u8 data) { m_seibu_sound->main_w(offset >> 1, data); })).umask16(0x00ff);
map(0x00800, 0x00fff).ram();
map(0x01000, 0x0bfff).ram();
diff --git a/src/mame/drivers/rabbit.cpp b/src/mame/drivers/rabbit.cpp
index ab112f18b34..2f7f1731633 100644
--- a/src/mame/drivers/rabbit.cpp
+++ b/src/mame/drivers/rabbit.cpp
@@ -426,10 +426,10 @@ void rabbit_state::video_start()
m_tilemap_ram[2] = make_unique_clear<uint32_t[]>(0x20000/4);
m_tilemap_ram[3] = make_unique_clear<uint32_t[]>(0x20000/4);
- m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(rabbit_state::get_tilemap0_tile_info),this),TILEMAP_SCAN_ROWS,16, 16, 128,32);
- m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(rabbit_state::get_tilemap1_tile_info),this),TILEMAP_SCAN_ROWS,16, 16, 128,32);
- m_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(rabbit_state::get_tilemap2_tile_info),this),TILEMAP_SCAN_ROWS,16, 16, 128,32);
- m_tilemap[3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(rabbit_state::get_tilemap3_tile_info),this),TILEMAP_SCAN_ROWS, 8, 8, 128,32);
+ m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(rabbit_state::get_tilemap0_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 128, 32);
+ m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(rabbit_state::get_tilemap1_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 128, 32);
+ m_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(rabbit_state::get_tilemap2_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 128, 32);
+ m_tilemap[3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(rabbit_state::get_tilemap3_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 128, 32);
/* the tilemaps mix 4bpp and 8bbp tiles, we split these into 2 groups, and set a different transpen for each group */
m_tilemap[0]->map_pen_to_layer(0, 15, TILEMAP_PIXEL_TRANSPARENT);
diff --git a/src/mame/drivers/radio86.cpp b/src/mame/drivers/radio86.cpp
index bd67ef4d0a7..6203769d5ab 100644
--- a/src/mame/drivers/radio86.cpp
+++ b/src/mame/drivers/radio86.cpp
@@ -476,7 +476,7 @@ void radio86_state::radio86(machine_config &config)
i8275_device &crtc(I8275(config, "i8275", XTAL(16'000'000) / 12));
crtc.set_character_width(6);
- crtc.set_display_callback(FUNC(radio86_state::display_pixels), this);
+ crtc.set_display_callback(FUNC(radio86_state::display_pixels));
crtc.drq_wr_callback().set(m_dma8257, FUNC(i8257_device::dreq2_w));
/* video hardware */
diff --git a/src/mame/drivers/raiden2.cpp b/src/mame/drivers/raiden2.cpp
index 7ce33e9323f..8e53b82694c 100644
--- a/src/mame/drivers/raiden2.cpp
+++ b/src/mame/drivers/raiden2.cpp
@@ -585,9 +585,9 @@ void raiden2_state::raiden2_mem(address_map &map)
map(0x0068e, 0x0068f).w(m_spriteram, FUNC(buffered_spriteram16_device::write));
- map(0x00700, 0x0071f).lrw8("seibu_sound_rw",
- [this](offs_t offset) { return m_seibu_sound->main_r(offset >> 1); },
- [this](offs_t offset, u8 data) { m_seibu_sound->main_w(offset >> 1, data); }).umask16(0x00ff);
+ map(0x00700, 0x0071f).lrw8(
+ NAME([this](offs_t offset) { return m_seibu_sound->main_r(offset >> 1); }),
+ NAME([this](offs_t offset, u8 data) { m_seibu_sound->main_w(offset >> 1, data); })).umask16(0x00ff);
map(0x00740, 0x00741).portr("DSW");
map(0x00744, 0x00745).portr("P1_P2");
@@ -630,9 +630,9 @@ void raiden2_state::zeroteam_mem(address_map &map)
map(0x0068e, 0x0068f).w(m_spriteram, FUNC(buffered_spriteram16_device::write));
- map(0x00700, 0x0071f).lrw8("seibu_sound_rw",
- [this](offs_t offset) { return m_seibu_sound->main_r(offset >> 1); },
- [this](offs_t offset, u8 data) { m_seibu_sound->main_w(offset >> 1, data); }).umask16(0x00ff);
+ map(0x00700, 0x0071f).lrw8(
+ NAME([this](offs_t offset) { return m_seibu_sound->main_r(offset >> 1); }),
+ NAME([this](offs_t offset, u8 data) { m_seibu_sound->main_w(offset >> 1, data); })).umask16(0x00ff);
map(0x00740, 0x00741).portr("DSW");
map(0x00744, 0x00745).portr("P1_P2");
@@ -664,9 +664,9 @@ void raiden2_state::xsedae_mem(address_map &map)
map(0x0068e, 0x0068f).w(m_spriteram, FUNC(buffered_spriteram16_device::write));
- map(0x00700, 0x0071f).lrw8("seibu_sound_rw",
- [this](offs_t offset) { return m_seibu_sound->main_r(offset >> 1); },
- [this](offs_t offset, u8 data) { m_seibu_sound->main_w(offset >> 1, data); }).umask16(0x00ff);
+ map(0x00700, 0x0071f).lrw8(
+ NAME([this](offs_t offset) { return m_seibu_sound->main_r(offset >> 1); }),
+ NAME([this](offs_t offset, u8 data) { m_seibu_sound->main_w(offset >> 1, data); })).umask16(0x00ff);
map(0x00740, 0x00741).portr("DSW");
map(0x00744, 0x00745).portr("P1_P2");
diff --git a/src/mame/drivers/rainbow.cpp b/src/mame/drivers/rainbow.cpp
index 12004e771ba..627e08732ba 100644
--- a/src/mame/drivers/rainbow.cpp
+++ b/src/mame/drivers/rainbow.cpp
@@ -1164,8 +1164,8 @@ void rainbow_state::machine_reset()
#ifdef RTC_ENABLED
// *********************************** / DS1315 'PHANTOM CLOCK' IMPLEMENTATION FOR 'DEC-100-A' ***************************************
- program.install_read_handler(RTC_BASE, RTC_BASE, read8_delegate(FUNC(rainbow_state::rtc_r), this));
- program.install_write_handler(RTC_BASE + 0xFE, RTC_BASE + 0xFF, write8_delegate(FUNC(rainbow_state::rtc_w), this));
+ program.install_read_handler(RTC_BASE, RTC_BASE, read8_delegate(*this, FUNC(rainbow_state::rtc_r)));
+ program.install_write_handler(RTC_BASE + 0xFE, RTC_BASE + 0xFF, write8_delegate(*this, FUNC(rainbow_state::rtc_w)));
// *********************************** / DS1315 'PHANTOM CLOCK' IMPLEMENTATION FOR 'DEC-100-A' ***************************************
#endif
@@ -1183,7 +1183,7 @@ void rainbow_state::machine_reset()
#ifdef RTC_ENABLED
// *********************************** / DS1315 'PHANTOM CLOCK' IMPLEMENTATION FOR 'DEC-100-B' ***************************************
// No address space needed ( -> IRQs must be disabled to block ROM accesses during reads ).
- program.install_read_handler(RTC_BASE, RTC_BASE + 0x2104, read8_delegate(FUNC(rainbow_state::rtc_r), this));
+ program.install_read_handler(RTC_BASE, RTC_BASE + 0x2104, read8_delegate(*this, FUNC(rainbow_state::rtc_r)));
// *********************************** / DS1315 'PHANTOM CLOCK' IMPLEMENTATION FOR 'DEC-100-B' ***************************************
#endif
#endif
@@ -1206,8 +1206,8 @@ void rainbow_state::machine_reset()
{
// Install 8088 read / write handler
io.unmap_readwrite(0x60, 0x60);
- io.install_read_handler(0x60, 0x60, read8_delegate(FUNC(rainbow_state::hd_status_60_r), this));
- io.install_write_handler(0x60, 0x60, write8_delegate(FUNC(rainbow_state::hd_status_60_w), this));
+ io.install_read_handler(0x60, 0x60, read8_delegate(*this, FUNC(rainbow_state::hd_status_60_r)));
+ io.install_write_handler(0x60, 0x60, write8_delegate(*this, FUNC(rainbow_state::hd_status_60_w)));
hdc_reset();
m_hdc_drive_ready = true;
@@ -2756,7 +2756,7 @@ WRITE8_MEMBER(rainbow_state::diagnostic_w) // 8088 (port 0A WRITTEN). Fig.4-28 +
// Install 8088 read / write handler once loopback test is over
if ( !(data & 32) && (m_diagnostic & 32) )
{
- io.install_readwrite_handler(0x40, 0x43, read8sm_delegate(FUNC(upd7201_new_device::cd_ba_r), &*m_mpsc), write8sm_delegate(FUNC(upd7201_new_device::cd_ba_w), &*m_mpsc));
+ io.install_readwrite_handler(0x40, 0x43, read8sm_delegate(*m_mpsc, FUNC(upd7201_new_device::cd_ba_r)), write8sm_delegate(*m_mpsc, FUNC(upd7201_new_device::cd_ba_w)));
logerror("\n **** COMM HANDLER INSTALLED **** ");
//popmessage("Autoboot from drive %c", m_p_nvram[0xab] ? (64 + m_p_nvram[0xab]) : 0x3F );
}
diff --git a/src/mame/drivers/rastan.cpp b/src/mame/drivers/rastan.cpp
index dc9d741188c..355e9235aec 100644
--- a/src/mame/drivers/rastan.cpp
+++ b/src/mame/drivers/rastan.cpp
@@ -370,7 +370,7 @@ void rastan_state::rastan(machine_config &config)
PC090OJ(config, m_pc090oj, 0);
m_pc090oj->set_palette("palette");
- m_pc090oj->set_colpri_callback(FUNC(rastan_state::rastan_colpri_cb), this);
+ m_pc090oj->set_colpri_callback(FUNC(rastan_state::rastan_colpri_cb));
/* sound hardware */
SPEAKER(config, "mono").front_center();
diff --git a/src/mame/drivers/rastersp.cpp b/src/mame/drivers/rastersp.cpp
index 6e4fd1fd0ab..5cafb2b16ef 100644
--- a/src/mame/drivers/rastersp.cpp
+++ b/src/mame/drivers/rastersp.cpp
@@ -186,8 +186,8 @@ void rastersp_state::machine_start()
m_tms_tx_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(rastersp_state::tms_tx_timer), this));
#if USE_SPEEDUP_HACK
- m_dsp->space(AS_PROGRAM).install_read_handler(0x809923, 0x809923, read32_delegate(FUNC(rastersp_state::dsp_speedup_r), this));
- m_dsp->space(AS_PROGRAM).install_write_handler(0x809923, 0x809923, write32_delegate(FUNC(rastersp_state::dsp_speedup_w), this));
+ m_dsp->space(AS_PROGRAM).install_read_handler(0x809923, 0x809923, read32_delegate(*this, FUNC(rastersp_state::dsp_speedup_r)));
+ m_dsp->space(AS_PROGRAM).install_write_handler(0x809923, 0x809923, write32_delegate(*this, FUNC(rastersp_state::dsp_speedup_w)));
#endif
}
diff --git a/src/mame/drivers/ravens.cpp b/src/mame/drivers/ravens.cpp
index 5bd97c2a571..35ee278499e 100644
--- a/src/mame/drivers/ravens.cpp
+++ b/src/mame/drivers/ravens.cpp
@@ -350,7 +350,7 @@ void ravens_state::ravens(machine_config &config)
config.set_default_layout(layout_ravens);
/* quickload */
- QUICKLOAD(config, "quickload", "pgm", attotime::from_seconds(1)).set_load_callback(FUNC(ravens_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "pgm", attotime::from_seconds(1)).set_load_callback(FUNC(ravens_state::quickload_cb));
SPEAKER(config, "mono").front_center();
@@ -375,7 +375,7 @@ void ravens_state::ravens2(machine_config &config)
m_terminal->set_keyboard_callback(FUNC(ravens_state::kbd_put));
/* quickload */
- QUICKLOAD(config, "quickload", "pgm", attotime::from_seconds(1)).set_load_callback(FUNC(ravens_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "pgm", attotime::from_seconds(1)).set_load_callback(FUNC(ravens_state::quickload_cb));
SPEAKER(config, "mono").front_center();
diff --git a/src/mame/drivers/rbisland.cpp b/src/mame/drivers/rbisland.cpp
index c4827687fb9..7a2610b476a 100644
--- a/src/mame/drivers/rbisland.cpp
+++ b/src/mame/drivers/rbisland.cpp
@@ -668,7 +668,7 @@ void rbisland_state::rbisland(machine_config &config)
PC090OJ(config, m_pc090oj, 0);
m_pc090oj->set_palette(m_palette);
- m_pc090oj->set_colpri_callback(FUNC(rbisland_state::rbisland_colpri_cb), this);
+ m_pc090oj->set_colpri_callback(FUNC(rbisland_state::rbisland_colpri_cb));
/* sound hardware */
SPEAKER(config, "mono").front_center();
diff --git a/src/mame/drivers/rc702.cpp b/src/mame/drivers/rc702.cpp
index 65f9ea41210..26a62d7bf71 100644
--- a/src/mame/drivers/rc702.cpp
+++ b/src/mame/drivers/rc702.cpp
@@ -121,7 +121,7 @@ void rc702_state::rc702_io(address_map &map)
map(0x0c, 0x0f).rw(m_ctc1, FUNC(z80ctc_device::read), FUNC(z80ctc_device::write));
map(0x10, 0x13).rw(m_pio, FUNC(z80pio_device::read), FUNC(z80pio_device::write));
map(0x14, 0x17).portr("DSW").w(FUNC(rc702_state::port14_w)); // motors
- map(0x18, 0x1b).lw8("banking",[this](u8 data){membank("bankr0")->set_entry(1);}); // replace roms with ram
+ map(0x18, 0x1b).lw8(NAME([this] (u8 data) { membank("bankr0")->set_entry(1); })); // replace roms with ram
map(0x1c, 0x1f).w(FUNC(rc702_state::port1c_w)); // sound
map(0xf0, 0xff).rw(m_dma, FUNC(am9517a_device::read), FUNC(am9517a_device::write));
}
@@ -387,7 +387,7 @@ void rc702_state::rc702(machine_config &config)
i8275_device &crtc(I8275(config, "crtc", 11640000/7));
crtc.set_character_width(7);
- crtc.set_display_callback(FUNC(rc702_state::display_pixels), this);
+ crtc.set_display_callback(FUNC(rc702_state::display_pixels));
crtc.irq_wr_callback().set(m_7474, FUNC(ttl7474_device::clear_w)).invert();
crtc.irq_wr_callback().append(m_ctc1, FUNC(z80ctc_device::trg2));
crtc.drq_wr_callback().set(FUNC(rc702_state::crtc_drq_w));
diff --git a/src/mame/drivers/rd100.cpp b/src/mame/drivers/rd100.cpp
index c9ece638430..d5d83d4dd05 100644
--- a/src/mame/drivers/rd100.cpp
+++ b/src/mame/drivers/rd100.cpp
@@ -219,7 +219,7 @@ void rd100_state::rd100(machine_config &config)
hd44780_device &hd44780(HD44780(config, "hd44780"));
hd44780.set_lcd_size(2, 16);
- hd44780.set_pixel_update_cb(FUNC(rd100_state::pixel_update), this);
+ hd44780.set_pixel_update_cb(FUNC(rd100_state::pixel_update));
PALETTE(config, "palette").set_entries(2);
diff --git a/src/mame/drivers/rex6000.cpp b/src/mame/drivers/rex6000.cpp
index 1a0eb1f5a8e..d79a7350650 100644
--- a/src/mame/drivers/rex6000.cpp
+++ b/src/mame/drivers/rex6000.cpp
@@ -935,7 +935,7 @@ void rex6000_state::rex6000(machine_config &config)
serport.cts_handler().set(m_uart, FUNC(ins8250_uart_device::cts_w));
/* quickload */
- QUICKLOAD(config, "quickload", "rex,ds2").set_load_callback(FUNC(rex6000_state::quickload_rex6000), this);
+ QUICKLOAD(config, "quickload", "rex,ds2").set_load_callback(FUNC(rex6000_state::quickload_rex6000));
tc8521_device &rtc(TC8521(config, TC8521_TAG, XTAL(32'768)));
rtc.out_alarm_callback().set(FUNC(rex6000_state::alarm_irq));
@@ -999,7 +999,7 @@ void oz750_state::oz750(machine_config &config)
ADDRESS_MAP_BANK(config, "bank1").set_map(&oz750_state::oz750_banked_map).set_options(ENDIANNESS_LITTLE, 8, 32, 0x2000);
/* quickload */
- QUICKLOAD(config, "quickload", "wzd").set_load_callback(FUNC(oz750_state::quickload_oz750), this);
+ QUICKLOAD(config, "quickload", "wzd").set_load_callback(FUNC(oz750_state::quickload_oz750));
tc8521_device &rtc(TC8521(config, TC8521_TAG, XTAL(32'768)));
rtc.out_alarm_callback().set(FUNC(rex6000_state::alarm_irq));
diff --git a/src/mame/drivers/rmhaihai.cpp b/src/mame/drivers/rmhaihai.cpp
index 46558a70a50..7d3a612bc7b 100644
--- a/src/mame/drivers/rmhaihai.cpp
+++ b/src/mame/drivers/rmhaihai.cpp
@@ -132,7 +132,7 @@ TILE_GET_INFO_MEMBER(rmhaihai_state::get_bg_tile_info)
void rmhaihai_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(rmhaihai_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS,
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(rmhaihai_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS,
8, 8, 64, 32);
save_item(NAME(m_keyboard_cmd));
diff --git a/src/mame/drivers/rockrage.cpp b/src/mame/drivers/rockrage.cpp
index 4d28a96862c..362ac8cc2df 100644
--- a/src/mame/drivers/rockrage.cpp
+++ b/src/mame/drivers/rockrage.cpp
@@ -271,12 +271,12 @@ void rockrage_state::rockrage(machine_config &config)
K007342(config, m_k007342, 0);
m_k007342->set_gfxnum(0);
- m_k007342->set_tile_callback(FUNC(rockrage_state::rockrage_tile_callback), this);
+ m_k007342->set_tile_callback(FUNC(rockrage_state::rockrage_tile_callback));
m_k007342->set_gfxdecode_tag(m_gfxdecode);
K007420(config, m_k007420, 0);
m_k007420->set_bank_limit(0x3ff);
- m_k007420->set_sprite_callback(FUNC(rockrage_state::rockrage_sprite_callback), this);
+ m_k007420->set_sprite_callback(FUNC(rockrage_state::rockrage_sprite_callback));
m_k007420->set_palette_tag(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_rockrage);
diff --git a/src/mame/drivers/rohga.cpp b/src/mame/drivers/rohga.cpp
index 6f3b582d725..937919ba648 100644
--- a/src/mame/drivers/rohga.cpp
+++ b/src/mame/drivers/rohga.cpp
@@ -899,8 +899,8 @@ void rohga_state::rohga(machine_config &config)
m_deco_tilegen[0]->set_pf2_col_bank(0x10);
m_deco_tilegen[0]->set_pf1_col_mask(0x0f);
m_deco_tilegen[0]->set_pf2_col_mask(0x0f);
- m_deco_tilegen[0]->set_bank1_callback(FUNC(rohga_state::bank_callback), this);
- m_deco_tilegen[0]->set_bank2_callback(FUNC(rohga_state::bank_callback), this);
+ m_deco_tilegen[0]->set_bank1_callback(FUNC(rohga_state::bank_callback));
+ m_deco_tilegen[0]->set_bank2_callback(FUNC(rohga_state::bank_callback));
m_deco_tilegen[0]->set_pf12_8x8_bank(0);
m_deco_tilegen[0]->set_pf12_16x16_bank(1);
m_deco_tilegen[0]->set_gfxdecode_tag("gfxdecode");
@@ -914,15 +914,15 @@ void rohga_state::rohga(machine_config &config)
m_deco_tilegen[1]->set_pf2_col_bank(0x10);
m_deco_tilegen[1]->set_pf1_col_mask(0x0f);
m_deco_tilegen[1]->set_pf2_col_mask(0x0f);
- m_deco_tilegen[1]->set_bank1_callback(FUNC(rohga_state::bank_callback), this);
- m_deco_tilegen[1]->set_bank2_callback(FUNC(rohga_state::bank_callback), this);
+ m_deco_tilegen[1]->set_bank1_callback(FUNC(rohga_state::bank_callback));
+ m_deco_tilegen[1]->set_bank2_callback(FUNC(rohga_state::bank_callback));
m_deco_tilegen[1]->set_pf12_8x8_bank(0);
m_deco_tilegen[1]->set_pf12_16x16_bank(2);
m_deco_tilegen[1]->set_gfxdecode_tag("gfxdecode");
DECO_SPRITE(config, m_sprgen[0], 0);
- m_sprgen[0]->set_pri_callback(FUNC(rohga_state::rohga_pri_callback), this);
- m_sprgen[0]->set_col_callback(FUNC(rohga_state::rohga_col_callback), this);
+ m_sprgen[0]->set_pri_callback(FUNC(rohga_state::rohga_pri_callback));
+ m_sprgen[0]->set_col_callback(FUNC(rohga_state::rohga_col_callback));
m_sprgen[0]->set_gfx_region(3);
m_sprgen[0]->set_gfxdecode_tag("gfxdecode");
@@ -989,8 +989,8 @@ void rohga_state::wizdfire(machine_config &config)
m_deco_tilegen[0]->set_pf2_col_bank(0x10);
m_deco_tilegen[0]->set_pf1_col_mask(0x0f);
m_deco_tilegen[0]->set_pf2_col_mask(0x0f);
- m_deco_tilegen[0]->set_bank1_callback(FUNC(rohga_state::bank_callback), this);
- m_deco_tilegen[0]->set_bank2_callback(FUNC(rohga_state::bank_callback), this);
+ m_deco_tilegen[0]->set_bank1_callback(FUNC(rohga_state::bank_callback));
+ m_deco_tilegen[0]->set_bank2_callback(FUNC(rohga_state::bank_callback));
m_deco_tilegen[0]->set_pf12_8x8_bank(0);
m_deco_tilegen[0]->set_pf12_16x16_bank(1);
m_deco_tilegen[0]->set_gfxdecode_tag("gfxdecode");
@@ -1004,8 +1004,8 @@ void rohga_state::wizdfire(machine_config &config)
m_deco_tilegen[1]->set_pf2_col_bank(0x10);
m_deco_tilegen[1]->set_pf1_col_mask(0x0f);
m_deco_tilegen[1]->set_pf2_col_mask(0x0f);
- m_deco_tilegen[1]->set_bank1_callback(FUNC(rohga_state::bank_callback), this);
- m_deco_tilegen[1]->set_bank2_callback(FUNC(rohga_state::bank_callback), this);
+ m_deco_tilegen[1]->set_bank1_callback(FUNC(rohga_state::bank_callback));
+ m_deco_tilegen[1]->set_bank2_callback(FUNC(rohga_state::bank_callback));
m_deco_tilegen[1]->set_pf12_8x8_bank(0);
m_deco_tilegen[1]->set_pf12_16x16_bank(2);
m_deco_tilegen[1]->set_gfxdecode_tag("gfxdecode");
@@ -1084,8 +1084,8 @@ void rohga_state::nitrobal(machine_config &config)
m_deco_tilegen[0]->set_pf2_col_bank(0x10);
m_deco_tilegen[0]->set_pf1_col_mask(0x0f);
m_deco_tilegen[0]->set_pf2_col_mask(0x0f);
- m_deco_tilegen[0]->set_bank1_callback(FUNC(rohga_state::bank_callback), this);
- m_deco_tilegen[0]->set_bank2_callback(FUNC(rohga_state::bank_callback), this);
+ m_deco_tilegen[0]->set_bank1_callback(FUNC(rohga_state::bank_callback));
+ m_deco_tilegen[0]->set_bank2_callback(FUNC(rohga_state::bank_callback));
m_deco_tilegen[0]->set_pf12_8x8_bank(0);
m_deco_tilegen[0]->set_pf12_16x16_bank(1);
m_deco_tilegen[0]->set_gfxdecode_tag("gfxdecode");
@@ -1099,8 +1099,8 @@ void rohga_state::nitrobal(machine_config &config)
m_deco_tilegen[1]->set_pf2_col_bank(0);
m_deco_tilegen[1]->set_pf1_col_mask(0);
m_deco_tilegen[1]->set_pf2_col_mask(0);
- m_deco_tilegen[1]->set_bank1_callback(FUNC(rohga_state::bank_callback), this);
- m_deco_tilegen[1]->set_bank2_callback(FUNC(rohga_state::bank_callback), this);
+ m_deco_tilegen[1]->set_bank1_callback(FUNC(rohga_state::bank_callback));
+ m_deco_tilegen[1]->set_bank2_callback(FUNC(rohga_state::bank_callback));
m_deco_tilegen[1]->set_pf12_8x8_bank(0);
m_deco_tilegen[1]->set_pf12_16x16_bank(2);
m_deco_tilegen[1]->set_gfxdecode_tag("gfxdecode");
@@ -1180,8 +1180,8 @@ void rohga_state::schmeisr(machine_config &config)
m_deco_tilegen[0]->set_pf2_col_bank(0x10);
m_deco_tilegen[0]->set_pf1_col_mask(0x0f);
m_deco_tilegen[0]->set_pf2_col_mask(0x0f);
- m_deco_tilegen[0]->set_bank1_callback(FUNC(rohga_state::bank_callback), this);
- m_deco_tilegen[0]->set_bank2_callback(FUNC(rohga_state::bank_callback), this);
+ m_deco_tilegen[0]->set_bank1_callback(FUNC(rohga_state::bank_callback));
+ m_deco_tilegen[0]->set_bank2_callback(FUNC(rohga_state::bank_callback));
m_deco_tilegen[0]->set_pf12_8x8_bank(0);
m_deco_tilegen[0]->set_pf12_16x16_bank(1);
m_deco_tilegen[0]->set_gfxdecode_tag("gfxdecode");
@@ -1195,15 +1195,15 @@ void rohga_state::schmeisr(machine_config &config)
m_deco_tilegen[1]->set_pf2_col_bank(0x10);
m_deco_tilegen[1]->set_pf1_col_mask(0x0f);
m_deco_tilegen[1]->set_pf2_col_mask(0x0f);
- m_deco_tilegen[1]->set_bank1_callback(FUNC(rohga_state::bank_callback), this);
- m_deco_tilegen[1]->set_bank2_callback(FUNC(rohga_state::bank_callback), this);
+ m_deco_tilegen[1]->set_bank1_callback(FUNC(rohga_state::bank_callback));
+ m_deco_tilegen[1]->set_bank2_callback(FUNC(rohga_state::bank_callback));
m_deco_tilegen[1]->set_pf12_8x8_bank(0);
m_deco_tilegen[1]->set_pf12_16x16_bank(2);
m_deco_tilegen[1]->set_gfxdecode_tag("gfxdecode");
DECO_SPRITE(config, m_sprgen[0], 0);
- m_sprgen[0]->set_pri_callback(FUNC(rohga_state::rohga_pri_callback), this);
- m_sprgen[0]->set_col_callback(FUNC(rohga_state::schmeisr_col_callback), this); // wire mods on pcb...
+ m_sprgen[0]->set_pri_callback(FUNC(rohga_state::rohga_pri_callback));
+ m_sprgen[0]->set_col_callback(FUNC(rohga_state::schmeisr_col_callback)); // wire mods on pcb...
m_sprgen[0]->set_gfx_region(3);
m_sprgen[0]->set_gfxdecode_tag("gfxdecode");
diff --git a/src/mame/drivers/rollerg.cpp b/src/mame/drivers/rollerg.cpp
index b6aefa297eb..1c60e6bb5ea 100644
--- a/src/mame/drivers/rollerg.cpp
+++ b/src/mame/drivers/rollerg.cpp
@@ -270,12 +270,12 @@ void rollerg_state::rollerg(machine_config &config)
K053244(config, m_k053244, 0);
m_k053244->set_palette("palette");
m_k053244->set_offsets(-3, -1);
- m_k053244->set_sprite_callback(FUNC(rollerg_state::sprite_callback), this);
+ m_k053244->set_sprite_callback(FUNC(rollerg_state::sprite_callback));
K051316(config, m_k051316, 0);
m_k051316->set_palette("palette");
m_k051316->set_offsets(22, 1);
- m_k051316->set_zoom_callback(FUNC(rollerg_state::zoom_callback), this);
+ m_k051316->set_zoom_callback(FUNC(rollerg_state::zoom_callback));
K053252(config, m_k053252, 3000000*2);
m_k053252->int1_ack().set(FUNC(rollerg_state::rollerg_irq_ack_w));
diff --git a/src/mame/drivers/rollext.cpp b/src/mame/drivers/rollext.cpp
index 8a5af16a441..ae604a52d6e 100644
--- a/src/mame/drivers/rollext.cpp
+++ b/src/mame/drivers/rollext.cpp
@@ -572,7 +572,7 @@ INTERRUPT_GEN_MEMBER(rollext_state::vblank_interrupt)
void rollext_state::init_rollext()
{
- m_maincpu->set_command_callback(write32_delegate(FUNC(rollext_state::cmd_callback),this));
+ m_maincpu->set_command_callback(*this, FUNC(rollext_state::cmd_callback));
}
diff --git a/src/mame/drivers/ron.cpp b/src/mame/drivers/ron.cpp
index 7b8a5294888..f1a012750bb 100644
--- a/src/mame/drivers/ron.cpp
+++ b/src/mame/drivers/ron.cpp
@@ -496,7 +496,7 @@ void ron_state::ron(machine_config &config)
I8035(config, m_audiocpu, SOUND_CLOCK);
m_audiocpu->set_addrmap(AS_PROGRAM, &ron_state::ron_audio_map);
m_audiocpu->set_addrmap(AS_IO, &ron_state::ron_audio_io);
- m_audiocpu->set_t0_clk_cb("aysnd", FUNC(device_t::set_unscaled_clock));
+ m_audiocpu->set_t0_clk_cb("aysnd", FUNC(device_t::set_unscaled_clock_int));
m_audiocpu->p2_in_cb().set(FUNC(ron_state::audio_cmd_r));
m_audiocpu->p1_out_cb().set(FUNC(ron_state::audio_p1_w));
m_audiocpu->p2_out_cb().set(FUNC(ron_state::audio_p2_w));
diff --git a/src/mame/drivers/rt1715.cpp b/src/mame/drivers/rt1715.cpp
index 26c2257ff58..fef76862797 100644
--- a/src/mame/drivers/rt1715.cpp
+++ b/src/mame/drivers/rt1715.cpp
@@ -602,7 +602,7 @@ void rt1715_state::rt1715(machine_config &config)
I8275(config, m_crtc, 13.824_MHz_XTAL / 8);
m_crtc->set_character_width(8);
- m_crtc->set_display_callback(FUNC(rt1715_state::crtc_display_pixels), this);
+ m_crtc->set_display_callback(FUNC(rt1715_state::crtc_display_pixels));
m_crtc->set_screen(m_screen);
/* keyboard */
diff --git a/src/mame/drivers/rungun.cpp b/src/mame/drivers/rungun.cpp
index 525bea32edf..fc07c720cb7 100644
--- a/src/mame/drivers/rungun.cpp
+++ b/src/mame/drivers/rungun.cpp
@@ -422,7 +422,7 @@ void rungun_state::rng(machine_config &config)
m_k053936->set_offsets(34, 9);
K055673(config, m_k055673, 0);
- m_k055673->set_sprite_callback(FUNC(rungun_state::sprite_callback), this);
+ m_k055673->set_sprite_callback(FUNC(rungun_state::sprite_callback));
m_k055673->set_config(K055673_LAYOUT_RNG, -8, -15);
m_k055673->set_palette(m_palette);
m_k055673->set_screen(m_screen);
diff --git a/src/mame/drivers/rx78.cpp b/src/mame/drivers/rx78.cpp
index 51c433cab2c..fc65fe855e0 100644
--- a/src/mame/drivers/rx78.cpp
+++ b/src/mame/drivers/rx78.cpp
@@ -431,7 +431,7 @@ void rx78_state::machine_reset()
{
address_space &prg = m_maincpu->space(AS_PROGRAM);
if (m_cart->exists())
- prg.install_read_handler(0x2000, 0x5fff, read8sm_delegate(FUNC(generic_slot_device::read_rom),(generic_slot_device*)m_cart));
+ prg.install_read_handler(0x2000, 0x5fff, read8sm_delegate(*m_cart, FUNC(generic_slot_device::read_rom)));
}
DEVICE_IMAGE_LOAD_MEMBER( rx78_state::cart_load )
@@ -491,7 +491,7 @@ void rx78_state::rx78(machine_config &config)
PALETTE(config, m_palette).set_entries(16+1); //+1 for the background color
GFXDECODE(config, "gfxdecode", m_palette, gfx_rx78);
- GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "rx78_cart", "bin,rom").set_device_load(FUNC(rx78_state::cart_load), this);
+ GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "rx78_cart", "bin,rom").set_device_load(FUNC(rx78_state::cart_load));
RAM(config, RAM_TAG).set_default_size("32K").set_extra_options("16K");
diff --git a/src/mame/drivers/rz1.cpp b/src/mame/drivers/rz1.cpp
index 6b92833fb52..7dc22f683ba 100644
--- a/src/mame/drivers/rz1.cpp
+++ b/src/mame/drivers/rz1.cpp
@@ -369,7 +369,7 @@ void rz1_state::rz1(machine_config &config)
HD44780(config, m_hd44780, 0);
m_hd44780->set_lcd_size(1, 16);
- m_hd44780->set_pixel_update_cb(FUNC(rz1_state::lcd_pixel_update), this);
+ m_hd44780->set_pixel_update_cb(FUNC(rz1_state::lcd_pixel_update));
config.set_default_layout(layout_rz1);
diff --git a/src/mame/drivers/safarir.cpp b/src/mame/drivers/safarir.cpp
index f7c6b9c0904..4d3a199fa41 100644
--- a/src/mame/drivers/safarir.cpp
+++ b/src/mame/drivers/safarir.cpp
@@ -207,8 +207,8 @@ TILE_GET_INFO_MEMBER(safarir_state::get_fg_tile_info)
void safarir_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(safarir_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(safarir_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(safarir_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(safarir_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(0);
}
diff --git a/src/mame/drivers/sage2.cpp b/src/mame/drivers/sage2.cpp
index 3b703af5967..358d7fc1d3d 100644
--- a/src/mame/drivers/sage2.cpp
+++ b/src/mame/drivers/sage2.cpp
@@ -387,7 +387,7 @@ void sage2_state::machine_reset()
address_space &program = m_maincpu->space(AS_PROGRAM);
program.unmap_readwrite(0x000000, 0x07ffff);
program.install_rom(0x000000, 0x001fff, 0x07e000, m_rom->base());
- program.install_read_handler(0xfe0000, 0xfe3fff, read16_delegate(FUNC(sage2_state::rom_r), this));
+ program.install_read_handler(0xfe0000, 0xfe3fff, read16_delegate(*this, FUNC(sage2_state::rom_r)));
}
READ16_MEMBER(sage2_state::rom_r)
diff --git a/src/mame/drivers/saitek_corona.cpp b/src/mame/drivers/saitek_corona.cpp
index 6eea4fdba10..48fd6bbdb3a 100644
--- a/src/mame/drivers/saitek_corona.cpp
+++ b/src/mame/drivers/saitek_corona.cpp
@@ -293,7 +293,7 @@ void corona_state::corona(machine_config &config)
/* extension rom */
GENERIC_CARTSLOT(config, m_extrom, generic_plain_slot, "saitek_egr", "bin");
- m_extrom->set_device_load(FUNC(corona_state::extrom_load), this);
+ m_extrom->set_device_load(FUNC(corona_state::extrom_load));
SOFTWARE_LIST(config, "cart_list").set_original("saitek_egr");
}
diff --git a/src/mame/drivers/saitek_stratos.cpp b/src/mame/drivers/saitek_stratos.cpp
index 786b4482183..e0f757e3292 100644
--- a/src/mame/drivers/saitek_stratos.cpp
+++ b/src/mame/drivers/saitek_stratos.cpp
@@ -513,7 +513,7 @@ void stratos_state::stratos(machine_config &config)
/* extension rom */
GENERIC_CARTSLOT(config, m_extrom, generic_plain_slot, "saitek_egr", "bin");
- m_extrom->set_device_load(FUNC(stratos_state::extrom_load), this);
+ m_extrom->set_device_load(FUNC(stratos_state::extrom_load));
SOFTWARE_LIST(config, "cart_list").set_original("saitek_egr");
}
diff --git a/src/mame/drivers/saitek_superstar.cpp b/src/mame/drivers/saitek_superstar.cpp
index 491b2bee8f0..29921bbfad7 100644
--- a/src/mame/drivers/saitek_superstar.cpp
+++ b/src/mame/drivers/saitek_superstar.cpp
@@ -243,7 +243,7 @@ void star_state::tstar432(machine_config &config)
/* extension rom */
GENERIC_CARTSLOT(config, m_extrom, generic_plain_slot, "saitek_kso", "bin");
- m_extrom->set_device_load(FUNC(star_state::extrom_load), this);
+ m_extrom->set_device_load(FUNC(star_state::extrom_load));
SOFTWARE_LIST(config, "cart_list").set_original("saitek_kso");
}
diff --git a/src/mame/drivers/sangho.cpp b/src/mame/drivers/sangho.cpp
index 91c55bbcd8a..705ecf3c02e 100644
--- a/src/mame/drivers/sangho.cpp
+++ b/src/mame/drivers/sangho.cpp
@@ -221,7 +221,7 @@ void pzlestar_state::pzlestar_map_banks()
break;
}
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xffff, 0xffff, read8_delegate(FUNC(pzlestar_state::sec_slot_r),this), write8_delegate(FUNC(pzlestar_state::sec_slot_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xffff, 0xffff, read8_delegate(*this, FUNC(pzlestar_state::sec_slot_r)), write8_delegate(*this, FUNC(pzlestar_state::sec_slot_w)));
}
WRITE8_MEMBER(pzlestar_state::pzlestar_bank_w)
diff --git a/src/mame/drivers/sanremo.cpp b/src/mame/drivers/sanremo.cpp
index 9f5cd7f919d..91c46478352 100644
--- a/src/mame/drivers/sanremo.cpp
+++ b/src/mame/drivers/sanremo.cpp
@@ -169,7 +169,7 @@ TILE_GET_INFO_MEMBER(sanremo_state::get_tile_info)
void sanremo_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sanremo_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 48, 40);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sanremo_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 48, 40);
m_lamps.resolve();
diff --git a/src/mame/drivers/sapi1.cpp b/src/mame/drivers/sapi1.cpp
index 67865dabc03..b1cd1733f1f 100644
--- a/src/mame/drivers/sapi1.cpp
+++ b/src/mame/drivers/sapi1.cpp
@@ -846,7 +846,7 @@ void sapi_state::sapi3b(machine_config &config)
crtc.set_screen("screen");
crtc.set_show_border_area(false);
crtc.set_char_width(6);
- crtc.set_update_row_callback(FUNC(sapi_state::crtc_update_row), this);
+ crtc.set_update_row_callback(FUNC(sapi_state::crtc_update_row));
subdevice<screen_device>("screen")->set_screen_update("crtc", FUNC(mc6845_device::screen_update));
subdevice<screen_device>("screen")->set_no_palette();
diff --git a/src/mame/drivers/saturn.cpp b/src/mame/drivers/saturn.cpp
index e6f6cf5209f..b81750ea784 100644
--- a/src/mame/drivers/saturn.cpp
+++ b/src/mame/drivers/saturn.cpp
@@ -606,8 +606,8 @@ void sat_console_state::nvram_init(nvram_device &nvram, void *data, size_t size)
MACHINE_START_MEMBER(sat_console_state, saturn)
{
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x02400000, 0x027fffff, read32_delegate(FUNC(sat_console_state::saturn_null_ram_r),this), write32_delegate(FUNC(sat_console_state::saturn_null_ram_w),this));
- m_slave->space(AS_PROGRAM).install_readwrite_handler(0x02400000, 0x027fffff, read32_delegate(FUNC(sat_console_state::saturn_null_ram_r),this), write32_delegate(FUNC(sat_console_state::saturn_null_ram_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x02400000, 0x027fffff, read32_delegate(*this, FUNC(sat_console_state::saturn_null_ram_r)), write32_delegate(*this, FUNC(sat_console_state::saturn_null_ram_w)));
+ m_slave->space(AS_PROGRAM).install_readwrite_handler(0x02400000, 0x027fffff, read32_delegate(*this, FUNC(sat_console_state::saturn_null_ram_r)), write32_delegate(*this, FUNC(sat_console_state::saturn_null_ram_w)));
m_maincpu->space(AS_PROGRAM).nop_readwrite(0x04000000, 0x047fffff);
m_slave->space(AS_PROGRAM).nop_readwrite(0x04000000, 0x047fffff);
@@ -622,39 +622,39 @@ MACHINE_START_MEMBER(sat_console_state, saturn)
case 0x22:
case 0x23:
case 0x24:
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x04000000, 0x047fffff, read32_delegate(FUNC(sat_cart_slot_device::read_ext_bram), (sat_cart_slot_device*)m_exp));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x04000000, 0x047fffff, write32_delegate(FUNC(sat_cart_slot_device::write_ext_bram), (sat_cart_slot_device*)m_exp));
- m_slave->space(AS_PROGRAM).install_read_handler(0x04000000, 0x047fffff, read32_delegate(FUNC(sat_cart_slot_device::read_ext_bram), (sat_cart_slot_device*)m_exp));
- m_slave->space(AS_PROGRAM).install_write_handler(0x04000000, 0x047fffff, write32_delegate(FUNC(sat_cart_slot_device::write_ext_bram), (sat_cart_slot_device*)m_exp));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x24000000, 0x247fffff, read32_delegate(FUNC(sat_cart_slot_device::read_ext_bram), (sat_cart_slot_device*)m_exp));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x24000000, 0x247fffff, write32_delegate(FUNC(sat_cart_slot_device::write_ext_bram), (sat_cart_slot_device*)m_exp));
- m_slave->space(AS_PROGRAM).install_read_handler(0x24000000, 0x247fffff, read32_delegate(FUNC(sat_cart_slot_device::read_ext_bram), (sat_cart_slot_device*)m_exp));
- m_slave->space(AS_PROGRAM).install_write_handler(0x24000000, 0x247fffff, write32_delegate(FUNC(sat_cart_slot_device::write_ext_bram), (sat_cart_slot_device*)m_exp));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x04000000, 0x047fffff, read32_delegate(*m_exp, FUNC(sat_cart_slot_device::read_ext_bram)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x04000000, 0x047fffff, write32_delegate(*m_exp, FUNC(sat_cart_slot_device::write_ext_bram)));
+ m_slave->space(AS_PROGRAM).install_read_handler(0x04000000, 0x047fffff, read32_delegate(*m_exp, FUNC(sat_cart_slot_device::read_ext_bram)));
+ m_slave->space(AS_PROGRAM).install_write_handler(0x04000000, 0x047fffff, write32_delegate(*m_exp, FUNC(sat_cart_slot_device::write_ext_bram)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x24000000, 0x247fffff, read32_delegate(*m_exp, FUNC(sat_cart_slot_device::read_ext_bram)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x24000000, 0x247fffff, write32_delegate(*m_exp, FUNC(sat_cart_slot_device::write_ext_bram)));
+ m_slave->space(AS_PROGRAM).install_read_handler(0x24000000, 0x247fffff, read32_delegate(*m_exp, FUNC(sat_cart_slot_device::read_ext_bram)));
+ m_slave->space(AS_PROGRAM).install_write_handler(0x24000000, 0x247fffff, write32_delegate(*m_exp, FUNC(sat_cart_slot_device::write_ext_bram)));
break;
case 0x5a: // Data RAM cart
case 0x5c:
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x02400000, 0x025fffff, read32_delegate(FUNC(sat_cart_slot_device::read_ext_dram0), (sat_cart_slot_device*)m_exp));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x02400000, 0x025fffff, write32_delegate(FUNC(sat_cart_slot_device::write_ext_dram0), (sat_cart_slot_device*)m_exp));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x02600000, 0x027fffff, read32_delegate(FUNC(sat_cart_slot_device::read_ext_dram1), (sat_cart_slot_device*)m_exp));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x02600000, 0x027fffff, write32_delegate(FUNC(sat_cart_slot_device::write_ext_dram1), (sat_cart_slot_device*)m_exp));
- m_slave->space(AS_PROGRAM).install_read_handler(0x02400000, 0x025fffff, read32_delegate(FUNC(sat_cart_slot_device::read_ext_dram0), (sat_cart_slot_device*)m_exp));
- m_slave->space(AS_PROGRAM).install_write_handler(0x02400000, 0x025fffff, write32_delegate(FUNC(sat_cart_slot_device::write_ext_dram0), (sat_cart_slot_device*)m_exp));
- m_slave->space(AS_PROGRAM).install_read_handler(0x02600000, 0x027fffff, read32_delegate(FUNC(sat_cart_slot_device::read_ext_dram1), (sat_cart_slot_device*)m_exp));
- m_slave->space(AS_PROGRAM).install_write_handler(0x02600000, 0x027fffff, write32_delegate(FUNC(sat_cart_slot_device::write_ext_dram1), (sat_cart_slot_device*)m_exp));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x22400000, 0x225fffff, read32_delegate(FUNC(sat_cart_slot_device::read_ext_dram0), (sat_cart_slot_device*)m_exp));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x22400000, 0x225fffff, write32_delegate(FUNC(sat_cart_slot_device::write_ext_dram0), (sat_cart_slot_device*)m_exp));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x22600000, 0x227fffff, read32_delegate(FUNC(sat_cart_slot_device::read_ext_dram1), (sat_cart_slot_device*)m_exp));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x22600000, 0x227fffff, write32_delegate(FUNC(sat_cart_slot_device::write_ext_dram1), (sat_cart_slot_device*)m_exp));
- m_slave->space(AS_PROGRAM).install_read_handler(0x22400000, 0x225fffff, read32_delegate(FUNC(sat_cart_slot_device::read_ext_dram0), (sat_cart_slot_device*)m_exp));
- m_slave->space(AS_PROGRAM).install_write_handler(0x22400000, 0x225fffff, write32_delegate(FUNC(sat_cart_slot_device::write_ext_dram0), (sat_cart_slot_device*)m_exp));
- m_slave->space(AS_PROGRAM).install_read_handler(0x22600000, 0x227fffff, read32_delegate(FUNC(sat_cart_slot_device::read_ext_dram1), (sat_cart_slot_device*)m_exp));
- m_slave->space(AS_PROGRAM).install_write_handler(0x22600000, 0x227fffff, write32_delegate(FUNC(sat_cart_slot_device::write_ext_dram1), (sat_cart_slot_device*)m_exp));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x02400000, 0x025fffff, read32_delegate(*m_exp, FUNC(sat_cart_slot_device::read_ext_dram0)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x02400000, 0x025fffff, write32_delegate(*m_exp, FUNC(sat_cart_slot_device::write_ext_dram0)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x02600000, 0x027fffff, read32_delegate(*m_exp, FUNC(sat_cart_slot_device::read_ext_dram1)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x02600000, 0x027fffff, write32_delegate(*m_exp, FUNC(sat_cart_slot_device::write_ext_dram1)));
+ m_slave->space(AS_PROGRAM).install_read_handler(0x02400000, 0x025fffff, read32_delegate(*m_exp, FUNC(sat_cart_slot_device::read_ext_dram0)));
+ m_slave->space(AS_PROGRAM).install_write_handler(0x02400000, 0x025fffff, write32_delegate(*m_exp, FUNC(sat_cart_slot_device::write_ext_dram0)));
+ m_slave->space(AS_PROGRAM).install_read_handler(0x02600000, 0x027fffff, read32_delegate(*m_exp, FUNC(sat_cart_slot_device::read_ext_dram1)));
+ m_slave->space(AS_PROGRAM).install_write_handler(0x02600000, 0x027fffff, write32_delegate(*m_exp, FUNC(sat_cart_slot_device::write_ext_dram1)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x22400000, 0x225fffff, read32_delegate(*m_exp, FUNC(sat_cart_slot_device::read_ext_dram0)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x22400000, 0x225fffff, write32_delegate(*m_exp, FUNC(sat_cart_slot_device::write_ext_dram0)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x22600000, 0x227fffff, read32_delegate(*m_exp, FUNC(sat_cart_slot_device::read_ext_dram1)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x22600000, 0x227fffff, write32_delegate(*m_exp, FUNC(sat_cart_slot_device::write_ext_dram1)));
+ m_slave->space(AS_PROGRAM).install_read_handler(0x22400000, 0x225fffff, read32_delegate(*m_exp, FUNC(sat_cart_slot_device::read_ext_dram0)));
+ m_slave->space(AS_PROGRAM).install_write_handler(0x22400000, 0x225fffff, write32_delegate(*m_exp, FUNC(sat_cart_slot_device::write_ext_dram0)));
+ m_slave->space(AS_PROGRAM).install_read_handler(0x22600000, 0x227fffff, read32_delegate(*m_exp, FUNC(sat_cart_slot_device::read_ext_dram1)));
+ m_slave->space(AS_PROGRAM).install_write_handler(0x22600000, 0x227fffff, write32_delegate(*m_exp, FUNC(sat_cart_slot_device::write_ext_dram1)));
break;
case 0xff: // ROM cart + mirror
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x02000000, 0x023fffff, read32_delegate(FUNC(sat_cart_slot_device::read_rom), (sat_cart_slot_device*)m_exp));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x22000000, 0x223fffff, read32_delegate(FUNC(sat_cart_slot_device::read_rom), (sat_cart_slot_device*)m_exp));
- m_slave->space(AS_PROGRAM).install_read_handler(0x02000000, 0x023fffff, read32_delegate(FUNC(sat_cart_slot_device::read_rom), (sat_cart_slot_device*)m_exp));
- m_slave->space(AS_PROGRAM).install_read_handler(0x22000000, 0x223fffff, read32_delegate(FUNC(sat_cart_slot_device::read_rom), (sat_cart_slot_device*)m_exp));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x02000000, 0x023fffff, read32_delegate(*m_exp, FUNC(sat_cart_slot_device::read_rom)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x22000000, 0x223fffff, read32_delegate(*m_exp, FUNC(sat_cart_slot_device::read_rom)));
+ m_slave->space(AS_PROGRAM).install_read_handler(0x02000000, 0x023fffff, read32_delegate(*m_exp, FUNC(sat_cart_slot_device::read_rom)));
+ m_slave->space(AS_PROGRAM).install_read_handler(0x22000000, 0x223fffff, read32_delegate(*m_exp, FUNC(sat_cart_slot_device::read_rom)));
break;
}
}
@@ -666,7 +666,7 @@ MACHINE_START_MEMBER(sat_console_state, saturn)
save_item(NAME(m_vdp2.odd));
// TODO: trampoline
- m_audiocpu->set_reset_callback(write_line_delegate(FUNC(saturn_state::m68k_reset_callback),this));
+ m_audiocpu->set_reset_callback(*this, FUNC(saturn_state::m68k_reset_callback));
}
/* Die Hard Trilogy tests RAM address 0x25e7ffe bit 2 with Slave during FRT minit irq, in-development tool for breaking execution of it? */
diff --git a/src/mame/drivers/savquest.cpp b/src/mame/drivers/savquest.cpp
index 117eb78457f..1d56f54ad4f 100644
--- a/src/mame/drivers/savquest.cpp
+++ b/src/mame/drivers/savquest.cpp
@@ -823,12 +823,9 @@ void savquest_state::savquest(machine_config &config)
DS12885(config.replace(), "rtc");
pci_bus_legacy_device &pcibus(PCI_BUS_LEGACY(config, "pcibus", 0, 0));
- pcibus.set_device_read ( 0, FUNC(savquest_state::intel82439tx_pci_r), this);
- pcibus.set_device_write( 0, FUNC(savquest_state::intel82439tx_pci_w), this);
- pcibus.set_device_read ( 7, FUNC(savquest_state::intel82371ab_pci_r), this);
- pcibus.set_device_write( 7, FUNC(savquest_state::intel82371ab_pci_w), this);
- pcibus.set_device_read (13, FUNC(savquest_state::pci_3dfx_r), this);
- pcibus.set_device_write(13, FUNC(savquest_state::pci_3dfx_w), this);
+ pcibus.set_device( 0, FUNC(savquest_state::intel82439tx_pci_r), FUNC(savquest_state::intel82439tx_pci_w));
+ pcibus.set_device( 7, FUNC(savquest_state::intel82371ab_pci_r), FUNC(savquest_state::intel82371ab_pci_w));
+ pcibus.set_device(13, FUNC(savquest_state::pci_3dfx_r), FUNC(savquest_state::pci_3dfx_w));
ide_controller_32_device &ide(IDE_CONTROLLER_32(config, "ide").options(ata_devices, "hdd", nullptr, true));
ide.irq_handler().set("pic8259_2", FUNC(pic8259_device::ir6_w));
diff --git a/src/mame/drivers/sbowling.cpp b/src/mame/drivers/sbowling.cpp
index da8e1a3ce06..e6132f6dedb 100644
--- a/src/mame/drivers/sbowling.cpp
+++ b/src/mame/drivers/sbowling.cpp
@@ -153,7 +153,7 @@ uint32_t sbowling_state::screen_update(screen_device &screen, bitmap_ind16 &bitm
void sbowling_state::video_start()
{
m_tmpbitmap = std::make_unique<bitmap_ind16>(32*8,32*8);
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sbowling_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sbowling_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
save_item(NAME(m_bgmap));
save_item(NAME(m_system));
diff --git a/src/mame/drivers/sbrain.cpp b/src/mame/drivers/sbrain.cpp
index de2e101d8fc..5196e89e441 100644
--- a/src/mame/drivers/sbrain.cpp
+++ b/src/mame/drivers/sbrain.cpp
@@ -739,7 +739,7 @@ void sbrain_state::sbrain(machine_config &config)
FLOPPY_CONNECTOR(config, "fdc:2", sbrain_floppies, nullptr, floppy_image_device::default_floppy_formats).enable_sound(true);
FLOPPY_CONNECTOR(config, "fdc:3", sbrain_floppies, nullptr, floppy_image_device::default_floppy_formats).enable_sound(true);
- TIMER(config, "timer_a", 0).configure_periodic(timer_device::expired_delegate(FUNC(sbrain_state::kbd_scan), this), attotime::from_hz(15));
+ TIMER(config, "timer_a", 0).configure_periodic(FUNC(sbrain_state::kbd_scan), attotime::from_hz(15));
}
ROM_START( sbrain )
diff --git a/src/mame/drivers/sbrkout.cpp b/src/mame/drivers/sbrkout.cpp
index 164c30ffa42..10866b3b54c 100644
--- a/src/mame/drivers/sbrkout.cpp
+++ b/src/mame/drivers/sbrkout.cpp
@@ -339,7 +339,7 @@ TILE_GET_INFO_MEMBER(sbrkout_state::get_bg_tile_info)
void sbrkout_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sbrkout_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sbrkout_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
diff --git a/src/mame/drivers/scopus.cpp b/src/mame/drivers/scopus.cpp
index 3333215decc..535b68766f2 100644
--- a/src/mame/drivers/scopus.cpp
+++ b/src/mame/drivers/scopus.cpp
@@ -216,7 +216,7 @@ void sagitta180_state::sagitta180(machine_config &config)
I8275(config, m_crtc, 12480000 / 8); /* guessed xtal */
m_crtc->set_character_width(8);
- m_crtc->set_display_callback(FUNC(sagitta180_state::crtc_display_pixels), this);
+ m_crtc->set_display_callback(FUNC(sagitta180_state::crtc_display_pixels));
m_crtc->drq_wr_callback().set(m_dma8257, FUNC(i8257_device::dreq2_w));
m_crtc->irq_wr_callback().set_inputline(m_maincpu, I8085_INTR_LINE);
m_crtc->set_screen("screen");
diff --git a/src/mame/drivers/scorpion.cpp b/src/mame/drivers/scorpion.cpp
index d88d0f09ca9..b8654309569 100644
--- a/src/mame/drivers/scorpion.cpp
+++ b/src/mame/drivers/scorpion.cpp
@@ -217,7 +217,7 @@ MACHINE_RESET_MEMBER(scorpion_state,scorpion)
m_ram_0000 = nullptr;
m_program->install_read_bank(0x0000, 0x3fff, "bank1");
- m_program->install_write_handler(0x0000, 0x3fff, write8_delegate(FUNC(scorpion_state::scorpion_0000_w),this));
+ m_program->install_write_handler(0x0000, 0x3fff, write8_delegate(*this, FUNC(scorpion_state::scorpion_0000_w)));
m_beta->disable();
diff --git a/src/mame/drivers/seabattl.cpp b/src/mame/drivers/seabattl.cpp
index c633cc62da7..8e7153a30d0 100644
--- a/src/mame/drivers/seabattl.cpp
+++ b/src/mame/drivers/seabattl.cpp
@@ -242,7 +242,7 @@ void seabattl_state::video_start()
{
m_7segs.resolve();
m_screen->register_screen_bitmap(m_collision_bg);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(seabattl_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(seabattl_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_bg_tilemap->set_transparent_pen(0);
m_bg_tilemap->set_scrolldx(-12, 0);
}
diff --git a/src/mame/drivers/sega_beena.cpp b/src/mame/drivers/sega_beena.cpp
index 7ad05c481e9..95f8d9253bf 100644
--- a/src/mame/drivers/sega_beena.cpp
+++ b/src/mame/drivers/sega_beena.cpp
@@ -124,7 +124,7 @@ void sega_beena_state::sega_beena(machine_config &config)
GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "sega_beena_cart");
m_cart->set_width(GENERIC_ROM16_WIDTH);
- m_cart->set_device_load(FUNC(sega_beena_state::cart_load), this);
+ m_cart->set_device_load(FUNC(sega_beena_state::cart_load));
m_cart->set_must_be_loaded(true);
SOFTWARE_LIST(config, "cart_list").set_original("sega_beena_cart");
diff --git a/src/mame/drivers/segac2.cpp b/src/mame/drivers/segac2.cpp
index a194c4d37d0..ce5350b1ec5 100644
--- a/src/mame/drivers/segac2.cpp
+++ b/src/mame/drivers/segac2.cpp
@@ -105,6 +105,7 @@ public:
: md_base_state(mconfig, type, tag)
, m_paletteram(*this, "paletteram")
, m_upd_region(*this, "upd")
+ , m_prot_func(*this)
, m_upd7759(*this, "upd")
, m_screen(*this, "screen")
, m_palette(*this, "palette")
@@ -2140,7 +2141,7 @@ void segac2_state::segac2_common_init(segac2_prot_delegate prot_func)
m_prot_func = prot_func;
if (m_upd7759 != nullptr)
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x880000, 0x880001, 0, 0x13fefe, 0, write16_delegate(FUNC(segac2_state::segac2_upd7759_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x880000, 0x880001, 0, 0x13fefe, 0, write16_delegate(*this, FUNC(segac2_state::segac2_upd7759_w)));
}
int segac2_state::prot_func_dummy(int in)
@@ -2373,94 +2374,94 @@ int segac2_state::prot_func_pclubjv5(int in)
void segac2_state::init_c2boot()
{
- segac2_common_init(segac2_prot_delegate(FUNC(segac2_state::prot_func_dummy),this));
+ segac2_common_init(segac2_prot_delegate(*this, FUNC(segac2_state::prot_func_dummy)));
}
void segac2_state::init_bloxeedc()
{
- segac2_common_init(segac2_prot_delegate(FUNC(segac2_state::prot_func_dummy),this));
+ segac2_common_init(segac2_prot_delegate(*this, FUNC(segac2_state::prot_func_dummy)));
}
void segac2_state::init_columns()
{
- segac2_common_init(segac2_prot_delegate(FUNC(segac2_state::prot_func_columns),this));
+ segac2_common_init(segac2_prot_delegate(*this, FUNC(segac2_state::prot_func_columns)));
}
void segac2_state::init_columns2()
{
- segac2_common_init(segac2_prot_delegate(FUNC(segac2_state::prot_func_columns2),this));
+ segac2_common_init(segac2_prot_delegate(*this, FUNC(segac2_state::prot_func_columns2)));
}
void segac2_state::init_tfrceac()
{
- segac2_common_init(segac2_prot_delegate(FUNC(segac2_state::prot_func_tfrceac),this));
+ segac2_common_init(segac2_prot_delegate(*this, FUNC(segac2_state::prot_func_tfrceac)));
}
void segac2_state::init_tfrceacb()
{
/* disable the palette bank switching from the protection chip */
- segac2_common_init(segac2_prot_delegate(FUNC(segac2_state::prot_func_dummy),this));
+ segac2_common_init(segac2_prot_delegate(*this, FUNC(segac2_state::prot_func_dummy)));
m_maincpu->space(AS_PROGRAM).nop_write(0x800000, 0x800001);
}
void segac2_state::init_borench()
{
- segac2_common_init(segac2_prot_delegate(FUNC(segac2_state::prot_func_borench),this));
+ segac2_common_init(segac2_prot_delegate(*this, FUNC(segac2_state::prot_func_borench)));
}
void segac2_state::init_twinsqua()
{
- segac2_common_init(segac2_prot_delegate(FUNC(segac2_state::prot_func_twinsqua),this));
+ segac2_common_init(segac2_prot_delegate(*this, FUNC(segac2_state::prot_func_twinsqua)));
}
void segac2_state::init_ribbit()
{
- segac2_common_init(segac2_prot_delegate(FUNC(segac2_state::prot_func_ribbit),this));
+ segac2_common_init(segac2_prot_delegate(*this, FUNC(segac2_state::prot_func_ribbit)));
}
void segac2_state::init_puyo()
{
- segac2_common_init(segac2_prot_delegate(FUNC(segac2_state::prot_func_puyo),this));
+ segac2_common_init(segac2_prot_delegate(*this, FUNC(segac2_state::prot_func_puyo)));
}
void segac2_state::init_tantr()
{
- segac2_common_init(segac2_prot_delegate(FUNC(segac2_state::prot_func_tantr),this));
+ segac2_common_init(segac2_prot_delegate(*this, FUNC(segac2_state::prot_func_tantr)));
}
void segac2_state::init_tantrkor()
{
- segac2_common_init(segac2_prot_delegate(FUNC(segac2_state::prot_func_tantrkor),this));
+ segac2_common_init(segac2_prot_delegate(*this, FUNC(segac2_state::prot_func_tantrkor)));
}
void segac2_state::init_potopoto()
{
- segac2_common_init(segac2_prot_delegate(FUNC(segac2_state::prot_func_potopoto),this));
+ segac2_common_init(segac2_prot_delegate(*this, FUNC(segac2_state::prot_func_potopoto)));
}
void segac2_state::init_stkclmns()
{
- segac2_common_init(segac2_prot_delegate(FUNC(segac2_state::prot_func_stkclmns),this));
+ segac2_common_init(segac2_prot_delegate(*this, FUNC(segac2_state::prot_func_stkclmns)));
}
void segac2_state::init_stkclmnj()
{
- segac2_common_init(segac2_prot_delegate(FUNC(segac2_state::prot_func_stkclmnj),this));
+ segac2_common_init(segac2_prot_delegate(*this, FUNC(segac2_state::prot_func_stkclmnj)));
}
void segac2_state::init_ichir()
{
- segac2_common_init(segac2_prot_delegate(FUNC(segac2_state::prot_func_ichir),this));
+ segac2_common_init(segac2_prot_delegate(*this, FUNC(segac2_state::prot_func_ichir)));
}
void segac2_state::init_ichirk()
{
- segac2_common_init(segac2_prot_delegate(FUNC(segac2_state::prot_func_ichirk),this));
+ segac2_common_init(segac2_prot_delegate(*this, FUNC(segac2_state::prot_func_ichirk)));
}
void segac2_state::init_ichirj()
{
- segac2_common_init(segac2_prot_delegate(FUNC(segac2_state::prot_func_ichirj),this));
+ segac2_common_init(segac2_prot_delegate(*this, FUNC(segac2_state::prot_func_ichirj)));
}
READ16_MEMBER(segac2_state::ichirjbl_prot_r )
@@ -2470,49 +2471,49 @@ READ16_MEMBER(segac2_state::ichirjbl_prot_r )
void segac2_state::init_ichirjbl()
{
- segac2_common_init(segac2_prot_delegate(FUNC(segac2_state::prot_func_dummy),this));
+ segac2_common_init(segac2_prot_delegate(*this, FUNC(segac2_state::prot_func_dummy)));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x840108, 0x840109, read16_delegate(FUNC(segac2_state::ichirjbl_prot_r),this) );
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x840108, 0x840109, read16_delegate(*this, FUNC(segac2_state::ichirjbl_prot_r)));
}
void segac2_state::init_puyopuy2()
{
- segac2_common_init(segac2_prot_delegate(FUNC(segac2_state::prot_func_puyopuy2),this));
+ segac2_common_init(segac2_prot_delegate(*this, FUNC(segac2_state::prot_func_puyopuy2)));
}
void segac2_state::init_zunkyou()
{
- segac2_common_init(segac2_prot_delegate(FUNC(segac2_state::prot_func_zunkyou),this));
+ segac2_common_init(segac2_prot_delegate(*this, FUNC(segac2_state::prot_func_zunkyou)));
}
void segac2_state::init_pclub()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x880120, 0x880121, read16_delegate(FUNC(segac2_state::printer_r),this) );
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x880124, 0x880125, read16_delegate(FUNC(segac2_state::printer_r),this) );
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x880124, 0x880125, write16_delegate(FUNC(segac2_state::print_club_camera_w),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x880120, 0x880121, read16_delegate(*this, FUNC(segac2_state::printer_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x880124, 0x880125, read16_delegate(*this, FUNC(segac2_state::printer_r)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x880124, 0x880125, write16_delegate(*this, FUNC(segac2_state::print_club_camera_w)));
}
void segac2_state::init_pclubj()
{
- segac2_common_init(segac2_prot_delegate(FUNC(segac2_state::prot_func_pclub),this));
+ segac2_common_init(segac2_prot_delegate(*this, FUNC(segac2_state::prot_func_pclub)));
init_pclub();
}
void segac2_state::init_pclubjv2()
{
- segac2_common_init(segac2_prot_delegate(FUNC(segac2_state::prot_func_pclubjv2),this));
+ segac2_common_init(segac2_prot_delegate(*this, FUNC(segac2_state::prot_func_pclubjv2)));
init_pclub();
}
void segac2_state::init_pclubjv4()
{
- segac2_common_init(segac2_prot_delegate(FUNC(segac2_state::prot_func_pclubjv4),this));
+ segac2_common_init(segac2_prot_delegate(*this, FUNC(segac2_state::prot_func_pclubjv4)));
init_pclub();
}
void segac2_state::init_pclubjv5()
{
- segac2_common_init(segac2_prot_delegate(FUNC(segac2_state::prot_func_pclubjv5),this));
+ segac2_common_init(segac2_prot_delegate(*this, FUNC(segac2_state::prot_func_pclubjv5)));
init_pclub();
}
diff --git a/src/mame/drivers/segag80r.cpp b/src/mame/drivers/segag80r.cpp
index 0e6a28529d5..2347bc6907f 100644
--- a/src/mame/drivers/segag80r.cpp
+++ b/src/mame/drivers/segag80r.cpp
@@ -1537,11 +1537,11 @@ void segag80r_state::init_astrob()
m_background_pcb = G80_BACKGROUND_NONE;
/* install speech board */
- iospace.install_write_handler(0x38, 0x38, write8_delegate(FUNC(speech_sound_device::data_w), (speech_sound_device*)m_speech));
- iospace.install_write_handler(0x3b, 0x3b, write8_delegate(FUNC(speech_sound_device::control_w), (speech_sound_device*)m_speech));
+ iospace.install_write_handler(0x38, 0x38, write8_delegate(*m_speech, FUNC(speech_sound_device::data_w)));
+ iospace.install_write_handler(0x3b, 0x3b, write8_delegate(*m_speech, FUNC(speech_sound_device::control_w)));
/* install Astro Blaster sound board */
- iospace.install_write_handler(0x3e, 0x3f, write8_delegate(FUNC(segag80r_state::astrob_sound_w),this));
+ iospace.install_write_handler(0x3e, 0x3f, write8_delegate(*this, FUNC(segag80r_state::astrob_sound_w)));
save_item(NAME(m_sound_state));
save_item(NAME(m_sound_rate));
@@ -1575,14 +1575,14 @@ void segag80r_state::init_spaceod()
m_background_pcb = G80_BACKGROUND_SPACEOD;
/* configure ports for the background board */
- iospace.install_readwrite_handler(0x08, 0x0f, read8_delegate(FUNC(segag80r_state::spaceod_back_port_r),this), write8_delegate(FUNC(segag80r_state::spaceod_back_port_w),this));
+ iospace.install_readwrite_handler(0x08, 0x0f, read8_delegate(*this, FUNC(segag80r_state::spaceod_back_port_r)), write8_delegate(*this, FUNC(segag80r_state::spaceod_back_port_w)));
/* install Space Odyssey sound board */
- iospace.install_write_handler(0x0e, 0x0f, write8_delegate(FUNC(segag80r_state::spaceod_sound_w),this));
+ iospace.install_write_handler(0x0e, 0x0f, write8_delegate(*this, FUNC(segag80r_state::spaceod_sound_w)));
/* install our wacky mangled ports */
- iospace.install_read_handler(0xf8, 0xfb, read8_delegate(FUNC(segag80r_state::spaceod_mangled_ports_r),this));
- iospace.install_read_handler(0xfc, 0xfc, read8_delegate(FUNC(segag80r_state::spaceod_port_fc_r),this));
+ iospace.install_read_handler(0xf8, 0xfb, read8_delegate(*this, FUNC(segag80r_state::spaceod_mangled_ports_r)));
+ iospace.install_read_handler(0xfc, 0xfc, read8_delegate(*this, FUNC(segag80r_state::spaceod_port_fc_r)));
save_item(NAME(m_sound_state));
}
@@ -1601,8 +1601,8 @@ void segag80r_state::init_monsterb()
monsterb_expand_gfx("gfx1");
/* install background board handlers */
- iospace.install_write_handler(0xb8, 0xbd, write8_delegate(FUNC(segag80r_state::monsterb_back_port_w),this));
- pgmspace.install_write_handler(0xe000, 0xffff, write8_delegate(FUNC(segag80r_state::monsterb_vidram_w),this));
+ iospace.install_write_handler(0xb8, 0xbd, write8_delegate(*this, FUNC(segag80r_state::monsterb_back_port_w)));
+ pgmspace.install_write_handler(0xe000, 0xffff, write8_delegate(*this, FUNC(segag80r_state::monsterb_vidram_w)));
save_item(NAME(m_sound_state));
save_item(NAME(m_sound_addr));
@@ -1622,9 +1622,9 @@ void segag80r_state::init_monster2()
monsterb_expand_gfx("gfx1");
/* install background board handlers */
- iospace.install_write_handler(0xb4, 0xb5, write8_delegate(FUNC(segag80r_state::pignewt_back_color_w),this));
- iospace.install_write_handler(0xb8, 0xbd, write8_delegate(FUNC(segag80r_state::pignewt_back_port_w),this));
- pgmspace.install_write_handler(0xe000, 0xffff, write8_delegate(FUNC(segag80r_state::pignewt_vidram_w),this));
+ iospace.install_write_handler(0xb4, 0xb5, write8_delegate(*this, FUNC(segag80r_state::pignewt_back_color_w)));
+ iospace.install_write_handler(0xb8, 0xbd, write8_delegate(*this, FUNC(segag80r_state::pignewt_back_port_w)));
+ pgmspace.install_write_handler(0xe000, 0xffff, write8_delegate(*this, FUNC(segag80r_state::pignewt_vidram_w)));
save_item(NAME(m_sound_state));
save_item(NAME(m_sound_addr));
@@ -1644,14 +1644,14 @@ void segag80r_state::init_pignewt()
monsterb_expand_gfx("gfx1");
/* install background board handlers */
- iospace.install_write_handler(0xb4, 0xb5, write8_delegate(FUNC(segag80r_state::pignewt_back_color_w),this));
- iospace.install_write_handler(0xb8, 0xbd, write8_delegate(FUNC(segag80r_state::pignewt_back_port_w),this));
- pgmspace.install_write_handler(0xe000, 0xffff, write8_delegate(FUNC(segag80r_state::pignewt_vidram_w),this));
+ iospace.install_write_handler(0xb4, 0xb5, write8_delegate(*this, FUNC(segag80r_state::pignewt_back_color_w)));
+ iospace.install_write_handler(0xb8, 0xbd, write8_delegate(*this, FUNC(segag80r_state::pignewt_back_port_w)));
+ pgmspace.install_write_handler(0xe000, 0xffff, write8_delegate(*this, FUNC(segag80r_state::pignewt_vidram_w)));
/* install Universal sound board */
- iospace.install_readwrite_handler(0x3f, 0x3f, read8_delegate(FUNC(usb_sound_device::status_r), (usb_sound_device*)m_usbsnd), write8_delegate(FUNC(usb_sound_device::data_w), (usb_sound_device*)m_usbsnd));
- pgmspace.install_read_handler(0xd000, 0xdfff, read8_delegate(FUNC(usb_sound_device::ram_r), (usb_sound_device*)m_usbsnd));
- pgmspace.install_write_handler(0xd000, 0xdfff, write8_delegate(FUNC(segag80r_state::usb_ram_w),this));
+ iospace.install_readwrite_handler(0x3f, 0x3f, read8_delegate(*m_usbsnd, FUNC(usb_sound_device::status_r)), write8_delegate(*m_usbsnd, FUNC(usb_sound_device::data_w)));
+ pgmspace.install_read_handler(0xd000, 0xdfff, read8_delegate(*m_usbsnd, FUNC(usb_sound_device::ram_r)));
+ pgmspace.install_write_handler(0xd000, 0xdfff, write8_delegate(*this, FUNC(segag80r_state::usb_ram_w)));
}
@@ -1667,8 +1667,8 @@ void segag80r_state::init_sindbadm()
m_background_pcb = G80_BACKGROUND_SINDBADM;
/* install background board handlers */
- iospace.install_write_handler(0x40, 0x41, write8_delegate(FUNC(segag80r_state::sindbadm_back_port_w),this));
- pgmspace.install_write_handler(0xe000, 0xffff, write8_delegate(FUNC(segag80r_state::sindbadm_vidram_w),this));
+ iospace.install_write_handler(0x40, 0x41, write8_delegate(*this, FUNC(segag80r_state::sindbadm_back_port_w)));
+ pgmspace.install_write_handler(0xe000, 0xffff, write8_delegate(*this, FUNC(segag80r_state::sindbadm_vidram_w)));
}
diff --git a/src/mame/drivers/segag80v.cpp b/src/mame/drivers/segag80v.cpp
index 3104a986d79..136bfb3a4a4 100644
--- a/src/mame/drivers/segag80v.cpp
+++ b/src/mame/drivers/segag80v.cpp
@@ -1303,8 +1303,8 @@ void segag80v_state::init_elim2()
m_decrypt = segag80_security(70);
/* configure sound */
- iospace.install_write_handler(0x3e, 0x3e, write8_delegate(FUNC(segag80v_state::elim1_sh_w),this));
- iospace.install_write_handler(0x3f, 0x3f, write8_delegate(FUNC(segag80v_state::elim2_sh_w),this));
+ iospace.install_write_handler(0x3e, 0x3e, write8_delegate(*this, FUNC(segag80v_state::elim1_sh_w)));
+ iospace.install_write_handler(0x3f, 0x3f, write8_delegate(*this, FUNC(segag80v_state::elim2_sh_w)));
}
@@ -1316,12 +1316,12 @@ void segag80v_state::init_elim4()
m_decrypt = segag80_security(76);
/* configure sound */
- iospace.install_write_handler(0x3e, 0x3e, write8_delegate(FUNC(segag80v_state::elim1_sh_w),this));
- iospace.install_write_handler(0x3f, 0x3f, write8_delegate(FUNC(segag80v_state::elim2_sh_w),this));
+ iospace.install_write_handler(0x3e, 0x3e, write8_delegate(*this, FUNC(segag80v_state::elim1_sh_w)));
+ iospace.install_write_handler(0x3f, 0x3f, write8_delegate(*this, FUNC(segag80v_state::elim2_sh_w)));
/* configure inputs */
- iospace.install_write_handler(0xf8, 0xf8, write8_delegate(FUNC(segag80v_state::spinner_select_w),this));
- iospace.install_read_handler(0xfc, 0xfc, read8_delegate(FUNC(segag80v_state::elim4_input_r),this));
+ iospace.install_write_handler(0xf8, 0xf8, write8_delegate(*this, FUNC(segag80v_state::spinner_select_w)));
+ iospace.install_read_handler(0xfc, 0xfc, read8_delegate(*this, FUNC(segag80v_state::elim4_input_r)));
}
@@ -1333,10 +1333,10 @@ void segag80v_state::init_spacfury()
m_decrypt = segag80_security(64);
/* configure sound */
- iospace.install_write_handler(0x38, 0x38, write8_delegate(FUNC(speech_sound_device::data_w), (speech_sound_device*)m_speech));
- iospace.install_write_handler(0x3b, 0x3b, write8_delegate(FUNC(speech_sound_device::control_w), (speech_sound_device*)m_speech));
- iospace.install_write_handler(0x3e, 0x3e, write8_delegate(FUNC(segag80v_state::spacfury1_sh_w),this));
- iospace.install_write_handler(0x3f, 0x3f, write8_delegate(FUNC(segag80v_state::spacfury2_sh_w),this));
+ iospace.install_write_handler(0x38, 0x38, write8_delegate(*m_speech, FUNC(speech_sound_device::data_w)));
+ iospace.install_write_handler(0x3b, 0x3b, write8_delegate(*m_speech, FUNC(speech_sound_device::control_w)));
+ iospace.install_write_handler(0x3e, 0x3e, write8_delegate(*this, FUNC(segag80v_state::spacfury1_sh_w)));
+ iospace.install_write_handler(0x3f, 0x3f, write8_delegate(*this, FUNC(segag80v_state::spacfury2_sh_w)));
}
@@ -1348,15 +1348,15 @@ void segag80v_state::init_zektor()
m_decrypt = segag80_security(82);
/* configure sound */
- iospace.install_write_handler(0x38, 0x38, write8_delegate(FUNC(speech_sound_device::data_w), (speech_sound_device*)m_speech));
- iospace.install_write_handler(0x3b, 0x3b, write8_delegate(FUNC(speech_sound_device::control_w), (speech_sound_device*)m_speech));
- iospace.install_write_handler(0x3c, 0x3d, write8sm_delegate(FUNC(ay8912_device::address_data_w), (ay8912_device*)m_aysnd));
- iospace.install_write_handler(0x3e, 0x3e, write8_delegate(FUNC(segag80v_state::zektor1_sh_w),this));
- iospace.install_write_handler(0x3f, 0x3f, write8_delegate(FUNC(segag80v_state::zektor2_sh_w),this));
+ iospace.install_write_handler(0x38, 0x38, write8_delegate(*m_speech, FUNC(speech_sound_device::data_w)));
+ iospace.install_write_handler(0x3b, 0x3b, write8_delegate(*m_speech, FUNC(speech_sound_device::control_w)));
+ iospace.install_write_handler(0x3c, 0x3d, write8sm_delegate(*m_aysnd, FUNC(ay8912_device::address_data_w)));
+ iospace.install_write_handler(0x3e, 0x3e, write8_delegate(*this, FUNC(segag80v_state::zektor1_sh_w)));
+ iospace.install_write_handler(0x3f, 0x3f, write8_delegate(*this, FUNC(segag80v_state::zektor2_sh_w)));
/* configure inputs */
- iospace.install_write_handler(0xf8, 0xf8, write8_delegate(FUNC(segag80v_state::spinner_select_w),this));
- iospace.install_read_handler(0xfc, 0xfc, read8_delegate(FUNC(segag80v_state::spinner_input_r),this));
+ iospace.install_write_handler(0xf8, 0xf8, write8_delegate(*this, FUNC(segag80v_state::spinner_select_w)));
+ iospace.install_read_handler(0xfc, 0xfc, read8_delegate(*this, FUNC(segag80v_state::spinner_input_r)));
}
@@ -1369,13 +1369,13 @@ void segag80v_state::init_tacscan()
m_decrypt = segag80_security(76);
/* configure sound */
- iospace.install_readwrite_handler(0x3f, 0x3f, read8_delegate(FUNC(usb_sound_device::status_r), (usb_sound_device*)m_usb), write8_delegate(FUNC(usb_sound_device::data_w), (usb_sound_device*)m_usb));
- pgmspace.install_read_handler(0xd000, 0xdfff, read8_delegate(FUNC(usb_sound_device::ram_r), (usb_sound_device*)m_usb));
- pgmspace.install_write_handler(0xd000, 0xdfff, write8_delegate(FUNC(segag80v_state::usb_ram_w),this));
+ iospace.install_readwrite_handler(0x3f, 0x3f, read8_delegate(*m_usb, FUNC(usb_sound_device::status_r)), write8_delegate(*m_usb, FUNC(usb_sound_device::data_w)));
+ pgmspace.install_read_handler(0xd000, 0xdfff, read8_delegate(*m_usb, FUNC(usb_sound_device::ram_r)));
+ pgmspace.install_write_handler(0xd000, 0xdfff, write8_delegate(*this, FUNC(segag80v_state::usb_ram_w)));
/* configure inputs */
- iospace.install_write_handler(0xf8, 0xf8, write8_delegate(FUNC(segag80v_state::spinner_select_w),this));
- iospace.install_read_handler(0xfc, 0xfc, read8_delegate(FUNC(segag80v_state::spinner_input_r),this));
+ iospace.install_write_handler(0xf8, 0xf8, write8_delegate(*this, FUNC(segag80v_state::spinner_select_w)));
+ iospace.install_read_handler(0xfc, 0xfc, read8_delegate(*this, FUNC(segag80v_state::spinner_input_r)));
}
@@ -1388,16 +1388,16 @@ void segag80v_state::init_startrek()
m_decrypt = segag80_security(64);
/* configure sound */
- iospace.install_write_handler(0x38, 0x38, write8_delegate(FUNC(speech_sound_device::data_w), (speech_sound_device*)m_speech));
- iospace.install_write_handler(0x3b, 0x3b, write8_delegate(FUNC(speech_sound_device::control_w), (speech_sound_device*)m_speech));
+ iospace.install_write_handler(0x38, 0x38, write8_delegate(*m_speech, FUNC(speech_sound_device::data_w)));
+ iospace.install_write_handler(0x3b, 0x3b, write8_delegate(*m_speech, FUNC(speech_sound_device::control_w)));
- iospace.install_readwrite_handler(0x3f, 0x3f, read8_delegate(FUNC(usb_sound_device::status_r), (usb_sound_device*)m_usb), write8_delegate(FUNC(usb_sound_device::data_w), (usb_sound_device*)m_usb));
- pgmspace.install_read_handler(0xd000, 0xdfff, read8_delegate(FUNC(usb_sound_device::ram_r), (usb_sound_device*)m_usb));
- pgmspace.install_write_handler(0xd000, 0xdfff, write8_delegate(FUNC(segag80v_state::usb_ram_w),this));
+ iospace.install_readwrite_handler(0x3f, 0x3f, read8_delegate(*m_usb, FUNC(usb_sound_device::status_r)), write8_delegate(*m_usb, FUNC(usb_sound_device::data_w)));
+ pgmspace.install_read_handler(0xd000, 0xdfff, read8_delegate(*m_usb, FUNC(usb_sound_device::ram_r)));
+ pgmspace.install_write_handler(0xd000, 0xdfff, write8_delegate(*this, FUNC(segag80v_state::usb_ram_w)));
/* configure inputs */
- iospace.install_write_handler(0xf8, 0xf8, write8_delegate(FUNC(segag80v_state::spinner_select_w),this));
- iospace.install_read_handler(0xfc, 0xfc, read8_delegate(FUNC(segag80v_state::spinner_input_r),this));
+ iospace.install_write_handler(0xf8, 0xf8, write8_delegate(*this, FUNC(segag80v_state::spinner_select_w)));
+ iospace.install_read_handler(0xfc, 0xfc, read8_delegate(*this, FUNC(segag80v_state::spinner_input_r)));
}
diff --git a/src/mame/drivers/segaorun.cpp b/src/mame/drivers/segaorun.cpp
index cb1bc9f751b..71a32914c80 100644
--- a/src/mame/drivers/segaorun.cpp
+++ b/src/mame/drivers/segaorun.cpp
@@ -445,32 +445,32 @@ void segaorun_state::memory_mapper(sega_315_5195_mapper_device &mapper, uint8_t
switch (index)
{
case 5:
- mapper.map_as_handler(0x90000, 0x10000, 0xf00000, read16_delegate(FUNC(segaorun_state::sega_road_control_0_r), this), write16_delegate(FUNC(segaorun_state::sega_road_control_0_w), this));
- mapper.map_as_ram(0x80000, 0x01000, 0xf0f000, "segaic16road:roadram", write16_delegate());
- mapper.map_as_ram(0x60000, 0x08000, 0xf18000, "cpu1ram", write16_delegate());
- mapper.map_as_ram(0x00000, 0x60000, 0xf00000, "cpu1rom", write16_delegate(FUNC(segaorun_state::nop_w), this));
+ mapper.map_as_handler(0x90000, 0x10000, 0xf00000, read16_delegate(*this, FUNC(segaorun_state::sega_road_control_0_r)), write16_delegate(*this, FUNC(segaorun_state::sega_road_control_0_w)));
+ mapper.map_as_ram(0x80000, 0x01000, 0xf0f000, "segaic16road:roadram", write16_delegate(*this));
+ mapper.map_as_ram(0x60000, 0x08000, 0xf18000, "cpu1ram", write16_delegate(*this));
+ mapper.map_as_ram(0x00000, 0x60000, 0xf00000, "cpu1rom", write16_delegate(*this, FUNC(segaorun_state::nop_w)));
break;
case 4:
- mapper.map_as_handler(0x90000, 0x10000, 0xf00000, read16_delegate(FUNC(segaorun_state::misc_io_r), this), write16_delegate(FUNC(segaorun_state::misc_io_w), this));
+ mapper.map_as_handler(0x90000, 0x10000, 0xf00000, read16_delegate(*this, FUNC(segaorun_state::misc_io_r)), write16_delegate(*this, FUNC(segaorun_state::misc_io_w)));
break;
case 3:
- mapper.map_as_ram(0x00000, 0x01000, 0xfff000, "sprites", write16_delegate());
+ mapper.map_as_ram(0x00000, 0x01000, 0xfff000, "sprites", write16_delegate(*this));
break;
case 2:
- mapper.map_as_ram(0x00000, 0x02000, 0xffe000, "paletteram", write16_delegate(FUNC(segaorun_state::paletteram_w), this));
+ mapper.map_as_ram(0x00000, 0x02000, 0xffe000, "paletteram", write16_delegate(*this, FUNC(segaorun_state::paletteram_w)));
break;
case 1:
- mapper.map_as_ram(0x00000, 0x10000, 0xfe0000, "tileram", write16_delegate(FUNC(segaorun_state::tileram_w), this));
- mapper.map_as_ram(0x10000, 0x01000, 0xfef000, "textram", write16_delegate(FUNC(segaorun_state::textram_w), this));
+ mapper.map_as_ram(0x00000, 0x10000, 0xfe0000, "tileram", write16_delegate(*this, FUNC(segaorun_state::tileram_w)));
+ mapper.map_as_ram(0x10000, 0x01000, 0xfef000, "textram", write16_delegate(*this, FUNC(segaorun_state::textram_w)));
break;
case 0:
- mapper.map_as_ram(0x60000, 0x08000, 0xf98000, "workram", write16_delegate());
- mapper.map_as_rom(0x00000, 0x60000, 0xf80000, "rom0base", "decrypted_rom0base", 0x00000, write16_delegate());
+ mapper.map_as_ram(0x60000, 0x08000, 0xf98000, "workram", write16_delegate(*this));
+ mapper.map_as_rom(0x00000, 0x60000, 0xf80000, "rom0base", "decrypted_rom0base", 0x00000, write16_delegate(*this));
break;
}
}
@@ -537,7 +537,7 @@ void segaorun_state::machine_reset()
m_segaic16vid->tilemap_reset(*m_screen);
// hook the RESET line, which resets CPU #1
- m_maincpu->set_reset_callback(write_line_delegate(FUNC(segaorun_state::m68k_reset_callback),this));
+ m_maincpu->set_reset_callback(*this, FUNC(segaorun_state::m68k_reset_callback));
// start timers to track interrupts
m_scanline_timer->adjust(m_screen->time_until_pos(223), 223);
@@ -1183,7 +1183,7 @@ void segaorun_state::outrun_base(machine_config &config)
m_adc->vin_callback().set(FUNC(segaorun_state::analog_r));
SEGA_315_5195_MEM_MAPPER(config, m_mapper, MASTER_CLOCK/4, m_maincpu);
- m_mapper->set_mapper(FUNC(segaorun_state::memory_mapper), this);
+ m_mapper->set_mapper(FUNC(segaorun_state::memory_mapper));
m_mapper->pbf().set_inputline(m_soundcpu, INPUT_LINE_NMI);
// video hardware
@@ -2923,8 +2923,8 @@ void segaorun_state::init_generic()
void segaorun_state::init_outrun()
{
init_generic();
- m_custom_io_r = read16_delegate(FUNC(segaorun_state::outrun_custom_io_r), this);
- m_custom_io_w = write16_delegate(FUNC(segaorun_state::outrun_custom_io_w), this);
+ m_custom_io_r = read16_delegate(*this, FUNC(segaorun_state::outrun_custom_io_r));
+ m_custom_io_w = write16_delegate(*this, FUNC(segaorun_state::outrun_custom_io_w));
}
void segaorun_state::init_outrunb()
@@ -2969,8 +2969,8 @@ void segaorun_state::init_shangon()
{
init_generic();
m_shangon_video = true;
- m_custom_io_r = read16_delegate(FUNC(segaorun_state::shangon_custom_io_r), this);
- m_custom_io_w = write16_delegate(FUNC(segaorun_state::shangon_custom_io_w), this);
+ m_custom_io_r = read16_delegate(*this, FUNC(segaorun_state::shangon_custom_io_r));
+ m_custom_io_w = write16_delegate(*this, FUNC(segaorun_state::shangon_custom_io_w));
}
diff --git a/src/mame/drivers/segapico.cpp b/src/mame/drivers/segapico.cpp
index 0eed917f943..fa5e38fc88b 100644
--- a/src/mame/drivers/segapico.cpp
+++ b/src/mame/drivers/segapico.cpp
@@ -384,10 +384,10 @@ static void pico_cart(device_slot_interface &device)
MACHINE_START_MEMBER(pico_state,pico)
{
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7fffff, read16_delegate(FUNC(base_md_cart_slot_device::read),(base_md_cart_slot_device*)m_picocart), write16_delegate(FUNC(base_md_cart_slot_device::write),(base_md_cart_slot_device*)m_picocart));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xa13000, 0xa130ff, read16_delegate(FUNC(base_md_cart_slot_device::read_a13),(base_md_cart_slot_device*)m_picocart), write16_delegate(FUNC(base_md_cart_slot_device::write_a13),(base_md_cart_slot_device*)m_picocart));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xa15000, 0xa150ff, read16_delegate(FUNC(base_md_cart_slot_device::read_a15),(base_md_cart_slot_device*)m_picocart), write16_delegate(FUNC(base_md_cart_slot_device::write_a15),(base_md_cart_slot_device*)m_picocart));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xa14000, 0xa14003, write16_delegate(FUNC(base_md_cart_slot_device::write_tmss_bank),(base_md_cart_slot_device*)m_picocart));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7fffff, read16_delegate(*m_picocart, FUNC(base_md_cart_slot_device::read)), write16_delegate(*m_picocart, FUNC(base_md_cart_slot_device::write)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xa13000, 0xa130ff, read16_delegate(*m_picocart, FUNC(base_md_cart_slot_device::read_a13)), write16_delegate(*m_picocart, FUNC(base_md_cart_slot_device::write_a13)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xa15000, 0xa150ff, read16_delegate(*m_picocart, FUNC(base_md_cart_slot_device::read_a15)), write16_delegate(*m_picocart, FUNC(base_md_cart_slot_device::write_a15)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xa14000, 0xa14003, write16_delegate(*m_picocart, FUNC(base_md_cart_slot_device::write_tmss_bank)));
m_vdp->stop_timers();
}
@@ -596,10 +596,10 @@ static void copera_cart(device_slot_interface &device)
MACHINE_START_MEMBER(copera_state,copera)
{
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7fffff, read16_delegate(FUNC(base_md_cart_slot_device::read),(base_md_cart_slot_device*)m_picocart), write16_delegate(FUNC(base_md_cart_slot_device::write),(base_md_cart_slot_device*)m_picocart));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xa13000, 0xa130ff, read16_delegate(FUNC(base_md_cart_slot_device::read_a13),(base_md_cart_slot_device*)m_picocart), write16_delegate(FUNC(base_md_cart_slot_device::write_a13),(base_md_cart_slot_device*)m_picocart));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xa15000, 0xa150ff, read16_delegate(FUNC(base_md_cart_slot_device::read_a15),(base_md_cart_slot_device*)m_picocart), write16_delegate(FUNC(base_md_cart_slot_device::write_a15),(base_md_cart_slot_device*)m_picocart));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xa14000, 0xa14003, write16_delegate(FUNC(base_md_cart_slot_device::write_tmss_bank),(base_md_cart_slot_device*)m_picocart));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7fffff, read16_delegate(*m_picocart, FUNC(base_md_cart_slot_device::read)), write16_delegate(*m_picocart, FUNC(base_md_cart_slot_device::write)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xa13000, 0xa130ff, read16_delegate(*m_picocart, FUNC(base_md_cart_slot_device::read_a13)), write16_delegate(*m_picocart, FUNC(base_md_cart_slot_device::write_a13)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xa15000, 0xa150ff, read16_delegate(*m_picocart, FUNC(base_md_cart_slot_device::read_a15)), write16_delegate(*m_picocart, FUNC(base_md_cart_slot_device::write_a15)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xa14000, 0xa14003, write16_delegate(*m_picocart, FUNC(base_md_cart_slot_device::write_tmss_bank)));
m_sega_315_5641_pcm->reset_w(0);
m_sega_315_5641_pcm->start_w(0);
diff --git a/src/mame/drivers/segas16a.cpp b/src/mame/drivers/segas16a.cpp
index 80c31947558..b2c72b31273 100644
--- a/src/mame/drivers/segas16a.cpp
+++ b/src/mame/drivers/segas16a.cpp
@@ -2041,7 +2041,7 @@ void segas16a_state::aceattaca_fd1094(machine_config &config)
void segas16a_state::system16a_i8751(machine_config &config)
{
system16a(config);
- m_maincpu->set_vblank_int(device_interrupt_delegate(), nullptr);
+ m_maincpu->remove_vblank_int();
I8751(config, m_mcu, 8000000);
m_mcu->set_addrmap(AS_IO, &segas16a_state::mcu_io_map);
@@ -3882,8 +3882,8 @@ void segas16a_state::init_generic()
m_nvram->set_base(m_workram, m_workram.bytes());
// create default read/write handlers
- m_custom_io_r = read16_delegate(FUNC(segas16a_state::standard_io_r), this);
- m_custom_io_w = write16_delegate(FUNC(segas16a_state::standard_io_w), this);
+ m_custom_io_r = read16_delegate(*this, FUNC(segas16a_state::standard_io_r));
+ m_custom_io_w = write16_delegate(*this, FUNC(segas16a_state::standard_io_w));
// save state
save_item(NAME(m_video_control));
@@ -3904,8 +3904,8 @@ void segas16a_state::init_generic()
void segas16a_state::init_aceattaca()
{
init_generic();
- m_custom_io_r = read16_delegate(FUNC(segas16a_state::aceattaca_custom_io_r), this);
- m_custom_io_w = write16_delegate(FUNC(segas16a_state::aceattaca_custom_io_w), this);
+ m_custom_io_r = read16_delegate(*this, FUNC(segas16a_state::aceattaca_custom_io_r));
+ m_custom_io_w = write16_delegate(*this, FUNC(segas16a_state::aceattaca_custom_io_w));
}
void segas16a_state::init_dumpmtmt()
@@ -3917,25 +3917,25 @@ void segas16a_state::init_dumpmtmt()
void segas16a_state::init_mjleague()
{
init_generic();
- m_custom_io_r = read16_delegate(FUNC(segas16a_state::mjleague_custom_io_r), this);
+ m_custom_io_r = read16_delegate(*this, FUNC(segas16a_state::mjleague_custom_io_r));
}
void segas16a_state::init_passsht16a()
{
init_generic();
- m_custom_io_r = read16_delegate(FUNC(segas16a_state::passsht16a_custom_io_r), this);
+ m_custom_io_r = read16_delegate(*this, FUNC(segas16a_state::passsht16a_custom_io_r));
}
void segas16a_state::init_sdi()
{
init_generic();
- m_custom_io_r = read16_delegate(FUNC(segas16a_state::sdi_custom_io_r), this);
+ m_custom_io_r = read16_delegate(*this, FUNC(segas16a_state::sdi_custom_io_r));
}
void segas16a_state::init_sjryukoa()
{
init_generic();
- m_custom_io_r = read16_delegate(FUNC(segas16a_state::sjryuko_custom_io_r), this);
+ m_custom_io_r = read16_delegate(*this, FUNC(segas16a_state::sjryuko_custom_io_r));
m_lamp_changed_w = lamp_changed_delegate(&segas16a_state::sjryuko_lamp_changed_w, this);
}
diff --git a/src/mame/drivers/segas16b.cpp b/src/mame/drivers/segas16b.cpp
index 85ac0f7aa95..b80a25dd44e 100644
--- a/src/mame/drivers/segas16b.cpp
+++ b/src/mame/drivers/segas16b.cpp
@@ -905,30 +905,30 @@ void segas16b_state::memory_mapper(sega_315_5195_mapper_device &mapper, uint8_t
break;
case 6: // 4k of paletteram
- mapper.map_as_ram(0x00000, 0x01000, 0xfff000, "paletteram", write16_delegate(FUNC(segas16b_state::paletteram_w), this));
+ mapper.map_as_ram(0x00000, 0x01000, 0xfff000, "paletteram", write16_delegate(*this, FUNC(segas16b_state::paletteram_w)));
break;
case 5: // 64k of tileram + 4k of textram
- mapper.map_as_ram(0x00000, 0x10000, 0xfe0000, "tileram", write16_delegate(FUNC(segas16b_state::tileram_w), this));
- mapper.map_as_ram(0x10000, 0x01000, 0xfef000, "textram", write16_delegate(FUNC(segas16b_state::textram_w), this));
+ mapper.map_as_ram(0x00000, 0x10000, 0xfe0000, "tileram", write16_delegate(*this, FUNC(segas16b_state::tileram_w)));
+ mapper.map_as_ram(0x10000, 0x01000, 0xfef000, "textram", write16_delegate(*this, FUNC(segas16b_state::textram_w)));
break;
case 4: // 2k of spriteram
- mapper.map_as_ram(0x00000, 0x00800, 0xfff800, "sprites", write16_delegate());
+ mapper.map_as_ram(0x00000, 0x00800, 0xfff800, "sprites", write16_delegate(*this));
break;
case 3: // 16k or 256k of work RAM
- mapper.map_as_ram(0x00000, m_workram.bytes(), ~(m_workram.bytes() - 1), "workram", write16_delegate());
+ mapper.map_as_ram(0x00000, m_workram.bytes(), ~(m_workram.bytes() - 1), "workram", write16_delegate(*this));
break;
case 2: // 3rd ROM base, or board-specific banking
switch (m_romboard)
{
- case ROM_BOARD_171_5358_SMALL: mapper.map_as_rom(0x00000, 0x20000, 0xfe0000, "rom2base", "decrypted_rom2base", 0x20000, write16_delegate()); break;
- case ROM_BOARD_171_5358: mapper.map_as_rom(0x00000, 0x20000, 0xfe0000, "rom2base", "decrypted_rom2base", 0x40000, write16_delegate()); break;
+ case ROM_BOARD_171_5358_SMALL: mapper.map_as_rom(0x00000, 0x20000, 0xfe0000, "rom2base", "decrypted_rom2base", 0x20000, write16_delegate(*this)); break;
+ case ROM_BOARD_171_5358: mapper.map_as_rom(0x00000, 0x20000, 0xfe0000, "rom2base", "decrypted_rom2base", 0x40000, write16_delegate(*this)); break;
case ROM_BOARD_171_5521:
- case ROM_BOARD_171_5704: mapper.map_as_handler(0x00000, 0x10000, 0xff0000, read16_delegate(), write16_delegate(FUNC(segas16b_state::rom_5704_bank_w), this)); break;
- case ROM_BOARD_171_5797: mapper.map_as_handler(0x00000, 0x10000, 0xff0000, read16_delegate(FUNC(segas16b_state::unknown_rgn2_r), this), write16_delegate(FUNC(segas16b_state::unknown_rgn2_w), this)); break;
+ case ROM_BOARD_171_5704: mapper.map_as_handler(0x00000, 0x10000, 0xff0000, read16_delegate(*this), write16_delegate(*this, FUNC(segas16b_state::rom_5704_bank_w))); break;
+ case ROM_BOARD_171_5797: mapper.map_as_handler(0x00000, 0x10000, 0xff0000, read16_delegate(*this, FUNC(segas16b_state::unknown_rgn2_r)), write16_delegate(*this, FUNC(segas16b_state::unknown_rgn2_w))); break;
case ROM_BOARD_KOREAN: break;
default: assert(false);
}
@@ -937,12 +937,12 @@ void segas16b_state::memory_mapper(sega_315_5195_mapper_device &mapper, uint8_t
case 1: // 2nd ROM base, banking & math, or sound for Korean games
switch (m_romboard)
{
- case ROM_BOARD_171_5358_SMALL: mapper.map_as_rom(0x00000, 0x20000, 0xfe0000, "rom1base", "decrypted_rom1base", 0x10000, write16_delegate()); break;
- case ROM_BOARD_171_5358: mapper.map_as_rom(0x00000, 0x20000, 0xfe0000, "rom1base", "decrypted_rom1base", 0x20000, write16_delegate()); break;
+ case ROM_BOARD_171_5358_SMALL: mapper.map_as_rom(0x00000, 0x20000, 0xfe0000, "rom1base", "decrypted_rom1base", 0x10000, write16_delegate(*this)); break;
+ case ROM_BOARD_171_5358: mapper.map_as_rom(0x00000, 0x20000, 0xfe0000, "rom1base", "decrypted_rom1base", 0x20000, write16_delegate(*this)); break;
case ROM_BOARD_171_5521:
- case ROM_BOARD_171_5704: mapper.map_as_rom(0x00000, 0x40000, 0xfc0000, "rom1base", "decrypted_rom1base", 0x40000, write16_delegate()); break;
- case ROM_BOARD_KOREAN: mapper.map_as_handler(0x00000, 0x10000, 0xff0000, read16_delegate(), write16_delegate(FUNC(segas16b_state::atomicp_sound_w), this)); break;
- case ROM_BOARD_171_5797: mapper.map_as_handler(0x00000, 0x04000, 0xffc000, read16_delegate(FUNC(segas16b_state::rom_5797_bank_math_r), this), write16_delegate(FUNC(segas16b_state::rom_5797_bank_math_w), this)); break;
+ case ROM_BOARD_171_5704: mapper.map_as_rom(0x00000, 0x40000, 0xfc0000, "rom1base", "decrypted_rom1base", 0x40000, write16_delegate(*this)); break;
+ case ROM_BOARD_KOREAN: mapper.map_as_handler(0x00000, 0x10000, 0xff0000, read16_delegate(*this), write16_delegate(*this, FUNC(segas16b_state::atomicp_sound_w))); break;
+ case ROM_BOARD_171_5797: mapper.map_as_handler(0x00000, 0x04000, 0xffc000, read16_delegate(*this, FUNC(segas16b_state::rom_5797_bank_math_r)), write16_delegate(*this, FUNC(segas16b_state::rom_5797_bank_math_w))); break;
default: assert(false);
}
break;
@@ -950,12 +950,12 @@ void segas16b_state::memory_mapper(sega_315_5195_mapper_device &mapper, uint8_t
case 0: // 1st ROM base
switch (m_romboard)
{
- case ROM_BOARD_171_5358_SMALL: mapper.map_as_rom(0x00000, 0x20000, 0xfe0000, "rom0base", "decrypted_rom0base", 0x00000, write16_delegate()); break;
- case ROM_BOARD_171_5358: mapper.map_as_rom(0x00000, 0x20000, 0xfe0000, "rom0base", "decrypted_rom0base", 0x00000, write16_delegate()); break;
+ case ROM_BOARD_171_5358_SMALL: mapper.map_as_rom(0x00000, 0x20000, 0xfe0000, "rom0base", "decrypted_rom0base", 0x00000, write16_delegate(*this)); break;
+ case ROM_BOARD_171_5358: mapper.map_as_rom(0x00000, 0x20000, 0xfe0000, "rom0base", "decrypted_rom0base", 0x00000, write16_delegate(*this)); break;
case ROM_BOARD_171_5521:
- case ROM_BOARD_171_5704: mapper.map_as_rom(0x00000, 0x40000, 0xfc0000, "rom0base", "decrypted_rom0base", 0000000, write16_delegate()); break;
- case ROM_BOARD_KOREAN: mapper.map_as_rom(0x00000, 0x40000, 0xfc0000, "rom0base", "decrypted_rom0base", 0000000, write16_delegate()); break;
- case ROM_BOARD_171_5797: mapper.map_as_rom(0x00000, 0x80000, 0xf80000, "rom0base", "decrypted_rom0base", 0000000, write16_delegate()); break;
+ case ROM_BOARD_171_5704: mapper.map_as_rom(0x00000, 0x40000, 0xfc0000, "rom0base", "decrypted_rom0base", 0x00000, write16_delegate(*this)); break;
+ case ROM_BOARD_KOREAN: mapper.map_as_rom(0x00000, 0x40000, 0xfc0000, "rom0base", "decrypted_rom0base", 0x00000, write16_delegate(*this)); break;
+ case ROM_BOARD_171_5797: mapper.map_as_rom(0x00000, 0x80000, 0xf80000, "rom0base", "decrypted_rom0base", 0x00000, write16_delegate(*this)); break;
default: assert(false);
}
break;
@@ -3910,7 +3910,7 @@ void segas16b_state::system16b(machine_config &config)
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
SEGA_315_5195_MEM_MAPPER(config, m_mapper, MASTER_CLOCK_10MHz, m_maincpu);
- m_mapper->set_mapper(FUNC(segas16b_state::memory_mapper), this);
+ m_mapper->set_mapper(FUNC(segas16b_state::memory_mapper));
m_mapper->pbf().set_inputline(m_soundcpu, 0);
// video hardware
@@ -4084,7 +4084,7 @@ void segas16b_state::fpointbl(machine_config &config)
m_sprites->set_local_originx(75); // these align the pieces with the playfield
m_sprites->set_local_originy(-2); // some other gfx don't have identical alignment to original tho (flickey character over 'good luck')
- m_segaic16vid->set_pagelatch_cb(FUNC(segas16b_state::tilemap_16b_fpointbl_fill_latch), this);
+ m_segaic16vid->set_pagelatch_cb(FUNC(segas16b_state::tilemap_16b_fpointbl_fill_latch));
}
void segas16b_state::fpointbla(machine_config &config)
@@ -9299,8 +9299,8 @@ void segas16b_state::init_generic(segas16b_rom_board rom_board)
m_nvram->set_base(m_workram, m_workram.bytes());
// create default read/write handlers
- m_custom_io_r = read16_delegate(FUNC(segas16b_state::standard_io_r), this);
- m_custom_io_w = write16_delegate(FUNC(segas16b_state::standard_io_w), this);
+ m_custom_io_r = read16_delegate(*this, FUNC(segas16b_state::standard_io_r));
+ m_custom_io_w = write16_delegate(*this, FUNC(segas16b_state::standard_io_w));
// save state
save_item(NAME(m_atomicp_sound_count));
@@ -9359,8 +9359,8 @@ void segas16b_state::init_generic_bootleg()
void segas16b_state::init_aceattac_5358()
{
init_generic_5358();
- m_custom_io_r = read16_delegate(FUNC(segas16b_state::aceattac_custom_io_r), this);
- m_custom_io_w = write16_delegate(FUNC(segas16b_state::aceattac_custom_io_w), this);
+ m_custom_io_r = read16_delegate(*this, FUNC(segas16b_state::aceattac_custom_io_r));
+ m_custom_io_w = write16_delegate(*this, FUNC(segas16b_state::aceattac_custom_io_w));
}
void segas16b_state::init_aliensyn7_5358_small()
@@ -9384,27 +9384,27 @@ void segas16b_state::init_altbeas4_5521()
void segas16b_state::init_dunkshot_5358_small()
{
init_generic_5358_small();
- m_custom_io_r = read16_delegate(FUNC(segas16b_state::dunkshot_custom_io_r), this);
+ m_custom_io_r = read16_delegate(*this, FUNC(segas16b_state::dunkshot_custom_io_r));
m_tilemap_type = segaic16_video_device::TILEMAP_16B_ALT;
}
void segas16b_state::init_exctleag_5358()
{
init_generic_5358();
- m_custom_io_r = read16_delegate(FUNC(segas16b_state::sdi_custom_io_r), this);
+ m_custom_io_r = read16_delegate(*this, FUNC(segas16b_state::sdi_custom_io_r));
}
void segas16b_state::init_hwchamp_5521()
{
init_generic_5521();
- m_custom_io_r = read16_delegate(FUNC(segas16b_state::hwchamp_custom_io_r), this);
- m_custom_io_w = write16_delegate(FUNC(segas16b_state::hwchamp_custom_io_w), this);
+ m_custom_io_r = read16_delegate(*this, FUNC(segas16b_state::hwchamp_custom_io_r));
+ m_custom_io_w = write16_delegate(*this, FUNC(segas16b_state::hwchamp_custom_io_w));
}
void segas16b_state::init_passshtj_5358()
{
init_generic_5358();
- m_custom_io_r = read16_delegate(FUNC(segas16b_state::passshtj_custom_io_r), this);
+ m_custom_io_r = read16_delegate(*this, FUNC(segas16b_state::passshtj_custom_io_r));
}
void segas16b_state::init_cencourt_5358()
@@ -9416,7 +9416,7 @@ void segas16b_state::init_cencourt_5358()
void segas16b_state::init_sdi_5358_small()
{
init_generic_5358_small();
- m_custom_io_r = read16_delegate(FUNC(segas16b_state::sdi_custom_io_r), this);
+ m_custom_io_r = read16_delegate(*this, FUNC(segas16b_state::sdi_custom_io_r));
if (memregion("maincpux") != nullptr)
{
@@ -9440,7 +9440,7 @@ void segas16b_state::init_fpointbla()
void segas16b_state::init_defense_5358_small()
{
init_generic_5358_small();
- m_custom_io_r = read16_delegate(FUNC(segas16b_state::sdi_custom_io_r), this);
+ m_custom_io_r = read16_delegate(*this, FUNC(segas16b_state::sdi_custom_io_r));
}
void segas16b_state::init_shinobi4_5521()
@@ -9458,8 +9458,8 @@ void segas16b_state::init_shinobi3_5358()
void segas16b_state::init_sjryuko_5358_small()
{
init_generic_5358_small();
- m_custom_io_r = read16_delegate(FUNC(segas16b_state::sjryuko_custom_io_r), this);
- m_custom_io_w = write16_delegate(FUNC(segas16b_state::sjryuko_custom_io_w), this);
+ m_custom_io_r = read16_delegate(*this, FUNC(segas16b_state::sjryuko_custom_io_r));
+ m_custom_io_w = write16_delegate(*this, FUNC(segas16b_state::sjryuko_custom_io_w));
m_tilemap_type = segaic16_video_device::TILEMAP_16B_ALT;
}
diff --git a/src/mame/drivers/segas18.cpp b/src/mame/drivers/segas18.cpp
index edc09a610e1..4be60825962 100644
--- a/src/mame/drivers/segas18.cpp
+++ b/src/mame/drivers/segas18.cpp
@@ -52,24 +52,24 @@ void segas18_state::memory_mapper(sega_315_5195_mapper_device &mapper, uint8_t i
switch (index)
{
case 7:
- mapper.map_as_handler(0x00000, 0x04000, 0xffc000, read16_delegate(FUNC(segas18_state::misc_io_r), this), write16_delegate(FUNC(segas18_state::misc_io_w), this));
+ mapper.map_as_handler(0x00000, 0x04000, 0xffc000, read16_delegate(*this, FUNC(segas18_state::misc_io_r)), write16_delegate(*this, FUNC(segas18_state::misc_io_w)));
break;
case 6:
- mapper.map_as_ram(0x00000, 0x01000, 0xfff000, "paletteram", write16_delegate(FUNC(segas18_state::paletteram_w), this));
+ mapper.map_as_ram(0x00000, 0x01000, 0xfff000, "paletteram", write16_delegate(*this, FUNC(segas18_state::paletteram_w)));
break;
case 5:
- mapper.map_as_ram(0x00000, 0x10000, 0xfe0000, "tileram", write16_delegate(FUNC(segas18_state::tileram_w), this));
- mapper.map_as_ram(0x10000, 0x01000, 0xfef000, "textram", write16_delegate(FUNC(segas18_state::textram_w), this));
+ mapper.map_as_ram(0x00000, 0x10000, 0xfe0000, "tileram", write16_delegate(*this, FUNC(segas18_state::tileram_w)));
+ mapper.map_as_ram(0x10000, 0x01000, 0xfef000, "textram", write16_delegate(*this, FUNC(segas18_state::textram_w)));
break;
case 4:
- mapper.map_as_ram(0x00000, 0x00800, 0xfff800, "sprites", write16_delegate());
+ mapper.map_as_ram(0x00000, 0x00800, 0xfff800, "sprites", write16_delegate(*this));
break;
case 3:
- mapper.map_as_ram(0x00000, 0x04000, 0xffc000, "workram", write16_delegate());
+ mapper.map_as_ram(0x00000, 0x04000, 0xffc000, "workram", write16_delegate(*this));
break;
case 2:
@@ -78,7 +78,7 @@ void segas18_state::memory_mapper(sega_315_5195_mapper_device &mapper, uint8_t i
case ROM_BOARD_171_SHADOW: break; // ???
case ROM_BOARD_837_7525:
case ROM_BOARD_171_5874:
- case ROM_BOARD_171_5987: mapper.map_as_handler(0x00000, 0x00010, 0xfffff0, read16_delegate(FUNC(segas18_state::genesis_vdp_r), this), write16_delegate(FUNC(segas18_state::genesis_vdp_w), this)); break;
+ case ROM_BOARD_171_5987: mapper.map_as_handler(0x00000, 0x00010, 0xfffff0, read16_delegate(*this, FUNC(segas18_state::genesis_vdp_r)), write16_delegate(*this, FUNC(segas18_state::genesis_vdp_w))); break;
default: assert(false);
}
break;
@@ -86,14 +86,14 @@ void segas18_state::memory_mapper(sega_315_5195_mapper_device &mapper, uint8_t i
case 1:
switch (m_romboard)
{
- case ROM_BOARD_171_SHADOW: mapper.map_as_handler(0x00000, 0x00010, 0xfffff0, read16_delegate(FUNC(segas18_state::genesis_vdp_r), this), write16_delegate(FUNC(segas18_state::genesis_vdp_w), this)); break;
- case ROM_BOARD_171_5874: mapper.map_as_rom(0x00000, 0x80000, 0xf80000, "rom1base", "decrypted_rom1base", 0x80000, write16_delegate()); break;
+ case ROM_BOARD_171_SHADOW: mapper.map_as_handler(0x00000, 0x00010, 0xfffff0, read16_delegate(*this, FUNC(segas18_state::genesis_vdp_r)), write16_delegate(*this, FUNC(segas18_state::genesis_vdp_w))); break;
+ case ROM_BOARD_171_5874: mapper.map_as_rom(0x00000, 0x80000, 0xf80000, "rom1base", "decrypted_rom1base", 0x80000, write16_delegate(*this)); break;
case ROM_BOARD_171_5987: if (romsize <= 0x100000)
- mapper.map_as_rom(0x00000, 0x80000, 0xf80000, "rom1base", "decrypted_rom1base", 0x80000, write16_delegate(FUNC(segas18_state::rom_5987_bank_w), this));
+ mapper.map_as_rom(0x00000, 0x80000, 0xf80000, "rom1base", "decrypted_rom1base", 0x80000, write16_delegate(*this, FUNC(segas18_state::rom_5987_bank_w)));
else
- mapper.map_as_rom(0x00000,0x100000, 0xf00000, "rom1base", "decrypted_rom1base",0x100000, write16_delegate(FUNC(segas18_state::rom_5987_bank_w), this));
+ mapper.map_as_rom(0x00000,0x100000, 0xf00000, "rom1base", "decrypted_rom1base",0x100000, write16_delegate(*this, FUNC(segas18_state::rom_5987_bank_w)));
break;
- case ROM_BOARD_837_7525: mapper.map_as_rom(0x00000, 0x80000, 0xf80000, "rom1base", "decrypted_rom1base", 0x80000, write16_delegate(FUNC(segas18_state::rom_837_7525_bank_w), this));
+ case ROM_BOARD_837_7525: mapper.map_as_rom(0x00000, 0x80000, 0xf80000, "rom1base", "decrypted_rom1base", 0x80000, write16_delegate(*this, FUNC(segas18_state::rom_837_7525_bank_w)));
break;
default: assert(false);
@@ -104,12 +104,12 @@ void segas18_state::memory_mapper(sega_315_5195_mapper_device &mapper, uint8_t i
switch (m_romboard)
{
case ROM_BOARD_171_SHADOW:
- case ROM_BOARD_171_5874: mapper.map_as_rom(0x00000, 0x80000, 0xf80000, "rom0base", "decrypted_rom0base", 0x00000, write16_delegate()); break;
+ case ROM_BOARD_171_5874: mapper.map_as_rom(0x00000, 0x80000, 0xf80000, "rom0base", "decrypted_rom0base", 0x00000, write16_delegate(*this)); break;
case ROM_BOARD_837_7525:
case ROM_BOARD_171_5987: if (romsize <= 0x100000)
- mapper.map_as_rom(0x00000, 0x80000, 0xf80000, "rom0base", "decrypted_rom0base", 0x00000, write16_delegate());
+ mapper.map_as_rom(0x00000, 0x80000, 0xf80000, "rom0base", "decrypted_rom0base", 0x00000, write16_delegate(*this));
else
- mapper.map_as_rom(0x00000,0x100000, 0xf00000, "rom0base", "decrypted_rom0base", 0x00000, write16_delegate());
+ mapper.map_as_rom(0x00000,0x100000, 0xf00000, "rom0base", "decrypted_rom0base", 0x00000, write16_delegate(*this));
break;
default: assert(false);
}
@@ -1321,7 +1321,7 @@ void segas18_state::system18(machine_config &config)
NVRAM(config, m_nvram, nvram_device::DEFAULT_ALL_0);
SEGA_315_5195_MEM_MAPPER(config, m_mapper, 10000000, m_maincpu);
- m_mapper->set_mapper(FUNC(segas18_state::memory_mapper), this);
+ m_mapper->set_mapper(FUNC(segas18_state::memory_mapper));
m_mapper->pbf().set_inputline(m_soundcpu, INPUT_LINE_NMI);
SEGA_315_5296(config, m_io, 16000000);
@@ -1441,7 +1441,7 @@ void segas18_state::system18_i8751(machine_config &config)
system18(config);
// basic machine hardware
- m_maincpu->set_vblank_int(device_interrupt_delegate(), nullptr);
+ m_maincpu->remove_vblank_int();
m_mapper->mcu_int().set_inputline(m_mcu, INPUT_LINE_IRQ1);
@@ -1455,7 +1455,7 @@ void segas18_state::system18_fd1094_i8751(machine_config &config)
system18_fd1094(config);
// basic machine hardware
- m_maincpu->set_vblank_int(device_interrupt_delegate(), nullptr);
+ m_maincpu->remove_vblank_int();
m_mapper->mcu_int().set_inputline(m_mcu, INPUT_LINE_IRQ1);
@@ -3184,21 +3184,21 @@ void segas18_state::init_hamaway()
void segas18_state::init_ddcrew()
{
init_generic_5987();
- m_custom_io_r = read16_delegate(FUNC(segas18_state::ddcrew_custom_io_r), this);
+ m_custom_io_r = read16_delegate(*this, FUNC(segas18_state::ddcrew_custom_io_r));
}
void segas18_state::init_lghost()
{
init_generic_5987();
- m_custom_io_r = read16_delegate(FUNC(segas18_state::lghost_custom_io_r), this);
- m_custom_io_w = write16_delegate(FUNC(segas18_state::lghost_custom_io_w), this);
+ m_custom_io_r = read16_delegate(*this, FUNC(segas18_state::lghost_custom_io_r));
+ m_custom_io_w = write16_delegate(*this, FUNC(segas18_state::lghost_custom_io_w));
}
void segas18_state::init_wwally()
{
init_generic_5987();
- m_custom_io_r = read16_delegate(FUNC(segas18_state::wwally_custom_io_r), this);
- m_custom_io_w = write16_delegate(FUNC(segas18_state::wwally_custom_io_w), this);
+ m_custom_io_r = read16_delegate(*this, FUNC(segas18_state::wwally_custom_io_r));
+ m_custom_io_w = write16_delegate(*this, FUNC(segas18_state::wwally_custom_io_w));
}
diff --git a/src/mame/drivers/segas24.cpp b/src/mame/drivers/segas24.cpp
index 69f85cc3435..d99eef46c24 100644
--- a/src/mame/drivers/segas24.cpp
+++ b/src/mame/drivers/segas24.cpp
@@ -1937,7 +1937,7 @@ void segas24_state::system24(machine_config &config)
TIMER(config, "irq_timer").configure_generic(FUNC(segas24_state::irq_timer_cb));
TIMER(config, "irq_timer_clear").configure_generic(FUNC(segas24_state::irq_timer_clear_cb));
- TIMER(config, "frc_timer").configure_generic(timer_device::expired_delegate());
+ TIMER(config, "frc_timer").configure_generic(nullptr);
TIMER(config, "irq_frc").configure_periodic(FUNC(segas24_state::irq_frc_cb), attotime::from_hz(FRC_CLOCK_MODE1));
S24TILE(config, m_vtile, 0, 0xfff).set_palette("palette");
diff --git a/src/mame/drivers/segas32.cpp b/src/mame/drivers/segas32.cpp
index 6d62f2fe8ca..ee04cfa9997 100644
--- a/src/mame/drivers/segas32.cpp
+++ b/src/mame/drivers/segas32.cpp
@@ -5650,11 +5650,11 @@ void segas32_new_state::init_arescue()
m_slavepcb->init_arescue(0);
m_dual_pcb_comms = std::make_unique<uint16_t[]>(0x1000/2);
- m_mainpcb->maincpu()->space(AS_PROGRAM).install_readwrite_handler(0x810000, 0x810fff, read16_delegate(FUNC(segas32_new_state::dual_pcb_comms_r),this), write16_delegate(FUNC(segas32_new_state::dual_pcb_comms_w),this));
- m_mainpcb->maincpu()->space(AS_PROGRAM).install_read_handler(0x818000, 0x818003, read16_delegate(FUNC(segas32_new_state::dual_pcb_masterslave),this));
+ m_mainpcb->maincpu()->space(AS_PROGRAM).install_readwrite_handler(0x810000, 0x810fff, read16_delegate(*this, FUNC(segas32_new_state::dual_pcb_comms_r)), write16_delegate(*this, FUNC(segas32_new_state::dual_pcb_comms_w)));
+ m_mainpcb->maincpu()->space(AS_PROGRAM).install_read_handler(0x818000, 0x818003, read16_delegate(*this, FUNC(segas32_new_state::dual_pcb_masterslave)));
- m_slavepcb->maincpu()->space(AS_PROGRAM).install_readwrite_handler(0x810000, 0x810fff, read16_delegate(FUNC(segas32_new_state::dual_pcb_comms_r),this), write16_delegate(FUNC(segas32_new_state::dual_pcb_comms_w),this));
- m_slavepcb->maincpu()->space(AS_PROGRAM).install_read_handler(0x818000, 0x818003, read16_delegate(FUNC(segas32_new_state::dual_pcb_slave),this));
+ m_slavepcb->maincpu()->space(AS_PROGRAM).install_readwrite_handler(0x810000, 0x810fff, read16_delegate(*this, FUNC(segas32_new_state::dual_pcb_comms_r)), write16_delegate(*this, FUNC(segas32_new_state::dual_pcb_comms_w)));
+ m_slavepcb->maincpu()->space(AS_PROGRAM).install_read_handler(0x818000, 0x818003, read16_delegate(*this, FUNC(segas32_new_state::dual_pcb_slave)));
}
void segas32_new_state::init_f1en() {
@@ -5664,11 +5664,11 @@ void segas32_new_state::init_f1en() {
m_dual_pcb_comms = std::make_unique<uint16_t[]>(0x1000/2);
memset(m_dual_pcb_comms.get(), 0xff, 0x1000 / 2);
- m_mainpcb->maincpu()->space(AS_PROGRAM).install_readwrite_handler(0x810000, 0x810fff, read16_delegate(FUNC(segas32_new_state::dual_pcb_comms_r),this), write16_delegate(FUNC(segas32_new_state::dual_pcb_comms_w),this));
- m_mainpcb->maincpu()->space(AS_PROGRAM).install_read_handler(0x818000, 0x818003, read16_delegate(FUNC(segas32_new_state::dual_pcb_masterslave),this));
+ m_mainpcb->maincpu()->space(AS_PROGRAM).install_readwrite_handler(0x810000, 0x810fff, read16_delegate(*this, FUNC(segas32_new_state::dual_pcb_comms_r)), write16_delegate(*this, FUNC(segas32_new_state::dual_pcb_comms_w)));
+ m_mainpcb->maincpu()->space(AS_PROGRAM).install_read_handler(0x818000, 0x818003, read16_delegate(*this, FUNC(segas32_new_state::dual_pcb_masterslave)));
- m_slavepcb->maincpu()->space(AS_PROGRAM).install_readwrite_handler(0x810000, 0x810fff, read16_delegate(FUNC(segas32_new_state::dual_pcb_comms_r),this), write16_delegate(FUNC(segas32_new_state::dual_pcb_comms_w),this));
- m_slavepcb->maincpu()->space(AS_PROGRAM).install_read_handler(0x818000, 0x818003, read16_delegate(FUNC(segas32_new_state::dual_pcb_slave),this));
+ m_slavepcb->maincpu()->space(AS_PROGRAM).install_readwrite_handler(0x810000, 0x810fff, read16_delegate(*this, FUNC(segas32_new_state::dual_pcb_comms_r)), write16_delegate(*this, FUNC(segas32_new_state::dual_pcb_comms_w)));
+ m_slavepcb->maincpu()->space(AS_PROGRAM).install_read_handler(0x818000, 0x818003, read16_delegate(*this, FUNC(segas32_new_state::dual_pcb_slave)));
}
void segas32_new_state::init_f1lap()
@@ -5690,7 +5690,7 @@ void segas32_state::init_alien3()
void segas32_state::init_arescue(int m_hasdsp)
{
segas32_common_init();
- if (m_hasdsp) m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xa00000, 0xa00007, read16_delegate(FUNC(segas32_state::arescue_dsp_r),this), write16_delegate(FUNC(segas32_state::arescue_dsp_w),this));
+ if (m_hasdsp) m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xa00000, 0xa00007, read16_delegate(*this, FUNC(segas32_state::arescue_dsp_r)), write16_delegate(*this, FUNC(segas32_state::arescue_dsp_w)));
for (auto & elem : m_arescue_dsp_io)
elem = 0x00;
@@ -5731,8 +5731,8 @@ void segas32_state::init_brival()
/* install protection handlers */
m_system32_protram = std::make_unique<uint16_t[]>(0x1000/2);
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x20ba00, 0x20ba07, read16_delegate(FUNC(segas32_state::brival_protection_r),this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xa00000, 0xa00fff, write16_delegate(FUNC(segas32_state::brival_protection_w),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x20ba00, 0x20ba07, read16_delegate(*this, FUNC(segas32_state::brival_protection_r)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xa00000, 0xa00fff, write16_delegate(*this, FUNC(segas32_state::brival_protection_w)));
}
@@ -5741,7 +5741,7 @@ void segas32_state::init_darkedge()
segas32_common_init();
/* install protection handlers */
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xa00000, 0xa7ffff, read16_delegate(FUNC(segas32_state::darkedge_protection_r),this), write16_delegate(FUNC(segas32_state::darkedge_protection_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xa00000, 0xa7ffff, read16_delegate(*this, FUNC(segas32_state::darkedge_protection_r)), write16_delegate(*this, FUNC(segas32_state::darkedge_protection_w)));
m_system32_prot_vblank = &segas32_state::darkedge_fd1149_vblank;
}
@@ -5751,7 +5751,7 @@ void segas32_state::init_dbzvrvs()
segas32_common_init();
/* install protection handlers */
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xa00000, 0xa7ffff, read16_delegate(FUNC(segas32_state::dbzvrvs_protection_r),this), write16_delegate(FUNC(segas32_state::dbzvrvs_protection_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xa00000, 0xa7ffff, read16_delegate(*this, FUNC(segas32_state::dbzvrvs_protection_r)), write16_delegate(*this, FUNC(segas32_state::dbzvrvs_protection_w)));
// 0x810000 to 0x8107ff = link RAM? probably not a dual cabinet, though...
}
@@ -5852,7 +5852,7 @@ void segas32_state::init_radr()
void segas32_state::init_scross()
{
segas32_common_init();
- m_soundcpu->space(AS_PROGRAM).install_write_handler(0xb0, 0xbf, write8_delegate(FUNC(segas32_state::scross_bank_w),this));
+ m_soundcpu->space(AS_PROGRAM).install_write_handler(0xb0, 0xbf, write8_delegate(*this, FUNC(segas32_state::scross_bank_w)));
m_sw1_output = &segas32_state::scross_sw1_output;
m_sw2_output = &segas32_state::scross_sw2_output;
@@ -5872,7 +5872,7 @@ void segas32_state::init_sonic()
segas32_common_init();
/* install protection handlers */
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x20E5C4, 0x20E5C5, write16_delegate(FUNC(segas32_state::sonic_level_load_protection),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x20E5C4, 0x20E5C5, write16_delegate(*this, FUNC(segas32_state::sonic_level_load_protection)));
}
@@ -5897,7 +5897,7 @@ void segas32_state::init_svf()
void segas32_state::init_jleague()
{
segas32_common_init();
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x20F700, 0x20F705, write16_delegate(FUNC(segas32_state::jleague_protection_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x20F700, 0x20F705, write16_delegate(*this, FUNC(segas32_state::jleague_protection_w)));
}
diff --git a/src/mame/drivers/segaxbd.cpp b/src/mame/drivers/segaxbd.cpp
index e47278547cf..18e06a456f5 100644
--- a/src/mame/drivers/segaxbd.cpp
+++ b/src/mame/drivers/segaxbd.cpp
@@ -344,7 +344,7 @@ void segaxbd_state::device_reset()
m_segaic16vid->tilemap_reset(*m_screen);
// hook the RESET line, which resets CPU #1
- m_maincpu->set_reset_callback(write_line_delegate(FUNC(segaxbd_state::m68k_reset_callback),this));
+ m_maincpu->set_reset_callback(*this, FUNC(segaxbd_state::m68k_reset_callback));
// start timers to track interrupts
m_scanline_timer->adjust(m_screen->time_until_pos(0), 0);
@@ -355,8 +355,8 @@ class segaxbd_new_state : public driver_device
{
public:
segaxbd_new_state(const machine_config &mconfig, device_type type, const char *tag)
- : driver_device(mconfig, type, tag),
- m_mainpcb(*this, "mainpcb")
+ : driver_device(mconfig, type, tag)
+ , m_mainpcb(*this, "mainpcb")
{
}
@@ -4665,7 +4665,7 @@ void segaxbd_state::install_loffire(void)
m_adc_reverse[1] = m_adc_reverse[3] = true;
// install sync hack on core shared memory
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x29c000, 0x29c011, write16_delegate(FUNC(segaxbd_state::loffire_sync0_w), this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x29c000, 0x29c011, write16_delegate(*this, FUNC(segaxbd_state::loffire_sync0_w)));
m_loffire_sync = m_subram0;
}
@@ -4678,7 +4678,7 @@ void segaxbd_new_state::init_loffire()
void segaxbd_state::install_smgp(void)
{
// map /EXCS space
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x2f0000, 0x2f3fff, read16_delegate(FUNC(segaxbd_state::smgp_excs_r), this), write16_delegate(FUNC(segaxbd_state::smgp_excs_w), this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x2f0000, 0x2f3fff, read16_delegate(*this, FUNC(segaxbd_state::smgp_excs_r)), write16_delegate(*this, FUNC(segaxbd_state::smgp_excs_w)));
}
void segaxbd_new_state::init_smgp()
@@ -4713,8 +4713,8 @@ void segaxbd_new_state_double::init_gprider_double()
m_mainpcb->install_gprider();
m_subpcb->install_gprider();
- m_mainpcb->m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x2F0000, 0x2F003f, read16_delegate(FUNC(segaxbd_new_state_double::shareram1_r), this), write16_delegate(FUNC(segaxbd_new_state_double::shareram1_w), this));
- m_subpcb->m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x2F0000, 0x2F003f, read16_delegate(FUNC(segaxbd_new_state_double::shareram2_r), this), write16_delegate(FUNC(segaxbd_new_state_double::shareram2_w), this));
+ m_mainpcb->m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x2F0000, 0x2F003f, read16_delegate(*this, FUNC(segaxbd_new_state_double::shareram1_r)), write16_delegate(*this, FUNC(segaxbd_new_state_double::shareram1_w)));
+ m_subpcb->m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x2F0000, 0x2F003f, read16_delegate(*this, FUNC(segaxbd_new_state_double::shareram2_r)), write16_delegate(*this, FUNC(segaxbd_new_state_double::shareram2_w)));
}
diff --git a/src/mame/drivers/seibuspi.cpp b/src/mame/drivers/seibuspi.cpp
index 88d1783a375..e91b737477c 100644
--- a/src/mame/drivers/seibuspi.cpp
+++ b/src/mame/drivers/seibuspi.cpp
@@ -2009,50 +2009,50 @@ void seibuspi_state::sys386f(machine_config &config)
void seibuspi_state::init_senkyu()
{
- if (ENABLE_SPEEDUP_HACKS) m_maincpu->space(AS_PROGRAM).install_read_handler(0x0018cb4, 0x0018cb7, read32_delegate(FUNC(seibuspi_state::senkyu_speedup_r),this));
+ if (ENABLE_SPEEDUP_HACKS) m_maincpu->space(AS_PROGRAM).install_read_handler(0x0018cb4, 0x0018cb7, read32_delegate(*this, FUNC(seibuspi_state::senkyu_speedup_r)));
init_sei252();
}
void seibuspi_state::init_senkyua()
{
- if (ENABLE_SPEEDUP_HACKS) m_maincpu->space(AS_PROGRAM).install_read_handler(0x0018c9c, 0x0018c9f, read32_delegate(FUNC(seibuspi_state::senkyua_speedup_r),this));
+ if (ENABLE_SPEEDUP_HACKS) m_maincpu->space(AS_PROGRAM).install_read_handler(0x0018c9c, 0x0018c9f, read32_delegate(*this, FUNC(seibuspi_state::senkyua_speedup_r)));
init_sei252();
}
void seibuspi_state::init_batlball()
{
- if (ENABLE_SPEEDUP_HACKS) m_maincpu->space(AS_PROGRAM).install_read_handler(0x0018db4, 0x0018db7, read32_delegate(FUNC(seibuspi_state::batlball_speedup_r),this));
+ if (ENABLE_SPEEDUP_HACKS) m_maincpu->space(AS_PROGRAM).install_read_handler(0x0018db4, 0x0018db7, read32_delegate(*this, FUNC(seibuspi_state::batlball_speedup_r)));
init_sei252();
}
void seibuspi_state::init_viprp1()
{
- if (ENABLE_SPEEDUP_HACKS) m_maincpu->space(AS_PROGRAM).install_read_handler(0x001e2e0, 0x001e2e3, read32_delegate(FUNC(seibuspi_state::viprp1_speedup_r),this));
+ if (ENABLE_SPEEDUP_HACKS) m_maincpu->space(AS_PROGRAM).install_read_handler(0x001e2e0, 0x001e2e3, read32_delegate(*this, FUNC(seibuspi_state::viprp1_speedup_r)));
init_sei252();
}
void seibuspi_state::init_viprp1o()
{
- if (ENABLE_SPEEDUP_HACKS) m_maincpu->space(AS_PROGRAM).install_read_handler(0x001d49c, 0x001d49f, read32_delegate(FUNC(seibuspi_state::viprp1o_speedup_r),this));
+ if (ENABLE_SPEEDUP_HACKS) m_maincpu->space(AS_PROGRAM).install_read_handler(0x001d49c, 0x001d49f, read32_delegate(*this, FUNC(seibuspi_state::viprp1o_speedup_r)));
init_sei252();
}
void seibuspi_state::init_ejanhs()
{
// idle skip doesn't work properly?
-// if (ENABLE_SPEEDUP_HACKS) m_maincpu->space(AS_PROGRAM).install_read_handler(0x002d224, 0x002d227, read32_delegate(FUNC(seibuspi_state::ejanhs_speedup_r),this));
+// if (ENABLE_SPEEDUP_HACKS) m_maincpu->space(AS_PROGRAM).install_read_handler(0x002d224, 0x002d227, read32_delegate(*this, FUNC(seibuspi_state::ejanhs_speedup_r)));
init_sei252();
}
void seibuspi_state::init_rdft()
{
- if (ENABLE_SPEEDUP_HACKS) m_maincpu->space(AS_PROGRAM).install_read_handler(0x00298d0, 0x00298d3, read32_delegate(FUNC(seibuspi_state::rdft_speedup_r),this));
+ if (ENABLE_SPEEDUP_HACKS) m_maincpu->space(AS_PROGRAM).install_read_handler(0x00298d0, 0x00298d3, read32_delegate(*this, FUNC(seibuspi_state::rdft_speedup_r)));
init_sei252();
}
void seibuspi_state::init_rdft2()
{
- if (ENABLE_SPEEDUP_HACKS) m_maincpu->space(AS_PROGRAM).install_read_handler(0x00282ac, 0x00282af, read32_delegate(FUNC(seibuspi_state::rf2_speedup_r),this));
+ if (ENABLE_SPEEDUP_HACKS) m_maincpu->space(AS_PROGRAM).install_read_handler(0x00282ac, 0x00282af, read32_delegate(*this, FUNC(seibuspi_state::rf2_speedup_r)));
rdft2_text_decrypt(memregion("chars")->base());
rdft2_bg_decrypt(memregion("tiles")->base(), memregion("tiles")->bytes());
@@ -2062,7 +2062,7 @@ void seibuspi_state::init_rdft2()
void seibuspi_state::init_rfjet()
{
- if (ENABLE_SPEEDUP_HACKS) m_maincpu->space(AS_PROGRAM).install_read_handler(0x002894c, 0x002894f, read32_delegate(FUNC(seibuspi_state::rfjet_speedup_r),this));
+ if (ENABLE_SPEEDUP_HACKS) m_maincpu->space(AS_PROGRAM).install_read_handler(0x002894c, 0x002894f, read32_delegate(*this, FUNC(seibuspi_state::rfjet_speedup_r)));
rfjet_text_decrypt(memregion("chars")->base());
rfjet_bg_decrypt(memregion("tiles")->base(), memregion("tiles")->bytes());
diff --git a/src/mame/drivers/seicupbl.cpp b/src/mame/drivers/seicupbl.cpp
index 40ac0fcbc89..8865dc8f113 100644
--- a/src/mame/drivers/seicupbl.cpp
+++ b/src/mame/drivers/seicupbl.cpp
@@ -278,10 +278,10 @@ void seicupbl_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap,co
void seicupbl_state::video_start()
{
- m_sc_layer[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(seicupbl_state::get_sc0_tileinfo),this),TILEMAP_SCAN_ROWS,16,16,32,32);
- m_sc_layer[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(seicupbl_state::get_sc1_tileinfo),this), TILEMAP_SCAN_ROWS,16,16,32,32);
- m_sc_layer[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(seicupbl_state::get_sc2_tileinfo),this),TILEMAP_SCAN_ROWS,16,16,32,32);
- m_sc_layer[3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(seicupbl_state::get_sc3_tileinfo),this),TILEMAP_SCAN_ROWS, 8,8,64,32);
+ m_sc_layer[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(seicupbl_state::get_sc0_tileinfo)), TILEMAP_SCAN_ROWS, 16,16, 32,32);
+ m_sc_layer[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(seicupbl_state::get_sc1_tileinfo)), TILEMAP_SCAN_ROWS, 16,16, 32,32);
+ m_sc_layer[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(seicupbl_state::get_sc2_tileinfo)), TILEMAP_SCAN_ROWS, 16,16, 32,32);
+ m_sc_layer[3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(seicupbl_state::get_sc3_tileinfo)), TILEMAP_SCAN_ROWS, 8,8, 64,32);
for(int i=0;i<4;i++)
m_sc_layer[i]->set_transparent_pen(15);
diff --git a/src/mame/drivers/sengokmj.cpp b/src/mame/drivers/sengokmj.cpp
index c154d2bd1dd..8fcd5b60fde 100644
--- a/src/mame/drivers/sengokmj.cpp
+++ b/src/mame/drivers/sengokmj.cpp
@@ -307,10 +307,10 @@ void sengokmj_state::draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect
void sengokmj_state::video_start()
{
- m_sc0_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sengokmj_state::seibucrtc_sc0_tile_info),this),TILEMAP_SCAN_ROWS,16,16,32,32);
- m_sc2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sengokmj_state::seibucrtc_sc2_tile_info),this),TILEMAP_SCAN_ROWS,16,16,32,32);
- m_sc1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sengokmj_state::seibucrtc_sc1_tile_info),this),TILEMAP_SCAN_ROWS,16,16,32,32);
- m_sc3_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sengokmj_state::seibucrtc_sc3_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,32);
+ m_sc0_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sengokmj_state::seibucrtc_sc0_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_sc2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sengokmj_state::seibucrtc_sc2_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_sc1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sengokmj_state::seibucrtc_sc1_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_sc3_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sengokmj_state::seibucrtc_sc3_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_sc2_tilemap->set_transparent_pen(15);
m_sc1_tilemap->set_transparent_pen(15);
diff --git a/src/mame/drivers/seta.cpp b/src/mame/drivers/seta.cpp
index 73654bbf369..0331f240dc2 100644
--- a/src/mame/drivers/seta.cpp
+++ b/src/mame/drivers/seta.cpp
@@ -1483,18 +1483,14 @@ TIMER_CALLBACK_MEMBER(seta_state::uPD71054_timer_callback)
void seta_state::uPD71054_timer_init()
{
uPD71054_state *uPD71054 = &m_uPD71054;
- int no;
uPD71054->write_select = 0;
- for (no = 0; no < USED_TIMER_NUM; no++)
- {
+ for (int no = 0; no < USED_TIMER_NUM; no++)
uPD71054->max[no] = 0xffff;
- }
- for (no = 0; no < USED_TIMER_NUM; no++)
- {
+
+ for (int no = 0; no < USED_TIMER_NUM; no++)
uPD71054->timer[no] = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(seta_state::uPD71054_timer_callback),this));
- }
}
@@ -1511,9 +1507,9 @@ void seta_state::timer_regs_w(offs_t offset, u16 data)
switch (offset)
{
- case 0x0000:
- case 0x0001:
- case 0x0002:
+ case 0x0000:
+ case 0x0001:
+ case 0x0002:
if (uPD71054->write_select == 0)
{
uPD71054->max[offset] = (uPD71054->max[offset] & 0xff00) + data;
@@ -1531,12 +1527,12 @@ void seta_state::timer_regs_w(offs_t offset, u16 data)
uPD71054_update_timer(m_maincpu.target(), offset);
}
break;
- case 0x0003:
+ case 0x0003:
switch ((data >> 4) & 3)
{
- case 2: uPD71054->write_select = 1; break;
- case 1:
- case 3: uPD71054->write_select = 0; break;
+ case 2: uPD71054->write_select = 1; break;
+ case 1:
+ case 3: uPD71054->write_select = 0; break;
}
break;
}
@@ -3608,9 +3604,9 @@ void seta_state::calibr50_soundlatch2_w(u8 data)
void seta_state::calibr50_sub_map(address_map &map)
{
- map(0x0000, 0x1fff).lrw8("x1_soundram_rw",
- [this](offs_t offset) { return m_x1->read(offset ^ 0x1000); },
- [this](offs_t offset, u8 data) { m_x1->write(offset ^ 0x1000, data); }); // Sound
+ map(0x0000, 0x1fff).lrw8(
+ NAME([this](offs_t offset) { return m_x1->read(offset ^ 0x1000); }),
+ NAME([this](offs_t offset, u8 data) { m_x1->write(offset ^ 0x1000, data); })); // Sound
map(0x4000, 0x4000).r(m_soundlatch[0], FUNC(generic_latch_8_device::read)); // From Main CPU
map(0x4000, 0x4000).w(FUNC(seta_state::calibr50_sub_bankswitch_w)); // Bankswitching
map(0x8000, 0xbfff).bankr("subbank"); // Banked ROM
@@ -7926,7 +7922,7 @@ void seta_state::tndrcade(machine_config &config)
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
+ m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
@@ -7978,7 +7974,7 @@ void seta_state::twineagl(machine_config &config)
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
+ m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
@@ -8024,7 +8020,7 @@ void seta_state::downtown(machine_config &config)
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
+ m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
@@ -8105,7 +8101,7 @@ void usclssic_state::usclssic(machine_config &config)
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(usclssic_state::setac_gfxbank_callback), this);
+ m_seta001->set_gfxbank_callback(FUNC(usclssic_state::setac_gfxbank_callback));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
@@ -8165,7 +8161,7 @@ void seta_state::calibr50(machine_config &config)
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
+ m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
@@ -8214,7 +8210,7 @@ void seta_state::metafox(machine_config &config)
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
+ m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
@@ -8254,7 +8250,7 @@ void seta_state::atehate(machine_config &config)
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
+ m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
@@ -8297,7 +8293,7 @@ void seta_state::blandia(machine_config &config)
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
+ m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
@@ -8332,7 +8328,7 @@ void seta_state::blandiap(machine_config &config)
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
+ m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
@@ -8372,7 +8368,7 @@ void seta_state::blockcar(machine_config &config)
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
+ m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
@@ -8446,7 +8442,7 @@ void seta_state::daioh(machine_config &config)
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
+ m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
@@ -8501,7 +8497,7 @@ void seta_state::drgnunit(machine_config &config)
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
+ m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
@@ -8566,7 +8562,7 @@ void setaroul_state::setaroul(machine_config &config)
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
+ m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
NVRAM(config, "nvram", nvram_device::DEFAULT_RANDOM);
@@ -8617,7 +8613,7 @@ void seta_state::eightfrc(machine_config &config)
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
+ m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
@@ -8661,7 +8657,7 @@ void seta_state::extdwnhl(machine_config &config)
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
+ m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
@@ -8726,7 +8722,7 @@ void seta_state::gundhara(machine_config &config)
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
+ m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
@@ -8795,7 +8791,7 @@ void seta_state::jjsquawk(machine_config &config)
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
+ m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
@@ -8827,7 +8823,7 @@ void seta_state::jjsquawb(machine_config &config)
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
+ m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
@@ -8871,7 +8867,7 @@ void seta_state::kamenrid(machine_config &config)
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
+ m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
@@ -8910,7 +8906,7 @@ void seta_state::orbs(machine_config &config)
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
+ m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
@@ -8951,7 +8947,7 @@ void seta_state::keroppij(machine_config &config)
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
+ m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
@@ -9004,7 +9000,7 @@ void seta_state::krzybowl(machine_config &config)
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
+ m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
@@ -9046,7 +9042,7 @@ void seta_state::madshark(machine_config &config)
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
+ m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
WATCHDOG_TIMER(config, "watchdog");
@@ -9096,7 +9092,7 @@ void seta_state::magspeed(machine_config &config)
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
+ m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
@@ -9139,7 +9135,7 @@ void seta_state::msgundam(machine_config &config)
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
+ m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
@@ -9183,7 +9179,7 @@ void seta_state::oisipuzl(machine_config &config)
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
+ m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
@@ -9224,7 +9220,7 @@ void seta_state::triplfun(machine_config &config)
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
+ m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
@@ -9271,7 +9267,7 @@ void kiwame_state::kiwame(machine_config &config)
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(kiwame_state::setac_gfxbank_callback), this);
+ m_seta001->set_gfxbank_callback(FUNC(kiwame_state::setac_gfxbank_callback));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
@@ -9315,7 +9311,7 @@ void seta_state::rezon(machine_config &config)
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
+ m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
@@ -9354,7 +9350,7 @@ void seta_state::thunderl(machine_config &config)
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
+ m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
@@ -9428,7 +9424,7 @@ void seta_state::wiggie(machine_config &config)
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
+ m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
@@ -9468,7 +9464,7 @@ void seta_state::wits(machine_config &config)
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
+ m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
@@ -9505,7 +9501,7 @@ void seta_state::umanclub(machine_config &config)
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
+ m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
@@ -9546,7 +9542,7 @@ void seta_state::utoukond(machine_config &config)
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
+ m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
@@ -9604,7 +9600,7 @@ void seta_state::wrofaero(machine_config &config)
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
+ m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
@@ -9646,7 +9642,7 @@ void seta_state::zingzip(machine_config &config)
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
+ m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
WATCHDOG_TIMER(config, "watchdog");
@@ -9700,7 +9696,7 @@ void seta_state::pairlove(machine_config &config)
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
+ m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
@@ -9748,7 +9744,7 @@ void seta_state::crazyfgt(machine_config &config)
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
+ m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
@@ -9817,7 +9813,7 @@ void jockeyc_state::jockeyc(machine_config &config)
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
- m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
+ m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback));
NVRAM(config, "nvram", nvram_device::DEFAULT_RANDOM);
@@ -11918,10 +11914,10 @@ void seta_state::init_twineagl()
{
init_bank6502();
/* debug? */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x800000, 0x8000ff, read16_delegate(FUNC(seta_state::twineagl_debug_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x800000, 0x8000ff, read16_delegate(*this, FUNC(seta_state::twineagl_debug_r)));
/* This allows 2 simultaneous players and the use of the "Copyright" Dip Switch. */
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x200100, 0x20010f, read16_delegate(FUNC(seta_state::twineagl_200100_r),this), write16_delegate(FUNC(seta_state::twineagl_200100_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x200100, 0x20010f, read16_delegate(*this, FUNC(seta_state::twineagl_200100_r)), write16_delegate(*this, FUNC(seta_state::twineagl_200100_w)));
}
@@ -11955,7 +11951,7 @@ void seta_state::init_downtown()
m_downtown_protection = make_unique_clear<u16[]>(0x200/2);
save_pointer(NAME(m_downtown_protection),0x200/2);
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x200000, 0x2001ff, read16_delegate(FUNC(seta_state::downtown_protection_r),this), write16_delegate(FUNC(seta_state::downtown_protection_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x200000, 0x2001ff, read16_delegate(*this, FUNC(seta_state::downtown_protection_r)), write16_delegate(*this, FUNC(seta_state::downtown_protection_w)));
}
@@ -11976,7 +11972,7 @@ READ16_MEMBER(seta_state::arbalest_debug_r)
void seta_state::init_arbalest()
{
init_bank6502();
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x80000, 0x8000f, read16_delegate(FUNC(seta_state::arbalest_debug_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x80000, 0x8000f, read16_delegate(*this, FUNC(seta_state::arbalest_debug_r)));
}
@@ -12005,7 +12001,7 @@ READ16_MEMBER(seta_state::metafox_protection_r)
void seta_state::init_metafox()
{
init_bank6502();
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x21c000, 0x21ffff,read16_delegate(FUNC(seta_state::metafox_protection_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x21c000, 0x21ffff,read16_delegate(*this, FUNC(seta_state::metafox_protection_r)));
}
diff --git a/src/mame/drivers/seta2.cpp b/src/mame/drivers/seta2.cpp
index b37d9d97810..81f1c03c72c 100644
--- a/src/mame/drivers/seta2.cpp
+++ b/src/mame/drivers/seta2.cpp
@@ -279,7 +279,7 @@ void seta2_state::mj4simai_map(address_map &map)
map(0x200000, 0x20ffff).ram(); // RAM
map(0x600000, 0x600001).r(FUNC(seta2_state::mj4simai_p1_r)); // P1
map(0x600002, 0x600003).r(FUNC(seta2_state::mj4simai_p2_r)); // P2
- map(0x600005, 0x600005).lw8("keyboard_row_w", [this](u8 data){ m_keyboard_row = data; } ); // select keyboard row to read
+ map(0x600005, 0x600005).lw8(NAME([this] (u8 data){ m_keyboard_row = data; })); // select keyboard row to read
map(0x600006, 0x600007).r("watchdog", FUNC(watchdog_timer_device::reset16_r));
map(0x600100, 0x600101).portr("SYSTEM"); //
map(0x600200, 0x600201).nopw(); // Leds? Coins?
diff --git a/src/mame/drivers/sfbonus.cpp b/src/mame/drivers/sfbonus.cpp
index b4bd4a8f996..3d5c697bc89 100644
--- a/src/mame/drivers/sfbonus.cpp
+++ b/src/mame/drivers/sfbonus.cpp
@@ -928,11 +928,11 @@ void sfbonus_state::video_start()
{
m_temp_reel_bitmap = std::make_unique<bitmap_ind16>(1024,512);
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sfbonus_state::get_sfbonus_tile_info),this),TILEMAP_SCAN_ROWS,8,8, 128, 64);
- m_reel_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sfbonus_state::get_sfbonus_reel_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 64, 16);
- m_reel2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sfbonus_state::get_sfbonus_reel2_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 64, 16);
- m_reel3_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sfbonus_state::get_sfbonus_reel3_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 64, 16);
- m_reel4_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sfbonus_state::get_sfbonus_reel4_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 64, 16);
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sfbonus_state::get_sfbonus_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 128, 64);
+ m_reel_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sfbonus_state::get_sfbonus_reel_tile_info)), TILEMAP_SCAN_ROWS, 8, 32, 64, 16);
+ m_reel2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sfbonus_state::get_sfbonus_reel2_tile_info)), TILEMAP_SCAN_ROWS, 8, 32, 64, 16);
+ m_reel3_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sfbonus_state::get_sfbonus_reel3_tile_info)), TILEMAP_SCAN_ROWS, 8, 32, 64, 16);
+ m_reel4_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sfbonus_state::get_sfbonus_reel4_tile_info)), TILEMAP_SCAN_ROWS, 8, 32, 64, 16);
m_tilemap->set_transparent_pen(0);
m_reel_tilemap->set_transparent_pen(255);
diff --git a/src/mame/drivers/sg1000.cpp b/src/mame/drivers/sg1000.cpp
index b5ef0daa73b..c4a2c85c4d3 100644
--- a/src/mame/drivers/sg1000.cpp
+++ b/src/mame/drivers/sg1000.cpp
@@ -463,8 +463,8 @@ void sg1000_state::machine_start()
{
if (m_cart->get_type() == SEGA8_DAHJEE_TYPEA || m_cart->get_type() == SEGA8_DAHJEE_TYPEB)
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xc000, 0xffff, read8_delegate(FUNC(sega8_cart_slot_device::read_ram),(sega8_cart_slot_device*)m_cart));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xc000, 0xffff, write8_delegate(FUNC(sega8_cart_slot_device::write_ram),(sega8_cart_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xc000, 0xffff, read8_delegate(*m_cart, FUNC(sega8_cart_slot_device::read_ram)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xc000, 0xffff, write8_delegate(*m_cart, FUNC(sega8_cart_slot_device::write_ram)));
}
if (m_cart)
@@ -484,8 +484,8 @@ void sc3000_state::machine_start()
|| m_cart->get_type() == SEGA8_DAHJEE_TYPEA || m_cart->get_type() == SEGA8_DAHJEE_TYPEB
|| m_cart->get_type() == SEGA8_MULTICART || m_cart->get_type() == SEGA8_MEGACART))
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xc000, 0xffff, read8_delegate(FUNC(sega8_cart_slot_device::read_ram),(sega8_cart_slot_device*)m_cart));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xc000, 0xffff, write8_delegate(FUNC(sega8_cart_slot_device::write_ram),(sega8_cart_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xc000, 0xffff, read8_delegate(*m_cart, FUNC(sega8_cart_slot_device::read_ram)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xc000, 0xffff, write8_delegate(*m_cart, FUNC(sega8_cart_slot_device::write_ram)));
}
if (m_cart)
diff --git a/src/mame/drivers/silvmil.cpp b/src/mame/drivers/silvmil.cpp
index 2d3b3e0110a..98ce29ba074 100644
--- a/src/mame/drivers/silvmil.cpp
+++ b/src/mame/drivers/silvmil.cpp
@@ -169,8 +169,8 @@ TILEMAP_MAPPER_MEMBER(silvmil_state::scan_rows)
void silvmil_state::video_start()
{
- m_bg_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(silvmil_state::get_bg_tile_info),this), tilemap_mapper_delegate(FUNC(silvmil_state::scan_rows),this), 16, 16, 64, 32);
- m_fg_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(silvmil_state::get_fg_tile_info),this), tilemap_mapper_delegate(FUNC(silvmil_state::scan_rows),this), 16, 16, 64, 32);
+ m_bg_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(silvmil_state::get_bg_tile_info)), tilemap_mapper_delegate(*this, FUNC(silvmil_state::scan_rows)), 16, 16, 64, 32);
+ m_fg_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(silvmil_state::get_fg_tile_info)), tilemap_mapper_delegate(*this, FUNC(silvmil_state::scan_rows)), 16, 16, 64, 32);
m_fg_layer->set_transparent_pen(0);
}
diff --git a/src/mame/drivers/simpl156.cpp b/src/mame/drivers/simpl156.cpp
index d3ac5fa6267..be31c5e2848 100644
--- a/src/mame/drivers/simpl156.cpp
+++ b/src/mame/drivers/simpl156.cpp
@@ -412,15 +412,15 @@ void simpl156_state::chainrec(machine_config &config)
m_deco_tilegen->set_pf2_col_bank(0x10);
m_deco_tilegen->set_pf1_col_mask(0x0f);
m_deco_tilegen->set_pf2_col_mask(0x0f);
- m_deco_tilegen->set_bank1_callback(FUNC(simpl156_state::bank_callback), this);
- m_deco_tilegen->set_bank2_callback(FUNC(simpl156_state::bank_callback), this);
+ m_deco_tilegen->set_bank1_callback(FUNC(simpl156_state::bank_callback));
+ m_deco_tilegen->set_bank2_callback(FUNC(simpl156_state::bank_callback));
m_deco_tilegen->set_pf12_8x8_bank(0);
m_deco_tilegen->set_pf12_16x16_bank(1);
m_deco_tilegen->set_gfxdecode_tag("gfxdecode");
DECO_SPRITE(config, m_sprgen, 0);
m_sprgen->set_gfx_region(2);
- m_sprgen->set_pri_callback(FUNC(simpl156_state::pri_callback), this);
+ m_sprgen->set_pri_callback(FUNC(simpl156_state::pri_callback));
m_sprgen->set_gfxdecode_tag("gfxdecode");
SPEAKER(config, "lspeaker").front_left();
@@ -1058,7 +1058,7 @@ READ32_MEMBER(simpl156_state::joemacr_speedup_r)
void simpl156_state::init_joemacr()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x0201018, 0x020101b, read32_delegate(FUNC(simpl156_state::joemacr_speedup_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x0201018, 0x020101b, read32_delegate(*this, FUNC(simpl156_state::joemacr_speedup_r)));
init_simpl156();
}
@@ -1071,7 +1071,7 @@ READ32_MEMBER(simpl156_state::chainrec_speedup_r)
void simpl156_state::init_chainrec()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x0201018, 0x020101b, read32_delegate(FUNC(simpl156_state::chainrec_speedup_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x0201018, 0x020101b, read32_delegate(*this, FUNC(simpl156_state::chainrec_speedup_r)));
init_simpl156();
}
@@ -1084,7 +1084,7 @@ READ32_MEMBER(simpl156_state::prtytime_speedup_r)
void simpl156_state::init_prtytime()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x0201ae0, 0x0201ae3, read32_delegate(FUNC(simpl156_state::prtytime_speedup_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x0201ae0, 0x0201ae3, read32_delegate(*this, FUNC(simpl156_state::prtytime_speedup_r)));
init_simpl156();
}
@@ -1098,7 +1098,7 @@ READ32_MEMBER(simpl156_state::charlien_speedup_r)
void simpl156_state::init_charlien()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x0201010, 0x0201013, read32_delegate(FUNC(simpl156_state::charlien_speedup_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x0201010, 0x0201013, read32_delegate(*this, FUNC(simpl156_state::charlien_speedup_r)));
init_simpl156();
}
@@ -1111,7 +1111,7 @@ READ32_MEMBER(simpl156_state::osman_speedup_r)
void simpl156_state::init_osman()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x0201010, 0x0201013, read32_delegate(FUNC(simpl156_state::osman_speedup_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x0201010, 0x0201013, read32_delegate(*this, FUNC(simpl156_state::osman_speedup_r)));
init_simpl156();
}
diff --git a/src/mame/drivers/simpsons.cpp b/src/mame/drivers/simpsons.cpp
index 172ef67ad3f..9f363ffbd86 100644
--- a/src/mame/drivers/simpsons.cpp
+++ b/src/mame/drivers/simpsons.cpp
@@ -350,11 +350,11 @@ void simpsons_state::simpsons(machine_config &config)
K052109(config, m_k052109, 0);
m_k052109->set_palette("palette");
m_k052109->set_screen("screen");
- m_k052109->set_tile_callback(FUNC(simpsons_state::tile_callback), this);
+ m_k052109->set_tile_callback(FUNC(simpsons_state::tile_callback));
m_k052109->irq_handler().set_inputline(m_maincpu, KONAMI_IRQ_LINE);
K053246(config, m_k053246, 0);
- m_k053246->set_sprite_callback(FUNC(simpsons_state::sprite_callback), this);
+ m_k053246->set_sprite_callback(FUNC(simpsons_state::sprite_callback));
m_k053246->set_config(NORMAL_PLANE_ORDER, 53, 23);
m_k053246->set_palette("palette");
diff --git a/src/mame/drivers/sk101bl.cpp b/src/mame/drivers/sk101bl.cpp
index 8a099badb0f..0e60fa81c86 100644
--- a/src/mame/drivers/sk101bl.cpp
+++ b/src/mame/drivers/sk101bl.cpp
@@ -170,7 +170,7 @@ void sk101bl_state::sk101bl(machine_config &config)
screen.set_palette("palette");
HD44780(config, m_lcdc).set_lcd_size(1, 16);
- m_lcdc->set_pixel_update_cb(FUNC(sk101bl_state::pixel_update), this);
+ m_lcdc->set_pixel_update_cb(FUNC(sk101bl_state::pixel_update));
PALETTE(config, "palette").set_entries(2);
diff --git a/src/mame/drivers/skyarmy.cpp b/src/mame/drivers/skyarmy.cpp
index d905c1895ce..f926047105b 100644
--- a/src/mame/drivers/skyarmy.cpp
+++ b/src/mame/drivers/skyarmy.cpp
@@ -153,7 +153,7 @@ void skyarmy_state::skyarmy_palette(palette_device &palette) const
void skyarmy_state::video_start()
{
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(skyarmy_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(skyarmy_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_tilemap->set_scroll_cols(32);
}
diff --git a/src/mame/drivers/skylncr.cpp b/src/mame/drivers/skylncr.cpp
index 4d6b135eb48..2216d43ab39 100644
--- a/src/mame/drivers/skylncr.cpp
+++ b/src/mame/drivers/skylncr.cpp
@@ -295,12 +295,12 @@ TILE_GET_INFO_MEMBER(skylncr_state::get_reel_4_tile_info)
void skylncr_state::video_start()
{
- m_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(skylncr_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 0x40, 0x20 );
+ m_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(skylncr_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 0x40, 0x20 );
- m_reel_1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(skylncr_state::get_reel_1_tile_info),this), TILEMAP_SCAN_ROWS, 8, 32, 64, 8 );
- m_reel_2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(skylncr_state::get_reel_2_tile_info),this), TILEMAP_SCAN_ROWS, 8, 32, 64, 8 );
- m_reel_3_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(skylncr_state::get_reel_3_tile_info),this), TILEMAP_SCAN_ROWS, 8, 32, 64, 8 );
- m_reel_4_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(skylncr_state::get_reel_4_tile_info),this), TILEMAP_SCAN_ROWS, 8, 32, 64, 8 );
+ m_reel_1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(skylncr_state::get_reel_1_tile_info)), TILEMAP_SCAN_ROWS, 8, 32, 64, 8 );
+ m_reel_2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(skylncr_state::get_reel_2_tile_info)), TILEMAP_SCAN_ROWS, 8, 32, 64, 8 );
+ m_reel_3_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(skylncr_state::get_reel_3_tile_info)), TILEMAP_SCAN_ROWS, 8, 32, 64, 8 );
+ m_reel_4_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(skylncr_state::get_reel_4_tile_info)), TILEMAP_SCAN_ROWS, 8, 32, 64, 8 );
m_reel_2_tilemap->set_scroll_cols(0x40);
m_reel_3_tilemap->set_scroll_cols(0x40);
diff --git a/src/mame/drivers/slotcarn.cpp b/src/mame/drivers/slotcarn.cpp
index 989ce132421..5892aaa50b9 100644
--- a/src/mame/drivers/slotcarn.cpp
+++ b/src/mame/drivers/slotcarn.cpp
@@ -39,8 +39,8 @@
class slotcarn_state : public driver_device
{
public:
- slotcarn_state(const machine_config &mconfig, device_type type, const char *tag)
- : driver_device(mconfig, type, tag),
+ slotcarn_state(const machine_config &mconfig, device_type type, const char *tag) :
+ driver_device(mconfig, type, tag),
m_backup_ram(*this, "backup_ram"),
m_ram_attr(*this, "raattr"),
m_ram_video(*this, "ravideo"),
@@ -571,8 +571,8 @@ void slotcarn_state::slotcarn(machine_config &config)
crtc.set_screen(m_screen);
crtc.set_show_border_area(false);
crtc.set_char_width(8);
- crtc.set_begin_update_callback(FUNC(slotcarn_state::crtc_begin_update), this);
- crtc.set_update_row_callback(FUNC(slotcarn_state::crtc_update_row), this);
+ crtc.set_begin_update_callback(FUNC(slotcarn_state::crtc_begin_update));
+ crtc.set_update_row_callback(FUNC(slotcarn_state::crtc_update_row));
crtc.out_hsync_callback().set(FUNC(slotcarn_state::hsync_changed));
crtc.out_vsync_callback().set_inputline(m_maincpu, 0);
diff --git a/src/mame/drivers/sm1800.cpp b/src/mame/drivers/sm1800.cpp
index 221b0636fdd..e2ae4f81e9d 100644
--- a/src/mame/drivers/sm1800.cpp
+++ b/src/mame/drivers/sm1800.cpp
@@ -189,7 +189,7 @@ void sm1800_state::sm1800(machine_config &config)
I8275(config, m_crtc, 2000000);
m_crtc->set_character_width(8);
- m_crtc->set_display_callback(FUNC(sm1800_state::crtc_display_pixels), this);
+ m_crtc->set_display_callback(FUNC(sm1800_state::crtc_display_pixels));
I8251(config, m_uart, 0);
}
diff --git a/src/mame/drivers/smc777.cpp b/src/mame/drivers/smc777.cpp
index fc78b3038e8..c1014c7618e 100644
--- a/src/mame/drivers/smc777.cpp
+++ b/src/mame/drivers/smc777.cpp
@@ -1144,7 +1144,7 @@ void smc777_state::smc777(machine_config &config)
FLOPPY_CONNECTOR(config, "fdc:1", smc777_floppies, "ssdd", floppy_image_device::default_floppy_formats);
SOFTWARE_LIST(config, "flop_list").set_original("smc777");
- QUICKLOAD(config, "quickload", "com,cpm", attotime::from_seconds(3)).set_load_callback(FUNC(smc777_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "com,cpm", attotime::from_seconds(3)).set_load_callback(FUNC(smc777_state::quickload_cb));
/* sound hardware */
SPEAKER(config, "mono").front_center();
diff --git a/src/mame/drivers/snes.cpp b/src/mame/drivers/snes.cpp
index 9b84e1c4d88..dc12b34e97b 100644
--- a/src/mame/drivers/snes.cpp
+++ b/src/mame/drivers/snes.cpp
@@ -1206,8 +1206,8 @@ void snes_console_state::machine_start()
if (m_cartslot && m_cartslot->exists())
{
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8_delegate(FUNC(snes_console_state::snes20_lo_r),this), write8_delegate(FUNC(snes_console_state::snes20_lo_w),this));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8_delegate(FUNC(snes_console_state::snes20_hi_r),this), write8_delegate(FUNC(snes_console_state::snes20_hi_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8_delegate(*this, FUNC(snes_console_state::snes20_lo_r)), write8_delegate(*this, FUNC(snes_console_state::snes20_lo_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8_delegate(*this, FUNC(snes_console_state::snes20_hi_r)), write8_delegate(*this, FUNC(snes_console_state::snes20_hi_w)));
m_maincpu->set_5a22_map();
m_type = m_cartslot->get_type();
@@ -1224,104 +1224,104 @@ void snes_console_state::machine_start()
case SNES_ST018: // still unemulated
break;
case SNES_Z80GB: // skeleton support
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8_delegate(FUNC(snes_console_state::snessgb_lo_r),this), write8_delegate(FUNC(snes_console_state::snessgb_lo_w),this));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8_delegate(FUNC(snes_console_state::snessgb_hi_r),this), write8_delegate(FUNC(snes_console_state::snessgb_hi_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8_delegate(*this, FUNC(snes_console_state::snessgb_lo_r)), write8_delegate(*this, FUNC(snes_console_state::snessgb_lo_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8_delegate(*this, FUNC(snes_console_state::snessgb_hi_r)), write8_delegate(*this, FUNC(snes_console_state::snessgb_hi_w)));
m_maincpu->set_5a22_map();
break;
case SNES_SA1: // skeleton support
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8_delegate(FUNC(snes_console_state::snessa1_lo_r),this), write8_delegate(FUNC(snes_console_state::snessa1_lo_w),this));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8_delegate(FUNC(snes_console_state::snessa1_hi_r),this), write8_delegate(FUNC(snes_console_state::snessa1_hi_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8_delegate(*this, FUNC(snes_console_state::snessa1_lo_r)), write8_delegate(*this, FUNC(snes_console_state::snessa1_lo_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8_delegate(*this, FUNC(snes_console_state::snessa1_hi_r)), write8_delegate(*this, FUNC(snes_console_state::snessa1_hi_w)));
m_maincpu->set_5a22_map();
break;
case SNES_DSP:
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x208000, 0x20ffff, 0, 0x9f0000, 0, read8sm_delegate(FUNC(base_sns_cart_slot_device::chip_read),(base_sns_cart_slot_device*)m_cartslot));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x208000, 0x20ffff, 0, 0x9f0000, 0, write8sm_delegate(FUNC(base_sns_cart_slot_device::chip_write),(base_sns_cart_slot_device*)m_cartslot));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x208000, 0x20ffff, 0, 0x9f0000, 0, read8sm_delegate(*m_cartslot, FUNC(base_sns_cart_slot_device::chip_read)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x208000, 0x20ffff, 0, 0x9f0000, 0, write8sm_delegate(*m_cartslot, FUNC(base_sns_cart_slot_device::chip_write)));
break;
case SNES_DSP_2MB:
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x600000, 0x607fff, 0, 0x8f0000, 0, read8sm_delegate(FUNC(base_sns_cart_slot_device::chip_read),(base_sns_cart_slot_device*)m_cartslot));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x600000, 0x607fff, 0, 0x8f0000, 0, write8sm_delegate(FUNC(base_sns_cart_slot_device::chip_write),(base_sns_cart_slot_device*)m_cartslot));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x600000, 0x607fff, 0, 0x8f0000, 0, read8sm_delegate(*m_cartslot, FUNC(base_sns_cart_slot_device::chip_read)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x600000, 0x607fff, 0, 0x8f0000, 0, write8sm_delegate(*m_cartslot, FUNC(base_sns_cart_slot_device::chip_write)));
break;
case SNES_DSP4:
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x308000, 0x30ffff, 0, 0x8f0000, 0, read8sm_delegate(FUNC(base_sns_cart_slot_device::chip_read),(base_sns_cart_slot_device*)m_cartslot));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x308000, 0x30ffff, 0, 0x8f0000, 0, write8sm_delegate(FUNC(base_sns_cart_slot_device::chip_write),(base_sns_cart_slot_device*)m_cartslot));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x308000, 0x30ffff, 0, 0x8f0000, 0, read8sm_delegate(*m_cartslot, FUNC(base_sns_cart_slot_device::chip_read)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x308000, 0x30ffff, 0, 0x8f0000, 0, write8sm_delegate(*m_cartslot, FUNC(base_sns_cart_slot_device::chip_write)));
break;
case SNES_OBC1:
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x006000, 0x007fff, 0, 0xbf0000, 0, read8sm_delegate(FUNC(base_sns_cart_slot_device::chip_read),(base_sns_cart_slot_device*)m_cartslot));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x006000, 0x007fff, 0, 0xbf0000, 0, write8sm_delegate(FUNC(base_sns_cart_slot_device::chip_write),(base_sns_cart_slot_device*)m_cartslot));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x006000, 0x007fff, 0, 0xbf0000, 0, read8sm_delegate(*m_cartslot, FUNC(base_sns_cart_slot_device::chip_read)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x006000, 0x007fff, 0, 0xbf0000, 0, write8sm_delegate(*m_cartslot, FUNC(base_sns_cart_slot_device::chip_write)));
break;
case SNES_GSU1:
case SNES_GSU2:
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8_delegate(FUNC(snes_console_state::snessfx_lo_r),this), write8_delegate(FUNC(snes_console_state::snessfx_lo_w),this));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8_delegate(FUNC(snes_console_state::snessfx_hi_r),this), write8_delegate(FUNC(snes_console_state::snessfx_hi_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8_delegate(*this, FUNC(snes_console_state::snessfx_lo_r)), write8_delegate(*this, FUNC(snes_console_state::snessfx_lo_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8_delegate(*this, FUNC(snes_console_state::snessfx_hi_r)), write8_delegate(*this, FUNC(snes_console_state::snessfx_hi_w)));
m_maincpu->set_5a22_map();
break;
case SNES_SDD1:
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8_delegate(FUNC(snes_console_state::snessdd1_lo_r),this), write8_delegate(FUNC(snes_console_state::snessdd1_lo_w),this));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8_delegate(FUNC(snes_console_state::snessdd1_hi_r),this), write8_delegate(FUNC(snes_console_state::snessdd1_hi_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8_delegate(*this, FUNC(snes_console_state::snessdd1_lo_r)), write8_delegate(*this, FUNC(snes_console_state::snessdd1_lo_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8_delegate(*this, FUNC(snes_console_state::snessdd1_hi_r)), write8_delegate(*this, FUNC(snes_console_state::snessdd1_hi_w)));
m_maincpu->set_5a22_map();
break;
case SNES_BSX:
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8_delegate(FUNC(snes_console_state::snesbsx_lo_r),this), write8_delegate(FUNC(snes_console_state::snesbsx_lo_w),this));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8_delegate(FUNC(snes_console_state::snesbsx_hi_r),this), write8_delegate(FUNC(snes_console_state::snesbsx_hi_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8_delegate(*this, FUNC(snes_console_state::snesbsx_lo_r)), write8_delegate(*this, FUNC(snes_console_state::snesbsx_lo_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8_delegate(*this, FUNC(snes_console_state::snesbsx_hi_r)), write8_delegate(*this, FUNC(snes_console_state::snesbsx_hi_w)));
m_maincpu->set_5a22_map();
break;
// HiROM & HiROM + addons
case SNES_MODE21:
case SNES_BSXHI:
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8_delegate(FUNC(snes_console_state::snes21_lo_r),this), write8_delegate(FUNC(snes_console_state::snes21_lo_w),this));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8_delegate(FUNC(snes_console_state::snes21_hi_r),this), write8_delegate(FUNC(snes_console_state::snes21_hi_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8_delegate(*this, FUNC(snes_console_state::snes21_lo_r)), write8_delegate(*this, FUNC(snes_console_state::snes21_lo_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8_delegate(*this, FUNC(snes_console_state::snes21_hi_r)), write8_delegate(*this, FUNC(snes_console_state::snes21_hi_w)));
m_maincpu->set_5a22_map();
break;
case SNES_DSP_MODE21:
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8_delegate(FUNC(snes_console_state::snes21_lo_r),this), write8_delegate(FUNC(snes_console_state::snes21_lo_w),this));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8_delegate(FUNC(snes_console_state::snes21_hi_r),this), write8_delegate(FUNC(snes_console_state::snes21_hi_w),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x006000, 0x007fff, 0, 0x9f0000, 0, read8sm_delegate(FUNC(base_sns_cart_slot_device::chip_read),(base_sns_cart_slot_device*)m_cartslot));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x006000, 0x007fff, 0, 0x9f0000, 0, write8sm_delegate(FUNC(base_sns_cart_slot_device::chip_write),(base_sns_cart_slot_device*)m_cartslot));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8_delegate(*this, FUNC(snes_console_state::snes21_lo_r)), write8_delegate(*this, FUNC(snes_console_state::snes21_lo_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8_delegate(*this, FUNC(snes_console_state::snes21_hi_r)), write8_delegate(*this, FUNC(snes_console_state::snes21_hi_w)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x006000, 0x007fff, 0, 0x9f0000, 0, read8sm_delegate(*m_cartslot, FUNC(base_sns_cart_slot_device::chip_read)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x006000, 0x007fff, 0, 0x9f0000, 0, write8sm_delegate(*m_cartslot, FUNC(base_sns_cart_slot_device::chip_write)));
m_maincpu->set_5a22_map();
break;
case SNES_SRTC:
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8_delegate(FUNC(snes_console_state::snes21_lo_r),this), write8_delegate(FUNC(snes_console_state::snes21_lo_w),this));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8_delegate(FUNC(snes_console_state::snes21_hi_r),this), write8_delegate(FUNC(snes_console_state::snes21_hi_w),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x002800, 0x002800, 0, 0xbf0000, 0, read8sm_delegate(FUNC(base_sns_cart_slot_device::chip_read),(base_sns_cart_slot_device*)m_cartslot));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x002801, 0x002801, 0, 0xbf0000, 0, write8sm_delegate(FUNC(base_sns_cart_slot_device::chip_write),(base_sns_cart_slot_device*)m_cartslot));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8_delegate(*this, FUNC(snes_console_state::snes21_lo_r)), write8_delegate(*this, FUNC(snes_console_state::snes21_lo_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8_delegate(*this, FUNC(snes_console_state::snes21_hi_r)), write8_delegate(*this, FUNC(snes_console_state::snes21_hi_w)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x002800, 0x002800, 0, 0xbf0000, 0, read8sm_delegate(*m_cartslot, FUNC(base_sns_cart_slot_device::chip_read)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x002801, 0x002801, 0, 0xbf0000, 0, write8sm_delegate(*m_cartslot, FUNC(base_sns_cart_slot_device::chip_write)));
m_maincpu->set_5a22_map();
break;
case SNES_SPC7110:
case SNES_SPC7110_RTC:
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8_delegate(FUNC(snes_console_state::snes7110_lo_r),this), write8_delegate(FUNC(snes_console_state::snes7110_lo_w),this));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8_delegate(FUNC(snes_console_state::snes7110_hi_r),this), write8_delegate(FUNC(snes_console_state::snes7110_hi_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8_delegate(*this, FUNC(snes_console_state::snes7110_lo_r)), write8_delegate(*this, FUNC(snes_console_state::snes7110_lo_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8_delegate(*this, FUNC(snes_console_state::snes7110_hi_r)), write8_delegate(*this, FUNC(snes_console_state::snes7110_hi_w)));
m_maincpu->set_5a22_map();
break;
case SNES_PFEST94:
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8_delegate(FUNC(snes_console_state::pfest94_lo_r),this), write8_delegate(FUNC(snes_console_state::pfest94_lo_w),this));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8_delegate(FUNC(snes_console_state::pfest94_hi_r),this), write8_delegate(FUNC(snes_console_state::pfest94_hi_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8_delegate(*this, FUNC(snes_console_state::pfest94_lo_r)), write8_delegate(*this, FUNC(snes_console_state::pfest94_lo_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8_delegate(*this, FUNC(snes_console_state::pfest94_hi_r)), write8_delegate(*this, FUNC(snes_console_state::pfest94_hi_w)));
m_maincpu->set_5a22_map();
break;
// pirate 'mappers'
case SNES_POKEMON:
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x800000, 0x80ffff, 0, 0x780000, 0, read8sm_delegate(FUNC(base_sns_cart_slot_device::chip_read),(base_sns_cart_slot_device*)m_cartslot));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x800000, 0x80ffff, 0, 0x780000, 0, write8sm_delegate(FUNC(base_sns_cart_slot_device::chip_write),(base_sns_cart_slot_device*)m_cartslot));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x800000, 0x80ffff, 0, 0x780000, 0, read8sm_delegate(*m_cartslot, FUNC(base_sns_cart_slot_device::chip_read)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x800000, 0x80ffff, 0, 0x780000, 0, write8sm_delegate(*m_cartslot, FUNC(base_sns_cart_slot_device::chip_write)));
break;
case SNES_TEKKEN2:
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x808000, 0x8087ff, 0, 0x3f0000, 0, read8sm_delegate(FUNC(base_sns_cart_slot_device::chip_read),(base_sns_cart_slot_device*)m_cartslot));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x808000, 0x8087ff, 0, 0x3f0000, 0, write8sm_delegate(FUNC(base_sns_cart_slot_device::chip_write),(base_sns_cart_slot_device*)m_cartslot));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x808000, 0x8087ff, 0, 0x3f0000, 0, read8sm_delegate(*m_cartslot, FUNC(base_sns_cart_slot_device::chip_read)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x808000, 0x8087ff, 0, 0x3f0000, 0, write8sm_delegate(*m_cartslot, FUNC(base_sns_cart_slot_device::chip_write)));
break;
case SNES_MCPIR1:
case SNES_MCPIR2:
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xffff00, 0xffffff, write8sm_delegate(FUNC(base_sns_cart_slot_device::chip_write),(base_sns_cart_slot_device*)m_cartslot));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xffff00, 0xffffff, write8sm_delegate(*m_cartslot, FUNC(base_sns_cart_slot_device::chip_write)));
break;
case SNES_20COL:
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x008000, 0x008fff, write8sm_delegate(FUNC(base_sns_cart_slot_device::chip_write),(base_sns_cart_slot_device*)m_cartslot));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x008000, 0x008fff, write8sm_delegate(*m_cartslot, FUNC(base_sns_cart_slot_device::chip_write)));
break;
case SNES_SOULBLAD:
// reads from xxx0-xxx3in range [80-bf] return a fixed sequence of 4bits; reads in range [c0-ff] return open bus
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x808000, 0x808003, 0, 0x3f7ff0, 0, read8sm_delegate(FUNC(base_sns_cart_slot_device::chip_read),(base_sns_cart_slot_device*)m_cartslot));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xc00000, 0xffffff, read8smo_delegate(FUNC(snes_console_state::snes_open_bus_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x808000, 0x808003, 0, 0x3f7ff0, 0, read8sm_delegate(*m_cartslot, FUNC(base_sns_cart_slot_device::chip_read)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xc00000, 0xffffff, read8smo_delegate(*this, FUNC(snes_console_state::snes_open_bus_r)));
break;
case SNES_BUGS:
case SNES_BANANA:
-// m_maincpu->space(AS_PROGRAM).install_read_handler(0x808000, 0x80ffff, 0, 0x780000, 0, read8sm_delegate(FUNC(base_sns_cart_slot_device::chip_read),(base_sns_cart_slot_device*)m_cartslot));
-// m_maincpu->space(AS_PROGRAM).install_write_handler(0x808000, 0x80ffff, 0, 0x780000, 0, write8sm_delegate(FUNC(base_sns_cart_slot_device::chip_write),(base_sns_cart_slot_device*)m_cartslot));
+// m_maincpu->space(AS_PROGRAM).install_read_handler(0x808000, 0x80ffff, 0, 0x780000, 0, read8sm_delegate(*m_cartslot, FUNC(base_sns_cart_slot_device::chip_read)));
+// m_maincpu->space(AS_PROGRAM).install_write_handler(0x808000, 0x80ffff, 0, 0x780000, 0, write8sm_delegate(*m_cartslot, FUNC(base_sns_cart_slot_device::chip_write)));
// m_maincpu->set_5a22_map();
break;
}
@@ -1359,10 +1359,10 @@ void snes_console_state::snes(machine_config &config)
m_ppu->set_screen("screen");
SNES_CONTROL_PORT(config, m_ctrl1, snes_control_port_devices, "joypad");
- m_ctrl1->set_onscreen_callback(FUNC(snes_console_state::onscreen_cb), this);
+ m_ctrl1->set_onscreen_callback(FUNC(snes_console_state::onscreen_cb));
SNES_CONTROL_PORT(config, m_ctrl2, snes_control_port_devices, "joypad");
- m_ctrl2->set_onscreen_callback(FUNC(snes_console_state::onscreen_cb), this);
- m_ctrl2->set_gunlatch_callback(FUNC(snes_console_state::gun_latch_cb), this);
+ m_ctrl2->set_onscreen_callback(FUNC(snes_console_state::onscreen_cb));
+ m_ctrl2->set_gunlatch_callback(FUNC(snes_console_state::gun_latch_cb));
/* sound hardware */
SPEAKER(config, "lspeaker").front_left();
diff --git a/src/mame/drivers/snesb.cpp b/src/mame/drivers/snesb.cpp
index 1b5013d81ad..27ff7b6cc57 100644
--- a/src/mame/drivers/snesb.cpp
+++ b/src/mame/drivers/snesb.cpp
@@ -808,12 +808,12 @@ void snesb_state::init_kinstb()
}
m_shared_ram = std::make_unique<int8_t[]>(0x100);
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x781000, 0x7810ff, read8_delegate(FUNC(snesb_state::sharedram_r),this), write8_delegate(FUNC(snesb_state::sharedram_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x781000, 0x7810ff, read8_delegate(*this, FUNC(snesb_state::sharedram_r)), write8_delegate(*this, FUNC(snesb_state::sharedram_w)));
/* extra inputs */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x770071, 0x770071, read8_delegate(FUNC(snesb_state::snesb_dsw1_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x770073, 0x770073, read8_delegate(FUNC(snesb_state::snesb_dsw2_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x770079, 0x770079, read8_delegate(FUNC(snesb_state::snesb_coin_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x770071, 0x770071, read8_delegate(*this, FUNC(snesb_state::snesb_dsw1_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x770073, 0x770073, read8_delegate(*this, FUNC(snesb_state::snesb_dsw2_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x770079, 0x770079, read8_delegate(*this, FUNC(snesb_state::snesb_coin_r)));
init_snes_hirom();
}
@@ -853,9 +853,9 @@ void snesb_state::init_ffight2b()
rom[0x7ffc] = 0x54;
/* extra inputs */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x770071, 0x770071, read8_delegate(FUNC(snesb_state::snesb_dsw1_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x770073, 0x770073, read8_delegate(FUNC(snesb_state::snesb_dsw2_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x770079, 0x770079, read8_delegate(FUNC(snesb_state::snesb_coin_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x770071, 0x770071, read8_delegate(*this, FUNC(snesb_state::snesb_dsw1_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x770073, 0x770073, read8_delegate(*this, FUNC(snesb_state::snesb_dsw2_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x770079, 0x770079, read8_delegate(*this, FUNC(snesb_state::snesb_coin_r)));
init_snes();
}
@@ -877,9 +877,9 @@ void snesb_state::init_iron()
}
/* extra inputs */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x770071, 0x770071, read8_delegate(FUNC(snesb_state::snesb_dsw1_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x770073, 0x770073, read8_delegate(FUNC(snesb_state::snesb_dsw2_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x770079, 0x770079, read8_delegate(FUNC(snesb_state::snesb_coin_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x770071, 0x770071, read8_delegate(*this, FUNC(snesb_state::snesb_dsw1_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x770073, 0x770073, read8_delegate(*this, FUNC(snesb_state::snesb_dsw2_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x770079, 0x770079, read8_delegate(*this, FUNC(snesb_state::snesb_coin_r)));
init_snes();
}
@@ -907,9 +907,9 @@ void snesb_state::init_denseib()
rom[0xfffd] = 0xf7;
/* extra inputs */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x770071, 0x770071, read8_delegate(FUNC(snesb_state::snesb_dsw1_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x770073, 0x770073, read8_delegate(FUNC(snesb_state::snesb_dsw2_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x770079, 0x770079, read8_delegate(FUNC(snesb_state::snesb_coin_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x770071, 0x770071, read8_delegate(*this, FUNC(snesb_state::snesb_dsw1_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x770073, 0x770073, read8_delegate(*this, FUNC(snesb_state::snesb_dsw2_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x770079, 0x770079, read8_delegate(*this, FUNC(snesb_state::snesb_coin_r)));
init_snes_hirom();
}
@@ -969,9 +969,9 @@ void snesb_state::init_denseib2()
dst[0xfffd] = 0xf7;
/* extra inputs */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x770071, 0x770071, read8_delegate(FUNC(snesb_state::snesb_dsw1_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x770073, 0x770073, read8_delegate(FUNC(snesb_state::snesb_dsw2_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x770079, 0x770079, read8_delegate(FUNC(snesb_state::snesb_coin_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x770071, 0x770071, read8_delegate(*this, FUNC(snesb_state::snesb_dsw1_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x770073, 0x770073, read8_delegate(*this, FUNC(snesb_state::snesb_dsw2_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x770079, 0x770079, read8_delegate(*this, FUNC(snesb_state::snesb_coin_r)));
init_snes_hirom();
}
@@ -1001,9 +1001,9 @@ void snesb_state::init_legendsb()
rom[0x7ffd] = 0x80;
// extra inputs
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x770071, 0x770071, read8_delegate(FUNC(snesb_state::snesb_dsw1_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x770073, 0x770073, read8_delegate(FUNC(snesb_state::snesb_dsw2_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x770079, 0x770079, read8_delegate(FUNC(snesb_state::snesb_coin_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x770071, 0x770071, read8_delegate(*this, FUNC(snesb_state::snesb_dsw1_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x770073, 0x770073, read8_delegate(*this, FUNC(snesb_state::snesb_dsw2_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x770079, 0x770079, read8_delegate(*this, FUNC(snesb_state::snesb_coin_r)));
init_snes();
}
@@ -1060,16 +1060,16 @@ void snesb_state::init_sblast2b()
dst[0xfffd] = 0x7a;
/* protection checks */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x75bd37, 0x75bd37, read8_delegate(FUNC(snesb_state::sb2b_75bd37_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x6a6000, 0x6a6fff, read8_delegate(FUNC(snesb_state::sb2b_6a6xxx_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x75bd37, 0x75bd37, read8_delegate(*this, FUNC(snesb_state::sb2b_75bd37_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x6a6000, 0x6a6fff, read8_delegate(*this, FUNC(snesb_state::sb2b_6a6xxx_r)));
/* handler to read boot code */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x007000, 0x007fff, read8_delegate(FUNC(snesb_state::sb2b_7xxx_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x007000, 0x007fff, read8_delegate(*this, FUNC(snesb_state::sb2b_7xxx_r)));
/* extra inputs */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x770071, 0x770071, read8_delegate(FUNC(snesb_state::snesb_dsw1_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x770073, 0x770073, read8_delegate(FUNC(snesb_state::snesb_dsw2_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x770079, 0x770079, read8_delegate(FUNC(snesb_state::snesb_coin_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x770071, 0x770071, read8_delegate(*this, FUNC(snesb_state::snesb_dsw1_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x770073, 0x770073, read8_delegate(*this, FUNC(snesb_state::snesb_dsw2_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x770079, 0x770079, read8_delegate(*this, FUNC(snesb_state::snesb_coin_r)));
init_snes_hirom();
}
@@ -1128,21 +1128,21 @@ void snesb_state::init_endless()
dst[0x7ffd] = 0x80;
/* protection checks */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x580000, 0x580fff, read8_delegate(FUNC(snesb_state::endless_580xxx_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x624b7f, 0x624b7f, read8_delegate(FUNC(snesb_state::endless_624b7f_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x580000, 0x580fff, read8_delegate(*this, FUNC(snesb_state::endless_580xxx_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x624b7f, 0x624b7f, read8_delegate(*this, FUNC(snesb_state::endless_624b7f_r)));
/* work around missing content */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x800b, 0x800c, read8_delegate(FUNC(snesb_state::endless_800b_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x800b, 0x800c, read8_delegate(*this, FUNC(snesb_state::endless_800b_r)));
m_shared_ram = std::make_unique<int8_t[]>(0x22);
m_shared_ram2 = std::make_unique<int8_t[]>(0x22);
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x781000, 0x781021, read8_delegate(FUNC(snesb_state::sharedram_r),this), write8_delegate(FUNC(snesb_state::sharedram_w),this));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x781200, 0x781221, read8_delegate(FUNC(snesb_state::sharedram2_r),this), write8_delegate(FUNC(snesb_state::sharedram2_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x781000, 0x781021, read8_delegate(*this, FUNC(snesb_state::sharedram_r)), write8_delegate(*this, FUNC(snesb_state::sharedram_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x781200, 0x781221, read8_delegate(*this, FUNC(snesb_state::sharedram2_r)), write8_delegate(*this, FUNC(snesb_state::sharedram2_w)));
/* extra inputs */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x770071, 0x770071, read8_delegate(FUNC(snesb_state::snesb_dsw1_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x770073, 0x770073, read8_delegate(FUNC(snesb_state::snesb_dsw2_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x770079, 0x770079, read8_delegate(FUNC(snesb_state::snesb_coin_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x770071, 0x770071, read8_delegate(*this, FUNC(snesb_state::snesb_dsw1_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x770073, 0x770073, read8_delegate(*this, FUNC(snesb_state::snesb_dsw2_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x770079, 0x770079, read8_delegate(*this, FUNC(snesb_state::snesb_coin_r)));
init_snes();
}
@@ -1281,13 +1281,13 @@ void snesb_state::init_venom()
m_shared_ram = std::make_unique<int8_t[]>(0x22);
m_shared_ram2 = std::make_unique<int8_t[]>(0x22);
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x781000, 0x781021, read8_delegate(FUNC(snesb_state::sharedram_r),this), write8_delegate(FUNC(snesb_state::sharedram_w),this));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x781200, 0x781221, read8_delegate(FUNC(snesb_state::sharedram2_r),this), write8_delegate(FUNC(snesb_state::sharedram2_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x781000, 0x781021, read8_delegate(*this, FUNC(snesb_state::sharedram_r)), write8_delegate(*this, FUNC(snesb_state::sharedram_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x781200, 0x781221, read8_delegate(*this, FUNC(snesb_state::sharedram2_r)), write8_delegate(*this, FUNC(snesb_state::sharedram2_w)));
/* extra inputs */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x770071, 0x770071, read8_delegate(FUNC(snesb_state::snesb_dsw1_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x770073, 0x770073, read8_delegate(FUNC(snesb_state::snesb_dsw2_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x770079, 0x770079, read8_delegate(FUNC(snesb_state::snesb_coin_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x770071, 0x770071, read8_delegate(*this, FUNC(snesb_state::snesb_dsw1_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x770073, 0x770073, read8_delegate(*this, FUNC(snesb_state::snesb_dsw2_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x770079, 0x770079, read8_delegate(*this, FUNC(snesb_state::snesb_coin_r)));
init_snes();
}
diff --git a/src/mame/drivers/snk68.cpp b/src/mame/drivers/snk68.cpp
index 6a8d9965d07..c980c5f6494 100644
--- a/src/mame/drivers/snk68.cpp
+++ b/src/mame/drivers/snk68.cpp
@@ -66,8 +66,8 @@ void snk68_state::pow_map(address_map &map)
{
map(0x000000, 0x03ffff).rom();
map(0x040000, 0x043fff).ram();
- map(0x080000, 0x080000).lr8("P2_r", [this]() -> u8 { return m_p2_io->read(); });
- map(0x080001, 0x080001).lr8("P1_r", [this]() -> u8 { return m_p1_io->read(); });
+ map(0x080000, 0x080000).lr8(NAME([this] () -> u8 { return m_p2_io->read(); }));
+ map(0x080001, 0x080001).lr8(NAME([this] () -> u8 { return m_p1_io->read(); }));
map(0x080000, 0x080000).w(FUNC(snk68_state::sound_w));
map(0x0c0000, 0x0c0001).portr("SYSTEM");
map(0x0c0001, 0x0c0001).w(FUNC(snk68_state::flipscreen_w)); // + char bank
@@ -110,12 +110,12 @@ void searchar_state::searchar_map(address_map &map)
{
map(0x000000, 0x03ffff).rom();
map(0x040000, 0x043fff).ram();
- map(0x080001, 0x080001).lr8("P1_invert_r", [this]() -> u8 { return m_p1_io->read() ^ m_invert_controls; });
- map(0x080003, 0x080003).lr8("P2_invert_r", [this]() -> u8 { return m_p2_io->read() ^ m_invert_controls; });
- map(0x080005, 0x080005).lr8("SYS_invert_r", [this]() -> u8 { return m_system_io->read() ^ m_invert_controls; });
+ map(0x080001, 0x080001).lr8(NAME([this] () -> u8 { return m_p1_io->read() ^ m_invert_controls; }));
+ map(0x080003, 0x080003).lr8(NAME([this] () -> u8 { return m_p2_io->read() ^ m_invert_controls; }));
+ map(0x080005, 0x080005).lr8(NAME([this] () -> u8 { return m_system_io->read() ^ m_invert_controls; }));
map(0x080000, 0x080000).w(FUNC(searchar_state::sound_w));
/* top byte unknown, bottom is protection in ikari3 and streetsm */
- map(0x080007, 0x080007).lw8("invctrl_w", [this](u8 data){ m_invert_controls = ((data & 0xff) == 0x07) ? 0xff : 0x00; } );
+ map(0x080007, 0x080007).lw8(NAME([this] (u8 data){ m_invert_controls = ((data & 0xff) == 0x07) ? 0xff : 0x00; } ));
map(0x0c0001, 0x0c0001).w(FUNC(searchar_state::flipscreen_w));
map(0x0c0000, 0x0c0001).r(FUNC(searchar_state::rotary_1_r)); /* Player 1 rotary */
map(0x0c8000, 0x0c8001).r(FUNC(searchar_state::rotary_2_r)); /* Player 2 rotary */
@@ -154,7 +154,7 @@ void snk68_state::sound_io_map(address_map &map)
map(0x00, 0x00).rw("ymsnd", FUNC(ym3812_device::status_port_r), FUNC(ym3812_device::control_port_w));
map(0x20, 0x20).w("ymsnd", FUNC(ym3812_device::write_port_w));
map(0x40, 0x40).w(FUNC(snk68_state::D7759_write_port_0_w));
- map(0x80, 0x80).lw8("upd_reset", [this](u8 data){ m_upd7759->reset_w(BIT(data, 7)); } );
+ map(0x80, 0x80).lw8(NAME([this] (u8 data) { m_upd7759->reset_w(BIT(data, 7)); } ));
}
/******************************************************************************/
@@ -601,7 +601,7 @@ void snk68_state::pow(machine_config &config)
SNK68_SPR(config, m_sprites, 0);
m_sprites->set_gfxdecode_tag(m_gfxdecode);
- m_sprites->set_tile_indirect_cb(FUNC(snk68_state::tile_callback_pow), this);
+ m_sprites->set_tile_indirect_cb(FUNC(snk68_state::tile_callback_pow));
m_sprites->set_xpos_shift(12);
m_sprites->set_color_entry_mask(0x7f);
@@ -622,7 +622,7 @@ void snk68_state::pow(machine_config &config)
void snk68_state::streetsm(machine_config &config)
{
pow(config);
- m_sprites->set_tile_indirect_cb(FUNC(snk68_state::tile_callback_notpow), this);
+ m_sprites->set_tile_indirect_cb(FUNC(snk68_state::tile_callback_notpow));
}
void searchar_state::searchar(machine_config &config)
diff --git a/src/mame/drivers/snowbros.cpp b/src/mame/drivers/snowbros.cpp
index b15e85c5820..207c3be4cd8 100644
--- a/src/mame/drivers/snowbros.cpp
+++ b/src/mame/drivers/snowbros.cpp
@@ -2817,7 +2817,7 @@ void snowbros_state::init_4in1boot()
buffer[i] = src[i^0x4000];
memcpy(src,&buffer[0],len);
}
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x200000, 0x200001, read16_delegate(FUNC(snowbros_state::_4in1_02_read),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x200000, 0x200001, read16_delegate(*this, FUNC(snowbros_state::_4in1_02_read)));
}
void snowbros_state::init_snowbro3()
@@ -2844,7 +2844,7 @@ READ16_MEMBER(snowbros_state::_3in1_read)
void snowbros_state::init_3in1semi()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x200000, 0x200001, read16_delegate(FUNC(snowbros_state::_3in1_read),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x200000, 0x200001, read16_delegate(*this, FUNC(snowbros_state::_3in1_read)));
}
@@ -2855,7 +2855,7 @@ READ16_MEMBER(snowbros_state::cookbib3_read)
void snowbros_state::init_cookbib3()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x200000, 0x200001, read16_delegate(FUNC(snowbros_state::cookbib3_read),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x200000, 0x200001, read16_delegate(*this, FUNC(snowbros_state::cookbib3_read)));
}
void snowbros_state::init_pzlbreak()
@@ -2893,7 +2893,7 @@ void snowbros_state::init_toto()
}
// protection? (just return 0x07)
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x500006, 0x500007, read16_delegate(FUNC(snowbros_state::toto_read),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x500006, 0x500007, read16_delegate(*this, FUNC(snowbros_state::toto_read)));
}
void snowbros_state::init_hyperpac()
diff --git a/src/mame/drivers/sorcerer.cpp b/src/mame/drivers/sorcerer.cpp
index 446f78ea8e3..ed7ac04a44f 100644
--- a/src/mame/drivers/sorcerer.cpp
+++ b/src/mame/drivers/sorcerer.cpp
@@ -488,8 +488,8 @@ void sorcerer_state::sorcerer(machine_config &config)
INPUT_BUFFER(config, "cent_status_in");
/* quickload */
- SNAPSHOT(config, "snapshot", "snp", attotime::from_seconds(2)).set_load_callback(FUNC(sorcerer_state::snapshot_cb), this);
- QUICKLOAD(config, "quickload", "bin", attotime::from_seconds(3)).set_load_callback(FUNC(sorcerer_state::quickload_cb), this);
+ SNAPSHOT(config, "snapshot", "snp", attotime::from_seconds(2)).set_load_callback(FUNC(sorcerer_state::snapshot_cb));
+ QUICKLOAD(config, "quickload", "bin", attotime::from_seconds(3)).set_load_callback(FUNC(sorcerer_state::quickload_cb));
CASSETTE(config, m_cassette1);
m_cassette1->set_formats(sorcerer_cassette_formats);
diff --git a/src/mame/drivers/spartanxtec.cpp b/src/mame/drivers/spartanxtec.cpp
index 6ff57310e15..5855b4d86eb 100644
--- a/src/mame/drivers/spartanxtec.cpp
+++ b/src/mame/drivers/spartanxtec.cpp
@@ -113,7 +113,7 @@ TILE_GET_INFO_MEMBER(spartanxtec_state::get_kungfum_bg_tile_info)
void spartanxtec_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(spartanxtec_state::get_kungfum_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(spartanxtec_state::get_kungfum_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_bg_tilemap->set_scroll_rows(32);
}
diff --git a/src/mame/drivers/spc1500.cpp b/src/mame/drivers/spc1500.cpp
index 8da3f204d41..d5e95b54b4c 100644
--- a/src/mame/drivers/spc1500.cpp
+++ b/src/mame/drivers/spc1500.cpp
@@ -900,8 +900,8 @@ void spc1500_state::spc1500(machine_config &config)
m_vdg->set_screen("screen");
m_vdg->set_show_border_area(false);
m_vdg->set_char_width(8);
- m_vdg->set_update_row_callback(FUNC(spc1500_state::crtc_update_row), this);
- m_vdg->set_reconfigure_callback(FUNC(spc1500_state::crtc_reconfig), this);
+ m_vdg->set_update_row_callback(FUNC(spc1500_state::crtc_update_row));
+ m_vdg->set_reconfigure_callback(FUNC(spc1500_state::crtc_reconfig));
MCFG_VIDEO_START_OVERRIDE(spc1500_state, spc)
diff --git a/src/mame/drivers/spdheat.cpp b/src/mame/drivers/spdheat.cpp
index 4a811f553b0..8b8066ee9b6 100644
--- a/src/mame/drivers/spdheat.cpp
+++ b/src/mame/drivers/spdheat.cpp
@@ -58,10 +58,10 @@ void spdheat_state::machine_reset()
void spdheat_state::video_start()
{
- m_fg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(spdheat_state::get_fg_tile_info<0>), this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_fg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(spdheat_state::get_fg_tile_info<1>), this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_fg_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(spdheat_state::get_fg_tile_info<2>), this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_fg_tilemap[3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(spdheat_state::get_fg_tile_info<3>), this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(spdheat_state::get_fg_tile_info<0>)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(spdheat_state::get_fg_tile_info<1>)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fg_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(spdheat_state::get_fg_tile_info<2>)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fg_tilemap[3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(spdheat_state::get_fg_tile_info<3>)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
diff --git a/src/mame/drivers/spectrum.cpp b/src/mame/drivers/spectrum.cpp
index a59235f7904..56acc9e4696 100644
--- a/src/mame/drivers/spectrum.cpp
+++ b/src/mame/drivers/spectrum.cpp
@@ -736,8 +736,8 @@ void spectrum_state::spectrum_common(machine_config &config)
m_exp->nmi_handler().set_inputline(m_maincpu, INPUT_LINE_NMI);
/* devices */
- SNAPSHOT(config, "snapshot", "ach,frz,plusd,prg,sem,sit,sna,snp,snx,sp,z80,zx").set_load_callback(FUNC(spectrum_state::snapshot_cb), this);
- QUICKLOAD(config, "quickload", "raw,scr", attotime::from_seconds(2)).set_load_callback(FUNC(spectrum_state::quickload_cb), this); // The delay prevents the screen from being cleared by the RAM test at boot
+ SNAPSHOT(config, "snapshot", "ach,frz,plusd,prg,sem,sit,sna,snp,snx,sp,z80,zx").set_load_callback(FUNC(spectrum_state::snapshot_cb));
+ QUICKLOAD(config, "quickload", "raw,scr", attotime::from_seconds(2)).set_load_callback(FUNC(spectrum_state::quickload_cb)); // The delay prevents the screen from being cleared by the RAM test at boot
CASSETTE(config, m_cassette);
m_cassette->set_formats(tzx_cassette_formats);
diff --git a/src/mame/drivers/spiders.cpp b/src/mame/drivers/spiders.cpp
index b076d4a5e70..e8d6c599feb 100644
--- a/src/mame/drivers/spiders.cpp
+++ b/src/mame/drivers/spiders.cpp
@@ -527,7 +527,7 @@ void spiders_state::spiders(machine_config &config)
crtc.set_screen("screen");
crtc.set_show_border_area(false);
crtc.set_char_width(8);
- crtc.set_update_row_callback(FUNC(spiders_state::crtc_update_row), this);
+ crtc.set_update_row_callback(FUNC(spiders_state::crtc_update_row));
crtc.out_de_callback().set("ic60", FUNC(ttl74123_device::a_w));
PIA6821(config, m_pia[0], 0);
diff --git a/src/mame/drivers/splash.cpp b/src/mame/drivers/splash.cpp
index e039b222fc2..d49b6069dd1 100644
--- a/src/mame/drivers/splash.cpp
+++ b/src/mame/drivers/splash.cpp
@@ -81,7 +81,7 @@ void splash_state::splash_map(address_map &map)
map(0x840002, 0x840003).portr("DSW2");
map(0x840004, 0x840005).portr("P1");
map(0x840006, 0x840007).portr("P2");
- map(0x84000a, 0x84000a).select(0x000070).lw8("outlatch_w", [this](offs_t offset, u8 data) { m_outlatch->write_d0(offset >> 4, data); });
+ map(0x84000a, 0x84000a).select(0x000070).lw8(NAME([this] (offs_t offset, u8 data) { m_outlatch->write_d0(offset >> 4, data); }));
map(0x84000f, 0x84000f).w(m_soundlatch, FUNC(generic_latch_8_device::write));
map(0x880000, 0x8817ff).ram().w(FUNC(splash_state::vram_w)).share("videoram"); /* Video RAM */
map(0x881800, 0x881803).ram().share("vregs"); /* Scroll registers */
@@ -161,7 +161,7 @@ void splash_state::roldfrog_map(address_map &map)
map(0x840002, 0x840003).portr("DSW2");
map(0x840004, 0x840005).portr("P1");
map(0x840006, 0x840007).portr("P2");
- map(0x84000a, 0x84000a).select(0x000070).lw8("outlatch_w", [this](offs_t offset, u8 data) { m_outlatch->write_d0(offset >> 4, data); });
+ map(0x84000a, 0x84000a).select(0x000070).lw8(NAME([this] (offs_t offset, u8 data) { m_outlatch->write_d0(offset >> 4, data); }));
map(0x84000f, 0x84000f).w(m_soundlatch, FUNC(generic_latch_8_device::write));
map(0x880000, 0x8817ff).ram().w(FUNC(splash_state::vram_w)).share("videoram"); /* Video RAM */
map(0x881800, 0x881803).ram().share("vregs"); /* Scroll registers */
@@ -1436,8 +1436,8 @@ void funystrp_state::init_funystrp()
membank("sound_bank")->configure_entries(0, 16, &ROM[0x00000], 0x8000);
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x100000, 0x1fffff, write16_delegate(FUNC(funystrp_state::protection_w), this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x100000, 0x1fffff, read16_delegate(FUNC(funystrp_state::protection_r),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x100000, 0x1fffff, write16_delegate(*this, FUNC(funystrp_state::protection_w)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x100000, 0x1fffff, read16_delegate(*this, FUNC(funystrp_state::protection_r)));
}
GAME( 1992, splash, 0, splash, splash, splash_state, init_splash, ROT0, "Gaelco / OMK Software", "Splash! (Ver. 1.2 World)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/spoker.cpp b/src/mame/drivers/spoker.cpp
index 149228cff12..463fef68d24 100644
--- a/src/mame/drivers/spoker.cpp
+++ b/src/mame/drivers/spoker.cpp
@@ -151,8 +151,8 @@ WRITE8_MEMBER(spoker_state::fg_color_w)
void spoker_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(spoker_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 32, 128, 8);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(spoker_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 128, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(spoker_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 32, 128, 8);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(spoker_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 128, 32);
m_fg_tilemap->set_transparent_pen(0);
}
diff --git a/src/mame/drivers/spool99.cpp b/src/mame/drivers/spool99.cpp
index e7b57a8580e..c1ebdc6c3c3 100644
--- a/src/mame/drivers/spool99.cpp
+++ b/src/mame/drivers/spool99.cpp
@@ -162,7 +162,7 @@ TILE_GET_INFO_MEMBER(spool99_state::get_tile_info)
void spool99_state::video_start()
{
- m_sc0_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(spool99_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_sc0_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(spool99_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
}
uint32_t spool99_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
diff --git a/src/mame/drivers/sprint2.cpp b/src/mame/drivers/sprint2.cpp
index 3db9afd6015..aecd99d4385 100644
--- a/src/mame/drivers/sprint2.cpp
+++ b/src/mame/drivers/sprint2.cpp
@@ -70,7 +70,7 @@ int sprint2_state::service_mode()
}
-INTERRUPT_GEN_MEMBER(sprint2_state::sprint2)
+INTERRUPT_GEN_MEMBER(sprint2_state::sprint2_irq)
{
/* handle steering wheels */
@@ -494,7 +494,7 @@ void sprint2_state::sprint2(machine_config &config)
/* basic machine hardware */
M6502(config, m_maincpu, 12.096_MHz_XTAL / 16);
m_maincpu->set_addrmap(AS_PROGRAM, &sprint2_state::sprint2_map);
- m_maincpu->set_vblank_int("screen", FUNC(sprint2_state::sprint2));
+ m_maincpu->set_vblank_int("screen", FUNC(sprint2_state::sprint2_irq));
WATCHDOG_TIMER(config, m_watchdog).set_vblank_count(m_screen, 8);
diff --git a/src/mame/drivers/spy.cpp b/src/mame/drivers/spy.cpp
index 856919cec3e..dacaf45fa28 100644
--- a/src/mame/drivers/spy.cpp
+++ b/src/mame/drivers/spy.cpp
@@ -514,13 +514,13 @@ void spy_state::spy(machine_config &config)
K052109(config, m_k052109, 0); // 051961 on schematics
m_k052109->set_palette(m_palette);
m_k052109->set_screen("screen");
- m_k052109->set_tile_callback(FUNC(spy_state::tile_callback), this);
+ m_k052109->set_tile_callback(FUNC(spy_state::tile_callback));
m_k052109->irq_handler().set_inputline(m_maincpu, M6809_IRQ_LINE);
K051960(config, m_k051960, 0);
m_k051960->set_palette(m_palette);
m_k051960->set_screen("screen");
- m_k051960->set_sprite_callback(FUNC(spy_state::sprite_callback), this);
+ m_k051960->set_sprite_callback(FUNC(spy_state::sprite_callback));
/* sound hardware */
SPEAKER(config, "mono").front_center();
diff --git a/src/mame/drivers/spyhuntertec.cpp b/src/mame/drivers/spyhuntertec.cpp
index 59ebd1ced16..f13f8ba2fa1 100644
--- a/src/mame/drivers/spyhuntertec.cpp
+++ b/src/mame/drivers/spyhuntertec.cpp
@@ -32,8 +32,8 @@ sound system appears to be the same as 'spartanxtec.cpp'
class spyhuntertec_state : public driver_device
{
public:
- spyhuntertec_state(const machine_config &mconfig, device_type type, const char *tag)
- : driver_device(mconfig, type, tag),
+ spyhuntertec_state(const machine_config &mconfig, device_type type, const char *tag) :
+ driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"),
m_audiocpu(*this, "audiocpu"),
m_analog_timer(*this, "analog_timer"),
@@ -242,10 +242,10 @@ TILE_GET_INFO_MEMBER(spyhuntertec_state::spyhunt_get_alpha_tile_info)
void spyhuntertec_state::video_start()
{
/* initialize the background tilemap */
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(spyhuntertec_state::spyhunt_get_bg_tile_info),this), tilemap_mapper_delegate(FUNC(spyhuntertec_state::spyhunt_bg_scan),this), 64,16, 64,32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(spyhuntertec_state::spyhunt_get_bg_tile_info)), tilemap_mapper_delegate(*this, FUNC(spyhuntertec_state::spyhunt_bg_scan)), 64,16, 64,32);
/* initialize the text tilemap */
- m_alpha_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(spyhuntertec_state::spyhunt_get_alpha_tile_info),this), TILEMAP_SCAN_COLS, 16,8, 32,32);
+ m_alpha_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(spyhuntertec_state::spyhunt_get_alpha_tile_info)), TILEMAP_SCAN_COLS, 16,8, 32,32);
m_alpha_tilemap->set_transparent_pen(0);
m_alpha_tilemap->set_scrollx(0, 16);
diff --git a/src/mame/drivers/squale.cpp b/src/mame/drivers/squale.cpp
index 65c33c5cd0b..08d83bec5de 100644
--- a/src/mame/drivers/squale.cpp
+++ b/src/mame/drivers/squale.cpp
@@ -840,7 +840,7 @@ void squale_state::squale(machine_config &config)
SOFTWARE_LIST(config, "flop525_list").set_original("squale");
/* Cartridge slot */
- GENERIC_CARTSLOT(config, "cartslot", generic_linear_slot, "squale_cart").set_device_load(FUNC(squale_state::cart_load), this);
+ GENERIC_CARTSLOT(config, "cartslot", generic_linear_slot, "squale_cart").set_device_load(FUNC(squale_state::cart_load));
SOFTWARE_LIST(config, "cart_list").set_original("squale_cart");
}
diff --git a/src/mame/drivers/srmp2.cpp b/src/mame/drivers/srmp2.cpp
index fd7352d610e..100d4cd35a7 100644
--- a/src/mame/drivers/srmp2.cpp
+++ b/src/mame/drivers/srmp2.cpp
@@ -1188,7 +1188,7 @@ void srmp2_state::srmp3(machine_config &config)
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag("gfxdecode");
- m_seta001->set_gfxbank_callback(FUNC(srmp2_state::srmp3_gfxbank_callback), this);
+ m_seta001->set_gfxbank_callback(FUNC(srmp2_state::srmp3_gfxbank_callback));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
@@ -1240,7 +1240,7 @@ void srmp2_state::mjyuugi(machine_config &config)
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag("gfxdecode");
- m_seta001->set_gfxbank_callback(FUNC(srmp2_state::srmp3_gfxbank_callback), this);
+ m_seta001->set_gfxbank_callback(FUNC(srmp2_state::srmp3_gfxbank_callback));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
diff --git a/src/mame/drivers/ssem.cpp b/src/mame/drivers/ssem.cpp
index 98b2927edeb..62b543c48cf 100644
--- a/src/mame/drivers/ssem.cpp
+++ b/src/mame/drivers/ssem.cpp
@@ -648,7 +648,7 @@ void ssem_state::ssem(machine_config &config)
PALETTE(config, "palette", palette_device::MONOCHROME);
/* quickload */
- QUICKLOAD(config, "quickload", "snp,asm").set_load_callback(FUNC(ssem_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "snp,asm").set_load_callback(FUNC(ssem_state::quickload_cb));
}
diff --git a/src/mame/drivers/sshangha.cpp b/src/mame/drivers/sshangha.cpp
index ae800c6bc95..673de4f8907 100644
--- a/src/mame/drivers/sshangha.cpp
+++ b/src/mame/drivers/sshangha.cpp
@@ -443,8 +443,8 @@ void sshangha_state::sshangha(machine_config &config)
m_tilegen->set_pf2_col_bank(0x20);
m_tilegen->set_pf1_col_mask(0x0f);
m_tilegen->set_pf2_col_mask(0x0f);
- m_tilegen->set_bank1_callback(FUNC(sshangha_state::bank_callback), this);
- m_tilegen->set_bank2_callback(FUNC(sshangha_state::bank_callback), this);
+ m_tilegen->set_bank1_callback(FUNC(sshangha_state::bank_callback));
+ m_tilegen->set_bank2_callback(FUNC(sshangha_state::bank_callback));
m_tilegen->set_pf12_8x8_bank(0);
m_tilegen->set_pf12_16x16_bank(1);
m_tilegen->set_gfxdecode_tag("gfxdecode");
diff --git a/src/mame/drivers/sshot.cpp b/src/mame/drivers/sshot.cpp
index 0cfeabd8617..2facbbdaf4a 100644
--- a/src/mame/drivers/sshot.cpp
+++ b/src/mame/drivers/sshot.cpp
@@ -212,7 +212,7 @@ TILE_GET_INFO_MEMBER(supershot_state::get_supershot_text_tile_info)
void supershot_state::video_start()
{
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(supershot_state::get_supershot_text_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(supershot_state::get_supershot_text_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
uint32_t supershot_state::screen_update_supershot(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
diff --git a/src/mame/drivers/ssingles.cpp b/src/mame/drivers/ssingles.cpp
index 01681aef641..bf6df8a76e3 100644
--- a/src/mame/drivers/ssingles.cpp
+++ b/src/mame/drivers/ssingles.cpp
@@ -571,7 +571,7 @@ void ssingles_state::ssingles(machine_config &config)
crtc.set_screen("screen");
crtc.set_show_border_area(false);
crtc.set_char_width(8);
- crtc.set_update_row_callback(FUNC(ssingles_state::ssingles_update_row), this);
+ crtc.set_update_row_callback(FUNC(ssingles_state::ssingles_update_row));
crtc.out_vsync_callback().set_inputline(m_maincpu, INPUT_LINE_NMI);
/* sound hardware */
@@ -595,7 +595,7 @@ void ssingles_state::atamanot(machine_config &config)
m_maincpu->set_addrmap(AS_IO, &ssingles_state::atamanot_io_map);
mc6845_device &crtc(*subdevice<mc6845_device>("crtc"));
- crtc.set_update_row_callback(FUNC(ssingles_state::atamanot_update_row), this);
+ crtc.set_update_row_callback(FUNC(ssingles_state::atamanot_update_row));
crtc.out_vsync_callback().set(FUNC(ssingles_state::atamanot_irq));
subdevice<gfxdecode_device>("gfxdecode")->set_info(gfx_atamanot);
diff --git a/src/mame/drivers/stadhero.cpp b/src/mame/drivers/stadhero.cpp
index c5b66a9551a..de0bc01baa3 100644
--- a/src/mame/drivers/stadhero.cpp
+++ b/src/mame/drivers/stadhero.cpp
@@ -60,7 +60,7 @@ void stadhero_state::main_map(address_map &map)
map(0x240010, 0x240017).w(m_tilegen, FUNC(deco_bac06_device::pf_control_1_w));
map(0x260000, 0x261fff).rw(m_tilegen, FUNC(deco_bac06_device::pf_data_r), FUNC(deco_bac06_device::pf_data_w));
map(0x30c000, 0x30c001).portr("INPUTS");
- map(0x30c002, 0x30c002).lr8("30c002", [this]() { return uint8_t(m_coin->read()); });
+ map(0x30c002, 0x30c002).lr8(NAME([this] () { return uint8_t(m_coin->read()); }));
map(0x30c003, 0x30c003).r(FUNC(stadhero_state::mystery_r));
map(0x30c004, 0x30c005).portr("DSW").w(FUNC(stadhero_state::int_ack_w));
map(0x30c007, 0x30c007).w(m_soundlatch, FUNC(generic_latch_8_device::write));
diff --git a/src/mame/drivers/starfire.cpp b/src/mame/drivers/starfire.cpp
index 18175becd56..cd7bc37214d 100644
--- a/src/mame/drivers/starfire.cpp
+++ b/src/mame/drivers/starfire.cpp
@@ -450,8 +450,8 @@ ROM_END
void starfire_state::init_starfire()
{
- m_input_read = read8_delegate(FUNC(starfire_state::starfire_input_r),this);
- m_io2_write = write8_delegate(FUNC(starfire_state::starfire_sound_w),this);
+ m_input_read = read8_delegate(*this, FUNC(starfire_state::starfire_input_r));
+ m_io2_write = write8_delegate(*this, FUNC(starfire_state::starfire_sound_w));
/* register for state saving */
save_item(NAME(m_prev_sound));
@@ -459,8 +459,8 @@ void starfire_state::init_starfire()
void starfire_state::init_fireone()
{
- m_input_read = read8_delegate(FUNC(starfire_state::fireone_input_r),this);
- m_io2_write = write8_delegate(FUNC(starfire_state::fireone_sound_w),this);
+ m_input_read = read8_delegate(*this, FUNC(starfire_state::fireone_input_r));
+ m_io2_write = write8_delegate(*this, FUNC(starfire_state::fireone_sound_w));
/* register for state saving */
save_item(NAME(m_fireone_select));
diff --git a/src/mame/drivers/statriv2.cpp b/src/mame/drivers/statriv2.cpp
index bf6c4c836cb..a7edc0ff4a4 100644
--- a/src/mame/drivers/statriv2.cpp
+++ b/src/mame/drivers/statriv2.cpp
@@ -187,12 +187,12 @@ void statriv2_state::statriv2_palette(palette_device &palette) const
void statriv2_state::video_start()
{
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(statriv2_state::horizontal_tile_info), this), TILEMAP_SCAN_ROWS, 8, 15, 64, 16);
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(statriv2_state::horizontal_tile_info)), TILEMAP_SCAN_ROWS, 8, 15, 64, 16);
}
VIDEO_START_MEMBER(statriv2_state,vertical)
{
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(statriv2_state::vertical_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(statriv2_state::vertical_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
@@ -1698,18 +1698,18 @@ void statriv2_state::init_laserdisc()
{
address_space &iospace = m_maincpu->space(AS_IO);
iospace.install_readwrite_handler(0x28, 0x2b,
- read8_delegate([this](address_space &space, offs_t offset, uint8_t mem_mask) -> uint8_t
+ read8_delegate(*this, NAME([this] (address_space &space, offs_t offset, uint8_t mem_mask) -> uint8_t
{
uint8_t result = 0x00;
if (offset == 1)
result = 0x18;
logerror("%s:ld read ($%02X) = %02X\n", machine().describe_context(), 0x28 + offset, result);
return result;
- },"write_lambda"),
- write8_delegate([this](address_space &space, offs_t offset, uint8_t data, uint8_t mem_mask)
+ })),
+ write8_delegate(*this, NAME([this] (address_space &space, offs_t offset, uint8_t data, uint8_t mem_mask)
{
logerror("%s:ld write ($%02X) = %02X\n", machine().describe_context(), 0x28 + offset, data);
- },"read_lambda")
+ }))
);
}
diff --git a/src/mame/drivers/storio.cpp b/src/mame/drivers/storio.cpp
index 74037d65289..430c9ef7e9a 100644
--- a/src/mame/drivers/storio.cpp
+++ b/src/mame/drivers/storio.cpp
@@ -105,7 +105,7 @@ void vtech_storio_state::vtech_storio(machine_config &config)
GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "vtech_storio_cart");
m_cart->set_width(GENERIC_ROM16_WIDTH);
- m_cart->set_device_load(FUNC(vtech_storio_state::cart_load), this);
+ m_cart->set_device_load(FUNC(vtech_storio_state::cart_load));
SOFTWARE_LIST(config, "cart_list").set_original("vtech_storio_cart");
}
diff --git a/src/mame/drivers/studio2.cpp b/src/mame/drivers/studio2.cpp
index a240f8d3e2d..8707fbf2ab2 100644
--- a/src/mame/drivers/studio2.cpp
+++ b/src/mame/drivers/studio2.cpp
@@ -530,9 +530,9 @@ void studio2_state::machine_start()
if (m_cart->exists())
{
// these have to be installed only if a cart is present, because they partially overlap the built-in game
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x0400, 0x07ff, read8_delegate(FUNC(studio2_state::cart_400), this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x0a00, 0x0bff, read8_delegate(FUNC(studio2_state::cart_a00), this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x0e00, 0x0fff, read8_delegate(FUNC(studio2_state::cart_e00), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x0400, 0x07ff, read8_delegate(*this, FUNC(studio2_state::cart_400)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x0a00, 0x0bff, read8_delegate(*this, FUNC(studio2_state::cart_a00)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x0e00, 0x0fff, read8_delegate(*this, FUNC(studio2_state::cart_e00)));
}
// register for state saving
@@ -544,8 +544,8 @@ void mpt02_state::machine_start()
if (m_cart->exists())
{
// these have to be installed only if a cart is present, because they partially overlap the built-in game
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x0400, 0x07ff, read8_delegate(FUNC(studio2_state::cart_400), this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x0c00, 0x0fff, read8_delegate(FUNC(mpt02_state::cart_c00), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x0400, 0x07ff, read8_delegate(*this, FUNC(studio2_state::cart_400)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x0c00, 0x0fff, read8_delegate(*this, FUNC(mpt02_state::cart_c00)));
}
// register for state saving
@@ -647,7 +647,7 @@ DEVICE_IMAGE_LOAD_MEMBER( studio2_state::cart_load )
void studio2_state::studio2_cartslot(machine_config &config)
{
- GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "studio2_cart", "st2,bin,rom").set_device_load(FUNC(studio2_state::cart_load), this);
+ GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "studio2_cart", "st2,bin,rom").set_device_load(FUNC(studio2_state::cart_load));
/* software lists */
SOFTWARE_LIST(config, "cart_list").set_original("studio2");
diff --git a/src/mame/drivers/stuntair.cpp b/src/mame/drivers/stuntair.cpp
index 90595acce81..18b6dd82451 100644
--- a/src/mame/drivers/stuntair.cpp
+++ b/src/mame/drivers/stuntair.cpp
@@ -207,10 +207,10 @@ TILE_GET_INFO_MEMBER(stuntair_state::get_stuntair_bg_tile_info)
void stuntair_state::video_start()
{
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(stuntair_state::get_stuntair_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(stuntair_state::get_stuntair_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(0);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(stuntair_state::get_stuntair_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(stuntair_state::get_stuntair_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
diff --git a/src/mame/drivers/stv.cpp b/src/mame/drivers/stv.cpp
index 7880b82b229..5ef8a6f6f68 100644
--- a/src/mame/drivers/stv.cpp
+++ b/src/mame/drivers/stv.cpp
@@ -435,8 +435,8 @@ void stv_state::init_stv()
m_maincpu->sh2drc_set_options(SH2DRC_STRICT_VERIFY|SH2DRC_STRICT_PCREL);
m_slave->sh2drc_set_options(SH2DRC_STRICT_VERIFY|SH2DRC_STRICT_PCREL);
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x00400000, 0x0040003f, read32_delegate(FUNC(stv_state::stv_ioga_r32),this), write32_delegate(FUNC(stv_state::stv_ioga_w32),this));
- m_slave->space(AS_PROGRAM).install_readwrite_handler(0x00400000, 0x0040003f, read32_delegate(FUNC(stv_state::stv_ioga_r32),this), write32_delegate(FUNC(stv_state::stv_ioga_w32),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x00400000, 0x0040003f, read32_delegate(*this, FUNC(stv_state::stv_ioga_r32)), write32_delegate(*this, FUNC(stv_state::stv_ioga_w32)));
+ m_slave->space(AS_PROGRAM).install_readwrite_handler(0x00400000, 0x0040003f, read32_delegate(*this, FUNC(stv_state::stv_ioga_r32)), write32_delegate(*this, FUNC(stv_state::stv_ioga_w32)));
m_maincpu->sh2drc_add_fastram(0x00000000, 0x0007ffff, 1, &m_rom[0]);
m_maincpu->sh2drc_add_fastram(0x00200000, 0x002fffff, 0, &m_workram_l[0]);
@@ -451,8 +451,8 @@ void stv_state::init_stv()
void stv_state::init_critcrsh()
{
init_stv();
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x00400000, 0x0040003f, read32_delegate(FUNC(stv_state::critcrsh_ioga_r32),this), write32_delegate(FUNC(stv_state::stv_ioga_w32),this));
- m_slave->space(AS_PROGRAM).install_readwrite_handler(0x00400000, 0x0040003f, read32_delegate(FUNC(stv_state::critcrsh_ioga_r32),this), write32_delegate(FUNC(stv_state::stv_ioga_w32),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x00400000, 0x0040003f, read32_delegate(*this, FUNC(stv_state::critcrsh_ioga_r32)), write32_delegate(*this, FUNC(stv_state::stv_ioga_w32)));
+ m_slave->space(AS_PROGRAM).install_readwrite_handler(0x00400000, 0x0040003f, read32_delegate(*this, FUNC(stv_state::critcrsh_ioga_r32)), write32_delegate(*this, FUNC(stv_state::stv_ioga_w32)));
}
/*
@@ -487,11 +487,11 @@ void stv_state::init_magzun()
init_stv();
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x00400000, 0x0040003f, read32_delegate(FUNC(stv_state::magzun_ioga_r32),this), write32_delegate(FUNC(stv_state::magzun_ioga_w32),this));
- m_slave->space(AS_PROGRAM).install_readwrite_handler(0x00400000, 0x0040003f, read32_delegate(FUNC(stv_state::magzun_ioga_r32),this), write32_delegate(FUNC(stv_state::magzun_ioga_w32),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x00400000, 0x0040003f, read32_delegate(*this, FUNC(stv_state::magzun_ioga_r32)), write32_delegate(*this, FUNC(stv_state::magzun_ioga_w32)));
+ m_slave->space(AS_PROGRAM).install_readwrite_handler(0x00400000, 0x0040003f, read32_delegate(*this, FUNC(stv_state::magzun_ioga_r32)), write32_delegate(*this, FUNC(stv_state::magzun_ioga_w32)));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x608e830, 0x608e833, read32_delegate(FUNC(stv_state::magzun_hef_hack_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x60ff3b4, 0x60ff3b7, read32_delegate(FUNC(stv_state::magzun_rx_hack_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x608e830, 0x608e833, read32_delegate(*this, FUNC(stv_state::magzun_hef_hack_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x60ff3b4, 0x60ff3b7, read32_delegate(*this, FUNC(stv_state::magzun_rx_hack_r)));
/* Program ROM patches, don't understand how to avoid these two checks ... */
{
@@ -507,8 +507,8 @@ void stv_state::init_magzun()
void stv_state::init_stvmp()
{
init_stv();
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x00400000, 0x0040003f, read32_delegate(FUNC(stv_state::stvmp_ioga_r32),this), write32_delegate(FUNC(stv_state::stvmp_ioga_w32),this));
- m_slave->space(AS_PROGRAM).install_readwrite_handler(0x00400000, 0x0040003f, read32_delegate(FUNC(stv_state::stvmp_ioga_r32),this), write32_delegate(FUNC(stv_state::stvmp_ioga_w32),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x00400000, 0x0040003f, read32_delegate(*this, FUNC(stv_state::stvmp_ioga_r32)), write32_delegate(*this, FUNC(stv_state::stvmp_ioga_w32)));
+ m_slave->space(AS_PROGRAM).install_readwrite_handler(0x00400000, 0x0040003f, read32_delegate(*this, FUNC(stv_state::stvmp_ioga_r32)), write32_delegate(*this, FUNC(stv_state::stvmp_ioga_w32)));
}
@@ -761,8 +761,8 @@ void stv_state::init_batmanfr()
init_stv();
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x04800000, 0x04800003, write32_delegate(FUNC(stv_state::batmanfr_sound_comms_w),this));
- m_slave->space(AS_PROGRAM).install_write_handler(0x04800000, 0x04800003, write32_delegate(FUNC(stv_state::batmanfr_sound_comms_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x04800000, 0x04800003, write32_delegate(*this, FUNC(stv_state::batmanfr_sound_comms_w)));
+ m_slave->space(AS_PROGRAM).install_write_handler(0x04800000, 0x04800003, write32_delegate(*this, FUNC(stv_state::batmanfr_sound_comms_w)));
m_minit_boost = m_sinit_boost = 0;
m_minit_boost_timeslice = m_sinit_boost_timeslice = attotime::from_usec(50);
@@ -992,12 +992,12 @@ WRITE32_MEMBER(stv_state::decathlt_prot_srcaddr_w)
void stv_state::init_decathlt()
{
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x2000000, 0x37fffff, write32_delegate(FUNC(stv_state::decathlt_prot_srcaddr_w), this)); // set compressed data source address, write data
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x2000000, 0x37fffff, write32_delegate(*this, FUNC(stv_state::decathlt_prot_srcaddr_w))); // set compressed data source address, write data
// really needs installing over the whole range, with fallbacks to read rom if device is disabled or isn't accessed on given address
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x27ffff8, 0x27ffffb, read32_delegate(FUNC(stv_state::decathlt_prot_r), this)); // read decompressed data
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x2fffff8, 0x2fffffb, read32_delegate(FUNC(stv_state::decathlt_prot_r), this)); // ^
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x37ffff8, 0x37ffffb, read32_delegate(FUNC(stv_state::decathlt_prot_r), this)); // ^
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x27ffff8, 0x27ffffb, read32_delegate(*this, FUNC(stv_state::decathlt_prot_r))); // read decompressed data
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x2fffff8, 0x2fffffb, read32_delegate(*this, FUNC(stv_state::decathlt_prot_r))); // ^
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x37ffff8, 0x37ffffb, read32_delegate(*this, FUNC(stv_state::decathlt_prot_r))); // ^
m_protbank->configure_entry(0, memregion("cart")->base() + 0x0000000);
m_protbank->configure_entry(1, memregion("cart")->base() + 0x0800000);
@@ -1028,8 +1028,8 @@ void stv_state::init_nameclv3()
void stv_state::init_hopper()
{
init_stv();
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x00400000, 0x0040003f, read32_delegate(FUNC(stv_state::stv_ioga_r32),this), write32_delegate(FUNC(stv_state::hop_ioga_w32),this));
- m_slave->space(AS_PROGRAM).install_readwrite_handler(0x00400000, 0x0040003f, read32_delegate(FUNC(stv_state::stv_ioga_r32),this), write32_delegate(FUNC(stv_state::hop_ioga_w32),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x00400000, 0x0040003f, read32_delegate(*this, FUNC(stv_state::stv_ioga_r32)), write32_delegate(*this, FUNC(stv_state::hop_ioga_w32)));
+ m_slave->space(AS_PROGRAM).install_readwrite_handler(0x00400000, 0x0040003f, read32_delegate(*this, FUNC(stv_state::stv_ioga_r32)), write32_delegate(*this, FUNC(stv_state::hop_ioga_w32)));
}
void stv_state::stv_mem(address_map &map)
@@ -1255,7 +1255,7 @@ void stv_state::shienryu(machine_config &config)
}
#define STV_CARTSLOT_ADD(_tag, _load) \
- GENERIC_CARTSLOT(config, _tag, generic_plain_slot, "stv_cart").set_device_load(FUNC(stv_state::_load), this);
+ GENERIC_CARTSLOT(config, _tag, generic_plain_slot, "stv_cart").set_device_load(FUNC(stv_state::_load));
void stv_state::stv_cartslot(machine_config &config)
{
@@ -1365,7 +1365,7 @@ MACHINE_START_MEMBER(stv_state, stv)
stv_register_protection_savestates(); // machine/stvprot.c
- m_audiocpu->set_reset_callback(write_line_delegate(FUNC(stv_state::m68k_reset_callback),this));
+ m_audiocpu->set_reset_callback(*this, FUNC(stv_state::m68k_reset_callback));
}
diff --git a/src/mame/drivers/subsino.cpp b/src/mame/drivers/subsino.cpp
index 2099f1a6294..331eb20bde6 100644
--- a/src/mame/drivers/subsino.cpp
+++ b/src/mame/drivers/subsino.cpp
@@ -400,7 +400,7 @@ TILE_GET_INFO_MEMBER(subsino_state::get_stbsub_tile_info)
VIDEO_START_MEMBER(subsino_state,subsino)
{
- m_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(subsino_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8,8, 0x40,0x20);
+ m_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(subsino_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 0x40,0x20);
m_tmap->set_transparent_pen(0 );
m_tiles_offset = 0;
}
@@ -442,9 +442,9 @@ VIDEO_START_MEMBER(subsino_state, reels)
{
VIDEO_START_CALL_MEMBER( subsino );
- m_reel_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(subsino_state::get_reel_tile_info<0>), this), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
- m_reel_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(subsino_state::get_reel_tile_info<1>), this), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
- m_reel_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(subsino_state::get_reel_tile_info<2>), this), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
+ m_reel_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(subsino_state::get_reel_tile_info<0>)), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
+ m_reel_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(subsino_state::get_reel_tile_info<1>)), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
+ m_reel_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(subsino_state::get_reel_tile_info<2>)), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
m_reel_tilemap[0]->set_scroll_cols(64);
m_reel_tilemap[1]->set_scroll_cols(64);
@@ -454,12 +454,12 @@ VIDEO_START_MEMBER(subsino_state, reels)
VIDEO_START_MEMBER(subsino_state,stbsub)
{
- m_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(subsino_state::get_stbsub_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 0x40, 0x20);
+ m_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(subsino_state::get_stbsub_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 0x40, 0x20);
m_tmap->set_transparent_pen(0 );
- m_reel_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(subsino_state::get_stbsub_reel_tile_info<0>), this), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
- m_reel_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(subsino_state::get_stbsub_reel_tile_info<1>), this), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
- m_reel_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(subsino_state::get_stbsub_reel_tile_info<2>), this), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
+ m_reel_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(subsino_state::get_stbsub_reel_tile_info<0>)), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
+ m_reel_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(subsino_state::get_stbsub_reel_tile_info<1>)), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
+ m_reel_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(subsino_state::get_stbsub_reel_tile_info<2>)), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
m_reel_tilemap[0]->set_scroll_cols(64);
m_reel_tilemap[1]->set_scroll_cols(64);
diff --git a/src/mame/drivers/subsino2.cpp b/src/mame/drivers/subsino2.cpp
index ebe52744268..7818c36cf2a 100644
--- a/src/mame/drivers/subsino2.cpp
+++ b/src/mame/drivers/subsino2.cpp
@@ -688,8 +688,8 @@ void subsino2_state::video_start()
layer_t *l = &m_layers[i];
l->tmap = &machine().tilemap().create(*m_gfxdecode, i ?
- tilemap_get_info_delegate(FUNC(subsino2_state::ss9601_get_tile_info_1),this) :
- tilemap_get_info_delegate(FUNC(subsino2_state::ss9601_get_tile_info_0),this),
+ tilemap_get_info_delegate(*this, FUNC(subsino2_state::ss9601_get_tile_info_1)) :
+ tilemap_get_info_delegate(*this, FUNC(subsino2_state::ss9601_get_tile_info_0)),
TILEMAP_SCAN_ROWS, 8,8, 0x80,0x40);
l->tmap->set_transparent_pen(0);
diff --git a/src/mame/drivers/supduck.cpp b/src/mame/drivers/supduck.cpp
index 4975b2bb9c3..0c7a5416c83 100644
--- a/src/mame/drivers/supduck.cpp
+++ b/src/mame/drivers/supduck.cpp
@@ -123,10 +123,10 @@ TILEMAP_MAPPER_MEMBER(supduck_state::supduk_tilemap_scan)
void supduck_state::video_start()
{
- m_text_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(supduck_state::get_text_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_text_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(supduck_state::get_text_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_fore_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(supduck_state::get_fore_tile_info),this), tilemap_mapper_delegate(FUNC(supduck_state::supduk_tilemap_scan),this), 32, 32, 128,64);
- m_back_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(supduck_state::get_back_tile_info),this), tilemap_mapper_delegate(FUNC(supduck_state::supduk_tilemap_scan),this), 32, 32, 128,64);
+ m_fore_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(supduck_state::get_fore_tile_info)), tilemap_mapper_delegate(*this, FUNC(supduck_state::supduk_tilemap_scan)), 32, 32, 128,64);
+ m_back_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(supduck_state::get_back_tile_info)), tilemap_mapper_delegate(*this, FUNC(supduck_state::supduk_tilemap_scan)), 32, 32, 128,64);
m_text_tilemap->set_transparent_pen(0x3);
m_fore_tilemap->set_transparent_pen(0xf);
diff --git a/src/mame/drivers/super80.cpp b/src/mame/drivers/super80.cpp
index bd9e74991df..877741406cf 100644
--- a/src/mame/drivers/super80.cpp
+++ b/src/mame/drivers/super80.cpp
@@ -750,7 +750,7 @@ void super80_state::super80(machine_config &config)
INPUT_BUFFER(config, "cent_status_in", 0);
/* quickload */
- QUICKLOAD(config, "quickload", "bin", attotime::from_seconds(3)).set_load_callback(FUNC(super80_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "bin", attotime::from_seconds(3)).set_load_callback(FUNC(super80_state::quickload_cb));
/* cassette */
CASSETTE(config, m_cassette);
@@ -833,7 +833,7 @@ void super80_state::super80v(machine_config &config)
m_crtc->set_screen("screen");
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(SUPER80V_DOTS);
- m_crtc->set_update_row_callback(FUNC(super80_state::crtc_update_row), this);
+ m_crtc->set_update_row_callback(FUNC(super80_state::crtc_update_row));
config.set_default_layout(layout_super80);
@@ -855,7 +855,7 @@ void super80_state::super80v(machine_config &config)
INPUT_BUFFER(config, "cent_status_in", 0);
/* quickload */
- QUICKLOAD(config, "quickload", "bin", attotime::from_seconds(3)).set_load_callback(FUNC(super80_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "bin", attotime::from_seconds(3)).set_load_callback(FUNC(super80_state::quickload_cb));
/* cassette */
CASSETTE(config, m_cassette);
diff --git a/src/mame/drivers/superchs.cpp b/src/mame/drivers/superchs.cpp
index 1de84063936..cb9598c0481 100644
--- a/src/mame/drivers/superchs.cpp
+++ b/src/mame/drivers/superchs.cpp
@@ -551,8 +551,8 @@ READ16_MEMBER(superchs_state::sub_cycle_r)
void superchs_state::init_superchs()
{
/* Speedup handlers */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x100000, 0x100003, read32_delegate(FUNC(superchs_state::main_cycle_r),this));
- m_subcpu->space(AS_PROGRAM).install_read_handler(0x80000a, 0x80000b, read16_delegate(FUNC(superchs_state::sub_cycle_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x100000, 0x100003, read32_delegate(*this, FUNC(superchs_state::main_cycle_r)));
+ m_subcpu->space(AS_PROGRAM).install_read_handler(0x80000a, 0x80000b, read16_delegate(*this, FUNC(superchs_state::sub_cycle_r)));
}
GAMEL( 1992, superchs, 0, superchs, superchs, superchs_state, init_superchs, ROT0, "Taito Corporation Japan", "Super Chase - Criminal Termination (World)", 0, layout_superchs ) // 1993/02/16 11:39:36 SUPER CHASE VER 1.2O
diff --git a/src/mame/drivers/supercrd.cpp b/src/mame/drivers/supercrd.cpp
index 09863f403fb..cd275e71201 100644
--- a/src/mame/drivers/supercrd.cpp
+++ b/src/mame/drivers/supercrd.cpp
@@ -280,7 +280,7 @@ TILE_GET_INFO_MEMBER(supercrd_state::get_bg_tile_info)
void supercrd_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(supercrd_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 4, 8, 96, 29);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(supercrd_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 4, 8, 96, 29);
}
diff --git a/src/mame/drivers/superdq.cpp b/src/mame/drivers/superdq.cpp
index ddaecea02b7..fda97f7601a 100644
--- a/src/mame/drivers/superdq.cpp
+++ b/src/mame/drivers/superdq.cpp
@@ -85,7 +85,7 @@ TILE_GET_INFO_MEMBER(superdq_state::get_tile_info)
void superdq_state::video_start()
{
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(superdq_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(superdq_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
uint32_t superdq_state::screen_update_superdq(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
diff --git a/src/mame/drivers/superwng.cpp b/src/mame/drivers/superwng.cpp
index 54eb52208b8..1b2509ecab9 100644
--- a/src/mame/drivers/superwng.cpp
+++ b/src/mame/drivers/superwng.cpp
@@ -150,8 +150,8 @@ TILE_GET_INFO_MEMBER(superwng_state::get_fg_tile_info)
void superwng_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(superwng_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(superwng_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(superwng_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(superwng_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_bg_tilemap->set_scrollx(0, 64);
}
diff --git a/src/mame/drivers/supracan.cpp b/src/mame/drivers/supracan.cpp
index 70a4e6d54ec..8203aae4d12 100644
--- a/src/mame/drivers/supracan.cpp
+++ b/src/mame/drivers/supracan.cpp
@@ -440,25 +440,25 @@ void supracan_state::video_start()
m_gfxdecode->gfx(4)->set_source(&m_vram_addr_swapped[0]);
m_gfxdecode->gfx(4)->set_xormask(0);
- m_tilemap_sizes[0][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(supracan_state::get_tilemap0_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_tilemap_sizes[0][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(supracan_state::get_tilemap0_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_tilemap_sizes[0][2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(supracan_state::get_tilemap0_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 128, 32);
- m_tilemap_sizes[0][3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(supracan_state::get_tilemap0_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
-
- m_tilemap_sizes[1][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(supracan_state::get_tilemap1_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_tilemap_sizes[1][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(supracan_state::get_tilemap1_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_tilemap_sizes[1][2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(supracan_state::get_tilemap1_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 128, 32);
- m_tilemap_sizes[1][3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(supracan_state::get_tilemap1_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
-
- m_tilemap_sizes[2][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(supracan_state::get_tilemap2_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_tilemap_sizes[2][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(supracan_state::get_tilemap2_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_tilemap_sizes[2][2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(supracan_state::get_tilemap2_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 128, 32);
- m_tilemap_sizes[2][3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(supracan_state::get_tilemap2_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
-
- m_tilemap_sizes[3][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(supracan_state::get_roz_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_tilemap_sizes[3][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(supracan_state::get_roz_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_tilemap_sizes[3][2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(supracan_state::get_roz_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 128, 32);
- m_tilemap_sizes[3][3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(supracan_state::get_roz_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap_sizes[0][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(supracan_state::get_tilemap0_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_tilemap_sizes[0][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(supracan_state::get_tilemap0_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tilemap_sizes[0][2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(supracan_state::get_tilemap0_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 128, 32);
+ m_tilemap_sizes[0][3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(supracan_state::get_tilemap0_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+
+ m_tilemap_sizes[1][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(supracan_state::get_tilemap1_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_tilemap_sizes[1][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(supracan_state::get_tilemap1_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tilemap_sizes[1][2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(supracan_state::get_tilemap1_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 128, 32);
+ m_tilemap_sizes[1][3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(supracan_state::get_tilemap1_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+
+ m_tilemap_sizes[2][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(supracan_state::get_tilemap2_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_tilemap_sizes[2][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(supracan_state::get_tilemap2_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tilemap_sizes[2][2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(supracan_state::get_tilemap2_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 128, 32);
+ m_tilemap_sizes[2][3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(supracan_state::get_tilemap2_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+
+ m_tilemap_sizes[3][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(supracan_state::get_roz_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_tilemap_sizes[3][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(supracan_state::get_roz_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tilemap_sizes[3][2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(supracan_state::get_roz_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 128, 32);
+ m_tilemap_sizes[3][3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(supracan_state::get_roz_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
}
int supracan_state::get_tilemap_dimensions(int &xsize, int &ysize, int layer)
@@ -1952,7 +1952,7 @@ void supracan_state::machine_start()
m_line_off_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(supracan_state::line_off_callback), this));
if (m_cart->exists())
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x000000, 0x3fffff, read16s_delegate(FUNC(generic_slot_device::read16_rom),(generic_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x000000, 0x3fffff, read16s_delegate(*m_cart, FUNC(generic_slot_device::read16_rom)));
}
@@ -2089,7 +2089,7 @@ void supracan_state::supracan(machine_config &config)
generic_cartslot_device &cartslot(GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "supracan_cart"));
cartslot.set_width(GENERIC_ROM16_WIDTH);
cartslot.set_endian(ENDIANNESS_BIG);
- cartslot.set_device_load(FUNC(supracan_state::cart_load), this);
+ cartslot.set_device_load(FUNC(supracan_state::cart_load));
SOFTWARE_LIST(config, "cart_list").set_original("supracan");
}
diff --git a/src/mame/drivers/suprgolf.cpp b/src/mame/drivers/suprgolf.cpp
index 45b4915cd77..1f04a90fcbe 100644
--- a/src/mame/drivers/suprgolf.cpp
+++ b/src/mame/drivers/suprgolf.cpp
@@ -114,7 +114,7 @@ TILE_GET_INFO_MEMBER(suprgolf_state::get_tile_info)
void suprgolf_state::video_start()
{
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(suprgolf_state::get_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32 );
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(suprgolf_state::get_tile_info)), TILEMAP_SCAN_ROWS,8,8,32,32 );
m_paletteram = std::make_unique<uint8_t[]>(0x1000);
m_bg_vram = std::make_unique<uint8_t[]>(0x2000*0x20);
m_bg_fb = std::make_unique<uint16_t[]>(0x2000*0x20);
diff --git a/src/mame/drivers/suprnova.cpp b/src/mame/drivers/suprnova.cpp
index 1255842b58a..7f1dedb1a95 100644
--- a/src/mame/drivers/suprnova.cpp
+++ b/src/mame/drivers/suprnova.cpp
@@ -1019,21 +1019,21 @@ void skns_state::set_drc_pcflush(uint32_t addr)
void skns_state::init_galpani4() { m_spritegen->skns_sprite_kludge(-5,-1); init_drc(); }
void skns_state::init_galpanis() { m_spritegen->skns_sprite_kludge(-5,-1); init_drc(); }
-void skns_state::init_cyvern() { m_spritegen->skns_sprite_kludge(+0,+2); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x604d3c8, 0x604d3cb, read32_delegate(FUNC(skns_state::cyvern_speedup_r),this) ); set_drc_pcflush(0x402ebd2); }
-void skns_state::init_galpans2() { m_spritegen->skns_sprite_kludge(-1,-1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x60fb6bc, 0x60fb6bf, read32_delegate(FUNC(skns_state::galpans2_speedup_r),this) ); set_drc_pcflush(0x4049ae2); }
-void skns_state::init_gutsn() { m_spritegen->skns_sprite_kludge(+0,+0); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x600c780, 0x600c783, read32_delegate(FUNC(skns_state::gutsn_speedup_r),this) ); set_drc_pcflush(0x402206e); }
-void skns_state::init_panicstr() { m_spritegen->skns_sprite_kludge(-1,-1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x60f19e4, 0x60f19e7, read32_delegate(FUNC(skns_state::panicstr_speedup_r),this) ); set_drc_pcflush(0x404e68a); }
-void skns_state::init_senknow() { m_spritegen->skns_sprite_kludge(+1,+1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x60000dc, 0x60000df, read32_delegate(FUNC(skns_state::senknow_speedup_r),this) ); set_drc_pcflush(0x4017dce); }
-void skns_state::init_puzzloope() { m_spritegen->skns_sprite_kludge(-9,-1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x6081d38, 0x6081d3b, read32_delegate(FUNC(skns_state::puzzloope_speedup_r),this) ); set_drc_pcflush(0x401da14); }
-void skns_state::init_puzzloopj() { m_spritegen->skns_sprite_kludge(-9,-1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x6086714, 0x6086717, read32_delegate(FUNC(skns_state::puzzloopj_speedup_r),this) ); set_drc_pcflush(0x401dca0); }
-void skns_state::init_puzzloopa() { m_spritegen->skns_sprite_kludge(-9,-1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x6085bcc, 0x6085bcf, read32_delegate(FUNC(skns_state::puzzloopa_speedup_r),this) ); set_drc_pcflush(0x401d9d4); }
-void skns_state::init_puzzloopu() { m_spritegen->skns_sprite_kludge(-9,-1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x6085cec, 0x6085cef, read32_delegate(FUNC(skns_state::puzzloopu_speedup_r),this) ); set_drc_pcflush(0x401dab0); }
-void skns_state::init_jjparads() { m_spritegen->skns_sprite_kludge(+5,+1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x6000994, 0x6000997, read32_delegate(FUNC(skns_state::jjparads_speedup_r),this) ); set_drc_pcflush(0x4015e84); }
-void skns_state::init_jjparad2() { m_spritegen->skns_sprite_kludge(+5,+1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x6000984, 0x6000987, read32_delegate(FUNC(skns_state::jjparad2_speedup_r),this) ); set_drc_pcflush(0x401620a); }
-void skns_state::init_ryouran() { m_spritegen->skns_sprite_kludge(+5,+1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x6000a14, 0x6000a17, read32_delegate(FUNC(skns_state::ryouran_speedup_r),this) ); set_drc_pcflush(0x40182ce); }
-void skns_state::init_teljan() { m_spritegen->skns_sprite_kludge(+5,+1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x6002fb4, 0x6002fb7, read32_delegate(FUNC(skns_state::teljan_speedup_r),this) ); set_drc_pcflush(0x401ba32); }
-void skns_state::init_sengekis() { m_spritegen->skns_sprite_kludge(-192,-272); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x60b74bc, 0x60b74bf, read32_delegate(FUNC(skns_state::sengekis_speedup_r),this) ); set_drc_pcflush(0x60006ec); }
-void skns_state::init_sengekij() { m_spritegen->skns_sprite_kludge(-192,-272); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x60b7380, 0x60b7383, read32_delegate(FUNC(skns_state::sengekij_speedup_r),this) ); set_drc_pcflush(0x60006ec); }
+void skns_state::init_cyvern() { m_spritegen->skns_sprite_kludge(+0,+2); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x604d3c8, 0x604d3cb, read32_delegate(*this, FUNC(skns_state::cyvern_speedup_r)) ); set_drc_pcflush(0x402ebd2); }
+void skns_state::init_galpans2() { m_spritegen->skns_sprite_kludge(-1,-1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x60fb6bc, 0x60fb6bf, read32_delegate(*this, FUNC(skns_state::galpans2_speedup_r)) ); set_drc_pcflush(0x4049ae2); }
+void skns_state::init_gutsn() { m_spritegen->skns_sprite_kludge(+0,+0); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x600c780, 0x600c783, read32_delegate(*this, FUNC(skns_state::gutsn_speedup_r)) ); set_drc_pcflush(0x402206e); }
+void skns_state::init_panicstr() { m_spritegen->skns_sprite_kludge(-1,-1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x60f19e4, 0x60f19e7, read32_delegate(*this, FUNC(skns_state::panicstr_speedup_r)) ); set_drc_pcflush(0x404e68a); }
+void skns_state::init_senknow() { m_spritegen->skns_sprite_kludge(+1,+1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x60000dc, 0x60000df, read32_delegate(*this, FUNC(skns_state::senknow_speedup_r)) ); set_drc_pcflush(0x4017dce); }
+void skns_state::init_puzzloope() { m_spritegen->skns_sprite_kludge(-9,-1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x6081d38, 0x6081d3b, read32_delegate(*this, FUNC(skns_state::puzzloope_speedup_r)) ); set_drc_pcflush(0x401da14); }
+void skns_state::init_puzzloopj() { m_spritegen->skns_sprite_kludge(-9,-1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x6086714, 0x6086717, read32_delegate(*this, FUNC(skns_state::puzzloopj_speedup_r)) ); set_drc_pcflush(0x401dca0); }
+void skns_state::init_puzzloopa() { m_spritegen->skns_sprite_kludge(-9,-1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x6085bcc, 0x6085bcf, read32_delegate(*this, FUNC(skns_state::puzzloopa_speedup_r)) ); set_drc_pcflush(0x401d9d4); }
+void skns_state::init_puzzloopu() { m_spritegen->skns_sprite_kludge(-9,-1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x6085cec, 0x6085cef, read32_delegate(*this, FUNC(skns_state::puzzloopu_speedup_r)) ); set_drc_pcflush(0x401dab0); }
+void skns_state::init_jjparads() { m_spritegen->skns_sprite_kludge(+5,+1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x6000994, 0x6000997, read32_delegate(*this, FUNC(skns_state::jjparads_speedup_r)) ); set_drc_pcflush(0x4015e84); }
+void skns_state::init_jjparad2() { m_spritegen->skns_sprite_kludge(+5,+1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x6000984, 0x6000987, read32_delegate(*this, FUNC(skns_state::jjparad2_speedup_r)) ); set_drc_pcflush(0x401620a); }
+void skns_state::init_ryouran() { m_spritegen->skns_sprite_kludge(+5,+1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x6000a14, 0x6000a17, read32_delegate(*this, FUNC(skns_state::ryouran_speedup_r)) ); set_drc_pcflush(0x40182ce); }
+void skns_state::init_teljan() { m_spritegen->skns_sprite_kludge(+5,+1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x6002fb4, 0x6002fb7, read32_delegate(*this, FUNC(skns_state::teljan_speedup_r)) ); set_drc_pcflush(0x401ba32); }
+void skns_state::init_sengekis() { m_spritegen->skns_sprite_kludge(-192,-272); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x60b74bc, 0x60b74bf, read32_delegate(*this, FUNC(skns_state::sengekis_speedup_r)) ); set_drc_pcflush(0x60006ec); }
+void skns_state::init_sengekij() { m_spritegen->skns_sprite_kludge(-192,-272); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x60b7380, 0x60b7383, read32_delegate(*this, FUNC(skns_state::sengekij_speedup_r)) ); set_drc_pcflush(0x60006ec); }
void skns_state::init_sarukani() { m_spritegen->skns_sprite_kludge(-1,-1); init_drc(); set_drc_pcflush(0x4013b42); } // Speedup is in io_w()
void skns_state::init_galpans3() { m_spritegen->skns_sprite_kludge(-1,-1); init_drc(); }
diff --git a/src/mame/drivers/suprslam.cpp b/src/mame/drivers/suprslam.cpp
index c7e21370431..ccf9e54ca82 100644
--- a/src/mame/drivers/suprslam.cpp
+++ b/src/mame/drivers/suprslam.cpp
@@ -300,7 +300,7 @@ void suprslam_state::suprslam(machine_config &config)
PALETTE(config, m_palette).set_format(palette_device::xGBR_555, 0x800);
VSYSTEM_SPR(config, m_spr, 0);
- m_spr->set_tile_indirect_cb(FUNC(suprslam_state::suprslam_tile_callback), this);
+ m_spr->set_tile_indirect_cb(FUNC(suprslam_state::suprslam_tile_callback));
m_spr->set_gfx_region(1);
m_spr->set_gfxdecode_tag(m_gfxdecode);
diff --git a/src/mame/drivers/surpratk.cpp b/src/mame/drivers/surpratk.cpp
index 814e6c2c830..8e768ddc45b 100644
--- a/src/mame/drivers/surpratk.cpp
+++ b/src/mame/drivers/surpratk.cpp
@@ -187,12 +187,12 @@ void surpratk_state::surpratk(machine_config &config)
K052109(config, m_k052109, 0);
m_k052109->set_palette(m_palette);
m_k052109->set_screen("screen");
- m_k052109->set_tile_callback(FUNC(surpratk_state::tile_callback), this);
+ m_k052109->set_tile_callback(FUNC(surpratk_state::tile_callback));
m_k052109->irq_handler().set_inputline(m_maincpu, KONAMI_IRQ_LINE);
K053244(config, m_k053244, 0);
m_k053244->set_palette(m_palette);
- m_k053244->set_sprite_callback(FUNC(surpratk_state::sprite_callback), this);
+ m_k053244->set_sprite_callback(FUNC(surpratk_state::sprite_callback));
K053251(config, m_k053251, 0);
diff --git a/src/mame/drivers/sv8000.cpp b/src/mame/drivers/sv8000.cpp
index b9df9809820..f04d23ed7fa 100644
--- a/src/mame/drivers/sv8000.cpp
+++ b/src/mame/drivers/sv8000.cpp
@@ -182,7 +182,7 @@ void sv8000_state::machine_start()
m_inv = 0;
if (m_cart->exists())
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x0000, 0x0fff, read8sm_delegate(FUNC(generic_slot_device::read_rom),(generic_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x0000, 0x0fff, read8sm_delegate(*m_cart, FUNC(generic_slot_device::read_rom)));
save_item(NAME(m_column));
save_item(NAME(m_ag));
@@ -410,7 +410,7 @@ void sv8000_state::sv8000(machine_config &config)
/* cartridge */
generic_cartslot_device &cartslot(GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "sv8000_cart"));
cartslot.set_must_be_loaded(true);
- cartslot.set_device_load(FUNC(sv8000_state::cart_load), this);
+ cartslot.set_device_load(FUNC(sv8000_state::cart_load));
/* software lists */
SOFTWARE_LIST(config, "cart_list").set_original("sv8000");
diff --git a/src/mame/drivers/svi318.cpp b/src/mame/drivers/svi318.cpp
index b7050e3dd88..cb067892007 100644
--- a/src/mame/drivers/svi318.cpp
+++ b/src/mame/drivers/svi318.cpp
@@ -545,7 +545,7 @@ void svi3x8_state::svi318(machine_config &config)
SOFTWARE_LIST(config, "cass_list").set_original("svi318_cass");
// cartridge slot
- GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "svi318_cart", "bin,rom").set_device_load(FUNC(svi3x8_state::cart_load), this);
+ GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "svi318_cart", "bin,rom").set_device_load(FUNC(svi3x8_state::cart_load));
SOFTWARE_LIST(config, "cart_list").set_original("svi318_cart");
// expander bus
diff --git a/src/mame/drivers/svision.cpp b/src/mame/drivers/svision.cpp
index 306cb19d494..abd77a5e0af 100644
--- a/src/mame/drivers/svision.cpp
+++ b/src/mame/drivers/svision.cpp
@@ -507,7 +507,7 @@ void svision_state::svision_base(machine_config &config)
GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "svision_cart", "bin,ws,sv");
m_cart->set_must_be_loaded(true);
- m_cart->set_device_load(FUNC(svision_state::cart_load), this);
+ m_cart->set_device_load(FUNC(svision_state::cart_load));
SOFTWARE_LIST(config, "cart_list").set_original("svision");
}
diff --git a/src/mame/drivers/svmu.cpp b/src/mame/drivers/svmu.cpp
index e76bf756cbd..33170a0cddd 100644
--- a/src/mame/drivers/svmu.cpp
+++ b/src/mame/drivers/svmu.cpp
@@ -342,7 +342,7 @@ void svmu_state::svmu(machine_config &config)
ATMEL_29C010(config, m_flash);
quickload_image_device &quickload(QUICKLOAD(config, "quickload", "vms,bin"));
- quickload.set_load_callback(FUNC(svmu_state::quickload_cb), this);
+ quickload.set_load_callback(FUNC(svmu_state::quickload_cb));
quickload.set_interface("svmu_quik");
/* Software lists */
diff --git a/src/mame/drivers/swtpc8212.cpp b/src/mame/drivers/swtpc8212.cpp
index cb648e08b09..1191198b431 100644
--- a/src/mame/drivers/swtpc8212.cpp
+++ b/src/mame/drivers/swtpc8212.cpp
@@ -108,7 +108,7 @@ void swtpc8212_state::swtpc8212(machine_config &config)
crtc.set_char_width(9);
crtc.set_screen("screen");
crtc.set_show_border_area(false);
- crtc.set_update_row_callback(FUNC(swtpc8212_state::update_row), this);
+ crtc.set_update_row_callback(FUNC(swtpc8212_state::update_row));
}
diff --git a/src/mame/drivers/sys9002.cpp b/src/mame/drivers/sys9002.cpp
index 2c768b2cdee..ed917402b48 100644
--- a/src/mame/drivers/sys9002.cpp
+++ b/src/mame/drivers/sys9002.cpp
@@ -143,7 +143,7 @@ void sys9002_state::sys9002(machine_config &config)
crtc.set_screen("screen");
crtc.set_show_border_area(false);
crtc.set_char_width(8);
- crtc.set_update_row_callback(FUNC(sys9002_state::crtc_update_row), this);
+ crtc.set_update_row_callback(FUNC(sys9002_state::crtc_update_row));
clock_device &uart_clock(CLOCK(config, "uart_clock", 614400));
uart_clock.signal_handler().set("uart1", FUNC(i8251_device::write_txc));
diff --git a/src/mame/drivers/system1.cpp b/src/mame/drivers/system1.cpp
index 65b7726aa30..b970cf7f7e6 100644
--- a/src/mame/drivers/system1.cpp
+++ b/src/mame/drivers/system1.cpp
@@ -2459,7 +2459,7 @@ void system1_state::sys1ppisx_315_5041(machine_config &config)
void system1_state::mcu(machine_config &config)
{
/* basic machine hardware */
- m_maincpu->set_vblank_int(device_interrupt_delegate(), nullptr);
+ m_maincpu->remove_vblank_int();
I8751(config, m_mcu, SOUND_CLOCK);
m_mcu->set_addrmap(AS_IO, &system1_state::mcu_io_map);
@@ -2469,7 +2469,7 @@ void system1_state::mcu(machine_config &config)
// This interrupt is driven by pin 15 of a PAL16R4 (315-5138 on Choplifter), based on the vertical count.
// The actual duty cycle likely differs from VBLANK, which is another output from the same PAL.
- TIMER(config, "mcu_t0", 0).configure_periodic(timer_device::expired_delegate(FUNC(system1_state::mcu_t0_callback), this), attotime::from_usec(2500));
+ TIMER(config, "mcu_t0", 0).configure_periodic(FUNC(system1_state::mcu_t0_callback), attotime::from_usec(2500));
}
/* alternate program map with RAM/collision swapped */
@@ -5456,11 +5456,11 @@ void system1_state::init_nob()
/* hack to fix incorrect JMP at start, which should obviously be to $0080 */
/* patching the ROM causes errors in the self-test */
/* in real-life, it could be some behavior dependent upon M1 */
- space.install_read_handler(0x0001, 0x0001, read8_delegate(FUNC(system1_state::nob_start_r),this));
+ space.install_read_handler(0x0001, 0x0001, read8_delegate(*this, FUNC(system1_state::nob_start_r)));
/* install MCU communications */
- iospace.install_readwrite_handler(0x18, 0x18, read8_delegate(FUNC(system1_state::nob_maincpu_latch_r),this), write8_delegate(FUNC(system1_state::nob_maincpu_latch_w),this));
- iospace.install_read_handler(0x1c, 0x1c, read8_delegate(FUNC(system1_state::nob_mcu_status_r),this));
+ iospace.install_readwrite_handler(0x18, 0x18, read8_delegate(*this, FUNC(system1_state::nob_maincpu_latch_r)), write8_delegate(*this, FUNC(system1_state::nob_maincpu_latch_w)));
+ iospace.install_read_handler(0x1c, 0x1c, read8_delegate(*this, FUNC(system1_state::nob_mcu_status_r)));
}
void system1_state::init_nobb()
@@ -5487,10 +5487,10 @@ void system1_state::init_nobb()
init_bank44();
- iospace.install_read_handler(0x1c, 0x1c, read8_delegate(FUNC(system1_state::nobb_inport1c_r),this));
- iospace.install_read_handler(0x02, 0x02, read8_delegate(FUNC(system1_state::nobb_inport22_r),this));
- iospace.install_read_handler(0x03, 0x03, read8_delegate(FUNC(system1_state::nobb_inport23_r),this));
- iospace.install_write_handler(0x04, 0x04, write8_delegate(FUNC(system1_state::nobb_outport24_w),this));
+ iospace.install_read_handler(0x1c, 0x1c, read8_delegate(*this, FUNC(system1_state::nobb_inport1c_r)));
+ iospace.install_read_handler(0x02, 0x02, read8_delegate(*this, FUNC(system1_state::nobb_inport22_r)));
+ iospace.install_read_handler(0x03, 0x03, read8_delegate(*this, FUNC(system1_state::nobb_inport23_r)));
+ iospace.install_write_handler(0x04, 0x04, write8_delegate(*this, FUNC(system1_state::nobb_outport24_w)));
}
@@ -5520,7 +5520,7 @@ void system1_state::init_shtngmst()
address_space &iospace = m_maincpu->space(AS_IO);
iospace.install_read_port(0x12, 0x12, "TRIGGER");
iospace.install_read_port(0x18, 0x18, 0x03, "18");
- iospace.install_read_handler(0x1c, 0x1c, 0, 0x02, 0, read8_delegate(FUNC(system1_state::shtngmst_gunx_r),this));
+ iospace.install_read_handler(0x1c, 0x1c, 0, 0x02, 0, read8_delegate(*this, FUNC(system1_state::shtngmst_gunx_r)));
iospace.install_read_port(0x1d, 0x1d, 0x02, "GUNY");
init_bank0c();
}
diff --git a/src/mame/drivers/system16.cpp b/src/mame/drivers/system16.cpp
index d21b688b08e..8182e183faf 100644
--- a/src/mame/drivers/system16.cpp
+++ b/src/mame/drivers/system16.cpp
@@ -4057,7 +4057,7 @@ void segas1x_bootleg_state::init_altbeastbl()
{
init_common();
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x418000, 0x418029, write16_delegate(FUNC(segas1x_bootleg_state::altbeastbl_gfx_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x418000, 0x418029, write16_delegate(*this, FUNC(segas1x_bootleg_state::altbeastbl_gfx_w)));
}
/* Tetris-based */
@@ -4128,7 +4128,7 @@ void segas1x_bootleg_state::init_astormb2()
init_sys18bl_oki();
m_maincpu->space(AS_PROGRAM).unmap_write(0xa00006, 0xa00007);
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xa00006, 0xa00007, write8smo_delegate(FUNC(generic_latch_8_device::write), (generic_latch_8_device*)m_soundlatch), 0x00ff);
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xa00006, 0xa00007, write8smo_delegate(*m_soundlatch, FUNC(generic_latch_8_device::write)), 0x00ff);
}
/*************************************
diff --git a/src/mame/drivers/tail2nos.cpp b/src/mame/drivers/tail2nos.cpp
index 9ef10460371..0c98f641242 100644
--- a/src/mame/drivers/tail2nos.cpp
+++ b/src/mame/drivers/tail2nos.cpp
@@ -266,7 +266,7 @@ void tail2nos_state::tail2nos(machine_config &config)
m_k051316->set_bpp(-4);
m_k051316->set_offsets(-89, -14);
m_k051316->set_wrap(1);
- m_k051316->set_zoom_callback(FUNC(tail2nos_state::zoom_callback), this);
+ m_k051316->set_zoom_callback(FUNC(tail2nos_state::zoom_callback));
VSYSTEM_GGA(config, "gga", XTAL(14'318'181) / 2); // divider not verified
diff --git a/src/mame/drivers/taito_f2.cpp b/src/mame/drivers/taito_f2.cpp
index 9ec71f01788..0d971a33a12 100644
--- a/src/mame/drivers/taito_f2.cpp
+++ b/src/mame/drivers/taito_f2.cpp
@@ -3090,7 +3090,7 @@ void taitof2_state::mjnquest(machine_config &config)
TC0100SCN(config, m_tc0100scn[0], 0);
m_tc0100scn[0]->set_palette(m_tc0110pcr);
- m_tc0100scn[0]->set_tile_callback(FUNC(taitof2_state::mjnquest_tmap_cb), this);
+ m_tc0100scn[0]->set_tile_callback(FUNC(taitof2_state::mjnquest_tmap_cb));
}
void taitof2_state::footchmp(machine_config &config)
diff --git a/src/mame/drivers/taito_l.cpp b/src/mame/drivers/taito_l.cpp
index f6482ccdab9..07dcadbe3c7 100644
--- a/src/mame/drivers/taito_l.cpp
+++ b/src/mame/drivers/taito_l.cpp
@@ -584,10 +584,10 @@ void horshoes_state::horshoes_map(address_map &map)
common_banks_map(map);
map(0x8000, 0x9fff).ram();
map(0xa000, 0xa003).r(FUNC(horshoes_state::extport_select_and_ym2203_r)).w(m_ymsnd, FUNC(ym2203_device::write));
- map(0xa800, 0xa800).select(0x000c).lr8("upd4701_r",
+ map(0xa800, 0xa800).select(0x000c).lr8(NAME(
[this](address_space &space, offs_t offset, u8 mem_mask) {
return m_upd4701->read_xy(space, offset >> 2, mem_mask);
- });
+ }));
map(0xa802, 0xa802).r(m_upd4701, FUNC(upd4701_device::reset_x_r));
map(0xa803, 0xa803).r(m_upd4701, FUNC(upd4701_device::reset_y_r));
map(0xb801, 0xb801).nopr(); // Watchdog or interrupt ack
diff --git a/src/mame/drivers/taitojc.cpp b/src/mame/drivers/taitojc.cpp
index 4dae09011b9..fcd4f265752 100644
--- a/src/mame/drivers/taitojc.cpp
+++ b/src/mame/drivers/taitojc.cpp
@@ -528,7 +528,7 @@ WRITE16_MEMBER(taitojc_state::main_to_dsp_7ff_w)
void taitojc_state::cpu_space_map(address_map &map)
{
map(0xfffffff0, 0xffffffff).m(m_maincpu, FUNC(m68000_base_device::autovectors_map));
- map(0xfffffff4, 0xfffffff5).lr16("vblank irq", []() -> u16 { return 0x82; });
+ map(0xfffffff4, 0xfffffff5).lr16(NAME([] () -> u16 { return 0x82; }));
}
INTERRUPT_GEN_MEMBER(taitojc_state::taitojc_vblank)
@@ -1176,7 +1176,7 @@ void taitojc_state::init_taitojc()
m_has_dsp_hack = 1;
if (DSP_IDLESKIP)
- m_dsp->space(AS_DATA).install_read_handler(0x7ff0, 0x7ff0, read16_delegate(FUNC(taitojc_state::taitojc_dsp_idle_skip_r),this));
+ m_dsp->space(AS_DATA).install_read_handler(0x7ff0, 0x7ff0, read16_delegate(*this, FUNC(taitojc_state::taitojc_dsp_idle_skip_r)));
}
void taitojc_state::init_dendego2()
@@ -1184,7 +1184,7 @@ void taitojc_state::init_dendego2()
init_taitojc();
if (DSP_IDLESKIP)
- m_dsp->space(AS_DATA).install_read_handler(0x7ff0, 0x7ff0, read16_delegate(FUNC(taitojc_state::dendego2_dsp_idle_skip_r),this));
+ m_dsp->space(AS_DATA).install_read_handler(0x7ff0, 0x7ff0, read16_delegate(*this, FUNC(taitojc_state::dendego2_dsp_idle_skip_r)));
}
void taitojc_state::init_dangcurv()
diff --git a/src/mame/drivers/taitopjc.cpp b/src/mame/drivers/taitopjc.cpp
index 06d1cca07f7..2f8aa81665f 100644
--- a/src/mame/drivers/taitopjc.cpp
+++ b/src/mame/drivers/taitopjc.cpp
@@ -244,8 +244,8 @@ void taitopjc_state::video_start()
m_screen_ram = std::make_unique<uint32_t[]>(0x40000);
m_pal_ram = std::make_unique<uint32_t[]>(0x8000);
- m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(taitopjc_state::tile_get_info),this), tilemap_mapper_delegate(FUNC(taitopjc_state::tile_scan_layer0),this), 16, 16, 32, 32);
- m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(taitopjc_state::tile_get_info),this), tilemap_mapper_delegate(FUNC(taitopjc_state::tile_scan_layer1),this), 16, 16, 32, 32);
+ m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(taitopjc_state::tile_get_info)), tilemap_mapper_delegate(*this, FUNC(taitopjc_state::tile_scan_layer0)), 16, 16, 32, 32);
+ m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(taitopjc_state::tile_get_info)), tilemap_mapper_delegate(*this, FUNC(taitopjc_state::tile_scan_layer1)), 16, 16, 32, 32);
m_tilemap[0]->set_transparent_pen(0);
m_tilemap[1]->set_transparent_pen(1);
diff --git a/src/mame/drivers/taitosj.cpp b/src/mame/drivers/taitosj.cpp
index 401bea5bc28..bd637167fa3 100644
--- a/src/mame/drivers/taitosj.cpp
+++ b/src/mame/drivers/taitosj.cpp
@@ -2835,7 +2835,7 @@ void taitosj_state::init_spacecr()
init_common();
/* install protection handler */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xd48b, 0xd48b, read8_delegate(FUNC(taitosj_state::spacecr_prot_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xd48b, 0xd48b, read8_delegate(*this, FUNC(taitosj_state::spacecr_prot_r)));
}
void taitosj_state::init_alpine()
@@ -2843,8 +2843,8 @@ void taitosj_state::init_alpine()
init_common();
/* install protection handlers */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xd40b, 0xd40b, read8_delegate(FUNC(taitosj_state::alpine_port_2_r),this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xd50f, 0xd50f, write8_delegate(FUNC(taitosj_state::alpine_protection_w),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xd40b, 0xd40b, read8_delegate(*this, FUNC(taitosj_state::alpine_port_2_r)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xd50f, 0xd50f, write8_delegate(*this, FUNC(taitosj_state::alpine_protection_w)));
}
void taitosj_state::init_alpinea()
@@ -2852,8 +2852,8 @@ void taitosj_state::init_alpinea()
init_common();
/* install protection handlers */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xd40b, 0xd40b, read8_delegate(FUNC(taitosj_state::alpine_port_2_r),this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xd50e, 0xd50e, write8_delegate(FUNC(taitosj_state::alpinea_bankswitch_w),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xd40b, 0xd40b, read8_delegate(*this, FUNC(taitosj_state::alpine_port_2_r)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xd50e, 0xd50e, write8_delegate(*this, FUNC(taitosj_state::alpinea_bankswitch_w)));
}
void taitosj_state::init_junglhbr()
@@ -2861,7 +2861,7 @@ void taitosj_state::init_junglhbr()
init_common();
/* inverter on bits 0 and 1 */
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x9000, 0xbfff, write8_delegate(FUNC(taitosj_state::junglhbr_characterram_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x9000, 0xbfff, write8_delegate(*this, FUNC(taitosj_state::junglhbr_characterram_w)));
}
GAME( 1981, spaceskr, 0, nomcu, spaceskr, taitosj_state, init_taitosj, ROT0, "Taito Corporation", "Space Seeker", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/taitowlf.cpp b/src/mame/drivers/taitowlf.cpp
index 08c135b56b6..7ba54ff0775 100644
--- a/src/mame/drivers/taitowlf.cpp
+++ b/src/mame/drivers/taitowlf.cpp
@@ -379,10 +379,8 @@ void taitowlf_state::taitowlf(machine_config &config)
pci_bus_legacy_device &pcibus(PCI_BUS_LEGACY(config, "pcibus", 0, 0));
- pcibus.set_device_read (0, FUNC(taitowlf_state::intel82439tx_pci_r), this);
- pcibus.set_device_write(0, FUNC(taitowlf_state::intel82439tx_pci_w), this);
- pcibus.set_device_read (7, FUNC(taitowlf_state::intel82371ab_pci_r), this);
- pcibus.set_device_write(7, FUNC(taitowlf_state::intel82371ab_pci_w), this);
+ pcibus.set_device(0, FUNC(taitowlf_state::intel82439tx_pci_r), FUNC(taitowlf_state::intel82439tx_pci_w));
+ pcibus.set_device(7, FUNC(taitowlf_state::intel82371ab_pci_r), FUNC(taitowlf_state::intel82371ab_pci_w));
pcat_common(config);
diff --git a/src/mame/drivers/tandy1t.cpp b/src/mame/drivers/tandy1t.cpp
index 5b2e4e95f50..432f967a9f4 100644
--- a/src/mame/drivers/tandy1t.cpp
+++ b/src/mame/drivers/tandy1t.cpp
@@ -428,10 +428,10 @@ void tandy1000_state::machine_start()
m_maincpu->space(AS_PROGRAM).install_ram(0, m_ram->size() - (128*1024) - 1, &m_ram->pointer()[128*1024]);
if(m_maincpu->space(AS_PROGRAM).data_width() == 8)
m_maincpu->space(AS_PROGRAM).install_readwrite_handler(m_ram->size() - (128*1024), 640*1024 - 1,
- read8_delegate(FUNC(tandy1000_state::vram_r), this), write8_delegate(FUNC(tandy1000_state::vram_w), this));
+ read8_delegate(*this, FUNC(tandy1000_state::vram_r)), write8_delegate(*this, FUNC(tandy1000_state::vram_w)));
else
m_maincpu->space(AS_PROGRAM).install_readwrite_handler(m_ram->size() - (128*1024), 640*1024 - 1,
- read8_delegate(FUNC(tandy1000_state::vram_r), this), write8_delegate(FUNC(tandy1000_state::vram_w), this), 0xffff);
+ read8_delegate(*this, FUNC(tandy1000_state::vram_r)), write8_delegate(*this, FUNC(tandy1000_state::vram_w)), 0xffff);
subdevice<nvram_device>("nvram")->set_base(m_eeprom_ee, sizeof(m_eeprom_ee));
}
diff --git a/src/mame/drivers/taotaido.cpp b/src/mame/drivers/taotaido.cpp
index 446b0b1a32c..5d08dbbc066 100644
--- a/src/mame/drivers/taotaido.cpp
+++ b/src/mame/drivers/taotaido.cpp
@@ -388,7 +388,7 @@ void taotaido_state::taotaido(machine_config &config)
PALETTE(config, "palette").set_format(palette_device::xRGB_555, 0x800);
VSYSTEM_SPR(config, m_spr, 0);
- m_spr->set_tile_indirect_cb(FUNC(taotaido_state::tile_callback), this);
+ m_spr->set_tile_indirect_cb(FUNC(taotaido_state::tile_callback));
m_spr->set_gfx_region(0);
m_spr->set_gfxdecode_tag(m_gfxdecode);
diff --git a/src/mame/drivers/tapatune.cpp b/src/mame/drivers/tapatune.cpp
index e74e6fa0e87..c87b667425f 100644
--- a/src/mame/drivers/tapatune.cpp
+++ b/src/mame/drivers/tapatune.cpp
@@ -56,12 +56,14 @@
class tapatune_state : public driver_device
{
public:
- tapatune_state(const machine_config &mconfig, device_type type, const char *tag)
- : driver_device(mconfig, type, tag),
+ tapatune_state(const machine_config &mconfig, device_type type, const char *tag) :
+ driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"),
m_videocpu(*this, "videocpu"),
m_bsmt(*this, "bsmt"),
- m_videoram(*this, "videoram") {}
+ m_videoram(*this, "videoram")
+ {
+ }
void tapatune(machine_config &config);
void tapatune_base(machine_config &config);
@@ -556,8 +558,8 @@ void tapatune_state::tapatune(machine_config &config)
crtc.set_screen("screen");
crtc.set_show_border_area(false);
crtc.set_char_width(5);
- crtc.set_begin_update_callback(FUNC(tapatune_state::crtc_begin_update), this);
- crtc.set_update_row_callback(FUNC(tapatune_state::crtc_update_row), this);
+ crtc.set_begin_update_callback(FUNC(tapatune_state::crtc_begin_update));
+ crtc.set_update_row_callback(FUNC(tapatune_state::crtc_update_row));
crtc.out_vsync_callback().set(FUNC(tapatune_state::crtc_vsync));
/* video hardware */
diff --git a/src/mame/drivers/tasman.cpp b/src/mame/drivers/tasman.cpp
index 9beb36406e3..6bb9f80a5f9 100644
--- a/src/mame/drivers/tasman.cpp
+++ b/src/mame/drivers/tasman.cpp
@@ -675,7 +675,7 @@ void kongambl_state::kongambl(machine_config &config)
K055555(config, m_k055555, 0);
K055673(config, m_k055673, 0);
- m_k055673->set_sprite_callback(FUNC(kongambl_state::sprite_callback), this);
+ m_k055673->set_sprite_callback(FUNC(kongambl_state::sprite_callback));
m_k055673->set_config(K055673_LAYOUT_LE2, -48+1, -23);
m_k055673->set_palette(m_palette);
@@ -684,7 +684,7 @@ void kongambl_state::kongambl(machine_config &config)
#endif
K056832(config, m_k056832, 0);
- m_k056832->set_tile_callback(FUNC(kongambl_state::tile_callback), this);
+ m_k056832->set_tile_callback(FUNC(kongambl_state::tile_callback));
m_k056832->set_config(K056832_BPP_8TASMAN, 0, 0);
m_k056832->set_palette(m_palette);
diff --git a/src/mame/drivers/tatsumi.cpp b/src/mame/drivers/tatsumi.cpp
index c74c4e3807d..05d25ff202f 100644
--- a/src/mame/drivers/tatsumi.cpp
+++ b/src/mame/drivers/tatsumi.cpp
@@ -860,7 +860,7 @@ MACHINE_RESET_MEMBER(apache3_state,apache3)
m_subcpu2->set_input_line(INPUT_LINE_RESET, ASSERT_LINE); // TODO
/* Hook the RESET line, which resets the Z80 */
- m_subcpu->set_reset_callback(write_line_delegate(FUNC(apache3_state::apache3_68000_reset),this));
+ m_subcpu->set_reset_callback(*this, FUNC(apache3_state::apache3_68000_reset));
}
diff --git a/src/mame/drivers/tattack.cpp b/src/mame/drivers/tattack.cpp
index d040ae8ad39..a3d0e9f9e74 100644
--- a/src/mame/drivers/tattack.cpp
+++ b/src/mame/drivers/tattack.cpp
@@ -230,7 +230,7 @@ uint32_t tattack_state::screen_update_tattack(screen_device &screen, bitmap_ind1
void tattack_state::video_start()
{
- m_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tattack_state::get_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32 );
+ m_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tattack_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 32,32);
}
WRITE8_MEMBER(tattack_state::paddle_w)
diff --git a/src/mame/drivers/tavernie.cpp b/src/mame/drivers/tavernie.cpp
index 748796a994d..9cec7765635 100644
--- a/src/mame/drivers/tavernie.cpp
+++ b/src/mame/drivers/tavernie.cpp
@@ -390,7 +390,7 @@ void tavernie_state::ivg09(machine_config &config)
crtc.set_screen("screen");
crtc.set_show_border_area(false);
crtc.set_char_width(8);
- crtc.set_update_row_callback(FUNC(tavernie_state::crtc_update_row), this);
+ crtc.set_update_row_callback(FUNC(tavernie_state::crtc_update_row));
PIA6821(config, m_pia1, 0);
m_pia1->readpb_handler().set(FUNC(tavernie_state::pb_ivg_r));
diff --git a/src/mame/drivers/techno.cpp b/src/mame/drivers/techno.cpp
index 271529bac3b..13cb69af6ec 100644
--- a/src/mame/drivers/techno.cpp
+++ b/src/mame/drivers/techno.cpp
@@ -256,7 +256,7 @@ INPUT_PORTS_END
void techno_state::cpu_space_map(address_map &map)
{
map(0xfffff0, 0xffffff).m(m_maincpu, FUNC(m68000_base_device::autovectors_map));
- map(0xfffff2, 0xfffff3).lr16("timer irq", [this]() -> u16 { return m_vector; });
+ map(0xfffff2, 0xfffff3).lr16(NAME([this] () -> u16 { return m_vector; }));
}
void techno_state::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr)
diff --git a/src/mame/drivers/testpat.cpp b/src/mame/drivers/testpat.cpp
index 898f9dd5a1a..78b9e418537 100644
--- a/src/mame/drivers/testpat.cpp
+++ b/src/mame/drivers/testpat.cpp
@@ -106,7 +106,7 @@ void tp1983_state::tp1983(machine_config &config)
{
NETLIST_CPU(config, m_maincpu, NETLIST_CLOCK).set_source(netlist_tp1983);
- NETLIST_ANALOG_OUTPUT(config, "maincpu:vid0").set_params("videomix", FUNC(fixedfreq_device::update_composite_monochrome), "fixfreq");
+ NETLIST_ANALOG_OUTPUT(config, "maincpu:vid0").set_params("videomix", m_video, FUNC(fixedfreq_device::update_composite_monochrome));
SCREEN(config, "screen", SCREEN_TYPE_RASTER);
FIXFREQ(config, m_video).set_screen("screen");
@@ -122,7 +122,7 @@ void tp1985_state::tp1985(machine_config &config)
{
NETLIST_CPU(config, m_maincpu, NETLIST_CLOCK).set_source(netlist_tp1985);
- NETLIST_ANALOG_OUTPUT(config, "maincpu:vid0").set_params("videomix", FUNC(tp1985_state::video_out_cb), "");
+ NETLIST_ANALOG_OUTPUT(config, "maincpu:vid0").set_params("videomix", FUNC(tp1985_state::video_out_cb));
SCREEN(config, "screen", SCREEN_TYPE_RASTER);
FIXFREQ(config, m_video).set_screen("screen");
diff --git a/src/mame/drivers/thepit.cpp b/src/mame/drivers/thepit.cpp
index 7061b2e0dd6..22feb9f7572 100644
--- a/src/mame/drivers/thepit.cpp
+++ b/src/mame/drivers/thepit.cpp
@@ -1353,7 +1353,7 @@ READ8_MEMBER(thepit_state::rtriv_question_r)
void thepit_state::init_rtriv()
{
// Set-up the weirdest questions read ever done
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x4000, 0x4fff, read8_delegate(FUNC(thepit_state::rtriv_question_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x4000, 0x4fff, read8_delegate(*this, FUNC(thepit_state::rtriv_question_r)));
save_item(NAME(m_question_address));
save_item(NAME(m_question_rom));
diff --git a/src/mame/drivers/thomson.cpp b/src/mame/drivers/thomson.cpp
index 5a06205469e..3bceee89bd0 100644
--- a/src/mame/drivers/thomson.cpp
+++ b/src/mame/drivers/thomson.cpp
@@ -746,7 +746,7 @@ void thomson_state::to7_base(machine_config &config)
acia_clock.signal_handler().set(FUNC(thomson_state::write_acia_clock));
/* cartridge */
- GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "to_cart", "m7,rom").set_device_load(FUNC(thomson_state::to7_cartridge), this);
+ GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "to_cart", "m7,rom").set_device_load(FUNC(thomson_state::to7_cartridge));
/* internal ram */
RAM(config, m_ram).set_default_size("40K").set_extra_options("24K,48K");
@@ -1160,7 +1160,7 @@ void thomson_state::mo5(machine_config &config)
m_pia_sys->cb2_handler().set_nop();
m_pia_sys->irqb_handler().set("mainirq", FUNC(input_merger_device::in_w<1>)); // WARNING: differs from TO7 !
- GENERIC_CARTSLOT(config.replace(), "cartslot", generic_plain_slot, "mo_cart", "m5,rom").set_device_load(FUNC(thomson_state::mo5_cartridge), this);
+ GENERIC_CARTSLOT(config.replace(), "cartslot", generic_plain_slot, "mo_cart", "m5,rom").set_device_load(FUNC(thomson_state::mo5_cartridge));
config.device_remove("to7_cart_list");
config.device_remove("to7_cass_list");
@@ -2256,7 +2256,7 @@ void thomson_state::mo6(machine_config &config)
OUTPUT_LATCH(config, m_cent_data_out);
m_centronics->set_output_latch(*m_cent_data_out);
- GENERIC_CARTSLOT(config.replace(), "cartslot", generic_plain_slot, "mo_cart", "m5,rom").set_device_load(FUNC(thomson_state::mo5_cartridge), this);
+ GENERIC_CARTSLOT(config.replace(), "cartslot", generic_plain_slot, "mo_cart", "m5,rom").set_device_load(FUNC(thomson_state::mo5_cartridge));
/* internal ram */
m_ram->set_default_size("128K");
@@ -2523,7 +2523,7 @@ void thomson_state::mo5nr(machine_config &config)
OUTPUT_LATCH(config, m_cent_data_out);
m_centronics->set_output_latch(*m_cent_data_out);
- GENERIC_CARTSLOT(config.replace(), "cartslot", generic_plain_slot, "mo_cart", "m5,rom").set_device_load(FUNC(thomson_state::mo5_cartridge), this);
+ GENERIC_CARTSLOT(config.replace(), "cartslot", generic_plain_slot, "mo_cart", "m5,rom").set_device_load(FUNC(thomson_state::mo5_cartridge));
/* internal ram */
m_ram->set_default_size("128K");
diff --git a/src/mame/drivers/thoop2.cpp b/src/mame/drivers/thoop2.cpp
index c8a9c49e2df..7b153735cfa 100644
--- a/src/mame/drivers/thoop2.cpp
+++ b/src/mame/drivers/thoop2.cpp
@@ -135,7 +135,7 @@ void thoop2_state::thoop2_map(address_map &map)
map(0x700004, 0x700005).portr("P1");
map(0x700006, 0x700007).portr("P2");
map(0x700008, 0x700009).portr("SYSTEM");
- map(0x70000b, 0x70000b).select(0x000070).lw8("outlatch_w", [this](offs_t offset, u8 data) { m_outlatch->write_d0(offset >> 4, data); });
+ map(0x70000b, 0x70000b).select(0x000070).lw8(NAME([this] (offs_t offset, u8 data) { m_outlatch->write_d0(offset >> 4, data); }));
map(0x70000d, 0x70000d).w(FUNC(thoop2_state::oki_bankswitch_w)); /* OKI6295 bankswitch */
map(0x70000f, 0x70000f).rw("oki", FUNC(okim6295_device::read), FUNC(okim6295_device::write)); /* OKI6295 data register */
map(0xfe0000, 0xfe7fff).ram(); /* Work RAM */
diff --git a/src/mame/drivers/thunderx.cpp b/src/mame/drivers/thunderx.cpp
index 9f50f97de8a..c510c8d70dd 100644
--- a/src/mame/drivers/thunderx.cpp
+++ b/src/mame/drivers/thunderx.cpp
@@ -660,13 +660,13 @@ void thunderx_state::scontra(machine_config &config)
K052109(config, m_k052109, 0); // 051961 on Super Contra and Thunder Cross schematics
m_k052109->set_palette(m_palette);
m_k052109->set_screen("screen");
- m_k052109->set_tile_callback(FUNC(thunderx_state::tile_callback), this);
+ m_k052109->set_tile_callback(FUNC(thunderx_state::tile_callback));
m_k052109->irq_handler().set_inputline(m_maincpu, KONAMI_IRQ_LINE);
K051960(config, m_k051960, 0);
m_k051960->set_palette(m_palette);
m_k051960->set_screen("screen");
- m_k051960->set_sprite_callback(FUNC(thunderx_state::sprite_callback), this);
+ m_k051960->set_sprite_callback(FUNC(thunderx_state::sprite_callback));
/* sound hardware */
SPEAKER(config, "mono").front_center();
@@ -715,7 +715,7 @@ void thunderx_state::gbusters(machine_config &config)
m_maincpu->set_addrmap(AS_PROGRAM, &thunderx_state::gbusters_map);
m_maincpu->line().set(FUNC(thunderx_state::banking_callback));
- m_k052109->set_tile_callback(FUNC(thunderx_state::gbusters_tile_callback), this);
+ m_k052109->set_tile_callback(FUNC(thunderx_state::gbusters_tile_callback));
}
diff --git a/src/mame/drivers/ti74.cpp b/src/mame/drivers/ti74.cpp
index 8081b37f94b..397809989c8 100644
--- a/src/mame/drivers/ti74.cpp
+++ b/src/mame/drivers/ti74.cpp
@@ -504,7 +504,7 @@ void ti74_state::machine_start()
m_lamps.resolve();
if (m_cart->exists())
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x4000, 0xbfff, read8sm_delegate(FUNC(generic_slot_device::read_rom),(generic_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x4000, 0xbfff, read8sm_delegate(*m_cart, FUNC(generic_slot_device::read_rom)));
membank("sysbank")->configure_entries(0, 4, memregion("system")->base(), 0x2000);
membank("sysbank")->set_entry(0);
@@ -544,10 +544,10 @@ void ti74_state::ti74(machine_config &config)
hd44780_device &hd44780(HD44780(config, "hd44780", 0)); // 270kHz
hd44780.set_lcd_size(2, 16); // 2*16 internal
- hd44780.set_pixel_update_cb(FUNC(ti74_state::ti74_pixel_update), this);
+ hd44780.set_pixel_update_cb(FUNC(ti74_state::ti74_pixel_update));
/* cartridge */
- GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "ti74_cart", "bin,rom,256").set_device_load(FUNC(ti74_state::cart_load), this);
+ GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "ti74_cart", "bin,rom,256").set_device_load(FUNC(ti74_state::cart_load));
SOFTWARE_LIST(config, "cart_list").set_original("ti74_cart");
}
@@ -578,10 +578,10 @@ void ti74_state::ti95(machine_config &config)
hd44780_device &hd44780(HD44780(config, "hd44780", 0));
hd44780.set_lcd_size(2, 16);
- hd44780.set_pixel_update_cb(FUNC(ti74_state::ti95_pixel_update), this);
+ hd44780.set_pixel_update_cb(FUNC(ti74_state::ti95_pixel_update));
/* cartridge */
- GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "ti95_cart", "bin,rom,256").set_device_load(FUNC(ti74_state::cart_load), this);
+ GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "ti95_cart", "bin,rom,256").set_device_load(FUNC(ti74_state::cart_load));
SOFTWARE_LIST(config, "cart_list").set_original("ti95_cart");
}
diff --git a/src/mame/drivers/ti85.cpp b/src/mame/drivers/ti85.cpp
index 71fe2576e47..1605411788d 100644
--- a/src/mame/drivers/ti85.cpp
+++ b/src/mame/drivers/ti85.cpp
@@ -618,7 +618,7 @@ void ti85_state::ti85(machine_config &config)
void ti85_state::ti85d(machine_config &config)
{
ti85(config);
- SNAPSHOT(config, "snapshot", "sav").set_load_callback(FUNC(ti85_state::snapshot_cb), this);
+ SNAPSHOT(config, "snapshot", "sav").set_load_callback(FUNC(ti85_state::snapshot_cb));
//TI85SERIAL(config, "tiserial");
}
@@ -672,7 +672,7 @@ void ti85_state::ti86(machine_config &config)
MCFG_MACHINE_START_OVERRIDE(ti85_state, ti86)
MCFG_MACHINE_RESET_OVERRIDE(ti85_state, ti85)
- SNAPSHOT(config, "snapshot", "sav").set_load_callback(FUNC(ti85_state::snapshot_cb), this);
+ SNAPSHOT(config, "snapshot", "sav").set_load_callback(FUNC(ti85_state::snapshot_cb));
}
void ti85_state::ti83p(machine_config &config)
diff --git a/src/mame/drivers/ti89.cpp b/src/mame/drivers/ti89.cpp
index 67f823f2b94..1e4a6c3bd20 100644
--- a/src/mame/drivers/ti89.cpp
+++ b/src/mame/drivers/ti89.cpp
@@ -464,11 +464,11 @@ void ti68k_state::machine_start()
if (initial_pc > 0x400000)
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x400000, 0x5fffff, read16_delegate(FUNC(ti68k_state::rom_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x400000, 0x5fffff, read16_delegate(*this, FUNC(ti68k_state::rom_r)));
}
else
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x200000, 0x3fffff, read16_delegate(FUNC(ti68k_state::rom_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x200000, 0x3fffff, read16_delegate(*this, FUNC(ti68k_state::rom_r)));
}
}
diff --git a/src/mame/drivers/tim100.cpp b/src/mame/drivers/tim100.cpp
index f91f4f830c2..e0dedbddc6f 100644
--- a/src/mame/drivers/tim100.cpp
+++ b/src/mame/drivers/tim100.cpp
@@ -177,7 +177,7 @@ void tim100_state::tim100(machine_config &config)
I8276(config, m_crtc, XTAL(4'915'200));
m_crtc->set_character_width(12);
- m_crtc->set_display_callback(FUNC(tim100_state::crtc_display_pixels), this);
+ m_crtc->set_display_callback(FUNC(tim100_state::crtc_display_pixels));
m_crtc->drq_wr_callback().set(FUNC(tim100_state::drq_w));
m_crtc->irq_wr_callback().set(FUNC(tim100_state::irq_w));
m_crtc->set_screen("screen");
diff --git a/src/mame/drivers/timeplt.cpp b/src/mame/drivers/timeplt.cpp
index 98708dd54c4..a1f559f6113 100644
--- a/src/mame/drivers/timeplt.cpp
+++ b/src/mame/drivers/timeplt.cpp
@@ -141,7 +141,7 @@ void timeplt_state::timeplt_main_map(address_map &map)
map(0xc000, 0xc000).mirror(0x0cff).r(FUNC(timeplt_state::scanline_r)).w("timeplt_audio", FUNC(timeplt_audio_device::sound_data_w));
map(0xc200, 0xc200).mirror(0x0cff).portr("DSW1").w("watchdog", FUNC(watchdog_timer_device::reset_w));
map(0xc300, 0xc300).mirror(0x0c9f).portr("IN0");
- map(0xc300, 0xc30f).lw8("mainlatch_w", [this](offs_t offset, u8 data) { m_mainlatch->write_d0(offset >> 1, data); });
+ map(0xc300, 0xc30f).lw8(NAME([this] (offs_t offset, u8 data) { m_mainlatch->write_d0(offset >> 1, data); }));
map(0xc320, 0xc320).mirror(0x0c9f).portr("IN1");
map(0xc340, 0xc340).mirror(0x0c9f).portr("IN2");
map(0xc360, 0xc360).mirror(0x0c9f).portr("DSW0");
diff --git a/src/mame/drivers/timex.cpp b/src/mame/drivers/timex.cpp
index b09f26844fe..f15b772541c 100644
--- a/src/mame/drivers/timex.cpp
+++ b/src/mame/drivers/timex.cpp
@@ -713,7 +713,7 @@ void timex_state::ts2068(machine_config &config)
AY8912(config.replace(), "ay8912", XTAL(14'112'000)/8).add_route(ALL_OUTPUTS, "mono", 0.25); /* From Schematic; 1.764 MHz */
/* cartridge */
- GENERIC_CARTSLOT(config, "dockslot", generic_plain_slot, "timex_cart", "dck,bin").set_device_load(FUNC(timex_state::cart_load), this);
+ GENERIC_CARTSLOT(config, "dockslot", generic_plain_slot, "timex_cart", "dck,bin").set_device_load(FUNC(timex_state::cart_load));
/* Software lists */
SOFTWARE_LIST(config, "cart_list").set_original("timex_dock");
diff --git a/src/mame/drivers/tispeak.cpp b/src/mame/drivers/tispeak.cpp
index 9de61d8631c..5c0cda68296 100644
--- a/src/mame/drivers/tispeak.cpp
+++ b/src/mame/drivers/tispeak.cpp
@@ -1328,7 +1328,7 @@ void tispeak_state::sns_cd2801(machine_config &config)
/* cartridge */
GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "snspell", "vsm");
- m_cart->set_device_load(FUNC(tispeak_state::cart_load), this);
+ m_cart->set_device_load(FUNC(tispeak_state::cart_load));
SOFTWARE_LIST(config, "cart_list").set_original("snspell");
}
@@ -1379,7 +1379,7 @@ void tispeak_state::snread(machine_config &config)
/* cartridge */
GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "snread", "vsm");
- m_cart->set_device_load(FUNC(tispeak_state::cart_load), this);
+ m_cart->set_device_load(FUNC(tispeak_state::cart_load));
SOFTWARE_LIST(config, "cart_list").set_original("snread");
}
@@ -1398,7 +1398,7 @@ void tispeak_state::lantutor(machine_config &config)
/* cartridge */
GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "lantutor", "vsm,bin");
m_cart->set_must_be_loaded(true);
- m_cart->set_device_load(FUNC(tispeak_state::cart_load), this);
+ m_cart->set_device_load(FUNC(tispeak_state::cart_load));
SOFTWARE_LIST(config, "cart_list").set_original("lantutor");
}
@@ -1423,7 +1423,7 @@ void tispeak_state::snspellc(machine_config &config)
/* cartridge */
GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "snspell", "vsm");
- m_cart->set_device_load(FUNC(tispeak_state::cart_load), this);
+ m_cart->set_device_load(FUNC(tispeak_state::cart_load));
SOFTWARE_LIST(config, "cart_list").set_original("snspell");
}
@@ -1463,7 +1463,7 @@ void tispeak_state::tntell(machine_config &config)
/* cartridge */
GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "tntell", "vsm");
- m_cart->set_device_load(FUNC(tispeak_state::cart_load), this);
+ m_cart->set_device_load(FUNC(tispeak_state::cart_load));
SOFTWARE_LIST(config, "cart_list").set_original("tntell");
}
@@ -1488,7 +1488,7 @@ void tispeak_state::k28m2(machine_config &config)
/* cartridge */
GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "k28m2", "vsm");
- m_cart->set_device_load(FUNC(tispeak_state::cart_load), this);
+ m_cart->set_device_load(FUNC(tispeak_state::cart_load));
SOFTWARE_LIST(config, "cart_list").set_original("k28m2");
}
diff --git a/src/mame/drivers/tmaster.cpp b/src/mame/drivers/tmaster.cpp
index 5ccede566ba..ac309170f3b 100644
--- a/src/mame/drivers/tmaster.cpp
+++ b/src/mame/drivers/tmaster.cpp
@@ -212,7 +212,7 @@ WRITE_LINE_MEMBER(tmaster_state::write_oki_bank1)
void tmaster_state::cpu_space_map(address_map &map)
{
map(0xfffff0, 0xffffff).m(m_maincpu, FUNC(m68000_base_device::autovectors_map));
- map(0xfffff8, 0xfffff9).lr16("irq 2", [this]() -> u16 { return m_duart->get_irq_vector(); });
+ map(0xfffff8, 0xfffff9).lr16(NAME([this] () -> u16 { return m_duart->get_irq_vector(); }));
}
WRITE_LINE_MEMBER(tmaster_state::duart_irq_handler)
diff --git a/src/mame/drivers/tmc1800.cpp b/src/mame/drivers/tmc1800.cpp
index 48ae70db106..c6a5d6421ae 100644
--- a/src/mame/drivers/tmc1800.cpp
+++ b/src/mame/drivers/tmc1800.cpp
@@ -800,7 +800,7 @@ void tmc1800_state::tmc1800(machine_config &config)
BEEP(config, m_beeper, 0).add_route(ALL_OUTPUTS, "mono", 0.25);
// devices
- QUICKLOAD(config, "quickload", "bin").set_load_callback(FUNC(tmc1800_base_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "bin").set_load_callback(FUNC(tmc1800_base_state::quickload_cb));
CASSETTE(config, m_cassette);
m_cassette->set_default_state(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED);
m_cassette->add_route(ALL_OUTPUTS, "mono", 0.05);
@@ -829,7 +829,7 @@ void osc1000b_state::osc1000b(machine_config &config)
BEEP(config, m_beeper, 0).add_route(ALL_OUTPUTS, "mono", 0.25);
// devices
- QUICKLOAD(config, "quickload", "bin").set_load_callback(FUNC(tmc1800_base_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "bin").set_load_callback(FUNC(tmc1800_base_state::quickload_cb));
CASSETTE(config, m_cassette);
m_cassette->set_default_state(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED);
m_cassette->add_route(ALL_OUTPUTS, "mono", 0.05);
@@ -855,7 +855,7 @@ void tmc2000_state::tmc2000(machine_config &config)
tmc2000_video(config);
// devices
- QUICKLOAD(config, "quickload", "bin").set_load_callback(FUNC(tmc1800_base_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "bin").set_load_callback(FUNC(tmc1800_base_state::quickload_cb));
CASSETTE(config, m_cassette);
m_cassette->set_default_state(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED);
m_cassette->add_route(ALL_OUTPUTS, "mono", 0.05);
@@ -881,7 +881,7 @@ void nano_state::nano(machine_config &config)
nano_video(config);
// devices
- QUICKLOAD(config, "quickload", "bin").set_load_callback(FUNC(tmc1800_base_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "bin").set_load_callback(FUNC(tmc1800_base_state::quickload_cb));
CASSETTE(config, m_cassette);
m_cassette->set_default_state(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED);
m_cassette->add_route(ALL_OUTPUTS, "mono", 0.05);
diff --git a/src/mame/drivers/tmnt.cpp b/src/mame/drivers/tmnt.cpp
index 837839c791e..55107db6051 100644
--- a/src/mame/drivers/tmnt.cpp
+++ b/src/mame/drivers/tmnt.cpp
@@ -1082,9 +1082,9 @@ void prmrsocr_state::prmrsocr_audio_map(address_map &map)
map(0x0000, 0x7fff).rom();
map(0x8000, 0xbfff).bankr("bank1");
map(0xc000, 0xdfff).ram();
- map(0xe000, 0xe12f).lrw8("k054539_rw",
- [this](offs_t offset) { return m_k054539->read(((offset & 0x100) << 1) | (offset & 0xff)); },
- [this](offs_t offset, u8 data) { m_k054539->write(((offset & 0x100) << 1) | (offset & 0xff), data); });
+ map(0xe000, 0xe12f).lrw8(
+ NAME([this](offs_t offset) { return m_k054539->read(((offset & 0x100) << 1) | (offset & 0xff)); }),
+ NAME([this](offs_t offset, u8 data) { m_k054539->write(((offset & 0x100) << 1) | (offset & 0xff), data); }));
map(0xf000, 0xf003).m("k054321", FUNC(k054321_device::sound_map));
map(0xf800, 0xf800).w(FUNC(prmrsocr_state::prmrsocr_audio_bankswitch_w));
}
@@ -1950,12 +1950,12 @@ void tmnt_state::cuebrick(machine_config &config)
K052109(config, m_k052109, 0);
m_k052109->set_palette(m_palette);
m_k052109->set_screen(nullptr);
- m_k052109->set_tile_callback(FUNC(tmnt_state::cuebrick_tile_callback), this);
+ m_k052109->set_tile_callback(FUNC(tmnt_state::cuebrick_tile_callback));
K051960(config, m_k051960, 0);
m_k051960->set_palette(m_palette);
m_k051960->set_screen("screen");
- m_k051960->set_sprite_callback(FUNC(tmnt_state::mia_sprite_callback), this);
+ m_k051960->set_sprite_callback(FUNC(tmnt_state::mia_sprite_callback));
m_k051960->set_plane_order(K051960_PLANEORDER_MIA);
/* sound hardware */
@@ -2000,12 +2000,12 @@ void tmnt_state::mia(machine_config &config)
K052109(config, m_k052109, 0);
m_k052109->set_palette(m_palette);
m_k052109->set_screen(nullptr);
- m_k052109->set_tile_callback(FUNC(tmnt_state::mia_tile_callback), this);
+ m_k052109->set_tile_callback(FUNC(tmnt_state::mia_tile_callback));
K051960(config, m_k051960, 0);
m_k051960->set_palette(m_palette);
m_k051960->set_screen("screen");
- m_k051960->set_sprite_callback(FUNC(tmnt_state::mia_sprite_callback), this);
+ m_k051960->set_sprite_callback(FUNC(tmnt_state::mia_sprite_callback));
m_k051960->set_plane_order(K051960_PLANEORDER_MIA);
/* sound hardware */
@@ -2063,12 +2063,12 @@ void tmnt_state::tmnt(machine_config &config)
K052109(config, m_k052109, 0);
m_k052109->set_palette(m_palette);
m_k052109->set_screen(nullptr);
- m_k052109->set_tile_callback(FUNC(tmnt_state::tmnt_tile_callback), this);
+ m_k052109->set_tile_callback(FUNC(tmnt_state::tmnt_tile_callback));
K051960(config, m_k051960, 0);
m_k051960->set_palette(m_palette);
m_k051960->set_screen("screen");
- m_k051960->set_sprite_callback(FUNC(tmnt_state::tmnt_sprite_callback), this);
+ m_k051960->set_sprite_callback(FUNC(tmnt_state::tmnt_sprite_callback));
m_k051960->set_plane_order(K051960_PLANEORDER_MIA);
/* sound hardware */
@@ -2123,12 +2123,12 @@ void tmnt_state::punkshot(machine_config &config)
K052109(config, m_k052109, 0);
m_k052109->set_palette(m_palette);
m_k052109->set_screen(nullptr);
- m_k052109->set_tile_callback(FUNC(tmnt_state::tmnt_tile_callback), this);
+ m_k052109->set_tile_callback(FUNC(tmnt_state::tmnt_tile_callback));
K051960(config, m_k051960, 0);
m_k051960->set_palette(m_palette);
m_k051960->set_screen("screen");
- m_k051960->set_sprite_callback(FUNC(tmnt_state::punkshot_sprite_callback), this);
+ m_k051960->set_sprite_callback(FUNC(tmnt_state::punkshot_sprite_callback));
K053251(config, m_k053251, 0);
@@ -2174,11 +2174,11 @@ void tmnt_state::lgtnfght(machine_config &config)
K052109(config, m_k052109, 0);
m_k052109->set_palette(m_palette);
m_k052109->set_screen(nullptr);
- m_k052109->set_tile_callback(FUNC(tmnt_state::tmnt_tile_callback), this);
+ m_k052109->set_tile_callback(FUNC(tmnt_state::tmnt_tile_callback));
K053245(config, m_k053245, 0);
m_k053245->set_palette(m_palette);
- m_k053245->set_sprite_callback(FUNC(tmnt_state::lgtnfght_sprite_callback), this);
+ m_k053245->set_sprite_callback(FUNC(tmnt_state::lgtnfght_sprite_callback));
K053251(config, m_k053251, 0);
@@ -2230,11 +2230,11 @@ void tmnt_state::blswhstl(machine_config &config)
K052109(config, m_k052109, 0);
m_k052109->set_palette(m_palette);
m_k052109->set_screen(nullptr);
- m_k052109->set_tile_callback(FUNC(tmnt_state::blswhstl_tile_callback), this);
+ m_k052109->set_tile_callback(FUNC(tmnt_state::blswhstl_tile_callback));
K053245(config, m_k053245, 0);
m_k053245->set_palette(m_palette);
- m_k053245->set_sprite_callback(FUNC(tmnt_state::blswhstl_sprite_callback), this);
+ m_k053245->set_sprite_callback(FUNC(tmnt_state::blswhstl_sprite_callback));
K053251(config, m_k053251, 0);
K054000(config, m_k054000, 0);
@@ -2307,11 +2307,11 @@ void glfgreat_state::glfgreat(machine_config &config)
K052109(config, m_k052109, 0);
m_k052109->set_palette(m_palette);
m_k052109->set_screen(nullptr);
- m_k052109->set_tile_callback(FUNC(glfgreat_state::tmnt_tile_callback), this);
+ m_k052109->set_tile_callback(FUNC(glfgreat_state::tmnt_tile_callback));
K053245(config, m_k053245, 0);
m_k053245->set_palette(m_palette);
- m_k053245->set_sprite_callback(FUNC(glfgreat_state::lgtnfght_sprite_callback), this);
+ m_k053245->set_sprite_callback(FUNC(glfgreat_state::lgtnfght_sprite_callback));
K053936(config, m_k053936, 0);
m_k053936->set_wrap(1);
@@ -2373,11 +2373,11 @@ void prmrsocr_state::prmrsocr(machine_config &config)
K052109(config, m_k052109, 0);
m_k052109->set_palette(m_palette);
m_k052109->set_screen(nullptr);
- m_k052109->set_tile_callback(FUNC(prmrsocr_state::tmnt_tile_callback), this);
+ m_k052109->set_tile_callback(FUNC(prmrsocr_state::tmnt_tile_callback));
K053245(config, m_k053245, 0);
m_k053245->set_palette(m_palette);
- m_k053245->set_sprite_callback(FUNC(prmrsocr_state::prmrsocr_sprite_callback), this);
+ m_k053245->set_sprite_callback(FUNC(prmrsocr_state::prmrsocr_sprite_callback));
K053936(config, m_k053936, 0);
m_k053936->set_offsets(85, 1);
@@ -2435,11 +2435,11 @@ void tmnt_state::tmnt2(machine_config &config)
K052109(config, m_k052109, 0);
m_k052109->set_palette(m_palette);
m_k052109->set_screen(nullptr);
- m_k052109->set_tile_callback(FUNC(tmnt_state::tmnt_tile_callback), this);
+ m_k052109->set_tile_callback(FUNC(tmnt_state::tmnt_tile_callback));
K053245(config, m_k053245, 0);
m_k053245->set_palette(m_palette);
- m_k053245->set_sprite_callback(FUNC(tmnt_state::lgtnfght_sprite_callback), this);
+ m_k053245->set_sprite_callback(FUNC(tmnt_state::lgtnfght_sprite_callback));
K053251(config, m_k053251, 0);
@@ -2490,11 +2490,11 @@ void tmnt_state::ssriders(machine_config &config)
K052109(config, m_k052109, 0);
m_k052109->set_palette(m_palette);
m_k052109->set_screen(nullptr);
- m_k052109->set_tile_callback(FUNC(tmnt_state::tmnt_tile_callback), this);
+ m_k052109->set_tile_callback(FUNC(tmnt_state::tmnt_tile_callback));
K053245(config, m_k053245, 0);
m_k053245->set_palette(m_palette);
- m_k053245->set_sprite_callback(FUNC(tmnt_state::lgtnfght_sprite_callback), this);
+ m_k053245->set_sprite_callback(FUNC(tmnt_state::lgtnfght_sprite_callback));
K053251(config, m_k053251, 0);
@@ -2537,11 +2537,11 @@ void tmnt_state::sunsetbl(machine_config &config)
K052109(config, m_k052109, 0);
m_k052109->set_palette(m_palette);
m_k052109->set_screen(nullptr);
- m_k052109->set_tile_callback(FUNC(tmnt_state::ssbl_tile_callback), this);
+ m_k052109->set_tile_callback(FUNC(tmnt_state::ssbl_tile_callback));
K053245(config, m_k053245, 0);
m_k053245->set_palette(m_palette);
- m_k053245->set_sprite_callback(FUNC(tmnt_state::lgtnfght_sprite_callback), this);
+ m_k053245->set_sprite_callback(FUNC(tmnt_state::lgtnfght_sprite_callback));
K053251(config, m_k053251, 0);
@@ -2585,12 +2585,12 @@ void tmnt_state::thndrx2(machine_config &config)
K052109(config, m_k052109, 0);
m_k052109->set_palette(m_palette);
m_k052109->set_screen(nullptr);
- m_k052109->set_tile_callback(FUNC(tmnt_state::tmnt_tile_callback), this);
+ m_k052109->set_tile_callback(FUNC(tmnt_state::tmnt_tile_callback));
K051960(config, m_k051960, 0);
m_k051960->set_palette(m_palette);
m_k051960->set_screen("screen");
- m_k051960->set_sprite_callback(FUNC(tmnt_state::thndrx2_sprite_callback), this);
+ m_k051960->set_sprite_callback(FUNC(tmnt_state::thndrx2_sprite_callback));
K053251(config, m_k053251, 0);
diff --git a/src/mame/drivers/tmspoker.cpp b/src/mame/drivers/tmspoker.cpp
index bf06b7801a0..a30894eda93 100644
--- a/src/mame/drivers/tmspoker.cpp
+++ b/src/mame/drivers/tmspoker.cpp
@@ -286,7 +286,7 @@ TILE_GET_INFO_MEMBER(tmspoker_state::get_bg_tile_info)
void tmspoker_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tmspoker_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tmspoker_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
uint32_t tmspoker_state::screen_update_tmspoker(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
diff --git a/src/mame/drivers/toaplan2.cpp b/src/mame/drivers/toaplan2.cpp
index 64783f2a609..d4df4d84480 100644
--- a/src/mame/drivers/toaplan2.cpp
+++ b/src/mame/drivers/toaplan2.cpp
@@ -433,7 +433,7 @@ MACHINE_RESET_MEMBER(toaplan2_state,toaplan2)
// All games execute a RESET instruction on init, presumably to reset the sound CPU.
// This is important for games with common RAM; the RAM test will fail
// when leaving service mode if the sound CPU is not reset.
- m_maincpu->set_reset_callback(write_line_delegate(FUNC(toaplan2_state::toaplan2_reset),this));
+ m_maincpu->set_reset_callback(*this, FUNC(toaplan2_state::toaplan2_reset));
}
@@ -555,13 +555,13 @@ void toaplan2_state::init_enmadaio()
void toaplan2_state::cpu_space_fixeightbl_map(address_map &map)
{
map(0xfffff0, 0xffffff).m(m_maincpu, FUNC(m68000_base_device::autovectors_map));
- map(0xfffff5, 0xfffff5).lr8("irq 2", [this]() { m_maincpu->set_input_line(M68K_IRQ_2, CLEAR_LINE); return m68000_device::autovector(2); });
+ map(0xfffff5, 0xfffff5).lr8(NAME([this] () { m_maincpu->set_input_line(M68K_IRQ_2, CLEAR_LINE); return m68000_device::autovector(2); }));
}
void toaplan2_state::cpu_space_pipibibsbl_map(address_map &map)
{
map(0xfffff0, 0xffffff).m(m_maincpu, FUNC(m68000_base_device::autovectors_map));
- map(0xfffff9, 0xfffff9).lr8("irq 4", [this]() { m_maincpu->set_input_line(M68K_IRQ_4, CLEAR_LINE); return m68000_device::autovector(4); });
+ map(0xfffff9, 0xfffff9).lr8(NAME([this] () { m_maincpu->set_input_line(M68K_IRQ_4, CLEAR_LINE); return m68000_device::autovector(4); }));
}
@@ -1258,9 +1258,9 @@ void toaplan2_state::batrider_68k_mem(address_map &map)
map(0x200000, 0x207fff).ram().share("mainram");
map(0x208000, 0x20ffff).ram();
map(0x300000, 0x37ffff).r(FUNC(toaplan2_state::batrider_z80rom_r));
- map(0x400000, 0x40000d).lrw16("gp9001_invert_rw",
- [this](offs_t offset, u16 mem_mask) { return m_vdp[0]->read(offset ^ (0xc/2), mem_mask); },
- [this](offs_t offset, u16 data, u16 mem_mask) { m_vdp[0]->write(offset ^ (0xc/2), data, mem_mask); });
+ map(0x400000, 0x40000d).lrw16(
+ NAME([this](offs_t offset, u16 mem_mask) { return m_vdp[0]->read(offset ^ (0xc/2), mem_mask); }),
+ NAME([this](offs_t offset, u16 data, u16 mem_mask) { m_vdp[0]->write(offset ^ (0xc/2), data, mem_mask); }));
map(0x500000, 0x500001).portr("IN");
map(0x500002, 0x500003).portr("SYS-DSW");
map(0x500004, 0x500005).portr("DSW");
@@ -1287,9 +1287,9 @@ void toaplan2_state::bbakraid_68k_mem(address_map &map)
map(0x200000, 0x207fff).ram().share("mainram");
map(0x208000, 0x20ffff).ram();
map(0x300000, 0x33ffff).r(FUNC(toaplan2_state::batrider_z80rom_r));
- map(0x400000, 0x40000d).lrw16("gp9001_invert_rw",
- [this](offs_t offset, u16 mem_mask) { return m_vdp[0]->read(offset ^ (0xc/2), mem_mask); },
- [this](offs_t offset, u16 data, u16 mem_mask) { m_vdp[0]->write(offset ^ (0xc/2), data, mem_mask); });
+ map(0x400000, 0x40000d).lrw16(
+ NAME([this](offs_t offset, u16 mem_mask) { return m_vdp[0]->read(offset ^ (0xc/2), mem_mask); }),
+ NAME([this](offs_t offset, u16 data, u16 mem_mask) { m_vdp[0]->write(offset ^ (0xc/2), data, mem_mask); }));
map(0x500000, 0x500001).portr("IN");
map(0x500002, 0x500003).portr("SYS-DSW");
map(0x500004, 0x500005).portr("DSW");
@@ -4055,7 +4055,7 @@ void toaplan2_state::batrider(machine_config &config)
GP9001_VDP(config, m_vdp[0], 27_MHz_XTAL);
m_vdp[0]->set_palette(m_palette);
- m_vdp[0]->set_tile_callback(gp9001vdp_device::gp9001_cb_delegate(FUNC(toaplan2_state::batrider_bank_cb), this));
+ m_vdp[0]->set_tile_callback(FUNC(toaplan2_state::batrider_bank_cb));
m_vdp[0]->vint_out_cb().set_inputline(m_maincpu, M68K_IRQ_2);
MCFG_VIDEO_START_OVERRIDE(toaplan2_state,batrider)
@@ -4121,7 +4121,7 @@ void toaplan2_state::bbakraid(machine_config &config)
GP9001_VDP(config, m_vdp[0], 27_MHz_XTAL);
m_vdp[0]->set_palette(m_palette);
- m_vdp[0]->set_tile_callback(gp9001vdp_device::gp9001_cb_delegate(FUNC(toaplan2_state::batrider_bank_cb), this));
+ m_vdp[0]->set_tile_callback(FUNC(toaplan2_state::batrider_bank_cb));
m_vdp[0]->vint_out_cb().set_inputline(m_maincpu, M68K_IRQ_1);
MCFG_VIDEO_START_OVERRIDE(toaplan2_state,batrider)
diff --git a/src/mame/drivers/tomy_princ.cpp b/src/mame/drivers/tomy_princ.cpp
index 2948c11711b..7723dcfcf17 100644
--- a/src/mame/drivers/tomy_princ.cpp
+++ b/src/mame/drivers/tomy_princ.cpp
@@ -124,10 +124,10 @@ uint32_t tomy_princ_state::screen_update_tomy_princ(screen_device &screen, bitma
// fe2d25
void tomy_princ_state::princ_map(address_map &map)
{
- map(0x000001, 0x000001).lw8("free2", [](u8 data) { return 0xff; });
+ map(0x000001, 0x000001).lw8([](u8 data) { return 0xff; }, "free2");
map(0x000008, 0x000008).r(FUNC(tomy_princ_state::read_gpu_status));
- map(0x68ff00, 0x68ff00).lw8("free1", [this](u8 data) { bFirstPort8Read = true; });
- map(0x68ff44, 0x68ff44).lr8("free0", [this]() -> u8 { return m_screen->vblank() ? 0x11 : 0x10; });
+ map(0x68ff00, 0x68ff00).lw8([this](u8 data) { bFirstPort8Read = true; }, "free1");
+ map(0x68ff44, 0x68ff44).lr8([this]() -> u8 { return m_screen->vblank() ? 0x11 : 0x10; }, "free0");
map(0xe00000, 0xe07fff).ram(); // stacks are placed here
map(0xf00000, 0xffffff).rom().region("maincpu", 0x00000);
}
diff --git a/src/mame/drivers/tourvis.cpp b/src/mame/drivers/tourvis.cpp
index d5f46c0fd2a..010719b1e3e 100644
--- a/src/mame/drivers/tourvis.cpp
+++ b/src/mame/drivers/tourvis.cpp
@@ -433,7 +433,7 @@ void tourvision_state::tourvision(machine_config &config)
SPEAKER(config, "rspeaker").front_right();
generic_cartslot_device &cartslot(GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "tourvision_cart", "bin"));
- cartslot.set_device_load(FUNC(tourvision_state::cart_load), this);
+ cartslot.set_device_load(FUNC(tourvision_state::cart_load));
cartslot.set_must_be_loaded(true);
SOFTWARE_LIST(config, "tv_list").set_original("pce_tourvision");
diff --git a/src/mame/drivers/trackfld.cpp b/src/mame/drivers/trackfld.cpp
index ee54ef0d337..4a68de3cb01 100644
--- a/src/mame/drivers/trackfld.cpp
+++ b/src/mame/drivers/trackfld.cpp
@@ -1658,7 +1658,7 @@ void trackfld_state::init_atlantol()
downcast<konami1_device &>(*m_maincpu).set_encryption_boundary(0x6000);
- space.install_write_handler(0x0800, 0x0800, write8_delegate(FUNC(trackfld_state::atlantol_gfxbank_w),this));
+ space.install_write_handler(0x0800, 0x0800, write8_delegate(*this, FUNC(trackfld_state::atlantol_gfxbank_w)));
space.nop_write(0x1000, 0x1000);
/* unmapped areas read as ROM */
diff --git a/src/mame/drivers/travrusa.cpp b/src/mame/drivers/travrusa.cpp
index e692ebb0f08..a409cbbefd6 100644
--- a/src/mame/drivers/travrusa.cpp
+++ b/src/mame/drivers/travrusa.cpp
@@ -608,7 +608,7 @@ READ8_MEMBER(travrusa_state::shtridrb_port11_r)
void travrusa_state::init_shtridrb()
{
- m_maincpu->space(AS_IO).install_read_handler(0x11, 0x11, 0, 0xff00, 0, read8_delegate(FUNC(travrusa_state::shtridrb_port11_r),this));
+ m_maincpu->space(AS_IO).install_read_handler(0x11, 0x11, 0, 0xff00, 0, read8_delegate(*this, FUNC(travrusa_state::shtridrb_port11_r)));
}
diff --git a/src/mame/drivers/trs80.cpp b/src/mame/drivers/trs80.cpp
index 62bb9a32ce6..6c77c12ecf0 100644
--- a/src/mame/drivers/trs80.cpp
+++ b/src/mame/drivers/trs80.cpp
@@ -539,7 +539,7 @@ void trs80_state::model1(machine_config &config) // model I, level II
m_cassette->set_formats(trs80l2_cassette_formats);
m_cassette->set_default_state(CASSETTE_PLAY);
- QUICKLOAD(config, "quickload", "cmd", attotime::from_seconds(1)).set_load_callback(FUNC(trs80_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "cmd", attotime::from_seconds(1)).set_load_callback(FUNC(trs80_state::quickload_cb));
FD1793(config, m_fdc, 4_MHz_XTAL / 4); // todo: should be fd1771
m_fdc->intrq_wr_callback().set(FUNC(trs80_state::intrq_w));
diff --git a/src/mame/drivers/trs80dt1.cpp b/src/mame/drivers/trs80dt1.cpp
index 788e7a698b1..978c2881a89 100644
--- a/src/mame/drivers/trs80dt1.cpp
+++ b/src/mame/drivers/trs80dt1.cpp
@@ -348,7 +348,7 @@ void trs80dt1_state::trs80dt1(machine_config &config)
I8276(config, m_crtc, 12480000 / 8);
m_crtc->set_character_width(8);
- m_crtc->set_display_callback(FUNC(trs80dt1_state::crtc_update_row), this);
+ m_crtc->set_display_callback(FUNC(trs80dt1_state::crtc_update_row));
m_crtc->drq_wr_callback().set_inputline(m_maincpu, MCS51_INT0_LINE); // BRDY pin goes through inverter to /INT0, so we don't invert
m_crtc->irq_wr_callback().set(m_7474, FUNC(ttl7474_device::clear_w)); // INT pin
m_crtc->irq_wr_callback().append(m_7474, FUNC(ttl7474_device::d_w));
diff --git a/src/mame/drivers/trs80m2.cpp b/src/mame/drivers/trs80m2.cpp
index 8ac7584d544..85e9e14fb61 100644
--- a/src/mame/drivers/trs80m2.cpp
+++ b/src/mame/drivers/trs80m2.cpp
@@ -729,7 +729,7 @@ void trs80m2_state::trs80m2(machine_config &config)
m_crtc->set_screen(SCREEN_TAG);
m_crtc->set_show_border_area(true);
m_crtc->set_char_width(8);
- m_crtc->set_update_row_callback(FUNC(trs80m2_state::crtc_update_row), this);
+ m_crtc->set_update_row_callback(FUNC(trs80m2_state::crtc_update_row));
m_crtc->out_de_callback().set(FUNC(trs80m2_state::de_w));
m_crtc->out_vsync_callback().set(FUNC(trs80m2_state::vsync_w));
@@ -821,7 +821,7 @@ void trs80m16_state::trs80m16(machine_config &config)
m_crtc->set_screen(SCREEN_TAG);
m_crtc->set_show_border_area(true);
m_crtc->set_char_width(8);
- m_crtc->set_update_row_callback(FUNC(trs80m2_state::crtc_update_row), this);
+ m_crtc->set_update_row_callback(FUNC(trs80m2_state::crtc_update_row));
m_crtc->out_de_callback().set(FUNC(trs80m2_state::de_w));
m_crtc->out_vsync_callback().set(FUNC(trs80m2_state::vsync_w));
diff --git a/src/mame/drivers/trs80m3.cpp b/src/mame/drivers/trs80m3.cpp
index 114671e0bf2..5a14b7bbdf4 100644
--- a/src/mame/drivers/trs80m3.cpp
+++ b/src/mame/drivers/trs80m3.cpp
@@ -360,7 +360,7 @@ void trs80m3_state::model3(machine_config &config)
m_cassette->set_default_state(CASSETTE_PLAY);
m_cassette->add_route(ALL_OUTPUTS, "mono", 0.05);
- QUICKLOAD(config, "quickload", "cmd", attotime::from_seconds(1)).set_load_callback(FUNC(trs80m3_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "cmd", attotime::from_seconds(1)).set_load_callback(FUNC(trs80m3_state::quickload_cb));
FD1793(config, m_fdc, 4_MHz_XTAL / 4);
m_fdc->intrq_wr_callback().set(FUNC(trs80m3_state::intrq_w));
diff --git a/src/mame/drivers/trvmadns.cpp b/src/mame/drivers/trvmadns.cpp
index 9c7af1d9443..a63eb5dfce0 100644
--- a/src/mame/drivers/trvmadns.cpp
+++ b/src/mame/drivers/trvmadns.cpp
@@ -330,7 +330,7 @@ TILE_GET_INFO_MEMBER(trvmadns_state::get_bg_tile_info)
void trvmadns_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(trvmadns_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(trvmadns_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
// fg_tilemap->set_transparent_pen(1);
diff --git a/src/mame/drivers/ts803.cpp b/src/mame/drivers/ts803.cpp
index af40eda32b6..54ac69a2c66 100644
--- a/src/mame/drivers/ts803.cpp
+++ b/src/mame/drivers/ts803.cpp
@@ -442,8 +442,8 @@ void ts803_state::ts803(machine_config &config)
crtc.set_screen("screen");
crtc.set_show_border_area(false);
crtc.set_char_width(8);
- crtc.set_update_row_callback(FUNC(ts803_state::crtc_update_row), this);
- crtc.set_on_update_addr_change_callback(FUNC(ts803_state::crtc_update_addr), this);
+ crtc.set_update_row_callback(FUNC(ts803_state::crtc_update_row));
+ crtc.set_on_update_addr_change_callback(FUNC(ts803_state::crtc_update_addr));
clock_device &sti_clock(CLOCK(config, "sti_clock", 16_MHz_XTAL / 13));
sti_clock.signal_handler().set("sti", FUNC(z80sti_device::tc_w));
diff --git a/src/mame/drivers/tsamurai.cpp b/src/mame/drivers/tsamurai.cpp
index 1b189d00860..0182fd37168 100644
--- a/src/mame/drivers/tsamurai.cpp
+++ b/src/mame/drivers/tsamurai.cpp
@@ -1395,7 +1395,7 @@ ROM_END
void tsamurai_state::init_the26thz()
{
m_maincpu->space(AS_PROGRAM).unmap_read(0xd803, 0xd803);
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xd803, 0xd803, read8_delegate(FUNC(tsamurai_state::tsamurai_unknown_d803_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xd803, 0xd803, read8_delegate(*this, FUNC(tsamurai_state::tsamurai_unknown_d803_r)));
}
GAME( 1984, vsgongf, 0, vsgongf, vsgongf, tsamurai_state, empty_init, ROT90, "Kaneko", "VS Gong Fight", MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE | MACHINE_UNEMULATED_PROTECTION )
diff --git a/src/mame/drivers/tumbleb.cpp b/src/mame/drivers/tumbleb.cpp
index 51b5c7a0fa2..d5d3c567f85 100644
--- a/src/mame/drivers/tumbleb.cpp
+++ b/src/mame/drivers/tumbleb.cpp
@@ -3711,7 +3711,7 @@ void tumbleb_state::init_tumbleb2()
#if TUMBLEP_HACK
tumblepb_patch_code(0x000132);
#endif
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x100000, 0x100001, write16_delegate(FUNC(tumbleb_state::tumbleb2_soundmcu_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x100000, 0x100001, write16_delegate(*this, FUNC(tumbleb_state::tumbleb2_soundmcu_w)));
}
@@ -3756,7 +3756,7 @@ READ16_MEMBER(tumbleb_state::bcstory_1a0_read)
void tumbleb_state::init_bcstory()
{
tumblepb_gfx_rearrange(1);
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x180008, 0x180009, read16_delegate(FUNC(tumbleb_state::bcstory_1a0_read),this)); // io should be here??
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x180008, 0x180009, read16_delegate(*this, FUNC(tumbleb_state::bcstory_1a0_read))); // io should be here??
}
@@ -3817,27 +3817,27 @@ void tumbleb_state::init_chokchok()
{
init_htchctch();
- /* different palette format, closer to tumblep -- is this controlled by a register? the palette was right with the hatch catch trojan */
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x140000, 0x140fff, write16s_delegate(FUNC(palette_device::write16), m_palette.target()));
+ // different palette format, closer to tumblep -- is this controlled by a register? the palette was right with the hatch catch trojan
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x140000, 0x140fff, write16s_delegate(*m_palette, FUNC(palette_device::write16)));
- /* slightly different banking */
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x100002, 0x100003, write16_delegate(FUNC(tumbleb_state::chokchok_tilebank_w),this));
+ // slightly different banking
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x100002, 0x100003, write16_delegate(*this, FUNC(tumbleb_state::chokchok_tilebank_w)));
}
void tumbleb_state::init_carket()
{
init_htchctch();
- /* slightly different banking */
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x100002, 0x100003, write16_delegate(FUNC(tumbleb_state::chokchok_tilebank_w),this));
+ // slightly different banking
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x100002, 0x100003, write16_delegate(*this, FUNC(tumbleb_state::chokchok_tilebank_w)));
}
void tumbleb_state::init_wlstar()
{
tumblepb_gfx_rearrange(1);
- /* slightly different banking */
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x100002, 0x100003, write16_delegate(FUNC(tumbleb_state::wlstar_tilebank_w),this));
+ // slightly different banking
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x100002, 0x100003, write16_delegate(*this, FUNC(tumbleb_state::wlstar_tilebank_w)));
m_protbase = 0x0000;
}
diff --git a/src/mame/drivers/tv910.cpp b/src/mame/drivers/tv910.cpp
index fbf245f8e86..3df409eb3ef 100644
--- a/src/mame/drivers/tv910.cpp
+++ b/src/mame/drivers/tv910.cpp
@@ -525,8 +525,8 @@ void tv910_state::tv910(machine_config &config)
m_crtc->set_screen("screen");
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8);
- m_crtc->set_update_row_callback(FUNC(tv910_state::crtc_update_row), this);
- m_crtc->set_on_update_addr_change_callback(FUNC(tv910_state::crtc_update_addr), this);
+ m_crtc->set_update_row_callback(FUNC(tv910_state::crtc_update_row));
+ m_crtc->set_on_update_addr_change_callback(FUNC(tv910_state::crtc_update_addr));
m_crtc->out_vsync_callback().set(FUNC(tv910_state::vbl_w));
AY3600(config, m_ay3600, 0);
diff --git a/src/mame/drivers/tv950.cpp b/src/mame/drivers/tv950.cpp
index 75c5721fbed..50380a53fbe 100644
--- a/src/mame/drivers/tv950.cpp
+++ b/src/mame/drivers/tv950.cpp
@@ -298,8 +298,8 @@ void tv950_state::tv950(machine_config &config)
m_crtc->set_screen("screen");
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(14);
- m_crtc->set_update_row_callback(FUNC(tv950_state::crtc_update_row), this);
- m_crtc->set_on_update_addr_change_callback(FUNC(tv950_state::crtc_update_addr), this);
+ m_crtc->set_update_row_callback(FUNC(tv950_state::crtc_update_row));
+ m_crtc->set_on_update_addr_change_callback(FUNC(tv950_state::crtc_update_addr));
m_crtc->out_hsync_callback().set(m_via, FUNC(via6522_device::write_pb6)).invert();
m_crtc->out_vsync_callback().set(FUNC(tv950_state::crtc_vs_w));
m_crtc->set_screen(nullptr);
diff --git a/src/mame/drivers/tvc.cpp b/src/mame/drivers/tvc.cpp
index 85124c69a80..e1bee4affde 100644
--- a/src/mame/drivers/tvc.cpp
+++ b/src/mame/drivers/tvc.cpp
@@ -218,7 +218,7 @@ void tvc_state::set_mem_page(uint8_t data)
case 0xc0 : // External ROM selected
TVC_INSTALL_ROM_BANK(3, "bank4", 0xc000, 0xffff);
membank("bank4")->set_base(m_ext->base());
- space.install_readwrite_handler (0xc000, 0xdfff, read8_delegate(FUNC(tvc_state::expansion_r), this), write8_delegate(FUNC(tvc_state::expansion_w), this), 0);
+ space.install_readwrite_handler(0xc000, 0xdfff, read8_delegate(*this, FUNC(tvc_state::expansion_r)), write8_delegate(*this, FUNC(tvc_state::expansion_w)), 0);
m_bank_type[3] = -1;
break;
}
@@ -787,7 +787,7 @@ void tvc_state::tvc(machine_config &config)
crtc.set_screen("screen");
crtc.set_show_border_area(false);
crtc.set_char_width(8); /*?*/
- crtc.set_update_row_callback(FUNC(tvc_state::crtc_update_row), this);
+ crtc.set_update_row_callback(FUNC(tvc_state::crtc_update_row));
crtc.out_cur_callback().set(FUNC(tvc_state::int_ff_set));
/* internal ram */
@@ -830,7 +830,7 @@ void tvc_state::tvc(machine_config &config)
m_cassette->add_route(ALL_OUTPUTS, "mono", 0.05);
/* quickload */
- QUICKLOAD(config, "quickload", "cas", attotime::from_seconds(6)).set_load_callback(FUNC(tvc_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "cas", attotime::from_seconds(6)).set_load_callback(FUNC(tvc_state::quickload_cb));
/* Software lists */
SOFTWARE_LIST(config, "cart_list").set_original("tvc_cart");
diff --git a/src/mame/drivers/twin16.cpp b/src/mame/drivers/twin16.cpp
index b43207e3c00..3f9f925f1d8 100644
--- a/src/mame/drivers/twin16.cpp
+++ b/src/mame/drivers/twin16.cpp
@@ -1255,7 +1255,7 @@ void cuebrickj_state::init_cuebrickj()
address_space &space = m_maincpu->space(AS_PROGRAM);
space.install_readwrite_bank(0x0b0000, 0x0b03ff, "nvrambank");
- space.install_write_handler( 0x0b0400, 0x0b0401, WRITE8_DELEGATE(cuebrickj_state, nvram_bank_w), 0xff00);
+ space.install_write_handler( 0x0b0400, 0x0b0401, write8_delegate(*this, FUNC(cuebrickj_state::nvram_bank_w)), 0xff00);
membank("nvrambank")->configure_entries(0, 0x20, m_nvram, 0x400);
diff --git a/src/mame/drivers/ultraman.cpp b/src/mame/drivers/ultraman.cpp
index 112f532b91e..059da36369f 100644
--- a/src/mame/drivers/ultraman.cpp
+++ b/src/mame/drivers/ultraman.cpp
@@ -206,22 +206,22 @@ void ultraman_state::ultraman(machine_config &config)
K051960(config, m_k051960, 0);
m_k051960->set_palette("palette");
m_k051960->set_screen("screen");
- m_k051960->set_sprite_callback(FUNC(ultraman_state::sprite_callback), this);
+ m_k051960->set_sprite_callback(FUNC(ultraman_state::sprite_callback));
K051316(config, m_k051316[0], 0);
m_k051316[0]->set_palette("palette");
m_k051316[0]->set_offsets(8, 0);
- m_k051316[0]->set_zoom_callback(FUNC(ultraman_state::zoom_callback_1), this);
+ m_k051316[0]->set_zoom_callback(FUNC(ultraman_state::zoom_callback_1));
K051316(config, m_k051316[1], 0);
m_k051316[1]->set_palette("palette");
m_k051316[1]->set_offsets(8, 0);
- m_k051316[1]->set_zoom_callback(FUNC(ultraman_state::zoom_callback_2), this);
+ m_k051316[1]->set_zoom_callback(FUNC(ultraman_state::zoom_callback_2));
K051316(config, m_k051316[2], 0);
m_k051316[2]->set_palette("palette");
m_k051316[2]->set_offsets(8, 0);
- m_k051316[2]->set_zoom_callback(FUNC(ultraman_state::zoom_callback_3), this);
+ m_k051316[2]->set_zoom_callback(FUNC(ultraman_state::zoom_callback_3));
/* sound hardware */
SPEAKER(config, "lspeaker").front_left();
diff --git a/src/mame/drivers/umipoker.cpp b/src/mame/drivers/umipoker.cpp
index 4ba2e53f8ee..9d7b3d4f0b8 100644
--- a/src/mame/drivers/umipoker.cpp
+++ b/src/mame/drivers/umipoker.cpp
@@ -159,10 +159,10 @@ TILE_GET_INFO_MEMBER(umipoker_state::get_tile_info_3)
void umipoker_state::video_start()
{
- m_tilemap_0 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(umipoker_state::get_tile_info_0),this),TILEMAP_SCAN_ROWS,8,8,64,32);
- m_tilemap_1 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(umipoker_state::get_tile_info_1),this),TILEMAP_SCAN_ROWS,8,8,64,32);
- m_tilemap_2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(umipoker_state::get_tile_info_2),this),TILEMAP_SCAN_ROWS,8,8,64,32);
- m_tilemap_3 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(umipoker_state::get_tile_info_3),this),TILEMAP_SCAN_ROWS,8,8,64,32);
+ m_tilemap_0 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(umipoker_state::get_tile_info_0)), TILEMAP_SCAN_ROWS, 8,8, 64,32);
+ m_tilemap_1 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(umipoker_state::get_tile_info_1)), TILEMAP_SCAN_ROWS, 8,8, 64,32);
+ m_tilemap_2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(umipoker_state::get_tile_info_2)), TILEMAP_SCAN_ROWS, 8,8, 64,32);
+ m_tilemap_3 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(umipoker_state::get_tile_info_3)), TILEMAP_SCAN_ROWS, 8,8, 64,32);
m_tilemap_0->set_transparent_pen(0);
m_tilemap_1->set_transparent_pen(0);
diff --git a/src/mame/drivers/unichamp.cpp b/src/mame/drivers/unichamp.cpp
index 2330b244fc0..66d3b3870af 100644
--- a/src/mame/drivers/unichamp.cpp
+++ b/src/mame/drivers/unichamp.cpp
@@ -186,10 +186,10 @@ void unichamp_state::machine_start()
ptr[i+1] = TEMP;
}
m_maincpu->space(AS_PROGRAM).install_read_handler(0x1000, 0x17ff,
- read16s_delegate(FUNC(generic_slot_device::read16_rom),(generic_slot_device*)m_cart));
+ read16s_delegate(*m_cart, FUNC(generic_slot_device::read16_rom)));
} else
m_maincpu->space(AS_PROGRAM).install_read_handler(0x1000, 0x17ff,
- read16_delegate(FUNC(unichamp_state::read_ff), this));
+ read16_delegate(*this, FUNC(unichamp_state::read_ff)));
}
/* Set Reset and INTR/INTRM Vector */
diff --git a/src/mame/drivers/unior.cpp b/src/mame/drivers/unior.cpp
index a5cd9b57f48..287099417bf 100644
--- a/src/mame/drivers/unior.cpp
+++ b/src/mame/drivers/unior.cpp
@@ -495,7 +495,7 @@ void unior_state::unior(machine_config &config)
i8275_device &crtc(I8275(config, "crtc", XTAL(20'000'000) / 12));
crtc.set_character_width(6);
- crtc.set_display_callback(FUNC(unior_state::display_pixels), this);
+ crtc.set_display_callback(FUNC(unior_state::display_pixels));
crtc.drq_wr_callback().set(m_dma, FUNC(i8257_device::dreq2_w));
crtc.set_screen("screen");
}
diff --git a/src/mame/drivers/unistar.cpp b/src/mame/drivers/unistar.cpp
index c5f8360489d..a2f488d3e19 100644
--- a/src/mame/drivers/unistar.cpp
+++ b/src/mame/drivers/unistar.cpp
@@ -153,7 +153,7 @@ void unistar_state::unistar(machine_config &config)
i8275_device &crtc(I8275(config, "crtc", 20_MHz_XTAL / 9));
crtc.set_character_width(9);
- crtc.set_display_callback(FUNC(unistar_state::draw_character), this);
+ crtc.set_display_callback(FUNC(unistar_state::draw_character));
crtc.set_screen("screen");
crtc.drq_wr_callback().set("dmac", FUNC(am9517a_device::dreq2_w));
crtc.irq_wr_callback().set("rst75", FUNC(input_merger_device::in_w<0>));
diff --git a/src/mame/drivers/usgames.cpp b/src/mame/drivers/usgames.cpp
index 202f1be6322..e2e25062703 100644
--- a/src/mame/drivers/usgames.cpp
+++ b/src/mame/drivers/usgames.cpp
@@ -242,7 +242,7 @@ void usgames_state::usg32(machine_config &config)
crtc.set_screen("screen");
crtc.set_show_border_area(false);
crtc.set_char_width(8);
- crtc.set_update_row_callback(FUNC(usgames_state::update_row), this);
+ crtc.set_update_row_callback(FUNC(usgames_state::update_row));
/* sound hardware */
SPEAKER(config, "mono").front_center();
diff --git a/src/mame/drivers/uzebox.cpp b/src/mame/drivers/uzebox.cpp
index dff2ec63c7a..a4b638a0c2a 100644
--- a/src/mame/drivers/uzebox.cpp
+++ b/src/mame/drivers/uzebox.cpp
@@ -87,7 +87,7 @@ void uzebox_state::machine_start()
m_screen->register_screen_bitmap(m_bitmap);
if (m_cart->exists())
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x0000, 0xffff, read8sm_delegate(FUNC(generic_slot_device::read_rom),(generic_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x0000, 0xffff, read8sm_delegate(m_cart, FUNC(generic_slot_device::read_rom)));
}
void uzebox_state::machine_reset()
@@ -307,7 +307,7 @@ void uzebox_state::uzebox(machine_config &config)
GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "uzebox", "bin,uze");
m_cart->set_must_be_loaded(true);
- m_cart->set_device_load(FUNC(uzebox_state::cart_load), this);
+ m_cart->set_device_load(FUNC(uzebox_state::cart_load));
SNES_CONTROL_PORT(config, m_ctrl1, snes_control_port_devices, "joypad");
SNES_CONTROL_PORT(config, m_ctrl2, snes_control_port_devices, "joypad");
diff --git a/src/mame/drivers/v6809.cpp b/src/mame/drivers/v6809.cpp
index 5095945e919..96b80f7414f 100644
--- a/src/mame/drivers/v6809.cpp
+++ b/src/mame/drivers/v6809.cpp
@@ -308,8 +308,8 @@ void v6809_state::v6809(machine_config &config)
m_crtc->set_screen("screen");
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8);
- m_crtc->set_update_row_callback(FUNC(v6809_state::crtc_update_row), this);
- m_crtc->set_on_update_addr_change_callback(FUNC(v6809_state::crtc_update_addr), this);
+ m_crtc->set_update_row_callback(FUNC(v6809_state::crtc_update_row));
+ m_crtc->set_on_update_addr_change_callback(FUNC(v6809_state::crtc_update_addr));
generic_keyboard_device &keyboard(GENERIC_KEYBOARD(config, "keyboard", 0));
keyboard.set_keyboard_callback(FUNC(v6809_state::kbd_put));
diff --git a/src/mame/drivers/vamphalf.cpp b/src/mame/drivers/vamphalf.cpp
index a1c19cca1a0..61dd7388f0b 100644
--- a/src/mame/drivers/vamphalf.cpp
+++ b/src/mame/drivers/vamphalf.cpp
@@ -3262,7 +3262,7 @@ READ16_MEMBER(vamphalf_state::boonggab_speedup_r)
void vamphalf_state::init_vamphalf()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x0004a7b8, 0x0004a7b9, read16_delegate(FUNC(vamphalf_state::vamphalf_speedup_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x0004a7b8, 0x0004a7b9, read16_delegate(*this, FUNC(vamphalf_state::vamphalf_speedup_r)));
m_palshift = 0;
m_flip_bit = 0x80;
@@ -3270,7 +3270,7 @@ void vamphalf_state::init_vamphalf()
void vamphalf_state::init_vamphalfr1()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x0004a468, 0x0004a469, read16_delegate(FUNC(vamphalf_state::vamphalfr1_speedup_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x0004a468, 0x0004a469, read16_delegate(*this, FUNC(vamphalf_state::vamphalfr1_speedup_r)));
m_palshift = 0;
m_flip_bit = 0x80;
@@ -3278,7 +3278,7 @@ void vamphalf_state::init_vamphalfr1()
void vamphalf_state::init_vamphafk()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x0004a648, 0x0004a649, read16_delegate(FUNC(vamphalf_state::vamphafk_speedup_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x0004a648, 0x0004a649, read16_delegate(*this, FUNC(vamphalf_state::vamphafk_speedup_r)));
m_palshift = 0;
m_flip_bit = 0x80;
@@ -3286,8 +3286,8 @@ void vamphalf_state::init_vamphafk()
void vamphalf_qdsp_state::init_misncrft()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x000741e8, 0x000741e9, read16_delegate(FUNC(vamphalf_qdsp_state::misncrft_speedup_r), this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x00072e2c, 0x00072e2d, read16_delegate(FUNC(vamphalf_qdsp_state::misncrfta_speedup_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x000741e8, 0x000741e9, read16_delegate(*this, FUNC(vamphalf_qdsp_state::misncrft_speedup_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x00072e2c, 0x00072e2d, read16_delegate(*this, FUNC(vamphalf_qdsp_state::misncrfta_speedup_r)));
m_palshift = 0;
m_flip_bit = 1;
@@ -3298,7 +3298,7 @@ void vamphalf_qdsp_state::init_misncrft()
void vamphalf_state::init_coolmini()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x000d2df8, 0x000d2df9, read16_delegate(FUNC(vamphalf_state::coolmini_speedup_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x000d2df8, 0x000d2df9, read16_delegate(*this, FUNC(vamphalf_state::coolmini_speedup_r)));
m_palshift = 0;
m_flip_bit = 1;
@@ -3306,7 +3306,7 @@ void vamphalf_state::init_coolmini()
void vamphalf_state::init_coolminii()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x000d30a8, 0x000d30a9, read16_delegate(FUNC(vamphalf_state::coolminii_speedup_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x000d30a8, 0x000d30a9, read16_delegate(*this, FUNC(vamphalf_state::coolminii_speedup_r)));
m_palshift = 0;
m_flip_bit = 1;
@@ -3315,7 +3315,7 @@ void vamphalf_state::init_coolminii()
void vamphalf_state::init_mrkicker()
{
banked_oki(0);
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x00063fc0, 0x00063fc1, read16_delegate(FUNC(vamphalf_state::mrkicker_speedup_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x00063fc0, 0x00063fc1, read16_delegate(*this, FUNC(vamphalf_state::mrkicker_speedup_r)));
m_palshift = 0;
m_flip_bit = 1;
@@ -3323,7 +3323,7 @@ void vamphalf_state::init_mrkicker()
void vamphalf_state::init_suplup()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x0011605c, 0x0011605d, read16_delegate(FUNC(vamphalf_state::suplup_speedup_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x0011605c, 0x0011605d, read16_delegate(*this, FUNC(vamphalf_state::suplup_speedup_r)));
m_palshift = 8;
/* no flipscreen */
@@ -3331,7 +3331,7 @@ void vamphalf_state::init_suplup()
void vamphalf_state::init_luplup()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x00115e84, 0x00115e85, read16_delegate(FUNC(vamphalf_state::luplup_speedup_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x00115e84, 0x00115e85, read16_delegate(*this, FUNC(vamphalf_state::luplup_speedup_r)));
m_palshift = 8;
/* no flipscreen */
@@ -3339,7 +3339,7 @@ void vamphalf_state::init_luplup()
void vamphalf_state::init_luplup29()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x00113f08, 0x00113f09, read16_delegate(FUNC(vamphalf_state::luplup29_speedup_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x00113f08, 0x00113f09, read16_delegate(*this, FUNC(vamphalf_state::luplup29_speedup_r)));
m_palshift = 8;
/* no flipscreen */
@@ -3347,7 +3347,7 @@ void vamphalf_state::init_luplup29()
void vamphalf_state::init_luplup10()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x00113b78, 0x00113b79, read16_delegate(FUNC(vamphalf_state::luplup10_speedup_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x00113b78, 0x00113b79, read16_delegate(*this, FUNC(vamphalf_state::luplup10_speedup_r)));
m_palshift = 8;
/* no flipscreen */
@@ -3355,8 +3355,8 @@ void vamphalf_state::init_luplup10()
void vamphalf_state::init_puzlbang()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x00113f14, 0x00113f15, read16_delegate(FUNC(vamphalf_state::puzlbang_speedup_r), this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x00113ecc, 0x00113ecd, read16_delegate(FUNC(vamphalf_state::puzlbanga_speedup_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x00113f14, 0x00113f15, read16_delegate(*this, FUNC(vamphalf_state::puzlbang_speedup_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x00113ecc, 0x00113ecd, read16_delegate(*this, FUNC(vamphalf_state::puzlbanga_speedup_r)));
m_palshift = 8;
/* no flipscreen */
@@ -3364,9 +3364,9 @@ void vamphalf_state::init_puzlbang()
void vamphalf_qdsp_state::init_wyvernwg()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x00b4cc4, 0x00b4cc7, read32_delegate(FUNC(vamphalf_qdsp_state::wivernwg_speedup_r), this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x00b56f4, 0x00b56f7, read32_delegate(FUNC(vamphalf_qdsp_state::wyvernwg_speedup_r), this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x00b74f0, 0x00b74f3, read32_delegate(FUNC(vamphalf_qdsp_state::wyvernwga_speedup_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x00b4cc4, 0x00b4cc7, read32_delegate(*this, FUNC(vamphalf_qdsp_state::wivernwg_speedup_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x00b56f4, 0x00b56f7, read32_delegate(*this, FUNC(vamphalf_qdsp_state::wyvernwg_speedup_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x00b74f0, 0x00b74f3, read32_delegate(*this, FUNC(vamphalf_qdsp_state::wyvernwga_speedup_r)));
m_palshift = 0;
m_flip_bit = 1;
@@ -3408,7 +3408,7 @@ void vamphalf_nvram_state::init_finalgdr()
banked_oki(0);
m_finalgdr_backupram_bank = 1;
m_finalgdr_backupram = std::make_unique<u8[]>(0x80*0x100);
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x005e870, 0x005e873, read32_delegate(FUNC(vamphalf_nvram_state::finalgdr_speedup_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x005e870, 0x005e873, read32_delegate(*this, FUNC(vamphalf_nvram_state::finalgdr_speedup_r)));
m_nvram->set_base(m_finalgdr_backupram.get(), 0x80*0x100);
m_palshift = 0;
@@ -3430,7 +3430,7 @@ void vamphalf_nvram_state::init_mrkickera()
// backup ram isn't used
m_finalgdr_backupram_bank = 1;
m_finalgdr_backupram = std::make_unique<u8[]>(0x80*0x100);
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x00701a0, 0x00701a3, read32_delegate(FUNC(vamphalf_nvram_state::mrkickera_speedup_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x00701a0, 0x00701a3, read32_delegate(*this, FUNC(vamphalf_nvram_state::mrkickera_speedup_r)));
m_nvram->set_base(m_finalgdr_backupram.get(), 0x80*0x100);
m_palshift = 0;
@@ -3446,7 +3446,7 @@ void vamphalf_nvram_state::init_mrkickera()
void vamphalf_state::init_dquizgo2()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x00cdde8, 0x00cdde9, read16_delegate(FUNC(vamphalf_state::dquizgo2_speedup_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x00cdde8, 0x00cdde9, read16_delegate(*this, FUNC(vamphalf_state::dquizgo2_speedup_r)));
m_palshift = 0;
m_flip_bit = 1;
@@ -3455,7 +3455,7 @@ void vamphalf_state::init_dquizgo2()
void vamphalf_state::init_dtfamily()
{
banked_oki(0);
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xcc2a8, 0xcc2a9, read16_delegate(FUNC(vamphalf_state::dtfamily_speedup_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xcc2a8, 0xcc2a9, read16_delegate(*this, FUNC(vamphalf_state::dtfamily_speedup_r)));
m_palshift = 0;
m_flip_bit = 1;
@@ -3464,7 +3464,7 @@ void vamphalf_state::init_dtfamily()
void vamphalf_state::init_toyland()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x780d8, 0x780d9, read16_delegate(FUNC(vamphalf_state::toyland_speedup_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x780d8, 0x780d9, read16_delegate(*this, FUNC(vamphalf_state::toyland_speedup_r)));
m_palshift = 0;
m_flip_bit = 1;
@@ -3473,7 +3473,7 @@ void vamphalf_state::init_toyland()
void vamphalf_state::init_aoh()
{
banked_oki(1);
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x028a09c, 0x028a09f, read32_delegate(FUNC(vamphalf_state::aoh_speedup_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x028a09c, 0x028a09f, read32_delegate(*this, FUNC(vamphalf_state::aoh_speedup_r)));
m_palshift = 0;
/* no flipscreen */
@@ -3481,40 +3481,40 @@ void vamphalf_state::init_aoh()
void vamphalf_state::init_jmpbreak()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x00906f4, 0x00906f5, read16_delegate(FUNC(vamphalf_state::jmpbreak_speedup_r), this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xe0000000, 0xe0000003, write16smo_delegate(FUNC(vamphalf_state::jmpbreak_flipscreen_w), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x00906f4, 0x00906f5, read16_delegate(*this, FUNC(vamphalf_state::jmpbreak_speedup_r)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xe0000000, 0xe0000003, write16smo_delegate(*this, FUNC(vamphalf_state::jmpbreak_flipscreen_w)));
m_palshift = 0;
}
void vamphalf_state::init_mrdig()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x0e0768, 0x0e0769, read16_delegate(FUNC(vamphalf_state::mrdig_speedup_r), this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xe0000000, 0xe0000003, write16smo_delegate(FUNC(vamphalf_state::jmpbreak_flipscreen_w), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x0e0768, 0x0e0769, read16_delegate(*this, FUNC(vamphalf_state::mrdig_speedup_r)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xe0000000, 0xe0000003, write16smo_delegate(*this, FUNC(vamphalf_state::jmpbreak_flipscreen_w)));
m_palshift = 0;
}
void vamphalf_state::init_poosho()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x0c8b58, 0x0c8b59, read16_delegate(FUNC(vamphalf_state::poosho_speedup_r), this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xe0000000, 0xe0000003, write16smo_delegate(FUNC(vamphalf_state::jmpbreak_flipscreen_w), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x0c8b58, 0x0c8b59, read16_delegate(*this, FUNC(vamphalf_state::poosho_speedup_r)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xe0000000, 0xe0000003, write16smo_delegate(*this, FUNC(vamphalf_state::jmpbreak_flipscreen_w)));
m_palshift = 0;
}
void vamphalf_state::init_newxpang()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x061218, 0x061219, read16_delegate(FUNC(vamphalf_state::newxpang_speedup_r), this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xe0000000, 0xe0000003, write16smo_delegate(FUNC(vamphalf_state::jmpbreak_flipscreen_w), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x061218, 0x061219, read16_delegate(*this, FUNC(vamphalf_state::newxpang_speedup_r)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xe0000000, 0xe0000003, write16smo_delegate(*this, FUNC(vamphalf_state::jmpbreak_flipscreen_w)));
m_palshift = 0;
}
void vamphalf_state::init_worldadv()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x0c5e78, 0x0c5e79, read16_delegate(FUNC(vamphalf_state::worldadv_speedup_r), this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xe0000000, 0xe0000003, write16smo_delegate(FUNC(vamphalf_state::jmpbreak_flipscreen_w), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x0c5e78, 0x0c5e79, read16_delegate(*this, FUNC(vamphalf_state::worldadv_speedup_r)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xe0000000, 0xe0000003, write16smo_delegate(*this, FUNC(vamphalf_state::jmpbreak_flipscreen_w)));
m_palshift = 0;
}
@@ -3522,7 +3522,7 @@ void vamphalf_state::init_worldadv()
void vamphalf_state::init_boonggab()
{
banked_oki(0);
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x000f1b74, 0x000f1b75, read16_delegate(FUNC(vamphalf_state::boonggab_speedup_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x000f1b74, 0x000f1b75, read16_delegate(*this, FUNC(vamphalf_state::boonggab_speedup_r)));
m_palshift = 0;
m_has_extra_gfx = true;
diff --git a/src/mame/drivers/vaportra.cpp b/src/mame/drivers/vaportra.cpp
index f196a9a3650..a6f593ce1df 100644
--- a/src/mame/drivers/vaportra.cpp
+++ b/src/mame/drivers/vaportra.cpp
@@ -242,8 +242,8 @@ void vaportra_state::vaportra(machine_config &config)
m_deco_tilegen[0]->set_pf2_col_bank(0x20);
m_deco_tilegen[0]->set_pf1_col_mask(0x0f);
m_deco_tilegen[0]->set_pf2_col_mask(0x0f);
- m_deco_tilegen[0]->set_bank1_callback(FUNC(vaportra_state::bank_callback), this);
- m_deco_tilegen[0]->set_bank2_callback(FUNC(vaportra_state::bank_callback), this);
+ m_deco_tilegen[0]->set_bank1_callback(FUNC(vaportra_state::bank_callback));
+ m_deco_tilegen[0]->set_bank2_callback(FUNC(vaportra_state::bank_callback));
m_deco_tilegen[0]->set_pf12_8x8_bank(0);
m_deco_tilegen[0]->set_pf12_16x16_bank(1);
m_deco_tilegen[0]->set_gfxdecode_tag(m_gfxdecode);
@@ -257,14 +257,14 @@ void vaportra_state::vaportra(machine_config &config)
m_deco_tilegen[1]->set_pf2_col_bank(0x40);
m_deco_tilegen[1]->set_pf1_col_mask(0x0f);
m_deco_tilegen[1]->set_pf2_col_mask(0x0f);
- m_deco_tilegen[1]->set_bank1_callback(FUNC(vaportra_state::bank_callback), this);
- m_deco_tilegen[1]->set_bank2_callback(FUNC(vaportra_state::bank_callback), this);
+ m_deco_tilegen[1]->set_bank1_callback(FUNC(vaportra_state::bank_callback));
+ m_deco_tilegen[1]->set_bank2_callback(FUNC(vaportra_state::bank_callback));
m_deco_tilegen[1]->set_pf12_8x8_bank(2);
m_deco_tilegen[1]->set_pf12_16x16_bank(3);
m_deco_tilegen[1]->set_gfxdecode_tag(m_gfxdecode);
DECO_MXC06(config, m_spritegen, 0);
- m_spritegen->set_colpri_callback(FUNC(vaportra_state::vaportra_colpri_cb), this);
+ m_spritegen->set_colpri_callback(FUNC(vaportra_state::vaportra_colpri_cb));
/* sound hardware */
SPEAKER(config, "mono").front_center();
diff --git a/src/mame/drivers/vc4000.cpp b/src/mame/drivers/vc4000.cpp
index b273447b551..4d4b7c67ea8 100644
--- a/src/mame/drivers/vc4000.cpp
+++ b/src/mame/drivers/vc4000.cpp
@@ -369,25 +369,25 @@ void vc4000_state::machine_start()
// extra handler
switch (m_cart->get_type())
{
- case VC4000_STD:
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x0000, 0x07ff, read8sm_delegate(FUNC(vc4000_cart_slot_device::read_rom),(vc4000_cart_slot_device*)m_cart));
- break;
- case VC4000_ROM4K:
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x0000, 0x0fff, read8sm_delegate(FUNC(vc4000_cart_slot_device::read_rom),(vc4000_cart_slot_device*)m_cart));
- break;
- case VC4000_RAM1K:
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x0000, 0x0fff, read8sm_delegate(FUNC(vc4000_cart_slot_device::read_rom),(vc4000_cart_slot_device*)m_cart));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1000, 0x15ff, read8sm_delegate(FUNC(vc4000_cart_slot_device::read_ram),(vc4000_cart_slot_device*)m_cart), write8sm_delegate(FUNC(vc4000_cart_slot_device::write_ram),(vc4000_cart_slot_device*)m_cart));
- break;
- case VC4000_CHESS2:
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x0000, 0x15ff, read8sm_delegate(FUNC(vc4000_cart_slot_device::read_rom),(vc4000_cart_slot_device*)m_cart));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1800, 0x1bff, read8sm_delegate(FUNC(vc4000_cart_slot_device::read_ram),(vc4000_cart_slot_device*)m_cart), write8sm_delegate(FUNC(vc4000_cart_slot_device::write_ram),(vc4000_cart_slot_device*)m_cart));
- break;
- // undumped Radofin Hobby Module
-// case VC4000_HOBBY:
-// m_maincpu->space(AS_PROGRAM).install_read_handler(0x0000, 0x07ff, read8sm_delegate(FUNC(vc4000_cart_slot_device::read_rom),(vc4000_cart_slot_device*)m_cart));
-// m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x0800, 0x0fff, read8sm_delegate(FUNC(vc4000_cart_slot_device::read_ram),(vc4000_cart_slot_device*)m_cart), write8sm_delegate(FUNC(vc4000_cart_slot_device::write_ram),(vc4000_cart_slot_device*)m_cart));
-// break;
+ case VC4000_STD:
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x0000, 0x07ff, read8sm_delegate(*m_cart, FUNC(vc4000_cart_slot_device::read_rom)));
+ break;
+ case VC4000_ROM4K:
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x0000, 0x0fff, read8sm_delegate(*m_cart, FUNC(vc4000_cart_slot_device::read_rom)));
+ break;
+ case VC4000_RAM1K:
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x0000, 0x0fff, read8sm_delegate(*m_cart, FUNC(vc4000_cart_slot_device::read_rom)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1000, 0x15ff, read8sm_delegate(*m_cart, FUNC(vc4000_cart_slot_device::read_ram)), write8sm_delegate(*m_cart, FUNC(vc4000_cart_slot_device::write_ram)));
+ break;
+ case VC4000_CHESS2:
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x0000, 0x15ff, read8sm_delegate(*m_cart, FUNC(vc4000_cart_slot_device::read_rom)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1800, 0x1bff, read8sm_delegate(*m_cart, FUNC(vc4000_cart_slot_device::read_ram)), write8sm_delegate(*m_cart, FUNC(vc4000_cart_slot_device::write_ram)));
+ break;
+ // undumped Radofin Hobby Module
+// case VC4000_HOBBY:
+// m_maincpu->space(AS_PROGRAM).install_read_handler(0x0000, 0x07ff, read8sm_delegate(*m_cart, FUNC(vc4000_cart_slot_device::read_rom)));
+// m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x0800, 0x0fff, read8sm_delegate(*m_cart, FUNC(vc4000_cart_slot_device::read_ram)), write8sm_delegate(*m_cart, FUNC(vc4000_cart_slot_device::write_ram)));
+// break;
}
m_cart->save_ram();
@@ -550,7 +550,7 @@ void vc4000_state::vc4000(machine_config &config)
VC4000_SND(config, m_custom, 0).add_route(ALL_OUTPUTS, "mono", 0.50);
/* quickload */
- QUICKLOAD(config, "quickload", "pgm,tvc").set_load_callback(FUNC(vc4000_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "pgm,tvc").set_load_callback(FUNC(vc4000_state::quickload_cb));
/* cartridge */
VC4000_CART_SLOT(config, "cartslot", vc4000_cart, nullptr);
diff --git a/src/mame/drivers/vector06.cpp b/src/mame/drivers/vector06.cpp
index 9f7167ef785..6fe38d34ba5 100644
--- a/src/mame/drivers/vector06.cpp
+++ b/src/mame/drivers/vector06.cpp
@@ -44,9 +44,9 @@ void vector06_state::vector06_io(address_map &map)
map.global_mask(0xff);
map.unmap_value_high();
- map(0x00, 0x03).lrw8("ppi8255_rw", [this](offs_t offset) -> u8 { return m_ppi8255->read(offset^3); }, [this](offs_t offset, u8 data) { m_ppi8255->write(offset^3, data); });
- map(0x04, 0x07).lrw8("ppi8255_2_rw", [this](offs_t offset) -> u8 { return m_ppi8255_2->read(offset^3); }, [this](offs_t offset, u8 data) { m_ppi8255_2->write(offset^3, data); });
- map(0x08, 0x0b).lrw8("pit8253_rw", [this](offs_t offset) -> u8 { return m_pit8253->read(offset^3); }, [this](offs_t offset, u8 data) { m_pit8253->write(offset^3, data); });
+ map(0x00, 0x03).lrw8(NAME([this] (offs_t offset) -> u8 { return m_ppi8255->read(offset^3); }), NAME([this] (offs_t offset, u8 data) { m_ppi8255->write(offset^3, data); }));
+ map(0x04, 0x07).lrw8(NAME([this] (offs_t offset) -> u8 { return m_ppi8255_2->read(offset^3); }), NAME([this] (offs_t offset, u8 data) { m_ppi8255_2->write(offset^3, data); }));
+ map(0x08, 0x0b).lrw8(NAME([this] (offs_t offset) -> u8 { return m_pit8253->read(offset^3); }), NAME([this] (offs_t offset, u8 data) { m_pit8253->write(offset^3, data); }));
map(0x0c, 0x0c).w(FUNC(vector06_state::vector06_color_set));
map(0x10, 0x10).w(FUNC(vector06_state::vector06_ramdisk_w));
map(0x14, 0x15).rw(m_ay, FUNC(ay8910_device::data_r), FUNC(ay8910_device::data_address_w));
diff --git a/src/mame/drivers/vendetta.cpp b/src/mame/drivers/vendetta.cpp
index 1fbbff36241..e98208e0b22 100644
--- a/src/mame/drivers/vendetta.cpp
+++ b/src/mame/drivers/vendetta.cpp
@@ -457,10 +457,10 @@ void vendetta_state::vendetta(machine_config &config)
K052109(config, m_k052109, 0);
m_k052109->set_palette(m_palette);
- m_k052109->set_tile_callback(FUNC(vendetta_state::vendetta_tile_callback), this);
+ m_k052109->set_tile_callback(FUNC(vendetta_state::vendetta_tile_callback));
K053246(config, m_k053246, 0);
- m_k053246->set_sprite_callback(FUNC(vendetta_state::sprite_callback), this);
+ m_k053246->set_sprite_callback(FUNC(vendetta_state::sprite_callback));
m_k053246->set_config(NORMAL_PLANE_ORDER, 53, 6);
m_k053246->set_palette(m_palette);
@@ -494,7 +494,7 @@ void vendetta_state::esckids(machine_config &config)
K052109(config, m_k052109, 0);
m_k052109->set_palette(m_palette);
- m_k052109->set_tile_callback(FUNC(vendetta_state::esckids_tile_callback), this);
+ m_k052109->set_tile_callback(FUNC(vendetta_state::esckids_tile_callback));
m_k053246->set_config(NORMAL_PLANE_ORDER, 101, 6);
diff --git a/src/mame/drivers/vgmplay.cpp b/src/mame/drivers/vgmplay.cpp
index 1e3f687f712..ed5d80c72f7 100644
--- a/src/mame/drivers/vgmplay.cpp
+++ b/src/mame/drivers/vgmplay.cpp
@@ -3226,11 +3226,11 @@ void vgmplay_state::soundchips_map(address_map &map)
map(vgmplay_device::A_MULTIPCM_1 + 4, vgmplay_device::A_MULTIPCM_1 + 7).w("vgmplay", FUNC(vgmplay_device::multipcm_bank_hi_w<1>));
map(vgmplay_device::A_MULTIPCM_1 + 8, vgmplay_device::A_MULTIPCM_1 + 11).w("vgmplay", FUNC(vgmplay_device::multipcm_bank_lo_w<1>));
map(vgmplay_device::A_UPD7759_0 + 0, vgmplay_device::A_UPD7759_0 + 0).w(FUNC(vgmplay_state::upd7759_reset_w<0>));
- map(vgmplay_device::A_UPD7759_0 + 1, vgmplay_device::A_UPD7759_0 + 1).lw8("upd7759.0.start", [this](uint8_t data) {m_upd7759[0]->start_w(data != 0); });
+ map(vgmplay_device::A_UPD7759_0 + 1, vgmplay_device::A_UPD7759_0 + 1).lw8(NAME([this](uint8_t data) {m_upd7759[0]->start_w(data != 0); }));
map(vgmplay_device::A_UPD7759_0 + 2, vgmplay_device::A_UPD7759_0 + 2).w(FUNC(vgmplay_state::upd7759_data_w<0>));
map(vgmplay_device::A_UPD7759_0 + 3, vgmplay_device::A_UPD7759_0 + 3).w("vgmplay", FUNC(vgmplay_device::upd7759_bank_w<0>));
map(vgmplay_device::A_UPD7759_1 + 0, vgmplay_device::A_UPD7759_1 + 0).w(FUNC(vgmplay_state::upd7759_reset_w<1>));
- map(vgmplay_device::A_UPD7759_1 + 1, vgmplay_device::A_UPD7759_1 + 1).lw8("upd7759.1.start", [this](uint8_t data) {m_upd7759[1]->start_w(data != 0); });
+ map(vgmplay_device::A_UPD7759_1 + 1, vgmplay_device::A_UPD7759_1 + 1).lw8(NAME([this](uint8_t data) {m_upd7759[1]->start_w(data != 0); }));
map(vgmplay_device::A_UPD7759_1 + 2, vgmplay_device::A_UPD7759_1 + 2).w(FUNC(vgmplay_state::upd7759_data_w<1>));
map(vgmplay_device::A_UPD7759_1 + 3, vgmplay_device::A_UPD7759_1 + 3).w("vgmplay", FUNC(vgmplay_device::upd7759_bank_w<1>));
map(vgmplay_device::A_OKIM6258_0 + 0x0, vgmplay_device::A_OKIM6258_0 + 0x0).w(m_okim6258[0], FUNC(okim6258_device::ctrl_w));
@@ -3456,7 +3456,7 @@ void vgmplay_state::vgmplay(machine_config &config)
m_vgmplay->set_addrmap(AS_IO16, &vgmplay_state::soundchips16_map);
quickload_image_device &quickload(QUICKLOAD(config, "quickload", "vgm,vgz"));
- quickload.set_load_callback(FUNC(vgmplay_state::load_file), this);
+ quickload.set_load_callback(FUNC(vgmplay_state::load_file));
quickload.set_interface("vgm_quik");
SOFTWARE_LIST(config, "vgm_list").set_original("vgmplay");
diff --git a/src/mame/drivers/vic20.cpp b/src/mame/drivers/vic20.cpp
index 86424ecf5c2..93d10aed1c6 100644
--- a/src/mame/drivers/vic20.cpp
+++ b/src/mame/drivers/vic20.cpp
@@ -844,7 +844,7 @@ void vic20_state::vic20(machine_config &config, const char* softlist_filter)
m_user->pl_handler().set(m_via1, FUNC(via6522_device::write_pb7));
m_user->pm_handler().set(m_via1, FUNC(via6522_device::write_cb2));
- QUICKLOAD(config, "quickload", "p00,prg", CBM_QUICKLOAD_DELAY).set_load_callback(FUNC(vic20_state::quickload_vc20), this);
+ QUICKLOAD(config, "quickload", "p00,prg", CBM_QUICKLOAD_DELAY).set_load_callback(FUNC(vic20_state::quickload_vc20));
SOFTWARE_LIST(config, "cart_list").set_type("vic1001_cart", SOFTWARE_LIST_ORIGINAL_SYSTEM).set_filter(softlist_filter);
SOFTWARE_LIST(config, "cass_list").set_type("vic1001_cass", SOFTWARE_LIST_ORIGINAL_SYSTEM).set_filter(softlist_filter);
diff --git a/src/mame/drivers/victor9k.cpp b/src/mame/drivers/victor9k.cpp
index c65e55331b8..7f3a543afe1 100644
--- a/src/mame/drivers/victor9k.cpp
+++ b/src/mame/drivers/victor9k.cpp
@@ -701,7 +701,7 @@ void victor9k_state::victor9k(machine_config &config)
m_crtc->set_screen(SCREEN_TAG);
m_crtc->set_show_border_area(true);
m_crtc->set_char_width(10);
- m_crtc->set_update_row_callback(FUNC(victor9k_state::crtc_update_row), this);
+ m_crtc->set_update_row_callback(FUNC(victor9k_state::crtc_update_row));
m_crtc->out_vsync_callback().set(FUNC(victor9k_state::vert_w));
// sound hardware
diff --git a/src/mame/drivers/videopkr.cpp b/src/mame/drivers/videopkr.cpp
index 4e536d2988c..155a68df638 100644
--- a/src/mame/drivers/videopkr.cpp
+++ b/src/mame/drivers/videopkr.cpp
@@ -528,12 +528,12 @@ TILE_GET_INFO_MEMBER(videopkr_state::get_bg_tile_info)
void videopkr_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(videopkr_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(videopkr_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
VIDEO_START_MEMBER(videopkr_state,vidadcba)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(videopkr_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(videopkr_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 8, 32, 32);
}
diff --git a/src/mame/drivers/vii.cpp b/src/mame/drivers/vii.cpp
index 7ef021c7617..216289a4138 100644
--- a/src/mame/drivers/vii.cpp
+++ b/src/mame/drivers/vii.cpp
@@ -2186,7 +2186,7 @@ void vii_state::vii(machine_config &config)
GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "vii_cart");
m_cart->set_width(GENERIC_ROM16_WIDTH);
- m_cart->set_device_load(FUNC(vii_state::cart_load_vii), this);
+ m_cart->set_device_load(FUNC(vii_state::cart_load_vii));
SOFTWARE_LIST(config, "vii_cart").set_original("vii");
}
@@ -2208,7 +2208,7 @@ void icanguit_state::icanguit(machine_config &config)
GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "icanguit_cart");
m_cart->set_width(GENERIC_ROM16_WIDTH);
- m_cart->set_device_load(FUNC(icanguit_state::cart_load_icanguit), this);
+ m_cart->set_device_load(FUNC(icanguit_state::cart_load_icanguit));
m_cart->set_must_be_loaded(true);
SOFTWARE_LIST(config, "icanguit_cart").set_original("icanguit");
@@ -2234,7 +2234,7 @@ void icanpian_state::icanpian(machine_config &config)
GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "icanpian_cart");
m_cart->set_width(GENERIC_ROM16_WIDTH);
- m_cart->set_device_load(FUNC(icanpian_state::cart_load_icanguit), this);
+ m_cart->set_device_load(FUNC(icanpian_state::cart_load_icanguit));
m_cart->set_must_be_loaded(true);
SOFTWARE_LIST(config, "icanpian_cart").set_original("icanpian");
@@ -2253,7 +2253,7 @@ void tvgogo_state::tvgogo(machine_config &config)
GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "tvgogo_cart");
m_cart->set_width(GENERIC_ROM16_WIDTH);
- m_cart->set_device_load(FUNC(tvgogo_state::cart_load_tvgogo), this);
+ m_cart->set_device_load(FUNC(tvgogo_state::cart_load_tvgogo));
m_cart->set_must_be_loaded(true);
SOFTWARE_LIST(config, "tvgogo_cart").set_original("tvgogo");
diff --git a/src/mame/drivers/vip.cpp b/src/mame/drivers/vip.cpp
index d289cb30623..421035b3807 100644
--- a/src/mame/drivers/vip.cpp
+++ b/src/mame/drivers/vip.cpp
@@ -755,7 +755,7 @@ void vip_state::vip(machine_config &config)
m_exp->dma_in_wr_callback().set(FUNC(vip_state::exp_dma_in_w));
// devices
- QUICKLOAD(config, "quickload", "bin,c8,c8x").set_load_callback(FUNC(vip_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "bin,c8,c8x").set_load_callback(FUNC(vip_state::quickload_cb));
CASSETTE(config, m_cassette);
m_cassette->set_default_state(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED);
m_cassette->set_interface("vip_cass");
diff --git a/src/mame/drivers/viper.cpp b/src/mame/drivers/viper.cpp
index 11a025f1a67..63159a13d6f 100644
--- a/src/mame/drivers/viper.cpp
+++ b/src/mame/drivers/viper.cpp
@@ -1745,35 +1745,35 @@ void viper_state::voodoo3_pci_w(int function, int reg, uint32_t data, uint32_t m
READ64_MEMBER(viper_state::voodoo3_io_r)
{
- return read64be_with_32sle_device_handler(read32s_delegate(FUNC(voodoo_3_device::banshee_io_r), &(*m_voodoo)), offset, mem_mask);
+ return read64be_with_32sle_device_handler(read32s_delegate(*m_voodoo, FUNC(voodoo_3_device::banshee_io_r)), offset, mem_mask);
}
WRITE64_MEMBER(viper_state::voodoo3_io_w)
{
// printf("voodoo3_io_w: %08X%08X, %08X at %08X\n", (uint32_t)(data >> 32), (uint32_t)(data), offset, m_maincpu->pc());
- write64be_with_32sle_device_handler(write32s_delegate(FUNC(voodoo_3_device::banshee_io_w), &(*m_voodoo)), offset, data, mem_mask);
+ write64be_with_32sle_device_handler(write32s_delegate(*m_voodoo, FUNC(voodoo_3_device::banshee_io_w)), offset, data, mem_mask);
}
READ64_MEMBER(viper_state::voodoo3_r)
{
- return read64be_with_32sle_device_handler(read32s_delegate(FUNC(voodoo_3_device::banshee_r), &(*m_voodoo)), offset, mem_mask);
+ return read64be_with_32sle_device_handler(read32s_delegate(*m_voodoo, FUNC(voodoo_3_device::banshee_r)), offset, mem_mask);
}
WRITE64_MEMBER(viper_state::voodoo3_w)
{
// printf("voodoo3_w: %08X%08X, %08X at %08X\n", (uint32_t)(data >> 32), (uint32_t)(data), offset, m_maincpu->pc());
- write64be_with_32sle_device_handler(write32s_delegate(FUNC(voodoo_3_device::banshee_w), &(*m_voodoo)), offset, data, mem_mask);
+ write64be_with_32sle_device_handler(write32s_delegate(*m_voodoo, FUNC(voodoo_3_device::banshee_w)), offset, data, mem_mask);
}
READ64_MEMBER(viper_state::voodoo3_lfb_r)
{
- return read64be_with_32smle_device_handler(read32sm_delegate(FUNC(voodoo_3_device::banshee_fb_r), &(*m_voodoo)), offset, mem_mask);
+ return read64be_with_32smle_device_handler(read32sm_delegate(*m_voodoo, FUNC(voodoo_3_device::banshee_fb_r)), offset, mem_mask);
}
WRITE64_MEMBER(viper_state::voodoo3_lfb_w)
{
// printf("voodoo3_lfb_w: %08X%08X, %08X at %08X\n", (uint32_t)(data >> 32), (uint32_t)(data), offset, m_maincpu->pc());
- write64be_with_32sle_device_handler(write32s_delegate(FUNC(voodoo_3_device::banshee_fb_w), &(*m_voodoo)), offset, data, mem_mask);
+ write64be_with_32sle_device_handler(write32s_delegate(*m_voodoo, FUNC(voodoo_3_device::banshee_fb_w)), offset, data, mem_mask);
}
@@ -2424,10 +2424,8 @@ void viper_state::viper(machine_config &config)
m_maincpu->set_vblank_int("screen", FUNC(viper_state::viper_vblank));
pci_bus_legacy_device &pcibus(PCI_BUS_LEGACY(config, "pcibus", 0, 0));
- pcibus.set_device_read ( 0, FUNC(viper_state::mpc8240_pci_r), this);
- pcibus.set_device_write( 0, FUNC(viper_state::mpc8240_pci_w), this);
- pcibus.set_device_read (12, FUNC(viper_state::voodoo3_pci_r), this);
- pcibus.set_device_write(12, FUNC(viper_state::voodoo3_pci_w), this);
+ pcibus.set_device( 0, FUNC(viper_state::mpc8240_pci_r), FUNC(viper_state::mpc8240_pci_w));
+ pcibus.set_device(12, FUNC(viper_state::voodoo3_pci_r), FUNC(viper_state::voodoo3_pci_w));
ATA_INTERFACE(config, m_ata).options(ata_devices, "hdd", nullptr, true);
@@ -2469,17 +2467,17 @@ void viper_state::init_viperhd()
{
init_viper();
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xff300000, 0xff300fff, read64_delegate(FUNC(viper_state::ata_r), this), write64_delegate(FUNC(viper_state::ata_w), this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xff300000, 0xff300fff, read64_delegate(*this, FUNC(viper_state::ata_r)), write64_delegate(*this, FUNC(viper_state::ata_w)));
}
void viper_state::init_vipercf()
{
init_viper();
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xff000000, 0xff000fff, read64_delegate(FUNC(viper_state::cf_card_data_r), this), write64_delegate(FUNC(viper_state::cf_card_data_w), this) );
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xff200000, 0xff200fff, read64_delegate(FUNC(viper_state::cf_card_r), this), write64_delegate(FUNC(viper_state::cf_card_w), this) );
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xff000000, 0xff000fff, read64_delegate(*this, FUNC(viper_state::cf_card_data_r)), write64_delegate(*this, FUNC(viper_state::cf_card_data_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xff200000, 0xff200fff, read64_delegate(*this, FUNC(viper_state::cf_card_r)), write64_delegate(*this, FUNC(viper_state::cf_card_w)));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xff300000, 0xff300fff, read64_delegate(FUNC(viper_state::unk_serial_r), this), write64_delegate(FUNC(viper_state::unk_serial_w), this) );
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xff300000, 0xff300fff, read64_delegate(*this, FUNC(viper_state::unk_serial_r)), write64_delegate(*this, FUNC(viper_state::unk_serial_w)));
}
diff --git a/src/mame/drivers/vis.cpp b/src/mame/drivers/vis.cpp
index 8e0421c206e..84263519217 100644
--- a/src/mame/drivers/vis.cpp
+++ b/src/mame/drivers/vis.cpp
@@ -56,8 +56,8 @@ void vis_audio_device::device_start()
{
set_isa_device();
m_isa->set_dma_channel(7, this, false);
- m_isa->install_device(0x0220, 0x022f, read8_delegate(FUNC(vis_audio_device::pcm_r), this), write8_delegate(FUNC(vis_audio_device::pcm_w), this));
- m_isa->install_device(0x0388, 0x038b, read8sm_delegate(FUNC(ymf262_device::read), subdevice<ymf262_device>("ymf262")), write8sm_delegate(FUNC(ymf262_device::write), subdevice<ymf262_device>("ymf262")));
+ m_isa->install_device(0x0220, 0x022f, read8_delegate(*this, FUNC(vis_audio_device::pcm_r)), write8_delegate(*this, FUNC(vis_audio_device::pcm_w)));
+ m_isa->install_device(0x0388, 0x038b, read8sm_delegate(*subdevice<ymf262_device>("ymf262"), FUNC(ymf262_device::read)), write8sm_delegate(*subdevice<ymf262_device>("ymf262"), FUNC(ymf262_device::write)));
m_pcm = timer_alloc();
m_pcm->adjust(attotime::never);
}
@@ -386,8 +386,8 @@ void vis_vga_device::vga_vh_yuv8(bitmap_rgb32 &bitmap, const rectangle &cliprect
void vis_vga_device::device_start()
{
set_isa_device();
- m_isa->install_device(0x03b0, 0x03df, read8_delegate(FUNC(vis_vga_device::vga_r), this), write8_delegate(FUNC(vis_vga_device::vga_w), this));
- m_isa->install_memory(0x0a0000, 0x0bffff, read8_delegate(FUNC(vis_vga_device::visvgamem_r), this), write8_delegate(FUNC(vis_vga_device::visvgamem_w), this));
+ m_isa->install_device(0x03b0, 0x03df, read8_delegate(*this, FUNC(vis_vga_device::vga_r)), write8_delegate(*this, FUNC(vis_vga_device::vga_w)));
+ m_isa->install_memory(0x0a0000, 0x0bffff, read8_delegate(*this, FUNC(vis_vga_device::visvgamem_r)), write8_delegate(*this, FUNC(vis_vga_device::visvgamem_w)));
svga_device::device_start();
vga.svga_intf.seq_regcount = 0x2d;
save_pointer(m_crtc_regs,"VIS CRTC",0x32);
diff --git a/src/mame/drivers/vk100.cpp b/src/mame/drivers/vk100.cpp
index 3479e4ffc5b..6e1e4fa8a1c 100644
--- a/src/mame/drivers/vk100.cpp
+++ b/src/mame/drivers/vk100.cpp
@@ -1047,7 +1047,7 @@ void vk100_state::vk100(machine_config &config)
m_crtc->set_screen("screen");
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(12);
- m_crtc->set_update_row_callback(FUNC(vk100_state::crtc_update_row), this);
+ m_crtc->set_update_row_callback(FUNC(vk100_state::crtc_update_row));
m_crtc->out_vsync_callback().set(FUNC(vk100_state::crtc_vsync));
/* i8251 uart */
diff --git a/src/mame/drivers/vlc.cpp b/src/mame/drivers/vlc.cpp
index 42ae414d6eb..b6bbcf516c5 100644
--- a/src/mame/drivers/vlc.cpp
+++ b/src/mame/drivers/vlc.cpp
@@ -300,7 +300,7 @@ TILE_GET_INFO_MEMBER( nevada_state::get_bg_tile_info )
/***************************************************************************/
void nevada_state::video_start()
{
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(nevada_state::get_bg_tile_info),this),TILEMAP_SCAN_ROWS,8,8,31,31);
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(nevada_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 31,31);
}
/***************************************************************************/
diff --git a/src/mame/drivers/volfied.cpp b/src/mame/drivers/volfied.cpp
index 67b01bf2355..fd66e5825d5 100644
--- a/src/mame/drivers/volfied.cpp
+++ b/src/mame/drivers/volfied.cpp
@@ -254,7 +254,7 @@ void volfied_state::volfied(machine_config &config)
PC090OJ(config, m_pc090oj, 0);
m_pc090oj->set_palette("palette");
- m_pc090oj->set_colpri_callback(FUNC(volfied_state::volfied_colpri_cb), this);
+ m_pc090oj->set_colpri_callback(FUNC(volfied_state::volfied_colpri_cb));
/* sound hardware */
SPEAKER(config, "mono").front_center();
diff --git a/src/mame/drivers/voyager.cpp b/src/mame/drivers/voyager.cpp
index 258c4199fe9..7e1dbcd6414 100644
--- a/src/mame/drivers/voyager.cpp
+++ b/src/mame/drivers/voyager.cpp
@@ -515,10 +515,8 @@ void voyager_state::voyager(machine_config &config)
ide.irq_handler().set("pic8259_2", FUNC(pic8259_device::ir6_w));
pci_bus_legacy_device &pcibus(PCI_BUS_LEGACY(config, "pcibus", 0, 0));
- pcibus.set_device_read (0, FUNC(voyager_state::intel82439tx_pci_r), this);
- pcibus.set_device_write(0, FUNC(voyager_state::intel82439tx_pci_w), this);
- pcibus.set_device_read (7, FUNC(voyager_state::intel82371ab_pci_r), this);
- pcibus.set_device_write(7, FUNC(voyager_state::intel82371ab_pci_w), this);
+ pcibus.set_device(0, FUNC(voyager_state::intel82439tx_pci_r), FUNC(voyager_state::intel82439tx_pci_w));
+ pcibus.set_device(7, FUNC(voyager_state::intel82371ab_pci_r), FUNC(voyager_state::intel82371ab_pci_w));
/* video hardware */
pcvideo_trident_vga(config);
diff --git a/src/mame/drivers/vp60.cpp b/src/mame/drivers/vp60.cpp
index 975d74b68bf..7022db15291 100644
--- a/src/mame/drivers/vp60.cpp
+++ b/src/mame/drivers/vp60.cpp
@@ -86,7 +86,7 @@ void vp60_state::vp60(machine_config &config)
I8275(config, m_crtc, 25.92_MHz_XTAL / 16);
m_crtc->set_character_width(16);
- m_crtc->set_display_callback(FUNC(vp60_state::draw_character), this);
+ m_crtc->set_display_callback(FUNC(vp60_state::draw_character));
m_crtc->set_screen("screen");
i8035_device &kbdcpu(I8035(config, "kbdcpu", 3.579545_MHz_XTAL)); // 48-300-010 XTAL
diff --git a/src/mame/drivers/vroulet.cpp b/src/mame/drivers/vroulet.cpp
index 5d6f3dc0796..99d3a8c4545 100644
--- a/src/mame/drivers/vroulet.cpp
+++ b/src/mame/drivers/vroulet.cpp
@@ -139,7 +139,7 @@ void vroulet_state::video_start()
{
m_bg_tilemap = &machine().tilemap().create(
*m_gfxdecode,
- tilemap_get_info_delegate(FUNC(vroulet_state::get_bg_tile_info),this),
+ tilemap_get_info_delegate(*this, FUNC(vroulet_state::get_bg_tile_info)),
TILEMAP_SCAN_ROWS,
8, 8, 32, 32);
}
diff --git a/src/mame/drivers/vtech1.cpp b/src/mame/drivers/vtech1.cpp
index 7ede641224c..09069bdebd1 100644
--- a/src/mame/drivers/vtech1.cpp
+++ b/src/mame/drivers/vtech1.cpp
@@ -459,7 +459,7 @@ void vtech1_state::laser110(machine_config &config)
// snapshot
snapshot_image_device &snapshot(SNAPSHOT(config, "snapshot", "vz"));
snapshot.set_delay(attotime::from_double(2.0));
- snapshot.set_load_callback(FUNC(vtech1_state::snapshot_cb), this);
+ snapshot.set_load_callback(FUNC(vtech1_state::snapshot_cb));
snapshot.set_interface("vzsnap");
CASSETTE(config, m_cassette);
diff --git a/src/mame/drivers/vtech2.cpp b/src/mame/drivers/vtech2.cpp
index 51626b20a4d..2bcc22a415a 100644
--- a/src/mame/drivers/vtech2.cpp
+++ b/src/mame/drivers/vtech2.cpp
@@ -93,10 +93,10 @@ void vtech2_state::io_map(address_map &map)
{
map.global_mask(0xff);
map(0x10, 0x1f).rw(FUNC(vtech2_state::laser_fdc_r), FUNC(vtech2_state::laser_fdc_w));
- map(0x40, 0x40).lw8("set_bankA", [this] (u8 data) { m_banka->set_bank(data & 15); });
- map(0x41, 0x41).lw8("set_bankB", [this] (u8 data) { m_bankb->set_bank(data & 15); });
- map(0x42, 0x42).lw8("set_bankC", [this] (u8 data) { m_bankc->set_bank(data & 15); });
- map(0x43, 0x43).lw8("set_bankD", [this] (u8 data) { m_bankd->set_bank(data & 15); });
+ map(0x40, 0x40).lw8(NAME([this] (u8 data) { m_banka->set_bank(data & 15); }));
+ map(0x41, 0x41).lw8(NAME([this] (u8 data) { m_bankb->set_bank(data & 15); }));
+ map(0x42, 0x42).lw8(NAME([this] (u8 data) { m_bankc->set_bank(data & 15); }));
+ map(0x43, 0x43).lw8(NAME([this] (u8 data) { m_bankd->set_bank(data & 15); }));
map(0x44, 0x44).w(FUNC(vtech2_state::laser_bg_mode_w));
map(0x45, 0x45).w(FUNC(vtech2_state::laser_two_color_w));
}
@@ -521,7 +521,7 @@ void vtech2_state::laser350(machine_config &config)
VTECH_IOEXP_SLOT(config, "io").set_io_space(m_maincpu, AS_IO);
/* cartridge */
- GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "vtech_cart", "rom,bin").set_device_load(FUNC(vtech2_state::cart_load), this);
+ GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "vtech_cart", "rom,bin").set_device_load(FUNC(vtech2_state::cart_load));
/* 5.25" Floppy drive */
LEGACY_FLOPPY(config, FLOPPY_0, 0, &vtech2_floppy_interface);
diff --git a/src/mame/drivers/wallc.cpp b/src/mame/drivers/wallc.cpp
index 88fbf57ed72..037305b5696 100644
--- a/src/mame/drivers/wallc.cpp
+++ b/src/mame/drivers/wallc.cpp
@@ -243,17 +243,17 @@ TILE_GET_INFO_MEMBER(wallc_state::get_bg_tile_info_sidampkr)
void wallc_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(wallc_state::get_bg_tile_info), this), TILEMAP_SCAN_COLS_FLIP_Y, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(wallc_state::get_bg_tile_info)), TILEMAP_SCAN_COLS_FLIP_Y, 8, 8, 32, 32);
}
VIDEO_START_MEMBER(wallc_state, unkitpkr)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(wallc_state::get_bg_tile_info_unkitpkr), this), TILEMAP_SCAN_COLS_FLIP_Y, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(wallc_state::get_bg_tile_info_unkitpkr)), TILEMAP_SCAN_COLS_FLIP_Y, 8, 8, 32, 32);
}
VIDEO_START_MEMBER(wallc_state, sidampkr)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(wallc_state::get_bg_tile_info_sidampkr), this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(wallc_state::get_bg_tile_info_sidampkr)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
uint32_t wallc_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
diff --git a/src/mame/drivers/warpsped.cpp b/src/mame/drivers/warpsped.cpp
index 183434821ae..4c85336e7fc 100644
--- a/src/mame/drivers/warpsped.cpp
+++ b/src/mame/drivers/warpsped.cpp
@@ -159,9 +159,9 @@ WRITE8_MEMBER(warpspeed_state::vidram_w)
void warpspeed_state::video_start()
{
- m_text_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(warpspeed_state::get_text_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_text_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(warpspeed_state::get_text_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_text_tilemap->set_transparent_pen(0);
- m_starfield_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(warpspeed_state::get_starfield_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_starfield_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(warpspeed_state::get_starfield_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_starfield_tilemap->mark_all_dirty();
save_item(NAME(m_regs));
diff --git a/src/mame/drivers/wecleman.cpp b/src/mame/drivers/wecleman.cpp
index a76a3385ffc..c15e1d40b32 100644
--- a/src/mame/drivers/wecleman.cpp
+++ b/src/mame/drivers/wecleman.cpp
@@ -1168,12 +1168,12 @@ void wecleman_state::hotchase(machine_config &config)
m_k051316[0]->set_palette(m_palette);
m_k051316[0]->set_offsets(-0xb0 / 2, -16);
m_k051316[0]->set_wrap(1);
- m_k051316[0]->set_zoom_callback(FUNC(wecleman_state::hotchase_zoom_callback_1), this);
+ m_k051316[0]->set_zoom_callback(FUNC(wecleman_state::hotchase_zoom_callback_1));
K051316(config, m_k051316[1], 0);
m_k051316[1]->set_palette(m_palette);
m_k051316[1]->set_offsets(-0xb0 / 2, -16);
- m_k051316[1]->set_zoom_callback(FUNC(wecleman_state::hotchase_zoom_callback_2), this);
+ m_k051316[1]->set_zoom_callback(FUNC(wecleman_state::hotchase_zoom_callback_2));
/* sound hardware */
SPEAKER(config, "lspeaker").front_left();
diff --git a/src/mame/drivers/wicat.cpp b/src/mame/drivers/wicat.cpp
index 5e6f1d2c050..76697e7dd00 100644
--- a/src/mame/drivers/wicat.cpp
+++ b/src/mame/drivers/wicat.cpp
@@ -832,7 +832,7 @@ void wicat_state::wicat(machine_config &config)
I8275(config, m_crtc, 19.6608_MHz_XTAL/10);
m_crtc->set_character_width(10);
- m_crtc->set_display_callback(FUNC(wicat_state::wicat_display_pixels), this);
+ m_crtc->set_display_callback(FUNC(wicat_state::wicat_display_pixels));
m_crtc->drq_wr_callback().set(m_videodma, FUNC(am9517a_device::dreq0_w));
m_crtc->vrtc_wr_callback().set(FUNC(wicat_state::crtc_irq_w));
m_crtc->set_screen("screen");
diff --git a/src/mame/drivers/williams.cpp b/src/mame/drivers/williams.cpp
index f49a1e23239..dbe1342bf1f 100644
--- a/src/mame/drivers/williams.cpp
+++ b/src/mame/drivers/williams.cpp
@@ -3192,7 +3192,7 @@ void williams_state::init_mayday()
CONFIGURE_BLITTER(WILLIAMS_BLITTER_NONE, 0x0000);
/* install a handler to catch protection checks */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xa190, 0xa191, read8sm_delegate(FUNC(williams_state::mayday_protection_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xa190, 0xa191, read8sm_delegate(*this, FUNC(williams_state::mayday_protection_r)));
m_mayday_protection = m_videoram + 0xa190;
}
@@ -3227,7 +3227,7 @@ void williams_state::init_bubbles()
CONFIGURE_BLITTER(WILLIAMS_BLITTER_SC1, 0xc000);
/* bubbles has a full 8-bit-wide CMOS */
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xcc00, 0xcfff, write8sm_delegate(FUNC(williams_state::bubbles_cmos_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xcc00, 0xcfff, write8sm_delegate(*this, FUNC(williams_state::bubbles_cmos_w)));
}
diff --git a/src/mame/drivers/wink.cpp b/src/mame/drivers/wink.cpp
index 6f54a302426..4071356f3af 100644
--- a/src/mame/drivers/wink.cpp
+++ b/src/mame/drivers/wink.cpp
@@ -98,7 +98,7 @@ TILE_GET_INFO_MEMBER(wink_state::get_bg_tile_info)
void wink_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(wink_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(wink_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
uint32_t wink_state::screen_update_wink(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
diff --git a/src/mame/drivers/witch.cpp b/src/mame/drivers/witch.cpp
index ba620398e0e..393f322e618 100644
--- a/src/mame/drivers/witch.cpp
+++ b/src/mame/drivers/witch.cpp
@@ -263,7 +263,7 @@ TILE_GET_INFO_MEMBER(keirinou_state::get_keirinou_gfx1_tile_info)
void witch_state::video_common_init()
{
- m_gfx0_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(witch_state::get_gfx0_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32);
+ m_gfx0_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(witch_state::get_gfx0_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 32,32);
m_gfx0_tilemap->set_transparent_pen(0);
@@ -276,7 +276,7 @@ void witch_state::video_common_init()
void witch_state::video_start()
{
video_common_init();
- m_gfx1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(witch_state::get_gfx1_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32);
+ m_gfx1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(witch_state::get_gfx1_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 32,32);
m_gfx0_tilemap->set_palette_offset(0x100);
m_gfx1_tilemap->set_palette_offset(0x200);
@@ -288,7 +288,7 @@ void keirinou_state::video_start()
{
//witch_state::video_start();
video_common_init();
- m_gfx1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(keirinou_state::get_keirinou_gfx1_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32);
+ m_gfx1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(keirinou_state::get_keirinou_gfx1_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 32,32);
m_gfx0_tilemap->set_palette_offset(0x000);
m_gfx1_tilemap->set_palette_offset(0x100);
@@ -1136,7 +1136,7 @@ void witch_state::init_witch()
m_mainbank->configure_entries(0, 4, memregion("maincpu")->base() + UNBANKED_SIZE, 0x8000);
m_mainbank->set_entry(0);
- m_subcpu->space(AS_PROGRAM).install_read_handler(0x7000, 0x700f, read8_delegate(FUNC(witch_state::prot_read_700x), this));
+ m_subcpu->space(AS_PROGRAM).install_read_handler(0x7000, 0x700f, read8_delegate(*this, FUNC(witch_state::prot_read_700x)));
}
GAME( 1987, keirinou, 0, keirinou, keirinou, keirinou_state, empty_init, ROT0, "Excellent System", "Keirin Ou", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/wrally.cpp b/src/mame/drivers/wrally.cpp
index e0435567e01..2c11a2f5f86 100644
--- a/src/mame/drivers/wrally.cpp
+++ b/src/mame/drivers/wrally.cpp
@@ -156,7 +156,7 @@ void wrally_state::wrally_map(address_map &map)
map(0x700002, 0x700003).portr("P1_P2");
map(0x700004, 0x700005).portr("WHEEL");
map(0x700008, 0x700009).portr("SYSTEM");
- map(0x70000b, 0x70000b).select(0x000070).lw8("outlatch_w", [this](offs_t offset, u8 data) { m_outlatch->write_d0(offset >> 4, data); });
+ map(0x70000b, 0x70000b).select(0x000070).lw8(NAME([this] (offs_t offset, u8 data) { m_outlatch->write_d0(offset >> 4, data); }));
map(0x70000d, 0x70000d).w(FUNC(wrally_state::okim6295_bankswitch_w)); /* OKI6295 bankswitch */
map(0x70000f, 0x70000f).rw("oki", FUNC(okim6295_device::read), FUNC(okim6295_device::write)); /* OKI6295 status/data register */
map(0xfec000, 0xfeffff).ram().share("shareram"); /* Work RAM (shared with DS5002FP) */
diff --git a/src/mame/drivers/wswan.cpp b/src/mame/drivers/wswan.cpp
index 085a06a91a0..8234e882520 100644
--- a/src/mame/drivers/wswan.cpp
+++ b/src/mame/drivers/wswan.cpp
@@ -127,8 +127,8 @@ void wswan_state::wswan(machine_config &config)
WSWAN_VIDEO(config, m_vdp, 0);
m_vdp->set_screen("screen");
m_vdp->set_vdp_type(VDP_TYPE_WSWAN);
- m_vdp->set_irq_callback(FUNC(wswan_state::set_irq_line), this);
- m_vdp->set_dmasnd_callback(FUNC(wswan_state::dma_sound_cb), this);
+ m_vdp->set_irq_callback(FUNC(wswan_state::set_irq_line));
+ m_vdp->set_dmasnd_callback(FUNC(wswan_state::dma_sound_cb));
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD));
// screen.set_refresh_rate(75);
diff --git a/src/mame/drivers/wy100.cpp b/src/mame/drivers/wy100.cpp
index af475667330..56d963dfa72 100644
--- a/src/mame/drivers/wy100.cpp
+++ b/src/mame/drivers/wy100.cpp
@@ -239,7 +239,7 @@ void wy100_state::wy100(machine_config &config)
crtc->set_screen("screen");
crtc->set_character_width(10);
}
- m_crtc[0]->set_display_callback(FUNC(wy100_state::draw_character), this);
+ m_crtc[0]->set_display_callback(FUNC(wy100_state::draw_character));
m_crtc[0]->drq_wr_callback().set_inputline(m_maincpu, MCS48_INPUT_IRQ);
m_crtc[0]->drq_wr_callback().append(FUNC(wy100_state::brdy_w));
m_crtc[0]->lc_wr_callback().set("spkrgate", FUNC(input_merger_device::in_w<1>)).bit(3);
diff --git a/src/mame/drivers/wyvernf0.cpp b/src/mame/drivers/wyvernf0.cpp
index e98d473cf24..9dcb260eb8f 100644
--- a/src/mame/drivers/wyvernf0.cpp
+++ b/src/mame/drivers/wyvernf0.cpp
@@ -163,8 +163,8 @@ TILE_GET_INFO_MEMBER(wyvernf0_state::get_fg_tile_info)
void wyvernf0_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(wyvernf0_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(wyvernf0_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(wyvernf0_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(wyvernf0_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_bg_tilemap->set_transparent_pen(0);
m_fg_tilemap->set_transparent_pen(0);
diff --git a/src/mame/drivers/x07.cpp b/src/mame/drivers/x07.cpp
index f749600bcb4..cd10fe813e0 100644
--- a/src/mame/drivers/x07.cpp
+++ b/src/mame/drivers/x07.cpp
@@ -1437,9 +1437,9 @@ void x07_state::machine_start()
{
// 0x4000 - 0x4fff 4KB RAM
// 0x6000 - 0x7fff 8KB ROM
- program.install_read_handler(ram_size, ram_size + 0xfff, read8sm_delegate(FUNC(generic_slot_device::read_ram),(generic_slot_device*)m_card));
- program.install_write_handler(ram_size, ram_size + 0xfff, write8sm_delegate(FUNC(generic_slot_device::write_ram),(generic_slot_device*)m_card));
- program.install_read_handler(0x6000, 0x7fff, read8sm_delegate(FUNC(generic_slot_device::read_rom),(generic_slot_device*)m_card));
+ program.install_read_handler(ram_size, ram_size + 0xfff, read8sm_delegate(*m_card, FUNC(generic_slot_device::read_ram)));
+ program.install_write_handler(ram_size, ram_size + 0xfff, write8sm_delegate(*m_card, FUNC(generic_slot_device::write_ram)));
+ program.install_read_handler(0x6000, 0x7fff, read8sm_delegate(*m_card, FUNC(generic_slot_device::read_rom)));
m_card->save_ram();
}
@@ -1519,7 +1519,7 @@ void x07_state::x07(machine_config &config)
RAM(config, RAM_TAG).set_default_size("16K").set_extra_options("8K,12K,20K,24K");
/* Memory Card */
- GENERIC_CARTSLOT(config, "cardslot", generic_romram_plain_slot, "x07_card", "rom,bin").set_device_load(FUNC(x07_state::card_load), this);
+ GENERIC_CARTSLOT(config, "cardslot", generic_romram_plain_slot, "x07_card", "rom,bin").set_device_load(FUNC(x07_state::card_load));
/* cassette */
CASSETTE(config, m_cassette);
diff --git a/src/mame/drivers/x68k.cpp b/src/mame/drivers/x68k.cpp
index 0a2974c436e..01d2c56fe34 100644
--- a/src/mame/drivers/x68k.cpp
+++ b/src/mame/drivers/x68k.cpp
@@ -1181,7 +1181,7 @@ void x68k_state::cpu_space_map(address_map &map)
map(0xfffff9, 0xfffff9).r(FUNC(x68k_state::iack4));
map(0xfffffb, 0xfffffb).r(FUNC(x68k_state::iack5));
map(0xfffffd, 0xfffffd).r(m_mfpdev, FUNC(mc68901_device::get_vector));
- map(0xffffff, 0xffffff).lr8("nmiack", []() { return m68000_base_device::autovector(7); });
+ map(0xffffff, 0xffffff).lr8(NAME([] () { return m68000_base_device::autovector(7); }));
}
WRITE_LINE_MEMBER(x68ksupr_state::scsi_irq)
diff --git a/src/mame/drivers/xerox820.cpp b/src/mame/drivers/xerox820.cpp
index 02225265c18..f208d96f4c1 100644
--- a/src/mame/drivers/xerox820.cpp
+++ b/src/mame/drivers/xerox820.cpp
@@ -667,7 +667,7 @@ void xerox820_state::xerox820(machine_config &config)
// software lists
SOFTWARE_LIST(config, "flop_list").set_original("xerox820");
- QUICKLOAD(config, "quickload", "com,cpm", attotime::from_seconds(3)).set_load_callback(FUNC(xerox820_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "com,cpm", attotime::from_seconds(3)).set_load_callback(FUNC(xerox820_state::quickload_cb));
}
void bigboard_state::bigboard(machine_config &config)
@@ -771,7 +771,7 @@ void xerox820ii_state::xerox820ii(machine_config &config)
// software lists
SOFTWARE_LIST(config, "flop_list").set_original("xerox820ii");
- QUICKLOAD(config, "quickload", "com,cpm", attotime::from_seconds(3)).set_load_callback(FUNC(xerox820_state::quickload_cb), this);
+ QUICKLOAD(config, "quickload", "com,cpm", attotime::from_seconds(3)).set_load_callback(FUNC(xerox820_state::quickload_cb));
}
void xerox820ii_state::xerox168(machine_config &config)
diff --git a/src/mame/drivers/xexex.cpp b/src/mame/drivers/xexex.cpp
index 35dd1323daa..68f4ed0b716 100644
--- a/src/mame/drivers/xexex.cpp
+++ b/src/mame/drivers/xexex.cpp
@@ -500,12 +500,12 @@ void xexex_state::xexex(machine_config &config)
m_palette->enable_hilights();
K056832(config, m_k056832, 0);
- m_k056832->set_tile_callback(FUNC(xexex_state::tile_callback), this);
+ m_k056832->set_tile_callback(FUNC(xexex_state::tile_callback));
m_k056832->set_config(K056832_BPP_4, 1, 0);
m_k056832->set_palette(m_palette);
K053246(config, m_k053246, 0);
- m_k053246->set_sprite_callback(FUNC(xexex_state::sprite_callback), this);
+ m_k053246->set_sprite_callback(FUNC(xexex_state::sprite_callback));
m_k053246->set_config(NORMAL_PLANE_ORDER, -48, 32);
m_k053246->set_palette(m_palette);
diff --git a/src/mame/drivers/xmen.cpp b/src/mame/drivers/xmen.cpp
index ed3b4543eb5..2e1dbea5239 100644
--- a/src/mame/drivers/xmen.cpp
+++ b/src/mame/drivers/xmen.cpp
@@ -327,10 +327,10 @@ void xmen_state::xmen(machine_config &config)
K052109(config, m_k052109, 0);
m_k052109->set_palette("palette");
m_k052109->set_screen(nullptr);
- m_k052109->set_tile_callback(FUNC(xmen_state::tile_callback), this);
+ m_k052109->set_tile_callback(FUNC(xmen_state::tile_callback));
K053246(config, m_k053246, 0);
- m_k053246->set_sprite_callback(FUNC(xmen_state::sprite_callback), this);
+ m_k053246->set_sprite_callback(FUNC(xmen_state::sprite_callback));
m_k053246->set_config(NORMAL_PLANE_ORDER, 53, -2);
m_k053246->set_palette("palette");
@@ -390,10 +390,10 @@ void xmen_state::xmen6p(machine_config &config)
K052109(config, m_k052109, 0);
m_k052109->set_palette("palette");
m_k052109->set_screen(nullptr);
- m_k052109->set_tile_callback(FUNC(xmen_state::tile_callback), this);
+ m_k052109->set_tile_callback(FUNC(xmen_state::tile_callback));
K053246(config, m_k053246, 0);
- m_k053246->set_sprite_callback(FUNC(xmen_state::sprite_callback), this);
+ m_k053246->set_sprite_callback(FUNC(xmen_state::sprite_callback));
m_k053246->set_config(NORMAL_PLANE_ORDER, 53, -2);
m_k053246->set_screen(m_screen);
m_k053246->set_palette("palette");
diff --git a/src/mame/drivers/xor100.cpp b/src/mame/drivers/xor100.cpp
index 5392e0a0e2a..07503074fb0 100644
--- a/src/mame/drivers/xor100.cpp
+++ b/src/mame/drivers/xor100.cpp
@@ -265,9 +265,9 @@ void xor100_state::xor100_io(address_map &map)
map(0x0a, 0x0a).r(FUNC(xor100_state::prom_disable_r));
map(0x0b, 0x0b).portr("DSW0").w(COM5016_TAG, FUNC(com8116_device::stt_str_w));
map(0x0c, 0x0f).rw(m_ctc, FUNC(z80ctc_device::read), FUNC(z80ctc_device::write));
- map(0xf8, 0xfb).lrw8("fdc",
- [this](offs_t offset) { return m_fdc->read(offset) ^ 0xff; },
- [this](offs_t offset, u8 data) { m_fdc->write(offset, data ^ 0xff); });
+ map(0xf8, 0xfb).lrw8(
+ NAME([this](offs_t offset) { return m_fdc->read(offset) ^ 0xff; }),
+ NAME([this](offs_t offset, u8 data) { m_fdc->write(offset, data ^ 0xff); }));
map(0xfc, 0xfc).rw(FUNC(xor100_state::fdc_wait_r), FUNC(xor100_state::fdc_dcont_w));
map(0xfd, 0xfd).w(FUNC(xor100_state::fdc_dsel_w));
}
diff --git a/src/mame/drivers/xtom3d.cpp b/src/mame/drivers/xtom3d.cpp
index 78000c9f526..95983f6fcd8 100644
--- a/src/mame/drivers/xtom3d.cpp
+++ b/src/mame/drivers/xtom3d.cpp
@@ -422,10 +422,8 @@ void xtom3d_state::xtom3d(machine_config &config)
pcat_common(config);
PCI_BUS_LEGACY(config, m_pcibus, 0, 0);
- m_pcibus->set_device_read (0, FUNC(xtom3d_state::intel82439tx_pci_r), this);
- m_pcibus->set_device_write(0, FUNC(xtom3d_state::intel82439tx_pci_w), this);
- m_pcibus->set_device_read (7, FUNC(xtom3d_state::intel82371ab_pci_r), this);
- m_pcibus->set_device_write(7, FUNC(xtom3d_state::intel82371ab_pci_w), this);
+ m_pcibus->set_device(0, FUNC(xtom3d_state::intel82439tx_pci_r), FUNC(xtom3d_state::intel82439tx_pci_w));
+ m_pcibus->set_device(7, FUNC(xtom3d_state::intel82371ab_pci_r), FUNC(xtom3d_state::intel82371ab_pci_w));
/* video hardware */
pcvideo_vga(config);
diff --git a/src/mame/drivers/ymmu50.cpp b/src/mame/drivers/ymmu50.cpp
index 7fad2fb2388..a3962f4902d 100644
--- a/src/mame/drivers/ymmu50.cpp
+++ b/src/mame/drivers/ymmu50.cpp
@@ -215,13 +215,13 @@ void mu50_state::mu50_iomap(address_map &map)
map(h8_device::PORT_B, h8_device::PORT_B).rw(FUNC(mu50_state::pb_r), FUNC(mu50_state::pb_w));
map(h8_device::PORT_C, h8_device::PORT_C).rw(FUNC(mu50_state::pc_r), FUNC(mu50_state::pc_w));
map(h8_device::ADC_0, h8_device::ADC_0).r(FUNC(mu50_state::adc_ar_r));
- map(h8_device::ADC_1, h8_device::ADC_1).lr16("gnd", []() -> u16 { return 0; });
+ map(h8_device::ADC_1, h8_device::ADC_1).lr16([]() -> u16 { return 0; }, "gnd");
map(h8_device::ADC_2, h8_device::ADC_2).r(FUNC(mu50_state::adc_al_r));
- map(h8_device::ADC_3, h8_device::ADC_3).lr16("gnd", []() -> u16 { return 0; });
+ map(h8_device::ADC_3, h8_device::ADC_3).lr16([]() -> u16 { return 0; }, "gnd");
map(h8_device::ADC_4, h8_device::ADC_4).r(FUNC(mu50_state::adc_midisw_r));
- map(h8_device::ADC_5, h8_device::ADC_6).lr16("gnd", []() -> u16 { return 0; });
+ map(h8_device::ADC_5, h8_device::ADC_6).lr16([]() -> u16 { return 0; }, "gnd");
map(h8_device::ADC_6, h8_device::ADC_6).r(FUNC(mu50_state::adc_battery_r));
- map(h8_device::ADC_7, h8_device::ADC_7).lr16("gnd", []() -> u16 { return 0; });
+ map(h8_device::ADC_7, h8_device::ADC_7).lr16([]() -> u16 { return 0; }, "gnd");
}
void mu50_state::mu50(machine_config &config)
diff --git a/src/mame/drivers/z100.cpp b/src/mame/drivers/z100.cpp
index d6515c0c7f5..af25f34942e 100644
--- a/src/mame/drivers/z100.cpp
+++ b/src/mame/drivers/z100.cpp
@@ -799,7 +799,7 @@ void z100_state::z100(machine_config &config)
m_crtc->set_screen("screen");
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8);
- m_crtc->set_update_row_callback(FUNC(z100_state::update_row), this);
+ m_crtc->set_update_row_callback(FUNC(z100_state::update_row));
m_crtc->out_vsync_callback().set(FUNC(z100_state::vidint_w));
PIC8259(config, m_picm);
diff --git a/src/mame/drivers/z1013.cpp b/src/mame/drivers/z1013.cpp
index c3b033be782..77e3bbf9516 100644
--- a/src/mame/drivers/z1013.cpp
+++ b/src/mame/drivers/z1013.cpp
@@ -401,7 +401,7 @@ void z1013_state::z1013(machine_config &config)
m_cass->set_default_state(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED);
m_cass->add_route(ALL_OUTPUTS, "mono", 0.05);
- SNAPSHOT(config, "snapshot", "z80").set_load_callback(FUNC(z1013_state::snapshot_cb), this);
+ SNAPSHOT(config, "snapshot", "z80").set_load_callback(FUNC(z1013_state::snapshot_cb));
}
void z1013_state::z1013k76(machine_config &config)
diff --git a/src/mame/drivers/z88.cpp b/src/mame/drivers/z88.cpp
index 7b44e8fd29e..286d302cb1d 100644
--- a/src/mame/drivers/z88.cpp
+++ b/src/mame/drivers/z88.cpp
@@ -107,16 +107,16 @@ UPD65031_MEMORY_UPDATE(z88_state::bankswitch_update)
switch (bank)
{
case 0:
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x0000, 0x3fff, read8_delegate(FUNC(z88_state::bank0_cart_r), this), write8_delegate(FUNC(z88_state::bank0_cart_w), this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x0000, 0x3fff, read8_delegate(*this, FUNC(z88_state::bank0_cart_r)), write8_delegate(*this, FUNC(z88_state::bank0_cart_w)));
break;
case 1:
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x4000, 0x7fff, read8_delegate(FUNC(z88_state::bank1_cart_r), this), write8_delegate(FUNC(z88_state::bank1_cart_w), this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x4000, 0x7fff, read8_delegate(*this, FUNC(z88_state::bank1_cart_r)), write8_delegate(*this, FUNC(z88_state::bank1_cart_w)));
break;
case 2:
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x8000, 0xbfff, read8_delegate(FUNC(z88_state::bank2_cart_r), this), write8_delegate(FUNC(z88_state::bank2_cart_w), this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x8000, 0xbfff, read8_delegate(*this, FUNC(z88_state::bank2_cart_r)), write8_delegate(*this, FUNC(z88_state::bank2_cart_w)));
break;
case 3:
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xc000, 0xffff, read8_delegate(FUNC(z88_state::bank3_cart_r), this), write8_delegate(FUNC(z88_state::bank3_cart_w), this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xc000, 0xffff, read8_delegate(*this, FUNC(z88_state::bank3_cart_r)), write8_delegate(*this, FUNC(z88_state::bank3_cart_w)));
break;
}
@@ -619,8 +619,8 @@ void z88_state::z88(machine_config &config)
m_blink->int_wr_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
m_blink->nmi_wr_callback().set_inputline(m_maincpu, INPUT_LINE_NMI);
m_blink->spkr_wr_callback().set("speaker", FUNC(speaker_sound_device::level_w));
- m_blink->set_screen_update_callback(FUNC(z88_state::lcd_update), this);
- m_blink->set_memory_update_callback(FUNC(z88_state::bankswitch_update), this);
+ m_blink->set_screen_update_callback(FUNC(z88_state::lcd_update));
+ m_blink->set_memory_update_callback(FUNC(z88_state::bankswitch_update));
/* sound hardware */
SPEAKER(config, "mono").front_center();
diff --git a/src/mame/drivers/zaxxon.cpp b/src/mame/drivers/zaxxon.cpp
index 694b0a3fdf4..db85175205d 100644
--- a/src/mame/drivers/zaxxon.cpp
+++ b/src/mame/drivers/zaxxon.cpp
@@ -1584,7 +1584,7 @@ void zaxxon_state::init_razmataz()
pgmspace.install_read_port(0xc00c, 0xc00c, 0x18f3, "SW0C");
/* unknown behavior expected here */
- pgmspace.install_read_handler(0xc80a, 0xc80a, read8_delegate(FUNC(zaxxon_state::razmataz_counter_r),this));
+ pgmspace.install_read_handler(0xc80a, 0xc80a, read8_delegate(*this, FUNC(zaxxon_state::razmataz_counter_r)));
/* additional state saving */
save_item(NAME(m_razmataz_dial_pos));
diff --git a/src/mame/drivers/zorba.cpp b/src/mame/drivers/zorba.cpp
index 4d1096bd498..fb84b16637e 100644
--- a/src/mame/drivers/zorba.cpp
+++ b/src/mame/drivers/zorba.cpp
@@ -217,7 +217,7 @@ void zorba_state::zorba(machine_config &config)
I8275(config, m_crtc, 14.318'181_MHz_XTAL / 8); // TODO: character clock divider is 9 during HRTC
m_crtc->set_character_width(8);
m_crtc->set_refresh_hack(true);
- m_crtc->set_display_callback(FUNC(zorba_state::zorba_update_chr), this);
+ m_crtc->set_display_callback(FUNC(zorba_state::zorba_update_chr));
m_crtc->drq_wr_callback().set(m_dma, FUNC(z80dma_device::rdy_w));
m_crtc->irq_wr_callback().set("irq0", FUNC(input_merger_device::in_w<1>));
m_crtc->set_screen("screen");
diff --git a/src/mame/drivers/zr107.cpp b/src/mame/drivers/zr107.cpp
index 62e3b197c87..be176b00fb5 100644
--- a/src/mame/drivers/zr107.cpp
+++ b/src/mame/drivers/zr107.cpp
@@ -815,7 +815,7 @@ void midnrun_state::midnrun(machine_config &config)
m_screen->set_screen_update(FUNC(midnrun_state::screen_update));
K056832(config, m_k056832, 0);
- m_k056832->set_tile_callback(FUNC(midnrun_state::tile_callback), this);
+ m_k056832->set_tile_callback(FUNC(midnrun_state::tile_callback));
m_k056832->set_config(K056832_BPP_8, 1, 0);
m_k056832->set_palette(m_palette);
}
diff --git a/src/mame/drivers/zrt80.cpp b/src/mame/drivers/zrt80.cpp
index f008e38453f..2e01a2ebd41 100644
--- a/src/mame/drivers/zrt80.cpp
+++ b/src/mame/drivers/zrt80.cpp
@@ -304,7 +304,7 @@ void zrt80_state::zrt80(machine_config &config)
m_crtc->set_screen("screen");
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8); /*?*/
- m_crtc->set_update_row_callback(FUNC(zrt80_state::crtc_update_row), this);
+ m_crtc->set_update_row_callback(FUNC(zrt80_state::crtc_update_row));
INS8250(config, m_8250, 2457600);
m_8250->out_int_callback().set_inputline("maincpu", INPUT_LINE_IRQ0);
diff --git a/src/mame/drivers/zwackery.cpp b/src/mame/drivers/zwackery.cpp
index ec2b8202d77..7b15b6e1dc4 100644
--- a/src/mame/drivers/zwackery.cpp
+++ b/src/mame/drivers/zwackery.cpp
@@ -195,10 +195,10 @@ void zwackery_state::video_start()
gfx_element *gfx2 = m_gfxdecode->gfx(2);
// initialize the background tilemap
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(zwackery_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16,16, 32,32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(zwackery_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16,16, 32,32);
// initialize the foreground tilemap
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(zwackery_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 16,16, 32,32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(zwackery_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 16,16, 32,32);
m_fg_tilemap->set_transparent_pen(0);
// allocate memory for the assembled gfx data
diff --git a/src/mame/includes/decocass.h b/src/mame/includes/decocass.h
index 6efe74ffc17..63e1f073a33 100644
--- a/src/mame/includes/decocass.h
+++ b/src/mame/includes/decocass.h
@@ -33,6 +33,8 @@ public:
: driver_device(mconfig, type, tag)
, m_maincpu(*this, "maincpu")
, m_mcu(*this, "mcu")
+ , m_dongle_r(*this)
+ , m_dongle_w(*this)
, m_audiocpu(*this, "audiocpu")
, m_watchdog(*this, "watchdog")
, m_cassette(*this, "cassette")
@@ -63,8 +65,8 @@ protected:
required_device<upi41_cpu_device> m_mcu;
/* dongles-related */
- read8_delegate m_dongle_r;
- write8_delegate m_dongle_w;
+ read8_delegate m_dongle_r; // TODO: why isn't this a virtual method?
+ write8_delegate m_dongle_w; // TODO: why isn't this a virtual method?
virtual void machine_start() override;
virtual void machine_reset() override;
diff --git a/src/mame/includes/goldstar.h b/src/mame/includes/goldstar.h
index 95ec5b259ee..4f39d36c1fa 100644
--- a/src/mame/includes/goldstar.h
+++ b/src/mame/includes/goldstar.h
@@ -198,26 +198,7 @@ public:
protected:
// installed by various driver init handlers to get stuff to work
- READ8_MEMBER(fixedval09_r) { return 0x09; }
- READ8_MEMBER(fixedval38_r) { return 0x38; }
- READ8_MEMBER(fixedval48_r) { return 0x48; }
- READ8_MEMBER(fixedval58_r) { return 0x58; }
- READ8_MEMBER(fixedval68_r) { return 0x68; }
- READ8_MEMBER(fixedval74_r) { return 0x74; }
- READ8_MEMBER(fixedval7d_r) { return 0x7d; }
- READ8_MEMBER(fixedval80_r) { return 0x80; }
- READ8_MEMBER(fixedval82_r) { return 0x82; }
- READ8_MEMBER(fixedval84_r) { return 0x84; }
- READ8_MEMBER(fixedval90_r) { return 0x90; }
- READ8_MEMBER(fixedval96_r) { return 0x96; }
- READ8_MEMBER(fixedvala8_r) { return 0xa8; }
- READ8_MEMBER(fixedvalaa_r) { return 0xaa; }
- READ8_MEMBER(fixedvalb2_r) { return 0xb2; }
- READ8_MEMBER(fixedvalb4_r) { return 0xb4; }
- READ8_MEMBER(fixedvalbe_r) { return 0xbe; }
- READ8_MEMBER(fixedvalc7_r) { return 0xc7; }
- READ8_MEMBER(fixedvalea_r) { return 0xea; }
- READ8_MEMBER(fixedvale4_r) { return 0xe4; }
+ template <uint8_t V> READ8_MEMBER(fixedval_r) { return V; }
};
diff --git a/src/mame/includes/hp48.h b/src/mame/includes/hp48.h
index d478736fe39..01f9f4e8024 100644
--- a/src/mame/includes/hp48.h
+++ b/src/mame/includes/hp48.h
@@ -28,25 +28,6 @@ typedef enum {
HP49_G
} hp48_models;
-/* memory module configuration */
-typedef struct
-{
- /* static part */
- uint32_t off_mask; /* offset bit-mask, indicates the real size */
- read8_delegate read;
- const char *read_name;
- write8_delegate write;
- void* data; /* non-NULL for banks */
- int isnop;
-
- /* configurable part */
- uint8_t state; /* one of HP48_MODULE_ */
- uint32_t base; /* base address */
- uint32_t mask; /* often improperly called size, it is an address select mask */
-
-} hp48_module;
-
-
/* screen image averaging */
#define HP48_NB_SCREENS 3
@@ -55,6 +36,7 @@ class hp48_state : public driver_device
public:
hp48_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag)
+ , m_modules{ { *this }, { *this }, { *this }, { *this }, { *this }, { *this } }
, m_maincpu(*this, "maincpu")
, m_dac(*this, "dac")
, m_palette(*this, "palette")
@@ -72,14 +54,34 @@ public:
void init_hp48();
- /* from highest to lowest priority: HDW, NCE2, CE1, CE2, NCE3, NCE1 */
- hp48_module m_modules[6];
-
void decode_nibble(uint8_t* dst, uint8_t* src, int size);
void encode_nibble(uint8_t* dst, uint8_t* src, int size);
void apply_modules();
+ /* memory module configuration */
+ struct hp48_module
+ {
+ hp48_module(device_t &owner) : read(owner), write(owner) { }
+
+ /* static part */
+ uint32_t off_mask; // offset bit-mask, indicates the real size
+ read8_delegate read;
+ const char *read_name;
+ write8_delegate write;
+ void* data; // non-NULL for banks
+ int isnop;
+
+ /* configurable part */
+ uint8_t state; // one of HP48_MODULE_
+ uint32_t base; // base address
+ uint32_t mask; // often improperly called size, it is an address select mask
+
+ };
+
+ /* from highest to lowest priority: HDW, NCE2, CE1, CE2, NCE3, NCE1 */
+ hp48_module m_modules[6];
+
private:
virtual void machine_reset() override;
void base_machine_start(hp48_models model);
diff --git a/src/mame/includes/megadriv.h b/src/mame/includes/megadriv.h
index 37e7c27526d..79bef161a25 100644
--- a/src/mame/includes/megadriv.h
+++ b/src/mame/includes/megadriv.h
@@ -52,7 +52,9 @@ public:
m_scan_timer(*this, "md_scan_timer"),
m_vdp(*this,"gen_vdp"),
m_megadrive_ram(*this,"megadrive_ram"),
- m_io_reset(*this, "RESET")
+ m_io_reset(*this, "RESET"),
+ m_megadrive_io_read_data_port_ptr(*this),
+ m_megadrive_io_write_data_port_ptr(*this)
{ }
required_device<m68000_base_device> m_maincpu;
diff --git a/src/mame/includes/newbrain.h b/src/mame/includes/newbrain.h
index b7726e34a20..b52184ce58f 100644
--- a/src/mame/includes/newbrain.h
+++ b/src/mame/includes/newbrain.h
@@ -100,7 +100,7 @@ private:
int get_reset_t();
int get_pwrup_t();
- void screen_update(bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ void do_screen_update(bitmap_rgb32 &bitmap, const rectangle &cliprect);
void tvl(uint8_t data, int a6);
required_device<z80_device> m_maincpu;
diff --git a/src/mame/includes/segaorun.h b/src/mame/includes/segaorun.h
index c56d785273d..adc9543f755 100644
--- a/src/mame/includes/segaorun.h
+++ b/src/mame/includes/segaorun.h
@@ -26,8 +26,8 @@ class segaorun_state : public sega_16bit_common_base
{
public:
// construction/destruction
- segaorun_state(const machine_config &mconfig, device_type type, const char *tag)
- : sega_16bit_common_base(mconfig, type, tag),
+ segaorun_state(const machine_config &mconfig, device_type type, const char *tag) :
+ sega_16bit_common_base(mconfig, type, tag),
m_mapper(*this, "mapper"),
m_maincpu(*this, "maincpu"),
m_subcpu(*this, "subcpu"),
@@ -44,6 +44,8 @@ public:
m_digital_ports(*this, { { "SERVICE", "UNKNOWN", "COINAGE", "DSW" } }),
m_adc_ports(*this, "ADC.%u", 0),
m_workram(*this, "workram"),
+ m_custom_io_r(*this),
+ m_custom_io_w(*this),
m_custom_map(nullptr),
m_shangon_video(false),
m_scanline_timer(nullptr),
@@ -155,15 +157,15 @@ protected:
// configuration
read16_delegate m_custom_io_r;
write16_delegate m_custom_io_w;
- const uint8_t * m_custom_map;
+ const uint8_t * m_custom_map;
bool m_shangon_video;
// internal state
emu_timer * m_scanline_timer;
emu_timer * m_irq2_gen_timer;
- uint8_t m_irq2_state;
- uint8_t m_adc_select;
- uint8_t m_vblank_irq_state;
+ uint8_t m_irq2_state;
+ uint8_t m_adc_select;
+ uint8_t m_vblank_irq_state;
int m_bankmotor_pos;
int m_bankmotor_delta;
};
diff --git a/src/mame/includes/segas16a.h b/src/mame/includes/segas16a.h
index 9486ee0e0f8..cbf910c255e 100644
--- a/src/mame/includes/segas16a.h
+++ b/src/mame/includes/segas16a.h
@@ -46,6 +46,8 @@ public:
, m_cxdio(*this, "cxdio")
, m_workram(*this, "nvram")
, m_sound_decrypted_opcodes(*this, "sound_decrypted_opcodes")
+ , m_custom_io_r(*this)
+ , m_custom_io_w(*this)
, m_video_control(0)
, m_mcu_control(0)
, m_n7751_command(0)
diff --git a/src/mame/includes/segas16b.h b/src/mame/includes/segas16b.h
index 49d7077d2bf..35ae4878406 100644
--- a/src/mame/includes/segas16b.h
+++ b/src/mame/includes/segas16b.h
@@ -58,6 +58,8 @@ public:
, m_workram(*this, "workram")
, m_romboard(ROM_BOARD_INVALID)
, m_tilemap_type(segaic16_video_device::TILEMAP_16B)
+ , m_custom_io_r(*this)
+ , m_custom_io_w(*this)
, m_disable_screen_blanking(false)
, m_i8751_initial_config(nullptr)
, m_atomicp_sound_divisor(0)
diff --git a/src/mame/includes/segas18.h b/src/mame/includes/segas18.h
index af0a09b1ed1..3689ae03bc1 100644
--- a/src/mame/includes/segas18.h
+++ b/src/mame/includes/segas18.h
@@ -49,6 +49,8 @@ public:
, m_soundbank(*this, "soundbank")
, m_gun_recoil(*this, "P%u_Gun_Recoil", 1U)
, m_romboard(ROM_BOARD_INVALID)
+ , m_custom_io_r(*this)
+ , m_custom_io_w(*this)
, m_grayscale_enable(false)
, m_vdp_enable(false)
, m_vdp_mixing(0)
diff --git a/src/mame/includes/sprint2.h b/src/mame/includes/sprint2.h
index 845fa4dca70..8845e09884a 100644
--- a/src/mame/includes/sprint2.h
+++ b/src/mame/includes/sprint2.h
@@ -88,7 +88,7 @@ private:
void sprint2_palette(palette_device &palette) const;
uint32_t screen_update_sprint2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
DECLARE_WRITE_LINE_MEMBER(screen_vblank_sprint2);
- INTERRUPT_GEN_MEMBER(sprint2);
+ INTERRUPT_GEN_MEMBER(sprint2_irq);
uint8_t collision_check(rectangle& rect);
inline int get_sprite_code(uint8_t *video_ram, int n);
inline int get_sprite_x(uint8_t *video_ram, int n);
diff --git a/src/mame/includes/starfire.h b/src/mame/includes/starfire.h
index 8dda83c71bd..9220ca0d933 100644
--- a/src/mame/includes/starfire.h
+++ b/src/mame/includes/starfire.h
@@ -5,6 +5,10 @@
Star Fire/Fire One system
***************************************************************************/
+#ifndef MAME_INCLUDES_STARFIRE_H
+#define MAME_INCLUDES_STARFIRE_H
+
+#pragma once
#include "sound/samples.h"
#include "screen.h"
@@ -25,14 +29,17 @@
class starfire_state : public driver_device
{
public:
- starfire_state(const machine_config &mconfig, device_type type, const char *tag)
- : driver_device(mconfig, type, tag),
+ starfire_state(const machine_config &mconfig, device_type type, const char *tag) :
+ driver_device(mconfig, type, tag),
m_starfire_colorram(*this, "colorram"),
m_starfire_videoram(*this, "videoram"),
m_samples(*this, "samples"),
m_nmi(*this, "NMI"),
+ m_input_read(*this),
+ m_io2_write(*this),
m_maincpu(*this, "maincpu"),
- m_screen(*this, "screen") { }
+ m_screen(*this, "screen")
+ { }
void fireone(machine_config &config);
void starfire(machine_config &config);
@@ -59,6 +66,10 @@ private:
emu_timer* m_scanline_timer;
bitmap_rgb32 m_starfire_screen;
+
+ required_device<cpu_device> m_maincpu;
+ required_device<screen_device> m_screen;
+
DECLARE_WRITE8_MEMBER(starfire_scratch_w);
DECLARE_READ8_MEMBER(starfire_scratch_r);
DECLARE_READ8_MEMBER(starfire_input_r);
@@ -74,8 +85,8 @@ private:
TIMER_CALLBACK_MEMBER(starfire_scanline_callback);
INTERRUPT_GEN_MEMBER(vblank_int);
void get_pens(pen_t *pens);
- required_device<cpu_device> m_maincpu;
- required_device<screen_device> m_screen;
void main_map(address_map &map);
};
+
+#endif // MAME_INCLUDES_STARFIRE_H
diff --git a/src/mame/includes/zaxxon.h b/src/mame/includes/zaxxon.h
index 0754acac279..6bf9c85f9bc 100644
--- a/src/mame/includes/zaxxon.h
+++ b/src/mame/includes/zaxxon.h
@@ -124,7 +124,7 @@ private:
DECLARE_WRITE8_MEMBER(zaxxon_sound_c_w);
DECLARE_WRITE8_MEMBER(congo_sound_b_w);
DECLARE_WRITE8_MEMBER(congo_sound_c_w);
- void video_start_common(tilemap_get_info_delegate fg_tile_info);
+ void video_start_common(tilemap_get_info_delegate &&fg_tile_info);
void draw_background(bitmap_ind16 &bitmap, const rectangle &cliprect, int skew);
inline int find_minimum_y(uint8_t value, int flip);
inline int find_minimum_x(uint8_t value, int flip);
diff --git a/src/mame/machine/315-5881_crypt.cpp b/src/mame/machine/315-5881_crypt.cpp
index d536fb6c2ac..2fc2d05b471 100644
--- a/src/mame/machine/315-5881_crypt.cpp
+++ b/src/mame/machine/315-5881_crypt.cpp
@@ -45,6 +45,7 @@ void sega_315_5881_crypt_device::iomap_le(address_map &map)
sega_315_5881_crypt_device::sega_315_5881_crypt_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: device_t(mconfig, SEGA315_5881_CRYPT, tag, owner, clock)
+ , m_read(*this)
{
}
@@ -56,7 +57,7 @@ void sega_315_5881_crypt_device::device_start()
line_buffer = std::make_unique<uint8_t[]>(LINE_SIZE);
line_buffer_prev = std::make_unique<uint8_t[]>(LINE_SIZE);
- m_read.bind_relative_to(*owner());
+ m_read.resolve();
save_pointer(NAME(buffer), BUFFER_SIZE);
save_pointer(NAME(line_buffer), LINE_SIZE);
diff --git a/src/mame/machine/315-5881_crypt.h b/src/mame/machine/315-5881_crypt.h
index 0d23b6d7527..98dcd37d1b8 100644
--- a/src/mame/machine/315-5881_crypt.h
+++ b/src/mame/machine/315-5881_crypt.h
@@ -35,12 +35,7 @@ public:
sega_m2_read_delegate m_read;
- template <typename Object> void set_read_cb(Object &&readcb) { m_read = std::forward<Object>(readcb); }
- void set_read_cb(sega_m2_read_delegate callback) { m_read = callback; }
- template <class FunctionClass> void set_read_cb(uint16_t (FunctionClass::*callback)(uint32_t), const char *name)
- {
- set_read_cb(sega_m2_read_delegate(callback, name, nullptr, static_cast<FunctionClass *>(nullptr)));
- }
+ template <typename... T> void set_read_cb(T &&... args) { m_read.set(std::forward<T>(args)...); }
protected:
virtual void device_start() override;
diff --git a/src/mame/machine/315_5195.cpp b/src/mame/machine/315_5195.cpp
index 0ba261a9854..df93ab9c436 100644
--- a/src/mame/machine/315_5195.cpp
+++ b/src/mame/machine/315_5195.cpp
@@ -42,6 +42,7 @@ sega_315_5195_mapper_device::sega_315_5195_mapper_device(const machine_config &m
: device_t(mconfig, SEGA_315_5195_MEM_MAPPER, tag, owner, clock)
, m_cpu(*this, finder_base::DUMMY_TAG)
, m_cpuregion(*this, finder_base::DUMMY_TAG)
+ , m_mapper(*this)
, m_pbf_callback(*this)
, m_mcu_int_callback(*this)
, m_space(nullptr)
@@ -396,7 +397,7 @@ WRITE8_MEMBER(sega_315_5195_mapper_device::pwrite)
void sega_315_5195_mapper_device::device_start()
{
// bind our handlers
- m_mapper.bind_relative_to(*owner());
+ m_mapper.resolve();
m_pbf_callback.resolve();
m_mcu_int_callback.resolve();
@@ -482,7 +483,7 @@ void sega_315_5195_mapper_device::update_mapping()
// first reset everything back to the beginning
m_space->unmap_readwrite(0x000000, 0xffffff);
- m_space->install_readwrite_handler(0x000000, 0xffffff, read8_delegate(FUNC(sega_315_5195_mapper_device::read), this), write8_delegate(FUNC(sega_315_5195_mapper_device::write), this), 0x00ff);
+ m_space->install_readwrite_handler(0x000000, 0xffffff, read8_delegate(*this, FUNC(sega_315_5195_mapper_device::read)), write8_delegate(*this, FUNC(sega_315_5195_mapper_device::write)), 0x00ff);
// loop over the regions
for (int index = 7; index >= 0; index--)
diff --git a/src/mame/machine/315_5195.h b/src/mame/machine/315_5195.h
index 479abf824f9..0ba33c13c1c 100644
--- a/src/mame/machine/315_5195.h
+++ b/src/mame/machine/315_5195.h
@@ -40,7 +40,7 @@ public:
sega_315_5195_mapper_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
// configuration helpers
- template <typename... T> void set_mapper(T &&... args) { m_mapper = mapper_delegate(std::forward<T>(args)...); }
+ template <typename... T> void set_mapper(T &&... args) { m_mapper.set(std::forward<T>(args)...); }
auto pbf() { return m_pbf_callback.bind(); }
auto mcu_int() { return m_mcu_int_callback.bind(); }
diff --git a/src/mame/machine/3dom2.cpp b/src/mame/machine/3dom2.cpp
index fc3004c0f5e..4f838634c9d 100644
--- a/src/mame/machine/3dom2.cpp
+++ b/src/mame/machine/3dom2.cpp
@@ -469,24 +469,24 @@ void m2_bda_device::configure_ppc_address_map(address_space &space)
space.install_ram(TE_TRAM_BASE, TE_TRAM_BASE + TE_TRAM_MASK, m_te->tram_ptr());
// Install BDA sub-devices
- space.install_readwrite_handler(POWERBUS_BASE, POWERBUS_BASE + DEVICE_MASK,read32_delegate(FUNC(m2_powerbus_device::read), &(*m_powerbus)), write32_delegate(FUNC(m2_powerbus_device::write), &(*m_powerbus)), 0xffffffffffffffffULL);
- space.install_readwrite_handler(MEMCTL_BASE, MEMCTL_BASE + DEVICE_MASK, read32_delegate(FUNC(m2_memctl_device::read), &(*m_memctl)), write32_delegate(FUNC(m2_memctl_device::write), &(*m_memctl)), 0xffffffffffffffffULL);
- space.install_readwrite_handler(VDU_BASE, VDU_BASE + DEVICE_MASK, read32_delegate(FUNC(m2_vdu_device::read), &(*m_vdu)), write32_delegate(FUNC(m2_vdu_device::write), &(*m_vdu)), 0xffffffffffffffffULL);
- space.install_readwrite_handler(TE_BASE, TE_BASE + DEVICE_MASK, read32_delegate(FUNC(m2_te_device::read), &(*m_te)), write32_delegate(FUNC(m2_te_device::write), &(*m_te)), 0xffffffffffffffffULL);
- space.install_readwrite_handler(DSP_BASE, DSP_BASE + DEVICE_MASK, read32_delegate(FUNC(dspp_device::read), &(*m_dspp)), write32_delegate(FUNC(dspp_device::write), &(*m_dspp)), 0xffffffffffffffffULL);
- space.install_readwrite_handler(CTRLPORT_BASE, CTRLPORT_BASE + DEVICE_MASK,read32_delegate(FUNC(m2_ctrlport_device::read), &(*m_ctrlport)), write32_delegate(FUNC(m2_ctrlport_device::write), &(*m_ctrlport)), 0xffffffffffffffffULL);
- space.install_readwrite_handler(MPEG_BASE, MPEG_BASE + DEVICE_MASK, read32_delegate(FUNC(m2_mpeg_device::read), &(*m_mpeg)), write32_delegate(FUNC(m2_mpeg_device::write), &(*m_mpeg)), 0xffffffffffffffffULL);
+ space.install_readwrite_handler(POWERBUS_BASE, POWERBUS_BASE + DEVICE_MASK,read32_delegate(*m_powerbus, FUNC(m2_powerbus_device::read)), write32_delegate(*m_powerbus, FUNC(m2_powerbus_device::write)), 0xffffffffffffffffULL);
+ space.install_readwrite_handler(MEMCTL_BASE, MEMCTL_BASE + DEVICE_MASK, read32_delegate(*m_memctl, FUNC(m2_memctl_device::read)), write32_delegate(*m_memctl, FUNC(m2_memctl_device::write)), 0xffffffffffffffffULL);
+ space.install_readwrite_handler(VDU_BASE, VDU_BASE + DEVICE_MASK, read32_delegate(*m_vdu, FUNC(m2_vdu_device::read)), write32_delegate(*m_vdu, FUNC(m2_vdu_device::write)), 0xffffffffffffffffULL);
+ space.install_readwrite_handler(TE_BASE, TE_BASE + DEVICE_MASK, read32_delegate(*m_te, FUNC(m2_te_device::read)), write32_delegate(*m_te, FUNC(m2_te_device::write)), 0xffffffffffffffffULL);
+ space.install_readwrite_handler(DSP_BASE, DSP_BASE + DEVICE_MASK, read32_delegate(*m_dspp, FUNC(dspp_device::read)), write32_delegate(*m_dspp, FUNC(dspp_device::write)), 0xffffffffffffffffULL);
+ space.install_readwrite_handler(CTRLPORT_BASE, CTRLPORT_BASE + DEVICE_MASK,read32_delegate(*m_ctrlport, FUNC(m2_ctrlport_device::read)), write32_delegate(*m_ctrlport, FUNC(m2_ctrlport_device::write)), 0xffffffffffffffffULL);
+ space.install_readwrite_handler(MPEG_BASE, MPEG_BASE + DEVICE_MASK, read32_delegate(*m_mpeg, FUNC(m2_mpeg_device::read)), write32_delegate(*m_mpeg, FUNC(m2_mpeg_device::write)), 0xffffffffffffffffULL);
- space.install_readwrite_handler(CPUID_BASE, CPUID_BASE + DEVICE_MASK, read32_delegate(FUNC(m2_bda_device::cpu_id_r), this), write32_delegate(FUNC(m2_bda_device::cpu_id_w), this), 0xffffffffffffffffULL);
+ space.install_readwrite_handler(CPUID_BASE, CPUID_BASE + DEVICE_MASK, read32_delegate(*this, FUNC(m2_bda_device::cpu_id_r)), write32_delegate(*this, FUNC(m2_bda_device::cpu_id_w)), 0xffffffffffffffffULL);
// Find and install the CDE
m2_cde_device *cde = downcast<m2_cde_device *>(machine().device("cde"));
- if (cde == NULL)
+ if (!cde)
throw emu_fatalerror("BDA: Could not find the CDE device!");
- space.install_readwrite_handler(SLOT4_BASE, SLOT4_BASE + SLOT_MASK, read32_delegate(FUNC(m2_cde_device::read), cde), write32_delegate(FUNC(m2_cde_device::write), cde), 0xffffffffffffffffULL);
+ space.install_readwrite_handler(SLOT4_BASE, SLOT4_BASE + SLOT_MASK, read32_delegate(*cde, FUNC(m2_cde_device::read)), write32_delegate(*cde, FUNC(m2_cde_device::write)), 0xffffffffffffffffULL);
}
diff --git a/src/mame/machine/6883sam.cpp b/src/mame/machine/6883sam.cpp
index 53dc0688c32..b786d8ce85c 100644
--- a/src/mame/machine/6883sam.cpp
+++ b/src/mame/machine/6883sam.cpp
@@ -76,6 +76,7 @@ sam6883_device::sam6883_device(const machine_config &mconfig, const char *tag, d
, sam6883_friend_device_interface(mconfig, *this, 4)
, m_cpu_space(nullptr)
, m_read_res(*this)
+ , m_banks{ { *this }, { *this }, { *this }, { *this }, { *this }, { *this }, { *this }, { *this } }
, m_space_0000(*this)
, m_space_8000(*this)
, m_space_A000(*this)
@@ -110,8 +111,8 @@ void sam6883_device::device_start()
m_read_res.resolve_safe(0);
// install SAM handlers
- m_cpu_space->install_read_handler(0xFFC0, 0xFFDF, read8_delegate(FUNC(sam6883_device::read), this));
- m_cpu_space->install_write_handler(0xFFC0, 0xFFDF, write8_delegate(FUNC(sam6883_device::write), this));
+ m_cpu_space->install_read_handler(0xFFC0, 0xFFDF, read8_delegate(*this, FUNC(sam6883_device::read)));
+ m_cpu_space->install_write_handler(0xFFC0, 0xFFDF, write8_delegate(*this, FUNC(sam6883_device::write)));
// save state support
save_item(NAME(m_sam_state));
@@ -127,7 +128,7 @@ void sam6883_device::device_start()
void sam6883_device::configure_bank(int bank, uint8_t *memory, uint32_t memory_size, bool is_read_only)
{
- configure_bank(bank, memory, memory_size, is_read_only, read8_delegate(), write8_delegate());
+ configure_bank(bank, memory, memory_size, is_read_only, read8_delegate(*this), write8_delegate(*this));
}
@@ -212,7 +213,7 @@ void sam6883_device::device_post_load()
// update_state
//-------------------------------------------------
-void sam6883_device::update_state(void)
+void sam6883_device::update_state()
{
update_memory();
update_cpu_clock();
@@ -224,7 +225,7 @@ void sam6883_device::update_state(void)
// update_memory
//-------------------------------------------------
-void sam6883_device::update_memory(void)
+void sam6883_device::update_memory()
{
// Memory size - allowed restricting memory accesses to something less than
// 32k
@@ -307,7 +308,7 @@ void sam6883_device::update_memory(void)
// clock
//-------------------------------------------------
-void sam6883_friend_device_interface::update_cpu_clock(void)
+void sam6883_friend_device_interface::update_cpu_clock()
{
// The infamous speed up poke.
//
@@ -385,7 +386,7 @@ WRITE8_MEMBER( sam6883_device::write )
// horizontal_sync
//-------------------------------------------------
-void sam6883_device::horizontal_sync(void)
+void sam6883_device::horizontal_sync()
{
bool carry;
diff --git a/src/mame/machine/6883sam.h b/src/mame/machine/6883sam.h
index c973bb22f65..d1c48e5af12 100644
--- a/src/mame/machine/6883sam.h
+++ b/src/mame/machine/6883sam.h
@@ -52,7 +52,7 @@ protected:
// base clock divider (/4 for MC6883, /8 for GIME)
int m_divider;
- ATTR_FORCE_INLINE uint16_t display_offset(void)
+ ATTR_FORCE_INLINE uint16_t display_offset()
{
return ((m_sam_state & (SAM_STATE_F0|SAM_STATE_F1|SAM_STATE_F2|SAM_STATE_F3|SAM_STATE_F4|SAM_STATE_F5|SAM_STATE_F6)) / SAM_STATE_F0) << 9;
}
@@ -75,7 +75,7 @@ protected:
return xorval;
}
- void update_cpu_clock(void);
+ void update_cpu_clock();
};
class sam6883_device : public device_t, public sam6883_friend_device_interface
@@ -122,7 +122,7 @@ public:
DECLARE_WRITE_LINE_MEMBER( hs_w );
// typically called by machine
- address_space *mpu_address_space(void) const { return m_cpu_space; }
+ address_space *mpu_address_space() const { return m_cpu_space; }
void set_bank_offset(int bank, offs_t offset);
protected:
@@ -136,6 +136,8 @@ private:
// points to with the S2/S1/S0 output
struct sam_bank
{
+ sam_bank(device_t &owner) : m_rhandler(owner), m_whandler(owner) { }
+
uint8_t * m_memory;
uint32_t m_memory_size;
offs_t m_memory_offset;
@@ -192,7 +194,7 @@ private:
DECLARE_WRITE8_MEMBER( write );
// called when there is a carry out of bit 3 on the counter
- ATTR_FORCE_INLINE void counter_carry_bit3(void)
+ ATTR_FORCE_INLINE void counter_carry_bit3()
{
uint8_t x_division;
switch((m_sam_state & (SAM_STATE_V2|SAM_STATE_V1|SAM_STATE_V0)) / SAM_STATE_V0)
@@ -220,7 +222,7 @@ private:
}
// called when there is a carry out of bit 4 on the counter
- ATTR_FORCE_INLINE void counter_carry_bit4(void)
+ ATTR_FORCE_INLINE void counter_carry_bit4()
{
uint8_t y_division;
switch((m_sam_state & (SAM_STATE_V2|SAM_STATE_V1|SAM_STATE_V0)) / SAM_STATE_V0)
@@ -247,9 +249,9 @@ private:
// other members
void configure_bank(int bank, uint8_t *memory, uint32_t memory_size, bool is_read_only, read8_delegate rhandler, write8_delegate whandler);
- void horizontal_sync(void);
- void update_state(void);
- void update_memory(void);
+ void horizontal_sync();
+ void update_state();
+ void update_memory();
};
DECLARE_DEVICE_TYPE(SAM6883, sam6883_device)
diff --git a/src/mame/machine/aim65.cpp b/src/mame/machine/aim65.cpp
index e39e192d682..8707cf9a2a1 100644
--- a/src/mame/machine/aim65.cpp
+++ b/src/mame/machine/aim65.cpp
@@ -113,21 +113,21 @@ void aim65_state::machine_start()
// Init ROM sockets
if (m_z24->exists())
- space.install_read_handler(0xd000, 0xdfff, read8sm_delegate(FUNC(generic_slot_device::read_rom),(generic_slot_device*)m_z24));
+ space.install_read_handler(0xd000, 0xdfff, read8sm_delegate(*m_z24, FUNC(generic_slot_device::read_rom)));
if (m_z25->exists())
- space.install_read_handler(0xc000, 0xcfff, read8sm_delegate(FUNC(generic_slot_device::read_rom),(generic_slot_device*)m_z25));
+ space.install_read_handler(0xc000, 0xcfff, read8sm_delegate(*m_z25, FUNC(generic_slot_device::read_rom)));
if (m_z26->exists())
- space.install_read_handler(0xb000, 0xbfff, read8sm_delegate(FUNC(generic_slot_device::read_rom),(generic_slot_device*)m_z26));
+ space.install_read_handler(0xb000, 0xbfff, read8sm_delegate(*m_z26, FUNC(generic_slot_device::read_rom)));
// Init PROM/ROM module sockets
if (m_z12->exists())
- space.install_read_handler(0x4000, 0x4fff, read8sm_delegate(FUNC(generic_slot_device::read_rom),(generic_slot_device*)m_z12));
+ space.install_read_handler(0x4000, 0x4fff, read8sm_delegate(*m_z12, FUNC(generic_slot_device::read_rom)));
if (m_z13->exists())
- space.install_read_handler(0x5000, 0x5fff, read8sm_delegate(FUNC(generic_slot_device::read_rom),(generic_slot_device*)m_z13));
+ space.install_read_handler(0x5000, 0x5fff, read8sm_delegate(*m_z13, FUNC(generic_slot_device::read_rom)));
if (m_z14->exists())
- space.install_read_handler(0x6000, 0x6fff, read8sm_delegate(FUNC(generic_slot_device::read_rom),(generic_slot_device*)m_z14));
+ space.install_read_handler(0x6000, 0x6fff, read8sm_delegate(*m_z14, FUNC(generic_slot_device::read_rom)));
if (m_z15->exists())
- space.install_read_handler(0x7000, 0x7fff, read8sm_delegate(FUNC(generic_slot_device::read_rom),(generic_slot_device*)m_z15));
+ space.install_read_handler(0x7000, 0x7fff, read8sm_delegate(*m_z15, FUNC(generic_slot_device::read_rom)));
// Init RAM
space.install_ram(0x0000, m_ram->size() - 1, m_ram->pointer());
diff --git a/src/mame/machine/amiga.cpp b/src/mame/machine/amiga.cpp
index 74e26418e78..ddec93c8012 100644
--- a/src/mame/machine/amiga.cpp
+++ b/src/mame/machine/amiga.cpp
@@ -154,7 +154,7 @@ void amiga_state::machine_start()
m_power_led.resolve();
// add callback for RESET instruction
- m_maincpu->set_reset_callback(write_line_delegate(FUNC(amiga_state::m68k_reset), this));
+ m_maincpu->set_reset_callback(*this, FUNC(amiga_state::m68k_reset));
// set up chip RAM access
memory_share *share = memshare("chip_ram");
diff --git a/src/mame/machine/amstrad.cpp b/src/mame/machine/amstrad.cpp
index 80cf8846b9d..ef35bac847b 100644
--- a/src/mame/machine/amstrad.cpp
+++ b/src/mame/machine/amstrad.cpp
@@ -1160,10 +1160,10 @@ void amstrad_state::amstrad_setLowerRom()
/* if ( m_asic.enabled && ( m_asic.rmr2 & 0x18 ) == 0x18 )
{
- space.install_read_handler(0x4000, 0x5fff, read8_delegate(FUNC(amstrad_state::amstrad_plus_asic_4000_r),this));
- space.install_read_handler(0x6000, 0x7fff, read8_delegate(FUNC(amstrad_state::amstrad_plus_asic_6000_r),this));
- space.install_write_handler(0x4000, 0x5fff, write8_delegate(FUNC(amstrad_state::amstrad_plus_asic_4000_w),this));
- space.install_write_handler(0x6000, 0x7fff, write8_delegate(FUNC(amstrad_state::amstrad_plus_asic_6000_w),this));
+ space.install_read_handler(0x4000, 0x5fff, read8_delegate(*this, FUNC(amstrad_state::amstrad_plus_asic_4000_r)));
+ space.install_read_handler(0x6000, 0x7fff, read8_delegate(*this, FUNC(amstrad_state::amstrad_plus_asic_6000_r)));
+ space.install_write_handler(0x4000, 0x5fff, write8_delegate(*this, FUNC(amstrad_state::amstrad_plus_asic_4000_w)));
+ space.install_write_handler(0x6000, 0x7fff, write8_delegate(*this, FUNC(amstrad_state::amstrad_plus_asic_6000_w)));
}
else
{
@@ -3144,10 +3144,10 @@ MACHINE_RESET_MEMBER(amstrad_state,plus)
AmstradCPC_GA_SetRamConfiguration();
amstrad_GateArray_write(0x081); // Epyx World of Sports requires upper ROM to be enabled by default
- space.install_read_handler(0x4000, 0x5fff, read8_delegate(FUNC(amstrad_state::amstrad_plus_asic_4000_r),this));
- space.install_read_handler(0x6000, 0x7fff, read8_delegate(FUNC(amstrad_state::amstrad_plus_asic_6000_r),this));
- space.install_write_handler(0x4000, 0x5fff, write8_delegate(FUNC(amstrad_state::amstrad_plus_asic_4000_w),this));
- space.install_write_handler(0x6000, 0x7fff, write8_delegate(FUNC(amstrad_state::amstrad_plus_asic_6000_w),this));
+ space.install_read_handler(0x4000, 0x5fff, read8_delegate(*this, FUNC(amstrad_state::amstrad_plus_asic_4000_r)));
+ space.install_read_handler(0x6000, 0x7fff, read8_delegate(*this, FUNC(amstrad_state::amstrad_plus_asic_6000_r)));
+ space.install_write_handler(0x4000, 0x5fff, write8_delegate(*this, FUNC(amstrad_state::amstrad_plus_asic_4000_w)));
+ space.install_write_handler(0x6000, 0x7fff, write8_delegate(*this, FUNC(amstrad_state::amstrad_plus_asic_6000_w)));
// multiface_init();
timer_set(attotime::zero, TIMER_SET_RESOLUTION);
@@ -3187,10 +3187,10 @@ MACHINE_RESET_MEMBER(amstrad_state,gx4000)
AmstradCPC_GA_SetRamConfiguration();
amstrad_GateArray_write(0x081); // Epyx World of Sports requires upper ROM to be enabled by default
// multiface_init();
- space.install_read_handler(0x4000, 0x5fff, read8_delegate(FUNC(amstrad_state::amstrad_plus_asic_4000_r),this));
- space.install_read_handler(0x6000, 0x7fff, read8_delegate(FUNC(amstrad_state::amstrad_plus_asic_6000_r),this));
- space.install_write_handler(0x4000, 0x5fff, write8_delegate(FUNC(amstrad_state::amstrad_plus_asic_4000_w),this));
- space.install_write_handler(0x6000, 0x7fff, write8_delegate(FUNC(amstrad_state::amstrad_plus_asic_6000_w),this));
+ space.install_read_handler(0x4000, 0x5fff, read8_delegate(*this, FUNC(amstrad_state::amstrad_plus_asic_4000_r)));
+ space.install_read_handler(0x6000, 0x7fff, read8_delegate(*this, FUNC(amstrad_state::amstrad_plus_asic_6000_r)));
+ space.install_write_handler(0x4000, 0x5fff, write8_delegate(*this, FUNC(amstrad_state::amstrad_plus_asic_4000_w)));
+ space.install_write_handler(0x6000, 0x7fff, write8_delegate(*this, FUNC(amstrad_state::amstrad_plus_asic_6000_w)));
timer_set(attotime::zero, TIMER_SET_RESOLUTION);
}
diff --git a/src/mame/machine/atarigen.cpp b/src/mame/machine/atarigen.cpp
index dd1f5329d87..c13e9e6c43d 100644
--- a/src/mame/machine/atarigen.cpp
+++ b/src/mame/machine/atarigen.cpp
@@ -542,7 +542,7 @@ void atarigen_state::slapstic_configure(cpu_device &device, offs_t base, offs_t
// install the memory handlers
address_space &program = device.space(AS_PROGRAM);
- program.install_readwrite_handler(base, base + 0x7fff, 0, mirror, 0, read16_delegate(FUNC(atarigen_state::slapstic_r), this), write16_delegate(FUNC(atarigen_state::slapstic_w), this));
+ program.install_readwrite_handler(base, base + 0x7fff, 0, mirror, 0, read16_delegate(*this, FUNC(atarigen_state::slapstic_r)), write16_delegate(*this, FUNC(atarigen_state::slapstic_w)));
m_slapstic = (u16 *)mem;
// allocate memory for a copy of bank 0
diff --git a/src/mame/machine/b2m.cpp b/src/mame/machine/b2m.cpp
index ba39ecc3f06..be10c86bf73 100644
--- a/src/mame/machine/b2m.cpp
+++ b/src/mame/machine/b2m.cpp
@@ -80,7 +80,7 @@ void b2m_state::b2m_set_bank(int bank)
space.unmap_write(0xe000, 0xffff);
membank("bank1")->set_base(ram);
- space.install_read_handler(0x2800, 0x2fff, read8_delegate(FUNC(b2m_state::b2m_keyboard_r),this));
+ space.install_read_handler(0x2800, 0x2fff, read8_delegate(*this, FUNC(b2m_state::b2m_keyboard_r)));
membank("bank3")->set_base(ram + 0x10000);
membank("bank4")->set_base(ram + 0x7000);
membank("bank5")->set_base(rom + 0x10000);
@@ -90,7 +90,7 @@ void b2m_state::b2m_set_bank(int bank)
space.unmap_write(0xe000, 0xffff);
membank("bank1")->set_base(ram);
- space.install_read_handler(0x2800, 0x2fff, read8_delegate(FUNC(b2m_state::b2m_keyboard_r),this));
+ space.install_read_handler(0x2800, 0x2fff, read8_delegate(*this, FUNC(b2m_state::b2m_keyboard_r)));
membank("bank3")->set_base(ram + 0x14000);
membank("bank4")->set_base(ram + 0x7000);
membank("bank5")->set_base(rom + 0x10000);
@@ -100,7 +100,7 @@ void b2m_state::b2m_set_bank(int bank)
space.unmap_write(0xe000, 0xffff);
membank("bank1")->set_base(ram);
- space.install_read_handler(0x2800, 0x2fff, read8_delegate(FUNC(b2m_state::b2m_keyboard_r),this));
+ space.install_read_handler(0x2800, 0x2fff, read8_delegate(*this, FUNC(b2m_state::b2m_keyboard_r)));
membank("bank3")->set_base(ram + 0x18000);
membank("bank4")->set_base(ram + 0x7000);
membank("bank5")->set_base(rom + 0x10000);
@@ -111,7 +111,7 @@ void b2m_state::b2m_set_bank(int bank)
space.unmap_write(0xe000, 0xffff);
membank("bank1")->set_base(ram);
- space.install_read_handler(0x2800, 0x2fff, read8_delegate(FUNC(b2m_state::b2m_keyboard_r),this));
+ space.install_read_handler(0x2800, 0x2fff, read8_delegate(*this, FUNC(b2m_state::b2m_keyboard_r)));
membank("bank3")->set_base(ram + 0x1c000);
membank("bank4")->set_base(ram + 0x7000);
membank("bank5")->set_base(rom + 0x10000);
diff --git a/src/mame/machine/bbc.cpp b/src/mame/machine/bbc.cpp
index 4f100db598b..c15e57f60b0 100644
--- a/src/mame/machine/bbc.cpp
+++ b/src/mame/machine/bbc.cpp
@@ -1511,9 +1511,9 @@ void bbc_state::machine_reset()
/* install econet hardware */
if (m_bbcconfig.read_safe(0) & 0x04)
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xfea0, 0xfebf, read8sm_delegate(FUNC(mc6854_device::read), m_adlc.target()), write8sm_delegate(FUNC(mc6854_device::write), m_adlc.target()));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xfea0, 0xfebf, read8sm_delegate(*m_adlc, FUNC(mc6854_device::read)), write8sm_delegate(*m_adlc, FUNC(mc6854_device::write)));
else
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xfea0, 0xfebf, read8_delegate(FUNC(bbc_state::bbc_fe_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xfea0, 0xfebf, read8_delegate(*this, FUNC(bbc_state::bbc_fe_r)));
/* power-on reset timer, should produce "boo...beep" startup sound before sn76496 is initialised */
//m_maincpu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
diff --git a/src/mame/machine/coco12.cpp b/src/mame/machine/coco12.cpp
index 1096a5d8ee6..b843b311a13 100644
--- a/src/mame/machine/coco12.cpp
+++ b/src/mame/machine/coco12.cpp
@@ -36,19 +36,19 @@ void coco12_state::configure_sam()
m_sam->configure_bank(2, &rom[0x2000], 0x2000, true); // $A000-$BFFF
// $C000-$FEFF
- m_sam->configure_bank(3, read8_delegate(FUNC(cococart_slot_device::cts_read), m_cococart.target()), write8_delegate(FUNC(cococart_slot_device::cts_write), m_cococart.target()));
+ m_sam->configure_bank(3, read8_delegate(*m_cococart, FUNC(cococart_slot_device::cts_read)), write8_delegate(*m_cococart, FUNC(cococart_slot_device::cts_write)));
// $FF00-$FF1F
- m_sam->configure_bank(4, read8_delegate(FUNC(coco12_state::ff00_read), this), write8_delegate(FUNC(coco12_state::ff00_write), this));
+ m_sam->configure_bank(4, read8_delegate(*this, FUNC(coco12_state::ff00_read)), write8_delegate(*this, FUNC(coco12_state::ff00_write)));
// $FF20-$FF3F
- m_sam->configure_bank(5, read8_delegate(FUNC(coco12_state::ff20_read), this), write8_delegate(FUNC(coco12_state::ff20_write), this));
+ m_sam->configure_bank(5, read8_delegate(*this, FUNC(coco12_state::ff20_read)), write8_delegate(*this, FUNC(coco12_state::ff20_write)));
// $FF40-$FF5F
- m_sam->configure_bank(6, read8_delegate(FUNC(coco12_state::ff40_read), this), write8_delegate(FUNC(coco12_state::ff40_write), this));
+ m_sam->configure_bank(6, read8_delegate(*this, FUNC(coco12_state::ff40_read)), write8_delegate(*this, FUNC(coco12_state::ff40_write)));
// $FF60-$FFBF
- m_sam->configure_bank(7, read8_delegate(FUNC(coco12_state::ff60_read), this), write8_delegate(FUNC(coco12_state::ff60_write), this));
+ m_sam->configure_bank(7, read8_delegate(*this, FUNC(coco12_state::ff60_read)), write8_delegate(*this, FUNC(coco12_state::ff60_write)));
}
diff --git a/src/mame/machine/decocass.cpp b/src/mame/machine/decocass.cpp
index 53c42a8559c..fbda017d473 100644
--- a/src/mame/machine/decocass.cpp
+++ b/src/mame/machine/decocass.cpp
@@ -1152,7 +1152,7 @@ READ8_MEMBER(decocass_state::decocass_e5xx_r)
else
{
if (!m_dongle_r.isnull())
- data = (m_dongle_r)(space, offset, mem_mask);
+ data = m_dongle_r(space, offset, mem_mask);
else
data = 0xff;
}
@@ -1163,7 +1163,7 @@ WRITE8_MEMBER(decocass_state::decocass_e5xx_w)
{
if (!m_dongle_w.isnull())
{
- (m_dongle_w)(space, offset, data, mem_mask);
+ m_dongle_w(space, offset, data, mem_mask);
return;
}
@@ -1251,8 +1251,8 @@ void decocass_state::machine_reset()
m_firsttime = 1;
m_latch1 = 0;
- m_dongle_r = read8_delegate();
- m_dongle_w = write8_delegate();
+ m_dongle_r = read8_delegate(*this);
+ m_dongle_w = write8_delegate(*this);
m_decocass_reset = 0;
m_i8041_p1 = 0xff;
@@ -1292,7 +1292,7 @@ void decocass_type1_state::machine_reset()
{
decocass_state::machine_reset();
- m_dongle_r = read8_delegate(FUNC(decocass_type1_state::decocass_type1_r),this);
+ m_dongle_r = read8_delegate(*this, FUNC(decocass_type1_state::decocass_type1_r));
m_type1_inmap = MAKE_MAP(0,1,2,3,4,5,6,7);
m_type1_outmap = MAKE_MAP(0,1,2,3,4,5,6,7);
}
@@ -1309,8 +1309,8 @@ void decocass_type2_state::machine_reset()
decocass_state::machine_reset();
LOG(0,("dongle type #2 (CS82-007)\n"));
- m_dongle_r = read8_delegate(FUNC(decocass_type2_state::decocass_type2_r),this);
- m_dongle_w = write8_delegate(FUNC(decocass_type2_state::decocass_type2_w),this);
+ m_dongle_r = read8_delegate(*this, FUNC(decocass_type2_state::decocass_type2_r));
+ m_dongle_w = write8_delegate(*this, FUNC(decocass_type2_state::decocass_type2_w));
m_type2_d2_latch = 0;
m_type2_xx_latch = 0;
@@ -1329,8 +1329,8 @@ void decocass_type3_state::machine_reset()
{
decocass_state::machine_reset();
- m_dongle_r = read8_delegate(FUNC(decocass_type3_state::decocass_type3_r),this);
- m_dongle_w = write8_delegate(FUNC(decocass_type3_state::decocass_type3_w),this);
+ m_dongle_r = read8_delegate(*this, FUNC(decocass_type3_state::decocass_type3_r));
+ m_dongle_w = write8_delegate(*this, FUNC(decocass_type3_state::decocass_type3_w));
m_type3_ctrs = 0;
m_type3_d0_latch = 0;
@@ -1349,8 +1349,8 @@ void decocass_type4_state::machine_reset()
decocass_state::machine_reset();
LOG(0,("dongle type #4 (32K ROM)\n"));
- m_dongle_r = read8_delegate(FUNC(decocass_type4_state::decocass_type4_r),this);
- m_dongle_w = write8_delegate(FUNC(decocass_type4_state::decocass_type4_w),this);
+ m_dongle_r = read8_delegate(*this, FUNC(decocass_type4_state::decocass_type4_r));
+ m_dongle_w = write8_delegate(*this, FUNC(decocass_type4_state::decocass_type4_w));
m_type4_ctrs = 0;
m_type4_latch = 0;
@@ -1366,8 +1366,8 @@ void decocass_type5_state::machine_reset()
decocass_state::machine_reset();
LOG(0,("dongle type #5 (NOP)\n"));
- m_dongle_r = read8_delegate(FUNC(decocass_type5_state::decocass_type5_r),this);
- m_dongle_w = write8_delegate(FUNC(decocass_type5_state::decocass_type5_w),this);
+ m_dongle_r = read8_delegate(*this, FUNC(decocass_type5_state::decocass_type5_r));
+ m_dongle_w = write8_delegate(*this, FUNC(decocass_type5_state::decocass_type5_w));
m_type5_latch = 0;
}
@@ -1376,7 +1376,7 @@ void decocass_nodong_state::machine_reset()
{
decocass_state::machine_reset();
LOG(0, ("no dongle\n"));
- m_dongle_r = read8_delegate(FUNC(decocass_nodong_state::decocass_nodong_r), this);
+ m_dongle_r = read8_delegate(*this, FUNC(decocass_nodong_state::decocass_nodong_r));
}
MACHINE_RESET_MEMBER(decocass_type1_state,ctsttape)
@@ -1622,8 +1622,8 @@ void decocass_widel_state::machine_reset()
{
decocass_state::machine_reset();
LOG(0,("Deco Multigame Dongle\n"));
- m_dongle_r = read8_delegate(FUNC(decocass_widel_state::decocass_widel_r),this);
- m_dongle_w = write8_delegate(FUNC(decocass_widel_state::decocass_widel_w),this);
+ m_dongle_r = read8_delegate(*this, FUNC(decocass_widel_state::decocass_widel_r));
+ m_dongle_w = write8_delegate(*this, FUNC(decocass_widel_state::decocass_widel_w));
m_widel_ctrs = 0;
m_widel_latch = 0;
@@ -1641,17 +1641,17 @@ WRITE8_MEMBER(decocass_state::i8041_p1_w)
if (data != m_i8041_p1_write_latch)
{
LOG(4,("%10s 8041-PC: %03x i8041_p1_w: $%02x (%s%s%s%s%s%s%s%s)\n",
- machine().time().as_string(6),
- m_maincpu->pcbase(),
- data,
- data & 0x01 ? "" : "DATA-WRT",
- data & 0x02 ? "" : " DATA-CLK",
- data & 0x04 ? "" : " FAST",
- data & 0x08 ? "" : " BIT3",
- data & 0x10 ? "" : " REW",
- data & 0x20 ? "" : " FWD",
- data & 0x40 ? "" : " WREN",
- data & 0x80 ? "" : " REQ"));
+ machine().time().as_string(6),
+ m_maincpu->pcbase(),
+ data,
+ data & 0x01 ? "" : "DATA-WRT",
+ data & 0x02 ? "" : " DATA-CLK",
+ data & 0x04 ? "" : " FAST",
+ data & 0x08 ? "" : " BIT3",
+ data & 0x10 ? "" : " REW",
+ data & 0x20 ? "" : " FWD",
+ data & 0x40 ? "" : " WREN",
+ data & 0x80 ? "" : " REQ"));
m_i8041_p1_write_latch = data;
}
diff --git a/src/mame/machine/dgn_beta.cpp b/src/mame/machine/dgn_beta.cpp
index adaa9da972d..b3179af551d 100644
--- a/src/mame/machine/dgn_beta.cpp
+++ b/src/mame/machine/dgn_beta.cpp
@@ -95,30 +95,31 @@
// Info for bank switcher
struct bank_info_entry
{
- write8_delegate func; // Pointer to write handler
- offs_t start; // Offset of start of block
- offs_t end; // offset of end of block
+ void (dgn_beta_state::*func)(address_space &, offs_t, u8, u8); // pointer to write handler
+ char const *name; // write handler name
+ offs_t start; // offset of start of block
+ offs_t end; // offset of end of block
};
static const struct bank_info_entry bank_info[] =
{
- { write8_delegate(FUNC(dgn_beta_state::dgnbeta_ram_b0_w),(dgn_beta_state*)nullptr), 0x0000, 0x0fff },
- { write8_delegate(FUNC(dgn_beta_state::dgnbeta_ram_b1_w),(dgn_beta_state*)nullptr), 0x1000, 0x1fff },
- { write8_delegate(FUNC(dgn_beta_state::dgnbeta_ram_b2_w),(dgn_beta_state*)nullptr), 0x2000, 0x2fff },
- { write8_delegate(FUNC(dgn_beta_state::dgnbeta_ram_b3_w),(dgn_beta_state*)nullptr), 0x3000, 0x3fff },
- { write8_delegate(FUNC(dgn_beta_state::dgnbeta_ram_b4_w),(dgn_beta_state*)nullptr), 0x4000, 0x4fff },
- { write8_delegate(FUNC(dgn_beta_state::dgnbeta_ram_b5_w),(dgn_beta_state*)nullptr), 0x5000, 0x5fff },
- { write8_delegate(FUNC(dgn_beta_state::dgnbeta_ram_b6_w),(dgn_beta_state*)nullptr), 0x6000, 0x6fff },
- { write8_delegate(FUNC(dgn_beta_state::dgnbeta_ram_b7_w),(dgn_beta_state*)nullptr), 0x7000, 0x7fff },
- { write8_delegate(FUNC(dgn_beta_state::dgnbeta_ram_b8_w),(dgn_beta_state*)nullptr), 0x8000, 0x8fff },
- { write8_delegate(FUNC(dgn_beta_state::dgnbeta_ram_b9_w),(dgn_beta_state*)nullptr), 0x9000, 0x9fff },
- { write8_delegate(FUNC(dgn_beta_state::dgnbeta_ram_bA_w),(dgn_beta_state*)nullptr), 0xA000, 0xAfff },
- { write8_delegate(FUNC(dgn_beta_state::dgnbeta_ram_bB_w),(dgn_beta_state*)nullptr), 0xB000, 0xBfff },
- { write8_delegate(FUNC(dgn_beta_state::dgnbeta_ram_bC_w),(dgn_beta_state*)nullptr), 0xC000, 0xCfff },
- { write8_delegate(FUNC(dgn_beta_state::dgnbeta_ram_bD_w),(dgn_beta_state*)nullptr), 0xD000, 0xDfff },
- { write8_delegate(FUNC(dgn_beta_state::dgnbeta_ram_bE_w),(dgn_beta_state*)nullptr), 0xE000, 0xEfff },
- { write8_delegate(FUNC(dgn_beta_state::dgnbeta_ram_bF_w),(dgn_beta_state*)nullptr), 0xF000, 0xFBff },
- { write8_delegate(FUNC(dgn_beta_state::dgnbeta_ram_bG_w),(dgn_beta_state*)nullptr), 0xFF00, 0xFfff }
+ { FUNC(dgn_beta_state::dgnbeta_ram_b0_w), 0x0000, 0x0fff },
+ { FUNC(dgn_beta_state::dgnbeta_ram_b1_w), 0x1000, 0x1fff },
+ { FUNC(dgn_beta_state::dgnbeta_ram_b2_w), 0x2000, 0x2fff },
+ { FUNC(dgn_beta_state::dgnbeta_ram_b3_w), 0x3000, 0x3fff },
+ { FUNC(dgn_beta_state::dgnbeta_ram_b4_w), 0x4000, 0x4fff },
+ { FUNC(dgn_beta_state::dgnbeta_ram_b5_w), 0x5000, 0x5fff },
+ { FUNC(dgn_beta_state::dgnbeta_ram_b6_w), 0x6000, 0x6fff },
+ { FUNC(dgn_beta_state::dgnbeta_ram_b7_w), 0x7000, 0x7fff },
+ { FUNC(dgn_beta_state::dgnbeta_ram_b8_w), 0x8000, 0x8fff },
+ { FUNC(dgn_beta_state::dgnbeta_ram_b9_w), 0x9000, 0x9fff },
+ { FUNC(dgn_beta_state::dgnbeta_ram_bA_w), 0xA000, 0xAfff },
+ { FUNC(dgn_beta_state::dgnbeta_ram_bB_w), 0xB000, 0xBfff },
+ { FUNC(dgn_beta_state::dgnbeta_ram_bC_w), 0xC000, 0xCfff },
+ { FUNC(dgn_beta_state::dgnbeta_ram_bD_w), 0xD000, 0xDfff },
+ { FUNC(dgn_beta_state::dgnbeta_ram_bE_w), 0xE000, 0xEfff },
+ { FUNC(dgn_beta_state::dgnbeta_ram_bF_w), 0xF000, 0xFBff },
+ { FUNC(dgn_beta_state::dgnbeta_ram_bG_w), 0xFF00, 0xFfff }
};
#define is_last_page(page) (((page==LastPage) || (page==LastPage+1)) ? 1 : 0)
@@ -179,8 +180,7 @@ void dgn_beta_state::UpdateBanks(int first, int last)
readbank = &m_ram->pointer()[(MapPage*RamPageSize)-256];
logerror("Error RAM in Last page !\n");
}
- write8_delegate func = bank_info[Page].func;
- if (!func.isnull()) func.late_bind(*this);
+ write8_delegate func(*this, bank_info[Page].func, bank_info[Page].name);
space_0.install_write_handler(bank_start, bank_end, func);
space_1.install_write_handler(bank_start, bank_end, func);
}
diff --git a/src/mame/machine/dragon.cpp b/src/mame/machine/dragon.cpp
index ce4d6dd1be3..d5c217b9130 100644
--- a/src/mame/machine/dragon.cpp
+++ b/src/mame/machine/dragon.cpp
@@ -236,9 +236,9 @@ void d64plus_state::device_start()
dragon_state::device_start();
address_space &space = m_maincpu->space(AS_PROGRAM);
- space.install_readwrite_handler(0xffe0, 0xffe0, read8smo_delegate(FUNC(mc6845_device::status_r), &*m_crtc), write8smo_delegate(FUNC(mc6845_device::address_w), &*m_crtc));
- space.install_readwrite_handler(0xffe1, 0xffe1, read8smo_delegate(FUNC(mc6845_device::register_r), &*m_crtc), write8smo_delegate(FUNC(mc6845_device::register_w), &*m_crtc));
- space.install_readwrite_handler(0xffe2, 0xffe2, READ8_DELEGATE(d64plus_state, d64plus_6845_disp_r), WRITE8_DELEGATE(d64plus_state, d64plus_bank_w));
+ space.install_readwrite_handler(0xffe0, 0xffe0, read8smo_delegate(*m_crtc, FUNC(mc6845_device::status_r)), write8smo_delegate(*m_crtc, FUNC(mc6845_device::address_w)));
+ space.install_readwrite_handler(0xffe1, 0xffe1, read8smo_delegate(*m_crtc, FUNC(mc6845_device::register_r)), write8smo_delegate(*m_crtc, FUNC(mc6845_device::register_w)));
+ space.install_readwrite_handler(0xffe2, 0xffe2, read8_delegate(*this, FUNC(d64plus_state::d64plus_6845_disp_r)), write8_delegate(*this, FUNC(d64plus_state::d64plus_bank_w)));
// allocate memory
m_plus_ram.allocate(0x10000);
diff --git a/src/mame/machine/fd1094.cpp b/src/mame/machine/fd1094.cpp
index 1692c2f969c..18d8085652c 100644
--- a/src/mame/machine/fd1094.cpp
+++ b/src/mame/machine/fd1094.cpp
@@ -653,9 +653,9 @@ void fd1094_device::device_start()
m68000_device::device_start();
// register for the state changing callbacks we need in the m68000
- set_cmpild_callback(write32_delegate(FUNC(fd1094_device::cmp_callback),this));
- set_rte_callback(write_line_delegate(FUNC(fd1094_device::rte_callback),this));
- set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(fd1094_device::irq_callback), this));
+ set_cmpild_callback(*this, FUNC(fd1094_device::cmp_callback));
+ set_rte_callback(*this, FUNC(fd1094_device::rte_callback));
+ set_irq_acknowledge_callback(*this, FUNC(fd1094_device::irq_callback));
// save state
save_item(NAME(m_state));
diff --git a/src/mame/machine/gamepock.cpp b/src/mame/machine/gamepock.cpp
index dd690f1b0ce..af9967db0b2 100644
--- a/src/mame/machine/gamepock.cpp
+++ b/src/mame/machine/gamepock.cpp
@@ -140,20 +140,19 @@ void gamepock_state::machine_reset()
hd44102ch_init( 2 );
if (m_cart->exists())
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x4000,0xbfff, read8sm_delegate(FUNC(generic_slot_device::read_rom),(generic_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x4000,0xbfff, read8sm_delegate(*m_cart, FUNC(generic_slot_device::read_rom)));
}
uint32_t gamepock_state::screen_update_gamepock(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
uint8_t ad;
- int i,j;
/* Handle HD44102CH #0 */
ad = m_hd44102ch[0].start_page;
- for ( i = 0; i < 4; i++ )
+ for ( int i = 0; i < 4; i++ )
{
- for ( j = 0; j < 50; j++ )
+ for ( int j = 0; j < 50; j++ )
{
bitmap.pix16(i * 8 + 0, 49 - j ) = ( m_hd44102ch[0].ram[ad+j] & 0x01 ) ? 0 : 1;
bitmap.pix16(i * 8 + 1, 49 - j ) = ( m_hd44102ch[0].ram[ad+j] & 0x02 ) ? 0 : 1;
@@ -169,9 +168,9 @@ uint32_t gamepock_state::screen_update_gamepock(screen_device &screen, bitmap_in
/* Handle HD44102CH #1 */
ad = m_hd44102ch[1].start_page;
- for ( i = 4; i < 8; i++ )
+ for ( int i = 4; i < 8; i++ )
{
- for ( j = 0; j < 50; j++ )
+ for ( int j = 0; j < 50; j++ )
{
bitmap.pix16(i * 8 + 0, j ) = ( m_hd44102ch[1].ram[ad+j] & 0x01 ) ? 0 : 1;
bitmap.pix16(i * 8 + 1, j ) = ( m_hd44102ch[1].ram[ad+j] & 0x02 ) ? 0 : 1;
@@ -187,9 +186,9 @@ uint32_t gamepock_state::screen_update_gamepock(screen_device &screen, bitmap_in
/* Handle HD44102CH #2 */
ad = m_hd44102ch[2].start_page;
- for ( i = 0; i < 4; i++ )
+ for ( int i = 0; i < 4; i++ )
{
- for ( j = 0; j < 25; j++ )
+ for ( int j = 0; j < 25; j++ )
{
bitmap.pix16(i * 8 + 0, 50 + j ) = ( m_hd44102ch[2].ram[ad+j] & 0x01 ) ? 0 : 1;
bitmap.pix16(i * 8 + 1, 50 + j ) = ( m_hd44102ch[2].ram[ad+j] & 0x02 ) ? 0 : 1;
@@ -200,7 +199,7 @@ uint32_t gamepock_state::screen_update_gamepock(screen_device &screen, bitmap_in
bitmap.pix16(i * 8 + 6, 50 + j ) = ( m_hd44102ch[2].ram[ad+j] & 0x40 ) ? 0 : 1;
bitmap.pix16(i * 8 + 7, 50 + j ) = ( m_hd44102ch[2].ram[ad+j] & 0x80 ) ? 0 : 1;
}
- for ( j = 25; j < 50; j++ )
+ for ( int j = 25; j < 50; j++ )
{
bitmap.pix16(32 + i * 8 + 0, 25 + j ) = ( m_hd44102ch[2].ram[ad+j] & 0x01 ) ? 0 : 1;
bitmap.pix16(32 + i * 8 + 1, 25 + j ) = ( m_hd44102ch[2].ram[ad+j] & 0x02 ) ? 0 : 1;
diff --git a/src/mame/machine/gridkeyb.cpp b/src/mame/machine/gridkeyb.cpp
index bfd03d0b6f5..bace5c09696 100644
--- a/src/mame/machine/gridkeyb.cpp
+++ b/src/mame/machine/gridkeyb.cpp
@@ -206,7 +206,7 @@ grid_keyboard_device::grid_keyboard_device(
, m_config(*this, "GRIDKBD_CFG")
, m_modifiers(*this, "GRIDKBD_MOD")
, m_last_modifiers(0U)
- , m_keyboard_cb()
+ , m_keyboard_cb(*this)
{
}
@@ -225,7 +225,7 @@ ioport_constructor grid_keyboard_device::device_input_ports() const
void grid_keyboard_device::device_start()
{
- m_keyboard_cb.bind_relative_to(*owner());
+ m_keyboard_cb.resolve();
save_item(NAME(m_last_modifiers));
}
diff --git a/src/mame/machine/gridkeyb.h b/src/mame/machine/gridkeyb.h
index c4a41cd1589..e0072d7ea38 100644
--- a/src/mame/machine/gridkeyb.h
+++ b/src/mame/machine/gridkeyb.h
@@ -40,12 +40,11 @@ public:
device_t *owner,
u32 clock);
- template <class FunctionClass>
- void set_keyboard_callback(void (FunctionClass::*callback)(u16 character), const char *name)
+ template <typename... T>
+ void set_keyboard_callback(T &&... args)
{
- set_keyboard_callback(output_delegate(callback, name, nullptr, static_cast<FunctionClass *>(nullptr)));
+ m_keyboard_cb.set(std::forward<T>(args)...);
}
- void set_keyboard_callback(output_delegate callback) { m_keyboard_cb = callback; }
virtual ioport_constructor device_input_ports() const override;
diff --git a/src/mame/machine/hp48.cpp b/src/mame/machine/hp48.cpp
index f4c6716f0f1..5e1f871686d 100644
--- a/src/mame/machine/hp48.cpp
+++ b/src/mame/machine/hp48.cpp
@@ -907,8 +907,8 @@ void hp48_state::init_hp48()
for (int i = 0; i < 6; i++)
{
m_modules[i].off_mask = 0x00fff; /* 2 KB */
- m_modules[i].read = read8_delegate();
- m_modules[i].write = write8_delegate();
+ m_modules[i].read = read8_delegate(*this);
+ m_modules[i].write = write8_delegate(*this);
m_modules[i].data = nullptr;
m_modules[i].isnop = 0;
}
@@ -957,8 +957,8 @@ void hp48_state::base_machine_start(hp48_models model)
/* I/O RAM */
m_modules[HP48_HDW].off_mask = 0x0003f; /* 32 B */
- m_modules[HP48_HDW].read = read8_delegate(FUNC(hp48_state::io_r),this);
- m_modules[HP48_HDW].write = write8_delegate(FUNC(hp48_state::io_w),this);
+ m_modules[HP48_HDW].read = read8_delegate(*this, FUNC(hp48_state::io_r));
+ m_modules[HP48_HDW].write = write8_delegate(*this, FUNC(hp48_state::io_w));
/* internal RAM */
if (HP49_G_MODEL)
@@ -980,8 +980,8 @@ void hp48_state::base_machine_start(hp48_models model)
if (HP48_G_SERIES)
{
m_modules[HP48_CE1].off_mask = 0x00fff; /* 2 KB */
- m_modules[HP48_CE1].read = read8_delegate(FUNC(hp48_state::bank_r),this);
- m_modules[HP48_CE1].write = HP49_G_MODEL ? write8_delegate(FUNC(hp48_state::hp49_bank_w),this) : write8_delegate();
+ m_modules[HP48_CE1].read = read8_delegate(*this, FUNC(hp48_state::bank_r));
+ m_modules[HP48_CE1].write = HP49_G_MODEL ? write8_delegate(*this, FUNC(hp48_state::hp49_bank_w)) : write8_delegate(*this);
}
/* timers */
@@ -996,13 +996,13 @@ void hp48_state::base_machine_start(hp48_models model)
m_kbd_timer->adjust(attotime::from_msec(1), 0, attotime::from_msec(1));
/* save state */
- save_item(NAME(m_out) );
- save_item(NAME(m_kdn) );
- save_item(NAME(m_io_addr) );
- save_item(NAME(m_crc) );
- save_item(NAME(m_timer1) );
- save_item(NAME(m_timer2) );
- save_item(NAME(m_bank_switch) );
+ save_item(NAME(m_out));
+ save_item(NAME(m_kdn));
+ save_item(NAME(m_io_addr));
+ save_item(NAME(m_crc));
+ save_item(NAME(m_timer1));
+ save_item(NAME(m_timer2));
+ save_item(NAME(m_bank_switch));
for (int i = 0; i < 6; i++)
{
save_item(m_modules[i].state, "globals/m_modules[i].state", i);
diff --git a/src/mame/machine/hp48_port.cpp b/src/mame/machine/hp48_port.cpp
index c22e9e61623..459b20c781b 100644
--- a/src/mame/machine/hp48_port.cpp
+++ b/src/mame/machine/hp48_port.cpp
@@ -25,8 +25,8 @@ void hp48_port_image_device::fill_port()
LOG("hp48_port_image_device::fill_port: %s module=%i size=%i rw=%i\n", tag(), m_module, size, m_port_write);
m_port_data = make_unique_clear<uint8_t[]>(2 * size);
m_hp48->m_modules[m_module].off_mask = 2 * (( size > 128 * 1024 ) ? 128 * 1024 : size) - 1;
- m_hp48->m_modules[m_module].read = read8_delegate();
- m_hp48->m_modules[m_module].write = write8_delegate();
+ m_hp48->m_modules[m_module].read = read8_delegate(*m_hp48);
+ m_hp48->m_modules[m_module].write = write8_delegate(*m_hp48);
m_hp48->m_modules[m_module].isnop = m_port_write ? 0 : 1;
m_hp48->m_modules[m_module].data = (void*)m_port_data.get();
m_hp48->apply_modules();
@@ -37,8 +37,8 @@ void hp48_port_image_device::unfill_port()
{
LOG("hp48_port_image_device::unfill_port\n");
m_hp48->m_modules[m_module].off_mask = 0x00fff; /* 2 KB */
- m_hp48->m_modules[m_module].read = read8_delegate();
- m_hp48->m_modules[m_module].write = write8_delegate();
+ m_hp48->m_modules[m_module].read = read8_delegate(*m_hp48);
+ m_hp48->m_modules[m_module].write = write8_delegate(*m_hp48);
m_hp48->m_modules[m_module].data = nullptr;
m_hp48->m_modules[m_module].isnop = 1;
m_port_size = 0;
diff --git a/src/mame/machine/hp48_port.h b/src/mame/machine/hp48_port.h
index 17826567740..b50bb8ae3bb 100644
--- a/src/mame/machine/hp48_port.h
+++ b/src/mame/machine/hp48_port.h
@@ -7,7 +7,6 @@
Hewlett Packard HP48 S/SX & G/GX and HP49 G
**********************************************************************/
-
#ifndef MAME_MACHINE_HP84_PORT_H
#define MAME_MACHINE_HP84_PORT_H
@@ -58,6 +57,7 @@ public:
protected:
// device-level overrides
virtual void device_start() override;
+
private:
void fill_port();
void unfill_port();
diff --git a/src/mame/machine/igs025.cpp b/src/mame/machine/igs025.cpp
index 63f58c66003..6ac0c55a0e3 100644
--- a/src/mame/machine/igs025.cpp
+++ b/src/mame/machine/igs025.cpp
@@ -18,8 +18,8 @@
igs025_device::igs025_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: device_t(mconfig, IGS025, tag, owner, clock)
+ , m_execute_external(*this, DEVICE_SELF, FUNC(igs025_device::no_callback_setup))
{
- m_execute_external = igs025_execute_external(FUNC(igs025_device::no_callback_setup), this);
}
void igs025_device::no_callback_setup()
@@ -40,7 +40,7 @@ void igs025_device::device_start()
m_kb_ptr = 0;
m_kb_swap = 0;
- m_execute_external.bind_relative_to(*owner());
+ m_execute_external.resolve();
save_item(NAME(m_kb_prot_hold));
save_item(NAME(m_kb_prot_hilo));
diff --git a/src/mame/machine/igs025.h b/src/mame/machine/igs025.h
index 6c00548d8e3..7458152ad5f 100644
--- a/src/mame/machine/igs025.h
+++ b/src/mame/machine/igs025.h
@@ -20,7 +20,7 @@ public:
uint32_t m_kb_game_id;
uint32_t m_kb_region;
- template <typename... T> void set_external_cb(T &&... args) { m_execute_external = igs025_execute_external(std::forward<T>(args)...); }
+ template <typename... T> void set_external_cb(T &&... args) { m_execute_external.set(std::forward<T>(args)...); }
DECLARE_WRITE16_MEMBER( olds_w );
DECLARE_WRITE16_MEMBER( drgw2_d80000_protection_w );
diff --git a/src/mame/machine/imds2ioc.cpp b/src/mame/machine/imds2ioc.cpp
index c5c148b7367..f74f6c5ab60 100644
--- a/src/mame/machine/imds2ioc.cpp
+++ b/src/mame/machine/imds2ioc.cpp
@@ -596,7 +596,7 @@ void imds2ioc_device::device_add_mconfig(machine_config &config)
I8275(config, m_ioccrtc, 22853600 / 14);
m_ioccrtc->set_character_width(14);
m_ioccrtc->set_refresh_hack(true);
- m_ioccrtc->set_display_callback(FUNC(imds2ioc_device::crtc_display_pixels), this);
+ m_ioccrtc->set_display_callback(FUNC(imds2ioc_device::crtc_display_pixels));
m_ioccrtc->drq_wr_callback().set(m_iocdma, FUNC(i8257_device::dreq2_w));
m_ioccrtc->irq_wr_callback().set_inputline(m_ioccpu, I8085_INTR_LINE);
m_ioccrtc->set_screen("screen");
diff --git a/src/mame/machine/intv.cpp b/src/mame/machine/intv.cpp
index cc363d1b2de..b8e8824bc16 100644
--- a/src/mame/machine/intv.cpp
+++ b/src/mame/machine/intv.cpp
@@ -598,35 +598,35 @@ void intv_state::machine_start()
switch (m_cart->get_type())
{
case INTV_RAM:
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xd000, 0xd7ff, read16sm_delegate(FUNC(intv_cart_slot_device::read_ram),(intv_cart_slot_device*)m_cart), write16sm_delegate(FUNC(intv_cart_slot_device::write_ram),(intv_cart_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xd000, 0xd7ff, read16sm_delegate(*m_cart, FUNC(intv_cart_slot_device::read_ram)), write16sm_delegate(*m_cart, FUNC(intv_cart_slot_device::write_ram)));
break;
case INTV_GFACT:
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x8800, 0x8fff, read16sm_delegate(FUNC(intv_cart_slot_device::read_ram),(intv_cart_slot_device*)m_cart), write16sm_delegate(FUNC(intv_cart_slot_device::write_ram),(intv_cart_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x8800, 0x8fff, read16sm_delegate(*m_cart, FUNC(intv_cart_slot_device::read_ram)), write16sm_delegate(*m_cart, FUNC(intv_cart_slot_device::write_ram)));
break;
case INTV_VOICE:
m_cart->late_subslot_setup();
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x0080, 0x0081, read16sm_delegate(FUNC(intv_cart_slot_device::read_speech),(intv_cart_slot_device*)m_cart), write16sm_delegate(FUNC(intv_cart_slot_device::write_speech),(intv_cart_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x0080, 0x0081, read16sm_delegate(*m_cart, FUNC(intv_cart_slot_device::read_speech)), write16sm_delegate(*m_cart, FUNC(intv_cart_slot_device::write_speech)));
// passthru for RAM-equipped carts
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x8800, 0x8fff, write16sm_delegate(FUNC(intv_cart_slot_device::write_88),(intv_cart_slot_device*)m_cart));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xd000, 0xd7ff, write16sm_delegate(FUNC(intv_cart_slot_device::write_d0),(intv_cart_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x8800, 0x8fff, write16sm_delegate(*m_cart, FUNC(intv_cart_slot_device::write_88)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xd000, 0xd7ff, write16sm_delegate(*m_cart, FUNC(intv_cart_slot_device::write_d0)));
break;
case INTV_ECS:
m_cart->late_subslot_setup();
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x00f0, 0x00ff, read16sm_delegate(FUNC(intv_cart_slot_device::read_ay),(intv_cart_slot_device*)m_cart), write16sm_delegate(FUNC(intv_cart_slot_device::write_ay),(intv_cart_slot_device*)m_cart));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x4000, 0x47ff, read16sm_delegate(FUNC(intv_cart_slot_device::read_ram),(intv_cart_slot_device*)m_cart), write16sm_delegate(FUNC(intv_cart_slot_device::write_ram),(intv_cart_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x00f0, 0x00ff, read16sm_delegate(*m_cart, FUNC(intv_cart_slot_device::read_ay)), write16sm_delegate(*m_cart, FUNC(intv_cart_slot_device::write_ay)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x4000, 0x47ff, read16sm_delegate(*m_cart, FUNC(intv_cart_slot_device::read_ram)), write16sm_delegate(*m_cart, FUNC(intv_cart_slot_device::write_ram)));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x2000, 0x2fff, write16sm_delegate(FUNC(intv_cart_slot_device::write_rom20),(intv_cart_slot_device*)m_cart));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x7000, 0x7fff, write16sm_delegate(FUNC(intv_cart_slot_device::write_rom70),(intv_cart_slot_device*)m_cart));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xe000, 0xefff, write16sm_delegate(FUNC(intv_cart_slot_device::write_rome0),(intv_cart_slot_device*)m_cart));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xf000, 0xffff, write16sm_delegate(FUNC(intv_cart_slot_device::write_romf0),(intv_cart_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x2000, 0x2fff, write16sm_delegate(*m_cart, FUNC(intv_cart_slot_device::write_rom20)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x7000, 0x7fff, write16sm_delegate(*m_cart, FUNC(intv_cart_slot_device::write_rom70)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xe000, 0xefff, write16sm_delegate(*m_cart, FUNC(intv_cart_slot_device::write_rome0)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xf000, 0xffff, write16sm_delegate(*m_cart, FUNC(intv_cart_slot_device::write_romf0)));
// passthru for Intellivoice expansion
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x0080, 0x0081, read16sm_delegate(FUNC(intv_cart_slot_device::read_speech),(intv_cart_slot_device*)m_cart), write16sm_delegate(FUNC(intv_cart_slot_device::write_speech),(intv_cart_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x0080, 0x0081, read16sm_delegate(*m_cart, FUNC(intv_cart_slot_device::read_speech)), write16sm_delegate(*m_cart, FUNC(intv_cart_slot_device::write_speech)));
// passthru for RAM-equipped carts
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x8800, 0x8fff, write16sm_delegate(FUNC(intv_cart_slot_device::write_88),(intv_cart_slot_device*)m_cart));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xd000, 0xd7ff, write16sm_delegate(FUNC(intv_cart_slot_device::write_d0),(intv_cart_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x8800, 0x8fff, write16sm_delegate(*m_cart, FUNC(intv_cart_slot_device::write_88)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xd000, 0xd7ff, write16sm_delegate(*m_cart, FUNC(intv_cart_slot_device::write_d0)));
break;
}
diff --git a/src/mame/machine/jazz_mct_adr.cpp b/src/mame/machine/jazz_mct_adr.cpp
index 2c7da33aec9..8c4c13b325f 100644
--- a/src/mame/machine/jazz_mct_adr.cpp
+++ b/src/mame/machine/jazz_mct_adr.cpp
@@ -48,72 +48,74 @@ jazz_mct_adr_device::jazz_mct_adr_device(const machine_config &mconfig, const ch
void jazz_mct_adr_device::map(address_map &map)
{
- map(0x000, 0x007).lrw32("configuration", [this](){ return m_config; }, [this](u32 data) { m_config = data; });
- map(0x008, 0x00f).lr32("revision_level", [](){ return 1; });
- map(0x010, 0x017).lr32("dma_invalid_address", [this]() { m_dma_interrupt_source &= ~DMA_ADDRESS_ERROR; return m_dma_invalid_address; });
- map(0x018, 0x01f).lrw32("translation_base", [this]() { return m_trans_tbl_base; }, [this](u32 data) { LOG("tbl base 0x%08x\n", data); m_trans_tbl_base = data; });
- map(0x020, 0x027).lrw32("translation_limit", [this]() { return m_trans_tbl_limit; }, [this](u32 data) { LOG("tbl limit 0x%08x\n", data); m_trans_tbl_limit = data; });
- map(0x028, 0x02f).lrw32("translation_invalidate", []() { return 0; }, [](u32 data) { });
- map(0x030, 0x037).lw32("cache_maintenance", [this](u32 data) { m_ioc_maint = data; });
- map(0x038, 0x03f).lr32("remote_failed_address", []() { return 0; });
- map(0x040, 0x047).lr32("dma_memory_failed_address", [this]() { m_dma_interrupt_source &= ~DMA_PARITY_ERROR; return m_dma_memory_failed_address; });
- map(0x048, 0x04f).lw32("io_cache_physical_tag", [this](u32 data) { m_ioc_physical_tag = data; });
- map(0x050, 0x057).lw32("io_cache_logical_tag", [this](u32 data) { m_ioc_logical_tag = data; });
- map(0x058, 0x05f).lrw32("io_cache_byte_mask",
- // FIXME: hack to pass diagnostics
- [this]()
- {
- u32 const data = m_ioc_byte_mask;
-
- if (data == 0xffffffff)
- m_ioc_byte_mask = 0;
- return data;
- },
- [this](u32 data) { m_ioc_byte_mask |= data; });
- map(0x060, 0x067).lw32("io_cache_buffer_window_lo", [this](u32 data)
- {
- // FIXME: hack to pass diagnostics
- if (m_ioc_logical_tag == 0x80000001 && m_ioc_byte_mask == 0x0f0f0f0f)
- {
- u32 const address = (m_ioc_physical_tag & ~0x1) + ((m_ioc_maint & 0x3) << 3);
-
- m_bus->write_dword(address, data);
- }
- });
+ map(0x000, 0x007).lrw32(NAME([this] () { return m_config; }), NAME([this] (u32 data) { m_config = data; }));
+ map(0x008, 0x00f).lr32([] () { return 1; }, "revision_level");
+ map(0x010, 0x017).lr32(NAME([this] () { m_dma_interrupt_source &= ~DMA_ADDRESS_ERROR; return m_dma_invalid_address; }));
+ map(0x018, 0x01f).lrw32(NAME([this] () { return m_trans_tbl_base; }), NAME([this] (u32 data) { LOG("tbl base 0x%08x\n", data); m_trans_tbl_base = data; }));
+ map(0x020, 0x027).lrw32(NAME([this] () { return m_trans_tbl_limit; }), NAME([this] (u32 data) { LOG("tbl limit 0x%08x\n", data); m_trans_tbl_limit = data; }));
+ map(0x028, 0x02f).lrw32([] () { return 0; }, "translation_invalidate_r", [] (u32 data) { }, "translation_invalidate_w");
+ map(0x030, 0x037).lw32(NAME([this] (u32 data) { m_ioc_maint = data; }));
+ map(0x038, 0x03f).lr32([] () { return 0; }, "remote_failed_address");
+ map(0x040, 0x047).lr32(NAME([this] () { m_dma_interrupt_source &= ~DMA_PARITY_ERROR; return m_dma_memory_failed_address; }));
+ map(0x048, 0x04f).lw32(NAME([this] (u32 data) { m_ioc_physical_tag = data; }));
+ map(0x050, 0x057).lw32(NAME([this] (u32 data) { m_ioc_logical_tag = data; }));
+ map(0x058, 0x05f).lrw32(
+ // FIXME: hack to pass diagnostics
+ [this] ()
+ {
+ u32 const data = m_ioc_byte_mask;
+
+ if (data == 0xffffffff)
+ m_ioc_byte_mask = 0;
+ return data;
+ }, "io_cache_byte_mask_r",
+ NAME([this] (u32 data) { m_ioc_byte_mask |= data; }));
+ map(0x060, 0x067).lw32(
+ [this] (u32 data)
+ {
+ // FIXME: hack to pass diagnostics
+ if (m_ioc_logical_tag == 0x80000001 && m_ioc_byte_mask == 0x0f0f0f0f)
+ {
+ u32 const address = (m_ioc_physical_tag & ~0x1) + ((m_ioc_maint & 0x3) << 3);
+
+ m_bus->write_dword(address, data);
+ }
+ }, "io_cache_buffer_window_lo");
// io_cache_buffer_window_hi
- map(0x070, 0x0ef).lrw32("remote_speed",
- [this](offs_t offset) { return m_remote_speed[offset >> 1]; },
- [this](offs_t offset, u32 data) { m_remote_speed[offset >> 1] = data; });
+ map(0x070, 0x0ef).lrw32(
+ NAME([this] (offs_t offset) { return m_remote_speed[offset >> 1]; }),
+ NAME([this] (offs_t offset, u32 data) { m_remote_speed[offset >> 1] = data; }));
// parity_diagnostic_lo
// parity_diagnostic_hi
- map(0x100, 0x1ff).lrw32("dma_reg",
- [this](offs_t offset) { return m_dma_reg[offset >> 1]; },
- [this](offs_t offset, u32 data)
- {
- unsigned const reg = offset >> 1;
-
- LOG("dma_reg %d data 0x%08x (%s)\n", offset, data, machine().describe_context());
-
- m_dma_reg[reg] = data;
-
- if ((reg == REG_ENABLE) && (data & DMA_ENABLE))
- LOG("dma started address 0x%08x count %d\n", translate_address(m_dma_reg[(0 << 2) + REG_ADDRESS]), m_dma_reg[(0 << 2) + REG_COUNT]);
- });
- map(0x200, 0x207).lr32("interrupt_source", [this]() { return m_dma_interrupt_source; });
- map(0x208, 0x20f).lr32("error_type", []() { return 0; });
- map(0x210, 0x217).lrw32("refresh_rate", [this]() { return m_memory_refresh_rate; }, [this](u32 data) { m_memory_refresh_rate = data; });
+ map(0x100, 0x1ff).lrw32(
+ NAME([this] (offs_t offset) { return m_dma_reg[offset >> 1]; }),
+ [this] (offs_t offset, u32 data)
+ {
+ unsigned const reg = offset >> 1;
+
+ LOG("dma_reg %d data 0x%08x (%s)\n", offset, data, machine().describe_context());
+
+ m_dma_reg[reg] = data;
+
+ if ((reg == REG_ENABLE) && (data & DMA_ENABLE))
+ LOG("dma started address 0x%08x count %d\n", translate_address(m_dma_reg[(0 << 2) + REG_ADDRESS]), m_dma_reg[(0 << 2) + REG_COUNT]);
+ }, "dma_reg_w");
+ map(0x200, 0x207).lr32(NAME([this] () { return m_dma_interrupt_source; }));
+ map(0x208, 0x20f).lr32([] () { return 0; }, "error_type");
+ map(0x210, 0x217).lrw32(NAME([this] () { return m_memory_refresh_rate; }), NAME([this] (u32 data) { m_memory_refresh_rate = data; }));
// refresh_counter
- map(0x220, 0x227).lrw32("system_security", [this]() { return m_nvram_protect; }, [this](u32 data) { LOG("nvram_protect 0x%08x (%s)\n", data, machine().describe_context()); m_nvram_protect = data; });
- map(0x228, 0x22f).lw32("interrupt_interval", [this](u32 data)
- {
- LOG("timer_w 0x%08x\n", data);
-
- attotime interval = attotime::from_ticks((data + 1) & 0x1ff, 1000);
-
- m_interval_timer->adjust(interval, 0, interval);
- });
- map(0x230, 0x237).lr32("interval_timer", [this]() { if (m_out_int_timer_asserted) { m_out_int_timer_asserted = false; m_out_int_timer(0); } return m_interval_timer->remaining().as_ticks(1000); });
- map(0x238, 0x23b).lr32("interrupt_acknowledge", [this]() { return m_eisa_iack(); });
+ map(0x220, 0x227).lrw32(NAME([this] () { return m_nvram_protect; }), NAME([this] (u32 data) { LOG("nvram_protect 0x%08x (%s)\n", data, machine().describe_context()); m_nvram_protect = data; }));
+ map(0x228, 0x22f).lw32(
+ [this] (u32 data)
+ {
+ LOG("timer_w 0x%08x\n", data);
+
+ attotime interval = attotime::from_ticks((data + 1) & 0x1ff, 1000);
+
+ m_interval_timer->adjust(interval, 0, interval);
+ }, "interrupt_interval");
+ map(0x230, 0x237).lr32([this] () { if (m_out_int_timer_asserted) { m_out_int_timer_asserted = false; m_out_int_timer(0); } return m_interval_timer->remaining().as_ticks(1000); }, "interval_timer");
+ map(0x238, 0x23b).lr32(NAME([this] () { return m_eisa_iack(); }));
}
void jazz_mct_adr_device::device_start()
diff --git a/src/mame/machine/kc.cpp b/src/mame/machine/kc.cpp
index 0d1af0d94b7..5c956be6e3a 100644
--- a/src/mame/machine/kc.cpp
+++ b/src/mame/machine/kc.cpp
@@ -309,8 +309,8 @@ void kc_state::update_0x00000()
{
LOG(("Module at 0x0000\n"));
- space.install_read_handler (0x0000, 0x3fff, read8_delegate(FUNC(kc_state::expansion_read), this), 0);
- space.install_write_handler(0x0000, 0x3fff, write8_delegate(FUNC(kc_state::expansion_write), this), 0);
+ space.install_read_handler (0x0000, 0x3fff, read8_delegate(*this, FUNC(kc_state::expansion_read)), 0);
+ space.install_write_handler(0x0000, 0x3fff, write8_delegate(*this, FUNC(kc_state::expansion_write)), 0);
}
}
@@ -321,8 +321,8 @@ void kc_state::update_0x04000()
LOG(("Module at 0x4000\n"));
- space.install_read_handler (0x4000, 0x7fff, read8_delegate(FUNC(kc_state::expansion_4000_r), this), 0);
- space.install_write_handler(0x4000, 0x7fff, write8_delegate(FUNC(kc_state::expansion_4000_w), this), 0);
+ space.install_read_handler (0x4000, 0x7fff, read8_delegate(*this, FUNC(kc_state::expansion_4000_r)), 0);
+ space.install_write_handler(0x4000, 0x7fff, write8_delegate(*this, FUNC(kc_state::expansion_4000_w)), 0);
}
@@ -345,8 +345,8 @@ void kc_state::update_0x0c000()
{
LOG(("Module at 0x0c000\n"));
- space.install_read_handler (0xc000, 0xdfff, read8_delegate(FUNC(kc_state::expansion_c000_r), this), 0);
- space.install_write_handler(0xc000, 0xdfff, write8_delegate(FUNC(kc_state::expansion_c000_w), this), 0);
+ space.install_read_handler (0xc000, 0xdfff, read8_delegate(*this, FUNC(kc_state::expansion_c000_r)), 0);
+ space.install_write_handler(0xc000, 0xdfff, write8_delegate(*this, FUNC(kc_state::expansion_c000_w)), 0);
}
}
@@ -368,8 +368,8 @@ void kc_state::update_0x0e000()
{
LOG(("Module at 0x0e000\n"));
- space.install_read_handler (0xe000, 0xffff, read8_delegate(FUNC(kc_state::expansion_e000_r), this), 0);
- space.install_write_handler(0xe000, 0xffff, write8_delegate(FUNC(kc_state::expansion_e000_w), this), 0);
+ space.install_read_handler (0xe000, 0xffff, read8_delegate(*this, FUNC(kc_state::expansion_e000_r)), 0);
+ space.install_write_handler(0xe000, 0xffff, write8_delegate(*this, FUNC(kc_state::expansion_e000_w)), 0);
}
}
@@ -391,8 +391,8 @@ void kc_state::update_0x08000()
{
LOG(("Module at 0x8000!\n"));
- space.install_read_handler(0x8000, 0xbfff, read8_delegate(FUNC(kc_state::expansion_8000_r), this), 0);
- space.install_write_handler(0x8000, 0xbfff, write8_delegate(FUNC(kc_state::expansion_8000_w), this), 0);
+ space.install_read_handler(0x8000, 0xbfff, read8_delegate(*this, FUNC(kc_state::expansion_8000_r)), 0);
+ space.install_write_handler(0x8000, 0xbfff, write8_delegate(*this, FUNC(kc_state::expansion_8000_w)), 0);
}
}
@@ -433,8 +433,8 @@ void kc85_4_state::update_0x04000()
{
LOG(("Module at 0x4000\n"));
- space.install_read_handler (0x4000, 0x7fff, read8_delegate(FUNC(kc_state::expansion_4000_r), this), 0);
- space.install_write_handler(0x4000, 0x7fff, write8_delegate(FUNC(kc_state::expansion_4000_w), this), 0);
+ space.install_read_handler (0x4000, 0x7fff, read8_delegate(*this, FUNC(kc_state::expansion_4000_r)), 0);
+ space.install_write_handler(0x4000, 0x7fff, write8_delegate(*this, FUNC(kc_state::expansion_4000_w)), 0);
}
}
@@ -470,8 +470,8 @@ void kc85_4_state::update_0x0c000()
{
LOG(("Module at 0x0c000\n"));
- space.install_read_handler (0xc000, 0xdfff, read8_delegate(FUNC(kc_state::expansion_c000_r), this), 0);
- space.install_write_handler(0xc000, 0xdfff, write8_delegate(FUNC(kc_state::expansion_c000_w), this), 0);
+ space.install_read_handler (0xc000, 0xdfff, read8_delegate(*this, FUNC(kc_state::expansion_c000_r)), 0);
+ space.install_write_handler(0xc000, 0xdfff, write8_delegate(*this, FUNC(kc_state::expansion_c000_w)), 0);
}
}
}
@@ -542,8 +542,8 @@ void kc85_4_state::update_0x08000()
{
LOG(("Module at 0x8000\n"));
- space.install_read_handler(0x8000, 0xbfff, read8_delegate(FUNC(kc_state::expansion_8000_r), this), 0);
- space.install_write_handler(0x8000, 0xbfff, write8_delegate(FUNC(kc_state::expansion_8000_w), this), 0);
+ space.install_read_handler(0x8000, 0xbfff, read8_delegate(*this, FUNC(kc_state::expansion_8000_r)), 0);
+ space.install_write_handler(0x8000, 0xbfff, write8_delegate(*this, FUNC(kc_state::expansion_8000_w)), 0);
}
}
diff --git a/src/mame/machine/konamigx.cpp b/src/mame/machine/konamigx.cpp
index b927daf5156..d82eb498426 100644
--- a/src/mame/machine/konamigx.cpp
+++ b/src/mame/machine/konamigx.cpp
@@ -471,7 +471,7 @@ void konamigx_state::fantjour_dma_install()
{
save_item(NAME(m_fantjour_dma));
save_item(NAME(m_prot_data));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xdb0000, 0xdb001f, write32_delegate(FUNC(konamigx_state::fantjour_dma_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xdb0000, 0xdb001f, write32_delegate(*this, FUNC(konamigx_state::fantjour_dma_w)));
memset(m_fantjour_dma, 0, sizeof(m_fantjour_dma));
}
diff --git a/src/mame/machine/mac.cpp b/src/mame/machine/mac.cpp
index 495f4884f97..9bfb19f07e4 100644
--- a/src/mame/machine/mac.cpp
+++ b/src/mame/machine/mac.cpp
@@ -344,7 +344,7 @@ void mac_state::v8_resize()
mac_install_memory(0x00000000, memory_size-1, memory_size, memory_data, is_rom, "bank1");
// install catcher in place of ROM that will detect the first access to ROM in its real location
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xa00000, 0xafffff, read32_delegate(FUNC(mac_state::rom_switch_r), this), 0xffffffff);
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xa00000, 0xafffff, read32_delegate(*this, FUNC(mac_state::rom_switch_r)), 0xffffffff);
}
else
{
@@ -464,7 +464,7 @@ void mac_state::set_memory_overlay(int overlay)
if (is_rom)
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x40000000, 0x4fffffff, read32_delegate(FUNC(mac_state::rom_switch_r), this), 0xffffffff);
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x40000000, 0x4fffffff, read32_delegate(*this, FUNC(mac_state::rom_switch_r)), 0xffffffff);
}
else
{
diff --git a/src/mame/machine/mbee.cpp b/src/mame/machine/mbee.cpp
index 6a6d4fe49cd..a9bddd6c112 100644
--- a/src/mame/machine/mbee.cpp
+++ b/src/mame/machine/mbee.cpp
@@ -309,8 +309,8 @@ void mbee_state::setup_banks(uint8_t data, bool first_time, uint8_t b_mask)
if (!BIT(b_byte, 4))
{
// select video
- mem.install_read_handler (b_vid, b_vid + 0x7ff, read8_delegate(FUNC(mbee_state::video_low_r), this));
- mem.install_read_handler (b_vid + 0x800, b_vid + 0xfff, read8_delegate(FUNC(mbee_state::video_high_r), this));
+ mem.install_read_handler (b_vid, b_vid + 0x7ff, read8_delegate(*this, FUNC(mbee_state::video_low_r)));
+ mem.install_read_handler (b_vid + 0x800, b_vid + 0xfff, read8_delegate(*this, FUNC(mbee_state::video_high_r)));
}
else
{
@@ -341,8 +341,8 @@ void mbee_state::setup_banks(uint8_t data, bool first_time, uint8_t b_mask)
if (!BIT(b_byte, 4))
{
// select video
- mem.install_write_handler (b_vid, b_vid + 0x7ff, write8_delegate(FUNC(mbee_state::video_low_w), this));
- mem.install_write_handler (b_vid + 0x800, b_vid + 0xfff, write8_delegate(FUNC(mbee_state::video_high_w), this));
+ mem.install_write_handler (b_vid, b_vid + 0x7ff, write8_delegate(*this, FUNC(mbee_state::video_low_w)));
+ mem.install_write_handler (b_vid + 0x800, b_vid + 0xfff, write8_delegate(*this, FUNC(mbee_state::video_high_w)));
}
else
{
diff --git a/src/mame/machine/mega32x.cpp b/src/mame/machine/mega32x.cpp
index 0bc38458be7..42072ec8c63 100644
--- a/src/mame/machine/mega32x.cpp
+++ b/src/mame/machine/mega32x.cpp
@@ -671,21 +671,21 @@ WRITE16_MEMBER( sega_32x_device::m68k_a15100_w )
space.install_rom(0x0000000, 0x03fffff, machine().root_device().memregion("32x_68k_bios")->base());
/* VDP area */
- space.install_readwrite_handler(0x0a15180, 0x0a1518b, read16_delegate(FUNC(sega_32x_device::common_vdp_regs_r), this), write16_delegate(FUNC(sega_32x_device::common_vdp_regs_w),this)); // common / shared VDP regs
- space.install_readwrite_handler(0x0a15200, 0x0a153ff, read16_delegate(FUNC(sega_32x_device::m68k_palette_r), this), write16_delegate(FUNC(sega_32x_device::m68k_palette_w),this)); // access to 'palette' xRRRRRGGGGGBBBBB
- space.install_readwrite_handler(0x0840000, 0x085ffff, read16_delegate(FUNC(sega_32x_device::m68k_dram_r), this), write16_delegate(FUNC(sega_32x_device::m68k_dram_w),this)); // access to 'display ram' (framebuffer)
- space.install_readwrite_handler(0x0860000, 0x087ffff, read16_delegate(FUNC(sega_32x_device::m68k_dram_overwrite_r),this), write16_delegate(FUNC(sega_32x_device::m68k_dram_overwrite_w),this)); // access to 'display ram' (framebuffer)
+ space.install_readwrite_handler(0x0a15180, 0x0a1518b, read16_delegate(*this, FUNC(sega_32x_device::common_vdp_regs_r)), write16_delegate(*this, FUNC(sega_32x_device::common_vdp_regs_w))); // common / shared VDP regs
+ space.install_readwrite_handler(0x0a15200, 0x0a153ff, read16_delegate(*this, FUNC(sega_32x_device::m68k_palette_r)), write16_delegate(*this, FUNC(sega_32x_device::m68k_palette_w))); // access to 'palette' xRRRRRGGGGGBBBBB
+ space.install_readwrite_handler(0x0840000, 0x085ffff, read16_delegate(*this, FUNC(sega_32x_device::m68k_dram_r)), write16_delegate(*this, FUNC(sega_32x_device::m68k_dram_w))); // access to 'display ram' (framebuffer)
+ space.install_readwrite_handler(0x0860000, 0x087ffff, read16_delegate(*this, FUNC(sega_32x_device::m68k_dram_overwrite_r)), write16_delegate(*this, FUNC(sega_32x_device::m68k_dram_overwrite_w))); // access to 'display ram' (framebuffer)
- m_main_cpu->space(AS_PROGRAM).install_readwrite_handler(0x000070, 0x000073, read16_delegate(FUNC(sega_32x_device::m68k_m_hint_vector_r),this), write16_delegate(FUNC(sega_32x_device::m68k_m_hint_vector_w),this)); // h interrupt vector
+ m_main_cpu->space(AS_PROGRAM).install_readwrite_handler(0x000070, 0x000073, read16_delegate(*this, FUNC(sega_32x_device::m68k_m_hint_vector_r)), write16_delegate(*this, FUNC(sega_32x_device::m68k_m_hint_vector_w))); // h interrupt vector
}
else
{
m_32x_adapter_enabled = 0;
space.install_rom(0x0000000, 0x03fffff, machine().root_device().memregion("gamecart")->base());
- m_main_cpu->space(AS_PROGRAM).install_readwrite_handler(0x000070, 0x000073, read16_delegate(FUNC(sega_32x_device::m68k_m_hint_vector_r),this), write16_delegate(FUNC(sega_32x_device::m68k_m_hint_vector_w),this)); // h interrupt vector
+ m_main_cpu->space(AS_PROGRAM).install_readwrite_handler(0x000070, 0x000073, read16_delegate(*this, FUNC(sega_32x_device::m68k_m_hint_vector_r)), write16_delegate(*this, FUNC(sega_32x_device::m68k_m_hint_vector_w))); // h interrupt vector
}
}
@@ -1817,23 +1817,23 @@ void sega_32x_device::device_reset()
if (m_32x_adapter_enabled == 0)
{
m_main_cpu->space(AS_PROGRAM).install_rom(0x0000000, 0x03fffff, machine().root_device().memregion(":gamecart")->base());
- m_main_cpu->space(AS_PROGRAM).install_readwrite_handler(0x000070, 0x000073, read16_delegate(FUNC(sega_32x_device::m68k_m_hint_vector_r),this), write16_delegate(FUNC(sega_32x_device::m68k_m_hint_vector_w),this)); // h interrupt vector
+ m_main_cpu->space(AS_PROGRAM).install_readwrite_handler(0x000070, 0x000073, read16_delegate(*this, FUNC(sega_32x_device::m68k_m_hint_vector_r)), write16_delegate(*this, FUNC(sega_32x_device::m68k_m_hint_vector_w))); // h interrupt vector
};
m_a15100_reg = 0x0000;
- m_main_cpu->space(AS_PROGRAM).install_readwrite_handler(0xa15100, 0xa15101, read16_delegate(FUNC(sega_32x_device::m68k_a15100_r),this), write16_delegate(FUNC(sega_32x_device::m68k_a15100_w),this)); // framebuffer control regs
- m_main_cpu->space(AS_PROGRAM).install_readwrite_handler(0xa15102, 0xa15103, read16_delegate(FUNC(sega_32x_device::m68k_a15102_r),this), write16_delegate(FUNC(sega_32x_device::m68k_a15102_w),this)); // send irq to sh2
- m_main_cpu->space(AS_PROGRAM).install_readwrite_handler(0xa15104, 0xa15105, read16_delegate(FUNC(sega_32x_device::m68k_a15104_r),this), write16_delegate(FUNC(sega_32x_device::m68k_a15104_w),this)); // 68k BANK rom set
- m_main_cpu->space(AS_PROGRAM).install_readwrite_handler(0xa15106, 0xa15107, read16_delegate(FUNC(sega_32x_device::m68k_a15106_r),this), write16_delegate(FUNC(sega_32x_device::m68k_a15106_w),this)); // dreq stuff
- m_main_cpu->space(AS_PROGRAM).install_readwrite_handler(0xa15108, 0xa15113, read16_delegate(FUNC(sega_32x_device::dreq_common_r),this), write16_delegate(FUNC(sega_32x_device::dreq_common_w),this)); // dreq src / dst / length /fifo
+ m_main_cpu->space(AS_PROGRAM).install_readwrite_handler(0xa15100, 0xa15101, read16_delegate(*this, FUNC(sega_32x_device::m68k_a15100_r)), write16_delegate(*this, FUNC(sega_32x_device::m68k_a15100_w))); // framebuffer control regs
+ m_main_cpu->space(AS_PROGRAM).install_readwrite_handler(0xa15102, 0xa15103, read16_delegate(*this, FUNC(sega_32x_device::m68k_a15102_r)), write16_delegate(*this, FUNC(sega_32x_device::m68k_a15102_w))); // send irq to sh2
+ m_main_cpu->space(AS_PROGRAM).install_readwrite_handler(0xa15104, 0xa15105, read16_delegate(*this, FUNC(sega_32x_device::m68k_a15104_r)), write16_delegate(*this, FUNC(sega_32x_device::m68k_a15104_w))); // 68k BANK rom set
+ m_main_cpu->space(AS_PROGRAM).install_readwrite_handler(0xa15106, 0xa15107, read16_delegate(*this, FUNC(sega_32x_device::m68k_a15106_r)), write16_delegate(*this, FUNC(sega_32x_device::m68k_a15106_w))); // dreq stuff
+ m_main_cpu->space(AS_PROGRAM).install_readwrite_handler(0xa15108, 0xa15113, read16_delegate(*this, FUNC(sega_32x_device::dreq_common_r)), write16_delegate(*this, FUNC(sega_32x_device::dreq_common_w))); // dreq src / dst / length /fifo
- m_main_cpu->space(AS_PROGRAM).install_readwrite_handler(0xa1511a, 0xa1511b, read16_delegate(FUNC(sega_32x_device::m68k_a1511a_r),this), write16_delegate(FUNC(sega_32x_device::m68k_a1511a_w),this)); // SEGA TV
+ m_main_cpu->space(AS_PROGRAM).install_readwrite_handler(0xa1511a, 0xa1511b, read16_delegate(*this, FUNC(sega_32x_device::m68k_a1511a_r)), write16_delegate(*this, FUNC(sega_32x_device::m68k_a1511a_w))); // SEGA TV
- m_main_cpu->space(AS_PROGRAM).install_readwrite_handler(0xa15120, 0xa1512f, read16_delegate(FUNC(sega_32x_device::m68k_m_commsram_r),this), write16_delegate(FUNC(sega_32x_device::m68k_m_commsram_w),this)); // comms reg 0-7
- m_main_cpu->space(AS_PROGRAM).install_readwrite_handler(0xa15130, 0xa1513f, read16_delegate(FUNC(sega_32x_device::pwm_r),this), write16_delegate(FUNC(sega_32x_device::m68k_pwm_w),this));
+ m_main_cpu->space(AS_PROGRAM).install_readwrite_handler(0xa15120, 0xa1512f, read16_delegate(*this, FUNC(sega_32x_device::m68k_m_commsram_r)), write16_delegate(*this, FUNC(sega_32x_device::m68k_m_commsram_w))); // comms reg 0-7
+ m_main_cpu->space(AS_PROGRAM).install_readwrite_handler(0xa15130, 0xa1513f, read16_delegate(*this, FUNC(sega_32x_device::pwm_r)), write16_delegate(*this, FUNC(sega_32x_device::m68k_pwm_w)));
- m_main_cpu->space(AS_PROGRAM).install_read_handler(0x0a130ec, 0x0a130ef, read16_delegate(FUNC(sega_32x_device::m68k_MARS_r),this)); // system ID
+ m_main_cpu->space(AS_PROGRAM).install_read_handler(0x0a130ec, 0x0a130ef, read16_delegate(*this, FUNC(sega_32x_device::m68k_MARS_r))); // system ID
diff --git a/src/mame/machine/megacd.cpp b/src/mame/machine/megacd.cpp
index 2872feaf9e9..f9d446cd1eb 100644
--- a/src/mame/machine/megacd.cpp
+++ b/src/mame/machine/megacd.cpp
@@ -297,17 +297,17 @@ void sega_segacd_device::device_add_mconfig(machine_config &config)
{
M68000(config, m_scdcpu, SEGACD_CLOCK); /* 12.5 MHz */
m_scdcpu->set_addrmap(AS_PROGRAM, &sega_segacd_device::segacd_map);
- m_scdcpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(sega_segacd_device::segacd_sub_int_callback),this));
+ m_scdcpu->set_irq_acknowledge_callback(FUNC(sega_segacd_device::segacd_sub_int_callback));
LC89510(config, "cdc", 0); // cd controller
// temporary until things are cleaned up
LC89510_TEMP(config, m_lc89510_temp, 0); // cd controller
- m_lc89510_temp->set_cdc_do_dma_callback(FUNC(sega_segacd_device::SegaCD_CDC_Do_DMA), this); // hack
+ m_lc89510_temp->set_cdc_do_dma_callback(FUNC(sega_segacd_device::SegaCD_CDC_Do_DMA)); // hack
m_lc89510_temp->set_cdrom_tag("^cdrom");
m_lc89510_temp->set_68k_tag(m_scdcpu);
- TIMER(config, m_stopwatch_timer).configure_generic(timer_device::expired_delegate()); //stopwatch timer
+ TIMER(config, m_stopwatch_timer).configure_generic(nullptr); //stopwatch timer
TIMER(config, m_stamp_timer).configure_generic(FUNC(sega_segacd_device::stamp_timer_callback));
TIMER(config, m_irq3_timer).configure_generic(FUNC(sega_segacd_device::irq3_timer_callback));
TIMER(config, m_dma_timer).configure_generic(FUNC(sega_segacd_device::dma_timer_callback));
@@ -1737,33 +1737,33 @@ void sega_segacd_device::device_start()
space.unmap_readwrite (0x020000,0x3fffff);
- space.install_read_handler (0x0020000, 0x003ffff, read16_delegate(FUNC(sega_segacd_device::scd_4m_prgbank_ram_r),this) );
- space.install_write_handler (0x0020000, 0x003ffff, write16_delegate(FUNC(sega_segacd_device::scd_4m_prgbank_ram_w),this) );
+ space.install_read_handler (0x0020000, 0x003ffff, read16_delegate(*this, FUNC(sega_segacd_device::scd_4m_prgbank_ram_r)) );
+ space.install_write_handler (0x0020000, 0x003ffff, write16_delegate(*this, FUNC(sega_segacd_device::scd_4m_prgbank_ram_w)) );
- space.install_readwrite_handler(0x200000, 0x23ffff, read16_delegate(FUNC(sega_segacd_device::segacd_main_dataram_part1_r),this), write16_delegate(FUNC(sega_segacd_device::segacd_main_dataram_part1_w),this)); // RAM shared with sub
- space.install_readwrite_handler(0xa12000, 0xa12001, read16_delegate(FUNC(sega_segacd_device::scd_a12000_halt_reset_r),this), write16_delegate(FUNC(sega_segacd_device::scd_a12000_halt_reset_w),this)); // sub-cpu control
- space.install_readwrite_handler(0xa12002, 0xa12003, read16_delegate(FUNC(sega_segacd_device::scd_a12002_memory_mode_r),this), write16_delegate(FUNC(sega_segacd_device::scd_a12002_memory_mode_w),this)); // memory mode / write protect
- //space.install_readwrite_handler(0xa12004, 0xa12005, read16_delegate(FUNC(sega_segacd_device::segacd_cdc_mode_address_r),this), write16_delegate(FUNC(sega_segacd_device::segacd_cdc_mode_address_w),this));
- space.install_readwrite_handler(0xa12006, 0xa12007, read16_delegate(FUNC(sega_segacd_device::scd_a12006_hint_register_r),this), write16_delegate(FUNC(sega_segacd_device::scd_a12006_hint_register_w),this)); // where HINT points on main CPU
- //space.install_read_handler (0xa12008, 0xa12009, read16_delegate(FUNC(sega_segacd_device::cdc_data_main_r),this));
+ space.install_readwrite_handler(0x200000, 0x23ffff, read16_delegate(*this, FUNC(sega_segacd_device::segacd_main_dataram_part1_r)), write16_delegate(*this, FUNC(sega_segacd_device::segacd_main_dataram_part1_w))); // RAM shared with sub
+ space.install_readwrite_handler(0xa12000, 0xa12001, read16_delegate(*this, FUNC(sega_segacd_device::scd_a12000_halt_reset_r)), write16_delegate(*this, FUNC(sega_segacd_device::scd_a12000_halt_reset_w))); // sub-cpu control
+ space.install_readwrite_handler(0xa12002, 0xa12003, read16_delegate(*this, FUNC(sega_segacd_device::scd_a12002_memory_mode_r)), write16_delegate(*this, FUNC(sega_segacd_device::scd_a12002_memory_mode_w))); // memory mode / write protect
+ //space.install_readwrite_handler(0xa12004, 0xa12005, read16_delegate(*this, FUNC(sega_segacd_device::segacd_cdc_mode_address_r)), write16_delegate(*this, FUNC(sega_segacd_device::segacd_cdc_mode_address_w)));
+ space.install_readwrite_handler(0xa12006, 0xa12007, read16_delegate(*this, FUNC(sega_segacd_device::scd_a12006_hint_register_r)), write16_delegate(*this, FUNC(sega_segacd_device::scd_a12006_hint_register_w))); // where HINT points on main CPU
+ //space.install_read_handler (0xa12008, 0xa12009, read16_delegate(*this, FUNC(sega_segacd_device::cdc_data_main_r)));
- space.install_readwrite_handler(0xa1200c, 0xa1200d, read16_delegate(FUNC(sega_segacd_device::segacd_stopwatch_timer_r),this), write16_delegate(FUNC(sega_segacd_device::segacd_stopwatch_timer_w),this)); // starblad
+ space.install_readwrite_handler(0xa1200c, 0xa1200d, read16_delegate(*this, FUNC(sega_segacd_device::segacd_stopwatch_timer_r)), write16_delegate(*this, FUNC(sega_segacd_device::segacd_stopwatch_timer_w))); // starblad
- space.install_readwrite_handler(0xa1200e, 0xa1200f, read16_delegate(FUNC(sega_segacd_device::segacd_comms_flags_r),this), write16_delegate(FUNC(sega_segacd_device::segacd_comms_flags_maincpu_w),this)); // communication flags block
+ space.install_readwrite_handler(0xa1200e, 0xa1200f, read16_delegate(*this, FUNC(sega_segacd_device::segacd_comms_flags_r)), write16_delegate(*this, FUNC(sega_segacd_device::segacd_comms_flags_maincpu_w))); // communication flags block
- space.install_readwrite_handler(0xa12010, 0xa1201f, read16_delegate(FUNC(sega_segacd_device::segacd_comms_main_part1_r),this), write16_delegate(FUNC(sega_segacd_device::segacd_comms_main_part1_w),this));
- space.install_readwrite_handler(0xa12020, 0xa1202f, read16_delegate(FUNC(sega_segacd_device::segacd_comms_main_part2_r),this), write16_delegate(FUNC(sega_segacd_device::segacd_comms_main_part2_w),this));
+ space.install_readwrite_handler(0xa12010, 0xa1201f, read16_delegate(*this, FUNC(sega_segacd_device::segacd_comms_main_part1_r)), write16_delegate(*this, FUNC(sega_segacd_device::segacd_comms_main_part1_w)));
+ space.install_readwrite_handler(0xa12020, 0xa1202f, read16_delegate(*this, FUNC(sega_segacd_device::segacd_comms_main_part2_r)), write16_delegate(*this, FUNC(sega_segacd_device::segacd_comms_main_part2_w)));
- space.install_read_handler (0x0000070, 0x0000073, read16_delegate(FUNC(sega_segacd_device::scd_hint_vector_r),this) );
+ space.install_read_handler (0x0000070, 0x0000073, read16_delegate(*this, FUNC(sega_segacd_device::scd_hint_vector_r)) );
- segacd_stampmap[0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(sega_segacd_device::get_stampmap_16x16_1x1_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 16, 16);
- segacd_stampmap[1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(sega_segacd_device::get_stampmap_32x32_1x1_tile_info),this), TILEMAP_SCAN_ROWS, 32, 32, 8, 8);
- segacd_stampmap[2] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(sega_segacd_device::get_stampmap_16x16_16x16_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 256, 256); // 128kb!
- segacd_stampmap[3] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(sega_segacd_device::get_stampmap_32x32_16x16_tile_info),this), TILEMAP_SCAN_ROWS, 32, 32, 128, 128); // 32kb!
+ segacd_stampmap[0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(sega_segacd_device::get_stampmap_16x16_1x1_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 16, 16);
+ segacd_stampmap[1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(sega_segacd_device::get_stampmap_32x32_1x1_tile_info)), TILEMAP_SCAN_ROWS, 32, 32, 8, 8);
+ segacd_stampmap[2] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(sega_segacd_device::get_stampmap_16x16_16x16_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 256, 256); // 128kb!
+ segacd_stampmap[3] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(sega_segacd_device::get_stampmap_32x32_16x16_tile_info)), TILEMAP_SCAN_ROWS, 32, 32, 128, 128); // 32kb!
// todo register save state stuff
}
diff --git a/src/mame/machine/megacdcd.cpp b/src/mame/machine/megacdcd.cpp
index 9241b906e07..c8b7fb440fe 100644
--- a/src/mame/machine/megacdcd.cpp
+++ b/src/mame/machine/megacdcd.cpp
@@ -135,15 +135,14 @@ DEFINE_DEVICE_TYPE(LC89510_TEMP, lc89510_temp_device, "lc89510_temp", "lc89510_t
lc89510_temp_device::lc89510_temp_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: device_t(mconfig, LC89510_TEMP, tag, owner, clock)
+ , m_segacd_dma_callback(*this, FUNC(lc89510_temp_device::Fake_CDC_Do_DMA))
+ , m_type1_interrupt_callback(*this, FUNC(lc89510_temp_device::dummy_interrupt_callback))
+ , m_type2_interrupt_callback(*this, FUNC(lc89510_temp_device::dummy_interrupt_callback))
+ , m_type3_interrupt_callback(*this, FUNC(lc89510_temp_device::dummy_interrupt_callback))
, m_cdrom(*this, finder_base::DUMMY_TAG)
, m_cdda(*this, "cdda")
, m_68k(*this, finder_base::DUMMY_TAG)
{
- segacd_dma_callback = segacd_dma_delegate(FUNC(lc89510_temp_device::Fake_CDC_Do_DMA), this);
- type1_interrupt_callback = interrupt_delegate(FUNC(lc89510_temp_device::dummy_interrupt_callback), this);
- type2_interrupt_callback = interrupt_delegate(FUNC(lc89510_temp_device::dummy_interrupt_callback), this);
- type3_interrupt_callback = interrupt_delegate(FUNC(lc89510_temp_device::dummy_interrupt_callback), this);
-
is_neoCD = false;
nff0002 = 0;
@@ -160,7 +159,7 @@ lc89510_temp_device::lc89510_temp_device(const machine_config &mconfig, const ch
segacd_irq_mask = 0;
}
-void lc89510_temp_device::dummy_interrupt_callback(void)
+void lc89510_temp_device::dummy_interrupt_callback()
{
}
@@ -172,10 +171,10 @@ void lc89510_temp_device::Fake_CDC_Do_DMA(int &dmacount, uint8_t *CDC_BUFFER, ui
void lc89510_temp_device::device_start()
{
- segacd_dma_callback.bind_relative_to(*owner());
- type1_interrupt_callback.bind_relative_to(*owner());
- type2_interrupt_callback.bind_relative_to(*owner());
- type3_interrupt_callback.bind_relative_to(*owner());
+ m_segacd_dma_callback.resolve();
+ m_type1_interrupt_callback.resolve();
+ m_type2_interrupt_callback.resolve();
+ m_type3_interrupt_callback.resolve();
}
void lc89510_temp_device::device_reset()
@@ -645,7 +644,7 @@ void lc89510_temp_device::CDC_Do_DMA(running_machine& machine, int rate)
uint16_t dma_addrc = LC8951RegistersW[REG_W_DACL] | (LC8951RegistersW[REG_W_DACH]<<8);
// HACK
- segacd_dma_callback(dmacount, CDC_BUFFER, dma_addrc, destination );
+ m_segacd_dma_callback(dmacount, CDC_BUFFER, dma_addrc, destination );
dma_addrc += length*2;
@@ -1138,7 +1137,7 @@ TIMER_DEVICE_CALLBACK_MEMBER( lc89510_temp_device::segacd_access_timer_callback
{
if (nff0002 & 0x0050)
{
- type2_interrupt_callback();
+ m_type2_interrupt_callback();
}
}
@@ -1295,7 +1294,7 @@ void lc89510_temp_device::scd_ctrl_checks(running_machine& machine)
{
if (is_neoCD)
{
- type1_interrupt_callback();
+ m_type1_interrupt_callback();
}
else
{
diff --git a/src/mame/machine/megacdcd.h b/src/mame/machine/megacdcd.h
index a8465a88384..3eec58bc6dd 100644
--- a/src/mame/machine/megacdcd.h
+++ b/src/mame/machine/megacdcd.h
@@ -8,20 +8,19 @@
#include "sound/cdda.h"
-typedef device_delegate<void (int&, uint8_t*, uint16_t&, uint16_t&)> segacd_dma_delegate;
-
-typedef device_delegate<void (void)> interrupt_delegate;
-
class lc89510_temp_device : public device_t
{
public:
+ typedef device_delegate<void (int &, uint8_t *, uint16_t &, uint16_t &)> dma_delegate;
+ typedef device_delegate<void ()> interrupt_delegate;
+
void set_is_neoCD(bool new_is_neoCD) { is_neoCD = new_is_neoCD; }
- template <typename... T> void set_type1_interrupt_callback(T &&... args) { type1_interrupt_callback = interrupt_delegate(std::forward<T>(args)...); }
- template <typename... T> void set_type2_interrupt_callback(T &&... args) { type2_interrupt_callback = interrupt_delegate(std::forward<T>(args)...); }
- template <typename... T> void set_type3_interrupt_callback(T &&... args) { type3_interrupt_callback = interrupt_delegate(std::forward<T>(args)...); }
+ template <typename... T> void set_type1_interrupt_callback(T &&... args) { m_type1_interrupt_callback.set(std::forward<T>(args)...); }
+ template <typename... T> void set_type2_interrupt_callback(T &&... args) { m_type2_interrupt_callback.set(std::forward<T>(args)...); }
+ template <typename... T> void set_type3_interrupt_callback(T &&... args) { m_type3_interrupt_callback.set(std::forward<T>(args)...); }
- template <typename... T> void set_cdc_do_dma_callback(T &&... args) { segacd_dma_callback = segacd_dma_delegate(std::forward<T>(args)...); }
+ template <typename... T> void set_cdc_do_dma_callback(T &&... args) { m_segacd_dma_callback.set(std::forward<T>(args)...); }
template <typename T> void set_cdrom_tag(T &&tag) { m_cdrom.set_tag(std::forward<T>(tag)); }
template <typename T> void set_68k_tag(T &&tag) { m_68k.set_tag(std::forward<T>(tag)); }
@@ -72,14 +71,14 @@ protected:
static constexpr unsigned EXTERNAL_BUFFER_SIZE = (32 * 1024 * 2) + SECTOR_SIZE;
// HACK for DMA handling
- segacd_dma_delegate segacd_dma_callback;
- interrupt_delegate type1_interrupt_callback;
- interrupt_delegate type2_interrupt_callback;
- interrupt_delegate type3_interrupt_callback;
+ dma_delegate m_segacd_dma_callback;
+ interrupt_delegate m_type1_interrupt_callback;
+ interrupt_delegate m_type2_interrupt_callback;
+ interrupt_delegate m_type3_interrupt_callback;
void Fake_CDC_Do_DMA(int &dmacount, uint8_t *CDC_BUFFER, uint16_t &dma_addrc, uint16_t &destination );
- void dummy_interrupt_callback(void);
+ void dummy_interrupt_callback();
required_device<cdrom_image_device> m_cdrom;
diff --git a/src/mame/machine/megadriv.cpp b/src/mame/machine/megadriv.cpp
index ee96f0d1f17..495e3612a66 100644
--- a/src/mame/machine/megadriv.cpp
+++ b/src/mame/machine/megadriv.cpp
@@ -1019,10 +1019,10 @@ void md_base_state::megadriv_init_common()
save_pointer(NAME(m_genz80.z80_prgram), 0x2000);
}
- m_maincpu->set_tas_write_callback(write8_delegate(FUNC(md_base_state::megadriv_tas_callback),this));
+ m_maincpu->set_tas_write_callback(*this, FUNC(md_base_state::megadriv_tas_callback));
- m_megadrive_io_read_data_port_ptr = read8_delegate(FUNC(md_base_state::megadrive_io_read_data_port_3button),this);
- m_megadrive_io_write_data_port_ptr = write16_delegate(FUNC(md_base_state::megadrive_io_write_data_port_3button),this);
+ m_megadrive_io_read_data_port_ptr = read8_delegate(*this, FUNC(md_base_state::megadrive_io_read_data_port_3button));
+ m_megadrive_io_write_data_port_ptr = write16_delegate(*this, FUNC(md_base_state::megadrive_io_write_data_port_3button));
}
void md_base_state::init_megadriv_c2()
diff --git a/src/mame/machine/mhavoc.cpp b/src/mame/machine/mhavoc.cpp
index 65e9a99a3a6..2dbfe7067af 100644
--- a/src/mame/machine/mhavoc.cpp
+++ b/src/mame/machine/mhavoc.cpp
@@ -319,6 +319,6 @@ WRITE8_MEMBER(mhavoc_state::mhavocrv_speech_strobe_w)
void mhavoc_state::init_mhavocrv()
{
// For Return to Vax, add support for the normally-unused speech module.
- m_gamma->space(AS_PROGRAM).install_write_handler(0x5800, 0x5800, write8_delegate(FUNC(mhavoc_state::mhavocrv_speech_data_w),this));
- m_gamma->space(AS_PROGRAM).install_write_handler(0x5900, 0x5900, write8_delegate(FUNC(mhavoc_state::mhavocrv_speech_strobe_w),this));
+ m_gamma->space(AS_PROGRAM).install_write_handler(0x5800, 0x5800, write8_delegate(*this, FUNC(mhavoc_state::mhavocrv_speech_data_w)));
+ m_gamma->space(AS_PROGRAM).install_write_handler(0x5900, 0x5900, write8_delegate(*this, FUNC(mhavoc_state::mhavocrv_speech_strobe_w)));
}
diff --git a/src/mame/machine/micro3d.cpp b/src/mame/machine/micro3d.cpp
index e30e9361b5d..e96be82b856 100644
--- a/src/mame/machine/micro3d.cpp
+++ b/src/mame/machine/micro3d.cpp
@@ -524,8 +524,8 @@ void micro3d_state::init_botss()
address_space &space = m_maincpu->space(AS_PROGRAM);
/* Required to pass the hardware version check */
- space.install_read_handler(0x140000, 0x140001, read16_delegate(FUNC(micro3d_state::botss_140000_r),this));
- space.install_read_handler(0x180000, 0x180001, read16_delegate(FUNC(micro3d_state::botss_180000_r),this));
+ space.install_read_handler(0x140000, 0x140001, read16_delegate(*this, FUNC(micro3d_state::botss_140000_r)));
+ space.install_read_handler(0x180000, 0x180001, read16_delegate(*this, FUNC(micro3d_state::botss_180000_r)));
init_micro3d();
}
diff --git a/src/mame/machine/midtunit.cpp b/src/mame/machine/midtunit.cpp
index 5572fa5e7d7..d30338f6308 100644
--- a/src/mame/machine/midtunit.cpp
+++ b/src/mame/machine/midtunit.cpp
@@ -379,7 +379,7 @@ void midtunit_state::init_mktunit()
init_tunit_generic(SOUND_ADPCM);
/* protection */
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1b00000, 0x1b6ffff, read16_delegate(FUNC(midtunit_state::mk_prot_r),this), write16_delegate(FUNC(midtunit_state::mk_prot_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1b00000, 0x1b6ffff, read16_delegate(*this, FUNC(midtunit_state::mk_prot_r)), write16_delegate(*this, FUNC(midtunit_state::mk_prot_w)));
/* sound chip protection (hidden RAM) */
m_adpcm_sound->get_cpu()->space(AS_PROGRAM).install_ram(0xfb9c, 0xfbc6);
@@ -388,7 +388,7 @@ void midtunit_state::init_mktunit()
void midtunit_state::init_mkturbo()
{
/* protection */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xfffff400, 0xfffff40f, read16_delegate(FUNC(midtunit_state::mkturbo_prot_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xfffff400, 0xfffff40f, read16_delegate(*this, FUNC(midtunit_state::mkturbo_prot_r)));
init_mktunit();
}
@@ -402,13 +402,13 @@ void midtunit_state::init_nbajam_common(int te_protection)
if (!te_protection)
{
m_nbajam_prot_table = nbajam_prot_values;
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1b14020, 0x1b2503f, read16_delegate(FUNC(midtunit_state::nbajam_prot_r),this), write16_delegate(FUNC(midtunit_state::nbajam_prot_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1b14020, 0x1b2503f, read16_delegate(*this, FUNC(midtunit_state::nbajam_prot_r)), write16_delegate(*this, FUNC(midtunit_state::nbajam_prot_w)));
}
else
{
m_nbajam_prot_table = nbajamte_prot_values;
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1b15f40, 0x1b37f5f, read16_delegate(FUNC(midtunit_state::nbajam_prot_r),this), write16_delegate(FUNC(midtunit_state::nbajam_prot_w),this));
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1b95f40, 0x1bb7f5f, read16_delegate(FUNC(midtunit_state::nbajam_prot_r),this), write16_delegate(FUNC(midtunit_state::nbajam_prot_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1b15f40, 0x1b37f5f, read16_delegate(*this, FUNC(midtunit_state::nbajam_prot_r)), write16_delegate(*this, FUNC(midtunit_state::nbajam_prot_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1b95f40, 0x1bb7f5f, read16_delegate(*this, FUNC(midtunit_state::nbajam_prot_r)), write16_delegate(*this, FUNC(midtunit_state::nbajam_prot_w)));
}
/* sound chip protection (hidden RAM) */
@@ -437,7 +437,7 @@ void midtunit_state::init_jdreddp()
m_maincpu->space(AS_PROGRAM).nop_write(0x01d81060, 0x01d8107f);
/* protection */
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1b00000, 0x1bfffff, read16_delegate(FUNC(midtunit_state::jdredd_prot_r),this), write16_delegate(FUNC(midtunit_state::jdredd_prot_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1b00000, 0x1bfffff, read16_delegate(*this, FUNC(midtunit_state::jdredd_prot_r)), write16_delegate(*this, FUNC(midtunit_state::jdredd_prot_w)));
/* sound chip protection (hidden RAM) */
m_adpcm_sound->get_cpu()->space(AS_PROGRAM).install_read_bank(0xfbcf, 0xfbf9, "bank7");
@@ -462,13 +462,13 @@ void midtunit_state::init_mk2()
m_video->set_gfx_rom_large(true);
/* protection */
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x00f20c60, 0x00f20c7f, write16_delegate(FUNC(midtunit_state::mk2_prot_w),this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x00f42820, 0x00f4283f, write16_delegate(FUNC(midtunit_state::mk2_prot_w),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x01a190e0, 0x01a190ff, read16_delegate(FUNC(midtunit_state::mk2_prot_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x01a191c0, 0x01a191df, read16_delegate(FUNC(midtunit_state::mk2_prot_shift_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x01a3d0c0, 0x01a3d0ff, read16_delegate(FUNC(midtunit_state::mk2_prot_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x01d9d1e0, 0x01d9d1ff, read16_delegate(FUNC(midtunit_state::mk2_prot_const_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x01def920, 0x01def93f, read16_delegate(FUNC(midtunit_state::mk2_prot_const_r),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x00f20c60, 0x00f20c7f, write16_delegate(*this, FUNC(midtunit_state::mk2_prot_w)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x00f42820, 0x00f4283f, write16_delegate(*this, FUNC(midtunit_state::mk2_prot_w)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x01a190e0, 0x01a190ff, read16_delegate(*this, FUNC(midtunit_state::mk2_prot_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x01a191c0, 0x01a191df, read16_delegate(*this, FUNC(midtunit_state::mk2_prot_shift_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x01a3d0c0, 0x01a3d0ff, read16_delegate(*this, FUNC(midtunit_state::mk2_prot_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x01d9d1e0, 0x01d9d1ff, read16_delegate(*this, FUNC(midtunit_state::mk2_prot_const_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x01def920, 0x01def93f, read16_delegate(*this, FUNC(midtunit_state::mk2_prot_const_r)));
}
diff --git a/src/mame/machine/midwayic.cpp b/src/mame/machine/midwayic.cpp
index 02b727b7acb..560e6a4b838 100644
--- a/src/mame/machine/midwayic.cpp
+++ b/src/mame/machine/midwayic.cpp
@@ -756,11 +756,13 @@ void midway_ioasic_device::device_start()
/* configure the fifo */
if (m_has_dcs)
{
- m_dcs->set_fifo_callbacks(read16_delegate(FUNC(midway_ioasic_device::fifo_r),this),
- read16_delegate(FUNC(midway_ioasic_device::fifo_status_r),this),
- write_line_delegate(FUNC(midway_ioasic_device::fifo_reset_w),this));
- m_dcs->set_io_callbacks(write_line_delegate(FUNC(midway_ioasic_device::ioasic_output_full),this),
- write_line_delegate(FUNC(midway_ioasic_device::ioasic_input_empty),this));
+ m_dcs->set_fifo_callbacks(
+ read16_delegate(*this, FUNC(midway_ioasic_device::fifo_r)),
+ read16_delegate(*this, FUNC(midway_ioasic_device::fifo_status_r)),
+ write_line_delegate(*this, FUNC(midway_ioasic_device::fifo_reset_w)));
+ m_dcs->set_io_callbacks(
+ write_line_delegate(*this, FUNC(midway_ioasic_device::ioasic_output_full)),
+ write_line_delegate(*this, FUNC(midway_ioasic_device::ioasic_input_empty)));
}
fifo_reset_w(1);
diff --git a/src/mame/machine/midwunit.cpp b/src/mame/machine/midwunit.cpp
index cacd27d68a9..da656020f03 100644
--- a/src/mame/machine/midwunit.cpp
+++ b/src/mame/machine/midwunit.cpp
@@ -209,14 +209,14 @@ void midwunit_state::init_mk3r10()
void midwunit_state::init_umk3()
{
init_mk3_common();
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x0106a060, 0x0106a09f, write16_delegate(FUNC(midwunit_state::umk3_palette_hack_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x0106a060, 0x0106a09f, write16_delegate(*this, FUNC(midwunit_state::umk3_palette_hack_w)));
m_umk3_palette = m_mainram + (0x6a060>>4);
}
void midwunit_state::init_umk3r11()
{
init_mk3_common();
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x0106a060, 0x0106a09f,write16_delegate(FUNC(midwunit_state::umk3_palette_hack_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x0106a060, 0x0106a09f, write16_delegate(*this, FUNC(midwunit_state::umk3_palette_hack_w)));
m_umk3_palette = m_mainram + (0x6a060>>4);
}
@@ -291,7 +291,7 @@ WRITE16_MEMBER(midwunit_state::wwfmania_io_0_w)
void midwunit_state::init_wwfmania()
{
/* enable I/O shuffling */
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x01800000, 0x0180000f, write16_delegate(FUNC(midwunit_state::wwfmania_io_0_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x01800000, 0x0180000f, write16_delegate(*this, FUNC(midwunit_state::wwfmania_io_0_w)));
/* serial prefixes 430, 528 */
//midway_serial_pic_init(machine(), 528);
diff --git a/src/mame/machine/midxunit.cpp b/src/mame/machine/midxunit.cpp
index 9ac0370eafa..9834cfc507a 100644
--- a/src/mame/machine/midxunit.cpp
+++ b/src/mame/machine/midxunit.cpp
@@ -267,7 +267,7 @@ void midxunit_state::machine_reset()
for (int i = 0; i < 16; i++)
m_ioshuffle[i] = i % 8;
- m_dcs->set_io_callbacks(write_line_delegate(FUNC(midxunit_state::midxunit_dcs_output_full),this), write_line_delegate());
+ m_dcs->set_io_callbacks(write_line_delegate(*this, FUNC(midxunit_state::midxunit_dcs_output_full)), write_line_delegate(*this));
}
diff --git a/src/mame/machine/midyunit.cpp b/src/mame/machine/midyunit.cpp
index c40aae938d3..68c199100df 100644
--- a/src/mame/machine/midyunit.cpp
+++ b/src/mame/machine/midyunit.cpp
@@ -286,7 +286,7 @@ void midyunit_state::init_generic(int bpp, int sound, int prot_start, int prot_e
switch (sound)
{
case SOUND_CVSD_SMALL:
- m_cvsd_sound->get_cpu()->space(AS_PROGRAM).install_write_handler(prot_start, prot_end, write8_delegate(FUNC(midyunit_state::cvsd_protection_w), this));
+ m_cvsd_sound->get_cpu()->space(AS_PROGRAM).install_write_handler(prot_start, prot_end, write8_delegate(*this, FUNC(midyunit_state::cvsd_protection_w)));
m_cvsd_protection_base = memregion("cvsd:cpu")->base() + 0x10000 + (prot_start - 0x8000);
break;
@@ -467,7 +467,7 @@ READ16_MEMBER(midyunit_state::mkturbo_prot_r)
void midyunit_state::init_mkyturbo()
{
/* protection */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xfffff400, 0xfffff40f, read16_delegate(FUNC(midyunit_state::mkturbo_prot_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xfffff400, 0xfffff40f, read16_delegate(*this, FUNC(midyunit_state::mkturbo_prot_r)));
init_mkyunit();
}
@@ -476,31 +476,31 @@ void midyunit_state::init_mkyturbo()
void midyunit_state::term2_init_common(write16_delegate hack_w)
{
- /* protection */
- static const struct protection_data term2_protection_data =
+ // protection
+ static constexpr struct protection_data term2_protection_data =
{
{ 0x0f00, 0x0f00, 0x0f00 },
{ 0x4000, 0xf000, 0xa000 }
};
m_prot_data = &term2_protection_data;
- /* common init */
+ // common init
init_generic(6, SOUND_ADPCM, 0xfa8d, 0xfa9c);
- /* special inputs */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x01c00000, 0x01c0005f, read16_delegate(FUNC(midyunit_state::term2_input_r), this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x01e00000, 0x01e0001f, write16_delegate(FUNC(midyunit_state::term2_sound_w), this));
+ // special inputs */
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x01c00000, 0x01c0005f, read16_delegate(*this, FUNC(midyunit_state::term2_input_r)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x01e00000, 0x01e0001f, write16_delegate(*this, FUNC(midyunit_state::term2_sound_w)));
- /* HACK: this prevents the freeze on the movies */
- /* until we figure what's causing it, this is better than nothing */
+ // HACK: this prevents the freeze on the movies
+ // until we figure what's causing it, this is better than nothing
m_maincpu->space(AS_PROGRAM).install_write_handler(0x010aa0e0, 0x010aa0ff, hack_w);
m_t2_hack_mem = m_mainram + (0xaa0e0>>4);
}
-void midyunit_state::init_term2() { term2_init_common(write16_delegate(FUNC(midyunit_state::term2_hack_w),this)); }
-void midyunit_state::init_term2la3() { term2_init_common(write16_delegate(FUNC(midyunit_state::term2la3_hack_w),this)); }
-void midyunit_state::init_term2la2() { term2_init_common(write16_delegate(FUNC(midyunit_state::term2la2_hack_w),this)); }
-void midyunit_state::init_term2la1() { term2_init_common(write16_delegate(FUNC(midyunit_state::term2la1_hack_w),this)); }
+void midyunit_state::init_term2() { term2_init_common(write16_delegate(*this, FUNC(midyunit_state::term2_hack_w))); }
+void midyunit_state::init_term2la3() { term2_init_common(write16_delegate(*this, FUNC(midyunit_state::term2la3_hack_w))); }
+void midyunit_state::init_term2la2() { term2_init_common(write16_delegate(*this, FUNC(midyunit_state::term2la2_hack_w))); }
+void midyunit_state::init_term2la1() { term2_init_common(write16_delegate(*this, FUNC(midyunit_state::term2la1_hack_w))); }
diff --git a/src/mame/machine/model1io2.cpp b/src/mame/machine/model1io2.cpp
index 1b581fa5b14..78a307ea9ab 100644
--- a/src/mame/machine/model1io2.cpp
+++ b/src/mame/machine/model1io2.cpp
@@ -194,14 +194,14 @@ void model1io2_device::device_add_mconfig(machine_config &config)
screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); // not accurate
screen.set_size(6*20+1, 19);
screen.set_visarea(0, 6*20, 0, 19-1);
- screen.set_screen_update("lcd", FUNC(hd44780_device::screen_update));
+ screen.set_screen_update(m_lcd, FUNC(hd44780_device::screen_update));
screen.set_palette("palette");
PALETTE(config, "palette", FUNC(model1io2_device::lcd_palette), 3);
HD44780(config, m_lcd, 0);
m_lcd->set_lcd_size(2, 20);
- m_lcd->set_pixel_update_cb(FUNC(model1io2_device::lcd_pixel_update), this);
+ m_lcd->set_pixel_update_cb(FUNC(model1io2_device::lcd_pixel_update));
}
diff --git a/src/mame/machine/mpu4.cpp b/src/mame/machine/mpu4.cpp
index 540951a7193..25ecc5d8c4e 100644
--- a/src/mame/machine/mpu4.cpp
+++ b/src/mame/machine/mpu4.cpp
@@ -2127,22 +2127,22 @@ READ8_MEMBER(mpu4_state::mpu4_ym2413_r)
void mpu4_state::mpu4_install_mod4yam_space(address_space &space)
{
- space.install_read_handler(0x0880, 0x0882, read8_delegate(FUNC(mpu4_state::mpu4_ym2413_r),this));
- space.install_write_handler(0x0880, 0x0881, write8_delegate(FUNC(mpu4_state::mpu4_ym2413_w),this));
+ space.install_read_handler(0x0880, 0x0882, read8_delegate(*this, FUNC(mpu4_state::mpu4_ym2413_r)));
+ space.install_write_handler(0x0880, 0x0881, write8_delegate(*this, FUNC(mpu4_state::mpu4_ym2413_w)));
}
void mpu4_state::mpu4_install_mod4oki_space(address_space &space)
{
- pia6821_device *pia_ic4ss = subdevice<pia6821_device>("pia_ic4ss");
+ pia6821_device *const pia_ic4ss = subdevice<pia6821_device>("pia_ic4ss");
- space.install_readwrite_handler(0x0880, 0x0883, read8sm_delegate(FUNC(pia6821_device::read), pia_ic4ss), write8sm_delegate(FUNC(pia6821_device::write), pia_ic4ss));
- space.install_read_handler(0x08c0, 0x08c7, read8sm_delegate(FUNC(ptm6840_device::read), (ptm6840_device*)m_ptm_ic3ss));
- space.install_write_handler(0x08c0, 0x08c7, write8_delegate(FUNC(mpu4_state::ic3ss_w),this));
+ space.install_readwrite_handler(0x0880, 0x0883, read8sm_delegate(*pia_ic4ss, FUNC(pia6821_device::read)), write8sm_delegate(*pia_ic4ss, FUNC(pia6821_device::write)));
+ space.install_read_handler(0x08c0, 0x08c7, read8sm_delegate(*m_ptm_ic3ss, FUNC(ptm6840_device::read)));
+ space.install_write_handler(0x08c0, 0x08c7, write8_delegate(*this, FUNC(mpu4_state::ic3ss_w)));
}
void mpu4_state::mpu4_install_mod4bwb_space(address_space &space)
{
- space.install_readwrite_handler(0x0810, 0x0810, read8_delegate(FUNC(mpu4_state::bwb_characteriser_r),this),write8_delegate(FUNC(mpu4_state::bwb_characteriser_w),this));
+ space.install_readwrite_handler(0x0810, 0x0810, read8_delegate(*this, FUNC(mpu4_state::bwb_characteriser_r)), write8_delegate(*this, FUNC(mpu4_state::bwb_characteriser_w)));
mpu4_install_mod4oki_space(space);
}
@@ -2518,8 +2518,8 @@ void mpu4_state::init_m4default_big()
else
{
m_bwb_bank = 1;
- space.install_write_handler(0x0858, 0x0858, write8_delegate(FUNC(mpu4_state::bankswitch_w),this));
- space.install_write_handler(0x0878, 0x0878, write8_delegate(FUNC(mpu4_state::bankset_w),this));
+ space.install_write_handler(0x0858, 0x0858, write8_delegate(*this, FUNC(mpu4_state::bankswitch_w)));
+ space.install_write_handler(0x0878, 0x0878, write8_delegate(*this, FUNC(mpu4_state::bankset_w)));
uint8_t *rom = memregion("maincpu")->base();
m_numbanks = size / 0x10000;
@@ -2552,8 +2552,8 @@ void mpu4_state::init_m_frkstn()
{
address_space &space = m_maincpu->space(AS_PROGRAM);
init_m4default_big();
- space.install_read_handler(0x0880, 0x0880, read8_delegate(FUNC(mpu4_state::crystal_sound_r),this));
- space.install_write_handler(0x0881, 0x0881, write8_delegate(FUNC(mpu4_state::crystal_sound_w),this));
+ space.install_read_handler(0x0880, 0x0880, read8_delegate(*this, FUNC(mpu4_state::crystal_sound_r)));
+ space.install_write_handler(0x0881, 0x0881, write8_delegate(*this, FUNC(mpu4_state::crystal_sound_w)));
}
// thanks to Project Amber for descramble information
diff --git a/src/mame/machine/msx_systemflags.cpp b/src/mame/machine/msx_systemflags.cpp
index d76b82447eb..29dd1cc3c87 100644
--- a/src/mame/machine/msx_systemflags.cpp
+++ b/src/mame/machine/msx_systemflags.cpp
@@ -24,8 +24,8 @@ void msx_systemflags_device::device_start()
// Install IO read/write handlers
address_space &space = m_maincpu->space(AS_IO);
- space.install_write_handler(0xf4, 0xf4, write8_delegate(FUNC(msx_systemflags_device::write), this));
- space.install_read_handler(0xf4, 0xf4, read8_delegate(FUNC(msx_systemflags_device::read), this));
+ space.install_write_handler(0xf4, 0xf4, write8_delegate(*this, FUNC(msx_systemflags_device::write)));
+ space.install_read_handler(0xf4, 0xf4, read8_delegate(*this, FUNC(msx_systemflags_device::read)));
}
diff --git a/src/mame/machine/mtx.cpp b/src/mame/machine/mtx.cpp
index f4b96943f23..93457dc85f2 100644
--- a/src/mame/machine/mtx.cpp
+++ b/src/mame/machine/mtx.cpp
@@ -130,7 +130,7 @@ void mtx_state::bankswitch(uint8_t data)
{
/* rom based memory map */
program.install_rom(0x0000, 0x1fff, memregion("user1")->base());
- program.install_write_handler(0x0000, 0x1fff, write8_delegate(FUNC(mtx_state::mtx_subpage_w), this));
+ program.install_write_handler(0x0000, 0x1fff, write8_delegate(*this, FUNC(mtx_state::mtx_subpage_w)));
program.install_read_bank(0x2000, 0x3fff, "rommap_bank1");
program.unmap_write(0x2000, 0x3fff);
program.install_readwrite_bank(0x4000, 0x7fff, "rommap_bank2");
diff --git a/src/mame/machine/namcos1.cpp b/src/mame/machine/namcos1.cpp
index 02dc8fedb50..67d79665f30 100644
--- a/src/mame/machine/namcos1.cpp
+++ b/src/mame/machine/namcos1.cpp
@@ -610,7 +610,7 @@ void namcos1_state::driver_init()
}
// kludge! see notes
- m_mcu->space(AS_PROGRAM).install_write_handler(0xc000, 0xc000, write8smo_delegate(FUNC(namcos1_state::mcu_patch_w), this));
+ m_mcu->space(AS_PROGRAM).install_write_handler(0xc000, 0xc000, write8smo_delegate(*this, FUNC(namcos1_state::mcu_patch_w)));
// these are overridden as needed in the specific DRIVER_INIT_MEMBERs
m_key_id = 0;
@@ -625,16 +625,16 @@ void namcos1_state::driver_init()
void namcos1_state::key_type_1_init(int key_id)
{
m_c117->space(AS_PROGRAM).install_readwrite_handler(0x2f8000, 0x2f9fff,
- read8sm_delegate(FUNC(namcos1_state::key_type1_r),this),
- write8sm_delegate(FUNC(namcos1_state::key_type1_w),this));
+ read8sm_delegate(*this, FUNC(namcos1_state::key_type1_r)),
+ write8sm_delegate(*this, FUNC(namcos1_state::key_type1_w)));
m_key_id = key_id;
}
void namcos1_state::key_type_2_init(int key_id)
{
m_c117->space(AS_PROGRAM).install_readwrite_handler(0x2f8000, 0x2f9fff,
- read8sm_delegate(FUNC(namcos1_state::key_type2_r),this),
- write8sm_delegate(FUNC(namcos1_state::key_type2_w),this));
+ read8sm_delegate(*this, FUNC(namcos1_state::key_type2_r)),
+ write8sm_delegate(*this, FUNC(namcos1_state::key_type2_w)));
m_key_id = key_id;
save_item(NAME(m_key_quotient));
save_item(NAME(m_key_reminder));
@@ -644,8 +644,8 @@ void namcos1_state::key_type_2_init(int key_id)
void namcos1_state::key_type_3_init(int key_id, int reg, int rng, int swap4_arg, int swap4, int bottom4, int top4)
{
m_c117->space(AS_PROGRAM).install_readwrite_handler(0x2f8000, 0x2f9fff,
- read8sm_delegate(FUNC(namcos1_state::key_type3_r),this),
- write8sm_delegate(FUNC(namcos1_state::key_type3_w),this));
+ read8sm_delegate(*this, FUNC(namcos1_state::key_type3_r)),
+ write8sm_delegate(*this, FUNC(namcos1_state::key_type3_w)));
m_key_id = key_id;
m_key_reg = reg;
m_key_rng = rng;
@@ -798,7 +798,7 @@ void namcos1_state::init_tankfrc4()
m_stored_input[0] = 0;
m_stored_input[1] = 0;
- m_mcu->space(AS_PROGRAM).install_read_handler(0x1400, 0x1401, read8sm_delegate(FUNC(namcos1_state::faceoff_inputs_r), this));
+ m_mcu->space(AS_PROGRAM).install_read_handler(0x1400, 0x1401, read8sm_delegate(*this, FUNC(namcos1_state::faceoff_inputs_r)));
save_item(NAME(m_input_count));
save_item(NAME(m_stored_input));
}
@@ -878,7 +878,7 @@ void namcos1_state::init_quester()
{
m_strobe = 0;
driver_init();
- m_mcu->space(AS_PROGRAM).install_read_handler(0x1400, 0x1401, read8sm_delegate(FUNC(namcos1_state::quester_paddle_r), this));
+ m_mcu->space(AS_PROGRAM).install_read_handler(0x1400, 0x1401, read8sm_delegate(*this, FUNC(namcos1_state::quester_paddle_r)));
save_item(NAME(m_strobe));
}
@@ -964,7 +964,7 @@ void namcos1_state::init_berabohm()
m_strobe = 0;
m_strobe_count = 0;
driver_init();
- m_mcu->space(AS_PROGRAM).install_read_handler(0x1400, 0x1401, read8sm_delegate(FUNC(namcos1_state::berabohm_buttons_r), this));
+ m_mcu->space(AS_PROGRAM).install_read_handler(0x1400, 0x1401, read8sm_delegate(*this, FUNC(namcos1_state::berabohm_buttons_r)));
save_item(NAME(m_input_count));
save_item(NAME(m_strobe));
save_item(NAME(m_strobe_count));
@@ -1043,7 +1043,7 @@ void namcos1_state::init_faceoff()
m_stored_input[1] = 0;
driver_init();
- m_mcu->space(AS_PROGRAM).install_read_handler(0x1400, 0x1401, read8sm_delegate(FUNC(namcos1_state::faceoff_inputs_r), this));
+ m_mcu->space(AS_PROGRAM).install_read_handler(0x1400, 0x1401, read8sm_delegate(*this, FUNC(namcos1_state::faceoff_inputs_r)));
save_item(NAME(m_input_count));
save_item(NAME(m_stored_input));
}
diff --git a/src/mame/machine/naomi.cpp b/src/mame/machine/naomi.cpp
index 4d1f2ddfd6a..78a7f61ca21 100644
--- a/src/mame/machine/naomi.cpp
+++ b/src/mame/machine/naomi.cpp
@@ -210,8 +210,8 @@ void naomi_state::set_drc_options()
void naomi_state::init_naomi()
{
- //m_maincpu->space(AS_PROGRAM).install_read_handler(0xc2ad238, 0xc2ad23f, read64_delegate(FUNC(naomi_state::naomi_biose_idle_skip_r),this); // rev e bios
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xc2b0600, 0xc2b0607, read64_delegate(FUNC(naomi_state::naomi_biosh_idle_skip_r), this)); // rev h bios
+ //m_maincpu->space(AS_PROGRAM).install_read_handler(0xc2ad238, 0xc2ad23f, read64_delegate(*this, FUNC(naomi_state::naomi_biose_idle_skip_r)); // rev e bios
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xc2b0600, 0xc2b0607, read64_delegate(*this, FUNC(naomi_state::naomi_biosh_idle_skip_r))); // rev h bios
set_drc_options();
create_pic_from_retdat();
@@ -219,7 +219,7 @@ void naomi_state::init_naomi()
void naomi2_state::init_naomi2()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xc2b0600, 0xc2b0607, read64_delegate(FUNC(naomi_state::naomi2_biose_idle_skip_r),this)); // rev e bios
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xc2b0600, 0xc2b0607, read64_delegate(*this, FUNC(naomi_state::naomi2_biose_idle_skip_r))); // rev e bios
set_drc_options();
create_pic_from_retdat();
@@ -298,8 +298,8 @@ CUSTOM_INPUT_MEMBER(naomi_state::naomi_kb_r)
void naomi_state::init_naomi_mp()
{
- //m_maincpu->space(AS_PROGRAM).install_read_handler(0xc2ad238, 0xc2ad23f, read64_delegate(FUNC(naomi_state::naomi_biose_idle_skip_r),this); // rev e bios
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xc2b0600, 0xc2b0607, read64_delegate(FUNC(naomi_state::naomi_biosh_idle_skip_r),this)); // rev h bios
+ //m_maincpu->space(AS_PROGRAM).install_read_handler(0xc2ad238, 0xc2ad23f, read64_delegate(*this, FUNC(naomi_state::naomi_biose_idle_skip_r)); // rev e bios
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xc2b0600, 0xc2b0607, read64_delegate(*this, FUNC(naomi_state::naomi_biosh_idle_skip_r))); // rev h bios
m_mp_mux = 0;
set_drc_options();
@@ -308,8 +308,8 @@ void naomi_state::init_naomi_mp()
void naomi_state::init_naomigd()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xc2ad238, 0xc2ad23f, read64_delegate(FUNC(naomi_state::naomi_biose_idle_skip_r),this)); // rev e bios
- //m_maincpu->space(AS_PROGRAM).install_read_handler(0xc2b0600, 0xc2b0607, read64_delegate(FUNC(naomi_state::naomi_biosh_idle_skip_r),this)); // rev h bios
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xc2ad238, 0xc2ad23f, read64_delegate(*this, FUNC(naomi_state::naomi_biose_idle_skip_r))); // rev e bios
+ //m_maincpu->space(AS_PROGRAM).install_read_handler(0xc2b0600, 0xc2b0607, read64_delegate(*this, FUNC(naomi_state::naomi_biosh_idle_skip_r))); // rev h bios
set_drc_options();
create_pic_from_retdat();
@@ -317,8 +317,8 @@ void naomi_state::init_naomigd()
void naomi_state::init_naomigd_mp()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xc2ad238, 0xc2ad23f, read64_delegate(FUNC(naomi_state::naomi_biose_idle_skip_r),this)); // rev e bios
- //m_maincpu->space(AS_PROGRAM).install_read_handler(0xc2b0600, 0xc2b0607, read64_delegate(FUNC(naomi_state::naomi_biosh_idle_skip_r),this)); // rev h bios
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xc2ad238, 0xc2ad23f, read64_delegate(*this, FUNC(naomi_state::naomi_biose_idle_skip_r))); // rev e bios
+ //m_maincpu->space(AS_PROGRAM).install_read_handler(0xc2b0600, 0xc2b0607, read64_delegate(*this, FUNC(naomi_state::naomi_biosh_idle_skip_r))); // rev h bios
m_mp_mux = 0;
set_drc_options();
@@ -336,7 +336,7 @@ READ64_MEMBER(naomi_state::naomigd_ggxxsla_idle_skip_r )
void naomi_state::init_ggxxsla()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xc1aae18, 0xc1aae1f, read64_delegate(FUNC(naomi_state::naomigd_ggxxsla_idle_skip_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xc1aae18, 0xc1aae1f, read64_delegate(*this, FUNC(naomi_state::naomigd_ggxxsla_idle_skip_r)));
init_naomigd();
}
@@ -351,7 +351,7 @@ READ64_MEMBER(naomi_state::naomigd_ggxx_idle_skip_r )
void naomi_state::init_ggxx()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xc1837b8, 0xc1837bf, read64_delegate(FUNC(naomi_state::naomigd_ggxx_idle_skip_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xc1837b8, 0xc1837bf, read64_delegate(*this, FUNC(naomi_state::naomigd_ggxx_idle_skip_r)));
init_naomigd();
}
@@ -367,7 +367,7 @@ READ64_MEMBER(naomi_state::naomigd_ggxxrl_idle_skip_r )
void naomi_state::init_ggxxrl()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xc18d6c8, 0xc18d6cf, read64_delegate(FUNC(naomi_state::naomigd_ggxxrl_idle_skip_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xc18d6c8, 0xc18d6cf, read64_delegate(*this, FUNC(naomi_state::naomigd_ggxxrl_idle_skip_r)));
init_naomigd();
}
@@ -382,7 +382,7 @@ READ64_MEMBER(naomi_state::naomigd_sfz3ugd_idle_skip_r )
void naomi_state::init_sfz3ugd()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xc5dc900, 0xc5dc907, read64_delegate(FUNC(naomi_state::naomigd_sfz3ugd_idle_skip_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xc5dc900, 0xc5dc907, read64_delegate(*this, FUNC(naomi_state::naomigd_sfz3ugd_idle_skip_r)));
init_naomigd();
}
@@ -400,7 +400,7 @@ READ64_MEMBER(naomi_state::hotd2_idle_skip_r )
void naomi_state::init_hotd2()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xca25fb8, 0xca25fbf, read64_delegate(FUNC(naomi_state::hotd2_idle_skip_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xca25fb8, 0xca25fbf, read64_delegate(*this, FUNC(naomi_state::hotd2_idle_skip_r)));
set_drc_options();
}
diff --git a/src/mame/machine/nes.cpp b/src/mame/machine/nes.cpp
index d46c0ed286d..56db41cf829 100644
--- a/src/mame/machine/nes.cpp
+++ b/src/mame/machine/nes.cpp
@@ -55,21 +55,21 @@ void nes_state::machine_start()
if (m_cartslot && m_cartslot->m_cart)
{
// Set up memory handlers
- space.install_read_handler(0x4100, 0x5fff, read8sm_delegate(FUNC(nes_cart_slot_device::read_l), (nes_cart_slot_device *)m_cartslot));
- space.install_write_handler(0x4100, 0x5fff, write8sm_delegate(FUNC(nes_cart_slot_device::write_l), (nes_cart_slot_device *)m_cartslot));
- space.install_read_handler(0x6000, 0x7fff, read8sm_delegate(FUNC(nes_cart_slot_device::read_m), (nes_cart_slot_device *)m_cartslot));
- space.install_write_handler(0x6000, 0x7fff, write8sm_delegate(FUNC(nes_cart_slot_device::write_m), (nes_cart_slot_device *)m_cartslot));
+ space.install_read_handler(0x4100, 0x5fff, read8sm_delegate(*m_cartslot, FUNC(nes_cart_slot_device::read_l)));
+ space.install_write_handler(0x4100, 0x5fff, write8sm_delegate(*m_cartslot, FUNC(nes_cart_slot_device::write_l)));
+ space.install_read_handler(0x6000, 0x7fff, read8sm_delegate(*m_cartslot, FUNC(nes_cart_slot_device::read_m)));
+ space.install_write_handler(0x6000, 0x7fff, write8sm_delegate(*m_cartslot, FUNC(nes_cart_slot_device::write_m)));
space.install_read_bank(0x8000, 0x9fff, "prg0");
space.install_read_bank(0xa000, 0xbfff, "prg1");
space.install_read_bank(0xc000, 0xdfff, "prg2");
space.install_read_bank(0xe000, 0xffff, "prg3");
- space.install_write_handler(0x8000, 0xffff, write8sm_delegate(FUNC(nes_cart_slot_device::write_h), (nes_cart_slot_device *)m_cartslot));
+ space.install_write_handler(0x8000, 0xffff, write8sm_delegate(*m_cartslot, FUNC(nes_cart_slot_device::write_h)));
- m_ppu->space(AS_PROGRAM).install_readwrite_handler(0, 0x1fff, read8sm_delegate(FUNC(device_nes_cart_interface::chr_r),m_cartslot->m_cart), write8sm_delegate(FUNC(device_nes_cart_interface::chr_w),m_cartslot->m_cart));
- m_ppu->space(AS_PROGRAM).install_readwrite_handler(0x2000, 0x3eff, read8sm_delegate(FUNC(device_nes_cart_interface::nt_r),m_cartslot->m_cart), write8sm_delegate(FUNC(device_nes_cart_interface::nt_w),m_cartslot->m_cart));
- m_ppu->set_scanline_callback(ppu2c0x_device::scanline_delegate(FUNC(device_nes_cart_interface::scanline_irq),m_cartslot->m_cart));
- m_ppu->set_hblank_callback(ppu2c0x_device::hblank_delegate(FUNC(device_nes_cart_interface::hblank_irq),m_cartslot->m_cart));
- m_ppu->set_latch(ppu2c0x_device::latch_delegate(FUNC(device_nes_cart_interface::ppu_latch),m_cartslot->m_cart));
+ m_ppu->space(AS_PROGRAM).install_readwrite_handler(0, 0x1fff, read8sm_delegate(*m_cartslot->m_cart, FUNC(device_nes_cart_interface::chr_r)), write8sm_delegate(*m_cartslot->m_cart, FUNC(device_nes_cart_interface::chr_w)));
+ m_ppu->space(AS_PROGRAM).install_readwrite_handler(0x2000, 0x3eff, read8sm_delegate(*m_cartslot->m_cart, FUNC(device_nes_cart_interface::nt_r)), write8sm_delegate(*m_cartslot->m_cart, FUNC(device_nes_cart_interface::nt_w)));
+ m_ppu->set_scanline_callback(*m_cartslot->m_cart, FUNC(device_nes_cart_interface::scanline_irq));
+ m_ppu->set_hblank_callback(*m_cartslot->m_cart, FUNC(device_nes_cart_interface::hblank_irq));
+ m_ppu->set_latch(*m_cartslot->m_cart, FUNC(device_nes_cart_interface::ppu_latch));
// install additional handlers (read_h, read_ex, write_ex)
if (m_cartslot->get_pcb_id() == STD_EXROM || m_cartslot->get_pcb_id() == STD_NROM368 || m_cartslot->get_pcb_id() == STD_DISKSYS
@@ -82,20 +82,20 @@ void nes_state::machine_start()
|| m_cartslot->get_pcb_id() == BMC_70IN1 || m_cartslot->get_pcb_id() == BMC_800IN1)
{
logerror("read_h installed!\n");
- space.install_read_handler(0x8000, 0xffff, read8sm_delegate(FUNC(nes_cart_slot_device::read_h), (nes_cart_slot_device *)m_cartslot));
+ space.install_read_handler(0x8000, 0xffff, read8sm_delegate(*m_cartslot, FUNC(nes_cart_slot_device::read_h)));
}
if (m_cartslot->get_pcb_id() == BTL_SMB2JB || m_cartslot->get_pcb_id() == UNL_AC08 || m_cartslot->get_pcb_id() == UNL_SMB2J || m_cartslot->get_pcb_id() == BTL_09034A)
{
logerror("write_ex installed!\n");
- space.install_write_handler(0x4020, 0x40ff, write8sm_delegate(FUNC(nes_cart_slot_device::write_ex), (nes_cart_slot_device *)m_cartslot));
+ space.install_write_handler(0x4020, 0x40ff, write8sm_delegate(*m_cartslot, FUNC(nes_cart_slot_device::write_ex)));
}
if (m_cartslot->get_pcb_id() == KAISER_KS7017 || m_cartslot->get_pcb_id() == UNL_603_5052 || m_cartslot->get_pcb_id() == STD_DISKSYS)
{
logerror("write_ex & read_ex installed!\n");
- space.install_read_handler(0x4020, 0x40ff, read8sm_delegate(FUNC(nes_cart_slot_device::read_ex), (nes_cart_slot_device *)m_cartslot));
- space.install_write_handler(0x4020, 0x40ff, write8sm_delegate(FUNC(nes_cart_slot_device::write_ex), (nes_cart_slot_device *)m_cartslot));
+ space.install_read_handler(0x4020, 0x40ff, read8sm_delegate(*m_cartslot, FUNC(nes_cart_slot_device::read_ex)));
+ space.install_write_handler(0x4020, 0x40ff, write8sm_delegate(*m_cartslot, FUNC(nes_cart_slot_device::write_ex)));
}
m_cartslot->pcb_start(m_ciram.get());
@@ -186,7 +186,7 @@ void nes_state::init_famicom()
{
// setup alt input handlers for additional FC input devices
address_space &space = m_maincpu->space(AS_PROGRAM);
- space.install_read_handler(0x4016, 0x4016, read8_delegate(FUNC(nes_state::fc_in0_r), this));
- space.install_write_handler(0x4016, 0x4016, write8_delegate(FUNC(nes_state::fc_in0_w), this));
- space.install_read_handler(0x4017, 0x4017, read8_delegate(FUNC(nes_state::fc_in1_r), this));
+ space.install_read_handler(0x4016, 0x4016, read8_delegate(*this, FUNC(nes_state::fc_in0_r)));
+ space.install_write_handler(0x4016, 0x4016, write8_delegate(*this, FUNC(nes_state::fc_in0_w)));
+ space.install_read_handler(0x4017, 0x4017, read8_delegate(*this, FUNC(nes_state::fc_in1_r)));
}
diff --git a/src/mame/machine/ondra.cpp b/src/mame/machine/ondra.cpp
index 85bea88550e..da540a00c30 100644
--- a/src/mame/machine/ondra.cpp
+++ b/src/mame/machine/ondra.cpp
@@ -49,7 +49,7 @@ void ondra_state::ondra_update_banks()
m_bank3->set_base(m_ram->pointer() + 0xe000);
} else {
space.unmap_write(0xe000, 0xffff);
- space.install_read_handler (0xe000, 0xffff, read8_delegate(FUNC(ondra_state::ondra_keyboard_r),this));
+ space.install_read_handler (0xe000, 0xffff, read8_delegate(*this, FUNC(ondra_state::ondra_keyboard_r)));
}
}
diff --git a/src/mame/machine/orion.cpp b/src/mame/machine/orion.cpp
index a61d6433cd0..b0ac5e4fa54 100644
--- a/src/mame/machine/orion.cpp
+++ b/src/mame/machine/orion.cpp
@@ -267,19 +267,19 @@ void orion_state::orionz80_switch_bank()
if ((m_orionz80_dispatcher & 0x20) == 0)
{
- space.install_write_handler(0xf400, 0xf4ff, write8_delegate(FUNC(orion_state::orion128_system_w),this));
- space.install_write_handler(0xf500, 0xf5ff, write8_delegate(FUNC(orion_state::orion128_romdisk_w),this));
- space.install_write_handler(0xf700, 0xf7ff, write8_delegate(FUNC(orion_state::orionz80_floppy_rtc_w),this));
- space.install_read_handler(0xf400, 0xf4ff, read8_delegate(FUNC(orion_state::orion128_system_r),this));
- space.install_read_handler(0xf500, 0xf5ff, read8_delegate(FUNC(orion_state::orion128_romdisk_r),this));
- space.install_read_handler(0xf700, 0xf7ff, read8_delegate(FUNC(orion_state::orionz80_floppy_rtc_r),this));
-
- space.install_write_handler(0xf800, 0xf8ff, write8_delegate(FUNC(orion_state::orion128_video_mode_w),this));
- space.install_write_handler(0xf900, 0xf9ff, write8_delegate(FUNC(orion_state::orionz80_memory_page_w),this));
- space.install_write_handler(0xfa00, 0xfaff, write8_delegate(FUNC(orion_state::orion128_video_page_w),this));
- space.install_write_handler(0xfb00, 0xfbff, write8_delegate(FUNC(orion_state::orionz80_dispatcher_w),this));
+ space.install_write_handler(0xf400, 0xf4ff, write8_delegate(*this, FUNC(orion_state::orion128_system_w)));
+ space.install_write_handler(0xf500, 0xf5ff, write8_delegate(*this, FUNC(orion_state::orion128_romdisk_w)));
+ space.install_write_handler(0xf700, 0xf7ff, write8_delegate(*this, FUNC(orion_state::orionz80_floppy_rtc_w)));
+ space.install_read_handler(0xf400, 0xf4ff, read8_delegate(*this, FUNC(orion_state::orion128_system_r)));
+ space.install_read_handler(0xf500, 0xf5ff, read8_delegate(*this, FUNC(orion_state::orion128_romdisk_r)));
+ space.install_read_handler(0xf700, 0xf7ff, read8_delegate(*this, FUNC(orion_state::orionz80_floppy_rtc_r)));
+
+ space.install_write_handler(0xf800, 0xf8ff, write8_delegate(*this, FUNC(orion_state::orion128_video_mode_w)));
+ space.install_write_handler(0xf900, 0xf9ff, write8_delegate(*this, FUNC(orion_state::orionz80_memory_page_w)));
+ space.install_write_handler(0xfa00, 0xfaff, write8_delegate(*this, FUNC(orion_state::orion128_video_page_w)));
+ space.install_write_handler(0xfb00, 0xfbff, write8_delegate(*this, FUNC(orion_state::orionz80_dispatcher_w)));
space.unmap_write(0xfc00, 0xfeff);
- space.install_write_handler(0xff00, 0xffff, write8_delegate(FUNC(orion_state::orionz80_sound_w),this));
+ space.install_write_handler(0xff00, 0xffff, write8_delegate(*this, FUNC(orion_state::orionz80_sound_w)));
m_bank3->set_base(m_ram->pointer() + 0xf000);
m_bank5->set_base(m_region_maincpu->base() + 0xf800);
@@ -314,19 +314,19 @@ void orion_z80_state::machine_reset()
space.install_write_bank(0x4000, 0xefff, "bank2");
space.install_write_bank(0xf000, 0xf3ff, "bank3");
- space.install_write_handler(0xf400, 0xf4ff, write8_delegate(FUNC(orion_z80_state::orion128_system_w),this));
- space.install_write_handler(0xf500, 0xf5ff, write8_delegate(FUNC(orion_z80_state::orion128_romdisk_w),this));
- space.install_write_handler(0xf700, 0xf7ff, write8_delegate(FUNC(orion_z80_state::orionz80_floppy_rtc_w),this));
- space.install_read_handler(0xf400, 0xf4ff, read8_delegate(FUNC(orion_z80_state::orion128_system_r),this));
- space.install_read_handler(0xf500, 0xf5ff, read8_delegate(FUNC(orion_z80_state::orion128_romdisk_r),this));
- space.install_read_handler(0xf700, 0xf7ff, read8_delegate(FUNC(orion_z80_state::orionz80_floppy_rtc_r),this));
-
- space.install_write_handler(0xf800, 0xf8ff, write8_delegate(FUNC(orion_z80_state::orion128_video_mode_w),this));
- space.install_write_handler(0xf900, 0xf9ff, write8_delegate(FUNC(orion_z80_state::orionz80_memory_page_w),this));
- space.install_write_handler(0xfa00, 0xfaff, write8_delegate(FUNC(orion_z80_state::orion128_video_page_w),this));
- space.install_write_handler(0xfb00, 0xfbff, write8_delegate(FUNC(orion_z80_state::orionz80_dispatcher_w),this));
+ space.install_write_handler(0xf400, 0xf4ff, write8_delegate(*this, FUNC(orion_z80_state::orion128_system_w)));
+ space.install_write_handler(0xf500, 0xf5ff, write8_delegate(*this, FUNC(orion_z80_state::orion128_romdisk_w)));
+ space.install_write_handler(0xf700, 0xf7ff, write8_delegate(*this, FUNC(orion_z80_state::orionz80_floppy_rtc_w)));
+ space.install_read_handler(0xf400, 0xf4ff, read8_delegate(*this, FUNC(orion_z80_state::orion128_system_r)));
+ space.install_read_handler(0xf500, 0xf5ff, read8_delegate(*this, FUNC(orion_z80_state::orion128_romdisk_r)));
+ space.install_read_handler(0xf700, 0xf7ff, read8_delegate(*this, FUNC(orion_z80_state::orionz80_floppy_rtc_r)));
+
+ space.install_write_handler(0xf800, 0xf8ff, write8_delegate(*this, FUNC(orion_z80_state::orion128_video_mode_w)));
+ space.install_write_handler(0xf900, 0xf9ff, write8_delegate(*this, FUNC(orion_z80_state::orionz80_memory_page_w)));
+ space.install_write_handler(0xfa00, 0xfaff, write8_delegate(*this, FUNC(orion_z80_state::orion128_video_page_w)));
+ space.install_write_handler(0xfb00, 0xfbff, write8_delegate(*this, FUNC(orion_z80_state::orionz80_dispatcher_w)));
space.unmap_write(0xfc00, 0xfeff);
- space.install_write_handler(0xff00, 0xffff, write8_delegate(FUNC(orion_z80_state::orionz80_sound_w),this));
+ space.install_write_handler(0xff00, 0xffff, write8_delegate(*this, FUNC(orion_z80_state::orionz80_sound_w)));
m_bank1->set_base(m_region_maincpu->base() + 0xf800);
@@ -455,20 +455,20 @@ void orion_state::orionpro_bank_switch()
{
m_bank6->set_base(ram + 0x10000 * 0 + 0xf000);
- space.install_write_handler(0xf400, 0xf4ff, write8_delegate(FUNC(orion_state::orion128_system_w),this));
- space.install_write_handler(0xf500, 0xf5ff, write8_delegate(FUNC(orion_state::orion128_romdisk_w),this));
+ space.install_write_handler(0xf400, 0xf4ff, write8_delegate(*this, FUNC(orion_state::orion128_system_w)));
+ space.install_write_handler(0xf500, 0xf5ff, write8_delegate(*this, FUNC(orion_state::orion128_romdisk_w)));
space.unmap_write(0xf600, 0xf6ff);
- space.install_write_handler(0xf700, 0xf7ff, write8_delegate(FUNC(orion_state::orion128_floppy_w),this));
- space.install_read_handler(0xf400, 0xf4ff, read8_delegate(FUNC(orion_state::orion128_system_r),this));
- space.install_read_handler(0xf500, 0xf5ff, read8_delegate(FUNC(orion_state::orion128_romdisk_r),this));
+ space.install_write_handler(0xf700, 0xf7ff, write8_delegate(*this, FUNC(orion_state::orion128_floppy_w)));
+ space.install_read_handler(0xf400, 0xf4ff, read8_delegate(*this, FUNC(orion_state::orion128_system_r)));
+ space.install_read_handler(0xf500, 0xf5ff, read8_delegate(*this, FUNC(orion_state::orion128_romdisk_r)));
space.unmap_read(0xf600, 0xf6ff);
- space.install_read_handler(0xf700, 0xf7ff, read8_delegate(FUNC(orion_state::orion128_floppy_r),this));
+ space.install_read_handler(0xf700, 0xf7ff, read8_delegate(*this, FUNC(orion_state::orion128_floppy_r)));
- space.install_write_handler(0xf800, 0xf8ff, write8_delegate(FUNC(orion_state::orion128_video_mode_w),this));
- space.install_write_handler(0xf900, 0xf9ff, write8_delegate(FUNC(orion_state::orionpro_memory_page_w),this));
- space.install_write_handler(0xfa00, 0xfaff, write8_delegate(FUNC(orion_state::orion128_video_page_w),this));
+ space.install_write_handler(0xf800, 0xf8ff, write8_delegate(*this, FUNC(orion_state::orion128_video_mode_w)));
+ space.install_write_handler(0xf900, 0xf9ff, write8_delegate(*this, FUNC(orion_state::orionpro_memory_page_w)));
+ space.install_write_handler(0xfa00, 0xfaff, write8_delegate(*this, FUNC(orion_state::orion128_video_page_w)));
space.unmap_write(0xfb00, 0xfeff);
- space.install_write_handler(0xff00, 0xffff, write8_delegate(FUNC(orion_state::orionz80_sound_w),this));
+ space.install_write_handler(0xff00, 0xffff, write8_delegate(*this, FUNC(orion_state::orionz80_sound_w)));
m_bank8->set_base(ram + 0x10000 * 0 + 0xf800);
diff --git a/src/mame/machine/osborne1.cpp b/src/mame/machine/osborne1.cpp
index 0eeb5442c31..5fb5f7e669d 100644
--- a/src/mame/machine/osborne1.cpp
+++ b/src/mame/machine/osborne1.cpp
@@ -266,7 +266,7 @@ void osborne1_state::init_osborne1()
m_video_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(osborne1_state::video_callback), this));
m_tilemap = &machine().tilemap().create(
*m_gfxdecode,
- tilemap_get_info_delegate(FUNC(osborne1_state::get_tile_info), this), TILEMAP_SCAN_ROWS,
+ tilemap_get_info_delegate(*this, FUNC(osborne1_state::get_tile_info)), TILEMAP_SCAN_ROWS,
8, 10, 128, 32);
m_acia_rxc_txc_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(osborne1_state::acia_rxc_txc_callback), this));
diff --git a/src/mame/machine/partner.cpp b/src/mame/machine/partner.cpp
index 0b1397b4295..a00be2dd7be 100644
--- a/src/mame/machine/partner.cpp
+++ b/src/mame/machine/partner.cpp
@@ -100,8 +100,8 @@ void partner_state::partner_iomap_bank(uint8_t *rom)
switch(m_win_mem_page) {
case 2 :
// FDD
- space.install_write_handler(0xdc00, 0xddff, write8sm_delegate(FUNC(partner_state::partner_floppy_w),this));
- space.install_read_handler (0xdc00, 0xddff, read8sm_delegate(FUNC(partner_state::partner_floppy_r),this));
+ space.install_write_handler(0xdc00, 0xddff, write8sm_delegate(*this, FUNC(partner_state::partner_floppy_w)));
+ space.install_read_handler (0xdc00, 0xddff, read8sm_delegate(*this, FUNC(partner_state::partner_floppy_r)));
break;
case 4 :
// Timer
diff --git a/src/mame/machine/pce.cpp b/src/mame/machine/pce.cpp
index 5550ab5d2e7..aa9ba6112d5 100644
--- a/src/mame/machine/pce.cpp
+++ b/src/mame/machine/pce.cpp
@@ -120,13 +120,13 @@ MACHINE_RESET_MEMBER(pce_state,mess_pce)
if (m_cartslot->get_type() == PCE_CDSYS3J)
{
m_sys3_card = 1;
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x080000, 0x087fff, read8_delegate(FUNC(pce_state::pce_cd_acard_wram_r),this),write8_delegate(FUNC(pce_state::pce_cd_acard_wram_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x080000, 0x087fff, read8_delegate(*this, FUNC(pce_state::pce_cd_acard_wram_r)), write8_delegate(*this, FUNC(pce_state::pce_cd_acard_wram_w)));
}
if (m_cartslot->get_type() == PCE_CDSYS3U)
{
m_sys3_card = 3;
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x080000, 0x087fff, read8_delegate(FUNC(pce_state::pce_cd_acard_wram_r),this),write8_delegate(FUNC(pce_state::pce_cd_acard_wram_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x080000, 0x087fff, read8_delegate(*this, FUNC(pce_state::pce_cd_acard_wram_r)), write8_delegate(*this, FUNC(pce_state::pce_cd_acard_wram_w)));
}
}
diff --git a/src/mame/machine/pecom.cpp b/src/mame/machine/pecom.cpp
index da12c8d0932..b3cb049347a 100644
--- a/src/mame/machine/pecom.cpp
+++ b/src/mame/machine/pecom.cpp
@@ -73,10 +73,10 @@ WRITE8_MEMBER(pecom_state::pecom_bank_w)
if (data==2)
{
- space2.install_read_handler (0xf000, 0xf7ff, read8_delegate(FUNC(pecom_state::pecom_cdp1869_charram_r),this));
- space2.install_write_handler(0xf000, 0xf7ff, write8_delegate(FUNC(pecom_state::pecom_cdp1869_charram_w),this));
- space2.install_read_handler (0xf800, 0xffff, read8_delegate(FUNC(pecom_state::pecom_cdp1869_pageram_r),this));
- space2.install_write_handler(0xf800, 0xffff, write8_delegate(FUNC(pecom_state::pecom_cdp1869_pageram_w),this));
+ space2.install_read_handler (0xf000, 0xf7ff, read8_delegate(*this, FUNC(pecom_state::pecom_cdp1869_charram_r)));
+ space2.install_write_handler(0xf000, 0xf7ff, write8_delegate(*this, FUNC(pecom_state::pecom_cdp1869_charram_w)));
+ space2.install_read_handler (0xf800, 0xffff, read8_delegate(*this, FUNC(pecom_state::pecom_cdp1869_pageram_r)));
+ space2.install_write_handler(0xf800, 0xffff, write8_delegate(*this, FUNC(pecom_state::pecom_cdp1869_pageram_w)));
}
else
{
diff --git a/src/mame/machine/pgmprot_igs025_igs012.cpp b/src/mame/machine/pgmprot_igs025_igs012.cpp
index 6a981f00338..17a883c4349 100644
--- a/src/mame/machine/pgmprot_igs025_igs012.cpp
+++ b/src/mame/machine/pgmprot_igs025_igs012.cpp
@@ -107,7 +107,7 @@ static const u8 drgw2_source_data[0x08][0xec] =
void pgm_012_025_state::drgw2_common_init()
{
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xd80000, 0xd80003, read16_delegate(FUNC(igs025_device::killbld_igs025_prot_r), (igs025_device*)m_igs025), write16_delegate(FUNC(igs025_device::drgw2_d80000_protection_w), (igs025_device*)m_igs025));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xd80000, 0xd80003, read16_delegate(*m_igs025, FUNC(igs025_device::killbld_igs025_prot_r)), write16_delegate(*m_igs025, FUNC(igs025_device::drgw2_d80000_protection_w)));
m_igs025->m_kb_source_data = drgw2_source_data;
diff --git a/src/mame/machine/pgmprot_igs025_igs022.cpp b/src/mame/machine/pgmprot_igs025_igs022.cpp
index 8d0cb6076fc..4cabfead655 100644
--- a/src/mame/machine/pgmprot_igs025_igs022.cpp
+++ b/src/mame/machine/pgmprot_igs025_igs022.cpp
@@ -347,7 +347,7 @@ void pgm_022_025_state::init_killbld()
pgm_killbld_decrypt();
// install and configure protection device(s)
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xd40000, 0xd40003, read16_delegate(FUNC(igs025_device::killbld_igs025_prot_r), (igs025_device*)m_igs025), write16_delegate(FUNC(igs025_device::killbld_igs025_prot_w), (igs025_device*)m_igs025));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xd40000, 0xd40003, read16_delegate(*m_igs025, FUNC(igs025_device::killbld_igs025_prot_r)), write16_delegate(*m_igs025, FUNC(igs025_device::killbld_igs025_prot_w)));
m_igs025->m_kb_source_data = killbld_source_data;
}
@@ -357,7 +357,7 @@ void pgm_022_025_state::init_drgw3()
pgm_dw3_decrypt();
// install and configure protection device(s)
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xda5610, 0xda5613, read16_delegate(FUNC(igs025_device::killbld_igs025_prot_r), (igs025_device*)m_igs025), write16_delegate(FUNC(igs025_device::killbld_igs025_prot_w), (igs025_device*)m_igs025));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xda5610, 0xda5613, read16_delegate(*m_igs025, FUNC(igs025_device::killbld_igs025_prot_r)), write16_delegate(*m_igs025, FUNC(igs025_device::killbld_igs025_prot_w)));
m_igs025->m_kb_source_data = dw3_source_data;
}
@@ -377,7 +377,7 @@ void pgm_022_025_state::pgm_022_025(machine_config &config)
m_maincpu->set_addrmap(AS_PROGRAM, &pgm_022_025_state::killbld_mem);
IGS025(config, m_igs025, 0);
- m_igs025->set_external_cb(FUNC(pgm_022_025_state::igs025_to_igs022_callback), this);
+ m_igs025->set_external_cb(FUNC(pgm_022_025_state::igs025_to_igs022_callback));
IGS022(config, m_igs022, 0);
diff --git a/src/mame/machine/pgmprot_igs025_igs028.cpp b/src/mame/machine/pgmprot_igs025_igs028.cpp
index ed122330a54..81c472d234d 100644
--- a/src/mame/machine/pgmprot_igs025_igs028.cpp
+++ b/src/mame/machine/pgmprot_igs025_igs028.cpp
@@ -166,7 +166,7 @@ void pgm_028_025_state::init_olds()
{
pgm_basic_init();
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xdcb400, 0xdcb403, read16_delegate(FUNC(igs025_device::killbld_igs025_prot_r), (igs025_device*)m_igs025), write16_delegate(FUNC(igs025_device::olds_w), (igs025_device*)m_igs025));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xdcb400, 0xdcb403, read16_delegate(*m_igs025, FUNC(igs025_device::killbld_igs025_prot_r)), write16_delegate(*m_igs025, FUNC(igs025_device::olds_w)));
m_igs028->m_sharedprotram = m_sharedprotram;
m_igs025->m_kb_source_data = m_olds_source_data;
}
@@ -192,7 +192,7 @@ void pgm_028_025_state::pgm_028_025_ol(machine_config &config)
m_maincpu->set_addrmap(AS_PROGRAM, &pgm_028_025_state::olds_mem);
IGS025(config, m_igs025, 0);
- m_igs025->set_external_cb(FUNC(pgm_028_025_state::igs025_to_igs028_callback), this);
+ m_igs025->set_external_cb(FUNC(pgm_028_025_state::igs025_to_igs028_callback));
IGS028(config, m_igs028, 0);
}
diff --git a/src/mame/machine/pgmprot_igs027a_type1.cpp b/src/mame/machine/pgmprot_igs027a_type1.cpp
index e93af94220a..e3aea0cd43e 100644
--- a/src/mame/machine/pgmprot_igs027a_type1.cpp
+++ b/src/mame/machine/pgmprot_igs027a_type1.cpp
@@ -280,7 +280,7 @@ void pgm_arm_type1_state::init_photoy2k()
pgm_photoy2k_decrypt(machine());
arm7_type1_latch_init();
/* we only have a china internal ROM dumped for now.. allow region to be changed for debugging (to ensure all alt titles / regions can be seen) */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x4f0008, 0x4f0009, read16smo_delegate(FUNC(pgm_arm_type1_state::kovsh_fake_region_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x4f0008, 0x4f0009, read16smo_delegate(*this, FUNC(pgm_arm_type1_state::kovsh_fake_region_r)));
}
void pgm_arm_type1_state::init_kovsh()
@@ -289,7 +289,7 @@ void pgm_arm_type1_state::init_kovsh()
pgm_kovsh_decrypt(machine());
arm7_type1_latch_init();
/* we only have a china internal ROM dumped for now.. allow region to be changed for debugging (to ensure all alt titles / regions can be seen) */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x4f0008, 0x4f0009, read16smo_delegate(FUNC(pgm_arm_type1_state::kovsh_fake_region_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x4f0008, 0x4f0009, read16smo_delegate(*this, FUNC(pgm_arm_type1_state::kovsh_fake_region_r)));
}
/* Fake remapping of ASIC commands to the ones used by KOVSH due to the lack of the real ARM rom for this set */
@@ -357,8 +357,8 @@ void pgm_arm_type1_state::init_kovshp()
pgm_basic_init();
pgm_kovshp_decrypt(machine());
arm7_type1_latch_init();
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x4f0008, 0x4f0009, read16smo_delegate(FUNC(pgm_arm_type1_state::kovsh_fake_region_r),this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x500000, 0x500005, write16sm_delegate(FUNC(pgm_arm_type1_state::kovshp_asic27a_write_word),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x4f0008, 0x4f0009, read16smo_delegate(*this, FUNC(pgm_arm_type1_state::kovsh_fake_region_r)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x500000, 0x500005, write16sm_delegate(*this, FUNC(pgm_arm_type1_state::kovshp_asic27a_write_word)));
}
@@ -369,8 +369,8 @@ void pgm_arm_type1_state::init_kovshxas()
pgm_basic_init();
// pgm_kovshp_decrypt(machine());
arm7_type1_latch_init();
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x4f0008, 0x4f0009, read16smo_delegate(FUNC(pgm_arm_type1_state::kovsh_fake_region_r),this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x500000, 0x500005, write16sm_delegate(FUNC(pgm_arm_type1_state::kovshp_asic27a_write_word),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x4f0008, 0x4f0009, read16smo_delegate(*this, FUNC(pgm_arm_type1_state::kovsh_fake_region_r)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x500000, 0x500005, write16sm_delegate(*this, FUNC(pgm_arm_type1_state::kovshp_asic27a_write_word)));
}
void pgm_arm_type1_state::pgm_decode_kovlsqh2_tiles()
@@ -461,8 +461,8 @@ void pgm_arm_type1_state::init_kovlsqh2()
pgm_decode_kovlsqh2_samples();
pgm_basic_init();
arm7_type1_latch_init();
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x4f0008, 0x4f0009, read16smo_delegate(FUNC(pgm_arm_type1_state::kovsh_fake_region_r),this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x500000, 0x500005, write16sm_delegate(FUNC(pgm_arm_type1_state::kovshp_asic27a_write_word),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x4f0008, 0x4f0009, read16smo_delegate(*this, FUNC(pgm_arm_type1_state::kovsh_fake_region_r)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x500000, 0x500005, write16sm_delegate(*this, FUNC(pgm_arm_type1_state::kovshp_asic27a_write_word)));
}
void pgm_arm_type1_state::init_kovqhsgs()
@@ -483,7 +483,7 @@ void pgm_arm_type1_state::init_kovqhsgs()
pgm_basic_init();
arm7_type1_latch_init();
/* we only have a china internal ROM dumped for now.. allow region to be changed for debugging (to ensure all alt titles / regions can be seen) */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x4f0008, 0x4f0009, read16smo_delegate(FUNC(pgm_arm_type1_state::kovsh_fake_region_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x4f0008, 0x4f0009, read16smo_delegate(*this, FUNC(pgm_arm_type1_state::kovsh_fake_region_r)));
}
/*
@@ -1789,7 +1789,7 @@ void pgm_arm_type1_state::init_ddp3()
pgm_basic_init(false);
pgm_py2k2_decrypt(machine()); // yes, it's the same as photo y2k2
arm_sim_handler = &pgm_arm_type1_state::command_handler_ddp3;
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x500000, 0x500005, read16_delegate(FUNC(pgm_arm_type1_state::arm7_type1_sim_r),this), write16_delegate(FUNC(pgm_arm_type1_state::arm7_type1_sim_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x500000, 0x500005, read16_delegate(*this, FUNC(pgm_arm_type1_state::arm7_type1_sim_r)), write16_delegate(*this, FUNC(pgm_arm_type1_state::arm7_type1_sim_w)));
}
void pgm_arm_type1_state::init_ket()
@@ -1797,7 +1797,7 @@ void pgm_arm_type1_state::init_ket()
pgm_basic_init(false);
pgm_ket_decrypt(machine());
arm_sim_handler = &pgm_arm_type1_state::command_handler_ddp3;
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x400000, 0x400005, read16_delegate(FUNC(pgm_arm_type1_state::arm7_type1_sim_r),this), write16_delegate(FUNC(pgm_arm_type1_state::arm7_type1_sim_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x400000, 0x400005, read16_delegate(*this, FUNC(pgm_arm_type1_state::arm7_type1_sim_r)), write16_delegate(*this, FUNC(pgm_arm_type1_state::arm7_type1_sim_w)));
}
void pgm_arm_type1_state::init_espgal()
@@ -1805,7 +1805,7 @@ void pgm_arm_type1_state::init_espgal()
pgm_basic_init(false);
pgm_espgal_decrypt(machine());
arm_sim_handler = &pgm_arm_type1_state::command_handler_ddp3;
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x400000, 0x400005, read16_delegate(FUNC(pgm_arm_type1_state::arm7_type1_sim_r),this), write16_delegate(FUNC(pgm_arm_type1_state::arm7_type1_sim_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x400000, 0x400005, read16_delegate(*this, FUNC(pgm_arm_type1_state::arm7_type1_sim_r)), write16_delegate(*this, FUNC(pgm_arm_type1_state::arm7_type1_sim_w)));
}
@@ -2090,8 +2090,8 @@ void pgm_arm_type1_state::init_puzzli2()
pgm_puzzli2_decrypt(machine());
arm_sim_handler = &pgm_arm_type1_state::command_handler_puzzli2;
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x500000, 0x500005, read16_delegate(FUNC(pgm_arm_type1_state::arm7_type1_sim_r),this), write16_delegate(FUNC(pgm_arm_type1_state::arm7_type1_sim_w),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x4f0000, 0x4f003f, read16sm_delegate(FUNC(pgm_arm_type1_state::arm7_type1_sim_protram_r),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x500000, 0x500005, read16_delegate(*this, FUNC(pgm_arm_type1_state::arm7_type1_sim_r)), write16_delegate(*this, FUNC(pgm_arm_type1_state::arm7_type1_sim_w)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x4f0000, 0x4f003f, read16sm_delegate(*this, FUNC(pgm_arm_type1_state::arm7_type1_sim_protram_r)));
m_irq4_disabled = 1; // // doesn't like this irq?? - seems to be RTC related
hackcount = 0;
@@ -2219,8 +2219,8 @@ void pgm_arm_type1_state::init_py2k2()
pgm_basic_init();
pgm_py2k2_decrypt(machine());
arm_sim_handler = &pgm_arm_type1_state::command_handler_py2k2;
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x500000, 0x500005, read16_delegate(FUNC(pgm_arm_type1_state::arm7_type1_sim_r),this), write16_delegate(FUNC(pgm_arm_type1_state::arm7_type1_sim_w),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x4f0000, 0x4f003f, read16sm_delegate(FUNC(pgm_arm_type1_state::arm7_type1_sim_protram_r),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x500000, 0x500005, read16_delegate(*this, FUNC(pgm_arm_type1_state::arm7_type1_sim_r)), write16_delegate(*this, FUNC(pgm_arm_type1_state::arm7_type1_sim_w)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x4f0000, 0x4f003f, read16sm_delegate(*this, FUNC(pgm_arm_type1_state::arm7_type1_sim_protram_r)));
}
void pgm_arm_type1_state::init_pgm3in1()
@@ -2228,8 +2228,8 @@ void pgm_arm_type1_state::init_pgm3in1()
pgm_basic_init();
pgm_decrypt_pgm3in1(machine());
arm_sim_handler = &pgm_arm_type1_state::command_handler_py2k2;
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x500000, 0x500005,read16_delegate(FUNC(pgm_arm_type1_state::arm7_type1_sim_r),this), write16_delegate(FUNC(pgm_arm_type1_state::arm7_type1_sim_w),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x4f0000, 0x4f003f, read16sm_delegate(FUNC(pgm_arm_type1_state::arm7_type1_sim_protram_r),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x500000, 0x500005,read16_delegate(*this, FUNC(pgm_arm_type1_state::arm7_type1_sim_r)), write16_delegate(*this, FUNC(pgm_arm_type1_state::arm7_type1_sim_w)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x4f0000, 0x4f003f, read16sm_delegate(*this, FUNC(pgm_arm_type1_state::arm7_type1_sim_protram_r)));
m_irq4_disabled = 1; // // doesn't like this irq??
}
@@ -2248,8 +2248,8 @@ void pgm_arm_type1_state::init_pstar()
memset(m_slots, 0, 16 * sizeof(u32));
arm_sim_handler = &pgm_arm_type1_state::command_handler_pstars;
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x500000, 0x500005, read16_delegate(FUNC(pgm_arm_type1_state::arm7_type1_sim_r),this), write16_delegate(FUNC(pgm_arm_type1_state::arm7_type1_sim_w),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x4f0000, 0x4f003f, read16sm_delegate(FUNC(pgm_arm_type1_state::pstars_arm7_type1_sim_protram_r),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x500000, 0x500005, read16_delegate(*this, FUNC(pgm_arm_type1_state::arm7_type1_sim_r)), write16_delegate(*this, FUNC(pgm_arm_type1_state::arm7_type1_sim_w)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x4f0000, 0x4f003f, read16sm_delegate(*this, FUNC(pgm_arm_type1_state::pstars_arm7_type1_sim_protram_r)));
save_item(NAME(m_pstar_e7_value));
save_item(NAME(m_pstar_b1_value));
@@ -2267,8 +2267,8 @@ void pgm_arm_type1_state::init_kov()
m_kov_cb_value = 0;
m_kov_fe_value = 0;
arm_sim_handler = &pgm_arm_type1_state::command_handler_kov;
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x500000, 0x500005, read16_delegate(FUNC(pgm_arm_type1_state::arm7_type1_sim_r),this), write16_delegate(FUNC(pgm_arm_type1_state::arm7_type1_sim_w),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x4f0000, 0x4f003f, read16sm_delegate(FUNC(pgm_arm_type1_state::arm7_type1_sim_protram_r),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x500000, 0x500005, read16_delegate(*this, FUNC(pgm_arm_type1_state::arm7_type1_sim_r)), write16_delegate(*this, FUNC(pgm_arm_type1_state::arm7_type1_sim_w)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x4f0000, 0x4f003f, read16sm_delegate(*this, FUNC(pgm_arm_type1_state::arm7_type1_sim_protram_r)));
}
void pgm_arm_type1_state::init_kovboot()
@@ -2281,8 +2281,8 @@ void pgm_arm_type1_state::init_kovboot()
m_kov_cb_value = 0;
m_kov_fe_value = 0;
arm_sim_handler = &pgm_arm_type1_state::command_handler_kov;
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x500000, 0x500005, read16_delegate(FUNC(pgm_arm_type1_state::arm7_type1_sim_r),this), write16_delegate(FUNC(pgm_arm_type1_state::arm7_type1_sim_w),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x4f0000, 0x4f003f, read16sm_delegate(FUNC(pgm_arm_type1_state::arm7_type1_sim_protram_r),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x500000, 0x500005, read16_delegate(*this, FUNC(pgm_arm_type1_state::arm7_type1_sim_r)), write16_delegate(*this, FUNC(pgm_arm_type1_state::arm7_type1_sim_w)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x4f0000, 0x4f003f, read16sm_delegate(*this, FUNC(pgm_arm_type1_state::arm7_type1_sim_protram_r)));
}
@@ -2294,8 +2294,8 @@ void pgm_arm_type1_state::init_oldsplus()
memset(m_extra_ram, 0, 0x100 * sizeof(u16));
memset(m_slots, 0, 0x100 * sizeof(u32));
arm_sim_handler = &pgm_arm_type1_state::command_handler_oldsplus;
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x500000, 0x500005, read16_delegate(FUNC(pgm_arm_type1_state::arm7_type1_sim_r),this), write16_delegate(FUNC(pgm_arm_type1_state::arm7_type1_sim_w),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x4f0000, 0x4f003f, read16sm_delegate(FUNC(pgm_arm_type1_state::arm7_type1_sim_protram_r),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x500000, 0x500005, read16_delegate(*this, FUNC(pgm_arm_type1_state::arm7_type1_sim_r)), write16_delegate(*this, FUNC(pgm_arm_type1_state::arm7_type1_sim_w)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x4f0000, 0x4f003f, read16sm_delegate(*this, FUNC(pgm_arm_type1_state::arm7_type1_sim_protram_r)));
save_item(NAME(m_extra_ram));
}
diff --git a/src/mame/machine/pgmprot_igs027a_type2.cpp b/src/mame/machine/pgmprot_igs027a_type2.cpp
index 244e7b61b18..3ef761f2de6 100644
--- a/src/mame/machine/pgmprot_igs027a_type2.cpp
+++ b/src/mame/machine/pgmprot_igs027a_type2.cpp
@@ -180,7 +180,7 @@ void pgm_arm_type2_state::init_kov2()
kov2_latch_init();
// we only have a HK internal ROM dumped for now, allow us to override that for debugging purposes.
- m_prot->space(AS_PROGRAM).install_write_handler(0x48000138, 0x4800013b, write32s_delegate(FUNC(pgm_arm_type2_state::kov2_arm_region_w),this));
+ m_prot->space(AS_PROGRAM).install_write_handler(0x48000138, 0x4800013b, write32s_delegate(*this, FUNC(pgm_arm_type2_state::kov2_arm_region_w)));
}
@@ -194,7 +194,7 @@ void pgm_arm_type2_state::init_kov2p()
kov2_latch_init();
// we only have a China internal ROM dumped for now, allow us to override that for debugging purposes.
- m_prot->space(AS_PROGRAM).install_write_handler(0x48000138, 0x4800013b, write32s_delegate(FUNC(pgm_arm_type2_state::kov2p_arm_region_w),this));
+ m_prot->space(AS_PROGRAM).install_write_handler(0x48000138, 0x4800013b, write32s_delegate(*this, FUNC(pgm_arm_type2_state::kov2p_arm_region_w)));
}
void pgm_arm_type2_state::martmast_arm_region_w(offs_t offset, u32 data, u32 mem_mask)
@@ -213,7 +213,7 @@ void pgm_arm_type2_state::init_martmast()
kov2_latch_init();
// we only have a USA / CHINA internal ROMs dumped for now, allow us to override that for debugging purposes.
- m_prot->space(AS_PROGRAM).install_write_handler(0x48000138, 0x4800013b, write32s_delegate(FUNC(pgm_arm_type2_state::martmast_arm_region_w),this));
+ m_prot->space(AS_PROGRAM).install_write_handler(0x48000138, 0x4800013b, write32s_delegate(*this, FUNC(pgm_arm_type2_state::martmast_arm_region_w)));
}
@@ -256,8 +256,8 @@ void pgm_arm_type2_state::init_ddp2()
pgm_ddp2_decrypt(machine());
kov2_latch_init();
- m_prot->space(AS_PROGRAM).install_read_handler(0x1800300c, 0x1800300f, read32_delegate(FUNC(pgm_arm_type2_state::ddp2_speedup_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x80ee54, 0x80ee55, read16_delegate(FUNC(pgm_arm_type2_state::ddp2_main_speedup_r),this));
+ m_prot->space(AS_PROGRAM).install_read_handler(0x1800300c, 0x1800300f, read32_delegate(*this, FUNC(pgm_arm_type2_state::ddp2_speedup_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x80ee54, 0x80ee55, read16_delegate(*this, FUNC(pgm_arm_type2_state::ddp2_main_speedup_r)));
}
diff --git a/src/mame/machine/pgmprot_igs027a_type3.cpp b/src/mame/machine/pgmprot_igs027a_type3.cpp
index fd513353011..dbc0868e6eb 100644
--- a/src/mame/machine/pgmprot_igs027a_type3.cpp
+++ b/src/mame/machine/pgmprot_igs027a_type3.cpp
@@ -530,7 +530,7 @@ void pgm_arm_type3_state::init_theglad()
pgm_create_dummy_internal_arm_region_theglad(0);
- m_prot->space(AS_PROGRAM).install_read_handler(0x1000000c, 0x1000000f, read32_delegate(FUNC(pgm_arm_type3_state::theglad_speedup_r),this));
+ m_prot->space(AS_PROGRAM).install_read_handler(0x1000000c, 0x1000000f, read32_delegate(*this, FUNC(pgm_arm_type3_state::theglad_speedup_r)));
}
@@ -664,9 +664,7 @@ void pgm_arm_type3_state::init_svg()
svg_latch_init();
pgm_create_dummy_internal_arm_region_theglad(1);
m_armrom = (u32 *)memregion("prot")->base();
- m_prot->space(AS_PROGRAM).install_read_handler(0xB90, 0xB93, read32_delegate(FUNC(pgm_arm_type3_state::svg_speedup_r),this));
-
-
+ m_prot->space(AS_PROGRAM).install_read_handler(0xB90, 0xB93, read32_delegate(*this, FUNC(pgm_arm_type3_state::svg_speedup_r)));
}
void pgm_arm_type3_state::init_svgpcb()
@@ -676,8 +674,7 @@ void pgm_arm_type3_state::init_svgpcb()
svg_latch_init();
pgm_create_dummy_internal_arm_region_theglad(0);
m_armrom = (u32 *)memregion("prot")->base();
- m_prot->space(AS_PROGRAM).install_read_handler(0x9e0, 0x9e3, read32_delegate(FUNC(pgm_arm_type3_state::svgpcb_speedup_r),this));
-
+ m_prot->space(AS_PROGRAM).install_read_handler(0x9e0, 0x9e3, read32_delegate(*this, FUNC(pgm_arm_type3_state::svgpcb_speedup_r)));
}
@@ -695,7 +692,7 @@ void pgm_arm_type3_state::init_killbldp()
pgm_killbldp_decrypt(machine());
svg_latch_init();
- m_prot->space(AS_PROGRAM).install_read_handler(0x1000000c, 0x1000000f, read32_delegate(FUNC(pgm_arm_type3_state::killbldp_speedup_r),this));
+ m_prot->space(AS_PROGRAM).install_read_handler(0x1000000c, 0x1000000f, read32_delegate(*this, FUNC(pgm_arm_type3_state::killbldp_speedup_r)));
// u16 *temp16 = (u16 *)memregion("prot")->base();
// int base = 0xfc; // startup table uploads
@@ -738,8 +735,8 @@ void pgm_arm_type3_state::init_dmnfrnt()
/* put some fake code for the ARM here ... */
pgm_create_dummy_internal_arm_region(0x4000);
- m_prot->space(AS_PROGRAM).install_read_handler(0x18000444, 0x18000447, read32_delegate(FUNC(pgm_arm_type3_state::dmnfrnt_speedup_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x80a03c, 0x80a03d, read16_delegate(FUNC(pgm_arm_type3_state::dmnfrnt_main_speedup_r),this));
+ m_prot->space(AS_PROGRAM).install_read_handler(0x18000444, 0x18000447, read32_delegate(*this, FUNC(pgm_arm_type3_state::dmnfrnt_speedup_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x80a03c, 0x80a03d, read16_delegate(*this, FUNC(pgm_arm_type3_state::dmnfrnt_main_speedup_r)));
m_svg_ram_sel = 1;
@@ -847,5 +844,5 @@ void pgm_arm_type3_state::init_happy6()
svg_latch_init();
pgm_create_dummy_internal_arm_region_theglad(0);
- m_prot->space(AS_PROGRAM).install_read_handler(0x1000000c, 0x1000000f, read32_delegate(FUNC(pgm_arm_type3_state::happy6_speedup_r),this));
+ m_prot->space(AS_PROGRAM).install_read_handler(0x1000000c, 0x1000000f, read32_delegate(*this, FUNC(pgm_arm_type3_state::happy6_speedup_r)));
}
diff --git a/src/mame/machine/pgmprot_orlegend.cpp b/src/mame/machine/pgmprot_orlegend.cpp
index 73db400cbb9..7e4d436f056 100644
--- a/src/mame/machine/pgmprot_orlegend.cpp
+++ b/src/mame/machine/pgmprot_orlegend.cpp
@@ -166,7 +166,7 @@ void pgm_asic3_state::init_orlegend()
{
pgm_basic_init();
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xC04000, 0xC0400f, read16_delegate(FUNC(pgm_asic3_state::pgm_asic3_r),this), write16_delegate(FUNC(pgm_asic3_state::pgm_asic3_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xC04000, 0xC0400f, read16_delegate(*this, FUNC(pgm_asic3_state::pgm_asic3_r)), write16_delegate(*this, FUNC(pgm_asic3_state::pgm_asic3_w)));
m_asic3_reg = 0;
m_asic3_latch[0] = 0;
diff --git a/src/mame/machine/playch10.cpp b/src/mame/machine/playch10.cpp
index d38a4fc87f1..3fbb5b89018 100644
--- a/src/mame/machine/playch10.cpp
+++ b/src/mame/machine/playch10.cpp
@@ -46,8 +46,8 @@ void playch10_state::machine_start()
/* move to individual boards as documentation of actual boards allows */
m_nt_ram = std::make_unique<uint8_t[]>(0x1000);
- m_ppu->space(AS_PROGRAM).install_readwrite_handler(0, 0x1fff, read8_delegate(FUNC(playch10_state::pc10_chr_r),this), write8_delegate(FUNC(playch10_state::pc10_chr_w),this));
- m_ppu->space(AS_PROGRAM).install_readwrite_handler(0x2000, 0x3eff, read8_delegate(FUNC(playch10_state::pc10_nt_r),this),write8_delegate(FUNC(playch10_state::pc10_nt_w),this));
+ m_ppu->space(AS_PROGRAM).install_readwrite_handler(0, 0x1fff, read8_delegate(*this, FUNC(playch10_state::pc10_chr_r)), write8_delegate(*this, FUNC(playch10_state::pc10_chr_w)));
+ m_ppu->space(AS_PROGRAM).install_readwrite_handler(0x2000, 0x3eff, read8_delegate(*this, FUNC(playch10_state::pc10_nt_r)), write8_delegate(*this, FUNC(playch10_state::pc10_nt_w)));
if (nullptr != m_vram)
set_videoram_bank(0, 8, 0, 8);
@@ -69,8 +69,8 @@ MACHINE_START_MEMBER(playch10_state,playch10_hboard)
m_vram = std::make_unique<uint8_t[]>(0x2000);
- m_ppu->space(AS_PROGRAM).install_readwrite_handler(0, 0x1fff, read8_delegate(FUNC(playch10_state::pc10_chr_r),this), write8_delegate(FUNC(playch10_state::pc10_chr_w),this));
- m_ppu->space(AS_PROGRAM).install_readwrite_handler(0x2000, 0x3eff, read8_delegate(FUNC(playch10_state::pc10_nt_r),this), write8_delegate(FUNC(playch10_state::pc10_nt_w),this));
+ m_ppu->space(AS_PROGRAM).install_readwrite_handler(0, 0x1fff, read8_delegate(*this, FUNC(playch10_state::pc10_chr_r)), write8_delegate(*this, FUNC(playch10_state::pc10_chr_w)));
+ m_ppu->space(AS_PROGRAM).install_readwrite_handler(0x2000, 0x3eff, read8_delegate(*this, FUNC(playch10_state::pc10_nt_r)), write8_delegate(*this, FUNC(playch10_state::pc10_nt_w)));
}
/*************************************
@@ -555,7 +555,7 @@ WRITE8_MEMBER(playch10_state::aboard_vrom_switch_w)
void playch10_state::init_pcaboard()
{
/* switches vrom with writes to the $803e-$8041 area */
- m_cartcpu->space(AS_PROGRAM).install_write_handler(0x8000, 0x8fff, write8_delegate(FUNC(playch10_state::aboard_vrom_switch_w),this));
+ m_cartcpu->space(AS_PROGRAM).install_write_handler(0x8000, 0x8fff, write8_delegate(*this, FUNC(playch10_state::aboard_vrom_switch_w)));
/* common init */
init_playch10();
@@ -587,7 +587,7 @@ void playch10_state::init_pcbboard()
memcpy(&prg[0x08000], &prg[0x28000], 0x8000);
/* Roms are banked at $8000 to $bfff */
- m_cartcpu->space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(FUNC(playch10_state::bboard_rom_switch_w),this));
+ m_cartcpu->space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(*this, FUNC(playch10_state::bboard_rom_switch_w)));
/* common init */
init_playch10();
@@ -612,7 +612,7 @@ WRITE8_MEMBER(playch10_state::cboard_vrom_switch_w)
void playch10_state::init_pccboard()
{
/* switches vrom with writes to $6000 */
- m_cartcpu->space(AS_PROGRAM).install_write_handler(0x6000, 0x6000, write8_delegate(FUNC(playch10_state::cboard_vrom_switch_w),this));
+ m_cartcpu->space(AS_PROGRAM).install_write_handler(0x6000, 0x6000, write8_delegate(*this, FUNC(playch10_state::cboard_vrom_switch_w)));
/* we have no vram, make sure switching games doesn't point to an old allocation */
m_vram = nullptr;
@@ -635,7 +635,7 @@ void playch10_state::init_pcdboard()
m_mmc1_rom_mask = 0x07;
/* MMC mapper at writes to $8000-$ffff */
- m_cartcpu->space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(FUNC(playch10_state::mmc1_rom_switch_w),this));
+ m_cartcpu->space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(*this, FUNC(playch10_state::mmc1_rom_switch_w)));
/* common init */
@@ -746,10 +746,10 @@ void playch10_state::init_pceboard()
memcpy(&prg[0x08000], &prg[0x28000], 0x8000);
/* basically a mapper 9 on a nes */
- m_cartcpu->space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(FUNC(playch10_state::eboard_rom_switch_w),this));
+ m_cartcpu->space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(*this, FUNC(playch10_state::eboard_rom_switch_w)));
/* ppu_latch callback */
- m_ppu->set_latch(ppu2c0x_device::latch_delegate(FUNC(playch10_state::mapper9_latch),this));
+ m_ppu->set_latch(*this, FUNC(playch10_state::mapper9_latch));
/* nvram at $6000-$6fff */
m_cartcpu->space(AS_PROGRAM).install_ram(0x6000, 0x6fff);
@@ -776,7 +776,7 @@ void playch10_state::init_pcfboard()
m_mmc1_rom_mask = ((len - 0x10000) / 0x4000) - 1;
/* MMC mapper at writes to $8000-$ffff */
- m_cartcpu->space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(FUNC(playch10_state::mmc1_rom_switch_w),this));
+ m_cartcpu->space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(*this, FUNC(playch10_state::mmc1_rom_switch_w)));
/* common init */
init_playch10();
@@ -960,7 +960,7 @@ void playch10_state::init_pcgboard()
memcpy(&prg[0x0c000], &prg[0x4c000], 0x4000);
/* MMC3 mapper at writes to $8000-$ffff */
- m_cartcpu->space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(FUNC(playch10_state::gboard_rom_switch_w),this));
+ m_cartcpu->space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(*this, FUNC(playch10_state::gboard_rom_switch_w)));
/* extra ram at $6000-$7fff */
m_cartcpu->space(AS_PROGRAM).install_ram(0x6000, 0x7fff);
@@ -976,7 +976,7 @@ void playch10_state::init_pcgboard()
/* common init */
init_playch10();
- m_ppu->set_scanline_callback(ppu2c0x_device::scanline_delegate(FUNC(playch10_state::gboard_scanline_cb),this));
+ m_ppu->set_scanline_callback(*this, FUNC(playch10_state::gboard_scanline_cb));
}
void playch10_state::init_pcgboard_type2()
@@ -1014,7 +1014,7 @@ void playch10_state::init_pciboard()
memcpy(&prg[0x08000], &prg[0x10000], 0x8000);
/* Roms are banked at $8000 to $bfff */
- m_cartcpu->space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(FUNC(playch10_state::iboard_rom_switch_w),this));
+ m_cartcpu->space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(*this, FUNC(playch10_state::iboard_rom_switch_w)));
/* common init */
init_playch10();
@@ -1081,7 +1081,7 @@ void playch10_state::init_pchboard()
memcpy(&prg[0x0c000], &prg[0x4c000], 0x4000);
/* Roms are banked at $8000 to $bfff */
- m_cartcpu->space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(FUNC(playch10_state::hboard_rom_switch_w),this));
+ m_cartcpu->space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(*this, FUNC(playch10_state::hboard_rom_switch_w)));
/* extra ram at $6000-$7fff */
m_cartcpu->space(AS_PROGRAM).install_ram(0x6000, 0x7fff);
@@ -1096,7 +1096,7 @@ void playch10_state::init_pchboard()
/* common init */
init_playch10();
- m_ppu->set_scanline_callback(ppu2c0x_device::scanline_delegate(FUNC(playch10_state::gboard_scanline_cb),this));
+ m_ppu->set_scanline_callback(*this, FUNC(playch10_state::gboard_scanline_cb));
}
/**********************************************************************************/
@@ -1116,7 +1116,7 @@ void playch10_state::init_pckboard()
m_cartcpu->space(AS_PROGRAM).install_ram(0x6000, 0x7fff);
/* Roms are banked at $8000 to $bfff */
- m_cartcpu->space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(FUNC(playch10_state::mmc1_rom_switch_w),this));
+ m_cartcpu->space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(*this, FUNC(playch10_state::mmc1_rom_switch_w)));
/* common init */
init_playch10();
diff --git a/src/mame/machine/pp01.cpp b/src/mame/machine/pp01.cpp
index 665724e5a60..12975f45615 100644
--- a/src/mame/machine/pp01.cpp
+++ b/src/mame/machine/pp01.cpp
@@ -93,28 +93,27 @@ void pp01_state::set_memory(uint8_t block, uint8_t data)
// This is RAM
space.install_read_bank (startaddr, endaddr, bank);
switch(data) {
- case 0xe6 :
- space.install_write_handler(startaddr, endaddr, write8_delegate(FUNC(pp01_state::video_r_1_w),this));
- break;
- case 0xe7 :
- space.install_write_handler(startaddr, endaddr, write8_delegate(FUNC(pp01_state::video_r_2_w),this));
- break;
- case 0xea :
- space.install_write_handler(startaddr, endaddr, write8_delegate(FUNC(pp01_state::video_g_1_w),this));
- break;
- case 0xeb :
- space.install_write_handler(startaddr, endaddr, write8_delegate(FUNC(pp01_state::video_g_2_w),this));
- break;
- case 0xee :
- space.install_write_handler(startaddr, endaddr, write8_delegate(FUNC(pp01_state::video_b_1_w),this));
- break;
- case 0xef :
- space.install_write_handler(startaddr, endaddr, write8_delegate(FUNC(pp01_state::video_b_2_w),this));
- break;
-
- default :
- space.install_write_bank(startaddr, endaddr, bank);
- break;
+ case 0xe6 :
+ space.install_write_handler(startaddr, endaddr, write8_delegate(*this, FUNC(pp01_state::video_r_1_w)));
+ break;
+ case 0xe7:
+ space.install_write_handler(startaddr, endaddr, write8_delegate(*this, FUNC(pp01_state::video_r_2_w)));
+ break;
+ case 0xea:
+ space.install_write_handler(startaddr, endaddr, write8_delegate(*this, FUNC(pp01_state::video_g_1_w)));
+ break;
+ case 0xeb:
+ space.install_write_handler(startaddr, endaddr, write8_delegate(*this, FUNC(pp01_state::video_g_2_w)));
+ break;
+ case 0xee:
+ space.install_write_handler(startaddr, endaddr, write8_delegate(*this, FUNC(pp01_state::video_b_1_w)));
+ break;
+ case 0xef:
+ space.install_write_handler(startaddr, endaddr, write8_delegate(*this, FUNC(pp01_state::video_b_2_w)));
+ break;
+ default:
+ space.install_write_bank(startaddr, endaddr, bank);
+ break;
}
membank(bank)->set_base(m_ram->pointer() + (data & 0x0F)* 0x1000);
diff --git a/src/mame/machine/rm380z.cpp b/src/mame/machine/rm380z.cpp
index 2a3aa0690ab..07376409f41 100644
--- a/src/mame/machine/rm380z.cpp
+++ b/src/mame/machine/rm380z.cpp
@@ -305,7 +305,7 @@ void rm380z_state::config_memory_map()
else
{
program.install_rom( 0x0000, 0x0FFF, rom );
- program.install_readwrite_handler(0x1BFC, 0x1BFF,read8_delegate(FUNC(rm380z_state::port_read_1b00), this),write8_delegate(FUNC(rm380z_state::port_write_1b00), this) );
+ program.install_readwrite_handler(0x1BFC, 0x1BFF, read8_delegate(*this, FUNC(rm380z_state::port_read_1b00)), write8_delegate(*this, FUNC(rm380z_state::port_write_1b00)));
program.install_rom( 0x1C00, 0x1DFF, rom + 0x1400 );
program.install_ram( 0x4000, 0xDFFF, m_ram_p );
}
diff --git a/src/mame/machine/samcoupe.cpp b/src/mame/machine/samcoupe.cpp
index ef5bead3f28..530fafe2ec9 100644
--- a/src/mame/machine/samcoupe.cpp
+++ b/src/mame/machine/samcoupe.cpp
@@ -323,7 +323,7 @@ void samcoupe_state::machine_reset()
if (m_config->read() & 0x01)
{
/* install RTC */
- spaceio.install_readwrite_handler(0xef, 0xef, 0, 0, 0xff00, read8_delegate(FUNC(samcoupe_state::samcoupe_rtc_r),this), write8_delegate(FUNC(samcoupe_state::samcoupe_rtc_w),this));
+ spaceio.install_readwrite_handler(0xef, 0xef, 0, 0, 0xff00, read8_delegate(*this, FUNC(samcoupe_state::samcoupe_rtc_r)), write8_delegate(*this, FUNC(samcoupe_state::samcoupe_rtc_w)));
}
else
{
diff --git a/src/mame/machine/scramble.cpp b/src/mame/machine/scramble.cpp
index 0bf08f83f78..d36d8f7de67 100644
--- a/src/mame/machine/scramble.cpp
+++ b/src/mame/machine/scramble.cpp
@@ -129,13 +129,13 @@ void scramble_state::init_scramble_ppi()
void scramble_state::init_scobra()
{
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xa803, 0xa803, write8_delegate(FUNC(scramble_state::scrambold_background_enable_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xa803, 0xa803, write8_delegate(*this, FUNC(scramble_state::scrambold_background_enable_w)));
}
#ifdef UNUSED_FUNCTION
void scramble_state::init_atlantis()
{
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x6803, 0x6803, write8_delegate(FUNC(scramble_state::scrambold_background_enable_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x6803, 0x6803, write8_delegate(*this, FUNC(scramble_state::scrambold_background_enable_w)));
}
void scramble_state::init_scramble()
@@ -146,14 +146,14 @@ void scramble_state::init_scramble()
void scramble_state::init_stratgyx()
{
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xb000, 0xb000, write8_delegate(FUNC(scramble_state::scrambold_background_green_w),this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xb002, 0xb002, write8_delegate(FUNC(scramble_state::scrambold_background_blue_w),this));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xb00a, 0xb00a, write8_delegate(FUNC(scramble_state::scrambold_background_red_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xb000, 0xb000, write8_delegate(*this, FUNC(scramble_state::scrambold_background_green_w)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xb002, 0xb002, write8_delegate(*this, FUNC(scramble_state::scrambold_background_blue_w)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xb00a, 0xb00a, write8_delegate(*this, FUNC(scramble_state::scrambold_background_red_w)));
}
void scramble_state::init_tazmani2()
{
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xb002, 0xb002, write8_delegate(FUNC(scramble_state::scrambold_background_enable_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xb002, 0xb002, write8_delegate(*this, FUNC(scramble_state::scrambold_background_enable_w)));
}
void scramble_state::init_tazmaniet()
@@ -182,8 +182,8 @@ void scramble_state::init_mariner()
m_maincpu->space(AS_PROGRAM).unmap_write(0x5800, 0x67ff);
membank("bank1")->set_base(memregion("maincpu")->base() + 0x5800);
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x9008, 0x9008, read8_delegate(FUNC(scramble_state::mariner_protection_2_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xb401, 0xb401, read8_delegate(FUNC(scramble_state::mariner_protection_1_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x9008, 0x9008, read8_delegate(*this, FUNC(scramble_state::mariner_protection_2_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xb401, 0xb401, read8_delegate(*this, FUNC(scramble_state::mariner_protection_1_r)));
/* ??? (it's NOT a background enable) */
/*m_maincpu->space(AS_PROGRAM).nop_write(0x6803, 0x6803);*/
@@ -259,7 +259,7 @@ void scramble_state::init_cavelon()
cavelon_banksw();
/* A15 switches memory banks */
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x8000, 0xffff, read8_delegate(FUNC(scramble_state::cavelon_banksw_r),this), write8_delegate(FUNC(scramble_state::cavelon_banksw_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x8000, 0xffff, read8_delegate(*this, FUNC(scramble_state::cavelon_banksw_r)), write8_delegate(*this, FUNC(scramble_state::cavelon_banksw_w)));
m_maincpu->space(AS_PROGRAM).nop_write(0x2000, 0x2000); /* ??? */
m_maincpu->space(AS_PROGRAM).nop_write(0x3800, 0x3801); /* looks suspicously like
@@ -271,7 +271,7 @@ void scramble_state::init_cavelon()
void scramble_state::init_darkplnt()
{
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xb00a, 0xb00a, write8_delegate(FUNC(scramble_state::darkplnt_bullet_color_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xb00a, 0xb00a, write8_delegate(*this, FUNC(scramble_state::darkplnt_bullet_color_w)));
}
void scramble_state::init_mimonkey()
@@ -305,17 +305,17 @@ void scramble_state::init_mimonkey()
ROM[A] = ROM[A] ^ xortable[line][col];
ctr++;
}
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xa804, 0xa804, write8_delegate(FUNC(scramble_state::scrambold_background_enable_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xa804, 0xa804, write8_delegate(*this, FUNC(scramble_state::scrambold_background_enable_w)));
}
void scramble_state::init_mimonsco()
{
- m_maincpu->space(AS_PROGRAM).install_write_handler(0xa804, 0xa804, write8_delegate(FUNC(scramble_state::scrambold_background_enable_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xa804, 0xa804, write8_delegate(*this, FUNC(scramble_state::scrambold_background_enable_w)));
}
void scramble_state::init_mimonscr()
{
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x6804, 0x6804, write8_delegate(FUNC(scramble_state::scrambold_background_enable_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x6804, 0x6804, write8_delegate(*this, FUNC(scramble_state::scrambold_background_enable_w)));
}
@@ -638,6 +638,6 @@ void scramble_state::init_newsin7a()
// ROM[0x0067] ^= 0x22; /* rst $00 - should be push hl - the NMI routine is corrupt in this set, but the IRQ routine bypasses it? intentional? */
// attempts to access port at c20x instead of 820x in one location, mirror or bitrot?
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xc200, 0xc20f, read8_delegate(FUNC(scramble_state::mars_ppi8255_1_r),this), write8_delegate(FUNC(scramble_state::mars_ppi8255_1_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xc200, 0xc20f, read8_delegate(*this, FUNC(scramble_state::mars_ppi8255_1_r)), write8_delegate(*this, FUNC(scramble_state::mars_ppi8255_1_w)));
}
diff --git a/src/mame/machine/sorcerer.cpp b/src/mame/machine/sorcerer.cpp
index 8df04fabd50..ee4e6857d25 100644
--- a/src/mame/machine/sorcerer.cpp
+++ b/src/mame/machine/sorcerer.cpp
@@ -463,7 +463,7 @@ void sorcerer_state::machine_start_common(u16 endmem)
}
if (m_cart && m_cart->exists())
- space.install_read_handler(0xc000, 0xdfff, read8sm_delegate(FUNC(generic_slot_device::read_rom),(generic_slot_device*)m_cart));
+ space.install_read_handler(0xc000, 0xdfff, read8sm_delegate(*m_cart, FUNC(generic_slot_device::read_rom)));
}
void sorcerer_state::machine_start()
diff --git a/src/mame/machine/special.cpp b/src/mame/machine/special.cpp
index bd971917260..ba7fc9330aa 100644
--- a/src/mame/machine/special.cpp
+++ b/src/mame/machine/special.cpp
@@ -167,7 +167,7 @@ void special_state::specimx_set_bank(offs_t i, uint8_t data)
{
case 0 :
space.install_write_bank(0x0000, 0x8fff, "bank1");
- space.install_write_handler(0x9000, 0xbfff, write8_delegate(FUNC(special_state::video_memory_w), this));
+ space.install_write_handler(0x9000, 0xbfff, write8_delegate(*this, FUNC(special_state::video_memory_w)));
m_bank1->set_base(ram);
m_bank2->set_base(ram + 0x9000);
@@ -321,7 +321,7 @@ void special_state::erik_set_bank()
m_bank4->set_base(mem + 0x1c000);
space.unmap_write(0xf000, 0xf7ff);
space.nop_read(0xf000, 0xf7ff);
- space.install_readwrite_handler(0xf800, 0xf803, 0, 0x7fc, 0, read8sm_delegate(FUNC(i8255_device::read), (i8255_device*)m_ppi), write8sm_delegate(FUNC(i8255_device::write), (i8255_device*)m_ppi));
+ space.install_readwrite_handler(0xf800, 0xf803, 0, 0x7fc, 0, read8sm_delegate(*m_ppi, FUNC(i8255_device::read)), write8sm_delegate(*m_ppi, FUNC(i8255_device::write)));
break;
}
}
diff --git a/src/mame/machine/st0016.cpp b/src/mame/machine/st0016.cpp
index 17cf6e660be..cadd8bf046d 100644
--- a/src/mame/machine/st0016.cpp
+++ b/src/mame/machine/st0016.cpp
@@ -7,6 +7,8 @@
#include "emupal.h"
#include "speaker.h"
+#include <algorithm>
+
DEFINE_DEVICE_TYPE(ST0016_CPU, st0016_cpu_device, "st0016_cpu", "ST0016")
@@ -33,23 +35,23 @@ void st0016_cpu_device::st0016_cpu_internal_io_map(address_map &map)
// note: a lot of bits are left uninitialized by the games, the default values are uncertain
st0016_cpu_device::st0016_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
- : z80_device(mconfig, ST0016_CPU, tag, owner, clock),
- device_gfx_interface(mconfig, *this, nullptr, "palette"),
- st0016_spr_bank(0),
- st0016_spr2_bank(0),
- st0016_pal_bank(0),
- st0016_char_bank(0),
- spr_dx(0),
- spr_dy(0),
- st0016_ramgfx(0),
- m_io_space_config("io", ENDIANNESS_LITTLE, 8, 16, 0, address_map_constructor(FUNC(st0016_cpu_device::st0016_cpu_internal_io_map), this)),
- m_space_config("regs", ENDIANNESS_LITTLE, 8, 16, 0, address_map_constructor(FUNC(st0016_cpu_device::st0016_cpu_internal_map), this)),
- m_screen(*this, ":screen"),
- m_rom(*this, DEVICE_SELF),
- m_game_flag(-1)
+ : z80_device(mconfig, ST0016_CPU, tag, owner, clock)
+ , device_gfx_interface(mconfig, *this, nullptr, "palette")
+ , st0016_spr_bank(0)
+ , st0016_spr2_bank(0)
+ , st0016_pal_bank(0)
+ , st0016_char_bank(0)
+ , spr_dx(0)
+ , spr_dy(0)
+ , st0016_ramgfx(0)
+ , m_io_space_config("io", ENDIANNESS_LITTLE, 8, 16, 0, address_map_constructor(FUNC(st0016_cpu_device::st0016_cpu_internal_io_map), this))
+ , m_space_config("regs", ENDIANNESS_LITTLE, 8, 16, 0, address_map_constructor(FUNC(st0016_cpu_device::st0016_cpu_internal_map), this))
+ , m_screen(*this, ":screen")
+ , m_rom(*this, DEVICE_SELF)
+ , m_dma_offs_cb(*this)
+ , m_game_flag(-1)
{
- for (auto & elem : st0016_vregs)
- elem = 0;
+ std::fill(std::begin(st0016_vregs), std::end(st0016_vregs), 0);
}
@@ -72,7 +74,7 @@ void st0016_cpu_device::device_start()
{
z80_device::device_start();
startup();
- m_dma_offs_cb.bind_relative_to(*owner());
+ m_dma_offs_cb.resolve();
}
@@ -230,23 +232,21 @@ WRITE8_MEMBER(st0016_cpu_device::st0016_character_ram_w)
READ8_MEMBER(st0016_cpu_device::st0016_vregs_r)
{
-/*
- $0, $1 = max scanline(including vblank)/timer? ($3e7)
-
- $8-$40 = bg tilemaps (8 bytes each) :
- 0 - ? = usually 0/20/ba*
- 1 - 0 = disabled , !zero = address of tilemap in spriteram /$1000 (for example: 3 -> tilemap at $3000 )
- 2 - ? = usually ff/1f/af*
- 3 - priority ? = 0 - under sprites , $ff - over sprites \
- 4 - ? = $7f/$ff
- 5 - ? = $29/$20 (29 when tilemap must be drawn over sprites . maybe this is real priority ?)
- 6 - ? = 0
- 7 - ? =$20/$10/$12*
-
-
- $40-$60 = scroll registers , X.w, Y.w
-
-*/
+ /*
+ $0, $1 = max scanline(including vblank)/timer? ($3e7)
+
+ $8-$40 = bg tilemaps (8 bytes each) :
+ 0 - ? = usually 0/20/ba*
+ 1 - 0 = disabled , !zero = address of tilemap in spriteram /$1000 (for example: 3 -> tilemap at $3000 )
+ 2 - ? = usually ff/1f/af*
+ 3 - priority ? = 0 - under sprites , $ff - over sprites \
+ 4 - ? = $7f/$ff
+ 5 - ? = $29/$20 (29 when tilemap must be drawn over sprites . maybe this is real priority ?)
+ 6 - ? = 0
+ 7 - ? =$20/$10/$12*
+
+ $40-$60 = scroll registers , X.w, Y.w
+ */
switch (offset)
{
diff --git a/src/mame/machine/st0016.h b/src/mame/machine/st0016.h
index 6b2ca54eaef..548d927bf93 100644
--- a/src/mame/machine/st0016.h
+++ b/src/mame/machine/st0016.h
@@ -19,7 +19,7 @@ public:
st0016_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t);
- template <typename... T> void set_dma_offs_callback(T &&... args) { m_dma_offs_cb = dma_offs_delegate(std::forward<T>(args)...); }
+ template <typename... T> void set_dma_offs_callback(T &&... args) { m_dma_offs_cb.set(std::forward<T>(args)...); }
DECLARE_WRITE8_MEMBER(st0016_sprite_bank_w);
DECLARE_WRITE8_MEMBER(st0016_palette_bank_w);
diff --git a/src/mame/machine/stvprot.cpp b/src/mame/machine/stvprot.cpp
index eaf95385624..4344696389a 100644
--- a/src/mame/machine/stvprot.cpp
+++ b/src/mame/machine/stvprot.cpp
@@ -84,7 +84,7 @@ WRITE32_MEMBER ( stv_state::common_prot_w )
void stv_state::install_common_protection()
{
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x4fffff0, 0x4ffffff, read32_delegate(FUNC(stv_state::common_prot_r), this), write32_delegate(FUNC(stv_state::common_prot_w), this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x4fffff0, 0x4ffffff, read32_delegate(*this, FUNC(stv_state::common_prot_r)), write32_delegate(*this, FUNC(stv_state::common_prot_w)));
}
void stv_state::stv_register_protection_savestates()
diff --git a/src/mame/machine/thomson.cpp b/src/mame/machine/thomson.cpp
index f97ffe108ac..37c29966c96 100644
--- a/src/mame/machine/thomson.cpp
+++ b/src/mame/machine/thomson.cpp
@@ -338,7 +338,7 @@ void thomson_state::to7_update_cart_bank()
bank = m_thom_cart_bank % m_thom_cart_nb_banks;
if ( bank != m_old_cart_bank && m_old_cart_bank < 0 )
{
- space.install_read_handler(0x0000, 0x0003, read8_delegate(FUNC(thomson_state::to7_cartridge_r),this) );
+ space.install_read_handler(0x0000, 0x0003, read8_delegate(*this, FUNC(thomson_state::to7_cartridge_r)) );
}
}
if ( bank != m_old_cart_bank )
@@ -1484,8 +1484,8 @@ void thomson_state::mo5_update_cart_bank()
if ( m_old_cart_bank < 0 )
{
space.install_read_bank( 0xb000, 0xefff, m_cartbank);
- space.install_write_handler( 0xb000, 0xefff, write8_delegate(FUNC(thomson_state::mo5_cartridge_w),this) );
- space.install_read_handler( 0xbffc, 0xbfff, read8_delegate(FUNC(thomson_state::mo5_cartridge_r),this) );
+ space.install_write_handler( 0xb000, 0xefff, write8_delegate(*this, FUNC(thomson_state::mo5_cartridge_w)) );
+ space.install_read_handler( 0xbffc, 0xbfff, read8_delegate(*this, FUNC(thomson_state::mo5_cartridge_r)) );
}
LOG_BANK(( "mo5_update_cart_bank: CART is cartridge bank %i\n", bank ));
}
@@ -1496,7 +1496,7 @@ void thomson_state::mo5_update_cart_bank()
if ( m_old_cart_bank != 0 )
{
space.install_read_bank( 0xb000, 0xefff, m_cartbank);
- space.install_write_handler( 0xb000, 0xefff, write8_delegate(FUNC(thomson_state::mo5_cartridge_w),this) );
+ space.install_write_handler( 0xb000, 0xefff, write8_delegate(*this, FUNC(thomson_state::mo5_cartridge_w)) );
LOG_BANK(( "mo5_update_cart_bank: CART is internal\n"));
}
}
@@ -1886,8 +1886,8 @@ void thomson_state::to9_update_cart_bank()
if ( m_old_cart_bank < 0 || m_old_cart_bank > 3 )
{
space.install_read_bank( 0x0000, 0x3fff, m_cartbank );
- space.install_write_handler( 0x0000, 0x3fff, write8_delegate(FUNC(thomson_state::to9_cartridge_w),this) );
- space.install_read_handler( 0x0000, 0x0003, read8_delegate(FUNC(thomson_state::to9_cartridge_r),this) );
+ space.install_write_handler( 0x0000, 0x3fff, write8_delegate(*this, FUNC(thomson_state::to9_cartridge_w)) );
+ space.install_read_handler( 0x0000, 0x0003, read8_delegate(*this, FUNC(thomson_state::to9_cartridge_r)) );
}
LOG_BANK(( "to9_update_cart_bank: CART is cartridge bank %i\n", m_thom_cart_bank ));
}
@@ -3005,7 +3005,7 @@ void thomson_state::to8_update_cart_bank()
}
else
{
- space.install_write_handler( 0x0000, 0x3fff, write8_delegate(FUNC(thomson_state::to8_vcart_w),this));
+ space.install_write_handler( 0x0000, 0x3fff, write8_delegate(*this, FUNC(thomson_state::to8_vcart_w)));
}
}
}
@@ -3047,7 +3047,7 @@ void thomson_state::to8_update_cart_bank()
{
if (m_to8_cart_vpage < 4)
{
- space.install_write_handler( 0x0000, 0x3fff, write8_delegate(FUNC(thomson_state::to8_vcart_w),this));
+ space.install_write_handler( 0x0000, 0x3fff, write8_delegate(*this, FUNC(thomson_state::to8_vcart_w)));
}
else
{
@@ -3072,7 +3072,7 @@ void thomson_state::to8_update_cart_bank()
if ( m_old_cart_bank < 4 || m_old_cart_bank > 7 )
{
space.install_read_bank( 0x0000, 0x3fff, m_cartbank );
- space.install_write_handler( 0x0000, 0x3fff, write8_delegate(FUNC(thomson_state::to8_cartridge_w),this) );
+ space.install_write_handler( 0x0000, 0x3fff, write8_delegate(*this, FUNC(thomson_state::to8_cartridge_w)) );
}
LOG_BANK(( "to8_update_cart_bank: CART is internal bank %i\n", m_to8_soft_bank ));
}
@@ -3088,8 +3088,8 @@ void thomson_state::to8_update_cart_bank()
if ( m_old_cart_bank < 0 || m_old_cart_bank > 3 )
{
space.install_read_bank( 0x0000, 0x3fff, m_cartbank );
- space.install_write_handler( 0x0000, 0x3fff, write8_delegate(FUNC(thomson_state::to8_cartridge_w),this) );
- space.install_read_handler( 0x0000, 0x0003, read8_delegate(FUNC(thomson_state::to8_cartridge_r),this) );
+ space.install_write_handler( 0x0000, 0x3fff, write8_delegate(*this, FUNC(thomson_state::to8_cartridge_w)) );
+ space.install_read_handler( 0x0000, 0x0003, read8_delegate(*this, FUNC(thomson_state::to8_cartridge_r)) );
}
LOG_BANK(( "to8_update_cart_bank: CART is external cartridge bank %i\n", bank ));
}
@@ -3813,8 +3813,8 @@ void thomson_state::mo6_update_cart_bank()
}
else
{
- space.install_write_handler( 0xb000, 0xbfff, write8_delegate(FUNC(thomson_state::mo6_vcart_lo_w),this));
- space.install_write_handler( 0xc000, 0xefff, write8_delegate(FUNC(thomson_state::mo6_vcart_hi_w),this));
+ space.install_write_handler( 0xb000, 0xbfff, write8_delegate(*this, FUNC(thomson_state::mo6_vcart_lo_w)));
+ space.install_write_handler( 0xc000, 0xefff, write8_delegate(*this, FUNC(thomson_state::mo6_vcart_hi_w)));
}
}
}
@@ -3849,8 +3849,8 @@ void thomson_state::mo6_update_cart_bank()
{
if (m_to8_cart_vpage < 4)
{
- space.install_write_handler( 0xb000, 0xbfff, write8_delegate(FUNC(thomson_state::mo6_vcart_lo_w),this));
- space.install_write_handler( 0xc000, 0xefff, write8_delegate(FUNC(thomson_state::mo6_vcart_hi_w),this));
+ space.install_write_handler( 0xb000, 0xbfff, write8_delegate(*this, FUNC(thomson_state::mo6_vcart_lo_w)));
+ space.install_write_handler( 0xc000, 0xefff, write8_delegate(*this, FUNC(thomson_state::mo6_vcart_hi_w)));
}
else
{
@@ -3945,7 +3945,7 @@ void thomson_state::mo6_update_cart_bank()
{
space.install_read_bank( 0xb000, 0xbfff, m_cartlobank );
space.install_read_bank( 0xc000, 0xefff, m_carthibank );
- space.install_write_handler( 0xb000, 0xefff, write8_delegate(FUNC(thomson_state::mo6_cartridge_w),this) );
+ space.install_write_handler( 0xb000, 0xefff, write8_delegate(*this, FUNC(thomson_state::mo6_cartridge_w)) );
}
LOG_BANK(( "mo6_update_cart_bank: CART is internal ROM bank %i\n", b ));
}
@@ -3962,8 +3962,8 @@ void thomson_state::mo6_update_cart_bank()
{
space.install_read_bank( 0xb000, 0xbfff, m_cartlobank );
space.install_read_bank( 0xc000, 0xefff, m_carthibank );
- space.install_write_handler( 0xb000, 0xefff, write8_delegate(FUNC(thomson_state::mo6_cartridge_w),this) );
- space.install_read_handler( 0xbffc, 0xbfff, read8_delegate(FUNC(thomson_state::mo6_cartridge_r),this) );
+ space.install_write_handler( 0xb000, 0xefff, write8_delegate(*this, FUNC(thomson_state::mo6_cartridge_w)) );
+ space.install_read_handler( 0xbffc, 0xbfff, read8_delegate(*this, FUNC(thomson_state::mo6_cartridge_r)) );
}
LOG_BANK(( "mo6_update_cart_bank: CART is external cartridge bank %i\n", bank ));
}
diff --git a/src/mame/machine/toaplan1.cpp b/src/mame/machine/toaplan1.cpp
index 3e10d414f97..9a66cae33c0 100644
--- a/src/mame/machine/toaplan1.cpp
+++ b/src/mame/machine/toaplan1.cpp
@@ -240,7 +240,7 @@ void toaplan1_state::machine_reset()
MACHINE_RESET_MEMBER(toaplan1_state,zerowing)
{
machine_reset();
- m_maincpu->set_reset_callback(write_line_delegate(FUNC(toaplan1_state::reset_callback),this));
+ m_maincpu->set_reset_callback(*this, FUNC(toaplan1_state::reset_callback));
}
void toaplan1_demonwld_state::machine_reset()
diff --git a/src/mame/machine/upd65031.cpp b/src/mame/machine/upd65031.cpp
index 74584e6cbba..d195ef42560 100644
--- a/src/mame/machine/upd65031.cpp
+++ b/src/mame/machine/upd65031.cpp
@@ -196,12 +196,14 @@ inline void upd65031_device::set_mode(int mode)
// upd65031_device - constructor
//-------------------------------------------------
-upd65031_device::upd65031_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
- : device_t(mconfig, UPD65031, tag, owner, clock),
+upd65031_device::upd65031_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
+ device_t(mconfig, UPD65031, tag, owner, clock),
m_read_kb(*this),
m_write_int(*this),
m_write_nmi(*this),
- m_write_spkr(*this)
+ m_write_spkr(*this),
+ m_screen_update_cb(*this),
+ m_out_mem_cb(*this)
{
}
@@ -219,8 +221,8 @@ void upd65031_device::device_start()
m_write_spkr.resolve_safe();
// bind delegates
- m_screen_update_cb.bind_relative_to(*owner());
- m_out_mem_cb.bind_relative_to(*owner());
+ m_screen_update_cb.resolve();
+ m_out_mem_cb.resolve();
// allocate timers
m_rtc_timer = timer_alloc(TIMER_RTC);
diff --git a/src/mame/machine/upd65031.h b/src/mame/machine/upd65031.h
index e6c1b6d927c..5dd208fbe7c 100644
--- a/src/mame/machine/upd65031.h
+++ b/src/mame/machine/upd65031.h
@@ -16,9 +16,6 @@
// TYPE DEFINITIONS
//**************************************************************************
-typedef device_delegate<void (bitmap_ind16 &bitmap, uint16_t sbf, uint16_t hires0, uint16_t hires1, uint16_t lores0, uint16_t lores1, int flash)> upd65031_screen_update_delegate;
-typedef device_delegate<void (int bank, uint16_t page, int rams)> upd65031_memory_update_delegate;
-
#define UPD65031_SCREEN_UPDATE(_name) void _name(bitmap_ind16 &bitmap, uint16_t sbf, uint16_t hires0, uint16_t hires1, uint16_t lores0, uint16_t lores1, int flash)
#define UPD65031_MEMORY_UPDATE(_name) void _name(int bank, uint16_t page, int rams)
@@ -28,6 +25,9 @@ typedef device_delegate<void (int bank, uint16_t page, int rams)> upd65031_memor
class upd65031_device : public device_t
{
public:
+ typedef device_delegate<void (bitmap_ind16 &bitmap, uint16_t sbf, uint16_t hires0, uint16_t hires1, uint16_t lores0, uint16_t lores1, int flash)> screen_update_delegate;
+ typedef device_delegate<void (int bank, uint16_t page, int rams)> memory_update_delegate;
+
// construction/destruction
upd65031_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
@@ -36,8 +36,8 @@ public:
auto nmi_wr_callback() { return m_write_nmi.bind(); }
auto spkr_wr_callback() { return m_write_spkr.bind(); }
- template <typename... T> void set_screen_update_callback(T &&... args) { m_screen_update_cb = upd65031_screen_update_delegate(std::forward<T>(args)...); }
- template <typename... T> void set_memory_update_callback(T &&... args) { m_out_mem_cb = upd65031_memory_update_delegate(std::forward<T>(args)...); }
+ template <typename... T> void set_screen_update_callback(T &&... args) { m_screen_update_cb.set(std::forward<T>(args)...); }
+ template <typename... T> void set_memory_update_callback(T &&... args) { m_out_mem_cb.set(std::forward<T>(args)...); }
DECLARE_READ8_MEMBER( read );
DECLARE_WRITE8_MEMBER( write );
@@ -64,8 +64,8 @@ private:
devcb_write_line m_write_nmi;
devcb_write_line m_write_spkr;
- upd65031_screen_update_delegate m_screen_update_cb; // callback for update the LCD
- upd65031_memory_update_delegate m_out_mem_cb; // callback for update bankswitch
+ screen_update_delegate m_screen_update_cb; // callback for update the LCD
+ memory_update_delegate m_out_mem_cb; // callback for update bankswitch
int m_mode;
uint16_t m_lcd_regs[5]; // LCD registers
diff --git a/src/mame/machine/vectrex.cpp b/src/mame/machine/vectrex.cpp
index a54f3f0227e..8563f3a9665 100644
--- a/src/mame/machine/vectrex.cpp
+++ b/src/mame/machine/vectrex.cpp
@@ -328,9 +328,9 @@ void vectrex_state::machine_start()
{
// install cart accesses
if (m_cart->get_type() == VECTREX_SRAM)
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x0000, 0x7fff, read8_delegate(FUNC(vectrex_cart_slot_device::read_rom),(vectrex_cart_slot_device*)m_cart), write8_delegate(FUNC(vectrex_cart_slot_device::write_ram),m_cart.target()));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x0000, 0x7fff, read8_delegate(*m_cart, FUNC(vectrex_cart_slot_device::read_rom)), write8_delegate(*m_cart, FUNC(vectrex_cart_slot_device::write_ram)));
else
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x0000, 0x7fff, read8_delegate(FUNC(vectrex_cart_slot_device::read_rom),m_cart.target()));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x0000, 0x7fff, read8_delegate(*m_cart, FUNC(vectrex_cart_slot_device::read_rom)));
// setup 3d imager and refresh timer
diff --git a/src/mame/machine/vsnes.cpp b/src/mame/machine/vsnes.cpp
index 317608c8f55..b3fa0904d2b 100644
--- a/src/mame/machine/vsnes.cpp
+++ b/src/mame/machine/vsnes.cpp
@@ -196,7 +196,7 @@ MACHINE_START_MEMBER(vsnes_state,vsnes)
m_nt_page[0][2] = m_nt_ram[0].get() + 0x800;
m_nt_page[0][3] = m_nt_ram[0].get() + 0xc00;
- ppu1_space.install_readwrite_handler(0x2000, 0x3eff, read8_delegate(FUNC(vsnes_state::vsnes_nt0_r),this), write8_delegate(FUNC(vsnes_state::vsnes_nt0_w),this));
+ ppu1_space.install_readwrite_handler(0x2000, 0x3eff, read8_delegate(*this, FUNC(vsnes_state::vsnes_nt0_r)), write8_delegate(*this, FUNC(vsnes_state::vsnes_nt0_w)));
if (m_gfx1_rom != nullptr)
{
@@ -249,8 +249,8 @@ MACHINE_START_MEMBER(vsnes_state,vsdual)
m_nt_page[1][2] = m_nt_ram[1].get() + 0x800;
m_nt_page[1][3] = m_nt_ram[1].get() + 0xc00;
- m_ppu1->space(AS_PROGRAM).install_readwrite_handler(0x2000, 0x3eff, read8_delegate(FUNC(vsnes_state::vsnes_nt0_r),this), write8_delegate(FUNC(vsnes_state::vsnes_nt0_w),this));
- m_ppu2->space(AS_PROGRAM).install_readwrite_handler(0x2000, 0x3eff, read8_delegate(FUNC(vsnes_state::vsnes_nt1_r),this), write8_delegate(FUNC(vsnes_state::vsnes_nt1_w),this));
+ m_ppu1->space(AS_PROGRAM).install_readwrite_handler(0x2000, 0x3eff, read8_delegate(*this, FUNC(vsnes_state::vsnes_nt0_r)), write8_delegate(*this, FUNC(vsnes_state::vsnes_nt0_w)));
+ m_ppu2->space(AS_PROGRAM).install_readwrite_handler(0x2000, 0x3eff, read8_delegate(*this, FUNC(vsnes_state::vsnes_nt1_r)), write8_delegate(*this, FUNC(vsnes_state::vsnes_nt1_w)));
// read only!
m_ppu1->space(AS_PROGRAM).install_read_bank(0x0000, 0x1fff, "bank2");
// read only!
@@ -347,7 +347,7 @@ WRITE8_MEMBER(vsnes_state::vsnormal_vrom_banking)
void vsnes_state::init_vsnormal()
{
/* vrom switching is enabled with bit 2 of $4016 */
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x4016, 0x4016, write8_delegate(FUNC(vsnes_state::vsnormal_vrom_banking),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x4016, 0x4016, write8_delegate(*this, FUNC(vsnes_state::vsnormal_vrom_banking)));
}
/**********************************************************************************/
@@ -430,7 +430,7 @@ WRITE8_MEMBER(vsnes_state::gun_in0_w)
void vsnes_state::init_vsgun()
{
/* VROM switching is enabled with bit 2 of $4016 */
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x4016, 0x4016, read8_delegate(FUNC(vsnes_state::gun_in0_r),this), write8_delegate(FUNC(vsnes_state::gun_in0_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x4016, 0x4016, read8_delegate(*this, FUNC(vsnes_state::gun_in0_r)), write8_delegate(*this, FUNC(vsnes_state::gun_in0_w)));
m_do_vrom_bank = 1;
}
@@ -471,7 +471,7 @@ void vsnes_state::init_vskonami()
memcpy(&prg[0x08000], &prg[0x18000], 0x8000);
/* banking is done with writes to the $8000-$ffff area */
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(FUNC(vsnes_state::vskonami_rom_banking),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(*this, FUNC(vsnes_state::vskonami_rom_banking)));
}
/***********************************************************************/
@@ -498,7 +498,7 @@ void vsnes_state::init_vsgshoe()
memcpy (&prg[0x08000], &prg[0x12000], 0x2000);
/* vrom switching is enabled with bit 2 of $4016 */
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x4016, 0x4016, read8_delegate(FUNC(vsnes_state::gun_in0_r),this), write8_delegate(FUNC(vsnes_state::vsgshoe_gun_in0_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x4016, 0x4016, read8_delegate(*this, FUNC(vsnes_state::gun_in0_r)), write8_delegate(*this, FUNC(vsnes_state::vsgshoe_gun_in0_w)));
m_do_vrom_bank = 1;
}
@@ -627,7 +627,7 @@ void vsnes_state::init_drmario()
memcpy(&prg[0x0c000], &prg[0x1c000], 0x4000);
/* MMC1 mapper at writes to $8000-$ffff */
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(FUNC(vsnes_state::drmario_rom_banking),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(*this, FUNC(vsnes_state::drmario_rom_banking)));
m_drmario_shiftreg = 0;
m_drmario_shiftcount = 0;
@@ -651,7 +651,7 @@ void vsnes_state::init_vsvram()
memcpy(&prg[0x08000], &prg[0x28000], 0x8000);
/* banking is done with writes to the $8000-$ffff area */
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(FUNC(vsnes_state::vsvram_rom_banking),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(*this, FUNC(vsnes_state::vsvram_rom_banking)));
/* allocate m_vram */
m_vram = std::make_unique<uint8_t[]>(0x2000);
@@ -768,12 +768,12 @@ WRITE8_MEMBER(vsnes_state::mapper4_w)
case 0x6000: /* $e000 - Disable IRQs */
m_IRQ_enable = 0;
m_IRQ_count = m_IRQ_count_latch;
- m_ppu1->set_scanline_callback(ppu2c0x_device::scanline_delegate());
+ m_ppu1->set_scanline_callback(nullptr);
break;
case 0x6001: /* $e001 - Enable IRQs */
m_IRQ_enable = 1;
- m_ppu1->set_scanline_callback(ppu2c0x_device::scanline_delegate(FUNC(vsnes_state::mapper4_irq), this));
+ m_ppu1->set_scanline_callback(*this, FUNC(vsnes_state::mapper4_irq));
break;
default:
@@ -802,7 +802,7 @@ void vsnes_state::init_MMC3()
memcpy(&prg[0xe000], &prg[(MMC3_prg_chunks - 1) * 0x4000 + 0x12000], 0x2000);
/* MMC3 mapper at writes to $8000-$ffff */
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(FUNC(vsnes_state::mapper4_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(*this, FUNC(vsnes_state::mapper4_w)));
/* extra ram at $6000-$7fff */
m_maincpu->space(AS_PROGRAM).install_ram(0x6000, 0x7fff);
@@ -842,7 +842,7 @@ void vsnes_state::init_rbibb()
init_MMC3();
/* RBI Base ball hack */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x5e00, 0x5e01, read8_delegate(FUNC(vsnes_state::rbi_hack_r),this)) ;
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x5e00, 0x5e01, read8_delegate(*this, FUNC(vsnes_state::rbi_hack_r)));
}
/* Vs. Super Xevious */
@@ -889,10 +889,10 @@ void vsnes_state::init_supxevs()
init_MMC3();
/* Vs. Super Xevious Protection */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x54ff, 0x54ff, read8_delegate(FUNC(vsnes_state::supxevs_read_prot_1_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x5678, 0x5678, read8_delegate(FUNC(vsnes_state::supxevs_read_prot_2_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x578f, 0x578f, read8_delegate(FUNC(vsnes_state::supxevs_read_prot_3_r),this));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x5567, 0x5567, read8_delegate(FUNC(vsnes_state::supxevs_read_prot_4_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x54ff, 0x54ff, read8_delegate(*this, FUNC(vsnes_state::supxevs_read_prot_1_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x5678, 0x5678, read8_delegate(*this, FUNC(vsnes_state::supxevs_read_prot_2_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x578f, 0x578f, read8_delegate(*this, FUNC(vsnes_state::supxevs_read_prot_3_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x5567, 0x5567, read8_delegate(*this, FUNC(vsnes_state::supxevs_read_prot_4_r)));
}
/* Vs. TKO Boxing */
@@ -921,7 +921,7 @@ void vsnes_state::init_tkoboxng()
init_MMC3();
/* security device at $5e00-$5e01 */
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x5e00, 0x5e01, read8_delegate(FUNC(vsnes_state::tko_security_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x5e00, 0x5e01, read8_delegate(*this, FUNC(vsnes_state::tko_security_r)));
}
/* Vs. Freedom Force */
@@ -930,7 +930,7 @@ void vsnes_state::init_vsfdf()
{
init_MMC3();
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x4016, 0x4016, read8_delegate(FUNC(vsnes_state::gun_in0_r),this), write8_delegate(FUNC(vsnes_state::gun_in0_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x4016, 0x4016, read8_delegate(*this, FUNC(vsnes_state::gun_in0_r)), write8_delegate(*this, FUNC(vsnes_state::gun_in0_w)));
m_do_vrom_bank = 0;
}
@@ -979,7 +979,7 @@ void vsnes_state::init_platoon()
memcpy(&prg[0x08000], &prg[0x10000], 0x4000);
memcpy(&prg[0x0c000], &prg[0x2c000], 0x4000);
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(FUNC(vsnes_state::mapper68_rom_banking),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x8000, 0xffff, write8_delegate(*this, FUNC(vsnes_state::mapper68_rom_banking)));
}
/**********************************************************************************/
@@ -1000,7 +1000,7 @@ READ8_MEMBER(vsnes_state::set_bnglngby_irq_r)
void vsnes_state::init_bnglngby()
{
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x0231, 0x0231, read8_delegate(FUNC(vsnes_state::set_bnglngby_irq_r),this), write8_delegate(FUNC(vsnes_state::set_bnglngby_irq_w),this));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x0231, 0x0231, read8_delegate(*this, FUNC(vsnes_state::set_bnglngby_irq_r)), write8_delegate(*this, FUNC(vsnes_state::set_bnglngby_irq_w)));
/* extra ram */
m_maincpu->space(AS_PROGRAM).install_ram(0x6000, 0x7fff);
@@ -1043,8 +1043,8 @@ void vsnes_state::init_vsdual()
uint8_t *prg = memregion("maincpu")->base();
/* vrom switching is enabled with bit 2 of $4016 */
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x4016, 0x4016, write8_delegate(FUNC(vsnes_state::vsdual_vrom_banking_main),this));
- m_subcpu->space(AS_PROGRAM).install_write_handler(0x4016, 0x4016, write8_delegate(FUNC(vsnes_state::vsdual_vrom_banking_sub),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x4016, 0x4016, write8_delegate(*this, FUNC(vsnes_state::vsdual_vrom_banking_main)));
+ m_subcpu->space(AS_PROGRAM).install_write_handler(0x4016, 0x4016, write8_delegate(*this, FUNC(vsnes_state::vsdual_vrom_banking_sub)));
/* shared ram at $6000 */
m_maincpu->space(AS_PROGRAM).install_ram(0x6000, 0x7fff, &prg[0x6000]);
diff --git a/src/mame/machine/wswan.cpp b/src/mame/machine/wswan.cpp
index f403b341c1b..c8a942e1a6e 100644
--- a/src/mame/machine/wswan.cpp
+++ b/src/mame/machine/wswan.cpp
@@ -180,15 +180,15 @@ void wswan_state::common_start()
if (m_cart->exists())
{
// ROM
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x20000, 0x2ffff, read8sm_delegate(FUNC(ws_cart_slot_device::read_rom20),(ws_cart_slot_device*)m_cart));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x30000, 0x3ffff, read8sm_delegate(FUNC(ws_cart_slot_device::read_rom30),(ws_cart_slot_device*)m_cart));
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x40000, 0xeffff, read8sm_delegate(FUNC(ws_cart_slot_device::read_rom40),(ws_cart_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x20000, 0x2ffff, read8sm_delegate(*m_cart, FUNC(ws_cart_slot_device::read_rom20)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x30000, 0x3ffff, read8sm_delegate(*m_cart, FUNC(ws_cart_slot_device::read_rom30)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x40000, 0xeffff, read8sm_delegate(*m_cart, FUNC(ws_cart_slot_device::read_rom40)));
// SRAM
if (m_cart->get_type() == WS_SRAM)
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x10000, 0x1ffff, read8sm_delegate(FUNC(ws_cart_slot_device::read_ram),(ws_cart_slot_device*)m_cart));
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x10000, 0x1ffff, write8sm_delegate(FUNC(ws_cart_slot_device::write_ram),(ws_cart_slot_device*)m_cart));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x10000, 0x1ffff, read8sm_delegate(*m_cart, FUNC(ws_cart_slot_device::read_ram)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x10000, 0x1ffff, write8sm_delegate(*m_cart, FUNC(ws_cart_slot_device::write_ram)));
}
}
}
diff --git a/src/mame/machine/xbox_pci.cpp b/src/mame/machine/xbox_pci.cpp
index f56259e68bf..b721162951e 100644
--- a/src/mame/machine/xbox_pci.cpp
+++ b/src/mame/machine/xbox_pci.cpp
@@ -1050,7 +1050,7 @@ void mcpx_ide_device::ide_pri_command(address_map &map)
void mcpx_ide_device::ide_pri_control(address_map &map)
{
// 3f6
- map(2, 2).rw(*this, FUNC(mcpx_ide_device::pri_read_cs1_r), FUNC(mcpx_ide_device::pri_write_cs1_w));
+ map(2, 2).rw(FUNC(mcpx_ide_device::pri_read_cs1_r), FUNC(mcpx_ide_device::pri_write_cs1_w));
}
void mcpx_ide_device::ide_sec_command(address_map &map)
@@ -1061,7 +1061,7 @@ void mcpx_ide_device::ide_sec_command(address_map &map)
void mcpx_ide_device::ide_sec_control(address_map &map)
{
// 376
- map(2, 2).rw(*this, FUNC(mcpx_ide_device::sec_read_cs1_r), FUNC(mcpx_ide_device::sec_write_cs1_w));
+ map(2, 2).rw(FUNC(mcpx_ide_device::sec_read_cs1_r), FUNC(mcpx_ide_device::sec_write_cs1_w));
}
void mcpx_ide_device::ide_io(address_map &map)
diff --git a/src/mame/video/1942.cpp b/src/mame/video/1942.cpp
index 31dfa891649..2c2acdcb5ef 100644
--- a/src/mame/video/1942.cpp
+++ b/src/mame/video/1942.cpp
@@ -140,16 +140,16 @@ TILE_GET_INFO_MEMBER(_1942_state::get_bg_tile_info)
***************************************************************************/
void _1942_state::video_start()
{
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(_1942_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(_1942_state::get_bg_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 32, 16);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(_1942_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(_1942_state::get_bg_tile_info)), TILEMAP_SCAN_COLS, 16, 16, 32, 16);
m_fg_tilemap->set_transparent_pen(0);
}
void _1942p_state::video_start()
{
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(_1942_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(_1942_state::get_bg_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 32, 16);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(_1942_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(_1942_state::get_bg_tile_info)), TILEMAP_SCAN_COLS, 16, 16, 32, 16);
m_fg_tilemap->set_transparent_pen(3);
}
diff --git a/src/mame/video/1943.cpp b/src/mame/video/1943.cpp
index d7262dec3a8..21f428e6583 100644
--- a/src/mame/video/1943.cpp
+++ b/src/mame/video/1943.cpp
@@ -195,9 +195,9 @@ TILE_GET_INFO_MEMBER(_1943_state::get_fg_tile_info)
void _1943_state::video_start()
{
- m_bg2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(_1943_state::get_bg2_tile_info),this), TILEMAP_SCAN_COLS, 32, 32, 2048, 8);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(_1943_state::get_bg_tile_info),this), TILEMAP_SCAN_COLS, 32, 32, 2048, 8);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(_1943_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(_1943_state::get_bg2_tile_info)), TILEMAP_SCAN_COLS, 32, 32, 2048, 8);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(_1943_state::get_bg_tile_info)), TILEMAP_SCAN_COLS, 32, 32, 2048, 8);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(_1943_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_bg_tilemap->configure_groups(*m_gfxdecode->gfx(1), 0x0f);
m_fg_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/40love.cpp b/src/mame/video/40love.cpp
index cb6bc13145a..3e62220c8d3 100644
--- a/src/mame/video/40love.cpp
+++ b/src/mame/video/40love.cpp
@@ -69,7 +69,7 @@ void fortyl_state::video_start()
m_tmp_bitmap1 = std::make_unique<bitmap_ind16>(256, 256);
m_tmp_bitmap2 = std::make_unique<bitmap_ind16>(256, 256);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(fortyl_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(fortyl_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_xoffset = 128; // this never changes
diff --git a/src/mame/video/4enraya.cpp b/src/mame/video/4enraya.cpp
index d4cbe45da7c..3d82b8862dd 100644
--- a/src/mame/video/4enraya.cpp
+++ b/src/mame/video/4enraya.cpp
@@ -26,7 +26,7 @@ TILE_GET_INFO_MEMBER(_4enraya_state::get_tile_info)
void _4enraya_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(_4enraya_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(_4enraya_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
uint32_t _4enraya_state::screen_update_4enraya(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
diff --git a/src/mame/video/abc1600.cpp b/src/mame/video/abc1600.cpp
index d40c864ad74..2093365cbef 100644
--- a/src/mame/video/abc1600.cpp
+++ b/src/mame/video/abc1600.cpp
@@ -11,17 +11,14 @@
#include "abc1600.lh"
#include "render.h"
+//#define VERBOSE 1
+#include "logmacro.h"
+
//**************************************************************************
// CONSTANTS / MACROS
//**************************************************************************
-#define LOG 0
-
-
-#define SY6845E_TAG "sy6845e"
-
-
// video RAM
#define VIDEORAM_SIZE 0x40000
#define VIDEORAM16_MASK 0x3ffff
@@ -213,8 +210,8 @@ void abc1600_mover_device::device_add_mconfig(machine_config &config)
m_crtc->set_screen(SCREEN_TAG);
m_crtc->set_show_border_area(true);
m_crtc->set_char_width(32);
- m_crtc->set_update_row_callback(FUNC(abc1600_mover_device::crtc_update_row), this);
- m_crtc->set_on_update_addr_change_callback(FUNC(abc1600_mover_device::crtc_update), this);
+ m_crtc->set_update_row_callback(FUNC(abc1600_mover_device::crtc_update_row));
+ m_crtc->set_on_update_addr_change_callback(FUNC(abc1600_mover_device::crtc_update));
}
@@ -230,7 +227,7 @@ abc1600_mover_device::abc1600_mover_device(const machine_config &mconfig, const
device_t(mconfig, ABC1600_MOVER, tag, owner, clock),
device_memory_interface(mconfig, *this),
m_space_config("vram", ENDIANNESS_BIG, 16, 18, -1, address_map_constructor(FUNC(abc1600_mover_device::mover_map), this)),
- m_crtc(*this, SY6845E_TAG),
+ m_crtc(*this, "sy6845e"),
m_palette(*this, "palette"),
m_wrmsk_rom(*this, "wrmsk"),
m_shinf_rom(*this, "shinf"),
@@ -356,18 +353,18 @@ WRITE8_MEMBER( abc1600_mover_device::video_ram_w )
{
// WRPORT_LB
m_wrm = (m_wrm & 0xff00) | data;
- if (LOG) logerror("WRM LB %02x -> %04x\n", data, m_wrm);
+ LOG("WRM LB %02x -> %04x\n", data, m_wrm);
}
else
{
// DATAPORT_LB
m_gmdi = (m_gmdi & 0xff00) | data;
- if (LOG) logerror("GMDI LB %02x -> %04x\n", data, m_gmdi);
+ LOG("GMDI LB %02x -> %04x\n", data, m_gmdi);
}
write_videoram(addr, m_gmdi, m_wrm & 0x00ff);
- if (LOG) logerror("Video RAM write LB to %05x : %04x\n", addr, read_videoram(addr));
+ LOG("Video RAM write LB to %05x : %04x\n", addr, read_videoram(addr));
}
else
{
@@ -375,18 +372,18 @@ WRITE8_MEMBER( abc1600_mover_device::video_ram_w )
{
// WRPORT_HB
m_wrm = (data << 8) | (m_wrm & 0xff);
- if (LOG) logerror("WRM HB %02x -> %04x\n", data, m_wrm);
+ LOG("WRM HB %02x -> %04x\n", data, m_wrm);
}
else
{
// DATAPORT_HB
m_gmdi = (data << 8) | (m_gmdi & 0xff);
- if (LOG) logerror("GMDI HB %02x -> %04x\n", data, m_gmdi);
+ LOG("GMDI HB %02x -> %04x\n", data, m_gmdi);
}
write_videoram(addr, m_gmdi, m_wrm & 0xff00);
- if (LOG) logerror("Video RAM write HB to %05x : %04x\n", addr, read_videoram(addr));
+ LOG("Video RAM write HB to %05x : %04x\n", addr, read_videoram(addr));
}
}
@@ -445,7 +442,7 @@ WRITE8_MEMBER( abc1600_mover_device::ldsx_hb_w )
*/
- if (LOG) logerror("%s LDSX HB: %02x\n", machine().describe_context(), data);
+ LOG("%s LDSX HB: %02x\n", machine().describe_context(), data);
m_xsize = ((data & 0x03) << 8) | (m_xsize & 0xff);
m_udy = BIT(data, 2);
@@ -474,7 +471,7 @@ WRITE8_MEMBER( abc1600_mover_device::ldsx_lb_w )
*/
- if (LOG) logerror("%s LDSX LB: %02x\n", machine().describe_context(), data);
+ LOG("%s LDSX LB: %02x\n", machine().describe_context(), data);
m_xsize = (m_xsize & 0x300) | data;
}
@@ -501,7 +498,7 @@ WRITE8_MEMBER( abc1600_mover_device::ldsy_hb_w )
*/
- if (LOG) logerror("%s LDSY HB: %02x\n", machine().describe_context(), data);
+ LOG("%s LDSY HB: %02x\n", machine().describe_context(), data);
m_ysize = ((data & 0x0f) << 8) | (m_ysize & 0xff);
}
@@ -528,7 +525,7 @@ WRITE8_MEMBER( abc1600_mover_device::ldsy_lb_w )
*/
- if (LOG) logerror("%s LDSY LB: %02x\n", machine().describe_context(), data);
+ LOG("%s LDSY LB: %02x\n", machine().describe_context(), data);
m_ysize = (m_ysize & 0xf00) | data;
}
@@ -555,7 +552,7 @@ WRITE8_MEMBER( abc1600_mover_device::ldtx_hb_w )
*/
- if (LOG) logerror("%s LDTX HB: %02x\n", machine().describe_context(), data);
+ LOG("%s LDTX HB: %02x\n", machine().describe_context(), data);
m_xto = ((data & 0x03) << 8) | (m_xto & 0xff);
m_mta = (m_mta & 0x3ffcf) | ((data & 0x03) << 4);
@@ -583,7 +580,7 @@ WRITE8_MEMBER( abc1600_mover_device::ldtx_lb_w )
*/
- if (LOG) logerror("%s LDTX LB: %02x\n", machine().describe_context(), data);
+ LOG("%s LDTX LB: %02x\n", machine().describe_context(), data);
m_xto = (m_xto & 0x300) | data;
m_mta = (m_mta & 0x3fff0) | (data >> 4);
@@ -611,7 +608,7 @@ WRITE8_MEMBER( abc1600_mover_device::ldty_hb_w )
*/
- if (LOG) logerror("%s LDTY HB: %02x\n", machine().describe_context(), data);
+ LOG("%s LDTY HB: %02x\n", machine().describe_context(), data);
if (L_P) return;
@@ -642,7 +639,7 @@ WRITE8_MEMBER( abc1600_mover_device::ldty_lb_w )
*/
- if (LOG) logerror("%s LDTY LB: %02x\n", machine().describe_context(), data);
+ LOG("%s LDTY LB: %02x\n", machine().describe_context(), data);
if (L_P) return;
@@ -673,7 +670,7 @@ WRITE8_MEMBER( abc1600_mover_device::ldfx_hb_w )
*/
- if (LOG) logerror("%s LDFX HB: %02x\n", machine().describe_context(), data);
+ LOG("%s LDFX HB: %02x\n", machine().describe_context(), data);
m_xfrom = ((data & 0x03) << 8) | (m_xfrom & 0xff);
m_mfa = (m_mfa & 0x3ffcf) | ((data & 0x03) << 4);
@@ -701,7 +698,7 @@ WRITE8_MEMBER( abc1600_mover_device::ldfx_lb_w )
*/
- if (LOG) logerror("%s LDFX LB: %02x\n", machine().describe_context(), data);
+ LOG("%s LDFX LB: %02x\n", machine().describe_context(), data);
m_xfrom = (m_xfrom & 0x300) | data;
m_mfa = (m_mfa & 0x3fff0) | (data >> 4);
@@ -729,7 +726,7 @@ WRITE8_MEMBER( abc1600_mover_device::ldfy_hb_w )
*/
- if (LOG) logerror("%s LDFY HB: %02x\n", machine().describe_context(), data);
+ LOG("%s LDFY HB: %02x\n", machine().describe_context(), data);
m_mfa = ((data & 0x0f) << 14) | (m_mfa & 0x3fff);
}
@@ -756,7 +753,7 @@ WRITE8_MEMBER( abc1600_mover_device::ldfy_lb_w )
*/
- if (LOG) logerror("%s LDFY LB: %02x\n", machine().describe_context(), data);
+ LOG("%s LDFY LB: %02x\n", machine().describe_context(), data);
m_mfa = (m_mfa & 0x3c03f) | (data << 6);
@@ -785,7 +782,7 @@ WRITE8_MEMBER( abc1600_mover_device::wrml_w )
*/
- if (LOG) logerror("MS %u : %02x\n", (offset >> 4) & 0x0f, data);
+ LOG("MS %u : %02x\n", (offset >> 4) & 0x0f, data);
if (m_clocks_disabled)
{
@@ -815,7 +812,7 @@ WRITE8_MEMBER( abc1600_mover_device::wrdl_w )
*/
- if (LOG) logerror("WS %u : %02x\n", (offset >> 4) & 0x0f, data);
+ LOG("WS %u : %02x\n", (offset >> 4) & 0x0f, data);
if (m_clocks_disabled)
{
@@ -834,13 +831,13 @@ WRITE8_MEMBER( abc1600_mover_device::wrmask_strobe_hb_w )
{
// DATAPORT_HB
m_gmdi = (data << 8) | (m_gmdi & 0xff);
- if (LOG) logerror("GMDI HB %04x\n", m_gmdi);
+ LOG("GMDI HB %04x\n", m_gmdi);
}
else
{
// WRPORT_HB
m_wrm = (data << 8) | (m_wrm & 0xff);
- if (LOG) logerror("WRM HB %04x\n", m_gmdi);
+ LOG("WRM HB %04x\n", m_gmdi);
}
}
@@ -855,13 +852,13 @@ WRITE8_MEMBER( abc1600_mover_device::wrmask_strobe_lb_w )
{
// DATAPORT_LB
m_gmdi = (m_gmdi & 0xff00) | data;
- if (LOG) logerror("GMDI LB %04x\n", m_gmdi);
+ LOG("GMDI LB %04x\n", m_gmdi);
}
else
{
// WRPORT_LB
m_wrm = (m_wrm & 0xff00) | data;
- if (LOG) logerror("WRM LB %04x\n", m_gmdi);
+ LOG("WRM LB %04x\n", m_gmdi);
}
}
@@ -872,7 +869,7 @@ WRITE8_MEMBER( abc1600_mover_device::wrmask_strobe_lb_w )
WRITE8_MEMBER( abc1600_mover_device::enable_clocks_w )
{
- if (LOG) logerror("ENABLE CLOCKS\n");
+ LOG("ENABLE CLOCKS\n");
m_clocks_disabled = 0;
}
@@ -899,7 +896,7 @@ WRITE8_MEMBER( abc1600_mover_device::flag_strobe_w )
*/
m_flag = data;
- if (LOG) logerror("FLAG %02x\n", m_flag);
+ LOG("FLAG %02x\n", m_flag);
}
@@ -910,7 +907,7 @@ WRITE8_MEMBER( abc1600_mover_device::flag_strobe_w )
WRITE8_MEMBER( abc1600_mover_device::endisp_w )
{
m_endisp = 1;
- if (LOG) logerror("ENDISP\n");
+ LOG("ENDISP\n");
}
@@ -1193,7 +1190,7 @@ inline uint16_t abc1600_mover_device::word_mixer(uint16_t rot)
void abc1600_mover_device::mover()
{
- if (LOG) logerror("XFROM %u XSIZE %u YSIZE %u XTO %u YTO %u MFA %05x MTA %05x U/D*X %u U/D*Y %u\n", m_xfrom, m_xsize, m_ysize, m_xto, m_yto, m_mfa, m_mta, m_udx, m_udy);
+ LOG("XFROM %u XSIZE %u YSIZE %u XTO %u YTO %u MFA %05x MTA %05x U/D*X %u U/D*Y %u\n", m_xfrom, m_xsize, m_ysize, m_xto, m_yto, m_mfa, m_mta, m_udx, m_udy);
m_amm = 1;
diff --git a/src/mame/video/abc800.cpp b/src/mame/video/abc800.cpp
index e03bcf19c81..ffc56559aee 100644
--- a/src/mame/video/abc800.cpp
+++ b/src/mame/video/abc800.cpp
@@ -283,7 +283,7 @@ void abc800m_state::abc800m_video(machine_config &config)
mc6845.set_screen(SCREEN_TAG);
mc6845.set_show_border_area(true);
mc6845.set_char_width(ABC800_CHAR_WIDTH);
- mc6845.set_update_row_callback(FUNC(abc800m_state::abc800m_update_row), this);
+ mc6845.set_update_row_callback(FUNC(abc800m_state::abc800m_update_row));
mc6845.out_vsync_callback().set(m_dart, FUNC(z80dart_device::rib_w)).invert();
screen_device &screen(SCREEN(config, SCREEN_TAG, SCREEN_TYPE_RASTER, rgb_t(0xff, 0xff, 0x00)));
diff --git a/src/mame/video/abc802.cpp b/src/mame/video/abc802.cpp
index 7ea2c43b284..7656e18dd22 100644
--- a/src/mame/video/abc802.cpp
+++ b/src/mame/video/abc802.cpp
@@ -184,7 +184,7 @@ void abc802_state::abc802_video(machine_config &config)
mc6845.set_screen(SCREEN_TAG);
mc6845.set_show_border_area(true);
mc6845.set_char_width(ABC800_CHAR_WIDTH);
- mc6845.set_update_row_callback(FUNC(abc802_state::abc802_update_row), this);
+ mc6845.set_update_row_callback(FUNC(abc802_state::abc802_update_row));
mc6845.out_vsync_callback().set(FUNC(abc802_state::vs_w));
mc6845.out_vsync_callback().append(m_dart, FUNC(z80dart_device::rib_w)).invert();
diff --git a/src/mame/video/abc806.cpp b/src/mame/video/abc806.cpp
index 82dd1238316..0bb243df817 100644
--- a/src/mame/video/abc806.cpp
+++ b/src/mame/video/abc806.cpp
@@ -10,7 +10,9 @@
#include "includes/abc80x.h"
#include "screen.h"
-#define LOG 0
+//#define VERBOSE 1
+#include "logmacro.h"
+
#define HORIZONTAL_PORCH_HACK 109
#define VERTICAL_PORCH_HACK 27
@@ -38,7 +40,7 @@ WRITE8_MEMBER( abc806_state::hrs_w )
*/
- if (LOG) logerror("%s HRS %02x\n", machine().describe_context(), data);
+ LOG("%s HRS %02x\n", machine().describe_context(), data);
m_hrs = data;
}
@@ -124,7 +126,7 @@ READ8_MEMBER( abc806_state::cli_r )
uint16_t hru2_addr = (m_hru2_a8 << 8) | (offset >> 8);
uint8_t data = m_hru2_prom->base()[hru2_addr] & 0x0f;
- if (LOG) logerror("HRU II %03x : %01x\n", hru2_addr, data);
+ LOG("HRU II %03x : %01x\n", hru2_addr, data);
data |= m_rtc->dio_r() << 7;
@@ -169,7 +171,7 @@ WRITE8_MEMBER( abc806_state::sto_w )
{
case 0:
// external memory enable
- if (LOG) logerror("%s EME %u\n", machine().describe_context(), level);
+ LOG("%s EME %u\n", machine().describe_context(), level);
m_eme = level;
break;
case 1:
@@ -483,7 +485,7 @@ void abc806_state::abc806_video(machine_config &config)
m_crtc->set_screen(SCREEN_TAG);
m_crtc->set_show_border_area(true);
m_crtc->set_char_width(ABC800_CHAR_WIDTH);
- m_crtc->set_update_row_callback(FUNC(abc806_state::abc806_update_row), this);
+ m_crtc->set_update_row_callback(FUNC(abc806_state::abc806_update_row));
m_crtc->out_hsync_callback().set(FUNC(abc806_state::hs_w));
m_crtc->out_vsync_callback().set(FUNC(abc806_state::vs_w));
diff --git a/src/mame/video/aeroboto.cpp b/src/mame/video/aeroboto.cpp
index 6718bf0a875..9f663dcca0d 100644
--- a/src/mame/video/aeroboto.cpp
+++ b/src/mame/video/aeroboto.cpp
@@ -42,7 +42,7 @@ TILE_GET_INFO_MEMBER(aeroboto_state::get_tile_info)
void aeroboto_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(aeroboto_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 64);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(aeroboto_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 64);
m_bg_tilemap->set_transparent_pen(0);
m_bg_tilemap->set_scroll_rows(64);
diff --git a/src/mame/video/aerofgt.cpp b/src/mame/video/aerofgt.cpp
index 7b39d8d9181..fd8496923bc 100644
--- a/src/mame/video/aerofgt.cpp
+++ b/src/mame/video/aerofgt.cpp
@@ -73,7 +73,7 @@ void aerofgt_state::aerofgt_register_state_globals( )
VIDEO_START_MEMBER(aerofgt_state,pspikes)
{
- m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(aerofgt_state::get_pspikes_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,32);
+ m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(aerofgt_state::get_pspikes_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 64,32);
/* no bg2 in this game */
m_sprite_gfx = 1;
@@ -84,8 +84,8 @@ VIDEO_START_MEMBER(aerofgt_state,pspikes)
VIDEO_START_MEMBER(aerofgt_state,karatblz)
{
- m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(aerofgt_state::karatblz_tile_info<0>),this),TILEMAP_SCAN_ROWS,8,8,64,64);
- m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(aerofgt_state::karatblz_tile_info<1>),this),TILEMAP_SCAN_ROWS,8,8,64,64);
+ m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(aerofgt_state::karatblz_tile_info<0>)), TILEMAP_SCAN_ROWS, 8,8, 64,64);
+ m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(aerofgt_state::karatblz_tile_info<1>)), TILEMAP_SCAN_ROWS, 8,8, 64,64);
m_tilemap[1]->set_transparent_pen(15);
m_spritepalettebank = 0;
@@ -96,8 +96,8 @@ VIDEO_START_MEMBER(aerofgt_state,karatblz)
VIDEO_START_MEMBER(aerofgt_state,spinlbrk)
{
- m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(aerofgt_state::spinlbrk_tile_info<0>),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(aerofgt_state::karatblz_tile_info<1>),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(aerofgt_state::spinlbrk_tile_info<0>)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(aerofgt_state::karatblz_tile_info<1>)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
m_tilemap[1]->set_transparent_pen(15);
@@ -111,8 +111,8 @@ VIDEO_START_MEMBER(aerofgt_state,spinlbrk)
VIDEO_START_MEMBER(aerofgt_state,turbofrc)
{
- m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(aerofgt_state::get_tile_info<0>),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(aerofgt_state::get_tile_info<1>),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(aerofgt_state::get_tile_info<0>)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(aerofgt_state::get_tile_info<1>)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
m_tilemap[1]->set_transparent_pen(15);
@@ -367,7 +367,7 @@ uint32_t aerofgt_state::screen_update_aerofgt(screen_device &screen, bitmap_ind1
// BOOTLEG
VIDEO_START_MEMBER(aerofgt_state,wbbc97)
{
- m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(aerofgt_state::get_pspikes_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(aerofgt_state::get_pspikes_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
/* no bg2 in this game */
m_tilemap[0]->set_transparent_pen(15);
diff --git a/src/mame/video/airbustr.cpp b/src/mame/video/airbustr.cpp
index 69e7693c08e..2b79c4d4505 100644
--- a/src/mame/video/airbustr.cpp
+++ b/src/mame/video/airbustr.cpp
@@ -79,8 +79,8 @@ TILE_GET_INFO_MEMBER(airbustr_state::get_tile_info)
void airbustr_state::video_start()
{
- m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(airbustr_state::get_tile_info<0>),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(airbustr_state::get_tile_info<1>),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(airbustr_state::get_tile_info<0>)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(airbustr_state::get_tile_info<1>)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
m_tilemap[1]->set_transparent_pen(0);
diff --git a/src/mame/video/airraid_dev.cpp b/src/mame/video/airraid_dev.cpp
index 3dac9982bc7..8e92c27f10e 100644
--- a/src/mame/video/airraid_dev.cpp
+++ b/src/mame/video/airraid_dev.cpp
@@ -81,13 +81,13 @@ void airraid_video_device::device_start()
save_item(NAME(m_hw));
// there might actually be 4 banks of 2048 x 16 tilemaps in here as the upper scroll bits are with the rom banking.
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(airraid_video_device::get_bg_tile_info),this),tilemap_mapper_delegate(FUNC(airraid_video_device::bg_scan),this),16,16,2048, 64);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(airraid_video_device::get_bg_tile_info)), tilemap_mapper_delegate(*this, FUNC(airraid_video_device::bg_scan)), 16, 16, 2048, 64);
// which could in turn mean this is actually 256 x 128, not 256 x 512
-// m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(airraid_video_device::get_fg_tile_info),this),tilemap_mapper_delegate(FUNC(airraid_video_device::fg_scan),this),16,16,256, 512);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(airraid_video_device::get_fg_tile_info),this),tilemap_mapper_delegate(FUNC(airraid_video_device::fg_scan),this),16,16,256, 128);
+// m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(airraid_video_device::get_fg_tile_info)), tilemap_mapper_delegate(*this, FUNC(airraid_video_device::fg_scan)), 16, 16, 256, 512);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(airraid_video_device::get_fg_tile_info)), tilemap_mapper_delegate(*this, FUNC(airraid_video_device::fg_scan)), 16, 16, 256, 128);
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(airraid_video_device::get_cstx_tile_info),this),TILEMAP_SCAN_ROWS, 8,8,32,32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(airraid_video_device::get_cstx_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
// m_fg_tilemap->set_transparent_pen(0);
// m_tx_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/alpha68k.cpp b/src/mame/video/alpha68k.cpp
index bccefa4191d..ca5199ff9c6 100644
--- a/src/mame/video/alpha68k.cpp
+++ b/src/mame/video/alpha68k.cpp
@@ -70,7 +70,7 @@ void alpha68k_II_state::videoram_w(offs_t offset, u16 data)
VIDEO_START_MEMBER(alpha68k_II_state,alpha68k)
{
- m_fix_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(alpha68k_II_state::get_tile_info),this), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
+ m_fix_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(alpha68k_II_state::get_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
m_fix_tilemap->set_transparent_pen(0);
}
diff --git a/src/mame/video/ampoker2.cpp b/src/mame/video/ampoker2.cpp
index fafd36e60c7..88f9cb606b5 100644
--- a/src/mame/video/ampoker2.cpp
+++ b/src/mame/video/ampoker2.cpp
@@ -149,13 +149,13 @@ TILE_GET_INFO_MEMBER(ampoker2_state::s2k_get_bg_tile_info)
void ampoker2_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ampoker2_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS,
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ampoker2_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS,
8, 8, 64, 32);
}
VIDEO_START_MEMBER(ampoker2_state,sigma2k)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ampoker2_state::s2k_get_bg_tile_info),this), TILEMAP_SCAN_ROWS,
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ampoker2_state::s2k_get_bg_tile_info)), TILEMAP_SCAN_ROWS,
8, 8, 64, 32);
}
diff --git a/src/mame/video/amspdwy.cpp b/src/mame/video/amspdwy.cpp
index 28c757f3ae0..49aa683ac50 100644
--- a/src/mame/video/amspdwy.cpp
+++ b/src/mame/video/amspdwy.cpp
@@ -69,7 +69,7 @@ TILEMAP_MAPPER_MEMBER(amspdwy_state::tilemap_scan_cols_back)
void amspdwy_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(amspdwy_state::get_tile_info),this), tilemap_mapper_delegate(FUNC(amspdwy_state::tilemap_scan_cols_back),this), 8, 8, 0x20, 0x20);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(amspdwy_state::get_tile_info)), tilemap_mapper_delegate(*this, FUNC(amspdwy_state::tilemap_scan_cols_back)), 8, 8, 0x20, 0x20);
}
diff --git a/src/mame/video/angelkds.cpp b/src/mame/video/angelkds.cpp
index afe1501c3a6..31e58854505 100644
--- a/src/mame/video/angelkds.cpp
+++ b/src/mame/video/angelkds.cpp
@@ -220,13 +220,13 @@ void angelkds_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprec
void angelkds_state::video_start()
{
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(angelkds_state::get_tx_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(angelkds_state::get_tx_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_tx_tilemap->set_transparent_pen(0);
- m_bgbot_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(angelkds_state::get_bgbot_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bgbot_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(angelkds_state::get_bgbot_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_bgbot_tilemap->set_transparent_pen(15);
- m_bgtop_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(angelkds_state::get_bgtop_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bgtop_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(angelkds_state::get_bgtop_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_bgtop_tilemap->set_transparent_pen(15);
}
diff --git a/src/mame/video/appoooh.cpp b/src/mame/video/appoooh.cpp
index e59b0332e8c..f0e344d0dfa 100644
--- a/src/mame/video/appoooh.cpp
+++ b/src/mame/video/appoooh.cpp
@@ -124,8 +124,8 @@ TILE_GET_INFO_MEMBER(appoooh_state::get_bg_tile_info)
void appoooh_state::video_start()
{
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(appoooh_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(appoooh_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(appoooh_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(appoooh_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(0);
m_fg_tilemap->set_scrolldy(8, 8);
diff --git a/src/mame/video/aquarium.cpp b/src/mame/video/aquarium.cpp
index 1e3b9c794a4..733163d0584 100644
--- a/src/mame/video/aquarium.cpp
+++ b/src/mame/video/aquarium.cpp
@@ -60,9 +60,9 @@ void aquarium_state::bak_videoram_w(offs_t offset, u16 data, u16 mem_mask)
void aquarium_state::video_start()
{
- m_txt_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(aquarium_state::get_txt_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_mid_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(aquarium_state::get_mid_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- m_bak_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(aquarium_state::get_bak_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_txt_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(aquarium_state::get_txt_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_mid_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(aquarium_state::get_mid_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_bak_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(aquarium_state::get_bak_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
m_txt_tilemap->set_transparent_pen(0);
m_mid_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/aquarius.cpp b/src/mame/video/aquarius.cpp
index f291f3e9f60..68d825b144a 100644
--- a/src/mame/video/aquarius.cpp
+++ b/src/mame/video/aquarius.cpp
@@ -67,7 +67,7 @@ TILE_GET_INFO_MEMBER(aquarius_state::aquarius_gettileinfo)
void aquarius_state::video_start()
{
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(aquarius_state::aquarius_gettileinfo),this), TILEMAP_SCAN_ROWS, 8, 8, 40, 25);
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(aquarius_state::aquarius_gettileinfo)), TILEMAP_SCAN_ROWS, 8, 8, 40, 25);
}
uint32_t aquarius_state::screen_update_aquarius(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
diff --git a/src/mame/video/argus.cpp b/src/mame/video/argus.cpp
index 28d0f2f3845..f08b4b25683 100644
--- a/src/mame/video/argus.cpp
+++ b/src/mame/video/argus.cpp
@@ -242,10 +242,10 @@ void argus_common_state::reset_common()
void argus_state::video_start()
{
/* info offset w h col row */
-// m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(argus_state::get_bg0_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 4096, 32); // full 65536 width tilemap
- m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(argus_state::get_bg0_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 1024/16, 32);
- m_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(argus_state::get_bg1_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 32, 32);
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(argus_state::get_tx_tile_info<3>),this), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
+// m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(argus_state::get_bg0_tile_info)), TILEMAP_SCAN_COLS, 16, 16, 4096, 32); // full 65536 width tilemap
+ m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(argus_state::get_bg0_tile_info)), TILEMAP_SCAN_COLS, 16, 16, 1024/16, 32);
+ m_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(argus_state::get_bg1_tile_info)), TILEMAP_SCAN_COLS, 16, 16, 32, 32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(argus_state::get_tx_tile_info<3>)), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
m_bg_tilemap[1]->set_transparent_pen(15);
m_tx_tilemap->set_transparent_pen(15);
@@ -265,8 +265,8 @@ void argus_state::video_reset()
void valtric_state::video_start()
{
/* info offset w h col row */
- m_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(valtric_state::get_bg_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 32, 32);
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(valtric_state::get_tx_tile_info<2>),this), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
+ m_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(valtric_state::get_bg_tile_info)), TILEMAP_SCAN_COLS, 16, 16, 32, 32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(valtric_state::get_tx_tile_info<2>)), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
m_tx_tilemap->set_transparent_pen(15);
@@ -289,9 +289,9 @@ void valtric_state::video_reset()
void butasan_state::video_start()
{
/* info offset w h col row */
- m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(butasan_state::get_bg0_tile_info),this), tilemap_mapper_delegate(FUNC(butasan_state::bg_scan),this), 16, 16, 32, 32);
- m_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(butasan_state::get_bg1_tile_info),this), tilemap_mapper_delegate(FUNC(butasan_state::bg_scan),this), 16, 16, 32, 32);
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(butasan_state::get_tx_tile_info),this), tilemap_mapper_delegate(FUNC(butasan_state::tx_scan),this), 8, 8, 32, 32);
+ m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(butasan_state::get_bg0_tile_info)), tilemap_mapper_delegate(*this, FUNC(butasan_state::bg_scan)), 16, 16, 32, 32);
+ m_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(butasan_state::get_bg1_tile_info)), tilemap_mapper_delegate(*this, FUNC(butasan_state::bg_scan)), 16, 16, 32, 32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(butasan_state::get_tx_tile_info)), tilemap_mapper_delegate(*this, FUNC(butasan_state::tx_scan)), 8, 8, 32, 32);
m_bg_tilemap[1]->set_transparent_pen(15);
m_tx_tilemap->set_transparent_pen(15);
diff --git a/src/mame/video/arkanoid.cpp b/src/mame/video/arkanoid.cpp
index b1996a29279..e1d6a7af08c 100644
--- a/src/mame/video/arkanoid.cpp
+++ b/src/mame/video/arkanoid.cpp
@@ -169,7 +169,7 @@ TILE_GET_INFO_MEMBER(arkanoid_state::get_bg_tile_info)
void arkanoid_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(arkanoid_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(arkanoid_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
void arkanoid_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect )
diff --git a/src/mame/video/armedf.cpp b/src/mame/video/armedf.cpp
index 5e15e0ff151..c1d5d3bf2f7 100644
--- a/src/mame/video/armedf.cpp
+++ b/src/mame/video/armedf.cpp
@@ -115,11 +115,11 @@ VIDEO_START_MEMBER(armedf_state,terraf)
{
m_sprite_offy = (m_scroll_type & 2 ) ? 0 : 128; /* legion, legiono, crazy climber 2 */
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(armedf_state::get_bg_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 64, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(armedf_state::get_fg_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(armedf_state::get_bg_tile_info)), TILEMAP_SCAN_COLS, 16, 16, 64, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(armedf_state::get_fg_tile_info)), TILEMAP_SCAN_COLS, 16, 16, 64, 32);
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(armedf_state::get_nb1414m4_tx_tile_info),this),
- (m_scroll_type == 2) ? tilemap_mapper_delegate(FUNC(armedf_state::armedf_scan_type3),this) : tilemap_mapper_delegate(FUNC(armedf_state::armedf_scan_type2),this), 8, 8, 64, 32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(armedf_state::get_nb1414m4_tx_tile_info)),
+ (m_scroll_type == 2) ? tilemap_mapper_delegate(*this, FUNC(armedf_state::armedf_scan_type3)) : tilemap_mapper_delegate(*this, FUNC(armedf_state::armedf_scan_type2)), 8, 8, 64, 32);
m_bg_tilemap->set_transparent_pen(0xf);
m_fg_tilemap->set_transparent_pen(0xf);
@@ -138,10 +138,10 @@ VIDEO_START_MEMBER(armedf_state,armedf)
{
m_sprite_offy = (m_scroll_type & 2 ) ? 0 : 128; /* legion, legiono, crazy climber 2 */
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(armedf_state::get_bg_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 64, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(armedf_state::get_fg_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(armedf_state::get_bg_tile_info)), TILEMAP_SCAN_COLS, 16, 16, 64, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(armedf_state::get_fg_tile_info)), TILEMAP_SCAN_COLS, 16, 16, 64, 32);
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(armedf_state::get_armedf_tx_tile_info),this), tilemap_mapper_delegate(FUNC(armedf_state::armedf_scan_type1),this), 8, 8, 64, 32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(armedf_state::get_armedf_tx_tile_info)), tilemap_mapper_delegate(*this, FUNC(armedf_state::armedf_scan_type1)), 8, 8, 64, 32);
m_bg_tilemap->set_transparent_pen(0xf);
m_fg_tilemap->set_transparent_pen(0xf);
diff --git a/src/mame/video/ashnojoe.cpp b/src/mame/video/ashnojoe.cpp
index c515d078aa8..a2367c07dc0 100644
--- a/src/mame/video/ashnojoe.cpp
+++ b/src/mame/video/ashnojoe.cpp
@@ -136,12 +136,12 @@ void ashnojoe_state::tilemap_regs_w(offs_t offset, u16 data, u16 mem_mask)
void ashnojoe_state::video_start()
{
- m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ashnojoe_state::get_tile_info_highest),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ashnojoe_state::get_tile_info_midlow),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- m_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ashnojoe_state::get_tile_info_high),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_tilemap[3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ashnojoe_state::get_tile_info_low),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_tilemap[4] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ashnojoe_state::get_tile_info_midhigh),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- m_tilemap[5] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ashnojoe_state::get_tile_info_lowest),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ashnojoe_state::get_tile_info_highest)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ashnojoe_state::get_tile_info_midlow)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ashnojoe_state::get_tile_info_high)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap[3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ashnojoe_state::get_tile_info_low)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap[4] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ashnojoe_state::get_tile_info_midhigh)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_tilemap[5] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ashnojoe_state::get_tile_info_lowest)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
m_tilemap[0]->set_transparent_pen(15);
m_tilemap[1]->set_transparent_pen(15);
diff --git a/src/mame/video/atarifb.cpp b/src/mame/video/atarifb.cpp
index 05c63c7e744..3c68cb2fd2d 100644
--- a/src/mame/video/atarifb.cpp
+++ b/src/mame/video/atarifb.cpp
@@ -88,9 +88,9 @@ WRITE8_MEMBER(atarifb_state::atarifb_field_videoram_w)
void atarifb_state::video_start()
{
- m_alpha1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(atarifb_state::alpha1_get_tile_info),this), TILEMAP_SCAN_COLS, 8, 8, 3, 32);
- m_alpha2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(atarifb_state::alpha2_get_tile_info),this), TILEMAP_SCAN_COLS, 8, 8, 3, 32);
- m_field_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(atarifb_state::field_get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_alpha1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(atarifb_state::alpha1_get_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 3, 32);
+ m_alpha2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(atarifb_state::alpha2_get_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 3, 32);
+ m_field_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(atarifb_state::field_get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
diff --git a/src/mame/video/atetris.cpp b/src/mame/video/atetris.cpp
index 06faefdeabe..448dd71110d 100644
--- a/src/mame/video/atetris.cpp
+++ b/src/mame/video/atetris.cpp
@@ -51,7 +51,7 @@ WRITE8_MEMBER(atetris_state::videoram_w)
void atetris_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(atetris_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8,8, 64,32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(atetris_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 64,32);
}
diff --git a/src/mame/video/bagman.cpp b/src/mame/video/bagman.cpp
index 6d65bc6ea9c..ec93795a4bc 100644
--- a/src/mame/video/bagman.cpp
+++ b/src/mame/video/bagman.cpp
@@ -107,7 +107,7 @@ TILE_GET_INFO_MEMBER(bagman_state::get_bg_tile_info)
void bagman_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(bagman_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS,
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(bagman_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS,
8, 8, 32, 32);
}
diff --git a/src/mame/video/bankp.cpp b/src/mame/video/bankp.cpp
index 44b70c4cd06..44540c0dc5f 100644
--- a/src/mame/video/bankp.cpp
+++ b/src/mame/video/bankp.cpp
@@ -147,8 +147,8 @@ TILE_GET_INFO_MEMBER(bankp_state::get_fg_tile_info)
void bankp_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(bankp_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(bankp_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(bankp_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(bankp_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_bg_tilemap->configure_groups(*m_gfxdecode->gfx(1), 0);
m_fg_tilemap->configure_groups(*m_gfxdecode->gfx(0), 0);
diff --git a/src/mame/video/baraduke.cpp b/src/mame/video/baraduke.cpp
index 3aa646b21f8..6ebc7730183 100644
--- a/src/mame/video/baraduke.cpp
+++ b/src/mame/video/baraduke.cpp
@@ -114,9 +114,9 @@ TILE_GET_INFO_MEMBER(baraduke_state::get_tile_info1)
void baraduke_state::video_start()
{
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(baraduke_state::tx_get_tile_info),this),tilemap_mapper_delegate(FUNC(baraduke_state::tx_tilemap_scan),this),8,8,36,28);
- m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(baraduke_state::get_tile_info0),this),TILEMAP_SCAN_ROWS,8,8,64,32);
- m_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(baraduke_state::get_tile_info1),this),TILEMAP_SCAN_ROWS,8,8,64,32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(baraduke_state::tx_get_tile_info)), tilemap_mapper_delegate(*this, FUNC(baraduke_state::tx_tilemap_scan)), 8,8, 36,28);
+ m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(baraduke_state::get_tile_info0)), TILEMAP_SCAN_ROWS, 8,8, 64,32);
+ m_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(baraduke_state::get_tile_info1)), TILEMAP_SCAN_ROWS, 8,8, 64,32);
m_tx_tilemap->set_transparent_pen(3);
m_bg_tilemap[0]->set_transparent_pen(7);
diff --git a/src/mame/video/battlane.cpp b/src/mame/video/battlane.cpp
index 18e669d84df..0ef5a52ff9a 100644
--- a/src/mame/video/battlane.cpp
+++ b/src/mame/video/battlane.cpp
@@ -137,7 +137,7 @@ TILEMAP_MAPPER_MEMBER(battlane_state::battlane_tilemap_scan_rows_2x2)
void battlane_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(battlane_state::get_tile_info_bg),this), tilemap_mapper_delegate(FUNC(battlane_state::battlane_tilemap_scan_rows_2x2),this), 16, 16, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(battlane_state::get_tile_info_bg)), tilemap_mapper_delegate(*this, FUNC(battlane_state::battlane_tilemap_scan_rows_2x2)), 16, 16, 32, 32);
m_screen_bitmap.allocate(32 * 8, 32 * 8);
save_item(NAME(m_screen_bitmap));
}
diff --git a/src/mame/video/battlex.cpp b/src/mame/video/battlex.cpp
index bd10120f76a..218d3163fb4 100644
--- a/src/mame/video/battlex.cpp
+++ b/src/mame/video/battlex.cpp
@@ -71,12 +71,12 @@ TILE_GET_INFO_MEMBER(battlex_state::get_dodgeman_bg_tile_info)
void battlex_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(battlex_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(battlex_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
}
void battlex_state::video_start_dodgeman()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(battlex_state::get_dodgeman_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(battlex_state::get_dodgeman_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
}
void battlex_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect )
diff --git a/src/mame/video/bbusters.cpp b/src/mame/video/bbusters.cpp
index 41ad5fd5337..5d106814605 100644
--- a/src/mame/video/bbusters.cpp
+++ b/src/mame/video/bbusters.cpp
@@ -51,7 +51,7 @@ WRITE16_MEMBER(bbusters_state_base::video_w)
void bbusters_state_base::video_start()
{
- m_fix_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(bbusters_state_base::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fix_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(bbusters_state_base::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fix_tilemap->set_transparent_pen(15);
save_item(NAME(m_scale_line_count));
@@ -61,8 +61,8 @@ void bbusters_state::video_start()
{
bbusters_state_base::video_start();
- m_pf_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(&bbusters_state::get_pf_tile_info<0,3>, "layer0_gfx3", this), TILEMAP_SCAN_COLS, 16, 16, 128, 32);
- m_pf_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(&bbusters_state::get_pf_tile_info<1,4>, "layer1_gfx4", this), TILEMAP_SCAN_COLS, 16, 16, 128, 32);
+ m_pf_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, NAME((&bbusters_state::get_pf_tile_info<0,3>))), TILEMAP_SCAN_COLS, 16, 16, 128, 32);
+ m_pf_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, NAME((&bbusters_state::get_pf_tile_info<1,4>))), TILEMAP_SCAN_COLS, 16, 16, 128, 32);
m_pf_tilemap[0]->set_transparent_pen(15);
}
@@ -71,8 +71,8 @@ void mechatt_state::video_start()
{
bbusters_state_base::video_start();
- m_pf_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(&mechatt_state::get_pf_tile_info<0,2>, "layer0_gfx2", this), TILEMAP_SCAN_COLS, 16, 16, 256, 32);
- m_pf_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(&mechatt_state::get_pf_tile_info<1,3>, "layer1_gfx3", this), TILEMAP_SCAN_COLS, 16, 16, 256, 32);
+ m_pf_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, NAME((&mechatt_state::get_pf_tile_info<0,2>))), TILEMAP_SCAN_COLS, 16, 16, 256, 32);
+ m_pf_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, NAME((&mechatt_state::get_pf_tile_info<1,3>))), TILEMAP_SCAN_COLS, 16, 16, 256, 32);
m_pf_tilemap[0]->set_transparent_pen(15);
}
diff --git a/src/mame/video/bfm_adr2.cpp b/src/mame/video/bfm_adr2.cpp
index 1da7d078b2e..d660183ec96 100644
--- a/src/mame/video/bfm_adr2.cpp
+++ b/src/mame/video/bfm_adr2.cpp
@@ -233,9 +233,9 @@ void bfm_adder2_device::device_start()
save_item(NAME(m_adder_ram));
save_item(NAME(m_screen_ram));
- m_tilemap0 = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(bfm_adder2_device::get_tile0_info),this), TILEMAP_SCAN_ROWS, 8, 8, 50, 35);
+ m_tilemap0 = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(bfm_adder2_device::get_tile0_info)), TILEMAP_SCAN_ROWS, 8, 8, 50, 35);
- m_tilemap1 = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(bfm_adder2_device::get_tile1_info),this), TILEMAP_SCAN_ROWS, 8, 8, 50, 35);
+ m_tilemap1 = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(bfm_adder2_device::get_tile1_info)), TILEMAP_SCAN_ROWS, 8, 8, 50, 35);
palette().set_pen_color(0,rgb_t(0x00,0x00,0x00));
palette().set_pen_color(1,rgb_t(0x00,0x00,0xFF));
diff --git a/src/mame/video/bigstrkb.cpp b/src/mame/video/bigstrkb.cpp
index 2372d0552ca..b98d4729387 100644
--- a/src/mame/video/bigstrkb.cpp
+++ b/src/mame/video/bigstrkb.cpp
@@ -113,9 +113,9 @@ WRITE16_MEMBER(bigstrkb_state::videoram3_w)
void bigstrkb_state::video_start()
{
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(bigstrkb_state::get_tile_info),this),TILEMAP_SCAN_COLS, 8, 8,64,32);
- m_tilemap2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(bigstrkb_state::get_tile2_info),this),tilemap_mapper_delegate(FUNC(bigstrkb_state::bg_scan),this), 16, 16,128,64);
- m_tilemap3 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(bigstrkb_state::get_tile3_info),this),tilemap_mapper_delegate(FUNC(bigstrkb_state::bg_scan),this), 16, 16,128,64);
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(bigstrkb_state::get_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 64, 32);
+ m_tilemap2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(bigstrkb_state::get_tile2_info)), tilemap_mapper_delegate(*this, FUNC(bigstrkb_state::bg_scan)), 16, 16, 128, 64);
+ m_tilemap3 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(bigstrkb_state::get_tile3_info)), tilemap_mapper_delegate(*this, FUNC(bigstrkb_state::bg_scan)), 16, 16, 128, 64);
m_tilemap->set_transparent_pen(15);
//m_tilemap2->set_transparent_pen(15);
diff --git a/src/mame/video/bking.cpp b/src/mame/video/bking.cpp
index 59d43fbc4dc..52e020d0d4c 100644
--- a/src/mame/video/bking.cpp
+++ b/src/mame/video/bking.cpp
@@ -215,7 +215,7 @@ TILE_GET_INFO_MEMBER(bking_state::get_tile_info)
void bking_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(bking_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(bking_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_screen->register_screen_bitmap(m_colmap_bg);
m_screen->register_screen_bitmap(m_colmap_ball);
}
diff --git a/src/mame/video/blktiger.cpp b/src/mame/video/blktiger.cpp
index 9583ed28750..316ac2343c8 100644
--- a/src/mame/video/blktiger.cpp
+++ b/src/mame/video/blktiger.cpp
@@ -71,9 +71,9 @@ void blktiger_state::video_start()
m_scroll_ram = std::make_unique<uint8_t[]>(BGRAM_BANK_SIZE * BGRAM_BANKS);
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(blktiger_state::get_tx_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_bg_tilemap8x4 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(blktiger_state::get_bg_tile_info),this), tilemap_mapper_delegate(FUNC(blktiger_state::bg8x4_scan),this), 16, 16, 128, 64);
- m_bg_tilemap4x8 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(blktiger_state::get_bg_tile_info),this), tilemap_mapper_delegate(FUNC(blktiger_state::bg4x8_scan),this), 16, 16, 64, 128);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(blktiger_state::get_tx_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap8x4 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(blktiger_state::get_bg_tile_info)), tilemap_mapper_delegate(*this, FUNC(blktiger_state::bg8x4_scan)), 16, 16, 128, 64);
+ m_bg_tilemap4x8 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(blktiger_state::get_bg_tile_info)), tilemap_mapper_delegate(*this, FUNC(blktiger_state::bg4x8_scan)), 16, 16, 64, 128);
m_tx_tilemap->set_transparent_pen(3);
diff --git a/src/mame/video/blmbycar.cpp b/src/mame/video/blmbycar.cpp
index d6bcb3f8e29..0c0c4577ef5 100644
--- a/src/mame/video/blmbycar.cpp
+++ b/src/mame/video/blmbycar.cpp
@@ -77,8 +77,8 @@ TILE_GET_INFO_MEMBER(blmbycar_state::get_tile_info)
void blmbycar_state::video_start()
{
- m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(blmbycar_state::get_tile_info<0>),this), TILEMAP_SCAN_ROWS, 16, 16, DIM_NX, DIM_NY );
- m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(blmbycar_state::get_tile_info<1>),this), TILEMAP_SCAN_ROWS, 16, 16, DIM_NX, DIM_NY );
+ m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(blmbycar_state::get_tile_info<0>)), TILEMAP_SCAN_ROWS, 16, 16, DIM_NX, DIM_NY );
+ m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(blmbycar_state::get_tile_info<1>)), TILEMAP_SCAN_ROWS, 16, 16, DIM_NX, DIM_NY );
m_tilemap[1]->set_transparent_pen(0);
}
diff --git a/src/mame/video/bloodbro.cpp b/src/mame/video/bloodbro.cpp
index 5e9a680eda0..f08d881f5ff 100644
--- a/src/mame/video/bloodbro.cpp
+++ b/src/mame/video/bloodbro.cpp
@@ -58,9 +58,9 @@ TILE_GET_INFO_MEMBER(bloodbro_state::get_tx_tile_info)
void bloodbro_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(bloodbro_state::get_bg_tile_info),this),TILEMAP_SCAN_ROWS,16,16,32,16);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(bloodbro_state::get_fg_tile_info),this),TILEMAP_SCAN_ROWS,16,16,32,16);
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(bloodbro_state::get_tx_tile_info),this),TILEMAP_SCAN_ROWS, 8, 8,32,32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(bloodbro_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 16);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(bloodbro_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 16);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(bloodbro_state::get_tx_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(15);
m_tx_tilemap->set_transparent_pen(15);
diff --git a/src/mame/video/blueprnt.cpp b/src/mame/video/blueprnt.cpp
index 59ea2aa97b8..7005cb5c1f5 100644
--- a/src/mame/video/blueprnt.cpp
+++ b/src/mame/video/blueprnt.cpp
@@ -115,7 +115,7 @@ TILE_GET_INFO_MEMBER(blueprnt_state::get_bg_tile_info)
VIDEO_START_MEMBER(blueprnt_state,blueprnt)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(blueprnt_state::get_bg_tile_info),this), TILEMAP_SCAN_COLS_FLIP_X, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(blueprnt_state::get_bg_tile_info)), TILEMAP_SCAN_COLS_FLIP_X, 8, 8, 32, 32);
m_bg_tilemap->set_transparent_pen(0);
m_bg_tilemap->set_scroll_cols(32);
diff --git a/src/mame/video/bogeyman.cpp b/src/mame/video/bogeyman.cpp
index ed7ed049fa3..8405ae6b06b 100644
--- a/src/mame/video/bogeyman.cpp
+++ b/src/mame/video/bogeyman.cpp
@@ -82,8 +82,8 @@ TILE_GET_INFO_MEMBER(bogeyman_state::get_fg_tile_info)
void bogeyman_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(bogeyman_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 16, 16);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(bogeyman_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(bogeyman_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 16, 16);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(bogeyman_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(0);
}
diff --git a/src/mame/video/bombjack.cpp b/src/mame/video/bombjack.cpp
index d93848e8d3e..eef0d90eac9 100644
--- a/src/mame/video/bombjack.cpp
+++ b/src/mame/video/bombjack.cpp
@@ -64,8 +64,8 @@ TILE_GET_INFO_MEMBER(bombjack_state::get_fg_tile_info)
void bombjack_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(bombjack_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 16, 16);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(bombjack_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(bombjack_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 16, 16);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(bombjack_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(0);
}
diff --git a/src/mame/video/bosco.cpp b/src/mame/video/bosco.cpp
index 6d344c75fb4..7484346281a 100644
--- a/src/mame/video/bosco.cpp
+++ b/src/mame/video/bosco.cpp
@@ -118,8 +118,8 @@ TILE_GET_INFO_MEMBER(bosco_state::fg_get_tile_info )
VIDEO_START_MEMBER(bosco_state,bosco)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(bosco_state::bg_get_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(bosco_state::fg_get_tile_info),this),tilemap_mapper_delegate(FUNC(bosco_state::fg_tilemap_scan),this), 8,8, 8,32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(bosco_state::bg_get_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 32,32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(bosco_state::fg_get_tile_info)), tilemap_mapper_delegate(*this, FUNC(bosco_state::fg_tilemap_scan)), 8,8, 8,32);
m_bg_tilemap->configure_groups(*m_gfxdecode->gfx(0), 0x1f);
m_fg_tilemap->configure_groups(*m_gfxdecode->gfx(0), 0x1f);
diff --git a/src/mame/video/brkthru.cpp b/src/mame/video/brkthru.cpp
index eab926f5310..825616d5f53 100644
--- a/src/mame/video/brkthru.cpp
+++ b/src/mame/video/brkthru.cpp
@@ -108,8 +108,8 @@ WRITE8_MEMBER(brkthru_state::brkthru_fgram_w)
void brkthru_state::video_start()
{
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(brkthru_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(brkthru_state::get_bg_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 32, 16);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(brkthru_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(brkthru_state::get_bg_tile_info)), TILEMAP_SCAN_COLS, 16, 16, 32, 16);
m_fg_tilemap->set_transparent_pen(0);
m_bg_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/bsktball.cpp b/src/mame/video/bsktball.cpp
index 9ac1bc33b39..49f1e6a5285 100644
--- a/src/mame/video/bsktball.cpp
+++ b/src/mame/video/bsktball.cpp
@@ -28,7 +28,7 @@ TILE_GET_INFO_MEMBER(bsktball_state::get_bg_tile_info)
void bsktball_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(bsktball_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(bsktball_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
void bsktball_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect )
diff --git a/src/mame/video/bwing.cpp b/src/mame/video/bwing.cpp
index 5e86169679f..77648217931 100644
--- a/src/mame/video/bwing.cpp
+++ b/src/mame/video/bwing.cpp
@@ -125,9 +125,9 @@ void bwing_state::video_start()
{
int i;
- m_charmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(bwing_state::get_charinfo),this), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
- m_fgmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(bwing_state::get_fgtileinfo),this), tilemap_mapper_delegate(FUNC(bwing_state::scan_cols),this), 16, 16, 64, 64);
- m_bgmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(bwing_state::get_bgtileinfo),this), tilemap_mapper_delegate(FUNC(bwing_state::scan_cols),this), 16, 16, 64, 64);
+ m_charmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(bwing_state::get_charinfo)), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
+ m_fgmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(bwing_state::get_fgtileinfo)), tilemap_mapper_delegate(*this, FUNC(bwing_state::scan_cols)), 16, 16, 64, 64);
+ m_bgmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(bwing_state::get_bgtileinfo)), tilemap_mapper_delegate(*this, FUNC(bwing_state::scan_cols)), 16, 16, 64, 64);
m_charmap->set_transparent_pen(0);
m_fgmap->set_transparent_pen(0);
diff --git a/src/mame/video/c45.cpp b/src/mame/video/c45.cpp
index 2be60a34481..19946abdeee 100644
--- a/src/mame/video/c45.cpp
+++ b/src/mame/video/c45.cpp
@@ -234,8 +234,8 @@ void namco_c45_road_device::draw(bitmap_ind16 &bitmap, const rectangle &cliprect
void namco_c45_road_device::device_start()
{
// create a tilemap for the road
- m_tilemap = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(namco_c45_road_device::get_road_info), this),
- TILEMAP_SCAN_ROWS, ROAD_TILE_SIZE, ROAD_TILE_SIZE, ROAD_COLS, ROAD_ROWS);
+ m_tilemap = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(namco_c45_road_device::get_road_info)),
+ TILEMAP_SCAN_ROWS, ROAD_TILE_SIZE, ROAD_TILE_SIZE, ROAD_COLS, ROAD_ROWS);
}
diff --git a/src/mame/video/cabal.cpp b/src/mame/video/cabal.cpp
index 22b1d396643..3dc32c9263a 100644
--- a/src/mame/video/cabal.cpp
+++ b/src/mame/video/cabal.cpp
@@ -40,8 +40,8 @@ TILE_GET_INFO_MEMBER(cabal_state::get_text_tile_info)
void cabal_state::video_start()
{
- m_background_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cabal_state::get_back_tile_info),this),TILEMAP_SCAN_ROWS,16,16,16,16);
- m_text_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cabal_state::get_text_tile_info),this),TILEMAP_SCAN_ROWS, 8,8,32,32);
+ m_background_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cabal_state::get_back_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 16, 16);
+ m_text_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cabal_state::get_text_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_text_layer->set_transparent_pen(3);
m_background_layer->set_transparent_pen(15);
diff --git a/src/mame/video/calomega.cpp b/src/mame/video/calomega.cpp
index 716d0a592a3..7e23c2bb555 100644
--- a/src/mame/video/calomega.cpp
+++ b/src/mame/video/calomega.cpp
@@ -50,7 +50,7 @@ TILE_GET_INFO_MEMBER(calomega_state::get_bg_tile_info)
void calomega_state::video_start()
{
m_gfxdecode->gfx(0)->set_granularity(8);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(calomega_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 31);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(calomega_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 31);
}
uint32_t calomega_state::screen_update_calomega(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
diff --git a/src/mame/video/canyon.cpp b/src/mame/video/canyon.cpp
index 6daaface4a8..c25ec2f709c 100644
--- a/src/mame/video/canyon.cpp
+++ b/src/mame/video/canyon.cpp
@@ -27,7 +27,7 @@ TILE_GET_INFO_MEMBER(canyon_state::get_bg_tile_info)
void canyon_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(canyon_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(canyon_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
diff --git a/src/mame/video/cbasebal.cpp b/src/mame/video/cbasebal.cpp
index 6c50356d99a..71805e4c938 100644
--- a/src/mame/video/cbasebal.cpp
+++ b/src/mame/video/cbasebal.cpp
@@ -41,8 +41,8 @@ void cbasebal_state::video_start()
m_textram = std::make_unique<uint8_t[]>(0x1000);
m_scrollram = std::make_unique<uint8_t[]>(0x1000);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cbasebal_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cbasebal_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cbasebal_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cbasebal_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_fg_tilemap->set_transparent_pen(3);
diff --git a/src/mame/video/cclimber.cpp b/src/mame/video/cclimber.cpp
index 2e7ff665d84..a7d0d320a78 100644
--- a/src/mame/video/cclimber.cpp
+++ b/src/mame/video/cclimber.cpp
@@ -444,11 +444,11 @@ TILE_GET_INFO_MEMBER(cclimber_state::toproller_get_bg_tile_info)
VIDEO_START_MEMBER(cclimber_state,cclimber)
{
- m_pf_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cclimber_state::cclimber_get_pf_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_pf_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cclimber_state::cclimber_get_pf_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_pf_tilemap->set_transparent_pen(0);
m_pf_tilemap->set_scroll_cols(32);
- m_bs_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cclimber_state::cclimber_get_bs_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bs_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cclimber_state::cclimber_get_bs_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_bs_tilemap->set_scroll_cols(1);
m_bs_tilemap->set_scroll_rows(1);
m_bs_tilemap->set_transmask(0, 0x01, 0); /* pen 0 is transaprent */
@@ -461,11 +461,11 @@ VIDEO_START_MEMBER(cclimber_state,cclimber)
VIDEO_START_MEMBER(cclimber_state,swimmer)
{
- m_pf_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cclimber_state::swimmer_get_pf_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_pf_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cclimber_state::swimmer_get_pf_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_pf_tilemap->set_transparent_pen(0);
m_pf_tilemap->set_scroll_cols(32);
- m_bs_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cclimber_state::cclimber_get_bs_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bs_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cclimber_state::cclimber_get_bs_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_bs_tilemap->set_scroll_cols(1);
m_bs_tilemap->set_scroll_rows(1);
m_bs_tilemap->set_transmask(0, 0x01, 0); /* pen 0 is transaprent */
@@ -480,13 +480,13 @@ VIDEO_START_MEMBER(cclimber_state,swimmer)
VIDEO_START_MEMBER(cclimber_state,toprollr)
{
- m_pf_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cclimber_state::toprollr_get_pf_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_pf_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cclimber_state::toprollr_get_pf_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_pf_tilemap->set_transparent_pen(0);
- m_toproller_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cclimber_state::toproller_get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_toproller_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cclimber_state::toproller_get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_toproller_bg_tilemap->set_scroll_rows(1);
- m_bs_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cclimber_state::toprollr_get_bs_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bs_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cclimber_state::toprollr_get_bs_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_bs_tilemap->set_scroll_cols(1);
m_bs_tilemap->set_scroll_rows(1);
m_bs_tilemap->set_transmask(0, 0x01, 0); /* pen 0 is transaprent */
diff --git a/src/mame/video/centiped.cpp b/src/mame/video/centiped.cpp
index 689cd6059a6..c7d1991ea76 100644
--- a/src/mame/video/centiped.cpp
+++ b/src/mame/video/centiped.cpp
@@ -97,7 +97,7 @@ VIDEO_START_MEMBER(centiped_state,centiped)
init_common();
init_penmask();
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(centiped_state::centiped_get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(centiped_state::centiped_get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
@@ -105,7 +105,7 @@ VIDEO_START_MEMBER(centiped_state,warlords)
{
init_common();
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(centiped_state::warlords_get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(centiped_state::warlords_get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
@@ -114,7 +114,7 @@ VIDEO_START_MEMBER(centiped_state,milliped)
init_common();
init_penmask();
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(centiped_state::milliped_get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(centiped_state::milliped_get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
@@ -123,7 +123,7 @@ VIDEO_START_MEMBER(centiped_state,bullsdrt)
init_common();
init_penmask();
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(centiped_state::bullsdrt_get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(centiped_state::bullsdrt_get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
diff --git a/src/mame/video/chaknpop.cpp b/src/mame/video/chaknpop.cpp
index bfdf5341300..bd2b1b07e90 100644
--- a/src/mame/video/chaknpop.cpp
+++ b/src/mame/video/chaknpop.cpp
@@ -150,7 +150,7 @@ void chaknpop_state::video_start()
uint8_t *RAM = memregion("maincpu")->base();
/* info offset type w h col row */
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(chaknpop_state::get_tx_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(chaknpop_state::get_tx_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_vram1 = &RAM[0x10000];
m_vram2 = &RAM[0x12000];
diff --git a/src/mame/video/champbas.cpp b/src/mame/video/champbas.cpp
index f329bc31622..4a2b577c0d6 100644
--- a/src/mame/video/champbas.cpp
+++ b/src/mame/video/champbas.cpp
@@ -159,12 +159,12 @@ TILE_GET_INFO_MEMBER(exctsccr_state::exctsccr_get_bg_tile_info)
void champbas_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(champbas_state::champbas_get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(champbas_state::champbas_get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
void exctsccr_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(exctsccr_state::exctsccr_get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(exctsccr_state::exctsccr_get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
diff --git a/src/mame/video/cheekyms.cpp b/src/mame/video/cheekyms.cpp
index 8930b3cb2e0..4d984f15a87 100644
--- a/src/mame/video/cheekyms.cpp
+++ b/src/mame/video/cheekyms.cpp
@@ -105,7 +105,7 @@ void cheekyms_state::video_start()
height = m_screen->height();
m_bitmap_buffer = std::make_unique<bitmap_ind16>(width, height);
- m_cm_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cheekyms_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_cm_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cheekyms_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_cm_tilemap->set_transparent_pen(0);
}
diff --git a/src/mame/video/circus.cpp b/src/mame/video/circus.cpp
index c160672f142..3708e1b964a 100644
--- a/src/mame/video/circus.cpp
+++ b/src/mame/video/circus.cpp
@@ -38,7 +38,7 @@ TILE_GET_INFO_MEMBER(circus_state::get_bg_tile_info)
void circus_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(circus_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(circus_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
void circus_state::draw_line( bitmap_ind16 &bitmap, const rectangle &cliprect, int x1, int y1, int x2, int y2, int dotted )
diff --git a/src/mame/video/circusc.cpp b/src/mame/video/circusc.cpp
index fa50b26a0a8..ab44ec4aff2 100644
--- a/src/mame/video/circusc.cpp
+++ b/src/mame/video/circusc.cpp
@@ -118,7 +118,7 @@ TILE_GET_INFO_MEMBER(circusc_state::get_tile_info)
void circusc_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(circusc_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(circusc_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_bg_tilemap->set_scroll_cols(32);
diff --git a/src/mame/video/citycon.cpp b/src/mame/video/citycon.cpp
index d5720c3536c..51594ad7fbc 100644
--- a/src/mame/video/citycon.cpp
+++ b/src/mame/video/citycon.cpp
@@ -52,8 +52,8 @@ TILE_GET_INFO_MEMBER(citycon_state::get_bg_tile_info)
void citycon_state::video_start()
{
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(citycon_state::get_fg_tile_info),this), tilemap_mapper_delegate(FUNC(citycon_state::citycon_scan),this), 8, 8, 128, 32);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(citycon_state::get_bg_tile_info),this), tilemap_mapper_delegate(FUNC(citycon_state::citycon_scan),this), 8, 8, 128, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(citycon_state::get_fg_tile_info)), tilemap_mapper_delegate(*this, FUNC(citycon_state::citycon_scan)), 8, 8, 128, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(citycon_state::get_bg_tile_info)), tilemap_mapper_delegate(*this, FUNC(citycon_state::citycon_scan)), 8, 8, 128, 32);
m_fg_tilemap->set_transparent_pen(0);
m_fg_tilemap->set_scroll_rows(32);
diff --git a/src/mame/video/cloak.cpp b/src/mame/video/cloak.cpp
index 351379a4ada..d07397fe1cc 100644
--- a/src/mame/video/cloak.cpp
+++ b/src/mame/video/cloak.cpp
@@ -161,7 +161,7 @@ TILE_GET_INFO_MEMBER(cloak_state::get_bg_tile_info)
void cloak_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cloak_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cloak_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_bitmap_videoram1 = std::make_unique<uint8_t[]>(256*256);
m_bitmap_videoram2 = std::make_unique<uint8_t[]>(256*256);
diff --git a/src/mame/video/clshroad.cpp b/src/mame/video/clshroad.cpp
index 9b2389fb46a..6c0c459f59a 100644
--- a/src/mame/video/clshroad.cpp
+++ b/src/mame/video/clshroad.cpp
@@ -202,10 +202,10 @@ WRITE8_MEMBER(clshroad_state::vram_1_w)
VIDEO_START_MEMBER(clshroad_state,firebatl)
{
/* These 2 use the graphics and scroll value */
- m_tilemap_0a = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(clshroad_state::get_tile_info_0a),this),TILEMAP_SCAN_ROWS,16,16,0x20,0x10);
- m_tilemap_0b = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(clshroad_state::get_tile_info_0b),this),TILEMAP_SCAN_ROWS,16,16,0x20,0x10);
+ m_tilemap_0a = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(clshroad_state::get_tile_info_0a)), TILEMAP_SCAN_ROWS, 16, 16, 0x20, 0x10);
+ m_tilemap_0b = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(clshroad_state::get_tile_info_0b)), TILEMAP_SCAN_ROWS, 16, 16, 0x20, 0x10);
/* Text (No scrolling) */
- m_tilemap_1 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(clshroad_state::get_tile_info_fb1),this),tilemap_mapper_delegate(FUNC(clshroad_state::tilemap_scan_rows_extra),this),8,8,0x24,0x20);
+ m_tilemap_1 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(clshroad_state::get_tile_info_fb1)), tilemap_mapper_delegate(*this, FUNC(clshroad_state::tilemap_scan_rows_extra)), 8, 8, 0x24, 0x20);
m_tilemap_0a->set_scrolldx(-0x2a, -0xb3);
m_tilemap_0b->set_scrolldx(-0x2a, -0xb3);
@@ -220,10 +220,10 @@ VIDEO_START_MEMBER(clshroad_state,firebatl)
VIDEO_START_MEMBER(clshroad_state,clshroad)
{
/* These 2 use the graphics and scroll value */
- m_tilemap_0a = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(clshroad_state::get_tile_info_0a),this),TILEMAP_SCAN_ROWS,16,16,0x20,0x10);
- m_tilemap_0b = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(clshroad_state::get_tile_info_0b),this),TILEMAP_SCAN_ROWS,16,16,0x20,0x10);
+ m_tilemap_0a = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(clshroad_state::get_tile_info_0a)), TILEMAP_SCAN_ROWS, 16, 16, 0x20, 0x10);
+ m_tilemap_0b = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(clshroad_state::get_tile_info_0b)), TILEMAP_SCAN_ROWS, 16, 16, 0x20, 0x10);
/* Text (No scrolling) */
- m_tilemap_1 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(clshroad_state::get_tile_info_1),this),tilemap_mapper_delegate(FUNC(clshroad_state::tilemap_scan_rows_extra),this),8,8,0x24,0x20);
+ m_tilemap_1 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(clshroad_state::get_tile_info_1)), tilemap_mapper_delegate(*this, FUNC(clshroad_state::tilemap_scan_rows_extra)), 8, 8, 0x24, 0x20);
m_tilemap_0a->set_scrolldx(-0x30, -0xb5);
m_tilemap_0b->set_scrolldx(-0x30, -0xb5);
diff --git a/src/mame/video/combatsc.cpp b/src/mame/video/combatsc.cpp
index c7598bb4b83..a18d116916c 100644
--- a/src/mame/video/combatsc.cpp
+++ b/src/mame/video/combatsc.cpp
@@ -250,9 +250,9 @@ TILE_GET_INFO_MEMBER(combatsc_state::get_text_info_bootleg)
VIDEO_START_MEMBER(combatsc_state,combatsc)
{
- m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(combatsc_state::get_tile_info0),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(combatsc_state::get_tile_info1),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_textlayer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(combatsc_state::get_text_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(combatsc_state::get_tile_info0)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(combatsc_state::get_tile_info1)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_textlayer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(combatsc_state::get_text_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_spriteram[0] = make_unique_clear<uint8_t[]>(0x800);
m_spriteram[1] = make_unique_clear<uint8_t[]>(0x800);
@@ -269,9 +269,9 @@ VIDEO_START_MEMBER(combatsc_state,combatsc)
VIDEO_START_MEMBER(combatsc_state,combatscb)
{
- m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(combatsc_state::get_tile_info0_bootleg),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(combatsc_state::get_tile_info1_bootleg),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_textlayer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(combatsc_state::get_text_info_bootleg),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(combatsc_state::get_tile_info0_bootleg)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(combatsc_state::get_tile_info1_bootleg)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_textlayer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(combatsc_state::get_text_info_bootleg)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_spriteram[0] = make_unique_clear<uint8_t[]>(0x800);
m_spriteram[1] = make_unique_clear<uint8_t[]>(0x800);
diff --git a/src/mame/video/commando.cpp b/src/mame/video/commando.cpp
index f5c13948eff..59cfac0bba2 100644
--- a/src/mame/video/commando.cpp
+++ b/src/mame/video/commando.cpp
@@ -83,8 +83,8 @@ TILE_GET_INFO_MEMBER(commando_state::get_fg_tile_info)
void commando_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(commando_state::get_bg_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 32, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(commando_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(commando_state::get_bg_tile_info)), TILEMAP_SCAN_COLS, 16, 16, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(commando_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(3);
}
diff --git a/src/mame/video/compgolf.cpp b/src/mame/video/compgolf.cpp
index 5d5a026d44c..aca51e9f67e 100644
--- a/src/mame/video/compgolf.cpp
+++ b/src/mame/video/compgolf.cpp
@@ -70,8 +70,8 @@ TILE_GET_INFO_MEMBER(compgolf_state::get_back_info)
void compgolf_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(compgolf_state::get_back_info),this), tilemap_mapper_delegate(FUNC(compgolf_state::back_scan),this), 16, 16, 32, 32);
- m_text_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(compgolf_state::get_text_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(compgolf_state::get_back_info)), tilemap_mapper_delegate(*this, FUNC(compgolf_state::back_scan)), 16, 16, 32, 32);
+ m_text_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(compgolf_state::get_text_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_text_tilemap->set_transparent_pen(0);
}
diff --git a/src/mame/video/contra.cpp b/src/mame/video/contra.cpp
index 9756dfeb528..5d3fc19c191 100644
--- a/src/mame/video/contra.cpp
+++ b/src/mame/video/contra.cpp
@@ -139,9 +139,9 @@ TILE_GET_INFO_MEMBER(contra_state::get_tx_tile_info)
void contra_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(contra_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(contra_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(contra_state::get_tx_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(contra_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(contra_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(contra_state::get_tx_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_buffered_spriteram = std::make_unique<uint8_t[]>(0x800);
m_buffered_spriteram_2 = std::make_unique<uint8_t[]>(0x800);
diff --git a/src/mame/video/cop01.cpp b/src/mame/video/cop01.cpp
index cdf9c478d4a..d6cfd73b368 100644
--- a/src/mame/video/cop01.cpp
+++ b/src/mame/video/cop01.cpp
@@ -97,8 +97,8 @@ TILE_GET_INFO_MEMBER(cop01_state::get_fg_tile_info)
void cop01_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cop01_state::get_bg_tile_info),this),TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cop01_state::get_fg_tile_info),this),TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cop01_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cop01_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(15);
diff --git a/src/mame/video/cps1.cpp b/src/mame/video/cps1.cpp
index 770e8b6fed2..30c96d507d2 100644
--- a/src/mame/video/cps1.cpp
+++ b/src/mame/video/cps1.cpp
@@ -2268,9 +2268,9 @@ void cps_state::video_start()
m_stars_rom_size = 0x2000; /* first 0x4000 of gfx ROM are used, but 0x0000-0x1fff is == 0x2000-0x3fff */
/* create tilemaps */
- m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cps_state::get_tile0_info),this), tilemap_mapper_delegate(FUNC(cps_state::tilemap0_scan),this), 8, 8, 64, 64);
- m_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cps_state::get_tile1_info),this), tilemap_mapper_delegate(FUNC(cps_state::tilemap1_scan),this), 16, 16, 64, 64);
- m_bg_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cps_state::get_tile2_info),this), tilemap_mapper_delegate(FUNC(cps_state::tilemap2_scan),this), 32, 32, 64, 64);
+ m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cps_state::get_tile0_info)), tilemap_mapper_delegate(*this, FUNC(cps_state::tilemap0_scan)), 8, 8, 64, 64);
+ m_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cps_state::get_tile1_info)), tilemap_mapper_delegate(*this, FUNC(cps_state::tilemap1_scan)), 16, 16, 64, 64);
+ m_bg_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cps_state::get_tile2_info)), tilemap_mapper_delegate(*this, FUNC(cps_state::tilemap2_scan)), 32, 32, 64, 64);
/* create empty tiles */
memset(m_empty_tile, 0x0f, sizeof(m_empty_tile));
diff --git a/src/mame/video/crbaloon.cpp b/src/mame/video/crbaloon.cpp
index 3f9771afb23..1078215e3bb 100644
--- a/src/mame/video/crbaloon.cpp
+++ b/src/mame/video/crbaloon.cpp
@@ -63,7 +63,7 @@ TILE_GET_INFO_MEMBER(crbaloon_state::get_bg_tile_info)
void crbaloon_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(crbaloon_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS_FLIP_XY, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(crbaloon_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS_FLIP_XY, 8, 8, 32, 32);
save_item(NAME(m_collision_address));
save_item(NAME(m_collision_address_clear));
diff --git a/src/mame/video/crospang.cpp b/src/mame/video/crospang.cpp
index 5e83d448063..cbb8c71ba6a 100644
--- a/src/mame/video/crospang.cpp
+++ b/src/mame/video/crospang.cpp
@@ -126,8 +126,8 @@ TILE_GET_INFO_MEMBER(crospang_state::get_fg_tile_info)
void crospang_state::video_start()
{
- m_bg_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(crospang_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- m_fg_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(crospang_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_bg_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(crospang_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_fg_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(crospang_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
m_fg_layer->set_transparent_pen(0);
}
diff --git a/src/mame/video/crshrace.cpp b/src/mame/video/crshrace.cpp
index 879d436923d..4a7a55a390d 100644
--- a/src/mame/video/crshrace.cpp
+++ b/src/mame/video/crshrace.cpp
@@ -41,8 +41,8 @@ uint32_t crshrace_state::crshrace_tile_callback( uint32_t code )
void crshrace_state::video_start()
{
- m_tilemap1 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(crshrace_state::get_tile_info1),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
- m_tilemap2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(crshrace_state::get_tile_info2),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap1 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(crshrace_state::get_tile_info1)), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
+ m_tilemap2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(crshrace_state::get_tile_info2)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
m_tilemap1->set_transparent_pen(0x0f);
m_tilemap2->set_transparent_pen(0xff);
diff --git a/src/mame/video/darius.cpp b/src/mame/video/darius.cpp
index f48b1cc490b..bf05c3785bd 100644
--- a/src/mame/video/darius.cpp
+++ b/src/mame/video/darius.cpp
@@ -22,7 +22,7 @@ TILE_GET_INFO_MEMBER(darius_state::get_fg_tile_info)
void darius_state::video_start()
{
m_gfxdecode->gfx(2)->set_granularity(16);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(darius_state::get_fg_tile_info),this),TILEMAP_SCAN_ROWS,8,8,128,64);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(darius_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 128, 64);
m_fg_tilemap->set_transparent_pen(0);
}
diff --git a/src/mame/video/darkmist.cpp b/src/mame/video/darkmist.cpp
index ba2f90efc7b..27ff732ab22 100644
--- a/src/mame/video/darkmist.cpp
+++ b/src/mame/video/darkmist.cpp
@@ -88,9 +88,9 @@ void darkmist_state::darkmist_palette(palette_device &palette) const
void darkmist_state::video_start()
{
- m_bgtilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(darkmist_state::get_bgtile_info),this),TILEMAP_SCAN_ROWS,16,16,512,64 );
- m_fgtilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(darkmist_state::get_fgtile_info),this),TILEMAP_SCAN_ROWS,16,16,64,256 );
- m_txtilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(darkmist_state::get_txttile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32 );
+ m_bgtilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(darkmist_state::get_bgtile_info)), TILEMAP_SCAN_ROWS, 16, 16, 512, 64);
+ m_fgtilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(darkmist_state::get_fgtile_info)), TILEMAP_SCAN_ROWS, 16, 16, 64, 256);
+ m_txtilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(darkmist_state::get_txttile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
// m_fgtilemap->set_transparent_pen(0);
// m_txtilemap->set_transparent_pen(0);
diff --git a/src/mame/video/dbz.cpp b/src/mame/video/dbz.cpp
index 9a50d2803a5..5da4d15e005 100644
--- a/src/mame/video/dbz.cpp
+++ b/src/mame/video/dbz.cpp
@@ -73,8 +73,8 @@ TILE_GET_INFO_MEMBER(dbz_state::get_dbz_bg1_tile_info)
void dbz_state::video_start()
{
- m_bg1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(dbz_state::get_dbz_bg1_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
- m_bg2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(dbz_state::get_dbz_bg2_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
+ m_bg1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dbz_state::get_dbz_bg1_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
+ m_bg2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dbz_state::get_dbz_bg2_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
m_bg1_tilemap->set_transparent_pen(0);
m_bg2_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/dcon.cpp b/src/mame/video/dcon.cpp
index 85bafa1be6f..e54683dcbab 100644
--- a/src/mame/video/dcon.cpp
+++ b/src/mame/video/dcon.cpp
@@ -99,10 +99,10 @@ TILE_GET_INFO_MEMBER(dcon_state::get_text_tile_info)
void dcon_state::video_start()
{
- m_background_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(dcon_state::get_back_tile_info),this),TILEMAP_SCAN_ROWS, 16,16,32,32);
- m_foreground_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(dcon_state::get_fore_tile_info),this),TILEMAP_SCAN_ROWS,16,16,32,32);
- m_midground_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(dcon_state::get_mid_tile_info),this), TILEMAP_SCAN_ROWS,16,16,32,32);
- m_text_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(dcon_state::get_text_tile_info),this),TILEMAP_SCAN_ROWS, 8,8,64,32);
+ m_background_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dcon_state::get_back_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_foreground_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dcon_state::get_fore_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_midground_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dcon_state::get_mid_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_text_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dcon_state::get_text_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_midground_layer->set_transparent_pen(15);
m_foreground_layer->set_transparent_pen(15);
diff --git a/src/mame/video/dday.cpp b/src/mame/video/dday.cpp
index bf90fd389e9..5aae1f36528 100644
--- a/src/mame/video/dday.cpp
+++ b/src/mame/video/dday.cpp
@@ -203,10 +203,10 @@ TILE_GET_INFO_MEMBER(dday_state::get_sl_tile_info)
void dday_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(dday_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(dday_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_text_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(dday_state::get_text_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_sl_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(dday_state::get_sl_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dday_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dday_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_text_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dday_state::get_text_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_sl_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dday_state::get_sl_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_screen->register_screen_bitmap(m_main_bitmap);
diff --git a/src/mame/video/ddragon.cpp b/src/mame/video/ddragon.cpp
index 05b8d36125a..2fa8820c8cf 100644
--- a/src/mame/video/ddragon.cpp
+++ b/src/mame/video/ddragon.cpp
@@ -97,8 +97,8 @@ TILE_GET_INFO_MEMBER(ddragon_state::get_fg_16color_tile_info)
VIDEO_START_MEMBER(ddragon_state,ddragon)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ddragon_state::get_bg_tile_info),this), tilemap_mapper_delegate(FUNC(ddragon_state::background_scan),this), 16, 16, 32, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ddragon_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ddragon_state::get_bg_tile_info)), tilemap_mapper_delegate(*this, FUNC(ddragon_state::background_scan)), 16, 16, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ddragon_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(0);
m_fg_tilemap->set_scrolldx(0, 0);
diff --git a/src/mame/video/ddragon3.cpp b/src/mame/video/ddragon3.cpp
index cdb40e0e3d3..3acdd768cd2 100644
--- a/src/mame/video/ddragon3.cpp
+++ b/src/mame/video/ddragon3.cpp
@@ -124,8 +124,8 @@ void ddragon3_state::video_start()
{
save_item(NAME(m_pri));
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ddragon3_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ddragon3_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ddragon3_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ddragon3_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
m_bg_tilemap->set_transparent_pen(0);
m_fg_tilemap->set_transparent_pen(0);
@@ -138,8 +138,7 @@ void wwfwfest_state::video_start()
{
ddragon3_state::video_start();
-
- m_fg0_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(wwfwfest_state::get_fg0_tile_info),this),TILEMAP_SCAN_ROWS, 8, 8,64,32);
+ m_fg0_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(wwfwfest_state::get_fg0_tile_info)), TILEMAP_SCAN_ROWS, 8, 8,64,32);
m_fg0_tilemap->set_transparent_pen(0);
}
diff --git a/src/mame/video/ddribble.cpp b/src/mame/video/ddribble.cpp
index 477e49db2de..f047708884e 100644
--- a/src/mame/video/ddribble.cpp
+++ b/src/mame/video/ddribble.cpp
@@ -104,8 +104,8 @@ TILE_GET_INFO_MEMBER(ddribble_state::get_bg_tile_info)
void ddribble_state::video_start()
{
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ddribble_state::get_fg_tile_info),this), tilemap_mapper_delegate(FUNC(ddribble_state::tilemap_scan),this), 8, 8, 64, 32);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ddribble_state::get_bg_tile_info),this), tilemap_mapper_delegate(FUNC(ddribble_state::tilemap_scan),this), 8, 8, 64, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ddribble_state::get_fg_tile_info)), tilemap_mapper_delegate(*this, FUNC(ddribble_state::tilemap_scan)), 8, 8, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ddribble_state::get_bg_tile_info)), tilemap_mapper_delegate(*this, FUNC(ddribble_state::tilemap_scan)), 8, 8, 64, 32);
m_fg_tilemap->set_transparent_pen(0);
}
diff --git a/src/mame/video/deadang.cpp b/src/mame/video/deadang.cpp
index bd1766e9921..1db2c115185 100644
--- a/src/mame/video/deadang.cpp
+++ b/src/mame/video/deadang.cpp
@@ -78,10 +78,10 @@ TILE_GET_INFO_MEMBER(deadang_state::get_text_tile_info)
void deadang_state::video_start()
{
- m_pf3_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deadang_state::get_pf3_tile_info),this),tilemap_mapper_delegate(FUNC(deadang_state::bg_scan),this),16,16,128,256);
- m_pf2_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deadang_state::get_pf2_tile_info),this),tilemap_mapper_delegate(FUNC(deadang_state::bg_scan),this),16,16,128,256);
- m_pf1_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deadang_state::get_pf1_tile_info),this),TILEMAP_SCAN_COLS,16,16, 32, 32);
- m_text_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deadang_state::get_text_tile_info),this),TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_pf3_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(deadang_state::get_pf3_tile_info)), tilemap_mapper_delegate(*this, FUNC(deadang_state::bg_scan)), 16, 16, 128, 256);
+ m_pf2_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(deadang_state::get_pf2_tile_info)), tilemap_mapper_delegate(*this, FUNC(deadang_state::bg_scan)), 16, 16, 128, 256);
+ m_pf1_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(deadang_state::get_pf1_tile_info)), TILEMAP_SCAN_COLS, 16, 16, 32, 32);
+ m_text_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(deadang_state::get_text_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_pf2_layer->set_transparent_pen(15);
m_pf1_layer->set_transparent_pen(15);
@@ -108,10 +108,10 @@ TILE_GET_INFO_MEMBER(popnrun_state::get_popnrun_text_tile_info)
void popnrun_state::video_start()
{
- m_pf3_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deadang_state::get_pf3_tile_info),this),tilemap_mapper_delegate(FUNC(deadang_state::bg_scan),this),16,16,128,256);
- m_pf2_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deadang_state::get_pf2_tile_info),this),tilemap_mapper_delegate(FUNC(deadang_state::bg_scan),this),16,16,128,256);
- m_pf1_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deadang_state::get_pf1_tile_info),this),TILEMAP_SCAN_COLS,16,16, 32, 32);
- m_text_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(popnrun_state::get_popnrun_text_tile_info),this),TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_pf3_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(deadang_state::get_pf3_tile_info)), tilemap_mapper_delegate(*this, FUNC(deadang_state::bg_scan)), 16, 16, 128, 256);
+ m_pf2_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(deadang_state::get_pf2_tile_info)), tilemap_mapper_delegate(*this, FUNC(deadang_state::bg_scan)), 16, 16, 128, 256);
+ m_pf1_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(deadang_state::get_pf1_tile_info)), TILEMAP_SCAN_COLS, 16, 16, 32, 32);
+ m_text_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(popnrun_state::get_popnrun_text_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_pf2_layer->set_transparent_pen(0);
m_pf1_layer->set_transparent_pen(0);
diff --git a/src/mame/video/dec8.cpp b/src/mame/video/dec8.cpp
index d58a6b33d71..7fc3ce72562 100644
--- a/src/mame/video/dec8.cpp
+++ b/src/mame/video/dec8.cpp
@@ -249,7 +249,7 @@ TILE_GET_INFO_MEMBER(dec8_state::get_cobracom_fix_tile_info)
VIDEO_START_MEMBER(dec8_state,cobracom)
{
allocate_buffered_spriteram16();
- m_fix_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(dec8_state::get_cobracom_fix_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fix_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dec8_state::get_cobracom_fix_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fix_tilemap->set_transparent_pen(0);
@@ -283,7 +283,7 @@ TILE_GET_INFO_MEMBER(dec8_state::get_ghostb_fix_tile_info)
VIDEO_START_MEMBER(dec8_state,ghostb)
{
allocate_buffered_spriteram16();
- m_fix_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(dec8_state::get_ghostb_fix_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fix_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dec8_state::get_ghostb_fix_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fix_tilemap->set_transparent_pen(0);
m_game_uses_priority = 0;
@@ -325,7 +325,7 @@ TILE_GET_INFO_MEMBER(dec8_state::get_oscar_fix_tile_info)
VIDEO_START_MEMBER(dec8_state,oscar)
{
allocate_buffered_spriteram16();
- m_fix_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(dec8_state::get_oscar_fix_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fix_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dec8_state::get_oscar_fix_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fix_tilemap->set_transparent_pen(0);
@@ -398,8 +398,8 @@ TILE_GET_INFO_MEMBER(dec8_state::get_lastmisn_fix_tile_info)
VIDEO_START_MEMBER(dec8_state,lastmisn)
{
allocate_buffered_spriteram16();
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(dec8_state::get_lastmisn_tile_info),this), tilemap_mapper_delegate(FUNC(dec8_state::lastmisn_scan_rows),this), 16, 16, 32, 32);
- m_fix_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(dec8_state::get_lastmisn_fix_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dec8_state::get_lastmisn_tile_info)), tilemap_mapper_delegate(*this, FUNC(dec8_state::lastmisn_scan_rows)), 16, 16, 32, 32);
+ m_fix_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dec8_state::get_lastmisn_fix_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fix_tilemap->set_transparent_pen(0);
m_game_uses_priority = 0;
@@ -408,11 +408,11 @@ VIDEO_START_MEMBER(dec8_state,lastmisn)
VIDEO_START_MEMBER(dec8_state,shackled)
{
allocate_buffered_spriteram16();
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(dec8_state::get_lastmisn_tile_info),this), tilemap_mapper_delegate(FUNC(dec8_state::lastmisn_scan_rows),this), 16, 16, 32, 32);
- m_fix_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(dec8_state::get_lastmisn_fix_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dec8_state::get_lastmisn_tile_info)), tilemap_mapper_delegate(*this, FUNC(dec8_state::lastmisn_scan_rows)), 16, 16, 32, 32);
+ m_fix_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dec8_state::get_lastmisn_fix_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fix_tilemap->set_transparent_pen(0);
- m_bg_tilemap->set_transmask(0, 0x000f, 0xfff0); /* Bottom 12 pens */
+ m_bg_tilemap->set_transmask(0, 0x000f, 0xfff0); // Bottom 12 pens
m_game_uses_priority = 1;
}
@@ -461,14 +461,14 @@ TILE_GET_INFO_MEMBER(dec8_state::get_srdarwin_tile_info)
VIDEO_START_MEMBER(dec8_state,srdarwin)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(dec8_state::get_srdarwin_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 16);
- m_fix_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(dec8_state::get_srdarwin_fix_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dec8_state::get_srdarwin_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 16);
+ m_fix_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dec8_state::get_srdarwin_fix_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fix_tilemap->set_transparent_pen(0);
- m_bg_tilemap->set_transmask(0, 0xffff, 0x0000); //* draw as background only
- m_bg_tilemap->set_transmask(1, 0x00ff, 0xff00); /* Bottom 8 pens */
- m_bg_tilemap->set_transmask(2, 0x00ff, 0xff00); /* Bottom 8 pens */
- m_bg_tilemap->set_transmask(3, 0x0000, 0xffff); //* draw as foreground only
+ m_bg_tilemap->set_transmask(0, 0xffff, 0x0000); // draw as background only
+ m_bg_tilemap->set_transmask(1, 0x00ff, 0xff00); // Bottom 8 pens
+ m_bg_tilemap->set_transmask(2, 0x00ff, 0xff00); // Bottom 8 pens
+ m_bg_tilemap->set_transmask(3, 0x0000, 0xffff); // draw as foreground only
}
/******************************************************************************/
@@ -537,8 +537,8 @@ TILE_GET_INFO_MEMBER(dec8_state::get_gondo_tile_info)
VIDEO_START_MEMBER(dec8_state,gondo)
{
allocate_buffered_spriteram16();
- m_fix_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(dec8_state::get_gondo_fix_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(dec8_state::get_gondo_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_fix_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dec8_state::get_gondo_fix_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dec8_state::get_gondo_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
m_fix_tilemap->set_transparent_pen(0);
m_bg_tilemap->set_transmask(0, 0x00ff, 0xff00); /* Bottom 8 pens */
@@ -548,8 +548,8 @@ VIDEO_START_MEMBER(dec8_state,gondo)
VIDEO_START_MEMBER(dec8_state,garyoret)
{
allocate_buffered_spriteram16();
- m_fix_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(dec8_state::get_gondo_fix_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(dec8_state::get_gondo_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_fix_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dec8_state::get_gondo_fix_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dec8_state::get_gondo_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
m_fix_tilemap->set_transparent_pen(0);
m_game_uses_priority = 1;
diff --git a/src/mame/video/decbac06.cpp b/src/mame/video/decbac06.cpp
index 9df7665f684..dd432a65d17 100644
--- a/src/mame/video/decbac06.cpp
+++ b/src/mame/video/decbac06.cpp
@@ -219,27 +219,27 @@ void deco_bac06_device::create_tilemaps(int region8x8, int region16x16)
m_tile_region_8 = region8x8;
m_tile_region_16 = region16x16;
- m_pf8x8_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deco_bac06_device::get_pf8x8_tile_info),this),tilemap_mapper_delegate(FUNC(deco_bac06_device::tile_shape0_8x8_scan),this), 8, 8,128, 32);
- m_pf8x8_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deco_bac06_device::get_pf8x8_tile_info),this),tilemap_mapper_delegate(FUNC(deco_bac06_device::tile_shape1_8x8_scan),this), 8, 8, 64, 64);
- m_pf8x8_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deco_bac06_device::get_pf8x8_tile_info),this),tilemap_mapper_delegate(FUNC(deco_bac06_device::tile_shape2_8x8_scan),this), 8, 8, 32,128);
+ m_pf8x8_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(deco_bac06_device::get_pf8x8_tile_info)), tilemap_mapper_delegate(*this, FUNC(deco_bac06_device::tile_shape0_8x8_scan)), 8, 8, 128, 32);
+ m_pf8x8_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(deco_bac06_device::get_pf8x8_tile_info)), tilemap_mapper_delegate(*this, FUNC(deco_bac06_device::tile_shape1_8x8_scan)), 8, 8, 64, 64);
+ m_pf8x8_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(deco_bac06_device::get_pf8x8_tile_info)), tilemap_mapper_delegate(*this, FUNC(deco_bac06_device::tile_shape2_8x8_scan)), 8, 8, 32, 128);
if (m_wide == 2)
{
- m_pf16x16_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deco_bac06_device::get_pf16x16_tile_info),this), tilemap_mapper_delegate(FUNC(deco_bac06_device::tile_shape0_scan),this), 16, 16, 256, 16);
- m_pf16x16_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deco_bac06_device::get_pf16x16_tile_info),this), tilemap_mapper_delegate(FUNC(deco_bac06_device::tile_shape1_scan),this), 16, 16, 128, 32);
- m_pf16x16_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deco_bac06_device::get_pf16x16_tile_info),this), tilemap_mapper_delegate(FUNC(deco_bac06_device::tile_shape2_scan),this), 16, 16, 64, 64);
+ m_pf16x16_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(deco_bac06_device::get_pf16x16_tile_info)), tilemap_mapper_delegate(*this, FUNC(deco_bac06_device::tile_shape0_scan)), 16, 16, 256, 16);
+ m_pf16x16_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(deco_bac06_device::get_pf16x16_tile_info)), tilemap_mapper_delegate(*this, FUNC(deco_bac06_device::tile_shape1_scan)), 16, 16, 128, 32);
+ m_pf16x16_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(deco_bac06_device::get_pf16x16_tile_info)), tilemap_mapper_delegate(*this, FUNC(deco_bac06_device::tile_shape2_scan)), 16, 16, 64, 64);
}
else if (m_wide == 1)
{
- m_pf16x16_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deco_bac06_device::get_pf16x16_tile_info),this), tilemap_mapper_delegate(FUNC(deco_bac06_device::tile_shape0_scan),this), 16, 16, 128, 16);
- m_pf16x16_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deco_bac06_device::get_pf16x16_tile_info),this), tilemap_mapper_delegate(FUNC(deco_bac06_device::tile_shape1_scan),this), 16, 16, 64, 32);
- m_pf16x16_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deco_bac06_device::get_pf16x16_tile_info),this), tilemap_mapper_delegate(FUNC(deco_bac06_device::tile_shape2_scan),this), 16, 16, 32, 64);
+ m_pf16x16_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(deco_bac06_device::get_pf16x16_tile_info)), tilemap_mapper_delegate(*this, FUNC(deco_bac06_device::tile_shape0_scan)), 16, 16, 128, 16);
+ m_pf16x16_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(deco_bac06_device::get_pf16x16_tile_info)), tilemap_mapper_delegate(*this, FUNC(deco_bac06_device::tile_shape1_scan)), 16, 16, 64, 32);
+ m_pf16x16_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(deco_bac06_device::get_pf16x16_tile_info)), tilemap_mapper_delegate(*this, FUNC(deco_bac06_device::tile_shape2_scan)), 16, 16, 32, 64);
}
else
{
- m_pf16x16_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deco_bac06_device::get_pf16x16_tile_info),this),tilemap_mapper_delegate(FUNC(deco_bac06_device::tile_shape0_scan),this), 16, 16, 64, 16);
- m_pf16x16_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deco_bac06_device::get_pf16x16_tile_info),this),tilemap_mapper_delegate(FUNC(deco_bac06_device::tile_shape1_scan),this), 16, 16, 32, 32);
- m_pf16x16_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deco_bac06_device::get_pf16x16_tile_info),this),tilemap_mapper_delegate(FUNC(deco_bac06_device::tile_shape2_scan),this), 16, 16, 16, 64);
+ m_pf16x16_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(deco_bac06_device::get_pf16x16_tile_info)), tilemap_mapper_delegate(*this, FUNC(deco_bac06_device::tile_shape0_scan)), 16, 16, 64, 16);
+ m_pf16x16_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(deco_bac06_device::get_pf16x16_tile_info)), tilemap_mapper_delegate(*this, FUNC(deco_bac06_device::tile_shape1_scan)), 16, 16, 32, 32);
+ m_pf16x16_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(deco_bac06_device::get_pf16x16_tile_info)), tilemap_mapper_delegate(*this, FUNC(deco_bac06_device::tile_shape2_scan)), 16, 16, 16, 64);
}
}
diff --git a/src/mame/video/deckarn.cpp b/src/mame/video/deckarn.cpp
index 16c8c608767..67543ea4239 100644
--- a/src/mame/video/deckarn.cpp
+++ b/src/mame/video/deckarn.cpp
@@ -10,13 +10,14 @@ DEFINE_DEVICE_TYPE(DECO_KARNOVSPRITES, deco_karnovsprites_device, "deco_karnovsp
deco_karnovsprites_device::deco_karnovsprites_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
: device_t(mconfig, DECO_KARNOVSPRITES, tag, owner, clock)
+ , m_colpri_cb(*this)
{
}
void deco_karnovsprites_device::device_start()
{
m_flip_screen = false;
- m_colpri_cb.bind_relative_to(*owner());
+ m_colpri_cb.resolve();
save_item(NAME(m_flip_screen));
}
diff --git a/src/mame/video/deckarn.h b/src/mame/video/deckarn.h
index 7c176a024ca..c25396127db 100644
--- a/src/mame/video/deckarn.h
+++ b/src/mame/video/deckarn.h
@@ -7,23 +7,23 @@
#include "screen.h"
-typedef device_delegate<void (u32 &colour, u32 &pri_mask)> deckarn_colpri_cb_delegate;
-
class deco_karnovsprites_device : public device_t
{
public:
+ typedef device_delegate<void (u32 &colour, u32 &pri_mask)> colpri_cb_delegate;
+
deco_karnovsprites_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, gfx_element *gfx, u16* spriteram, int size);
void set_flip_screen(bool flip) { m_flip_screen = flip; }
- template <typename... T> void set_colpri_callback(T &&... args) { m_colpri_cb = deckarn_colpri_cb_delegate(std::forward<T>(args)...); }
+ template <typename... T> void set_colpri_callback(T &&... args) { m_colpri_cb.set(std::forward<T>(args)...); }
protected:
virtual void device_start() override;
virtual void device_reset() override;
private:
- deckarn_colpri_cb_delegate m_colpri_cb;
+ colpri_cb_delegate m_colpri_cb;
bool m_flip_screen;
};
diff --git a/src/mame/video/decmxc06.cpp b/src/mame/video/decmxc06.cpp
index ebbfa1ad866..0905a096dd8 100644
--- a/src/mame/video/decmxc06.cpp
+++ b/src/mame/video/decmxc06.cpp
@@ -48,6 +48,7 @@ DEFINE_DEVICE_TYPE(DECO_MXC06, deco_mxc06_device, "deco_mxc06", "DECO MXC06 Spri
deco_mxc06_device::deco_mxc06_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: device_t(mconfig, DECO_MXC06, tag, owner, clock)
, device_video_interface(mconfig, *this)
+ , m_colpri_cb(*this)
{
}
@@ -237,7 +238,7 @@ void deco_mxc06_device::draw_sprites_bootleg(screen_device &screen, bitmap_ind16
void deco_mxc06_device::device_start()
{
- m_colpri_cb.bind_relative_to(*owner());
+ m_colpri_cb.resolve();
m_flip_screen = false;
m_spritelist = make_unique_clear<struct sprite_t[]>(0x400);
diff --git a/src/mame/video/decmxc06.h b/src/mame/video/decmxc06.h
index 52bbd7bf61d..b774c7fec6e 100644
--- a/src/mame/video/decmxc06.h
+++ b/src/mame/video/decmxc06.h
@@ -7,15 +7,15 @@
#include "screen.h"
-typedef device_delegate<void (u32 &colour, u32 &pri_mask)> decmxc06_colpri_cb_delegate;
-
class deco_mxc06_device : public device_t, public device_video_interface
{
public:
+ typedef device_delegate<void (u32 &colour, u32 &pri_mask)> colpri_cb_delegate;
+
deco_mxc06_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// configuration
- template <typename... T> void set_colpri_callback(T &&... args) { m_colpri_cb = decmxc06_colpri_cb_delegate(std::forward<T>(args)...); }
+ template <typename... T> void set_colpri_callback(T &&... args) { m_colpri_cb.set(std::forward<T>(args)...); }
void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, gfx_element *gfx, u16* spriteram, int size);
void draw_sprites_bootleg(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, gfx_element *gfx, u16* spriteram, int size);
@@ -34,7 +34,7 @@ private:
bool flipx, flipy;
u32 pri_mask;
};
- decmxc06_colpri_cb_delegate m_colpri_cb;
+ colpri_cb_delegate m_colpri_cb;
bool m_flip_screen;
std::unique_ptr<struct sprite_t[]> m_spritelist;
};
diff --git a/src/mame/video/deco16ic.cpp b/src/mame/video/deco16ic.cpp
index 862c8f0c945..c1f9464d668 100644
--- a/src/mame/video/deco16ic.cpp
+++ b/src/mame/video/deco16ic.cpp
@@ -177,31 +177,33 @@ Rowscroll style:
DEFINE_DEVICE_TYPE(DECO16IC, deco16ic_device, "deco16ic", "DECO 55 / 56 / 74 / 141 Tilemap Generator")
deco16ic_device::deco16ic_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
- : device_t(mconfig, DECO16IC, tag, owner, clock),
- device_video_interface(mconfig, *this),
- m_pf1_data(nullptr),
- m_pf2_data(nullptr),
- m_pf12_control(nullptr),
- m_pf1_rowscroll_ptr(nullptr),
- m_pf2_rowscroll_ptr(nullptr),
- m_use_custom_pf1(0),
- m_use_custom_pf2(0),
- m_pf1_bank(0),
- m_pf2_bank(0),
- m_pf12_last_small(0),
- m_pf12_last_big(0),
- m_pf1_8bpp_mode(0),
- m_pf1_size(0),
- m_pf2_size(0),
- m_pf1_trans_mask(0xf),
- m_pf2_trans_mask(0xf),
- m_pf1_colour_bank(0),
- m_pf2_colour_bank(0),
- m_pf1_colourmask(0xf),
- m_pf2_colourmask(0xf),
- m_pf12_8x8_gfx_bank(0),
- m_pf12_16x16_gfx_bank(0),
- m_gfxdecode(*this, finder_base::DUMMY_TAG)
+ : device_t(mconfig, DECO16IC, tag, owner, clock)
+ , device_video_interface(mconfig, *this)
+ , m_pf1_data(nullptr)
+ , m_pf2_data(nullptr)
+ , m_pf12_control(nullptr)
+ , m_pf1_rowscroll_ptr(nullptr)
+ , m_pf2_rowscroll_ptr(nullptr)
+ , m_bank1_cb(*this)
+ , m_bank2_cb(*this)
+ , m_use_custom_pf1(0)
+ , m_use_custom_pf2(0)
+ , m_pf1_bank(0)
+ , m_pf2_bank(0)
+ , m_pf12_last_small(0)
+ , m_pf12_last_big(0)
+ , m_pf1_8bpp_mode(0)
+ , m_pf1_size(0)
+ , m_pf2_size(0)
+ , m_pf1_trans_mask(0xf)
+ , m_pf2_trans_mask(0xf)
+ , m_pf1_colour_bank(0)
+ , m_pf2_colour_bank(0)
+ , m_pf1_colourmask(0xf)
+ , m_pf2_colourmask(0xf)
+ , m_pf12_8x8_gfx_bank(0)
+ , m_pf12_16x16_gfx_bank(0)
+ , m_gfxdecode(*this, finder_base::DUMMY_TAG)
{
}
@@ -214,8 +216,8 @@ void deco16ic_device::device_start()
if(!m_gfxdecode->started())
throw device_missing_dependencies();
- m_bank1_cb.bind_relative_to(*owner());
- m_bank2_cb.bind_relative_to(*owner());
+ m_bank1_cb.resolve();
+ m_bank2_cb.resolve();
int fullheight1 = 0;
int fullwidth1 = 0;
@@ -235,12 +237,12 @@ void deco16ic_device::device_start()
if (m_pf2_size&DECO_64x32)
fullwidth2 = 1;
- m_pf1_tilemap_16x16 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deco16ic_device::get_pf1_tile_info),this), tilemap_mapper_delegate(FUNC(deco16ic_device::deco16_scan_rows),this), 16, 16, fullwidth1 ? 64 : 32, fullheight1 ? 64 : 32);
-// m_pf1_tilemap_8x8 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deco16ic_device::get_pf1_tile_info_b),this), TILEMAP_SCAN_ROWS, 8, 8, fullwidth1 ? 64 : 32, fullheight1 ? 64 : 32);
- m_pf1_tilemap_8x8 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deco16ic_device::get_pf1_tile_info_b),this), TILEMAP_SCAN_ROWS, 8, 8, fullwidth1 ? 64 : 32, fullheight1 ? 64 : 32);
+ m_pf1_tilemap_16x16 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(deco16ic_device::get_pf1_tile_info)), tilemap_mapper_delegate(*this, FUNC(deco16ic_device::deco16_scan_rows)), 16, 16, fullwidth1 ? 64 : 32, fullheight1 ? 64 : 32);
+// m_pf1_tilemap_8x8 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(deco16ic_device::get_pf1_tile_info_b)), TILEMAP_SCAN_ROWS, 8, 8, fullwidth1 ? 64 : 32, fullheight1 ? 64 : 32);
+ m_pf1_tilemap_8x8 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(deco16ic_device::get_pf1_tile_info_b)), TILEMAP_SCAN_ROWS, 8, 8, fullwidth1 ? 64 : 32, fullheight1 ? 64 : 32);
- m_pf2_tilemap_16x16 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deco16ic_device::get_pf2_tile_info),this), tilemap_mapper_delegate(FUNC(deco16ic_device::deco16_scan_rows),this), 16, 16, fullwidth2 ? 64 : 32, fullheight2 ? 64 : 32);
- m_pf2_tilemap_8x8 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deco16ic_device::get_pf2_tile_info_b),this), TILEMAP_SCAN_ROWS, 8, 8, fullwidth2 ? 64 : 32, fullheight2 ? 64 : 32);
+ m_pf2_tilemap_16x16 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(deco16ic_device::get_pf2_tile_info)), tilemap_mapper_delegate(*this, FUNC(deco16ic_device::deco16_scan_rows)), 16, 16, fullwidth2 ? 64 : 32, fullheight2 ? 64 : 32);
+ m_pf2_tilemap_8x8 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(deco16ic_device::get_pf2_tile_info_b)), TILEMAP_SCAN_ROWS, 8, 8, fullwidth2 ? 64 : 32, fullheight2 ? 64 : 32);
m_pf1_tilemap_8x8->set_transparent_pen(0);
m_pf2_tilemap_8x8->set_transparent_pen(0);
diff --git a/src/mame/video/deco16ic.h b/src/mame/video/deco16ic.h
index 34956db7391..e9bb27c7d5d 100644
--- a/src/mame/video/deco16ic.h
+++ b/src/mame/video/deco16ic.h
@@ -27,18 +27,16 @@
typedef device_delegate<int (int bank)> deco16_bank_cb_delegate;
-class deco16ic_device : public device_t,
- public device_video_interface
+class deco16ic_device : public device_t, public device_video_interface
{
public:
deco16ic_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- ~deco16ic_device() {}
// configuration
template <typename T> void set_gfxdecode_tag(T &&tag) { m_gfxdecode.set_tag(std::forward<T>(tag)); }
// void set_palette_tag(const char *tag);
- template <typename... T> void set_bank1_callback(T &&... args) { m_bank1_cb = deco16_bank_cb_delegate(std::forward<T>(args)...); }
- template <typename... T> void set_bank2_callback(T &&... args) { m_bank2_cb = deco16_bank_cb_delegate(std::forward<T>(args)...); }
+ template <typename... T> void set_bank1_callback(T &&... args) { m_bank1_cb.set(std::forward<T>(args)...); }
+ template <typename... T> void set_bank2_callback(T &&... args) { m_bank2_cb.set(std::forward<T>(args)...); }
void set_pf1_size(int size) { m_pf1_size = size; }
void set_pf2_size(int size) { m_pf2_size = size; }
void set_pf1_trans_mask(int mask) { m_pf1_trans_mask = mask; }
@@ -104,26 +102,25 @@ public:
template<class _BitmapClass>
void custom_tilemap_draw(
- screen_device &screen,
- _BitmapClass &bitmap,
- const rectangle &cliprect,
- tilemap_t *tilemap0_8x8,
- tilemap_t *tilemap0_16x16,
- tilemap_t *tilemap1_8x8,
- tilemap_t *tilemap1_16x16,
- const u16 *rowscroll_ptr,
- const u16 scrollx,
- const u16 scrolly,
- const u16 control0,
- const u16 control1,
- int combine_mask,
- int combine_shift,
- int trans_mask,
- int flags,
- u8 priority,
- int is_tattoo,
- u8 pmask = 0xff
- );
+ screen_device &screen,
+ _BitmapClass &bitmap,
+ const rectangle &cliprect,
+ tilemap_t *tilemap0_8x8,
+ tilemap_t *tilemap0_16x16,
+ tilemap_t *tilemap1_8x8,
+ tilemap_t *tilemap1_16x16,
+ const u16 *rowscroll_ptr,
+ const u16 scrollx,
+ const u16 scrolly,
+ const u16 control0,
+ const u16 control1,
+ int combine_mask,
+ int combine_shift,
+ int trans_mask,
+ int flags,
+ u8 priority,
+ int is_tattoo,
+ u8 pmask = 0xff);
protected:
// device-level overrides
diff --git a/src/mame/video/decocass.cpp b/src/mame/video/decocass.cpp
index bf06d8cd5a9..fc4004b873a 100644
--- a/src/mame/video/decocass.cpp
+++ b/src/mame/video/decocass.cpp
@@ -695,9 +695,9 @@ void decocass_state::draw_edge(bitmap_ind16 &bitmap, const rectangle &cliprect,
void decocass_state::video_start()
{
- m_bg_tilemap_l = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(decocass_state::get_bg_l_tile_info),this), tilemap_mapper_delegate(FUNC(decocass_state::bgvideoram_scan_cols),this), 16, 16, 32, 32);
- m_bg_tilemap_r = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(decocass_state::get_bg_r_tile_info),this), tilemap_mapper_delegate(FUNC(decocass_state::bgvideoram_scan_cols),this), 16, 16, 32, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(decocass_state::get_fg_tile_info),this), tilemap_mapper_delegate(FUNC(decocass_state::fgvideoram_scan_cols),this), 8, 8, 32, 32);
+ m_bg_tilemap_l = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(decocass_state::get_bg_l_tile_info)), tilemap_mapper_delegate(*this, FUNC(decocass_state::bgvideoram_scan_cols)), 16, 16, 32, 32);
+ m_bg_tilemap_r = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(decocass_state::get_bg_r_tile_info)), tilemap_mapper_delegate(*this, FUNC(decocass_state::bgvideoram_scan_cols)), 16, 16, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(decocass_state::get_fg_tile_info)), tilemap_mapper_delegate(*this, FUNC(decocass_state::fgvideoram_scan_cols)), 8, 8, 32, 32);
m_bg_tilemap_l->set_transparent_pen(0);
m_bg_tilemap_r->set_transparent_pen(0);
diff --git a/src/mame/video/decodmd2.cpp b/src/mame/video/decodmd2.cpp
index e57a2ff79d3..b30d2719bc3 100644
--- a/src/mame/video/decodmd2.cpp
+++ b/src/mame/video/decodmd2.cpp
@@ -136,13 +136,13 @@ void decodmd_type2_device::device_add_mconfig(machine_config &config)
config.m_minimum_quantum = attotime::from_hz(60);
- TIMER(config, "firq_timer", 0).configure_periodic(timer_device::expired_delegate(FUNC(decodmd_type2_device::dmd_firq), this), attotime::from_hz(80));
+ TIMER(config, "firq_timer", 0).configure_periodic(FUNC(decodmd_type2_device::dmd_firq), attotime::from_hz(80));
MC6845(config, m_mc6845, XTAL(8'000'000) / 8); // TODO: confirm clock speed
m_mc6845->set_screen(nullptr);
m_mc6845->set_show_border_area(false);
m_mc6845->set_char_width(8);
- m_mc6845->set_update_row_callback(FUNC(decodmd_type2_device::crtc_update_row), this);
+ m_mc6845->set_update_row_callback(FUNC(decodmd_type2_device::crtc_update_row));
screen_device &screen(SCREEN(config, "dmd", SCREEN_TYPE_RASTER));
screen.set_native_aspect();
diff --git a/src/mame/video/decodmd3.cpp b/src/mame/video/decodmd3.cpp
index 9041d92f229..58979b27770 100644
--- a/src/mame/video/decodmd3.cpp
+++ b/src/mame/video/decodmd3.cpp
@@ -138,13 +138,13 @@ void decodmd_type3_device::device_add_mconfig(machine_config &config)
config.m_minimum_quantum = attotime::from_hz(60);
- TIMER(config, "irq_timer", 0).configure_periodic(timer_device::expired_delegate(FUNC(decodmd_type3_device::dmd_irq), this), attotime::from_hz(150));
+ TIMER(config, "irq_timer", 0).configure_periodic(FUNC(decodmd_type3_device::dmd_irq), attotime::from_hz(150));
MC6845(config, m_mc6845, XTAL(12'000'000) / 4); // TODO: confirm clock speed
m_mc6845->set_screen(nullptr);
m_mc6845->set_show_border_area(false);
m_mc6845->set_char_width(16);
- m_mc6845->set_update_row_callback(FUNC(decodmd_type3_device::crtc_update_row), this);
+ m_mc6845->set_update_row_callback(FUNC(decodmd_type3_device::crtc_update_row));
screen_device &screen(SCREEN(config, "dmd", SCREEN_TYPE_RASTER));
screen.set_native_aspect();
diff --git a/src/mame/video/decospr.cpp b/src/mame/video/decospr.cpp
index bdd2d1a02f9..5c6aa4b2a14 100644
--- a/src/mame/video/decospr.cpp
+++ b/src/mame/video/decospr.cpp
@@ -142,25 +142,25 @@ DECOSPR_COLOUR_CB_MEMBER(decospr_device::default_col_cb)
DEFINE_DEVICE_TYPE(DECO_SPRITE, decospr_device, "decospr", "DECO 52 Sprite")
decospr_device::decospr_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
- : device_t(mconfig, DECO_SPRITE, tag, owner, clock),
- device_video_interface(mconfig, *this),
- m_gfxregion(0),
- m_is_bootleg(false),
- m_bootleg_type(0),
- m_x_offset(0),
- m_y_offset(0),
- m_flipallx(0),
- m_transpen(0),
- m_gfxdecode(*this, finder_base::DUMMY_TAG)
+ : device_t(mconfig, DECO_SPRITE, tag, owner, clock)
+ , device_video_interface(mconfig, *this)
+ , m_gfxregion(0)
+ , m_pri_cb(*this)
+ , m_col_cb(*this, DEVICE_SELF, FUNC(decospr_device::default_col_cb)) // default color callback
+ , m_is_bootleg(false)
+ , m_bootleg_type(0)
+ , m_x_offset(0)
+ , m_y_offset(0)
+ , m_flipallx(0)
+ , m_transpen(0)
+ , m_gfxdecode(*this, finder_base::DUMMY_TAG)
{
- // default color callback
- m_col_cb = decospr_col_cb_delegate(FUNC(decospr_device::default_col_cb), this);
}
void decospr_device::device_start()
{
- m_pri_cb.bind_relative_to(*owner());
- m_col_cb.bind_relative_to(*owner());
+ m_pri_cb.resolve();
+ m_col_cb.resolve();
m_alt_format = 0;
m_pixmask = 0xf;
diff --git a/src/mame/video/decospr.h b/src/mame/video/decospr.h
index f2ff8aa39a7..338b67772dc 100644
--- a/src/mame/video/decospr.h
+++ b/src/mame/video/decospr.h
@@ -22,8 +22,8 @@ public:
// configuration
template <typename T> void set_gfxdecode_tag(T &&tag) { m_gfxdecode.set_tag(std::forward<T>(tag)); }
void set_gfx_region(int gfxregion) { m_gfxregion = gfxregion; }
- template <typename... T> void set_pri_callback(T &&... args) { m_pri_cb = decospr_pri_cb_delegate(std::forward<T>(args)...); }
- template <typename... T> void set_col_callback(T &&... args) { m_col_cb = decospr_col_cb_delegate(std::forward<T>(args)...); }
+ template <typename... T> void set_pri_callback(T &&... args) { m_pri_cb.set(std::forward<T>(args)...); }
+ template <typename... T> void set_col_callback(T &&... args) { m_col_cb.set(std::forward<T>(args)...); }
void set_is_bootleg(bool is_bootleg) { m_is_bootleg = is_bootleg; }
void set_bootleg_type(int bootleg_type) { m_bootleg_type = bootleg_type; }
void set_flipallx(int flipallx) { m_flipallx = flipallx; }
diff --git a/src/mame/video/decrmc3.cpp b/src/mame/video/decrmc3.cpp
index cf7faeb23ab..66e7fc1391b 100644
--- a/src/mame/video/decrmc3.cpp
+++ b/src/mame/video/decrmc3.cpp
@@ -19,12 +19,12 @@
DEFINE_DEVICE_TYPE(DECO_RMC3, deco_rmc3_device, "deco_rmc3", "DECO RM-C3 PALETTE")
deco_rmc3_device::deco_rmc3_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
- : device_t(mconfig, DECO_RMC3, tag, owner, clock),
- device_palette_interface(mconfig, *this),
- m_entries(0),
- m_indirect_entries(0),
- m_prom_region(*this, finder_base::DUMMY_TAG),
- m_init(deco_rmc3_palette_init_delegate())
+ : device_t(mconfig, DECO_RMC3, tag, owner, clock)
+ , device_palette_interface(mconfig, *this)
+ , m_entries(0)
+ , m_indirect_entries(0)
+ , m_prom_region(*this, finder_base::DUMMY_TAG)
+ , m_init(*this)
{
}
@@ -153,7 +153,7 @@ WRITE8_MEMBER(deco_rmc3_device::write_indirect_ext)
void deco_rmc3_device::device_start()
{
// bind the init function
- m_init.bind_relative_to(*owner());
+ m_init.resolve();
// find the memory, if present
const memory_share *share = memshare(tag());
diff --git a/src/mame/video/decrmc3.h b/src/mame/video/decrmc3.h
index 5293c9c98a5..30296e2967d 100644
--- a/src/mame/video/decrmc3.h
+++ b/src/mame/video/decrmc3.h
@@ -42,11 +42,7 @@ public:
deco_rmc3_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
// configuration
- void set_init(deco_rmc3_palette_init_delegate init) { m_init = init; }
- template <class FunctionClass> void set_init(const char *devname, void (FunctionClass::*callback)(deco_rmc3_device &), const char *name)
- {
- set_init(deco_rmc3_palette_init_delegate(callback, name, devname, static_cast<FunctionClass *>(nullptr)));
- }
+ template <typename... T> void set_init(T &&... args) { m_init.set(std::forward<T>(args)...); }
// void set_membits(int membits);
// void set_endianness(endianness_t endianness);
void set_entries(u32 entries) { m_entries = entries; }
diff --git a/src/mame/video/deniam.cpp b/src/mame/video/deniam.cpp
index a4ddb3223dd..ebd3b5a9d6c 100644
--- a/src/mame/video/deniam.cpp
+++ b/src/mame/video/deniam.cpp
@@ -97,9 +97,9 @@ TILE_GET_INFO_MEMBER(deniam_state::get_tx_tile_info)
void deniam_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deniam_state::get_bg_tile_info),this), tilemap_mapper_delegate(FUNC(deniam_state::scan_pages),this), 8, 8, 128, 64);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deniam_state::get_fg_tile_info),this), tilemap_mapper_delegate(FUNC(deniam_state::scan_pages),this), 8, 8, 128, 64);
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deniam_state::get_tx_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(deniam_state::get_bg_tile_info)), tilemap_mapper_delegate(*this, FUNC(deniam_state::scan_pages)), 8, 8, 128, 64);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(deniam_state::get_fg_tile_info)), tilemap_mapper_delegate(*this, FUNC(deniam_state::scan_pages)), 8, 8, 128, 64);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(deniam_state::get_tx_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_fg_tilemap->set_transparent_pen(0);
m_tx_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/digdug.cpp b/src/mame/video/digdug.cpp
index 14cfd0d7c79..026bdafe5eb 100644
--- a/src/mame/video/digdug.cpp
+++ b/src/mame/video/digdug.cpp
@@ -146,8 +146,8 @@ VIDEO_START_MEMBER(digdug_state,digdug)
m_bg_disable = 0;
m_bg_color_bank = 0;
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(digdug_state::bg_get_tile_info),this),tilemap_mapper_delegate(FUNC(digdug_state::tilemap_scan),this),8,8,36,28);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(digdug_state::tx_get_tile_info),this),tilemap_mapper_delegate(FUNC(digdug_state::tilemap_scan),this),8,8,36,28);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(digdug_state::bg_get_tile_info)), tilemap_mapper_delegate(*this, FUNC(digdug_state::tilemap_scan)), 8, 8, 36, 28);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(digdug_state::tx_get_tile_info)), tilemap_mapper_delegate(*this, FUNC(digdug_state::tilemap_scan)), 8, 8, 36, 28);
m_fg_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/divebomb.cpp b/src/mame/video/divebomb.cpp
index 1b5bd73fdee..d3b3c55ec52 100644
--- a/src/mame/video/divebomb.cpp
+++ b/src/mame/video/divebomb.cpp
@@ -133,7 +133,7 @@ void divebomb_state::divebomb_palette(palette_device &palette) const
VIDEO_START_MEMBER(divebomb_state,divebomb)
{
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(divebomb_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(divebomb_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(0);
m_fg_tilemap->set_scrolly(0, 16);
}
diff --git a/src/mame/video/djboy.cpp b/src/mame/video/djboy.cpp
index 39bae7bc99b..d323d02f3ec 100644
--- a/src/mame/video/djboy.cpp
+++ b/src/mame/video/djboy.cpp
@@ -39,7 +39,7 @@ WRITE8_MEMBER(djboy_state::djboy_videoram_w)
void djboy_state::video_start()
{
- m_background = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(djboy_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
+ m_background = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(djboy_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
}
WRITE8_MEMBER(djboy_state::djboy_paletteram_w)
diff --git a/src/mame/video/dkong.cpp b/src/mame/video/dkong.cpp
index fe043a54a8c..c765b35b1c6 100644
--- a/src/mame/video/dkong.cpp
+++ b/src/mame/video/dkong.cpp
@@ -953,10 +953,10 @@ VIDEO_START_MEMBER(dkong_state,dkong)
/* fall through */
case HARDWARE_TKG04:
case HARDWARE_TKG02:
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(dkong_state::dkong_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dkong_state::dkong_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
break;
case HARDWARE_TRS01:
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(dkong_state::radarscp1_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dkong_state::radarscp1_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_screen->register_screen_bitmap(m_bg_bits);
m_gfx4 = memregion("gfx4")->base();
diff --git a/src/mame/video/docastle.cpp b/src/mame/video/docastle.cpp
index e4933b3a840..f00a3c3adc9 100644
--- a/src/mame/video/docastle.cpp
+++ b/src/mame/video/docastle.cpp
@@ -104,7 +104,7 @@ TILE_GET_INFO_MEMBER(docastle_state::get_tile_info)
void docastle_state::video_start_common( uint32_t tile_transmask )
{
- m_do_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(docastle_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_do_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(docastle_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_do_tilemap->set_scrolldy(-32, -32);
m_do_tilemap->set_transmask(0, tile_transmask, 0x0000);
}
diff --git a/src/mame/video/dogfgt.cpp b/src/mame/video/dogfgt.cpp
index fffe0ff4e55..5035f64bf78 100644
--- a/src/mame/video/dogfgt.cpp
+++ b/src/mame/video/dogfgt.cpp
@@ -68,7 +68,7 @@ TILE_GET_INFO_MEMBER(dogfgt_state::get_tile_info)
void dogfgt_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(dogfgt_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dogfgt_state::get_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
m_bitmapram = std::make_unique<uint8_t[]>(BITMAPRAM_SIZE);
save_pointer(NAME(m_bitmapram), BITMAPRAM_SIZE);
diff --git a/src/mame/video/dooyong.cpp b/src/mame/video/dooyong.cpp
index bcacce58628..daeb0068293 100644
--- a/src/mame/video/dooyong.cpp
+++ b/src/mame/video/dooyong.cpp
@@ -63,6 +63,7 @@ dooyong_rom_tilemap_device::dooyong_rom_tilemap_device(
: dooyong_tilemap_device_base(mconfig, type, tag, owner, clock)
, m_rows(8)
, m_tilerom(*this, finder_base::DUMMY_TAG)
+ , m_tmap_cb(*this)
, m_tilerom_offset(0)
, m_tilerom_length(~0U)
, m_transparent_pen(~0U)
@@ -108,11 +109,11 @@ void dooyong_rom_tilemap_device::device_start()
if (!m_gfxdecode->started())
throw device_missing_dependencies();
- m_tmap_cb.bind_relative_to(*owner());
+ m_tmap_cb.resolve();
m_tilemap = &machine().tilemap().create(
*m_gfxdecode,
- tilemap_get_info_delegate(FUNC(dooyong_rom_tilemap_device::tile_info), this),
+ tilemap_get_info_delegate(*this, FUNC(dooyong_rom_tilemap_device::tile_info)),
TILEMAP_SCAN_COLS,
gfx().width(),
gfx().height(),
@@ -236,7 +237,7 @@ void dooyong_ram_tilemap_device::device_start()
m_tilemap = &machine().tilemap().create(
*m_gfxdecode,
- tilemap_get_info_delegate(FUNC(dooyong_ram_tilemap_device::tile_info), this),
+ tilemap_get_info_delegate(*this, FUNC(dooyong_ram_tilemap_device::tile_info)),
TILEMAP_SCAN_COLS,
8,
8,
diff --git a/src/mame/video/dooyong.h b/src/mame/video/dooyong.h
index 58ce4ecf5c0..bc871d94fb3 100644
--- a/src/mame/video/dooyong.h
+++ b/src/mame/video/dooyong.h
@@ -62,7 +62,7 @@ public:
void set_transparent_pen(unsigned pen) { m_transparent_pen = pen; }
typedef device_delegate<void (u16 attr, u32 &code, u32 &color)> dooyong_tmap_cb_delegate;
- void set_tile_callback(dooyong_tmap_cb_delegate cb) { m_tmap_cb = cb; }
+ template <typename... T> void set_tile_callback(T &&... args) { m_tmap_cb.set(std::forward<T>(args)...); }
void ctrl_w(offs_t offset, u8 data);
@@ -85,12 +85,12 @@ protected:
private:
required_region_ptr<u16> m_tilerom;
+ dooyong_tmap_cb_delegate m_tmap_cb;
int m_tilerom_offset;
int m_tilerom_length;
unsigned m_transparent_pen;
u8 m_registers[0x10];
- dooyong_tmap_cb_delegate m_tmap_cb;
};
class rshark_rom_tilemap_device : public dooyong_rom_tilemap_device
diff --git a/src/mame/video/dragrace.cpp b/src/mame/video/dragrace.cpp
index d13441aed68..e17f7b28d0d 100644
--- a/src/mame/video/dragrace.cpp
+++ b/src/mame/video/dragrace.cpp
@@ -43,7 +43,7 @@ TILE_GET_INFO_MEMBER(dragrace_state::get_tile_info)
void dragrace_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(dragrace_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 16, 16);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dragrace_state::get_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 16, 16);
}
diff --git a/src/mame/video/drgnmst.cpp b/src/mame/video/drgnmst.cpp
index 4f3449830e0..bc7f785647f 100644
--- a/src/mame/video/drgnmst.cpp
+++ b/src/mame/video/drgnmst.cpp
@@ -138,13 +138,13 @@ TILEMAP_MAPPER_MEMBER(drgnmst_state::bg_tilemap_scan_cols)
void drgnmst_state::video_start()
{
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(drgnmst_state::get_fg_tile_info),this), tilemap_mapper_delegate(FUNC(drgnmst_state::fg_tilemap_scan_cols),this), 8, 8, 64,64);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(drgnmst_state::get_fg_tile_info)), tilemap_mapper_delegate(*this, FUNC(drgnmst_state::fg_tilemap_scan_cols)), 8, 8, 64,64);
m_fg_tilemap->set_transparent_pen(15);
- m_md_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(drgnmst_state::get_md_tile_info),this), tilemap_mapper_delegate(FUNC(drgnmst_state::md_tilemap_scan_cols),this), 16, 16, 64,64);
+ m_md_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(drgnmst_state::get_md_tile_info)), tilemap_mapper_delegate(*this, FUNC(drgnmst_state::md_tilemap_scan_cols)), 16, 16, 64,64);
m_md_tilemap->set_transparent_pen(15);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(drgnmst_state::get_bg_tile_info),this), tilemap_mapper_delegate(FUNC(drgnmst_state::bg_tilemap_scan_cols),this), 32, 32, 64,64);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(drgnmst_state::get_bg_tile_info)), tilemap_mapper_delegate(*this, FUNC(drgnmst_state::bg_tilemap_scan_cols)), 32, 32, 64,64);
m_bg_tilemap->set_transparent_pen(15);
// do the other tilemaps have rowscroll too? probably not ..
diff --git a/src/mame/video/drmicro.cpp b/src/mame/video/drmicro.cpp
index aea10c37bc9..7e430fab461 100644
--- a/src/mame/video/drmicro.cpp
+++ b/src/mame/video/drmicro.cpp
@@ -103,8 +103,8 @@ void drmicro_state::video_start()
m_videoram = std::make_unique<uint8_t[]>(0x1000);
save_pointer(NAME(m_videoram), 0x1000);
- m_bg1 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(drmicro_state::get_bg1_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_bg2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(drmicro_state::get_bg2_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg1 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(drmicro_state::get_bg1_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(drmicro_state::get_bg2_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_bg2->set_transparent_pen(0);
}
diff --git a/src/mame/video/dynduke.cpp b/src/mame/video/dynduke.cpp
index b459e8addaf..616c7b70b06 100644
--- a/src/mame/video/dynduke.cpp
+++ b/src/mame/video/dynduke.cpp
@@ -66,9 +66,9 @@ TILE_GET_INFO_MEMBER(dynduke_state::get_tx_tile_info)
void dynduke_state::video_start()
{
- m_bg_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(dynduke_state::get_bg_tile_info),this),TILEMAP_SCAN_COLS, 16,16,32,32);
- m_fg_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(dynduke_state::get_fg_tile_info),this),TILEMAP_SCAN_COLS,16,16,32,32);
- m_tx_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(dynduke_state::get_tx_tile_info),this),TILEMAP_SCAN_ROWS, 8, 8,32,32);
+ m_bg_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dynduke_state::get_bg_tile_info)), TILEMAP_SCAN_COLS,16,16,32,32);
+ m_fg_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dynduke_state::get_fg_tile_info)), TILEMAP_SCAN_COLS,16,16,32,32);
+ m_tx_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(dynduke_state::get_tx_tile_info)), TILEMAP_SCAN_ROWS, 8, 8,32,32);
m_fg_layer->set_transparent_pen(15);
m_tx_layer->set_transparent_pen(15);
diff --git a/src/mame/video/edevices.cpp b/src/mame/video/edevices.cpp
index 205d6a27e52..dcb2ab2974a 100644
--- a/src/mame/video/edevices.cpp
+++ b/src/mame/video/edevices.cpp
@@ -52,10 +52,10 @@ edevices_sforce_device::edevices_sforce_device(const machine_config &mconfig, co
void edevices_device::device_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(edevices_device::get_bg_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 64, 16);
- m_mlow_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(edevices_device::get_mlow_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 64, 16);
- m_mhigh_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(edevices_device::get_mhigh_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 64, 16);
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(edevices_device::get_tx_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(edevices_device::get_bg_tile_info)), TILEMAP_SCAN_COLS, 16, 16, 64, 16);
+ m_mlow_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(edevices_device::get_mlow_tile_info)), TILEMAP_SCAN_COLS, 16, 16, 64, 16);
+ m_mhigh_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(edevices_device::get_mhigh_tile_info)), TILEMAP_SCAN_COLS, 16, 16, 64, 16);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(edevices_device::get_tx_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_mlow_tilemap->set_transparent_pen(0);
m_mhigh_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/equites.cpp b/src/mame/video/equites.cpp
index 55ef68af119..e474e9ba071 100644
--- a/src/mame/video/equites.cpp
+++ b/src/mame/video/equites.cpp
@@ -120,10 +120,10 @@ VIDEO_START_MEMBER(equites_state,equites)
m_fg_videoram = std::make_unique<uint8_t[]>(0x800);
save_pointer(NAME(m_fg_videoram), 0x800);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(equites_state::equites_fg_info),this), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(equites_state::equites_fg_info)), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(0);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(equites_state::equites_bg_info),this), TILEMAP_SCAN_ROWS, 16, 16, 16, 16);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(equites_state::equites_bg_info)), TILEMAP_SCAN_ROWS, 16, 16, 16, 16);
m_bg_tilemap->set_transparent_pen(0);
m_bg_tilemap->set_scrolldx(0, -10);
}
@@ -135,11 +135,11 @@ VIDEO_START_MEMBER(splndrbt_state,splndrbt)
m_fg_videoram = std::make_unique<uint8_t[]>(0x800);
save_pointer(NAME(m_fg_videoram), 0x800);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(splndrbt_state::splndrbt_fg_info),this), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(splndrbt_state::splndrbt_fg_info)), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(0);
m_fg_tilemap->set_scrolldx(8, -8);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(splndrbt_state::splndrbt_bg_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(splndrbt_state::splndrbt_bg_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
m_bg_tilemap->configure_groups(*m_gfxdecode->gfx(1), 0x10);
}
diff --git a/src/mame/video/esd16.cpp b/src/mame/video/esd16.cpp
index 589aadecf64..519c66af28f 100644
--- a/src/mame/video/esd16.cpp
+++ b/src/mame/video/esd16.cpp
@@ -108,14 +108,14 @@ void esd16_state::tilemap0_color_jumppop_w(u16 data)
void esd16_state::video_start()
{
- m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(esd16_state::get_tile_info<0>),this), TILEMAP_SCAN_ROWS, 8, 8, 0x80, 0x40);
- m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(esd16_state::get_tile_info<1>),this), TILEMAP_SCAN_ROWS, 8, 8, 0x80, 0x40);
+ m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(esd16_state::get_tile_info<0>)), TILEMAP_SCAN_ROWS, 8, 8, 0x80, 0x40);
+ m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(esd16_state::get_tile_info<1>)), TILEMAP_SCAN_ROWS, 8, 8, 0x80, 0x40);
/* swatpolc changes tilemap 0 to 16x16 at various times */
- m_tilemap_16x16[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(esd16_state::get_tile_info_16x16<0>),this), TILEMAP_SCAN_ROWS, 16,16, 0x40, 0x40);
+ m_tilemap_16x16[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(esd16_state::get_tile_info_16x16<0>)), TILEMAP_SCAN_ROWS, 16,16, 0x40, 0x40);
/* hedpanic changes tilemap 1 to 16x16 at various times */
- m_tilemap_16x16[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(esd16_state::get_tile_info_16x16<1>),this), TILEMAP_SCAN_ROWS, 16,16, 0x40, 0x40);
+ m_tilemap_16x16[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(esd16_state::get_tile_info_16x16<1>)), TILEMAP_SCAN_ROWS, 16,16, 0x40, 0x40);
m_tilemap[0]->set_scrolldx(-0x60 + 2, -0x60);
m_tilemap[1]->set_scrolldx(-0x60, -0x60 + 2);
diff --git a/src/mame/video/espial.cpp b/src/mame/video/espial.cpp
index 642a9d1532a..7ca9fda3761 100644
--- a/src/mame/video/espial.cpp
+++ b/src/mame/video/espial.cpp
@@ -88,7 +88,7 @@ TILE_GET_INFO_MEMBER(espial_state::get_tile_info)
void espial_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(espial_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(espial_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_bg_tilemap->set_scroll_cols(32);
save_item(NAME(m_flipscreen));
@@ -97,7 +97,7 @@ void espial_state::video_start()
VIDEO_START_MEMBER(espial_state,netwars)
{
/* Net Wars has a tile map that's twice as big as Espial's */
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(espial_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 64);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(espial_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 64);
m_bg_tilemap->set_scroll_cols(32);
m_bg_tilemap->set_scrolldy(0, 0x100);
diff --git a/src/mame/video/excellent_spr.cpp b/src/mame/video/excellent_spr.cpp
index 15c31083183..5c4cc9f9200 100644
--- a/src/mame/video/excellent_spr.cpp
+++ b/src/mame/video/excellent_spr.cpp
@@ -26,6 +26,7 @@ excellent_spr_device::excellent_spr_device(const machine_config &mconfig, const
: device_t(mconfig, EXCELLENT_SPRITE, tag, owner, clock)
, device_gfx_interface(mconfig, *this, nullptr)
, device_video_interface(mconfig, *this)
+ , m_colpri_cb(*this)
, m_gfx_region(*this, DEVICE_SELF)
, m_colbase(0)
{
@@ -48,7 +49,7 @@ void excellent_spr_device::device_start()
};
layout_16x16x4.total = m_gfx_region->bytes() / ((16*16*4) / 8);
- m_colpri_cb.bind_relative_to(*owner());
+ m_colpri_cb.resolve();
m_ram = make_unique_clear<u8[]>(0x1000);
save_pointer(NAME(m_ram), 0x1000);
diff --git a/src/mame/video/excellent_spr.h b/src/mame/video/excellent_spr.h
index bd9ecabfba0..12e27c5922b 100644
--- a/src/mame/video/excellent_spr.h
+++ b/src/mame/video/excellent_spr.h
@@ -5,15 +5,15 @@
#pragma once
-typedef device_delegate<void (u32 &colour, u32 &pri_mask)> excellent_spr_colpri_cb_delegate;
-
class excellent_spr_device : public device_t, public device_gfx_interface, public device_video_interface
{
public:
+ typedef device_delegate<void (u32 &colour, u32 &pri_mask)> colpri_cb_delegate;
+
excellent_spr_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
void set_color_base(u16 base) { m_colbase = base; }
- template <typename... T> void set_colpri_callback(T &&... args) { m_colpri_cb = excellent_spr_colpri_cb_delegate(std::forward<T>(args)...); }
+ template <typename... T> void set_colpri_callback(T &&... args) { m_colpri_cb.set(std::forward<T>(args)...); }
u8 read(offs_t offset);
void write(offs_t offset, u8 data);
@@ -28,7 +28,7 @@ protected:
virtual void device_reset() override;
private:
- excellent_spr_colpri_cb_delegate m_colpri_cb;
+ colpri_cb_delegate m_colpri_cb;
required_memory_region m_gfx_region;
u16 m_colbase;
};
diff --git a/src/mame/video/exedexes.cpp b/src/mame/video/exedexes.cpp
index c1824d20ea9..b52ab5fb96f 100644
--- a/src/mame/video/exedexes.cpp
+++ b/src/mame/video/exedexes.cpp
@@ -158,9 +158,9 @@ TILEMAP_MAPPER_MEMBER(exedexes_state::fg_tilemap_scan)
void exedexes_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(exedexes_state::get_bg_tile_info),this), tilemap_mapper_delegate(FUNC(exedexes_state::bg_tilemap_scan),this), 32, 32, 64, 64);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(exedexes_state::get_fg_tile_info),this), tilemap_mapper_delegate(FUNC(exedexes_state::fg_tilemap_scan),this), 16, 16, 128, 128);
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(exedexes_state::get_tx_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(exedexes_state::get_bg_tile_info)), tilemap_mapper_delegate(*this, FUNC(exedexes_state::bg_tilemap_scan)), 32, 32, 64, 64);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(exedexes_state::get_fg_tile_info)), tilemap_mapper_delegate(*this, FUNC(exedexes_state::fg_tilemap_scan)), 16, 16, 128, 128);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(exedexes_state::get_tx_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(0);
m_tx_tilemap->configure_groups(*m_gfxdecode->gfx(0), 0xcf);
diff --git a/src/mame/video/exprraid.cpp b/src/mame/video/exprraid.cpp
index b3728e0cf78..8c812a01a3d 100644
--- a/src/mame/video/exprraid.cpp
+++ b/src/mame/video/exprraid.cpp
@@ -82,8 +82,8 @@ TILE_GET_INFO_MEMBER(exprraid_state::get_fg_tile_info)
void exprraid_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(exprraid_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(exprraid_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(exprraid_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(exprraid_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_bg_tilemap->set_scroll_rows(2);
m_fg_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/f1gp.cpp b/src/mame/video/f1gp.cpp
index bef4278b8ac..86b4e354724 100644
--- a/src/mame/video/f1gp.cpp
+++ b/src/mame/video/f1gp.cpp
@@ -43,8 +43,8 @@ TILE_GET_INFO_MEMBER(f1gp2_state::get_roz_tile_info)
void f1gp_state::video_start()
{
- m_roz_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(f1gp_state::get_roz_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(f1gp_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_roz_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(f1gp_state::get_roz_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(f1gp_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_fg_tilemap->set_transparent_pen(0xff);
@@ -56,8 +56,8 @@ void f1gp_state::video_start()
void f1gp2_state::video_start()
{
- m_roz_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(f1gp2_state::get_roz_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(f1gp2_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_roz_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(f1gp2_state::get_roz_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(f1gp2_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_fg_tilemap->set_transparent_pen(0xff);
m_roz_tilemap->set_transparent_pen(0x0f);
diff --git a/src/mame/video/fastfred.cpp b/src/mame/video/fastfred.cpp
index 13ae8f0c554..a2e365fede6 100644
--- a/src/mame/video/fastfred.cpp
+++ b/src/mame/video/fastfred.cpp
@@ -97,7 +97,7 @@ TILE_GET_INFO_MEMBER(fastfred_state::get_tile_info)
VIDEO_START_MEMBER(fastfred_state,fastfred)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(fastfred_state::get_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(fastfred_state::get_tile_info)), TILEMAP_SCAN_ROWS,8,8,32,32);
m_bg_tilemap->set_transparent_pen(0);
m_bg_tilemap->set_scroll_cols(32);
@@ -325,9 +325,9 @@ WRITE_LINE_MEMBER(fastfred_state::imago_charbank_w)
VIDEO_START_MEMBER(fastfred_state,imago)
{
- m_web_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(fastfred_state::imago_get_tile_info_web),this),TILEMAP_SCAN_ROWS,8,8,32,32);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(fastfred_state::imago_get_tile_info_bg),this), TILEMAP_SCAN_ROWS,8,8,32,32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(fastfred_state::imago_get_tile_info_fg),this), TILEMAP_SCAN_ROWS,8,8,32,32);
+ m_web_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(fastfred_state::imago_get_tile_info_web)),TILEMAP_SCAN_ROWS,8,8,32,32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(fastfred_state::imago_get_tile_info_bg)), TILEMAP_SCAN_ROWS,8,8,32,32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(fastfred_state::imago_get_tile_info_fg)), TILEMAP_SCAN_ROWS,8,8,32,32);
m_bg_tilemap->set_transparent_pen(0);
m_fg_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/fastlane.cpp b/src/mame/video/fastlane.cpp
index e9b212245f4..f67762b8276 100644
--- a/src/mame/video/fastlane.cpp
+++ b/src/mame/video/fastlane.cpp
@@ -87,8 +87,8 @@ TILE_GET_INFO_MEMBER(fastlane_state::get_tile_info1)
void fastlane_state::video_start()
{
- m_layer0 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(fastlane_state::get_tile_info0),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_layer1 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(fastlane_state::get_tile_info1),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_layer0 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(fastlane_state::get_tile_info0)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_layer1 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(fastlane_state::get_tile_info1)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_layer0->set_scroll_rows(32);
diff --git a/src/mame/video/fcombat.cpp b/src/mame/video/fcombat.cpp
index 859a4d6384f..ada01a16a16 100644
--- a/src/mame/video/fcombat.cpp
+++ b/src/mame/video/fcombat.cpp
@@ -96,7 +96,7 @@ void fcombat_state::fcombat_palette(palette_device &palette) const
void fcombat_state::video_start()
{
- m_bgmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(fcombat_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32 * 8 * 2, 32);
+ m_bgmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(fcombat_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32 * 8 * 2, 32);
}
diff --git a/src/mame/video/finalizr.cpp b/src/mame/video/finalizr.cpp
index e0f05132bb8..1e74a663a84 100644
--- a/src/mame/video/finalizr.cpp
+++ b/src/mame/video/finalizr.cpp
@@ -114,8 +114,8 @@ TILE_GET_INFO_MEMBER(finalizr_state::get_fg_tile_info)
void finalizr_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(finalizr_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(finalizr_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(finalizr_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(finalizr_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
diff --git a/src/mame/video/firetrap.cpp b/src/mame/video/firetrap.cpp
index d395c85a5fa..3a99cf61b4e 100644
--- a/src/mame/video/firetrap.cpp
+++ b/src/mame/video/firetrap.cpp
@@ -122,9 +122,9 @@ TILE_GET_INFO_MEMBER(firetrap_state::get_bg2_tile_info)
void firetrap_state::video_start()
{
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(firetrap_state::get_fg_tile_info),this), tilemap_mapper_delegate(FUNC(firetrap_state::get_fg_memory_offset),this), 8, 8, 32, 32);
- m_bg1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(firetrap_state::get_bg1_tile_info),this), tilemap_mapper_delegate(FUNC(firetrap_state::get_bg_memory_offset),this), 16, 16, 32, 32);
- m_bg2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(firetrap_state::get_bg2_tile_info),this), tilemap_mapper_delegate(FUNC(firetrap_state::get_bg_memory_offset),this), 16, 16, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(firetrap_state::get_fg_tile_info)), tilemap_mapper_delegate(*this, FUNC(firetrap_state::get_fg_memory_offset)), 8, 8, 32, 32);
+ m_bg1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(firetrap_state::get_bg1_tile_info)), tilemap_mapper_delegate(*this, FUNC(firetrap_state::get_bg_memory_offset)), 16, 16, 32, 32);
+ m_bg2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(firetrap_state::get_bg2_tile_info)), tilemap_mapper_delegate(*this, FUNC(firetrap_state::get_bg_memory_offset)), 16, 16, 32, 32);
m_fg_tilemap->set_transparent_pen(0);
m_bg1_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/firetrk.cpp b/src/mame/video/firetrk.cpp
index 29c92d3afbd..ed1808f375a 100644
--- a/src/mame/video/firetrk.cpp
+++ b/src/mame/video/firetrk.cpp
@@ -211,8 +211,8 @@ void firetrk_state::video_start()
m_screen->register_screen_bitmap(m_helper1);
m_screen->register_screen_bitmap(m_helper2);
- m_tilemap1 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(firetrk_state::firetrk_get_tile_info1),this), TILEMAP_SCAN_ROWS, 16, 16, 16, 16);
- m_tilemap2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(firetrk_state::firetrk_get_tile_info2),this), TILEMAP_SCAN_ROWS, 16, 16, 16, 16);
+ m_tilemap1 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(firetrk_state::firetrk_get_tile_info1)), TILEMAP_SCAN_ROWS, 16, 16, 16, 16);
+ m_tilemap2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(firetrk_state::firetrk_get_tile_info2)), TILEMAP_SCAN_ROWS, 16, 16, 16, 16);
}
@@ -221,8 +221,8 @@ VIDEO_START_MEMBER(firetrk_state,superbug)
m_screen->register_screen_bitmap(m_helper1);
m_screen->register_screen_bitmap(m_helper2);
- m_tilemap1 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(firetrk_state::superbug_get_tile_info1),this), TILEMAP_SCAN_ROWS, 16, 16, 16, 16);
- m_tilemap2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(firetrk_state::superbug_get_tile_info2),this), TILEMAP_SCAN_ROWS, 16, 16, 16, 16);
+ m_tilemap1 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(firetrk_state::superbug_get_tile_info1)), TILEMAP_SCAN_ROWS, 16, 16, 16, 16);
+ m_tilemap2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(firetrk_state::superbug_get_tile_info2)), TILEMAP_SCAN_ROWS, 16, 16, 16, 16);
}
@@ -231,8 +231,8 @@ VIDEO_START_MEMBER(firetrk_state,montecar)
m_screen->register_screen_bitmap(m_helper1);
m_screen->register_screen_bitmap(m_helper2);
- m_tilemap1 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(firetrk_state::montecar_get_tile_info1),this), TILEMAP_SCAN_ROWS, 16, 16, 16, 16);
- m_tilemap2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(firetrk_state::montecar_get_tile_info2),this), TILEMAP_SCAN_ROWS, 16, 16, 16, 16);
+ m_tilemap1 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(firetrk_state::montecar_get_tile_info1)), TILEMAP_SCAN_ROWS, 16, 16, 16, 16);
+ m_tilemap2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(firetrk_state::montecar_get_tile_info2)), TILEMAP_SCAN_ROWS, 16, 16, 16, 16);
}
diff --git a/src/mame/video/fitfight.cpp b/src/mame/video/fitfight.cpp
index 720fb53eabd..edad1d5396f 100644
--- a/src/mame/video/fitfight.cpp
+++ b/src/mame/video/fitfight.cpp
@@ -95,13 +95,13 @@ WRITE16_MEMBER(fitfight_state::fof_txt_tileram_w)
void fitfight_state::video_start()
{
- m_fof_bak_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(fitfight_state::get_fof_bak_tile_info),this), TILEMAP_SCAN_COLS, 8, 8, 128, 32);
+ m_fof_bak_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(fitfight_state::get_fof_bak_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 128, 32);
/* opaque */
- m_fof_mid_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(fitfight_state::get_fof_mid_tile_info),this), TILEMAP_SCAN_COLS, 8, 8, 128, 32);
+ m_fof_mid_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(fitfight_state::get_fof_mid_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 128, 32);
m_fof_mid_tilemap->set_transparent_pen(0);
- m_fof_txt_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(fitfight_state::get_fof_txt_tile_info),this), TILEMAP_SCAN_COLS, 8, 8, 128, 32);
+ m_fof_txt_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(fitfight_state::get_fof_txt_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 128, 32);
m_fof_txt_tilemap->set_transparent_pen(0);
}
diff --git a/src/mame/video/flkatck.cpp b/src/mame/video/flkatck.cpp
index ee92aece1e4..49bb7374b74 100644
--- a/src/mame/video/flkatck.cpp
+++ b/src/mame/video/flkatck.cpp
@@ -69,8 +69,8 @@ TILE_GET_INFO_MEMBER(flkatck_state::get_tile_info_B)
void flkatck_state::video_start()
{
- m_k007121_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(flkatck_state::get_tile_info_A),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_k007121_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(flkatck_state::get_tile_info_B),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_k007121_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(flkatck_state::get_tile_info_A)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_k007121_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(flkatck_state::get_tile_info_B)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
diff --git a/src/mame/video/flstory.cpp b/src/mame/video/flstory.cpp
index 8f0f811f8f5..18424efd135 100644
--- a/src/mame/video/flstory.cpp
+++ b/src/mame/video/flstory.cpp
@@ -55,7 +55,7 @@ TILE_GET_INFO_MEMBER(flstory_state::get_rumba_tile_info)
VIDEO_START_MEMBER(flstory_state,flstory)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(flstory_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(flstory_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
// m_bg_tilemap->set_transparent_pen(15);
m_bg_tilemap->set_transmask(0, 0x3fff, 0xc000); /* split type 0 has pens 0-13 transparent in front half */
m_bg_tilemap->set_transmask(1, 0x8000, 0x7fff); /* split type 1 has pen 15 transparent in front half */
@@ -72,7 +72,7 @@ VIDEO_START_MEMBER(flstory_state,flstory)
VIDEO_START_MEMBER(flstory_state,rumba)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(flstory_state::get_rumba_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(flstory_state::get_rumba_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
// m_bg_tilemap->set_transparent_pen(15);
m_bg_tilemap->set_transmask(0, 0x3fff, 0xc000); /* split type 0 has pens 0-13 transparent in front half */
m_bg_tilemap->set_transmask(1, 0x8000, 0x7fff); /* split type 1 has pen 15 transparent in front half */
@@ -89,7 +89,7 @@ VIDEO_START_MEMBER(flstory_state,rumba)
VIDEO_START_MEMBER(flstory_state,victnine)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(flstory_state::victnine_get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(flstory_state::victnine_get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_bg_tilemap->set_scroll_cols(32);
m_paletteram.resize(m_palette->entries());
diff --git a/src/mame/video/freekick.cpp b/src/mame/video/freekick.cpp
index a02f0068ad7..b579cf016da 100644
--- a/src/mame/video/freekick.cpp
+++ b/src/mame/video/freekick.cpp
@@ -18,7 +18,7 @@ TILE_GET_INFO_MEMBER(freekick_state::get_freek_tile_info)
void freekick_state::video_start()
{
- m_freek_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(freekick_state::get_freek_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_freek_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(freekick_state::get_freek_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
diff --git a/src/mame/video/fromanc2.cpp b/src/mame/video/fromanc2.cpp
index 04e3e7601f9..3d1b0cd0aa6 100644
--- a/src/mame/video/fromanc2.cpp
+++ b/src/mame/video/fromanc2.cpp
@@ -257,14 +257,14 @@ WRITE16_MEMBER(fromanc2_state::fromanc4_gfxreg_2_w)
VIDEO_START_MEMBER(fromanc2_state,fromanc2)
{
- m_tilemap[0][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(&fromanc2_state::fromanc2_get_tile_info<0, 0>, "v0_l0", this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_tilemap[0][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(&fromanc2_state::fromanc2_get_tile_info<0, 1>, "v0_l1", this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_tilemap[0][2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(&fromanc2_state::fromanc2_get_tile_info<0, 2>, "v0_l2", this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_tilemap[0][3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(&fromanc2_state::fromanc2_get_tile_info<0, 3>, "v0_l3", this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_tilemap[1][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(&fromanc2_state::fromanc2_get_tile_info<1, 0>, "v1_l0", this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_tilemap[1][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(&fromanc2_state::fromanc2_get_tile_info<1, 1>, "v1_l1", this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_tilemap[1][2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(&fromanc2_state::fromanc2_get_tile_info<1, 2>, "v1_l2", this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_tilemap[1][3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(&fromanc2_state::fromanc2_get_tile_info<1, 3>, "v1_l3", this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap[0][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, NAME((&fromanc2_state::fromanc2_get_tile_info<0, 0>))), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap[0][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, NAME((&fromanc2_state::fromanc2_get_tile_info<0, 1>))), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap[0][2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, NAME((&fromanc2_state::fromanc2_get_tile_info<0, 2>))), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap[0][3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, NAME((&fromanc2_state::fromanc2_get_tile_info<0, 3>))), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap[1][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, NAME((&fromanc2_state::fromanc2_get_tile_info<1, 0>))), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap[1][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, NAME((&fromanc2_state::fromanc2_get_tile_info<1, 1>))), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap[1][2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, NAME((&fromanc2_state::fromanc2_get_tile_info<1, 2>))), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap[1][3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, NAME((&fromanc2_state::fromanc2_get_tile_info<1, 3>))), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
for (int screen = 0; screen < 2; screen++)
{
@@ -295,13 +295,13 @@ VIDEO_START_MEMBER(fromanc2_state,fromanc2)
VIDEO_START_MEMBER(fromanc2_state,fromancr)
{
- m_tilemap[0][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(&fromanc2_state::fromancr_get_tile_info<0, 0>, "v0_l0", this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_tilemap[0][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(&fromanc2_state::fromancr_get_tile_info<0, 1>, "v0_l1", this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_tilemap[0][2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(&fromanc2_state::fromancr_get_tile_info<0, 2>, "v0_l2", this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap[0][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, NAME((&fromanc2_state::fromancr_get_tile_info<0, 0>))), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap[0][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, NAME((&fromanc2_state::fromancr_get_tile_info<0, 1>))), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap[0][2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, NAME((&fromanc2_state::fromancr_get_tile_info<0, 2>))), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
m_tilemap[0][3] = nullptr;
- m_tilemap[1][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(&fromanc2_state::fromancr_get_tile_info<1, 0>, "v1_l0", this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_tilemap[1][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(&fromanc2_state::fromancr_get_tile_info<1, 1>, "v1_l1", this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_tilemap[1][2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(&fromanc2_state::fromancr_get_tile_info<1, 2>, "v1_l2", this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap[1][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, NAME((&fromanc2_state::fromancr_get_tile_info<1, 0>))), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap[1][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, NAME((&fromanc2_state::fromancr_get_tile_info<1, 1>))), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap[1][2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, NAME((&fromanc2_state::fromancr_get_tile_info<1, 2>))), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
m_tilemap[1][3] = nullptr;
for (int screen = 0; screen < 2; screen++)
@@ -331,13 +331,13 @@ VIDEO_START_MEMBER(fromanc2_state,fromancr)
VIDEO_START_MEMBER(fromanc2_state,fromanc4)
{
- m_tilemap[0][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(&fromanc2_state::fromancr_get_tile_info<0, 0>, "v0_l0", this), TILEMAP_SCAN_ROWS, 8, 8, 256, 64);
- m_tilemap[0][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(&fromanc2_state::fromancr_get_tile_info<0, 1>, "v0_l1", this), TILEMAP_SCAN_ROWS, 8, 8, 256, 64);
- m_tilemap[0][2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(&fromanc2_state::fromancr_get_tile_info<0, 2>, "v0_l2", this), TILEMAP_SCAN_ROWS, 8, 8, 256, 64);
+ m_tilemap[0][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, NAME((&fromanc2_state::fromancr_get_tile_info<0, 0>))), TILEMAP_SCAN_ROWS, 8, 8, 256, 64);
+ m_tilemap[0][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, NAME((&fromanc2_state::fromancr_get_tile_info<0, 1>))), TILEMAP_SCAN_ROWS, 8, 8, 256, 64);
+ m_tilemap[0][2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, NAME((&fromanc2_state::fromancr_get_tile_info<0, 2>))), TILEMAP_SCAN_ROWS, 8, 8, 256, 64);
m_tilemap[0][3] = nullptr;
- m_tilemap[1][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(&fromanc2_state::fromancr_get_tile_info<1, 0>, "v1_l0", this), TILEMAP_SCAN_ROWS, 8, 8, 256, 64);
- m_tilemap[1][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(&fromanc2_state::fromancr_get_tile_info<1, 1>, "v1_l1", this), TILEMAP_SCAN_ROWS, 8, 8, 256, 64);
- m_tilemap[1][2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(&fromanc2_state::fromancr_get_tile_info<1, 2>, "v1_l2", this), TILEMAP_SCAN_ROWS, 8, 8, 256, 64);
+ m_tilemap[1][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, NAME((&fromanc2_state::fromancr_get_tile_info<1, 0>))), TILEMAP_SCAN_ROWS, 8, 8, 256, 64);
+ m_tilemap[1][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, NAME((&fromanc2_state::fromancr_get_tile_info<1, 1>))), TILEMAP_SCAN_ROWS, 8, 8, 256, 64);
+ m_tilemap[1][2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, NAME((&fromanc2_state::fromancr_get_tile_info<1, 2>))), TILEMAP_SCAN_ROWS, 8, 8, 256, 64);
m_tilemap[1][3] = nullptr;
for (int screen = 0; screen < 2; screen++)
diff --git a/src/mame/video/fromance.cpp b/src/mame/video/fromance.cpp
index eaad8257137..a9e84600c01 100644
--- a/src/mame/video/fromance.cpp
+++ b/src/mame/video/fromance.cpp
@@ -88,8 +88,8 @@ void fromance_state::init_common( )
VIDEO_START_MEMBER(fromance_state,fromance)
{
/* allocate tilemaps */
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(fromance_state::get_fromance_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 4, 64, 64);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(fromance_state::get_fromance_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 4, 64, 64);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(fromance_state::get_fromance_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 4, 64, 64);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(fromance_state::get_fromance_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 4, 64, 64);
init_common();
}
@@ -97,8 +97,8 @@ VIDEO_START_MEMBER(fromance_state,fromance)
VIDEO_START_MEMBER(fromance_state,nekkyoku)
{
/* allocate tilemaps */
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(fromance_state::get_nekkyoku_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 4, 64, 64);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(fromance_state::get_nekkyoku_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 4, 64, 64);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(fromance_state::get_nekkyoku_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 4, 64, 64);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(fromance_state::get_nekkyoku_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 4, 64, 64);
init_common();
}
diff --git a/src/mame/video/funkybee.cpp b/src/mame/video/funkybee.cpp
index b762dd4e256..007a0130578 100644
--- a/src/mame/video/funkybee.cpp
+++ b/src/mame/video/funkybee.cpp
@@ -85,7 +85,7 @@ TILEMAP_MAPPER_MEMBER(funkybee_state::funkybee_tilemap_scan)
void funkybee_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(funkybee_state::get_bg_tile_info),this), tilemap_mapper_delegate(FUNC(funkybee_state::funkybee_tilemap_scan),this), 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(funkybee_state::get_bg_tile_info)), tilemap_mapper_delegate(*this, FUNC(funkybee_state::funkybee_tilemap_scan)), 8, 8, 32, 32);
}
void funkybee_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect )
diff --git a/src/mame/video/funworld.cpp b/src/mame/video/funworld.cpp
index 3bfdf3a1204..d56b5bae043 100644
--- a/src/mame/video/funworld.cpp
+++ b/src/mame/video/funworld.cpp
@@ -125,22 +125,22 @@ TILE_GET_INFO_MEMBER(funworld_state::get_bg_tile_info)
void funworld_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(funworld_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 4, 8, 96, 29);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(funworld_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 4, 8, 96, 29);
}
void magicrd2_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(magicrd2_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 4, 8, 112, 34);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(magicrd2_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 4, 8, 112, 34);
}
void chinatow_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(chinatow_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 4, 8, 96, 31);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(chinatow_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 4, 8, 96, 31);
}
void multiwin_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(multiwin_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 4, 8, 96, 31);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(multiwin_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 4, 8, 96, 31);
}
diff --git a/src/mame/video/funybubl.cpp b/src/mame/video/funybubl.cpp
index 1e9103156b2..f2116510cea 100644
--- a/src/mame/video/funybubl.cpp
+++ b/src/mame/video/funybubl.cpp
@@ -29,7 +29,7 @@ TILE_GET_INFO_MEMBER(funybubl_state::get_tile_info)
void funybubl_state::video_start()
{
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(funybubl_state::get_tile_info),this),TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(funybubl_state::get_tile_info)),TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_tilemap->set_transparent_pen(0);
}
diff --git a/src/mame/video/fuukifg.cpp b/src/mame/video/fuukifg.cpp
index 4388811fbb7..2add15d2b8a 100644
--- a/src/mame/video/fuukifg.cpp
+++ b/src/mame/video/fuukifg.cpp
@@ -13,6 +13,8 @@ fuukivid_device::fuukivid_device(const machine_config &mconfig, const char *tag,
: device_t(mconfig, FUUKI_VIDEO, tag, owner, clock)
, device_gfx_interface(mconfig, *this, nullptr)
, device_video_interface(mconfig, *this)
+ , m_tile_cb(*this)
+ , m_colpri_cb(*this)
, m_gfx_region(*this, DEVICE_SELF)
, m_colbase(0)
, m_colnum(0x100)
@@ -34,8 +36,8 @@ void fuukivid_device::device_start()
};
layout_16x16x4.total = m_gfx_region->bytes() / ((16*16*4) / 8);
- m_tile_cb.bind_relative_to(*owner());
- m_colpri_cb.bind_relative_to(*owner());
+ m_tile_cb.resolve();
+ m_colpri_cb.resolve();
set_gfx(0, std::make_unique<gfx_element>(&palette(), layout_16x16x4, m_gfx_region->base(), 0, m_colnum, m_colbase));
}
diff --git a/src/mame/video/fuukifg.h b/src/mame/video/fuukifg.h
index 2c2568597bb..2fb522e257f 100644
--- a/src/mame/video/fuukifg.h
+++ b/src/mame/video/fuukifg.h
@@ -5,19 +5,19 @@
#pragma once
-typedef device_delegate<void (u32 &code)> fuukivid_tile_delegate;
-typedef device_delegate<void (u32 &colour, u32 &pri_mask)> fuukivid_colpri_cb_delegate;
-
class fuukivid_device : public device_t, public device_gfx_interface, public device_video_interface
{
public:
+ typedef device_delegate<void (u32 &code)> tile_delegate;
+ typedef device_delegate<void (u32 &colour, u32 &pri_mask)> colpri_cb_delegate;
+
fuukivid_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
// configuration
void set_color_base(u16 base) { m_colbase = base; }
void set_color_num(u16 num) { m_colnum = num; }
- template <typename... T> void set_tile_callback(T &&... args) { m_tile_cb = fuukivid_tile_delegate(std::forward<T>(args)...); }
- template <typename... T> void set_colpri_callback(T &&... args) { m_colpri_cb = fuukivid_colpri_cb_delegate(std::forward<T>(args)...); }
+ template <typename... T> void set_tile_callback(T &&... args) { m_tile_cb.set(std::forward<T>(args)...); }
+ template <typename... T> void set_colpri_callback(T &&... args) { m_colpri_cb.set(std::forward<T>(args)...); }
void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, bool flip_screen, u16 *spriteram, u32 size);
@@ -26,8 +26,8 @@ protected:
virtual void device_reset() override;
private:
- fuukivid_tile_delegate m_tile_cb;
- fuukivid_colpri_cb_delegate m_colpri_cb;
+ tile_delegate m_tile_cb;
+ colpri_cb_delegate m_colpri_cb;
required_memory_region m_gfx_region;
u16 m_colbase;
u16 m_colnum;
diff --git a/src/mame/video/fuukifg2.cpp b/src/mame/video/fuukifg2.cpp
index c363e6fcfc4..fc9aeb1c6c3 100644
--- a/src/mame/video/fuukifg2.cpp
+++ b/src/mame/video/fuukifg2.cpp
@@ -75,9 +75,9 @@ void fuuki16_state::fuuki16_palette(palette_device &palette) const
void fuuki16_state::video_start()
{
- m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(fuuki16_state::get_tile_info<0>),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
- m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(fuuki16_state::get_tile_info<1>),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
- m_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(fuuki16_state::get_tile_info<2>),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(fuuki16_state::get_tile_info<0>)), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
+ m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(fuuki16_state::get_tile_info<1>)), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
+ m_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(fuuki16_state::get_tile_info<2>)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_tilemap[0]->set_transparent_pen(0x0f); // 4 bits
m_tilemap[1]->set_transparent_pen(0xff); // 8 bits
diff --git a/src/mame/video/fuukifg3.cpp b/src/mame/video/fuukifg3.cpp
index 3295cf038ad..f9a1fe465c7 100644
--- a/src/mame/video/fuukifg3.cpp
+++ b/src/mame/video/fuukifg3.cpp
@@ -73,9 +73,9 @@ void fuuki32_state::video_start()
m_buf_spriteram[0] = make_unique_clear<u16[]>(spriteram_size / 2);
m_buf_spriteram[1] = make_unique_clear<u16[]>(spriteram_size / 2);
- m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(&fuuki32_state::get_tile_info<0, 4>, "layer0", this), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
- m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(&fuuki32_state::get_tile_info<1, 4>, "layer1", this), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
- m_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(&fuuki32_state::get_tile_info<2, 0>, "layer2", this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, NAME((&fuuki32_state::get_tile_info<0, 4>))), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
+ m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, NAME((&fuuki32_state::get_tile_info<1, 4>))), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
+ m_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, NAME((&fuuki32_state::get_tile_info<2, 0>))), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_tilemap[0]->set_transparent_pen(0xff); // 8 bits
m_tilemap[1]->set_transparent_pen(0xff); // 8 bits
diff --git a/src/mame/video/gaelco.cpp b/src/mame/video/gaelco.cpp
index e7cc23e3938..ae62d81f0a2 100644
--- a/src/mame/video/gaelco.cpp
+++ b/src/mame/video/gaelco.cpp
@@ -68,17 +68,17 @@ void gaelco_state::vram_w(offs_t offset, u16 data, u16 mem_mask)
VIDEO_START_MEMBER(gaelco_state,bigkarnk)
{
- m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gaelco_state::get_tile_info<0>),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gaelco_state::get_tile_info<1>),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gaelco_state::get_tile_info<0>)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gaelco_state::get_tile_info<1>)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- m_tilemap[0]->set_transmask(0, 0xff01, 0x00ff); /* pens 1-7 opaque, pens 0, 8-15 transparent */
- m_tilemap[1]->set_transmask(0, 0xff01, 0x00ff); /* pens 1-7 opaque, pens 0, 8-15 transparent */
+ m_tilemap[0]->set_transmask(0, 0xff01, 0x00ff); // pens 1-7 opaque, pens 0, 8-15 transparent
+ m_tilemap[1]->set_transmask(0, 0xff01, 0x00ff); // pens 1-7 opaque, pens 0, 8-15 transparent
}
VIDEO_START_MEMBER(gaelco_state,maniacsq)
{
- m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gaelco_state::get_tile_info<0>),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gaelco_state::get_tile_info<1>),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gaelco_state::get_tile_info<0>)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gaelco_state::get_tile_info<1>)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
m_tilemap[0]->set_transparent_pen(0);
m_tilemap[1]->set_transparent_pen(0);
diff --git a/src/mame/video/gaelco2.cpp b/src/mame/video/gaelco2.cpp
index 3c6e5403da8..856ce7201c5 100644
--- a/src/mame/video/gaelco2.cpp
+++ b/src/mame/video/gaelco2.cpp
@@ -258,8 +258,8 @@ VIDEO_START_MEMBER(gaelco2_state,gaelco2)
m_videoram = m_spriteram->live();
/* create tilemaps */
- m_pant[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gaelco2_state::get_tile_info<0>),this),TILEMAP_SCAN_ROWS,16,16,64,32);
- m_pant[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gaelco2_state::get_tile_info<1>),this),TILEMAP_SCAN_ROWS,16,16,64,32);
+ m_pant[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gaelco2_state::get_tile_info<0>)), TILEMAP_SCAN_ROWS, 16,16, 64,32);
+ m_pant[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gaelco2_state::get_tile_info<1>)), TILEMAP_SCAN_ROWS, 16,16, 64,32);
/* set tilemap properties */
m_pant[0]->set_transparent_pen(0);
@@ -278,8 +278,8 @@ VIDEO_START_MEMBER(gaelco2_state,gaelco2_dual)
m_videoram = m_spriteram->live();
/* create tilemaps */
- m_pant[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gaelco2_state::get_tile_info_dual<0>),this),TILEMAP_SCAN_ROWS,16,16,64,32);
- m_pant[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gaelco2_state::get_tile_info_dual<1>),this),TILEMAP_SCAN_ROWS,16,16,64,32);
+ m_pant[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gaelco2_state::get_tile_info_dual<0>)), TILEMAP_SCAN_ROWS, 16,16, 64,32);
+ m_pant[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gaelco2_state::get_tile_info_dual<1>)), TILEMAP_SCAN_ROWS, 16,16, 64,32);
/* set tilemap properties */
m_pant[0]->set_transparent_pen(0);
diff --git a/src/mame/video/gaiden.cpp b/src/mame/video/gaiden.cpp
index 2dd404ec0b1..4deea34fe06 100644
--- a/src/mame/video/gaiden.cpp
+++ b/src/mame/video/gaiden.cpp
@@ -76,9 +76,9 @@ VIDEO_START_MEMBER(gaiden_state,gaiden)
m_screen->register_screen_bitmap(m_tile_bitmap_fg);
m_screen->register_screen_bitmap(m_tile_bitmap_tx);
- m_background = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gaiden_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
- m_foreground = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gaiden_state::get_fg_tile_info_raiga),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
- m_text_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gaiden_state::get_tx_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_background = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gaiden_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
+ m_foreground = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gaiden_state::get_fg_tile_info_raiga)), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
+ m_text_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gaiden_state::get_tx_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
// m_background->set_transparent_pen(0);
// m_foreground->set_transparent_pen(0);
@@ -100,9 +100,9 @@ VIDEO_START_MEMBER(gaiden_state,raiga)
m_screen->register_screen_bitmap(m_tile_bitmap_fg);
m_screen->register_screen_bitmap(m_tile_bitmap_tx);
- m_background = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gaiden_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
- m_foreground = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gaiden_state::get_fg_tile_info_raiga),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
- m_text_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gaiden_state::get_tx_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_background = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gaiden_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
+ m_foreground = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gaiden_state::get_fg_tile_info_raiga)), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
+ m_text_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gaiden_state::get_tx_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
// m_background->set_transparent_pen(0);
// m_foreground->set_transparent_pen(0);
@@ -116,9 +116,9 @@ VIDEO_START_MEMBER(gaiden_state,raiga)
VIDEO_START_MEMBER(gaiden_state,drgnbowl)
{
/* set up tile layers */
- m_background = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gaiden_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
- m_foreground = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gaiden_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
- m_text_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gaiden_state::get_tx_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_background = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gaiden_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
+ m_foreground = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gaiden_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
+ m_text_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gaiden_state::get_tx_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_foreground->set_transparent_pen(15);
m_text_layer->set_transparent_pen(15);
diff --git a/src/mame/video/galaga.cpp b/src/mame/video/galaga.cpp
index 7de370c1713..23fe7653665 100644
--- a/src/mame/video/galaga.cpp
+++ b/src/mame/video/galaga.cpp
@@ -41,271 +41,267 @@ There are 63 stars in each set, 126 displayed at any one time
galaga_state::star const galaga_state::s_star_seed_tab[252]=
{
-/* also shared by Bosconian */
-
-/* star set 0 */
-
-{0x0085,0x0006,0x35, 0x00},
-{0x008F,0x0008,0x30, 0x00},
-{0x00E5,0x001B,0x07, 0x00},
-{0x0022,0x001C,0x31, 0x00},
-{0x00E5,0x0025,0x1D, 0x00},
-{0x0015,0x0026,0x29, 0x00},
-{0x0080,0x002D,0x3B, 0x00},
-{0x0097,0x002E,0x1C, 0x00},
-{0x00BA,0x003B,0x05, 0x00},
-{0x0036,0x003D,0x36, 0x00},
-{0x0057,0x0044,0x09, 0x00},
-{0x00CF,0x0044,0x3D, 0x00},
-{0x0061,0x004E,0x27, 0x00},
-{0x0087,0x0064,0x1A, 0x00},
-{0x00D6,0x0064,0x17, 0x00},
-{0x000B,0x006C,0x3C, 0x00},
-{0x0006,0x006D,0x24, 0x00},
-{0x0018,0x006E,0x3A, 0x00},
-{0x00A9,0x0079,0x23, 0x00},
-{0x008A,0x007B,0x11, 0x00},
-{0x00D6,0x0080,0x0C, 0x00},
-{0x0067,0x0082,0x3F, 0x00},
-{0x0039,0x0083,0x38, 0x00},
-{0x0072,0x0083,0x14, 0x00},
-{0x00EC,0x0084,0x16, 0x00},
-{0x008E,0x0085,0x10, 0x00},
-{0x0020,0x0088,0x25, 0x00},
-{0x0095,0x008A,0x0F, 0x00},
-{0x000E,0x008D,0x00, 0x00},
-{0x0006,0x0091,0x2E, 0x00},
-{0x0007,0x0094,0x0D, 0x00},
-{0x00AE,0x0097,0x0B, 0x00},
-{0x0000,0x0098,0x2D, 0x00},
-{0x0086,0x009B,0x01, 0x00},
-{0x0058,0x00A1,0x34, 0x00},
-{0x00FE,0x00A1,0x3E, 0x00},
-{0x00A2,0x00A8,0x1F, 0x00},
-{0x0041,0x00AA,0x0A, 0x00},
-{0x003F,0x00AC,0x32, 0x00},
-{0x00DE,0x00AC,0x03, 0x00},
-{0x00D4,0x00B9,0x26, 0x00},
-{0x006D,0x00BB,0x1B, 0x00},
-{0x0062,0x00BD,0x39, 0x00},
-{0x00C9,0x00BE,0x18, 0x00},
-{0x006C,0x00C1,0x04, 0x00},
-{0x0059,0x00C3,0x21, 0x00},
-{0x0060,0x00CC,0x0E, 0x00},
-{0x0091,0x00CC,0x12, 0x00},
-{0x003F,0x00CF,0x06, 0x00},
-{0x00F7,0x00CF,0x22, 0x00},
-{0x0044,0x00D0,0x33, 0x00},
-{0x0034,0x00D2,0x08, 0x00},
-{0x00D3,0x00D9,0x20, 0x00},
-{0x0071,0x00DD,0x37, 0x00},
-{0x0073,0x00E1,0x2C, 0x00},
-{0x00B9,0x00E3,0x2F, 0x00},
-{0x00A9,0x00E4,0x13, 0x00},
-{0x00D3,0x00E7,0x19, 0x00},
-{0x0037,0x00ED,0x02, 0x00},
-{0x00BD,0x00F4,0x15, 0x00},
-{0x000F,0x00F6,0x28, 0x00},
-{0x004F,0x00F7,0x2B, 0x00},
-{0x00FB,0x00FF,0x2A, 0x00},
-
-/* star set 1 */
-
-{0x00FE,0x0004,0x3D, 0x01},
-{0x00C4,0x0006,0x10, 0x01},
-{0x001E,0x0007,0x2D, 0x01},
-{0x0083,0x000B,0x1F, 0x01},
-{0x002E,0x000D,0x3C, 0x01},
-{0x001F,0x000E,0x00, 0x01},
-{0x00D8,0x000E,0x2C, 0x01},
-{0x0003,0x000F,0x17, 0x01},
-{0x0095,0x0011,0x3F, 0x01},
-{0x006A,0x0017,0x35, 0x01},
-{0x00CC,0x0017,0x02, 0x01},
-{0x0000,0x0018,0x32, 0x01},
-{0x0092,0x001D,0x36, 0x01},
-{0x00E3,0x0021,0x04, 0x01},
-{0x002F,0x002D,0x37, 0x01},
-{0x00F0,0x002F,0x0C, 0x01},
-{0x009B,0x003E,0x06, 0x01},
-{0x00A4,0x004C,0x07, 0x01},
-{0x00EA,0x004D,0x13, 0x01},
-{0x0084,0x004E,0x21, 0x01},
-{0x0033,0x0052,0x0F, 0x01},
-{0x0070,0x0053,0x0E, 0x01},
-{0x0006,0x0059,0x08, 0x01},
-{0x0081,0x0060,0x28, 0x01},
-{0x0037,0x0061,0x29, 0x01},
-{0x008F,0x0067,0x2F, 0x01},
-{0x001B,0x006A,0x1D, 0x01},
-{0x00BF,0x007C,0x12, 0x01},
-{0x0051,0x007F,0x31, 0x01},
-{0x0061,0x0086,0x25, 0x01},
-{0x006A,0x008F,0x0D, 0x01},
-{0x006A,0x0091,0x19, 0x01},
-{0x0090,0x0092,0x05, 0x01},
-{0x003B,0x0096,0x24, 0x01},
-{0x008C,0x0097,0x0A, 0x01},
-{0x0006,0x0099,0x03, 0x01},
-{0x0038,0x0099,0x38, 0x01},
-{0x00A8,0x0099,0x18, 0x01},
-{0x0076,0x00A6,0x20, 0x01},
-{0x00AD,0x00A6,0x1C, 0x01},
-{0x00EC,0x00A6,0x1E, 0x01},
-{0x0086,0x00AC,0x15, 0x01},
-{0x0078,0x00AF,0x3E, 0x01},
-{0x007B,0x00B3,0x09, 0x01},
-{0x0027,0x00B8,0x39, 0x01},
-{0x0088,0x00C2,0x23, 0x01},
-{0x0044,0x00C3,0x3A, 0x01},
-{0x00CF,0x00C5,0x34, 0x01},
-{0x0035,0x00C9,0x30, 0x01},
-{0x006E,0x00D1,0x3B, 0x01},
-{0x00D6,0x00D7,0x16, 0x01},
-{0x003A,0x00D9,0x2B, 0x01},
-{0x00AB,0x00E0,0x11, 0x01},
-{0x00E0,0x00E2,0x1B, 0x01},
-{0x006F,0x00E6,0x0B, 0x01},
-{0x00B8,0x00E8,0x14, 0x01},
-{0x00D9,0x00E8,0x1A, 0x01},
-{0x00F9,0x00E8,0x22, 0x01},
-{0x0004,0x00F1,0x2E, 0x01},
-{0x0049,0x00F8,0x26, 0x01},
-{0x0010,0x00F9,0x01, 0x01},
-{0x0039,0x00FB,0x33, 0x01},
-{0x0028,0x00FC,0x27, 0x01},
-
-/* star set 2 */
-
-{0x00FA,0x0006,0x19, 0x02},
-{0x00E4,0x0007,0x2D, 0x02},
-{0x0072,0x000A,0x03, 0x02},
-{0x0084,0x001B,0x00, 0x02},
-{0x00BA,0x001D,0x29, 0x02},
-{0x00E3,0x0022,0x04, 0x02},
-{0x00D1,0x0026,0x2A, 0x02},
-{0x0089,0x0032,0x30, 0x02},
-{0x005B,0x0036,0x27, 0x02},
-{0x0084,0x003A,0x36, 0x02},
-{0x0053,0x003F,0x0D, 0x02},
-{0x0008,0x0040,0x1D, 0x02},
-{0x0055,0x0040,0x1A, 0x02},
-{0x00AA,0x0041,0x31, 0x02},
-{0x00FB,0x0041,0x2B, 0x02},
-{0x00BC,0x0046,0x16, 0x02},
-{0x0093,0x0052,0x39, 0x02},
-{0x00B9,0x0057,0x10, 0x02},
-{0x0054,0x0059,0x28, 0x02},
-{0x00E6,0x005A,0x01, 0x02},
-{0x00A7,0x005D,0x1B, 0x02},
-{0x002D,0x005E,0x35, 0x02},
-{0x0014,0x0062,0x21, 0x02},
-{0x0069,0x006D,0x1F, 0x02},
-{0x00CE,0x006F,0x0B, 0x02},
-{0x00DF,0x0075,0x2F, 0x02},
-{0x00CB,0x0077,0x12, 0x02},
-{0x004E,0x007C,0x23, 0x02},
-{0x004A,0x0084,0x0F, 0x02},
-{0x0012,0x0086,0x25, 0x02},
-{0x0068,0x008C,0x32, 0x02},
-{0x0003,0x0095,0x20, 0x02},
-{0x000A,0x009C,0x17, 0x02},
-{0x005B,0x00A3,0x08, 0x02},
-{0x005F,0x00A4,0x3E, 0x02},
-{0x0072,0x00A4,0x2E, 0x02},
-{0x00CC,0x00A6,0x06, 0x02},
-{0x008A,0x00AB,0x0C, 0x02},
-{0x00E0,0x00AD,0x26, 0x02},
-{0x00F3,0x00AF,0x0A, 0x02},
-{0x0075,0x00B4,0x13, 0x02},
-{0x0068,0x00B7,0x11, 0x02},
-{0x006D,0x00C2,0x2C, 0x02},
-{0x0076,0x00C3,0x14, 0x02},
-{0x00CF,0x00C4,0x1E, 0x02},
-{0x0004,0x00C5,0x1C, 0x02},
-{0x0013,0x00C6,0x3F, 0x02},
-{0x00B9,0x00C7,0x3C, 0x02},
-{0x0005,0x00D7,0x34, 0x02},
-{0x0095,0x00D7,0x3A, 0x02},
-{0x00FC,0x00D8,0x02, 0x02},
-{0x00E7,0x00DC,0x09, 0x02},
-{0x001D,0x00E1,0x05, 0x02},
-{0x0005,0x00E6,0x33, 0x02},
-{0x001C,0x00E9,0x3B, 0x02},
-{0x00A2,0x00ED,0x37, 0x02},
-{0x0028,0x00EE,0x07, 0x02},
-{0x00DD,0x00EF,0x18, 0x02},
-{0x006D,0x00F0,0x38, 0x02},
-{0x00A1,0x00F2,0x0E, 0x02},
-{0x0074,0x00F7,0x3D, 0x02},
-{0x0069,0x00F9,0x22, 0x02},
-{0x003F,0x00FF,0x24, 0x02},
-
-/* star set 3 */
-
-{0x0071,0x0010,0x34, 0x03},
-{0x00AF,0x0011,0x23, 0x03},
-{0x00A0,0x0014,0x26, 0x03},
-{0x0002,0x0017,0x02, 0x03},
-{0x004B,0x0019,0x31, 0x03},
-{0x0093,0x001C,0x0E, 0x03},
-{0x001B,0x001E,0x25, 0x03},
-{0x0032,0x0020,0x2E, 0x03},
-{0x00EE,0x0020,0x3A, 0x03},
-{0x0079,0x0022,0x2F, 0x03},
-{0x006C,0x0023,0x17, 0x03},
-{0x00BC,0x0025,0x11, 0x03},
-{0x0041,0x0029,0x30, 0x03},
-{0x001C,0x002E,0x32, 0x03},
-{0x00B9,0x0031,0x01, 0x03},
-{0x0083,0x0032,0x05, 0x03},
-{0x0095,0x003A,0x12, 0x03},
-{0x000D,0x003F,0x07, 0x03},
-{0x0020,0x0041,0x33, 0x03},
-{0x0092,0x0045,0x2C, 0x03},
-{0x00D4,0x0047,0x08, 0x03},
-{0x00A1,0x004B,0x2D, 0x03},
-{0x00D2,0x004B,0x3B, 0x03},
-{0x00D6,0x0052,0x24, 0x03},
-{0x009A,0x005F,0x1C, 0x03},
-{0x0016,0x0060,0x3D, 0x03},
-{0x001A,0x0063,0x1F, 0x03},
-{0x00CD,0x0066,0x28, 0x03},
-{0x00FF,0x0067,0x10, 0x03},
-{0x0035,0x0069,0x20, 0x03},
-{0x008F,0x006C,0x04, 0x03},
-{0x00CA,0x006C,0x2A, 0x03},
-{0x005A,0x0074,0x09, 0x03},
-{0x0060,0x0078,0x38, 0x03},
-{0x0072,0x0079,0x1E, 0x03},
-{0x0037,0x007F,0x29, 0x03},
-{0x0012,0x0080,0x14, 0x03},
-{0x0029,0x0082,0x2B, 0x03},
-{0x0084,0x0098,0x36, 0x03},
-{0x0032,0x0099,0x37, 0x03},
-{0x00BB,0x00A0,0x19, 0x03},
-{0x003E,0x00A3,0x3E, 0x03},
-{0x004A,0x00A6,0x1A, 0x03},
-{0x0029,0x00A7,0x21, 0x03},
-{0x009D,0x00B7,0x22, 0x03},
-{0x006C,0x00B9,0x15, 0x03},
-{0x000C,0x00C0,0x0A, 0x03},
-{0x00C2,0x00C3,0x0F, 0x03},
-{0x002F,0x00C9,0x0D, 0x03},
-{0x00D2,0x00CE,0x16, 0x03},
-{0x00F3,0x00CE,0x0B, 0x03},
-{0x0075,0x00CF,0x27, 0x03},
-{0x001A,0x00D5,0x35, 0x03},
-{0x0026,0x00D6,0x39, 0x03},
-{0x0080,0x00DA,0x3C, 0x03},
-{0x00A9,0x00DD,0x00, 0x03},
-{0x00BC,0x00EB,0x03, 0x03},
-{0x0032,0x00EF,0x1B, 0x03},
-{0x0067,0x00F0,0x3F, 0x03},
-{0x00EF,0x00F1,0x18, 0x03},
-{0x00A8,0x00F3,0x0C, 0x03},
-{0x00DE,0x00F9,0x1D, 0x03},
-{0x002C,0x00FA,0x13, 0x03}
+ // also shared by Bosconian
+
+ // star set 0
+ {0x0085, 0x0006, 0x35, 0x00},
+ {0x008f, 0x0008, 0x30, 0x00},
+ {0x00e5, 0x001b, 0x07, 0x00},
+ {0x0022, 0x001c, 0x31, 0x00},
+ {0x00e5, 0x0025, 0x1d, 0x00},
+ {0x0015, 0x0026, 0x29, 0x00},
+ {0x0080, 0x002d, 0x3b, 0x00},
+ {0x0097, 0x002e, 0x1c, 0x00},
+ {0x00ba, 0x003b, 0x05, 0x00},
+ {0x0036, 0x003d, 0x36, 0x00},
+ {0x0057, 0x0044, 0x09, 0x00},
+ {0x00cf, 0x0044, 0x3d, 0x00},
+ {0x0061, 0x004e, 0x27, 0x00},
+ {0x0087, 0x0064, 0x1a, 0x00},
+ {0x00d6, 0x0064, 0x17, 0x00},
+ {0x000b, 0x006c, 0x3c, 0x00},
+ {0x0006, 0x006d, 0x24, 0x00},
+ {0x0018, 0x006e, 0x3a, 0x00},
+ {0x00a9, 0x0079, 0x23, 0x00},
+ {0x008a, 0x007b, 0x11, 0x00},
+ {0x00d6, 0x0080, 0x0c, 0x00},
+ {0x0067, 0x0082, 0x3f, 0x00},
+ {0x0039, 0x0083, 0x38, 0x00},
+ {0x0072, 0x0083, 0x14, 0x00},
+ {0x00ec, 0x0084, 0x16, 0x00},
+ {0x008e, 0x0085, 0x10, 0x00},
+ {0x0020, 0x0088, 0x25, 0x00},
+ {0x0095, 0x008a, 0x0f, 0x00},
+ {0x000e, 0x008d, 0x00, 0x00},
+ {0x0006, 0x0091, 0x2e, 0x00},
+ {0x0007, 0x0094, 0x0d, 0x00},
+ {0x00ae, 0x0097, 0x0b, 0x00},
+ {0x0000, 0x0098, 0x2d, 0x00},
+ {0x0086, 0x009b, 0x01, 0x00},
+ {0x0058, 0x00a1, 0x34, 0x00},
+ {0x00fe, 0x00a1, 0x3e, 0x00},
+ {0x00a2, 0x00a8, 0x1f, 0x00},
+ {0x0041, 0x00aa, 0x0a, 0x00},
+ {0x003f, 0x00ac, 0x32, 0x00},
+ {0x00de, 0x00ac, 0x03, 0x00},
+ {0x00d4, 0x00b9, 0x26, 0x00},
+ {0x006d, 0x00bb, 0x1b, 0x00},
+ {0x0062, 0x00bd, 0x39, 0x00},
+ {0x00c9, 0x00be, 0x18, 0x00},
+ {0x006c, 0x00c1, 0x04, 0x00},
+ {0x0059, 0x00c3, 0x21, 0x00},
+ {0x0060, 0x00cc, 0x0e, 0x00},
+ {0x0091, 0x00cc, 0x12, 0x00},
+ {0x003f, 0x00cf, 0x06, 0x00},
+ {0x00f7, 0x00cf, 0x22, 0x00},
+ {0x0044, 0x00d0, 0x33, 0x00},
+ {0x0034, 0x00d2, 0x08, 0x00},
+ {0x00d3, 0x00d9, 0x20, 0x00},
+ {0x0071, 0x00dd, 0x37, 0x00},
+ {0x0073, 0x00e1, 0x2c, 0x00},
+ {0x00b9, 0x00e3, 0x2f, 0x00},
+ {0x00a9, 0x00e4, 0x13, 0x00},
+ {0x00d3, 0x00e7, 0x19, 0x00},
+ {0x0037, 0x00ed, 0x02, 0x00},
+ {0x00bd, 0x00f4, 0x15, 0x00},
+ {0x000f, 0x00f6, 0x28, 0x00},
+ {0x004f, 0x00f7, 0x2b, 0x00},
+ {0x00fb, 0x00ff, 0x2a, 0x00},
+
+ // star set 1
+ {0x00fe, 0x0004, 0x3d, 0x01},
+ {0x00c4, 0x0006, 0x10, 0x01},
+ {0x001e, 0x0007, 0x2d, 0x01},
+ {0x0083, 0x000b, 0x1f, 0x01},
+ {0x002e, 0x000d, 0x3c, 0x01},
+ {0x001f, 0x000e, 0x00, 0x01},
+ {0x00d8, 0x000e, 0x2c, 0x01},
+ {0x0003, 0x000f, 0x17, 0x01},
+ {0x0095, 0x0011, 0x3f, 0x01},
+ {0x006a, 0x0017, 0x35, 0x01},
+ {0x00cc, 0x0017, 0x02, 0x01},
+ {0x0000, 0x0018, 0x32, 0x01},
+ {0x0092, 0x001d, 0x36, 0x01},
+ {0x00e3, 0x0021, 0x04, 0x01},
+ {0x002f, 0x002d, 0x37, 0x01},
+ {0x00f0, 0x002f, 0x0c, 0x01},
+ {0x009b, 0x003e, 0x06, 0x01},
+ {0x00a4, 0x004c, 0x07, 0x01},
+ {0x00ea, 0x004d, 0x13, 0x01},
+ {0x0084, 0x004e, 0x21, 0x01},
+ {0x0033, 0x0052, 0x0f, 0x01},
+ {0x0070, 0x0053, 0x0e, 0x01},
+ {0x0006, 0x0059, 0x08, 0x01},
+ {0x0081, 0x0060, 0x28, 0x01},
+ {0x0037, 0x0061, 0x29, 0x01},
+ {0x008f, 0x0067, 0x2f, 0x01},
+ {0x001b, 0x006a, 0x1d, 0x01},
+ {0x00bf, 0x007c, 0x12, 0x01},
+ {0x0051, 0x007f, 0x31, 0x01},
+ {0x0061, 0x0086, 0x25, 0x01},
+ {0x006a, 0x008f, 0x0d, 0x01},
+ {0x006a, 0x0091, 0x19, 0x01},
+ {0x0090, 0x0092, 0x05, 0x01},
+ {0x003b, 0x0096, 0x24, 0x01},
+ {0x008c, 0x0097, 0x0a, 0x01},
+ {0x0006, 0x0099, 0x03, 0x01},
+ {0x0038, 0x0099, 0x38, 0x01},
+ {0x00a8, 0x0099, 0x18, 0x01},
+ {0x0076, 0x00a6, 0x20, 0x01},
+ {0x00ad, 0x00a6, 0x1c, 0x01},
+ {0x00ec, 0x00a6, 0x1e, 0x01},
+ {0x0086, 0x00ac, 0x15, 0x01},
+ {0x0078, 0x00af, 0x3e, 0x01},
+ {0x007b, 0x00b3, 0x09, 0x01},
+ {0x0027, 0x00b8, 0x39, 0x01},
+ {0x0088, 0x00c2, 0x23, 0x01},
+ {0x0044, 0x00c3, 0x3a, 0x01},
+ {0x00cf, 0x00c5, 0x34, 0x01},
+ {0x0035, 0x00c9, 0x30, 0x01},
+ {0x006e, 0x00d1, 0x3b, 0x01},
+ {0x00d6, 0x00d7, 0x16, 0x01},
+ {0x003a, 0x00d9, 0x2b, 0x01},
+ {0x00ab, 0x00e0, 0x11, 0x01},
+ {0x00e0, 0x00e2, 0x1b, 0x01},
+ {0x006f, 0x00e6, 0x0b, 0x01},
+ {0x00b8, 0x00e8, 0x14, 0x01},
+ {0x00d9, 0x00e8, 0x1a, 0x01},
+ {0x00f9, 0x00e8, 0x22, 0x01},
+ {0x0004, 0x00f1, 0x2e, 0x01},
+ {0x0049, 0x00f8, 0x26, 0x01},
+ {0x0010, 0x00f9, 0x01, 0x01},
+ {0x0039, 0x00fb, 0x33, 0x01},
+ {0x0028, 0x00fc, 0x27, 0x01},
+
+ // star set 2
+ {0x00fa, 0x0006, 0x19, 0x02},
+ {0x00e4, 0x0007, 0x2d, 0x02},
+ {0x0072, 0x000a, 0x03, 0x02},
+ {0x0084, 0x001b, 0x00, 0x02},
+ {0x00ba, 0x001d, 0x29, 0x02},
+ {0x00e3, 0x0022, 0x04, 0x02},
+ {0x00d1, 0x0026, 0x2a, 0x02},
+ {0x0089, 0x0032, 0x30, 0x02},
+ {0x005b, 0x0036, 0x27, 0x02},
+ {0x0084, 0x003a, 0x36, 0x02},
+ {0x0053, 0x003f, 0x0d, 0x02},
+ {0x0008, 0x0040, 0x1d, 0x02},
+ {0x0055, 0x0040, 0x1a, 0x02},
+ {0x00aa, 0x0041, 0x31, 0x02},
+ {0x00fb, 0x0041, 0x2b, 0x02},
+ {0x00bc, 0x0046, 0x16, 0x02},
+ {0x0093, 0x0052, 0x39, 0x02},
+ {0x00b9, 0x0057, 0x10, 0x02},
+ {0x0054, 0x0059, 0x28, 0x02},
+ {0x00e6, 0x005a, 0x01, 0x02},
+ {0x00a7, 0x005d, 0x1b, 0x02},
+ {0x002d, 0x005e, 0x35, 0x02},
+ {0x0014, 0x0062, 0x21, 0x02},
+ {0x0069, 0x006d, 0x1f, 0x02},
+ {0x00ce, 0x006f, 0x0b, 0x02},
+ {0x00df, 0x0075, 0x2f, 0x02},
+ {0x00cb, 0x0077, 0x12, 0x02},
+ {0x004e, 0x007c, 0x23, 0x02},
+ {0x004a, 0x0084, 0x0f, 0x02},
+ {0x0012, 0x0086, 0x25, 0x02},
+ {0x0068, 0x008c, 0x32, 0x02},
+ {0x0003, 0x0095, 0x20, 0x02},
+ {0x000a, 0x009c, 0x17, 0x02},
+ {0x005b, 0x00a3, 0x08, 0x02},
+ {0x005f, 0x00a4, 0x3e, 0x02},
+ {0x0072, 0x00a4, 0x2e, 0x02},
+ {0x00cc, 0x00a6, 0x06, 0x02},
+ {0x008a, 0x00ab, 0x0c, 0x02},
+ {0x00e0, 0x00ad, 0x26, 0x02},
+ {0x00f3, 0x00af, 0x0a, 0x02},
+ {0x0075, 0x00b4, 0x13, 0x02},
+ {0x0068, 0x00b7, 0x11, 0x02},
+ {0x006d, 0x00c2, 0x2c, 0x02},
+ {0x0076, 0x00c3, 0x14, 0x02},
+ {0x00cf, 0x00c4, 0x1e, 0x02},
+ {0x0004, 0x00c5, 0x1c, 0x02},
+ {0x0013, 0x00c6, 0x3f, 0x02},
+ {0x00b9, 0x00c7, 0x3c, 0x02},
+ {0x0005, 0x00d7, 0x34, 0x02},
+ {0x0095, 0x00d7, 0x3a, 0x02},
+ {0x00fc, 0x00d8, 0x02, 0x02},
+ {0x00e7, 0x00dc, 0x09, 0x02},
+ {0x001d, 0x00e1, 0x05, 0x02},
+ {0x0005, 0x00e6, 0x33, 0x02},
+ {0x001c, 0x00e9, 0x3b, 0x02},
+ {0x00a2, 0x00ed, 0x37, 0x02},
+ {0x0028, 0x00ee, 0x07, 0x02},
+ {0x00dd, 0x00ef, 0x18, 0x02},
+ {0x006d, 0x00f0, 0x38, 0x02},
+ {0x00a1, 0x00f2, 0x0e, 0x02},
+ {0x0074, 0x00f7, 0x3d, 0x02},
+ {0x0069, 0x00f9, 0x22, 0x02},
+ {0x003f, 0x00ff, 0x24, 0x02},
+
+ // star set 3
+ {0x0071, 0x0010, 0x34, 0x03},
+ {0x00af, 0x0011, 0x23, 0x03},
+ {0x00a0, 0x0014, 0x26, 0x03},
+ {0x0002, 0x0017, 0x02, 0x03},
+ {0x004b, 0x0019, 0x31, 0x03},
+ {0x0093, 0x001c, 0x0e, 0x03},
+ {0x001b, 0x001e, 0x25, 0x03},
+ {0x0032, 0x0020, 0x2e, 0x03},
+ {0x00ee, 0x0020, 0x3a, 0x03},
+ {0x0079, 0x0022, 0x2f, 0x03},
+ {0x006c, 0x0023, 0x17, 0x03},
+ {0x00bc, 0x0025, 0x11, 0x03},
+ {0x0041, 0x0029, 0x30, 0x03},
+ {0x001c, 0x002e, 0x32, 0x03},
+ {0x00b9, 0x0031, 0x01, 0x03},
+ {0x0083, 0x0032, 0x05, 0x03},
+ {0x0095, 0x003a, 0x12, 0x03},
+ {0x000d, 0x003f, 0x07, 0x03},
+ {0x0020, 0x0041, 0x33, 0x03},
+ {0x0092, 0x0045, 0x2c, 0x03},
+ {0x00d4, 0x0047, 0x08, 0x03},
+ {0x00a1, 0x004b, 0x2d, 0x03},
+ {0x00d2, 0x004b, 0x3b, 0x03},
+ {0x00d6, 0x0052, 0x24, 0x03},
+ {0x009a, 0x005f, 0x1c, 0x03},
+ {0x0016, 0x0060, 0x3d, 0x03},
+ {0x001a, 0x0063, 0x1f, 0x03},
+ {0x00cd, 0x0066, 0x28, 0x03},
+ {0x00ff, 0x0067, 0x10, 0x03},
+ {0x0035, 0x0069, 0x20, 0x03},
+ {0x008f, 0x006c, 0x04, 0x03},
+ {0x00ca, 0x006c, 0x2a, 0x03},
+ {0x005a, 0x0074, 0x09, 0x03},
+ {0x0060, 0x0078, 0x38, 0x03},
+ {0x0072, 0x0079, 0x1e, 0x03},
+ {0x0037, 0x007f, 0x29, 0x03},
+ {0x0012, 0x0080, 0x14, 0x03},
+ {0x0029, 0x0082, 0x2b, 0x03},
+ {0x0084, 0x0098, 0x36, 0x03},
+ {0x0032, 0x0099, 0x37, 0x03},
+ {0x00bb, 0x00a0, 0x19, 0x03},
+ {0x003e, 0x00a3, 0x3e, 0x03},
+ {0x004a, 0x00a6, 0x1a, 0x03},
+ {0x0029, 0x00a7, 0x21, 0x03},
+ {0x009d, 0x00b7, 0x22, 0x03},
+ {0x006c, 0x00b9, 0x15, 0x03},
+ {0x000c, 0x00c0, 0x0a, 0x03},
+ {0x00c2, 0x00c3, 0x0f, 0x03},
+ {0x002f, 0x00c9, 0x0d, 0x03},
+ {0x00d2, 0x00ce, 0x16, 0x03},
+ {0x00f3, 0x00ce, 0x0b, 0x03},
+ {0x0075, 0x00cf, 0x27, 0x03},
+ {0x001a, 0x00d5, 0x35, 0x03},
+ {0x0026, 0x00d6, 0x39, 0x03},
+ {0x0080, 0x00da, 0x3c, 0x03},
+ {0x00a9, 0x00dd, 0x00, 0x03},
+ {0x00bc, 0x00eb, 0x03, 0x03},
+ {0x0032, 0x00ef, 0x1b, 0x03},
+ {0x0067, 0x00f0, 0x3f, 0x03},
+ {0x00ef, 0x00f1, 0x18, 0x03},
+ {0x00a8, 0x00f3, 0x0c, 0x03},
+ {0x00de, 0x00f9, 0x1d, 0x03},
+ {0x002c, 0x00fa, 0x13, 0x03}
};
@@ -523,7 +519,7 @@ TILE_GET_INFO_MEMBER(galaga_state::get_tile_info)
VIDEO_START_MEMBER(galaga_state,galaga)
{
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(galaga_state::get_tile_info),this),tilemap_mapper_delegate(FUNC(galaga_state::tilemap_scan),this),8,8,36,28);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(galaga_state::get_tile_info)), tilemap_mapper_delegate(*this, FUNC(galaga_state::tilemap_scan)), 8,8,36,28);
m_fg_tilemap->configure_groups(*m_gfxdecode->gfx(0), 0x1f);
m_galaga_gfxbank = 0;
diff --git a/src/mame/video/galaxia.cpp b/src/mame/video/galaxia.cpp
index bbb46547e2b..e156580afb2 100644
--- a/src/mame/video/galaxia.cpp
+++ b/src/mame/video/galaxia.cpp
@@ -87,7 +87,7 @@ VIDEO_START_MEMBER(galaxia_state,galaxia)
{
init_common();
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(galaxia_state::get_galaxia_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(galaxia_state::get_galaxia_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_bg_tilemap->set_transparent_pen(0);
m_bg_tilemap->set_scroll_cols(8);
@@ -97,7 +97,7 @@ VIDEO_START_MEMBER(galaxia_state,astrowar)
{
init_common();
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(galaxia_state::get_astrowar_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(galaxia_state::get_astrowar_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_bg_tilemap->set_transparent_pen(0);
m_bg_tilemap->set_scroll_cols(8);
m_bg_tilemap->set_scrolldx(8, 8);
diff --git a/src/mame/video/galaxian.cpp b/src/mame/video/galaxian.cpp
index f3a192ad024..d4319477c6b 100644
--- a/src/mame/video/galaxian.cpp
+++ b/src/mame/video/galaxian.cpp
@@ -390,13 +390,13 @@ void galaxian_state::video_start()
if (!m_sfx_tilemap)
{
/* normal galaxian hardware is row-based and individually scrolling columns */
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(galaxian_state::bg_get_tile_info),this), TILEMAP_SCAN_ROWS, m_x_scale*8,8, 32,32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(galaxian_state::bg_get_tile_info)), TILEMAP_SCAN_ROWS, m_x_scale*8,8, 32,32);
m_bg_tilemap->set_scroll_cols(32);
}
else
{
/* sfx hardware is column-based and individually scrolling rows */
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(galaxian_state::bg_get_tile_info),this), TILEMAP_SCAN_COLS, m_x_scale*8,8, 32,32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(galaxian_state::bg_get_tile_info)), TILEMAP_SCAN_COLS, m_x_scale*8,8, 32,32);
m_bg_tilemap->set_scroll_rows(32);
}
m_bg_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/galaxold.cpp b/src/mame/video/galaxold.cpp
index 1303291335f..c9c9676330e 100644
--- a/src/mame/video/galaxold.cpp
+++ b/src/mame/video/galaxold.cpp
@@ -385,7 +385,7 @@ void galaxold_state::video_start_common()
VIDEO_START_MEMBER(galaxold_state,galaxold_plain)
{
video_start_common();
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(galaxold_state::get_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(galaxold_state::get_tile_info)), TILEMAP_SCAN_ROWS,8,8,32,32);
m_bg_tilemap->set_transparent_pen(0);
m_bg_tilemap->set_scroll_cols(32);
@@ -581,7 +581,7 @@ void galaxold_state::rockclim_modify_spritecode(uint8_t *spriteram, int *code, i
VIDEO_START_MEMBER(galaxold_state,rockclim)
{
VIDEO_START_CALL_MEMBER(galaxold);
- m_rockclim_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(galaxold_state::rockclim_get_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,32);
+ m_rockclim_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(galaxold_state::rockclim_get_tile_info)), TILEMAP_SCAN_ROWS,8,8,64,32);
m_draw_background = &galaxold_state::rockclim_draw_background;
m_modify_charcode = &galaxold_state::mooncrst_modify_charcode;
@@ -608,7 +608,7 @@ TILE_GET_INFO_MEMBER(galaxold_state::drivfrcg_get_tile_info)
VIDEO_START_MEMBER(galaxold_state,drivfrcg)
{
video_start_common();
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(galaxold_state::drivfrcg_get_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(galaxold_state::drivfrcg_get_tile_info)), TILEMAP_SCAN_ROWS,8,8,32,32);
m_bg_tilemap->set_transparent_pen(0);
m_bg_tilemap->set_scroll_cols(32);
@@ -622,7 +622,7 @@ VIDEO_START_MEMBER(galaxold_state,drivfrcg)
VIDEO_START_MEMBER(galaxold_state,ad2083)
{
video_start_common();
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(galaxold_state::drivfrcg_get_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(galaxold_state::drivfrcg_get_tile_info)), TILEMAP_SCAN_ROWS,8,8,32,32);
m_bg_tilemap->set_transparent_pen(0);
m_bg_tilemap->set_scroll_cols(32);
@@ -658,7 +658,7 @@ TILE_GET_INFO_MEMBER(galaxold_state::racknrol_get_tile_info)
VIDEO_START_MEMBER(galaxold_state,racknrol)
{
video_start_common();
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(galaxold_state::racknrol_get_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(galaxold_state::racknrol_get_tile_info)), TILEMAP_SCAN_ROWS,8,8,32,32);
m_bg_tilemap->set_transparent_pen(0);
m_bg_tilemap->set_scroll_cols(32);
@@ -689,7 +689,7 @@ void galaxold_state::harem_modify_spritecode(uint8_t *spriteram, int *code, int
VIDEO_START_MEMBER(galaxold_state,harem)
{
video_start_common();
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(galaxold_state::harem_get_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(galaxold_state::harem_get_tile_info)), TILEMAP_SCAN_ROWS,8,8,32,32);
// m_bg_tilemap->set_transparent_pen(0); // opaque tilemap to get sky and sand colors
m_bg_tilemap->set_scroll_cols(32);
@@ -757,7 +757,7 @@ VIDEO_START_MEMBER(galaxold_state,dambustr)
/* make a copy of the tilemap to emulate background priority */
m_dambustr_videoram2 = std::make_unique<uint8_t[]>(0x0400);
- m_dambustr_tilemap2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(galaxold_state::dambustr_get_tile_info2),this),TILEMAP_SCAN_ROWS,8,8,32,32);
+ m_dambustr_tilemap2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(galaxold_state::dambustr_get_tile_info2)), TILEMAP_SCAN_ROWS,8,8,32,32);
m_dambustr_tilemap2->set_transparent_pen(0);
}
diff --git a/src/mame/video/galivan.cpp b/src/mame/video/galivan.cpp
index 747a026bfed..c66eabe36d1 100644
--- a/src/mame/video/galivan.cpp
+++ b/src/mame/video/galivan.cpp
@@ -163,16 +163,16 @@ TILE_GET_INFO_MEMBER(galivan_state::ninjemak_get_tx_tile_info)
VIDEO_START_MEMBER(galivan_state,galivan)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(galivan_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 128, 128);
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(galivan_state::get_tx_tile_info),this), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(galivan_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 128, 128);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(galivan_state::get_tx_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
m_tx_tilemap->set_transparent_pen(15);
}
VIDEO_START_MEMBER(galivan_state,ninjemak)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(galivan_state::ninjemak_get_bg_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 512, 32);
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(galivan_state::ninjemak_get_tx_tile_info),this), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(galivan_state::ninjemak_get_bg_tile_info)), TILEMAP_SCAN_COLS, 16, 16, 512, 32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(galivan_state::ninjemak_get_tx_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
m_tx_tilemap->set_transparent_pen(15);
}
diff --git a/src/mame/video/gaplus.cpp b/src/mame/video/gaplus.cpp
index 875affd31da..6f0c8bbff8b 100644
--- a/src/mame/video/gaplus.cpp
+++ b/src/mame/video/gaplus.cpp
@@ -171,7 +171,7 @@ void gaplus_base_state::starfield_init()
void gaplus_base_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gaplus_state::get_tile_info),this),tilemap_mapper_delegate(FUNC(gaplus_state::tilemap_scan),this),8,8,36,28);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gaplus_state::get_tile_info)), tilemap_mapper_delegate(*this, FUNC(gaplus_state::tilemap_scan)), 8,8,36,28);
m_bg_tilemap->configure_groups(*m_gfxdecode->gfx(0), 0xff);
diff --git a/src/mame/video/gatron.cpp b/src/mame/video/gatron.cpp
index cd47ecae741..822627e7287 100644
--- a/src/mame/video/gatron.cpp
+++ b/src/mame/video/gatron.cpp
@@ -47,7 +47,7 @@ void gatron_state::video_start()
{
m_lamps.resolve();
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gatron_state::get_bg_tile_info), this), TILEMAP_SCAN_COLS, 8, 16, 48, 16);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gatron_state::get_bg_tile_info)), TILEMAP_SCAN_COLS, 8, 16, 48, 16);
}
uint32_t gatron_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
diff --git a/src/mame/video/gberet.cpp b/src/mame/video/gberet.cpp
index f2affc95070..9a6f84bfc23 100644
--- a/src/mame/video/gberet.cpp
+++ b/src/mame/video/gberet.cpp
@@ -111,7 +111,7 @@ TILE_GET_INFO_MEMBER(gberet_state::get_bg_tile_info)
VIDEO_START_MEMBER(gberet_state,gberet)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gberet_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gberet_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_bg_tilemap->configure_groups(*m_gfxdecode->gfx(0), 0x10);
m_bg_tilemap->set_scroll_rows(32);
}
diff --git a/src/mame/video/gcpinbal.cpp b/src/mame/video/gcpinbal.cpp
index fd564330797..f6a87c0901b 100644
--- a/src/mame/video/gcpinbal.cpp
+++ b/src/mame/video/gcpinbal.cpp
@@ -41,9 +41,9 @@ void gcpinbal_state::video_start()
int xoffs = 0;
int yoffs = 0;
- m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gcpinbal_state::get_bg0_tile_info),this),TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gcpinbal_state::get_bg1_tile_info),this),TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- m_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gcpinbal_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gcpinbal_state::get_bg0_tile_info)),TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gcpinbal_state::get_bg1_tile_info)),TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gcpinbal_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
m_tilemap[0]->set_transparent_pen(0);
m_tilemap[1]->set_transparent_pen(0);
diff --git a/src/mame/video/ginganin.cpp b/src/mame/video/ginganin.cpp
index 2b99a30d27d..c9b17e491fb 100644
--- a/src/mame/video/ginganin.cpp
+++ b/src/mame/video/ginganin.cpp
@@ -132,9 +132,9 @@ void ginganin_state::txtram_w(offs_t offset, u16 data, u16 mem_mask)
void ginganin_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ginganin_state::get_bg_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, BG_NX, BG_NY);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ginganin_state::get_fg_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, FG_NX, FG_NY);
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ginganin_state::get_txt_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, TXT_NX, TXT_NY);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ginganin_state::get_bg_tile_info)), TILEMAP_SCAN_COLS, 16, 16, BG_NX, BG_NY);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ginganin_state::get_fg_tile_info)), TILEMAP_SCAN_COLS, 16, 16, FG_NX, FG_NY);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ginganin_state::get_txt_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, TXT_NX, TXT_NY);
m_fg_tilemap->set_transparent_pen(15);
m_tx_tilemap->set_transparent_pen(15);
diff --git a/src/mame/video/gladiatr.cpp b/src/mame/video/gladiatr.cpp
index 016b325d02b..c977b7f5945 100644
--- a/src/mame/video/gladiatr.cpp
+++ b/src/mame/video/gladiatr.cpp
@@ -44,8 +44,8 @@ TILE_GET_INFO_MEMBER(gladiatr_state_base::fg_get_tile_info)
VIDEO_START_MEMBER(ppking_state,ppking)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ppking_state::bg_get_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,64);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ppking_state::fg_get_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,64);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ppking_state::bg_get_tile_info)), TILEMAP_SCAN_ROWS,8,8,32,64);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ppking_state::fg_get_tile_info)), TILEMAP_SCAN_ROWS,8,8,32,64);
m_fg_tilemap->set_transparent_pen(0);
@@ -61,8 +61,8 @@ VIDEO_START_MEMBER(ppking_state,ppking)
VIDEO_START_MEMBER(gladiatr_state,gladiatr)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gladiatr_state::bg_get_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gladiatr_state::fg_get_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gladiatr_state::bg_get_tile_info)), TILEMAP_SCAN_ROWS,8,8,64,32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gladiatr_state::fg_get_tile_info)), TILEMAP_SCAN_ROWS,8,8,64,32);
m_fg_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/glass.cpp b/src/mame/video/glass.cpp
index 9006aa42ca8..dce9c9079aa 100644
--- a/src/mame/video/glass.cpp
+++ b/src/mame/video/glass.cpp
@@ -112,8 +112,8 @@ WRITE16_MEMBER(glass_state::vram_w)
void glass_state::video_start()
{
- m_pant[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(glass_state::get_tile_info<0>),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- m_pant[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(glass_state::get_tile_info<1>),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_pant[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(glass_state::get_tile_info<0>)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_pant[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(glass_state::get_tile_info<1>)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
m_screen_bitmap = std::make_unique<bitmap_ind16>(320, 200);
save_item(NAME(*m_screen_bitmap));
diff --git a/src/mame/video/gng.cpp b/src/mame/video/gng.cpp
index 4dc7a7d08b7..8fbed82cb64 100644
--- a/src/mame/video/gng.cpp
+++ b/src/mame/video/gng.cpp
@@ -47,12 +47,12 @@ TILE_GET_INFO_MEMBER(gng_state::get_bg_tile_info)
void gng_state::video_start()
{
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gng_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gng_state::get_bg_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gng_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gng_state::get_bg_tile_info)), TILEMAP_SCAN_COLS, 16, 16, 32, 32);
m_fg_tilemap->set_transparent_pen(3);
- m_bg_tilemap->set_transmask(0, 0xff, 0x00); /* split type 0 is totally transparent in front half */
- m_bg_tilemap->set_transmask(1, 0x41, 0xbe); /* split type 1 has pens 0 and 6 transparent in front half */
+ m_bg_tilemap->set_transmask(0, 0xff, 0x00); // split type 0 is totally transparent in front half
+ m_bg_tilemap->set_transmask(1, 0x41, 0xbe); // split type 1 has pens 0 and 6 transparent in front half
}
diff --git a/src/mame/video/goal92.cpp b/src/mame/video/goal92.cpp
index 87f4d0cba84..c7c942411a7 100644
--- a/src/mame/video/goal92.cpp
+++ b/src/mame/video/goal92.cpp
@@ -132,9 +132,9 @@ void goal92_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect
void goal92_state::video_start()
{
- m_bg_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(goal92_state::get_back_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- m_fg_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(goal92_state::get_fore_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- m_tx_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(goal92_state::get_text_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(goal92_state::get_back_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_fg_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(goal92_state::get_fore_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_tx_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(goal92_state::get_text_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_buffered_spriteram = std::make_unique<uint16_t[]>(0x400 * 2);
save_pointer(NAME(m_buffered_spriteram), 0x400 * 2);
diff --git a/src/mame/video/goindol.cpp b/src/mame/video/goindol.cpp
index a4c8752e2f8..800fa01eaba 100644
--- a/src/mame/video/goindol.cpp
+++ b/src/mame/video/goindol.cpp
@@ -47,8 +47,8 @@ TILE_GET_INFO_MEMBER(goindol_state::get_bg_tile_info)
void goindol_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(goindol_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(goindol_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(goindol_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(goindol_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(0);
}
diff --git a/src/mame/video/goldstar.cpp b/src/mame/video/goldstar.cpp
index 7ab78f486d2..e2e9ba3b215 100644
--- a/src/mame/video/goldstar.cpp
+++ b/src/mame/video/goldstar.cpp
@@ -105,15 +105,15 @@ TILE_GET_INFO_MEMBER(goldstar_state::get_goldstar_reel3_tile_info)
VIDEO_START_MEMBER(goldstar_state, goldstar)
{
- m_reel1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(goldstar_state::get_goldstar_reel1_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 64, 8);
- m_reel2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(goldstar_state::get_goldstar_reel2_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 64, 8);
- m_reel3_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(goldstar_state::get_goldstar_reel3_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 64, 8);
+ m_reel1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(goldstar_state::get_goldstar_reel1_tile_info)), TILEMAP_SCAN_ROWS, 8,32, 64, 8);
+ m_reel2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(goldstar_state::get_goldstar_reel2_tile_info)), TILEMAP_SCAN_ROWS, 8,32, 64, 8);
+ m_reel3_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(goldstar_state::get_goldstar_reel3_tile_info)), TILEMAP_SCAN_ROWS, 8,32, 64, 8);
m_reel1_tilemap->set_scroll_cols(64);
m_reel2_tilemap->set_scroll_cols(64);
m_reel3_tilemap->set_scroll_cols(64);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(goldstar_state::get_goldstar_fg_tile_info),this),TILEMAP_SCAN_ROWS,8,8, 64, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(goldstar_state::get_goldstar_fg_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 64, 32);
m_fg_tilemap->set_transparent_pen(0);
// is there an enable reg for this game?
@@ -122,9 +122,9 @@ VIDEO_START_MEMBER(goldstar_state, goldstar)
VIDEO_START_MEMBER(goldstar_state, cherrym)
{
- m_reel1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(goldstar_state::get_goldstar_reel1_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 64, 8);
- m_reel2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(goldstar_state::get_goldstar_reel2_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 64, 8);
- m_reel3_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(goldstar_state::get_goldstar_reel3_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 64, 8);
+ m_reel1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(goldstar_state::get_goldstar_reel1_tile_info)), TILEMAP_SCAN_ROWS, 8,32, 64, 8);
+ m_reel2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(goldstar_state::get_goldstar_reel2_tile_info)), TILEMAP_SCAN_ROWS, 8,32, 64, 8);
+ m_reel3_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(goldstar_state::get_goldstar_reel3_tile_info)), TILEMAP_SCAN_ROWS, 8,32, 64, 8);
m_reel1_tilemap->set_scroll_cols(64);
m_reel2_tilemap->set_scroll_cols(64);
@@ -133,7 +133,7 @@ VIDEO_START_MEMBER(goldstar_state, cherrym)
m_cmaster_girl_num = 0;
m_cmaster_girl_pal = 0;
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(goldstar_state::get_cherrym_fg_tile_info),this),TILEMAP_SCAN_ROWS,8,8, 64, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(goldstar_state::get_cherrym_fg_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 64, 32);
m_fg_tilemap->set_transparent_pen(0);
m_cm_enable_reg = 0x0b;
@@ -347,11 +347,11 @@ TILE_GET_INFO_MEMBER(wingco_state::get_magical_fg_tile_info)
VIDEO_START_MEMBER(wingco_state, bingowng)
{
- m_reel1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(wingco_state::get_goldstar_reel1_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 64, 8);
+ m_reel1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(wingco_state::get_goldstar_reel1_tile_info)), TILEMAP_SCAN_ROWS, 8,32, 64, 8);
m_reel1_tilemap->set_scroll_cols(64);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(wingco_state::get_goldstar_fg_tile_info),this),TILEMAP_SCAN_ROWS,8,8, 64, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(wingco_state::get_goldstar_fg_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 64, 32);
m_fg_tilemap->set_transparent_pen(0);
// is there an enable reg for this game?
@@ -360,15 +360,15 @@ VIDEO_START_MEMBER(wingco_state, bingowng)
VIDEO_START_MEMBER(wingco_state, magical)
{
- m_reel1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(wingco_state::get_goldstar_reel1_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 64, 8);
- m_reel2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(wingco_state::get_goldstar_reel2_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 64, 8);
- m_reel3_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(wingco_state::get_goldstar_reel3_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 64, 8);
+ m_reel1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(wingco_state::get_goldstar_reel1_tile_info)), TILEMAP_SCAN_ROWS, 8,32, 64, 8);
+ m_reel2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(wingco_state::get_goldstar_reel2_tile_info)), TILEMAP_SCAN_ROWS, 8,32, 64, 8);
+ m_reel3_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(wingco_state::get_goldstar_reel3_tile_info)), TILEMAP_SCAN_ROWS, 8,32, 64, 8);
m_reel1_tilemap->set_scroll_cols(32);
m_reel2_tilemap->set_scroll_cols(32);
m_reel3_tilemap->set_scroll_cols(32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(wingco_state::get_magical_fg_tile_info),this),TILEMAP_SCAN_ROWS,8,8, 64, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(wingco_state::get_magical_fg_tile_info)),TILEMAP_SCAN_ROWS, 8,8, 64,32);
m_fg_tilemap->set_transparent_pen(0);
// is there an enable reg for this game?
@@ -601,17 +601,17 @@ TILE_GET_INFO_MEMBER(sanghopm_state::get_reel3_tile_info)
VIDEO_START_MEMBER(sanghopm_state, sangho)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sanghopm_state::get_bg_tile_info),this),TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sanghopm_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
- m_reel1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sanghopm_state::get_reel1_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 64, 8);
- m_reel2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sanghopm_state::get_reel2_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 64, 8);
- m_reel3_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sanghopm_state::get_reel3_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 64, 8);
+ m_reel1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sanghopm_state::get_reel1_tile_info)), TILEMAP_SCAN_ROWS, 8,32, 64, 8);
+ m_reel2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sanghopm_state::get_reel2_tile_info)), TILEMAP_SCAN_ROWS, 8,32, 64, 8);
+ m_reel3_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sanghopm_state::get_reel3_tile_info)), TILEMAP_SCAN_ROWS, 8,32, 64, 8);
m_reel1_tilemap->set_scroll_cols(64);
m_reel2_tilemap->set_scroll_cols(64);
m_reel3_tilemap->set_scroll_cols(64);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sanghopm_state::get_fg_tile_info),this),TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sanghopm_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_fg_tilemap->set_transparent_pen(0);
}
@@ -706,9 +706,9 @@ TILE_GET_INFO_MEMBER(unkch_state::get_reel3_tile_info)
VIDEO_START_MEMBER(unkch_state, unkch)
{
- m_reel1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(unkch_state::get_reel1_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 64, 8);
- m_reel2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(unkch_state::get_reel2_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 64, 8);
- m_reel3_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(unkch_state::get_reel3_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 64, 8);
+ m_reel1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(unkch_state::get_reel1_tile_info)), TILEMAP_SCAN_ROWS, 8,32, 64, 8);
+ m_reel2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(unkch_state::get_reel2_tile_info)), TILEMAP_SCAN_ROWS, 8,32, 64, 8);
+ m_reel3_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(unkch_state::get_reel3_tile_info)), TILEMAP_SCAN_ROWS, 8,32, 64, 8);
m_reel1_tilemap->set_scroll_cols(32);
m_reel2_tilemap->set_scroll_cols(32);
@@ -718,7 +718,7 @@ VIDEO_START_MEMBER(unkch_state, unkch)
m_cmaster_girl_pal = 0;
m_vidreg = 0x00;
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(unkch_state::get_cherrym_fg_tile_info),this),TILEMAP_SCAN_ROWS,8,8, 64, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(unkch_state::get_cherrym_fg_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 64, 32);
m_fg_tilemap->set_transparent_pen(0);
m_cm_enable_reg = 0x0b;
diff --git a/src/mame/video/gomoku.cpp b/src/mame/video/gomoku.cpp
index b2f697b8035..01c5d28f1e0 100644
--- a/src/mame/video/gomoku.cpp
+++ b/src/mame/video/gomoku.cpp
@@ -114,7 +114,7 @@ void gomoku_state::video_start()
m_screen->register_screen_bitmap(m_bg_bitmap);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gomoku_state::get_fg_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gomoku_state::get_fg_tile_info)),TILEMAP_SCAN_ROWS,8,8,32, 32);
m_fg_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/gotcha.cpp b/src/mame/video/gotcha.cpp
index 14b722c021f..6493c335ddf 100644
--- a/src/mame/video/gotcha.cpp
+++ b/src/mame/video/gotcha.cpp
@@ -43,8 +43,8 @@ TILE_GET_INFO_MEMBER(gotcha_state::bg_get_tile_info)
void gotcha_state::video_start()
{
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gotcha_state::fg_get_tile_info),this), tilemap_mapper_delegate(FUNC(gotcha_state::gotcha_tilemap_scan),this), 16, 16, 64, 32);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gotcha_state::bg_get_tile_info),this), tilemap_mapper_delegate(FUNC(gotcha_state::gotcha_tilemap_scan),this), 16, 16, 64, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gotcha_state::fg_get_tile_info)), tilemap_mapper_delegate(*this, FUNC(gotcha_state::gotcha_tilemap_scan)), 16, 16, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gotcha_state::bg_get_tile_info)), tilemap_mapper_delegate(*this, FUNC(gotcha_state::gotcha_tilemap_scan)), 16, 16, 64, 32);
m_fg_tilemap->set_transparent_pen(0);
@@ -97,9 +97,6 @@ WRITE16_MEMBER(gotcha_state::gotcha_scroll_w)
}
-
-
-
uint32_t gotcha_state::screen_update_gotcha(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
diff --git a/src/mame/video/gottlieb.cpp b/src/mame/video/gottlieb.cpp
index f108ad2c512..e79cab815e3 100644
--- a/src/mame/video/gottlieb.cpp
+++ b/src/mame/video/gottlieb.cpp
@@ -140,7 +140,7 @@ void gottlieb_state::video_start()
m_transparent0 = false;
/* configure the background tilemap */
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gottlieb_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gottlieb_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_bg_tilemap->set_transparent_pen(0);
/* save some state */
@@ -163,7 +163,7 @@ VIDEO_START_MEMBER(gottlieb_state,screwloo)
m_transparent0 = false;
/* configure the background tilemap */
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gottlieb_state::get_screwloo_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gottlieb_state::get_screwloo_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_bg_tilemap->set_transparent_pen(0);
/* save some state */
diff --git a/src/mame/video/gotya.cpp b/src/mame/video/gotya.cpp
index 473676eef7e..f6953cc034a 100644
--- a/src/mame/video/gotya.cpp
+++ b/src/mame/video/gotya.cpp
@@ -104,7 +104,7 @@ TILEMAP_MAPPER_MEMBER(gotya_state::tilemap_scan_rows_thehand)
void gotya_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gotya_state::get_bg_tile_info),this), tilemap_mapper_delegate(FUNC(gotya_state::tilemap_scan_rows_thehand),this), 8, 8, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gotya_state::get_bg_tile_info)), tilemap_mapper_delegate(*this, FUNC(gotya_state::tilemap_scan_rows_thehand)), 8, 8, 64, 32);
}
void gotya_state::draw_status_row( bitmap_ind16 &bitmap, const rectangle &cliprect, int sx, int col )
diff --git a/src/mame/video/gp9001.cpp b/src/mame/video/gp9001.cpp
index 78bd3202e8e..43ed591639e 100644
--- a/src/mame/video/gp9001.cpp
+++ b/src/mame/video/gp9001.cpp
@@ -213,6 +213,7 @@ gp9001vdp_device::gp9001vdp_device(const machine_config &mconfig, const char *ta
, m_space_config("gp9001vdp", ENDIANNESS_BIG, 16, 14, 0, address_map_constructor(FUNC(gp9001vdp_device::map), this))
, m_vram(*this, "vram_%u", 0)
, m_spriteram(*this, "spriteram")
+ , m_gp9001_cb(*this)
, m_vint_out_cb(*this)
{
}
@@ -258,9 +259,9 @@ void gp9001vdp_device::device_add_mconfig(machine_config &config)
void gp9001vdp_device::create_tilemaps()
{
- m_tm[2].tmap = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(gp9001vdp_device::get_tile_info<2>),this),TILEMAP_SCAN_ROWS,16,16,32,32);
- m_tm[1].tmap = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(gp9001vdp_device::get_tile_info<1>),this),TILEMAP_SCAN_ROWS,16,16,32,32);
- m_tm[0].tmap = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(gp9001vdp_device::get_tile_info<0>),this),TILEMAP_SCAN_ROWS,16,16,32,32);
+ m_tm[2].tmap = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(gp9001vdp_device::get_tile_info<2>)), TILEMAP_SCAN_ROWS, 16,16,32,32);
+ m_tm[1].tmap = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(gp9001vdp_device::get_tile_info<1>)), TILEMAP_SCAN_ROWS, 16,16,32,32);
+ m_tm[0].tmap = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(gp9001vdp_device::get_tile_info<0>)), TILEMAP_SCAN_ROWS, 16,16,32,32);
m_tm[2].tmap->set_transparent_pen(0);
m_tm[1].tmap->set_transparent_pen(0);
@@ -272,7 +273,7 @@ void gp9001vdp_device::device_start()
{
create_tilemaps();
- m_gp9001_cb.bind_relative_to(*owner());
+ m_gp9001_cb.resolve();
m_vint_out_cb.resolve();
m_raise_irq_timer = timer_alloc(TIMER_RAISE_IRQ);
diff --git a/src/mame/video/gp9001.h b/src/mame/video/gp9001.h
index d022f0ac5d4..2b737aba8f2 100644
--- a/src/mame/video/gp9001.h
+++ b/src/mame/video/gp9001.h
@@ -20,10 +20,11 @@ class gp9001vdp_device : public device_t,
};
public:
+ typedef device_delegate<void (u8 layer, u32 &code)> gp9001_cb_delegate;
+
gp9001vdp_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
- typedef device_delegate<void (u8 layer, u32 &code)> gp9001_cb_delegate;
- void set_tile_callback(gp9001_cb_delegate cb) { m_gp9001_cb = cb; }
+ template <typename... T> void set_tile_callback(T &&... args) { m_gp9001_cb.set(std::forward<T>(args)...); }
auto vint_out_cb() { return m_vint_out_cb.bind(); }
diff --git a/src/mame/video/grchamp.cpp b/src/mame/video/grchamp.cpp
index 03eb3b23b6f..377a077a9b7 100644
--- a/src/mame/video/grchamp.cpp
+++ b/src/mame/video/grchamp.cpp
@@ -101,10 +101,10 @@ void grchamp_state::video_start()
m_work_bitmap.allocate(32,32);
/* allocate tilemaps for each of the three sections */
- m_left_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(grchamp_state::get_left_tile_info),this), tilemap_mapper_delegate(FUNC(grchamp_state::get_memory_offset),this), 8,8, 64,32);
- m_text_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(grchamp_state::get_text_tile_info),this), TILEMAP_SCAN_ROWS, 8,8, 32,32);
- m_right_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(grchamp_state::get_right_tile_info),this), tilemap_mapper_delegate(FUNC(grchamp_state::get_memory_offset),this), 8,8, 64,32);
- m_center_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(grchamp_state::get_center_tile_info),this), tilemap_mapper_delegate(FUNC(grchamp_state::get_memory_offset),this), 8,8, 64,32);
+ m_left_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(grchamp_state::get_left_tile_info)), tilemap_mapper_delegate(*this, FUNC(grchamp_state::get_memory_offset)), 8,8, 64,32);
+ m_text_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(grchamp_state::get_text_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 32,32);
+ m_right_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(grchamp_state::get_right_tile_info)), tilemap_mapper_delegate(*this, FUNC(grchamp_state::get_memory_offset)), 8,8, 64,32);
+ m_center_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(grchamp_state::get_center_tile_info)), tilemap_mapper_delegate(*this, FUNC(grchamp_state::get_memory_offset)), 8,8, 64,32);
}
#if 0
diff --git a/src/mame/video/gsword.cpp b/src/mame/video/gsword.cpp
index 69436e9c790..d2967a6f44d 100644
--- a/src/mame/video/gsword.cpp
+++ b/src/mame/video/gsword.cpp
@@ -70,7 +70,7 @@ TILE_GET_INFO_MEMBER(gsword_state_base::get_bg_tile_info)
void gsword_state_base::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gsword_state_base::get_bg_tile_info),this), TILEMAP_SCAN_ROWS,
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gsword_state_base::get_bg_tile_info)), TILEMAP_SCAN_ROWS,
8, 8, 32, 64);
save_item(NAME(m_charbank));
diff --git a/src/mame/video/gumbo.cpp b/src/mame/video/gumbo.cpp
index 7124f587a3f..752b1b16258 100644
--- a/src/mame/video/gumbo.cpp
+++ b/src/mame/video/gumbo.cpp
@@ -34,8 +34,8 @@ TILE_GET_INFO_MEMBER(gumbo_state::get_gumbo_fg_tile_info)
void gumbo_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gumbo_state::get_gumbo_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gumbo_state::get_gumbo_fg_tile_info),this), TILEMAP_SCAN_ROWS, 4, 4, 128, 64);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gumbo_state::get_gumbo_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gumbo_state::get_gumbo_fg_tile_info)), TILEMAP_SCAN_ROWS, 4, 4, 128, 64);
m_fg_tilemap->set_transparent_pen(0xff);
}
diff --git a/src/mame/video/gundealr.cpp b/src/mame/video/gundealr.cpp
index c3d6c0edff8..645a7fe679d 100644
--- a/src/mame/video/gundealr.cpp
+++ b/src/mame/video/gundealr.cpp
@@ -52,8 +52,8 @@ TILE_GET_INFO_MEMBER(gundealr_state::get_fg_tile_info)
void gundealr_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gundealr_state::get_bg_tile_info),this), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gundealr_state::get_fg_tile_info),this), tilemap_mapper_delegate(FUNC(gundealr_state::pagescan),this), 16, 16, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gundealr_state::get_bg_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gundealr_state::get_fg_tile_info)), tilemap_mapper_delegate(*this, FUNC(gundealr_state::pagescan)), 16, 16, 64, 32);
m_fg_tilemap->set_transparent_pen(15);
}
diff --git a/src/mame/video/gunsmoke.cpp b/src/mame/video/gunsmoke.cpp
index 1706da7eda1..e5078d0f2d0 100644
--- a/src/mame/video/gunsmoke.cpp
+++ b/src/mame/video/gunsmoke.cpp
@@ -125,8 +125,8 @@ TILE_GET_INFO_MEMBER(gunsmoke_state::get_fg_tile_info)
void gunsmoke_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gunsmoke_state::get_bg_tile_info),this), TILEMAP_SCAN_COLS, 32, 32, 2048, 8);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gunsmoke_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gunsmoke_state::get_bg_tile_info)), TILEMAP_SCAN_COLS, 32, 32, 2048, 8);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gunsmoke_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fg_tilemap->configure_groups(*m_gfxdecode->gfx(0), 0x4f);
}
diff --git a/src/mame/video/gyruss.cpp b/src/mame/video/gyruss.cpp
index c4787fa72ee..772dd91d8a9 100644
--- a/src/mame/video/gyruss.cpp
+++ b/src/mame/video/gyruss.cpp
@@ -111,9 +111,9 @@ TILE_GET_INFO_MEMBER(gyruss_state::gyruss_get_tile_info)
void gyruss_state::video_start()
{
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gyruss_state::gyruss_get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_tilemap->set_transmask(0, 0x00, 0); /* opaque */
- m_tilemap->set_transmask(1, 0x0f, 0); /* transparent */
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gyruss_state::gyruss_get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_tilemap->set_transmask(0, 0x00, 0); // opaque
+ m_tilemap->set_transmask(1, 0x0f, 0); // transparent
save_item(NAME(m_flipscreen));
}
diff --git a/src/mame/video/hanaawas.cpp b/src/mame/video/hanaawas.cpp
index 2ac87f5288d..789c8bf30de 100644
--- a/src/mame/video/hanaawas.cpp
+++ b/src/mame/video/hanaawas.cpp
@@ -98,7 +98,7 @@ TILE_GET_INFO_MEMBER(hanaawas_state::get_bg_tile_info)
void hanaawas_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(hanaawas_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(hanaawas_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
uint32_t hanaawas_state::screen_update_hanaawas(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
diff --git a/src/mame/video/hcastle.cpp b/src/mame/video/hcastle.cpp
index 72deaece319..2b3b77641f6 100644
--- a/src/mame/video/hcastle.cpp
+++ b/src/mame/video/hcastle.cpp
@@ -105,8 +105,8 @@ TILE_GET_INFO_MEMBER(hcastle_state::get_bg_tile_info)
void hcastle_state::video_start()
{
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(hcastle_state::get_fg_tile_info),this), tilemap_mapper_delegate(FUNC(hcastle_state::tilemap_scan),this), 8, 8, 64, 32);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(hcastle_state::get_bg_tile_info),this), tilemap_mapper_delegate(FUNC(hcastle_state::tilemap_scan),this), 8, 8, 64, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(hcastle_state::get_fg_tile_info)), tilemap_mapper_delegate(*this, FUNC(hcastle_state::tilemap_scan)), 8, 8, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(hcastle_state::get_bg_tile_info)), tilemap_mapper_delegate(*this, FUNC(hcastle_state::tilemap_scan)), 8, 8, 64, 32);
m_fg_tilemap->set_transparent_pen(0);
}
diff --git a/src/mame/video/hexion.cpp b/src/mame/video/hexion.cpp
index 5750e538c59..cfaefbe9479 100644
--- a/src/mame/video/hexion.cpp
+++ b/src/mame/video/hexion.cpp
@@ -41,8 +41,8 @@ TILE_GET_INFO_MEMBER(hexion_state::get_tile_info1)
void hexion_state::video_start()
{
- m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(hexion_state::get_tile_info0),this),TILEMAP_SCAN_ROWS,8,8,64,32);
- m_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(hexion_state::get_tile_info1),this),TILEMAP_SCAN_ROWS, 8,8,64,32);
+ m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(hexion_state::get_tile_info0)), TILEMAP_SCAN_ROWS,8,8,64,32);
+ m_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(hexion_state::get_tile_info1)), TILEMAP_SCAN_ROWS, 8,8,64,32);
m_bg_tilemap[0]->set_transparent_pen(0);
m_bg_tilemap[1]->set_scrollx(0,-4);
diff --git a/src/mame/video/higemaru.cpp b/src/mame/video/higemaru.cpp
index 28087b2f83d..804fad9d572 100644
--- a/src/mame/video/higemaru.cpp
+++ b/src/mame/video/higemaru.cpp
@@ -96,7 +96,7 @@ TILE_GET_INFO_MEMBER(higemaru_state::get_bg_tile_info)
void higemaru_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(higemaru_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(higemaru_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
void higemaru_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect)
diff --git a/src/mame/video/himesiki.cpp b/src/mame/video/himesiki.cpp
index 4634790f8b6..cae38a0d302 100644
--- a/src/mame/video/himesiki.cpp
+++ b/src/mame/video/himesiki.cpp
@@ -24,7 +24,7 @@ TILE_GET_INFO_MEMBER(himesiki_state::get_bg_tile_info)
void himesiki_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(himesiki_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(himesiki_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
}
WRITE8_MEMBER(himesiki_state::himesiki_bg_ram_w)
diff --git a/src/mame/video/hng64.cpp b/src/mame/video/hng64.cpp
index 942bac2c7b3..a1efe3f845a 100644
--- a/src/mame/video/hng64.cpp
+++ b/src/mame/video/hng64.cpp
@@ -1271,21 +1271,21 @@ void hng64_state::video_start()
m_old_tileflags[2] = -1;
m_old_tileflags[3] = -1;
- m_tilemap[0].m_tilemap_8x8 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(hng64_state::get_hng64_tile0_8x8_info),this), TILEMAP_SCAN_ROWS, 8, 8, 128, 128); /* 128x128x4 = 0x10000 */
- m_tilemap[0].m_tilemap_16x16 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(hng64_state::get_hng64_tile0_16x16_info),this), TILEMAP_SCAN_ROWS, 16, 16, 128, 128); /* 128x128x4 = 0x10000 */
- m_tilemap[0].m_tilemap_16x16_alt = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(hng64_state::get_hng64_tile0_16x16_info),this), TILEMAP_SCAN_ROWS, 16, 16, 256, 64); /* 128x128x4 = 0x10000 */
+ m_tilemap[0].m_tilemap_8x8 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(hng64_state::get_hng64_tile0_8x8_info)), TILEMAP_SCAN_ROWS, 8, 8, 128, 128); // 128x128x4 = 0x10000
+ m_tilemap[0].m_tilemap_16x16 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(hng64_state::get_hng64_tile0_16x16_info)), TILEMAP_SCAN_ROWS, 16, 16, 128, 128); // 128x128x4 = 0x10000
+ m_tilemap[0].m_tilemap_16x16_alt = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(hng64_state::get_hng64_tile0_16x16_info)), TILEMAP_SCAN_ROWS, 16, 16, 256, 64); // 128x128x4 = 0x10000
- m_tilemap[1].m_tilemap_8x8 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(hng64_state::get_hng64_tile1_8x8_info),this), TILEMAP_SCAN_ROWS, 8, 8, 128, 128); /* 128x128x4 = 0x10000 */
- m_tilemap[1].m_tilemap_16x16 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(hng64_state::get_hng64_tile1_16x16_info),this), TILEMAP_SCAN_ROWS, 16, 16, 128, 128); /* 128x128x4 = 0x10000 */
- m_tilemap[1].m_tilemap_16x16_alt = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(hng64_state::get_hng64_tile1_16x16_info),this), TILEMAP_SCAN_ROWS, 16, 16, 256, 64); /* 128x128x4 = 0x10000 */
+ m_tilemap[1].m_tilemap_8x8 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(hng64_state::get_hng64_tile1_8x8_info)), TILEMAP_SCAN_ROWS, 8, 8, 128, 128); // 128x128x4 = 0x10000
+ m_tilemap[1].m_tilemap_16x16 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(hng64_state::get_hng64_tile1_16x16_info)), TILEMAP_SCAN_ROWS, 16, 16, 128, 128); // 128x128x4 = 0x10000
+ m_tilemap[1].m_tilemap_16x16_alt = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(hng64_state::get_hng64_tile1_16x16_info)), TILEMAP_SCAN_ROWS, 16, 16, 256, 64); // 128x128x4 = 0x10000
- m_tilemap[2].m_tilemap_8x8 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(hng64_state::get_hng64_tile2_8x8_info),this), TILEMAP_SCAN_ROWS, 8, 8, 128, 128); /* 128x128x4 = 0x10000 */
- m_tilemap[2].m_tilemap_16x16 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(hng64_state::get_hng64_tile2_16x16_info),this), TILEMAP_SCAN_ROWS, 16, 16, 128, 128); /* 128x128x4 = 0x10000 */
- m_tilemap[2].m_tilemap_16x16_alt = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(hng64_state::get_hng64_tile2_16x16_info),this), TILEMAP_SCAN_ROWS, 16, 16, 256, 64); /* 128x128x4 = 0x10000 */
+ m_tilemap[2].m_tilemap_8x8 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(hng64_state::get_hng64_tile2_8x8_info)), TILEMAP_SCAN_ROWS, 8, 8, 128, 128); // 128x128x4 = 0x10000
+ m_tilemap[2].m_tilemap_16x16 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(hng64_state::get_hng64_tile2_16x16_info)), TILEMAP_SCAN_ROWS, 16, 16, 128, 128); // 128x128x4 = 0x10000
+ m_tilemap[2].m_tilemap_16x16_alt = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(hng64_state::get_hng64_tile2_16x16_info)), TILEMAP_SCAN_ROWS, 16, 16, 256, 64); // 128x128x4 = 0x10000
- m_tilemap[3].m_tilemap_8x8 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(hng64_state::get_hng64_tile3_8x8_info),this), TILEMAP_SCAN_ROWS, 8, 8, 128, 128); /* 128x128x4 = 0x10000 */
- m_tilemap[3].m_tilemap_16x16 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(hng64_state::get_hng64_tile3_16x16_info),this), TILEMAP_SCAN_ROWS, 16, 16, 128, 128); /* 128x128x4 = 0x10000 */
- m_tilemap[3].m_tilemap_16x16_alt = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(hng64_state::get_hng64_tile3_16x16_info),this), TILEMAP_SCAN_ROWS, 16, 16, 256, 64); /* 128x128x4 = 0x10000 */
+ m_tilemap[3].m_tilemap_8x8 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(hng64_state::get_hng64_tile3_8x8_info)), TILEMAP_SCAN_ROWS, 8, 8, 128, 128); // 128x128x4 = 0x10000
+ m_tilemap[3].m_tilemap_16x16 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(hng64_state::get_hng64_tile3_16x16_info)), TILEMAP_SCAN_ROWS, 16, 16, 128, 128); // 128x128x4 = 0x10000
+ m_tilemap[3].m_tilemap_16x16_alt = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(hng64_state::get_hng64_tile3_16x16_info)), TILEMAP_SCAN_ROWS, 16, 16, 256, 64); // 128x128x4 = 0x10000
for (auto & elem : m_tilemap)
{
diff --git a/src/mame/video/holeland.cpp b/src/mame/video/holeland.cpp
index 3000a758edb..aed1f41b496 100644
--- a/src/mame/video/holeland.cpp
+++ b/src/mame/video/holeland.cpp
@@ -57,7 +57,7 @@ TILE_GET_INFO_MEMBER(holeland_state::crzrally_get_tile_info)
VIDEO_START_MEMBER(holeland_state,holeland)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(holeland_state::holeland_get_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(holeland_state::holeland_get_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
m_bg_tilemap->set_transmask(0, 0xff, 0x00); /* split type 0 is totally transparent in front half */
m_bg_tilemap->set_transmask(1, 0x01, 0xfe); /* split type 1 has pen 0? transparent in front half */
@@ -67,7 +67,7 @@ VIDEO_START_MEMBER(holeland_state,holeland)
VIDEO_START_MEMBER(holeland_state,crzrally)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(holeland_state::crzrally_get_tile_info),this), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(holeland_state::crzrally_get_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
save_item(NAME(m_palette_offset));
}
diff --git a/src/mame/video/homedata.cpp b/src/mame/video/homedata.cpp
index aec14eb5888..41b3bbfc7ce 100644
--- a/src/mame/video/homedata.cpp
+++ b/src/mame/video/homedata.cpp
@@ -612,10 +612,10 @@ TILE_GET_INFO_MEMBER(homedata_state::mirderby_get_info1_1)
VIDEO_START_MEMBER(homedata_state,mrokumei)
{
- m_bg_tilemap[0][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(homedata_state::mrokumei_get_info0_0),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32 );
- m_bg_tilemap[0][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(homedata_state::mrokumei_get_info0_1),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32 );
- m_bg_tilemap[1][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(homedata_state::mrokumei_get_info1_0),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32 );
- m_bg_tilemap[1][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(homedata_state::mrokumei_get_info1_1),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32 );
+ m_bg_tilemap[0][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(homedata_state::mrokumei_get_info0_0)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32 );
+ m_bg_tilemap[0][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(homedata_state::mrokumei_get_info0_1)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32 );
+ m_bg_tilemap[1][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(homedata_state::mrokumei_get_info1_0)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32 );
+ m_bg_tilemap[1][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(homedata_state::mrokumei_get_info1_1)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32 );
m_bg_tilemap[0][1]->set_transparent_pen(0);
m_bg_tilemap[1][1]->set_transparent_pen(0);
@@ -623,14 +623,14 @@ VIDEO_START_MEMBER(homedata_state,mrokumei)
VIDEO_START_MEMBER(homedata_state,reikaids)
{
- m_bg_tilemap[0][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(homedata_state::reikaids_get_info0_0),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_bg_tilemap[0][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(homedata_state::reikaids_get_info0_1),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_bg_tilemap[0][2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(homedata_state::reikaids_get_info0_2),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_bg_tilemap[0][3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(homedata_state::reikaids_get_info0_3),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_bg_tilemap[1][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(homedata_state::reikaids_get_info1_0),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_bg_tilemap[1][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(homedata_state::reikaids_get_info1_1),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_bg_tilemap[1][2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(homedata_state::reikaids_get_info1_2),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_bg_tilemap[1][3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(homedata_state::reikaids_get_info1_3),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap[0][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(homedata_state::reikaids_get_info0_0)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap[0][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(homedata_state::reikaids_get_info0_1)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap[0][2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(homedata_state::reikaids_get_info0_2)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap[0][3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(homedata_state::reikaids_get_info0_3)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap[1][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(homedata_state::reikaids_get_info1_0)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap[1][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(homedata_state::reikaids_get_info1_1)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap[1][2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(homedata_state::reikaids_get_info1_2)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap[1][3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(homedata_state::reikaids_get_info1_3)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_bg_tilemap[0][0]->set_transparent_pen(0xff);
m_bg_tilemap[0][1]->set_transparent_pen(0xff);
@@ -644,10 +644,10 @@ VIDEO_START_MEMBER(homedata_state,reikaids)
VIDEO_START_MEMBER(homedata_state,pteacher)
{
- m_bg_tilemap[0][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(homedata_state::pteacher_get_info0_0),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_bg_tilemap[0][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(homedata_state::pteacher_get_info0_1),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_bg_tilemap[1][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(homedata_state::pteacher_get_info1_0),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_bg_tilemap[1][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(homedata_state::pteacher_get_info1_1),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap[0][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(homedata_state::pteacher_get_info0_0)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap[0][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(homedata_state::pteacher_get_info0_1)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap[1][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(homedata_state::pteacher_get_info1_0)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap[1][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(homedata_state::pteacher_get_info1_1)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_bg_tilemap[0][1]->set_transparent_pen(0xff);
m_bg_tilemap[1][1]->set_transparent_pen(0xff);
@@ -655,10 +655,10 @@ VIDEO_START_MEMBER(homedata_state,pteacher)
VIDEO_START_MEMBER(homedata_state,lemnangl)
{
- m_bg_tilemap[0][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(homedata_state::lemnangl_get_info0_0),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_bg_tilemap[0][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(homedata_state::lemnangl_get_info0_1),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_bg_tilemap[1][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(homedata_state::lemnangl_get_info1_0),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_bg_tilemap[1][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(homedata_state::lemnangl_get_info1_1),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap[0][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(homedata_state::lemnangl_get_info0_0)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap[0][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(homedata_state::lemnangl_get_info0_1)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap[1][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(homedata_state::lemnangl_get_info1_0)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap[1][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(homedata_state::lemnangl_get_info1_1)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_bg_tilemap[0][1]->set_transparent_pen(0x0f);
m_bg_tilemap[1][1]->set_transparent_pen(0x0f);
@@ -666,10 +666,10 @@ VIDEO_START_MEMBER(homedata_state,lemnangl)
VIDEO_START_MEMBER(homedata_state,mirderby)
{
- m_bg_tilemap[0][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(homedata_state::mirderby_get_info0_0),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32 );
- m_bg_tilemap[0][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(homedata_state::mirderby_get_info0_1),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32 );
- m_bg_tilemap[1][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(homedata_state::mirderby_get_info1_0),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32 );
- m_bg_tilemap[1][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(homedata_state::mirderby_get_info1_1),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32 );
+ m_bg_tilemap[0][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(homedata_state::mirderby_get_info0_0)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap[0][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(homedata_state::mirderby_get_info0_1)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap[1][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(homedata_state::mirderby_get_info1_0)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap[1][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(homedata_state::mirderby_get_info1_1)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_bg_tilemap[0][1]->set_transparent_pen(0);
m_bg_tilemap[1][1]->set_transparent_pen(0);
diff --git a/src/mame/video/homerun.cpp b/src/mame/video/homerun.cpp
index 95878483c04..edf49e7d941 100644
--- a/src/mame/video/homerun.cpp
+++ b/src/mame/video/homerun.cpp
@@ -113,7 +113,7 @@ TILE_GET_INFO_MEMBER(homerun_state::get_tile_info)
void homerun_state::video_start()
{
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(homerun_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(homerun_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
save_item(NAME(m_gfx_ctrl));
save_item(NAME(m_scrolly));
diff --git a/src/mame/video/hyperspt.cpp b/src/mame/video/hyperspt.cpp
index e6e21823296..594545e74c8 100644
--- a/src/mame/video/hyperspt.cpp
+++ b/src/mame/video/hyperspt.cpp
@@ -116,7 +116,7 @@ TILE_GET_INFO_MEMBER(hyperspt_state::get_bg_tile_info)
void hyperspt_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(hyperspt_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(hyperspt_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_bg_tilemap->set_scroll_rows(32);
}
@@ -186,6 +186,6 @@ TILE_GET_INFO_MEMBER(hyperspt_state::roadf_get_bg_tile_info)
VIDEO_START_MEMBER(hyperspt_state,roadf)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(hyperspt_state::roadf_get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(hyperspt_state::roadf_get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_bg_tilemap->set_scroll_rows(32);
}
diff --git a/src/mame/video/igs017_igs031.cpp b/src/mame/video/igs017_igs031.cpp
index f81be2406bc..77acdbc95ad 100644
--- a/src/mame/video/igs017_igs031.cpp
+++ b/src/mame/video/igs017_igs031.cpp
@@ -66,6 +66,7 @@ igs017_igs031_device::igs017_igs031_device(const machine_config &mconfig, const
, device_gfx_interface(mconfig, *this, gfxinfo, "palette")
, device_video_interface(mconfig, *this)
, device_memory_interface(mconfig, *this)
+ , m_palette_scramble_cb(*this, FUNC(igs017_igs031_device::palette_callback_straight))
, m_space_config("igs017_igs031", ENDIANNESS_BIG, 8,15, 0, address_map_constructor(FUNC(igs017_igs031_device::map), this))
, m_spriteram(*this, "spriteram", 0)
, m_fg_videoram(*this, "fg_videoram", 0)
@@ -73,9 +74,8 @@ igs017_igs031_device::igs017_igs031_device(const machine_config &mconfig, const
, m_palram(*this, "palram", 0)
, m_i8255(*this, finder_base::DUMMY_TAG)
, m_palette(*this, "palette")
+ , m_revbits(false)
{
- m_palette_scramble_cb = igs017_igs031_palette_scramble_delegate(FUNC(igs017_igs031_device::palette_callback_straight), this);
- m_revbits = false;
}
device_memory_interface::space_config_vector igs017_igs031_device::memory_space_config() const
@@ -97,10 +97,10 @@ void igs017_igs031_device::device_add_mconfig(machine_config &config)
void igs017_igs031_device::device_start()
{
- m_palette_scramble_cb.bind_relative_to(*owner());
+ m_palette_scramble_cb.resolve();
- m_fg_tilemap = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(igs017_igs031_device::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8,8, 64,32);
- m_bg_tilemap = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(igs017_igs031_device::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8,8, 64,32);
+ m_fg_tilemap = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(igs017_igs031_device::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 64,32);
+ m_bg_tilemap = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(igs017_igs031_device::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 64,32);
m_fg_tilemap->set_transparent_pen(0xf);
m_bg_tilemap->set_transparent_pen(0xf);
diff --git a/src/mame/video/igs017_igs031.h b/src/mame/video/igs017_igs031.h
index 11b7407ece1..8026b8fa14e 100644
--- a/src/mame/video/igs017_igs031.h
+++ b/src/mame/video/igs017_igs031.h
@@ -9,18 +9,19 @@
#include "emupal.h"
#include "tilemap.h"
-typedef device_delegate<u16 (u16)> igs017_igs031_palette_scramble_delegate;
-
-class igs017_igs031_device : public device_t,
- public device_gfx_interface,
- public device_video_interface,
- public device_memory_interface
+class igs017_igs031_device :
+ public device_t,
+ public device_gfx_interface,
+ public device_video_interface,
+ public device_memory_interface
{
public:
+ typedef device_delegate<u16 (u16)> palette_scramble_delegate;
+
igs017_igs031_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
template <typename T> void set_i8255_tag(T &&tag) { m_i8255.set_tag(std::forward<T>(tag)); }
- template <typename... T> void set_palette_scramble_cb(T &&... args) { m_palette_scramble_cb = igs017_igs031_palette_scramble_delegate(std::forward<T>(args)...); }
+ template <typename... T> void set_palette_scramble_cb(T &&... args) { m_palette_scramble_cb.set(std::forward<T>(args)...); }
void set_text_reverse_bits()
{
@@ -29,8 +30,6 @@ public:
u16 palette_callback_straight(u16 bgr) const;
- igs017_igs031_palette_scramble_delegate m_palette_scramble_cb;
-
void map(address_map &map);
u8 read(offs_t offset);
@@ -69,6 +68,8 @@ protected:
DECLARE_GFXDECODE_MEMBER(gfxinfo);
private:
+ palette_scramble_delegate m_palette_scramble_cb;
+
address_space_config m_space_config;
required_shared_ptr<u8> m_spriteram;
diff --git a/src/mame/video/inufuku.cpp b/src/mame/video/inufuku.cpp
index 111ede75c2e..1d60abfab94 100644
--- a/src/mame/video/inufuku.cpp
+++ b/src/mame/video/inufuku.cpp
@@ -117,8 +117,8 @@ uint32_t inufuku_state::inufuku_tile_callback( uint32_t code )
void inufuku_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(inufuku_state::get_inufuku_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(inufuku_state::get_inufuku_tx_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(inufuku_state::get_inufuku_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(inufuku_state::get_inufuku_tx_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
m_bg_tilemap->set_transparent_pen(255);
m_tx_tilemap->set_transparent_pen(255);
diff --git a/src/mame/video/iqblock.cpp b/src/mame/video/iqblock.cpp
index ee594519f1b..d2442dbac19 100644
--- a/src/mame/video/iqblock.cpp
+++ b/src/mame/video/iqblock.cpp
@@ -38,8 +38,8 @@ TILE_GET_INFO_MEMBER(iqblock_state::get_fg_tile_info)
void iqblock_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(iqblock_state::get_bg_tile_info),this),TILEMAP_SCAN_ROWS, 8, 8,64,32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(iqblock_state::get_fg_tile_info),this),TILEMAP_SCAN_ROWS,8,32,64, 8);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(iqblock_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8,64,32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(iqblock_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8,32,64, 8);
m_bg_tilemap->set_transparent_pen(0);
m_fg_tilemap->set_scroll_cols(64);
diff --git a/src/mame/video/ironhors.cpp b/src/mame/video/ironhors.cpp
index eda424a1e15..059a1109e9e 100644
--- a/src/mame/video/ironhors.cpp
+++ b/src/mame/video/ironhors.cpp
@@ -139,7 +139,7 @@ TILE_GET_INFO_MEMBER(ironhors_state::get_bg_tile_info)
void ironhors_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ironhors_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ironhors_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_bg_tilemap->set_scroll_rows(32);
}
@@ -251,7 +251,7 @@ TILE_GET_INFO_MEMBER(ironhors_state::farwest_get_bg_tile_info)
VIDEO_START_MEMBER(ironhors_state,farwest)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ironhors_state::farwest_get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ironhors_state::farwest_get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_bg_tilemap->set_scroll_rows(32);
}
diff --git a/src/mame/video/jack.cpp b/src/mame/video/jack.cpp
index cf79dc5adb0..c338816be8e 100644
--- a/src/mame/video/jack.cpp
+++ b/src/mame/video/jack.cpp
@@ -57,7 +57,7 @@ TILEMAP_MAPPER_MEMBER(jack_state::tilemap_scan_cols_flipy)
void jack_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(jack_state::get_bg_tile_info),this), tilemap_mapper_delegate(FUNC(jack_state::tilemap_scan_cols_flipy),this), 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(jack_state::get_bg_tile_info)), tilemap_mapper_delegate(*this, FUNC(jack_state::tilemap_scan_cols_flipy)), 8, 8, 32, 32);
}
@@ -175,7 +175,7 @@ TILE_GET_INFO_MEMBER(jack_state::joinem_get_bg_tile_info)
VIDEO_START_MEMBER(jack_state,joinem)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(jack_state::joinem_get_bg_tile_info),this), tilemap_mapper_delegate(FUNC(jack_state::tilemap_scan_cols_flipy),this), 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(jack_state::joinem_get_bg_tile_info)), tilemap_mapper_delegate(*this, FUNC(jack_state::tilemap_scan_cols_flipy)), 8, 8, 32, 32);
m_bg_tilemap->set_scroll_cols(32);
}
diff --git a/src/mame/video/jackal.cpp b/src/mame/video/jackal.cpp
index a234e847098..8d0d45bf070 100644
--- a/src/mame/video/jackal.cpp
+++ b/src/mame/video/jackal.cpp
@@ -56,7 +56,7 @@ TILE_GET_INFO_MEMBER(jackal_state::get_bg_tile_info)
void jackal_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(jackal_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(jackal_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
void jackal_state::draw_background( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect )
diff --git a/src/mame/video/jailbrek.cpp b/src/mame/video/jailbrek.cpp
index 943c34629fa..6070c877858 100644
--- a/src/mame/video/jailbrek.cpp
+++ b/src/mame/video/jailbrek.cpp
@@ -56,7 +56,7 @@ TILE_GET_INFO_MEMBER(jailbrek_state::get_bg_tile_info)
void jailbrek_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(jailbrek_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(jailbrek_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
}
void jailbrek_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect )
diff --git a/src/mame/video/k001604.cpp b/src/mame/video/k001604.cpp
index 938c4127ea4..c949edd67f6 100644
--- a/src/mame/video/k001604.cpp
+++ b/src/mame/video/k001604.cpp
@@ -73,17 +73,17 @@ void k001604_device::device_start()
if (m_layer_size)
{
- m_layer_8x8[0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(k001604_device::tile_info_layer_8x8),this), tilemap_mapper_delegate(FUNC(k001604_device::scan_layer_8x8_0_size1),this), 8, 8, 64, 64);
- m_layer_8x8[1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(k001604_device::tile_info_layer_8x8),this), tilemap_mapper_delegate(FUNC(k001604_device::scan_layer_8x8_1_size1),this), 8, 8, 64, 64);
+ m_layer_8x8[0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(k001604_device::tile_info_layer_8x8)), tilemap_mapper_delegate(*this, FUNC(k001604_device::scan_layer_8x8_0_size1)), 8, 8, 64, 64);
+ m_layer_8x8[1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(k001604_device::tile_info_layer_8x8)), tilemap_mapper_delegate(*this, FUNC(k001604_device::scan_layer_8x8_1_size1)), 8, 8, 64, 64);
- m_layer_roz = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(k001604_device::tile_info_layer_roz),this), tilemap_mapper_delegate(FUNC(k001604_device::scan_layer_roz_256),this), roz_tile_size, roz_tile_size, 128, 64);
+ m_layer_roz = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(k001604_device::tile_info_layer_roz)), tilemap_mapper_delegate(*this, FUNC(k001604_device::scan_layer_roz_256)), roz_tile_size, roz_tile_size, 128, 64);
}
else
{
- m_layer_8x8[0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(k001604_device::tile_info_layer_8x8),this), tilemap_mapper_delegate(FUNC(k001604_device::scan_layer_8x8_0_size0),this), 8, 8, 64, 64);
- m_layer_8x8[1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(k001604_device::tile_info_layer_8x8),this), tilemap_mapper_delegate(FUNC(k001604_device::scan_layer_8x8_1_size0),this), 8, 8, 64, 64);
+ m_layer_8x8[0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(k001604_device::tile_info_layer_8x8)), tilemap_mapper_delegate(*this, FUNC(k001604_device::scan_layer_8x8_0_size0)), 8, 8, 64, 64);
+ m_layer_8x8[1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(k001604_device::tile_info_layer_8x8)), tilemap_mapper_delegate(*this, FUNC(k001604_device::scan_layer_8x8_1_size0)), 8, 8, 64, 64);
- m_layer_roz = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(k001604_device::tile_info_layer_roz),this), tilemap_mapper_delegate(FUNC(k001604_device::scan_layer_roz_128),this), roz_tile_size, roz_tile_size, 128, 64);
+ m_layer_roz = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(k001604_device::tile_info_layer_roz)), tilemap_mapper_delegate(*this, FUNC(k001604_device::scan_layer_roz_128)), roz_tile_size, roz_tile_size, 128, 64);
}
m_layer_8x8[0]->set_transparent_pen(0);
diff --git a/src/mame/video/k007342.cpp b/src/mame/video/k007342.cpp
index 5909970e272..0cd29eab5f0 100644
--- a/src/mame/video/k007342.cpp
+++ b/src/mame/video/k007342.cpp
@@ -32,13 +32,14 @@ control registers
#include "k007342.h"
#include "konami_helper.h"
-#define VERBOSE 0
-#define LOG(x) do { if (VERBOSE) logerror x; } while (0)
+//#define VERBOSE 1
+#include "logmacro.h"
+
DEFINE_DEVICE_TYPE(K007342, k007342_device, "k007342", "K007342 Video Controller")
-k007342_device::k007342_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
- : device_t(mconfig, K007342, tag, owner, clock),
+k007342_device::k007342_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
+ device_t(mconfig, K007342, tag, owner, clock),
m_ram(nullptr),
m_scroll_ram(nullptr),
m_videoram_0(nullptr),
@@ -52,6 +53,7 @@ k007342_device::k007342_device(const machine_config &mconfig, const char *tag, d
//m_scrollx[2],
//m_scrolly[2],
m_gfxdecode(*this, finder_base::DUMMY_TAG),
+ m_callback(*this),
m_gfxnum(0)
{
}
@@ -66,10 +68,10 @@ void k007342_device::device_start()
throw device_missing_dependencies();
// bind the init function
- m_callback.bind_relative_to(*owner());
+ m_callback.resolve();
- m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(k007342_device::get_tile_info0),this), tilemap_mapper_delegate(FUNC(k007342_device::scan),this), 8, 8, 64, 32);
- m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(k007342_device::get_tile_info1),this), tilemap_mapper_delegate(FUNC(k007342_device::scan),this), 8, 8, 64, 32);
+ m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(k007342_device::get_tile_info0)), tilemap_mapper_delegate(*this, FUNC(k007342_device::scan)), 8, 8, 64, 32);
+ m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(k007342_device::get_tile_info1)), tilemap_mapper_delegate(*this, FUNC(k007342_device::scan)), 8, 8, 64, 32);
m_ram = make_unique_clear<uint8_t[]>(0x2000);
m_scroll_ram = make_unique_clear<uint8_t[]>(0x0200);
diff --git a/src/mame/video/k007342.h b/src/mame/video/k007342.h
index 807e93db1ff..cceae585f26 100644
--- a/src/mame/video/k007342.h
+++ b/src/mame/video/k007342.h
@@ -8,17 +8,17 @@
#include "tilemap.h"
-typedef device_delegate<void (int layer, int bank, int *code, int *color, int *flags)> k007342_delegate;
-
class k007342_device : public device_t
{
public:
+ using tile_delegate = device_delegate<void (int layer, int bank, int *code, int *color, int *flags)>;
+
k007342_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// configuration
template <typename T> void set_gfxdecode_tag(T &&tag) { m_gfxdecode.set_tag(std::forward<T>(tag)); }
void set_gfxnum(int gfxnum) { m_gfxnum = gfxnum; }
- template <typename... T> void set_tile_callback(T &&... args) { m_callback = k007342_delegate(std::forward<T>(args)...); }
+ template <typename... T> void set_tile_callback(T &&... args) { m_callback.set(std::forward<T>(args)...); }
DECLARE_READ8_MEMBER( read );
DECLARE_WRITE8_MEMBER( write );
@@ -49,7 +49,7 @@ private:
uint16_t m_scrollx[2];
uint8_t m_scrolly[2];
required_device<gfxdecode_device> m_gfxdecode;
- k007342_delegate m_callback;
+ tile_delegate m_callback;
int m_gfxnum;
TILEMAP_MAPPER_MEMBER(scan);
diff --git a/src/mame/video/k007420.cpp b/src/mame/video/k007420.cpp
index ba3942df7b2..18226ba4d54 100644
--- a/src/mame/video/k007420.cpp
+++ b/src/mame/video/k007420.cpp
@@ -27,6 +27,7 @@ k007420_device::k007420_device(const machine_config &mconfig, const char *tag, d
, m_flipscreen(0)
, m_palette(*this, finder_base::DUMMY_TAG)
, m_banklimit(0)
+ , m_callback(*this)
//, m_regs[8]
{
}
@@ -38,7 +39,7 @@ k007420_device::k007420_device(const machine_config &mconfig, const char *tag, d
void k007420_device::device_start()
{
// bind the init function
- m_callback.bind_relative_to(*owner());
+ m_callback.resolve();
m_ram = make_unique_clear<uint8_t[]>(0x200);
diff --git a/src/mame/video/k007420.h b/src/mame/video/k007420.h
index 5a53a3b4bee..a791f9e0638 100644
--- a/src/mame/video/k007420.h
+++ b/src/mame/video/k007420.h
@@ -8,16 +8,16 @@
#include "emupal.h"
-typedef device_delegate<void (int *code, int *color)> k007420_delegate;
-
class k007420_device : public device_t
{
public:
+ using sprite_delegate = device_delegate<void (int *code, int *color)>;
+
k007420_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
template <typename T> void set_palette_tag(T &&tag) { m_palette.set_tag(std::forward<T>(tag)); }
void set_bank_limit(int limit) { m_banklimit = limit; }
- template <typename... T> void set_sprite_callback(T &&... args) { m_callback = k007420_delegate(std::forward<T>(args)...); }
+ template <typename... T> void set_sprite_callback(T &&... args) { m_callback.set(std::forward<T>(args)...); }
DECLARE_READ8_MEMBER( read );
DECLARE_WRITE8_MEMBER( write );
@@ -35,7 +35,7 @@ private:
uint8_t m_regs[8]; // current code uses the 7342 regs!! (only [2])
required_device<palette_device> m_palette;
int m_banklimit;
- k007420_delegate m_callback;
+ sprite_delegate m_callback;
};
DECLARE_DEVICE_TYPE(K007420, k007420_device)
diff --git a/src/mame/video/k037122.cpp b/src/mame/video/k037122.cpp
index a5294904886..0f90673dbc1 100644
--- a/src/mame/video/k037122.cpp
+++ b/src/mame/video/k037122.cpp
@@ -9,15 +9,16 @@ Konami 037122
#include "konami_helper.h"
#include "screen.h"
-#define VERBOSE 0
-#define LOG(x) do { if (VERBOSE) logerror x; } while (0)
+//#define VERBOSE 1
+#include "logmacro.h"
+
#define K037122_NUM_TILES 16384
DEFINE_DEVICE_TYPE(K037122, k037122_device, "k037122", "K037122 2D Tilemap")
-k037122_device::k037122_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
- : device_t(mconfig, K037122, tag, owner, clock),
+k037122_device::k037122_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
+ device_t(mconfig, K037122, tag, owner, clock),
device_video_interface(mconfig, *this),
device_gfx_interface(mconfig, *this, nullptr),
m_tile_ram(nullptr),
@@ -51,8 +52,8 @@ void k037122_device::device_start()
m_tile_ram = make_unique_clear<uint32_t[]>(0x20000 / 4);
m_reg = make_unique_clear<uint32_t[]>(0x400 / 4);
- m_layer[0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(k037122_device::tile_info_layer0),this), TILEMAP_SCAN_ROWS, 8, 8, 256, 64);
- m_layer[1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(k037122_device::tile_info_layer1),this), TILEMAP_SCAN_ROWS, 8, 8, 128, 64);
+ m_layer[0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(k037122_device::tile_info_layer0)), TILEMAP_SCAN_ROWS, 8, 8, 256, 64);
+ m_layer[1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(k037122_device::tile_info_layer1)), TILEMAP_SCAN_ROWS, 8, 8, 128, 64);
m_layer[0]->set_transparent_pen(0);
m_layer[1]->set_transparent_pen(0);
diff --git a/src/mame/video/k051316.cpp b/src/mame/video/k051316.cpp
index 3e770b365ff..cd64d89ac64 100644
--- a/src/mame/video/k051316.cpp
+++ b/src/mame/video/k051316.cpp
@@ -105,14 +105,15 @@ GFXDECODE_END
k051316_device::k051316_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
- : device_t(mconfig, K051316, tag, owner, clock),
- device_gfx_interface(mconfig, *this, gfxinfo),
- m_zoom_rom(*this, DEVICE_SELF),
- m_dx(0),
- m_dy(0),
- m_wrap(0),
- m_pixels_per_byte(2), // 4bpp layout is default
- m_layermask(0)
+ : device_t(mconfig, K051316, tag, owner, clock)
+ , device_gfx_interface(mconfig, *this, gfxinfo)
+ , m_zoom_rom(*this, DEVICE_SELF)
+ , m_dx(0)
+ , m_dy(0)
+ , m_wrap(0)
+ , m_pixels_per_byte(2) // 4bpp layout is default
+ , m_layermask(0)
+ , m_k051316_cb(*this)
{
}
@@ -155,7 +156,7 @@ void k051316_device::device_start()
decode_gfx();
gfx(0)->set_colors(palette().entries() / gfx(0)->depth());
- m_tmap = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(k051316_device::get_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_tmap = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(k051316_device::get_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
m_ram.resize(0x800);
memset(&m_ram[0], 0, 0x800);
@@ -168,7 +169,7 @@ void k051316_device::device_start()
m_tmap->set_transparent_pen(0);
// bind callbacks
- m_k051316_cb.bind_relative_to(*owner());
+ m_k051316_cb.resolve();
save_item(NAME(m_ram));
save_item(NAME(m_ctrlram));
diff --git a/src/mame/video/k051316.h b/src/mame/video/k051316.h
index 8d655fc6877..6d1b928c3f8 100644
--- a/src/mame/video/k051316.h
+++ b/src/mame/video/k051316.h
@@ -8,13 +8,14 @@
#include "tilemap.h"
-typedef device_delegate<void (int *code, int *color, int *flags)> k051316_cb_delegate;
#define K051316_CB_MEMBER(_name) void _name(int *code, int *color, int *flags)
class k051316_device : public device_t, public device_gfx_interface
{
public:
+ using zoom_delegate = device_delegate<void (int *code, int *color, int *flags)>;
+
k051316_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
static const gfx_layout charlayout4;
@@ -26,7 +27,7 @@ public:
DECLARE_GFXDECODE_MEMBER(gfxinfo4_ram);
// configuration
- template <typename... T> void set_zoom_callback(T &&... args) { m_k051316_cb = k051316_cb_delegate(std::forward<T>(args)...); }
+ template <typename... T> void set_zoom_callback(T &&... args) { m_k051316_cb.set(std::forward<T>(args)...); }
void set_wrap(int wrap) { m_wrap = wrap; }
void set_bpp(int bpp);
void set_layermask(int mask) { m_layermask = mask; }
@@ -75,7 +76,7 @@ private:
int m_wrap;
int m_pixels_per_byte;
int m_layermask;
- k051316_cb_delegate m_k051316_cb;
+ zoom_delegate m_k051316_cb;
TILE_GET_INFO_MEMBER(get_tile_info);
};
diff --git a/src/mame/video/k051960.cpp b/src/mame/video/k051960.cpp
index 40023ce2914..580801717c7 100644
--- a/src/mame/video/k051960.cpp
+++ b/src/mame/video/k051960.cpp
@@ -136,6 +136,7 @@ k051960_device::k051960_device(const machine_config &mconfig, const char *tag, d
, m_ram(nullptr)
, m_sprite_rom(*this, DEVICE_SELF)
, m_scanline_timer(nullptr)
+ , m_k051960_cb(*this)
, m_irq_handler(*this)
, m_firq_handler(*this)
, m_nmi_handler(*this)
@@ -193,7 +194,7 @@ void k051960_device::device_start()
m_ram = make_unique_clear<uint8_t[]>(0x400);
// bind callbacks
- m_k051960_cb.bind_relative_to(*owner());
+ m_k051960_cb.resolve();
// resolve callbacks
m_irq_handler.resolve_safe();
diff --git a/src/mame/video/k051960.h b/src/mame/video/k051960.h
index ca3c114f478..43db938c508 100644
--- a/src/mame/video/k051960.h
+++ b/src/mame/video/k051960.h
@@ -13,7 +13,6 @@ enum
};
-typedef device_delegate<void (int *code, int *color, int *priority, int *shadow)> k051960_cb_delegate;
#define K051960_CB_MEMBER(_name) void _name(int *code, int *color, int *priority, int *shadow)
@@ -27,6 +26,8 @@ class k051960_device : public device_t, public device_gfx_interface, public devi
DECLARE_GFXDECODE_MEMBER(gfxinfo_gradius3);
public:
+ using sprite_delegate = device_delegate<void (int *code, int *color, int *priority, int *shadow)>;
+
k051960_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
auto irq_handler() { return m_irq_handler.bind(); }
@@ -37,7 +38,7 @@ public:
// static configuration
- template <typename... T> void set_sprite_callback(T &&... args) { m_k051960_cb = k051960_cb_delegate(std::forward<T>(args)...); }
+ template <typename... T> void set_sprite_callback(T &&... args) { m_k051960_cb.set(std::forward<T>(args)...); }
void set_plane_order(int order);
/*
@@ -77,7 +78,7 @@ private:
emu_timer *m_scanline_timer;
- k051960_cb_delegate m_k051960_cb;
+ sprite_delegate m_k051960_cb;
devcb_write_line m_irq_handler;
// TODO: is this even used by anything?
diff --git a/src/mame/video/k052109.cpp b/src/mame/video/k052109.cpp
index 4c856ce8169..3ebcbb6fa6d 100644
--- a/src/mame/video/k052109.cpp
+++ b/src/mame/video/k052109.cpp
@@ -183,6 +183,7 @@ k052109_device::k052109_device(const machine_config &mconfig, const char *tag, d
m_romsubbank(0),
m_scrollctrl(0),
m_char_rom(*this, DEVICE_SELF),
+ m_k052109_cb(*this),
m_irq_handler(*this),
m_firq_handler(*this),
m_nmi_handler(*this)
@@ -230,16 +231,16 @@ void k052109_device::device_start()
m_videoram2_A = &m_ram[0x4800];
m_videoram2_B = &m_ram[0x5000];
- m_tilemap[0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(k052109_device::get_tile_info0),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_tilemap[1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(k052109_device::get_tile_info1),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_tilemap[2] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(k052109_device::get_tile_info2),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tilemap[0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(k052109_device::get_tile_info0)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tilemap[1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(k052109_device::get_tile_info1)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tilemap[2] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(k052109_device::get_tile_info2)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_tilemap[0]->set_transparent_pen(0);
m_tilemap[1]->set_transparent_pen(0);
m_tilemap[2]->set_transparent_pen(0);
// bind callbacks
- m_k052109_cb.bind_relative_to(*owner());
+ m_k052109_cb.resolve();
// resolve callbacks
m_irq_handler.resolve_safe();
diff --git a/src/mame/video/k052109.h b/src/mame/video/k052109.h
index 1721ade5083..e597e63a7a6 100644
--- a/src/mame/video/k052109.h
+++ b/src/mame/video/k052109.h
@@ -7,7 +7,6 @@
#include "tilemap.h"
-typedef device_delegate<void (int layer, int bank, int *code, int *color, int *flags, int *priority)> k052109_cb_delegate;
#define K052109_CB_MEMBER(_name) void _name(int layer, int bank, int *code, int *color, int *flags, int *priority)
@@ -19,13 +18,15 @@ class k052109_device : public device_t, public device_gfx_interface, public devi
DECLARE_GFXDECODE_MEMBER(gfxinfo_ram);
public:
+ using tile_delegate = device_delegate<void (int layer, int bank, int *code, int *color, int *flags, int *priority)>;
+
k052109_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
~k052109_device() {}
auto irq_handler() { return m_irq_handler.bind(); }
auto firq_handler() { return m_firq_handler.bind(); }
auto nmi_handler() { return m_nmi_handler.bind(); }
- template <typename... T> void set_tile_callback(T &&... args) { m_k052109_cb = k052109_cb_delegate(std::forward<T>(args)...); }
+ template <typename... T> void set_tile_callback(T &&... args) { m_k052109_cb.set(std::forward<T>(args)...); }
void set_char_ram(bool ram);
/*
@@ -87,7 +88,7 @@ private:
optional_region_ptr<uint8_t> m_char_rom;
- k052109_cb_delegate m_k052109_cb;
+ tile_delegate m_k052109_cb;
devcb_write_line m_irq_handler;
devcb_write_line m_firq_handler;
diff --git a/src/mame/video/k053244_k053245.cpp b/src/mame/video/k053244_k053245.cpp
index 3b1e82a9237..a98b464bdce 100644
--- a/src/mame/video/k053244_k053245.cpp
+++ b/src/mame/video/k053244_k053245.cpp
@@ -82,14 +82,15 @@ GFXDECODE_MEMBER( k05324x_device::gfxinfo_6bpp )
GFXDECODE_END
-k05324x_device::k05324x_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
- : device_t(mconfig, K053244, tag, owner, clock),
+k05324x_device::k05324x_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
+ device_t(mconfig, K053244, tag, owner, clock),
device_gfx_interface(mconfig, *this, gfxinfo),
m_ram(nullptr),
m_buffer(nullptr),
m_sprite_rom(*this, DEVICE_SELF),
m_dx(0),
m_dy(0),
+ m_k05324x_cb(*this),
m_rombank(0),
m_ramsize(0),
m_z_rejection(0)
@@ -135,7 +136,7 @@ void k05324x_device::device_start()
m_buffer = make_unique_clear<uint16_t[]>(m_ramsize / 2);
// bind callbacks
- m_k05324x_cb.bind_relative_to(*owner());
+ m_k05324x_cb.resolve();
save_pointer(NAME(m_ram), m_ramsize / 2);
save_pointer(NAME(m_buffer), m_ramsize / 2);
diff --git a/src/mame/video/k053244_k053245.h b/src/mame/video/k053244_k053245.h
index e9be05e7c7c..1f01fd71a8a 100644
--- a/src/mame/video/k053244_k053245.h
+++ b/src/mame/video/k053244_k053245.h
@@ -6,7 +6,6 @@
#pragma once
-typedef device_delegate<void (int *code, int *color, int *priority)> k05324x_cb_delegate;
#define K05324X_CB_MEMBER(_name) void _name(int *code, int *color, int *priority)
@@ -18,11 +17,13 @@ class k05324x_device : public device_t, public device_gfx_interface
DECLARE_GFXDECODE_MEMBER(gfxinfo_6bpp);
public:
+ using sprite_delegate = device_delegate<void (int *code, int *color, int *priority)>;
+
k05324x_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// configuration
void set_bpp(int bpp);
- template <typename... T> void set_sprite_callback(T &&... args) { m_k05324x_cb = k05324x_cb_delegate(std::forward<T>(args)...); }
+ template <typename... T> void set_sprite_callback(T &&... args) { m_k05324x_cb.set(std::forward<T>(args)...); }
void set_offsets(int x_offset, int y_offset)
{
m_dx = x_offset;
@@ -53,9 +54,9 @@ private:
required_region_ptr<uint8_t> m_sprite_rom;
int m_dx, m_dy;
- k05324x_cb_delegate m_k05324x_cb;
+ sprite_delegate m_k05324x_cb;
- uint8_t m_regs[0x10]; // 053244
+ uint8_t m_regs[0x10]; // 053244
int m_rombank; // 053244
int m_ramsize;
int m_z_rejection;
diff --git a/src/mame/video/k053246_k053247_k055673.cpp b/src/mame/video/k053246_k053247_k055673.cpp
index 7b46b032563..750f2a4d084 100644
--- a/src/mame/video/k053246_k053247_k055673.cpp
+++ b/src/mame/video/k053246_k053247_k055673.cpp
@@ -1046,11 +1046,12 @@ k053247_device::k053247_device(const machine_config &mconfig, const char *tag, d
}
k053247_device::k053247_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock)
- : device_t(mconfig, type, tag, owner, clock),
- device_video_interface(mconfig, *this),
- device_gfx_interface(mconfig, *this, nullptr),
- m_gfxrom(*this, DEVICE_SELF),
- m_gfx_num(0)
+ : device_t(mconfig, type, tag, owner, clock)
+ , device_video_interface(mconfig, *this)
+ , device_gfx_interface(mconfig, *this, nullptr)
+ , m_k053247_cb(*this)
+ , m_gfxrom(*this, DEVICE_SELF)
+ , m_gfx_num(0)
{
clear_all();
}
diff --git a/src/mame/video/k053246_k053247_k055673.h b/src/mame/video/k053246_k053247_k055673.h
index dc122084b17..62c93832217 100644
--- a/src/mame/video/k053246_k053247_k055673.h
+++ b/src/mame/video/k053246_k053247_k055673.h
@@ -12,7 +12,6 @@
#define NORMAL_PLANE_ORDER 4
-typedef device_delegate<void (int *code, int *color, int *priority_mask)> k053247_cb_delegate;
#define K053246_CB_MEMBER(_name) void _name(int *code, int *color, int *priority_mask)
#define K055673_CB_MEMBER(_name) void _name(int *code, int *color, int *priority_mask)
@@ -52,11 +51,12 @@ class k053247_device : public device_t,
public device_gfx_interface
{
public:
+ using sprite_delegate = device_delegate<void (int *code, int *color, int *priority_mask)>;
+
k053247_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
// configuration
- void set_k053247_callback(k053247_cb_delegate callback) { m_k053247_cb = callback; }
- template <typename... T> void set_sprite_callback(T &&... args) { m_k053247_cb = k053247_cb_delegate(std::forward<T>(args)...); }
+ template <typename... T> void set_sprite_callback(T &&... args) { m_k053247_cb.set(std::forward<T>(args)...); }
void set_config(int bpp, int dx, int dy)
{
m_bpp = bpp;
@@ -101,7 +101,7 @@ public:
u8 m_objcha_line;
int m_z_rejection;
- k053247_cb_delegate m_k053247_cb;
+ sprite_delegate m_k053247_cb;
required_region_ptr<u8> m_gfxrom;
int m_gfx_num;
diff --git a/src/mame/video/k054156_k054157_k056832.cpp b/src/mame/video/k054156_k054157_k056832.cpp
index 56476fc99ca..36583aa09f7 100644
--- a/src/mame/video/k054156_k054157_k056832.cpp
+++ b/src/mame/video/k054156_k054157_k056832.cpp
@@ -184,8 +184,8 @@ ones. The other 7 words are ignored. Global scrollx is ignored.
DEFINE_DEVICE_TYPE(K056832, k056832_device, "k056832", "K056832 Tilemap Generator")
-k056832_device::k056832_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
- : device_t(mconfig, K056832, tag, owner, clock),
+k056832_device::k056832_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
+ device_t(mconfig, K056832, tag, owner, clock),
device_gfx_interface(mconfig, *this),
//m_tilemap[K056832_PAGE_COUNT],
//*m_pixmap[K056832_PAGE_COUNT],
@@ -194,6 +194,7 @@ k056832_device::k056832_device(const machine_config &mconfig, const char *tag, d
m_rombase(*this, DEVICE_SELF),
m_num_gfx_banks(0),
m_cur_gfx_banks(0),
+ m_k056832_cb(*this),
m_gfx_num(0),
m_bpp(-1),
m_big(0),
@@ -263,22 +264,22 @@ void k056832_device::create_tilemaps()
m_videoram.resize(0x2000 * (K056832_PAGE_COUNT + 1) / 2);
memset(&m_videoram[0], 0, 2*m_videoram.size());
- m_tilemap[0x0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(k056832_device::get_tile_info0),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_tilemap[0x1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(k056832_device::get_tile_info1),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_tilemap[0x2] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(k056832_device::get_tile_info2),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_tilemap[0x3] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(k056832_device::get_tile_info3),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_tilemap[0x4] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(k056832_device::get_tile_info4),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_tilemap[0x5] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(k056832_device::get_tile_info5),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_tilemap[0x6] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(k056832_device::get_tile_info6),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_tilemap[0x7] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(k056832_device::get_tile_info7),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_tilemap[0x8] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(k056832_device::get_tile_info8),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_tilemap[0x9] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(k056832_device::get_tile_info9),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_tilemap[0xa] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(k056832_device::get_tile_infoa),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_tilemap[0xb] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(k056832_device::get_tile_infob),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_tilemap[0xc] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(k056832_device::get_tile_infoc),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_tilemap[0xd] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(k056832_device::get_tile_infod),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_tilemap[0xe] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(k056832_device::get_tile_infoe),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_tilemap[0xf] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(k056832_device::get_tile_infof),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tilemap[0x0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(k056832_device::get_tile_info0)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tilemap[0x1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(k056832_device::get_tile_info1)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tilemap[0x2] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(k056832_device::get_tile_info2)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tilemap[0x3] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(k056832_device::get_tile_info3)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tilemap[0x4] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(k056832_device::get_tile_info4)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tilemap[0x5] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(k056832_device::get_tile_info5)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tilemap[0x6] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(k056832_device::get_tile_info6)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tilemap[0x7] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(k056832_device::get_tile_info7)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tilemap[0x8] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(k056832_device::get_tile_info8)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tilemap[0x9] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(k056832_device::get_tile_info9)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tilemap[0xa] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(k056832_device::get_tile_infoa)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tilemap[0xb] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(k056832_device::get_tile_infob)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tilemap[0xc] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(k056832_device::get_tile_infoc)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tilemap[0xd] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(k056832_device::get_tile_infod)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tilemap[0xe] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(k056832_device::get_tile_infoe)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tilemap[0xf] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(k056832_device::get_tile_infof)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
for (i = 0; i < K056832_PAGE_COUNT; i++)
{
@@ -348,7 +349,7 @@ void k056832_device::device_start()
finalize_init();
// bind callbacks
- m_k056832_cb.bind_relative_to(*owner());
+ m_k056832_cb.resolve();
}
/*****************************************************************************
diff --git a/src/mame/video/k054156_k054157_k056832.h b/src/mame/video/k054156_k054157_k056832.h
index 4be43e75517..57cfeff1c7d 100644
--- a/src/mame/video/k054156_k054157_k056832.h
+++ b/src/mame/video/k054156_k054157_k056832.h
@@ -8,7 +8,6 @@
#include "video/k055555.h" // still needs k055555_get_palette_index
#include "tilemap.h"
-typedef device_delegate<void (int layer, int *code, int *color, int *flags)> k056832_cb_delegate;
#define K056832_CB_MEMBER(_name) void _name(int layer, int *code, int *color, int *flags)
#define K056832_PAGE_COUNT 16
@@ -32,6 +31,8 @@ class k055555_device;
class k056832_device : public device_t, public device_gfx_interface
{
public:
+ using tile_delegate = device_delegate<void (int layer, int *code, int *color, int *flags)>;
+
template <typename T> k056832_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock, T &&mixer_tag)
: k056832_device(mconfig, tag, owner, clock)
{
@@ -40,7 +41,7 @@ public:
k056832_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- template <typename... T> void set_tile_callback(T &&... args) { m_k056832_cb = k056832_cb_delegate(std::forward<T>(args)...); }
+ template <typename... T> void set_tile_callback(T &&... args) { m_k056832_cb.set(std::forward<T>(args)...); }
void set_config(int bpp, int big, int djmain_hack)
{
@@ -122,7 +123,7 @@ private:
int m_num_gfx_banks; // depends on size of graphics ROMs
int m_cur_gfx_banks; // cached info for K056832_regs[0x1a]
- k056832_cb_delegate m_k056832_cb;
+ tile_delegate m_k056832_cb;
int m_gfx_num;
int m_bpp;
diff --git a/src/mame/video/kaneko_tmap.cpp b/src/mame/video/kaneko_tmap.cpp
index 1f9e17b4be0..49679049bb0 100644
--- a/src/mame/video/kaneko_tmap.cpp
+++ b/src/mame/video/kaneko_tmap.cpp
@@ -116,6 +116,7 @@ kaneko_view2_tilemap_device::kaneko_view2_tilemap_device(const machine_config &m
, m_xdim(0)
, m_ydim(0)
, m_invert_flip(0)
+ , m_view2_cb(*this)
, m_regs(nullptr)
{
}
@@ -148,19 +149,19 @@ void kaneko_view2_tilemap_device::device_start()
};
layout.total = m_gfxrom->bytes() / ((16*16*4) / 8);
- m_view2_cb.bind_relative_to(*owner());
+ m_view2_cb.resolve();
m_regs = make_unique_clear<u16[]>(0x20/2);
set_gfx(0, std::make_unique<gfx_element>(&palette(), layout, m_gfxrom->base(), 0, 0x40, m_colbase));
m_tmap[0] = &machine().tilemap().create(
*this,
- tilemap_get_info_delegate(FUNC(kaneko_view2_tilemap_device::get_tile_info<0>),this),
+ tilemap_get_info_delegate(*this, FUNC(kaneko_view2_tilemap_device::get_tile_info<0>)),
TILEMAP_SCAN_ROWS,
16,16, 0x20,0x20);
m_tmap[1] = &machine().tilemap().create(
*this,
- tilemap_get_info_delegate(FUNC(kaneko_view2_tilemap_device::get_tile_info<1>),this),
+ tilemap_get_info_delegate(*this, FUNC(kaneko_view2_tilemap_device::get_tile_info<1>)),
TILEMAP_SCAN_ROWS,
16,16, 0x20,0x20);
diff --git a/src/mame/video/kaneko_tmap.h b/src/mame/video/kaneko_tmap.h
index 5984fb0fc54..c08d4876b2f 100644
--- a/src/mame/video/kaneko_tmap.h
+++ b/src/mame/video/kaneko_tmap.h
@@ -10,6 +10,8 @@
class kaneko_view2_tilemap_device : public device_t, public device_gfx_interface
{
public:
+ typedef device_delegate<void (u8, u32*)> view2_cb_delegate;
+
kaneko_view2_tilemap_device(const machine_config &mconfig, const char *tag, device_t *owner)
: kaneko_view2_tilemap_device(mconfig, tag, owner, (u32)0)
{
@@ -28,8 +30,7 @@ public:
}
void set_invert_flip(int invert_flip) { m_invert_flip = invert_flip; } // for fantasia (bootleg)
- typedef device_delegate<void (u8, u32*)> view2_cb_delegate;
- void set_tile_callback(view2_cb_delegate cb) { m_view2_cb = cb; }
+ template <typename... T> void set_tile_callback(T &&... args) { m_view2_cb.set(std::forward<T>(args)...); }
void vram_w(int _N_, offs_t offset, u16 data, u16 mem_mask = u16(~0));
diff --git a/src/mame/video/karnov.cpp b/src/mame/video/karnov.cpp
index bcc5b1591d8..353ce1c4809 100644
--- a/src/mame/video/karnov.cpp
+++ b/src/mame/video/karnov.cpp
@@ -64,8 +64,8 @@ void karnov_state::playfield_w(offs_t offset, u16 data, u16 mem_mask)
VIDEO_START_MEMBER(karnov_state,karnov)
{
/* Allocate bitmap & tilemap */
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(karnov_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- m_fix_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(karnov_state::get_fix_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(karnov_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_fix_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(karnov_state::get_fix_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fix_tilemap->set_transparent_pen(0);
}
@@ -73,8 +73,8 @@ VIDEO_START_MEMBER(karnov_state,karnov)
VIDEO_START_MEMBER(karnov_state,wndrplnt)
{
/* Allocate bitmap & tilemap */
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(karnov_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- m_fix_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(karnov_state::get_fix_tile_info),this), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(karnov_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_fix_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(karnov_state::get_fix_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
m_fix_tilemap->set_transparent_pen(0);
}
diff --git a/src/mame/video/kchamp.cpp b/src/mame/video/kchamp.cpp
index c1590075173..ea81463be36 100644
--- a/src/mame/video/kchamp.cpp
+++ b/src/mame/video/kchamp.cpp
@@ -52,7 +52,7 @@ TILE_GET_INFO_MEMBER(kchamp_state::get_bg_tile_info)
void kchamp_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(kchamp_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(kchamp_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
/*
diff --git a/src/mame/video/kickgoal.cpp b/src/mame/video/kickgoal.cpp
index fad3864a178..e538a93fdd8 100644
--- a/src/mame/video/kickgoal.cpp
+++ b/src/mame/video/kickgoal.cpp
@@ -118,9 +118,9 @@ VIDEO_START_MEMBER(kickgoal_state,kickgoal)
m_bg2_base = 0x2000 / 4;
m_bg2_mask = (0x2000/4) - 1;
- m_fgtm = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(kickgoal_state::get_kickgoal_fg_tile_info),this), tilemap_mapper_delegate(FUNC(kickgoal_state::tilemap_scan_8x8),this), 8, 8, 64, 64);
- m_bgtm = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(kickgoal_state::get_bg_tile_info),this), tilemap_mapper_delegate(FUNC(kickgoal_state::tilemap_scan_16x16),this), 16, 16, 64, 64);
- m_bg2tm = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(kickgoal_state::get_bg2_tile_info),this), tilemap_mapper_delegate(FUNC(kickgoal_state::tilemap_scan_32x32),this), 32, 32, 64, 64);
+ m_fgtm = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(kickgoal_state::get_kickgoal_fg_tile_info)), tilemap_mapper_delegate(*this, FUNC(kickgoal_state::tilemap_scan_8x8)), 8, 8, 64, 64);
+ m_bgtm = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(kickgoal_state::get_bg_tile_info)), tilemap_mapper_delegate(*this, FUNC(kickgoal_state::tilemap_scan_16x16)), 16, 16, 64, 64);
+ m_bg2tm = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(kickgoal_state::get_bg2_tile_info)), tilemap_mapper_delegate(*this, FUNC(kickgoal_state::tilemap_scan_32x32)), 32, 32, 64, 64);
m_fgtm->set_transparent_pen(15);
m_bgtm->set_transparent_pen(15);
@@ -138,9 +138,9 @@ VIDEO_START_MEMBER(kickgoal_state,actionhw)
m_bg2_base = 0x2000;
m_bg2_mask = 0x2000 - 1;
- m_fgtm = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(kickgoal_state::get_actionhw_fg_tile_info),this), tilemap_mapper_delegate(FUNC(kickgoal_state::tilemap_scan_8x8),this), 8, 8, 64, 64);
- m_bgtm = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(kickgoal_state::get_bg_tile_info),this), tilemap_mapper_delegate(FUNC(kickgoal_state::tilemap_scan_16x16),this), 16, 16, 64, 64);
- m_bg2tm = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(kickgoal_state::get_bg2_tile_info),this), tilemap_mapper_delegate(FUNC(kickgoal_state::tilemap_scan_16x16),this), 16, 16, 64, 64);
+ m_fgtm = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(kickgoal_state::get_actionhw_fg_tile_info)), tilemap_mapper_delegate(*this, FUNC(kickgoal_state::tilemap_scan_8x8)), 8, 8, 64, 64);
+ m_bgtm = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(kickgoal_state::get_bg_tile_info)), tilemap_mapper_delegate(*this, FUNC(kickgoal_state::tilemap_scan_16x16)), 16, 16, 64, 64);
+ m_bg2tm = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(kickgoal_state::get_bg2_tile_info)), tilemap_mapper_delegate(*this, FUNC(kickgoal_state::tilemap_scan_16x16)), 16, 16, 64, 64);
m_fgtm->set_transparent_pen(15);
m_bgtm->set_transparent_pen(15);
diff --git a/src/mame/video/kingobox.cpp b/src/mame/video/kingobox.cpp
index fc5a692786c..0669cb9127f 100644
--- a/src/mame/video/kingobox.cpp
+++ b/src/mame/video/kingobox.cpp
@@ -195,8 +195,8 @@ TILE_GET_INFO_MEMBER(kingofb_state::get_fg_tile_info)
VIDEO_START_MEMBER(kingofb_state,kingofb)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(kingofb_state::get_bg_tile_info),this), TILEMAP_SCAN_COLS_FLIP_Y, 16, 16, 16, 16);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(kingofb_state::get_fg_tile_info),this), TILEMAP_SCAN_COLS_FLIP_Y, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(kingofb_state::get_bg_tile_info)), TILEMAP_SCAN_COLS_FLIP_Y, 16, 16, 16, 16);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(kingofb_state::get_fg_tile_info)), TILEMAP_SCAN_COLS_FLIP_Y, 8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(0);
}
@@ -259,8 +259,8 @@ TILE_GET_INFO_MEMBER(kingofb_state::ringking_get_bg_tile_info)
VIDEO_START_MEMBER(kingofb_state,ringking)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(kingofb_state::ringking_get_bg_tile_info),this), TILEMAP_SCAN_COLS_FLIP_Y, 16, 16, 16, 16);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(kingofb_state::get_fg_tile_info),this), TILEMAP_SCAN_COLS_FLIP_Y, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(kingofb_state::ringking_get_bg_tile_info)), TILEMAP_SCAN_COLS_FLIP_Y, 16, 16, 16, 16);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(kingofb_state::get_fg_tile_info)), TILEMAP_SCAN_COLS_FLIP_Y, 8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(0);
}
diff --git a/src/mame/video/kncljoe.cpp b/src/mame/video/kncljoe.cpp
index a8fd628aea9..5a366683f30 100644
--- a/src/mame/video/kncljoe.cpp
+++ b/src/mame/video/kncljoe.cpp
@@ -99,7 +99,7 @@ TILE_GET_INFO_MEMBER(kncljoe_state::get_bg_tile_info)
void kncljoe_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(kncljoe_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(kncljoe_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_bg_tilemap->set_scroll_rows(4);
}
diff --git a/src/mame/video/konamigx.cpp b/src/mame/video/konamigx.cpp
index de95a75e1d7..875a027bfce 100644
--- a/src/mame/video/konamigx.cpp
+++ b/src/mame/video/konamigx.cpp
@@ -1178,8 +1178,8 @@ VIDEO_START_MEMBER(konamigx_state, konamigx_type3)
common_init();
- m_gx_psac_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(konamigx_state::get_gx_psac3_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 256, 256);
- m_gx_psac_tilemap_alt = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(konamigx_state::get_gx_psac3_alt_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 256, 256);
+ m_gx_psac_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(konamigx_state::get_gx_psac3_tile_info)), TILEMAP_SCAN_COLS, 16, 16, 256, 256);
+ m_gx_psac_tilemap_alt = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(konamigx_state::get_gx_psac3_alt_tile_info)), TILEMAP_SCAN_COLS, 16, 16, 256, 256);
m_gx_rozenable = 0;
m_gx_specialrozenable = 2;
@@ -1214,7 +1214,7 @@ VIDEO_START_MEMBER(konamigx_state, konamigx_type4)
common_init();
- m_gx_psac_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(konamigx_state::get_gx_psac_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 128, 128);
+ m_gx_psac_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(konamigx_state::get_gx_psac_tile_info)), TILEMAP_SCAN_COLS, 16, 16, 128, 128);
m_gx_rozenable = 0;
m_gx_specialrozenable = 3;
@@ -1242,7 +1242,7 @@ VIDEO_START_MEMBER(konamigx_state, konamigx_type4_vsn)
common_init();
- m_gx_psac_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(konamigx_state::get_gx_psac_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 128, 128);
+ m_gx_psac_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(konamigx_state::get_gx_psac_tile_info)), TILEMAP_SCAN_COLS, 16, 16, 128, 128);
m_gx_rozenable = 0;
m_gx_specialrozenable = 3;
@@ -1269,7 +1269,7 @@ VIDEO_START_MEMBER(konamigx_state, konamigx_type4_sd2)
common_init();
- m_gx_psac_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(konamigx_state::get_gx_psac_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 128, 128);
+ m_gx_psac_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(konamigx_state::get_gx_psac_tile_info)), TILEMAP_SCAN_COLS, 16, 16, 128, 128);
m_gx_rozenable = 0;
m_gx_specialrozenable = 3;
@@ -1298,8 +1298,8 @@ VIDEO_START_MEMBER(konamigx_state, opengolf)
m_k056832->set_layer_offs(2, 2+1, 0);
m_k056832->set_layer_offs(3, 3+1, 0);
- m_gx_psac_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(konamigx_state::get_gx_psac1a_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 128, 128);
- m_gx_psac_tilemap2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(konamigx_state::get_gx_psac1b_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 128, 128);
+ m_gx_psac_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(konamigx_state::get_gx_psac1a_tile_info)), TILEMAP_SCAN_COLS, 16, 16, 128, 128);
+ m_gx_psac_tilemap2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(konamigx_state::get_gx_psac1b_tile_info)), TILEMAP_SCAN_COLS, 16, 16, 128, 128);
// transparency will be handled manually in post-processing
//m_gx_psac_tilemap->set_transparent_pen(0);
@@ -1333,8 +1333,8 @@ VIDEO_START_MEMBER(konamigx_state, racinfrc)
m_k056832->set_layer_offs(2, 2+1, -16);
m_k056832->set_layer_offs(3, 3+1, -16);
- m_gx_psac_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(konamigx_state::get_gx_psac1a_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 128, 128);
- m_gx_psac_tilemap2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(konamigx_state::get_gx_psac1b_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 128, 128);
+ m_gx_psac_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(konamigx_state::get_gx_psac1a_tile_info)), TILEMAP_SCAN_COLS, 16, 16, 128, 128);
+ m_gx_psac_tilemap2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(konamigx_state::get_gx_psac1b_tile_info)), TILEMAP_SCAN_COLS, 16, 16, 128, 128);
// transparency will be handled manually in post-processing
//m_gx_psac_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/kopunch.cpp b/src/mame/video/kopunch.cpp
index 15479271459..149cdcab5d6 100644
--- a/src/mame/video/kopunch.cpp
+++ b/src/mame/video/kopunch.cpp
@@ -96,8 +96,8 @@ TILE_GET_INFO_MEMBER(kopunch_state::get_bg_tile_info)
void kopunch_state::video_start()
{
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(kopunch_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(kopunch_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 16, 16);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(kopunch_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(kopunch_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 16, 16);
m_fg_tilemap->set_transparent_pen(0);
}
diff --git a/src/mame/video/ksayakyu.cpp b/src/mame/video/ksayakyu.cpp
index dd070aa039d..c900e78ce66 100644
--- a/src/mame/video/ksayakyu.cpp
+++ b/src/mame/video/ksayakyu.cpp
@@ -116,8 +116,8 @@ void ksayakyu_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &clipre
void ksayakyu_state::video_start()
{
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ksayakyu_state::get_ksayakyu_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32 * 8);
- m_textmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ksayakyu_state::get_text_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ksayakyu_state::get_ksayakyu_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32 * 8);
+ m_textmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ksayakyu_state::get_text_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_textmap->set_transparent_pen(0);
}
diff --git a/src/mame/video/kyugo.cpp b/src/mame/video/kyugo.cpp
index f482b2027b3..756c0a6f777 100644
--- a/src/mame/video/kyugo.cpp
+++ b/src/mame/video/kyugo.cpp
@@ -47,8 +47,8 @@ void kyugo_state::video_start()
{
m_color_codes = memregion("proms")->base() + 0x300;
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(kyugo_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(kyugo_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(kyugo_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(kyugo_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_fg_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/labyrunr.cpp b/src/mame/video/labyrunr.cpp
index c8017a5ed42..e3cf3776d9c 100644
--- a/src/mame/video/labyrunr.cpp
+++ b/src/mame/video/labyrunr.cpp
@@ -103,8 +103,8 @@ TILE_GET_INFO_MEMBER(labyrunr_state::get_tile_info1)
void labyrunr_state::video_start()
{
- m_layer0 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(labyrunr_state::get_tile_info0),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_layer1 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(labyrunr_state::get_tile_info1),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_layer0 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(labyrunr_state::get_tile_info0)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_layer1 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(labyrunr_state::get_tile_info1)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_layer0->set_transparent_pen(0);
m_layer1->set_transparent_pen(0);
diff --git a/src/mame/video/ladybug.cpp b/src/mame/video/ladybug.cpp
index ae69cb4d321..040c8cd6966 100644
--- a/src/mame/video/ladybug.cpp
+++ b/src/mame/video/ladybug.cpp
@@ -101,7 +101,7 @@ void ladybug_video_device::device_start()
std::fill_n(m_spr_ram.get(), 0x0400, 0);
std::fill_n(m_bg_ram.get(), 0x0800, 0);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ladybug_video_device::get_bg_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ladybug_video_device::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_bg_tilemap->set_scroll_rows(32);
m_bg_tilemap->set_transparent_pen(0);
@@ -432,7 +432,7 @@ void sraider_state::video_start()
{
ladybug_base_state::video_start();
- m_grid_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sraider_state::get_grid_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_grid_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sraider_state::get_grid_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_grid_tilemap->set_scroll_rows(32);
m_grid_tilemap->set_transparent_pen(0);
}
diff --git a/src/mame/video/ladyfrog.cpp b/src/mame/video/ladyfrog.cpp
index f0991b0e39e..22d146d568e 100644
--- a/src/mame/video/ladyfrog.cpp
+++ b/src/mame/video/ladyfrog.cpp
@@ -127,7 +127,7 @@ void ladyfrog_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &clipre
VIDEO_START_MEMBER(ladyfrog_state,ladyfrog_common)
{
m_spriteram = std::make_unique<uint8_t[]>(160);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ladyfrog_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ladyfrog_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_paletteram.resize(0x200);
m_paletteram_ext.resize(0x200);
diff --git a/src/mame/video/lasso.cpp b/src/mame/video/lasso.cpp
index 7a083823229..cc0dfc2d766 100644
--- a/src/mame/video/lasso.cpp
+++ b/src/mame/video/lasso.cpp
@@ -154,7 +154,7 @@ TILE_GET_INFO_MEMBER(lasso_state::pinbo_get_bg_tile_info)
void lasso_state::video_start()
{
/* create tilemap */
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(lasso_state::lasso_get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(lasso_state::lasso_get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_bg_tilemap->set_transparent_pen(0);
}
@@ -162,8 +162,8 @@ void lasso_state::video_start()
VIDEO_START_MEMBER(lasso_state,wwjgtin)
{
/* create tilemaps */
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(lasso_state::lasso_get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_track_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(lasso_state::wwjgtin_get_track_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 128, 64);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(lasso_state::lasso_get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_track_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(lasso_state::wwjgtin_get_track_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 128, 64);
m_bg_tilemap->set_transparent_pen(0);
}
@@ -171,7 +171,7 @@ VIDEO_START_MEMBER(lasso_state,wwjgtin)
VIDEO_START_MEMBER(lasso_state,pinbo)
{
/* create tilemap */
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(lasso_state::pinbo_get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(lasso_state::pinbo_get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_bg_tilemap->set_transparent_pen(0);
}
diff --git a/src/mame/video/lastduel.cpp b/src/mame/video/lastduel.cpp
index 3410c948120..ec09ebd9088 100644
--- a/src/mame/video/lastduel.cpp
+++ b/src/mame/video/lastduel.cpp
@@ -78,9 +78,9 @@ TILE_GET_INFO_MEMBER(lastduel_state::get_fix_info)
VIDEO_START_MEMBER(lastduel_state,lastduel)
{
- m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(lastduel_state::ld_get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
- m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(lastduel_state::ld_get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(lastduel_state::get_fix_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(lastduel_state::ld_get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
+ m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(lastduel_state::ld_get_fg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(lastduel_state::get_fix_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_tilemap[0]->set_transmask(0, 0xffff, 0x0001);
m_tilemap[0]->set_transmask(1, 0xf07f, 0x0f81);
@@ -93,9 +93,9 @@ VIDEO_START_MEMBER(lastduel_state,lastduel)
VIDEO_START_MEMBER(lastduel_state,madgear)
{
- m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(lastduel_state::get_bg_tile_info),this),TILEMAP_SCAN_COLS,16,16,64,32);
- m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(lastduel_state::get_fg_tile_info),this),TILEMAP_SCAN_COLS,16,16,64,32);
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(lastduel_state::get_fix_info),this),TILEMAP_SCAN_ROWS,8,8,64,32);
+ m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(lastduel_state::get_bg_tile_info)), TILEMAP_SCAN_COLS, 16, 16, 64, 32);
+ m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(lastduel_state::get_fg_tile_info)), TILEMAP_SCAN_COLS, 16, 16, 64, 32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(lastduel_state::get_fix_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_tilemap[0]->set_transmask(0, 0xffff, 0x8000);
m_tilemap[0]->set_transmask(1, 0x80ff, 0xff00);
diff --git a/src/mame/video/legionna.cpp b/src/mame/video/legionna.cpp
index 4492f7d4d4b..c2acb3c3ffd 100644
--- a/src/mame/video/legionna.cpp
+++ b/src/mame/video/legionna.cpp
@@ -204,17 +204,17 @@ void legionna_state::common_video_start(bool split, bool has_extended_banking, b
{
common_video_allocate_ptr();
- m_background_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(legionna_state::get_back_tile_info),this), TILEMAP_SCAN_ROWS,16,16,32,32);
+ m_background_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(legionna_state::get_back_tile_info)), TILEMAP_SCAN_ROWS,16,16,32,32);
if (split)
{
- m_midground_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(legionna_state::get_mid_tile_info_split),this), TILEMAP_SCAN_ROWS,16,16,32,32);
+ m_midground_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(legionna_state::get_mid_tile_info_split)), TILEMAP_SCAN_ROWS,16,16,32,32);
}
else
{
- m_midground_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(legionna_state::get_mid_tile_info_share_bgrom),this), TILEMAP_SCAN_ROWS,16,16,32,32);
+ m_midground_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(legionna_state::get_mid_tile_info_share_bgrom)), TILEMAP_SCAN_ROWS,16,16,32,32);
}
- m_foreground_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(legionna_state::get_fore_tile_info),this), TILEMAP_SCAN_ROWS,16,16,32,32);
- m_text_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(legionna_state::get_text_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8,64,32);
+ m_foreground_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(legionna_state::get_fore_tile_info)), TILEMAP_SCAN_ROWS,16,16,32,32);
+ m_text_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(legionna_state::get_text_tile_info)), TILEMAP_SCAN_ROWS, 8, 8,64,32);
m_has_extended_banking = has_extended_banking;
m_has_extended_priority = has_extended_priority;
diff --git a/src/mame/video/leland.cpp b/src/mame/video/leland.cpp
index 4301df5e3ce..7861ac0c553 100644
--- a/src/mame/video/leland.cpp
+++ b/src/mame/video/leland.cpp
@@ -96,7 +96,7 @@ TILE_GET_INFO_MEMBER(ataxx_state::ataxx_get_tile_info)
void leland_state::video_start()
{
/* tilemap */
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(leland_state::leland_get_tile_info),this), tilemap_mapper_delegate(FUNC(leland_state::leland_scan),this), 8, 8, 256, 256);
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(leland_state::leland_get_tile_info)), tilemap_mapper_delegate(*this, FUNC(leland_state::leland_scan)), 8, 8, 256, 256);
/* allocate memory */
m_video_ram = make_unique_clear<u8[]>(VRAM_SIZE);
@@ -122,7 +122,7 @@ void ataxx_state::video_start()
{
// TODO: further untangle driver so the base class doesn't have stuff that isn't common and this can call the base implementation
/* tilemap */
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ataxx_state::ataxx_get_tile_info),this), tilemap_mapper_delegate(FUNC(ataxx_state::ataxx_scan),this), 8, 8, 256, 128);
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ataxx_state::ataxx_get_tile_info)), tilemap_mapper_delegate(*this, FUNC(ataxx_state::ataxx_scan)), 8, 8, 256, 128);
/* first do the standard stuff */
m_video_ram = make_unique_clear<u8[]>(VRAM_SIZE);
diff --git a/src/mame/video/lemmings.cpp b/src/mame/video/lemmings.cpp
index c7c3f80a4f4..3a64c13db9b 100644
--- a/src/mame/video/lemmings.cpp
+++ b/src/mame/video/lemmings.cpp
@@ -33,7 +33,7 @@ TILE_GET_INFO_MEMBER(lemmings_state::get_tile_info)
void lemmings_state::video_start()
{
- m_vram_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(lemmings_state::get_tile_info),this), TILEMAP_SCAN_COLS, 8, 8, 64, 32);
+ m_vram_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(lemmings_state::get_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 64, 32);
m_vram_tilemap->set_transparent_pen(0);
m_bitmap0.fill(0x100);
diff --git a/src/mame/video/liberate.cpp b/src/mame/video/liberate.cpp
index 4bd3e8d580b..5c1acb8b79d 100644
--- a/src/mame/video/liberate.cpp
+++ b/src/mame/video/liberate.cpp
@@ -204,8 +204,8 @@ WRITE8_MEMBER(liberate_state::prosport_bg_vram_w)
VIDEO_START_MEMBER(liberate_state,prosoccr)
{
- m_back_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(liberate_state::get_back_tile_info),this), tilemap_mapper_delegate(FUNC(liberate_state::back_scan),this), 16, 16, 32, 32);
- m_fix_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(liberate_state::get_fix_tile_info),this), tilemap_mapper_delegate(FUNC(liberate_state::fix_scan),this), 8, 8, 32, 32);
+ m_back_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(liberate_state::get_back_tile_info)), tilemap_mapper_delegate(*this, FUNC(liberate_state::back_scan)), 16, 16, 32, 32);
+ m_fix_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(liberate_state::get_fix_tile_info)), tilemap_mapper_delegate(*this, FUNC(liberate_state::fix_scan)), 8, 8, 32, 32);
m_fix_tilemap->set_transparent_pen(0);
@@ -218,8 +218,8 @@ VIDEO_START_MEMBER(liberate_state,prosoccr)
VIDEO_START_MEMBER(liberate_state,boomrang)
{
- m_back_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(liberate_state::get_back_tile_info),this), tilemap_mapper_delegate(FUNC(liberate_state::back_scan),this), 16, 16, 32, 32);
- m_fix_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(liberate_state::get_fix_tile_info),this), tilemap_mapper_delegate(FUNC(liberate_state::fix_scan),this), 8, 8, 32, 32);
+ m_back_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(liberate_state::get_back_tile_info)), tilemap_mapper_delegate(*this, FUNC(liberate_state::back_scan)), 16, 16, 32, 32);
+ m_fix_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(liberate_state::get_fix_tile_info)), tilemap_mapper_delegate(*this, FUNC(liberate_state::fix_scan)), 8, 8, 32, 32);
m_back_tilemap->set_transmask(0, 0x0001, 0x007e); /* Bottom 1 pen/Top 7 pens */
m_fix_tilemap->set_transparent_pen(0);
@@ -227,16 +227,16 @@ VIDEO_START_MEMBER(liberate_state,boomrang)
VIDEO_START_MEMBER(liberate_state,liberate)
{
- m_back_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(liberate_state::get_back_tile_info),this), tilemap_mapper_delegate(FUNC(liberate_state::back_scan),this), 16, 16, 32, 32);
- m_fix_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(liberate_state::get_fix_tile_info),this), tilemap_mapper_delegate(FUNC(liberate_state::fix_scan),this), 8, 8, 32, 32);
+ m_back_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(liberate_state::get_back_tile_info)), tilemap_mapper_delegate(*this, FUNC(liberate_state::back_scan)), 16, 16, 32, 32);
+ m_fix_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(liberate_state::get_fix_tile_info)), tilemap_mapper_delegate(*this, FUNC(liberate_state::fix_scan)), 8, 8, 32, 32);
m_fix_tilemap->set_transparent_pen(0);
}
VIDEO_START_MEMBER(liberate_state,prosport)
{
- m_back_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(liberate_state::prosport_get_back_tile_info),this), tilemap_mapper_delegate(FUNC(liberate_state::back_scan),this), 16, 16, 32, 32);
- m_fix_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(liberate_state::get_fix_tile_info),this), tilemap_mapper_delegate(FUNC(liberate_state::fix_scan),this), 8, 8, 32, 32);
+ m_back_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(liberate_state::prosport_get_back_tile_info)), tilemap_mapper_delegate(*this, FUNC(liberate_state::back_scan)), 16, 16, 32, 32);
+ m_fix_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(liberate_state::get_fix_tile_info)), tilemap_mapper_delegate(*this, FUNC(liberate_state::fix_scan)), 8, 8, 32, 32);
m_fix_tilemap->set_transparent_pen(0);
}
diff --git a/src/mame/video/lkage.cpp b/src/mame/video/lkage.cpp
index 4a8824e5f9f..082897d358a 100644
--- a/src/mame/video/lkage.cpp
+++ b/src/mame/video/lkage.cpp
@@ -87,9 +87,9 @@ TILE_GET_INFO_MEMBER(lkage_state::get_tx_tile_info)
void lkage_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(lkage_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(lkage_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(lkage_state::get_tx_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(lkage_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(lkage_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(lkage_state::get_tx_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(0);
m_tx_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/lockon.cpp b/src/mame/video/lockon.cpp
index b234716aa32..5334f22d80f 100644
--- a/src/mame/video/lockon.cpp
+++ b/src/mame/video/lockon.cpp
@@ -886,7 +886,7 @@ void lockon_state::hud_draw( bitmap_ind16 &bitmap, const rectangle &cliprect )
void lockon_state::video_start()
{
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(lockon_state::get_lockon_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(lockon_state::get_lockon_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_tilemap->set_transparent_pen(0);
/* Allocate the two frame buffers for rotation */
diff --git a/src/mame/video/lordgun.cpp b/src/mame/video/lordgun.cpp
index d314ca47e8e..eabeca1e51c 100644
--- a/src/mame/video/lordgun.cpp
+++ b/src/mame/video/lordgun.cpp
@@ -70,16 +70,16 @@ void lordgun_state::video_start()
int h = m_screen->height();
// 0x800 x 200
- m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(lordgun_state::get_tile_info<0>),this), TILEMAP_SCAN_ROWS,8,8, 0x100, 0x40 );
+ m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(lordgun_state::get_tile_info<0>)), TILEMAP_SCAN_ROWS, 8, 8, 0x100, 0x40);
// 0x800 x 200
- m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(lordgun_state::get_tile_info<1>),this), TILEMAP_SCAN_ROWS,16,16, 0x80,0x20 );
+ m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(lordgun_state::get_tile_info<1>)), TILEMAP_SCAN_ROWS, 16,16, 0x80, 0x20);
// 0x800 x 200
- m_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(lordgun_state::get_tile_info<2>),this), TILEMAP_SCAN_ROWS,32,32, 0x40,0x10 );
+ m_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(lordgun_state::get_tile_info<2>)), TILEMAP_SCAN_ROWS, 32,32, 0x40, 0x10);
// 0x200 x 100
- m_tilemap[3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(lordgun_state::get_tile_info<3>),this), TILEMAP_SCAN_ROWS,8,8, 0x40,0x20 );
+ m_tilemap[3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(lordgun_state::get_tile_info<3>)), TILEMAP_SCAN_ROWS, 8, 8, 0x40, 0x20);
m_tilemap[0]->set_scroll_rows(1);
m_tilemap[0]->set_scroll_cols(1);
diff --git a/src/mame/video/lucky74.cpp b/src/mame/video/lucky74.cpp
index adf9b5a5623..c2436f0dc47 100644
--- a/src/mame/video/lucky74.cpp
+++ b/src/mame/video/lucky74.cpp
@@ -227,8 +227,8 @@ TILE_GET_INFO_MEMBER(lucky74_state::get_bg_tile_info)
void lucky74_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(lucky74_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(lucky74_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(lucky74_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(lucky74_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_fg_tilemap->set_transparent_pen(0);
}
diff --git a/src/mame/video/lvcards.cpp b/src/mame/video/lvcards.cpp
index 0434e209fea..f7e19bb21ad 100644
--- a/src/mame/video/lvcards.cpp
+++ b/src/mame/video/lvcards.cpp
@@ -71,7 +71,7 @@ TILE_GET_INFO_MEMBER(lvcards_state::get_bg_tile_info)
void lvcards_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(lvcards_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS,
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(lvcards_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS,
8, 8, 32, 32);
}
diff --git a/src/mame/video/lwings.cpp b/src/mame/video/lwings.cpp
index acda77e9590..e0c36dea97f 100644
--- a/src/mame/video/lwings.cpp
+++ b/src/mame/video/lwings.cpp
@@ -78,21 +78,21 @@ TILE_GET_INFO_MEMBER(lwings_state::get_bg2_tile_info)
void lwings_state::video_start()
{
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(lwings_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_bg1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(lwings_state::lwings_get_bg1_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(lwings_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(lwings_state::lwings_get_bg1_tile_info)), TILEMAP_SCAN_COLS, 16, 16, 32, 32);
m_fg_tilemap->set_transparent_pen(3);
}
VIDEO_START_MEMBER(lwings_state,trojan)
{
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(lwings_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_bg1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(lwings_state::trojan_get_bg1_tile_info),this),TILEMAP_SCAN_COLS, 16, 16, 32, 32);
- m_bg2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(lwings_state::get_bg2_tile_info),this), tilemap_mapper_delegate(FUNC(lwings_state::get_bg2_memory_offset),this), 16, 16, 32, 16);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(lwings_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(lwings_state::trojan_get_bg1_tile_info)),TILEMAP_SCAN_COLS, 16, 16, 32, 32);
+ m_bg2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(lwings_state::get_bg2_tile_info)), tilemap_mapper_delegate(*this, FUNC(lwings_state::get_bg2_memory_offset)), 16, 16, 32, 16);
m_fg_tilemap->set_transparent_pen(3);
- m_bg1_tilemap->set_transmask(0, 0xffff, 0x0001); /* split type 0 is totally transparent in front half */
- m_bg1_tilemap->set_transmask(1, 0xf07f, 0x0f81); /* split type 1 has pens 7-11 opaque in front half */
+ m_bg1_tilemap->set_transmask(0, 0xffff, 0x0001); // split type 0 is totally transparent in front half
+ m_bg1_tilemap->set_transmask(1, 0xf07f, 0x0f81); // split type 1 has pens 7-11 opaque in front half
m_bg2_avenger_hw = 0;
m_spr_avenger_hw = 0;
diff --git a/src/mame/video/m10.cpp b/src/mame/video/m10.cpp
index e3d2fda7e9a..ce111021505 100644
--- a/src/mame/video/m10.cpp
+++ b/src/mame/video/m10.cpp
@@ -97,21 +97,18 @@ inline void m10_state::plot_pixel_m10( bitmap_ind16 &bm, int x, int y, int col )
VIDEO_START_MEMBER(m10_state,m10)
{
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(m10_state::get_tile_info),this), tilemap_mapper_delegate(FUNC(m10_state::tilemap_scan),this), 8, 8, 32, 32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(m10_state::get_tile_info)), tilemap_mapper_delegate(*this, FUNC(m10_state::tilemap_scan)), 8, 8, 32, 32);
m_tx_tilemap->set_transparent_pen(0);
m_gfxdecode->set_gfx(1, std::make_unique<gfx_element>(m_palette, backlayout, m_chargen, 0, 8, 0));
m_back_gfx = m_gfxdecode->gfx(1);
- return ;
}
VIDEO_START_MEMBER(m10_state,m15)
{
m_gfxdecode->set_gfx(0,std::make_unique<gfx_element>(m_palette, charlayout, m_chargen, 0, 8, 0));
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(m10_state::get_tile_info),this),tilemap_mapper_delegate(FUNC(m10_state::tilemap_scan),this), 8, 8, 32, 32);
-
- return ;
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(m10_state::get_tile_info)), tilemap_mapper_delegate(*this, FUNC(m10_state::tilemap_scan)), 8, 8, 32, 32);
}
/***************************************************************************
diff --git a/src/mame/video/m107.cpp b/src/mame/video/m107.cpp
index 3be0b00a65b..880295c76b4 100644
--- a/src/mame/video/m107.cpp
+++ b/src/mame/video/m107.cpp
@@ -127,7 +127,7 @@ void m107_state::video_start()
pf_layer_info *layer = &m_pf_layer[laynum];
/* allocate a tilemaps per layer */
- layer->tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(m107_state::get_pf_tile_info),this), TILEMAP_SCAN_ROWS, 8,8, 64,64);
+ layer->tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(m107_state::get_pf_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 64,64);
/* set the user data to point to the layer */
layer->tmap->set_user_data(&m_pf_layer[laynum]);
diff --git a/src/mame/video/m52.cpp b/src/mame/video/m52.cpp
index dedb6bb33ad..e1f7eab1cbc 100644
--- a/src/mame/video/m52.cpp
+++ b/src/mame/video/m52.cpp
@@ -152,7 +152,7 @@ TILE_GET_INFO_MEMBER(m52_state::get_tile_info)
void m52_state::video_start()
{
- m_tx_tilemap = &machine().tilemap().create(*m_tx_gfxdecode, tilemap_get_info_delegate(FUNC(m52_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_tx_tilemap = &machine().tilemap().create(*m_tx_gfxdecode, tilemap_get_info_delegate(*this, FUNC(m52_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_tx_tilemap->set_transparent_pen(0);
m_tx_tilemap->set_scrolldx(127, 127);
diff --git a/src/mame/video/m57.cpp b/src/mame/video/m57.cpp
index 52abd052a73..be3b81010d0 100644
--- a/src/mame/video/m57.cpp
+++ b/src/mame/video/m57.cpp
@@ -138,7 +138,7 @@ WRITE8_MEMBER(m57_state::m57_videoram_w)
void m57_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(m57_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(m57_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_bg_tilemap->set_scroll_rows(256);
save_item(NAME(m_flipscreen));
diff --git a/src/mame/video/m58.cpp b/src/mame/video/m58.cpp
index 413cca1e90f..1e20b51308c 100644
--- a/src/mame/video/m58.cpp
+++ b/src/mame/video/m58.cpp
@@ -169,7 +169,7 @@ TILEMAP_MAPPER_MEMBER(m58_state::tilemap_scan_rows)
void m58_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(m58_state::get_bg_tile_info),this), tilemap_mapper_delegate(FUNC(m58_state::tilemap_scan_rows),this), 8, 8, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(m58_state::get_bg_tile_info)), tilemap_mapper_delegate(*this, FUNC(m58_state::tilemap_scan_rows)), 8, 8, 64, 32);
m_bg_tilemap->set_scrolldy(32, 32);
m_screen->register_screen_bitmap(m_scroll_panel_bitmap);
diff --git a/src/mame/video/m62.cpp b/src/mame/video/m62.cpp
index 08adb59e029..4e0e61155cf 100644
--- a/src/mame/video/m62.cpp
+++ b/src/mame/video/m62.cpp
@@ -337,7 +337,7 @@ void m62_state::draw_sprites( bitmap_rgb32 &bitmap, const rectangle &cliprect, i
}
}
-void m62_state::m62_start( tilemap_get_info_delegate tile_get_info, int rows, int cols, int x1, int y1, int x2, int y2 )
+void m62_state::m62_start(tilemap_get_info_delegate tile_get_info, int rows, int cols, int x1, int y1, int x2, int y2)
{
m_bg_tilemap = &machine().tilemap().create(*m_chr_decode, tile_get_info, TILEMAP_SCAN_ROWS, x1, y1, x2, y2);
@@ -350,7 +350,7 @@ void m62_state::m62_start( tilemap_get_info_delegate tile_get_info, int rows, in
m_bg_tilemap->set_scroll_cols(cols);
}
-void m62_state::m62_textlayer( tilemap_get_info_delegate tile_get_info, int rows, int cols, int x1, int y1, int x2, int y2 )
+void m62_state::m62_textlayer(tilemap_get_info_delegate tile_get_info, int rows, int cols, int x1, int y1, int x2, int y2)
{
m_fg_tilemap = &machine().tilemap().create(*m_fg_decode, tile_get_info, TILEMAP_SCAN_ROWS, x1, y1, x2, y2);
@@ -390,7 +390,7 @@ TILE_GET_INFO_MEMBER(m62_state::get_kungfum_bg_tile_info)
VIDEO_START_MEMBER(m62_state,kungfum)
{
- m62_start(tilemap_get_info_delegate(FUNC(m62_state::get_kungfum_bg_tile_info),this), 32, 0, 8, 8, 64, 32);
+ m62_start(tilemap_get_info_delegate(*this, FUNC(m62_state::get_kungfum_bg_tile_info)), 32, 0, 8, 8, 64, 32);
}
uint32_t m62_state::screen_update_kungfum(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
@@ -432,9 +432,9 @@ TILE_GET_INFO_MEMBER(m62_state::get_ldrun_bg_tile_info)
void m62_state::video_start()
{
- m62_start(tilemap_get_info_delegate(FUNC(m62_state::get_ldrun_bg_tile_info),this), 1, 1, 8, 8, 64, 32);
- m_bg_tilemap->set_transmask(0, 0xffff, 0x0000); /* split type 0 is totally transparent in front half */
- m_bg_tilemap->set_transmask(1, 0x0001, 0xfffe); /* split type 1 has pen 0 transparent in front half */
+ m62_start(tilemap_get_info_delegate(*this, FUNC(m62_state::get_ldrun_bg_tile_info)), 1, 1, 8, 8, 64, 32);
+ m_bg_tilemap->set_transmask(0, 0xffff, 0x0000); // split type 0 is totally transparent in front half
+ m_bg_tilemap->set_transmask(1, 0x0001, 0xfffe); // split type 1 has pen 0 transparent in front half
}
uint32_t m62_state::screen_update_ldrun(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
@@ -470,7 +470,7 @@ TILE_GET_INFO_MEMBER(m62_state::get_ldrun2_bg_tile_info)
VIDEO_START_MEMBER(m62_state,ldrun2)
{
- m62_start(tilemap_get_info_delegate(FUNC(m62_state::get_ldrun2_bg_tile_info),this), 1, 1, 8, 8, 64, 32);
+ m62_start(tilemap_get_info_delegate(*this, FUNC(m62_state::get_ldrun2_bg_tile_info)), 1, 1, 8, 8, 64, 32);
m_bg_tilemap->set_transmask(0, 0xffff, 0x0000); /* split type 0 is totally transparent in front half */
m_bg_tilemap->set_transmask(1, 0x0001, 0xfffe); /* split type 1 has pen 0 transparent in front half */
}
@@ -532,8 +532,8 @@ TILE_GET_INFO_MEMBER(m62_state::get_battroad_fg_tile_info)
VIDEO_START_MEMBER(m62_state,battroad)
{
- m62_start(tilemap_get_info_delegate(FUNC(m62_state::get_battroad_bg_tile_info),this), 1, 1, 8, 8, 64, 32);
- m62_textlayer(tilemap_get_info_delegate(FUNC(m62_state::get_battroad_fg_tile_info),this), 1, 1, 8, 8, 32, 32);
+ m62_start(tilemap_get_info_delegate(*this, FUNC(m62_state::get_battroad_bg_tile_info)), 1, 1, 8, 8, 64, 32);
+ m62_textlayer(tilemap_get_info_delegate(*this, FUNC(m62_state::get_battroad_fg_tile_info)), 1, 1, 8, 8, 32, 32);
m_bg_tilemap->set_transmask(0, 0xffff, 0x0000); /* split type 0 is totally transparent in front half */
m_bg_tilemap->set_transmask(1, 0x0001, 0xfffe); /* split type 1 has pen 0 transparent in front half */
}
@@ -568,7 +568,7 @@ TILE_GET_INFO_MEMBER(m62_state::get_ldrun4_bg_tile_info)
VIDEO_START_MEMBER(m62_state,ldrun4)
{
- m62_start(tilemap_get_info_delegate(FUNC(m62_state::get_ldrun4_bg_tile_info),this), 1, 0, 8, 8, 64, 32);
+ m62_start(tilemap_get_info_delegate(*this, FUNC(m62_state::get_ldrun4_bg_tile_info)), 1, 0, 8, 8, 64, 32);
}
uint32_t m62_state::screen_update_ldrun4(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
@@ -607,8 +607,8 @@ TILE_GET_INFO_MEMBER(m62_state::get_lotlot_fg_tile_info)
VIDEO_START_MEMBER(m62_state,lotlot)
{
- m62_start(tilemap_get_info_delegate(FUNC(m62_state::get_lotlot_bg_tile_info),this), 1, 1, 12, 10, 32, 64);
- m62_textlayer(tilemap_get_info_delegate(FUNC(m62_state::get_lotlot_fg_tile_info),this), 1, 1, 12, 10, 32, 64);
+ m62_start(tilemap_get_info_delegate(*this, FUNC(m62_state::get_lotlot_bg_tile_info)), 1, 1, 12, 10, 32, 64);
+ m62_textlayer(tilemap_get_info_delegate(*this, FUNC(m62_state::get_lotlot_fg_tile_info)), 1, 1, 12, 10, 32, 64);
}
uint32_t m62_state::screen_update_lotlot(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
@@ -666,13 +666,13 @@ TILE_GET_INFO_MEMBER(m62_state::get_kidniki_fg_tile_info)
VIDEO_START_MEMBER(m62_state,kidniki)
{
- m_bg_tilemap = &machine().tilemap().create(*m_chr_decode, tilemap_get_info_delegate(FUNC(m62_state::get_kidniki_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_bg_tilemap->set_transmask(0, 0xffff, 0x0000); /* split type 0 is totally transparent in front half */
- m_bg_tilemap->set_transmask(1, 0x0001, 0xfffe); /* split type 1 has pen 0 transparent in front half */
+ m_bg_tilemap = &machine().tilemap().create(*m_chr_decode, tilemap_get_info_delegate(*this, FUNC(m62_state::get_kidniki_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap->set_transmask(0, 0xffff, 0x0000); // split type 0 is totally transparent in front half
+ m_bg_tilemap->set_transmask(1, 0x0001, 0xfffe); // split type 1 has pen 0 transparent in front half
register_savestate();
- m62_textlayer(tilemap_get_info_delegate(FUNC(m62_state::get_kidniki_fg_tile_info),this), 1, 1, 12, 8, 32, 64);
+ m62_textlayer(tilemap_get_info_delegate(*this, FUNC(m62_state::get_kidniki_fg_tile_info)), 1, 1, 12, 8, 32, 64);
}
uint32_t m62_state::screen_update_kidniki(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
@@ -721,8 +721,8 @@ TILE_GET_INFO_MEMBER(m62_state::get_spelunkr_fg_tile_info)
VIDEO_START_MEMBER(m62_state,spelunkr)
{
- m62_start(tilemap_get_info_delegate(FUNC(m62_state::get_spelunkr_bg_tile_info),this), 1, 1, 8, 8, 64, 64);
- m62_textlayer(tilemap_get_info_delegate(FUNC(m62_state::get_spelunkr_fg_tile_info),this), 1, 1, 12, 8, 32, 32);
+ m62_start(tilemap_get_info_delegate(*this, FUNC(m62_state::get_spelunkr_bg_tile_info)), 1, 1, 8, 8, 64, 64);
+ m62_textlayer(tilemap_get_info_delegate(*this, FUNC(m62_state::get_spelunkr_fg_tile_info)), 1, 1, 12, 8, 32, 32);
}
uint32_t m62_state::screen_update_spelunkr(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
@@ -763,8 +763,8 @@ TILE_GET_INFO_MEMBER(m62_state::get_spelunk2_bg_tile_info)
VIDEO_START_MEMBER(m62_state,spelunk2)
{
- m62_start(tilemap_get_info_delegate(FUNC(m62_state::get_spelunk2_bg_tile_info),this), 1, 1, 8, 8, 64, 64);
- m62_textlayer(tilemap_get_info_delegate(FUNC(m62_state::get_spelunkr_fg_tile_info),this), 1, 1, 12, 8, 32, 32);
+ m62_start(tilemap_get_info_delegate(*this, FUNC(m62_state::get_spelunk2_bg_tile_info)), 1, 1, 8, 8, 64, 64);
+ m62_textlayer(tilemap_get_info_delegate(*this, FUNC(m62_state::get_spelunkr_fg_tile_info)), 1, 1, 12, 8, 32, 32);
}
uint32_t m62_state::screen_update_spelunk2(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
@@ -806,10 +806,10 @@ TILE_GET_INFO_MEMBER(m62_state::get_youjyudn_fg_tile_info)
VIDEO_START_MEMBER(m62_state,youjyudn)
{
- m62_start(tilemap_get_info_delegate(FUNC(m62_state::get_youjyudn_bg_tile_info),this), 1, 0, 8, 16, 64, 16);
- m62_textlayer(tilemap_get_info_delegate(FUNC(m62_state::get_youjyudn_fg_tile_info),this), 1, 1, 12, 8, 32, 32);
- m_bg_tilemap->set_transmask(0, 0xffff, 0x0000); /* split type 0 is totally transparent in front half */
- m_bg_tilemap->set_transmask(1, 0x0001, 0xfffe); /* split type 1 has pen 0 transparent in front half */
+ m62_start(tilemap_get_info_delegate(*this, FUNC(m62_state::get_youjyudn_bg_tile_info)), 1, 0, 8, 16, 64, 16);
+ m62_textlayer(tilemap_get_info_delegate(*this, FUNC(m62_state::get_youjyudn_fg_tile_info)), 1, 1, 12, 8, 32, 32);
+ m_bg_tilemap->set_transmask(0, 0xffff, 0x0000); // split type 0 is totally transparent in front half
+ m_bg_tilemap->set_transmask(1, 0x0001, 0xfffe); // split type 1 has pen 0 transparent in front half
}
uint32_t m62_state::screen_update_youjyudn(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
@@ -834,10 +834,8 @@ WRITE8_MEMBER(m62_state::horizon_scrollram_w)
TILE_GET_INFO_MEMBER(m62_state::get_horizon_bg_tile_info)
{
- int code;
- int color;
- code = m_m62_tileram[tile_index << 1];
- color = m_m62_tileram[(tile_index << 1) | 1];
+ int const code = m_m62_tileram[tile_index << 1];
+ int const color = m_m62_tileram[(tile_index << 1) | 1];
SET_TILE_INFO_MEMBER(0, code | ((color & 0xc0) << 2) | ((color & 0x20) << 5), color & 0x1f, 0);
if (((color & 0x1f) >> 1) >= 0x08)
@@ -848,18 +846,16 @@ TILE_GET_INFO_MEMBER(m62_state::get_horizon_bg_tile_info)
VIDEO_START_MEMBER(m62_state,horizon)
{
- m62_start(tilemap_get_info_delegate(FUNC(m62_state::get_horizon_bg_tile_info),this), 32, 0, 8, 8, 64, 32);
- m_bg_tilemap->set_transmask(0, 0xffff, 0x0000); /* split type 0 is totally transparent in front half */
- m_bg_tilemap->set_transmask(1, 0x0001, 0xfffe); /* split type 1 has pen 0 transparent in front half */
+ m62_start(tilemap_get_info_delegate(*this, FUNC(m62_state::get_horizon_bg_tile_info)), 32, 0, 8, 8, 64, 32);
+ m_bg_tilemap->set_transmask(0, 0xffff, 0x0000); // split type 0 is totally transparent in front half
+ m_bg_tilemap->set_transmask(1, 0x0001, 0xfffe); // split type 1 has pen 0 transparent in front half
}
uint32_t m62_state::screen_update_horizon(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- int i;
- for (i = 0; i < 32; i++)
- {
+ for (int i = 0; i < 32; i++)
m_bg_tilemap->set_scrollx(i, m_scrollram[i << 1] | (m_scrollram[(i << 1) | 1] << 8));
- }
+
m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
draw_sprites(bitmap, cliprect, 0x1f, 0x00, 0x00);
m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
diff --git a/src/mame/video/m72.cpp b/src/mame/video/m72.cpp
index 7f3415898d2..6cf2a07c0d1 100644
--- a/src/mame/video/m72.cpp
+++ b/src/mame/video/m72.cpp
@@ -95,8 +95,8 @@ void m72_state::register_savestate()
VIDEO_START_MEMBER(m72_state,m72)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(m72_state::get_bg_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,64);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(m72_state::get_fg_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,64);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(m72_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 64,64);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(m72_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 64,64);
m_fg_tilemap->set_transmask(0,0xffff,0x0001);
m_fg_tilemap->set_transmask(1,0x00ff,0xff01);
@@ -178,11 +178,11 @@ TILEMAP_MAPPER_MEMBER(m72_state::m82_scan_rows)
VIDEO_START_MEMBER(m72_state,m82)
{
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(m72_state::rtype2_get_tile_info<0>),this),TILEMAP_SCAN_ROWS,8,8,64,64);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(m72_state::rtype2_get_tile_info<1>),this),TILEMAP_SCAN_ROWS,8,8,64,64);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(m72_state::rtype2_get_tile_info<0>)), TILEMAP_SCAN_ROWS, 8,8, 64,64);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(m72_state::rtype2_get_tile_info<1>)), TILEMAP_SCAN_ROWS, 8,8, 64,64);
// The tilemap can be 256x64, but seems to be used at 128x64 (scroll wraparound).
// The layout ramains 256x64, the right half is just not displayed.
- m_bg_tilemap_large = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(m72_state::rtype2_get_tile_info<1>),this),tilemap_mapper_delegate(FUNC(m72_state::m82_scan_rows),this),8,8,128,64);
+ m_bg_tilemap_large = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(m72_state::rtype2_get_tile_info<1>)), tilemap_mapper_delegate(*this, FUNC(m72_state::m82_scan_rows)), 8,8, 128,64);
m_fg_tilemap->set_transmask(0,0xffff,0x0001);
m_fg_tilemap->set_transmask(1,0x00ff,0xff01);
@@ -216,8 +216,8 @@ VIDEO_START_MEMBER(m72_state,m82)
// M84
VIDEO_START_MEMBER(m72_state,rtype2)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(m72_state::rtype2_get_tile_info<1>),this),TILEMAP_SCAN_ROWS,8,8,64,64);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(m72_state::rtype2_get_tile_info<0>),this),TILEMAP_SCAN_ROWS,8,8,64,64);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(m72_state::rtype2_get_tile_info<1>)), TILEMAP_SCAN_ROWS, 8,8, 64,64);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(m72_state::rtype2_get_tile_info<0>)), TILEMAP_SCAN_ROWS, 8,8, 64,64);
m_fg_tilemap->set_transmask(0,0xffff,0x0001);
m_fg_tilemap->set_transmask(1,0x00ff,0xff01);
diff --git a/src/mame/video/m90.cpp b/src/mame/video/m90.cpp
index 6b581241b26..2bdeef80636 100644
--- a/src/mame/video/m90.cpp
+++ b/src/mame/video/m90.cpp
@@ -50,10 +50,10 @@ TILE_GET_INFO_MEMBER(m90_state::get_tile_info)
void m90_state::common_tilemap_init()
{
- m_pf_layer[0][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(m90_state::get_tile_info),this),TILEMAP_SCAN_ROWS,8,8, 64,64);
- m_pf_layer[0][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(m90_state::get_tile_info),this),TILEMAP_SCAN_ROWS,8,8,128,64);
- m_pf_layer[1][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(m90_state::get_tile_info),this),TILEMAP_SCAN_ROWS,8,8, 64,64);
- m_pf_layer[1][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(m90_state::get_tile_info),this),TILEMAP_SCAN_ROWS,8,8,128,64);
+ m_pf_layer[0][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(m90_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 64,64);
+ m_pf_layer[0][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(m90_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 128,64);
+ m_pf_layer[1][0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(m90_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 64,64);
+ m_pf_layer[1][1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(m90_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 128,64);
// fix for bootlegs
m_pf_layer[0][0]->set_user_data(&m_video_data[0x0000]);
diff --git a/src/mame/video/m92.cpp b/src/mame/video/m92.cpp
index 4b3ca83cb40..7ac04a05988 100644
--- a/src/mame/video/m92.cpp
+++ b/src/mame/video/m92.cpp
@@ -241,8 +241,8 @@ VIDEO_START_MEMBER(m92_state,m92)
M92_pf_layer_info *layer = &m_pf_layer[laynum];
/* allocate two tilemaps per layer, one normal, one wide */
- layer->tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(m92_state::get_pf_tile_info),this), TILEMAP_SCAN_ROWS, 8,8, 64,64);
- layer->wide_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(m92_state::get_pf_tile_info),this), TILEMAP_SCAN_ROWS, 8,8, 128,64);
+ layer->tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(m92_state::get_pf_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 64,64);
+ layer->wide_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(m92_state::get_pf_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 128,64);
/* set the user data for each one to point to the layer */
layer->tmap->set_user_data(&m_pf_layer[laynum]);
diff --git a/src/mame/video/macrossp.cpp b/src/mame/video/macrossp.cpp
index 6658441b966..b50a8371b3f 100644
--- a/src/mame/video/macrossp.cpp
+++ b/src/mame/video/macrossp.cpp
@@ -168,10 +168,10 @@ void macrossp_state::video_start()
m_spriteram_old = make_unique_clear<uint32_t[]>(m_spriteram.bytes() / 4);
m_spriteram_old2 = make_unique_clear<uint32_t[]>(m_spriteram.bytes() / 4);
- m_text_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(macrossp_state::get_macrossp_text_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
- m_scra_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(macrossp_state::get_macrossp_scra_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
- m_scrb_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(macrossp_state::get_macrossp_scrb_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
- m_scrc_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(macrossp_state::get_macrossp_scrc_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
+ m_text_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(macrossp_state::get_macrossp_text_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
+ m_scra_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(macrossp_state::get_macrossp_scra_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
+ m_scrb_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(macrossp_state::get_macrossp_scrb_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
+ m_scrc_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(macrossp_state::get_macrossp_scrc_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
m_text_tilemap->set_transparent_pen(0);
m_scra_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/madalien.cpp b/src/mame/video/madalien.cpp
index 380d80cba01..56496074be2 100644
--- a/src/mame/video/madalien.cpp
+++ b/src/mame/video/madalien.cpp
@@ -118,27 +118,24 @@ WRITE8_MEMBER(madalien_state::madalien_videoram_w)
void madalien_state::video_start()
{
- static const tilemap_mapper_delegate scan_functions[4] =
+ // can't make this static or it will keep stale pointers after a hard reset
+ const tilemap_mapper_delegate scan_functions[4] =
{
- tilemap_mapper_delegate(FUNC(madalien_state::scan_mode0),this),
- tilemap_mapper_delegate(FUNC(madalien_state::scan_mode1),this),
- tilemap_mapper_delegate(FUNC(madalien_state::scan_mode2),this),
- tilemap_mapper_delegate(FUNC(madalien_state::scan_mode3),this)
+ tilemap_mapper_delegate(*this, FUNC(madalien_state::scan_mode0)),
+ tilemap_mapper_delegate(*this, FUNC(madalien_state::scan_mode1)),
+ tilemap_mapper_delegate(*this, FUNC(madalien_state::scan_mode2)),
+ tilemap_mapper_delegate(*this, FUNC(madalien_state::scan_mode3))
};
- static const int tilemap_cols[4] =
- {
- 16, 16, 32, 32
- };
+ static constexpr int tilemap_cols[4] = { 16, 16, 32, 32 };
- m_tilemap_fg = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(madalien_state::get_tile_info_FG),this), TILEMAP_SCAN_COLS_FLIP_X, 8, 8, 32, 32);
+ m_tilemap_fg = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(madalien_state::get_tile_info_FG)), TILEMAP_SCAN_COLS_FLIP_X, 8, 8, 32, 32);
m_tilemap_fg->set_transparent_pen(0);
for (int i = 0; i < 4; i++)
{
- m_tilemap_edge1[i] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(madalien_state::get_tile_info_BG_1),this), scan_functions[i], 16, 16, tilemap_cols[i], 8);
-
- m_tilemap_edge2[i] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(madalien_state::get_tile_info_BG_2),this), scan_functions[i], 16, 16, tilemap_cols[i], 8);
+ m_tilemap_edge1[i] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(madalien_state::get_tile_info_BG_1)), scan_functions[i], 16, 16, tilemap_cols[i], 8);
+ m_tilemap_edge2[i] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(madalien_state::get_tile_info_BG_2)), scan_functions[i], 16, 16, tilemap_cols[i], 8);
}
m_headlight_bitmap = std::make_unique<bitmap_ind16>(128, 128);
diff --git a/src/mame/video/mainsnk.cpp b/src/mame/video/mainsnk.cpp
index 3d7e4344013..1be055435e2 100644
--- a/src/mame/video/mainsnk.cpp
+++ b/src/mame/video/mainsnk.cpp
@@ -69,8 +69,8 @@ TILE_GET_INFO_MEMBER(mainsnk_state::get_bg_tile_info)
void mainsnk_state::video_start()
{
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mainsnk_state::get_tx_tile_info),this), tilemap_mapper_delegate(FUNC(mainsnk_state::marvins_tx_scan_cols),this), 8, 8, 36, 28);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mainsnk_state::get_bg_tile_info),this), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mainsnk_state::get_tx_tile_info)), tilemap_mapper_delegate(*this, FUNC(mainsnk_state::marvins_tx_scan_cols)), 8, 8, 36, 28);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mainsnk_state::get_bg_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
m_tx_tilemap->set_transparent_pen(15);
m_tx_tilemap->set_scrolldy(8, 8);
diff --git a/src/mame/video/mappy.cpp b/src/mame/video/mappy.cpp
index ccb2a54715c..5a4b7a66d13 100644
--- a/src/mame/video/mappy.cpp
+++ b/src/mame/video/mappy.cpp
@@ -304,7 +304,7 @@ TILE_GET_INFO_MEMBER(mappy_state::mappy_get_tile_info)
VIDEO_START_MEMBER(mappy_state,superpac)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mappy_state::superpac_get_tile_info),this),tilemap_mapper_delegate(FUNC(mappy_state::superpac_tilemap_scan),this),8,8,36,28);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mappy_state::superpac_get_tile_info)), tilemap_mapper_delegate(*this, FUNC(mappy_state::superpac_tilemap_scan)), 8, 8, 36, 28);
m_screen->register_screen_bitmap(m_sprite_bitmap);
m_bg_tilemap->configure_groups(*m_gfxdecode->gfx(0), 31);
@@ -312,14 +312,14 @@ VIDEO_START_MEMBER(mappy_state,superpac)
VIDEO_START_MEMBER(mappy_state,phozon)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mappy_state::phozon_get_tile_info),this),tilemap_mapper_delegate(FUNC(mappy_state::superpac_tilemap_scan),this),8,8,36,28);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mappy_state::phozon_get_tile_info)), tilemap_mapper_delegate(*this, FUNC(mappy_state::superpac_tilemap_scan)), 8, 8, 36, 28);
m_bg_tilemap->configure_groups(*m_gfxdecode->gfx(0), 15);
}
VIDEO_START_MEMBER(mappy_state,mappy)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mappy_state::mappy_get_tile_info),this),tilemap_mapper_delegate(FUNC(mappy_state::mappy_tilemap_scan),this),8,8,36,60);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mappy_state::mappy_get_tile_info)), tilemap_mapper_delegate(*this, FUNC(mappy_state::mappy_tilemap_scan)), 8, 8, 36, 60);
m_bg_tilemap->configure_groups(*m_gfxdecode->gfx(0), 31);
m_bg_tilemap->set_scroll_cols(36);
diff --git a/src/mame/video/marineb.cpp b/src/mame/video/marineb.cpp
index 11fd9de48fb..03995835aa0 100644
--- a/src/mame/video/marineb.cpp
+++ b/src/mame/video/marineb.cpp
@@ -67,7 +67,7 @@ TILE_GET_INFO_MEMBER(marineb_state::get_tile_info)
void marineb_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(marineb_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(marineb_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_bg_tilemap->set_scroll_cols(32);
save_item(NAME(m_palette_bank));
diff --git a/src/mame/video/mario.cpp b/src/mame/video/mario.cpp
index 9619a59bc3e..162d3de1ea4 100644
--- a/src/mame/video/mario.cpp
+++ b/src/mame/video/mario.cpp
@@ -121,7 +121,7 @@ TILE_GET_INFO_MEMBER(mario_state::get_bg_tile_info)
void mario_state::video_start()
{
m_bg_tilemap = &machine().tilemap().create(
- *m_gfxdecode, tilemap_get_info_delegate(FUNC(mario_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS,
+ *m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mario_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS,
8, 8, 32, 32);
m_gfxdecode->gfx(0)->set_granularity(8);
diff --git a/src/mame/video/markham.cpp b/src/mame/video/markham.cpp
index 834faf958a5..38415d8dce0 100644
--- a/src/mame/video/markham.cpp
+++ b/src/mame/video/markham.cpp
@@ -54,7 +54,7 @@ TILE_GET_INFO_MEMBER(markham_state::get_bg_tile_info)
void markham_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(markham_state::get_bg_tile_info),this), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(markham_state::get_bg_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
m_bg_tilemap->set_scroll_rows(32);
}
diff --git a/src/mame/video/mb60553.cpp b/src/mame/video/mb60553.cpp
index 894c7e91710..587c1612a47 100644
--- a/src/mame/video/mb60553.cpp
+++ b/src/mame/video/mb60553.cpp
@@ -48,7 +48,7 @@ void mb60553_zooming_tilemap_device::device_start()
save_item(NAME(m_bank));
save_item(NAME(m_regs));
- m_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mb60553_zooming_tilemap_device::get_tile_info),this),tilemap_mapper_delegate(FUNC(mb60553_zooming_tilemap_device::twc94_scan),this), 16,16,128,64);
+ m_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mb60553_zooming_tilemap_device::get_tile_info)), tilemap_mapper_delegate(*this, FUNC(mb60553_zooming_tilemap_device::twc94_scan)), 16,16,128,64);
m_tmap->set_transparent_pen(0);
}
diff --git a/src/mame/video/mcd212.cpp b/src/mame/video/mcd212.cpp
index 45ac18184bb..a6c394a40cb 100644
--- a/src/mame/video/mcd212.cpp
+++ b/src/mame/video/mcd212.cpp
@@ -1417,6 +1417,7 @@ mcd212_device::mcd212_device(const machine_config &mconfig, const char *tag, dev
: device_t(mconfig, MCD212, tag, owner, clock)
, device_video_interface(mconfig, *this)
, m_int_callback(*this)
+ , m_scanline_callback(*this)
, m_planea(*this, "planea")
, m_planeb(*this, "planeb")
{
@@ -1431,7 +1432,7 @@ mcd212_device::mcd212_device(const machine_config &mconfig, const char *tag, dev
void mcd212_device::device_resolve_objects()
{
m_int_callback.resolve_safe();
- m_scanline_callback.bind_relative_to(*owner());
+ m_scanline_callback.resolve();
}
//-------------------------------------------------
diff --git a/src/mame/video/mcd212.h b/src/mame/video/mcd212.h
index cae78f3159d..bc5ed25a163 100644
--- a/src/mame/video/mcd212.h
+++ b/src/mame/video/mcd212.h
@@ -126,16 +126,7 @@ public:
auto int_callback() { return m_int_callback.bind(); }
- template <typename Object> void set_scanline_callback(Object &&cb) { m_scanline_callback = std::forward<Object>(cb); }
- void set_scanline_callback(scanline_callback_delegate callback) { m_scanline_callback = callback; }
- template <class FunctionClass> void set_scanline_callback(const char *devname, void (FunctionClass::*callback)(int), const char *name)
- {
- set_scanline_callback(scanline_callback_delegate(callback, name, devname, static_cast<FunctionClass *>(nullptr)));
- }
- template <class FunctionClass> void set_scanline_callback(void (FunctionClass::*callback)(int), const char *name)
- {
- set_scanline_callback(scanline_callback_delegate(callback, name, nullptr, static_cast<FunctionClass *>(nullptr)));
- }
+ template <typename... T> void set_scanline_callback(T &&... args) { m_scanline_callback.set(std::forward<T>(args)...); }
// device members
DECLARE_READ16_MEMBER( regs_r );
diff --git a/src/mame/video/mcr.cpp b/src/mame/video/mcr.cpp
index 87c72395cd3..1a0d21a1475 100644
--- a/src/mame/video/mcr.cpp
+++ b/src/mame/video/mcr.cpp
@@ -94,25 +94,25 @@ void mcr_state::video_start()
/* the tilemap callback is based on the CPU board */
switch (m_mcr_cpu_board)
{
- case 90009:
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mcr_state::mcr_90009_get_tile_info),this), TILEMAP_SCAN_ROWS, 16,16, 32,30);
- break;
+ case 90009:
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mcr_state::mcr_90009_get_tile_info)), TILEMAP_SCAN_ROWS, 16,16, 32,30);
+ break;
- case 90010:
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mcr_state::mcr_90010_get_tile_info),this), TILEMAP_SCAN_ROWS, 16,16, 32,30);
- break;
+ case 90010:
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mcr_state::mcr_90010_get_tile_info)), TILEMAP_SCAN_ROWS, 16,16, 32,30);
+ break;
- case 91475:
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mcr_state::mcr_90010_get_tile_info),this), TILEMAP_SCAN_ROWS, 16,16, 32,30);
- break;
+ case 91475:
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mcr_state::mcr_90010_get_tile_info)), TILEMAP_SCAN_ROWS, 16,16, 32,30);
+ break;
- case 91490:
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mcr_state::mcr_91490_get_tile_info),this), TILEMAP_SCAN_ROWS, 16,16, 32,30);
- break;
+ case 91490:
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mcr_state::mcr_91490_get_tile_info)), TILEMAP_SCAN_ROWS, 16,16, 32,30);
+ break;
- default:
- throw emu_fatalerror("mcr_state::video_start: Unknown mcr board");
- break;
+ default:
+ throw emu_fatalerror("mcr_state::video_start: Unknown mcr board");
+ break;
}
}
@@ -392,20 +392,20 @@ uint32_t mcr_state::screen_update_mcr(screen_device &screen, bitmap_ind16 &bitma
/* update the sprites and render them */
switch (m_mcr_sprite_board)
{
- case 91399:
- render_sprites_91399(screen, bitmap, cliprect);
- break;
-
- case 91464:
- if (m_mcr_cpu_board == 91442)
- render_sprites_91464(screen, bitmap, cliprect, 0x00, 0x30, 0x00);
- else if (m_mcr_cpu_board == 91475)
- render_sprites_91464(screen, bitmap, cliprect, 0x00, 0x30, 0x40);
- else if (m_mcr_cpu_board == 91490)
- render_sprites_91464(screen, bitmap, cliprect, 0x00, 0x30, 0x00);
- else if (m_mcr_cpu_board == 91721)
- render_sprites_91464(screen, bitmap, cliprect, 0x00, 0x30, 0x00);
- break;
+ case 91399:
+ render_sprites_91399(screen, bitmap, cliprect);
+ break;
+
+ case 91464:
+ if (m_mcr_cpu_board == 91442)
+ render_sprites_91464(screen, bitmap, cliprect, 0x00, 0x30, 0x00);
+ else if (m_mcr_cpu_board == 91475)
+ render_sprites_91464(screen, bitmap, cliprect, 0x00, 0x30, 0x40);
+ else if (m_mcr_cpu_board == 91490)
+ render_sprites_91464(screen, bitmap, cliprect, 0x00, 0x30, 0x00);
+ else if (m_mcr_cpu_board == 91721)
+ render_sprites_91464(screen, bitmap, cliprect, 0x00, 0x30, 0x00);
+ break;
}
return 0;
}
diff --git a/src/mame/video/mcr3.cpp b/src/mame/video/mcr3.cpp
index 261d5f66456..1d91b11f580 100644
--- a/src/mame/video/mcr3.cpp
+++ b/src/mame/video/mcr3.cpp
@@ -89,17 +89,17 @@ void mcr3_state::spyhunt_palette(palette_device &palette) const
void mcr3_state::video_start()
{
// initialize the background tilemap
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mcr3_state::mcrmono_get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16,16, 32,30);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mcr3_state::mcrmono_get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16,16, 32,30);
}
VIDEO_START_MEMBER(mcr3_state,spyhunt)
{
// initialize the background tilemap
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mcr3_state::spyhunt_get_bg_tile_info),this), tilemap_mapper_delegate(FUNC(mcr3_state::spyhunt_bg_scan),this), 64,32, 64,32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mcr3_state::spyhunt_get_bg_tile_info)), tilemap_mapper_delegate(*this, FUNC(mcr3_state::spyhunt_bg_scan)), 64,32, 64,32);
// initialize the text tilemap
- m_alpha_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mcr3_state::spyhunt_get_alpha_tile_info),this), TILEMAP_SCAN_COLS, 16,16, 32,32);
+ m_alpha_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mcr3_state::spyhunt_get_alpha_tile_info)), TILEMAP_SCAN_COLS, 16,16, 32,32);
m_alpha_tilemap->set_transparent_pen(0);
m_alpha_tilemap->set_scrollx(0, 16);
diff --git a/src/mame/video/mcr68.cpp b/src/mame/video/mcr68.cpp
index 10479d10075..faba58dc3fc 100644
--- a/src/mame/video/mcr68.cpp
+++ b/src/mame/video/mcr68.cpp
@@ -41,7 +41,7 @@ TILE_GET_INFO_MEMBER(mcr68_state::get_bg_tile_info)
VIDEO_START_MEMBER(mcr68_state,mcr68)
{
/* initialize the background tilemap */
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mcr68_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16,16, 32,32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mcr68_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16,16, 32,32);
m_bg_tilemap->set_transparent_pen(0);
}
diff --git a/src/mame/video/meadows.cpp b/src/mame/video/meadows.cpp
index ba5065fe665..9a106a01438 100644
--- a/src/mame/video/meadows.cpp
+++ b/src/mame/video/meadows.cpp
@@ -36,7 +36,7 @@ TILE_GET_INFO_MEMBER(meadows_state::get_tile_info)
void meadows_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(meadows_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8,8, 32,30);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(meadows_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 32,30);
}
diff --git a/src/mame/video/mermaid.cpp b/src/mame/video/mermaid.cpp
index 7b492537a6f..3e3b592d04b 100644
--- a/src/mame/video/mermaid.cpp
+++ b/src/mame/video/mermaid.cpp
@@ -156,10 +156,10 @@ TILE_GET_INFO_MEMBER(mermaid_state::get_fg_tile_info)
void mermaid_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mermaid_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mermaid_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_bg_tilemap->set_scroll_cols(32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mermaid_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mermaid_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fg_tilemap->set_scroll_cols(32);
m_fg_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/metlclsh.cpp b/src/mame/video/metlclsh.cpp
index 462452c4f8d..018a1e71c63 100644
--- a/src/mame/video/metlclsh.cpp
+++ b/src/mame/video/metlclsh.cpp
@@ -135,8 +135,8 @@ void metlclsh_state::video_start()
{
m_otherram = std::make_unique<uint8_t[]>(0x800); // banked ram
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(metlclsh_state::get_bg_tile_info),this), tilemap_mapper_delegate(FUNC(metlclsh_state::metlclsh_bgtilemap_scan),this), 16, 16, 32, 16);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(metlclsh_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(metlclsh_state::get_bg_tile_info)), tilemap_mapper_delegate(*this, FUNC(metlclsh_state::metlclsh_bgtilemap_scan)), 16, 16, 32, 16);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(metlclsh_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_bg_tilemap->set_transparent_pen(0);
m_fg_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/metro.cpp b/src/mame/video/metro.cpp
index d1851f99d3d..b27d5e2fb8b 100644
--- a/src/mame/video/metro.cpp
+++ b/src/mame/video/metro.cpp
@@ -44,12 +44,12 @@ TILEMAP_MAPPER_MEMBER(metro_state::tilemap_scan_gstrik2)
VIDEO_START_MEMBER(metro_state,blzntrnd)
{
- m_k053936_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(metro_state::k053936_get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 256, 512);
+ m_k053936_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(metro_state::k053936_get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 256, 512);
}
VIDEO_START_MEMBER(metro_state,gstrik2)
{
- m_k053936_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(metro_state::k053936_gstrik2_get_tile_info),this), tilemap_mapper_delegate(FUNC(metro_state::tilemap_scan_gstrik2),this), 16, 16, 128, 256);
+ m_k053936_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(metro_state::k053936_gstrik2_get_tile_info)), tilemap_mapper_delegate(*this, FUNC(metro_state::tilemap_scan_gstrik2)), 16, 16, 128, 256);
}
uint32_t metro_state::screen_update_psac_vdp2_mix(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
diff --git a/src/mame/video/microtan.cpp b/src/mame/video/microtan.cpp
index 3a43600b312..39087f4873a 100644
--- a/src/mame/video/microtan.cpp
+++ b/src/mame/video/microtan.cpp
@@ -44,7 +44,7 @@ void microtan_state::video_start()
m_bg_tilemap = &machine().tilemap().create(*
m_gfxdecode,
- tilemap_get_info_delegate(FUNC(microtan_state::get_bg_tile_info),this),
+ tilemap_get_info_delegate(*this, FUNC(microtan_state::get_bg_tile_info)),
TILEMAP_SCAN_ROWS, 8, 16, 32, 16);
m_chunky_buffer = std::make_unique<uint8_t[]>(0x200);
diff --git a/src/mame/video/mikie.cpp b/src/mame/video/mikie.cpp
index 434bbbf82e9..5e1c739dfa3 100644
--- a/src/mame/video/mikie.cpp
+++ b/src/mame/video/mikie.cpp
@@ -127,7 +127,7 @@ TILE_GET_INFO_MEMBER(mikie_state::get_bg_tile_info)
void mikie_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mikie_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mikie_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
void mikie_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect)
diff --git a/src/mame/video/mikromik.cpp b/src/mame/video/mikromik.cpp
index f66a3af4e21..90c779d5179 100644
--- a/src/mame/video/mikromik.cpp
+++ b/src/mame/video/mikromik.cpp
@@ -143,7 +143,7 @@ void mm1_state::mm1m6_video(machine_config &config)
I8275(config, m_crtc, XTAL(18'720'000)/8);
m_crtc->set_character_width(HORIZONTAL_CHARACTER_PIXELS);
- m_crtc->set_display_callback(FUNC(mm1_state::crtc_display_pixels), this);
+ m_crtc->set_display_callback(FUNC(mm1_state::crtc_display_pixels));
m_crtc->drq_wr_callback().set(m_dmac, FUNC(am9517a_device::dreq0_w));
m_crtc->vrtc_wr_callback().set(m_hgdc, FUNC(upd7220_device::ext_sync_w));
m_crtc->set_screen("screen");
diff --git a/src/mame/video/mitchell.cpp b/src/mame/video/mitchell.cpp
index 92c95ecc91f..473abc30d91 100644
--- a/src/mame/video/mitchell.cpp
+++ b/src/mame/video/mitchell.cpp
@@ -36,7 +36,7 @@ TILE_GET_INFO_MEMBER(mitchell_state::get_tile_info)
VIDEO_START_MEMBER(mitchell_state,pang)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mitchell_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mitchell_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_bg_tilemap->set_transparent_pen(15);
/* OBJ RAM */
diff --git a/src/mame/video/mjkjidai.cpp b/src/mame/video/mjkjidai.cpp
index 0f66797bb87..3ba6d090ed6 100644
--- a/src/mame/video/mjkjidai.cpp
+++ b/src/mame/video/mjkjidai.cpp
@@ -28,7 +28,7 @@ TILE_GET_INFO_MEMBER(mjkjidai_state::get_tile_info)
void mjkjidai_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mjkjidai_state::get_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mjkjidai_state::get_tile_info)),TILEMAP_SCAN_ROWS,8,8,64,32);
}
diff --git a/src/mame/video/model3.cpp b/src/mame/video/model3.cpp
index 99e0f378512..77012df954a 100644
--- a/src/mame/video/model3.cpp
+++ b/src/mame/video/model3.cpp
@@ -197,14 +197,14 @@ void model3_state::video_start()
m_vid_reg0 = 0;
- m_layer4[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(model3_state::tile_info_layer0_4bit), this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_layer8[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(model3_state::tile_info_layer0_8bit), this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_layer4[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(model3_state::tile_info_layer1_4bit), this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_layer8[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(model3_state::tile_info_layer1_8bit), this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_layer4[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(model3_state::tile_info_layer2_4bit), this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_layer8[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(model3_state::tile_info_layer2_8bit), this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_layer4[3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(model3_state::tile_info_layer3_4bit), this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_layer8[3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(model3_state::tile_info_layer3_8bit), this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_layer4[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(model3_state::tile_info_layer0_4bit)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_layer8[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(model3_state::tile_info_layer0_8bit)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_layer4[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(model3_state::tile_info_layer1_4bit)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_layer8[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(model3_state::tile_info_layer1_8bit)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_layer4[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(model3_state::tile_info_layer2_4bit)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_layer8[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(model3_state::tile_info_layer2_8bit)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_layer4[3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(model3_state::tile_info_layer3_4bit)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_layer8[3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(model3_state::tile_info_layer3_8bit)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
// 4-bit tiles
m_gfxdecode->set_gfx(0, std::make_unique<gfx_element>(m_palette, char4_layout, (uint8_t*)m_m3_char_ram.get(), 0, m_palette->entries() / 16, 0));
diff --git a/src/mame/video/mosaic.cpp b/src/mame/video/mosaic.cpp
index de94afa235a..d3529f317b9 100644
--- a/src/mame/video/mosaic.cpp
+++ b/src/mame/video/mosaic.cpp
@@ -45,8 +45,8 @@ TILE_GET_INFO_MEMBER(mosaic_state::get_bg_tile_info)
void mosaic_state::video_start()
{
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mosaic_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mosaic_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mosaic_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mosaic_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_fg_tilemap->set_transparent_pen(0xff);
}
diff --git a/src/mame/video/mrdo.cpp b/src/mame/video/mrdo.cpp
index 4917ff2d6a3..dae9fe3f180 100644
--- a/src/mame/video/mrdo.cpp
+++ b/src/mame/video/mrdo.cpp
@@ -160,8 +160,8 @@ TILE_GET_INFO_MEMBER(mrdo_state::get_fg_tile_info)
void mrdo_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mrdo_state::get_bg_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mrdo_state::get_fg_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mrdo_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 32,32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mrdo_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 32,32);
m_bg_tilemap->set_transparent_pen(0);
m_fg_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/mrjong.cpp b/src/mame/video/mrjong.cpp
index 800758a9218..eb0a5875a36 100644
--- a/src/mame/video/mrjong.cpp
+++ b/src/mame/video/mrjong.cpp
@@ -98,7 +98,7 @@ TILE_GET_INFO_MEMBER(mrjong_state::get_bg_tile_info)
void mrjong_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mrjong_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS_FLIP_XY, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mrjong_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS_FLIP_XY, 8, 8, 32, 32);
}
/*
diff --git a/src/mame/video/ms1_tmap.cpp b/src/mame/video/ms1_tmap.cpp
index dd3b0cac990..e1b84e30536 100644
--- a/src/mame/video/ms1_tmap.cpp
+++ b/src/mame/video/ms1_tmap.cpp
@@ -91,31 +91,31 @@ void megasys1_tilemap_device::device_start()
// create 16x16 tilemaps
m_tilemap[0][0] = &machine().tilemap().create(
- *this, tilemap_get_info_delegate(FUNC(megasys1_tilemap_device::get_scroll_tile_info_16x16),this), tilemap_mapper_delegate(FUNC(megasys1_tilemap_device::scan_16x16),this),
- 8,8, TILES_PER_PAGE_X * 16, TILES_PER_PAGE_Y * 2);
+ *this, tilemap_get_info_delegate(*this, FUNC(megasys1_tilemap_device::get_scroll_tile_info_16x16)), tilemap_mapper_delegate(*this, FUNC(megasys1_tilemap_device::scan_16x16)),
+ 8, 8, TILES_PER_PAGE_X * 16, TILES_PER_PAGE_Y * 2);
m_tilemap[0][1] = &machine().tilemap().create(
- *this, tilemap_get_info_delegate(FUNC(megasys1_tilemap_device::get_scroll_tile_info_16x16),this), tilemap_mapper_delegate(FUNC(megasys1_tilemap_device::scan_16x16),this),
- 8,8, TILES_PER_PAGE_X * 8, TILES_PER_PAGE_Y * 4);
+ *this, tilemap_get_info_delegate(*this, FUNC(megasys1_tilemap_device::get_scroll_tile_info_16x16)), tilemap_mapper_delegate(*this, FUNC(megasys1_tilemap_device::scan_16x16)),
+ 8, 8, TILES_PER_PAGE_X * 8, TILES_PER_PAGE_Y * 4);
m_tilemap[0][2] = &machine().tilemap().create(
- *this, tilemap_get_info_delegate(FUNC(megasys1_tilemap_device::get_scroll_tile_info_16x16),this), tilemap_mapper_delegate(FUNC(megasys1_tilemap_device::scan_16x16),this),
- 8,8, TILES_PER_PAGE_X * 4, TILES_PER_PAGE_Y * 8);
+ *this, tilemap_get_info_delegate(*this, FUNC(megasys1_tilemap_device::get_scroll_tile_info_16x16)), tilemap_mapper_delegate(*this, FUNC(megasys1_tilemap_device::scan_16x16)),
+ 8, 8, TILES_PER_PAGE_X * 4, TILES_PER_PAGE_Y * 8);
m_tilemap[0][3] = &machine().tilemap().create(
- *this, tilemap_get_info_delegate(FUNC(megasys1_tilemap_device::get_scroll_tile_info_16x16),this), tilemap_mapper_delegate(FUNC(megasys1_tilemap_device::scan_16x16),this),
- 8,8, TILES_PER_PAGE_X * 2, TILES_PER_PAGE_Y * 16);
+ *this, tilemap_get_info_delegate(*this, FUNC(megasys1_tilemap_device::get_scroll_tile_info_16x16)), tilemap_mapper_delegate(*this, FUNC(megasys1_tilemap_device::scan_16x16)),
+ 8, 8, TILES_PER_PAGE_X * 2, TILES_PER_PAGE_Y * 16);
// create 8x8 tilemaps
m_tilemap[1][0] = &machine().tilemap().create(
- *this, tilemap_get_info_delegate(FUNC(megasys1_tilemap_device::get_scroll_tile_info_8x8),this), tilemap_mapper_delegate(FUNC(megasys1_tilemap_device::scan_8x8),this),
- 8,8, TILES_PER_PAGE_X * 8, TILES_PER_PAGE_Y * 1);
+ *this, tilemap_get_info_delegate(*this, FUNC(megasys1_tilemap_device::get_scroll_tile_info_8x8)), tilemap_mapper_delegate(*this, FUNC(megasys1_tilemap_device::scan_8x8)),
+ 8, 8, TILES_PER_PAGE_X * 8, TILES_PER_PAGE_Y * 1);
m_tilemap[1][1] = &machine().tilemap().create(
- *this, tilemap_get_info_delegate(FUNC(megasys1_tilemap_device::get_scroll_tile_info_8x8),this), tilemap_mapper_delegate(FUNC(megasys1_tilemap_device::scan_8x8),this),
- 8,8, TILES_PER_PAGE_X * 4, TILES_PER_PAGE_Y * 2);
+ *this, tilemap_get_info_delegate(*this, FUNC(megasys1_tilemap_device::get_scroll_tile_info_8x8)), tilemap_mapper_delegate(*this, FUNC(megasys1_tilemap_device::scan_8x8)),
+ 8, 8, TILES_PER_PAGE_X * 4, TILES_PER_PAGE_Y * 2);
m_tilemap[1][2] = &machine().tilemap().create(
- *this, tilemap_get_info_delegate(FUNC(megasys1_tilemap_device::get_scroll_tile_info_8x8),this), tilemap_mapper_delegate(FUNC(megasys1_tilemap_device::scan_8x8),this),
- 8,8, TILES_PER_PAGE_X * 4, TILES_PER_PAGE_Y * 2);
+ *this, tilemap_get_info_delegate(*this, FUNC(megasys1_tilemap_device::get_scroll_tile_info_8x8)), tilemap_mapper_delegate(*this, FUNC(megasys1_tilemap_device::scan_8x8)),
+ 8, 8, TILES_PER_PAGE_X * 4, TILES_PER_PAGE_Y * 2);
m_tilemap[1][3] = &machine().tilemap().create(
- *this, tilemap_get_info_delegate(FUNC(megasys1_tilemap_device::get_scroll_tile_info_8x8),this), tilemap_mapper_delegate(FUNC(megasys1_tilemap_device::scan_8x8),this),
- 8,8, TILES_PER_PAGE_X * 2, TILES_PER_PAGE_Y * 4);
+ *this, tilemap_get_info_delegate(*this, FUNC(megasys1_tilemap_device::get_scroll_tile_info_8x8)), tilemap_mapper_delegate(*this, FUNC(megasys1_tilemap_device::scan_8x8)),
+ 8, 8, TILES_PER_PAGE_X * 2, TILES_PER_PAGE_Y * 4);
// set transparency
for (int i = 0; i < 8; i++)
diff --git a/src/mame/video/ms32.cpp b/src/mame/video/ms32.cpp
index 5eef22b2f9c..f14612374bf 100644
--- a/src/mame/video/ms32.cpp
+++ b/src/mame/video/ms32.cpp
@@ -66,10 +66,10 @@ TILE_GET_INFO_MEMBER(ms32_state::get_ms32_extra_tile_info)
void ms32_state::video_start()
{
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ms32_state::get_ms32_tx_tile_info),this),TILEMAP_SCAN_ROWS,8, 8,64,64);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ms32_state::get_ms32_bg_tile_info),this),TILEMAP_SCAN_ROWS,16,16,64,64);
- m_bg_tilemap_alt = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ms32_state::get_ms32_bg_tile_info),this),TILEMAP_SCAN_ROWS,16,16,256,16); // alt layout, controller by register?
- m_roz_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ms32_state::get_ms32_roz_tile_info),this),TILEMAP_SCAN_ROWS,16,16,128,128);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ms32_state::get_ms32_tx_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ms32_state::get_ms32_bg_tile_info)), TILEMAP_SCAN_ROWS, 16,16, 64, 64);
+ m_bg_tilemap_alt = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ms32_state::get_ms32_bg_tile_info)), TILEMAP_SCAN_ROWS, 16,16, 256, 16); // alt layout, controller by register?
+ m_roz_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ms32_state::get_ms32_roz_tile_info)), TILEMAP_SCAN_ROWS, 16,16, 128,128);
/* set up tile layers */
@@ -117,7 +117,7 @@ VIDEO_START_MEMBER(ms32_state,f1superb)
{
ms32_state::video_start();
- m_extra_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ms32_state::get_ms32_extra_tile_info),this),TILEMAP_SCAN_ROWS,2048,1,1,0x400);
+ m_extra_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ms32_state::get_ms32_extra_tile_info)), TILEMAP_SCAN_ROWS, 2048, 1, 1, 0x400);
}
/********** PALETTE WRITES **********/
diff --git a/src/mame/video/msisaac.cpp b/src/mame/video/msisaac.cpp
index fea78aae6d3..da1624a0985 100644
--- a/src/mame/video/msisaac.cpp
+++ b/src/mame/video/msisaac.cpp
@@ -53,9 +53,9 @@ TILE_GET_INFO_MEMBER(msisaac_state::get_bg2_tile_info)
void msisaac_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(msisaac_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_bg2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(msisaac_state::get_bg2_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(msisaac_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(msisaac_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(msisaac_state::get_bg2_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(msisaac_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_bg2_tilemap->set_transparent_pen(0);
m_fg_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/mugsmash.cpp b/src/mame/video/mugsmash.cpp
index cc2ca8db572..a5adb059819 100644
--- a/src/mame/video/mugsmash.cpp
+++ b/src/mame/video/mugsmash.cpp
@@ -133,10 +133,10 @@ WRITE16_MEMBER(mugsmash_state::mugsmash_reg_w)
void mugsmash_state::video_start()
{
- m_tilemap1 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mugsmash_state::get_mugsmash_tile_info1),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_tilemap1 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mugsmash_state::get_mugsmash_tile_info1)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
m_tilemap1->set_transparent_pen(0);
- m_tilemap2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mugsmash_state::get_mugsmash_tile_info2),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_tilemap2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mugsmash_state::get_mugsmash_tile_info2)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
}
uint32_t mugsmash_state::screen_update_mugsmash(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
diff --git a/src/mame/video/mustache.cpp b/src/mame/video/mustache.cpp
index 9a8f03217b7..317abfcff71 100644
--- a/src/mame/video/mustache.cpp
+++ b/src/mame/video/mustache.cpp
@@ -54,7 +54,7 @@ TILE_GET_INFO_MEMBER(mustache_state::get_bg_tile_info)
void mustache_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mustache_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS_FLIP_X,
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mustache_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS_FLIP_X,
8, 8, 64, 32);
m_bg_tilemap->set_scroll_rows(4);
diff --git a/src/mame/video/mystston.cpp b/src/mame/video/mystston.cpp
index bcf5961e61f..ff1c37aaa1b 100644
--- a/src/mame/video/mystston.cpp
+++ b/src/mame/video/mystston.cpp
@@ -215,9 +215,9 @@ void mystston_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprec
void mystston_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mystston_state::get_bg_tile_info),this), TILEMAP_SCAN_COLS_FLIP_X, 16, 16, 16, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mystston_state::get_bg_tile_info)), TILEMAP_SCAN_COLS_FLIP_X, 16, 16, 16, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mystston_state::get_fg_tile_info),this), TILEMAP_SCAN_COLS_FLIP_X, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mystston_state::get_fg_tile_info)), TILEMAP_SCAN_COLS_FLIP_X, 8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(0);
/* create the interrupt timer */
diff --git a/src/mame/video/mystwarr.cpp b/src/mame/video/mystwarr.cpp
index 9f70374a163..ab0787c7320 100644
--- a/src/mame/video/mystwarr.cpp
+++ b/src/mame/video/mystwarr.cpp
@@ -164,7 +164,7 @@ VIDEO_START_MEMBER(mystwarr_state, gaiapols)
K053936_wraparound_enable(0, 1);
K053936GP_set_offset(0, -10, 0); // floor tiles in demo loop2 (Elaine vs. boss)
- m_ult_936_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mystwarr_state::get_gai_936_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 512, 512);
+ m_ult_936_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mystwarr_state::get_gai_936_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 512, 512);
m_ult_936_tilemap->set_transparent_pen(0);
}
@@ -199,7 +199,7 @@ VIDEO_START_MEMBER(mystwarr_state, dadandrn)
K053936_wraparound_enable(0, 1);
K053936GP_set_offset(0, -8, 0); // Brainy's laser
- m_ult_936_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mystwarr_state::get_ult_936_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 512, 512);
+ m_ult_936_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mystwarr_state::get_ult_936_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 512, 512);
m_ult_936_tilemap->set_transparent_pen(0);
}
diff --git a/src/mame/video/namco_c123tmap.cpp b/src/mame/video/namco_c123tmap.cpp
index a5e25b2c19e..655df74b8a3 100644
--- a/src/mame/video/namco_c123tmap.cpp
+++ b/src/mame/video/namco_c123tmap.cpp
@@ -47,24 +47,24 @@ void namco_c123tmap_device::device_start()
m_tilemapinfo.videoram = std::make_unique<uint16_t[]>(size);
/* four scrolling tilemaps */
- m_tilemapinfo.tmap[0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(namco_c123tmap_device::get_tile_info<0x0000>), this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_tilemapinfo.tmap[1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(namco_c123tmap_device::get_tile_info<0x1000>), this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_tilemapinfo.tmap[2] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(namco_c123tmap_device::get_tile_info<0x2000>), this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemapinfo.tmap[0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(namco_c123tmap_device::get_tile_info<0x0000>)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemapinfo.tmap[1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(namco_c123tmap_device::get_tile_info<0x1000>)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemapinfo.tmap[2] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(namco_c123tmap_device::get_tile_info<0x2000>)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
if (m_tmap3_half_height)
{
- m_tilemapinfo.tmap[3] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(namco_c123tmap_device::get_tile_info<0x3000>), this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tilemapinfo.tmap[3] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(namco_c123tmap_device::get_tile_info<0x3000>)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
/* two non-scrolling tilemaps */
- m_tilemapinfo.tmap[4] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(namco_c123tmap_device::get_tile_info<0x3808>), this), TILEMAP_SCAN_ROWS, 8, 8, 36, 28);
- m_tilemapinfo.tmap[5] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(namco_c123tmap_device::get_tile_info<0x3c08>), this), TILEMAP_SCAN_ROWS, 8, 8, 36, 28);
+ m_tilemapinfo.tmap[4] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(namco_c123tmap_device::get_tile_info<0x3808>)), TILEMAP_SCAN_ROWS, 8, 8, 36, 28);
+ m_tilemapinfo.tmap[5] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(namco_c123tmap_device::get_tile_info<0x3c08>)), TILEMAP_SCAN_ROWS, 8, 8, 36, 28);
}
else
{
- m_tilemapinfo.tmap[3] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(namco_c123tmap_device::get_tile_info<0x3000>), this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemapinfo.tmap[3] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(namco_c123tmap_device::get_tile_info<0x3000>)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
/* two non-scrolling tilemaps */
- m_tilemapinfo.tmap[4] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(namco_c123tmap_device::get_tile_info<0x4008>), this), TILEMAP_SCAN_ROWS, 8, 8, 36, 28);
- m_tilemapinfo.tmap[5] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(namco_c123tmap_device::get_tile_info<0x4408>), this), TILEMAP_SCAN_ROWS, 8, 8, 36, 28);
+ m_tilemapinfo.tmap[4] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(namco_c123tmap_device::get_tile_info<0x4008>)), TILEMAP_SCAN_ROWS, 8, 8, 36, 28);
+ m_tilemapinfo.tmap[5] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(namco_c123tmap_device::get_tile_info<0x4408>)), TILEMAP_SCAN_ROWS, 8, 8, 36, 28);
}
/* define offsets for scrolling */
diff --git a/src/mame/video/namco_c169roz.cpp b/src/mame/video/namco_c169roz.cpp
index 09ab88ec06f..89ca7a3ea2c 100644
--- a/src/mame/video/namco_c169roz.cpp
+++ b/src/mame/video/namco_c169roz.cpp
@@ -51,16 +51,16 @@ void namco_c169roz_device::device_start()
std::fill(std::begin(m_videoram), std::end(m_videoram), 0x0000);
m_tilemap[0] = &machine().tilemap().create(*this,
- tilemap_get_info_delegate(FUNC(namco_c169roz_device::get_info<0>), this),
- tilemap_mapper_delegate(FUNC(namco_c169roz_device::mapper), this),
- 16, 16,
- 256, 256);
+ tilemap_get_info_delegate(*this, FUNC(namco_c169roz_device::get_info<0>)),
+ tilemap_mapper_delegate(*this, FUNC(namco_c169roz_device::mapper)),
+ 16, 16,
+ 256, 256);
m_tilemap[1] = &machine().tilemap().create(*this,
- tilemap_get_info_delegate(FUNC(namco_c169roz_device::get_info<1>), this),
- tilemap_mapper_delegate(FUNC(namco_c169roz_device::mapper), this),
- 16, 16,
- 256, 256);
+ tilemap_get_info_delegate(*this, FUNC(namco_c169roz_device::get_info<1>)),
+ tilemap_mapper_delegate(*this, FUNC(namco_c169roz_device::mapper)),
+ 16, 16,
+ 256, 256);
save_item(NAME(m_control));
save_item(NAME(m_videoram));
diff --git a/src/mame/video/namcona1.cpp b/src/mame/video/namcona1.cpp
index 34f3d89e0a2..aa92be6a294 100644
--- a/src/mame/video/namcona1.cpp
+++ b/src/mame/video/namcona1.cpp
@@ -191,13 +191,13 @@ void namcona1_state::gfxram_w(offs_t offset, u16 data, u16 mem_mask)
void namcona1_state::video_start()
{
// normal tilemaps
- m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(namcona1_state::tilemap_get_info0),this), TILEMAP_SCAN_ROWS, 8,8,64,64);
- m_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(namcona1_state::tilemap_get_info1),this), TILEMAP_SCAN_ROWS, 8,8,64,64);
- m_bg_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(namcona1_state::tilemap_get_info2),this), TILEMAP_SCAN_ROWS, 8,8,64,64);
- m_bg_tilemap[3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(namcona1_state::tilemap_get_info3),this), TILEMAP_SCAN_ROWS, 8,8,64,64);
+ m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(namcona1_state::tilemap_get_info0)), TILEMAP_SCAN_ROWS, 8,8,64,64);
+ m_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(namcona1_state::tilemap_get_info1)), TILEMAP_SCAN_ROWS, 8,8,64,64);
+ m_bg_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(namcona1_state::tilemap_get_info2)), TILEMAP_SCAN_ROWS, 8,8,64,64);
+ m_bg_tilemap[3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(namcona1_state::tilemap_get_info3)), TILEMAP_SCAN_ROWS, 8,8,64,64);
// roz tilemap
- m_bg_tilemap[4] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(namcona1_state::roz_get_info),this), TILEMAP_SCAN_ROWS, 8,8,64,64);
+ m_bg_tilemap[4] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(namcona1_state::roz_get_info)), TILEMAP_SCAN_ROWS, 8,8,64,64);
m_shaperam.resize(0x8000);
diff --git a/src/mame/video/namcos22.cpp b/src/mame/video/namcos22.cpp
index 545fc499067..4a2c9d96900 100644
--- a/src/mame/video/namcos22.cpp
+++ b/src/mame/video/namcos22.cpp
@@ -2576,7 +2576,7 @@ void namcos22_state::video_start()
m_posirq_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(namcos22_state::posirq_callback),this));
m_mix_bitmap = std::make_unique<bitmap_ind16>(640, 480);
- m_bgtilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(namcos22_state::get_text_tile_info), this), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
+ m_bgtilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(namcos22_state::get_text_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
m_bgtilemap->set_transparent_pen(0xf);
m_gfxdecode->gfx(0)->set_source((u8 *)m_cgram.target());
diff --git a/src/mame/video/namcos2_roz.cpp b/src/mame/video/namcos2_roz.cpp
index 934b0e004b9..f4643e6611f 100644
--- a/src/mame/video/namcos2_roz.cpp
+++ b/src/mame/video/namcos2_roz.cpp
@@ -44,7 +44,7 @@ namcos2_roz_device::namcos2_roz_device(const machine_config &mconfig, const char
void namcos2_roz_device::device_start()
{
- m_tilemap_roz = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(namcos2_roz_device::roz_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 256, 256);
+ m_tilemap_roz = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(namcos2_roz_device::roz_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 256, 256);
m_tilemap_roz->set_transparent_pen(0xff);
}
diff --git a/src/mame/video/namcos86.cpp b/src/mame/video/namcos86.cpp
index 803270d78e6..e1fd9a556fa 100644
--- a/src/mame/video/namcos86.cpp
+++ b/src/mame/video/namcos86.cpp
@@ -133,14 +133,14 @@ TILE_GET_INFO_MEMBER(namcos86_state::get_tile_info3)
void namcos86_state::video_start()
{
- m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(namcos86_state::get_tile_info0),this),TILEMAP_SCAN_ROWS,8,8,64,32);
- m_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(namcos86_state::get_tile_info1),this),TILEMAP_SCAN_ROWS,8,8,64,32);
- m_bg_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(namcos86_state::get_tile_info2),this),TILEMAP_SCAN_ROWS,8,8,64,32);
- m_bg_tilemap[3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(namcos86_state::get_tile_info3),this),TILEMAP_SCAN_ROWS,8,8,64,32);
+ m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(namcos86_state::get_tile_info0)), TILEMAP_SCAN_ROWS, 8,8, 64,32);
+ m_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(namcos86_state::get_tile_info1)), TILEMAP_SCAN_ROWS, 8,8, 64,32);
+ m_bg_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(namcos86_state::get_tile_info2)), TILEMAP_SCAN_ROWS, 8,8, 64,32);
+ m_bg_tilemap[3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(namcos86_state::get_tile_info3)), TILEMAP_SCAN_ROWS, 8,8, 64,32);
for (int i = 0; i < 4; i++)
{
- static const int xdisp[] = { 47, 49, 46, 48 };
+ static constexpr int xdisp[] = { 47, 49, 46, 48 };
m_bg_tilemap[i]->set_scrolldx(xdisp[i], 422 - xdisp[i]);
m_bg_tilemap[i]->set_scrolldy(-9, 9);
diff --git a/src/mame/video/nemesis.cpp b/src/mame/video/nemesis.cpp
index aebbf5f7078..e136447af93 100644
--- a/src/mame/video/nemesis.cpp
+++ b/src/mame/video/nemesis.cpp
@@ -253,8 +253,8 @@ void nemesis_state::video_start()
m_spriteram_words = m_spriteram.bytes() / 2;
- m_background = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(nemesis_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_foreground = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(nemesis_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_background = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(nemesis_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_foreground = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(nemesis_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_background->set_transparent_pen(0);
m_foreground->set_transparent_pen(0);
diff --git a/src/mame/video/nes.cpp b/src/mame/video/nes.cpp
index 267c63d7b46..8356e0b53b6 100644
--- a/src/mame/video/nes.cpp
+++ b/src/mame/video/nes.cpp
@@ -13,7 +13,7 @@
void nes_state::video_reset()
{
- m_ppu->set_vidaccess_callback(ppu2c0x_device::vidaccess_delegate(FUNC(nes_state::nes_ppu_vidaccess),this));
+ m_ppu->set_vidaccess_callback(*this, FUNC(nes_state::nes_ppu_vidaccess));
}
void nes_state::video_start()
diff --git a/src/mame/video/newbrain.cpp b/src/mame/video/newbrain.cpp
index 4e49210aeaa..79458eb10f1 100644
--- a/src/mame/video/newbrain.cpp
+++ b/src/mame/video/newbrain.cpp
@@ -76,7 +76,7 @@ void newbrain_state::video_start()
save_item(NAME(m_tvl));
}
-void newbrain_state::screen_update(bitmap_rgb32 &bitmap, const rectangle &cliprect)
+void newbrain_state::do_screen_update(bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
int columns = m_80l ? 80 : 40;
int excess = m_32_40 ? 4 : 24;
@@ -155,13 +155,9 @@ void newbrain_state::screen_update(bitmap_rgb32 &bitmap, const rectangle &clipre
uint32_t newbrain_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
if (m_tvp)
- {
- screen_update(bitmap, cliprect);
- }
+ do_screen_update(bitmap, cliprect);
else
- {
bitmap.fill(rgb_t::black(), cliprect);
- }
return 0;
}
diff --git a/src/mame/video/news.cpp b/src/mame/video/news.cpp
index 19a0367aac0..4284b28ec31 100644
--- a/src/mame/video/news.cpp
+++ b/src/mame/video/news.cpp
@@ -44,10 +44,10 @@ TILE_GET_INFO_MEMBER(news_state::get_bg_tile_info)
void news_state::video_start()
{
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(news_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(news_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(0);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(news_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(news_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
diff --git a/src/mame/video/ninjakd2.cpp b/src/mame/video/ninjakd2.cpp
index f86727520b1..cd80646fec3 100644
--- a/src/mame/video/ninjakd2.cpp
+++ b/src/mame/video/ninjakd2.cpp
@@ -94,7 +94,7 @@ TILE_GET_INFO_MEMBER(robokid_state::robokid_get_bg_tile_info)
void ninjakd2_state::video_init_common()
{
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ninjakd2_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ninjakd2_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(0xf);
m_screen->register_screen_bitmap(m_sprites_bitmap);
@@ -135,7 +135,7 @@ void ninjakd2_state::video_start()
{
video_init_common();
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ninjakd2_state::ninjakd2_get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ninjakd2_state::ninjakd2_get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
m_stencil_compare_function = stencil_ninjakd2;
}
@@ -144,7 +144,7 @@ VIDEO_START_MEMBER(mnight_state,mnight)
{
video_init_common();
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mnight_state::mnight_get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mnight_state::mnight_get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
m_stencil_compare_function = stencil_mnight;
}
@@ -153,7 +153,7 @@ VIDEO_START_MEMBER(mnight_state,arkarea)
{
video_init_common();
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(mnight_state::mnight_get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(mnight_state::mnight_get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
m_stencil_compare_function = stencil_arkarea;
}
@@ -164,9 +164,9 @@ VIDEO_START_MEMBER(robokid_state,robokid)
video_init_banked(0x0800);
m_robokid_sprites = 1;
- m_robokid_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(robokid_state::robokid_get_bg_tile_info<0>),this), tilemap_mapper_delegate(FUNC(robokid_state::robokid_bg_scan),this), 16, 16, 32, 32);
- m_robokid_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(robokid_state::robokid_get_bg_tile_info<1>),this), tilemap_mapper_delegate(FUNC(robokid_state::robokid_bg_scan),this), 16, 16, 32, 32);
- m_robokid_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(robokid_state::robokid_get_bg_tile_info<2>),this), tilemap_mapper_delegate(FUNC(robokid_state::robokid_bg_scan),this), 16, 16, 32, 32);
+ m_robokid_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(robokid_state::robokid_get_bg_tile_info<0>)), tilemap_mapper_delegate(*this, FUNC(robokid_state::robokid_bg_scan)), 16, 16, 32, 32);
+ m_robokid_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(robokid_state::robokid_get_bg_tile_info<1>)), tilemap_mapper_delegate(*this, FUNC(robokid_state::robokid_bg_scan)), 16, 16, 32, 32);
+ m_robokid_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(robokid_state::robokid_get_bg_tile_info<2>)), tilemap_mapper_delegate(*this, FUNC(robokid_state::robokid_bg_scan)), 16, 16, 32, 32);
m_robokid_tilemap[1]->set_transparent_pen(0xf);
m_robokid_tilemap[2]->set_transparent_pen(0xf);
@@ -180,9 +180,9 @@ VIDEO_START_MEMBER(omegaf_state,omegaf)
video_init_banked(0x2000);
m_robokid_sprites = 1;
- m_robokid_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(omegaf_state::robokid_get_bg_tile_info<0>),this), tilemap_mapper_delegate(FUNC(omegaf_state::omegaf_bg_scan),this), 16, 16, 128, 32);
- m_robokid_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(omegaf_state::robokid_get_bg_tile_info<1>),this), tilemap_mapper_delegate(FUNC(omegaf_state::omegaf_bg_scan),this), 16, 16, 128, 32);
- m_robokid_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(omegaf_state::robokid_get_bg_tile_info<2>),this), tilemap_mapper_delegate(FUNC(omegaf_state::omegaf_bg_scan),this), 16, 16, 128, 32);
+ m_robokid_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(omegaf_state::robokid_get_bg_tile_info<0>)), tilemap_mapper_delegate(*this, FUNC(omegaf_state::omegaf_bg_scan)), 16, 16, 128, 32);
+ m_robokid_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(omegaf_state::robokid_get_bg_tile_info<1>)), tilemap_mapper_delegate(*this, FUNC(omegaf_state::omegaf_bg_scan)), 16, 16, 128, 32);
+ m_robokid_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(omegaf_state::robokid_get_bg_tile_info<2>)), tilemap_mapper_delegate(*this, FUNC(omegaf_state::omegaf_bg_scan)), 16, 16, 128, 32);
m_robokid_tilemap[0]->set_transparent_pen(0xf);
m_robokid_tilemap[1]->set_transparent_pen(0xf);
diff --git a/src/mame/video/nmk16.cpp b/src/mame/video/nmk16.cpp
index cce0877569e..97baf3b98d9 100644
--- a/src/mame/video/nmk16.cpp
+++ b/src/mame/video/nmk16.cpp
@@ -97,9 +97,9 @@ VIDEO_START_MEMBER(nmk16_state, bioship)
{
m_sprlimit = 384 * 263;
// ROM Based Tilemap
- m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(nmk16_state::bioship_get_bg_tile_info), this), tilemap_mapper_delegate(FUNC(nmk16_state::tilemap_scan_pages), this), 16, 16, 256, 32);
- m_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(&nmk16_state::common_get_bg_tile_info<1, 1>, "bg1_gfx1", this), tilemap_mapper_delegate(FUNC(nmk16_state::tilemap_scan_pages), this), 16, 16, 256, 32);
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(nmk16_state::common_get_tx_tile_info), this), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
+ m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(nmk16_state::bioship_get_bg_tile_info)), tilemap_mapper_delegate(*this, FUNC(nmk16_state::tilemap_scan_pages)), 16, 16, 256, 32);
+ m_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, NAME((&nmk16_state::common_get_bg_tile_info<1, 1>))), tilemap_mapper_delegate(*this, FUNC(nmk16_state::tilemap_scan_pages)), 16, 16, 256, 32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(nmk16_state::common_get_tx_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
m_bg_tilemap[1]->set_transparent_pen(15);
m_tx_tilemap->set_transparent_pen(15);
@@ -112,8 +112,8 @@ VIDEO_START_MEMBER(nmk16_state, bioship)
VIDEO_START_MEMBER(nmk16_state,macross)
{
m_sprlimit = 384 * 263;
- m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(&nmk16_state::common_get_bg_tile_info<0, 1>, "bg0_gfx1", this), tilemap_mapper_delegate(FUNC(nmk16_state::tilemap_scan_pages), this), 16, 16, 256, 32);
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(nmk16_state::common_get_tx_tile_info), this), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
+ m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, NAME((&nmk16_state::common_get_bg_tile_info<0, 1>))), tilemap_mapper_delegate(*this, FUNC(nmk16_state::tilemap_scan_pages)), 16, 16, 256, 32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(nmk16_state::common_get_tx_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
m_tx_tilemap->set_transparent_pen(15);
@@ -123,7 +123,7 @@ VIDEO_START_MEMBER(nmk16_state,macross)
VIDEO_START_MEMBER(nmk16_state,strahl)
{
VIDEO_START_CALL_MEMBER(macross);
- m_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(&nmk16_state::common_get_bg_tile_info<1, 3>, "bg1_gfx3", this), tilemap_mapper_delegate(FUNC(nmk16_state::tilemap_scan_pages), this), 16, 16, 256, 32);
+ m_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, NAME((&nmk16_state::common_get_bg_tile_info<1, 3>))), tilemap_mapper_delegate(*this, FUNC(nmk16_state::tilemap_scan_pages)), 16, 16, 256, 32);
m_bg_tilemap[1]->set_transparent_pen(15);
m_sprdma_base = 0xf000;
@@ -132,14 +132,13 @@ VIDEO_START_MEMBER(nmk16_state,strahl)
VIDEO_START_MEMBER(nmk16_state,macross2)
{
m_sprlimit = 512 * 263; // not verified
- m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(&nmk16_state::common_get_bg_tile_info<0, 1>, "bg0_gfx1", this), tilemap_mapper_delegate(FUNC(nmk16_state::tilemap_scan_pages), this), 16, 16, 256, 32);
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(nmk16_state::common_get_tx_tile_info), this), TILEMAP_SCAN_COLS, 8, 8, 64, 32);
+ m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, NAME((&nmk16_state::common_get_bg_tile_info<0, 1>))), tilemap_mapper_delegate(*this, FUNC(nmk16_state::tilemap_scan_pages)), 16, 16, 256, 32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(nmk16_state::common_get_tx_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 64, 32);
m_tx_tilemap->set_transparent_pen(15);
video_init();
- m_videoshift = 64; /* 384x224 screen, leftmost 64 pixels have to be retrieved */
- /* from the other side of the tilemap (!) */
+ m_videoshift = 64; // 384x224 screen, leftmost 64 pixels have to be retrieved from the other side of the tilemap (!)
}
VIDEO_START_MEMBER(nmk16_state,gunnail)
@@ -151,11 +150,10 @@ VIDEO_START_MEMBER(nmk16_state,gunnail)
VIDEO_START_MEMBER(nmk16_state, bjtwin)
{
m_sprlimit = 512 * 263; // not verified
- m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(nmk16_state::bjtwin_get_bg_tile_info), this), TILEMAP_SCAN_COLS, 8, 8, 64, 32);
+ m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(nmk16_state::bjtwin_get_bg_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 64, 32);
video_init();
- m_videoshift = 64; /* 384x224 screen, leftmost 64 pixels have to be retrieved */
- /* from the other side of the tilemap (!) */
+ m_videoshift = 64; // 384x224 screen, leftmost 64 pixels have to be retrieved from the other side of the tilemap (!)
}
void nmk16_state::mustang_scroll_w(u16 data)
@@ -408,8 +406,8 @@ VIDEO_START_MEMBER(afega_state,grdnstrm)
{
m_sprlimit = 384 * 263;
// 8bpp Tilemap
- m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(afega_state::get_bg_tile_info_8bit), this), tilemap_mapper_delegate(FUNC(afega_state::tilemap_scan_pages), this), 16, 16, 256, 32);
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(afega_state::common_get_tx_tile_info), this), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
+ m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(afega_state::get_bg_tile_info_8bit)), tilemap_mapper_delegate(*this, FUNC(afega_state::tilemap_scan_pages)), 16, 16, 256, 32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(afega_state::common_get_tx_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
m_tx_tilemap->set_transparent_pen(15);
diff --git a/src/mame/video/nmk16spr.cpp b/src/mame/video/nmk16spr.cpp
index 3109f1dbccf..22daec39be8 100644
--- a/src/mame/video/nmk16spr.cpp
+++ b/src/mame/video/nmk16spr.cpp
@@ -39,6 +39,8 @@ DEFINE_DEVICE_TYPE(NMK_16BIT_SPRITE, nmk_16bit_sprite_device, "nmk16spr", "NMK 1
nmk_16bit_sprite_device::nmk_16bit_sprite_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: device_t(mconfig, NMK_16BIT_SPRITE, tag, owner, clock)
+ , m_colpri_cb(*this)
+ , m_ext_cb(*this)
, m_flip_screen(false)
, m_videoshift(0)
, m_xmask(0x1ff), m_ymask(0x1ff)
@@ -255,8 +257,8 @@ void nmk_16bit_sprite_device::draw_sprites(screen_device &screen, bitmap_ind16 &
void nmk_16bit_sprite_device::device_start()
{
- m_colpri_cb.bind_relative_to(*owner());
- m_ext_cb.bind_relative_to(*owner());
+ m_colpri_cb.resolve();
+ m_ext_cb.resolve();
m_flip_screen = false;
m_spritelist = make_unique_clear<struct sprite_t[]>((0x1000/0x10) * 16 * 16);
diff --git a/src/mame/video/nmk16spr.h b/src/mame/video/nmk16spr.h
index 06650edd4c1..5d5a7c24124 100644
--- a/src/mame/video/nmk16spr.h
+++ b/src/mame/video/nmk16spr.h
@@ -11,14 +11,14 @@
class nmk_16bit_sprite_device : public device_t
{
public:
- nmk_16bit_sprite_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
-
typedef device_delegate<void (u32 &colour, u32 &pri_mask)> colpri_cb_delegate;
typedef device_delegate<void (u16 attr, int &flipx, int &flipy, int &code)> ext_cb_delegate;
+ nmk_16bit_sprite_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+
// configuration
- template <typename... T> void set_colpri_callback(T &&... args) { m_colpri_cb = colpri_cb_delegate(std::forward<T>(args)...); }
- template <typename... T> void set_ext_callback(T &&... args) { m_ext_cb = ext_cb_delegate(std::forward<T>(args)...); }
+ template <typename... T> void set_colpri_callback(T &&... args) { m_colpri_cb.set(std::forward<T>(args)...); }
+ template <typename... T> void set_ext_callback(T &&... args) { m_ext_cb.set(std::forward<T>(args)...); }
void set_videoshift(int shift) { m_videoshift = shift; }
void set_mask(int xmask, int ymask) { m_xmask = xmask, m_ymask = ymask; }
void set_screen_size(int width, int height) { m_screen_width = width, m_screen_height = height; }
diff --git a/src/mame/video/nova2001.cpp b/src/mame/video/nova2001.cpp
index 4345133c3e4..2362a724bc1 100644
--- a/src/mame/video/nova2001.cpp
+++ b/src/mame/video/nova2001.cpp
@@ -149,30 +149,30 @@ TILE_GET_INFO_MEMBER(nova2001_state::raiders5_get_fg_tile_info)
VIDEO_START_MEMBER(nova2001_state,nova2001)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(nova2001_state::nova2001_get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(nova2001_state::nova2001_get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(nova2001_state::nova2001_get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(nova2001_state::nova2001_get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(0);
m_bg_tilemap->set_scrolldx(0, -7);
}
VIDEO_START_MEMBER(nova2001_state,pkunwar)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(nova2001_state::pkunwar_get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(nova2001_state::pkunwar_get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_bg_tilemap->set_transparent_pen(0);
}
VIDEO_START_MEMBER(nova2001_state,ninjakun)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(nova2001_state::ninjakun_get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(nova2001_state::ninjakun_get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(nova2001_state::ninjakun_get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(nova2001_state::ninjakun_get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(0);
m_bg_tilemap->set_scrolldx(7, 0);
}
VIDEO_START_MEMBER(nova2001_state,raiders5)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(nova2001_state::raiders5_get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(nova2001_state::raiders5_get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(nova2001_state::raiders5_get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(nova2001_state::raiders5_get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(0);
m_bg_tilemap->set_scrolldx(7, 0);
}
diff --git a/src/mame/video/nycaptor.cpp b/src/mame/video/nycaptor.cpp
index ae519916d0f..c3b2abcbb68 100644
--- a/src/mame/video/nycaptor.cpp
+++ b/src/mame/video/nycaptor.cpp
@@ -60,7 +60,7 @@ TILE_GET_INFO_MEMBER(nycaptor_state::get_tile_info)
void nycaptor_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(nycaptor_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32 );
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(nycaptor_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_bg_tilemap->set_transmask(0, 0xf800, 0x7ff); //split 0
m_bg_tilemap->set_transmask(1, 0xfe00, 0x01ff);//split 1
diff --git a/src/mame/video/ohmygod.cpp b/src/mame/video/ohmygod.cpp
index fd035c60d0c..170f4111862 100644
--- a/src/mame/video/ohmygod.cpp
+++ b/src/mame/video/ohmygod.cpp
@@ -29,7 +29,7 @@ TILE_GET_INFO_MEMBER(ohmygod_state::get_tile_info)
void ohmygod_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ohmygod_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ohmygod_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
}
diff --git a/src/mame/video/ojankohs.cpp b/src/mame/video/ojankohs.cpp
index 2391dae1c5a..00c93eebdaf 100644
--- a/src/mame/video/ojankohs.cpp
+++ b/src/mame/video/ojankohs.cpp
@@ -251,7 +251,7 @@ WRITE8_MEMBER(ojankohs_state::ojankoc_videoram_w)
VIDEO_START_MEMBER(ojankohs_state,ojankohs)
{
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ojankohs_state::ojankohs_get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 4, 64, 64);
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ojankohs_state::ojankohs_get_tile_info)), TILEMAP_SCAN_ROWS, 8, 4, 64, 64);
// m_videoram = std::make_unique<uint8_t[]>(0x1000);
// m_colorram = std::make_unique<uint8_t[]>(0x1000);
// m_paletteram = std::make_unique<uint8_t[]>(0x800);
@@ -259,7 +259,7 @@ VIDEO_START_MEMBER(ojankohs_state,ojankohs)
VIDEO_START_MEMBER(ojankohs_state,ojankoy)
{
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ojankohs_state::ojankoy_get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 4, 64, 64);
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ojankohs_state::ojankoy_get_tile_info)), TILEMAP_SCAN_ROWS, 8, 4, 64, 64);
// m_videoram = std::make_unique<uint8_t[]>(0x2000);
// m_colorram = std::make_unique<uint8_t[]>(0x1000);
}
diff --git a/src/mame/video/oneshot.cpp b/src/mame/video/oneshot.cpp
index 76646953b82..4ab2451c528 100644
--- a/src/mame/video/oneshot.cpp
+++ b/src/mame/video/oneshot.cpp
@@ -51,9 +51,9 @@ void oneshot_state::fg_videoram_w(offs_t offset, u16 data, u16 mem_mask)
void oneshot_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(oneshot_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- m_mid_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(oneshot_state::get_mid_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(oneshot_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(oneshot_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_mid_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(oneshot_state::get_mid_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(oneshot_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
m_bg_tilemap->set_transparent_pen(0);
m_mid_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/orbit.cpp b/src/mame/video/orbit.cpp
index 642929e56d7..107f5bce745 100644
--- a/src/mame/video/orbit.cpp
+++ b/src/mame/video/orbit.cpp
@@ -32,7 +32,7 @@ TILE_GET_INFO_MEMBER(orbit_state::get_tile_info)
void orbit_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(orbit_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 30);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(orbit_state::get_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 30);
}
diff --git a/src/mame/video/orca40c.cpp b/src/mame/video/orca40c.cpp
index 67e446ed661..fab592cf092 100644
--- a/src/mame/video/orca40c.cpp
+++ b/src/mame/video/orca40c.cpp
@@ -112,8 +112,8 @@ void orca_ovg_40c_device::device_start()
{
decode_gfx(gfxinfo);
- m_bg_tilemap = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(orca_ovg_40c_device::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_fg_tilemap = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(orca_ovg_40c_device::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(orca_ovg_40c_device::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(orca_ovg_40c_device::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(0);
m_fg_tilemap->set_scroll_cols(32);
@@ -283,7 +283,7 @@ void orca_ovg_40c_device::device_config_complete()
screen().set_raw(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART);
if (!screen().has_screen_update())
- screen().set_screen_update(screen_update_rgb32_delegate(FUNC(orca_ovg_40c_device::screen_update), this));
+ screen().set_screen_update(*this, FUNC(orca_ovg_40c_device::screen_update));
}
void orca_ovg_40c_device::device_add_mconfig(machine_config &config)
diff --git a/src/mame/video/pacland.cpp b/src/mame/video/pacland.cpp
index ebc34135338..cf3dda78933 100644
--- a/src/mame/video/pacland.cpp
+++ b/src/mame/video/pacland.cpp
@@ -190,8 +190,8 @@ void pacland_state::video_start()
m_screen->register_screen_bitmap(m_fg_bitmap);
m_fg_bitmap.fill(0xffff);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(pacland_state::get_bg_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(pacland_state::get_fg_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(pacland_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(pacland_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_bg_tilemap->set_scrolldx(3, 340);
m_fg_tilemap->set_scrolldx(0, 336); /* scrolling portion needs an additional offset when flipped */
diff --git a/src/mame/video/pacman.cpp b/src/mame/video/pacman.cpp
index cda16a3ea48..a0bc5e2eafd 100644
--- a/src/mame/video/pacman.cpp
+++ b/src/mame/video/pacman.cpp
@@ -171,7 +171,7 @@ VIDEO_START_MEMBER(pacman_state,pacman)
/* one pixel to the left to get a more correct placement */
m_xoffsethack = 1;
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(pacman_state::pacman_get_tile_info),this), tilemap_mapper_delegate(FUNC(pacman_state::pacman_scan_rows),this), 8, 8, 36, 28 );
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(pacman_state::pacman_get_tile_info)), tilemap_mapper_delegate(*this, FUNC(pacman_state::pacman_scan_rows)), 8, 8, 36, 28);
}
VIDEO_START_MEMBER(pacman_state,birdiy)
@@ -320,7 +320,7 @@ VIDEO_START_MEMBER(pacman_state,pengo)
m_inv_spr = 0;
m_xoffsethack = 0;
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(pacman_state::pacman_get_tile_info),this), tilemap_mapper_delegate(FUNC(pacman_state::pacman_scan_rows),this), 8, 8, 36, 28 );
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(pacman_state::pacman_get_tile_info)), tilemap_mapper_delegate(*this, FUNC(pacman_state::pacman_scan_rows)), 8, 8, 36, 28);
}
WRITE_LINE_MEMBER(pacman_state::pengo_palettebank_w)
@@ -374,7 +374,7 @@ VIDEO_START_MEMBER(pacman_state,s2650games)
m_inv_spr = 0;
m_xoffsethack = 1;
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(pacman_state::s2650_get_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32 );
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(pacman_state::s2650_get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_bg_tilemap->set_scroll_cols(32);
}
@@ -542,7 +542,7 @@ VIDEO_START_MEMBER(pacman_state,jrpacman)
m_inv_spr = 0;
m_xoffsethack = 1;
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(pacman_state::jrpacman_get_tile_info),this),tilemap_mapper_delegate(FUNC(pacman_state::jrpacman_scan_rows),this),8,8,36,54 );
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(pacman_state::jrpacman_get_tile_info)), tilemap_mapper_delegate(*this, FUNC(pacman_state::jrpacman_scan_rows)), 8, 8, 36, 54);
m_bg_tilemap->set_transparent_pen(0 );
m_bg_tilemap->set_scroll_cols(36 );
diff --git a/src/mame/video/pandoras.cpp b/src/mame/video/pandoras.cpp
index f47f83e1826..e59d2af5a6a 100644
--- a/src/mame/video/pandoras.cpp
+++ b/src/mame/video/pandoras.cpp
@@ -103,7 +103,7 @@ TILE_GET_INFO_MEMBER(pandoras_state::get_tile_info0)
void pandoras_state::video_start()
{
- m_layer0 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(pandoras_state::get_tile_info0),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_layer0 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(pandoras_state::get_tile_info0)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
save_item(NAME(m_flipscreen));
}
diff --git a/src/mame/video/paradise.cpp b/src/mame/video/paradise.cpp
index 51a70c8dc74..3e5a14ba998 100644
--- a/src/mame/video/paradise.cpp
+++ b/src/mame/video/paradise.cpp
@@ -44,8 +44,13 @@ WRITE8_MEMBER(paradise_state::tgtball_flipscreen_w)
void paradise_state::update_pix_palbank()
{
for (int i = 0; i < 15; i++)
- m_palette->set_pen_color(0x800 + i, m_paletteram[0x200 + m_pixbank + i + 0x800 * 0], m_paletteram[0x200 + m_pixbank + i + 0x800 * 1],
- m_paletteram[0x200 + m_pixbank + i + 0x800 * 2]);
+ {
+ m_palette->set_pen_color(
+ 0x800 + i,
+ m_paletteram[0x200 + m_pixbank + i + (0x800 * 0)],
+ m_paletteram[0x200 + m_pixbank + i + (0x800 * 1)],
+ m_paletteram[0x200 + m_pixbank + i + (0x800 * 2)]);
+ }
}
/* 800 bytes for red, followed by 800 bytes for green & 800 bytes for blue */
@@ -152,9 +157,9 @@ WRITE8_MEMBER(paradise_state::pixmap_w)
void paradise_state::video_start()
{
- m_tilemap_0 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(paradise_state::get_tile_info_0),this), TILEMAP_SCAN_ROWS, 8, 8, 0x20, 0x20);
- m_tilemap_1 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(paradise_state::get_tile_info_1),this), TILEMAP_SCAN_ROWS, 8, 8, 0x20, 0x20);
- m_tilemap_2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(paradise_state::get_tile_info_2),this), TILEMAP_SCAN_ROWS, 8, 8, 0x20, 0x20);
+ m_tilemap_0 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(paradise_state::get_tile_info_0)), TILEMAP_SCAN_ROWS, 8, 8, 0x20, 0x20);
+ m_tilemap_1 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(paradise_state::get_tile_info_1)), TILEMAP_SCAN_ROWS, 8, 8, 0x20, 0x20);
+ m_tilemap_2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(paradise_state::get_tile_info_2)), TILEMAP_SCAN_ROWS, 8, 8, 0x20, 0x20);
/* pixmap */
m_screen->register_screen_bitmap(m_tmpbitmap);
diff --git a/src/mame/video/pass.cpp b/src/mame/video/pass.cpp
index 2d903b15ad9..cb8289e7bb9 100644
--- a/src/mame/video/pass.cpp
+++ b/src/mame/video/pass.cpp
@@ -46,8 +46,8 @@ WRITE16_MEMBER(pass_state::pass_fg_videoram_w)
void pass_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(pass_state::get_pass_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(pass_state::get_pass_fg_tile_info),this), TILEMAP_SCAN_ROWS, 4, 4, 128, 64);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(pass_state::get_pass_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(pass_state::get_pass_fg_tile_info)), TILEMAP_SCAN_ROWS, 4, 4, 128, 64);
m_fg_tilemap->set_transparent_pen(255);
}
diff --git a/src/mame/video/pbaction.cpp b/src/mame/video/pbaction.cpp
index 6e339f33c11..15f41317a7f 100644
--- a/src/mame/video/pbaction.cpp
+++ b/src/mame/video/pbaction.cpp
@@ -72,8 +72,8 @@ TILE_GET_INFO_MEMBER(pbaction_state::get_fg_tile_info)
void pbaction_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(pbaction_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(pbaction_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(pbaction_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(pbaction_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(0);
}
diff --git a/src/mame/video/pc080sn.cpp b/src/mame/video/pc080sn.cpp
index 70aba4a083e..58f02203200 100644
--- a/src/mame/video/pc080sn.cpp
+++ b/src/mame/video/pc080sn.cpp
@@ -85,13 +85,13 @@ void pc080sn_device::device_start()
/* use the given gfx set for bg tiles */
if (!m_dblwidth) /* standard tilemaps */
{
- m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(pc080sn_device::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(pc080sn_device::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(pc080sn_device::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(pc080sn_device::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
}
else /* double width tilemaps */
{
- m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(pc080sn_device::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 128, 64);
- m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(pc080sn_device::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 128, 64);
+ m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(pc080sn_device::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 128, 64);
+ m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(pc080sn_device::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 128, 64);
}
m_tilemap[0]->set_transparent_pen(0);
diff --git a/src/mame/video/pc090oj.cpp b/src/mame/video/pc090oj.cpp
index 43d87c2e6f4..2f283eff2d5 100644
--- a/src/mame/video/pc090oj.cpp
+++ b/src/mame/video/pc090oj.cpp
@@ -77,6 +77,7 @@ DEFINE_DEVICE_TYPE(PC090OJ, pc090oj_device, "pc090oj", "Taito PC090OJ")
pc090oj_device::pc090oj_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
: device_t(mconfig, PC090OJ, tag, owner, clock)
, device_gfx_interface(mconfig, *this, nullptr)
+ , m_colpri_cb(*this)
, m_ctrl(0)
, m_sprite_ctrl(0)
, m_ram(nullptr)
@@ -106,6 +107,8 @@ void pc090oj_device::device_start()
decode_gfx(gfxinfo);
gfx(0)->set_colors(palette().entries() / 16);
+ m_colpri_cb.resolve();
+
m_ram = make_unique_clear<u16[]>(PC090OJ_RAM_SIZE / 2);
m_ram_buffered = make_unique_clear<u16[]>(PC090OJ_RAM_SIZE / 2);
diff --git a/src/mame/video/pc090oj.h b/src/mame/video/pc090oj.h
index 6a518d9b669..42a5b5bd245 100644
--- a/src/mame/video/pc090oj.h
+++ b/src/mame/video/pc090oj.h
@@ -5,11 +5,11 @@
#pragma once
-typedef device_delegate<void (u32 &sprite_colbank, u32 &pri_mask, u16 sprite_ctrl)> pc090oj_colpri_cb_delegate;
-
class pc090oj_device : public device_t, public device_gfx_interface
{
public:
+ typedef device_delegate<void (u32 &sprite_colbank, u32 &pri_mask, u16 sprite_ctrl)> colpri_cb_delegate;
+
pc090oj_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
// configuration
@@ -19,7 +19,7 @@ public:
m_x_offset = x_offset;
m_y_offset = y_offset;
}
- template <typename... T> void set_colpri_callback(T &&... args) { m_colpri_cb = pc090oj_colpri_cb_delegate(std::forward<T>(args)...); }
+ template <typename... T> void set_colpri_callback(T &&... args) { m_colpri_cb.set(std::forward<T>(args)...); }
u16 word_r(offs_t offset);
void word_w(offs_t offset, u16 data, u16 mem_mask = 0);
@@ -41,9 +41,9 @@ private:
includes color banking and (optionally) priority. It allows each game to
control these aspects of the sprites in different ways, while keeping the
routines here modular.
+ */
-*/
- pc090oj_colpri_cb_delegate m_colpri_cb;
+ colpri_cb_delegate m_colpri_cb;
// decoding info
DECLARE_GFXDECODE_MEMBER(gfxinfo);
diff --git a/src/mame/video/pc1512.cpp b/src/mame/video/pc1512.cpp
index a075bfe061d..0e6b7f0606a 100644
--- a/src/mame/video/pc1512.cpp
+++ b/src/mame/video/pc1512.cpp
@@ -606,5 +606,5 @@ void pc1512_state::pc1512_video(machine_config &config)
m_vdu->set_screen(m_screen);
m_vdu->set_show_border_area(true);
m_vdu->set_char_width(8);
- m_vdu->set_update_row_callback(FUNC(pc1512_state::crtc_update_row), this);
+ m_vdu->set_update_row_callback(FUNC(pc1512_state::crtc_update_row));
}
diff --git a/src/mame/video/pc_t1t.cpp b/src/mame/video/pc_t1t.cpp
index 047445253c0..39e33ff66b0 100644
--- a/src/mame/video/pc_t1t.cpp
+++ b/src/mame/video/pc_t1t.cpp
@@ -128,7 +128,7 @@ void pcvideo_t1000_device::device_add_mconfig(machine_config &config)
m_mc6845->set_screen(T1000_SCREEN_NAME);
m_mc6845->set_show_border_area(false);
m_mc6845->set_char_width(8);
- m_mc6845->set_update_row_callback(FUNC(pc_t1t_device::crtc_update_row), this);
+ m_mc6845->set_update_row_callback(FUNC(pc_t1t_device::crtc_update_row));
m_mc6845->out_de_callback().set(FUNC(pc_t1t_device::t1000_de_changed));
m_mc6845->out_vsync_callback().set(FUNC(pcvideo_t1000_device::t1000_vsync_changed));
@@ -148,7 +148,7 @@ void pcvideo_pcjr_device::device_add_mconfig(machine_config &config)
m_mc6845->set_screen(T1000_SCREEN_NAME);
m_mc6845->set_show_border_area(false);
m_mc6845->set_char_width(8);
- m_mc6845->set_update_row_callback(FUNC(pcvideo_pcjr_device::crtc_update_row), this);
+ m_mc6845->set_update_row_callback(FUNC(pcvideo_pcjr_device::crtc_update_row));
m_mc6845->out_de_callback().set(FUNC(pc_t1t_device::t1000_de_changed));
m_mc6845->out_vsync_callback().set(FUNC(pcvideo_pcjr_device::pcjr_vsync_changed));
diff --git a/src/mame/video/pcd.cpp b/src/mame/video/pcd.cpp
index bab1c77fdc5..d367e3de11f 100644
--- a/src/mame/video/pcd.cpp
+++ b/src/mame/video/pcd.cpp
@@ -399,8 +399,8 @@ WRITE8_MEMBER(pcx_video_device::p1_w)
void pcd_video_device::device_start()
{
- m_maincpu->space(AS_IO).install_readwrite_handler(0xfb00, 0xfb01, read8_delegate(FUNC(pcdx_video_device::detect_r), this), write8_delegate(FUNC(pcdx_video_device::detect_w), this), 0xff00);
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf0000, 0xf7fff, read8_delegate(FUNC(pcd_video_device::vram_r), this), write8_delegate(FUNC(pcd_video_device::vram_w), this), 0xffff);
+ m_maincpu->space(AS_IO).install_readwrite_handler(0xfb00, 0xfb01, read8_delegate(*this, FUNC(pcdx_video_device::detect_r)), write8_delegate(*this, FUNC(pcdx_video_device::detect_w)), 0xff00);
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf0000, 0xf7fff, read8_delegate(*this, FUNC(pcd_video_device::vram_r)), write8_delegate(*this, FUNC(pcd_video_device::vram_w)), 0xffff);
set_gfx(0, std::make_unique<gfx_element>(&palette(), pcd_charlayout, &m_charram[0], 0, 1, 0));
}
@@ -425,7 +425,7 @@ void pcd_video_device::map(address_map &map)
void pcx_video_device::device_start()
{
- m_maincpu->space(AS_IO).install_readwrite_handler(0xfb00, 0xfb01, read8_delegate(FUNC(pcdx_video_device::detect_r), this), write8_delegate(FUNC(pcdx_video_device::detect_w), this), 0x00ff);
+ m_maincpu->space(AS_IO).install_readwrite_handler(0xfb00, 0xfb01, read8_delegate(*this, FUNC(pcdx_video_device::detect_r)), write8_delegate(*this, FUNC(pcdx_video_device::detect_w)), 0x00ff);
m_txd_handler.resolve_safe();
set_data_frame(1, 8, PARITY_NONE, STOP_BITS_1);
diff --git a/src/mame/video/pgm.cpp b/src/mame/video/pgm.cpp
index 0cd5b4111e0..5fc5016dbad 100644
--- a/src/mame/video/pgm.cpp
+++ b/src/mame/video/pgm.cpp
@@ -578,10 +578,10 @@ void pgm_state::video_start()
m_aoffset = 0;
m_boffset = 0;
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(pgm_state::get_tx_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(pgm_state::get_tx_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_tx_tilemap->set_transparent_pen(15);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(pgm_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 32, 32, 64, 16);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(pgm_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 32, 32, 64, 16);
m_bg_tilemap->set_transparent_pen(31);
m_bg_tilemap->set_scroll_rows(16 * 32);
diff --git a/src/mame/video/pgm2.cpp b/src/mame/video/pgm2.cpp
index 07bb2748b42..5216e6d68c5 100644
--- a/src/mame/video/pgm2.cpp
+++ b/src/mame/video/pgm2.cpp
@@ -371,10 +371,10 @@ TILE_GET_INFO_MEMBER(pgm2_state::get_bg_tile_info)
void pgm2_state::video_start()
{
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode2, tilemap_get_info_delegate(FUNC(pgm2_state::get_fg_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 96, 64); // 0x6000 bytes
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode2, tilemap_get_info_delegate(*this, FUNC(pgm2_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 96, 64); // 0x6000 bytes
m_fg_tilemap->set_transparent_pen(0);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode3, tilemap_get_info_delegate(FUNC(pgm2_state::get_bg_tile_info), this), TILEMAP_SCAN_ROWS, 32, 32, 64, 32); // 0x2000 bytes
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode3, tilemap_get_info_delegate(*this, FUNC(pgm2_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 32, 32, 64, 32); // 0x2000 bytes
m_bg_tilemap->set_transparent_pen(0);
m_bg_tilemap->set_scroll_rows(32 * 32);
diff --git a/src/mame/video/phoenix.cpp b/src/mame/video/phoenix.cpp
index defbfc285d9..9c530ca110e 100644
--- a/src/mame/video/phoenix.cpp
+++ b/src/mame/video/phoenix.cpp
@@ -178,8 +178,8 @@ VIDEO_START_MEMBER(phoenix_state,phoenix)
m_palette_bank = 0;
m_cocktail_mode = 0;
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(phoenix_state::get_fg_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(phoenix_state::get_bg_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(phoenix_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(phoenix_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/pingpong.cpp b/src/mame/video/pingpong.cpp
index ab4170b0aa2..5ca96fd42a3 100644
--- a/src/mame/video/pingpong.cpp
+++ b/src/mame/video/pingpong.cpp
@@ -104,7 +104,7 @@ TILE_GET_INFO_MEMBER(pingpong_state::get_bg_tile_info)
void pingpong_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(pingpong_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(pingpong_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
void pingpong_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect )
diff --git a/src/mame/video/pirates.cpp b/src/mame/video/pirates.cpp
index 66e3be0aa92..56dd486e730 100644
--- a/src/mame/video/pirates.cpp
+++ b/src/mame/video/pirates.cpp
@@ -37,11 +37,11 @@ TILE_GET_INFO_MEMBER(pirates_state::get_bg_tile_info)
void pirates_state::video_start()
{
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(pirates_state::get_tx_tile_info),this),TILEMAP_SCAN_COLS,8,8,36,32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(pirates_state::get_tx_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 36, 32);
- /* Not sure how big they can be, Pirates uses only 32 columns, Genix 44 */
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(pirates_state::get_fg_tile_info),this),TILEMAP_SCAN_COLS,8,8,64,32);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(pirates_state::get_bg_tile_info),this),TILEMAP_SCAN_COLS, 8,8,64,32);
+ // Not sure how big they can be, Pirates uses only 32 columns, Genix 44
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(pirates_state::get_fg_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(pirates_state::get_bg_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 64, 32);
m_tx_tilemap->set_transparent_pen(0);
m_fg_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/pitnrun.cpp b/src/mame/video/pitnrun.cpp
index 6d408cdab09..4d747a5946b 100644
--- a/src/mame/video/pitnrun.cpp
+++ b/src/mame/video/pitnrun.cpp
@@ -170,8 +170,8 @@ void pitnrun_state::pitnrun_palette(palette_device &palette) const
void pitnrun_state::video_start()
{
- m_fg = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(pitnrun_state::get_tile_info1),this),TILEMAP_SCAN_ROWS,8,8,32,32 );
- m_bg = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(pitnrun_state::get_tile_info2),this),TILEMAP_SCAN_ROWS,8,8,32*4,32 );
+ m_fg = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(pitnrun_state::get_tile_info1)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(pitnrun_state::get_tile_info2)), TILEMAP_SCAN_ROWS, 8, 8, 32*4, 32);
m_fg->set_transparent_pen(0 );
m_tmp_bitmap[0] = std::make_unique<bitmap_ind16>(128,128);
m_tmp_bitmap[1] = std::make_unique<bitmap_ind16>(128,128);
diff --git a/src/mame/video/playch10.cpp b/src/mame/video/playch10.cpp
index 935af106c14..e588fb72a7e 100644
--- a/src/mame/video/playch10.cpp
+++ b/src/mame/video/playch10.cpp
@@ -76,7 +76,7 @@ void playch10_state::video_start()
const uint8_t *bios = memregion("maincpu")->base();
m_pc10_bios = (bios[3] == 0x2a) ? 1 : 2;
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(playch10_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS,
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(playch10_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS,
8, 8, 32, 32);
}
@@ -85,7 +85,7 @@ VIDEO_START_MEMBER(playch10_state,playch10_hboard)
const uint8_t *bios = memregion("maincpu")->base();
m_pc10_bios = (bios[3] == 0x2a) ? 1 : 2;
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(playch10_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS,
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(playch10_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS,
8, 8, 32, 32);
}
diff --git a/src/mame/video/playmark.cpp b/src/mame/video/playmark.cpp
index 73d2ef93526..7294bc50ee6 100644
--- a/src/mame/video/playmark.cpp
+++ b/src/mame/video/playmark.cpp
@@ -92,8 +92,8 @@ TILE_GET_INFO_MEMBER(playmark_state::bigtwinb_get_tx_tile_info)
VIDEO_START_MEMBER(playmark_state,bigtwin)
{
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(playmark_state::bigtwin_get_tx_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(playmark_state::bigtwin_get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(playmark_state::bigtwin_get_tx_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(playmark_state::bigtwin_get_fg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
m_tx_tilemap->set_transparent_pen(0);
@@ -108,9 +108,9 @@ VIDEO_START_MEMBER(playmark_state,bigtwin)
VIDEO_START_MEMBER(playmark_state,bigtwinb)
{
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(playmark_state::bigtwinb_get_tx_tile_info),this),TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(playmark_state::hrdtimes_get_fg_tile_info),this),TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(playmark_state::hrdtimes_get_bg_tile_info),this),TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(playmark_state::bigtwinb_get_tx_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(playmark_state::hrdtimes_get_fg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(playmark_state::hrdtimes_get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
m_tx_tilemap->set_transparent_pen(0);
m_fg_tilemap->set_transparent_pen(0);
@@ -128,9 +128,9 @@ VIDEO_START_MEMBER(playmark_state,bigtwinb)
VIDEO_START_MEMBER(playmark_state,wbeachvl)
{
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(playmark_state::wbeachvl_get_tx_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(playmark_state::wbeachvl_get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(playmark_state::wbeachvl_get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(playmark_state::wbeachvl_get_tx_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(playmark_state::wbeachvl_get_fg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(playmark_state::wbeachvl_get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
m_tx_tilemap->set_transparent_pen(0);
m_fg_tilemap->set_transparent_pen(0);
@@ -145,8 +145,8 @@ VIDEO_START_MEMBER(playmark_state,wbeachvl)
VIDEO_START_MEMBER(playmark_state,excelsr)
{
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(playmark_state::bigtwin_get_tx_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(playmark_state::bigtwin_get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(playmark_state::bigtwin_get_tx_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(playmark_state::bigtwin_get_fg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
m_tx_tilemap->set_transparent_pen(0);
@@ -160,9 +160,9 @@ VIDEO_START_MEMBER(playmark_state,excelsr)
VIDEO_START_MEMBER(playmark_state,hotmind)
{
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(playmark_state::hrdtimes_get_tx_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(playmark_state::hrdtimes_get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(playmark_state::hrdtimes_get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(playmark_state::hrdtimes_get_tx_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(playmark_state::hrdtimes_get_fg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(playmark_state::hrdtimes_get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
m_tx_tilemap->set_transparent_pen(0);
m_fg_tilemap->set_transparent_pen(0);
@@ -181,9 +181,9 @@ VIDEO_START_MEMBER(playmark_state,hotmind)
VIDEO_START_MEMBER(playmark_state,luckboomh)
{
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(playmark_state::hrdtimes_get_tx_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(playmark_state::hrdtimes_get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(playmark_state::hrdtimes_get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(playmark_state::hrdtimes_get_tx_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(playmark_state::hrdtimes_get_fg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(playmark_state::hrdtimes_get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
m_tx_tilemap->set_transparent_pen(0);
m_fg_tilemap->set_transparent_pen(0);
@@ -221,9 +221,9 @@ TILEMAP_MAPPER_MEMBER(playmark_state::playmark_tilemap_scan_pages)
VIDEO_START_MEMBER(playmark_state,hrdtimes)
{
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(playmark_state::hrdtimes_get_tx_tile_info),this),TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(playmark_state::hrdtimes_get_fg_tile_info),this),tilemap_mapper_delegate(FUNC(playmark_state::playmark_tilemap_scan_pages),this), 16, 16, 128, 32);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(playmark_state::hrdtimes_get_bg_tile_info),this),TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(playmark_state::hrdtimes_get_tx_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(playmark_state::hrdtimes_get_fg_tile_info)), tilemap_mapper_delegate(*this, FUNC(playmark_state::playmark_tilemap_scan_pages)), 16, 16, 128, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(playmark_state::hrdtimes_get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
m_tx_tilemap->set_transparent_pen(0);
m_fg_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/plygonet.cpp b/src/mame/video/plygonet.cpp
index 51eecb0358e..390be8274f1 100644
--- a/src/mame/video/plygonet.cpp
+++ b/src/mame/video/plygonet.cpp
@@ -105,12 +105,12 @@ void polygonet_state::video_start()
m_gfxdecode->set_gfx(m_ttl_gfx_index, std::make_unique<gfx_element>(m_palette, charlayout, memregion("gfx1")->base(), 0, m_palette->entries() / 16, 0));
/* create the tilemap */
- m_ttl_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(polygonet_state::ttl_get_tile_info),this), tilemap_mapper_delegate(FUNC(polygonet_state::plygonet_scan),this), 8, 8, 64, 32);
+ m_ttl_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(polygonet_state::ttl_get_tile_info)), tilemap_mapper_delegate(*this, FUNC(polygonet_state::plygonet_scan)), 8, 8, 64, 32);
m_ttl_tilemap->set_transparent_pen(0);
/* set up the roz t-map too */
- m_roz_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(polygonet_state::roz_get_tile_info),this), tilemap_mapper_delegate(FUNC(polygonet_state::plygonet_scan_cols),this), 16, 16, 32, 64);
+ m_roz_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(polygonet_state::roz_get_tile_info)), tilemap_mapper_delegate(*this, FUNC(polygonet_state::plygonet_scan_cols)), 16, 16, 32, 64);
m_roz_tilemap->set_transparent_pen(0);
/* save states */
diff --git a/src/mame/video/pokechmp.cpp b/src/mame/video/pokechmp.cpp
index 29be909ca0b..1d55064a01a 100644
--- a/src/mame/video/pokechmp.cpp
+++ b/src/mame/video/pokechmp.cpp
@@ -34,7 +34,7 @@ TILE_GET_INFO_MEMBER(pokechmp_state::get_bg_tile_info)
void pokechmp_state::video_start()
{
m_bg_tilemap = &machine().tilemap().create(
- *m_gfxdecode, tilemap_get_info_delegate(FUNC(pokechmp_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS,
+ *m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(pokechmp_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS,
8, 8, 32, 32);
}
diff --git a/src/mame/video/polepos.cpp b/src/mame/video/polepos.cpp
index e3171c229c3..8b6e4d381eb 100644
--- a/src/mame/video/polepos.cpp
+++ b/src/mame/video/polepos.cpp
@@ -188,8 +188,8 @@ TILE_GET_INFO_MEMBER(polepos_state::tx_get_tile_info)
void polepos_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(polepos_state::bg_get_tile_info),this),TILEMAP_SCAN_COLS,8,8,64,16);
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(polepos_state::tx_get_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(polepos_state::bg_get_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 64, 16);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(polepos_state::tx_get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_tx_tilemap->configure_groups(*m_gfxdecode->gfx(0), 0x2f);
diff --git a/src/mame/video/poolshrk.cpp b/src/mame/video/poolshrk.cpp
index cb396c94bce..973da751bda 100644
--- a/src/mame/video/poolshrk.cpp
+++ b/src/mame/video/poolshrk.cpp
@@ -20,7 +20,7 @@ TILE_GET_INFO_MEMBER(poolshrk_state::get_tile_info)
void poolshrk_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(poolshrk_state::get_tile_info),this), TILEMAP_SCAN_ROWS,
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(poolshrk_state::get_tile_info)), TILEMAP_SCAN_ROWS,
8, 8, 32, 32);
m_bg_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/pooyan.cpp b/src/mame/video/pooyan.cpp
index e1fbc6f2875..cbe34704d3c 100644
--- a/src/mame/video/pooyan.cpp
+++ b/src/mame/video/pooyan.cpp
@@ -113,7 +113,7 @@ TILE_GET_INFO_MEMBER(pooyan_state::get_bg_tile_info)
void pooyan_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(pooyan_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(pooyan_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
diff --git a/src/mame/video/popeye.cpp b/src/mame/video/popeye.cpp
index b5052e8a1b6..ed18ca725ae 100644
--- a/src/mame/video/popeye.cpp
+++ b/src/mame/video/popeye.cpp
@@ -245,7 +245,7 @@ void tnx1_state::video_start()
m_sprite_bitmap = std::make_unique<bitmap_ind16>(512, 512);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tnx1_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tnx1_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
m_fg_tilemap->set_transparent_pen(0);
m_field = 0;
diff --git a/src/mame/video/portrait.cpp b/src/mame/video/portrait.cpp
index b7a387c8aa5..46eb33b7d45 100644
--- a/src/mame/video/portrait.cpp
+++ b/src/mame/video/portrait.cpp
@@ -66,8 +66,8 @@ TILE_GET_INFO_MEMBER(portrait_state::get_fg_tile_info)
void portrait_state::video_start()
{
- m_background = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(portrait_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32 );
- m_foreground = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(portrait_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32 );
+ m_background = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(portrait_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_foreground = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(portrait_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
m_foreground->set_transparent_pen(7);
diff --git a/src/mame/video/powerins.cpp b/src/mame/video/powerins.cpp
index 372a27d515e..18accbb4169 100644
--- a/src/mame/video/powerins.cpp
+++ b/src/mame/video/powerins.cpp
@@ -149,8 +149,8 @@ void powerins_state::video_start()
m_spritebuffer[0] = make_unique_clear<uint16_t[]>(0x1000/2);
m_spritebuffer[1] = make_unique_clear<uint16_t[]>(0x1000/2);
- m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(powerins_state::get_tile_info_0),this),tilemap_mapper_delegate(FUNC(powerins_state::get_memory_offset_0),this),16,16,256,32);
- m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(powerins_state::get_tile_info_1),this),TILEMAP_SCAN_COLS,8,8,64,32);
+ m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(powerins_state::get_tile_info_0)), tilemap_mapper_delegate(*this, FUNC(powerins_state::get_memory_offset_0)), 16, 16, 256, 32);
+ m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(powerins_state::get_tile_info_1)), TILEMAP_SCAN_COLS, 8, 8, 64, 32);
m_tilemap[1]->set_transparent_pen(15);
diff --git a/src/mame/video/prehisle.cpp b/src/mame/video/prehisle.cpp
index dc4289e520d..b545ff0b02d 100644
--- a/src/mame/video/prehisle.cpp
+++ b/src/mame/video/prehisle.cpp
@@ -101,7 +101,7 @@ void prehisle_state::video_start()
// ROM-based background layer
m_bg_tilemap = &machine().tilemap().create(
*m_gfxdecode,
- tilemap_get_info_delegate(FUNC(prehisle_state::get_bg_tile_info), this),
+ tilemap_get_info_delegate(*this, FUNC(prehisle_state::get_bg_tile_info)),
TILEMAP_SCAN_COLS, // scan order
16, 16, // tile size
1024, 32); // tilemap size
@@ -109,7 +109,7 @@ void prehisle_state::video_start()
// RAM-based foreground layer (overlays most sprites)
m_fg_tilemap = &machine().tilemap().create(
*m_gfxdecode,
- tilemap_get_info_delegate(FUNC(prehisle_state::get_fg_tile_info), this),
+ tilemap_get_info_delegate(*this, FUNC(prehisle_state::get_fg_tile_info)),
TILEMAP_SCAN_COLS, // scan order
16, 16, // tile size
256, 32); // tilemap size
@@ -118,7 +118,7 @@ void prehisle_state::video_start()
// text layer
m_tx_tilemap = &machine().tilemap().create(
*m_gfxdecode,
- tilemap_get_info_delegate(FUNC(prehisle_state::get_tx_tile_info), this),
+ tilemap_get_info_delegate(*this, FUNC(prehisle_state::get_tx_tile_info)),
TILEMAP_SCAN_ROWS, // scan order
8, 8, // tile size
32, 32); // tilemap size
diff --git a/src/mame/video/psikyo.cpp b/src/mame/video/psikyo.cpp
index 96cbbe08e5a..75ad95db0d2 100644
--- a/src/mame/video/psikyo.cpp
+++ b/src/mame/video/psikyo.cpp
@@ -103,8 +103,8 @@ VIDEO_START_MEMBER(psikyo_state,psikyo)
for (int size = 0; size < 4; size++)
{
- m_tilemap[0][size] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(psikyo_state::get_tile_info<0>),this), TILEMAP_SCAN_ROWS, 16, 16, 0x20 << size, 0x80 >> size);
- m_tilemap[1][size] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(psikyo_state::get_tile_info<1>),this), TILEMAP_SCAN_ROWS, 16, 16, 0x20 << size, 0x80 >> size);
+ m_tilemap[0][size] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(psikyo_state::get_tile_info<0>)), TILEMAP_SCAN_ROWS, 16, 16, 0x20 << size, 0x80 >> size);
+ m_tilemap[1][size] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(psikyo_state::get_tile_info<1>)), TILEMAP_SCAN_ROWS, 16, 16, 0x20 << size, 0x80 >> size);
for (int layer = 0; layer < 2; layer++)
{
diff --git a/src/mame/video/psychic5.cpp b/src/mame/video/psychic5.cpp
index 8d03ab5d549..863f2ed59e7 100644
--- a/src/mame/video/psychic5.cpp
+++ b/src/mame/video/psychic5.cpp
@@ -188,8 +188,8 @@ VIDEO_START_MEMBER(psychic5_state,psychic5)
{
video_start();
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(psychic5_state::get_bg_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 64, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(psychic5_state::get_fg_tile_info),this), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(psychic5_state::get_bg_tile_info)), TILEMAP_SCAN_COLS, 16, 16, 64, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(psychic5_state::get_fg_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(15);
save_item(NAME(m_title_screen));
@@ -200,8 +200,8 @@ VIDEO_START_MEMBER(psychic5_state,bombsa)
{
video_start();
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(psychic5_state::get_bg_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 128, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(psychic5_state::get_fg_tile_info),this), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(psychic5_state::get_bg_tile_info)), TILEMAP_SCAN_COLS, 16, 16, 128, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(psychic5_state::get_fg_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(15);
save_item(NAME(m_bombsa_unknown));
diff --git a/src/mame/video/punchout.cpp b/src/mame/video/punchout.cpp
index 8d64b464376..fa3285eaa40 100644
--- a/src/mame/video/punchout.cpp
+++ b/src/mame/video/punchout.cpp
@@ -96,12 +96,12 @@ TILEMAP_MAPPER_MEMBER(punchout_state::armwrest_bs1_scan_flipx)
void punchout_state::video_start()
{
- m_bg_top_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(punchout_state::top_get_info),this), TILEMAP_SCAN_ROWS, 8,8, 32,32);
- m_bg_bot_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(punchout_state::bot_get_info),this), TILEMAP_SCAN_ROWS, 8,8, 64,32);
+ m_bg_top_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(punchout_state::top_get_info)), TILEMAP_SCAN_ROWS, 8,8, 32,32);
+ m_bg_bot_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(punchout_state::bot_get_info)), TILEMAP_SCAN_ROWS, 8,8, 64,32);
m_bg_bot_tilemap->set_scroll_rows(32);
- m_spr1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(punchout_state::bs1_get_info),this), TILEMAP_SCAN_ROWS, 8,8, 16,32);
- m_spr2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(punchout_state::bs2_get_info),this), TILEMAP_SCAN_ROWS, 8,8, 16,32);
+ m_spr1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(punchout_state::bs1_get_info)), TILEMAP_SCAN_ROWS, 8,8, 16,32);
+ m_spr2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(punchout_state::bs2_get_info)), TILEMAP_SCAN_ROWS, 8,8, 16,32);
m_fg_tilemap = nullptr;
@@ -112,13 +112,13 @@ void punchout_state::video_start()
VIDEO_START_MEMBER(punchout_state,armwrest)
{
- m_bg_top_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(punchout_state::armwrest_top_get_info),this), TILEMAP_SCAN_ROWS, 8,8, 32,32);
- m_bg_bot_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(punchout_state::armwrest_bot_get_info),this), TILEMAP_SCAN_ROWS, 8,8, 32,32);
+ m_bg_top_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(punchout_state::armwrest_top_get_info)), TILEMAP_SCAN_ROWS, 8,8, 32,32);
+ m_bg_bot_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(punchout_state::armwrest_bot_get_info)), TILEMAP_SCAN_ROWS, 8,8, 32,32);
- m_spr1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(punchout_state::bs1_get_info),this), tilemap_mapper_delegate(FUNC(punchout_state::armwrest_bs1_scan),this), 8,8, 32,16);
- m_spr1_tilemap_flipx = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(punchout_state::bs1_get_info),this), tilemap_mapper_delegate(FUNC(punchout_state::armwrest_bs1_scan_flipx),this), 8,8, 32,16);
- m_spr2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(punchout_state::bs2_get_info),this), TILEMAP_SCAN_ROWS, 8,8, 16,32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(punchout_state::armwrest_fg_get_info),this), TILEMAP_SCAN_ROWS, 8,8, 32,32);
+ m_spr1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(punchout_state::bs1_get_info)), tilemap_mapper_delegate(*this, FUNC(punchout_state::armwrest_bs1_scan)), 8,8, 32,16);
+ m_spr1_tilemap_flipx = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(punchout_state::bs1_get_info)), tilemap_mapper_delegate(*this, FUNC(punchout_state::armwrest_bs1_scan_flipx)), 8,8, 32,16);
+ m_spr2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(punchout_state::bs2_get_info)), TILEMAP_SCAN_ROWS, 8,8, 16,32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(punchout_state::armwrest_fg_get_info)), TILEMAP_SCAN_ROWS, 8,8, 32,32);
m_spr1_tilemap->set_transparent_pen(0x07);
m_spr1_tilemap_flipx->set_transparent_pen(0x07);
diff --git a/src/mame/video/qix.cpp b/src/mame/video/qix.cpp
index 07d2af06ede..62eeb26c27d 100644
--- a/src/mame/video/qix.cpp
+++ b/src/mame/video/qix.cpp
@@ -8,9 +8,10 @@
***************************************************************************/
#include "emu.h"
-#include "video/mc6845.h"
#include "includes/qix.h"
+
#include "cpu/m6809/m6809.h"
+#include "video/mc6845.h"
/*************************************
@@ -389,14 +390,14 @@ void qix_state::qix_video(machine_config &config)
m_crtc->set_screen(m_screen);
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8);
- m_crtc->set_begin_update_callback(FUNC(qix_state::crtc_begin_update), this);
- m_crtc->set_update_row_callback(FUNC(qix_state::crtc_update_row), this);
+ m_crtc->set_begin_update_callback(FUNC(qix_state::crtc_begin_update));
+ m_crtc->set_update_row_callback(FUNC(qix_state::crtc_update_row));
m_crtc->out_de_callback().set(FUNC(qix_state::display_enable_changed));
m_crtc->out_vsync_callback().set(FUNC(qix_state::qix_vsync_changed));
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
m_screen->set_raw(QIX_CHARACTER_CLOCK*8, 0x148, 0, 0x100, 0x111, 0, 0x100); /* from CRTC */
- m_screen->set_screen_update("vid_u18", FUNC(mc6845_device::screen_update));
+ m_screen->set_screen_update(m_crtc, FUNC(mc6845_device::screen_update));
}
void qix_state::kram3_video(machine_config &config)
diff --git a/src/mame/video/quizdna.cpp b/src/mame/video/quizdna.cpp
index ce4f2911194..9ed8ad933f1 100644
--- a/src/mame/video/quizdna.cpp
+++ b/src/mame/video/quizdna.cpp
@@ -56,10 +56,10 @@ void quizdna_state::video_start()
m_bg_ram = std::make_unique<uint8_t[]>(0x2000);
m_fg_ram = std::make_unique<uint8_t[]>(0x1000);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(quizdna_state::get_bg_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,32 );
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(quizdna_state::get_fg_tile_info),this),TILEMAP_SCAN_ROWS,16,8,32,32 );
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(quizdna_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(quizdna_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 16, 8, 32, 32);
- m_fg_tilemap->set_transparent_pen(0 );
+ m_fg_tilemap->set_transparent_pen(0);
save_pointer(NAME(m_bg_ram), 0x2000);
save_pointer(NAME(m_fg_ram), 0x1000);
diff --git a/src/mame/video/quizpani.cpp b/src/mame/video/quizpani.cpp
index 671de543a67..17770ae670c 100644
--- a/src/mame/video/quizpani.cpp
+++ b/src/mame/video/quizpani.cpp
@@ -68,8 +68,8 @@ WRITE16_MEMBER(quizpani_state::tilesbank_w)
void quizpani_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(quizpani_state::bg_tile_info),this), tilemap_mapper_delegate(FUNC(quizpani_state::bg_scan),this),16,16,256,32);
- m_txt_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(quizpani_state::txt_tile_info),this),tilemap_mapper_delegate(FUNC(quizpani_state::bg_scan),this),16,16,256,32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(quizpani_state::bg_tile_info)), tilemap_mapper_delegate(*this, FUNC(quizpani_state::bg_scan)), 16,16, 256,32);
+ m_txt_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(quizpani_state::txt_tile_info)), tilemap_mapper_delegate(*this, FUNC(quizpani_state::bg_scan)), 16,16, 256,32);
m_txt_tilemap->set_transparent_pen(15);
save_item(NAME(m_bgbank));
diff --git a/src/mame/video/raiden.cpp b/src/mame/video/raiden.cpp
index 2b55df6e67d..430d4ea1cf7 100644
--- a/src/mame/video/raiden.cpp
+++ b/src/mame/video/raiden.cpp
@@ -224,9 +224,9 @@ TILE_GET_INFO_MEMBER(raiden_state::get_text_tile_info)
void raiden_state::video_start()
{
- m_bg_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(raiden_state::get_back_tile_info),this),TILEMAP_SCAN_COLS,16,16,32,32);
- m_fg_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(raiden_state::get_fore_tile_info),this),TILEMAP_SCAN_COLS,16,16,32,32);
- m_tx_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(raiden_state::get_text_tile_info),this),TILEMAP_SCAN_ROWS,8, 8, 32,32);
+ m_bg_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(raiden_state::get_back_tile_info)), TILEMAP_SCAN_COLS, 16,16, 32,32);
+ m_fg_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(raiden_state::get_fore_tile_info)), TILEMAP_SCAN_COLS, 16,16, 32,32);
+ m_tx_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(raiden_state::get_text_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32,32);
m_fg_layer->set_transparent_pen(15);
m_tx_layer->set_transparent_pen(15);
@@ -240,9 +240,9 @@ void raiden_state::video_start()
VIDEO_START_MEMBER(raiden_state,raidenb)
{
- m_bg_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(raiden_state::get_back_tile_info),this),TILEMAP_SCAN_COLS,16,16,32,32);
- m_fg_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(raiden_state::get_fore_tile_info),this),TILEMAP_SCAN_COLS,16,16,32,32);
- m_tx_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(raiden_state::get_text_tile_info),this),TILEMAP_SCAN_COLS,8, 8, 32,32);
+ m_bg_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(raiden_state::get_back_tile_info)), TILEMAP_SCAN_COLS, 16,16, 32,32);
+ m_fg_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(raiden_state::get_fore_tile_info)), TILEMAP_SCAN_COLS, 16,16, 32,32);
+ m_tx_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(raiden_state::get_text_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 32,32);
m_fg_layer->set_transparent_pen(15);
m_tx_layer->set_transparent_pen(15);
diff --git a/src/mame/video/raiden2.cpp b/src/mame/video/raiden2.cpp
index 116ef9c0e78..a7237a49c6b 100644
--- a/src/mame/video/raiden2.cpp
+++ b/src/mame/video/raiden2.cpp
@@ -311,10 +311,10 @@ void raiden2_state::video_start()
save_pointer(NAME(m_text_data), 0x1000/2);
save_pointer(NAME(m_palette_data), 0x1000/2);
- m_text_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(raiden2_state::get_text_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64,32 );
- m_background_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(raiden2_state::get_back_tile_info),this), TILEMAP_SCAN_ROWS, 16,16, 32,32 );
- m_midground_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(raiden2_state::get_mid_tile_info),this), TILEMAP_SCAN_ROWS, 16,16, 32,32 );
- m_foreground_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(raiden2_state::get_fore_tile_info),this), TILEMAP_SCAN_ROWS, 16,16, 32,32 );
+ m_text_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(raiden2_state::get_text_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64,32 );
+ m_background_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(raiden2_state::get_back_tile_info)), TILEMAP_SCAN_ROWS, 16,16, 32,32 );
+ m_midground_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(raiden2_state::get_mid_tile_info)), TILEMAP_SCAN_ROWS, 16,16, 32,32 );
+ m_foreground_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(raiden2_state::get_fore_tile_info)), TILEMAP_SCAN_ROWS, 16,16, 32,32 );
}
void raiden2_state::blend_layer(bitmap_rgb32 &bitmap, const rectangle &cliprect, bitmap_ind16 &source, int layer)
diff --git a/src/mame/video/rallyx.cpp b/src/mame/video/rallyx.cpp
index 0823b3fc8e7..f89fc48442a 100644
--- a/src/mame/video/rallyx.cpp
+++ b/src/mame/video/rallyx.cpp
@@ -327,8 +327,8 @@ void rallyx_state::rallyx_video_start_common( )
VIDEO_START_MEMBER(rallyx_state,rallyx)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(rallyx_state::rallyx_bg_get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(rallyx_state::rallyx_fg_get_tile_info),this), tilemap_mapper_delegate(FUNC(rallyx_state::fg_tilemap_scan),this), 8, 8, 8, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(rallyx_state::rallyx_bg_get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(rallyx_state::rallyx_fg_get_tile_info)), tilemap_mapper_delegate(*this, FUNC(rallyx_state::fg_tilemap_scan)), 8, 8, 8, 32);
/* the scrolling tilemap is slightly misplaced in Rally X */
m_bg_tilemap->set_scrolldx(3, 3);
@@ -341,8 +341,8 @@ VIDEO_START_MEMBER(rallyx_state,rallyx)
VIDEO_START_MEMBER(rallyx_state,jungler)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(rallyx_state::rallyx_bg_get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(rallyx_state::rallyx_fg_get_tile_info),this), tilemap_mapper_delegate(FUNC(rallyx_state::fg_tilemap_scan),this), 8, 8, 8, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(rallyx_state::rallyx_bg_get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(rallyx_state::rallyx_fg_get_tile_info)), tilemap_mapper_delegate(*this, FUNC(rallyx_state::fg_tilemap_scan)), 8, 8, 8, 32);
m_spriteram_base = 0x14;
@@ -353,8 +353,8 @@ VIDEO_START_MEMBER(rallyx_state,jungler)
VIDEO_START_MEMBER(rallyx_state,locomotn)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(rallyx_state::locomotn_bg_get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(rallyx_state::locomotn_fg_get_tile_info),this), tilemap_mapper_delegate(FUNC(rallyx_state::fg_tilemap_scan),this), 8, 8, 8, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(rallyx_state::locomotn_bg_get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(rallyx_state::locomotn_fg_get_tile_info)), tilemap_mapper_delegate(*this, FUNC(rallyx_state::fg_tilemap_scan)), 8, 8, 8, 32);
m_spriteram_base = 0x14;
@@ -365,8 +365,8 @@ VIDEO_START_MEMBER(rallyx_state,locomotn)
VIDEO_START_MEMBER(rallyx_state,commsega)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(rallyx_state::locomotn_bg_get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(rallyx_state::locomotn_fg_get_tile_info),this), tilemap_mapper_delegate(FUNC(rallyx_state::fg_tilemap_scan),this), 8, 8, 8, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(rallyx_state::locomotn_bg_get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(rallyx_state::locomotn_fg_get_tile_info)), tilemap_mapper_delegate(*this, FUNC(rallyx_state::fg_tilemap_scan)), 8, 8, 8, 32);
/* commsega has more sprites and bullets than the other games */
m_spriteram_base = 0x00;
diff --git a/src/mame/video/realbrk.cpp b/src/mame/video/realbrk.cpp
index 5edd7558a2c..a0ad8393805 100644
--- a/src/mame/video/realbrk.cpp
+++ b/src/mame/video/realbrk.cpp
@@ -121,11 +121,11 @@ void realbrk_state::vram_2_w(offs_t offset, u16 data, u16 mem_mask)
void realbrk_state::video_start()
{
/* Backgrounds */
- m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(realbrk_state::get_tile_info<0>),this), TILEMAP_SCAN_ROWS, 16, 16, 0x40, 0x20);
- m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(realbrk_state::get_tile_info<1>),this), TILEMAP_SCAN_ROWS, 16, 16, 0x40, 0x20);
+ m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(realbrk_state::get_tile_info<0>)), TILEMAP_SCAN_ROWS, 16, 16, 0x40, 0x20);
+ m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(realbrk_state::get_tile_info<1>)), TILEMAP_SCAN_ROWS, 16, 16, 0x40, 0x20);
/* Text */
- m_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(realbrk_state::get_tile_info_2),this), TILEMAP_SCAN_ROWS, 8, 8, 0x40, 0x20);
+ m_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(realbrk_state::get_tile_info_2)), TILEMAP_SCAN_ROWS, 8, 8, 0x40, 0x20);
m_tilemap[0]->set_transparent_pen(0);
m_tilemap[1]->set_transparent_pen(0);
diff --git a/src/mame/video/redclash.cpp b/src/mame/video/redclash.cpp
index 7737b711fe3..fb7ab34796a 100644
--- a/src/mame/video/redclash.cpp
+++ b/src/mame/video/redclash.cpp
@@ -134,7 +134,7 @@ TILE_GET_INFO_MEMBER(redclash_state::get_fg_tile_info)
void redclash_state::video_start()
{
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(redclash_state::get_fg_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(redclash_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(0);
}
diff --git a/src/mame/video/renegade.cpp b/src/mame/video/renegade.cpp
index 6ecfa8e3016..561f4e20947 100644
--- a/src/mame/video/renegade.cpp
+++ b/src/mame/video/renegade.cpp
@@ -59,8 +59,8 @@ TILE_GET_INFO_MEMBER(renegade_state::get_fg_tilemap_info)
void renegade_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(renegade_state::get_bg_tilemap_info),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 16);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(renegade_state::get_fg_tilemap_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(renegade_state::get_bg_tilemap_info)), TILEMAP_SCAN_ROWS, 16, 16, 64, 16);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(renegade_state::get_fg_tilemap_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(0);
m_bg_tilemap->set_scrolldx(256, 0);
diff --git a/src/mame/video/retofinv.cpp b/src/mame/video/retofinv.cpp
index c539adae368..5497f93d52e 100644
--- a/src/mame/video/retofinv.cpp
+++ b/src/mame/video/retofinv.cpp
@@ -124,8 +124,8 @@ TILE_GET_INFO_MEMBER(retofinv_state::fg_get_tile_info)
void retofinv_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(retofinv_state::bg_get_tile_info),this),tilemap_mapper_delegate(FUNC(retofinv_state::tilemap_scan),this),8,8,36,28);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(retofinv_state::fg_get_tile_info),this),tilemap_mapper_delegate(FUNC(retofinv_state::tilemap_scan),this),8,8,36,28);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(retofinv_state::bg_get_tile_info)), tilemap_mapper_delegate(*this, FUNC(retofinv_state::tilemap_scan)), 8, 8, 36, 28);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(retofinv_state::fg_get_tile_info)), tilemap_mapper_delegate(*this, FUNC(retofinv_state::tilemap_scan)), 8, 8, 36, 28);
m_fg_tilemap->configure_groups(*m_gfxdecode->gfx(0), 0);
diff --git a/src/mame/video/rocnrope.cpp b/src/mame/video/rocnrope.cpp
index f8a253cddec..cce2c4cfec2 100644
--- a/src/mame/video/rocnrope.cpp
+++ b/src/mame/video/rocnrope.cpp
@@ -109,7 +109,7 @@ TILE_GET_INFO_MEMBER(rocnrope_state::get_bg_tile_info)
void rocnrope_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(rocnrope_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(rocnrope_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
void rocnrope_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect )
diff --git a/src/mame/video/rollrace.cpp b/src/mame/video/rollrace.cpp
index 408a6aca06d..22e33b03bc1 100644
--- a/src/mame/video/rollrace.cpp
+++ b/src/mame/video/rollrace.cpp
@@ -22,7 +22,7 @@ TILE_GET_INFO_MEMBER(rollrace_state::get_fg_tile_info)
void rollrace_state::video_start()
{
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(rollrace_state::get_fg_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32 );
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(rollrace_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(0);
m_fg_tilemap->set_scroll_cols(32);
diff --git a/src/mame/video/rpunch.cpp b/src/mame/video/rpunch.cpp
index e52a0516db8..28b829bd959 100644
--- a/src/mame/video/rpunch.cpp
+++ b/src/mame/video/rpunch.cpp
@@ -71,8 +71,8 @@ VIDEO_START_MEMBER(rpunch_state,rpunch)
m_sprite_xoffs = 0;
/* allocate tilemaps for the backgrounds */
- m_background[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(rpunch_state::get_bg0_tile_info),this),TILEMAP_SCAN_COLS,8,8,64,64);
- m_background[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(rpunch_state::get_bg1_tile_info),this),TILEMAP_SCAN_COLS,8,8,64,64);
+ m_background[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(rpunch_state::get_bg0_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 64, 64);
+ m_background[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(rpunch_state::get_bg1_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 64, 64);
/* configure the tilemaps */
m_background[1]->set_transparent_pen(15);
diff --git a/src/mame/video/runaway.cpp b/src/mame/video/runaway.cpp
index 01fdecad60a..218ba16bb13 100644
--- a/src/mame/video/runaway.cpp
+++ b/src/mame/video/runaway.cpp
@@ -69,7 +69,7 @@ TILE_GET_INFO_MEMBER(runaway_state::qwak_get_tile_info)
void runaway_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(runaway_state::runaway_get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 30);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(runaway_state::runaway_get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 30);
save_item(NAME(m_tile_bank));
}
@@ -77,7 +77,7 @@ void runaway_state::video_start()
VIDEO_START_MEMBER(runaway_state,qwak)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(runaway_state::qwak_get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 30);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(runaway_state::qwak_get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 30);
save_item(NAME(m_tile_bank));
}
diff --git a/src/mame/video/rungun.cpp b/src/mame/video/rungun.cpp
index 3dd606422aa..607f970608f 100644
--- a/src/mame/video/rungun.cpp
+++ b/src/mame/video/rungun.cpp
@@ -101,11 +101,11 @@ void rungun_state::video_start()
// create the tilemaps
for(uint32_t screen_num = 0;screen_num < 2;screen_num++)
{
- m_ttl_tilemap[screen_num] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(rungun_state::ttl_get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_ttl_tilemap[screen_num] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(rungun_state::ttl_get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_ttl_tilemap[screen_num]->set_user_data((void *)(uintptr_t)(screen_num * 0x2000));
m_ttl_tilemap[screen_num]->set_transparent_pen(0);
- m_936_tilemap[screen_num] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(rungun_state::get_rng_936_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 128, 128);
+ m_936_tilemap[screen_num] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(rungun_state::get_rng_936_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 128, 128);
m_936_tilemap[screen_num]->set_user_data((void *)(uintptr_t)(screen_num * 0x80000));
m_936_tilemap[screen_num]->set_transparent_pen(0);
diff --git a/src/mame/video/sauro.cpp b/src/mame/video/sauro.cpp
index c6b7965e3e8..1a8bcb4c800 100644
--- a/src/mame/video/sauro.cpp
+++ b/src/mame/video/sauro.cpp
@@ -93,10 +93,10 @@ WRITE8_MEMBER(sauro_state::sauro_scroll_fg_w)
VIDEO_START_MEMBER(sauro_state,sauro)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sauro_state::get_tile_info_bg),this), TILEMAP_SCAN_COLS,
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sauro_state::get_tile_info_bg)), TILEMAP_SCAN_COLS,
8, 8, 32, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sauro_state::get_tile_info_fg),this), TILEMAP_SCAN_COLS,
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sauro_state::get_tile_info_fg)), TILEMAP_SCAN_COLS,
8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(0);
@@ -164,7 +164,7 @@ uint32_t sauro_state::screen_update_sauro(screen_device &screen, bitmap_ind16 &b
VIDEO_START_MEMBER(sauro_state,trckydoc)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sauro_state::get_tile_info_bg),this), TILEMAP_SCAN_COLS,
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sauro_state::get_tile_info_bg)), TILEMAP_SCAN_COLS,
8, 8, 32, 32);
}
diff --git a/src/mame/video/sbasketb.cpp b/src/mame/video/sbasketb.cpp
index f7fc1e0345c..c9adefe411b 100644
--- a/src/mame/video/sbasketb.cpp
+++ b/src/mame/video/sbasketb.cpp
@@ -124,7 +124,7 @@ TILE_GET_INFO_MEMBER(sbasketb_state::get_bg_tile_info)
void sbasketb_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sbasketb_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sbasketb_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_bg_tilemap->set_scroll_cols(32);
save_item(NAME(m_spriteram_select));
diff --git a/src/mame/video/sbugger.cpp b/src/mame/video/sbugger.cpp
index 168ac54788b..cedc1458cef 100644
--- a/src/mame/video/sbugger.cpp
+++ b/src/mame/video/sbugger.cpp
@@ -29,7 +29,7 @@ WRITE8_MEMBER(sbugger_state::videoram_attr_w)
void sbugger_state::video_start()
{
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sbugger_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 16, 64, 16);
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sbugger_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 16, 64, 16);
}
uint32_t sbugger_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
@@ -50,7 +50,5 @@ void sbugger_state::sbugger_palette(palette_device &palette) const
palette.set_pen_color(i*2+1, rgb_t(r, g, b));
palette.set_pen_color(i*2, rgb_t(0, 0, 0));
-
}
-
}
diff --git a/src/mame/video/scotrsht.cpp b/src/mame/video/scotrsht.cpp
index dd4ec24781d..b8ed76edc2c 100644
--- a/src/mame/video/scotrsht.cpp
+++ b/src/mame/video/scotrsht.cpp
@@ -115,7 +115,7 @@ void scotrsht_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprec
void scotrsht_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(scotrsht_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(scotrsht_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_bg_tilemap->set_scroll_cols(64);
diff --git a/src/mame/video/sderby.cpp b/src/mame/video/sderby.cpp
index 1b95d5e3307..14e9e847781 100644
--- a/src/mame/video/sderby.cpp
+++ b/src/mame/video/sderby.cpp
@@ -89,12 +89,12 @@ void sderby_state::draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect,i
void sderby_state::video_start()
{
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sderby_state::get_sderby_tile_info),this),TILEMAP_SCAN_ROWS, 16, 16,32,32);
- m_md_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sderby_state::get_sderby_md_tile_info),this),TILEMAP_SCAN_ROWS, 16, 16,32,32);
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sderby_state::get_sderby_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_md_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sderby_state::get_sderby_md_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
m_md_tilemap->set_transparent_pen(0);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sderby_state::get_sderby_fg_tile_info),this),TILEMAP_SCAN_ROWS, 8, 8,64,32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sderby_state::get_sderby_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_fg_tilemap->set_transparent_pen(0);
}
diff --git a/src/mame/video/segag80r.cpp b/src/mame/video/segag80r.cpp
index f1af8355cdf..d1e4d2e81a7 100644
--- a/src/mame/video/segag80r.cpp
+++ b/src/mame/video/segag80r.cpp
@@ -219,19 +219,19 @@ void segag80r_state::video_start()
/* and one vertically scrolling */
case G80_BACKGROUND_SPACEOD:
spaceod_bg_init_palette();
- m_spaceod_bg_htilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(segag80r_state::spaceod_get_tile_info),this), tilemap_mapper_delegate(FUNC(segag80r_state::spaceod_scan_rows),this), 8,8, 128,32);
- m_spaceod_bg_vtilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(segag80r_state::spaceod_get_tile_info),this), tilemap_mapper_delegate(FUNC(segag80r_state::spaceod_scan_rows),this), 8,8, 32,128);
+ m_spaceod_bg_htilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(segag80r_state::spaceod_get_tile_info)), tilemap_mapper_delegate(*this, FUNC(segag80r_state::spaceod_scan_rows)), 8,8, 128,32);
+ m_spaceod_bg_vtilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(segag80r_state::spaceod_get_tile_info)), tilemap_mapper_delegate(*this, FUNC(segag80r_state::spaceod_scan_rows)), 8,8, 32,128);
break;
/* background tilemap is effectively 1 screen x n screens */
case G80_BACKGROUND_MONSTERB:
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(segag80r_state::bg_get_tile_info),this), TILEMAP_SCAN_ROWS, 8,8, 32,memregion("gfx2")->bytes() / 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(segag80r_state::bg_get_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 32,memregion("gfx2")->bytes() / 32);
break;
/* background tilemap is effectively 4 screens x n screens */
case G80_BACKGROUND_PIGNEWT:
case G80_BACKGROUND_SINDBADM:
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(segag80r_state::bg_get_tile_info),this), TILEMAP_SCAN_ROWS, 8,8, 128,memregion("gfx2")->bytes() / 128);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(segag80r_state::bg_get_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 128,memregion("gfx2")->bytes() / 128);
break;
}
diff --git a/src/mame/video/segaic16.cpp b/src/mame/video/segaic16.cpp
index eb2a7535c30..a3068395a16 100644
--- a/src/mame/video/segaic16.cpp
+++ b/src/mame/video/segaic16.cpp
@@ -537,11 +537,11 @@ segaic16_video_device::segaic16_video_device(const machine_config &mconfig, cons
, m_tileram(*this, "^tileram")
, m_textram(*this, "^textram")
, m_rotateram(*this, "^rotateram")
+ , m_pagelatch_cb(*this, DEVICE_SELF, FUNC(segaic16_video_device::tilemap_16b_fill_latch))
, m_gfxdecode(*this, finder_base::DUMMY_TAG)
{
memset(m_rotate, 0, sizeof(m_rotate));
memset(m_bg_tilemap, 0, sizeof(m_bg_tilemap));
- m_pagelatch_cb = segaic16_video_pagelatch_delegate(FUNC(segaic16_video_device::tilemap_16b_fill_latch), this);
}
void segaic16_video_device::device_start()
@@ -551,7 +551,7 @@ void segaic16_video_device::device_start()
save_item(NAME(m_display_enable));
- m_pagelatch_cb.bind_relative_to(*owner());
+ m_pagelatch_cb.resolve();
}
void segaic16_video_device::device_reset()
@@ -1205,8 +1205,8 @@ static void tilemap_16b_reset(screen_device &screen, segaic16_video_device::tile
void segaic16_video_device::tilemap_init(int which, int type, int colorbase, int xoffs, int numbanks)
{
struct tilemap_info *info = &m_bg_tilemap[which];
- tilemap_get_info_delegate get_text_info;
- tilemap_get_info_delegate get_tile_info;
+ tilemap_get_info_delegate get_text_info(*this);
+ tilemap_get_info_delegate get_tile_info(*this);
int pagenum;
int i;
@@ -1235,8 +1235,8 @@ void segaic16_video_device::tilemap_init(int which, int type, int colorbase, int
switch (type)
{
case TILEMAP_HANGON:
- get_text_info = tilemap_get_info_delegate(FUNC(segaic16_video_device::tilemap_16a_text_info),this);
- get_tile_info = tilemap_get_info_delegate(FUNC(segaic16_video_device::tilemap_16a_tile_info),this);
+ get_text_info = tilemap_get_info_delegate(*this, FUNC(segaic16_video_device::tilemap_16a_text_info));
+ get_tile_info = tilemap_get_info_delegate(*this, FUNC(segaic16_video_device::tilemap_16a_tile_info));
info->numpages = 4;
info->draw_layer = tilemap_16a_draw_layer;
info->reset = nullptr;
@@ -1244,8 +1244,8 @@ void segaic16_video_device::tilemap_init(int which, int type, int colorbase, int
break;
case TILEMAP_16A:
- get_text_info = tilemap_get_info_delegate(FUNC(segaic16_video_device::tilemap_16a_text_info),this);
- get_tile_info = tilemap_get_info_delegate(FUNC(segaic16_video_device::tilemap_16a_tile_info),this);
+ get_text_info = tilemap_get_info_delegate(*this, FUNC(segaic16_video_device::tilemap_16a_text_info));
+ get_tile_info = tilemap_get_info_delegate(*this, FUNC(segaic16_video_device::tilemap_16a_tile_info));
info->numpages = 8;
info->draw_layer = tilemap_16a_draw_layer;
info->reset = nullptr;
@@ -1253,8 +1253,8 @@ void segaic16_video_device::tilemap_init(int which, int type, int colorbase, int
break;
case TILEMAP_16B:
- get_text_info = tilemap_get_info_delegate(FUNC(segaic16_video_device::tilemap_16b_text_info),this);
- get_tile_info = tilemap_get_info_delegate(FUNC(segaic16_video_device::tilemap_16b_tile_info),this);
+ get_text_info = tilemap_get_info_delegate(*this, FUNC(segaic16_video_device::tilemap_16b_text_info));
+ get_tile_info = tilemap_get_info_delegate(*this, FUNC(segaic16_video_device::tilemap_16b_tile_info));
info->numpages = 16;
info->draw_layer = tilemap_16b_draw_layer;
info->reset = tilemap_16b_reset;
@@ -1262,8 +1262,8 @@ void segaic16_video_device::tilemap_init(int which, int type, int colorbase, int
break;
case TILEMAP_16B_ALT:
- get_text_info = tilemap_get_info_delegate(FUNC(segaic16_video_device::tilemap_16b_alt_text_info),this);
- get_tile_info = tilemap_get_info_delegate(FUNC(segaic16_video_device::tilemap_16b_alt_tile_info),this);
+ get_text_info = tilemap_get_info_delegate(*this, FUNC(segaic16_video_device::tilemap_16b_alt_text_info));
+ get_tile_info = tilemap_get_info_delegate(*this, FUNC(segaic16_video_device::tilemap_16b_alt_tile_info));
info->numpages = 16;
info->draw_layer = tilemap_16b_draw_layer;
info->reset = tilemap_16b_reset;
diff --git a/src/mame/video/segaic16.h b/src/mame/video/segaic16.h
index 42ffb1539eb..e563a354d2d 100644
--- a/src/mame/video/segaic16.h
+++ b/src/mame/video/segaic16.h
@@ -129,7 +129,7 @@ public:
segaic16_video_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// configuration
- template <typename... T> void set_pagelatch_cb(T &&... args) { m_pagelatch_cb = segaic16_video_pagelatch_delegate(std::forward<T>(args)...); }
+ template <typename... T> void set_pagelatch_cb(T &&... args) { m_pagelatch_cb.set(std::forward<T>(args)...); }
uint8_t m_display_enable;
optional_shared_ptr<uint16_t> m_tileram;
diff --git a/src/mame/video/segaic24.cpp b/src/mame/video/segaic24.cpp
index 5a5f1d76a14..218c79e5bb7 100644
--- a/src/mame/video/segaic24.cpp
+++ b/src/mame/video/segaic24.cpp
@@ -81,10 +81,10 @@ void segas24_tile_device::device_start()
m_xhout_write_cb.resolve_safe();
m_xvout_write_cb.resolve_safe();
- tile_layer[0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(segas24_tile_device::tile_info_0s),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- tile_layer[1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(segas24_tile_device::tile_info_0w),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- tile_layer[2] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(segas24_tile_device::tile_info_1s),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- tile_layer[3] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(segas24_tile_device::tile_info_1w),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ tile_layer[0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(segas24_tile_device::tile_info_0s)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ tile_layer[1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(segas24_tile_device::tile_info_0w)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ tile_layer[2] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(segas24_tile_device::tile_info_1s)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ tile_layer[3] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(segas24_tile_device::tile_info_1w)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
tile_layer[0]->set_transparent_pen(0);
tile_layer[1]->set_transparent_pen(0);
diff --git a/src/mame/video/segas32.cpp b/src/mame/video/segas32.cpp
index 9d62e0a6627..14d4f97bbd0 100644
--- a/src/mame/video/segas32.cpp
+++ b/src/mame/video/segas32.cpp
@@ -217,7 +217,7 @@ void segas32_state::device_start()
{
struct cache_entry *entry = auto_alloc(machine(), struct cache_entry);
- entry->tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(segas32_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 16,16, 32,16);
+ entry->tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(segas32_state::get_tile_info)), TILEMAP_SCAN_ROWS, 16,16, 32,16);
entry->page = 0xff;
entry->bank = 0;
entry->next = m_cache_head;
diff --git a/src/mame/video/seibuspi.cpp b/src/mame/video/seibuspi.cpp
index 881f62946c7..dd4af0df45d 100644
--- a/src/mame/video/seibuspi.cpp
+++ b/src/mame/video/seibuspi.cpp
@@ -744,10 +744,10 @@ void seibuspi_state::video_start()
m_palette->basemem().set(&m_palette_ram[0], m_palette_ram_size, 32, ENDIANNESS_LITTLE, 2);
- m_text_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(seibuspi_state::get_text_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8,64,32);
- m_back_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(seibuspi_state::get_back_tile_info),this), TILEMAP_SCAN_COLS, 16,16,32,32);
- m_midl_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(seibuspi_state::get_midl_tile_info),this), TILEMAP_SCAN_COLS, 16,16,32,32);
- m_fore_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(seibuspi_state::get_fore_tile_info),this), TILEMAP_SCAN_COLS, 16,16,32,32);
+ m_text_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(seibuspi_state::get_text_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64,32);
+ m_back_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(seibuspi_state::get_back_tile_info)), TILEMAP_SCAN_COLS, 16,16, 32,32);
+ m_midl_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(seibuspi_state::get_midl_tile_info)), TILEMAP_SCAN_COLS, 16,16, 32,32);
+ m_fore_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(seibuspi_state::get_fore_tile_info)), TILEMAP_SCAN_COLS, 16,16, 32,32);
m_text_layer->set_transparent_pen(31);
m_back_layer->set_transparent_pen(63);
diff --git a/src/mame/video/seicross.cpp b/src/mame/video/seicross.cpp
index 5d8556f3a10..f9d43d0ee59 100644
--- a/src/mame/video/seicross.cpp
+++ b/src/mame/video/seicross.cpp
@@ -87,7 +87,7 @@ TILE_GET_INFO_MEMBER(seicross_state::get_bg_tile_info)
void seicross_state::video_start()
{
m_bg_tilemap = &machine().tilemap().create(
- *m_gfxdecode, tilemap_get_info_delegate(FUNC(seicross_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS,
+ *m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(seicross_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS,
8, 8, 32, 32);
m_bg_tilemap->set_scroll_cols(32);
diff --git a/src/mame/video/senjyo.cpp b/src/mame/video/senjyo.cpp
index 4478c221b69..0c2a66e6526 100644
--- a/src/mame/video/senjyo.cpp
+++ b/src/mame/video/senjyo.cpp
@@ -84,19 +84,19 @@ TILE_GET_INFO_MEMBER(senjyo_state::get_bg3_tile_info)
void senjyo_state::video_start()
{
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(senjyo_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(senjyo_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
if (m_is_senjyo)
{
- m_bg1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(senjyo_state::senjyo_bg1_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 16, 32);
- m_bg2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(senjyo_state::get_bg2_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 16, 48); /* only 16x32 used by Star Force */
- m_bg3_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(senjyo_state::get_bg3_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 16, 56); /* only 16x32 used by Star Force */
+ m_bg1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(senjyo_state::senjyo_bg1_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 16, 32);
+ m_bg2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(senjyo_state::get_bg2_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 16, 48); // only 16x32 used by Star Force
+ m_bg3_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(senjyo_state::get_bg3_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 16, 56); // only 16x32 used by Star Force
}
else
{
- m_bg1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(senjyo_state::starforc_bg1_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 16, 32);
- m_bg2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(senjyo_state::get_bg2_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 16, 32); /* only 16x32 used by Star Force */
- m_bg3_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(senjyo_state::get_bg3_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 16, 32); /* only 16x32 used by Star Force */
+ m_bg1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(senjyo_state::starforc_bg1_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 16, 32);
+ m_bg2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(senjyo_state::get_bg2_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 16, 32); // only 16x32 used by Star Force
+ m_bg3_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(senjyo_state::get_bg3_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 16, 32); // only 16x32 used by Star Force
}
m_fg_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/seta.cpp b/src/mame/video/seta.cpp
index 2908e46372d..27a906e0b8b 100644
--- a/src/mame/video/seta.cpp
+++ b/src/mame/video/seta.cpp
@@ -351,12 +351,12 @@ VIDEO_START_MEMBER(seta_state,seta_2_layers)
/* layer 0 */
m_tilemap[0] = &machine().tilemap().create(
- *m_gfxdecode, tilemap_get_info_delegate(FUNC(seta_state::get_tile_info<0>), this), TILEMAP_SCAN_ROWS,
+ *m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(seta_state::get_tile_info<0>)), TILEMAP_SCAN_ROWS,
16, 16, 64, 32);
/* layer 1 */
m_tilemap[1] = &machine().tilemap().create(
- *m_gfxdecode, tilemap_get_info_delegate(FUNC(seta_state::get_tile_info<1>), this), TILEMAP_SCAN_ROWS,
+ *m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(seta_state::get_tile_info<1>)), TILEMAP_SCAN_ROWS,
16, 16, 64, 32);
m_tilemaps_flip = 0;
@@ -388,7 +388,7 @@ VIDEO_START_MEMBER(seta_state,seta_1_layer)
/* layer 0 */
m_tilemap[0] = &machine().tilemap().create(
- *m_gfxdecode, tilemap_get_info_delegate(FUNC(seta_state::get_tile_info<0>),this), TILEMAP_SCAN_ROWS,
+ *m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(seta_state::get_tile_info<0>)), TILEMAP_SCAN_ROWS,
16, 16, 64, 32);
m_color_mode_shift = 4;
@@ -422,7 +422,7 @@ VIDEO_START_MEMBER(seta_state,twineagl_1_layer)
/* layer 0 */
m_tilemap[0] = &machine().tilemap().create(
- *m_gfxdecode, tilemap_get_info_delegate(FUNC(seta_state::twineagl_get_tile_info),this), TILEMAP_SCAN_ROWS,
+ *m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(seta_state::twineagl_get_tile_info)), TILEMAP_SCAN_ROWS,
16, 16, 64, 32);
m_tilemap[0]->set_transparent_pen(0);
diff --git a/src/mame/video/seta001.cpp b/src/mame/video/seta001.cpp
index 231aa339431..c0430dedeb2 100644
--- a/src/mame/video/seta001.cpp
+++ b/src/mame/video/seta001.cpp
@@ -42,6 +42,7 @@ DEFINE_DEVICE_TYPE(SETA001_SPRITE, seta001_device, "seta001", "Seta SETA001 Spri
seta001_device::seta001_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: device_t(mconfig, SETA001_SPRITE, tag, owner, clock)
, m_gfxdecode(*this, finder_base::DUMMY_TAG)
+ , m_gfxbank_cb(*this)
{
}
@@ -96,7 +97,7 @@ void seta001_device::device_start()
m_bgflag = 0x00;
- m_gfxbank_cb.bind_relative_to(*owner());
+ m_gfxbank_cb.resolve();
save_item(NAME(m_bgflag));
save_item(NAME(m_spritectrl));
diff --git a/src/mame/video/seta001.h b/src/mame/video/seta001.h
index ed3a03ca2d6..79307bebe41 100644
--- a/src/mame/video/seta001.h
+++ b/src/mame/video/seta001.h
@@ -16,41 +16,41 @@ public:
// configuration
template <typename T> void set_gfxdecode_tag(T &&tag) { m_gfxdecode.set_tag(std::forward<T>(tag)); }
- template <typename... T> void set_gfxbank_callback(T &&... args) { m_gfxbank_cb = gfxbank_cb_delegate(std::forward<T>(args)...); }
+ template <typename... T> void set_gfxbank_callback(T &&... args) { m_gfxbank_cb.set(std::forward<T>(args)...); }
- DECLARE_WRITE8_MEMBER( spritebgflag_w8 );
+ DECLARE_WRITE8_MEMBER(spritebgflag_w8);
- DECLARE_READ16_MEMBER( spritectrl_r16 );
- DECLARE_WRITE16_MEMBER( spritectrl_w16 );
- DECLARE_READ8_MEMBER( spritectrl_r8 );
- DECLARE_WRITE8_MEMBER( spritectrl_w8 );
+ DECLARE_READ16_MEMBER(spritectrl_r16);
+ DECLARE_WRITE16_MEMBER(spritectrl_w16);
+ DECLARE_READ8_MEMBER(spritectrl_r8);
+ DECLARE_WRITE8_MEMBER(spritectrl_w8);
- DECLARE_READ16_MEMBER( spriteylow_r16 );
- DECLARE_WRITE16_MEMBER( spriteylow_w16 );
- DECLARE_READ8_MEMBER( spriteylow_r8 );
- DECLARE_WRITE8_MEMBER( spriteylow_w8 );
+ DECLARE_READ16_MEMBER(spriteylow_r16);
+ DECLARE_WRITE16_MEMBER(spriteylow_w16);
+ DECLARE_READ8_MEMBER(spriteylow_r8);
+ DECLARE_WRITE8_MEMBER(spriteylow_w8);
- DECLARE_READ8_MEMBER( spritecodelow_r8 );
- DECLARE_WRITE8_MEMBER( spritecodelow_w8 );
- DECLARE_READ8_MEMBER( spritecodehigh_r8 );
- DECLARE_WRITE8_MEMBER( spritecodehigh_w8 );
- DECLARE_READ16_MEMBER( spritecode_r16 );
- DECLARE_WRITE16_MEMBER( spritecode_w16 );
+ DECLARE_READ8_MEMBER(spritecodelow_r8);
+ DECLARE_WRITE8_MEMBER(spritecodelow_w8);
+ DECLARE_READ8_MEMBER(spritecodehigh_r8);
+ DECLARE_WRITE8_MEMBER(spritecodehigh_w8);
+ DECLARE_READ16_MEMBER(spritecode_r16);
+ DECLARE_WRITE16_MEMBER(spritecode_w16);
void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int bank_size);
- void setac_eof( void );
- void tnzs_eof( void );
+ void setac_eof();
+ void tnzs_eof();
// position kludges for seta.c & srmp2.c
- void set_fg_xoffsets( int flip, int noflip ) { m_fg_flipxoffs = flip; m_fg_noflipxoffs = noflip; };
- void set_fg_yoffsets( int flip, int noflip ) { m_fg_flipyoffs = flip; m_fg_noflipyoffs = noflip; };
- void set_bg_yoffsets( int flip, int noflip ) { m_bg_flipyoffs = flip; m_bg_noflipyoffs = noflip; };
- void set_bg_xoffsets( int flip, int noflip ) { m_bg_flipxoffs = flip; m_bg_noflipxoffs = noflip; };
+ void set_fg_xoffsets(int flip, int noflip) { m_fg_flipxoffs = flip; m_fg_noflipxoffs = noflip; };
+ void set_fg_yoffsets(int flip, int noflip) { m_fg_flipyoffs = flip; m_fg_noflipyoffs = noflip; };
+ void set_bg_yoffsets(int flip, int noflip) { m_bg_flipyoffs = flip; m_bg_noflipyoffs = noflip; };
+ void set_bg_xoffsets(int flip, int noflip) { m_bg_flipxoffs = flip; m_bg_noflipxoffs = noflip; };
void set_colorbase(int base) { m_colorbase = base; };
void set_spritelimit(int limit) { m_spritelimit = limit; };
- void set_transpen ( int pen ) { m_transpen = pen; };
+ void set_transpen(int pen) { m_transpen = pen; };
int is_flipped() { return ((m_spritectrl[ 0 ] & 0x40) >> 6); };
@@ -59,9 +59,8 @@ protected:
virtual void device_reset() override;
private:
-
- void draw_background( bitmap_ind16 &bitmap, const rectangle &cliprect, int bank_size);
- void draw_foreground( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int bank_size);
+ void draw_background(bitmap_ind16 &bitmap, const rectangle &cliprect, int bank_size);
+ void draw_foreground(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int bank_size);
required_device<gfxdecode_device> m_gfxdecode;
gfxbank_cb_delegate m_gfxbank_cb;
diff --git a/src/mame/video/sf.cpp b/src/mame/video/sf.cpp
index fe1e62bee9e..d2c1de6804f 100644
--- a/src/mame/video/sf.cpp
+++ b/src/mame/video/sf.cpp
@@ -52,9 +52,9 @@ TILE_GET_INFO_MEMBER(sf_state::get_tx_tile_info)
void sf_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sf_state::get_bg_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 2048, 16);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sf_state::get_fg_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 2048, 16);
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sf_state::get_tx_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sf_state::get_bg_tile_info)), TILEMAP_SCAN_COLS, 16, 16, 2048, 16);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sf_state::get_fg_tile_info)), TILEMAP_SCAN_COLS, 16, 16, 2048, 16);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sf_state::get_tx_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_fg_tilemap->set_transparent_pen(15);
m_tx_tilemap->set_transparent_pen(3);
diff --git a/src/mame/video/sgi_gr1.cpp b/src/mame/video/sgi_gr1.cpp
index 126959cf108..a17b8239c91 100644
--- a/src/mame/video/sgi_gr1.cpp
+++ b/src/mame/video/sgi_gr1.cpp
@@ -107,12 +107,12 @@ void sgi_gr1_device::map_bank(address_map &map)
map(0x8440, 0x845f).rw(m_xmap[2], FUNC(sgi_xmap2_device::reg_r), FUNC(sgi_xmap2_device::reg_w)).umask32(0x000000ff);
map(0x8460, 0x847f).rw(m_xmap[3], FUNC(sgi_xmap2_device::reg_r), FUNC(sgi_xmap2_device::reg_w)).umask32(0x000000ff);
map(0x8480, 0x849f).rw(m_xmap[4], FUNC(sgi_xmap2_device::reg_r), FUNC(sgi_xmap2_device::reg_w)).umask32(0x000000ff);
- map(0x84a0, 0x84bf).lw8("xmap_broadcast",
- [this](offs_t offset, u8 data)
- {
- for (sgi_xmap2_device *xmap : m_xmap)
- xmap->reg_w(offset, data);
- }).umask32(0x000000ff);
+ map(0x84a0, 0x84bf).lw8(
+ [this](offs_t offset, u8 data)
+ {
+ for (sgi_xmap2_device *xmap : m_xmap)
+ xmap->reg_w(offset, data);
+ }, "xmap_broadcast").umask32(0x000000ff);
map(0x84c0, 0x84c3).rw(FUNC(sgi_gr1_device::dr1_r), FUNC(sgi_gr1_device::dr1_w)).umask32(0xff000000);
map(0x84e0, 0x84e3).rw(FUNC(sgi_gr1_device::dr0_r), FUNC(sgi_gr1_device::dr0_w)).umask32(0xff000000);
@@ -134,7 +134,7 @@ void sgi_gr1_device::map_bank(address_map &map)
map(0x0800, 0x0bff).r(m_ge, FUNC(sgi_ge5_device::buffer_r)).mirror(0x8000);
map(0x0800, 0x0bff).w(FUNC(sgi_gr1_device::fifo_w)).mirror(0x8000);
map(0x0c00, 0x0dff).w(m_ge, FUNC(sgi_ge5_device::mar_w)).mirror(0x8000);
- map(0x0e00, 0x0e07).lw32("mar_msb", [this](offs_t offset, u32 data) { m_bank->set_bank(offset); }).mirror(0x8000);
+ map(0x0e00, 0x0e07).lw32([this](offs_t offset, u32 data) { m_bank->set_bank(offset); }, "mar_msb").mirror(0x8000);
map(0x1400, 0x17ff).rw(m_ge, FUNC(sgi_ge5_device::data_r), FUNC(sgi_ge5_device::data_w));
map(0x2000, 0x2007).rw(m_ge, FUNC(sgi_ge5_device::finish_r), FUNC(sgi_ge5_device::finish_w)).mirror(0x8000);
diff --git a/src/mame/video/shadfrce.cpp b/src/mame/video/shadfrce.cpp
index 21789a93afa..1f356244173 100644
--- a/src/mame/video/shadfrce.cpp
+++ b/src/mame/video/shadfrce.cpp
@@ -60,13 +60,13 @@ WRITE16_MEMBER(shadfrce_state::bg1videoram_w)
void shadfrce_state::video_start()
{
- m_fgtilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(shadfrce_state::get_fgtile_info),this),TILEMAP_SCAN_ROWS, 8, 8,64,32);
+ m_fgtilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(shadfrce_state::get_fgtile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_fgtilemap->set_transparent_pen(0);
- m_bg0tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(shadfrce_state::get_bg0tile_info),this),TILEMAP_SCAN_ROWS, 16, 16,32,32);
+ m_bg0tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(shadfrce_state::get_bg0tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
m_bg0tilemap->set_transparent_pen(0);
- m_bg1tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(shadfrce_state::get_bg1tile_info),this),TILEMAP_SCAN_ROWS, 16, 16,32,32);
+ m_bg1tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(shadfrce_state::get_bg1tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
m_spvideoram_old = std::make_unique<uint16_t[]>(m_spvideoram.bytes()/2);
diff --git a/src/mame/video/shangkid.cpp b/src/mame/video/shangkid.cpp
index 7d4975d0c82..ca1b5b9a0c9 100644
--- a/src/mame/video/shangkid.cpp
+++ b/src/mame/video/shangkid.cpp
@@ -46,7 +46,7 @@ TILE_GET_INFO_MEMBER(shangkid_state::get_bg_tile_info)
VIDEO_START_MEMBER(shangkid_state,shangkid)
{
- m_background = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(shangkid_state::get_bg_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,32);
+ m_background = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(shangkid_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 64,32);
}
WRITE8_MEMBER(shangkid_state::videoram_w)
diff --git a/src/mame/video/shaolins.cpp b/src/mame/video/shaolins.cpp
index 62dfbe2fc54..91c7ab8e528 100644
--- a/src/mame/video/shaolins.cpp
+++ b/src/mame/video/shaolins.cpp
@@ -136,7 +136,7 @@ TILE_GET_INFO_MEMBER(shaolins_state::get_bg_tile_info)
void shaolins_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(shaolins_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS,
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(shaolins_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS,
8, 8, 32, 32);
m_bg_tilemap->set_scroll_cols(32);
diff --git a/src/mame/video/shisen.cpp b/src/mame/video/shisen.cpp
index 909e0d534e0..a92d13d1ef2 100644
--- a/src/mame/video/shisen.cpp
+++ b/src/mame/video/shisen.cpp
@@ -49,7 +49,7 @@ TILE_GET_INFO_MEMBER(shisen_state::get_bg_tile_info)
void shisen_state::video_start()
{
m_bg_tilemap = &machine().tilemap().create(
- *m_gfxdecode, tilemap_get_info_delegate(FUNC(shisen_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS,
+ *m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(shisen_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS,
8, 8, 64, 32);
membank("bank1")->configure_entries(0, 8, memregion("maincpu")->base() + 0x10000, 0x4000);
diff --git a/src/mame/video/shootout.cpp b/src/mame/video/shootout.cpp
index a97ea52df94..47c0db18368 100644
--- a/src/mame/video/shootout.cpp
+++ b/src/mame/video/shootout.cpp
@@ -78,9 +78,9 @@ WRITE8_MEMBER(shootout_state::textram_w)
void shootout_state::video_start()
{
- m_background = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(shootout_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_foreground = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(shootout_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_foreground->set_transparent_pen(0 );
+ m_background = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(shootout_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_foreground = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(shootout_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_foreground->set_transparent_pen(0);
save_item(NAME(m_ccnt_old_val));
}
diff --git a/src/mame/video/sidearms.cpp b/src/mame/video/sidearms.cpp
index c84cfd4c08a..a444084b32a 100644
--- a/src/mame/video/sidearms.cpp
+++ b/src/mame/video/sidearms.cpp
@@ -142,17 +142,17 @@ void sidearms_state::video_start()
if (!m_gameid)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sidearms_state::get_sidearms_bg_tile_info),this), tilemap_mapper_delegate(FUNC(sidearms_state::tilemap_scan),this),
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sidearms_state::get_sidearms_bg_tile_info)), tilemap_mapper_delegate(*this, FUNC(sidearms_state::tilemap_scan)),
32, 32, 128, 128);
m_bg_tilemap->set_transparent_pen(15);
}
else
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sidearms_state::get_philko_bg_tile_info),this), tilemap_mapper_delegate(FUNC(sidearms_state::tilemap_scan),this), 32, 32, 128, 128);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sidearms_state::get_philko_bg_tile_info)), tilemap_mapper_delegate(*this, FUNC(sidearms_state::tilemap_scan)), 32, 32, 128, 128);
}
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sidearms_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS,
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sidearms_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS,
8, 8, 64, 64);
m_fg_tilemap->set_transparent_pen(3);
diff --git a/src/mame/video/sidepckt.cpp b/src/mame/video/sidepckt.cpp
index e4d08556c48..e9673a95572 100644
--- a/src/mame/video/sidepckt.cpp
+++ b/src/mame/video/sidepckt.cpp
@@ -71,7 +71,7 @@ TILE_GET_INFO_MEMBER(sidepckt_state::get_tile_info)
void sidepckt_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sidepckt_state::get_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sidepckt_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 32,32);
m_bg_tilemap->set_transmask(0,0xff,0x00); /* split type 0 is totally transparent in front half */
m_bg_tilemap->set_transmask(1,0x01,0xfe); /* split type 1 has pen 0 transparent in front half */
diff --git a/src/mame/video/silkroad.cpp b/src/mame/video/silkroad.cpp
index f9c5b4653a5..7c5147c9561 100644
--- a/src/mame/video/silkroad.cpp
+++ b/src/mame/video/silkroad.cpp
@@ -71,9 +71,9 @@ TILE_GET_INFO_MEMBER(silkroad_state::get_tile_info)
void silkroad_state::video_start()
{
- m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(silkroad_state::get_tile_info<0>),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
- m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(silkroad_state::get_tile_info<1>),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
- m_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(silkroad_state::get_tile_info<2>),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
+ m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(silkroad_state::get_tile_info<0>)), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
+ m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(silkroad_state::get_tile_info<1>)), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
+ m_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(silkroad_state::get_tile_info<2>)), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
m_tilemap[0]->set_transparent_pen(0);
m_tilemap[1]->set_transparent_pen(0);
diff --git a/src/mame/video/skydiver.cpp b/src/mame/video/skydiver.cpp
index 88eb7bd3103..d8201c747b5 100644
--- a/src/mame/video/skydiver.cpp
+++ b/src/mame/video/skydiver.cpp
@@ -38,7 +38,7 @@ TILE_GET_INFO_MEMBER(skydiver_state::get_tile_info)
void skydiver_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(skydiver_state::get_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(skydiver_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 32,32);
save_item(NAME(m_nmion));
save_item(NAME(m_width));
diff --git a/src/mame/video/skykid.cpp b/src/mame/video/skykid.cpp
index 6c08804b0d7..94e7c12275e 100644
--- a/src/mame/video/skykid.cpp
+++ b/src/mame/video/skykid.cpp
@@ -107,8 +107,8 @@ TILE_GET_INFO_MEMBER(skykid_state::bg_get_tile_info)
void skykid_state::video_start()
{
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(skykid_state::tx_get_tile_info),this),tilemap_mapper_delegate(FUNC(skykid_state::tx_tilemap_scan),this), 8,8,36,28);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(skykid_state::bg_get_tile_info),this),TILEMAP_SCAN_ROWS, 8,8,64,32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(skykid_state::tx_get_tile_info)), tilemap_mapper_delegate(*this, FUNC(skykid_state::tx_tilemap_scan)), 8,8, 36,28);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(skykid_state::bg_get_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 64,32);
m_tx_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/slapfght.cpp b/src/mame/video/slapfght.cpp
index cd1ef5465e9..959a2e61110 100644
--- a/src/mame/video/slapfght.cpp
+++ b/src/mame/video/slapfght.cpp
@@ -53,15 +53,15 @@ TILE_GET_INFO_MEMBER(slapfght_state::get_fix_tile_info)
VIDEO_START_MEMBER(slapfght_state, perfrman)
{
- m_pf1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(slapfght_state::get_pf_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_pf1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(slapfght_state::get_pf_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_pf1_tilemap->set_transparent_pen(0);
}
VIDEO_START_MEMBER(slapfght_state, slapfight)
{
- m_pf1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(slapfght_state::get_pf1_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_fix_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(slapfght_state::get_fix_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_pf1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(slapfght_state::get_pf1_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_fix_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(slapfght_state::get_fix_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_fix_tilemap->set_scrolldy(0, 15);
m_pf1_tilemap->set_scrolldy(0, 14);
diff --git a/src/mame/video/snk.cpp b/src/mame/video/snk.cpp
index 60b51cb4f40..fe58fa97438 100644
--- a/src/mame/video/snk.cpp
+++ b/src/mame/video/snk.cpp
@@ -224,9 +224,9 @@ VIDEO_START_MEMBER(snk_state,marvins)
{
VIDEO_START_CALL_MEMBER(snk_3bpp_shadow);
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(snk_state::marvins_get_tx_tile_info),this), tilemap_mapper_delegate(FUNC(snk_state::marvins_tx_scan_cols),this), 8, 8, 36, 28);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(snk_state::marvins_get_fg_tile_info),this), TILEMAP_SCAN_COLS, 8, 8, 64, 32);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(snk_state::marvins_get_bg_tile_info),this), TILEMAP_SCAN_COLS, 8, 8, 64, 32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(snk_state::marvins_get_tx_tile_info)), tilemap_mapper_delegate(*this, FUNC(snk_state::marvins_tx_scan_cols)), 8, 8, 36, 28);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(snk_state::marvins_get_fg_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(snk_state::marvins_get_bg_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 64, 32);
m_tx_tilemap->set_transparent_pen(15);
m_tx_tilemap->set_scrolldy(8, 8);
@@ -245,8 +245,8 @@ VIDEO_START_MEMBER(snk_state,jcross)
{
VIDEO_START_CALL_MEMBER(snk_3bpp_shadow);
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(snk_state::marvins_get_tx_tile_info),this), tilemap_mapper_delegate(FUNC(snk_state::marvins_tx_scan_cols),this), 8, 8, 36, 28);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(snk_state::aso_get_bg_tile_info),this), TILEMAP_SCAN_COLS, 8, 8, 64, 64);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(snk_state::marvins_get_tx_tile_info)), tilemap_mapper_delegate(*this, FUNC(snk_state::marvins_tx_scan_cols)), 8, 8, 36, 28);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(snk_state::aso_get_bg_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 64, 64);
m_tx_tilemap->set_transparent_pen(15);
m_tx_tilemap->set_scrolldy(8, 8);
@@ -264,8 +264,8 @@ VIDEO_START_MEMBER(snk_state,sgladiat)
{
VIDEO_START_CALL_MEMBER(snk_3bpp_shadow);
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(snk_state::marvins_get_tx_tile_info),this), tilemap_mapper_delegate(FUNC(snk_state::marvins_tx_scan_cols),this), 8, 8, 36, 28);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(snk_state::aso_get_bg_tile_info),this), TILEMAP_SCAN_COLS, 8, 8, 64, 32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(snk_state::marvins_get_tx_tile_info)), tilemap_mapper_delegate(*this, FUNC(snk_state::marvins_tx_scan_cols)), 8, 8, 36, 28);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(snk_state::aso_get_bg_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 64, 32);
m_tx_tilemap->set_transparent_pen(15);
m_tx_tilemap->set_scrolldy(8, 8);
@@ -304,8 +304,8 @@ VIDEO_START_MEMBER(snk_state,tnk3)
{
VIDEO_START_CALL_MEMBER(snk_3bpp_shadow);
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(snk_state::marvins_get_tx_tile_info),this), tilemap_mapper_delegate(FUNC(snk_state::marvins_tx_scan_cols),this), 8, 8, 36, 28);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(snk_state::tnk3_get_bg_tile_info),this), TILEMAP_SCAN_COLS, 8, 8, 64, 64);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(snk_state::marvins_get_tx_tile_info)), tilemap_mapper_delegate(*this, FUNC(snk_state::marvins_tx_scan_cols)), 8, 8, 36, 28);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(snk_state::tnk3_get_bg_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 64, 64);
m_tx_tilemap->set_transparent_pen(15);
m_tx_tilemap->set_scrolldy(8, 8);
@@ -322,8 +322,8 @@ VIDEO_START_MEMBER(snk_state,ikari)
{
VIDEO_START_CALL_MEMBER(snk_3bpp_shadow);
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(snk_state::ikari_get_tx_tile_info),this), tilemap_mapper_delegate(FUNC(snk_state::marvins_tx_scan_cols),this), 8, 8, 36, 28);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(snk_state::ikari_get_bg_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 32, 32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(snk_state::ikari_get_tx_tile_info)), tilemap_mapper_delegate(*this, FUNC(snk_state::marvins_tx_scan_cols)), 8, 8, 36, 28);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(snk_state::ikari_get_bg_tile_info)), TILEMAP_SCAN_COLS, 16, 16, 32, 32);
m_tx_tilemap->set_transparent_pen(15);
m_tx_tilemap->set_scrolldy(8, 8);
@@ -344,8 +344,8 @@ VIDEO_START_MEMBER(snk_state,gwar)
memset(m_empty_tile, 0xf, sizeof(m_empty_tile));
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(snk_state::gwar_get_tx_tile_info),this), TILEMAP_SCAN_COLS, 8, 8, 50, 32);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(snk_state::gwar_get_bg_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 32, 32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(snk_state::gwar_get_tx_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 50, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(snk_state::gwar_get_bg_tile_info)), TILEMAP_SCAN_COLS, 16, 16, 32, 32);
m_tx_tilemap->set_transparent_pen(15);
diff --git a/src/mame/video/snk6502.cpp b/src/mame/video/snk6502.cpp
index c188aaf855a..345b9b80972 100644
--- a/src/mame/video/snk6502.cpp
+++ b/src/mame/video/snk6502.cpp
@@ -165,8 +165,8 @@ TILE_GET_INFO_MEMBER(snk6502_state::get_fg_tile_info)
VIDEO_START_MEMBER(snk6502_state,snk6502)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(snk6502_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(snk6502_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(snk6502_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(snk6502_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(0);
@@ -289,8 +289,8 @@ TILE_GET_INFO_MEMBER(snk6502_state::satansat_get_fg_tile_info)
VIDEO_START_MEMBER(snk6502_state,satansat)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(snk6502_state::satansat_get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(snk6502_state::satansat_get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(snk6502_state::satansat_get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(snk6502_state::satansat_get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/snk68.cpp b/src/mame/video/snk68.cpp
index e4a592bc9f3..8b50da0bd53 100644
--- a/src/mame/video/snk68.cpp
+++ b/src/mame/video/snk68.cpp
@@ -58,7 +58,7 @@ void snk68_state::common_video_start()
void snk68_state::video_start()
{
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(snk68_state::get_tile_info),this), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(snk68_state::get_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
m_fg_tile_offset = 0;
common_video_start();
@@ -68,7 +68,7 @@ void snk68_state::video_start()
void searchar_state::video_start()
{
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(searchar_state::get_tile_info),this), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(searchar_state::get_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
snk68_state::common_video_start();
}
diff --git a/src/mame/video/snk68_spr.cpp b/src/mame/video/snk68_spr.cpp
index d1a9746763e..7115713669b 100644
--- a/src/mame/video/snk68_spr.cpp
+++ b/src/mame/video/snk68_spr.cpp
@@ -51,13 +51,13 @@ DEFINE_DEVICE_TYPE(SNK68_SPR, snk68_spr_device, "snk68_spr", "SNK68 Sprites")
snk68_spr_device::snk68_spr_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: device_t(mconfig, SNK68_SPR, tag, owner, clock)
+ , m_newtilecb(*this, FUNC(snk68_spr_device::tile_callback_noindirect))
, m_gfxdecode(*this, finder_base::DUMMY_TAG)
, m_spriteram(*this, "^spriteram")
, m_screen(*this, "^screen")
, m_flipscreen(false)
, m_partialupdates(1)
{
- m_newtilecb = snk68_tile_indirection_delegate(FUNC(snk68_spr_device::tile_callback_noindirect), this);
}
void snk68_spr_device::tile_callback_noindirect(int &tile, int& fx, int& fy, int& region)
@@ -67,7 +67,7 @@ void snk68_spr_device::tile_callback_noindirect(int &tile, int& fx, int& fy, int
void snk68_spr_device::device_start()
{
// bind our handler
- m_newtilecb.bind_relative_to(*owner());
+ m_newtilecb.resolve();
}
void snk68_spr_device::device_reset()
diff --git a/src/mame/video/snk68_spr.h b/src/mame/video/snk68_spr.h
index 994fe55dd1f..e74a8edc71c 100644
--- a/src/mame/video/snk68_spr.h
+++ b/src/mame/video/snk68_spr.h
@@ -7,17 +7,17 @@
#include "screen.h"
-typedef device_delegate<void (int&, int&, int&, int&)> snk68_tile_indirection_delegate;
-
class snk68_spr_device : public device_t
{
public:
+ typedef device_delegate<void (int &, int &, int &, int &)> tile_indirection_delegate;
+
snk68_spr_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// static configuration
template <typename T> void set_gfxdecode_tag(T &&tag) { m_gfxdecode.set_tag(std::forward<T>(tag)); }
- template <typename... T> void set_tile_indirect_cb(T &&... args) { m_newtilecb = snk68_tile_indirection_delegate(std::forward<T>(args)...); }
+ template <typename... T> void set_tile_indirect_cb(T &&... args) { m_newtilecb.set(std::forward<T>(args)...); }
void set_no_partial() { m_partialupdates = 0; }
void set_xpos_shift(u8 data) { m_xpos_shift = data; }
void set_color_entry_mask(u16 data) { m_color_entry_mask = data; }
@@ -28,8 +28,6 @@ public:
void draw_sprites_all(bitmap_ind16 &bitmap, const rectangle &cliprect);
void draw_sprites_alt(bitmap_ind16 &bitmap, const rectangle &cliprect);
- snk68_tile_indirection_delegate m_newtilecb;
-
void tile_callback_noindirect(int& tile, int& fx, int& fy, int& region);
void set_flip(bool flip);
@@ -38,6 +36,7 @@ protected:
virtual void device_reset() override;
private:
+ tile_indirection_delegate m_newtilecb;
required_device<gfxdecode_device> m_gfxdecode;
required_shared_ptr<uint16_t> m_spriteram;
required_device<screen_device> m_screen;
diff --git a/src/mame/video/snookr10.cpp b/src/mame/video/snookr10.cpp
index ecc5529d71f..4dcf95c4351 100644
--- a/src/mame/video/snookr10.cpp
+++ b/src/mame/video/snookr10.cpp
@@ -237,17 +237,17 @@ TILE_GET_INFO_MEMBER(snookr10_state::crystalc_get_bg_tile_info)
void snookr10_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(snookr10_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 4, 8, 128, 30);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(snookr10_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 4, 8, 128, 30);
}
VIDEO_START_MEMBER(snookr10_state, apple10)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(snookr10_state::apple10_get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 4, 8, 128, 30);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(snookr10_state::apple10_get_bg_tile_info)), TILEMAP_SCAN_ROWS, 4, 8, 128, 30);
}
VIDEO_START_MEMBER(snookr10_state, crystalc)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(snookr10_state::crystalc_get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 4, 8, 128, 30);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(snookr10_state::crystalc_get_bg_tile_info)), TILEMAP_SCAN_ROWS, 4, 8, 128, 30);
}
uint32_t snookr10_state::screen_update_snookr10(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
diff --git a/src/mame/video/solomon.cpp b/src/mame/video/solomon.cpp
index d6533cd6bab..d2c74323844 100644
--- a/src/mame/video/solomon.cpp
+++ b/src/mame/video/solomon.cpp
@@ -57,10 +57,10 @@ TILE_GET_INFO_MEMBER(solomon_state::get_fg_tile_info)
void solomon_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(solomon_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS,
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(solomon_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS,
8, 8, 32, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(solomon_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS,
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(solomon_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS,
8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/sonson.cpp b/src/mame/video/sonson.cpp
index f77f557e669..d39d031950a 100644
--- a/src/mame/video/sonson.cpp
+++ b/src/mame/video/sonson.cpp
@@ -128,7 +128,7 @@ TILE_GET_INFO_MEMBER(sonson_state::get_bg_tile_info)
void sonson_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sonson_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sonson_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_bg_tilemap->set_scroll_rows(32);
}
diff --git a/src/mame/video/spbactn.cpp b/src/mame/video/spbactn.cpp
index 983b4ad6af5..cc8b6231657 100644
--- a/src/mame/video/spbactn.cpp
+++ b/src/mame/video/spbactn.cpp
@@ -49,8 +49,8 @@ VIDEO_START_MEMBER(spbactn_state,spbactn)
m_screen->register_screen_bitmap(m_tile_bitmap_fg);
m_screen->register_screen_bitmap(m_sprite_bitmap);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(spbactn_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 8, 64, 128);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(spbactn_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 8, 64, 128);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(spbactn_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 8, 64, 128);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(spbactn_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 16, 8, 64, 128);
m_bg_tilemap->set_transparent_pen(0);
m_fg_tilemap->set_transparent_pen(0);
}
@@ -59,7 +59,7 @@ VIDEO_START_MEMBER(spbactn_state,spbactnp)
{
VIDEO_START_CALL_MEMBER(spbactn);
// no idea..
- m_extra_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(spbactn_state::get_extra_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 16, 16);
+ m_extra_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(spbactn_state::get_extra_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 16, 16);
}
WRITE16_MEMBER( spbactn_state::spbatnp_90006_w )
diff --git a/src/mame/video/spdodgeb.cpp b/src/mame/video/spdodgeb.cpp
index f2da1c13fd0..2dd932b70b5 100644
--- a/src/mame/video/spdodgeb.cpp
+++ b/src/mame/video/spdodgeb.cpp
@@ -71,7 +71,7 @@ TILE_GET_INFO_MEMBER(spdodgeb_state::get_bg_tile_info)
void spdodgeb_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(spdodgeb_state::get_bg_tile_info),this),tilemap_mapper_delegate(FUNC(spdodgeb_state::background_scan),this),8,8,64,32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(spdodgeb_state::get_bg_tile_info)), tilemap_mapper_delegate(*this, FUNC(spdodgeb_state::background_scan)), 8,8, 64,32);
membank("mainbank")->configure_entries(0, 2, memregion("maincpu")->base(), 0x4000);
diff --git a/src/mame/video/speedbal.cpp b/src/mame/video/speedbal.cpp
index 13d654c8967..2642fed1af8 100644
--- a/src/mame/video/speedbal.cpp
+++ b/src/mame/video/speedbal.cpp
@@ -38,8 +38,8 @@ TILE_GET_INFO_MEMBER(speedbal_state::get_tile_info_fg)
void speedbal_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(speedbal_state::get_tile_info_bg),this), TILEMAP_SCAN_COLS_FLIP_X, 16, 16, 16, 16);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(speedbal_state::get_tile_info_fg),this), TILEMAP_SCAN_COLS_FLIP_X, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(speedbal_state::get_tile_info_bg)), TILEMAP_SCAN_COLS_FLIP_X, 16, 16, 16, 16);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(speedbal_state::get_tile_info_fg)), TILEMAP_SCAN_COLS_FLIP_X, 8, 8, 32, 32);
m_bg_tilemap->set_transmask(0,0xffff,0x0000); /* split type 0 is totally transparent in front half */
m_bg_tilemap->set_transmask(1,0x00f7,0x0000); /* split type 1 has pen 0-2, 4-7 transparent in front half */
diff --git a/src/mame/video/speedspn.cpp b/src/mame/video/speedspn.cpp
index f56af8fcd0d..22d01989145 100644
--- a/src/mame/video/speedspn.cpp
+++ b/src/mame/video/speedspn.cpp
@@ -20,7 +20,7 @@ void speedspn_state::video_start()
m_bank_vidram = 0;
m_vidram.resize(0x1000 * 2);
memset(&m_vidram[0], 0, 0x1000*2);
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(speedspn_state::get_tile_info),this),TILEMAP_SCAN_COLS, 8, 8,64,32);
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(speedspn_state::get_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 64, 32);
save_item(NAME(m_display_disable));
save_item(NAME(m_bank_vidram));
diff --git a/src/mame/video/splash.cpp b/src/mame/video/splash.cpp
index e2d7dc0272b..c27573c9eee 100644
--- a/src/mame/video/splash.cpp
+++ b/src/mame/video/splash.cpp
@@ -164,8 +164,8 @@ void splash_state::draw_bitmap(bitmap_ind16 &bitmap, const rectangle &cliprect)
void splash_state::video_start()
{
- m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(splash_state::get_tile_info_tilemap0),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(splash_state::get_tile_info_tilemap1),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(splash_state::get_tile_info_tilemap0)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(splash_state::get_tile_info_tilemap1)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
m_bg_tilemap[0]->set_transparent_pen(0);
m_bg_tilemap[1]->set_transparent_pen(0);
diff --git a/src/mame/video/sprint2.cpp b/src/mame/video/sprint2.cpp
index 03286986220..0d24f6bb120 100644
--- a/src/mame/video/sprint2.cpp
+++ b/src/mame/video/sprint2.cpp
@@ -45,7 +45,7 @@ void sprint2_state::video_start()
{
m_screen->register_screen_bitmap(m_helper);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sprint2_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 16, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sprint2_state::get_tile_info)), TILEMAP_SCAN_ROWS, 16, 8, 32, 32);
}
diff --git a/src/mame/video/sprint4.cpp b/src/mame/video/sprint4.cpp
index 082c106a122..9aeea51b4ab 100644
--- a/src/mame/video/sprint4.cpp
+++ b/src/mame/video/sprint4.cpp
@@ -50,7 +50,7 @@ void sprint4_state::video_start()
{
m_screen->register_screen_bitmap(m_helper);
- m_playfield = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sprint4_state::tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_playfield = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sprint4_state::tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
diff --git a/src/mame/video/sprint8.cpp b/src/mame/video/sprint8.cpp
index 3f13debe6bb..f04d3ab8e8b 100644
--- a/src/mame/video/sprint8.cpp
+++ b/src/mame/video/sprint8.cpp
@@ -31,25 +31,25 @@ void sprint8_state::set_pens()
{
if (m_team)
{
- m_palette->set_indirect_color(i + 0, rgb_t(0xff, 0x00, 0x00)); /* red */
- m_palette->set_indirect_color(i + 1, rgb_t(0x00, 0x00, 0xff)); /* blue */
- m_palette->set_indirect_color(i + 2, rgb_t(0xff, 0xff, 0x00)); /* yellow */
- m_palette->set_indirect_color(i + 3, rgb_t(0x00, 0xff, 0x00)); /* green */
- m_palette->set_indirect_color(i + 4, rgb_t(0xff, 0x00, 0xff)); /* magenta */
- m_palette->set_indirect_color(i + 5, rgb_t(0xe0, 0xc0, 0x70)); /* puce */
- m_palette->set_indirect_color(i + 6, rgb_t(0x00, 0xff, 0xff)); /* cyan */
- m_palette->set_indirect_color(i + 7, rgb_t(0xff, 0xaa, 0xaa)); /* pink */
+ m_palette->set_indirect_color(i + 0, rgb_t(0xff, 0x00, 0x00)); // red
+ m_palette->set_indirect_color(i + 1, rgb_t(0x00, 0x00, 0xff)); // blue
+ m_palette->set_indirect_color(i + 2, rgb_t(0xff, 0xff, 0x00)); // yellow
+ m_palette->set_indirect_color(i + 3, rgb_t(0x00, 0xff, 0x00)); // green
+ m_palette->set_indirect_color(i + 4, rgb_t(0xff, 0x00, 0xff)); // magenta
+ m_palette->set_indirect_color(i + 5, rgb_t(0xe0, 0xc0, 0x70)); // puce
+ m_palette->set_indirect_color(i + 6, rgb_t(0x00, 0xff, 0xff)); // cyan
+ m_palette->set_indirect_color(i + 7, rgb_t(0xff, 0xaa, 0xaa)); // pink
}
else
{
- m_palette->set_indirect_color(i + 0, rgb_t(0xff, 0x00, 0x00)); /* red */
- m_palette->set_indirect_color(i + 1, rgb_t(0x00, 0x00, 0xff)); /* blue */
- m_palette->set_indirect_color(i + 2, rgb_t(0xff, 0x00, 0x00)); /* red */
- m_palette->set_indirect_color(i + 3, rgb_t(0x00, 0x00, 0xff)); /* blue */
- m_palette->set_indirect_color(i + 4, rgb_t(0xff, 0x00, 0x00)); /* red */
- m_palette->set_indirect_color(i + 5, rgb_t(0x00, 0x00, 0xff)); /* blue */
- m_palette->set_indirect_color(i + 6, rgb_t(0xff, 0x00, 0x00)); /* red */
- m_palette->set_indirect_color(i + 7, rgb_t(0x00, 0x00, 0xff)); /* blue */
+ m_palette->set_indirect_color(i + 0, rgb_t(0xff, 0x00, 0x00)); // red
+ m_palette->set_indirect_color(i + 1, rgb_t(0x00, 0x00, 0xff)); // blue
+ m_palette->set_indirect_color(i + 2, rgb_t(0xff, 0x00, 0x00)); // red
+ m_palette->set_indirect_color(i + 3, rgb_t(0x00, 0x00, 0xff)); // blue
+ m_palette->set_indirect_color(i + 4, rgb_t(0xff, 0x00, 0x00)); // red
+ m_palette->set_indirect_color(i + 5, rgb_t(0x00, 0x00, 0xff)); // blue
+ m_palette->set_indirect_color(i + 6, rgb_t(0xff, 0x00, 0x00)); // red
+ m_palette->set_indirect_color(i + 7, rgb_t(0x00, 0x00, 0xff)); // blue
}
}
@@ -111,8 +111,8 @@ void sprint8_state::video_start()
m_screen->register_screen_bitmap(m_helper1);
m_screen->register_screen_bitmap(m_helper2);
- m_tilemap1 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sprint8_state::get_tile_info1),this), TILEMAP_SCAN_ROWS, 16, 8, 32, 32);
- m_tilemap2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sprint8_state::get_tile_info2),this), TILEMAP_SCAN_ROWS, 16, 8, 32, 32);
+ m_tilemap1 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sprint8_state::get_tile_info1)), TILEMAP_SCAN_ROWS, 16, 8, 32, 32);
+ m_tilemap2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sprint8_state::get_tile_info2)), TILEMAP_SCAN_ROWS, 16, 8, 32, 32);
m_tilemap1->set_scrolly(0, +24);
m_tilemap2->set_scrolly(0, +24);
diff --git a/src/mame/video/srumbler.cpp b/src/mame/video/srumbler.cpp
index 013e4f1e196..5a140c5a57c 100644
--- a/src/mame/video/srumbler.cpp
+++ b/src/mame/video/srumbler.cpp
@@ -47,13 +47,13 @@ TILE_GET_INFO_MEMBER(srumbler_state::get_bg_tile_info)
void srumbler_state::video_start()
{
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(srumbler_state::get_fg_tile_info),this),TILEMAP_SCAN_COLS,8,8,64,32);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(srumbler_state::get_bg_tile_info),this),TILEMAP_SCAN_COLS, 16,16,64,64);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(srumbler_state::get_fg_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 64,32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(srumbler_state::get_bg_tile_info)), TILEMAP_SCAN_COLS, 16,16, 64,64);
m_fg_tilemap->set_transparent_pen(3);
- m_bg_tilemap->set_transmask(0,0xffff,0x0000); /* split type 0 is totally transparent in front half */
- m_bg_tilemap->set_transmask(1,0x07ff,0xf800); /* split type 1 has pens 0-10 transparent in front half */
+ m_bg_tilemap->set_transmask(0,0xffff,0x0000); // split type 0 is totally transparent in front half
+ m_bg_tilemap->set_transmask(1,0x07ff,0xf800); // split type 1 has pens 0-10 transparent in front half
save_item(NAME(m_scroll));
}
diff --git a/src/mame/video/sslam.cpp b/src/mame/video/sslam.cpp
index 279998e6920..5f29791efea 100644
--- a/src/mame/video/sslam.cpp
+++ b/src/mame/video/sslam.cpp
@@ -139,9 +139,9 @@ WRITE16_MEMBER(powerbls_state::powerbls_bg_tileram_w)
void sslam_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sslam_state::get_sslam_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- m_md_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sslam_state::get_sslam_md_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sslam_state::get_sslam_tx_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sslam_state::get_sslam_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_md_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sslam_state::get_sslam_md_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sslam_state::get_sslam_tx_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
m_md_tilemap->set_transparent_pen(0);
m_tx_tilemap->set_transparent_pen(0);
@@ -152,7 +152,7 @@ void sslam_state::video_start()
void powerbls_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(powerbls_state::get_powerbls_bg_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,64);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(powerbls_state::get_powerbls_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
m_sprites_x_offset = -21;
save_item(NAME(m_sprites_x_offset));
diff --git a/src/mame/video/ssozumo.cpp b/src/mame/video/ssozumo.cpp
index 51f37bbd789..09cd0b05ed9 100644
--- a/src/mame/video/ssozumo.cpp
+++ b/src/mame/video/ssozumo.cpp
@@ -132,10 +132,10 @@ TILE_GET_INFO_MEMBER(ssozumo_state::get_fg_tile_info)
void ssozumo_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ssozumo_state::get_bg_tile_info),this), TILEMAP_SCAN_COLS_FLIP_X,
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ssozumo_state::get_bg_tile_info)), TILEMAP_SCAN_COLS_FLIP_X,
16, 16, 16, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ssozumo_state::get_fg_tile_info),this), TILEMAP_SCAN_COLS_FLIP_X,
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ssozumo_state::get_fg_tile_info)), TILEMAP_SCAN_COLS_FLIP_X,
8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(0);
@@ -164,11 +164,10 @@ void ssozumo_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect
flipy = !flipy;
}
-
- m_gfxdecode->gfx(2)->transpen(bitmap,cliprect,
- code, color,
- flipx, flipy,
- sx, sy, 0);
+ m_gfxdecode->gfx(2)->transpen(bitmap,cliprect,
+ code, color,
+ flipx, flipy,
+ sx, sy, 0);
}
}
}
diff --git a/src/mame/video/ssrj.cpp b/src/mame/video/ssrj.cpp
index 47a5f67b12a..25554f25f82 100644
--- a/src/mame/video/ssrj.cpp
+++ b/src/mame/video/ssrj.cpp
@@ -220,9 +220,9 @@ static constexpr rgb_t fakecols[4 * 4][8] =
void ssrj_state::video_start()
{
- m_tilemap1 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ssrj_state::get_tile_info1),this), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
- m_tilemap2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ssrj_state::get_tile_info2),this), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
- m_tilemap4 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ssrj_state::get_tile_info4),this), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
+ m_tilemap1 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ssrj_state::get_tile_info1)), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
+ m_tilemap2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ssrj_state::get_tile_info2)), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
+ m_tilemap4 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ssrj_state::get_tile_info4)), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
m_tilemap2->set_transparent_pen(0);
m_tilemap4->set_transparent_pen(0);
diff --git a/src/mame/video/ssv.cpp b/src/mame/video/ssv.cpp
index 7d280915cc5..19d5d4bcc64 100644
--- a/src/mame/video/ssv.cpp
+++ b/src/mame/video/ssv.cpp
@@ -240,7 +240,7 @@ VIDEO_START_MEMBER(ssv_state,gdfs)
{
ssv_state::video_start();
- m_gdfs_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ssv_state::get_tile_info_0),this), TILEMAP_SCAN_ROWS, 16,16, 0x100,0x100);
+ m_gdfs_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ssv_state::get_tile_info_0)), TILEMAP_SCAN_ROWS, 16,16, 0x100,0x100);
m_gdfs_tmap->set_transparent_pen(0);
}
diff --git a/src/mame/video/st0020.cpp b/src/mame/video/st0020.cpp
index b26c1c02aff..c0b8ae6341e 100644
--- a/src/mame/video/st0020.cpp
+++ b/src/mame/video/st0020.cpp
@@ -21,10 +21,10 @@
DEFINE_DEVICE_TYPE(ST0020_SPRITES, st0020_device, "st0020", "Seta ST0020 Sprites")
-#define ST0020_ST0032_BYTESWAP_DATA \
- if (m_is_st0032) data = ((data & 0x00ff)<<8) | ((data & 0xff00)>>8);
-#define ST0020_ST0032_BYTESWAP_MEM_MASK \
- if (m_is_st0032) mem_mask = ((mem_mask & 0x00ff)<<8) | ((mem_mask & 0xff00)>>8);
+#define ST0020_ST0032_BYTESWAP_DATA() \
+ do { if (m_is_st0032) data = ((data & 0x00ff)<<8) | ((data & 0xff00)>>8); } while (false)
+#define ST0020_ST0032_BYTESWAP_MEM_MASK() \
+ do { if (m_is_st0032) mem_mask = ((mem_mask & 0x00ff)<<8) | ((mem_mask & 0xff00)>>8); } while (false)
st0020_device::st0020_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
@@ -68,13 +68,13 @@ void st0020_device::device_start()
// Tilemaps
m_tmap[0] = &machine().tilemap().create(
- *this, tilemap_get_info_delegate(FUNC(st0020_device::get_tile_info<0>), this), tilemap_mapper_delegate(FUNC(st0020_device::scan_16x16),this),16,8, 0x40,0x40*2);
+ *this, tilemap_get_info_delegate(*this, FUNC(st0020_device::get_tile_info<0>)), tilemap_mapper_delegate(*this, FUNC(st0020_device::scan_16x16)), 16,8, 0x40,0x40*2);
m_tmap[1] = &machine().tilemap().create(
- *this, tilemap_get_info_delegate(FUNC(st0020_device::get_tile_info<1>), this), tilemap_mapper_delegate(FUNC(st0020_device::scan_16x16),this),16,8, 0x40,0x40*2);
+ *this, tilemap_get_info_delegate(*this, FUNC(st0020_device::get_tile_info<1>)), tilemap_mapper_delegate(*this, FUNC(st0020_device::scan_16x16)), 16,8, 0x40,0x40*2);
m_tmap[2] = &machine().tilemap().create(
- *this, tilemap_get_info_delegate(FUNC(st0020_device::get_tile_info<2>), this), tilemap_mapper_delegate(FUNC(st0020_device::scan_16x16),this),16,8, 0x40,0x40*2);
+ *this, tilemap_get_info_delegate(*this, FUNC(st0020_device::get_tile_info<2>)), tilemap_mapper_delegate(*this, FUNC(st0020_device::scan_16x16)), 16,8, 0x40,0x40*2);
m_tmap[3] = &machine().tilemap().create(
- *this, tilemap_get_info_delegate(FUNC(st0020_device::get_tile_info<3>), this), tilemap_mapper_delegate(FUNC(st0020_device::scan_16x16),this),16,8, 0x40,0x40*2);
+ *this, tilemap_get_info_delegate(*this, FUNC(st0020_device::get_tile_info<3>)), tilemap_mapper_delegate(*this, FUNC(st0020_device::scan_16x16)), 16,8, 0x40,0x40*2);
for (int i = 0; i < 4; ++i)
{
m_tmap[i]->set_transparent_pen(0);
@@ -92,18 +92,18 @@ void st0020_device::device_start()
// Gfx ram
READ16_MEMBER(st0020_device::gfxram_r)
{
- ST0020_ST0032_BYTESWAP_MEM_MASK
+ ST0020_ST0032_BYTESWAP_MEM_MASK();
uint16_t data = m_gfxram[offset + m_gfxram_bank * 0x100000/2];
- ST0020_ST0032_BYTESWAP_DATA
+ ST0020_ST0032_BYTESWAP_DATA();
return data;
}
WRITE16_MEMBER(st0020_device::gfxram_w)
{
- ST0020_ST0032_BYTESWAP_MEM_MASK
- ST0020_ST0032_BYTESWAP_DATA
+ ST0020_ST0032_BYTESWAP_MEM_MASK();
+ ST0020_ST0032_BYTESWAP_DATA();
offset += m_gfxram_bank * 0x100000/2;
COMBINE_DATA(&m_gfxram[offset]);
diff --git a/src/mame/video/stadhero.cpp b/src/mame/video/stadhero.cpp
index 6a18766b51a..b8edc446323 100644
--- a/src/mame/video/stadhero.cpp
+++ b/src/mame/video/stadhero.cpp
@@ -58,7 +58,7 @@ TILE_GET_INFO_MEMBER(stadhero_state::get_pf1_tile_info)
void stadhero_state::video_start()
{
- m_pf1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(stadhero_state::get_pf1_tile_info),this),TILEMAP_SCAN_ROWS, 8, 8,32,32);
+ m_pf1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(stadhero_state::get_pf1_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 32,32);
m_pf1_tilemap->set_transparent_pen(0);
}
diff --git a/src/mame/video/starshp1.cpp b/src/mame/video/starshp1.cpp
index c00207f17fd..c2b8038ef17 100644
--- a/src/mame/video/starshp1.cpp
+++ b/src/mame/video/starshp1.cpp
@@ -56,7 +56,7 @@ void starshp1_state::video_start()
int i;
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(starshp1_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 16, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(starshp1_state::get_tile_info)), TILEMAP_SCAN_ROWS, 16, 8, 32, 32);
m_bg_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/stfight_dev.cpp b/src/mame/video/stfight_dev.cpp
index 18c81092dea..7c5d26f04b5 100644
--- a/src/mame/video/stfight_dev.cpp
+++ b/src/mame/video/stfight_dev.cpp
@@ -12,8 +12,8 @@
DEFINE_DEVICE_TYPE(STFIGHT_VIDEO, stfight_video_device, "stfight_vid", "Seibu Street Fight Video")
-stfight_video_device::stfight_video_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
- : device_t(mconfig, STFIGHT_VIDEO, tag, owner, clock),
+stfight_video_device::stfight_video_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
+ device_t(mconfig, STFIGHT_VIDEO, tag, owner, clock),
m_gfxdecode(*this, "gfxdecode"),
m_palette(*this,"^palette"),
m_screen(*this, "screen"),
@@ -311,9 +311,9 @@ void stfight_video_device::device_start()
save_item(NAME(m_sprite_base));
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(stfight_video_device::get_bg_tile_info),this),tilemap_mapper_delegate(FUNC(stfight_video_device::bg_scan),this),16,16,128,256);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(stfight_video_device::get_fg_tile_info),this),tilemap_mapper_delegate(FUNC(stfight_video_device::fg_scan),this),16,16,128,256);
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(stfight_video_device::get_tx_tile_info),this),TILEMAP_SCAN_ROWS, 8,8,32,32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(stfight_video_device::get_bg_tile_info)), tilemap_mapper_delegate(*this, FUNC(stfight_video_device::bg_scan)), 16,16, 128,256);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(stfight_video_device::get_fg_tile_info)), tilemap_mapper_delegate(*this, FUNC(stfight_video_device::fg_scan)), 16,16, 128,256);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(stfight_video_device::get_tx_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 32,32);
// we do manual mixing using a temp bitmap
m_screen->register_screen_bitmap(m_temp_sprite_bitmap);
diff --git a/src/mame/video/sub.cpp b/src/mame/video/sub.cpp
index f2e54e5d194..fe431aca7f2 100644
--- a/src/mame/video/sub.cpp
+++ b/src/mame/video/sub.cpp
@@ -59,7 +59,7 @@ WRITE8_MEMBER(sub_state::scrolly_w)
void sub_state::video_start()
{
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(sub_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(sub_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_tilemap->set_scroll_cols(32);
}
diff --git a/src/mame/video/suna8.cpp b/src/mame/video/suna8.cpp
index f1e4cd650b2..e187d56dd6d 100644
--- a/src/mame/video/suna8.cpp
+++ b/src/mame/video/suna8.cpp
@@ -155,10 +155,8 @@ void suna8_state::suna8_vh_start_common(bool has_text, GFXBANK_TYPE_T gfxbank_ty
}
#if TILEMAPS
- m_bg_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(suna8_state::get_tile_info),this), TILEMAP_SCAN_COLS,
-
- 8, 8, 0x20*(m_has_text ? 4 : 16), 0x20);
-
+ m_bg_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(suna8_state::get_tile_info)), TILEMAP_SCAN_COLS,
+ 8, 8, 0x20*(m_has_text ? 4 : 16), 0x20);
m_bg_tilemap->set_transparent_pen(15);
#endif
}
diff --git a/src/mame/video/superqix.cpp b/src/mame/video/superqix.cpp
index 4f8b8fc7f54..17996e3770e 100644
--- a/src/mame/video/superqix.cpp
+++ b/src/mame/video/superqix.cpp
@@ -51,17 +51,17 @@ TILE_GET_INFO_MEMBER(superqix_state_base::sqix_get_bg_tile_info)
void hotsmash_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(hotsmash_state::pb_get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8,32,32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(hotsmash_state::pb_get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8,32,32);
}
void superqix_state::video_start()
{
m_fg_bitmap[0] = std::make_unique<bitmap_ind16>(256, 256);
m_fg_bitmap[1] = std::make_unique<bitmap_ind16>(256, 256);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(superqix_state_base::sqix_get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(superqix_state_base::sqix_get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_bg_tilemap->set_transmask(0,0xffff,0x0000); /* split type 0 is totally transparent in front half */
- m_bg_tilemap->set_transmask(1,0x0001,0xfffe); /* split type 1 has pen 0 transparent in front half */
+ m_bg_tilemap->set_transmask(0, 0xffff, 0x0000); // split type 0 is totally transparent in front half
+ m_bg_tilemap->set_transmask(1, 0x0001, 0xfffe); // split type 1 has pen 0 transparent in front half
save_item(NAME(*m_fg_bitmap[0]));
save_item(NAME(*m_fg_bitmap[1]));
diff --git a/src/mame/video/suprloco.cpp b/src/mame/video/suprloco.cpp
index 15608323be7..be0b991d78a 100644
--- a/src/mame/video/suprloco.cpp
+++ b/src/mame/video/suprloco.cpp
@@ -90,7 +90,7 @@ TILE_GET_INFO_MEMBER(suprloco_state::get_tile_info)
void suprloco_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(suprloco_state::get_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(suprloco_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 32,32);
m_bg_tilemap->set_scroll_rows(32);
diff --git a/src/mame/video/suprnova.cpp b/src/mame/video/suprnova.cpp
index 25a02e667bd..f32c7a9e8d7 100644
--- a/src/mame/video/suprnova.cpp
+++ b/src/mame/video/suprnova.cpp
@@ -345,10 +345,10 @@ WRITE32_MEMBER(skns_state::v3_regs_w)
void skns_state::video_start()
{
- m_tilemap_A = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(skns_state::get_tilemap_A_tile_info),this),TILEMAP_SCAN_ROWS,16,16,64, 64);
+ m_tilemap_A = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(skns_state::get_tilemap_A_tile_info)), TILEMAP_SCAN_ROWS, 16,16, 64,64);
m_tilemap_A->set_transparent_pen(0);
- m_tilemap_B = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(skns_state::get_tilemap_B_tile_info),this),TILEMAP_SCAN_ROWS,16,16,64, 64);
+ m_tilemap_B = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(skns_state::get_tilemap_B_tile_info)), TILEMAP_SCAN_ROWS, 16,16, 64,64);
m_tilemap_B->set_transparent_pen(0);
m_sprite_bitmap.allocate(1024,1024);
diff --git a/src/mame/video/suprridr.cpp b/src/mame/video/suprridr.cpp
index 1b695465257..645033f85f4 100644
--- a/src/mame/video/suprridr.cpp
+++ b/src/mame/video/suprridr.cpp
@@ -40,9 +40,9 @@ TILE_GET_INFO_MEMBER(suprridr_state::get_tile_info2)
void suprridr_state::video_start()
{
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(suprridr_state::get_tile_info2),this), TILEMAP_SCAN_ROWS, 8,8, 32,32);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(suprridr_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8,8, 32,32);
- m_bg_tilemap_noscroll = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(suprridr_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8,8, 32,32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(suprridr_state::get_tile_info2)), TILEMAP_SCAN_ROWS, 8,8, 32,32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(suprridr_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 32,32);
+ m_bg_tilemap_noscroll = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(suprridr_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 32,32);
m_fg_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/suprslam.cpp b/src/mame/video/suprslam.cpp
index 8797ef12594..222dfeac954 100644
--- a/src/mame/video/suprslam.cpp
+++ b/src/mame/video/suprslam.cpp
@@ -57,8 +57,8 @@ uint32_t suprslam_state::suprslam_tile_callback( uint32_t code )
void suprslam_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(suprslam_state::get_suprslam_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
- m_screen_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(suprslam_state::get_suprslam_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(suprslam_state::get_suprslam_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
+ m_screen_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(suprslam_state::get_suprslam_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_spr_ctrl = 0;
m_screen_tilemap->set_transparent_pen(15);
diff --git a/src/mame/video/system1.cpp b/src/mame/video/system1.cpp
index 745bd7148da..d04a9e6f1b6 100644
--- a/src/mame/video/system1.cpp
+++ b/src/mame/video/system1.cpp
@@ -131,7 +131,7 @@ void system1_state::video_start_common(int pagecount)
/* create the tilemap pages */
for (pagenum = 0; pagenum < pagecount; pagenum++)
{
- m_tilemap_page[pagenum] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(system1_state::tile_get_info),this), TILEMAP_SCAN_ROWS, 8,8, 32,32);
+ m_tilemap_page[pagenum] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(system1_state::tile_get_info)), TILEMAP_SCAN_ROWS, 8,8, 32,32);
m_tilemap_page[pagenum]->set_transparent_pen(0);
m_tilemap_page[pagenum]->set_user_data(m_videoram.get() + 0x800 * pagenum);
}
diff --git a/src/mame/video/system16.cpp b/src/mame/video/system16.cpp
index 1b26cb74807..331f0258cfe 100644
--- a/src/mame/video/system16.cpp
+++ b/src/mame/video/system16.cpp
@@ -36,9 +36,8 @@ void segas1x_bootleg_state::setup_system16_bootleg_spritebanking( )
{
if (m_spritebank_type == 0)
{
- static const uint8_t alternate_banklist[] = { 0,255,255,255, 255,255,255,3, 255,255,255,2, 255,1,0,255 };
- int i;
- for (i = 0; i < 16; i++)
+ static constexpr uint8_t alternate_banklist[] = { 0,255,255,255, 255,255,255,3, 255,255,255,2, 255,1,0,255 };
+ for (int i = 0; i < 16; i++)
m_sprites->set_bank(i, alternate_banklist[i]);
}
@@ -366,24 +365,24 @@ VIDEO_START_MEMBER(segas1x_bootleg_state,system16)
if (!m_bg1_trans)
m_background[0] = &machine().tilemap().create(
- *m_gfxdecode, tilemap_get_info_delegate(FUNC(segas1x_bootleg_state::get_bg_tile_info),this), tilemap_mapper_delegate(FUNC(segas1x_bootleg_state::sys16_bg_map),this),
+ *m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(segas1x_bootleg_state::get_bg_tile_info)), tilemap_mapper_delegate(*this, FUNC(segas1x_bootleg_state::sys16_bg_map)),
8,8,
- 64*2,32*2 );
+ 64*2,32*2);
else
m_background[0] = &machine().tilemap().create(
- *m_gfxdecode, tilemap_get_info_delegate(FUNC(segas1x_bootleg_state::get_bg_tile_info),this), tilemap_mapper_delegate(FUNC(segas1x_bootleg_state::sys16_bg_map),this),
+ *m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(segas1x_bootleg_state::get_bg_tile_info)), tilemap_mapper_delegate(*this, FUNC(segas1x_bootleg_state::sys16_bg_map)),
8,8,
- 64*2,32*2 );
+ 64*2,32*2);
m_foreground[0] = &machine().tilemap().create(
- *m_gfxdecode, tilemap_get_info_delegate(FUNC(segas1x_bootleg_state::get_fg_tile_info),this), tilemap_mapper_delegate(FUNC(segas1x_bootleg_state::sys16_bg_map),this),
+ *m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(segas1x_bootleg_state::get_fg_tile_info)), tilemap_mapper_delegate(*this, FUNC(segas1x_bootleg_state::sys16_bg_map)),
8,8,
- 64*2,32*2 );
+ 64*2,32*2);
m_text_layer = &machine().tilemap().create(
- *m_gfxdecode, tilemap_get_info_delegate(FUNC(segas1x_bootleg_state::get_text_tile_info),this), tilemap_mapper_delegate(FUNC(segas1x_bootleg_state::sys16_text_map),this),
+ *m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(segas1x_bootleg_state::get_text_tile_info)), tilemap_mapper_delegate(*this, FUNC(segas1x_bootleg_state::sys16_text_map)),
8,8,
- 40,28 );
+ 40,28);
if (m_bg1_trans) m_background[0]->set_transparent_pen(0);
m_foreground[0]->set_transparent_pen(0);
@@ -422,14 +421,14 @@ VIDEO_START_MEMBER(segas1x_bootleg_state,system18old)
m_bg1_trans = 1;
m_background[1] = &machine().tilemap().create(
- *m_gfxdecode, tilemap_get_info_delegate(FUNC(segas1x_bootleg_state::get_bg2_tile_info),this), tilemap_mapper_delegate(FUNC(segas1x_bootleg_state::sys16_bg_map),this),
+ *m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(segas1x_bootleg_state::get_bg2_tile_info)), tilemap_mapper_delegate(*this, FUNC(segas1x_bootleg_state::sys16_bg_map)),
8,8,
- 64*2,32*2 );
+ 64*2,32*2);
m_foreground[1] = &machine().tilemap().create(
- *m_gfxdecode, tilemap_get_info_delegate(FUNC(segas1x_bootleg_state::get_fg2_tile_info),this), tilemap_mapper_delegate(FUNC(segas1x_bootleg_state::sys16_bg_map),this),
+ *m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(segas1x_bootleg_state::get_fg2_tile_info)), tilemap_mapper_delegate(*this, FUNC(segas1x_bootleg_state::sys16_bg_map)),
8,8,
- 64*2,32*2 );
+ 64*2,32*2);
m_foreground[1]->set_transparent_pen(0);
@@ -557,11 +556,11 @@ VIDEO_START_MEMBER(segas1x_bootleg_state,s16a_bootleg)
- m_text_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(segas1x_bootleg_state::get_s16a_bootleg_tile_infotxt),this), TILEMAP_SCAN_ROWS, 8,8, 64,32 );
+ m_text_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(segas1x_bootleg_state::get_s16a_bootleg_tile_infotxt)), TILEMAP_SCAN_ROWS, 8,8, 64,32);
// the system16a bootlegs have simple tilemaps instead of the paged system
- m_bg_tilemaps[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(segas1x_bootleg_state::get_s16a_bootleg_tile_info0),this), TILEMAP_SCAN_ROWS, 8,8, 64,32 );
- m_bg_tilemaps[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(segas1x_bootleg_state::get_s16a_bootleg_tile_info1),this), TILEMAP_SCAN_ROWS, 8,8, 64,32 );
+ m_bg_tilemaps[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(segas1x_bootleg_state::get_s16a_bootleg_tile_info0)), TILEMAP_SCAN_ROWS, 8,8, 64,32);
+ m_bg_tilemaps[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(segas1x_bootleg_state::get_s16a_bootleg_tile_info1)), TILEMAP_SCAN_ROWS, 8,8, 64,32);
m_text_tilemap->set_transparent_pen(0);
m_bg_tilemaps[0]->set_transparent_pen(0);
diff --git a/src/mame/video/tagteam.cpp b/src/mame/video/tagteam.cpp
index 2fb421ad380..f46f85a3a27 100644
--- a/src/mame/video/tagteam.cpp
+++ b/src/mame/video/tagteam.cpp
@@ -137,7 +137,7 @@ TILE_GET_INFO_MEMBER(tagteam_state::get_bg_tile_info)
void tagteam_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tagteam_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS_FLIP_X,
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tagteam_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS_FLIP_X,
8, 8, 32, 32);
save_item(NAME(m_palettebank));
diff --git a/src/mame/video/tail2nos.cpp b/src/mame/video/tail2nos.cpp
index b8191e93382..9c3ab1d4282 100644
--- a/src/mame/video/tail2nos.cpp
+++ b/src/mame/video/tail2nos.cpp
@@ -49,7 +49,7 @@ void tail2nos_state::tail2nos_postload()
void tail2nos_state::video_start()
{
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tail2nos_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tail2nos_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_tx_tilemap->set_transparent_pen(15);
diff --git a/src/mame/video/taito_f3.cpp b/src/mame/video/taito_f3.cpp
index 2d1ae3b058e..458f347ff06 100644
--- a/src/mame/video/taito_f3.cpp
+++ b/src/mame/video/taito_f3.cpp
@@ -498,10 +498,10 @@ void taito_f3_state::video_start()
if (m_game_config->extend)
{
- m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info<0>), this), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
- m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info<1>), this), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
- m_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info<2>), this), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
- m_tilemap[3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info<3>), this), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
+ m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(taito_f3_state::get_tile_info<0>)), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
+ m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(taito_f3_state::get_tile_info<1>)), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
+ m_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(taito_f3_state::get_tile_info<2>)), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
+ m_tilemap[3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(taito_f3_state::get_tile_info<3>)), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
m_pf_data[0] = m_pf_ram + (0x0000 / 2);
m_pf_data[1] = m_pf_ram + (0x2000 / 2);
@@ -519,14 +519,14 @@ void taito_f3_state::video_start()
}
else
{
- m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info<0>), this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info<1>), this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- m_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info<2>), this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- m_tilemap[3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info<3>), this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- m_tilemap[4] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info<4>), this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- m_tilemap[5] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info<5>), this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- m_tilemap[6] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info<6>), this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- m_tilemap[7] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info<7>), this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(taito_f3_state::get_tile_info<0>)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(taito_f3_state::get_tile_info<1>)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(taito_f3_state::get_tile_info<2>)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_tilemap[3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(taito_f3_state::get_tile_info<3>)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_tilemap[4] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(taito_f3_state::get_tile_info<4>)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_tilemap[5] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(taito_f3_state::get_tile_info<5>)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_tilemap[6] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(taito_f3_state::get_tile_info<6>)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_tilemap[7] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(taito_f3_state::get_tile_info<7>)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
m_pf_data[0] = m_pf_ram + (0x0000 / 2);
m_pf_data[1] = m_pf_ram + (0x1000 / 2);
@@ -554,8 +554,8 @@ void taito_f3_state::video_start()
m_spriteram16_buffered = std::make_unique<u16[]>(0x10000 / 2);
m_spritelist = std::make_unique<tempsprite[]>(0x400);
m_sprite_end = &m_spritelist[0];
- m_vram_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info_text), this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_pixel_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info_pixel), this), TILEMAP_SCAN_COLS, 8, 8, 64, 32);
+ m_vram_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(taito_f3_state::get_tile_info_text)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_pixel_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(taito_f3_state::get_tile_info_pixel)), TILEMAP_SCAN_COLS, 8, 8, 64, 32);
m_pf_line_inf = std::make_unique<f3_playfield_line_inf[]>(5);
m_sa_line_inf = std::make_unique<f3_spritealpha_line_inf[]>(1);
m_screen->register_screen_bitmap(m_pri_alp_bitmap);
@@ -566,8 +566,7 @@ void taito_f3_state::video_start()
m_vram_layer->set_transparent_pen(0);
m_pixel_layer->set_transparent_pen(0);
- /* Palettes have 4 bpp indexes despite up to 6 bpp data. The unused */
- /* top bits in the gfx data are cleared later. */
+ // Palettes have 4 bpp indexes despite up to 6 bpp data. The unused top bits in the gfx data are cleared later.
m_gfxdecode->gfx(2)->set_granularity(16);
m_gfxdecode->gfx(3)->set_granularity(16);
diff --git a/src/mame/video/taito_l.cpp b/src/mame/video/taito_l.cpp
index 237ce077cf4..6035969cccb 100644
--- a/src/mame/video/taito_l.cpp
+++ b/src/mame/video/taito_l.cpp
@@ -50,9 +50,9 @@ void taitol_state::video_start()
{
m_buff_spriteram = make_unique_clear<u8[]>(SPRITERAM_SIZE);
- m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(taitol_state::get_tile_info<0x8000>),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(taitol_state::get_tile_info<0x9000>),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(taitol_state::get_tx_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(taitol_state::get_tile_info<0x8000>)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(taitol_state::get_tile_info<0x9000>)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(taitol_state::get_tx_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_bg_tilemap[0]->set_transparent_pen(0);
m_tx_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/taitojc.cpp b/src/mame/video/taitojc.cpp
index 25f965eb542..018709783d8 100644
--- a/src/mame/video/taitojc.cpp
+++ b/src/mame/video/taitojc.cpp
@@ -309,7 +309,7 @@ void taitojc_state::video_start()
assert(m_gfx_index != MAX_GFX_ELEMENTS);
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(taitojc_state::taitojc_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(taitojc_state::taitojc_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
m_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/tank8.cpp b/src/mame/video/tank8.cpp
index e0919d373fd..8e76fa7d0db 100644
--- a/src/mame/video/tank8.cpp
+++ b/src/mame/video/tank8.cpp
@@ -104,10 +104,9 @@ void tank8_state::video_start()
m_screen->register_screen_bitmap(m_helper2);
m_screen->register_screen_bitmap(m_helper3);
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tank8_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
-
- /* VBLANK starts on scanline #256 and ends on scanline #24 */
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tank8_state::get_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ // VBLANK starts on scanline #256 and ends on scanline #24
m_tilemap->set_scrolly(0, 2 * 24);
save_item(NAME(m_collision_index));
diff --git a/src/mame/video/tankbatt.cpp b/src/mame/video/tankbatt.cpp
index 847bba56002..067cf00a70b 100644
--- a/src/mame/video/tankbatt.cpp
+++ b/src/mame/video/tankbatt.cpp
@@ -67,22 +67,22 @@ TILE_GET_INFO_MEMBER(tankbatt_state::get_bg_tile_info)
void tankbatt_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tankbatt_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tankbatt_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
void tankbatt_state::draw_bullets(bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- for (int offs = 0;offs < m_bulletsram.bytes();offs += 2)
+ for (int offs = 0; offs < m_bulletsram.bytes(); offs += 2)
{
- int color = 0xff; /* cyan, same color as the tanks */
- int x = m_bulletsram[offs + 1];
- int y = 255 - m_bulletsram[offs] - 2;
+ int const color = 0xff; // cyan, same color as the tanks
+ int const x = m_bulletsram[offs + 1];
+ int const y = 255 - m_bulletsram[offs] - 2;
m_gfxdecode->gfx(1)->opaque(bitmap,cliprect,
- 0, /* this is just a square, generated by the hardware */
- color,
- 0,0,
- x,y);
+ 0, // this is just a square, generated by the hardware
+ color,
+ 0, 0,
+ x, y);
}
}
diff --git a/src/mame/video/tankbust.cpp b/src/mame/video/tankbust.cpp
index e179c067f6a..f79167032c9 100644
--- a/src/mame/video/tankbust.cpp
+++ b/src/mame/video/tankbust.cpp
@@ -79,10 +79,10 @@ TILE_GET_INFO_MEMBER(tankbust_state::get_txt_tile_info)
void tankbust_state::video_start()
{
/* not scrollable */
- m_txt_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tankbust_state::get_txt_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_txt_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tankbust_state::get_txt_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
/* scrollable */
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tankbust_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tankbust_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_txt_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/taotaido.cpp b/src/mame/video/taotaido.cpp
index 9f23e7eb720..2da4879bcff 100644
--- a/src/mame/video/taotaido.cpp
+++ b/src/mame/video/taotaido.cpp
@@ -92,7 +92,7 @@ uint32_t taotaido_state::tile_callback( uint32_t code )
void taotaido_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(taotaido_state::bg_tile_info),this),tilemap_mapper_delegate(FUNC(taotaido_state::tilemap_scan_rows),this),16,16,128,64);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(taotaido_state::bg_tile_info)), tilemap_mapper_delegate(*this, FUNC(taotaido_state::tilemap_scan_rows)), 16,16, 128,64);
m_spriteram_old = std::make_unique<uint16_t[]>(0x2000/2);
m_spriteram_older = std::make_unique<uint16_t[]>(0x2000/2);
diff --git a/src/mame/video/targeth.cpp b/src/mame/video/targeth.cpp
index def35b159d3..5460badc82f 100644
--- a/src/mame/video/targeth.cpp
+++ b/src/mame/video/targeth.cpp
@@ -65,8 +65,8 @@ WRITE16_MEMBER(targeth_state::vram_w)
void targeth_state::video_start()
{
- m_pant[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(targeth_state::get_tile_info<0>),this),TILEMAP_SCAN_ROWS,16,16,64,32);
- m_pant[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(targeth_state::get_tile_info<1>),this),TILEMAP_SCAN_ROWS,16,16,64,32);
+ m_pant[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(targeth_state::get_tile_info<0>)), TILEMAP_SCAN_ROWS, 16,16, 64,32);
+ m_pant[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(targeth_state::get_tile_info<1>)), TILEMAP_SCAN_ROWS, 16,16, 64,32);
m_pant[0]->set_transparent_pen(0);
}
diff --git a/src/mame/video/tatsumi.cpp b/src/mame/video/tatsumi.cpp
index 88491e65f59..511e428d716 100644
--- a/src/mame/video/tatsumi.cpp
+++ b/src/mame/video/tatsumi.cpp
@@ -687,7 +687,7 @@ void apache3_state::draw_ground(bitmap_rgb32 &dst, const rectangle &cliprect)
VIDEO_START_MEMBER(apache3_state,apache3)
{
- m_tx_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tatsumi_state::get_text_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,64);
+ m_tx_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tatsumi_state::get_text_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 64,64);
m_shadow_pen_array = make_unique_clear<uint8_t[]>(8192);
m_temp_bitmap.allocate(512, 512);
m_apache3_road_x_ram = std::make_unique<uint8_t[]>(512);
@@ -754,7 +754,7 @@ WRITE8_MEMBER(roundup5_state::gfxdata_w)
VIDEO_START_MEMBER(roundup5_state,roundup5)
{
- m_tx_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tatsumi_state::get_text_tile_info),this),TILEMAP_SCAN_ROWS,8,8,128,64);
+ m_tx_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tatsumi_state::get_text_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 128,64);
m_shadow_pen_array = make_unique_clear<uint8_t[]>(8192);
m_tx_gfxram = std::make_unique<uint8_t[]>(0x20000);
m_bg_gfxram = std::make_unique<uint8_t[]>(0x20000);
@@ -1185,10 +1185,10 @@ void cyclwarr_state::tile_expand()
VIDEO_START_MEMBER(cyclwarr_state,cyclwarr)
{
tile_expand();
- m_layer[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cyclwarr_state::get_tile_info_bigfight<0>),this),TILEMAP_SCAN_ROWS,8,8,64,512);
- m_layer[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cyclwarr_state::get_tile_info_cyclwarr_road<1>),this),TILEMAP_SCAN_ROWS,8,8,128,256);
- m_layer[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cyclwarr_state::get_tile_info_bigfight<2>),this),TILEMAP_SCAN_ROWS,8,8,64,512);
- m_layer[3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cyclwarr_state::get_tile_info_bigfight<3>),this),TILEMAP_SCAN_ROWS,8,8,64,512);
+ m_layer[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cyclwarr_state::get_tile_info_bigfight<0>)), TILEMAP_SCAN_ROWS, 8,8, 64,512);
+ m_layer[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cyclwarr_state::get_tile_info_cyclwarr_road<1>)), TILEMAP_SCAN_ROWS, 8,8, 128,256);
+ m_layer[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cyclwarr_state::get_tile_info_bigfight<2>)), TILEMAP_SCAN_ROWS, 8,8, 64,512);
+ m_layer[3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cyclwarr_state::get_tile_info_bigfight<3>)), TILEMAP_SCAN_ROWS, 8,8, 64,512);
m_shadow_pen_array = make_unique_clear<uint8_t[]>(8192);
@@ -1209,10 +1209,10 @@ VIDEO_START_MEMBER(cyclwarr_state,cyclwarr)
VIDEO_START_MEMBER(cyclwarr_state,bigfight)
{
tile_expand();
- m_layer[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cyclwarr_state::get_tile_info_bigfight<0>),this),TILEMAP_SCAN_ROWS,8,8,128,256);
- m_layer[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cyclwarr_state::get_tile_info_bigfight<1>),this),TILEMAP_SCAN_ROWS,8,8,128,256);
- m_layer[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cyclwarr_state::get_tile_info_bigfight<2>),this),TILEMAP_SCAN_ROWS,8,8,128,256);
- m_layer[3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cyclwarr_state::get_tile_info_bigfight<3>),this),TILEMAP_SCAN_ROWS,8,8,128,256);
+ m_layer[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cyclwarr_state::get_tile_info_bigfight<0>)), TILEMAP_SCAN_ROWS, 8,8, 128,256);
+ m_layer[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cyclwarr_state::get_tile_info_bigfight<1>)), TILEMAP_SCAN_ROWS, 8,8, 128,256);
+ m_layer[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cyclwarr_state::get_tile_info_bigfight<2>)), TILEMAP_SCAN_ROWS, 8,8, 128,256);
+ m_layer[3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cyclwarr_state::get_tile_info_bigfight<3>)), TILEMAP_SCAN_ROWS, 8,8, 128,256);
m_shadow_pen_array = make_unique_clear<uint8_t[]>(8192);
diff --git a/src/mame/video/tbowl.cpp b/src/mame/video/tbowl.cpp
index 640d5d41616..d060459868c 100644
--- a/src/mame/video/tbowl.cpp
+++ b/src/mame/video/tbowl.cpp
@@ -111,9 +111,9 @@ WRITE8_MEMBER(tbowl_state::bg2yscroll_hi)
void tbowl_state::video_start()
{
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tbowl_state::get_tx_tile_info),this),TILEMAP_SCAN_ROWS, 8, 8,64,32);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tbowl_state::get_bg_tile_info),this),TILEMAP_SCAN_ROWS, 16, 16,128,32);
- m_bg2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tbowl_state::get_bg2_tile_info),this),TILEMAP_SCAN_ROWS, 16, 16,128,32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tbowl_state::get_tx_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64,32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tbowl_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16,16, 128,32);
+ m_bg2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tbowl_state::get_bg2_tile_info)), TILEMAP_SCAN_ROWS, 16,16, 128,32);
m_tx_tilemap->set_transparent_pen(0);
m_bg_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/tc0080vco.cpp b/src/mame/video/tc0080vco.cpp
index fdba11c01cd..645ab6f36a9 100644
--- a/src/mame/video/tc0080vco.cpp
+++ b/src/mame/video/tc0080vco.cpp
@@ -143,8 +143,8 @@ void tc0080vco_device::device_start()
16*8
};
- m_tilemap[0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(tc0080vco_device::get_bg0_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
- m_tilemap[1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(tc0080vco_device::get_bg1_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
+ m_tilemap[0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(tc0080vco_device::get_bg0_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
+ m_tilemap[1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(tc0080vco_device::get_bg1_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
m_tilemap[0]->set_transparent_pen(0);
m_tilemap[1]->set_transparent_pen(0);
@@ -158,7 +158,7 @@ void tc0080vco_device::device_start()
m_tilemap[0]->set_scroll_rows(512);
/* Perform extra initialisations for text layer */
- m_tilemap[2] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(tc0080vco_device::get_tx_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap[2] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(tc0080vco_device::get_tx_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
m_tilemap[2]->set_scrolldx(0, 0);
m_tilemap[2]->set_scrolldy(48, -448);
diff --git a/src/mame/video/tc0100scn.cpp b/src/mame/video/tc0100scn.cpp
index 0238be3d35e..084085b6365 100644
--- a/src/mame/video/tc0100scn.cpp
+++ b/src/mame/video/tc0100scn.cpp
@@ -156,6 +156,7 @@ tc0100scn_base_device::tc0100scn_base_device(const machine_config &mconfig, devi
: device_t(mconfig, type, tag, owner, clock)
, device_gfx_interface(mconfig, *this)
, m_gfxlayout(TC0100SCN_LAYOUT_DEFAULT)
+ , m_tc0100scn_cb(*this)
, m_ram(nullptr)
, m_bgscroll_ram(nullptr)
, m_fgscroll_ram(nullptr)
@@ -227,7 +228,7 @@ GFXDECODE_END
void tc0100scn_base_device::device_start()
{
// bind callbacks
- m_tc0100scn_cb.bind_relative_to(*owner());
+ m_tc0100scn_cb.resolve();
static const gfx_layout charlayout =
{
@@ -248,14 +249,14 @@ void tc0100scn_base_device::device_start()
we're safe as it uses single width tilemaps. */
/* Single width versions */
- m_tilemap[0][0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(&tc0100scn_base_device::get_bg_tile_info<0x00000, 0>, "bg0_std", this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_tilemap[1][0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(&tc0100scn_base_device::get_bg_tile_info<0x04000, 1>, "bg1_std", this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_tilemap[2][0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(&tc0100scn_base_device::get_tx_tile_info<0x02000, 1>, "txt_std", this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap[0][0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, NAME((&tc0100scn_base_device::get_bg_tile_info<0x00000, 0>))), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap[1][0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, NAME((&tc0100scn_base_device::get_bg_tile_info<0x04000, 1>))), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap[2][0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, NAME((&tc0100scn_base_device::get_tx_tile_info<0x02000, 1>))), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
/* Double width versions */
- m_tilemap[0][1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(&tc0100scn_base_device::get_bg_tile_info<0x00000, 0>, "bg0_wide", this), TILEMAP_SCAN_ROWS, 8, 8, 128, 64);
- m_tilemap[1][1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(&tc0100scn_base_device::get_bg_tile_info<0x04000, 1>, "bg1_wide", this), TILEMAP_SCAN_ROWS, 8, 8, 128, 64);
- m_tilemap[2][1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(&tc0100scn_base_device::get_tx_tile_info<0x09000, 2>, "txt_wide", this), TILEMAP_SCAN_ROWS, 8, 8, 128, 32);
+ m_tilemap[0][1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, NAME((&tc0100scn_base_device::get_bg_tile_info<0x00000, 0>))), TILEMAP_SCAN_ROWS, 8, 8, 128, 64);
+ m_tilemap[1][1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, NAME((&tc0100scn_base_device::get_bg_tile_info<0x04000, 1>))), TILEMAP_SCAN_ROWS, 8, 8, 128, 64);
+ m_tilemap[2][1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, NAME((&tc0100scn_base_device::get_tx_tile_info<0x09000, 2>))), TILEMAP_SCAN_ROWS, 8, 8, 128, 32);
m_tilemap[0][0]->set_transparent_pen(0);
m_tilemap[1][0]->set_transparent_pen(0);
diff --git a/src/mame/video/tc0100scn.h b/src/mame/video/tc0100scn.h
index ad2ba68644a..8b99eb7b9a2 100644
--- a/src/mame/video/tc0100scn.h
+++ b/src/mame/video/tc0100scn.h
@@ -17,16 +17,17 @@ enum {
TC0620SCC_LAYOUT_DEFAULT = 0 // default TC0620SCC layout is 6bpp
};
-typedef device_delegate<void (u32 *code, u16 *color)> tc0100scn_cb_delegate;
#define TC0100SCN_CB_MEMBER(_name) void _name(u32 *code, u16 *color)
class tc0100scn_base_device : public device_t, public device_gfx_interface
{
public:
+ typedef device_delegate<void (u32 *code, u16 *color)> tc0100scn_cb_delegate;
+
// configuration
void set_gfxlayout(int layout) { m_gfxlayout = layout; }
void set_color_base(u16 base) { m_col_base = base; }
- template <typename... T> void set_tile_callback(T &&... args) { m_tc0100scn_cb = tc0100scn_cb_delegate(std::forward<T>(args)...); }
+ template <typename... T> void set_tile_callback(T &&... args) { m_tc0100scn_cb.set(std::forward<T>(args)...); }
void set_multiscr_xoffs(int xoffs) { m_multiscrn_xoffs = xoffs; }
void set_multiscr_hack(int hack) { m_multiscrn_hack = hack; }
void set_offsets(int x_offset, int y_offset)
diff --git a/src/mame/video/tc0180vcu.cpp b/src/mame/video/tc0180vcu.cpp
index 7c0f5827070..d8bc1876061 100644
--- a/src/mame/video/tc0180vcu.cpp
+++ b/src/mame/video/tc0180vcu.cpp
@@ -90,9 +90,9 @@ void tc0180vcu_device::device_resolve_objects()
void tc0180vcu_device::device_start()
{
- m_tilemap[0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(tc0180vcu_device::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
- m_tilemap[1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(tc0180vcu_device::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
- m_tilemap[2] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(tc0180vcu_device::get_tx_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tilemap[0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(tc0180vcu_device::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
+ m_tilemap[1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(tc0180vcu_device::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
+ m_tilemap[2] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(tc0180vcu_device::get_tx_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_tilemap[1]->set_transparent_pen(0);
m_tilemap[2]->set_transparent_pen(0);
diff --git a/src/mame/video/tc0280grd.cpp b/src/mame/video/tc0280grd.cpp
index 90c154a389b..8837a1e9440 100644
--- a/src/mame/video/tc0280grd.cpp
+++ b/src/mame/video/tc0280grd.cpp
@@ -59,7 +59,7 @@ void tc0280grd_device::device_start()
decode_gfx(gfxinfo);
gfx(0)->set_colorbase(m_colorbase);
- m_tilemap = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(tc0280grd_device::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(tc0280grd_device::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
m_tilemap->set_transparent_pen(0);
m_ram = make_unique_clear<u16[]>(TC0280GRD_RAM_SIZE / 2);
diff --git a/src/mame/video/tc0480scp.cpp b/src/mame/video/tc0480scp.cpp
index 47f4b5c1b8a..8a52fd5a4e5 100644
--- a/src/mame/video/tc0480scp.cpp
+++ b/src/mame/video/tc0480scp.cpp
@@ -246,18 +246,18 @@ void tc0480scp_device::device_start()
};
/* Single width versions */
- m_tilemap[0][0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(tc0480scp_device::get_bg_tile_info<0x0000>),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- m_tilemap[1][0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(tc0480scp_device::get_bg_tile_info<0x0800>),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- m_tilemap[2][0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(tc0480scp_device::get_bg_tile_info<0x1000>),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- m_tilemap[3][0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(tc0480scp_device::get_bg_tile_info<0x1800>),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
- m_tilemap[4][0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(tc0480scp_device::get_tx_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap[0][0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(tc0480scp_device::get_bg_tile_info<0x0000>)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_tilemap[1][0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(tc0480scp_device::get_bg_tile_info<0x0800>)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_tilemap[2][0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(tc0480scp_device::get_bg_tile_info<0x1000>)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_tilemap[3][0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(tc0480scp_device::get_bg_tile_info<0x1800>)), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
+ m_tilemap[4][0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(tc0480scp_device::get_tx_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
/* Double width versions */
- m_tilemap[0][1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(tc0480scp_device::get_bg_tile_info<0x0000>),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
- m_tilemap[1][1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(tc0480scp_device::get_bg_tile_info<0x1000>),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
- m_tilemap[2][1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(tc0480scp_device::get_bg_tile_info<0x2000>),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
- m_tilemap[3][1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(tc0480scp_device::get_bg_tile_info<0x3000>),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
- m_tilemap[4][1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(tc0480scp_device::get_tx_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap[0][1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(tc0480scp_device::get_bg_tile_info<0x0000>)), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
+ m_tilemap[1][1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(tc0480scp_device::get_bg_tile_info<0x1000>)), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
+ m_tilemap[2][1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(tc0480scp_device::get_bg_tile_info<0x2000>)), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
+ m_tilemap[3][1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(tc0480scp_device::get_bg_tile_info<0x3000>)), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
+ m_tilemap[4][1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(tc0480scp_device::get_tx_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
for (int i = 0; i < 2; i++)
{
diff --git a/src/mame/video/tceptor.cpp b/src/mame/video/tceptor.cpp
index 7b14db0b7b7..556401437c1 100644
--- a/src/mame/video/tceptor.cpp
+++ b/src/mame/video/tceptor.cpp
@@ -377,14 +377,14 @@ void tceptor_state::video_start()
m_c45_road->set_transparent_color(m_palette->pen_indirect(0xfff));
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tceptor_state::get_tx_tile_info),this), TILEMAP_SCAN_COLS, 8, 8, 34, 28);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tceptor_state::get_tx_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 34, 28);
m_tx_tilemap->set_scrollx(0, -2*8);
m_tx_tilemap->set_scrolly(0, 0);
m_tx_tilemap->configure_groups(*m_gfxdecode->gfx(0), 7);
- m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tceptor_state::get_bg1_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tceptor_state::get_bg2_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tceptor_state::get_bg1_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tceptor_state::get_bg2_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
save_pointer(NAME(m_sprite_ram_buffered), 0x200 / 2);
save_item(NAME(m_bg_scroll_x[0]));
diff --git a/src/mame/video/tecmo.cpp b/src/mame/video/tecmo.cpp
index 484bebc3506..16af911473c 100644
--- a/src/mame/video/tecmo.cpp
+++ b/src/mame/video/tecmo.cpp
@@ -80,15 +80,15 @@ void tecmo_state::video_start()
{
if (m_video_type == 2) /* gemini */
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tecmo_state::gemini_get_bg_tile_info),this),TILEMAP_SCAN_ROWS,16,16,32,16);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tecmo_state::gemini_get_fg_tile_info),this),TILEMAP_SCAN_ROWS,16,16,32,16);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tecmo_state::gemini_get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16,16, 32,16);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tecmo_state::gemini_get_fg_tile_info)), TILEMAP_SCAN_ROWS, 16,16, 32,16);
}
else /* rygar, silkworm */
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tecmo_state::get_bg_tile_info),this),TILEMAP_SCAN_ROWS,16,16,32,16);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tecmo_state::get_fg_tile_info),this),TILEMAP_SCAN_ROWS,16,16,32,16);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tecmo_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16,16, 32,16);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tecmo_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 16,16, 32,16);
}
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tecmo_state::get_tx_tile_info),this),TILEMAP_SCAN_ROWS, 8, 8,32,32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tecmo_state::get_tx_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32,32);
m_bg_tilemap->set_transparent_pen(0);
m_fg_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/tecmo16.cpp b/src/mame/video/tecmo16.cpp
index 3b386509751..0dbae63431a 100644
--- a/src/mame/video/tecmo16.cpp
+++ b/src/mame/video/tecmo16.cpp
@@ -74,9 +74,9 @@ void tecmo16_state::video_start()
/* set up sprites */
m_screen->register_screen_bitmap(m_sprite_bitmap);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tecmo16_state::fg_get_tile_info),this),TILEMAP_SCAN_ROWS,16,16,32,32);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tecmo16_state::bg_get_tile_info),this),TILEMAP_SCAN_ROWS,16,16,32,32);
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tecmo16_state::tx_get_tile_info),this),TILEMAP_SCAN_ROWS, 8, 8,64,32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tecmo16_state::fg_get_tile_info)), TILEMAP_SCAN_ROWS, 16,16, 32,32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tecmo16_state::bg_get_tile_info)), TILEMAP_SCAN_ROWS, 16,16, 32,32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tecmo16_state::tx_get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64,32);
m_fg_tilemap->set_transparent_pen(0);
m_bg_tilemap->set_transparent_pen(0);
@@ -99,9 +99,9 @@ VIDEO_START_MEMBER(tecmo16_state,ginkun)
/* set up sprites */
m_screen->register_screen_bitmap(m_sprite_bitmap);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tecmo16_state::fg_get_tile_info),this),TILEMAP_SCAN_ROWS,16,16,64,32);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tecmo16_state::bg_get_tile_info),this),TILEMAP_SCAN_ROWS,16,16,64,32);
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tecmo16_state::tx_get_tile_info),this),TILEMAP_SCAN_ROWS, 8, 8,64,32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tecmo16_state::fg_get_tile_info)), TILEMAP_SCAN_ROWS, 16,16, 64,32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tecmo16_state::bg_get_tile_info)), TILEMAP_SCAN_ROWS, 16,16, 64,32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tecmo16_state::tx_get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64,32);
m_fg_tilemap->set_transparent_pen(0);
m_bg_tilemap->set_transparent_pen(0);
@@ -122,9 +122,9 @@ VIDEO_START_MEMBER(tecmo16_state,riot)
/* set up sprites */
m_screen->register_screen_bitmap(m_sprite_bitmap);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tecmo16_state::fg_get_tile_info),this),TILEMAP_SCAN_ROWS,16,16,64,32);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tecmo16_state::bg_get_tile_info),this),TILEMAP_SCAN_ROWS,16,16,64,32);
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tecmo16_state::tx_get_tile_info),this),TILEMAP_SCAN_ROWS, 8, 8,64,32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tecmo16_state::fg_get_tile_info)), TILEMAP_SCAN_ROWS, 16,16, 64,32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tecmo16_state::bg_get_tile_info)), TILEMAP_SCAN_ROWS, 16,16, 64,32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tecmo16_state::tx_get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64,32);
m_fg_tilemap->set_transparent_pen(0);
m_bg_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/tecmosys.cpp b/src/mame/video/tecmosys.cpp
index 6b9e646f08d..55592297fd5 100644
--- a/src/mame/video/tecmosys.cpp
+++ b/src/mame/video/tecmosys.cpp
@@ -284,16 +284,16 @@ void tecmosys_state::video_start()
m_tmp_tilemap_composebitmap.fill(0x0000);
m_tmp_tilemap_renderbitmap.fill(0x0000);
- m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tecmosys_state::get_tile_info<0>),this),TILEMAP_SCAN_ROWS,8,8,32*2,32*2);
+ m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tecmosys_state::get_tile_info<0>)), TILEMAP_SCAN_ROWS, 8,8, 32*2,32*2);
m_tilemap[0]->set_transparent_pen(0);
- m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tecmosys_state::get_tile_info<1>),this),TILEMAP_SCAN_ROWS,16,16,32,32);
+ m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tecmosys_state::get_tile_info<1>)), TILEMAP_SCAN_ROWS, 16,16, 32,32);
m_tilemap[1]->set_transparent_pen(0);
- m_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tecmosys_state::get_tile_info<2>),this),TILEMAP_SCAN_ROWS,16,16,32,32);
+ m_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tecmosys_state::get_tile_info<2>)), TILEMAP_SCAN_ROWS, 16,16, 32,32);
m_tilemap[2]->set_transparent_pen(0);
- m_tilemap[3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tecmosys_state::get_tile_info<3>),this),TILEMAP_SCAN_ROWS,16,16,32,32);
+ m_tilemap[3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tecmosys_state::get_tile_info<3>)), TILEMAP_SCAN_ROWS, 16,16, 32,32);
m_tilemap[3]->set_transparent_pen(0);
save_item(NAME(m_spritelist));
diff --git a/src/mame/video/tehkanwc.cpp b/src/mame/video/tehkanwc.cpp
index f80d2267828..f8d3341c66d 100644
--- a/src/mame/video/tehkanwc.cpp
+++ b/src/mame/video/tehkanwc.cpp
@@ -90,11 +90,11 @@ TILE_GET_INFO_MEMBER(tehkanwc_state::get_fg_tile_info)
void tehkanwc_state::video_start()
{
m_bg_tilemap = &machine().tilemap().create(
- *m_gfxdecode, tilemap_get_info_delegate(FUNC(tehkanwc_state::get_bg_tile_info),this),
+ *m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tehkanwc_state::get_bg_tile_info)),
TILEMAP_SCAN_ROWS, 16, 8, 32, 32);
m_fg_tilemap = &machine().tilemap().create(
- *m_gfxdecode, tilemap_get_info_delegate(FUNC(tehkanwc_state::get_fg_tile_info),this),
+ *m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tehkanwc_state::get_fg_tile_info)),
TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/terracre.cpp b/src/mame/video/terracre.cpp
index 3da7cad5313..008e748ac4f 100644
--- a/src/mame/video/terracre.cpp
+++ b/src/mame/video/terracre.cpp
@@ -169,8 +169,8 @@ WRITE16_MEMBER(terracre_state::amazon_scrollx_w)
void terracre_state::video_start()
{
- m_background = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(terracre_state::get_bg_tile_info),this),TILEMAP_SCAN_COLS,16,16,64,32);
- m_foreground = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(terracre_state::get_fg_tile_info),this),TILEMAP_SCAN_COLS,8,8,64,32);
+ m_background = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(terracre_state::get_bg_tile_info)), TILEMAP_SCAN_COLS, 16,16, 64,32);
+ m_foreground = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(terracre_state::get_fg_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 64,32);
m_foreground->set_transparent_pen(0xf);
/* register for saving */
diff --git a/src/mame/video/tetrisp2.cpp b/src/mame/video/tetrisp2.cpp
index 881099a042b..4ed9b005e0a 100644
--- a/src/mame/video/tetrisp2.cpp
+++ b/src/mame/video/tetrisp2.cpp
@@ -221,9 +221,9 @@ VIDEO_START_MEMBER(tetrisp2_state,tetrisp2)
{
m_flipscreen_old = -1;
- m_tilemap_bg = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tetrisp2_state::get_tile_info_bg),this),TILEMAP_SCAN_ROWS,16,16,NX_0,NY_0);
- m_tilemap_fg = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tetrisp2_state::get_tile_info_fg),this),TILEMAP_SCAN_ROWS,8,8,NX_1,NY_1);
- m_tilemap_rot = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tetrisp2_state::get_tile_info_rot),this),TILEMAP_SCAN_ROWS,16,16,NX_0*2,NY_0*2);
+ m_tilemap_bg = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tetrisp2_state::get_tile_info_bg)), TILEMAP_SCAN_ROWS, 16,16, NX_0,NY_0);
+ m_tilemap_fg = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tetrisp2_state::get_tile_info_fg)), TILEMAP_SCAN_ROWS, 8,8, NX_1,NY_1);
+ m_tilemap_rot = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tetrisp2_state::get_tile_info_rot)), TILEMAP_SCAN_ROWS, 16,16, NX_0*2,NY_0*2);
m_tilemap_bg->set_transparent_pen(0);
m_tilemap_fg->set_transparent_pen(0);
m_tilemap_rot->set_transparent_pen(0);
@@ -245,9 +245,9 @@ VIDEO_START_MEMBER(tetrisp2_state,rockntread)
{
m_flipscreen_old = -1;
- m_tilemap_bg = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tetrisp2_state::get_tile_info_bg),this),TILEMAP_SCAN_ROWS,16, 16, 256, 16); // rockn ms(main),1,2,3,4
- m_tilemap_fg = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tetrisp2_state::get_tile_info_fg),this),TILEMAP_SCAN_ROWS,8, 8, 64, 64);
- m_tilemap_rot = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tetrisp2_state::get_tile_info_rot),this),TILEMAP_SCAN_ROWS,16, 16, 128, 128);
+ m_tilemap_bg = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tetrisp2_state::get_tile_info_bg)), TILEMAP_SCAN_ROWS, 16,16, 256,16); // rockn ms(main),1,2,3,4
+ m_tilemap_fg = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tetrisp2_state::get_tile_info_fg)), TILEMAP_SCAN_ROWS, 8,8, 64,64);
+ m_tilemap_rot = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tetrisp2_state::get_tile_info_rot)), TILEMAP_SCAN_ROWS, 16,16, 128,128);
m_tilemap_bg->set_transparent_pen(0);
m_tilemap_fg->set_transparent_pen(0);
@@ -265,9 +265,9 @@ VIDEO_START_MEMBER(tetrisp2_state,rocknms)
{
VIDEO_START_CALL_MEMBER( rockntread );
- m_tilemap_sub_bg = &machine().tilemap().create(*m_sub_gfxdecode, tilemap_get_info_delegate(FUNC(tetrisp2_state::get_tile_info_rocknms_sub_bg),this),TILEMAP_SCAN_ROWS,16, 16, 32, 256); // rockn ms(sub)
- m_tilemap_sub_fg = &machine().tilemap().create(*m_sub_gfxdecode, tilemap_get_info_delegate(FUNC(tetrisp2_state::get_tile_info_rocknms_sub_fg),this),TILEMAP_SCAN_ROWS,8, 8, 64, 64);
- m_tilemap_sub_rot = &machine().tilemap().create(*m_sub_gfxdecode, tilemap_get_info_delegate(FUNC(tetrisp2_state::get_tile_info_rocknms_sub_rot),this),TILEMAP_SCAN_ROWS,16, 16, 128, 128);
+ m_tilemap_sub_bg = &machine().tilemap().create(*m_sub_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tetrisp2_state::get_tile_info_rocknms_sub_bg)), TILEMAP_SCAN_ROWS, 16,16, 32,256); // rockn ms(sub)
+ m_tilemap_sub_fg = &machine().tilemap().create(*m_sub_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tetrisp2_state::get_tile_info_rocknms_sub_fg)), TILEMAP_SCAN_ROWS, 8,8, 64,64);
+ m_tilemap_sub_rot = &machine().tilemap().create(*m_sub_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tetrisp2_state::get_tile_info_rocknms_sub_rot)), TILEMAP_SCAN_ROWS, 16,16, 128,128);
m_tilemap_sub_bg->set_transparent_pen(0);
m_tilemap_sub_fg->set_transparent_pen(0);
@@ -726,9 +726,9 @@ VIDEO_START_MEMBER(stepstag_state,stepstag)
{
m_flipscreen_old = -1;
- m_tilemap_bg = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tetrisp2_state::get_tile_info_bg),this),TILEMAP_SCAN_ROWS,16,16,NX_0,NY_0);
- m_tilemap_fg = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tetrisp2_state::stepstag_get_tile_info_fg),this),TILEMAP_SCAN_ROWS,8,8,NX_1,NY_1);
- m_tilemap_rot = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tetrisp2_state::get_tile_info_rot),this),TILEMAP_SCAN_ROWS,16,16,NX_0*2,NY_0*2);
+ m_tilemap_bg = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tetrisp2_state::get_tile_info_bg)), TILEMAP_SCAN_ROWS, 16,16, NX_0,NY_0);
+ m_tilemap_fg = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tetrisp2_state::stepstag_get_tile_info_fg)), TILEMAP_SCAN_ROWS, 8,8, NX_1,NY_1);
+ m_tilemap_rot = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tetrisp2_state::get_tile_info_rot)), TILEMAP_SCAN_ROWS, 16,16, NX_0*2,NY_0*2);
m_tilemap_bg->set_transparent_pen(0);
m_tilemap_fg->set_transparent_pen(0);
m_tilemap_rot->set_transparent_pen(0);
diff --git a/src/mame/video/thedeep.cpp b/src/mame/video/thedeep.cpp
index 8ca4fd02419..60cb5005c29 100644
--- a/src/mame/video/thedeep.cpp
+++ b/src/mame/video/thedeep.cpp
@@ -78,7 +78,7 @@ void thedeep_state::thedeep_palette(palette_device &palette) const
void thedeep_state::video_start()
{
- m_text_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(thedeep_state::get_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 0x20, 0x20);
+ m_text_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(thedeep_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 0x20, 0x20);
m_text_tilemap->set_transparent_pen(0);
}
diff --git a/src/mame/video/thepit.cpp b/src/mame/video/thepit.cpp
index 58d401ca2c4..f139859f2d5 100644
--- a/src/mame/video/thepit.cpp
+++ b/src/mame/video/thepit.cpp
@@ -125,9 +125,9 @@ TILE_GET_INFO_MEMBER(thepit_state::get_tile_info)
void thepit_state::video_start()
{
- m_solid_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(thepit_state::solid_get_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32);
+ m_solid_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(thepit_state::solid_get_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 32,32);
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(thepit_state::get_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32);
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(thepit_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 32,32);
m_tilemap->set_transparent_pen(0);
m_solid_tilemap->set_scroll_cols(32);
diff --git a/src/mame/video/thoop2.cpp b/src/mame/video/thoop2.cpp
index eab176dd317..6b7f2887d9e 100644
--- a/src/mame/video/thoop2.cpp
+++ b/src/mame/video/thoop2.cpp
@@ -70,8 +70,8 @@ WRITE16_MEMBER(thoop2_state::vram_w)
void thoop2_state::video_start()
{
- m_pant[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(thoop2_state::get_tile_info<0>),this),TILEMAP_SCAN_ROWS,16,16,32,32);
- m_pant[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(thoop2_state::get_tile_info<1>),this),TILEMAP_SCAN_ROWS,16,16,32,32);
+ m_pant[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(thoop2_state::get_tile_info<0>)), TILEMAP_SCAN_ROWS, 16,16, 32,32);
+ m_pant[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(thoop2_state::get_tile_info<1>)), TILEMAP_SCAN_ROWS, 16,16, 32,32);
m_pant[0]->set_transmask(0,0xff01,0x00ff); /* pens 1-7 opaque, pens 0, 8-15 transparent */
m_pant[1]->set_transmask(0,0xff01,0x00ff); /* pens 1-7 opaque, pens 0, 8-15 transparent */
diff --git a/src/mame/video/tiamc1.cpp b/src/mame/video/tiamc1.cpp
index 29530f325c6..0fba4cf00fe 100644
--- a/src/mame/video/tiamc1.cpp
+++ b/src/mame/video/tiamc1.cpp
@@ -166,10 +166,10 @@ void tiamc1_state::video_start()
save_pointer(NAME(m_videoram), 0x3050);
- m_bg_tilemap1 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tiamc1_state::get_bg1_tile_info),this), TILEMAP_SCAN_ROWS,
+ m_bg_tilemap1 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tiamc1_state::get_bg1_tile_info)), TILEMAP_SCAN_ROWS,
8, 8, 32, 32);
- m_bg_tilemap2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tiamc1_state::get_bg2_tile_info),this), TILEMAP_SCAN_ROWS,
+ m_bg_tilemap2 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tiamc1_state::get_bg2_tile_info)), TILEMAP_SCAN_ROWS,
8, 8, 32, 32);
m_bg_tilemap1->set_scrolldx(4, 4);
m_bg_tilemap2->set_scrolldx(4, 4);
@@ -201,7 +201,7 @@ VIDEO_START_MEMBER(tiamc1_state, kot)
save_pointer(NAME(m_videoram), 0x450);
- m_bg_tilemap1 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tiamc1_state::get_bg1_tile_info), this), TILEMAP_SCAN_ROWS,
+ m_bg_tilemap1 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tiamc1_state::get_bg1_tile_info)), TILEMAP_SCAN_ROWS,
8, 8, 32, 32);
m_bg_tilemap1->set_scrolldx(4, 4);
diff --git a/src/mame/video/tigeroad.cpp b/src/mame/video/tigeroad.cpp
index 2c2be4f24dd..1f4010b1c7e 100644
--- a/src/mame/video/tigeroad.cpp
+++ b/src/mame/video/tigeroad.cpp
@@ -105,11 +105,11 @@ TILEMAP_MAPPER_MEMBER(tigeroad_state::tigeroad_tilemap_scan)
void tigeroad_state::video_start()
{
m_bg_tilemap = &machine().tilemap().create(
- *m_gfxdecode, tilemap_get_info_delegate(FUNC(tigeroad_state::get_bg_tile_info),this), tilemap_mapper_delegate(FUNC(tigeroad_state::tigeroad_tilemap_scan),this),
+ *m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tigeroad_state::get_bg_tile_info)), tilemap_mapper_delegate(*this, FUNC(tigeroad_state::tigeroad_tilemap_scan)),
32, 32, 128, 128);
m_fg_tilemap = &machine().tilemap().create(
- *m_gfxdecode, tilemap_get_info_delegate(FUNC(tigeroad_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS,
+ *m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tigeroad_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS,
8, 8, 32, 32);
m_bg_tilemap->set_transmask(0, 0xffff, 0);
diff --git a/src/mame/video/timelimt.cpp b/src/mame/video/timelimt.cpp
index 3dc75daf30b..f0358d54259 100644
--- a/src/mame/video/timelimt.cpp
+++ b/src/mame/video/timelimt.cpp
@@ -79,10 +79,10 @@ TILE_GET_INFO_MEMBER(timelimt_state::get_fg_tile_info)
void timelimt_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(timelimt_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS,
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(timelimt_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS,
8, 8, 64, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(timelimt_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS,
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(timelimt_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS,
8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/timeplt.cpp b/src/mame/video/timeplt.cpp
index 5c4e3f1da64..7e0224e7214 100644
--- a/src/mame/video/timeplt.cpp
+++ b/src/mame/video/timeplt.cpp
@@ -123,7 +123,7 @@ TILE_GET_INFO_MEMBER(timeplt_state::get_chkun_tile_info)
void timeplt_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(timeplt_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(timeplt_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_video_enable = 0;
save_item(NAME(m_video_enable));
@@ -137,7 +137,7 @@ VIDEO_START_MEMBER(timeplt_state,psurge)
VIDEO_START_MEMBER(timeplt_state,chkun)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(timeplt_state::get_chkun_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(timeplt_state::get_chkun_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_video_enable = 0;
save_item(NAME(m_video_enable));
diff --git a/src/mame/video/tmap038.cpp b/src/mame/video/tmap038.cpp
index ebd4b552b25..95759c2be75 100644
--- a/src/mame/video/tmap038.cpp
+++ b/src/mame/video/tmap038.cpp
@@ -137,6 +137,7 @@ tilemap038_device::tilemap038_device(const machine_config &mconfig, const char *
, m_tiledim(false)
, m_gfxdecode(*this, finder_base::DUMMY_TAG)
, m_gfxno(0)
+ , m_038_cb(*this)
{
}
@@ -178,7 +179,7 @@ TILE_GET_INFO_MEMBER(tilemap038_device::get_tile_info)
void tilemap038_device::device_start()
{
- m_038_cb.bind_relative_to(*owner());
+ m_038_cb.resolve();
m_vregs = make_unique_clear<u16[]>(0x6/2);
if (m_vram_16x16 == nullptr && m_vram_8x8 == nullptr)
@@ -191,7 +192,7 @@ void tilemap038_device::device_start()
m_tmap = &machine().tilemap().create(
*m_gfxdecode,
- tilemap_get_info_delegate(FUNC(tilemap038_device::get_tile_info),this),
+ tilemap_get_info_delegate(*this, FUNC(tilemap038_device::get_tile_info)),
TILEMAP_SCAN_ROWS,
8,8, 512 / 8,512 / 8);
diff --git a/src/mame/video/tmap038.h b/src/mame/video/tmap038.h
index e479933861b..24506f553dc 100644
--- a/src/mame/video/tmap038.h
+++ b/src/mame/video/tmap038.h
@@ -10,6 +10,8 @@
class tilemap038_device : public device_t
{
public:
+ typedef device_delegate<void (bool tiledim, u32 &color, u32 &pri, u32 &code)> tmap038_cb_delegate;
+
tilemap038_device(const machine_config &mconfig, const char *tag, device_t *owner)
: tilemap038_device(mconfig, tag, owner, (u32)0)
{
@@ -19,8 +21,7 @@ public:
// configurations
template <typename T> void set_gfxdecode_tag(T &&tag) { m_gfxdecode.set_tag(std::forward<T>(tag)); }
- typedef device_delegate<void (bool tiledim, u32 &color, u32 &pri, u32 &code)> tmap038_cb_delegate;
- void set_tile_callback(tmap038_cb_delegate cb) { m_038_cb = cb; }
+ template <typename... T> void set_tile_callback(T &&... args) { m_038_cb.set(std::forward<T>(args)...); }
void set_gfx(u16 no) { m_gfxno = no; }
// call to do the rendering etc.
diff --git a/src/mame/video/tmnt.cpp b/src/mame/video/tmnt.cpp
index 24995b3b770..c4025eccd66 100644
--- a/src/mame/video/tmnt.cpp
+++ b/src/mame/video/tmnt.cpp
@@ -254,7 +254,7 @@ VIDEO_START_MEMBER(tmnt_state,lgtnfght)/* also tmnt2, ssriders */
VIDEO_START_MEMBER(glfgreat_state,glfgreat)
{
- m_roz_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(glfgreat_state::glfgreat_get_roz_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 512, 512);
+ m_roz_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(glfgreat_state::glfgreat_get_roz_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 512, 512);
m_roz_tilemap->set_transparent_pen(0);
m_controller_select = 0;
@@ -269,7 +269,7 @@ VIDEO_START_MEMBER(glfgreat_state,glfgreat)
VIDEO_START_MEMBER(prmrsocr_state,prmrsocr)
{
- m_roz_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(prmrsocr_state::prmrsocr_get_roz_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 512, 256);
+ m_roz_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(prmrsocr_state::prmrsocr_get_roz_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 512, 256);
m_roz_tilemap->set_transparent_pen(0);
m_sprite_bank = 0;
diff --git a/src/mame/video/toaplan1.cpp b/src/mame/video/toaplan1.cpp
index 41a9b6ef407..c8923114a38 100644
--- a/src/mame/video/toaplan1.cpp
+++ b/src/mame/video/toaplan1.cpp
@@ -162,10 +162,10 @@ TILE_GET_INFO_MEMBER(toaplan1_state::get_tile_info)
void toaplan1_state::create_tilemaps()
{
- m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(toaplan1_state::get_tile_info<0>),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(toaplan1_state::get_tile_info<1>),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(toaplan1_state::get_tile_info<2>),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
- m_tilemap[3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(toaplan1_state::get_tile_info<3>),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(toaplan1_state::get_tile_info<0>)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(toaplan1_state::get_tile_info<1>)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(toaplan1_state::get_tile_info<2>)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_tilemap[3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(toaplan1_state::get_tile_info<3>)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
m_tilemap[0]->set_transparent_pen(0);
m_tilemap[1]->set_transparent_pen(0);
diff --git a/src/mame/video/toaplan2.cpp b/src/mame/video/toaplan2.cpp
index 091dca2041e..192147f1f88 100644
--- a/src/mame/video/toaplan2.cpp
+++ b/src/mame/video/toaplan2.cpp
@@ -53,7 +53,7 @@ TILE_GET_INFO_MEMBER(toaplan2_state::get_text_tile_info)
void toaplan2_state::create_tx_tilemap(int dx, int dx_flipped)
{
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(toaplan2_state::get_text_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(toaplan2_state::get_text_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_tx_tilemap->set_scroll_rows(8*32); /* line scrolling */
m_tx_tilemap->set_scroll_cols(1);
diff --git a/src/mame/video/toki.cpp b/src/mame/video/toki.cpp
index ffd316d9de2..fd8a42196f1 100644
--- a/src/mame/video/toki.cpp
+++ b/src/mame/video/toki.cpp
@@ -83,9 +83,9 @@ TILE_GET_INFO_MEMBER(toki_state::get_fore_tile_info)
void toki_state::video_start()
{
- m_text_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(toki_state::get_text_tile_info),this),TILEMAP_SCAN_ROWS, 8,8,32,32);
- m_background_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(toki_state::get_back_tile_info),this),TILEMAP_SCAN_ROWS,16,16,32,32);
- m_foreground_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(toki_state::get_fore_tile_info),this),TILEMAP_SCAN_ROWS,16,16,32,32);
+ m_text_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(toki_state::get_text_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 32,32);
+ m_background_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(toki_state::get_back_tile_info)), TILEMAP_SCAN_ROWS, 16,16, 32,32);
+ m_foreground_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(toki_state::get_fore_tile_info)), TILEMAP_SCAN_ROWS, 16,16, 32,32);
m_text_layer->set_transparent_pen(15);
m_background_layer->set_transparent_pen(15);
diff --git a/src/mame/video/tp84.cpp b/src/mame/video/tp84.cpp
index 726b97417ff..7851d147b7d 100644
--- a/src/mame/video/tp84.cpp
+++ b/src/mame/video/tp84.cpp
@@ -140,8 +140,8 @@ TILE_GET_INFO_MEMBER(tp84_state::get_fg_tile_info)
void tp84_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tp84_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tp84_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tp84_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tp84_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
diff --git a/src/mame/video/trackfld.cpp b/src/mame/video/trackfld.cpp
index 807ee3961f0..056a64267b8 100644
--- a/src/mame/video/trackfld.cpp
+++ b/src/mame/video/trackfld.cpp
@@ -167,7 +167,7 @@ TILE_GET_INFO_MEMBER(trackfld_state::get_bg_tile_info)
VIDEO_START_MEMBER(trackfld_state,trackfld)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(trackfld_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(trackfld_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_bg_tilemap->set_scroll_rows(32);
m_sprites_gfx_banked = 0;
}
diff --git a/src/mame/video/travrusa.cpp b/src/mame/video/travrusa.cpp
index 42749cf2def..de3e0a9dc29 100644
--- a/src/mame/video/travrusa.cpp
+++ b/src/mame/video/travrusa.cpp
@@ -213,7 +213,7 @@ void travrusa_state::video_start()
{
save_item(NAME(m_scrollx));
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(travrusa_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(travrusa_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_bg_tilemap->set_transmask(0, 0xff, 0x00); /* split type 0 is totally transparent in front half */
m_bg_tilemap->set_transmask(1, 0x3f, 0xc0); /* split type 1 has pens 6 and 7 opaque - tunnels */
diff --git a/src/mame/video/triplhnt.cpp b/src/mame/video/triplhnt.cpp
index b211a167460..333e24726ae 100644
--- a/src/mame/video/triplhnt.cpp
+++ b/src/mame/video/triplhnt.cpp
@@ -22,7 +22,7 @@ void triplhnt_state::video_start()
{
m_screen->register_screen_bitmap(m_helper);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(triplhnt_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 16, 16);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(triplhnt_state::get_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 16, 16);
m_hit_timer = timer_alloc(TIMER_HIT);
diff --git a/src/mame/video/trucocl.cpp b/src/mame/video/trucocl.cpp
index e47fbf4397c..97a9a8af922 100644
--- a/src/mame/video/trucocl.cpp
+++ b/src/mame/video/trucocl.cpp
@@ -74,7 +74,7 @@ TILE_GET_INFO_MEMBER(trucocl_state::get_bg_tile_info)
void trucocl_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(trucocl_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32 );
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(trucocl_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32 );
}
uint32_t trucocl_state::screen_update_trucocl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
diff --git a/src/mame/video/tryout.cpp b/src/mame/video/tryout.cpp
index cdf7d443ff3..90446a5b706 100644
--- a/src/mame/video/tryout.cpp
+++ b/src/mame/video/tryout.cpp
@@ -162,8 +162,8 @@ TILEMAP_MAPPER_MEMBER(tryout_state::get_bg_memory_offset)
void tryout_state::video_start()
{
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tryout_state::get_fg_tile_info),this),tilemap_mapper_delegate(FUNC(tryout_state::get_fg_memory_offset),this),8,8,32,32);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tryout_state::get_bg_tile_info),this),tilemap_mapper_delegate(FUNC(tryout_state::get_bg_memory_offset),this),16,16,64,16);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tryout_state::get_fg_tile_info)), tilemap_mapper_delegate(*this, FUNC(tryout_state::get_fg_memory_offset)), 8, 8, 32,32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tryout_state::get_bg_tile_info)), tilemap_mapper_delegate(*this, FUNC(tryout_state::get_bg_memory_offset)), 16,16, 64,16);
m_vram=std::make_unique<uint8_t[]>(8 * 0x800);
m_vram_gfx=std::make_unique<uint8_t[]>(0x6000);
diff --git a/src/mame/video/tsamurai.cpp b/src/mame/video/tsamurai.cpp
index 9b59bcd4d8a..c5c2e8a74e5 100644
--- a/src/mame/video/tsamurai.cpp
+++ b/src/mame/video/tsamurai.cpp
@@ -52,8 +52,8 @@ void tsamurai_state::video_start()
VIDEO_START_MEMBER(tsamurai_state, tsamurai)
{
- m_background = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tsamurai_state::get_bg_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32);
- m_foreground = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tsamurai_state::get_fg_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32);
+ m_background = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tsamurai_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 32,32);
+ m_foreground = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tsamurai_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 32,32);
m_background->set_transparent_pen(0);
m_foreground->set_transparent_pen(0);
@@ -251,7 +251,7 @@ TILE_GET_INFO_MEMBER(tsamurai_state::get_vsgongf_tile_info)
VIDEO_START_MEMBER(tsamurai_state,vsgongf)
{
- m_foreground = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tsamurai_state::get_vsgongf_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32);
+ m_foreground = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tsamurai_state::get_vsgongf_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 32,32);
save_item(NAME(m_vsgongf_color));
video_start();
diff --git a/src/mame/video/tumbleb.cpp b/src/mame/video/tumbleb.cpp
index a515f219f7d..178eb82026d 100644
--- a/src/mame/video/tumbleb.cpp
+++ b/src/mame/video/tumbleb.cpp
@@ -222,9 +222,9 @@ void tumbleb_state::tumbleb_tilemap_redraw()
VIDEO_START_MEMBER(tumbleb_state,pangpang)
{
- m_pf1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tumbleb_state::pangpang_get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_pf1_alt_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tumbleb_state::pangpang_get_bg1_tile_info),this), tilemap_mapper_delegate(FUNC(tumbleb_state::tumblep_scan),this), 16, 16, 64, 32);
- m_pf2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tumbleb_state::pangpang_get_bg2_tile_info),this), tilemap_mapper_delegate(FUNC(tumbleb_state::tumblep_scan),this), 16, 16, 64, 32);
+ m_pf1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tumbleb_state::pangpang_get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_pf1_alt_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tumbleb_state::pangpang_get_bg1_tile_info)), tilemap_mapper_delegate(*this, FUNC(tumbleb_state::tumblep_scan)), 16, 16, 64, 32);
+ m_pf2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tumbleb_state::pangpang_get_bg2_tile_info)), tilemap_mapper_delegate(*this, FUNC(tumbleb_state::tumblep_scan)), 16, 16, 64, 32);
m_pf1_tilemap->set_transparent_pen(0);
m_pf1_alt_tilemap->set_transparent_pen(0);
@@ -235,9 +235,9 @@ VIDEO_START_MEMBER(tumbleb_state,pangpang)
VIDEO_START_MEMBER(tumbleb_state,tumblepb)
{
- m_pf1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tumbleb_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_pf1_alt_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tumbleb_state::get_bg1_tile_info),this), tilemap_mapper_delegate(FUNC(tumbleb_state::tumblep_scan),this), 16, 16, 64, 32);
- m_pf2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tumbleb_state::get_bg2_tile_info),this), tilemap_mapper_delegate(FUNC(tumbleb_state::tumblep_scan),this), 16, 16, 64, 32);
+ m_pf1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tumbleb_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_pf1_alt_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tumbleb_state::get_bg1_tile_info)), tilemap_mapper_delegate(*this, FUNC(tumbleb_state::tumblep_scan)), 16, 16, 64, 32);
+ m_pf2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tumbleb_state::get_bg2_tile_info)), tilemap_mapper_delegate(*this, FUNC(tumbleb_state::tumblep_scan)), 16, 16, 64, 32);
m_pf1_tilemap->set_transparent_pen(0);
m_pf1_alt_tilemap->set_transparent_pen(0);
@@ -247,9 +247,9 @@ VIDEO_START_MEMBER(tumbleb_state,tumblepb)
VIDEO_START_MEMBER(tumbleb_state,sdfight)
{
- m_pf1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tumbleb_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); // 64*64 to prevent bad tilemap wrapping? - check real behavior
- m_pf1_alt_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tumbleb_state::get_bg1_tile_info),this), tilemap_mapper_delegate(FUNC(tumbleb_state::tumblep_scan),this), 16, 16, 64, 32);
- m_pf2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tumbleb_state::get_bg2_tile_info),this), tilemap_mapper_delegate(FUNC(tumbleb_state::tumblep_scan),this), 16, 16, 64, 32);
+ m_pf1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tumbleb_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); // 64*64 to prevent bad tilemap wrapping? - check real behavior
+ m_pf1_alt_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tumbleb_state::get_bg1_tile_info)), tilemap_mapper_delegate(*this, FUNC(tumbleb_state::tumblep_scan)), 16, 16, 64, 32);
+ m_pf2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tumbleb_state::get_bg2_tile_info)), tilemap_mapper_delegate(*this, FUNC(tumbleb_state::tumblep_scan)), 16, 16, 64, 32);
m_pf1_tilemap->set_transparent_pen(0);
m_pf1_alt_tilemap->set_transparent_pen(0);
@@ -259,9 +259,9 @@ VIDEO_START_MEMBER(tumbleb_state,sdfight)
VIDEO_START_MEMBER(tumbleb_state,fncywld)
{
- m_pf1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tumbleb_state::get_fncywld_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_pf1_alt_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tumbleb_state::get_fncywld_bg1_tile_info),this), tilemap_mapper_delegate(FUNC(tumbleb_state::tumblep_scan),this), 16, 16, 64, 32);
- m_pf2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tumbleb_state::get_fncywld_bg2_tile_info),this), tilemap_mapper_delegate(FUNC(tumbleb_state::tumblep_scan),this), 16, 16, 64, 32);
+ m_pf1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tumbleb_state::get_fncywld_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_pf1_alt_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tumbleb_state::get_fncywld_bg1_tile_info)), tilemap_mapper_delegate(*this, FUNC(tumbleb_state::tumblep_scan)), 16, 16, 64, 32);
+ m_pf2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tumbleb_state::get_fncywld_bg2_tile_info)), tilemap_mapper_delegate(*this, FUNC(tumbleb_state::tumblep_scan)), 16, 16, 64, 32);
m_pf1_tilemap->set_transparent_pen(15);
m_pf1_alt_tilemap->set_transparent_pen(15);
@@ -272,9 +272,9 @@ VIDEO_START_MEMBER(tumbleb_state,fncywld)
VIDEO_START_MEMBER(tumbleb_state,suprtrio)
{
- m_pf1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tumbleb_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
- m_pf1_alt_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tumbleb_state::get_bg1_tile_info),this), tilemap_mapper_delegate(FUNC(tumbleb_state::tumblep_scan),this), 16, 16, 64, 32);
- m_pf2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tumbleb_state::get_bg2_tile_info),this), tilemap_mapper_delegate(FUNC(tumbleb_state::tumblep_scan),this), 16, 16, 64, 32);
+ m_pf1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tumbleb_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_pf1_alt_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tumbleb_state::get_bg1_tile_info)), tilemap_mapper_delegate(*this, FUNC(tumbleb_state::tumblep_scan)), 16, 16, 64, 32);
+ m_pf2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tumbleb_state::get_bg2_tile_info)), tilemap_mapper_delegate(*this, FUNC(tumbleb_state::tumblep_scan)), 16, 16, 64, 32);
m_pf1_alt_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/tunhunt.cpp b/src/mame/video/tunhunt.cpp
index 04cb025ede8..5da4b5d764f 100644
--- a/src/mame/video/tunhunt.cpp
+++ b/src/mame/video/tunhunt.cpp
@@ -76,7 +76,7 @@ void tunhunt_state::video_start()
m_tmpbitmap.allocate(256, 64, m_screen->format());
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(tunhunt_state::get_fg_tile_info),this), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tunhunt_state::get_fg_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
m_fg_tilemap->set_transparent_pen(0);
m_fg_tilemap->set_scrollx(0, 64);
diff --git a/src/mame/video/turbo.cpp b/src/mame/video/turbo.cpp
index a23d7370906..d5090b3752d 100644
--- a/src/mame/video/turbo.cpp
+++ b/src/mame/video/turbo.cpp
@@ -128,14 +128,14 @@ TILE_GET_INFO_MEMBER(turbo_state::get_fg_tile_info)
VIDEO_START_MEMBER(turbo_state,turbo)
{
/* initialize the foreground tilemap */
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(turbo_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8,8, 32,32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(turbo_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 32,32);
}
VIDEO_START_MEMBER(turbo_state,buckrog)
{
/* initialize the foreground tilemap */
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(turbo_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8,8, 32,32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(turbo_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 32,32);
/* allocate the bitmap RAM */
m_buckrog_bitmap_ram = std::make_unique<uint8_t[]>(0xe000);
diff --git a/src/mame/video/twin16.cpp b/src/mame/video/twin16.cpp
index 03421242f46..0d3fd3b20f7 100644
--- a/src/mame/video/twin16.cpp
+++ b/src/mame/video/twin16.cpp
@@ -435,9 +435,9 @@ TILE_GET_INFO_MEMBER(twin16_state::layer1_tile_info)
void twin16_state::video_start()
{
- m_fixed_tmap = &machine().tilemap().create(*m_gfxdecode,tilemap_get_info_delegate(FUNC(twin16_state::fix_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,32);
- m_scroll_tmap[0] = &machine().tilemap().create(*m_gfxdecode,tilemap_get_info_delegate(FUNC(twin16_state::layer0_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,64);
- m_scroll_tmap[1] = &machine().tilemap().create(*m_gfxdecode,tilemap_get_info_delegate(FUNC(twin16_state::layer1_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,64);
+ m_fixed_tmap = &machine().tilemap().create(*m_gfxdecode,tilemap_get_info_delegate(*this, FUNC(twin16_state::fix_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 64,32);
+ m_scroll_tmap[0] = &machine().tilemap().create(*m_gfxdecode,tilemap_get_info_delegate(*this, FUNC(twin16_state::layer0_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 64,64);
+ m_scroll_tmap[1] = &machine().tilemap().create(*m_gfxdecode,tilemap_get_info_delegate(*this, FUNC(twin16_state::layer1_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 64,64);
m_fixed_tmap->set_transparent_pen(0);
m_scroll_tmap[0]->set_transparent_pen(0);
diff --git a/src/mame/video/twincobr.cpp b/src/mame/video/twincobr.cpp
index 9a91eaa7f06..4f223d94ca7 100644
--- a/src/mame/video/twincobr.cpp
+++ b/src/mame/video/twincobr.cpp
@@ -61,16 +61,16 @@ TILE_GET_INFO_MEMBER(twincobr_state::get_tx_tile_info)
void twincobr_state::twincobr_create_tilemaps()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(twincobr_state::get_bg_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,64);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(twincobr_state::get_fg_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,64);
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(twincobr_state::get_tx_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,32);
-
- m_bg_tilemap->set_scrolldx(-55, -134 );
- m_fg_tilemap->set_scrolldx(-55, -134 );
- m_tx_tilemap->set_scrolldx(-55, -134 );
- m_bg_tilemap->set_scrolldy(-30, -243 );
- m_fg_tilemap->set_scrolldy(-30, -243 );
- m_tx_tilemap->set_scrolldy(-30, -243 );
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(twincobr_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 64,64);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(twincobr_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 64,64);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(twincobr_state::get_tx_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 64,32);
+
+ m_bg_tilemap->set_scrolldx(-55, -134);
+ m_fg_tilemap->set_scrolldx(-55, -134);
+ m_tx_tilemap->set_scrolldx(-55, -134);
+ m_bg_tilemap->set_scrolldy(-30, -243);
+ m_fg_tilemap->set_scrolldy(-30, -243);
+ m_tx_tilemap->set_scrolldy(-30, -243);
m_fg_tilemap->set_transparent_pen(0);
m_tx_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/ultratnk.cpp b/src/mame/video/ultratnk.cpp
index 3f679791793..f629374539b 100644
--- a/src/mame/video/ultratnk.cpp
+++ b/src/mame/video/ultratnk.cpp
@@ -49,7 +49,7 @@ void ultratnk_state::video_start()
{
m_screen->register_screen_bitmap(m_helper);
- m_playfield = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ultratnk_state::tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_playfield = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ultratnk_state::tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
diff --git a/src/mame/video/unico.cpp b/src/mame/video/unico.cpp
index 5525dbe56c6..31e4cfc3116 100644
--- a/src/mame/video/unico.cpp
+++ b/src/mame/video/unico.cpp
@@ -113,15 +113,15 @@ WRITE16_MEMBER(unico_state::spriteram_w) { COMBINE_DATA(&m_spriteram[offset]);
void unico_state::video_start()
{
m_tilemap[0] = &machine().tilemap().create(
- *m_gfxdecode, tilemap_get_info_delegate(FUNC(unico_state::get_tile_info),this),TILEMAP_SCAN_ROWS,
+ *m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(unico_state::get_tile_info)), TILEMAP_SCAN_ROWS,
16,16, 0x40, 0x40);
m_tilemap[1] = &machine().tilemap().create(
- *m_gfxdecode, tilemap_get_info_delegate(FUNC(unico_state::get_tile_info),this),TILEMAP_SCAN_ROWS,
+ *m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(unico_state::get_tile_info)), TILEMAP_SCAN_ROWS,
16,16, 0x40, 0x40);
m_tilemap[2] = &machine().tilemap().create(
- *m_gfxdecode, tilemap_get_info_delegate(FUNC(unico_state::get_tile_info),this),TILEMAP_SCAN_ROWS,
+ *m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(unico_state::get_tile_info)), TILEMAP_SCAN_ROWS,
16,16, 0x40, 0x40);
m_tilemap[0]->set_user_data(&m_vram[0x8000/2]);
diff --git a/src/mame/video/v1050.cpp b/src/mame/video/v1050.cpp
index 2d0ade7b4f8..0c61c38780b 100644
--- a/src/mame/video/v1050.cpp
+++ b/src/mame/video/v1050.cpp
@@ -115,7 +115,7 @@ void v1050_state::v1050_video(machine_config &config)
m_crtc->set_screen(SCREEN_TAG);
m_crtc->set_show_border_area(true);
m_crtc->set_char_width(8);
- m_crtc->set_update_row_callback(FUNC(v1050_state::crtc_update_row), this);
+ m_crtc->set_update_row_callback(FUNC(v1050_state::crtc_update_row));
m_crtc->out_vsync_callback().set(FUNC(v1050_state::crtc_vs_w));
screen_device &screen(SCREEN(config, SCREEN_TAG, SCREEN_TYPE_RASTER, rgb_t::green()));
diff --git a/src/mame/video/vastar.cpp b/src/mame/video/vastar.cpp
index cf6bc3620f2..f601a2e79e7 100644
--- a/src/mame/video/vastar.cpp
+++ b/src/mame/video/vastar.cpp
@@ -60,9 +60,9 @@ TILE_GET_INFO_MEMBER(vastar_state::get_bg2_tile_info)
void vastar_state::video_start()
{
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(vastar_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS,8,8,32,32);
- m_bg1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(vastar_state::get_bg1_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32);
- m_bg2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(vastar_state::get_bg2_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(vastar_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 32,32);
+ m_bg1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(vastar_state::get_bg1_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 32,32);
+ m_bg2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(vastar_state::get_bg2_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 32,32);
m_fg_tilemap->set_transparent_pen(0);
m_bg1_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/vball.cpp b/src/mame/video/vball.cpp
index bdb095a1fe2..08875bbe206 100644
--- a/src/mame/video/vball.cpp
+++ b/src/mame/video/vball.cpp
@@ -40,7 +40,7 @@ TILE_GET_INFO_MEMBER(vball_state::get_bg_tile_info)
void vball_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(vball_state::get_bg_tile_info),this),tilemap_mapper_delegate(FUNC(vball_state::background_scan),this), 8, 8,64,64);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(vball_state::get_bg_tile_info)), tilemap_mapper_delegate(*this, FUNC(vball_state::background_scan)), 8, 8, 64, 64);
m_bg_tilemap->set_scroll_rows(32);
m_gfxset=0;
diff --git a/src/mame/video/videopin.cpp b/src/mame/video/videopin.cpp
index 1db00b15dc2..bf9ddd0f52c 100644
--- a/src/mame/video/videopin.cpp
+++ b/src/mame/video/videopin.cpp
@@ -29,7 +29,7 @@ TILE_GET_INFO_MEMBER(videopin_state::get_tile_info)
void videopin_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(videopin_state::get_tile_info),this), tilemap_mapper_delegate(FUNC(videopin_state::get_memory_offset),this), 8, 8, 48, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(videopin_state::get_tile_info)), tilemap_mapper_delegate(*this, FUNC(videopin_state::get_memory_offset)), 8, 8, 48, 32);
save_item(NAME(m_ball_x));
save_item(NAME(m_ball_y));
diff --git a/src/mame/video/vs920a.cpp b/src/mame/video/vs920a.cpp
index f827b95453f..ea94a9ec2f6 100644
--- a/src/mame/video/vs920a.cpp
+++ b/src/mame/video/vs920a.cpp
@@ -53,7 +53,7 @@ void vs920a_text_tilemap_device::device_start()
save_item(NAME(m_pal_base));
- m_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(vs920a_text_tilemap_device::get_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,32);
+ m_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(vs920a_text_tilemap_device::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_tmap->set_transparent_pen(0);
}
diff --git a/src/mame/video/vsystem_spr.cpp b/src/mame/video/vsystem_spr.cpp
index b0a2e11eba6..0c716e84e9c 100644
--- a/src/mame/video/vsystem_spr.cpp
+++ b/src/mame/video/vsystem_spr.cpp
@@ -68,7 +68,7 @@ DEFINE_DEVICE_TYPE(VSYSTEM_SPR, vsystem_spr_device, "vsystem_spr", "Video System
vsystem_spr_device::vsystem_spr_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: device_t(mconfig, VSYSTEM_SPR, tag, owner, clock)
- , m_newtilecb(FUNC(vsystem_spr_device::tile_callback_noindirect), this)
+ , m_newtilecb(*this, DEVICE_SELF, FUNC(vsystem_spr_device::tile_callback_noindirect))
, m_xoffs(0)
, m_yoffs(0)
, m_pdraw(false)
@@ -89,7 +89,7 @@ uint32_t vsystem_spr_device::tile_callback_noindirect(uint32_t tile)
void vsystem_spr_device::device_start()
{
// bind our handler
- m_newtilecb.bind_relative_to(*owner());
+ m_newtilecb.resolve();
save_item(NAME(m_pal_base));
diff --git a/src/mame/video/vsystem_spr.h b/src/mame/video/vsystem_spr.h
index bd30347baad..40e0a3f1128 100644
--- a/src/mame/video/vsystem_spr.h
+++ b/src/mame/video/vsystem_spr.h
@@ -22,7 +22,7 @@ public:
m_yoffs = yoffs;
}
void set_pdraw(bool pdraw) { m_pdraw = pdraw; }
- template <typename... T> void set_tile_indirect_cb(T &&... args) { m_newtilecb = vsystem_tile_indirection_delegate(std::forward<T>(args)...); }
+ template <typename... T> void set_tile_indirect_cb(T &&... args) { m_newtilecb.set(std::forward<T>(args)...); }
void set_gfx_region(int gfx_region) { m_gfx_region = gfx_region; }
void set_pal_base(int pal_base) { m_pal_base = pal_base; }
void set_pal_mask(int pal_mask) { m_pal_mask = pal_mask; }
diff --git a/src/mame/video/vsystem_spr2.cpp b/src/mame/video/vsystem_spr2.cpp
index 408016822a8..aa62f29ce30 100644
--- a/src/mame/video/vsystem_spr2.cpp
+++ b/src/mame/video/vsystem_spr2.cpp
@@ -31,7 +31,7 @@ DEFINE_DEVICE_TYPE(VSYSTEM_SPR2, vsystem_spr2_device, "vsystem2_spr", "Video Sys
vsystem_spr2_device::vsystem_spr2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: device_t(mconfig, VSYSTEM_SPR2, tag, owner, clock)
- , m_newtilecb(vsystem_tile2_indirection_delegate(FUNC(vsystem_spr2_device::tile_callback_noindirect), this))
+ , m_newtilecb(*this, DEVICE_SELF, FUNC(vsystem_spr2_device::tile_callback_noindirect))
, m_pritype(0) // hack until we have better handling
, m_gfx_region(0)
, m_xoffs(0)
@@ -50,7 +50,7 @@ uint32_t vsystem_spr2_device::tile_callback_noindirect(uint32_t tile)
void vsystem_spr2_device::device_start()
{
// bind our handler
- m_newtilecb.bind_relative_to(*owner());
+ m_newtilecb.resolve();
}
void vsystem_spr2_device::device_reset()
diff --git a/src/mame/video/vsystem_spr2.h b/src/mame/video/vsystem_spr2.h
index 13bcc4d9acd..87e28ecff9e 100644
--- a/src/mame/video/vsystem_spr2.h
+++ b/src/mame/video/vsystem_spr2.h
@@ -12,7 +12,7 @@ class vsystem_spr2_device : public device_t
public:
// configuration
template <typename T> void set_gfxdecode_tag(T &&tag) { m_gfxdecode.set_tag(std::forward<T>(tag)); }
- template <typename... T> void set_tile_indirect_cb(T &&... args) { m_newtilecb = vsystem_tile2_indirection_delegate(std::forward<T>(args)...); }
+ template <typename... T> void set_tile_indirect_cb(T &&... args) { m_newtilecb.set(std::forward<T>(args)...); }
void set_pritype(int pritype) { m_pritype = pritype; }
void set_gfx_region(int gfx_region) { m_gfx_region = gfx_region; }
void set_offsets(int xoffs, int yoffs)
diff --git a/src/mame/video/vulgus.cpp b/src/mame/video/vulgus.cpp
index 40c028eb1a5..eb9d99b338a 100644
--- a/src/mame/video/vulgus.cpp
+++ b/src/mame/video/vulgus.cpp
@@ -109,8 +109,8 @@ TILE_GET_INFO_MEMBER(vulgus_state::get_bg_tile_info)
void vulgus_state::video_start()
{
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(vulgus_state::get_fg_tile_info),this),TILEMAP_SCAN_ROWS, 8, 8,32,32);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(vulgus_state::get_bg_tile_info),this),TILEMAP_SCAN_COLS,16,16,32,32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(vulgus_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32,32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(vulgus_state::get_bg_tile_info)), TILEMAP_SCAN_COLS, 16,16, 32,32);
m_fg_tilemap->configure_groups(*m_gfxdecode->gfx(0), 47);
diff --git a/src/mame/video/warpwarp.cpp b/src/mame/video/warpwarp.cpp
index 10bb73b47f2..929774b7d9a 100644
--- a/src/mame/video/warpwarp.cpp
+++ b/src/mame/video/warpwarp.cpp
@@ -193,17 +193,17 @@ TILE_GET_INFO_MEMBER(warpwarp_state::warpwarp_get_tile_info)
VIDEO_START_MEMBER(warpwarp_state,geebee)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(warpwarp_state::geebee_get_tile_info),this),tilemap_mapper_delegate(FUNC(warpwarp_state::tilemap_scan),this),8,8,34,28);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(warpwarp_state::geebee_get_tile_info)), tilemap_mapper_delegate(*this, FUNC(warpwarp_state::tilemap_scan)), 8,8, 34,28);
}
VIDEO_START_MEMBER(warpwarp_state,navarone)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(warpwarp_state::navarone_get_tile_info),this),tilemap_mapper_delegate(FUNC(warpwarp_state::tilemap_scan),this),8,8,34,28);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(warpwarp_state::navarone_get_tile_info)), tilemap_mapper_delegate(*this, FUNC(warpwarp_state::tilemap_scan)), 8,8, 34,28);
}
VIDEO_START_MEMBER(warpwarp_state,warpwarp)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(warpwarp_state::warpwarp_get_tile_info),this),tilemap_mapper_delegate(FUNC(warpwarp_state::tilemap_scan),this),8,8,34,28);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(warpwarp_state::warpwarp_get_tile_info)), tilemap_mapper_delegate(*this, FUNC(warpwarp_state::tilemap_scan)), 8,8, 34,28);
}
diff --git a/src/mame/video/wc90.cpp b/src/mame/video/wc90.cpp
index d72f6b60234..ca5c08d1476 100644
--- a/src/mame/video/wc90.cpp
+++ b/src/mame/video/wc90.cpp
@@ -71,9 +71,9 @@ TILE_GET_INFO_MEMBER(wc90_state::track_get_fg_tile_info)
void wc90_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(wc90_state::get_bg_tile_info),this),TILEMAP_SCAN_ROWS, 16,16,64,32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(wc90_state::get_fg_tile_info),this),TILEMAP_SCAN_ROWS,16,16,64,32);
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(wc90_state::get_tx_tile_info),this),TILEMAP_SCAN_ROWS, 8, 8,64,32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(wc90_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16,16, 64,32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(wc90_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 16,16, 64,32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(wc90_state::get_tx_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64,32);
m_fg_tilemap->set_transparent_pen(0);
m_tx_tilemap->set_transparent_pen(0);
@@ -81,9 +81,9 @@ void wc90_state::video_start()
VIDEO_START_MEMBER(wc90_state,wc90t)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(wc90_state::track_get_bg_tile_info),this),TILEMAP_SCAN_ROWS, 16,16,64,32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(wc90_state::track_get_fg_tile_info),this),TILEMAP_SCAN_ROWS,16,16,64,32);
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(wc90_state::get_tx_tile_info),this),TILEMAP_SCAN_ROWS, 8, 8,64,32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(wc90_state::track_get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16,16, 64,32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(wc90_state::track_get_fg_tile_info)), TILEMAP_SCAN_ROWS, 16,16, 64,32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(wc90_state::get_tx_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64,32);
m_fg_tilemap->set_transparent_pen(0);
m_tx_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/wc90b.cpp b/src/mame/video/wc90b.cpp
index 416a0ce6ce1..08d5ee88b8f 100644
--- a/src/mame/video/wc90b.cpp
+++ b/src/mame/video/wc90b.cpp
@@ -48,9 +48,9 @@ TILE_GET_INFO_MEMBER(wc90b_state::get_tx_tile_info)
void wc90b_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(wc90b_state::get_bg_tile_info), this), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(wc90b_state::get_fg_tile_info), this), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
- m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(wc90b_state::get_tx_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(wc90b_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(wc90b_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 16, 16, 64, 32);
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(wc90b_state::get_tx_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_fg_tilemap->set_transparent_pen(15);
m_tx_tilemap->set_transparent_pen(15);
diff --git a/src/mame/video/wecleman.cpp b/src/mame/video/wecleman.cpp
index 4bb6c0c1120..11201fcecb7 100644
--- a/src/mame/video/wecleman.cpp
+++ b/src/mame/video/wecleman.cpp
@@ -910,19 +910,19 @@ VIDEO_START_MEMBER(wecleman_state,wecleman)
m_sprite_list = std::make_unique<sprite_t []>(NUM_SPRITES);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(wecleman_state::wecleman_get_bg_tile_info),this),
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(wecleman_state::wecleman_get_bg_tile_info)),
TILEMAP_SCAN_ROWS,
/* We draw part of the road below */
8,8,
PAGE_NX * 2, PAGE_NY * 2 );
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(wecleman_state::wecleman_get_fg_tile_info),this),
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(wecleman_state::wecleman_get_fg_tile_info)),
TILEMAP_SCAN_ROWS,
8,8,
PAGE_NX * 2, PAGE_NY * 2);
- m_txt_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(wecleman_state::wecleman_get_txt_tile_info),this),
+ m_txt_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(wecleman_state::wecleman_get_txt_tile_info)),
TILEMAP_SCAN_ROWS,
8,8,
diff --git a/src/mame/video/welltris.cpp b/src/mame/video/welltris.cpp
index dd03b46388f..59d0c07e760 100644
--- a/src/mame/video/welltris.cpp
+++ b/src/mame/video/welltris.cpp
@@ -71,7 +71,7 @@ WRITE16_MEMBER(welltris_state::charvideoram_w)
void welltris_state::video_start()
{
- m_char_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(welltris_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_char_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(welltris_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_char_tilemap->set_transparent_pen(15);
diff --git a/src/mame/video/wgp.cpp b/src/mame/video/wgp.cpp
index 9f9e46b8995..d9f7160bc70 100644
--- a/src/mame/video/wgp.cpp
+++ b/src/mame/video/wgp.cpp
@@ -23,9 +23,9 @@ TILE_GET_INFO_MEMBER(wgp_state::get_piv_tile_info)
void wgp_state::core_vh_start(int piv_xoffs, int piv_yoffs)
{
- m_piv_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(wgp_state::get_piv_tile_info<0x0000>),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
- m_piv_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(wgp_state::get_piv_tile_info<0x1000>),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
- m_piv_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(wgp_state::get_piv_tile_info<0x2000>),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
+ m_piv_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(wgp_state::get_piv_tile_info<0x0000>)), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
+ m_piv_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(wgp_state::get_piv_tile_info<0x1000>)), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
+ m_piv_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(wgp_state::get_piv_tile_info<0x2000>)), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
m_piv_xoffs = piv_xoffs;
m_piv_yoffs = piv_yoffs;
diff --git a/src/mame/video/williams.cpp b/src/mame/video/williams.cpp
index 60cc6e03f24..e7bdd55087b 100644
--- a/src/mame/video/williams.cpp
+++ b/src/mame/video/williams.cpp
@@ -188,7 +188,7 @@ VIDEO_START_MEMBER(williams2_state,williams2)
blitter_init(m_blitter_config, nullptr);
/* create the tilemap */
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(williams2_state::get_tile_info),this), TILEMAP_SCAN_COLS, 24,16, 128,16);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(williams2_state::get_tile_info)), TILEMAP_SCAN_COLS, 24,16, 128,16);
m_bg_tilemap->set_scrolldx(2, 0);
state_save_register();
diff --git a/src/mame/video/wrally.cpp b/src/mame/video/wrally.cpp
index c3a96bc6fb7..1607483b1f9 100644
--- a/src/mame/video/wrally.cpp
+++ b/src/mame/video/wrally.cpp
@@ -56,8 +56,8 @@ TILE_GET_INFO_MEMBER(wrally_state::get_tile_info)
void wrally_state::video_start()
{
- m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(wrally_state::get_tile_info<0>),this),TILEMAP_SCAN_ROWS,16,16,64,32);
- m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(wrally_state::get_tile_info<1>),this),TILEMAP_SCAN_ROWS,16,16,64,32);
+ m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(wrally_state::get_tile_info<0>)), TILEMAP_SCAN_ROWS, 16,16, 64,32);
+ m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(wrally_state::get_tile_info<1>)), TILEMAP_SCAN_ROWS, 16,16, 64,32);
m_tilemap[0]->set_transmask(0,0xff01,0x00ff); /* this layer is split in two (pens 1..7, pens 8-15) */
m_tilemap[1]->set_transparent_pen(0);
diff --git a/src/mame/video/wswan.cpp b/src/mame/video/wswan.cpp
index 3787167960c..258925e2058 100644
--- a/src/mame/video/wswan.cpp
+++ b/src/mame/video/wswan.cpp
@@ -23,10 +23,16 @@ DEFINE_DEVICE_TYPE(WSWAN_VIDEO, wswan_video_device, "wswan_video", "Bandai Wonde
wswan_video_device::wswan_video_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: device_t(mconfig, WSWAN_VIDEO, tag, owner, clock)
, device_video_interface(mconfig, *this)
+ , m_set_irq_cb(*this)
+ , m_snd_dma_cb(*this)
, m_vdp_type(VDP_TYPE_WSWAN)
{
}
+wswan_video_device::~wswan_video_device()
+{
+}
+
void wswan_video_device::common_save()
{
@@ -88,8 +94,8 @@ void wswan_video_device::device_start()
m_timer->adjust(attotime::from_ticks(256, 3072000), 0, attotime::from_ticks(256, 3072000));
// bind callbacks
- m_set_irq_cb.bind_relative_to(*owner());
- m_snd_dma_cb.bind_relative_to(*owner());
+ m_set_irq_cb.resolve();
+ m_snd_dma_cb.resolve();
if (m_vdp_type == VDP_TYPE_WSC)
{
diff --git a/src/mame/video/wswan.h b/src/mame/video/wswan.h
index 93bbaa76f44..a7df4401e77 100644
--- a/src/mame/video/wswan.h
+++ b/src/mame/video/wswan.h
@@ -27,22 +27,21 @@ enum
#define WSWAN_Y_PIXELS (18*8)
-
-typedef device_delegate<void (int irq)> wswan_video_irq_cb_delegate;
-#define WSWAN_VIDEO_IRQ_CB_MEMBER(_name) void _name(int irq)
-
-typedef device_delegate<void (void)> wswan_video_dmasnd_cb_delegate;
-#define WSWAN_VIDEO_DMASND_CB_MEMBER(_name) void _name(void)
+#define WSWAN_VIDEO_IRQ_CB_MEMBER(_name) void _name(int irq)
+#define WSWAN_VIDEO_DMASND_CB_MEMBER(_name) void _name()
class wswan_video_device : public device_t, public device_video_interface
{
public:
+ typedef device_delegate<void (int irq)> irq_cb_delegate;
+ typedef device_delegate<void ()> dmasnd_cb_delegate;
+
wswan_video_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- ~wswan_video_device() {}
+ ~wswan_video_device();
// static configuration
- template <typename... T> void set_irq_callback(T &&... args) { m_set_irq_cb = wswan_video_irq_cb_delegate(std::forward<T>(args)...); }
- template <typename... T> void set_dmasnd_callback(T &&... args) { m_snd_dma_cb = wswan_video_dmasnd_cb_delegate(std::forward<T>(args)...); }
+ template <typename... T> void set_irq_callback(T &&... args) { m_set_irq_cb.set(std::forward<T>(args)...); }
+ template <typename... T> void set_dmasnd_callback(T &&... args) { m_snd_dma_cb.set(std::forward<T>(args)...); }
void set_vdp_type(int type) { m_vdp_type = type; }
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
@@ -119,8 +118,8 @@ protected:
int m_pal[16][16];
uint8_t m_regs[256];
- wswan_video_irq_cb_delegate m_set_irq_cb;
- wswan_video_dmasnd_cb_delegate m_snd_dma_cb;
+ irq_cb_delegate m_set_irq_cb;
+ dmasnd_cb_delegate m_snd_dma_cb;
int m_vdp_type;
// timer IDs
diff --git a/src/mame/video/wwfsstar.cpp b/src/mame/video/wwfsstar.cpp
index 8bfa8604d18..aeee79c0ffe 100644
--- a/src/mame/video/wwfsstar.cpp
+++ b/src/mame/video/wwfsstar.cpp
@@ -204,10 +204,10 @@ void wwfsstar_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprec
void wwfsstar_state::video_start()
{
- m_fg0_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(wwfsstar_state::get_fg0_tile_info),this),TILEMAP_SCAN_ROWS, 8, 8,32,32);
+ m_fg0_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(wwfsstar_state::get_fg0_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_fg0_tilemap->set_transparent_pen(0);
- m_bg0_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(wwfsstar_state::get_bg0_tile_info),this),tilemap_mapper_delegate(FUNC(wwfsstar_state::bg0_scan),this), 16, 16,32,32);
+ m_bg0_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(wwfsstar_state::get_bg0_tile_info)), tilemap_mapper_delegate(*this, FUNC(wwfsstar_state::bg0_scan)), 16, 16, 32, 32);
m_fg0_tilemap->set_transparent_pen(0);
save_item(NAME(m_vblank));
diff --git a/src/mame/video/x68k.cpp b/src/mame/video/x68k.cpp
index 9ef89bea9da..a5b68eb5f17 100644
--- a/src/mame/video/x68k.cpp
+++ b/src/mame/video/x68k.cpp
@@ -611,10 +611,10 @@ void x68k_state::video_start()
m_gfxdecode->gfx(gfx_index)->set_colors(32);
/* Tilemaps */
- m_bg0_8 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(x68k_state::get_bg0_tile),this),TILEMAP_SCAN_ROWS,8,8,64,64);
- m_bg1_8 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(x68k_state::get_bg1_tile),this),TILEMAP_SCAN_ROWS,8,8,64,64);
- m_bg0_16 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(x68k_state::get_bg0_tile_16),this),TILEMAP_SCAN_ROWS,16,16,64,64);
- m_bg1_16 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(x68k_state::get_bg1_tile_16),this),TILEMAP_SCAN_ROWS,16,16,64,64);
+ m_bg0_8 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(x68k_state::get_bg0_tile)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_bg1_8 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(x68k_state::get_bg1_tile)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
+ m_bg0_16 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(x68k_state::get_bg0_tile_16)), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
+ m_bg1_16 = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(x68k_state::get_bg1_tile_16)), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
m_bg0_8->set_transparent_pen(0);
m_bg1_8->set_transparent_pen(0);
diff --git a/src/mame/video/xain.cpp b/src/mame/video/xain.cpp
index e400dee7cf8..70b9af7f601 100644
--- a/src/mame/video/xain.cpp
+++ b/src/mame/video/xain.cpp
@@ -75,9 +75,9 @@ TILE_GET_INFO_MEMBER(xain_state::get_char_tile_info)
void xain_state::video_start()
{
- m_bg_tilemaps[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(xain_state::get_bg_tile_info<0>), this), tilemap_mapper_delegate(FUNC(xain_state::back_scan), this), 16,16,32,32);
- m_bg_tilemaps[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(xain_state::get_bg_tile_info<1>), this), tilemap_mapper_delegate(FUNC(xain_state::back_scan), this), 16,16,32,32);
- m_char_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(xain_state::get_char_tile_info), this), TILEMAP_SCAN_ROWS, 8,8,32,32);
+ m_bg_tilemaps[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(xain_state::get_bg_tile_info<0>)), tilemap_mapper_delegate(*this, FUNC(xain_state::back_scan)), 16, 16, 32, 32);
+ m_bg_tilemaps[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(xain_state::get_bg_tile_info<1>)), tilemap_mapper_delegate(*this, FUNC(xain_state::back_scan)), 16, 16, 32, 32);
+ m_char_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(xain_state::get_char_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_bg_tilemaps[0]->set_transparent_pen(0);
m_bg_tilemaps[1]->set_transparent_pen(0);
diff --git a/src/mame/video/xevious.cpp b/src/mame/video/xevious.cpp
index ba83d17d6b4..c290a0b84f8 100644
--- a/src/mame/video/xevious.cpp
+++ b/src/mame/video/xevious.cpp
@@ -142,8 +142,8 @@ TILE_GET_INFO_MEMBER(xevious_state::get_bg_tile_info)
VIDEO_START_MEMBER(xevious_state,xevious)
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(xevious_state::get_bg_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(xevious_state::get_fg_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(xevious_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(xevious_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_bg_tilemap->set_scrolldx(-20,288+27);
m_bg_tilemap->set_scrolldy(-16,-16);
diff --git a/src/mame/video/xorworld.cpp b/src/mame/video/xorworld.cpp
index 46ed0f62593..54c4b98f969 100644
--- a/src/mame/video/xorworld.cpp
+++ b/src/mame/video/xorworld.cpp
@@ -77,7 +77,7 @@ TILE_GET_INFO_MEMBER(xorworld_state::get_bg_tile_info)
void xorworld_state::video_start()
{
m_bg_tilemap = &machine().tilemap().create(
- *m_gfxdecode, tilemap_get_info_delegate(FUNC(xorworld_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS,
+ *m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(xorworld_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS,
8, 8, 32, 32);
}
diff --git a/src/mame/video/xxmissio.cpp b/src/mame/video/xxmissio.cpp
index 4c4c551620d..92ef34dbf5c 100644
--- a/src/mame/video/xxmissio.cpp
+++ b/src/mame/video/xxmissio.cpp
@@ -63,8 +63,8 @@ TILE_GET_INFO_MEMBER(xxmissio_state::get_fg_tile_info)
void xxmissio_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(xxmissio_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 8, 32, 32);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(xxmissio_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(xxmissio_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 16, 8, 32, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(xxmissio_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 16, 8, 32, 32);
m_bg_tilemap->set_scroll_cols(1);
m_bg_tilemap->set_scroll_rows(1);
diff --git a/src/mame/video/xyonix.cpp b/src/mame/video/xyonix.cpp
index d5e9d38fdd5..48c33a51b10 100644
--- a/src/mame/video/xyonix.cpp
+++ b/src/mame/video/xyonix.cpp
@@ -51,7 +51,7 @@ WRITE8_MEMBER(xyonix_state::vidram_w)
void xyonix_state::video_start()
{
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(xyonix_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 4, 8, 80, 32);
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(xyonix_state::get_tile_info)), TILEMAP_SCAN_ROWS, 4, 8, 80, 32);
}
uint32_t xyonix_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
diff --git a/src/mame/video/ygv608.cpp b/src/mame/video/ygv608.cpp
index 5f7860b5a81..fa0d6f4393d 100644
--- a/src/mame/video/ygv608.cpp
+++ b/src/mame/video/ygv608.cpp
@@ -359,21 +359,21 @@ void ygv608_device::device_start()
save_item(NAME(m_namcond1_gfxbank));
/* create tilemaps of all sizes and combinations */
- m_tilemap_A_cache_8[0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(ygv608_device::get_tile_info_A_8),this), tilemap_mapper_delegate(FUNC(ygv608_device::get_tile_offset),this), 8,8, 32,32);
- m_tilemap_A_cache_8[1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(ygv608_device::get_tile_info_A_8),this), tilemap_mapper_delegate(FUNC(ygv608_device::get_tile_offset),this), 8,8, 64,32);
- m_tilemap_A_cache_8[2] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(ygv608_device::get_tile_info_A_8),this), tilemap_mapper_delegate(FUNC(ygv608_device::get_tile_offset),this), 8,8, 32,64);
+ m_tilemap_A_cache_8[0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(ygv608_device::get_tile_info_A_8)), tilemap_mapper_delegate(*this, FUNC(ygv608_device::get_tile_offset)), 8,8, 32,32);
+ m_tilemap_A_cache_8[1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(ygv608_device::get_tile_info_A_8)), tilemap_mapper_delegate(*this, FUNC(ygv608_device::get_tile_offset)), 8,8, 64,32);
+ m_tilemap_A_cache_8[2] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(ygv608_device::get_tile_info_A_8)), tilemap_mapper_delegate(*this, FUNC(ygv608_device::get_tile_offset)), 8,8, 32,64);
- m_tilemap_A_cache_16[0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(ygv608_device::get_tile_info_A_16),this), tilemap_mapper_delegate(FUNC(ygv608_device::get_tile_offset),this), 16,16, 32,32);
- m_tilemap_A_cache_16[1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(ygv608_device::get_tile_info_A_16),this), tilemap_mapper_delegate(FUNC(ygv608_device::get_tile_offset),this), 16,16, 64,32);
- m_tilemap_A_cache_16[2] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(ygv608_device::get_tile_info_A_16),this), tilemap_mapper_delegate(FUNC(ygv608_device::get_tile_offset),this), 16,16, 32,64);
+ m_tilemap_A_cache_16[0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(ygv608_device::get_tile_info_A_16)), tilemap_mapper_delegate(*this, FUNC(ygv608_device::get_tile_offset)), 16,16, 32,32);
+ m_tilemap_A_cache_16[1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(ygv608_device::get_tile_info_A_16)), tilemap_mapper_delegate(*this, FUNC(ygv608_device::get_tile_offset)), 16,16, 64,32);
+ m_tilemap_A_cache_16[2] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(ygv608_device::get_tile_info_A_16)), tilemap_mapper_delegate(*this, FUNC(ygv608_device::get_tile_offset)), 16,16, 32,64);
- m_tilemap_B_cache_8[0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(ygv608_device::get_tile_info_B_8),this), tilemap_mapper_delegate(FUNC(ygv608_device::get_tile_offset),this), 8,8, 32,32);
- m_tilemap_B_cache_8[1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(ygv608_device::get_tile_info_B_8),this), tilemap_mapper_delegate(FUNC(ygv608_device::get_tile_offset),this), 8,8, 64,32);
- m_tilemap_B_cache_8[2] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(ygv608_device::get_tile_info_B_8),this), tilemap_mapper_delegate(FUNC(ygv608_device::get_tile_offset),this), 8,8, 32,64);
+ m_tilemap_B_cache_8[0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(ygv608_device::get_tile_info_B_8)), tilemap_mapper_delegate(*this, FUNC(ygv608_device::get_tile_offset)), 8,8, 32,32);
+ m_tilemap_B_cache_8[1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(ygv608_device::get_tile_info_B_8)), tilemap_mapper_delegate(*this, FUNC(ygv608_device::get_tile_offset)), 8,8, 64,32);
+ m_tilemap_B_cache_8[2] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(ygv608_device::get_tile_info_B_8)), tilemap_mapper_delegate(*this, FUNC(ygv608_device::get_tile_offset)), 8,8, 32,64);
- m_tilemap_B_cache_16[0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(ygv608_device::get_tile_info_B_16),this), tilemap_mapper_delegate(FUNC(ygv608_device::get_tile_offset),this), 16,16, 32,32);
- m_tilemap_B_cache_16[1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(ygv608_device::get_tile_info_B_16),this), tilemap_mapper_delegate(FUNC(ygv608_device::get_tile_offset),this), 16,16, 64,32);
- m_tilemap_B_cache_16[2] = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(ygv608_device::get_tile_info_B_16),this), tilemap_mapper_delegate(FUNC(ygv608_device::get_tile_offset),this), 16,16, 32,64);
+ m_tilemap_B_cache_16[0] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(ygv608_device::get_tile_info_B_16)), tilemap_mapper_delegate(*this, FUNC(ygv608_device::get_tile_offset)), 16,16, 32,32);
+ m_tilemap_B_cache_16[1] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(ygv608_device::get_tile_info_B_16)), tilemap_mapper_delegate(*this, FUNC(ygv608_device::get_tile_offset)), 16,16, 64,32);
+ m_tilemap_B_cache_16[2] = &machine().tilemap().create(*this, tilemap_get_info_delegate(*this, FUNC(ygv608_device::get_tile_info_B_16)), tilemap_mapper_delegate(*this, FUNC(ygv608_device::get_tile_offset)), 16,16, 32,64);
m_tilemap_A = nullptr;
m_tilemap_B = nullptr;
diff --git a/src/mame/video/yiear.cpp b/src/mame/video/yiear.cpp
index 3e8c3526f0f..7adbafbd09a 100644
--- a/src/mame/video/yiear.cpp
+++ b/src/mame/video/yiear.cpp
@@ -101,7 +101,7 @@ TILE_GET_INFO_MEMBER(yiear_state::get_bg_tile_info)
void yiear_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(yiear_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(yiear_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
void yiear_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect )
diff --git a/src/mame/video/yunsun16.cpp b/src/mame/video/yunsun16.cpp
index 5815c073320..bdec312cf33 100644
--- a/src/mame/video/yunsun16.cpp
+++ b/src/mame/video/yunsun16.cpp
@@ -69,10 +69,10 @@ TILE_GET_INFO_MEMBER(yunsun16_state::get_tile_info)
void yunsun16_state::video_start()
{
m_tilemap[0] = &machine().tilemap().create(
- *m_gfxdecode, tilemap_get_info_delegate(FUNC(yunsun16_state::get_tile_info<0>),this),tilemap_mapper_delegate(FUNC(yunsun16_state::tilemap_scan_pages),this),
+ *m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(yunsun16_state::get_tile_info<0>)), tilemap_mapper_delegate(*this, FUNC(yunsun16_state::tilemap_scan_pages)),
16, 16, 0x40, 0x40);
m_tilemap[1] = &machine().tilemap().create(
- *m_gfxdecode, tilemap_get_info_delegate(FUNC(yunsun16_state::get_tile_info<1>),this),tilemap_mapper_delegate(FUNC(yunsun16_state::tilemap_scan_pages),this),
+ *m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(yunsun16_state::get_tile_info<1>)), tilemap_mapper_delegate(*this, FUNC(yunsun16_state::tilemap_scan_pages)),
16, 16, 0x40, 0x40);
m_tilemap[0]->set_scrolldx(-0x34, 0);
diff --git a/src/mame/video/yunsung8.cpp b/src/mame/video/yunsung8.cpp
index ca18599aa09..cd0514df32b 100644
--- a/src/mame/video/yunsung8.cpp
+++ b/src/mame/video/yunsung8.cpp
@@ -172,8 +172,8 @@ TILE_GET_INFO_MEMBER(yunsung8_state::get_fg_tile_info)
void yunsung8_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(yunsung8_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, DIM_NX_0, DIM_NY_0 );
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(yunsung8_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, DIM_NX_1, DIM_NY_1 );
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(yunsung8_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, DIM_NX_0, DIM_NY_0 );
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(yunsung8_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, DIM_NX_1, DIM_NY_1 );
m_fg_tilemap->set_transparent_pen(0);
}
diff --git a/src/mame/video/zac2650.cpp b/src/mame/video/zac2650.cpp
index 7283d1291cf..f028a23c792 100644
--- a/src/mame/video/zac2650.cpp
+++ b/src/mame/video/zac2650.cpp
@@ -120,7 +120,7 @@ TILE_GET_INFO_MEMBER(zac2650_state::get_bg_tile_info)
void zac2650_state::video_start()
{
m_bg_tilemap = &machine().tilemap().create(
- *m_gfxdecode, tilemap_get_info_delegate(FUNC(zac2650_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS,
+ *m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(zac2650_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS,
24, 24, 32, 32);
m_screen->register_screen_bitmap(m_bitmap);
diff --git a/src/mame/video/zaccaria.cpp b/src/mame/video/zaccaria.cpp
index 99e898b0c27..98786d730ff 100644
--- a/src/mame/video/zaccaria.cpp
+++ b/src/mame/video/zaccaria.cpp
@@ -128,7 +128,7 @@ TILE_GET_INFO_MEMBER(zaccaria_state::get_tile_info)
void zaccaria_state::video_start()
{
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(zaccaria_state::get_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(zaccaria_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_bg_tilemap->set_scroll_cols(32);
}
diff --git a/src/mame/video/zaxxon.cpp b/src/mame/video/zaxxon.cpp
index ae7be184bf3..b4475bd71ef 100644
--- a/src/mame/video/zaxxon.cpp
+++ b/src/mame/video/zaxxon.cpp
@@ -114,7 +114,7 @@ TILE_GET_INFO_MEMBER(zaxxon_state::congo_get_fg_tile_info)
*
*************************************/
-void zaxxon_state::video_start_common(tilemap_get_info_delegate fg_tile_info)
+void zaxxon_state::video_start_common(tilemap_get_info_delegate &&fg_tile_info)
{
/* reset globals */
m_bg_enable = 0;
@@ -126,14 +126,14 @@ void zaxxon_state::video_start_common(tilemap_get_info_delegate fg_tile_info)
m_congo_color_bank = 0;
memset(m_congo_custom, 0, sizeof(m_congo_custom));
- /* create a background and foreground tilemap */
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(zaxxon_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8,8, 32,512);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, fg_tile_info, TILEMAP_SCAN_ROWS, 8,8, 32,32);
+ // create a background and foreground tilemap
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(zaxxon_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 32,512);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, std::move(fg_tile_info), TILEMAP_SCAN_ROWS, 8,8, 32,32);
- /* configure the foreground tilemap */
+ // configure the foreground tilemap
m_fg_tilemap->set_transparent_pen(0);
- /* register for save states */
+ // register for save states
save_item(NAME(m_bg_enable));
save_item(NAME(m_bg_color));
save_item(NAME(m_bg_position));
@@ -144,13 +144,13 @@ void zaxxon_state::video_start_common(tilemap_get_info_delegate fg_tile_info)
void zaxxon_state::video_start()
{
- video_start_common(tilemap_get_info_delegate(FUNC(zaxxon_state::zaxxon_get_fg_tile_info),this));
+ video_start_common(tilemap_get_info_delegate(*this, FUNC(zaxxon_state::zaxxon_get_fg_tile_info)));
}
VIDEO_START_MEMBER(zaxxon_state,razmataz)
{
- video_start_common(tilemap_get_info_delegate(FUNC(zaxxon_state::razmataz_get_fg_tile_info),this));
+ video_start_common(tilemap_get_info_delegate(*this, FUNC(zaxxon_state::razmataz_get_fg_tile_info)));
}
@@ -164,7 +164,7 @@ VIDEO_START_MEMBER(zaxxon_state,congo)
save_item(NAME(m_congo_color_bank));
save_item(NAME(m_congo_custom));
- video_start_common(tilemap_get_info_delegate(FUNC(zaxxon_state::congo_get_fg_tile_info),this));
+ video_start_common(tilemap_get_info_delegate(*this, FUNC(zaxxon_state::congo_get_fg_tile_info)));
}
diff --git a/src/mame/video/zerozone.cpp b/src/mame/video/zerozone.cpp
index d7b5fb3e85b..59a6c2545eb 100644
--- a/src/mame/video/zerozone.cpp
+++ b/src/mame/video/zerozone.cpp
@@ -38,7 +38,7 @@ void zerozone_state::video_start()
{
// i'm not 100% sure it should be opaque, pink title screen looks strange in las vegas girls
// but if its transparent other things look incorrect
- m_zz_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(zerozone_state::get_zerozone_tile_info),this), TILEMAP_SCAN_COLS, 8, 8, 64, 32);
+ m_zz_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(zerozone_state::get_zerozone_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 64, 32);
}
uint32_t zerozone_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)